You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@griffin.apache.org by gu...@apache.org on 2018/09/12 08:57:50 UTC

[01/51] [partial] incubator-griffin-site git commit: remove legacy code

Repository: incubator-griffin-site
Updated Branches:
  refs/heads/master ea6db6285 -> ca1c37a79


http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/core-js/client/library.min.js.map
----------------------------------------------------------------------
diff --git a/node_modules/core-js/client/library.min.js.map b/node_modules/core-js/client/library.min.js.map
deleted file mode 100644
index 56305ad..0000000
--- a/node_modules/core-js/client/library.min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["library.js"],"names":["__e","__g","undefined","modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","IE8_DOM_DEFINE","$","$export","DESCRIPTORS","createDesc","html","cel","has","cof","invoke","fails","anObject","aFunction","isObject","toObject","toIObject","toInteger","toIndex","toLength","IObject","IE_PROTO","createArrayMethod","arrayIndexOf","ObjectProto","Object","prototype","ArrayProto","Array","arraySlice","slice","arrayJoin","join","defineProperty","setDesc","getOwnDescriptor","getDesc","defineProperties","setDescs","factories","get","a","O","P","Attributes","e","TypeError","value","propertyIsEnumerable","Properties","keys","getKeys","length","i","S","F","getOwnPropertyDescriptor","keys1","split","keys2","concat","keysLen1","createDict","iframeDocument","iframe","gt","style","display","appendChild","src","contentWindow","document","open","write","close","createGetKeys","names","object","key","
 result","push","Empty","getPrototypeOf","getProto","constructor","getOwnPropertyNames","getNames","create","construct","len","args","n","Function","bind","that","fn","this","partArgs","arguments","bound","begin","end","klass","start","upTo","size","cloned","charAt","separator","isArray","createArrayReduce","isRight","callbackfn","memo","index","methodize","$fn","arg1","forEach","each","map","filter","some","every","reduce","reduceRight","indexOf","lastIndexOf","el","fromIndex","Math","min","now","Date","lz","num","toISOString","NaN","isFinite","RangeError","d","y","getUTCFullYear","getUTCMilliseconds","s","abs","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","$Object","isEnum","getSymbols","getOwnPropertySymbols","global","core","ctx","PROTOTYPE","type","name","source","own","out","IS_FORCED","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","B","IS_WRAP","W","target","C","param","window","self","version","b","apply","it","exec","bitmap","enumerable","configu
 rable","writable","documentElement","is","createElement","hasOwnProperty","toString","un","defined","ceil","floor","isNaN","max","px","random","asc","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","val","res","f","SPECIES","original","arg","store","uid","Symbol","SHARED","IS_INCLUDES","redefine","$fails","shared","setToStringTag","wks","keyOf","$names","enumKeys","_create","$Symbol","$JSON","JSON","_stringify","stringify","setter","HIDDEN","SymbolRegistry","AllSymbols","useNative","setSymbolDesc","D","protoDesc","wrap","tag","sym","_k","set","isSymbol","$defineProperty","$defineProperties","l","$create","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","$stringify","replacer","$replacer","$$","buggyJSON","symbolStatics","for","keyFor","useSetter","useSimple","def","TAG","stat","windowNames","getWindowNames","symbols","assign","A","K","k","T","$$len","j","x","setPrototypeOf","check","proto","tes
 t","buggy","__proto__","$freeze","freeze","KEY","exp","$seal","seal","$preventExtensions","preventExtensions","$isFrozen","isFrozen","$isSealed","isSealed","$isExtensible","isExtensible","$getPrototypeOf","$keys","HAS_INSTANCE","FunctionProto","EPSILON","pow","_isFinite","isInteger","number","isSafeInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","parseFloat","parseInt","log1p","sqrt","$acosh","acosh","Number","MAX_VALUE","log","LN2","asinh","atanh","sign","cbrt","clz32","LOG2E","cosh","expm1","EPSILON32","MAX32","MIN32","roundTiesToEven","fround","$abs","$sign","Infinity","hypot","value1","value2","div","sum","larg","$imul","imul","UINT16","xn","yn","xl","yl","log10","LN10","log2","sinh","tanh","trunc","fromCharCode","String","$fromCodePoint","fromCodePoint","code","raw","callSite","tpl","$trim","trim","spaces","space","non","ltrim","RegExp","rtrim","exporter","string","replace","$at","codePointAt","pos","TO_STRING","charCodeAt","context","ENDS_WITH","$endsWith","endsWith","searchStr
 ing","endPosition","search","isRegExp","NAME","MATCH","re","INCLUDES","includes","repeat","count","str","STARTS_WITH","$startsWith","startsWith","iterated","_t","_i","point","done","LIBRARY","hide","Iterators","$iterCreate","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Base","Constructor","next","DEFAULT","IS_SET","FORCED","methods","getMethod","kind","values","entries","DEF_VALUES","VALUES_BUG","$native","$default","IteratorPrototype","descriptor","isArrayIter","getIterFn","iter","from","arrayLike","step","iterator","mapfn","mapping","iterFn","ret","classof","getIteratorMethod","ARG","callee","SAFE_CLOSING","riter","skipClosing","safe","arr","of","addToUnscopables","Arguments","copyWithin","to","inc","fill","endPos","$find","forced","find","findIndex","Wrapper","strictNew","forOf","setProto","same","speciesConstructor","asap","PROMISE","process","isNode","empty","testResolve","sub","promise","resolve","USE_NATIVE","P2","works","then","thenableThenGotten","sameConst
 ructor","getConstructor","isThenable","PromiseCapability","reject","$$resolve","$$reject","perform","error","notify","record","isReject","chain","v","ok","run","reaction","handler","fail","h","setTimeout","console","isUnhandled","emit","onunhandledrejection","reason","_d","$reject","r","$resolve","wrapper","Promise","executor","err","onFulfilled","onRejected","catch","capability","all","iterable","abrupt","remaining","results","alreadyCalled","race","head","last","macrotask","Observer","MutationObserver","WebKitMutationObserver","flush","parent","domain","exit","enter","nextTick","toggle","node","createTextNode","observe","characterData","data","task","defer","channel","port","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","counter","queue","ONREADYSTATECHANGE","listner","event","port2","port1","onmessage","postMessage","addEventListener","importScripts","removeChild","clear","strong","Map","entry","getEntry","redefineAll","$iterDefine","ID","$has","setSpecies
 ","SIZE","fastKey","_f","ADDER","_l","delete","prev","setStrong","common","IS_WEAK","_c","IS_ADDER","Set","add","weak","frozenStore","WEAK","tmp","$WeakMap","WeakMap","method","arrayFind","arrayFindIndex","FrozenStore","findFrozen","splice","WeakSet","_apply","thisArgument","argumentsList","Reflect","Target","newTarget","$args","instance","propertyKey","attributes","deleteProperty","desc","Enumerate","enumerate","receiver","ownKeys","V","existingDescriptor","ownDesc","$includes","at","$pad","padLeft","maxLength","fillString","left","stringLength","fillStr","intMaxLength","fillLen","stringFiller","padRight","trimLeft","trimRight","$re","escape","regExp","part","getOwnPropertyDescriptors","$values","isEntries","$entries","toJSON","$task","NodeList","HTMLCollection","partial","navigator","MSIE","userAgent","time","setInterval","path","pargs","_","holder","Dict","dict","isIterable","init","findKey","isDict","createDictMethod","createDictIter","DictIterator","_a","mapPairs","getIterator"
 ,"delay","define","mixin","make","&","<",">","\"","'","escapeHTML","&amp;","&lt;","&gt;","&quot;","&apos;","unescapeHTML","enabled","$console","enable","disable","$ctx","$Array","statics","setStatics","amd"],"mappings":"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","file":"library.min.js"}
\ No newline at end of file


[14/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/caseless/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/caseless/LICENSE b/node_modules/caseless/LICENSE
deleted file mode 100644
index 61789f4..0000000
--- a/node_modules/caseless/LICENSE
+++ /dev/null
@@ -1,28 +0,0 @@
-Apache License
-Version 2.0, January 2004
-http://www.apache.org/licenses/
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-1. Definitions.
-"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
-"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
-"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
-"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
-"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
-"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
-"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
-"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
-"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
-"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
-2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
-3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
-4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
-You must give any other recipients of the Work or Derivative Works a copy of this License; and
-You must cause any modified files to carry prominent notices stating that You changed the files; and
-You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
-If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modi
 fications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
-5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
-6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
-7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
-8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
-9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
-END OF TERMS AND CONDITIONS
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/caseless/README.md
----------------------------------------------------------------------
diff --git a/node_modules/caseless/README.md b/node_modules/caseless/README.md
deleted file mode 100644
index e5077a2..0000000
--- a/node_modules/caseless/README.md
+++ /dev/null
@@ -1,45 +0,0 @@
-## Caseless -- wrap an object to set and get property with caseless semantics but also preserve caseing.
-
-This library is incredibly useful when working with HTTP headers. It allows you to get/set/check for headers in a caseless manner while also preserving the caseing of headers the first time they are set.
-
-## Usage
-
-```javascript
-var headers = {}
-  , c = caseless(headers)
-  ;
-c.set('a-Header', 'asdf')
-c.get('a-header') === 'asdf'
-```
-
-## has(key)
-
-Has takes a name and if it finds a matching header will return that header name with the preserved caseing it was set with.
-
-```javascript
-c.has('a-header') === 'a-Header'
-```
-
-## set(key, value[, clobber=true])
-
-Set is fairly straight forward except that if the header exists and clobber is disabled it will add `','+value` to the existing header.
-
-```javascript
-c.set('a-Header', 'fdas')
-c.set('a-HEADER', 'more', false)
-c.get('a-header') === 'fdsa,more'
-```
-
-## swap(key)
-
-Swaps the casing of a header with the new one that is passed in.
-
-```javascript
-var headers = {}
-  , c = caseless(headers)
-  ;
-c.set('a-Header', 'fdas')
-c.swap('a-HEADER')
-c.has('a-header') === 'a-HEADER'
-headers === {'a-HEADER': 'fdas'}
-```

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/caseless/index.js
----------------------------------------------------------------------
diff --git a/node_modules/caseless/index.js b/node_modules/caseless/index.js
deleted file mode 100644
index b194734..0000000
--- a/node_modules/caseless/index.js
+++ /dev/null
@@ -1,67 +0,0 @@
-function Caseless (dict) {
-  this.dict = dict || {}
-}
-Caseless.prototype.set = function (name, value, clobber) {
-  if (typeof name === 'object') {
-    for (var i in name) {
-      this.set(i, name[i], value)
-    }
-  } else {
-    if (typeof clobber === 'undefined') clobber = true
-    var has = this.has(name)
-
-    if (!clobber && has) this.dict[has] = this.dict[has] + ',' + value
-    else this.dict[has || name] = value
-    return has
-  }
-}
-Caseless.prototype.has = function (name) {
-  var keys = Object.keys(this.dict)
-    , name = name.toLowerCase()
-    ;
-  for (var i=0;i<keys.length;i++) {
-    if (keys[i].toLowerCase() === name) return keys[i]
-  }
-  return false
-}
-Caseless.prototype.get = function (name) {
-  name = name.toLowerCase()
-  var result, _key
-  var headers = this.dict
-  Object.keys(headers).forEach(function (key) {
-    _key = key.toLowerCase()
-    if (name === _key) result = headers[key]
-  })
-  return result
-}
-Caseless.prototype.swap = function (name) {
-  var has = this.has(name)
-  if (has === name) return
-  if (!has) throw new Error('There is no header than matches "'+name+'"')
-  this.dict[name] = this.dict[has]
-  delete this.dict[has]
-}
-Caseless.prototype.del = function (name) {
-  var has = this.has(name)
-  return delete this.dict[has || name]
-}
-
-module.exports = function (dict) {return new Caseless(dict)}
-module.exports.httpify = function (resp, headers) {
-  var c = new Caseless(headers)
-  resp.setHeader = function (key, value, clobber) {
-    if (typeof value === 'undefined') return
-    return c.set(key, value, clobber)
-  }
-  resp.hasHeader = function (key) {
-    return c.has(key)
-  }
-  resp.getHeader = function (key) {
-    return c.get(key)
-  }
-  resp.removeHeader = function (key) {
-    return c.del(key)
-  }
-  resp.headers = c.dict
-  return c
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/caseless/package.json
----------------------------------------------------------------------
diff --git a/node_modules/caseless/package.json b/node_modules/caseless/package.json
deleted file mode 100644
index 3499584..0000000
--- a/node_modules/caseless/package.json
+++ /dev/null
@@ -1,101 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "caseless@~0.12.0",
-        "scope": null,
-        "escapedName": "caseless",
-        "name": "caseless",
-        "rawSpec": "~0.12.0",
-        "spec": ">=0.12.0 <0.13.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/request"
-    ]
-  ],
-  "_from": "caseless@>=0.12.0 <0.13.0",
-  "_id": "caseless@0.12.0",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/caseless",
-  "_nodeVersion": "6.9.2",
-  "_npmOperationalInternal": {
-    "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/caseless-0.12.0.tgz_1485466648253_0.3714302028529346"
-  },
-  "_npmUser": {
-    "name": "mikeal",
-    "email": "mikeal.rogers@gmail.com"
-  },
-  "_npmVersion": "3.10.9",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "caseless@~0.12.0",
-    "scope": null,
-    "escapedName": "caseless",
-    "name": "caseless",
-    "rawSpec": "~0.12.0",
-    "spec": ">=0.12.0 <0.13.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/request"
-  ],
-  "_resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
-  "_shasum": "1b681c21ff84033c826543090689420d187151dc",
-  "_shrinkwrap": null,
-  "_spec": "caseless@~0.12.0",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/request",
-  "author": {
-    "name": "Mikeal Rogers",
-    "email": "mikeal.rogers@gmail.com"
-  },
-  "bugs": {
-    "url": "https://github.com/mikeal/caseless/issues"
-  },
-  "dependencies": {},
-  "description": "Caseless object set/get/has, very useful when working with HTTP headers.",
-  "devDependencies": {
-    "tape": "^2.10.2"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "1b681c21ff84033c826543090689420d187151dc",
-    "tarball": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"
-  },
-  "gitHead": "af91df7878a8b53cf3dc2e9a086dc57ba8301649",
-  "homepage": "https://github.com/mikeal/caseless#readme",
-  "keywords": [
-    "headers",
-    "http",
-    "caseless"
-  ],
-  "license": "Apache-2.0",
-  "main": "index.js",
-  "maintainers": [
-    {
-      "name": "mikeal",
-      "email": "mikeal.rogers@gmail.com"
-    },
-    {
-      "name": "nylen",
-      "email": "jnylen@gmail.com"
-    },
-    {
-      "name": "simov",
-      "email": "simeonvelichkov@gmail.com"
-    }
-  ],
-  "name": "caseless",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/mikeal/caseless.git"
-  },
-  "scripts": {
-    "test": "node test.js"
-  },
-  "test": "node test.js",
-  "version": "0.12.0"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/caseless/test.js
----------------------------------------------------------------------
diff --git a/node_modules/caseless/test.js b/node_modules/caseless/test.js
deleted file mode 100644
index f55196c..0000000
--- a/node_modules/caseless/test.js
+++ /dev/null
@@ -1,67 +0,0 @@
-var tape = require('tape')
-  , caseless = require('./')
-  ;
-
-tape('set get has', function (t) {
-  var headers = {}
-    , c = caseless(headers)
-    ;
-  t.plan(17)
-  c.set('a-Header', 'asdf')
-  t.equal(c.get('a-header'), 'asdf')
-  t.equal(c.has('a-header'), 'a-Header')
-  t.ok(!c.has('nothing'))
-  // old bug where we used the wrong regex
-  t.ok(!c.has('a-hea'))
-  c.set('a-header', 'fdsa')
-  t.equal(c.get('a-header'), 'fdsa')
-  t.equal(c.get('a-Header'), 'fdsa')
-  c.set('a-HEADER', 'more', false)
-  t.equal(c.get('a-header'), 'fdsa,more')
-
-  t.deepEqual(headers, {'a-Header': 'fdsa,more'})
-  c.swap('a-HEADER')
-  t.deepEqual(headers, {'a-HEADER': 'fdsa,more'})
-
-  c.set('deleteme', 'foobar')
-  t.ok(c.has('deleteme'))
-  t.ok(c.del('deleteme'))
-  t.notOk(c.has('deleteme'))
-  t.notOk(c.has('idonotexist'))
-  t.ok(c.del('idonotexist'))
-
-  c.set('tva', 'test1')
-  c.set('tva-header', 'test2')
-  t.equal(c.has('tva'), 'tva')
-  t.notOk(c.has('header'))
-
-  t.equal(c.get('tva'), 'test1')
-
-})
-
-tape('swap', function (t) {
-  var headers = {}
-    , c = caseless(headers)
-    ;
-  t.plan(4)
-  // No Header to Swap.
-  t.throws(function () {
-    c.swap('content-type')
-  })
-  // Set Header.
-  c.set('content-type', 'application/json')
-  // Swap Header With Itself.
-  c.swap('content-type')
-  // Does Not Delete Itself.
-  t.ok(c.has('content-type'))
-  // Swap Header With a Different Header.
-  c.swap('Content-Type')
-  // Still Has Header.
-  t.ok(c.has('Content-Type'))
-  // Delete Header.
-  c.del('Content-Type')
-  // No Header to Swap.
-  t.throws(function () {
-    c.swap('content-type')
-  })
-})

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/chalk/index.js
----------------------------------------------------------------------
diff --git a/node_modules/chalk/index.js b/node_modules/chalk/index.js
deleted file mode 100644
index 2d85a91..0000000
--- a/node_modules/chalk/index.js
+++ /dev/null
@@ -1,116 +0,0 @@
-'use strict';
-var escapeStringRegexp = require('escape-string-regexp');
-var ansiStyles = require('ansi-styles');
-var stripAnsi = require('strip-ansi');
-var hasAnsi = require('has-ansi');
-var supportsColor = require('supports-color');
-var defineProps = Object.defineProperties;
-var isSimpleWindowsTerm = process.platform === 'win32' && !/^xterm/i.test(process.env.TERM);
-
-function Chalk(options) {
-	// detect mode if not set manually
-	this.enabled = !options || options.enabled === undefined ? supportsColor : options.enabled;
-}
-
-// use bright blue on Windows as the normal blue color is illegible
-if (isSimpleWindowsTerm) {
-	ansiStyles.blue.open = '\u001b[94m';
-}
-
-var styles = (function () {
-	var ret = {};
-
-	Object.keys(ansiStyles).forEach(function (key) {
-		ansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g');
-
-		ret[key] = {
-			get: function () {
-				return build.call(this, this._styles.concat(key));
-			}
-		};
-	});
-
-	return ret;
-})();
-
-var proto = defineProps(function chalk() {}, styles);
-
-function build(_styles) {
-	var builder = function () {
-		return applyStyle.apply(builder, arguments);
-	};
-
-	builder._styles = _styles;
-	builder.enabled = this.enabled;
-	// __proto__ is used because we must return a function, but there is
-	// no way to create a function with a different prototype.
-	/* eslint-disable no-proto */
-	builder.__proto__ = proto;
-
-	return builder;
-}
-
-function applyStyle() {
-	// support varags, but simply cast to string in case there's only one arg
-	var args = arguments;
-	var argsLen = args.length;
-	var str = argsLen !== 0 && String(arguments[0]);
-
-	if (argsLen > 1) {
-		// don't slice `arguments`, it prevents v8 optimizations
-		for (var a = 1; a < argsLen; a++) {
-			str += ' ' + args[a];
-		}
-	}
-
-	if (!this.enabled || !str) {
-		return str;
-	}
-
-	var nestedStyles = this._styles;
-	var i = nestedStyles.length;
-
-	// Turns out that on Windows dimmed gray text becomes invisible in cmd.exe,
-	// see https://github.com/chalk/chalk/issues/58
-	// If we're on Windows and we're dealing with a gray color, temporarily make 'dim' a noop.
-	var originalDim = ansiStyles.dim.open;
-	if (isSimpleWindowsTerm && (nestedStyles.indexOf('gray') !== -1 || nestedStyles.indexOf('grey') !== -1)) {
-		ansiStyles.dim.open = '';
-	}
-
-	while (i--) {
-		var code = ansiStyles[nestedStyles[i]];
-
-		// Replace any instances already present with a re-opening code
-		// otherwise only the part of the string until said closing code
-		// will be colored, and the rest will simply be 'plain'.
-		str = code.open + str.replace(code.closeRe, code.open) + code.close;
-	}
-
-	// Reset the original 'dim' if we changed it to work around the Windows dimmed gray issue.
-	ansiStyles.dim.open = originalDim;
-
-	return str;
-}
-
-function init() {
-	var ret = {};
-
-	Object.keys(styles).forEach(function (name) {
-		ret[name] = {
-			get: function () {
-				return build.call(this, [name]);
-			}
-		};
-	});
-
-	return ret;
-}
-
-defineProps(Chalk.prototype, init());
-
-module.exports = new Chalk();
-module.exports.styles = ansiStyles;
-module.exports.hasColor = hasAnsi;
-module.exports.stripColor = stripAnsi;
-module.exports.supportsColor = supportsColor;

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/chalk/license
----------------------------------------------------------------------
diff --git a/node_modules/chalk/license b/node_modules/chalk/license
deleted file mode 100644
index 654d0bf..0000000
--- a/node_modules/chalk/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <si...@gmail.com> (sindresorhus.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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/chalk/package.json
----------------------------------------------------------------------
diff --git a/node_modules/chalk/package.json b/node_modules/chalk/package.json
deleted file mode 100644
index 30110dd..0000000
--- a/node_modules/chalk/package.json
+++ /dev/null
@@ -1,143 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "chalk@^1.1.3",
-        "scope": null,
-        "escapedName": "chalk",
-        "name": "chalk",
-        "rawSpec": "^1.1.3",
-        "spec": ">=1.1.3 <2.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/hexo"
-    ]
-  ],
-  "_from": "chalk@>=1.1.3 <2.0.0",
-  "_id": "chalk@1.1.3",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/chalk",
-  "_nodeVersion": "0.10.32",
-  "_npmOperationalInternal": {
-    "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/chalk-1.1.3.tgz_1459210604109_0.3892582862172276"
-  },
-  "_npmUser": {
-    "name": "qix",
-    "email": "i.am.qix@gmail.com"
-  },
-  "_npmVersion": "2.14.2",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "chalk@^1.1.3",
-    "scope": null,
-    "escapedName": "chalk",
-    "name": "chalk",
-    "rawSpec": "^1.1.3",
-    "spec": ">=1.1.3 <2.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/hexo",
-    "/hexo-log",
-    "/hexo/hexo-cli"
-  ],
-  "_resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
-  "_shasum": "a8115c55e4a702fe4d150abd3872822a7e09fc98",
-  "_shrinkwrap": null,
-  "_spec": "chalk@^1.1.3",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/hexo",
-  "bugs": {
-    "url": "https://github.com/chalk/chalk/issues"
-  },
-  "dependencies": {
-    "ansi-styles": "^2.2.1",
-    "escape-string-regexp": "^1.0.2",
-    "has-ansi": "^2.0.0",
-    "strip-ansi": "^3.0.0",
-    "supports-color": "^2.0.0"
-  },
-  "description": "Terminal string styling done right. Much color.",
-  "devDependencies": {
-    "coveralls": "^2.11.2",
-    "matcha": "^0.6.0",
-    "mocha": "*",
-    "nyc": "^3.0.0",
-    "require-uncached": "^1.0.2",
-    "resolve-from": "^1.0.0",
-    "semver": "^4.3.3",
-    "xo": "*"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "a8115c55e4a702fe4d150abd3872822a7e09fc98",
-    "tarball": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"
-  },
-  "engines": {
-    "node": ">=0.10.0"
-  },
-  "files": [
-    "index.js"
-  ],
-  "gitHead": "0d8d8c204eb87a4038219131ad4d8369c9f59d24",
-  "homepage": "https://github.com/chalk/chalk#readme",
-  "keywords": [
-    "color",
-    "colour",
-    "colors",
-    "terminal",
-    "console",
-    "cli",
-    "string",
-    "str",
-    "ansi",
-    "style",
-    "styles",
-    "tty",
-    "formatting",
-    "rgb",
-    "256",
-    "shell",
-    "xterm",
-    "log",
-    "logging",
-    "command-line",
-    "text"
-  ],
-  "license": "MIT",
-  "maintainers": [
-    {
-      "name": "qix",
-      "email": "i.am.qix@gmail.com"
-    },
-    {
-      "name": "sindresorhus",
-      "email": "sindresorhus@gmail.com"
-    },
-    {
-      "name": "unicorn",
-      "email": "sindresorhus+unicorn@gmail.com"
-    }
-  ],
-  "name": "chalk",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/chalk/chalk.git"
-  },
-  "scripts": {
-    "bench": "matcha benchmark.js",
-    "coverage": "nyc npm test && nyc report",
-    "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls",
-    "test": "xo && mocha"
-  },
-  "version": "1.1.3",
-  "xo": {
-    "envs": [
-      "node",
-      "mocha"
-    ]
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/chalk/readme.md
----------------------------------------------------------------------
diff --git a/node_modules/chalk/readme.md b/node_modules/chalk/readme.md
deleted file mode 100644
index 5cf111e..0000000
--- a/node_modules/chalk/readme.md
+++ /dev/null
@@ -1,213 +0,0 @@
-<h1 align="center">
-	<br>
-	<br>
-	<img width="360" src="https://cdn.rawgit.com/chalk/chalk/19935d6484811c5e468817f846b7b3d417d7bf4a/logo.svg" alt="chalk">
-	<br>
-	<br>
-	<br>
-</h1>
-
-> Terminal string styling done right
-
-[![Build Status](https://travis-ci.org/chalk/chalk.svg?branch=master)](https://travis-ci.org/chalk/chalk)
-[![Coverage Status](https://coveralls.io/repos/chalk/chalk/badge.svg?branch=master)](https://coveralls.io/r/chalk/chalk?branch=master)
-[![](http://img.shields.io/badge/unicorn-approved-ff69b4.svg)](https://www.youtube.com/watch?v=9auOCbH5Ns4)
-
-
-[colors.js](https://github.com/Marak/colors.js) used to be the most popular string styling module, but it has serious deficiencies like extending `String.prototype` which causes all kinds of [problems](https://github.com/yeoman/yo/issues/68). Although there are other ones, they either do too much or not enough.
-
-**Chalk is a clean and focused alternative.**
-
-![](https://github.com/chalk/ansi-styles/raw/master/screenshot.png)
-
-
-## Why
-
-- Highly performant
-- Doesn't extend `String.prototype`
-- Expressive API
-- Ability to nest styles
-- Clean and focused
-- Auto-detects color support
-- Actively maintained
-- [Used by ~4500 modules](https://www.npmjs.com/browse/depended/chalk) as of July 15, 2015
-
-
-## Install
-
-```
-$ npm install --save chalk
-```
-
-
-## Usage
-
-Chalk comes with an easy to use composable API where you just chain and nest the styles you want.
-
-```js
-var chalk = require('chalk');
-
-// style a string
-chalk.blue('Hello world!');
-
-// combine styled and normal strings
-chalk.blue('Hello') + 'World' + chalk.red('!');
-
-// compose multiple styles using the chainable API
-chalk.blue.bgRed.bold('Hello world!');
-
-// pass in multiple arguments
-chalk.blue('Hello', 'World!', 'Foo', 'bar', 'biz', 'baz');
-
-// nest styles
-chalk.red('Hello', chalk.underline.bgBlue('world') + '!');
-
-// nest styles of the same type even (color, underline, background)
-chalk.green(
-	'I am a green line ' +
-	chalk.blue.underline.bold('with a blue substring') +
-	' that becomes green again!'
-);
-```
-
-Easily define your own themes.
-
-```js
-var chalk = require('chalk');
-var error = chalk.bold.red;
-console.log(error('Error!'));
-```
-
-Take advantage of console.log [string substitution](http://nodejs.org/docs/latest/api/console.html#console_console_log_data).
-
-```js
-var name = 'Sindre';
-console.log(chalk.green('Hello %s'), name);
-//=> Hello Sindre
-```
-
-
-## API
-
-### chalk.`<style>[.<style>...](string, [string...])`
-
-Example: `chalk.red.bold.underline('Hello', 'world');`
-
-Chain [styles](#styles) and call the last one as a method with a string argument. Order doesn't matter, and later styles take precedent in case of a conflict. This simply means that `Chalk.red.yellow.green` is equivalent to `Chalk.green`.
-
-Multiple arguments will be separated by space.
-
-### chalk.enabled
-
-Color support is automatically detected, but you can override it by setting the `enabled` property. You should however only do this in your own code as it applies globally to all chalk consumers.
-
-If you need to change this in a reusable module create a new instance:
-
-```js
-var ctx = new chalk.constructor({enabled: false});
-```
-
-### chalk.supportsColor
-
-Detect whether the terminal [supports color](https://github.com/chalk/supports-color). Used internally and handled for you, but exposed for convenience.
-
-Can be overridden by the user with the flags `--color` and `--no-color`. For situations where using `--color` is not possible, add an environment variable `FORCE_COLOR` with any value to force color. Trumps `--no-color`.
-
-### chalk.styles
-
-Exposes the styles as [ANSI escape codes](https://github.com/chalk/ansi-styles).
-
-Generally not useful, but you might need just the `.open` or `.close` escape code if you're mixing externally styled strings with your own.
-
-```js
-var chalk = require('chalk');
-
-console.log(chalk.styles.red);
-//=> {open: '\u001b[31m', close: '\u001b[39m'}
-
-console.log(chalk.styles.red.open + 'Hello' + chalk.styles.red.close);
-```
-
-### chalk.hasColor(string)
-
-Check whether a string [has color](https://github.com/chalk/has-ansi).
-
-### chalk.stripColor(string)
-
-[Strip color](https://github.com/chalk/strip-ansi) from a string.
-
-Can be useful in combination with `.supportsColor` to strip color on externally styled text when it's not supported.
-
-Example:
-
-```js
-var chalk = require('chalk');
-var styledString = getText();
-
-if (!chalk.supportsColor) {
-	styledString = chalk.stripColor(styledString);
-}
-```
-
-
-## Styles
-
-### Modifiers
-
-- `reset`
-- `bold`
-- `dim`
-- `italic` *(not widely supported)*
-- `underline`
-- `inverse`
-- `hidden`
-- `strikethrough` *(not widely supported)*
-
-### Colors
-
-- `black`
-- `red`
-- `green`
-- `yellow`
-- `blue` *(on Windows the bright version is used as normal blue is illegible)*
-- `magenta`
-- `cyan`
-- `white`
-- `gray`
-
-### Background colors
-
-- `bgBlack`
-- `bgRed`
-- `bgGreen`
-- `bgYellow`
-- `bgBlue`
-- `bgMagenta`
-- `bgCyan`
-- `bgWhite`
-
-
-## 256-colors
-
-Chalk does not support anything other than the base eight colors, which guarantees it will work on all terminals and systems. Some terminals, specifically `xterm` compliant ones, will support the full range of 8-bit colors. For this the lower level [ansi-256-colors](https://github.com/jbnicolai/ansi-256-colors) package can be used.
-
-
-## Windows
-
-If you're on Windows, do yourself a favor and use [`cmder`](http://bliker.github.io/cmder/) instead of `cmd.exe`.
-
-
-## Related
-
-- [chalk-cli](https://github.com/chalk/chalk-cli) - CLI for this module
-- [ansi-styles](https://github.com/chalk/ansi-styles/) - ANSI escape codes for styling strings in the terminal
-- [supports-color](https://github.com/chalk/supports-color/) - Detect whether a terminal supports color
-- [strip-ansi](https://github.com/chalk/strip-ansi) - Strip ANSI escape codes
-- [has-ansi](https://github.com/chalk/has-ansi) - Check if a string has ANSI escape codes
-- [ansi-regex](https://github.com/chalk/ansi-regex) - Regular expression for matching ANSI escape codes
-- [wrap-ansi](https://github.com/chalk/wrap-ansi) - Wordwrap a string with ANSI escape codes
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/cheerio/History.md
----------------------------------------------------------------------
diff --git a/node_modules/cheerio/History.md b/node_modules/cheerio/History.md
deleted file mode 100644
index 227fc17..0000000
--- a/node_modules/cheerio/History.md
+++ /dev/null
@@ -1,556 +0,0 @@
-
-0.20.0 / 2016-02-01
-==================
-
- * Add coveralls badge, remove link to old report (Felix Böhm)
- * Update lodash dependeny to 4.1.0 (leif.hanack)
- * Fix PR #726 adding 'appendTo()' and 'prependTo()' (Delgan)
- * Added appendTo and prependTo with tests #641 (digihaven)
- * Fix #780 by changing options context in '.find()' (Felix Böhm)
- * Add an unit test checking the query of child (Delgan)
- * fix #667: attr({foo: null}) removes attribute foo, like attr('foo', null) (Ray Waldin)
- * Include reference to dedicated "Loading" section (Mike Pennisi)
- * Added load method to $ (alanev)
- * update css-select to 1.2.0 (Felix Böhm)
- * Fixing Grammatical Error (Dan Corman)
- * Test against node v0.12 --> v4.2 (Jason Kurian)
- * Correct output in example (Felix Böhm)
- * Fix npm files filter (Bogdan Chadkin)
- * Enable setting data on all elements in selection (Mike Pennisi)
- * Reinstate `$.fn.toArray` (Mike Pennisi)
- * update css-select to 1.1.0 (Thomas Shafer)
- * Complete implementation of `wrap` (Mike Pennisi)
- * Correct name of unit test (Mike Pennisi)
- * Correct grammar in test titles (Mike Pennisi)
- * Normalize whitespace (Mike Pennisi)
- * Insert omitted assertion (Mike Pennisi)
- * Update invocation of `children` (Mike Pennisi)
- * Begin implementation of `wrap` method (Dandlezzz)
- * Update Readme.md (Sven Slootweg)
- * fix document's mistake in Readme.md (exoticknight)
- * Add tests for setting text and html as non-strings (Ryc O'Chet)
- * Fix for passing non-string values to .html or .text (Ryc O'Chet)
- * use a selector to filter form elements (fb55)
- * fix README.md typo (Yutian Li)
- * README: fix spelling (Chris Rebert)
- * Added support for options without a `value` attribute. Fixes #633 (Todd Wolfson)
- * responding to pull request feedback - remove item() method and related tests (Ray Waldin)
- * add length property and item method to object returned by prop('style'), plus tests (Ray Waldin)
- * Added .prop method to readme (Artem Burtsev)
- * Added .prop method (Artem Burtsev)
- * Added Gitter badge (The Gitter Badger)
-
-0.19.0 / 2015-03-21
-==================
-
- * fixed allignment (fb55)
- * added test case for malformed json in data attributes (fb55)
- * fix: handle some extreme cases like `data-custom="{{templatevar}}"`. There is possibility error while parsing json . (Harish.K)
- * Add missing optional selector doc for {prev,next}{All,Until} (Jérémie Astori)
- * update to dom-serializer@0.1.0 (Felix Böhm)
- * Document `Cheerio#serialzeArray` (Mike Pennisi)
- * Fixed up `serializeArray()` and added multiple support (Todd Wolfson)
- * Implement serializeArray() (Jarno Leppänen)
- * recognize options in $.xml() (fb55)
- * lib/static.js: text(): rm errant space before ++ (Chris Rebert)
- * Do not expose internal `children` array (Mike Pennisi)
- * Change lodash dependencies to ^3.1.0 (Samy Pessé)
- * Update lodash@3.1.0 (Samy Pessé)
- * Updates Readme.md: .not(function (index, elem)) (Patrick Ward)
- * update to css-select@1.0.0 (fb55)
- * Allow failures in Node.js v0.11 (Mike Pennisi)
- * Added: Gittask badge (Matthew Mueller)
- * Isolate prototypes of functions created via `load` (Mike Pennisi)
- * Updates Readme.md: adds JS syntax highlighting (frankcash)
- * #608 -- Add support for insertBefore/insertAfter syntax. Supports target types of: $, [$], selector (both single and multiple results) (Ben Cochran)
- * Clone input nodes when inserting over a set (Mike Pennisi)
- * Move unit test files (Mike Pennisi)
- * remove unnecessarily tricky code (David Chambers)
- * pass options to $.html in toString (fb55)
- * add license info to package.json (Chris Rebert)
- * xyz@~0.5.0 (David Chambers)
- * Remove unofficial signature of `children` (Mike Pennisi)
- * Fix bug in `css` method (Mike Pennisi)
- * Correct bug in implementation of `Cheerio#val` (Mike Pennisi)
-
-0.18.0 / 2014-11-06
-==================
-
- * bump htmlparser2 dependency to ~3.8.1 (Chris Rebert)
- * Correct unit test titles (Mike Pennisi)
- * Correct behavior of `after` and `before` (Mike Pennisi)
- * implement jQuery's .has() (Chris Rebert)
- * Update repository url (haqii)
- * attr() should return undefined or name for booleans (Raoul Millais)
- * Update Readme.md (Ryan Breen)
- * Implement `Cheerio#not` (Mike Pennisi)
- * Clone nodes according to original parsing options (Mike Pennisi)
- * fix lint error (David Chambers)
- * Add explicit tests for DOM level 1 API (Mike Pennisi)
- * Expose DOM level 1 API for Node-like objects (Mike Pennisi)
- * Correct error in documentation (Mike Pennisi)
- * Return a fully-qualified Function from `$.load` (Mike Pennisi)
- * Update tests to avoid duck typing (Mike Pennisi)
- * Alter "loaded" functions to produce true instances (Mike Pennisi)
- * Organize tests for `cheerio.load` (Mike Pennisi)
- * Complete `$.prototype.find` (Mike Pennisi)
- * Use JSHint's `extends` option (Mike Pennisi)
- * Remove aliases for exported methods (Mike Pennisi)
- * Disallow unused variables (Mike Pennisi)
- * Remove unused internal variables (Mike Pennisi)
- * Remove unused variables from unit tests (Mike Pennisi)
- * Remove unused API method references (Mike Pennisi)
- * Move tests for `contains` method (Mike Pennisi)
- * xyz@0.4.0 (David Chambers)
- * Created a wiki for companies using cheerio in production (Matthew Mueller)
- * Implement `$.prototype.index` (Mike Pennisi)
- * Implement `$.prototype.addBack` (Mike Pennisi)
- * Added double quotes to radio attribute name to account for characters such as brackets (akant10)
- * Update History.md (Gabriel Falkenberg)
- * add 0.17.0 changelog (David Chambers)
- * exit prepublish script if tag not found (David Chambers)
- * alphabetize devDependencies (fb55)
- * ignore coverage dir (fb55)
- * submit coverage to coveralls (fb55)
- * replace jscoverage with istanbul (fb55)
-
-0.17.0 / 2014-06-10
-==================
-
- * Fix bug in internal `uniqueSplice` function (Mike Pennisi)
- * accept buffer argument to cheerio.load (David Chambers)
- * Respect options on the element level (Alex Indigo)
- * Change state definition to more readable (Artem Burtsev)
- * added test (0xBADC0FFEE)
- * add class only if doesn't exist (Artem Burtsev)
- * Made it less insane. (Alex Indigo)
- * Implement `Cheerio#add` (Mike Pennisi)
- * Use "loaded" instance of Cheerio in unit tests (Mike Pennisi)
- * Be more strict with object check. (Alex Indigo)
- * Added options argument to .html() static method. (Alex Indigo)
- * Fixed encoding mishaps. Adjusted tests. (Alex Indigo)
- * use dom-serializer module (fb55)
- * don't test on 0.8, don't ignore 0.11 (Felix Böhm)
- * parse: rm unused variables (coderaiser)
- * cheerio: rm unused variable (coderaiser)
- * Fixed test (Avi Kohn)
- * Added test (Avi Kohn)
- * Changed == to === (Avi Kohn)
- * Fixed a bug in removing type="hidden" attr (Avi Kohn)
- * sorted (Alexey Raspopov)
- * add `muted` attr to booleanAttributes (Alexey Raspopov)
- * fixed context of `this` in .html (Felix Böhm)
- * append new elements for each element in selection (fb55)
-
-0.16.0 / 2014-05-08
-==================
-
- * fix `make bench` (David Chambers)
- * makefile: add release-* targets (David Chambers)
- * alphabetize dependencies (David Chambers)
- * Rewrite `data` internals with caching behavior (Mike Pennisi)
- * Fence .val example as js (Kevin Sawicki)
- * Fixed typos. Deleted trailing whitespace from test/render.js (Nattaphoom Ch)
- * Fix manipulation APIs with removed elements (kpdecker)
- * Perform manual string parsing for hasClass (kpdecker)
- * Fix existing element removal (kpdecker)
- * update render tests (Felix Böhm)
- * fixed cheerio path (Felix Böhm)
- * use `entities.escape` for attribute values (Felix Böhm)
- * bump entities version (Felix Böhm)
- * remove lowerCaseTags option from readme (Felix Böhm)
- * added test case for .html in xmlMode (fb55)
- * render xml in `html()` when `xmlMode: true` (fb55)
- * use a map for booleanAttributes (fb55)
- * update singleTags, use utils.isTag (fb55)
- * update travis badge URL (Felix Böhm)
- * use typeof instead of _.isString and _.isNumber (fb55)
- * use Array.isArray instead of _.isArray (fb55)
- * replace _.isFunction with typeof (fb55)
- * removed unnecessary error message (fb55)
- * decode entities in htmlparser2 (fb55)
- * pass options object to CSSselect (fb55)
-
-0.15.0 / 2014-04-08
-==================
-
- * Update callbacks to pass element per docs (@kpdecker)
- * preserve options (@fb55)
- * Use SVG travis badge (@t3chnoboy)
- * only use static requires (@fb55)
- * Optimize manipulation methods (@kpdecker)
- * Optimize add and remove class cases (@kpdecker)
- * accept dom of DomHandler to cheerio.load (@nleush)
- * added parentsUntil method (@finspin)
- * Add performance optimization and bug fix `empty` method (@kpdecker)
-
-0.14.0 / 2014-04-01
-==================
-
- * call encodeXML and directly expose decodeHTML (@fb55)
- * use latest htmlparser2 and entities versions (@fb55)
- * Deprecate `$.fn.toArray` (@jugglinmike)
- * Implement `$.fn.get` (@jugglinmike)
- * .replaceWith now replaces all selected elements. (@xavi-)
- * Correct arguments for 'replaceWith' callback (@jugglinmike)
- * switch to lodash (@fb55)
- * update to entities@0.5.0 (@fb55)
- * Fix attr when $ collection contains text modules (@kpdecker)
- * Update to latest version of expect.js (@jugglinmike)
- * Remove nodes from their previous structures (@jugglinmike)
- * Update render.js (@stevenvachon)
- * CDATA test (@stevenvachon)
- * only ever one child index for cdata (@stevenvachon)
- * don't loop through cdata children array (@stevenvachon)
- * proper rendering of CDATA (@stevenvachon)
- * Add cheerio-only bench option (@kpdecker)
- * Avoid delete operations (@kpdecker)
- * Add independent html benchmark (@kpdecker)
- * Cache tag check in render (@kpdecker)
- * Simplify attribute rendering step (@kpdecker)
- * Add html rendering bench case (@kpdecker)
- * Remove unnecessary check from removeAttr (@kpdecker)
- * Remove unnecessary encoding step for attrs (@kpdecker)
- * Add test for removeAttr+attr on boolean attributes (@kpdecker)
- * Add single element benchmark case (@kpdecker)
- * Optimize filter with selector (@kpdecker)
- * Fix passing context as dom node (@alfred-nsh)
- * Fix bug in `nextUntil` (@jugglinmike)
- * Fix bug in `nextAll` (@jugglinmike)
- * Implement `selector` argument of `next` method (@jugglinmike)
- * Fix bug in `prevUntil` (@jugglinmike)
- * Implement `selector` argument of `prev` method (@jugglinmike)
- * Fix bug in `prevAll` (@jugglinmike)
- * Fix bug in `siblings` (@jugglinmike)
- * Avoid unnecessary indexOf from toggleClass (@kpdecker)
- * Use strict equality rather than falsy check in eq (@kpdecker)
- * Add benchmark coverage for all $ APIs (@kpdecker)
- * Optimize filter Cheerio intermediate creation (@kpdecker)
- * Optimize siblings cheerio instance creation (@kpdecker)
- * Optimize identity cases for first/last/eq (@kpdecker)
- * Use domEach for traversal (@kpdecker)
- * Inline children lookup in find (@kpdecker)
- * Use domEach in data accessor (@kpdecker)
- * Avoid cheerio creation in add/remove/toggleClass (@kpdecker)
- * Implement getAttr local helper (@kpdecker)
-
-0.13.1 / 2014-01-07
-==================
-
- * Fix select with context in Cheerio function (@jugglinmike)
- * Remove unecessary DOM maintenance logic (@jugglinmike)
- * Deprecate support for node 0.6
-
-0.13.0 / 2013-12-30
-==================
-
- * Remove "root" node (@jugglinmike)
- * Fix bug in `prevAll`, `prev`, `nextAll`, `next`, `prevUntil`, `nextUntil` (@jugglinmike)
- * Fix `replaceWith` method (@jugglinmike)
- * added nextUntil() and prevUntil() (@finspin)
- * Remove internal `connect` function (@jugglinmike)
- * Rename `Cheerio#make` to document private status (@jugginmike)
- * Remove extraneous call to `_.uniq` (@jugglinmike)
- * Use CSSselect library directly (@jugglinmike)
- * Run CI against Node v0.11 as an allowed failure (@jugginmike)
- * Correct bug in `Cheerio#parents` (@jugglinmike)
- * Implement `$.fn.end` (@jugginmike)
- * Ignore colons inside of url(.*) when parsing css (@Meekohi)
- * Introduce rudimentary benchmark suite (@jugglinmike)
- * Update HtmlParser2 version (@jugglinmike)
- * Correct inconsistency in `$.fn.map` (@jugglinmike)
- * fixed traversing tests (@finspin)
- * Simplify `make` method (@jugglinmike)
- * Avoid shadowing instance methods from arrays (@jugglinmike)
-
-0.12.4 / 2013-11-12
-==================
-
- * Coerce JSON values returned by `data` (@jugglinmike)
- * issue #284: when rendering HTML, use original data attributes (@Trott)
- * Introduce JSHint for automated code linting (@jugglinmike)
- * Prevent `find` from returning duplicate elements (@jugglinmike)
- * Implement function signature of `replaceWith` (@jugglinmike)
- * Implement function signature of `before` (@jugglinmike)
- * Implement function signature of `after` (@jugglinmike)
- * Implement function signature of `append`/`prepend` (@jugglinmike)
- * Extend iteration methods to accept nodes (@jugglinmike)
- * Improve `removeClass` (@jugglinmike)
- * Complete function signature of `addClass` (@jugglinmike)
- * Fix bug in `removeClass` (@jugglinmike)
- * Improve contributing.md (@jugglinmike)
- * Fix and document .css() (@jugglinmike)
-
-0.12.3 / 2013-10-04
-===================
-
- * Add .toggleClass() function (@cyberthom)
- * Add contributing guidelines (@jugglinmike)
- * Fix bug in `siblings` (@jugglinmike)
- * Correct the implementation `filter` and `is` (@jugglinmike)
- * add .data() function (@andi-neck)
- * add .css() (@yields)
- * Implements contents() (@jlep)
-
-0.12.2 / 2013-09-04
-==================
-
- * Correct implementation of `$.fn.text` (@jugglinmike)
- * Refactor Cheerio array creation (@jugglinmike)
- * Extend manipulation methods to accept Arrays (@jugglinmike)
- * support .attr(attributeName, function(index, attr)) (@xiaohwan)
-
-0.12.1 / 2013-07-30
-==================
-
- * Correct behavior of `Cheerio#parents` (@jugglinmike)
- * Double quotes inside attributes kills HTML (@khoomeister)
- * Making next({}) and prev({}) return empty object (@absentTelegraph)
- * Implement $.parseHTML (@jugglinmike)
- * Correct bug in jQuery.fn.closest (@jugglinmike)
- * Correct behavior of $.fn.val on 'option' elements (@jugglinmike)
-
-0.12.0 / 2013-06-09
-===================
-
-  * Breaking Change: Changed context from parent to the actual passed one (@swissmanu)
-  * Fixed: jquery checkbox val behavior (@jhubble)
-  * Added: output xml with $.xml() (@Maciek416)
-  * Bumped: htmlparser2 to 3.1.1
-  * Fixed: bug in attr(key, val) on empty objects (@farhadi)
-  * Added: prevAll, nextAll (@lessmind)
-  * Fixed: Safety check in parents and closest (@zero21xxx)
-  * Added: .is(sel) (@zero21xxx)
-
-0.11.0 / 2013-04-22
-==================
-
-* Added: .closest() (@jeremy-dentel)
-* Added: .parents() (@zero21xxx)
-* Added: .val() (@rschmukler & @leahciMic)
-* Added: Travis support for node 0.10.0 (@jeremy-dentel)
-* Fixed: .find() if no selector (@davidchambers)
-* Fixed: Propagate syntax errors caused by invalid selectors (@davidchambers)
-
-0.10.8 / 2013-03-11
-==================
-
-* Add slice method (SBoudrias)
-
-0.10.7 / 2013-02-10
-==================
-
-* Code & doc cleanup (davidchambers)
-* Fixed bug in filter (jugglinmike)
-
-0.10.6 / 2013-01-29
-==================
-
-* Added `$.contains(...)` (jugglinmike)
-* formatting cleanup (davidchambers)
-* Bug fix for `.children()` (jugglinmike & davidchambers)
-* Remove global `render` bug (wvl)
-
-0.10.5 / 2012-12-18
-===================
-
-* Fixed botched publish from 0.10.4 - changes should now be present
-
-0.10.4 / 2012-12-16
-==================
-
-* $.find should query descendants only (@jugglinmike)
-* Tighter underscore dependency
-
-0.10.3 / 2012-11-18
-===================
-
-* fixed outer html bug
-* Updated documentation for $(...).html() and $.html()
-
-0.10.2 / 2012-11-17
-===================
-
-* Added a toString() method (@bensheldon)
-* use `_.each` and `_.map` to simplify cheerio namesakes (@davidchambers)
-* Added filter() with tests and updated readme (@bensheldon & @davidchambers)
-* Added spaces between attributes rewritten by removeClass (@jos3000)
-* updated docs to remove reference to size method (@ironchefpython)
-* removed HTML tidy/pretty print from cheerio
-
-0.10.1 / 2012-10-04
-===================
-
-* Fixed regression, filtering with a context (#106)
-
-0.10.0 / 2012-09-24
-===================
-
-* Greatly simplified and reorganized the library, reducing the loc by 30%
-* Now supports mocha's test-coverage
-* Deprecated self-closing tags (HTML5 doesn't require them)
-* Fixed error thrown in removeClass(...) @robashton
-
-0.9.2 / 2012-08-10
-==================
-
-* added $(...).map(fn)
-* manipulation: refactor `makeCheerioArray`
-* make .removeClass() remove *all* occurrences (#64)
-
-0.9.1 / 2012-08-03
-==================
-
-* fixed bug causing options not to make it to the parser
-
-0.9.0 / 2012-07-24
-==================
-
-* Added node 8.x support
-* Removed node 4.x support
-* Add html(dom) support (@wvl)
-* fixed xss vulnerabilities on .attr(), .text(), & .html() (@benatkin, @FB55)
-* Rewrote tests into javascript, removing coffeescript dependency (@davidchambers)
-* Tons of cleanup (@davidchambers)
-
-0.8.3 / 2012-06-12
-==================
-
-* Fixed minor package regression (closes #60)
-
-0.8.2 / 2012-06-11
-==================
-
-* Now fails gracefully in cases that involve special chars, which is inline with jQuery (closes #59)
-* text() now decode special entities (closes #52)
-* updated travis.yml to test node 4.x
-
-0.8.1 / 2012-06-02
-==================
-
-* fixed regression where if you created an element, it would update the root
-* compatible with node 4.x (again)
-
-0.8.0 / 2012-05-27
-==================
-
-* Updated CSS parser to use FB55/CSSselect. Cheerio now supports most CSS3 psuedo selectors thanks to @FB55.
-* ignoreWhitespace now on by default again. See #55 for context.
-* Changed $(':root') to $.root(), cleaned up $.clone()
-* Support for .eq(i) thanks to @alexbardas
-* Removed support for node 0.4.x
-* Fixed memory leak where package.json was continually loaded
-* Tons more tests
-
-0.7.0 / 2012-04-08
-==================
-
-* Now testing with node v0.7.7
-* Added travis-ci integration
-* Replaced should.js with expect.js. Browser testing to come
-* Fixed spacing between attributes and their values
-* Added HTML tidy/pretty print
-* Exposed node-htmlparser2 parsing options
-* Revert .replaceWith(...) to be consistent with jQuery
-
-0.6.2 / 2012-02-12
-==================
-
-* Fixed .replaceWith(...) regression
-
-0.6.1 / 2012-02-12
-==================
-
-* Added .first(), .last(), and .clone() commands.
-* Option to parse using whitespace added to `.load`.
-* Many bug fixes to make cheerio more aligned with jQuery.
-* Added $(':root') to select the highest level element.
-
-Many thanks to the contributors that made this release happen: @ironchefpython and @siddMahen
-
-0.6.0 / 2012-02-07
-==================
-
-* *Important:* `$(...).html()` now returns inner HTML, which is in line with the jQuery spec
-* `$.html()` returns the full HTML string. `$.html([cheerioObject])` will return the outer(selected element's tag) and inner HTML of that object
-* Fixed bug that prevented HTML strings with depth (eg. `append('<ul><li><li></ul>')`) from getting `parent`, `next`, `prev` attributes.
-* Halted [htmlparser2](https://github.com/FB55/node-htmlparser) at v2.2.2 until single attributes bug gets fixed.
-
-0.5.1 / 2012-02-05
-==================
-
-* Fixed minor regression: $(...).text(fn) would fail
-
-0.5.1 / 2012-02-05
-==================
-
-* Fixed regression: HTML pages with comments would fail
-
-0.5.0 / 2012-02-04
-==================
-
-* Transitioned from Coffeescript back to Javascript
-* Parser now ignores whitespace
-* Fixed issue with double slashes on self-enclosing tags
-* Added boolean attributes to html rendering
-
-0.4.2 / 2012-01-16
-==================
-
-* Multiple selectors support: $('.apple, .orange'). Thanks @siddMahen!
-* Update package.json to always use latest cheerio-soupselect
-* Fix memory leak in index.js
-
-0.4.1 / 2011-12-19
-==================
-* Minor packaging changes to allow `make test` to work from npm installation
-
-0.4.0 / 2011-12-19
-==================
-
-* Rewrote all unit tests as cheerio transitioned from vows -> mocha
-* Internally, renderer.render -> render(...), parser.parse -> parse(...)
-* Append, prepend, html, before, after all work with only text (no tags)
-* Bugfix: Attributes can now be removed from script and style tags
-* Added yield as a single tag
-* Cheerio now compatible with node >=0.4.7
-
-0.3.2 / 2011-12-1
-=================
-
-* Fixed $(...).text(...) to work with "root" element
-
-0.3.1 / 2011-11-25
-==================
-
-* Now relying on cheerio-soupselect instead of node-soupselect
-* Removed all lingering htmlparser dependencies
-* parser now returns parent "root" element. Root now never needs to be updated when there is multiple roots. This fixes ongoing issues with before(...), after(...) and other manipulation functions
-* Added jQuery's $(...).replaceWith(...)
-
-0.3.0 / 2011-11-19
-==================
-
-* Now using htmlparser2 for parsing (2x speed increase, cleaner, actively developed)
-* Added benchmark directory for future speed tests
-* $('...').dom() was funky, so it was removed in favor of $('...').get(). $.dom() still works the same.
-* $.root now correctly static across all instances of $
-* Added a screencast
-
-0.2.2 / 2011-11-9
-=================
-
-* Traversing will select `<script>` and `<style>` tags (Closes Issue: #8)
-* .text(string) now working with empty elements (Closes Issue: #7)
-* Fixed before(...) & after(...) again if there is no parent (Closes Issue: #2)
-
-0.2.1 / 2011-11-5
-=================
-
-* Fixed before(...) & after(...) if there is no parent (Closes Issue: #2)
-* Comments now rendered correctly (Closes Issue: #5)
-
-< 0.2.0 / 2011-10-31
-====================
-
-* Initial release (untracked development)

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/cheerio/Readme.md
----------------------------------------------------------------------
diff --git a/node_modules/cheerio/Readme.md b/node_modules/cheerio/Readme.md
deleted file mode 100644
index 368738b..0000000
--- a/node_modules/cheerio/Readme.md
+++ /dev/null
@@ -1,1011 +0,0 @@
-# cheerio [![Build Status](https://secure.travis-ci.org/cheeriojs/cheerio.svg?branch=master)](http://travis-ci.org/cheeriojs/cheerio) [![Gittask](https://gittask.com/cheeriojs/cheerio.svg)](https://gittask.com/cheeriojs/cheerio) [![Coverage](http://img.shields.io/coveralls/cheeriojs/cheerio.svg?branch=master&style=flat)](https://coveralls.io/r/cheeriojs/cheerio) [![Join the chat at https://gitter.im/cheeriojs/cheerio](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/cheeriojs/cheerio?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
-
-Fast, flexible, and lean implementation of core jQuery designed specifically for the server.
-
-## Introduction
-Teach your server HTML.
-
-```js
-var cheerio = require('cheerio'),
-    $ = cheerio.load('<h2 class="title">Hello world</h2>');
-
-$('h2.title').text('Hello there!');
-$('h2').addClass('welcome');
-
-$.html();
-//=> <h2 class="title welcome">Hello there!</h2>
-```
-
-## Installation
-`npm install cheerio`
-
-## Features
-__&#10084; Familiar syntax:__
-Cheerio implements a subset of core jQuery. Cheerio removes all the DOM inconsistencies and browser cruft from the jQuery library, revealing its truly gorgeous API.
-
-__&#991; Blazingly fast:__
-Cheerio works with a very simple, consistent DOM model. As a result parsing, manipulating, and rendering are incredibly efficient. Preliminary end-to-end benchmarks suggest that cheerio is about __8x__ faster than JSDOM.
-
-__&#10049; Incredibly flexible:__
-Cheerio wraps around @FB55's forgiving [htmlparser2](https://github.com/fb55/htmlparser2/). Cheerio can parse nearly any HTML or XML document.
-
-## What about JSDOM?
-I wrote cheerio because I found myself increasingly frustrated with JSDOM. For me, there were three main sticking points that I kept running into again and again:
-
-__&#8226; JSDOM's built-in parser is too strict:__
-  JSDOM's bundled HTML parser cannot handle many popular sites out there today.
-
-__&#8226; JSDOM is too slow:__
-Parsing big websites with JSDOM has a noticeable delay.
-
-__&#8226; JSDOM feels too heavy:__
-The goal of JSDOM is to provide an identical DOM environment as what we see in the browser. I never really needed all this, I just wanted a simple, familiar way to do HTML manipulation.
-
-## When I would use JSDOM
-
-Cheerio will not solve all your problems. I would still use JSDOM if I needed to work in a browser-like environment on the server, particularly if I wanted to automate functional tests.
-
-## API
-
-### Markup example we'll be using:
-
-```html
-<ul id="fruits">
-  <li class="apple">Apple</li>
-  <li class="orange">Orange</li>
-  <li class="pear">Pear</li>
-</ul>
-```
-
-This is the HTML markup we will be using in all of the API examples.
-
-### Loading
-First you need to load in the HTML. This step in jQuery is implicit, since jQuery operates on the one, baked-in DOM. With Cheerio, we need to pass in the HTML document.
-
-This is the _preferred_ method:
-
-```js
-var cheerio = require('cheerio'),
-    $ = cheerio.load('<ul id="fruits">...</ul>');
-```
-
-Optionally, you can also load in the HTML by passing the string as the context:
-
-```js
-$ = require('cheerio');
-$('ul', '<ul id="fruits">...</ul>');
-```
-
-Or as the root:
-
-```js
-$ = require('cheerio');
-$('li', 'ul', '<ul id="fruits">...</ul>');
-```
-
-You can also pass an extra object to `.load()` if you need to modify any
-of the default parsing options:
-
-```js
-$ = cheerio.load('<ul id="fruits">...</ul>', {
-    normalizeWhitespace: true,
-    xmlMode: true
-});
-```
-
-These parsing options are taken directly from [htmlparser2](https://github.com/fb55/htmlparser2/wiki/Parser-options), therefore any options that can be used in `htmlparser2` are valid in cheerio as well. The default options are:
-
-```js
-{
-    normalizeWhitespace: false,
-    xmlMode: false,
-    decodeEntities: true
-}
-
-```
-
-For a full list of options and their effects, see [this](https://github.com/fb55/DomHandler) and
-[htmlparser2's options](https://github.com/fb55/htmlparser2/wiki/Parser-options).
-
-### Selectors
-
-Cheerio's selector implementation is nearly identical to jQuery's, so the API is very similar.
-
-#### $( selector, [context], [root] )
-`selector` searches within the `context` scope which searches within the `root` scope. `selector` and `context` can be a string expression, DOM Element, array of DOM elements, or cheerio object. `root` is typically the HTML document string.
-
-This selector method is the starting point for traversing and manipulating the document. Like jQuery, it's the primary method for selecting elements in the document, but unlike jQuery it's built on top of the CSSSelect library, which implements most of the Sizzle selectors.
-
-```js
-$('.apple', '#fruits').text()
-//=> Apple
-
-$('ul .pear').attr('class')
-//=> pear
-
-$('li[class=orange]').html()
-//=> Orange
-```
-
-### Attributes
-Methods for getting and modifying attributes.
-
-#### .attr( name, value )
-Method for getting and setting attributes. Gets the attribute value for only the first element in the matched set. If you set an attribute's value to `null`, you remove that attribute. You may also pass a `map` and `function` like jQuery.
-
-```js
-$('ul').attr('id')
-//=> fruits
-
-$('.apple').attr('id', 'favorite').html()
-//=> <li class="apple" id="favorite">Apple</li>
-```
-
-> See http://api.jquery.com/attr/ for more information
-
-#### .prop( name, value )
-Method for getting and setting properties. Gets the property value for only the first element in the matched set.
-
-```js
-$('input[type="checkbox"]').prop('checked')
-//=> false
-
-$('input[type="checkbox"]').prop('checked', true).val()
-//=> ok
-```
-
-> See http://api.jquery.com/prop/ for more information
-
-#### .data( name, value )
-Method for getting and setting data attributes. Gets or sets the data attribute value for only the first element in the matched set.
-
-```js
-$('<div data-apple-color="red"></div>').data()
-//=> { appleColor: 'red' }
-
-$('<div data-apple-color="red"></div>').data('apple-color')
-//=> 'red'
-
-var apple = $('.apple').data('kind', 'mac')
-apple.data('kind')
-//=> 'mac'
-```
-
-> See http://api.jquery.com/data/ for more information
-
-#### .val( [value] )
-Method for getting and setting the value of input, select, and textarea. Note: Support for `map`, and `function` has not been added yet.
-
-```js
-$('input[type="text"]').val()
-//=> input_text
-
-$('input[type="text"]').val('test').html()
-//=> <input type="text" value="test"/>
-```
-
-#### .removeAttr( name )
-Method for removing attributes by `name`.
-
-```js
-$('.pear').removeAttr('class').html()
-//=> <li>Pear</li>
-```
-
-#### .hasClass( className )
-Check to see if *any* of the matched elements have the given `className`.
-
-```js
-$('.pear').hasClass('pear')
-//=> true
-
-$('apple').hasClass('fruit')
-//=> false
-
-$('li').hasClass('pear')
-//=> true
-```
-
-#### .addClass( className )
-Adds class(es) to all of the matched elements. Also accepts a `function` like jQuery.
-
-```js
-$('.pear').addClass('fruit').html()
-//=> <li class="pear fruit">Pear</li>
-
-$('.apple').addClass('fruit red').html()
-//=> <li class="apple fruit red">Apple</li>
-```
-
-> See http://api.jquery.com/addClass/ for more information.
-
-#### .removeClass( [className] )
-Removes one or more space-separated classes from the selected elements. If no `className` is defined, all classes will be removed. Also accepts a `function` like jQuery.
-
-```js
-$('.pear').removeClass('pear').html()
-//=> <li class="">Pear</li>
-
-$('.apple').addClass('red').removeClass().html()
-//=> <li class="">Apple</li>
-```
-
-> See http://api.jquery.com/removeClass/ for more information.
-
-#### .toggleClass( className, [switch] )
-Add or remove class(es) from the matched elements, depending on either the class's presence or the value of the switch argument. Also accepts a `function` like jQuery.
-
-```js
-$('.apple.green').toggleClass('fruit green red').html()
-//=> <li class="apple fruit red">Apple</li>
-
-$('.apple.green').toggleClass('fruit green red', true).html()
-//=> <li class="apple green fruit red">Apple</li>
-```
-
-> See http://api.jquery.com/toggleClass/ for more information.
-
-#### .is( selector )
-#### .is( element )
-#### .is( selection )
-#### .is( function(index) )
-Checks the current list of elements and returns `true` if _any_ of the elements match the selector. If using an element or Cheerio selection, returns `true` if _any_ of the elements match. If using a predicate function, the function is executed in the context of the selected element, so `this` refers to the current element.
-
-### Forms
-
-#### .serializeArray()
-
-Encode a set of form elements as an array of names and values.
-
-```js
-$('<form><input name="foo" value="bar" /></form>').serializeArray()
-//=> [ { name: 'foo', value: 'bar' } ]
-```
-
-### Traversing
-
-#### .find(selector)
-#### .find(selection)
-#### .find(node)
-Get the descendants of each element in the current set of matched elements, filtered by a selector, jQuery object, or element.
-
-```js
-$('#fruits').find('li').length
-//=> 3
-$('#fruits').find($('.apple')).length
-//=> 1
-```
-
-#### .parent([selector])
-Get the parent of each element in the current set of matched elements, optionally filtered by a selector.
-
-```js
-$('.pear').parent().attr('id')
-//=> fruits
-```
-
-#### .parents([selector])
-Get a set of parents filtered by `selector` of each element in the current set of match elements.
-```js
-$('.orange').parents().length
-// => 2
-$('.orange').parents('#fruits').length
-// => 1
-```
-
-#### .parentsUntil([selector][,filter])
-Get the ancestors of each element in the current set of matched elements, up to but not including the element matched by the selector, DOM node, or cheerio object.
-```js
-$('.orange').parentsUntil('#food').length
-// => 1
-```
-
-#### .closest(selector)
-For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.
-
-```js
-$('.orange').closest()
-// => []
-$('.orange').closest('.apple')
-// => []
-$('.orange').closest('li')
-// => [<li class="orange">Orange</li>]
-$('.orange').closest('#fruits')
-// => [<ul id="fruits"> ... </ul>]
-```
-
-#### .next([selector])
-Gets the next sibling of the first selected element, optionally filtered by a selector.
-
-```js
-$('.apple').next().hasClass('orange')
-//=> true
-```
-
-#### .nextAll([selector])
-Gets all the following siblings of the first selected element, optionally filtered by a selector.
-
-```js
-$('.apple').nextAll()
-//=> [<li class="orange">Orange</li>, <li class="pear">Pear</li>]
-$('.apple').nextAll('.orange')
-//=> [<li class="orange">Orange</li>]
-```
-
-#### .nextUntil([selector], [filter])
-Gets all the following siblings up to but not including the element matched by the selector, optionally filtered by another selector.
-
-```js
-$('.apple').nextUntil('.pear')
-//=> [<li class="orange">Orange</li>]
-```
-
-#### .prev([selector])
-Gets the previous sibling of the first selected element optionally filtered by a selector.
-
-```js
-$('.orange').prev().hasClass('apple')
-//=> true
-```
-
-#### .prevAll([selector])
-Gets all the preceding siblings of the first selected element, optionally filtered by a selector.
-
-```js
-$('.pear').prevAll()
-//=> [<li class="orange">Orange</li>, <li class="apple">Apple</li>]
-$('.pear').prevAll('.orange')
-//=> [<li class="orange">Orange</li>]
-```
-
-#### .prevUntil([selector], [filter])
-Gets all the preceding siblings up to but not including the element matched by the selector, optionally filtered by another selector.
-
-```js
-$('.pear').prevUntil('.apple')
-//=> [<li class="orange">Orange</li>]
-```
-
-#### .slice( start, [end] )
-Gets the elements matching the specified range
-
-```js
-$('li').slice(1).eq(0).text()
-//=> 'Orange'
-
-$('li').slice(1, 2).length
-//=> 1
-```
-
-#### .siblings([selector])
-Gets the first selected element's siblings, excluding itself.
-
-```js
-$('.pear').siblings().length
-//=> 2
-
-$('.pear').siblings('.orange').length
-//=> 1
-
-```
-
-#### .children([selector])
-Gets the children of the first selected element.
-
-```js
-$('#fruits').children().length
-//=> 3
-
-$('#fruits').children('.pear').text()
-//=> Pear
-```
-
-#### .contents()
-Gets the children of each element in the set of matched elements, including text and comment nodes.
-
-```js
-$('#fruits').contents().length
-//=> 3
-```
-
-#### .each( function(index, element) )
-Iterates over a cheerio object, executing a function for each matched element. When the callback is fired, the function is fired in the context of the DOM element, so `this` refers to the current element, which is equivalent to the function parameter `element`. To break out of the `each` loop early, return with `false`.
-
-```js
-var fruits = [];
-
-$('li').each(function(i, elem) {
-  fruits[i] = $(this).text();
-});
-
-fruits.join(', ');
-//=> Apple, Orange, Pear
-```
-
-#### .map( function(index, element) )
-Pass each element in the current matched set through a function, producing a new Cheerio object containing the return values. The function can return an individual data item or an array of data items to be inserted into the resulting set. If an array is returned, the elements inside the array are inserted into the set. If the function returns null or undefined, no element will be inserted.
-
-```js
-$('li').map(function(i, el) {
-  // this === el
-  return $(this).text();
-}).get().join(' ');
-//=> "apple orange pear"
-```
-
-#### .filter( selector ) <br /> .filter( selection ) <br /> .filter( element ) <br /> .filter( function(index) )
-
-Iterates over a cheerio object, reducing the set of selector elements to those that match the selector or pass the function's test. When a Cheerio selection is specified, return only the elements contained in that selection. When an element is specified, return only that element (if it is contained in the original selection). If using the function method, the function is executed in the context of the selected element, so `this` refers to the current element.
-
-Selector:
-
-```js
-$('li').filter('.orange').attr('class');
-//=> orange
-```
-
-Function:
-
-```js
-$('li').filter(function(i, el) {
-  // this === el
-  return $(this).attr('class') === 'orange';
-}).attr('class')
-//=> orange
-```
-
-#### .not( selector ) <br /> .not( selection ) <br /> .not( element ) <br /> .not( function(index, elem) )
-
-Remove elements from the set of matched elements. Given a jQuery object that represents a set of DOM elements, the `.not()` method constructs a new jQuery object from a subset of the matching elements. The supplied selector is tested against each element; the elements that don't match the selector will be included in the result. The `.not()` method can take a function as its argument in the same way that `.filter()` does. Elements for which the function returns true are excluded from the filtered set; all other elements are included.
-
-Selector:
-
-```js
-$('li').not('.apple').length;
-//=> 2
-```
-
-Function:
-
-```js
-$('li').not(function(i, el) {
-  // this === el
-  return $(this).attr('class') === 'orange';
-}).length;
-//=> 2
-```
-
-#### .has( selector ) <br /> .has( element )
-
-Filters the set of matched elements to only those which have the given DOM element as a descendant or which have a descendant that matches the given selector. Equivalent to `.filter(':has(selector)')`.
-
-Selector:
-
-```js
-$('ul').has('.pear').attr('id');
-//=> fruits
-```
-
-Element:
-
-```js
-$('ul').has($('.pear')[0]).attr('id');
-//=> fruits
-```
-
-#### .first()
-Will select the first element of a cheerio object
-
-```js
-$('#fruits').children().first().text()
-//=> Apple
-```
-
-#### .last()
-Will select the last element of a cheerio object
-
-```js
-$('#fruits').children().last().text()
-//=> Pear
-```
-
-#### .eq( i )
-Reduce the set of matched elements to the one at the specified index. Use `.eq(-i)` to count backwards from the last selected element.
-
-```js
-$('li').eq(0).text()
-//=> Apple
-
-$('li').eq(-1).text()
-//=> Pear
-```
-
-#### .get( [i] )
-
-Retrieve the DOM elements matched by the Cheerio object. If an index is specified, retrieve one of the elements matched by the Cheerio object:
-
-```js
-$('li').get(0).tagName
-//=> li
-```
-
-If no index is specified, retrieve all elements matched by the Cheerio object:
-
-```js
-$('li').get().length
-//=> 3
-```
-
-#### .index()
-#### .index( selector )
-#### .index( nodeOrSelection )
-
-Search for a given element from among the matched elements.
-
-```js
-$('.pear').index()
-//=> 2
-$('.orange').index('li')
-//=> 1
-$('.apple').index($('#fruit, li'))
-//=> 1
-```
-
-#### .end()
-End the most recent filtering operation in the current chain and return the set of matched elements to its previous state.
-
-```js
-$('li').eq(0).end().length
-//=> 3
-```
-
-#### .add( selector [, context] )
-#### .add( element )
-#### .add( elements )
-#### .add( html )
-#### .add( selection )
-Add elements to the set of matched elements.
-
-```js
-$('.apple').add('.orange').length
-//=> 2
-```
-
-#### .addBack( [filter] )
-
-Add the previous set of elements on the stack to the current set, optionally filtered by a selector.
-
-```js
-$('li').eq(0).addBack('.orange').length
-//=> 2
-```
-
-### Manipulation
-Methods for modifying the DOM structure.
-
-#### .append( content, [content, ...] )
-Inserts content as the *last* child of each of the selected elements.
-
-```js
-$('ul').append('<li class="plum">Plum</li>')
-$.html()
-//=>  <ul id="fruits">
-//      <li class="apple">Apple</li>
-//      <li class="orange">Orange</li>
-//      <li class="pear">Pear</li>
-//      <li class="plum">Plum</li>
-//    </ul>
-```
-
-#### .appendTo( target )
-Insert every element in the set of matched elements to the end of the target.
-
-```js
-$('<li class="plum">Plum</li>').appendTo('#fruits')
-$.html()
-//=>  <ul id="fruits">
-//      <li class="apple">Apple</li>
-//      <li class="orange">Orange</li>
-//      <li class="pear">Pear</li>
-//      <li class="plum">Plum</li>
-//    </ul>
-```
-
-#### .prepend( content, [content, ...] )
-Inserts content as the *first* child of each of the selected elements.
-
-```js
-$('ul').prepend('<li class="plum">Plum</li>')
-$.html()
-//=>  <ul id="fruits">
-//      <li class="plum">Plum</li>
-//      <li class="apple">Apple</li>
-//      <li class="orange">Orange</li>
-//      <li class="pear">Pear</li>
-//    </ul>
-```
-
-#### .prependTo( target )
-Insert every element in the set of matched elements to the beginning of the target.
-
-```js
-$('<li class="plum">Plum</li>').prependTo('#fruits')
-$.html()
-//=>  <ul id="fruits">
-//      <li class="plum">Plum</li>
-//      <li class="apple">Apple</li>
-//      <li class="orange">Orange</li>
-//      <li class="pear">Pear</li>
-//    </ul>
-```
-
-#### .after( content, [content, ...] )
-Insert content next to each element in the set of matched elements.
-
-```js
-$('.apple').after('<li class="plum">Plum</li>')
-$.html()
-//=>  <ul id="fruits">
-//      <li class="apple">Apple</li>
-//      <li class="plum">Plum</li>
-//      <li class="orange">Orange</li>
-//      <li class="pear">Pear</li>
-//    </ul>
-```
-
-#### .insertAfter( target )
-Insert every element in the set of matched elements after the target.
-
-```js
-$('<li class="plum">Plum</li>').insertAfter('.apple')
-$.html()
-//=>  <ul id="fruits">
-//      <li class="apple">Apple</li>
-//      <li class="plum">Plum</li>
-//      <li class="orange">Orange</li>
-//      <li class="pear">Pear</li>
-//    </ul>
-```
-
-#### .before( content, [content, ...] )
-Insert content previous to each element in the set of matched elements.
-
-```js
-$('.apple').before('<li class="plum">Plum</li>')
-$.html()
-//=>  <ul id="fruits">
-//      <li class="plum">Plum</li>
-//      <li class="apple">Apple</li>
-//      <li class="orange">Orange</li>
-//      <li class="pear">Pear</li>
-//    </ul>
-```
-
-#### .insertBefore( target )
-Insert every element in the set of matched elements before the target.
-
-```js
-$('<li class="plum">Plum</li>').insertBefore('.apple')
-$.html()
-//=>  <ul id="fruits">
-//      <li class="plum">Plum</li>
-//      <li class="apple">Apple</li>
-//      <li class="orange">Orange</li>
-//      <li class="pear">Pear</li>
-//    </ul>
-```
-
-#### .remove( [selector] )
-Removes the set of matched elements from the DOM and all their children. `selector` filters the set of matched elements to be removed.
-
-```js
-$('.pear').remove()
-$.html()
-//=>  <ul id="fruits">
-//      <li class="apple">Apple</li>
-//      <li class="orange">Orange</li>
-//    </ul>
-```
-
-#### .replaceWith( content )
-Replaces matched elements with `content`.
-
-```js
-var plum = $('<li class="plum">Plum</li>')
-$('.pear').replaceWith(plum)
-$.html()
-//=> <ul id="fruits">
-//     <li class="apple">Apple</li>
-//     <li class="orange">Orange</li>
-//     <li class="plum">Plum</li>
-//   </ul>
-```
-
-#### .empty()
-Empties an element, removing all its children.
-
-```js
-$('ul').empty()
-$.html()
-//=>  <ul id="fruits"></ul>
-```
-
-#### .html( [htmlString] )
-Gets an html content string from the first selected element. If `htmlString` is specified, each selected element's content is replaced by the new content.
-
-```js
-$('.orange').html()
-//=> Orange
-
-$('#fruits').html('<li class="mango">Mango</li>').html()
-//=> <li class="mango">Mango</li>
-```
-
-#### .text( [textString] )
-Get the combined text contents of each element in the set of matched elements, including their descendants.. If `textString` is specified, each selected element's content is replaced by the new text content.
-
-```js
-$('.orange').text()
-//=> Orange
-
-$('ul').text()
-//=>  Apple
-//    Orange
-//    Pear
-```
-
-#### .wrap( content )
-The .wrap() function can take any string or object that could be passed to the $() factory function to specify a DOM structure. This structure may be nested several levels deep, but should contain only one inmost element. A copy of this structure will be wrapped around each of the elements in the set of matched elements. This method returns the original set of elements for chaining purposes.
-
-```js
-var redFruit = $('<div class="red-fruit"></div>')
-$('.apple').wrap(redFruit)
-
-//=> <ul id="fruits">
-//     <div class="red-fruit">
-//      <li class="apple">Apple</li>
-//     </div>
-//     <li class="orange">Orange</li>
-//     <li class="plum">Plum</li>
-//   </ul>
-
-var healthy = $('<div class="healthy"></div>')
-$('li').wrap(healthy)
-
-//=> <ul id="fruits">
-//     <div class="healthy">
-//       <li class="apple">Apple</li>
-//     </div>
-//     <div class="healthy">
-//       <li class="orange">Orange</li>
-//     </div>
-//     <div class="healthy">
-//        <li class="plum">Plum</li>
-//     </div>
-//   </ul>
-```
-
-#### .css( [propertName] ) <br /> .css( [ propertyNames] ) <br /> .css( [propertyName], [value] ) <br /> .css( [propertName], [function] ) <br /> .css( [properties] )
-
-Get the value of a style property for the first element in the set of matched elements or set one or more CSS properties for every matched element.
-
-### Rendering
-When you're ready to render the document, you can use the `html` utility function:
-
-```js
-$.html()
-//=>  <ul id="fruits">
-//      <li class="apple">Apple</li>
-//      <li class="orange">Orange</li>
-//      <li class="pear">Pear</li>
-//    </ul>
-```
-
-If you want to return the outerHTML you can use `$.html(selector)`:
-
-```js
-$.html('.pear')
-//=> <li class="pear">Pear</li>
-```
-
-By default, `html` will leave some tags open. Sometimes you may instead want to render a valid XML document. For example, you might parse the following XML snippet:
-
-```xml
-$ = cheerio.load('<media:thumbnail url="http://www.foo.com/keyframe.jpg" width="75" height="50" time="12:05:01.123"/>');
-```
-
-... and later want to render to XML. To do this, you can use the 'xml' utility function:
-
-```js
-$.xml()
-//=>  <media:thumbnail url="http://www.foo.com/keyframe.jpg" width="75" height="50" time="12:05:01.123"/>
-```
-
-
-### Miscellaneous
-DOM element methods that don't fit anywhere else
-
-#### .toArray()
-Retrieve all the DOM elements contained in the jQuery set as an array.
-
-```js
-$('li').toArray()
-//=> [ {...}, {...}, {...} ]
-```
-
-#### .clone() ####
-Clone the cheerio object.
-
-```js
-var moreFruit = $('#fruits').clone()
-```
-
-### Utilities
-
-#### $.root
-
-Sometimes you need to work with the top-level root element. To query it, you can use `$.root()`.
-
-```js
-$.root().append('<ul id="vegetables"></ul>').html();
-//=> <ul id="fruits">...</ul><ul id="vegetables"></ul>
-```
-
-#### $.contains( container, contained )
-Checks to see if the `contained` DOM element is a descendant of the `container` DOM element.
-
-#### $.parseHTML( data [, context ] [, keepScripts ] )
-Parses a string into an array of DOM nodes. The `context` argument has no meaning for Cheerio, but it is maintained for API compatability.
-
-#### $.load( html[, options ] )
-Load in the HTML. (See the previous section titled "Loading" for more information.)
-
-### Plugins
-
-Once you have loaded a document, you may extend the prototype or the equivalent `fn` property with custom plugin methods:
-
-```js
-var $ = cheerio.load('<html><body>Hello, <b>world</b>!</body></html>');
-$.prototype.logHtml = function() {
-  console.log(this.html());
-};
-
-$('body').logHtml(); // logs "Hello, <b>world</b>!" to the console
-```
-
-### The "DOM Node" object
-
-Cheerio collections are made up of objects that bear some resemblence to [browser-based DOM nodes](https://developer.mozilla.org/en-US/docs/Web/API/Node). You can expect them to define the following properties:
-
-- `tagName`
-- `parentNode`
-- `previousSibling`
-- `nextSibling`
-- `nodeValue`
-- `firstChild`
-- `childNodes`
-- `lastChild`
-
-## Screencasts
-
-http://vimeo.com/31950192
-
-> This video tutorial is a follow-up to Nettut's "How to Scrape Web Pages with Node.js and jQuery", using cheerio instead of JSDOM + jQuery. This video shows how easy it is to use cheerio and how much faster cheerio is than JSDOM + jQuery.
-
-## Testing
-
-To run the test suite, download the repository, then within the cheerio directory, run:
-
-```shell
-make setup
-make test
-```
-
-This will download the development packages and run the test suite.
-
-## Contributors
-
-These are some of the contributors that have made cheerio possible:
-
-```
-project  : cheerio
- repo age : 2 years, 6 months
- active   : 285 days
- commits  : 762
- files    : 36
- authors  :
-   293  Matt Mueller            38.5%
-   133  Matthew Mueller         17.5%
-    92  Mike Pennisi            12.1%
-    54  David Chambers          7.1%
-    30  kpdecker                3.9%
-    19  Felix Böhm             2.5%
-    17  fb55                    2.2%
-    15  Siddharth Mahendraker   2.0%
-    11  Adam Bretz              1.4%
-     8  Nazar Leush             1.0%
-     7  ironchefpython          0.9%
-     6  Jarno Leppänen         0.8%
-     5  Ben Sheldon             0.7%
-     5  Jos Shepherd            0.7%
-     5  Ryan Schmukler          0.7%
-     5  Steven Vachon           0.7%
-     4  Maciej Adwent           0.5%
-     4  Amir Abu Shareb         0.5%
-     3  jeremy.dentel@brandingbrand.com 0.4%
-     3  Andi Neck               0.4%
-     2  steve                   0.3%
-     2  alexbardas              0.3%
-     2  finspin                 0.3%
-     2  Ali Farhadi             0.3%
-     2  Chris Khoo              0.3%
-     2  Rob Ashton              0.3%
-     2  Thomas Heymann          0.3%
-     2  Jaro Spisak             0.3%
-     2  Dan Dascalescu          0.3%
-     2  Torstein Thune          0.3%
-     2  Wayne Larsen            0.3%
-     1  Timm Preetz             0.1%
-     1  Xavi                    0.1%
-     1  Alex Shaindlin          0.1%
-     1  mattym                  0.1%
-     1  Felix Böhm            0.1%
-     1  Farid Neshat            0.1%
-     1  Dmitry Mazuro           0.1%
-     1  Jeremy Hubble           0.1%
-     1  nevermind               0.1%
-     1  Manuel Alabor           0.1%
-     1  Matt Liegey             0.1%
-     1  Chris O'Hara            0.1%
-     1  Michael Holroyd         0.1%
-     1  Michiel De Mey          0.1%
-     1  Ben Atkin               0.1%
-     1  Rich Trott              0.1%
-     1  Rob "Hurricane" Ashton  0.1%
-     1  Robin Gloster           0.1%
-     1  Simon Boudrias          0.1%
-     1  Sindre Sorhus           0.1%
-     1  xiaohwan                0.1%
-```
-
-## Cheerio in the real world
-
-Are you using cheerio in production? Add it to the [wiki](https://github.com/cheeriojs/cheerio/wiki/Cheerio-in-Production)!
-
-## Special Thanks
-
-This library stands on the shoulders of some incredible developers. A special thanks to:
-
-__&#8226; @FB55 for node-htmlparser2 & CSSSelect:__
-Felix has a knack for writing speedy parsing engines. He completely re-wrote both @tautologistic's `node-htmlparser` and @harry's `node-soupselect` from the ground up, making both of them much faster and more flexible. Cheerio would not be possible without his foundational work
-
-__&#8226; @jQuery team for jQuery:__
-The core API is the best of its class and despite dealing with all the browser inconsistencies the code base is extremely clean and easy to follow. Much of cheerio's implementation and documentation is from jQuery. Thanks guys.
-
-__&#8226; @visionmedia:__
-The style, the structure, the open-source"-ness" of this library comes from studying TJ's style and using many of his libraries. This dude consistently pumps out high-quality libraries and has always been more than willing to help or answer questions. You rock TJ.
-
-## License
-
-(The MIT License)
-
-Copyright (c) 2012 Matt Mueller &lt;mattmuelle@gmail.com&gt;
-
-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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/cheerio/index.js
----------------------------------------------------------------------
diff --git a/node_modules/cheerio/index.js b/node_modules/cheerio/index.js
deleted file mode 100644
index 3a040a2..0000000
--- a/node_modules/cheerio/index.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**
- * Export cheerio (with )
- */
-
-exports = module.exports = require('./lib/cheerio');
-
-/*
-  Export the version
-*/
-
-exports.version = require('./package').version;



[36/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/ajv.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/ajv.d.ts b/node_modules/ajv/lib/ajv.d.ts
deleted file mode 100644
index a45f931..0000000
--- a/node_modules/ajv/lib/ajv.d.ts
+++ /dev/null
@@ -1,282 +0,0 @@
-declare var ajv: { 
-  (options?: ajv.Options): ajv.Ajv;
-  new (options?: ajv.Options): ajv.Ajv;
-}
-
-declare namespace ajv {
-  interface Ajv {
-    /**
-    * Validate data using schema
-    * Schema will be compiled and cached (using serialized JSON as key. [json-stable-stringify](https://github.com/substack/json-stable-stringify) is used to serialize.
-    * @param  {String|Object} schemaKeyRef key, ref or schema object
-    * @param  {Any} data to be validated
-    * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`).
-    */
-    validate(schemaKeyRef: Object | string, data: any): boolean;
-    /**
-    * Create validating function for passed schema.
-    * @param  {Object} schema schema object
-    * @return {Function} validating function
-    */
-    compile(schema: Object): ValidateFunction;
-    /**
-    * Creates validating function for passed schema with asynchronous loading of missing schemas.
-    * `loadSchema` option should be a function that accepts schema uri and node-style callback.
-    * @this  Ajv
-    * @param {Object}   schema schema object
-    * @param {Function} callback node-style callback, it is always called with 2 parameters: error (or null) and validating function.
-    */
-    compileAsync(schema: Object, callback: (err: Error, validate: ValidateFunction) => any): void;
-    /**
-    * Adds schema to the instance.
-    * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored.
-    * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.
-    */
-    addSchema(schema: Array<Object> | Object, key?: string): void;
-    /**
-    * Add schema that will be used to validate other schemas
-    * options in META_IGNORE_OPTIONS are alway set to false
-    * @param {Object} schema schema object
-    * @param {String} key optional schema key
-    */
-    addMetaSchema(schema: Object, key?: string): void;
-    /**
-    * Validate schema
-    * @param {Object} schema schema to validate
-    * @return {Boolean} true if schema is valid
-    */
-    validateSchema(schema: Object): boolean;
-    /**
-    * Get compiled schema from the instance by `key` or `ref`.
-    * @param  {String} keyRef `key` that was passed to `addSchema` or full schema reference (`schema.id` or resolved id).
-    * @return {Function} schema validating function (with property `schema`).
-    */
-    getSchema(keyRef: string): ValidateFunction;
-    /**
-    * Remove cached schema(s).
-    * If no parameter is passed all schemas but meta-schemas are removed.
-    * If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.
-    * Even if schema is referenced by other schemas it still can be removed as other schemas have local references.
-    * @param  {String|Object|RegExp} schemaKeyRef key, ref, pattern to match key/ref or schema object
-    */
-    removeSchema(schemaKeyRef?: Object | string | RegExp): void;
-    /**
-    * Add custom format
-    * @param {String} name format name
-    * @param {String|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid)
-    */
-    addFormat(name: string, format: FormatValidator | FormatDefinition): void;
-    /**
-    * Define custom keyword
-    * @this  Ajv
-    * @param {String} keyword custom keyword, should be a valid identifier, should be different from all standard, custom and macro keywords.
-    * @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`.
-    */
-    addKeyword(keyword: string, definition: KeywordDefinition): void;
-    /**
-    * Get keyword definition
-    * @this  Ajv
-    * @param {String} keyword pre-defined or custom keyword.
-    * @return {Object|Boolean} custom keyword definition, `true` if it is a predefined keyword, `false` otherwise.
-    */
-    getKeyword(keyword: string): Object | boolean;
-    /**
-    * Remove keyword
-    * @this  Ajv
-    * @param {String} keyword pre-defined or custom keyword.
-    */
-    removeKeyword(keyword: string): void;
-    /**
-    * Convert array of error message objects to string
-    * @param  {Array<Object>} errors optional array of validation errors, if not passed errors from the instance are used.
-    * @param  {Object} options optional options with properties `separator` and `dataVar`.
-    * @return {String} human readable string with all errors descriptions
-    */
-    errorsText(errors?: Array<ErrorObject>, options?: ErrorsTextOptions): string;
-    errors?: Array<ErrorObject>;
-  }
-
-  interface Thenable <R> {
-    then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => U | Thenable<U>): Thenable<U>;
-  }
-
-  interface ValidateFunction {
-    (
-      data: any,
-      dataPath?: string,
-      parentData?: Object | Array<any>,
-      parentDataProperty?: string | number,
-      rootData?: Object | Array<any>
-    ): boolean | Thenable<boolean>;
-    errors?: Array<ErrorObject>;
-    schema?: Object;
-  }
-
-  interface Options {
-    v5?: boolean;
-    allErrors?: boolean;
-    verbose?: boolean;
-    jsonPointers?: boolean;
-    uniqueItems?: boolean;
-    unicode?: boolean;
-    format?: string;
-    formats?: Object;
-    unknownFormats?: boolean | string | Array<string>;
-    schemas?: Array<Object> | Object;
-    ownProperties?: boolean;
-    missingRefs?: boolean | string;
-    loadSchema?: (uri: string, cb: (err: Error, schema: Object) => any) => any;
-    removeAdditional?: boolean | string;
-    useDefaults?: boolean | string;
-    coerceTypes?: boolean | string;
-    async?: boolean | string;
-    transpile?: string | ((code: string) => string);
-    meta?: boolean | Object;
-    validateSchema?: boolean | string;
-    addUsedSchema?: boolean;
-    inlineRefs?: boolean | number;
-    passContext?: boolean;
-    loopRequired?: number;
-    multipleOfPrecision?: number;
-    errorDataPath?: string;
-    messages?: boolean;
-    beautify?: boolean | Object;
-    cache?: Object;
-  }
-
-  type FormatValidator = string | RegExp | ((data: string) => boolean);
-
-  interface FormatDefinition {
-    validate: FormatValidator;
-    compare: (data1: string, data2: string) => number;
-    async?: boolean;
-  }
-
-  interface KeywordDefinition {
-    type?: string | Array<string>;
-    async?: boolean;
-    errors?: boolean | string;
-    // schema: false makes validate not to expect schema (ValidateFunction)
-    schema?: boolean;
-    modifying?: boolean;
-    valid?: boolean;
-    // one and only one of the following properties should be present
-    validate?: ValidateFunction | SchemaValidateFunction;
-    compile?: (schema: Object, parentSchema: Object) => ValidateFunction;
-    macro?: (schema: Object, parentSchema: Object) => Object;
-    inline?: (it: Object, keyword: string, schema: Object, parentSchema: Object) => string;
-  }
-
-  interface SchemaValidateFunction {
-    (
-      schema: Object,
-      data: any,
-      parentSchema?: Object,
-      dataPath?: string,
-      parentData?: Object | Array<any>,
-      parentDataProperty?: string | number
-    ): boolean | Thenable<boolean>;
-    errors?: Array<ErrorObject>;
-  }
-
-  interface ErrorsTextOptions {
-    separator?: string;
-    dataVar?: string;
-  }
-
-  interface ErrorObject {
-    keyword: string;
-    dataPath: string;
-    schemaPath: string;
-    params: ErrorParameters;
-    // Excluded if messages set to false.
-    message?: string;
-    // These are added with the `verbose` option.
-    schema?: Object;
-    parentSchema?: Object;
-    data?: any;
-  }
-
-  type ErrorParameters = RefParams | LimitParams | AdditionalPropertiesParams |
-                          DependenciesParams | FormatParams | ComparisonParams |
-                          MultipleOfParams | PatternParams | RequiredParams |
-                          TypeParams | UniqueItemsParams | CustomParams |
-                          PatternGroupsParams | PatternRequiredParams |
-                          SwitchParams | NoParams | EnumParams;
-
-  interface RefParams {
-    ref: string;
-  }
-
-  interface LimitParams {
-    limit: number;
-  }
-
-  interface AdditionalPropertiesParams {
-    additionalProperty: string;
-  }
-
-  interface DependenciesParams {
-    property: string;
-    missingProperty: string;
-    depsCount: number;
-    deps: string;
-  }
-
-  interface FormatParams {
-    format: string
-  }
-
-  interface ComparisonParams {
-    comparison: string;
-    limit: number | string;
-    exclusive: boolean;
-  }
-
-  interface MultipleOfParams {
-    multipleOf: number;
-  }
-
-  interface PatternParams {
-    pattern: string;
-  }
-
-  interface RequiredParams {
-    missingProperty: string;
-  }
-
-  interface TypeParams {
-    type: string;
-  }
-
-  interface UniqueItemsParams {
-    i: number;
-    j: number;
-  }
-
-  interface CustomParams {
-    keyword: string;
-  }
-
-  interface PatternGroupsParams {
-    reason: string;
-    limit: number;
-    pattern: string;
-  }
-
-  interface PatternRequiredParams {
-    missingPattern: string;
-  }
-
-  interface SwitchParams {
-    caseIndex: number;
-  }
-
-  interface NoParams {}
-
-  interface EnumParams {
-    allowedValues: Array<any>;
-  }
-}
-
-export = ajv;

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/ajv.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/ajv.js b/node_modules/ajv/lib/ajv.js
deleted file mode 100644
index 0502c1f..0000000
--- a/node_modules/ajv/lib/ajv.js
+++ /dev/null
@@ -1,420 +0,0 @@
-'use strict';
-
-var compileSchema = require('./compile')
-  , resolve = require('./compile/resolve')
-  , Cache = require('./cache')
-  , SchemaObject = require('./compile/schema_obj')
-  , stableStringify = require('json-stable-stringify')
-  , formats = require('./compile/formats')
-  , rules = require('./compile/rules')
-  , v5 = require('./v5')
-  , util = require('./compile/util')
-  , async = require('./async')
-  , co = require('co');
-
-module.exports = Ajv;
-
-Ajv.prototype.compileAsync = async.compile;
-
-var customKeyword = require('./keyword');
-Ajv.prototype.addKeyword = customKeyword.add;
-Ajv.prototype.getKeyword = customKeyword.get;
-Ajv.prototype.removeKeyword = customKeyword.remove;
-Ajv.ValidationError = require('./compile/validation_error');
-
-var META_SCHEMA_ID = 'http://json-schema.org/draft-04/schema';
-var SCHEMA_URI_FORMAT = /^(?:(?:[a-z][a-z0-9+-.]*:)?\/\/)?[^\s]*$/i;
-function SCHEMA_URI_FORMAT_FUNC(str) {
-  return SCHEMA_URI_FORMAT.test(str);
-}
-
-var META_IGNORE_OPTIONS = [ 'removeAdditional', 'useDefaults', 'coerceTypes' ];
-
-/**
- * Creates validator instance.
- * Usage: `Ajv(opts)`
- * @param {Object} opts optional options
- * @return {Object} ajv instance
- */
-function Ajv(opts) {
-  if (!(this instanceof Ajv)) return new Ajv(opts);
-  var self = this;
-
-  opts = this._opts = util.copy(opts) || {};
-  this._schemas = {};
-  this._refs = {};
-  this._fragments = {};
-  this._formats = formats(opts.format);
-  this._cache = opts.cache || new Cache;
-  this._loadingSchemas = {};
-  this._compilations = [];
-  this.RULES = rules();
-
-  // this is done on purpose, so that methods are bound to the instance
-  // (without using bind) so that they can be used without the instance
-  this.validate = validate;
-  this.compile = compile;
-  this.addSchema = addSchema;
-  this.addMetaSchema = addMetaSchema;
-  this.validateSchema = validateSchema;
-  this.getSchema = getSchema;
-  this.removeSchema = removeSchema;
-  this.addFormat = addFormat;
-  this.errorsText = errorsText;
-
-  this._addSchema = _addSchema;
-  this._compile = _compile;
-
-  opts.loopRequired = opts.loopRequired || Infinity;
-  if (opts.async || opts.transpile) async.setup(opts);
-  if (opts.beautify === true) opts.beautify = { indent_size: 2 };
-  if (opts.errorDataPath == 'property') opts._errorDataPathProperty = true;
-  this._metaOpts = getMetaSchemaOptions();
-
-  if (opts.formats) addInitialFormats();
-  addDraft4MetaSchema();
-  if (opts.v5) v5.enable(this);
-  if (typeof opts.meta == 'object') addMetaSchema(opts.meta);
-  addInitialSchemas();
-
-
-  /**
-   * Validate data using schema
-   * Schema will be compiled and cached (using serialized JSON as key. [json-stable-stringify](https://github.com/substack/json-stable-stringify) is used to serialize.
-   * @param  {String|Object} schemaKeyRef key, ref or schema object
-   * @param  {Any} data to be validated
-   * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`).
-   */
-  function validate(schemaKeyRef, data) {
-    var v;
-    if (typeof schemaKeyRef == 'string') {
-      v = getSchema(schemaKeyRef);
-      if (!v) throw new Error('no schema with key or ref "' + schemaKeyRef + '"');
-    } else {
-      var schemaObj = _addSchema(schemaKeyRef);
-      v = schemaObj.validate || _compile(schemaObj);
-    }
-
-    var valid = v(data);
-    if (v.$async === true)
-      return self._opts.async == '*' ? co(valid) : valid;
-    self.errors = v.errors;
-    return valid;
-  }
-
-
-  /**
-   * Create validating function for passed schema.
-   * @param  {Object} schema schema object
-   * @param  {Boolean} _meta true if schema is a meta-schema. Used internally to compile meta schemas of custom keywords.
-   * @return {Function} validating function
-   */
-  function compile(schema, _meta) {
-    var schemaObj = _addSchema(schema, undefined, _meta);
-    return schemaObj.validate || _compile(schemaObj);
-  }
-
-
-  /**
-   * Adds schema to the instance.
-   * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored.
-   * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.
-   * @param {Boolean} _skipValidation true to skip schema validation. Used internally, option validateSchema should be used instead.
-   * @param {Boolean} _meta true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.
-   */
-  function addSchema(schema, key, _skipValidation, _meta) {
-    if (Array.isArray(schema)){
-      for (var i=0; i<schema.length; i++) addSchema(schema[i], undefined, _skipValidation, _meta);
-      return;
-    }
-    // can key/id have # inside?
-    key = resolve.normalizeId(key || schema.id);
-    checkUnique(key);
-    self._schemas[key] = _addSchema(schema, _skipValidation, _meta, true);
-  }
-
-
-  /**
-   * Add schema that will be used to validate other schemas
-   * options in META_IGNORE_OPTIONS are alway set to false
-   * @param {Object} schema schema object
-   * @param {String} key optional schema key
-   * @param {Boolean} skipValidation true to skip schema validation, can be used to override validateSchema option for meta-schema
-   */
-  function addMetaSchema(schema, key, skipValidation) {
-    addSchema(schema, key, skipValidation, true);
-  }
-
-
-  /**
-   * Validate schema
-   * @param {Object} schema schema to validate
-   * @param {Boolean} throwOrLogError pass true to throw (or log) an error if invalid
-   * @return {Boolean} true if schema is valid
-   */
-  function validateSchema(schema, throwOrLogError) {
-    var $schema = schema.$schema || self._opts.defaultMeta || defaultMeta();
-    var currentUriFormat = self._formats.uri;
-    self._formats.uri = typeof currentUriFormat == 'function'
-                        ? SCHEMA_URI_FORMAT_FUNC
-                        : SCHEMA_URI_FORMAT;
-    var valid;
-    try { valid = validate($schema, schema); }
-    finally { self._formats.uri = currentUriFormat; }
-    if (!valid && throwOrLogError) {
-      var message = 'schema is invalid: ' + errorsText();
-      if (self._opts.validateSchema == 'log') console.error(message);
-      else throw new Error(message);
-    }
-    return valid;
-  }
-
-
-  function defaultMeta() {
-    var meta = self._opts.meta;
-    self._opts.defaultMeta = typeof meta == 'object'
-                              ? meta.id || meta
-                              : self._opts.v5
-                                ? v5.META_SCHEMA_ID
-                                : META_SCHEMA_ID;
-    return self._opts.defaultMeta;
-  }
-
-
-  /**
-   * Get compiled schema from the instance by `key` or `ref`.
-   * @param  {String} keyRef `key` that was passed to `addSchema` or full schema reference (`schema.id` or resolved id).
-   * @return {Function} schema validating function (with property `schema`).
-   */
-  function getSchema(keyRef) {
-    var schemaObj = _getSchemaObj(keyRef);
-    switch (typeof schemaObj) {
-      case 'object': return schemaObj.validate || _compile(schemaObj);
-      case 'string': return getSchema(schemaObj);
-      case 'undefined': return _getSchemaFragment(keyRef);
-    }
-  }
-
-
-  function _getSchemaFragment(ref) {
-    var res = resolve.schema.call(self, { schema: {} }, ref);
-    if (res) {
-      var schema = res.schema
-        , root = res.root
-        , baseId = res.baseId;
-      var v = compileSchema.call(self, schema, root, undefined, baseId);
-      self._fragments[ref] = new SchemaObject({
-        ref: ref,
-        fragment: true,
-        schema: schema,
-        root: root,
-        baseId: baseId,
-        validate: v
-      });
-      return v;
-    }
-  }
-
-
-  function _getSchemaObj(keyRef) {
-    keyRef = resolve.normalizeId(keyRef);
-    return self._schemas[keyRef] || self._refs[keyRef] || self._fragments[keyRef];
-  }
-
-
-  /**
-   * Remove cached schema(s).
-   * If no parameter is passed all schemas but meta-schemas are removed.
-   * If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.
-   * Even if schema is referenced by other schemas it still can be removed as other schemas have local references.
-   * @param  {String|Object|RegExp} schemaKeyRef key, ref, pattern to match key/ref or schema object
-   */
-  function removeSchema(schemaKeyRef) {
-    if (schemaKeyRef instanceof RegExp) {
-      _removeAllSchemas(self._schemas, schemaKeyRef);
-      _removeAllSchemas(self._refs, schemaKeyRef);
-      return;
-    }
-    switch (typeof schemaKeyRef) {
-      case 'undefined':
-        _removeAllSchemas(self._schemas);
-        _removeAllSchemas(self._refs);
-        self._cache.clear();
-        return;
-      case 'string':
-        var schemaObj = _getSchemaObj(schemaKeyRef);
-        if (schemaObj) self._cache.del(schemaObj.jsonStr);
-        delete self._schemas[schemaKeyRef];
-        delete self._refs[schemaKeyRef];
-        return;
-      case 'object':
-        var jsonStr = stableStringify(schemaKeyRef);
-        self._cache.del(jsonStr);
-        var id = schemaKeyRef.id;
-        if (id) {
-          id = resolve.normalizeId(id);
-          delete self._schemas[id];
-          delete self._refs[id];
-        }
-    }
-  }
-
-
-  function _removeAllSchemas(schemas, regex) {
-    for (var keyRef in schemas) {
-      var schemaObj = schemas[keyRef];
-      if (!schemaObj.meta && (!regex || regex.test(keyRef))) {
-        self._cache.del(schemaObj.jsonStr);
-        delete schemas[keyRef];
-      }
-    }
-  }
-
-
-  function _addSchema(schema, skipValidation, meta, shouldAddSchema) {
-    if (typeof schema != 'object') throw new Error('schema should be object');
-    var jsonStr = stableStringify(schema);
-    var cached = self._cache.get(jsonStr);
-    if (cached) return cached;
-
-    shouldAddSchema = shouldAddSchema || self._opts.addUsedSchema !== false;
-
-    var id = resolve.normalizeId(schema.id);
-    if (id && shouldAddSchema) checkUnique(id);
-
-    var willValidate = self._opts.validateSchema !== false && !skipValidation;
-    var recursiveMeta;
-    if (willValidate && !(recursiveMeta = schema.id && schema.id == schema.$schema))
-      validateSchema(schema, true);
-
-    var localRefs = resolve.ids.call(self, schema);
-
-    var schemaObj = new SchemaObject({
-      id: id,
-      schema: schema,
-      localRefs: localRefs,
-      jsonStr: jsonStr,
-      meta: meta
-    });
-
-    if (id[0] != '#' && shouldAddSchema) self._refs[id] = schemaObj;
-    self._cache.put(jsonStr, schemaObj);
-
-    if (willValidate && recursiveMeta) validateSchema(schema, true);
-
-    return schemaObj;
-  }
-
-
-  function _compile(schemaObj, root) {
-    if (schemaObj.compiling) {
-      schemaObj.validate = callValidate;
-      callValidate.schema = schemaObj.schema;
-      callValidate.errors = null;
-      callValidate.root = root ? root : callValidate;
-      if (schemaObj.schema.$async === true)
-        callValidate.$async = true;
-      return callValidate;
-    }
-    schemaObj.compiling = true;
-
-    var currentOpts;
-    if (schemaObj.meta) {
-      currentOpts = self._opts;
-      self._opts = self._metaOpts;
-    }
-
-    var v;
-    try { v = compileSchema.call(self, schemaObj.schema, root, schemaObj.localRefs); }
-    finally {
-      schemaObj.compiling = false;
-      if (schemaObj.meta) self._opts = currentOpts;
-    }
-
-    schemaObj.validate = v;
-    schemaObj.refs = v.refs;
-    schemaObj.refVal = v.refVal;
-    schemaObj.root = v.root;
-    return v;
-
-
-    function callValidate() {
-      var _validate = schemaObj.validate;
-      var result = _validate.apply(null, arguments);
-      callValidate.errors = _validate.errors;
-      return result;
-    }
-  }
-
-
-  /**
-   * Convert array of error message objects to string
-   * @param  {Array<Object>} errors optional array of validation errors, if not passed errors from the instance are used.
-   * @param  {Object} options optional options with properties `separator` and `dataVar`.
-   * @return {String} human readable string with all errors descriptions
-   */
-  function errorsText(errors, options) {
-    errors = errors || self.errors;
-    if (!errors) return 'No errors';
-    options = options || {};
-    var separator = options.separator === undefined ? ', ' : options.separator;
-    var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;
-
-    var text = '';
-    for (var i=0; i<errors.length; i++) {
-      var e = errors[i];
-      if (e) text += dataVar + e.dataPath + ' ' + e.message + separator;
-    }
-    return text.slice(0, -separator.length);
-  }
-
-
-  /**
-   * Add custom format
-   * @param {String} name format name
-   * @param {String|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid)
-   */
-  function addFormat(name, format) {
-    if (typeof format == 'string') format = new RegExp(format);
-    self._formats[name] = format;
-  }
-
-
-  function addDraft4MetaSchema() {
-    if (self._opts.meta !== false) {
-      var metaSchema = require('./refs/json-schema-draft-04.json');
-      addMetaSchema(metaSchema, META_SCHEMA_ID, true);
-      self._refs['http://json-schema.org/schema'] = META_SCHEMA_ID;
-    }
-  }
-
-
-  function addInitialSchemas() {
-    var optsSchemas = self._opts.schemas;
-    if (!optsSchemas) return;
-    if (Array.isArray(optsSchemas)) addSchema(optsSchemas);
-    else for (var key in optsSchemas) addSchema(optsSchemas[key], key);
-  }
-
-
-  function addInitialFormats() {
-    for (var name in self._opts.formats) {
-      var format = self._opts.formats[name];
-      addFormat(name, format);
-    }
-  }
-
-
-  function checkUnique(id) {
-    if (self._schemas[id] || self._refs[id])
-      throw new Error('schema with key or id "' + id + '" already exists');
-  }
-
-
-  function getMetaSchemaOptions() {
-    var metaOpts = util.copy(self._opts);
-    for (var i=0; i<META_IGNORE_OPTIONS.length; i++)
-      delete metaOpts[META_IGNORE_OPTIONS[i]];
-    return metaOpts;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/async.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/async.js b/node_modules/ajv/lib/async.js
deleted file mode 100644
index 173c2c0..0000000
--- a/node_modules/ajv/lib/async.js
+++ /dev/null
@@ -1,218 +0,0 @@
-'use strict';
-
-module.exports = {
-  setup: setupAsync,
-  compile: compileAsync
-};
-
-
-var util = require('./compile/util');
-
-var ASYNC = {
-  '*': checkGenerators,
-  'co*': checkGenerators,
-  'es7': checkAsyncFunction
-};
-
-var TRANSPILE = {
-  'nodent': getNodent,
-  'regenerator': getRegenerator
-};
-
-var MODES = [
-  { async: 'co*' },
-  { async: 'es7', transpile: 'nodent' },
-  { async: 'co*', transpile: 'regenerator' }
-];
-
-
-var regenerator, nodent;
-
-
-function setupAsync(opts, required) {
-  if (required !== false) required = true;
-  var async = opts.async
-    , transpile = opts.transpile
-    , check;
-
-  switch (typeof transpile) {
-    case 'string':
-      var get = TRANSPILE[transpile];
-      if (!get) throw new Error('bad transpiler: ' + transpile);
-      return (opts._transpileFunc = get(opts, required));
-    case 'undefined':
-    case 'boolean':
-      if (typeof async == 'string') {
-        check = ASYNC[async];
-        if (!check) throw new Error('bad async mode: ' + async);
-        return (opts.transpile = check(opts, required));
-      }
-
-      for (var i=0; i<MODES.length; i++) {
-        var _opts = MODES[i];
-        if (setupAsync(_opts, false)) {
-          util.copy(_opts, opts);
-          return opts.transpile;
-        }
-      }
-      /* istanbul ignore next */
-      throw new Error('generators, nodent and regenerator are not available');
-    case 'function':
-      return (opts._transpileFunc = opts.transpile);
-    default:
-      throw new Error('bad transpiler: ' + transpile);
-  }
-}
-
-
-function checkGenerators(opts, required) {
-  /* jshint evil: true */
-  try {
-    (new Function('(function*(){})()'))();
-    return true;
-  } catch(e) {
-    /* istanbul ignore next */
-    if (required) throw new Error('generators not supported');
-  }
-}
-
-
-function checkAsyncFunction(opts, required) {
-  /* jshint evil: true */
-  try {
-    (new Function('(async function(){})()'))();
-    /* istanbul ignore next */
-    return true;
-  } catch(e) {
-    if (required) throw new Error('es7 async functions not supported');
-  }
-}
-
-
-function getRegenerator(opts, required) {
-  try {
-    if (!regenerator) {
-      var name = 'regenerator';
-      regenerator = require(name);
-      regenerator.runtime();
-    }
-    if (!opts.async || opts.async === true)
-      opts.async = 'es7';
-    return regeneratorTranspile;
-  } catch(e) {
-    /* istanbul ignore next */
-    if (required) throw new Error('regenerator not available');
-  }
-}
-
-
-function regeneratorTranspile(code) {
-  return regenerator.compile(code).code;
-}
-
-
-function getNodent(opts, required) {
-  /* jshint evil: true */
-  try {
-    if (!nodent) {
-      var name = 'nodent';
-      nodent = require(name)({ log: false, dontInstallRequireHook: true });
-    }
-    if (opts.async != 'es7') {
-      if (opts.async && opts.async !== true) console.warn('nodent transpiles only es7 async functions');
-      opts.async = 'es7';
-    }
-    return nodentTranspile;
-  } catch(e) {
-    /* istanbul ignore next */
-    if (required) throw new Error('nodent not available');
-  }
-}
-
-
-function nodentTranspile(code) {
-  return nodent.compile(code, '', { promises: true, sourcemap: false }).code;
-}
-
-
-/**
- * Creates validating function for passed schema with asynchronous loading of missing schemas.
- * `loadSchema` option should be a function that accepts schema uri and node-style callback.
- * @this  Ajv
- * @param {Object}   schema schema object
- * @param {Function} callback node-style callback, it is always called with 2 parameters: error (or null) and validating function.
- */
-function compileAsync(schema, callback) {
-  /* eslint no-shadow: 0 */
-  /* jshint validthis: true */
-  var schemaObj;
-  var self = this;
-  try {
-    schemaObj = this._addSchema(schema);
-  } catch(e) {
-    setTimeout(function() { callback(e); });
-    return;
-  }
-  if (schemaObj.validate) {
-    setTimeout(function() { callback(null, schemaObj.validate); });
-  } else {
-    if (typeof this._opts.loadSchema != 'function')
-      throw new Error('options.loadSchema should be a function');
-    _compileAsync(schema, callback, true);
-  }
-
-
-  function _compileAsync(schema, callback, firstCall) {
-    var validate;
-    try { validate = self.compile(schema); }
-    catch(e) {
-      if (e.missingSchema) loadMissingSchema(e);
-      else deferCallback(e);
-      return;
-    }
-    deferCallback(null, validate);
-
-    function loadMissingSchema(e) {
-      var ref = e.missingSchema;
-      if (self._refs[ref] || self._schemas[ref])
-        return callback(new Error('Schema ' + ref + ' is loaded but ' + e.missingRef + ' cannot be resolved'));
-      var _callbacks = self._loadingSchemas[ref];
-      if (_callbacks) {
-        if (typeof _callbacks == 'function')
-          self._loadingSchemas[ref] = [_callbacks, schemaLoaded];
-        else
-          _callbacks[_callbacks.length] = schemaLoaded;
-      } else {
-        self._loadingSchemas[ref] = schemaLoaded;
-        self._opts.loadSchema(ref, function (err, sch) {
-          var _callbacks = self._loadingSchemas[ref];
-          delete self._loadingSchemas[ref];
-          if (typeof _callbacks == 'function') {
-            _callbacks(err, sch);
-          } else {
-            for (var i=0; i<_callbacks.length; i++)
-              _callbacks[i](err, sch);
-          }
-        });
-      }
-
-      function schemaLoaded(err, sch) {
-        if (err) return callback(err);
-        if (!(self._refs[ref] || self._schemas[ref])) {
-          try {
-            self.addSchema(sch, ref);
-          } catch(e) {
-            callback(e);
-            return;
-          }
-        }
-        _compileAsync(schema, callback);
-      }
-    }
-
-    function deferCallback(err, validate) {
-      if (firstCall) setTimeout(function() { callback(err, validate); });
-      else return callback(err, validate);
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/cache.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/cache.js b/node_modules/ajv/lib/cache.js
deleted file mode 100644
index 7558874..0000000
--- a/node_modules/ajv/lib/cache.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'use strict';
-
-
-var Cache = module.exports = function Cache() {
-  this._cache = {};
-};
-
-
-Cache.prototype.put = function Cache_put(key, value) {
-  this._cache[key] = value;
-};
-
-
-Cache.prototype.get = function Cache_get(key) {
-  return this._cache[key];
-};
-
-
-Cache.prototype.del = function Cache_del(key) {
-  delete this._cache[key];
-};
-
-
-Cache.prototype.clear = function Cache_clear() {
-  this._cache = {};
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/compile/_rules.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/compile/_rules.js b/node_modules/ajv/lib/compile/_rules.js
deleted file mode 100644
index c98610e..0000000
--- a/node_modules/ajv/lib/compile/_rules.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-
-//all requires must be explicit because browserify won't work with dynamic requires
-module.exports = {
-  '$ref': require('../dotjs/ref'),
-  allOf: require('../dotjs/allOf'),
-  anyOf: require('../dotjs/anyOf'),
-  dependencies: require('../dotjs/dependencies'),
-  'enum': require('../dotjs/enum'),
-  format: require('../dotjs/format'),
-  items: require('../dotjs/items'),
-  maximum: require('../dotjs/_limit'),
-  minimum: require('../dotjs/_limit'),
-  maxItems: require('../dotjs/_limitItems'),
-  minItems: require('../dotjs/_limitItems'),
-  maxLength: require('../dotjs/_limitLength'),
-  minLength: require('../dotjs/_limitLength'),
-  maxProperties: require('../dotjs/_limitProperties'),
-  minProperties: require('../dotjs/_limitProperties'),
-  multipleOf: require('../dotjs/multipleOf'),
-  not: require('../dotjs/not'),
-  oneOf: require('../dotjs/oneOf'),
-  pattern: require('../dotjs/pattern'),
-  properties: require('../dotjs/properties'),
-  required: require('../dotjs/required'),
-  uniqueItems: require('../dotjs/uniqueItems'),
-  validate: require('../dotjs/validate')
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/compile/equal.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/compile/equal.js b/node_modules/ajv/lib/compile/equal.js
deleted file mode 100644
index 2a91874..0000000
--- a/node_modules/ajv/lib/compile/equal.js
+++ /dev/null
@@ -1,45 +0,0 @@
-'use strict';
-
-/*eslint complexity: 0*/
-
-module.exports = function equal(a, b) {
-  if (a === b) return true;
-
-  var arrA = Array.isArray(a)
-    , arrB = Array.isArray(b)
-    , i;
-
-  if (arrA && arrB) {
-    if (a.length != b.length) return false;
-    for (i = 0; i < a.length; i++)
-      if (!equal(a[i], b[i])) return false;
-    return true;
-  }
-
-  if (arrA != arrB) return false;
-
-  if (a && b && typeof a === 'object' && typeof b === 'object') {
-    var keys = Object.keys(a);
-    if (keys.length !== Object.keys(b).length) return false;
-
-    var dateA = a instanceof Date
-      , dateB = b instanceof Date;
-    if (dateA && dateB) return a.getTime() == b.getTime();
-    if (dateA != dateB) return false;
-
-    var regexpA = a instanceof RegExp
-      , regexpB = b instanceof RegExp;
-    if (regexpA && regexpB) return a.toString() == b.toString();
-    if (regexpA != regexpB) return false;
-
-    for (i = 0; i < keys.length; i++)
-      if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
-
-    for (i = 0; i < keys.length; i++)
-      if(!equal(a[keys[i]], b[keys[i]])) return false;
-
-    return true;
-  }
-
-  return false;
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/compile/formats.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/compile/formats.js b/node_modules/ajv/lib/compile/formats.js
deleted file mode 100644
index 415389e..0000000
--- a/node_modules/ajv/lib/compile/formats.js
+++ /dev/null
@@ -1,164 +0,0 @@
-'use strict';
-
-var util = require('./util');
-
-var DATE = /^\d\d\d\d-(\d\d)-(\d\d)$/;
-var DAYS = [0,31,29,31,30,31,30,31,31,30,31,30,31];
-var TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i;
-var HOSTNAME = /^[0-9a-z](?:(?:[-0-9a-z]{0,61})?[0-9a-z])?(\.[0-9a-z](?:(?:[-0-9a-z]{0,61})?[0-9a-z])?)*$/i;
-var URI = /^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{
 2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?(?:\#(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?$/i;
-var UUID = /^(?:urn\:uuid\:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;
-var JSON_POINTER = /^(?:\/(?:[^~\/]|~0|~1)*)*$|^\#(?:\/(?:[a-z0-9_\-\.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;
-var RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:\#|(?:\/(?:[^~\/]|~0|~1)*)*)$/;
-
-
-module.exports = formats;
-
-function formats(mode) {
-  mode = mode == 'full' ? 'full' : 'fast';
-  var formatDefs = util.copy(formats[mode]);
-  for (var fName in formats.compare) {
-    formatDefs[fName] = {
-      validate: formatDefs[fName],
-      compare: formats.compare[fName]
-    };
-  }
-  return formatDefs;
-}
-
-
-formats.fast = {
-  // date: http://tools.ietf.org/html/rfc3339#section-5.6
-  date: /^\d\d\d\d-[0-1]\d-[0-3]\d$/,
-  // date-time: http://tools.ietf.org/html/rfc3339#section-5.6
-  time: /^[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)?$/i,
-  'date-time': /^\d\d\d\d-[0-1]\d-[0-3]\d[t\s][0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)$/i,
-  // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js
-  uri: /^(?:[a-z][a-z0-9+-.]*)?(?:\:|\/)\/?[^\s]*$/i,
-  // email (sources from jsen validator):
-  // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363
-  // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')
-  email: /^[a-z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,
-  hostname: HOSTNAME,
-  // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html
-  ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,
-  // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses
-  ipv6: /^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1
 -9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,
-  regex: regex,
-  // uuid: http://tools.ietf.org/html/rfc4122
-  uuid: UUID,
-  // JSON-pointer: https://tools.ietf.org/html/rfc6901
-  // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A
-  'json-pointer': JSON_POINTER,
-  // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00
-  'relative-json-pointer': RELATIVE_JSON_POINTER
-};
-
-
-formats.full = {
-  date: date,
-  time: time,
-  'date-time': date_time,
-  uri: uri,
-  email: /^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&''*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,
-  hostname: hostname,
-  ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,
-  ipv6: /^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1
 -9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,
-  regex: regex,
-  uuid: UUID,
-  'json-pointer': JSON_POINTER,
-  'relative-json-pointer': RELATIVE_JSON_POINTER
-};
-
-
-formats.compare = {
-  date: compareDate,
-  time: compareTime,
-  'date-time': compareDateTime
-};
-
-
-function date(str) {
-  // full-date from http://tools.ietf.org/html/rfc3339#section-5.6
-  var matches = str.match(DATE);
-  if (!matches) return false;
-
-  var month = +matches[1];
-  var day = +matches[2];
-  return month >= 1 && month <= 12 && day >= 1 && day <= DAYS[month];
-}
-
-
-function time(str, full) {
-  var matches = str.match(TIME);
-  if (!matches) return false;
-
-  var hour = matches[1];
-  var minute = matches[2];
-  var second = matches[3];
-  var timeZone = matches[5];
-  return hour <= 23 && minute <= 59 && second <= 59 && (!full || timeZone);
-}
-
-
-var DATE_TIME_SEPARATOR = /t|\s/i;
-function date_time(str) {
-  // http://tools.ietf.org/html/rfc3339#section-5.6
-  var dateTime = str.split(DATE_TIME_SEPARATOR);
-  return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);
-}
-
-
-function hostname(str) {
-  // https://tools.ietf.org/html/rfc1034#section-3.5
-  // https://tools.ietf.org/html/rfc1123#section-2
-  return str.length <= 255 && HOSTNAME.test(str);
-}
-
-
-var NOT_URI_FRAGMENT = /\/|\:/;
-function uri(str) {
-  // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required "."
-  return NOT_URI_FRAGMENT.test(str) && URI.test(str);
-}
-
-
-function regex(str) {
-  try {
-    new RegExp(str);
-    return true;
-  } catch(e) {
-    return false;
-  }
-}
-
-
-function compareDate(d1, d2) {
-  if (!(d1 && d2)) return;
-  if (d1 > d2) return 1;
-  if (d1 < d2) return -1;
-  if (d1 === d2) return 0;
-}
-
-
-function compareTime(t1, t2) {
-  if (!(t1 && t2)) return;
-  t1 = t1.match(TIME);
-  t2 = t2.match(TIME);
-  if (!(t1 && t2)) return;
-  t1 = t1[1] + t1[2] + t1[3] + (t1[4]||'');
-  t2 = t2[1] + t2[2] + t2[3] + (t2[4]||'');
-  if (t1 > t2) return 1;
-  if (t1 < t2) return -1;
-  if (t1 === t2) return 0;
-}
-
-
-function compareDateTime(dt1, dt2) {
-  if (!(dt1 && dt2)) return;
-  dt1 = dt1.split(DATE_TIME_SEPARATOR);
-  dt2 = dt2.split(DATE_TIME_SEPARATOR);
-  var res = compareDate(dt1[0], dt2[0]);
-  if (res === undefined) return;
-  return res || compareTime(dt1[1], dt2[1]);
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/compile/index.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/compile/index.js b/node_modules/ajv/lib/compile/index.js
deleted file mode 100644
index c9c6730..0000000
--- a/node_modules/ajv/lib/compile/index.js
+++ /dev/null
@@ -1,390 +0,0 @@
-'use strict';
-
-var resolve = require('./resolve')
-  , util = require('./util')
-  , stableStringify = require('json-stable-stringify')
-  , async = require('../async');
-
-var beautify;
-
-function loadBeautify(){
-  if (beautify === undefined) {
-    var name = 'js-beautify';
-    try { beautify = require(name).js_beautify; }
-    catch(e) { beautify = false; }
-  }
-}
-
-var validateGenerator = require('../dotjs/validate');
-
-/**
- * Functions below are used inside compiled validations function
- */
-
-var co = require('co');
-var ucs2length = util.ucs2length;
-var equal = require('./equal');
-
-// this error is thrown by async schemas to return validation errors via exception
-var ValidationError = require('./validation_error');
-
-module.exports = compile;
-
-
-/**
- * Compiles schema to validation function
- * @this   Ajv
- * @param  {Object} schema schema object
- * @param  {Object} root object with information about the root schema for this schema
- * @param  {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution
- * @param  {String} baseId base ID for IDs in the schema
- * @return {Function} validation function
- */
-function compile(schema, root, localRefs, baseId) {
-  /* jshint validthis: true, evil: true */
-  /* eslint no-shadow: 0 */
-  var self = this
-    , opts = this._opts
-    , refVal = [ undefined ]
-    , refs = {}
-    , patterns = []
-    , patternsHash = {}
-    , defaults = []
-    , defaultsHash = {}
-    , customRules = []
-    , keepSourceCode = opts.sourceCode !== false;
-
-  root = root || { schema: schema, refVal: refVal, refs: refs };
-
-  var c = checkCompiling.call(this, schema, root, baseId);
-  var compilation = this._compilations[c.index];
-  if (c.compiling) return (compilation.callValidate = callValidate);
-
-  var formats = this._formats;
-  var RULES = this.RULES;
-
-  try {
-    var v = localCompile(schema, root, localRefs, baseId);
-    compilation.validate = v;
-    var cv = compilation.callValidate;
-    if (cv) {
-      cv.schema = v.schema;
-      cv.errors = null;
-      cv.refs = v.refs;
-      cv.refVal = v.refVal;
-      cv.root = v.root;
-      cv.$async = v.$async;
-      if (keepSourceCode) cv.sourceCode = v.sourceCode;
-    }
-    return v;
-  } finally {
-    endCompiling.call(this, schema, root, baseId);
-  }
-
-  function callValidate() {
-    var validate = compilation.validate;
-    var result = validate.apply(null, arguments);
-    callValidate.errors = validate.errors;
-    return result;
-  }
-
-  function localCompile(_schema, _root, localRefs, baseId) {
-    var isRoot = !_root || (_root && _root.schema == _schema);
-    if (_root.schema != root.schema)
-      return compile.call(self, _schema, _root, localRefs, baseId);
-
-    var $async = _schema.$async === true;
-    if ($async && !opts.transpile) async.setup(opts);
-
-    var sourceCode = validateGenerator({
-      isTop: true,
-      schema: _schema,
-      isRoot: isRoot,
-      baseId: baseId,
-      root: _root,
-      schemaPath: '',
-      errSchemaPath: '#',
-      errorPath: '""',
-      RULES: RULES,
-      validate: validateGenerator,
-      util: util,
-      resolve: resolve,
-      resolveRef: resolveRef,
-      usePattern: usePattern,
-      useDefault: useDefault,
-      useCustomRule: useCustomRule,
-      opts: opts,
-      formats: formats,
-      self: self
-    });
-
-    sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode)
-                   + vars(defaults, defaultCode) + vars(customRules, customRuleCode)
-                   + sourceCode;
-
-    if (opts.beautify) {
-      loadBeautify();
-      /* istanbul ignore else */
-      if (beautify) sourceCode = beautify(sourceCode, opts.beautify);
-      else console.error('"npm install js-beautify" to use beautify option');
-    }
-    // console.log('\n\n\n *** \n', sourceCode);
-    var validate, validateCode
-      , transpile = opts._transpileFunc;
-    try {
-      validateCode = $async && transpile
-                      ? transpile(sourceCode)
-                      : sourceCode;
-
-      var makeValidate = new Function(
-        'self',
-        'RULES',
-        'formats',
-        'root',
-        'refVal',
-        'defaults',
-        'customRules',
-        'co',
-        'equal',
-        'ucs2length',
-        'ValidationError',
-        validateCode
-      );
-
-      validate = makeValidate(
-        self,
-        RULES,
-        formats,
-        root,
-        refVal,
-        defaults,
-        customRules,
-        co,
-        equal,
-        ucs2length,
-        ValidationError
-      );
-
-      refVal[0] = validate;
-    } catch(e) {
-      console.error('Error compiling schema, function code:', validateCode);
-      throw e;
-    }
-
-    validate.schema = _schema;
-    validate.errors = null;
-    validate.refs = refs;
-    validate.refVal = refVal;
-    validate.root = isRoot ? validate : _root;
-    if ($async) validate.$async = true;
-    if (keepSourceCode) validate.sourceCode = sourceCode;
-    if (opts.sourceCode === true) {
-      validate.source = {
-        patterns: patterns,
-        defaults: defaults
-      };
-    }
-
-    return validate;
-  }
-
-  function resolveRef(baseId, ref, isRoot) {
-    ref = resolve.url(baseId, ref);
-    var refIndex = refs[ref];
-    var _refVal, refCode;
-    if (refIndex !== undefined) {
-      _refVal = refVal[refIndex];
-      refCode = 'refVal[' + refIndex + ']';
-      return resolvedRef(_refVal, refCode);
-    }
-    if (!isRoot && root.refs) {
-      var rootRefId = root.refs[ref];
-      if (rootRefId !== undefined) {
-        _refVal = root.refVal[rootRefId];
-        refCode = addLocalRef(ref, _refVal);
-        return resolvedRef(_refVal, refCode);
-      }
-    }
-
-    refCode = addLocalRef(ref);
-    var v = resolve.call(self, localCompile, root, ref);
-    if (!v) {
-      var localSchema = localRefs && localRefs[ref];
-      if (localSchema) {
-        v = resolve.inlineRef(localSchema, opts.inlineRefs)
-            ? localSchema
-            : compile.call(self, localSchema, root, localRefs, baseId);
-      }
-    }
-
-    if (v) {
-      replaceLocalRef(ref, v);
-      return resolvedRef(v, refCode);
-    }
-  }
-
-  function addLocalRef(ref, v) {
-    var refId = refVal.length;
-    refVal[refId] = v;
-    refs[ref] = refId;
-    return 'refVal' + refId;
-  }
-
-  function replaceLocalRef(ref, v) {
-    var refId = refs[ref];
-    refVal[refId] = v;
-  }
-
-  function resolvedRef(refVal, code) {
-    return typeof refVal == 'object'
-            ? { code: code, schema: refVal, inline: true }
-            : { code: code, $async: refVal && refVal.$async };
-  }
-
-  function usePattern(regexStr) {
-    var index = patternsHash[regexStr];
-    if (index === undefined) {
-      index = patternsHash[regexStr] = patterns.length;
-      patterns[index] = regexStr;
-    }
-    return 'pattern' + index;
-  }
-
-  function useDefault(value) {
-    switch (typeof value) {
-      case 'boolean':
-      case 'number':
-        return '' + value;
-      case 'string':
-        return util.toQuotedString(value);
-      case 'object':
-        if (value === null) return 'null';
-        var valueStr = stableStringify(value);
-        var index = defaultsHash[valueStr];
-        if (index === undefined) {
-          index = defaultsHash[valueStr] = defaults.length;
-          defaults[index] = value;
-        }
-        return 'default' + index;
-    }
-  }
-
-  function useCustomRule(rule, schema, parentSchema, it) {
-    var validateSchema = rule.definition.validateSchema;
-    if (validateSchema && self._opts.validateSchema !== false) {
-      var valid = validateSchema(schema);
-      if (!valid) {
-        var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors);
-        if (self._opts.validateSchema == 'log') console.error(message);
-        else throw new Error(message);
-      }
-    }
-
-    var compile = rule.definition.compile
-      , inline = rule.definition.inline
-      , macro = rule.definition.macro;
-
-    var validate;
-    if (compile) {
-      validate = compile.call(self, schema, parentSchema, it);
-    } else if (macro) {
-      validate = macro.call(self, schema, parentSchema, it);
-      if (opts.validateSchema !== false) self.validateSchema(validate, true);
-    } else if (inline) {
-      validate = inline.call(self, it, rule.keyword, schema, parentSchema);
-    } else {
-      validate = rule.definition.validate;
-    }
-
-    var index = customRules.length;
-    customRules[index] = validate;
-
-    return {
-      code: 'customRule' + index,
-      validate: validate
-    };
-  }
-}
-
-
-/**
- * Checks if the schema is currently compiled
- * @this   Ajv
- * @param  {Object} schema schema to compile
- * @param  {Object} root root object
- * @param  {String} baseId base schema ID
- * @return {Object} object with properties "index" (compilation index) and "compiling" (boolean)
- */
-function checkCompiling(schema, root, baseId) {
-  /* jshint validthis: true */
-  var index = compIndex.call(this, schema, root, baseId);
-  if (index >= 0) return { index: index, compiling: true };
-  index = this._compilations.length;
-  this._compilations[index] = {
-    schema: schema,
-    root: root,
-    baseId: baseId
-  };
-  return { index: index, compiling: false };
-}
-
-
-/**
- * Removes the schema from the currently compiled list
- * @this   Ajv
- * @param  {Object} schema schema to compile
- * @param  {Object} root root object
- * @param  {String} baseId base schema ID
- */
-function endCompiling(schema, root, baseId) {
-  /* jshint validthis: true */
-  var i = compIndex.call(this, schema, root, baseId);
-  if (i >= 0) this._compilations.splice(i, 1);
-}
-
-
-/**
- * Index of schema compilation in the currently compiled list
- * @this   Ajv
- * @param  {Object} schema schema to compile
- * @param  {Object} root root object
- * @param  {String} baseId base schema ID
- * @return {Integer} compilation index
- */
-function compIndex(schema, root, baseId) {
-  /* jshint validthis: true */
-  for (var i=0; i<this._compilations.length; i++) {
-    var c = this._compilations[i];
-    if (c.schema == schema && c.root == root && c.baseId == baseId) return i;
-  }
-  return -1;
-}
-
-
-function patternCode(i, patterns) {
-  return 'var pattern' + i + ' = new RegExp(' + util.toQuotedString(patterns[i]) + ');';
-}
-
-
-function defaultCode(i) {
-  return 'var default' + i + ' = defaults[' + i + '];';
-}
-
-
-function refValCode(i, refVal) {
-  return refVal[i] ? 'var refVal' + i + ' = refVal[' + i + '];' : '';
-}
-
-
-function customRuleCode(i) {
-  return 'var customRule' + i + ' = customRules[' + i + '];';
-}
-
-
-function vars(arr, statement) {
-  if (!arr.length) return '';
-  var code = '';
-  for (var i=0; i<arr.length; i++)
-    code += statement(i, arr);
-  return code;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/compile/resolve.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/compile/resolve.js b/node_modules/ajv/lib/compile/resolve.js
deleted file mode 100644
index db2b91f..0000000
--- a/node_modules/ajv/lib/compile/resolve.js
+++ /dev/null
@@ -1,267 +0,0 @@
-'use strict';
-
-var url = require('url')
-  , equal = require('./equal')
-  , util = require('./util')
-  , SchemaObject = require('./schema_obj');
-
-module.exports = resolve;
-
-resolve.normalizeId = normalizeId;
-resolve.fullPath = getFullPath;
-resolve.url = resolveUrl;
-resolve.ids = resolveIds;
-resolve.inlineRef = inlineRef;
-resolve.schema = resolveSchema;
-
-/**
- * [resolve and compile the references ($ref)]
- * @this   Ajv
- * @param  {Function} compile reference to schema compilation funciton (localCompile)
- * @param  {Object} root object with information about the root schema for the current schema
- * @param  {String} ref reference to resolve
- * @return {Object|Function} schema object (if the schema can be inlined) or validation function
- */
-function resolve(compile, root, ref) {
-  /* jshint validthis: true */
-  var refVal = this._refs[ref];
-  if (typeof refVal == 'string') {
-    if (this._refs[refVal]) refVal = this._refs[refVal];
-    else return resolve.call(this, compile, root, refVal);
-  }
-
-  refVal = refVal || this._schemas[ref];
-  if (refVal instanceof SchemaObject) {
-    return inlineRef(refVal.schema, this._opts.inlineRefs)
-            ? refVal.schema
-            : refVal.validate || this._compile(refVal);
-  }
-
-  var res = resolveSchema.call(this, root, ref);
-  var schema, v, baseId;
-  if (res) {
-    schema = res.schema;
-    root = res.root;
-    baseId = res.baseId;
-  }
-
-  if (schema instanceof SchemaObject) {
-    v = schema.validate || compile.call(this, schema.schema, root, undefined, baseId);
-  } else if (schema) {
-    v = inlineRef(schema, this._opts.inlineRefs)
-        ? schema
-        : compile.call(this, schema, root, undefined, baseId);
-  }
-
-  return v;
-}
-
-
-/**
- * Resolve schema, its root and baseId
- * @this Ajv
- * @param  {Object} root root object with properties schema, refVal, refs
- * @param  {String} ref  reference to resolve
- * @return {Object} object with properties schema, root, baseId
- */
-function resolveSchema(root, ref) {
-  /* jshint validthis: true */
-  var p = url.parse(ref, false, true)
-    , refPath = _getFullPath(p)
-    , baseId = getFullPath(root.schema.id);
-  if (refPath !== baseId) {
-    var id = normalizeId(refPath);
-    var refVal = this._refs[id];
-    if (typeof refVal == 'string') {
-      return resolveRecursive.call(this, root, refVal, p);
-    } else if (refVal instanceof SchemaObject) {
-      if (!refVal.validate) this._compile(refVal);
-      root = refVal;
-    } else {
-      refVal = this._schemas[id];
-      if (refVal instanceof SchemaObject) {
-        if (!refVal.validate) this._compile(refVal);
-        if (id == normalizeId(ref))
-          return { schema: refVal, root: root, baseId: baseId };
-        root = refVal;
-      } else {
-        return;
-      }
-    }
-    if (!root.schema) return;
-    baseId = getFullPath(root.schema.id);
-  }
-  return getJsonPointer.call(this, p, baseId, root.schema, root);
-}
-
-
-/* @this Ajv */
-function resolveRecursive(root, ref, parsedRef) {
-  /* jshint validthis: true */
-  var res = resolveSchema.call(this, root, ref);
-  if (res) {
-    var schema = res.schema;
-    var baseId = res.baseId;
-    root = res.root;
-    if (schema.id) baseId = resolveUrl(baseId, schema.id);
-    return getJsonPointer.call(this, parsedRef, baseId, schema, root);
-  }
-}
-
-
-var PREVENT_SCOPE_CHANGE = util.toHash(['properties', 'patternProperties', 'enum', 'dependencies', 'definitions']);
-/* @this Ajv */
-function getJsonPointer(parsedRef, baseId, schema, root) {
-  /* jshint validthis: true */
-  parsedRef.hash = parsedRef.hash || '';
-  if (parsedRef.hash.slice(0,2) != '#/') return;
-  var parts = parsedRef.hash.split('/');
-
-  for (var i = 1; i < parts.length; i++) {
-    var part = parts[i];
-    if (part) {
-      part = util.unescapeFragment(part);
-      schema = schema[part];
-      if (!schema) break;
-      if (schema.id && !PREVENT_SCOPE_CHANGE[part]) baseId = resolveUrl(baseId, schema.id);
-      if (schema.$ref) {
-        var $ref = resolveUrl(baseId, schema.$ref);
-        var res = resolveSchema.call(this, root, $ref);
-        if (res) {
-          schema = res.schema;
-          root = res.root;
-          baseId = res.baseId;
-        }
-      }
-    }
-  }
-  if (schema && schema != root.schema)
-    return { schema: schema, root: root, baseId: baseId };
-}
-
-
-var SIMPLE_INLINED = util.toHash([
-  'type', 'format', 'pattern',
-  'maxLength', 'minLength',
-  'maxProperties', 'minProperties',
-  'maxItems', 'minItems',
-  'maximum', 'minimum',
-  'uniqueItems', 'multipleOf',
-  'required', 'enum'
-]);
-function inlineRef(schema, limit) {
-  if (limit === false) return false;
-  if (limit === undefined || limit === true) return checkNoRef(schema);
-  else if (limit) return countKeys(schema) <= limit;
-}
-
-
-function checkNoRef(schema) {
-  var item;
-  if (Array.isArray(schema)) {
-    for (var i=0; i<schema.length; i++) {
-      item = schema[i];
-      if (typeof item == 'object' && !checkNoRef(item)) return false;
-    }
-  } else {
-    for (var key in schema) {
-      if (key == '$ref') return false;
-      item = schema[key];
-      if (typeof item == 'object' && !checkNoRef(item)) return false;
-    }
-  }
-  return true;
-}
-
-
-function countKeys(schema) {
-  var count = 0, item;
-  if (Array.isArray(schema)) {
-    for (var i=0; i<schema.length; i++) {
-      item = schema[i];
-      if (typeof item == 'object') count += countKeys(item);
-      if (count == Infinity) return Infinity;
-    }
-  } else {
-    for (var key in schema) {
-      if (key == '$ref') return Infinity;
-      if (SIMPLE_INLINED[key]) {
-        count++;
-      } else {
-        item = schema[key];
-        if (typeof item == 'object') count += countKeys(item) + 1;
-        if (count == Infinity) return Infinity;
-      }
-    }
-  }
-  return count;
-}
-
-
-function getFullPath(id, normalize) {
-  if (normalize !== false) id = normalizeId(id);
-  var p = url.parse(id, false, true);
-  return _getFullPath(p);
-}
-
-
-function _getFullPath(p) {
-  var protocolSeparator = p.protocol || p.href.slice(0,2) == '//' ? '//' : '';
-  return (p.protocol||'') + protocolSeparator + (p.host||'') + (p.path||'')  + '#';
-}
-
-
-var TRAILING_SLASH_HASH = /#\/?$/;
-function normalizeId(id) {
-  return id ? id.replace(TRAILING_SLASH_HASH, '') : '';
-}
-
-
-function resolveUrl(baseId, id) {
-  id = normalizeId(id);
-  return url.resolve(baseId, id);
-}
-
-
-/* @this Ajv */
-function resolveIds(schema) {
-  /* eslint no-shadow: 0 */
-  /* jshint validthis: true */
-  var id = normalizeId(schema.id);
-  var localRefs = {};
-  _resolveIds.call(this, schema, getFullPath(id, false), id);
-  return localRefs;
-
-  /* @this Ajv */
-  function _resolveIds(schema, fullPath, baseId) {
-    /* jshint validthis: true */
-    if (Array.isArray(schema)) {
-      for (var i=0; i<schema.length; i++)
-        _resolveIds.call(this, schema[i], fullPath+'/'+i, baseId);
-    } else if (schema && typeof schema == 'object') {
-      if (typeof schema.id == 'string') {
-        var id = baseId = baseId
-                          ? url.resolve(baseId, schema.id)
-                          : schema.id;
-        id = normalizeId(id);
-
-        var refVal = this._refs[id];
-        if (typeof refVal == 'string') refVal = this._refs[refVal];
-        if (refVal && refVal.schema) {
-          if (!equal(schema, refVal.schema))
-            throw new Error('id "' + id + '" resolves to more than one schema');
-        } else if (id != normalizeId(fullPath)) {
-          if (id[0] == '#') {
-            if (localRefs[id] && !equal(schema, localRefs[id]))
-              throw new Error('id "' + id + '" resolves to more than one schema');
-            localRefs[id] = schema;
-          } else {
-            this._refs[id] = fullPath;
-          }
-        }
-      }
-      for (var key in schema)
-        _resolveIds.call(this, schema[key], fullPath+'/'+util.escapeFragment(key), baseId);
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/compile/rules.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/compile/rules.js b/node_modules/ajv/lib/compile/rules.js
deleted file mode 100644
index 39b1708..0000000
--- a/node_modules/ajv/lib/compile/rules.js
+++ /dev/null
@@ -1,40 +0,0 @@
-'use strict';
-
-var ruleModules = require('./_rules')
-  , toHash = require('./util').toHash;
-
-module.exports = function rules() {
-  var RULES = [
-    { type: 'number',
-      rules: [ 'maximum', 'minimum', 'multipleOf'] },
-    { type: 'string',
-      rules: [ 'maxLength', 'minLength', 'pattern', 'format' ] },
-    { type: 'array',
-      rules: [ 'maxItems', 'minItems', 'uniqueItems', 'items' ] },
-    { type: 'object',
-      rules: [ 'maxProperties', 'minProperties', 'required', 'dependencies', 'properties' ] },
-    { rules: [ '$ref', 'enum', 'not', 'anyOf', 'oneOf', 'allOf' ] }
-  ];
-
-  var ALL = [ 'type', 'additionalProperties', 'patternProperties' ];
-  var KEYWORDS = [ 'additionalItems', '$schema', 'id', 'title', 'description', 'default' ];
-  var TYPES = [ 'number', 'integer', 'string', 'array', 'object', 'boolean', 'null' ];
-  RULES.all = toHash(ALL);
-
-  RULES.forEach(function (group) {
-    group.rules = group.rules.map(function (keyword) {
-      ALL.push(keyword);
-      var rule = RULES.all[keyword] = {
-        keyword: keyword,
-        code: ruleModules[keyword]
-      };
-      return rule;
-    });
-  });
-
-  RULES.keywords = toHash(ALL.concat(KEYWORDS));
-  RULES.types = toHash(TYPES);
-  RULES.custom = {};
-
-  return RULES;
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/compile/schema_obj.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/compile/schema_obj.js b/node_modules/ajv/lib/compile/schema_obj.js
deleted file mode 100644
index e7903b0..0000000
--- a/node_modules/ajv/lib/compile/schema_obj.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-
-var util = require('./util');
-
-module.exports = SchemaObject;
-
-function SchemaObject(obj) {
-  util.copy(obj, this);
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/compile/ucs2length.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/compile/ucs2length.js b/node_modules/ajv/lib/compile/ucs2length.js
deleted file mode 100644
index d193fb1..0000000
--- a/node_modules/ajv/lib/compile/ucs2length.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-// https://mathiasbynens.be/notes/javascript-encoding
-// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode
-module.exports = function ucs2length(str) {
-  var length = 0
-    , len = str.length
-    , pos = 0
-    , value;
-  while (pos < len) {
-    length++;
-    value = str.charCodeAt(pos++);
-    if (value >= 0xD800 && value <= 0xDBFF && pos < len) {
-      // high surrogate, and there is a next character
-      value = str.charCodeAt(pos);
-      if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate
-    }
-  }
-  return length;
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/compile/util.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/compile/util.js b/node_modules/ajv/lib/compile/util.js
deleted file mode 100644
index 8451f83..0000000
--- a/node_modules/ajv/lib/compile/util.js
+++ /dev/null
@@ -1,257 +0,0 @@
-'use strict';
-
-
-module.exports = {
-  copy: copy,
-  checkDataType: checkDataType,
-  checkDataTypes: checkDataTypes,
-  coerceToTypes: coerceToTypes,
-  toHash: toHash,
-  getProperty: getProperty,
-  escapeQuotes: escapeQuotes,
-  ucs2length: require('./ucs2length'),
-  varOccurences: varOccurences,
-  varReplace: varReplace,
-  cleanUpCode: cleanUpCode,
-  cleanUpVarErrors: cleanUpVarErrors,
-  schemaHasRules: schemaHasRules,
-  schemaHasRulesExcept: schemaHasRulesExcept,
-  stableStringify: require('json-stable-stringify'),
-  toQuotedString: toQuotedString,
-  getPathExpr: getPathExpr,
-  getPath: getPath,
-  getData: getData,
-  unescapeFragment: unescapeFragment,
-  escapeFragment: escapeFragment,
-  escapeJsonPointer: escapeJsonPointer
-};
-
-
-function copy(o, to) {
-  to = to || {};
-  for (var key in o) to[key] = o[key];
-  return to;
-}
-
-
-function checkDataType(dataType, data, negate) {
-  var EQUAL = negate ? ' !== ' : ' === '
-    , AND = negate ? ' || ' : ' && '
-    , OK = negate ? '!' : ''
-    , NOT = negate ? '' : '!';
-  switch (dataType) {
-    case 'null': return data + EQUAL + 'null';
-    case 'array': return OK + 'Array.isArray(' + data + ')';
-    case 'object': return '(' + OK + data + AND +
-                          'typeof ' + data + EQUAL + '"object"' + AND +
-                          NOT + 'Array.isArray(' + data + '))';
-    case 'integer': return '(typeof ' + data + EQUAL + '"number"' + AND +
-                           NOT + '(' + data + ' % 1)' +
-                           AND + data + EQUAL + data + ')';
-    default: return 'typeof ' + data + EQUAL + '"' + dataType + '"';
-  }
-}
-
-
-function checkDataTypes(dataTypes, data) {
-  switch (dataTypes.length) {
-    case 1: return checkDataType(dataTypes[0], data, true);
-    default:
-      var code = '';
-      var types = toHash(dataTypes);
-      if (types.array && types.object) {
-        code = types.null ? '(': '(!' + data + ' || ';
-        code += 'typeof ' + data + ' !== "object")';
-        delete types.null;
-        delete types.array;
-        delete types.object;
-      }
-      if (types.number) delete types.integer;
-      for (var t in types)
-        code += (code ? ' && ' : '' ) + checkDataType(t, data, true);
-
-      return code;
-  }
-}
-
-
-var COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);
-function coerceToTypes(optionCoerceTypes, dataTypes) {
-  if (Array.isArray(dataTypes)) {
-    var types = [];
-    for (var i=0; i<dataTypes.length; i++) {
-      var t = dataTypes[i];
-      if (COERCE_TO_TYPES[t]) types[types.length] = t;
-      else if (optionCoerceTypes === 'array' && t === 'array') types[types.length] = t;
-    }
-    if (types.length) return types;
-  } else if (COERCE_TO_TYPES[dataTypes]) {
-    return [dataTypes];
-  } else if (optionCoerceTypes === 'array' && dataTypes === 'array') {
-    return ['array'];
-  }
-}
-
-
-function toHash(arr) {
-  var hash = {};
-  for (var i=0; i<arr.length; i++) hash[arr[i]] = true;
-  return hash;
-}
-
-
-var IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;
-var SINGLE_QUOTE = /'|\\/g;
-function getProperty(key) {
-  return typeof key == 'number'
-          ? '[' + key + ']'
-          : IDENTIFIER.test(key)
-            ? '.' + key
-            : "['" + escapeQuotes(key) + "']";
-}
-
-
-function escapeQuotes(str) {
-  return str.replace(SINGLE_QUOTE, '\\$&')
-            .replace(/\n/g, '\\n')
-            .replace(/\r/g, '\\r')
-            .replace(/\f/g, '\\f')
-            .replace(/\t/g, '\\t');
-}
-
-
-function varOccurences(str, dataVar) {
-  dataVar += '[^0-9]';
-  var matches = str.match(new RegExp(dataVar, 'g'));
-  return matches ? matches.length : 0;
-}
-
-
-function varReplace(str, dataVar, expr) {
-  dataVar += '([^0-9])';
-  expr = expr.replace(/\$/g, '$$$$');
-  return str.replace(new RegExp(dataVar, 'g'), expr + '$1');
-}
-
-
-var EMPTY_ELSE = /else\s*{\s*}/g
-  , EMPTY_IF_NO_ELSE = /if\s*\([^)]+\)\s*\{\s*\}(?!\s*else)/g
-  , EMPTY_IF_WITH_ELSE = /if\s*\(([^)]+)\)\s*\{\s*\}\s*else(?!\s*if)/g;
-function cleanUpCode(out) {
-  return out.replace(EMPTY_ELSE, '')
-            .replace(EMPTY_IF_NO_ELSE, '')
-            .replace(EMPTY_IF_WITH_ELSE, 'if (!($1))');
-}
-
-
-var ERRORS_REGEXP = /[^v\.]errors/g
-  , REMOVE_ERRORS = /var errors = 0;|var vErrors = null;|validate.errors = vErrors;/g
-  , REMOVE_ERRORS_ASYNC = /var errors = 0;|var vErrors = null;/g
-  , RETURN_VALID = 'return errors === 0;'
-  , RETURN_TRUE = 'validate.errors = null; return true;'
-  , RETURN_ASYNC = /if \(errors === 0\) return true;\s*else throw new ValidationError\(vErrors\);/
-  , RETURN_TRUE_ASYNC = 'return true;';
-
-function cleanUpVarErrors(out, async) {
-  var matches = out.match(ERRORS_REGEXP);
-  if (!matches || matches.length !== 2) return out;
-  return async
-          ? out.replace(REMOVE_ERRORS_ASYNC, '')
-               .replace(RETURN_ASYNC, RETURN_TRUE_ASYNC)
-          : out.replace(REMOVE_ERRORS, '')
-               .replace(RETURN_VALID, RETURN_TRUE);
-}
-
-
-function schemaHasRules(schema, rules) {
-  for (var key in schema) if (rules[key]) return true;
-}
-
-
-function schemaHasRulesExcept(schema, rules, exceptKeyword) {
-  for (var key in schema) if (key != exceptKeyword && rules[key]) return true;
-}
-
-
-function toQuotedString(str) {
-  return '\'' + escapeQuotes(str) + '\'';
-}
-
-
-function getPathExpr(currentPath, expr, jsonPointers, isNumber) {
-  var path = jsonPointers // false by default
-              ? '\'/\' + ' + expr + (isNumber ? '' : '.replace(/~/g, \'~0\').replace(/\\//g, \'~1\')')
-              : (isNumber ? '\'[\' + ' + expr + ' + \']\'' : '\'[\\\'\' + ' + expr + ' + \'\\\']\'');
-  return joinPaths(currentPath, path);
-}
-
-
-function getPath(currentPath, prop, jsonPointers) {
-  var path = jsonPointers // false by default
-              ? toQuotedString('/' + escapeJsonPointer(prop))
-              : toQuotedString(getProperty(prop));
-  return joinPaths(currentPath, path);
-}
-
-
-var JSON_POINTER = /^\/(?:[^~]|~0|~1)*$/;
-var RELATIVE_JSON_POINTER = /^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;
-function getData($data, lvl, paths) {
-  var up, jsonPointer, data, matches;
-  if ($data === '') return 'rootData';
-  if ($data[0] == '/') {
-    if (!JSON_POINTER.test($data)) throw new Error('Invalid JSON-pointer: ' + $data);
-    jsonPointer = $data;
-    data = 'rootData';
-  } else {
-    matches = $data.match(RELATIVE_JSON_POINTER);
-    if (!matches) throw new Error('Invalid JSON-pointer: ' + $data);
-    up = +matches[1];
-    jsonPointer = matches[2];
-    if (jsonPointer == '#') {
-      if (up >= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);
-      return paths[lvl - up];
-    }
-
-    if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);
-    data = 'data' + ((lvl - up) || '');
-    if (!jsonPointer) return data;
-  }
-
-  var expr = data;
-  var segments = jsonPointer.split('/');
-  for (var i=0; i<segments.length; i++) {
-    var segment = segments[i];
-    if (segment) {
-      data += getProperty(unescapeJsonPointer(segment));
-      expr += ' && ' + data;
-    }
-  }
-  return expr;
-}
-
-
-function joinPaths (a, b) {
-  if (a == '""') return b;
-  return (a + ' + ' + b).replace(/' \+ '/g, '');
-}
-
-
-function unescapeFragment(str) {
-  return unescapeJsonPointer(decodeURIComponent(str));
-}
-
-
-function escapeFragment(str) {
-  return encodeURIComponent(escapeJsonPointer(str));
-}
-
-
-function escapeJsonPointer(str) {
-  return str.replace(/~/g, '~0').replace(/\//g, '~1');
-}
-
-
-function unescapeJsonPointer(str) {
-  return str.replace(/~1/g, '/').replace(/~0/g, '~');
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/compile/validation_error.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/compile/validation_error.js b/node_modules/ajv/lib/compile/validation_error.js
deleted file mode 100644
index 3c5c594..0000000
--- a/node_modules/ajv/lib/compile/validation_error.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-
-module.exports = ValidationError;
-
-
-function ValidationError(errors) {
-  this.message = 'validation failed';
-  this.errors = errors;
-  this.ajv = this.validation = true;
-}
-
-
-ValidationError.prototype = Object.create(Error.prototype);
-ValidationError.prototype.constructor = ValidationError;

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/_limit.jst
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/_limit.jst b/node_modules/ajv/lib/dot/_limit.jst
deleted file mode 100644
index 21793d8..0000000
--- a/node_modules/ajv/lib/dot/_limit.jst
+++ /dev/null
@@ -1,49 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.$data }}
-
-{{
-  var $isMax = $keyword == 'maximum'
-    , $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum'
-    , $schemaExcl = it.schema[$exclusiveKeyword]
-    , $isDataExcl = it.opts.v5 && $schemaExcl && $schemaExcl.$data
-    , $op = $isMax ? '<' : '>'
-    , $notOp = $isMax ? '>' : '<';
-}}
-
-{{? $isDataExcl }}
-  {{
-    var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr)
-      , $exclusive = 'exclusive' + $lvl
-      , $opExpr = 'op' + $lvl
-      , $opStr = '\' + ' + $opExpr + ' + \'';
-  }}
-  var schemaExcl{{=$lvl}} = {{=$schemaValueExcl}};
-  {{ $schemaValueExcl = 'schemaExcl' + $lvl; }}
-
-  var exclusive{{=$lvl}};
-  if (typeof {{=$schemaValueExcl}} != 'boolean' && typeof {{=$schemaValueExcl}} != 'undefined') {
-    {{ var $errorKeyword = $exclusiveKeyword; }}
-    {{# def.error:'_exclusiveLimit' }}
-  } else if({{# def.$dataNotType:'number' }}
-            ((exclusive{{=$lvl}} = {{=$schemaValueExcl}} === true)
-              ? {{=$data}} {{=$notOp}}= {{=$schemaValue}}
-              : {{=$data}} {{=$notOp}} {{=$schemaValue}})
-            || {{=$data}} !== {{=$data}}) {
-    var op{{=$lvl}} = exclusive{{=$lvl}} ? '{{=$op}}' : '{{=$op}}=';
-{{??}}
-  {{
-    var $exclusive = $schemaExcl === true
-      , $opStr = $op;  /*used in error*/
-    if (!$exclusive) $opStr += '=';
-    var $opExpr = '\'' + $opStr + '\''; /*used in error*/
-  }}
-
-  if ({{# def.$dataNotType:'number' }}
-      {{=$data}} {{=$notOp}}{{?$exclusive}}={{?}} {{=$schemaValue}}
-      || {{=$data}} !== {{=$data}}) {
-{{?}}
-    {{ var $errorKeyword = $keyword; }}
-    {{# def.error:'_limit' }}
-  } {{? $breakOnError }} else { {{?}}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/_limitItems.jst
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/_limitItems.jst b/node_modules/ajv/lib/dot/_limitItems.jst
deleted file mode 100644
index a3e078e..0000000
--- a/node_modules/ajv/lib/dot/_limitItems.jst
+++ /dev/null
@@ -1,10 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.$data }}
-
-{{ var $op = $keyword == 'maxItems' ? '>' : '<'; }}
-if ({{# def.$dataNotType:'number' }} {{=$data}}.length {{=$op}} {{=$schemaValue}}) {
-  {{ var $errorKeyword = $keyword; }}
-  {{# def.error:'_limitItems' }}
-} {{? $breakOnError }} else { {{?}}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/_limitLength.jst
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/_limitLength.jst b/node_modules/ajv/lib/dot/_limitLength.jst
deleted file mode 100644
index cfc8dbb..0000000
--- a/node_modules/ajv/lib/dot/_limitLength.jst
+++ /dev/null
@@ -1,10 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.$data }}
-
-{{ var $op = $keyword == 'maxLength' ? '>' : '<'; }}
-if ({{# def.$dataNotType:'number' }} {{# def.strLength }} {{=$op}} {{=$schemaValue}}) {
-  {{ var $errorKeyword = $keyword; }}
-  {{# def.error:'_limitLength' }}
-} {{? $breakOnError }} else { {{?}}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/_limitProperties.jst
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/_limitProperties.jst b/node_modules/ajv/lib/dot/_limitProperties.jst
deleted file mode 100644
index da7ea77..0000000
--- a/node_modules/ajv/lib/dot/_limitProperties.jst
+++ /dev/null
@@ -1,10 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.$data }}
-
-{{ var $op = $keyword == 'maxProperties' ? '>' : '<'; }}
-if ({{# def.$dataNotType:'number' }} Object.keys({{=$data}}).length {{=$op}} {{=$schemaValue}}) {
-  {{ var $errorKeyword = $keyword; }}
-  {{# def.error:'_limitProperties' }}
-} {{? $breakOnError }} else { {{?}}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/allOf.jst
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/allOf.jst b/node_modules/ajv/lib/dot/allOf.jst
deleted file mode 100644
index 4c28363..0000000
--- a/node_modules/ajv/lib/dot/allOf.jst
+++ /dev/null
@@ -1,34 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.setupNextLevel }}
-
-{{
-  var $currentBaseId = $it.baseId
-    , $allSchemasEmpty = true;
-}}
-
-{{~ $schema:$sch:$i }}
-  {{? {{# def.nonEmptySchema:$sch }} }}
-    {{
-      $allSchemasEmpty = false;
-      $it.schema = $sch;
-      $it.schemaPath = $schemaPath + '[' + $i + ']';
-      $it.errSchemaPath = $errSchemaPath + '/' + $i;
-    }}
-
-    {{# def.insertSubschemaCode }}
-
-    {{# def.ifResultValid }}
-  {{?}}
-{{~}}
-
-{{? $breakOnError }}
-  {{? $allSchemasEmpty }}
-    if (true) {
-  {{??}}
-    {{= $closingBraces.slice(0,-1) }}
-  {{?}}
-{{?}}
-
-{{# def.cleanUp }}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/anyOf.jst
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/anyOf.jst b/node_modules/ajv/lib/dot/anyOf.jst
deleted file mode 100644
index 93c3cd8..0000000
--- a/node_modules/ajv/lib/dot/anyOf.jst
+++ /dev/null
@@ -1,48 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.setupNextLevel }}
-
-{{
-  var $noEmptySchema = $schema.every(function($sch) {
-    return {{# def.nonEmptySchema:$sch }};
-  });
-}}
-{{? $noEmptySchema }}
-  {{ var $currentBaseId = $it.baseId; }}
-  var {{=$errs}} = errors;
-  var {{=$valid}} = false;
-
-  {{# def.setCompositeRule }}
-
-  {{~ $schema:$sch:$i }}
-    {{
-      $it.schema = $sch;
-      $it.schemaPath = $schemaPath + '[' + $i + ']';
-      $it.errSchemaPath = $errSchemaPath + '/' + $i;
-    }}
-
-    {{# def.insertSubschemaCode }}
-
-    {{=$valid}} = {{=$valid}} || {{=$nextValid}};
-
-    if (!{{=$valid}}) {
-    {{ $closingBraces += '}'; }}
-  {{~}}
-
-  {{# def.resetCompositeRule }}
-
-  {{= $closingBraces }}
-
-  if (!{{=$valid}}) {
-    {{# def.addError:'anyOf' }}
-  } else {
-    {{# def.resetErrors }}
-  {{? it.opts.allErrors }} } {{?}}
-
-  {{# def.cleanUp }}
-{{??}}
-  {{? $breakOnError }}
-    if (true) {
-  {{?}}
-{{?}}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/coerce.def
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/coerce.def b/node_modules/ajv/lib/dot/coerce.def
deleted file mode 100644
index 86e0e18..0000000
--- a/node_modules/ajv/lib/dot/coerce.def
+++ /dev/null
@@ -1,61 +0,0 @@
-{{## def.coerceType:
-  {{
-    var $dataType = 'dataType' + $lvl
-      , $coerced = 'coerced' + $lvl;
-  }}
-  var {{=$dataType}} = typeof {{=$data}};
-  {{? it.opts.coerceTypes == 'array'}}
-    if ({{=$dataType}} == 'object' && Array.isArray({{=$data}})) {{=$dataType}} = 'array';
-  {{?}}
-
-  var {{=$coerced}} = undefined;
-
-  {{ var $bracesCoercion = ''; }}
-  {{~ $coerceToTypes:$type:$i }}
-    {{? $i }}
-      if ({{=$coerced}} === undefined) {
-      {{ $bracesCoercion += '}'; }}
-    {{?}}
-
-    {{? it.opts.coerceTypes == 'array' && $type != 'array' }}
-      if ({{=$dataType}} == 'array' && {{=$data}}.length == 1) {
-        {{=$coerced}} = {{=$data}} = {{=$data}}[0];
-        {{=$dataType}} = typeof {{=$data}};
-        /*if ({{=$dataType}} == 'object' && Array.isArray({{=$data}})) {{=$dataType}} = 'array';*/
-      }
-    {{?}}
-
-    {{? $type == 'string' }}
-      if ({{=$dataType}} == 'number' || {{=$dataType}} == 'boolean')
-        {{=$coerced}} = '' + {{=$data}};
-      else if ({{=$data}} === null) {{=$coerced}} = '';
-    {{?? $type == 'number' || $type == 'integer' }}
-      if ({{=$dataType}} == 'boolean' || {{=$data}} === null
-          || ({{=$dataType}} == 'string' && {{=$data}} && {{=$data}} == +{{=$data}}
-          {{? $type == 'integer' }} && !({{=$data}} % 1){{?}}))
-        {{=$coerced}} = +{{=$data}};
-    {{?? $type == 'boolean' }}
-      if ({{=$data}} === 'false' || {{=$data}} === 0 || {{=$data}} === null)
-        {{=$coerced}} = false;
-      else if ({{=$data}} === 'true' || {{=$data}} === 1)
-        {{=$coerced}} = true;
-    {{?? $type == 'null' }}
-      if ({{=$data}} === '' || {{=$data}} === 0 || {{=$data}} === false)
-        {{=$coerced}} = null;
-    {{?? it.opts.coerceTypes == 'array' && $type == 'array' }}
-      if ({{=$dataType}} == 'string' || {{=$dataType}} == 'number' || {{=$dataType}} == 'boolean' || {{=$data}} == null)
-        {{=$coerced}} = [{{=$data}}];
-    {{?}}
-  {{~}}
-
-  {{= $bracesCoercion }}
-
-  if ({{=$coerced}} === undefined) {
-    {{# def.error:'type' }}
-  } else {
-    {{# def.setParentData }}
-    {{=$data}} = {{=$coerced}};
-    {{? !$dataLvl }}if ({{=$parentData}} !== undefined){{?}}
-      {{=$parentData}}[{{=$parentDataProperty}}] = {{=$coerced}};
-  }
-#}}


[16/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bunyan/bin/bunyan
----------------------------------------------------------------------
diff --git a/node_modules/bunyan/bin/bunyan b/node_modules/bunyan/bin/bunyan
deleted file mode 100755
index 73cf458..0000000
--- a/node_modules/bunyan/bin/bunyan
+++ /dev/null
@@ -1,1665 +0,0 @@
-#!/usr/bin/env node
-/**
- * Copyright 2016 Trent Mick
- * Copyright 2016 Joyent Inc.
- *
- * bunyan -- filter and pretty-print Bunyan log files (line-delimited JSON)
- *
- * See <https://github.com/trentm/node-bunyan>.
- *
- * -*- mode: js -*-
- * vim: expandtab:ts=4:sw=4
- */
-
-var VERSION = '1.8.8';
-
-var p = console.log;
-var util = require('util');
-var pathlib = require('path');
-var vm = require('vm');
-var http = require('http');
-var fs = require('fs');
-var warn = console.warn;
-var child_process = require('child_process'),
-    spawn = child_process.spawn,
-    exec = child_process.exec,
-    execFile = child_process.execFile;
-var assert = require('assert');
-
-try {
-    var moment = require('moment');
-} catch (e) {
-    moment = null;
-}
-
-
-//---- globals and constants
-
-var nodeVer = process.versions.node.split('.').map(Number);
-var nodeSpawnSupportsStdio = (nodeVer[0] > 0 || nodeVer[1] >= 8);
-
-// Internal debug logging via `console.warn`.
-var _DEBUG = false;
-
-// Output modes.
-var OM_LONG = 1;
-var OM_JSON = 2;
-var OM_INSPECT = 3;
-var OM_SIMPLE = 4;
-var OM_SHORT = 5;
-var OM_BUNYAN = 6;
-var OM_FROM_NAME = {
-    'long': OM_LONG,
-    'paul': OM_LONG,  /* backward compat */
-    'json': OM_JSON,
-    'inspect': OM_INSPECT,
-    'simple': OM_SIMPLE,
-    'short': OM_SHORT,
-    'bunyan': OM_BUNYAN
-};
-
-
-// Levels
-var TRACE = 10;
-var DEBUG = 20;
-var INFO = 30;
-var WARN = 40;
-var ERROR = 50;
-var FATAL = 60;
-
-var levelFromName = {
-    'trace': TRACE,
-    'debug': DEBUG,
-    'info': INFO,
-    'warn': WARN,
-    'error': ERROR,
-    'fatal': FATAL
-};
-var nameFromLevel = {};
-var upperNameFromLevel = {};
-var upperPaddedNameFromLevel = {};
-Object.keys(levelFromName).forEach(function (name) {
-    var lvl = levelFromName[name];
-    nameFromLevel[lvl] = name;
-    upperNameFromLevel[lvl] = name.toUpperCase();
-    upperPaddedNameFromLevel[lvl] = (
-        name.length === 4 ? ' ' : '') + name.toUpperCase();
-});
-
-
-// Display time formats.
-var TIME_UTC = 1;  // the default, bunyan's native format
-var TIME_LOCAL = 2;
-
-// Timezone formats: output format -> momentjs format string
-var TIMEZONE_UTC_FORMATS = {
-    long:  '[[]YYYY-MM-DD[T]HH:mm:ss.SSS[Z][]]',
-    short: 'HH:mm:ss.SSS[Z]'
-};
-var TIMEZONE_LOCAL_FORMATS = {
-    long:  '[[]YYYY-MM-DD[T]HH:mm:ss.SSSZ[]]',
-    short: 'HH:mm:ss.SSS'
-};
-
-
-// The current raw input line being processed. Used for `uncaughtException`.
-var currLine = null;
-
-// Child dtrace process, if any. Used for signal-handling.
-var child = null;
-
-// Whether ANSI codes are being used. Used for signal-handling.
-var usingAnsiCodes = false;
-
-// Used to tell the 'uncaughtException' handler that '-c CODE' is being used.
-var gUsingConditionOpts = false;
-
-// Pager child process, and output stream to which to write.
-var pager = null;
-var stdout = process.stdout;
-
-// Whether we are reading from stdin.
-var readingStdin = false;
-
-
-
-//---- support functions
-
-function getVersion() {
-    return VERSION;
-}
-
-
-var format = util.format;
-if (!format) {
-    /* BEGIN JSSTYLED */
-    // If not node 0.6, then use its `util.format`:
-    // <https://github.com/joyent/node/blob/master/lib/util.js#L22>:
-    var inspect = util.inspect;
-    var formatRegExp = /%[sdj%]/g;
-    format = function format(f) {
-        if (typeof f !== 'string') {
-            var objects = [];
-            for (var i = 0; i < arguments.length; i++) {
-                objects.push(inspect(arguments[i]));
-            }
-            return objects.join(' ');
-        }
-
-        var i = 1;
-        var args = arguments;
-        var len = args.length;
-        var str = String(f).replace(formatRegExp, function (x) {
-            if (i >= len)
-                return x;
-            switch (x) {
-                case '%s': return String(args[i++]);
-                case '%d': return Number(args[i++]);
-                case '%j': return JSON.stringify(args[i++]);
-                case '%%': return '%';
-                default:
-                    return x;
-            }
-        });
-        for (var x = args[i]; i < len; x = args[++i]) {
-            if (x === null || typeof x !== 'object') {
-                str += ' ' + x;
-            } else {
-                str += ' ' + inspect(x);
-            }
-        }
-        return str;
-    };
-    /* END JSSTYLED */
-}
-
-function indent(s) {
-    return '    ' + s.split(/\r?\n/).join('\n    ');
-}
-
-function objCopy(obj) {
-    if (obj === null) {
-        return null;
-    } else if (Array.isArray(obj)) {
-        return obj.slice();
-    } else {
-        var copy = {};
-        Object.keys(obj).forEach(function (k) {
-            copy[k] = obj[k];
-        });
-        return copy;
-    }
-}
-
-function printHelp() {
-    /* BEGIN JSSTYLED */
-    p('Usage:');
-    p('  bunyan [OPTIONS] [FILE ...]');
-    p('  ... | bunyan [OPTIONS]');
-    p('  bunyan [OPTIONS] -p PID');
-    p('');
-    p('Filter and pretty-print Bunyan log file content.');
-    p('');
-    p('General options:');
-    p('  -h, --help    print this help info and exit');
-    p('  --version     print version of this command and exit');
-    p('');
-    p('Runtime log snooping (via DTrace, only on supported platforms):');
-    p('  -p PID        Process bunyan:log-* probes from the process');
-    p('                with the given PID. Can be used multiple times,');
-    p('                or specify all processes with "*", or a set of');
-    p('                processes whose command & args match a pattern');
-    p('                with "-p NAME".');
-    p('');
-    p('Filtering options:');
-    p('  -l, --level LEVEL');
-    p('                Only show messages at or above the specified level.');
-    p('                You can specify level *names* or the internal numeric');
-    p('                values.');
-    p('  -c, --condition CONDITION');
-    p('                Run each log message through the condition and');
-    p('                only show those that return truish. E.g.:');
-    p('                    -c \'this.pid == 123\'');
-    p('                    -c \'this.level == DEBUG\'');
-    p('                    -c \'this.msg.indexOf("boom") != -1\'');
-    p('                "CONDITION" must be legal JS code. `this` holds');
-    p('                the log record. The TRACE, DEBUG, ... FATAL values');
-    p('                are defined to help with comparing `this.level`.');
-    p('  --strict      Suppress all but legal Bunyan JSON log lines. By default');
-    p('                non-JSON, and non-Bunyan lines are passed through.');
-    p('');
-    p('Output options:');
-    p('  --pager       Pipe output into `less` (or $PAGER if set), if');
-    p('                stdout is a TTY. This overrides $BUNYAN_NO_PAGER.');
-    p('                Note: Paging is only supported on node >=0.8.');
-    p('  --no-pager    Do not pipe output into a pager.');
-    p('  --color       Colorize output. Defaults to try if output');
-    p('                stream is a TTY.');
-    p('  --no-color    Force no coloring (e.g. terminal doesn\'t support it)');
-    p('  -o, --output MODE');
-    p('                Specify an output mode/format. One of');
-    p('                  long: (the default) pretty');
-    p('                  json: JSON output, 2-space indent');
-    p('                  json-N: JSON output, N-space indent, e.g. "json-4"');
-    p('                  bunyan: 0 indented JSON, bunyan\'s native format');
-    p('                  inspect: node.js `util.inspect` output');
-    p('                  short: like "long", but more concise');
-    p('                  simple: level, followed by "-" and then the message');
-    p('  -j            shortcut for `-o json`');
-    p('  -0            shortcut for `-o bunyan`');
-    p('  -L, --time local');
-    p('                Display time field in local time, rather than UTC.');
-    p('');
-    p('Environment Variables:');
-    p('  BUNYAN_NO_COLOR    Set to a non-empty value to force no output ');
-    p('                     coloring. See "--no-color".');
-    p('  BUNYAN_NO_PAGER    Disable piping output to a pager. ');
-    p('                     See "--no-pager".');
-    p('');
-    p('See <https://github.com/trentm/node-bunyan> for more complete docs.');
-    p('Please report bugs to <https://github.com/trentm/node-bunyan/issues>.');
-    /* END JSSTYLED */
-}
-
-/*
- * If the user specifies multiple input sources, we want to print out records
- * from all sources in a single, chronologically ordered stream.  To do this
- * efficiently, we first assume that all records within each source are ordered
- * already, so we need only keep track of the next record in each source and
- * the time of the last record emitted.  To avoid excess memory usage, we
- * pause() streams that are ahead of others.
- *
- * 'streams' is an object indexed by source name (file name) which specifies:
- *
- *    stream        Actual stream object, so that we can pause and resume it.
- *
- *    records       Array of log records we've read, but not yet emitted.  Each
- *                  record includes 'line' (the raw line), 'rec' (the JSON
- *                  record), and 'time' (the parsed time value).
- *
- *    done          Whether the stream has any more records to emit.
- */
-var streams = {};
-
-function gotRecord(file, line, rec, opts, stylize)
-{
-    var time = new Date(rec.time);
-
-    streams[file]['records'].push({ line: line, rec: rec, time: time });
-    emitNextRecord(opts, stylize);
-}
-
-function filterRecord(rec, opts)
-{
-    if (opts.level && rec.level < opts.level) {
-        return false;
-    }
-
-    if (opts.condFuncs) {
-        var recCopy = objCopy(rec);
-        for (var i = 0; i < opts.condFuncs.length; i++) {
-            var pass = opts.condFuncs[i].call(recCopy);
-            if (!pass)
-                return false;
-        }
-    } else if (opts.condVm) {
-        for (var i = 0; i < opts.condVm.length; i++) {
-            var pass = opts.condVm[i].runInNewContext(rec);
-            if (!pass)
-                return false;
-        }
-    }
-
-    return true;
-}
-
-function emitNextRecord(opts, stylize)
-{
-    var ofile, ready, minfile, rec;
-
-    for (;;) {
-        /*
-         * Take a first pass through the input streams to see if we have a
-         * record from all of them.  If not, we'll pause any streams for
-         * which we do already have a record (to avoid consuming excess
-         * memory) and then wait until we have records from the others
-         * before emitting the next record.
-         *
-         * As part of the same pass, we look for the earliest record
-         * we have not yet emitted.
-         */
-        minfile = undefined;
-        ready = true;
-        for (ofile in streams) {
-
-            if (streams[ofile].stream === null ||
-                (!streams[ofile].done && streams[ofile].records.length === 0)) {
-                ready = false;
-                break;
-            }
-
-            if (streams[ofile].records.length > 0 &&
-                (minfile === undefined ||
-                    streams[minfile].records[0].time >
-                        streams[ofile].records[0].time)) {
-                minfile = ofile;
-            }
-        }
-
-        if (!ready || minfile === undefined) {
-            for (ofile in streams) {
-                if (!streams[ofile].stream || streams[ofile].done)
-                    continue;
-
-                if (streams[ofile].records.length > 0) {
-                    if (!streams[ofile].paused) {
-                        streams[ofile].paused = true;
-                        streams[ofile].stream.pause();
-                    }
-                } else if (streams[ofile].paused) {
-                    streams[ofile].paused = false;
-                    streams[ofile].stream.resume();
-                }
-            }
-
-            return;
-        }
-
-        /*
-         * Emit the next record for 'minfile', and invoke ourselves again to
-         * make sure we emit as many records as we can right now.
-         */
-        rec = streams[minfile].records.shift();
-        emitRecord(rec.rec, rec.line, opts, stylize);
-    }
-}
-
-/**
- * Return a function for the given JS code that returns.
- *
- * If no 'return' in the given javascript snippet, then assume we are a single
- * statement and wrap in 'return (...)'. This is for convenience for short
- * '-c ...' snippets.
- */
-function funcWithReturnFromSnippet(js) {
-    // auto-"return"
-    if (js.indexOf('return') === -1) {
-        if (js.substring(js.length - 1) === ';') {
-            js = js.substring(0, js.length - 1);
-        }
-        js = 'return (' + js + ')';
-    }
-
-    // Expose level definitions to condition func context
-    var varDefs = [];
-    Object.keys(upperNameFromLevel).forEach(function (lvl) {
-        varDefs.push(format('var %s = %d;',
-                upperNameFromLevel[lvl], lvl));
-    });
-    varDefs = varDefs.join('\n') + '\n';
-
-    return (new Function(varDefs + js));
-}
-
-/**
- * Parse the command-line options and arguments into an object.
- *
- *    {
- *      'args': [...]       // arguments
- *      'help': true,       // true if '-h' option given
- *       // etc.
- *    }
- *
- * @return {Object} The parsed options. `.args` is the argument list.
- * @throws {Error} If there is an error parsing argv.
- */
-function parseArgv(argv) {
-    var parsed = {
-        args: [],
-        help: false,
-        color: null,
-        paginate: null,
-        outputMode: OM_LONG,
-        jsonIndent: 2,
-        level: null,
-        strict: false,
-        pids: null,
-        pidsType: null,
-        timeFormat: TIME_UTC  // one of the TIME_ constants
-    };
-
-    // Turn '-iH' into '-i -H', except for argument-accepting options.
-    var args = argv.slice(2);  // drop ['node', 'scriptname']
-    var newArgs = [];
-    var optTakesArg = {'d': true, 'o': true, 'c': true, 'l': true, 'p': true};
-    for (var i = 0; i < args.length; i++) {
-        if (args[i].charAt(0) === '-' && args[i].charAt(1) !== '-' &&
-            args[i].length > 2)
-        {
-            var splitOpts = args[i].slice(1).split('');
-            for (var j = 0; j < splitOpts.length; j++) {
-                newArgs.push('-' + splitOpts[j]);
-                if (optTakesArg[splitOpts[j]]) {
-                    var optArg = splitOpts.slice(j+1).join('');
-                    if (optArg.length) {
-                        newArgs.push(optArg);
-                    }
-                    break;
-                }
-            }
-        } else {
-            newArgs.push(args[i]);
-        }
-    }
-    args = newArgs;
-
-    // Expose level definitions to condition vm context
-    var condDefines = [];
-    Object.keys(upperNameFromLevel).forEach(function (lvl) {
-        condDefines.push(
-            format('Object.prototype.%s = %s;', upperNameFromLevel[lvl], lvl));
-    });
-    condDefines = condDefines.join('\n') + '\n';
-
-    var endOfOptions = false;
-    while (args.length > 0) {
-        var arg = args.shift();
-        switch (arg) {
-            case '--':
-                endOfOptions = true;
-                break;
-            case '-h': // display help and exit
-            case '--help':
-                parsed.help = true;
-                break;
-            case '--version':
-                parsed.version = true;
-                break;
-            case '--strict':
-                parsed.strict = true;
-                break;
-            case '--color':
-                parsed.color = true;
-                break;
-            case '--no-color':
-                parsed.color = false;
-                break;
-            case '--pager':
-                parsed.paginate = true;
-                break;
-            case '--no-pager':
-                parsed.paginate = false;
-                break;
-            case '-o':
-            case '--output':
-                var name = args.shift();
-                var idx = name.lastIndexOf('-');
-                if (idx !== -1) {
-                    var indentation = Number(name.slice(idx+1));
-                    if (! isNaN(indentation)) {
-                        parsed.jsonIndent = indentation;
-                        name = name.slice(0, idx);
-                    }
-                }
-                parsed.outputMode = OM_FROM_NAME[name];
-                if (parsed.outputMode === undefined) {
-                    throw new Error('unknown output mode: "'+name+'"');
-                }
-                break;
-            case '-j': // output with JSON.stringify
-                parsed.outputMode = OM_JSON;
-                break;
-            case '-0':
-                parsed.outputMode = OM_BUNYAN;
-                break;
-            case '-L':
-                parsed.timeFormat = TIME_LOCAL;
-                if (!moment) {
-                    throw new Error(
-                        'could not find moment package required for "-L"');
-                }
-                break;
-            case '--time':
-                var timeArg = args.shift();
-                switch (timeArg) {
-                case 'utc':
-                    parsed.timeFormat = TIME_UTC;
-                    break
-                case 'local':
-                    parsed.timeFormat = TIME_LOCAL;
-                    if (!moment) {
-                        throw new Error('could not find moment package '
-                            + 'required for "--time=local"');
-                    }
-                    break
-                case undefined:
-                    throw new Error('missing argument to "--time"');
-                default:
-                    throw new Error(format('invalid time format: "%s"',
-                        timeArg));
-                }
-                break;
-            case '-p':
-                if (!parsed.pids) {
-                    parsed.pids = [];
-                }
-                var pidArg = args.shift();
-                var pid = +(pidArg);
-                if (!isNaN(pid) || pidArg === '*') {
-                    if (parsed.pidsType && parsed.pidsType !== 'num') {
-                        throw new Error(format('cannot mix PID name and '
-                            + 'number arguments: "%s"', pidArg));
-                    }
-                    parsed.pidsType = 'num';
-                    if (!parsed.pids) {
-                        parsed.pids = [];
-                    }
-                    parsed.pids.push(isNaN(pid) ? pidArg : pid);
-                } else {
-                    if (parsed.pidsType && parsed.pidsType !== 'name') {
-                        throw new Error(format('cannot mix PID name and '
-                            + 'number arguments: "%s"', pidArg));
-                    }
-                    parsed.pidsType = 'name';
-                    parsed.pids = pidArg;
-                }
-                break;
-            case '-l':
-            case '--level':
-                var levelArg = args.shift();
-                var level = +(levelArg);
-                if (isNaN(level)) {
-                    level = +levelFromName[levelArg.toLowerCase()];
-                }
-                if (isNaN(level)) {
-                    throw new Error('unknown level value: "'+levelArg+'"');
-                }
-                parsed.level = level;
-                break;
-            case '-c':
-            case '--condition':
-                gUsingConditionOpts = true;
-                var condition = args.shift();
-                if (Boolean(process.env.BUNYAN_EXEC &&
-                    process.env.BUNYAN_EXEC === 'vm'))
-                {
-                    parsed.condVm = parsed.condVm || [];
-                    var scriptName = 'bunyan-condition-'+parsed.condVm.length;
-                    var code = condDefines + condition;
-                    var script;
-                    try {
-                        script = vm.createScript(code, scriptName);
-                    } catch (complErr) {
-                        throw new Error(format('illegal CONDITION code: %s\n'
-                            + '  CONDITION script:\n'
-                            + '%s\n'
-                            + '  Error:\n'
-                            + '%s',
-                            complErr, indent(code), indent(complErr.stack)));
-                    }
-
-                    // Ensure this is a reasonably safe CONDITION.
-                    try {
-                        script.runInNewContext(minValidRecord);
-                    } catch (condErr) {
-                        throw new Error(format(
-                            /* JSSTYLED */
-                            'CONDITION code cannot safely filter a minimal Bunyan log record\n'
-                            + '  CONDITION script:\n'
-                            + '%s\n'
-                            + '  Minimal Bunyan log record:\n'
-                            + '%s\n'
-                            + '  Filter error:\n'
-                            + '%s',
-                            indent(code),
-                            indent(JSON.stringify(minValidRecord, null, 2)),
-                            indent(condErr.stack)
-                            ));
-                    }
-                    parsed.condVm.push(script);
-                } else  {
-                    parsed.condFuncs = parsed.condFuncs || [];
-                    parsed.condFuncs.push(funcWithReturnFromSnippet(condition));
-                }
-                break;
-            default: // arguments
-                if (!endOfOptions && arg.length > 0 && arg[0] === '-') {
-                    throw new Error('unknown option "'+arg+'"');
-                }
-                parsed.args.push(arg);
-                break;
-        }
-    }
-    //TODO: '--' handling and error on a first arg that looks like an option.
-
-    return parsed;
-}
-
-
-function isInteger(s) {
-    return (s.search(/^-?[0-9]+$/) == 0);
-}
-
-
-// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
-// Suggested colors (some are unreadable in common cases):
-// - Good: cyan, yellow (limited use), bold, green, magenta, red
-// - Bad: blue (not visible on cmd.exe), grey (same color as background on
-//   Solarized Dark theme from <https://github.com/altercation/solarized>, see
-//   issue #160)
-var colors = {
-    'bold' : [1, 22],
-    'italic' : [3, 23],
-    'underline' : [4, 24],
-    'inverse' : [7, 27],
-    'white' : [37, 39],
-    'grey' : [90, 39],
-    'black' : [30, 39],
-    'blue' : [34, 39],
-    'cyan' : [36, 39],
-    'green' : [32, 39],
-    'magenta' : [35, 39],
-    'red' : [31, 39],
-    'yellow' : [33, 39]
-};
-
-function stylizeWithColor(str, color) {
-    if (!str)
-        return '';
-    var codes = colors[color];
-    if (codes) {
-        return '\033[' + codes[0] + 'm' + str +
-                     '\033[' + codes[1] + 'm';
-    } else {
-        return str;
-    }
-}
-
-function stylizeWithoutColor(str, color) {
-    return str;
-}
-
-
-/**
- * Is this a valid Bunyan log record.
- */
-function isValidRecord(rec) {
-    if (rec.v == null ||
-            rec.level == null ||
-            rec.name == null ||
-            rec.hostname == null ||
-            rec.pid == null ||
-            rec.time == null ||
-            rec.msg == null) {
-        // Not valid Bunyan log.
-        return false;
-    } else {
-        return true;
-    }
-}
-var minValidRecord = {
-    v: 0,   //TODO: get this from bunyan.LOG_VERSION
-    level: INFO,
-    name: 'name',
-    hostname: 'hostname',
-    pid: 123,
-    time: Date.now(),
-    msg: 'msg'
-};
-
-
-/**
- * Parses the given log line and either emits it right away (for invalid
- * records) or enqueues it for emitting later when it's the next line to show.
- */
-function handleLogLine(file, line, opts, stylize) {
-    currLine = line; // intentionally global
-
-    // Emit non-JSON lines immediately.
-    var rec;
-    if (!line) {
-        if (!opts.strict) emit(line + '\n');
-        return;
-    } else if (line[0] !== '{') {
-        if (!opts.strict) emit(line + '\n');  // not JSON
-        return;
-    } else {
-        try {
-            rec = JSON.parse(line);
-        } catch (e) {
-            if (!opts.strict) emit(line + '\n');
-            return;
-        }
-    }
-
-    if (!isValidRecord(rec)) {
-        if (!opts.strict) emit(line + '\n');
-        return;
-    }
-
-    if (!filterRecord(rec, opts))
-        return;
-
-    if (file === null)
-        return emitRecord(rec, line, opts, stylize);
-
-    return gotRecord(file, line, rec, opts, stylize);
-}
-
-/**
- * Print out a single result, considering input options.
- */
-function emitRecord(rec, line, opts, stylize) {
-    var short = false;
-
-    switch (opts.outputMode) {
-    case OM_SHORT:
-        short = true;
-        /* jsl:fall-thru */
-
-    case OM_LONG:
-        //    [time] LEVEL: name[/comp]/pid on hostname (src): msg* (extras...)
-        //        msg*
-        //        --
-        //        long and multi-line extras
-        //        ...
-        // If 'msg' is single-line, then it goes in the top line.
-        // If 'req', show the request.
-        // If 'res', show the response.
-        // If 'err' and 'err.stack' then show that.
-        if (!isValidRecord(rec)) {
-            return emit(line + '\n');
-        }
-
-        delete rec.v;
-
-        // Time.
-        var time;
-        if (!short && opts.timeFormat === TIME_UTC) {
-            // Fast default path: We assume the raw `rec.time` is a UTC time
-            // in ISO 8601 format (per spec).
-            time = '[' + rec.time + ']';
-        } else if (!moment && opts.timeFormat === TIME_UTC) {
-            // Don't require momentjs install, as long as not using TIME_LOCAL.
-            time = rec.time.substr(11);
-        } else {
-            var tzFormat;
-            var moTime = moment(rec.time);
-            switch (opts.timeFormat) {
-            case TIME_UTC:
-                tzFormat = TIMEZONE_UTC_FORMATS[short ? 'short' : 'long'];
-                moTime.utc();
-                break;
-            case TIME_LOCAL:
-                tzFormat = TIMEZONE_LOCAL_FORMATS[short ? 'short' : 'long'];
-                break;
-            default:
-                throw new Error('unexpected timeFormat: ' + opts.timeFormat);
-            };
-            time = moTime.format(tzFormat);
-        }
-        time = stylize(time, 'XXX');
-        delete rec.time;
-
-        var nameStr = rec.name;
-        delete rec.name;
-
-        if (rec.component) {
-            nameStr += '/' + rec.component;
-        }
-        delete rec.component;
-
-        if (!short)
-            nameStr += '/' + rec.pid;
-        delete rec.pid;
-
-        var level = (upperPaddedNameFromLevel[rec.level] || 'LVL' + rec.level);
-        if (opts.color) {
-            var colorFromLevel = {
-                10: 'white',    // TRACE
-                20: 'yellow',   // DEBUG
-                30: 'cyan',     // INFO
-                40: 'magenta',  // WARN
-                50: 'red',      // ERROR
-                60: 'inverse',  // FATAL
-            };
-            level = stylize(level, colorFromLevel[rec.level]);
-        }
-        delete rec.level;
-
-        var src = '';
-        if (rec.src && rec.src.file) {
-            var s = rec.src;
-            if (s.func) {
-                src = format(' (%s:%d in %s)', s.file, s.line, s.func);
-            } else {
-                src = format(' (%s:%d)', s.file, s.line);
-            }
-            src = stylize(src, 'green');
-        }
-        delete rec.src;
-
-        var hostname = rec.hostname;
-        delete rec.hostname;
-
-        var extras = [];
-        var details = [];
-
-        if (rec.req_id) {
-            extras.push('req_id=' + rec.req_id);
-        }
-        delete rec.req_id;
-
-        var onelineMsg;
-        if (rec.msg.indexOf('\n') !== -1) {
-            onelineMsg = '';
-            details.push(indent(stylize(rec.msg, 'cyan')));
-        } else {
-            onelineMsg = ' ' + stylize(rec.msg, 'cyan');
-        }
-        delete rec.msg;
-
-        if (rec.req && typeof (rec.req) === 'object') {
-            var req = rec.req;
-            delete rec.req;
-            var headers = req.headers;
-            if (!headers) {
-                headers = '';
-            } else if (typeof (headers) === 'string') {
-                headers = '\n' + headers;
-            } else if (typeof (headers) === 'object') {
-                headers = '\n' + Object.keys(headers).map(function (h) {
-                    return h + ': ' + headers[h];
-                }).join('\n');
-            }
-            var s = format('%s %s HTTP/%s%s', req.method,
-                req.url,
-                req.httpVersion || '1.1',
-                headers
-            );
-            delete req.url;
-            delete req.method;
-            delete req.httpVersion;
-            delete req.headers;
-            if (req.body) {
-                s += '\n\n' + (typeof (req.body) === 'object'
-                    ? JSON.stringify(req.body, null, 2) : req.body);
-                delete req.body;
-            }
-            if (req.trailers && Object.keys(req.trailers) > 0) {
-                s += '\n' + Object.keys(req.trailers).map(function (t) {
-                    return t + ': ' + req.trailers[t];
-                }).join('\n');
-            }
-            delete req.trailers;
-            details.push(indent(s));
-            // E.g. for extra 'foo' field on 'req', add 'req.foo' at
-            // top-level. This *does* have the potential to stomp on a
-            // literal 'req.foo' key.
-            Object.keys(req).forEach(function (k) {
-                rec['req.' + k] = req[k];
-            })
-        }
-
-        if (rec.client_req && typeof (rec.client_req) === 'object') {
-            var client_req = rec.client_req;
-            delete rec.client_req;
-            var headers = client_req.headers;
-            var hostHeaderLine = '';
-            var s = '';
-            if (client_req.address) {
-                hostHeaderLine = '\nHost: ' + client_req.address;
-                if (client_req.port)
-                    hostHeaderLine += ':' + client_req.port;
-            }
-            delete client_req.headers;
-            delete client_req.address;
-            delete client_req.port;
-            s += format('%s %s HTTP/%s%s%s', client_req.method,
-                client_req.url,
-                client_req.httpVersion || '1.1',
-                hostHeaderLine,
-                (headers ?
-                    '\n' + Object.keys(headers).map(
-                        function (h) {
-                            return h + ': ' + headers[h];
-                        }).join('\n') :
-                    ''));
-            delete client_req.method;
-            delete client_req.url;
-            delete client_req.httpVersion;
-            if (client_req.body) {
-                s += '\n\n' + (typeof (client_req.body) === 'object' ?
-                    JSON.stringify(client_req.body, null, 2) :
-                    client_req.body);
-                delete client_req.body;
-            }
-            // E.g. for extra 'foo' field on 'client_req', add
-            // 'client_req.foo' at top-level. This *does* have the potential
-            // to stomp on a literal 'client_req.foo' key.
-            Object.keys(client_req).forEach(function (k) {
-                rec['client_req.' + k] = client_req[k];
-            })
-            details.push(indent(s));
-        }
-
-        function _res(res) {
-            var s = '';
-            if (res.statusCode !== undefined) {
-                s += format('HTTP/1.1 %s %s\n', res.statusCode,
-                    http.STATUS_CODES[res.statusCode]);
-                delete res.statusCode;
-            }
-            // Handle `res.header` or `res.headers` as either a string or
-            // and object of header key/value pairs. Prefer `res.header` if set
-            // (TODO: Why? I don't recall. Typical of restify serializer?
-            // Typical JSON.stringify of a core node HttpResponse?)
-            var headerTypes = {string: true, object: true};
-            var headers;
-            if (res.header && headerTypes[typeof (res.header)]) {
-                headers = res.header;
-                delete res.header;
-            } else if (res.headers && headerTypes[typeof (res.headers)]) {
-                headers = res.headers;
-                delete res.headers;
-            }
-            if (headers === undefined) {
-                /* pass through */
-            } else if (typeof (headers) === 'string') {
-                s += headers.trimRight();
-            } else {
-                s += Object.keys(headers).map(
-                    function (h) { return h + ': ' + headers[h]; }).join('\n');
-            }
-            if (res.body !== undefined) {
-                var body = (typeof (res.body) === 'object'
-                    ? JSON.stringify(res.body, null, 2) : res.body);
-                if (body.length > 0) { s += '\n\n' + body };
-                delete res.body;
-            } else {
-                s = s.trimRight();
-            }
-            if (res.trailer) {
-                s += '\n' + res.trailer;
-            }
-            delete res.trailer;
-            if (s) {
-                details.push(indent(s));
-            }
-            // E.g. for extra 'foo' field on 'res', add 'res.foo' at
-            // top-level. This *does* have the potential to stomp on a
-            // literal 'res.foo' key.
-            Object.keys(res).forEach(function (k) {
-                rec['res.' + k] = res[k];
-            });
-        }
-
-        if (rec.res && typeof (rec.res) === 'object') {
-            _res(rec.res);
-            delete rec.res;
-        }
-        if (rec.client_res && typeof (rec.client_res) === 'object') {
-            _res(rec.client_res);
-            delete rec.client_res;
-        }
-
-        if (rec.err && rec.err.stack) {
-            var err = rec.err
-            if (typeof (err.stack) !== 'string') {
-                details.push(indent(err.stack.toString()));
-            } else {
-                details.push(indent(err.stack));
-            }
-            delete err.message;
-            delete err.name;
-            delete err.stack;
-            // E.g. for extra 'foo' field on 'err', add 'err.foo' at
-            // top-level. This *does* have the potential to stomp on a
-            // literal 'err.foo' key.
-            Object.keys(err).forEach(function (k) {
-                rec['err.' + k] = err[k];
-            })
-            delete rec.err;
-        }
-
-        var leftover = Object.keys(rec);
-        for (var i = 0; i < leftover.length; i++) {
-            var key = leftover[i];
-            var value = rec[key];
-            var stringified = false;
-            if (typeof (value) !== 'string') {
-                value = JSON.stringify(value, null, 2);
-                stringified = true;
-            }
-            if (value.indexOf('\n') !== -1 || value.length > 50) {
-                details.push(indent(key + ': ' + value));
-            } else if (!stringified && (value.indexOf(' ') != -1 ||
-                value.length === 0))
-            {
-                extras.push(key + '=' + JSON.stringify(value));
-            } else {
-                extras.push(key + '=' + value);
-            }
-        }
-
-        extras = stylize(
-            (extras.length ? ' (' + extras.join(', ') + ')' : ''), 'XXX');
-        details = stylize(
-            (details.length ? details.join('\n    --\n') + '\n' : ''), 'XXX');
-        if (!short)
-            emit(format('%s %s: %s on %s%s:%s%s\n%s',
-                time,
-                level,
-                nameStr,
-                hostname || '<no-hostname>',
-                src,
-                onelineMsg,
-                extras,
-                details));
-        else
-            emit(format('%s %s %s:%s%s\n%s',
-                time,
-                level,
-                nameStr,
-                onelineMsg,
-                extras,
-                details));
-        break;
-
-    case OM_INSPECT:
-        emit(util.inspect(rec, false, Infinity, true) + '\n');
-        break;
-
-    case OM_BUNYAN:
-        emit(JSON.stringify(rec, null, 0) + '\n');
-        break;
-
-    case OM_JSON:
-        emit(JSON.stringify(rec, null, opts.jsonIndent) + '\n');
-        break;
-
-    case OM_SIMPLE:
-        /* JSSTYLED */
-        // <http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/SimpleLayout.html>
-        if (!isValidRecord(rec)) {
-            return emit(line + '\n');
-        }
-        emit(format('%s - %s\n',
-            upperNameFromLevel[rec.level] || 'LVL' + rec.level,
-            rec.msg));
-        break;
-    default:
-        throw new Error('unknown output mode: '+opts.outputMode);
-    }
-}
-
-
-var stdoutFlushed = true;
-function emit(s) {
-    try {
-        stdoutFlushed = stdout.write(s);
-    } catch (e) {
-        // Handle any exceptions in stdout writing in `stdout.on('error', ...)`.
-    }
-}
-
-
-/**
- * A hacked up version of 'process.exit' that will first drain stdout
- * before exiting. *WARNING: This doesn't stop event processing.* IOW,
- * callers have to be careful that code following this call isn't
- * accidentally executed.
- *
- * In node v0.6 "process.stdout and process.stderr are blocking when they
- * refer to regular files or TTY file descriptors." However, this hack might
- * still be necessary in a shell pipeline.
- */
-function drainStdoutAndExit(code) {
-    if (_DEBUG) warn('(drainStdoutAndExit(%d))', code);
-    stdout.on('drain', function () {
-        cleanupAndExit(code);
-    });
-    if (stdoutFlushed) {
-        cleanupAndExit(code);
-    }
-}
-
-
-/**
- * Process all input from stdin.
- *
- * @params opts {Object} Bunyan options object.
- * @param stylize {Function} Output stylize function to use.
- * @param callback {Function} `function ()`
- */
-function processStdin(opts, stylize, callback) {
-    readingStdin = true;
-    var leftover = '';  // Left-over partial line from last chunk.
-    var stdin = process.stdin;
-    stdin.resume();
-    stdin.setEncoding('utf8');
-    stdin.on('data', function (chunk) {
-        var lines = chunk.split(/\r\n|\n/);
-        var length = lines.length;
-        if (length === 1) {
-            leftover += lines[0];
-            return;
-        }
-
-        if (length > 1) {
-            handleLogLine(null, leftover + lines[0], opts, stylize);
-        }
-        leftover = lines.pop();
-        length -= 1;
-        for (var i = 1; i < length; i++) {
-            handleLogLine(null, lines[i], opts, stylize);
-        }
-    });
-    stdin.on('end', function () {
-        if (leftover) {
-            handleLogLine(null, leftover, opts, stylize);
-            leftover = '';
-        }
-        callback();
-    });
-}
-
-
-/**
- * Process bunyan:log-* probes from the given pid.
- *
- * @params opts {Object} Bunyan options object.
- * @param stylize {Function} Output stylize function to use.
- * @param callback {Function} `function (code)`
- */
-function processPids(opts, stylize, callback) {
-    var leftover = '';  // Left-over partial line from last chunk.
-
-    /**
-     * Get the PIDs to dtrace.
-     *
-     * @param cb {Function} `function (errCode, pids)`
-     */
-    function getPids(cb) {
-        if (opts.pidsType === 'num') {
-            return cb(null, opts.pids);
-        }
-        if (process.platform === 'sunos') {
-            execFile('/bin/pgrep', ['-lf', opts.pids],
-                function (pidsErr, stdout, stderr) {
-                    if (pidsErr) {
-                        warn('bunyan: error getting PIDs for "%s": %s\n%s\n%s',
-                            opts.pids, pidsErr.message, stdout, stderr);
-                        return cb(1);
-                    }
-                    var pids = stdout.trim().split('\n')
-                        .map(function (line) {
-                            return line.trim().split(/\s+/)[0]
-                        })
-                        .filter(function (pid) {
-                            return Number(pid) !== process.pid
-                        });
-                    if (pids.length === 0) {
-                        warn('bunyan: error: no matching PIDs found for "%s"',
-                            opts.pids);
-                        return cb(2);
-                    }
-                    cb(null, pids);
-                }
-            );
-        } else {
-            var regex = opts.pids;
-            if (regex && /[a-zA-Z0-9_]/.test(regex[0])) {
-                // 'foo' -> '[f]oo' trick to exclude the 'grep' PID from its
-                // own search.
-                regex = '[' + regex[0] + ']' + regex.slice(1);
-            }
-            exec(format('ps -A -o pid,command | grep \'%s\'', regex),
-                function (pidsErr, stdout, stderr) {
-                    if (pidsErr) {
-                        warn('bunyan: error getting PIDs for "%s": %s\n%s\n%s',
-                            opts.pids, pidsErr.message, stdout, stderr);
-                        return cb(1);
-                    }
-                    var pids = stdout.trim().split('\n')
-                        .map(function (line) {
-                            return line.trim().split(/\s+/)[0];
-                        })
-                        .filter(function (pid) {
-                            return Number(pid) !== process.pid;
-                        });
-                    if (pids.length === 0) {
-                        warn('bunyan: error: no matching PIDs found for "%s"',
-                            opts.pids);
-                        return cb(2);
-                    }
-                    cb(null, pids);
-                }
-            );
-        }
-    }
-
-    getPids(function (errCode, pids) {
-        if (errCode) {
-            return callback(errCode);
-        }
-
-        var probes = pids.map(function (pid) {
-            if (!opts.level)
-                return format('bunyan%s:::log-*', pid);
-
-            var rval = [], l;
-
-            for (l in levelFromName) {
-                if (levelFromName[l] >= opts.level)
-                    rval.push(format('bunyan%s:::log-%s', pid, l));
-            }
-
-            if (rval.length != 0)
-                return rval.join(',');
-
-            warn('bunyan: error: level (%d) exceeds maximum logging level',
-                opts.level);
-            return drainStdoutAndExit(1);
-        }).join(',');
-        var argv = ['dtrace', '-Z', '-x', 'strsize=4k',
-            '-x', 'switchrate=10hz', '-qn',
-            format('%s{printf("%s", copyinstr(arg0))}', probes)];
-        //console.log('dtrace argv: %s', argv);
-        var dtrace = spawn(argv[0], argv.slice(1),
-            // Share the stderr handle to have error output come
-            // straight through. Only supported in v0.8+.
-            {stdio: ['pipe', 'pipe', process.stderr]});
-        dtrace.on('error', function (e) {
-            if (e.syscall === 'spawn' && e.errno === 'ENOENT') {
-                console.error('bunyan: error: could not spawn "dtrace" ' +
-                    '("bunyan -p" is only supported on platforms with dtrace)');
-            } else {
-                console.error('bunyan: error: unexpected dtrace error: %s', e);
-            }
-            callback(1);
-        })
-        child = dtrace; // intentionally global
-
-        function finish(code) {
-            if (leftover) {
-                handleLogLine(null, leftover, opts, stylize);
-                leftover = '';
-            }
-            callback(code);
-        }
-
-        dtrace.stdout.setEncoding('utf8');
-        dtrace.stdout.on('data', function (chunk) {
-            var lines = chunk.split(/\r\n|\n/);
-            var length = lines.length;
-            if (length === 1) {
-                leftover += lines[0];
-                return;
-            }
-            if (length > 1) {
-                handleLogLine(null, leftover + lines[0], opts, stylize);
-            }
-            leftover = lines.pop();
-            length -= 1;
-            for (var i = 1; i < length; i++) {
-                handleLogLine(null, lines[i], opts, stylize);
-            }
-        });
-
-        if (nodeSpawnSupportsStdio) {
-            dtrace.on('exit', finish);
-        } else {
-            // Fallback (for < v0.8) to pipe the dtrace process' stderr to
-            // this stderr. Wait for all of (1) process 'exit', (2) stderr
-            // 'end', and (2) stdout 'end' before returning to ensure all
-            // stderr is flushed (issue #54).
-            var returnCode = null;
-            var eventsRemaining = 3;
-            function countdownToFinish(code) {
-                returnCode = code;
-                eventsRemaining--;
-                if (eventsRemaining == 0) {
-                    finish(returnCode);
-                }
-            }
-            dtrace.stderr.pipe(process.stderr);
-            dtrace.stderr.on('end', countdownToFinish);
-            dtrace.stderr.on('end', countdownToFinish);
-            dtrace.on('exit', countdownToFinish);
-        }
-    });
-}
-
-
-/**
- * Process all input from the given log file.
- *
- * @param file {String} Log file path to process.
- * @params opts {Object} Bunyan options object.
- * @param stylize {Function} Output stylize function to use.
- * @param callback {Function} `function ()`
- */
-function processFile(file, opts, stylize, callback) {
-    var stream = fs.createReadStream(file);
-    if (/\.gz$/.test(file)) {
-        stream = stream.pipe(require('zlib').createGunzip());
-    }
-    // Manually decode streams - lazy load here as per node/lib/fs.js
-    var decoder = new (require('string_decoder').StringDecoder)('utf8');
-
-    streams[file].stream = stream;
-
-    stream.on('error', function (err) {
-        streams[file].done = true;
-        callback(err);
-    });
-
-    var leftover = '';  // Left-over partial line from last chunk.
-    stream.on('data', function (data) {
-        var chunk = decoder.write(data);
-        if (!chunk.length) {
-            return;
-        }
-        var lines = chunk.split(/\r\n|\n/);
-        var length = lines.length;
-        if (length === 1) {
-            leftover += lines[0];
-            return;
-        }
-
-        if (length > 1) {
-            handleLogLine(file, leftover + lines[0], opts, stylize);
-        }
-        leftover = lines.pop();
-        length -= 1;
-        for (var i = 1; i < length; i++) {
-            handleLogLine(file, lines[i], opts, stylize);
-        }
-    });
-
-    stream.on('end', function () {
-        streams[file].done = true;
-        if (leftover) {
-            handleLogLine(file, leftover, opts, stylize);
-            leftover = '';
-        } else {
-            emitNextRecord(opts, stylize);
-        }
-        callback();
-    });
-}
-
-
-/**
- * From node async module.
- */
-/* BEGIN JSSTYLED */
-function asyncForEach(arr, iterator, callback) {
-    callback = callback || function () {};
-    if (!arr.length) {
-        return callback();
-    }
-    var completed = 0;
-    arr.forEach(function (x) {
-        iterator(x, function (err) {
-            if (err) {
-                callback(err);
-                callback = function () {};
-            }
-            else {
-                completed += 1;
-                if (completed === arr.length) {
-                    callback();
-                }
-            }
-        });
-    });
-};
-/* END JSSTYLED */
-
-
-
-/**
- * Cleanup and exit properly.
- *
- * Warning: this doesn't stop processing, i.e. process exit might be delayed.
- * It is up to the caller to ensure that no subsequent bunyan processing
- * is done after calling this.
- *
- * @param code {Number} exit code.
- * @param signal {String} Optional signal name, if this was exitting because
- *    of a signal.
- */
-var cleanedUp = false;
-function cleanupAndExit(code, signal) {
-    // Guard one call.
-    if (cleanedUp) {
-        return;
-    }
-    cleanedUp = true;
-    if (_DEBUG) warn('(bunyan: cleanupAndExit)');
-
-    // Clear possibly interrupted ANSI code (issue #59).
-    if (usingAnsiCodes) {
-        stdout.write('\033[0m');
-    }
-
-    // Kill possible dtrace child.
-    if (child) {
-        child.kill(signal);
-    }
-
-    if (pager) {
-        // Let pager know that output is done, then wait for pager to exit.
-        stdout.end();
-        pager.on('exit', function (pagerCode) {
-            if (_DEBUG)
-                warn('(bunyan: pager exit -> process.exit(%s))',
-                    pagerCode || code);
-            process.exit(pagerCode || code);
-        });
-    } else {
-        if (_DEBUG) warn('(bunyan: process.exit(%s))', code);
-        process.exit(code);
-    }
-}
-
-
-
-//---- mainline
-
-process.on('SIGINT', function () {
-    /**
-     * Ignore SIGINT (Ctrl+C) if processing stdin -- we should process
-     * remaining output from preceding process in the pipeline and
-     * except *it* to close.
-     */
-    if (!readingStdin) {
-        cleanupAndExit(1, 'SIGINT');
-    }
-});
-process.on('SIGQUIT', function () { cleanupAndExit(1, 'SIGQUIT'); });
-process.on('SIGTERM', function () { cleanupAndExit(1, 'SIGTERM'); });
-process.on('SIGHUP', function () { cleanupAndExit(1, 'SIGHUP'); });
-
-process.on('uncaughtException', function (err) {
-    function _indent(s) {
-        var lines = s.split(/\r?\n/);
-        for (var i = 0; i < lines.length; i++) {
-            lines[i] = '*     ' + lines[i];
-        }
-        return lines.join('\n');
-    }
-
-    var title = encodeURIComponent(format(
-        'Bunyan %s crashed: %s', getVersion(), String(err)));
-    var e = console.error;
-    e('```');
-    e('* The Bunyan CLI crashed!');
-    e('*');
-    if (err.name === 'ReferenceError' && gUsingConditionOpts) {
-        /* BEGIN JSSTYLED */
-        e('* This crash was due to a "ReferenceError", which is often the result of given');
-        e('* `-c CONDITION` code that doesn\'t guard against undefined values. If that is');
-        /* END JSSTYLED */
-        e('* not the problem:');
-        e('*');
-    }
-    e('* Please report this issue and include the details below:');
-    e('*');
-    e('*    https://github.com/trentm/node-bunyan/issues/new?title=%s', title);
-    e('*');
-    e('* * *');
-    e('* platform:', process.platform);
-    e('* node version:', process.version);
-    e('* bunyan version:', getVersion());
-    e('* argv: %j', process.argv);
-    e('* log line: %j', currLine);
-    e('* stack:');
-    e(_indent(err.stack));
-    e('```');
-    process.exit(1);
-});
-
-
-function main(argv) {
-    try {
-        var opts = parseArgv(argv);
-    } catch (e) {
-        warn('bunyan: error: %s', e.message);
-        return drainStdoutAndExit(1);
-    }
-    if (opts.help) {
-        printHelp();
-        return;
-    }
-    if (opts.version) {
-        console.log('bunyan ' + getVersion());
-        return;
-    }
-    if (opts.pid && opts.args.length > 0) {
-        warn('bunyan: error: can\'t use both "-p PID" (%s) and file (%s) args',
-            opts.pid, opts.args.join(' '));
-        return drainStdoutAndExit(1);
-    }
-    if (opts.color === null) {
-        if (process.env.BUNYAN_NO_COLOR &&
-                process.env.BUNYAN_NO_COLOR.length > 0) {
-            opts.color = false;
-        } else {
-            opts.color = process.stdout.isTTY;
-        }
-    }
-    usingAnsiCodes = opts.color; // intentionally global
-    var stylize = (opts.color ? stylizeWithColor : stylizeWithoutColor);
-
-    // Pager.
-    var paginate = (
-        process.stdout.isTTY &&
-        process.stdin.isTTY &&
-        !opts.pids && // Don't page if following process output.
-        opts.args.length > 0 && // Don't page if no file args to process.
-        process.platform !== 'win32' &&
-        (nodeVer[0] > 0 || nodeVer[1] >= 8) &&
-        (opts.paginate === true ||
-            (opts.paginate !== false &&
-                (!process.env.BUNYAN_NO_PAGER ||
-                    process.env.BUNYAN_NO_PAGER.length === 0))));
-    if (paginate) {
-        var pagerCmd = process.env.PAGER || 'less';
-        /* JSSTYLED */
-        assert.ok(pagerCmd.indexOf('"') === -1 && pagerCmd.indexOf("'") === -1,
-            'cannot parse PAGER quotes yet');
-        var argv = pagerCmd.split(/\s+/g);
-        var env = objCopy(process.env);
-        if (env.LESS === undefined) {
-            // git's default is LESS=FRSX. I don't like the 'S' here because
-            // lines are *typically* wide with bunyan output and scrolling
-            // horizontally is a royal pain. Note a bug in Mac's `less -F`,
-            // such that SIGWINCH can kill it. If that rears too much then
-            // I'll remove 'F' from here.
-            env.LESS = 'FRX';
-        }
-        if (_DEBUG) warn('(pager: argv=%j, env.LESS=%j)', argv, env.LESS);
-        // `pager` and `stdout` intentionally global.
-        pager = spawn(argv[0], argv.slice(1),
-            // Share the stderr handle to have error output come
-            // straight through. Only supported in v0.8+.
-            {env: env, stdio: ['pipe', 1, 2]});
-        stdout = pager.stdin;
-
-        // Early termination of the pager: just stop.
-        pager.on('exit', function (pagerCode) {
-            if (_DEBUG) warn('(bunyan: pager exit)');
-            pager = null;
-            stdout.end()
-            stdout = process.stdout;
-            cleanupAndExit(pagerCode);
-        });
-    }
-
-    // Stdout error handling. (Couldn't setup until `stdout` was determined.)
-    stdout.on('error', function (err) {
-        if (_DEBUG) warn('(stdout error event: %s)', err);
-        if (err.code === 'EPIPE') {
-            drainStdoutAndExit(0);
-        } else if (err.toString() === 'Error: This socket is closed.') {
-            // Could get this if the pager closes its stdin, but hasn't
-            // exited yet.
-            drainStdoutAndExit(1);
-        } else {
-            warn(err);
-            drainStdoutAndExit(1);
-        }
-    });
-
-    var retval = 0;
-    if (opts.pids) {
-        processPids(opts, stylize, function (code) {
-            cleanupAndExit(code);
-        });
-    } else if (opts.args.length > 0) {
-        var files = opts.args;
-        files.forEach(function (file) {
-            streams[file] = { stream: null, records: [], done: false }
-        });
-        asyncForEach(files,
-            function (file, next) {
-                processFile(file, opts, stylize, function (err) {
-                    if (err) {
-                        warn('bunyan: %s', err.message);
-                        retval += 1;
-                    }
-                    next();
-                });
-            },
-            function (err) {
-                if (err) {
-                    warn('bunyan: unexpected error: %s', err.stack || err);
-                    return drainStdoutAndExit(1);
-                }
-                cleanupAndExit(retval);
-            }
-        );
-    } else {
-        processStdin(opts, stylize, function () {
-            cleanupAndExit(retval);
-        });
-    }
-}
-
-if (require.main === module) {
-    // HACK guard for <https://github.com/trentm/json/issues/24>.
-    // We override the `process.stdout.end` guard that core node.js puts in
-    // place. The real fix is that `.end()` shouldn't be called on stdout
-    // in node core. Node v0.6.9 fixes that. Only guard for v0.6.0..v0.6.8.
-    if ([0, 6, 0] <= nodeVer && nodeVer <= [0, 6, 8]) {
-        var stdout = process.stdout;
-        stdout.end = stdout.destroy = stdout.destroySoon = function () {
-            /* pass */
-        };
-    }
-
-    main(process.argv);
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bunyan/docs/bunyan.1
----------------------------------------------------------------------
diff --git a/node_modules/bunyan/docs/bunyan.1 b/node_modules/bunyan/docs/bunyan.1
deleted file mode 100644
index 41d3769..0000000
--- a/node_modules/bunyan/docs/bunyan.1
+++ /dev/null
@@ -1,235 +0,0 @@
-.\" generated with Ronn/v0.7.3
-.\" http://github.com/rtomayko/ronn/tree/0.7.3
-.
-.TH "BUNYAN" "1" "January 2015" "" "bunyan manual"
-.
-.SH "NAME"
-\fBbunyan\fR \- filter and pretty\-print Bunyan log file content
-.
-.SH "SYNOPSIS"
-\fBbunyan\fR [OPTIONS]
-.
-.P
-\&\.\.\. | \fBbunyan\fR [OPTIONS]
-.
-.P
-\fBbunyan\fR [OPTIONS] \-p PID
-.
-.SH "DESCRIPTION"
-"Bunyan" is \fBa simple and fast a JSON logging library\fR for node\.js services, a one\-JSON\-object\-per\-line log format, and \fBa \fBbunyan\fR CLI tool\fR for nicely viewing those logs\. This man page describes the latter\.
-.
-.SS "Pretty\-printing"
-A bunyan log file is a stream of JSON objects, optionally interspersed with non\-JSON log lines\. The primary usage of bunyan(1) is to pretty print, for example:
-.
-.IP "" 4
-.
-.nf
-
-$ bunyan foo\.log          # or `cat foo\.log | bunyan
-[2012\-02\-08T22:56:52\.856Z]  INFO: myservice/123 on example\.com: My message
-    extra: multi
-    line
-[2012\-02\-08T22:56:54\.856Z] ERROR: myservice/123 on example\.com: My message
-\.\.\.
-.
-.fi
-.
-.IP "" 0
-.
-.P
-By default the "long" output format is used\. Use the \fB\-o FORMAT\fR option to emit other formats\. E\.g\.:
-.
-.IP "" 4
-.
-.nf
-
-$ bunyan foo\.log \-o short
-22:56:52\.856Z  INFO myservice: My message
-    extra: multi
-    line
-22:56:54\.856Z ERROR myservice: My message
-\.\.\.
-.
-.fi
-.
-.IP "" 0
-.
-.P
-These will color the output if supported in your terminal\. See "OUTPUT FORMATS" below\.
-.
-.SS "Filtering"
-The \fBbunyan\fR CLI can also be used to filter a bunyan log\. Use \fB\-l LEVEL\fR to filter by level:
-.
-.IP "" 4
-.
-.nf
-
-$ bunyan foo\.log \-l error       # show only \'error\' level records
-[2012\-02\-08T22:56:54\.856Z] ERROR: myservice/123 on example\.com: My message
-.
-.fi
-.
-.IP "" 0
-.
-.P
-Use \fB\-c COND\fR to filter on a JavaScript expression returning true on the record data\. In the COND code, \fBthis\fR refers to the record object:
-.
-.IP "" 4
-.
-.nf
-
-$ bunyan foo\.log \-c `this\.three`     # show records with the \'extra\' field
-[2012\-02\-08T22:56:52\.856Z]  INFO: myservice/123 on example\.com: My message
-    extra: multi
-    line
-.
-.fi
-.
-.IP "" 0
-.
-.SH "OPTIONS"
-.
-.TP
-\fB\-h\fR, \fB\-\-help\fR
-Print this help info and exit\.
-.
-.TP
-\fB\-\-version\fR
-Print version of this command and exit\.
-.
-.TP
-\fB\-q\fR, \fB\-\-quiet\fR
-Don\'t warn if input isn\'t valid JSON\.
-.
-.P
-Dtrace options (only on dtrace\-supporting platforms):
-.
-.TP
-\fB\-p PID\fR, \fB\-p NAME\fR
-Process bunyan:log\-* probes from the process with the given PID\. Can be used multiple times, or specify all processes with \'*\', or a set of processes whose command & args match a pattern with \'\-p NAME\'\.
-.
-.P
-Filtering options:
-.
-.TP
-\fB\-l\fR, \fB\-\-level LEVEL\fR
-Only show messages at or above the specified level\. You can specify level \fInames\fR or numeric values\. (See \'Log Levels\' below\.)
-.
-.TP
-\fB\-c COND\fR, \fB\-\-condition COND\fR
-Run each log message through the condition and only show those that resolve to a truish value\. E\.g\. \fB\-c \'this\.pid == 123\'\fR\.
-.
-.TP
-\fB\-\-strict\fR
-Suppress all but legal Bunyan JSON log lines\. By default non\-JSON, and non\-Bunyan lines are passed through\.
-.
-.P
-Output options:
-.
-.TP
-\fB\-\-color\fR
-Colorize output\. Defaults to try if output stream is a TTY\.
-.
-.TP
-\fB\-\-no\-color\fR
-Force no coloring (e\.g\. terminal doesn\'t support it)
-.
-.TP
-\fB\-o FORMAT\fR, \fB\-\-output FORMAT\fR
-Specify an output format\. One of \fBlong\fR (the default), \fBshort\fR, \fBjson\fR, \fBjson\-N\fR, \fBbunyan\fR (the native bunyan 0\-indent JSON output) or \fBinspect\fR\.
-.
-.TP
-\fB\-j\fR
-Shortcut for \fB\-o json\fR\.
-.
-.TP
-\fB\-L\fR, \fB\-\-time local\fR
-Display the time field in \fIlocal\fR time, rather than the default UTC time\.
-.
-.SH "LOG LEVELS"
-In Bunyan log records, then \fBlevel\fR field is a number\. For the \fB\-l|\-\-level\fR argument the level \fBnames\fR are supported as shortcuts\. In \fB\-c|\-\-condition\fR scripts, uppercase symbols like "DEBUG" are defined for convenience\.
-.
-.IP "" 4
-.
-.nf
-
-Level Name      Level Number    Symbol in COND Scripts
-trace           10              TRACE
-debug           20              DEBUG
-info            30              INFO
-warn            40              WARN
-error           50              ERROR
-fatal           60              FATAL
-.
-.fi
-.
-.IP "" 0
-.
-.SH "OUTPUT FORMATS"
-.
-.nf
-
-FORMAT NAME         DESCRIPTION
-long (default)      The default output\. Long form\. Colored and "pretty"\.
-                    \'req\' and \'res\' and \'err\' fields are rendered specially
-                    as an HTTP request, HTTP response and exception
-                    stack trace, respectively\. For backward compat, the
-                    name "paul" also works for this\.
-short               Like the default output, but more concise\. Some
-                    typically redundant fields are ellided\.
-json                JSON output, 2\-space indentation\.
-json\-N              JSON output, N\-space indentation, e\.g\. "json\-4"
-bunyan              Alias for "json\-0", the Bunyan "native" format\.
-inspect             Node\.js `util\.inspect` output\.
-.
-.fi
-.
-.SH "DTRACE SUPPORT"
-On systems that support DTrace (e\.g\., MacOS, FreeBSD, illumos derivatives like SmartOS and OmniOS), Bunyan will create a DTrace provider (\fBbunyan\fR) that makes available the following probes:
-.
-.IP "" 4
-.
-.nf
-
-log\-trace
-log\-debug
-log\-info
-log\-warn
-log\-error
-log\-fatal
-.
-.fi
-.
-.IP "" 0
-.
-.P
-Each of these probes has a single argument: the string that would be written to the log\. Note that when a probe is enabled, it will fire whenever the corresponding function is called, even if the level of the log message is less than that of any stream\.
-.
-.P
-See \fIhttps://github\.com/trentm/node\-bunyan#dtrace\-support\fR for more details and the \'\-p PID\' option above for convenience usage\.
-.
-.SH "ENVIRONMENT"
-.
-.TP
-\fBBUNYAN_NO_COLOR\fR
-Set to a non\-empty value to force no output coloring\. See \'\-\-no\-color\'\.
-.
-.SH "PROJECT & BUGS"
-\fBbunyan\fR is written in JavaScript and requires node\.js (\fBnode\fR)\. The project lives at \fIhttps://github\.com/trentm/node\-bunyan\fR and is published to npm as "bunyan"\.
-.
-.IP "\(bu" 4
-README, Install notes: \fIhttps://github\.com/trentm/node\-bunyan#readme\fR
-.
-.IP "\(bu" 4
-Report bugs to \fIhttps://github\.com/trentm/node\-bunyan/issues\fR\.
-.
-.IP "\(bu" 4
-See the full changelog at: \fIhttps://github\.com/trentm/node\-bunyan/blob/master/CHANGES\.md\fR
-.
-.IP "" 0
-.
-.SH "LICENSE"
-MIT License (see \fIhttps://github\.com/trentm/node\-bunyan/blob/master/LICENSE\.txt\fR)
-.
-.SH "COPYRIGHT"
-node\-bunyan is Copyright (c) 2012 Joyent, Inc\. Copyright (c) 2012 Trent Mick\. All rights reserved\.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bunyan/docs/bunyan.1.html
----------------------------------------------------------------------
diff --git a/node_modules/bunyan/docs/bunyan.1.html b/node_modules/bunyan/docs/bunyan.1.html
deleted file mode 100644
index c11eaf0..0000000
--- a/node_modules/bunyan/docs/bunyan.1.html
+++ /dev/null
@@ -1,281 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-  <meta http-equiv='content-type' value='text/html;charset=utf8'>
-  <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
-  <title>bunyan(1) - filter and pretty-print Bunyan log file content</title>
-  <style type='text/css' media='all'>
-  /* style: man */
-  body#manpage {margin:0}
-  .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
-  .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
-  .mp h2 {margin:10px 0 0 0}
-  .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
-  .mp h3 {margin:0 0 0 4ex}
-  .mp dt {margin:0;clear:left}
-  
-  .mp dd {margin:0 0 0 9ex}
-  .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
-  .mp pre {margin-bottom:20px}
-  .mp pre+h2,.mp pre+h3 {margin-top:22px}
-  .mp h2+pre,.mp h3+pre {margin-top:5px}
-  .mp img {display:block;margin:auto}
-  .mp h1.man-title {display:none}
-  .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
-  .mp h2 {font-size:16px;line-height:1.25}
-  .mp h1 {font-size:20px;line-height:2}
-  .mp {text-align:justify;background:#fff}
-  .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
-  .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
-  .mp u {text-decoration:underline}
-  .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
-  .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
-  .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
-  .mp b.man-ref {font-weight:normal;color:#434241}
-  .mp pre {padding:0 4ex}
-  .mp pre code {font-weight:normal;color:#434241}
-  .mp h2+pre,h3+pre {padding-left:0}
-  ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
-  ol.man-decor {width:100%}
-  ol.man-decor li.tl {text-align:left}
-  ol.man-decor li.tc {text-align:center;letter-spacing:4px}
-  ol.man-decor li.tr {text-align:right;float:right}
-  </style>
-  <style type='text/css' media='all'>
-  /* style: toc */
-  .man-navigation {display:block !important;position:fixed;top:0;left:113ex;height:100%;width:100%;padding:48px 0 0 0;border-left:1px solid #dbdbdb;background:#eee}
-  .man-navigation a,.man-navigation a:hover,.man-navigation a:link,.man-navigation a:visited {display:block;margin:0;padding:5px 2px 5px 30px;color:#999;text-decoration:none}
-  .man-navigation a:hover {color:#111;text-decoration:underline}
-  </style>
-</head>
-<!--
-  The following styles are deprecated and will be removed at some point:
-  div#man, div#man ol.man, div#man ol.head, div#man ol.man.
-
-  The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
-  .man-navigation should be used instead.
--->
-<body id='manpage'>
-  <div class='mp' id='man'>
-
-  <div class='man-navigation' style='display:none'>
-    <a href="#NAME">NAME</a>
-    <a href="#SYNOPSIS">SYNOPSIS</a>
-    <a href="#DESCRIPTION">DESCRIPTION</a>
-    <a href="#OPTIONS">OPTIONS</a>
-    <a href="#LOG-LEVELS">LOG LEVELS</a>
-    <a href="#OUTPUT-FORMATS">OUTPUT FORMATS</a>
-    <a href="#DTRACE-SUPPORT">DTRACE SUPPORT</a>
-    <a href="#ENVIRONMENT">ENVIRONMENT</a>
-    <a href="#PROJECT-BUGS">PROJECT &amp; BUGS</a>
-    <a href="#LICENSE">LICENSE</a>
-    <a href="#COPYRIGHT">COPYRIGHT</a>
-  </div>
-
-  <ol class='man-decor man-head man head'>
-    <li class='tl'>bunyan(1)</li>
-    <li class='tc'>bunyan manual</li>
-    <li class='tr'>bunyan(1)</li>
-  </ol>
-
-  <h2 id="NAME">NAME</h2>
-<p class="man-name">
-  <code>bunyan</code> - <span class="man-whatis">filter and pretty-print Bunyan log file content</span>
-</p>
-
-<h2 id="SYNOPSIS">SYNOPSIS</h2>
-
-<p><code>bunyan</code> [OPTIONS]</p>
-
-<p>... | <code>bunyan</code> [OPTIONS]</p>
-
-<p><code>bunyan</code> [OPTIONS] -p PID</p>
-
-<h2 id="DESCRIPTION">DESCRIPTION</h2>
-
-<p>"Bunyan" is <strong>a simple and fast a JSON logging library</strong> for node.js services,
-a one-JSON-object-per-line log format, and <strong>a <code>bunyan</code> CLI tool</strong> for nicely
-viewing those logs. This man page describes the latter.</p>
-
-<h3 id="Pretty-printing">Pretty-printing</h3>
-
-<p>A bunyan log file is a stream of JSON objects, optionally interspersed with
-non-JSON log lines. The primary usage of <a href="bunyan.1.html" class="man-ref">bunyan<span class="s">(1)</span></a> is to pretty print,
-for example:</p>
-
-<pre><code>$ bunyan foo.log          # or `cat foo.log | bunyan
-[2012-02-08T22:56:52.856Z]  INFO: myservice/123 on example.com: My message
-    extra: multi
-    line
-[2012-02-08T22:56:54.856Z] ERROR: myservice/123 on example.com: My message
-...
-</code></pre>
-
-<p>By default the "long" output format is used. Use the <code>-o FORMAT</code> option to
-emit other formats. E.g.:</p>
-
-<pre><code>$ bunyan foo.log -o short
-22:56:52.856Z  INFO myservice: My message
-    extra: multi
-    line
-22:56:54.856Z ERROR myservice: My message
-...
-</code></pre>
-
-<p>These will color the output if supported in your terminal.
-See "OUTPUT FORMATS" below.</p>
-
-<h3 id="Filtering">Filtering</h3>
-
-<p>The <code>bunyan</code> CLI can also be used to filter a bunyan log. Use <code>-l LEVEL</code>
-to filter by level:</p>
-
-<pre><code>$ bunyan foo.log -l error       # show only 'error' level records
-[2012-02-08T22:56:54.856Z] ERROR: myservice/123 on example.com: My message
-</code></pre>
-
-<p>Use <code>-c COND</code> to filter on a JavaScript expression returning true on the
-record data. In the COND code, <code>this</code> refers to the record object:</p>
-
-<pre><code>$ bunyan foo.log -c `this.three`     # show records with the 'extra' field
-[2012-02-08T22:56:52.856Z]  INFO: myservice/123 on example.com: My message
-    extra: multi
-    line
-</code></pre>
-
-<h2 id="OPTIONS">OPTIONS</h2>
-
-<dl>
-<dt><code>-h</code>, <code>--help</code></dt><dd><p>Print this help info and exit.</p></dd>
-<dt><code>--version</code></dt><dd><p>Print version of this command and exit.</p></dd>
-<dt><code>-q</code>, <code>--quiet</code></dt><dd><p>Don't warn if input isn't valid JSON.</p></dd>
-</dl>
-
-
-<p>Dtrace options (only on dtrace-supporting platforms):</p>
-
-<dl>
-<dt><code>-p PID</code>, <code>-p NAME</code></dt><dd>Process bunyan:log-* probes from the process with the given PID.
-Can be used multiple times, or specify all processes with '*',
-or a set of processes whose command &amp; args match a pattern with
-'-p NAME'.</dd>
-</dl>
-
-
-<p>Filtering options:</p>
-
-<dl>
-<dt><code>-l</code>, <code>--level LEVEL</code></dt><dd><p>Only show messages at or above the specified level. You can specify level
-<em>names</em> or numeric values. (See 'Log Levels' below.)</p></dd>
-<dt><code>-c COND</code>, <code>--condition COND</code></dt><dd><p>Run each log message through the condition and only show those that
-resolve to a truish value. E.g. <code>-c 'this.pid == 123'</code>.</p></dd>
-<dt><code>--strict</code></dt><dd><p>Suppress all but legal Bunyan JSON log lines. By default non-JSON, and
-non-Bunyan lines are passed through.</p></dd>
-</dl>
-
-
-<p>Output options:</p>
-
-<dl>
-<dt class="flush"><code>--color</code></dt><dd><p>Colorize output. Defaults to try if output stream is a TTY.</p></dd>
-<dt><code>--no-color</code></dt><dd><p>Force no coloring (e.g. terminal doesn't support it)</p></dd>
-<dt><code>-o FORMAT</code>, <code>--output FORMAT</code></dt><dd><p>Specify an output format. One of <code>long</code> (the default), <code>short</code>, <code>json</code>,
-<code>json-N</code>, <code>bunyan</code> (the native bunyan 0-indent JSON output) or <code>inspect</code>.</p></dd>
-<dt class="flush"><code>-j</code></dt><dd><p>Shortcut for <code>-o json</code>.</p></dd>
-<dt><code>-L</code>, <code>--time local</code></dt><dd><p>Display the time field in <em>local</em> time, rather than the default UTC
-time.</p></dd>
-</dl>
-
-
-<h2 id="LOG-LEVELS">LOG LEVELS</h2>
-
-<p>In Bunyan log records, then <code>level</code> field is a number. For the <code>-l|--level</code>
-argument the level <strong>names</strong> are supported as shortcuts. In <code>-c|--condition</code>
-scripts, uppercase symbols like "DEBUG" are defined for convenience.</p>
-
-<pre><code>Level Name      Level Number    Symbol in COND Scripts
-trace           10              TRACE
-debug           20              DEBUG
-info            30              INFO
-warn            40              WARN
-error           50              ERROR
-fatal           60              FATAL
-</code></pre>
-
-<h2 id="OUTPUT-FORMATS">OUTPUT FORMATS</h2>
-
-<pre><code>FORMAT NAME         DESCRIPTION
-long (default)      The default output. Long form. Colored and "pretty".
-                    'req' and 'res' and 'err' fields are rendered specially
-                    as an HTTP request, HTTP response and exception
-                    stack trace, respectively. For backward compat, the
-                    name "paul" also works for this.
-short               Like the default output, but more concise. Some
-                    typically redundant fields are ellided.
-json                JSON output, 2-space indentation.
-json-N              JSON output, N-space indentation, e.g. "json-4"
-bunyan              Alias for "json-0", the Bunyan "native" format.
-inspect             Node.js `util.inspect` output.
-</code></pre>
-
-<h2 id="DTRACE-SUPPORT">DTRACE SUPPORT</h2>
-
-<p>On systems that support DTrace (e.g., MacOS, FreeBSD, illumos derivatives
-like SmartOS and OmniOS), Bunyan will create a DTrace provider (<code>bunyan</code>)
-that makes available the following probes:</p>
-
-<pre><code>log-trace
-log-debug
-log-info
-log-warn
-log-error
-log-fatal
-</code></pre>
-
-<p>Each of these probes has a single argument: the string that would be
-written to the log.  Note that when a probe is enabled, it will
-fire whenever the corresponding function is called, even if the level of
-the log message is less than that of any stream.</p>
-
-<p>See <a href="https://github.com/trentm/node-bunyan#dtrace-support" data-bare-link="true">https://github.com/trentm/node-bunyan#dtrace-support</a> for more details
-and the '-p PID' option above for convenience usage.</p>
-
-<h2 id="ENVIRONMENT">ENVIRONMENT</h2>
-
-<dl>
-<dt><code>BUNYAN_NO_COLOR</code></dt><dd>Set to a non-empty value to force no output coloring. See '--no-color'.</dd>
-</dl>
-
-
-<h2 id="PROJECT-BUGS">PROJECT &amp; BUGS</h2>
-
-<p><code>bunyan</code> is written in JavaScript and requires node.js (<code>node</code>). The project
-lives at <a href="https://github.com/trentm/node-bunyan" data-bare-link="true">https://github.com/trentm/node-bunyan</a> and is published to npm as
-"bunyan".</p>
-
-<ul>
-<li>README, Install notes: <a href="https://github.com/trentm/node-bunyan#readme" data-bare-link="true">https://github.com/trentm/node-bunyan#readme</a></li>
-<li>Report bugs to <a href="https://github.com/trentm/node-bunyan/issues" data-bare-link="true">https://github.com/trentm/node-bunyan/issues</a>.</li>
-<li>See the full changelog at: <a href="https://github.com/trentm/node-bunyan/blob/master/CHANGES.md" data-bare-link="true">https://github.com/trentm/node-bunyan/blob/master/CHANGES.md</a></li>
-</ul>
-
-
-<h2 id="LICENSE">LICENSE</h2>
-
-<p>MIT License (see <a href="https://github.com/trentm/node-bunyan/blob/master/LICENSE.txt" data-bare-link="true">https://github.com/trentm/node-bunyan/blob/master/LICENSE.txt</a>)</p>
-
-<h2 id="COPYRIGHT">COPYRIGHT</h2>
-
-<p>node-bunyan is Copyright (c) 2012 Joyent, Inc. Copyright (c) 2012 Trent Mick.
-All rights reserved.</p>
-
-
-  <ol class='man-decor man-foot man foot'>
-    <li class='tl'></li>
-    <li class='tc'>January 2015</li>
-    <li class='tr'>bunyan(1)</li>
-  </ol>
-
-  </div>
-<a href="https://github.com/trentm/node-bunyan"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a></body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bunyan/docs/bunyan.1.ronn
----------------------------------------------------------------------
diff --git a/node_modules/bunyan/docs/bunyan.1.ronn b/node_modules/bunyan/docs/bunyan.1.ronn
deleted file mode 100644
index c09b933..0000000
--- a/node_modules/bunyan/docs/bunyan.1.ronn
+++ /dev/null
@@ -1,195 +0,0 @@
-# bunyan(1) -- filter and pretty-print Bunyan log file content
-
-
-## SYNOPSIS
-
-`bunyan` \[OPTIONS\]
-
-... | `bunyan` \[OPTIONS\]
-
-`bunyan` \[OPTIONS\] -p PID
-
-
-## DESCRIPTION
-
-"Bunyan" is **a simple and fast a JSON logging library** for node.js services,
-a one-JSON-object-per-line log format, and **a `bunyan` CLI tool** for nicely
-viewing those logs. This man page describes the latter.
-
-
-### Pretty-printing
-
-A bunyan log file is a stream of JSON objects, optionally interspersed with
-non-JSON log lines. The primary usage of bunyan(1) is to pretty print,
-for example:
-
-    $ bunyan foo.log          # or `cat foo.log | bunyan
-    [2012-02-08T22:56:52.856Z]  INFO: myservice/123 on example.com: My message
-        extra: multi
-        line
-    [2012-02-08T22:56:54.856Z] ERROR: myservice/123 on example.com: My message
-    ...
-
-By default the "long" output format is used. Use the `-o FORMAT` option to
-emit other formats. E.g.:
-
-    $ bunyan foo.log -o short
-    22:56:52.856Z  INFO myservice: My message
-        extra: multi
-        line
-    22:56:54.856Z ERROR myservice: My message
-    ...
-
-These will color the output if supported in your terminal.
-See "OUTPUT FORMATS" below.
-
-
-### Filtering
-
-The `bunyan` CLI can also be used to filter a bunyan log. Use `-l LEVEL`
-to filter by level:
-
-    $ bunyan foo.log -l error       # show only 'error' level records
-    [2012-02-08T22:56:54.856Z] ERROR: myservice/123 on example.com: My message
-
-Use `-c COND` to filter on a JavaScript expression returning true on the
-record data. In the COND code, `this` refers to the record object:
-
-    $ bunyan foo.log -c `this.three`     # show records with the 'extra' field
-    [2012-02-08T22:56:52.856Z]  INFO: myservice/123 on example.com: My message
-        extra: multi
-        line
-
-
-## OPTIONS
-
-  * `-h`, `--help`:
-    Print this help info and exit.
-
-  * `--version`:
-    Print version of this command and exit.
-
-  * `-q`, `--quiet`:
-    Don't warn if input isn't valid JSON.
-
-Dtrace options (only on dtrace-supporting platforms):
-
-  * `-p PID`, `-p NAME`:
-    Process bunyan:log-\* probes from the process with the given PID.
-    Can be used multiple times, or specify all processes with '\*',
-    or a set of processes whose command & args match a pattern with
-    '-p NAME'.
-
-Filtering options:
-
-  * `-l`, `--level LEVEL`:
-    Only show messages at or above the specified level. You can specify level
-    *names* or numeric values. (See 'Log Levels' below.)
-
-  * `-c COND`, `--condition COND`:
-    Run each log message through the condition and only show those that
-    resolve to a truish value. E.g. `-c 'this.pid == 123'`.
-
-  * `--strict`:
-    Suppress all but legal Bunyan JSON log lines. By default non-JSON, and
-    non-Bunyan lines are passed through.
-
-Output options:
-
-  * `--color`:
-    Colorize output. Defaults to try if output stream is a TTY.
-
-  * `--no-color`:
-    Force no coloring (e.g. terminal doesn't support it)
-
-  * `-o FORMAT`, `--output FORMAT`:
-    Specify an output format. One of `long` (the default), `short`, `json`,
-    `json-N`, `bunyan` (the native bunyan 0-indent JSON output) or `inspect`.
-
-  * `-j`:
-    Shortcut for `-o json`.
-
-  * `-L`, `--time local`:
-    Display the time field in *local* time, rather than the default UTC
-    time.
-
-
-## LOG LEVELS
-
-In Bunyan log records, then `level` field is a number. For the `-l|--level`
-argument the level **names** are supported as shortcuts. In `-c|--condition`
-scripts, uppercase symbols like "DEBUG" are defined for convenience.
-
-    Level Name      Level Number    Symbol in COND Scripts
-    trace           10              TRACE
-    debug           20              DEBUG
-    info            30              INFO
-    warn            40              WARN
-    error           50              ERROR
-    fatal           60              FATAL
-
-
-## OUTPUT FORMATS
-
-    FORMAT NAME         DESCRIPTION
-    long (default)      The default output. Long form. Colored and "pretty".
-                        'req' and 'res' and 'err' fields are rendered specially
-                        as an HTTP request, HTTP response and exception
-                        stack trace, respectively. For backward compat, the
-                        name "paul" also works for this.
-    short               Like the default output, but more concise. Some
-                        typically redundant fields are ellided.
-    json                JSON output, 2-space indentation.
-    json-N              JSON output, N-space indentation, e.g. "json-4"
-    bunyan              Alias for "json-0", the Bunyan "native" format.
-    inspect             Node.js `util.inspect` output.
-
-
-## DTRACE SUPPORT
-
-On systems that support DTrace (e.g., MacOS, FreeBSD, illumos derivatives
-like SmartOS and OmniOS), Bunyan will create a DTrace provider (`bunyan`)
-that makes available the following probes:
-
-    log-trace
-    log-debug
-    log-info
-    log-warn
-    log-error
-    log-fatal
-
-Each of these probes has a single argument: the string that would be
-written to the log.  Note that when a probe is enabled, it will
-fire whenever the corresponding function is called, even if the level of
-the log message is less than that of any stream.
-
-See <https://github.com/trentm/node-bunyan#dtrace-support> for more details
-and the '-p PID' option above for convenience usage.
-
-
-## ENVIRONMENT
-
-  * `BUNYAN_NO_COLOR`:
-    Set to a non-empty value to force no output coloring. See '--no-color'.
-
-
-## PROJECT & BUGS
-
-`bunyan` is written in JavaScript and requires node.js (`node`). The project
-lives at <https://github.com/trentm/node-bunyan> and is published to npm as
-"bunyan".
-
-* README, Install notes: <https://github.com/trentm/node-bunyan#readme>
-* Report bugs to <https://github.com/trentm/node-bunyan/issues>.
-* See the full changelog at: <https://github.com/trentm/node-bunyan/blob/master/CHANGES.md>
-
-
-## LICENSE
-
-MIT License (see <https://github.com/trentm/node-bunyan/blob/master/LICENSE.txt>)
-
-
-## COPYRIGHT
-
-node-bunyan is Copyright (c) 2012 Joyent, Inc. Copyright (c) 2012 Trent Mick.
-All rights reserved.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bunyan/docs/img/bunyan.browserify.png
----------------------------------------------------------------------
diff --git a/node_modules/bunyan/docs/img/bunyan.browserify.png b/node_modules/bunyan/docs/img/bunyan.browserify.png
deleted file mode 100644
index 411aa1f..0000000
Binary files a/node_modules/bunyan/docs/img/bunyan.browserify.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bunyan/docs/index.html
----------------------------------------------------------------------
diff --git a/node_modules/bunyan/docs/index.html b/node_modules/bunyan/docs/index.html
deleted file mode 100644
index 4defe1a..0000000
--- a/node_modules/bunyan/docs/index.html
+++ /dev/null
@@ -1 +0,0 @@
-<a href="bunyan.1.html">bunyan(1) man page</a>


[25/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/browser/bluebird.core.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/browser/bluebird.core.js b/node_modules/bluebird/js/browser/bluebird.core.js
deleted file mode 100644
index c94f3c2..0000000
--- a/node_modules/bluebird/js/browser/bluebird.core.js
+++ /dev/null
@@ -1,3777 +0,0 @@
-/* @preserve
- * The MIT License (MIT)
- * 
- * Copyright (c) 2013-2017 Petka Antonov
- * 
- * 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.
- * 
- */
-/**
- * bluebird build version 3.5.0
- * Features enabled: core
- * Features disabled: race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each
-*/
-!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.Promise=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof _dereq_=="function"&&_dereq_;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof _dereq_=="function"&&_dereq_;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
-"use strict";
-var firstLineError;
-try {throw new Error(); } catch (e) {firstLineError = e;}
-var schedule = _dereq_("./schedule");
-var Queue = _dereq_("./queue");
-var util = _dereq_("./util");
-
-function Async() {
-    this._customScheduler = false;
-    this._isTickUsed = false;
-    this._lateQueue = new Queue(16);
-    this._normalQueue = new Queue(16);
-    this._haveDrainedQueues = false;
-    this._trampolineEnabled = true;
-    var self = this;
-    this.drainQueues = function () {
-        self._drainQueues();
-    };
-    this._schedule = schedule;
-}
-
-Async.prototype.setScheduler = function(fn) {
-    var prev = this._schedule;
-    this._schedule = fn;
-    this._customScheduler = true;
-    return prev;
-};
-
-Async.prototype.hasCustomScheduler = function() {
-    return this._customScheduler;
-};
-
-Async.prototype.enableTrampoline = function() {
-    this._trampolineEnabled = true;
-};
-
-Async.prototype.disableTrampolineIfNecessary = function() {
-    if (util.hasDevTools) {
-        this._trampolineEnabled = false;
-    }
-};
-
-Async.prototype.haveItemsQueued = function () {
-    return this._isTickUsed || this._haveDrainedQueues;
-};
-
-
-Async.prototype.fatalError = function(e, isNode) {
-    if (isNode) {
-        process.stderr.write("Fatal " + (e instanceof Error ? e.stack : e) +
-            "\n");
-        process.exit(2);
-    } else {
-        this.throwLater(e);
-    }
-};
-
-Async.prototype.throwLater = function(fn, arg) {
-    if (arguments.length === 1) {
-        arg = fn;
-        fn = function () { throw arg; };
-    }
-    if (typeof setTimeout !== "undefined") {
-        setTimeout(function() {
-            fn(arg);
-        }, 0);
-    } else try {
-        this._schedule(function() {
-            fn(arg);
-        });
-    } catch (e) {
-        throw new Error("No async scheduler available\u000a\u000a    See http://goo.gl/MqrFmX\u000a");
-    }
-};
-
-function AsyncInvokeLater(fn, receiver, arg) {
-    this._lateQueue.push(fn, receiver, arg);
-    this._queueTick();
-}
-
-function AsyncInvoke(fn, receiver, arg) {
-    this._normalQueue.push(fn, receiver, arg);
-    this._queueTick();
-}
-
-function AsyncSettlePromises(promise) {
-    this._normalQueue._pushOne(promise);
-    this._queueTick();
-}
-
-if (!util.hasDevTools) {
-    Async.prototype.invokeLater = AsyncInvokeLater;
-    Async.prototype.invoke = AsyncInvoke;
-    Async.prototype.settlePromises = AsyncSettlePromises;
-} else {
-    Async.prototype.invokeLater = function (fn, receiver, arg) {
-        if (this._trampolineEnabled) {
-            AsyncInvokeLater.call(this, fn, receiver, arg);
-        } else {
-            this._schedule(function() {
-                setTimeout(function() {
-                    fn.call(receiver, arg);
-                }, 100);
-            });
-        }
-    };
-
-    Async.prototype.invoke = function (fn, receiver, arg) {
-        if (this._trampolineEnabled) {
-            AsyncInvoke.call(this, fn, receiver, arg);
-        } else {
-            this._schedule(function() {
-                fn.call(receiver, arg);
-            });
-        }
-    };
-
-    Async.prototype.settlePromises = function(promise) {
-        if (this._trampolineEnabled) {
-            AsyncSettlePromises.call(this, promise);
-        } else {
-            this._schedule(function() {
-                promise._settlePromises();
-            });
-        }
-    };
-}
-
-Async.prototype._drainQueue = function(queue) {
-    while (queue.length() > 0) {
-        var fn = queue.shift();
-        if (typeof fn !== "function") {
-            fn._settlePromises();
-            continue;
-        }
-        var receiver = queue.shift();
-        var arg = queue.shift();
-        fn.call(receiver, arg);
-    }
-};
-
-Async.prototype._drainQueues = function () {
-    this._drainQueue(this._normalQueue);
-    this._reset();
-    this._haveDrainedQueues = true;
-    this._drainQueue(this._lateQueue);
-};
-
-Async.prototype._queueTick = function () {
-    if (!this._isTickUsed) {
-        this._isTickUsed = true;
-        this._schedule(this.drainQueues);
-    }
-};
-
-Async.prototype._reset = function () {
-    this._isTickUsed = false;
-};
-
-module.exports = Async;
-module.exports.firstLineError = firstLineError;
-
-},{"./queue":17,"./schedule":18,"./util":21}],2:[function(_dereq_,module,exports){
-"use strict";
-module.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) {
-var calledBind = false;
-var rejectThis = function(_, e) {
-    this._reject(e);
-};
-
-var targetRejected = function(e, context) {
-    context.promiseRejectionQueued = true;
-    context.bindingPromise._then(rejectThis, rejectThis, null, this, e);
-};
-
-var bindingResolved = function(thisArg, context) {
-    if (((this._bitField & 50397184) === 0)) {
-        this._resolveCallback(context.target);
-    }
-};
-
-var bindingRejected = function(e, context) {
-    if (!context.promiseRejectionQueued) this._reject(e);
-};
-
-Promise.prototype.bind = function (thisArg) {
-    if (!calledBind) {
-        calledBind = true;
-        Promise.prototype._propagateFrom = debug.propagateFromFunction();
-        Promise.prototype._boundValue = debug.boundValueFunction();
-    }
-    var maybePromise = tryConvertToPromise(thisArg);
-    var ret = new Promise(INTERNAL);
-    ret._propagateFrom(this, 1);
-    var target = this._target();
-    ret._setBoundTo(maybePromise);
-    if (maybePromise instanceof Promise) {
-        var context = {
-            promiseRejectionQueued: false,
-            promise: ret,
-            target: target,
-            bindingPromise: maybePromise
-        };
-        target._then(INTERNAL, targetRejected, undefined, ret, context);
-        maybePromise._then(
-            bindingResolved, bindingRejected, undefined, ret, context);
-        ret._setOnCancel(maybePromise);
-    } else {
-        ret._resolveCallback(target);
-    }
-    return ret;
-};
-
-Promise.prototype._setBoundTo = function (obj) {
-    if (obj !== undefined) {
-        this._bitField = this._bitField | 2097152;
-        this._boundTo = obj;
-    } else {
-        this._bitField = this._bitField & (~2097152);
-    }
-};
-
-Promise.prototype._isBound = function () {
-    return (this._bitField & 2097152) === 2097152;
-};
-
-Promise.bind = function (thisArg, value) {
-    return Promise.resolve(value).bind(thisArg);
-};
-};
-
-},{}],3:[function(_dereq_,module,exports){
-"use strict";
-var old;
-if (typeof Promise !== "undefined") old = Promise;
-function noConflict() {
-    try { if (Promise === bluebird) Promise = old; }
-    catch (e) {}
-    return bluebird;
-}
-var bluebird = _dereq_("./promise")();
-bluebird.noConflict = noConflict;
-module.exports = bluebird;
-
-},{"./promise":15}],4:[function(_dereq_,module,exports){
-"use strict";
-module.exports = function(Promise, PromiseArray, apiRejection, debug) {
-var util = _dereq_("./util");
-var tryCatch = util.tryCatch;
-var errorObj = util.errorObj;
-var async = Promise._async;
-
-Promise.prototype["break"] = Promise.prototype.cancel = function() {
-    if (!debug.cancellation()) return this._warn("cancellation is disabled");
-
-    var promise = this;
-    var child = promise;
-    while (promise._isCancellable()) {
-        if (!promise._cancelBy(child)) {
-            if (child._isFollowing()) {
-                child._followee().cancel();
-            } else {
-                child._cancelBranched();
-            }
-            break;
-        }
-
-        var parent = promise._cancellationParent;
-        if (parent == null || !parent._isCancellable()) {
-            if (promise._isFollowing()) {
-                promise._followee().cancel();
-            } else {
-                promise._cancelBranched();
-            }
-            break;
-        } else {
-            if (promise._isFollowing()) promise._followee().cancel();
-            promise._setWillBeCancelled();
-            child = promise;
-            promise = parent;
-        }
-    }
-};
-
-Promise.prototype._branchHasCancelled = function() {
-    this._branchesRemainingToCancel--;
-};
-
-Promise.prototype._enoughBranchesHaveCancelled = function() {
-    return this._branchesRemainingToCancel === undefined ||
-           this._branchesRemainingToCancel <= 0;
-};
-
-Promise.prototype._cancelBy = function(canceller) {
-    if (canceller === this) {
-        this._branchesRemainingToCancel = 0;
-        this._invokeOnCancel();
-        return true;
-    } else {
-        this._branchHasCancelled();
-        if (this._enoughBranchesHaveCancelled()) {
-            this._invokeOnCancel();
-            return true;
-        }
-    }
-    return false;
-};
-
-Promise.prototype._cancelBranched = function() {
-    if (this._enoughBranchesHaveCancelled()) {
-        this._cancel();
-    }
-};
-
-Promise.prototype._cancel = function() {
-    if (!this._isCancellable()) return;
-    this._setCancelled();
-    async.invoke(this._cancelPromises, this, undefined);
-};
-
-Promise.prototype._cancelPromises = function() {
-    if (this._length() > 0) this._settlePromises();
-};
-
-Promise.prototype._unsetOnCancel = function() {
-    this._onCancelField = undefined;
-};
-
-Promise.prototype._isCancellable = function() {
-    return this.isPending() && !this._isCancelled();
-};
-
-Promise.prototype.isCancellable = function() {
-    return this.isPending() && !this.isCancelled();
-};
-
-Promise.prototype._doInvokeOnCancel = function(onCancelCallback, internalOnly) {
-    if (util.isArray(onCancelCallback)) {
-        for (var i = 0; i < onCancelCallback.length; ++i) {
-            this._doInvokeOnCancel(onCancelCallback[i], internalOnly);
-        }
-    } else if (onCancelCallback !== undefined) {
-        if (typeof onCancelCallback === "function") {
-            if (!internalOnly) {
-                var e = tryCatch(onCancelCallback).call(this._boundValue());
-                if (e === errorObj) {
-                    this._attachExtraTrace(e.e);
-                    async.throwLater(e.e);
-                }
-            }
-        } else {
-            onCancelCallback._resultCancelled(this);
-        }
-    }
-};
-
-Promise.prototype._invokeOnCancel = function() {
-    var onCancelCallback = this._onCancel();
-    this._unsetOnCancel();
-    async.invoke(this._doInvokeOnCancel, this, onCancelCallback);
-};
-
-Promise.prototype._invokeInternalOnCancel = function() {
-    if (this._isCancellable()) {
-        this._doInvokeOnCancel(this._onCancel(), true);
-        this._unsetOnCancel();
-    }
-};
-
-Promise.prototype._resultCancelled = function() {
-    this.cancel();
-};
-
-};
-
-},{"./util":21}],5:[function(_dereq_,module,exports){
-"use strict";
-module.exports = function(NEXT_FILTER) {
-var util = _dereq_("./util");
-var getKeys = _dereq_("./es5").keys;
-var tryCatch = util.tryCatch;
-var errorObj = util.errorObj;
-
-function catchFilter(instances, cb, promise) {
-    return function(e) {
-        var boundTo = promise._boundValue();
-        predicateLoop: for (var i = 0; i < instances.length; ++i) {
-            var item = instances[i];
-
-            if (item === Error ||
-                (item != null && item.prototype instanceof Error)) {
-                if (e instanceof item) {
-                    return tryCatch(cb).call(boundTo, e);
-                }
-            } else if (typeof item === "function") {
-                var matchesPredicate = tryCatch(item).call(boundTo, e);
-                if (matchesPredicate === errorObj) {
-                    return matchesPredicate;
-                } else if (matchesPredicate) {
-                    return tryCatch(cb).call(boundTo, e);
-                }
-            } else if (util.isObject(e)) {
-                var keys = getKeys(item);
-                for (var j = 0; j < keys.length; ++j) {
-                    var key = keys[j];
-                    if (item[key] != e[key]) {
-                        continue predicateLoop;
-                    }
-                }
-                return tryCatch(cb).call(boundTo, e);
-            }
-        }
-        return NEXT_FILTER;
-    };
-}
-
-return catchFilter;
-};
-
-},{"./es5":10,"./util":21}],6:[function(_dereq_,module,exports){
-"use strict";
-module.exports = function(Promise) {
-var longStackTraces = false;
-var contextStack = [];
-
-Promise.prototype._promiseCreated = function() {};
-Promise.prototype._pushContext = function() {};
-Promise.prototype._popContext = function() {return null;};
-Promise._peekContext = Promise.prototype._peekContext = function() {};
-
-function Context() {
-    this._trace = new Context.CapturedTrace(peekContext());
-}
-Context.prototype._pushContext = function () {
-    if (this._trace !== undefined) {
-        this._trace._promiseCreated = null;
-        contextStack.push(this._trace);
-    }
-};
-
-Context.prototype._popContext = function () {
-    if (this._trace !== undefined) {
-        var trace = contextStack.pop();
-        var ret = trace._promiseCreated;
-        trace._promiseCreated = null;
-        return ret;
-    }
-    return null;
-};
-
-function createContext() {
-    if (longStackTraces) return new Context();
-}
-
-function peekContext() {
-    var lastIndex = contextStack.length - 1;
-    if (lastIndex >= 0) {
-        return contextStack[lastIndex];
-    }
-    return undefined;
-}
-Context.CapturedTrace = null;
-Context.create = createContext;
-Context.deactivateLongStackTraces = function() {};
-Context.activateLongStackTraces = function() {
-    var Promise_pushContext = Promise.prototype._pushContext;
-    var Promise_popContext = Promise.prototype._popContext;
-    var Promise_PeekContext = Promise._peekContext;
-    var Promise_peekContext = Promise.prototype._peekContext;
-    var Promise_promiseCreated = Promise.prototype._promiseCreated;
-    Context.deactivateLongStackTraces = function() {
-        Promise.prototype._pushContext = Promise_pushContext;
-        Promise.prototype._popContext = Promise_popContext;
-        Promise._peekContext = Promise_PeekContext;
-        Promise.prototype._peekContext = Promise_peekContext;
-        Promise.prototype._promiseCreated = Promise_promiseCreated;
-        longStackTraces = false;
-    };
-    longStackTraces = true;
-    Promise.prototype._pushContext = Context.prototype._pushContext;
-    Promise.prototype._popContext = Context.prototype._popContext;
-    Promise._peekContext = Promise.prototype._peekContext = peekContext;
-    Promise.prototype._promiseCreated = function() {
-        var ctx = this._peekContext();
-        if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this;
-    };
-};
-return Context;
-};
-
-},{}],7:[function(_dereq_,module,exports){
-"use strict";
-module.exports = function(Promise, Context) {
-var getDomain = Promise._getDomain;
-var async = Promise._async;
-var Warning = _dereq_("./errors").Warning;
-var util = _dereq_("./util");
-var canAttachTrace = util.canAttachTrace;
-var unhandledRejectionHandled;
-var possiblyUnhandledRejection;
-var bluebirdFramePattern =
-    /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/;
-var nodeFramePattern = /\((?:timers\.js):\d+:\d+\)/;
-var parseLinePattern = /[\/<\(](.+?):(\d+):(\d+)\)?\s*$/;
-var stackFramePattern = null;
-var formatStack = null;
-var indentStackFrames = false;
-var printWarning;
-var debugging = !!(util.env("BLUEBIRD_DEBUG") != 0 &&
-                        (true ||
-                         util.env("BLUEBIRD_DEBUG") ||
-                         util.env("NODE_ENV") === "development"));
-
-var warnings = !!(util.env("BLUEBIRD_WARNINGS") != 0 &&
-    (debugging || util.env("BLUEBIRD_WARNINGS")));
-
-var longStackTraces = !!(util.env("BLUEBIRD_LONG_STACK_TRACES") != 0 &&
-    (debugging || util.env("BLUEBIRD_LONG_STACK_TRACES")));
-
-var wForgottenReturn = util.env("BLUEBIRD_W_FORGOTTEN_RETURN") != 0 &&
-    (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN"));
-
-Promise.prototype.suppressUnhandledRejections = function() {
-    var target = this._target();
-    target._bitField = ((target._bitField & (~1048576)) |
-                      524288);
-};
-
-Promise.prototype._ensurePossibleRejectionHandled = function () {
-    if ((this._bitField & 524288) !== 0) return;
-    this._setRejectionIsUnhandled();
-    async.invokeLater(this._notifyUnhandledRejection, this, undefined);
-};
-
-Promise.prototype._notifyUnhandledRejectionIsHandled = function () {
-    fireRejectionEvent("rejectionHandled",
-                                  unhandledRejectionHandled, undefined, this);
-};
-
-Promise.prototype._setReturnedNonUndefined = function() {
-    this._bitField = this._bitField | 268435456;
-};
-
-Promise.prototype._returnedNonUndefined = function() {
-    return (this._bitField & 268435456) !== 0;
-};
-
-Promise.prototype._notifyUnhandledRejection = function () {
-    if (this._isRejectionUnhandled()) {
-        var reason = this._settledValue();
-        this._setUnhandledRejectionIsNotified();
-        fireRejectionEvent("unhandledRejection",
-                                      possiblyUnhandledRejection, reason, this);
-    }
-};
-
-Promise.prototype._setUnhandledRejectionIsNotified = function () {
-    this._bitField = this._bitField | 262144;
-};
-
-Promise.prototype._unsetUnhandledRejectionIsNotified = function () {
-    this._bitField = this._bitField & (~262144);
-};
-
-Promise.prototype._isUnhandledRejectionNotified = function () {
-    return (this._bitField & 262144) > 0;
-};
-
-Promise.prototype._setRejectionIsUnhandled = function () {
-    this._bitField = this._bitField | 1048576;
-};
-
-Promise.prototype._unsetRejectionIsUnhandled = function () {
-    this._bitField = this._bitField & (~1048576);
-    if (this._isUnhandledRejectionNotified()) {
-        this._unsetUnhandledRejectionIsNotified();
-        this._notifyUnhandledRejectionIsHandled();
-    }
-};
-
-Promise.prototype._isRejectionUnhandled = function () {
-    return (this._bitField & 1048576) > 0;
-};
-
-Promise.prototype._warn = function(message, shouldUseOwnTrace, promise) {
-    return warn(message, shouldUseOwnTrace, promise || this);
-};
-
-Promise.onPossiblyUnhandledRejection = function (fn) {
-    var domain = getDomain();
-    possiblyUnhandledRejection =
-        typeof fn === "function" ? (domain === null ?
-                                            fn : util.domainBind(domain, fn))
-                                 : undefined;
-};
-
-Promise.onUnhandledRejectionHandled = function (fn) {
-    var domain = getDomain();
-    unhandledRejectionHandled =
-        typeof fn === "function" ? (domain === null ?
-                                            fn : util.domainBind(domain, fn))
-                                 : undefined;
-};
-
-var disableLongStackTraces = function() {};
-Promise.longStackTraces = function () {
-    if (async.haveItemsQueued() && !config.longStackTraces) {
-        throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a    See http://goo.gl/MqrFmX\u000a");
-    }
-    if (!config.longStackTraces && longStackTracesIsSupported()) {
-        var Promise_captureStackTrace = Promise.prototype._captureStackTrace;
-        var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace;
-        config.longStackTraces = true;
-        disableLongStackTraces = function() {
-            if (async.haveItemsQueued() && !config.longStackTraces) {
-                throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a    See http://goo.gl/MqrFmX\u000a");
-            }
-            Promise.prototype._captureStackTrace = Promise_captureStackTrace;
-            Promise.prototype._attachExtraTrace = Promise_attachExtraTrace;
-            Context.deactivateLongStackTraces();
-            async.enableTrampoline();
-            config.longStackTraces = false;
-        };
-        Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace;
-        Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace;
-        Context.activateLongStackTraces();
-        async.disableTrampolineIfNecessary();
-    }
-};
-
-Promise.hasLongStackTraces = function () {
-    return config.longStackTraces && longStackTracesIsSupported();
-};
-
-var fireDomEvent = (function() {
-    try {
-        if (typeof CustomEvent === "function") {
-            var event = new CustomEvent("CustomEvent");
-            util.global.dispatchEvent(event);
-            return function(name, event) {
-                var domEvent = new CustomEvent(name.toLowerCase(), {
-                    detail: event,
-                    cancelable: true
-                });
-                return !util.global.dispatchEvent(domEvent);
-            };
-        } else if (typeof Event === "function") {
-            var event = new Event("CustomEvent");
-            util.global.dispatchEvent(event);
-            return function(name, event) {
-                var domEvent = new Event(name.toLowerCase(), {
-                    cancelable: true
-                });
-                domEvent.detail = event;
-                return !util.global.dispatchEvent(domEvent);
-            };
-        } else {
-            var event = document.createEvent("CustomEvent");
-            event.initCustomEvent("testingtheevent", false, true, {});
-            util.global.dispatchEvent(event);
-            return function(name, event) {
-                var domEvent = document.createEvent("CustomEvent");
-                domEvent.initCustomEvent(name.toLowerCase(), false, true,
-                    event);
-                return !util.global.dispatchEvent(domEvent);
-            };
-        }
-    } catch (e) {}
-    return function() {
-        return false;
-    };
-})();
-
-var fireGlobalEvent = (function() {
-    if (util.isNode) {
-        return function() {
-            return process.emit.apply(process, arguments);
-        };
-    } else {
-        if (!util.global) {
-            return function() {
-                return false;
-            };
-        }
-        return function(name) {
-            var methodName = "on" + name.toLowerCase();
-            var method = util.global[methodName];
-            if (!method) return false;
-            method.apply(util.global, [].slice.call(arguments, 1));
-            return true;
-        };
-    }
-})();
-
-function generatePromiseLifecycleEventObject(name, promise) {
-    return {promise: promise};
-}
-
-var eventToObjectGenerator = {
-    promiseCreated: generatePromiseLifecycleEventObject,
-    promiseFulfilled: generatePromiseLifecycleEventObject,
-    promiseRejected: generatePromiseLifecycleEventObject,
-    promiseResolved: generatePromiseLifecycleEventObject,
-    promiseCancelled: generatePromiseLifecycleEventObject,
-    promiseChained: function(name, promise, child) {
-        return {promise: promise, child: child};
-    },
-    warning: function(name, warning) {
-        return {warning: warning};
-    },
-    unhandledRejection: function (name, reason, promise) {
-        return {reason: reason, promise: promise};
-    },
-    rejectionHandled: generatePromiseLifecycleEventObject
-};
-
-var activeFireEvent = function (name) {
-    var globalEventFired = false;
-    try {
-        globalEventFired = fireGlobalEvent.apply(null, arguments);
-    } catch (e) {
-        async.throwLater(e);
-        globalEventFired = true;
-    }
-
-    var domEventFired = false;
-    try {
-        domEventFired = fireDomEvent(name,
-                    eventToObjectGenerator[name].apply(null, arguments));
-    } catch (e) {
-        async.throwLater(e);
-        domEventFired = true;
-    }
-
-    return domEventFired || globalEventFired;
-};
-
-Promise.config = function(opts) {
-    opts = Object(opts);
-    if ("longStackTraces" in opts) {
-        if (opts.longStackTraces) {
-            Promise.longStackTraces();
-        } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) {
-            disableLongStackTraces();
-        }
-    }
-    if ("warnings" in opts) {
-        var warningsOption = opts.warnings;
-        config.warnings = !!warningsOption;
-        wForgottenReturn = config.warnings;
-
-        if (util.isObject(warningsOption)) {
-            if ("wForgottenReturn" in warningsOption) {
-                wForgottenReturn = !!warningsOption.wForgottenReturn;
-            }
-        }
-    }
-    if ("cancellation" in opts && opts.cancellation && !config.cancellation) {
-        if (async.haveItemsQueued()) {
-            throw new Error(
-                "cannot enable cancellation after promises are in use");
-        }
-        Promise.prototype._clearCancellationData =
-            cancellationClearCancellationData;
-        Promise.prototype._propagateFrom = cancellationPropagateFrom;
-        Promise.prototype._onCancel = cancellationOnCancel;
-        Promise.prototype._setOnCancel = cancellationSetOnCancel;
-        Promise.prototype._attachCancellationCallback =
-            cancellationAttachCancellationCallback;
-        Promise.prototype._execute = cancellationExecute;
-        propagateFromFunction = cancellationPropagateFrom;
-        config.cancellation = true;
-    }
-    if ("monitoring" in opts) {
-        if (opts.monitoring && !config.monitoring) {
-            config.monitoring = true;
-            Promise.prototype._fireEvent = activeFireEvent;
-        } else if (!opts.monitoring && config.monitoring) {
-            config.monitoring = false;
-            Promise.prototype._fireEvent = defaultFireEvent;
-        }
-    }
-    return Promise;
-};
-
-function defaultFireEvent() { return false; }
-
-Promise.prototype._fireEvent = defaultFireEvent;
-Promise.prototype._execute = function(executor, resolve, reject) {
-    try {
-        executor(resolve, reject);
-    } catch (e) {
-        return e;
-    }
-};
-Promise.prototype._onCancel = function () {};
-Promise.prototype._setOnCancel = function (handler) { ; };
-Promise.prototype._attachCancellationCallback = function(onCancel) {
-    ;
-};
-Promise.prototype._captureStackTrace = function () {};
-Promise.prototype._attachExtraTrace = function () {};
-Promise.prototype._clearCancellationData = function() {};
-Promise.prototype._propagateFrom = function (parent, flags) {
-    ;
-    ;
-};
-
-function cancellationExecute(executor, resolve, reject) {
-    var promise = this;
-    try {
-        executor(resolve, reject, function(onCancel) {
-            if (typeof onCancel !== "function") {
-                throw new TypeError("onCancel must be a function, got: " +
-                                    util.toString(onCancel));
-            }
-            promise._attachCancellationCallback(onCancel);
-        });
-    } catch (e) {
-        return e;
-    }
-}
-
-function cancellationAttachCancellationCallback(onCancel) {
-    if (!this._isCancellable()) return this;
-
-    var previousOnCancel = this._onCancel();
-    if (previousOnCancel !== undefined) {
-        if (util.isArray(previousOnCancel)) {
-            previousOnCancel.push(onCancel);
-        } else {
-            this._setOnCancel([previousOnCancel, onCancel]);
-        }
-    } else {
-        this._setOnCancel(onCancel);
-    }
-}
-
-function cancellationOnCancel() {
-    return this._onCancelField;
-}
-
-function cancellationSetOnCancel(onCancel) {
-    this._onCancelField = onCancel;
-}
-
-function cancellationClearCancellationData() {
-    this._cancellationParent = undefined;
-    this._onCancelField = undefined;
-}
-
-function cancellationPropagateFrom(parent, flags) {
-    if ((flags & 1) !== 0) {
-        this._cancellationParent = parent;
-        var branchesRemainingToCancel = parent._branchesRemainingToCancel;
-        if (branchesRemainingToCancel === undefined) {
-            branchesRemainingToCancel = 0;
-        }
-        parent._branchesRemainingToCancel = branchesRemainingToCancel + 1;
-    }
-    if ((flags & 2) !== 0 && parent._isBound()) {
-        this._setBoundTo(parent._boundTo);
-    }
-}
-
-function bindingPropagateFrom(parent, flags) {
-    if ((flags & 2) !== 0 && parent._isBound()) {
-        this._setBoundTo(parent._boundTo);
-    }
-}
-var propagateFromFunction = bindingPropagateFrom;
-
-function boundValueFunction() {
-    var ret = this._boundTo;
-    if (ret !== undefined) {
-        if (ret instanceof Promise) {
-            if (ret.isFulfilled()) {
-                return ret.value();
-            } else {
-                return undefined;
-            }
-        }
-    }
-    return ret;
-}
-
-function longStackTracesCaptureStackTrace() {
-    this._trace = new CapturedTrace(this._peekContext());
-}
-
-function longStackTracesAttachExtraTrace(error, ignoreSelf) {
-    if (canAttachTrace(error)) {
-        var trace = this._trace;
-        if (trace !== undefined) {
-            if (ignoreSelf) trace = trace._parent;
-        }
-        if (trace !== undefined) {
-            trace.attachExtraTrace(error);
-        } else if (!error.__stackCleaned__) {
-            var parsed = parseStackAndMessage(error);
-            util.notEnumerableProp(error, "stack",
-                parsed.message + "\n" + parsed.stack.join("\n"));
-            util.notEnumerableProp(error, "__stackCleaned__", true);
-        }
-    }
-}
-
-function checkForgottenReturns(returnValue, promiseCreated, name, promise,
-                               parent) {
-    if (returnValue === undefined && promiseCreated !== null &&
-        wForgottenReturn) {
-        if (parent !== undefined && parent._returnedNonUndefined()) return;
-        if ((promise._bitField & 65535) === 0) return;
-
-        if (name) name = name + " ";
-        var handlerLine = "";
-        var creatorLine = "";
-        if (promiseCreated._trace) {
-            var traceLines = promiseCreated._trace.stack.split("\n");
-            var stack = cleanStack(traceLines);
-            for (var i = stack.length - 1; i >= 0; --i) {
-                var line = stack[i];
-                if (!nodeFramePattern.test(line)) {
-                    var lineMatches = line.match(parseLinePattern);
-                    if (lineMatches) {
-                        handlerLine  = "at " + lineMatches[1] +
-                            ":" + lineMatches[2] + ":" + lineMatches[3] + " ";
-                    }
-                    break;
-                }
-            }
-
-            if (stack.length > 0) {
-                var firstUserLine = stack[0];
-                for (var i = 0; i < traceLines.length; ++i) {
-
-                    if (traceLines[i] === firstUserLine) {
-                        if (i > 0) {
-                            creatorLine = "\n" + traceLines[i - 1];
-                        }
-                        break;
-                    }
-                }
-
-            }
-        }
-        var msg = "a promise was created in a " + name +
-            "handler " + handlerLine + "but was not returned from it, " +
-            "see http://goo.gl/rRqMUw" +
-            creatorLine;
-        promise._warn(msg, true, promiseCreated);
-    }
-}
-
-function deprecated(name, replacement) {
-    var message = name +
-        " is deprecated and will be removed in a future version.";
-    if (replacement) message += " Use " + replacement + " instead.";
-    return warn(message);
-}
-
-function warn(message, shouldUseOwnTrace, promise) {
-    if (!config.warnings) return;
-    var warning = new Warning(message);
-    var ctx;
-    if (shouldUseOwnTrace) {
-        promise._attachExtraTrace(warning);
-    } else if (config.longStackTraces && (ctx = Promise._peekContext())) {
-        ctx.attachExtraTrace(warning);
-    } else {
-        var parsed = parseStackAndMessage(warning);
-        warning.stack = parsed.message + "\n" + parsed.stack.join("\n");
-    }
-
-    if (!activeFireEvent("warning", warning)) {
-        formatAndLogError(warning, "", true);
-    }
-}
-
-function reconstructStack(message, stacks) {
-    for (var i = 0; i < stacks.length - 1; ++i) {
-        stacks[i].push("From previous event:");
-        stacks[i] = stacks[i].join("\n");
-    }
-    if (i < stacks.length) {
-        stacks[i] = stacks[i].join("\n");
-    }
-    return message + "\n" + stacks.join("\n");
-}
-
-function removeDuplicateOrEmptyJumps(stacks) {
-    for (var i = 0; i < stacks.length; ++i) {
-        if (stacks[i].length === 0 ||
-            ((i + 1 < stacks.length) && stacks[i][0] === stacks[i+1][0])) {
-            stacks.splice(i, 1);
-            i--;
-        }
-    }
-}
-
-function removeCommonRoots(stacks) {
-    var current = stacks[0];
-    for (var i = 1; i < stacks.length; ++i) {
-        var prev = stacks[i];
-        var currentLastIndex = current.length - 1;
-        var currentLastLine = current[currentLastIndex];
-        var commonRootMeetPoint = -1;
-
-        for (var j = prev.length - 1; j >= 0; --j) {
-            if (prev[j] === currentLastLine) {
-                commonRootMeetPoint = j;
-                break;
-            }
-        }
-
-        for (var j = commonRootMeetPoint; j >= 0; --j) {
-            var line = prev[j];
-            if (current[currentLastIndex] === line) {
-                current.pop();
-                currentLastIndex--;
-            } else {
-                break;
-            }
-        }
-        current = prev;
-    }
-}
-
-function cleanStack(stack) {
-    var ret = [];
-    for (var i = 0; i < stack.length; ++i) {
-        var line = stack[i];
-        var isTraceLine = "    (No stack trace)" === line ||
-            stackFramePattern.test(line);
-        var isInternalFrame = isTraceLine && shouldIgnore(line);
-        if (isTraceLine && !isInternalFrame) {
-            if (indentStackFrames && line.charAt(0) !== " ") {
-                line = "    " + line;
-            }
-            ret.push(line);
-        }
-    }
-    return ret;
-}
-
-function stackFramesAsArray(error) {
-    var stack = error.stack.replace(/\s+$/g, "").split("\n");
-    for (var i = 0; i < stack.length; ++i) {
-        var line = stack[i];
-        if ("    (No stack trace)" === line || stackFramePattern.test(line)) {
-            break;
-        }
-    }
-    if (i > 0 && error.name != "SyntaxError") {
-        stack = stack.slice(i);
-    }
-    return stack;
-}
-
-function parseStackAndMessage(error) {
-    var stack = error.stack;
-    var message = error.toString();
-    stack = typeof stack === "string" && stack.length > 0
-                ? stackFramesAsArray(error) : ["    (No stack trace)"];
-    return {
-        message: message,
-        stack: error.name == "SyntaxError" ? stack : cleanStack(stack)
-    };
-}
-
-function formatAndLogError(error, title, isSoft) {
-    if (typeof console !== "undefined") {
-        var message;
-        if (util.isObject(error)) {
-            var stack = error.stack;
-            message = title + formatStack(stack, error);
-        } else {
-            message = title + String(error);
-        }
-        if (typeof printWarning === "function") {
-            printWarning(message, isSoft);
-        } else if (typeof console.log === "function" ||
-            typeof console.log === "object") {
-            console.log(message);
-        }
-    }
-}
-
-function fireRejectionEvent(name, localHandler, reason, promise) {
-    var localEventFired = false;
-    try {
-        if (typeof localHandler === "function") {
-            localEventFired = true;
-            if (name === "rejectionHandled") {
-                localHandler(promise);
-            } else {
-                localHandler(reason, promise);
-            }
-        }
-    } catch (e) {
-        async.throwLater(e);
-    }
-
-    if (name === "unhandledRejection") {
-        if (!activeFireEvent(name, reason, promise) && !localEventFired) {
-            formatAndLogError(reason, "Unhandled rejection ");
-        }
-    } else {
-        activeFireEvent(name, promise);
-    }
-}
-
-function formatNonError(obj) {
-    var str;
-    if (typeof obj === "function") {
-        str = "[function " +
-            (obj.name || "anonymous") +
-            "]";
-    } else {
-        str = obj && typeof obj.toString === "function"
-            ? obj.toString() : util.toString(obj);
-        var ruselessToString = /\[object [a-zA-Z0-9$_]+\]/;
-        if (ruselessToString.test(str)) {
-            try {
-                var newStr = JSON.stringify(obj);
-                str = newStr;
-            }
-            catch(e) {
-
-            }
-        }
-        if (str.length === 0) {
-            str = "(empty array)";
-        }
-    }
-    return ("(<" + snip(str) + ">, no stack trace)");
-}
-
-function snip(str) {
-    var maxChars = 41;
-    if (str.length < maxChars) {
-        return str;
-    }
-    return str.substr(0, maxChars - 3) + "...";
-}
-
-function longStackTracesIsSupported() {
-    return typeof captureStackTrace === "function";
-}
-
-var shouldIgnore = function() { return false; };
-var parseLineInfoRegex = /[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;
-function parseLineInfo(line) {
-    var matches = line.match(parseLineInfoRegex);
-    if (matches) {
-        return {
-            fileName: matches[1],
-            line: parseInt(matches[2], 10)
-        };
-    }
-}
-
-function setBounds(firstLineError, lastLineError) {
-    if (!longStackTracesIsSupported()) return;
-    var firstStackLines = firstLineError.stack.split("\n");
-    var lastStackLines = lastLineError.stack.split("\n");
-    var firstIndex = -1;
-    var lastIndex = -1;
-    var firstFileName;
-    var lastFileName;
-    for (var i = 0; i < firstStackLines.length; ++i) {
-        var result = parseLineInfo(firstStackLines[i]);
-        if (result) {
-            firstFileName = result.fileName;
-            firstIndex = result.line;
-            break;
-        }
-    }
-    for (var i = 0; i < lastStackLines.length; ++i) {
-        var result = parseLineInfo(lastStackLines[i]);
-        if (result) {
-            lastFileName = result.fileName;
-            lastIndex = result.line;
-            break;
-        }
-    }
-    if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName ||
-        firstFileName !== lastFileName || firstIndex >= lastIndex) {
-        return;
-    }
-
-    shouldIgnore = function(line) {
-        if (bluebirdFramePattern.test(line)) return true;
-        var info = parseLineInfo(line);
-        if (info) {
-            if (info.fileName === firstFileName &&
-                (firstIndex <= info.line && info.line <= lastIndex)) {
-                return true;
-            }
-        }
-        return false;
-    };
-}
-
-function CapturedTrace(parent) {
-    this._parent = parent;
-    this._promisesCreated = 0;
-    var length = this._length = 1 + (parent === undefined ? 0 : parent._length);
-    captureStackTrace(this, CapturedTrace);
-    if (length > 32) this.uncycle();
-}
-util.inherits(CapturedTrace, Error);
-Context.CapturedTrace = CapturedTrace;
-
-CapturedTrace.prototype.uncycle = function() {
-    var length = this._length;
-    if (length < 2) return;
-    var nodes = [];
-    var stackToIndex = {};
-
-    for (var i = 0, node = this; node !== undefined; ++i) {
-        nodes.push(node);
-        node = node._parent;
-    }
-    length = this._length = i;
-    for (var i = length - 1; i >= 0; --i) {
-        var stack = nodes[i].stack;
-        if (stackToIndex[stack] === undefined) {
-            stackToIndex[stack] = i;
-        }
-    }
-    for (var i = 0; i < length; ++i) {
-        var currentStack = nodes[i].stack;
-        var index = stackToIndex[currentStack];
-        if (index !== undefined && index !== i) {
-            if (index > 0) {
-                nodes[index - 1]._parent = undefined;
-                nodes[index - 1]._length = 1;
-            }
-            nodes[i]._parent = undefined;
-            nodes[i]._length = 1;
-            var cycleEdgeNode = i > 0 ? nodes[i - 1] : this;
-
-            if (index < length - 1) {
-                cycleEdgeNode._parent = nodes[index + 1];
-                cycleEdgeNode._parent.uncycle();
-                cycleEdgeNode._length =
-                    cycleEdgeNode._parent._length + 1;
-            } else {
-                cycleEdgeNode._parent = undefined;
-                cycleEdgeNode._length = 1;
-            }
-            var currentChildLength = cycleEdgeNode._length + 1;
-            for (var j = i - 2; j >= 0; --j) {
-                nodes[j]._length = currentChildLength;
-                currentChildLength++;
-            }
-            return;
-        }
-    }
-};
-
-CapturedTrace.prototype.attachExtraTrace = function(error) {
-    if (error.__stackCleaned__) return;
-    this.uncycle();
-    var parsed = parseStackAndMessage(error);
-    var message = parsed.message;
-    var stacks = [parsed.stack];
-
-    var trace = this;
-    while (trace !== undefined) {
-        stacks.push(cleanStack(trace.stack.split("\n")));
-        trace = trace._parent;
-    }
-    removeCommonRoots(stacks);
-    removeDuplicateOrEmptyJumps(stacks);
-    util.notEnumerableProp(error, "stack", reconstructStack(message, stacks));
-    util.notEnumerableProp(error, "__stackCleaned__", true);
-};
-
-var captureStackTrace = (function stackDetection() {
-    var v8stackFramePattern = /^\s*at\s*/;
-    var v8stackFormatter = function(stack, error) {
-        if (typeof stack === "string") return stack;
-
-        if (error.name !== undefined &&
-            error.message !== undefined) {
-            return error.toString();
-        }
-        return formatNonError(error);
-    };
-
-    if (typeof Error.stackTraceLimit === "number" &&
-        typeof Error.captureStackTrace === "function") {
-        Error.stackTraceLimit += 6;
-        stackFramePattern = v8stackFramePattern;
-        formatStack = v8stackFormatter;
-        var captureStackTrace = Error.captureStackTrace;
-
-        shouldIgnore = function(line) {
-            return bluebirdFramePattern.test(line);
-        };
-        return function(receiver, ignoreUntil) {
-            Error.stackTraceLimit += 6;
-            captureStackTrace(receiver, ignoreUntil);
-            Error.stackTraceLimit -= 6;
-        };
-    }
-    var err = new Error();
-
-    if (typeof err.stack === "string" &&
-        err.stack.split("\n")[0].indexOf("stackDetection@") >= 0) {
-        stackFramePattern = /@/;
-        formatStack = v8stackFormatter;
-        indentStackFrames = true;
-        return function captureStackTrace(o) {
-            o.stack = new Error().stack;
-        };
-    }
-
-    var hasStackAfterThrow;
-    try { throw new Error(); }
-    catch(e) {
-        hasStackAfterThrow = ("stack" in e);
-    }
-    if (!("stack" in err) && hasStackAfterThrow &&
-        typeof Error.stackTraceLimit === "number") {
-        stackFramePattern = v8stackFramePattern;
-        formatStack = v8stackFormatter;
-        return function captureStackTrace(o) {
-            Error.stackTraceLimit += 6;
-            try { throw new Error(); }
-            catch(e) { o.stack = e.stack; }
-            Error.stackTraceLimit -= 6;
-        };
-    }
-
-    formatStack = function(stack, error) {
-        if (typeof stack === "string") return stack;
-
-        if ((typeof error === "object" ||
-            typeof error === "function") &&
-            error.name !== undefined &&
-            error.message !== undefined) {
-            return error.toString();
-        }
-        return formatNonError(error);
-    };
-
-    return null;
-
-})([]);
-
-if (typeof console !== "undefined" && typeof console.warn !== "undefined") {
-    printWarning = function (message) {
-        console.warn(message);
-    };
-    if (util.isNode && process.stderr.isTTY) {
-        printWarning = function(message, isSoft) {
-            var color = isSoft ? "\u001b[33m" : "\u001b[31m";
-            console.warn(color + message + "\u001b[0m\n");
-        };
-    } else if (!util.isNode && typeof (new Error().stack) === "string") {
-        printWarning = function(message, isSoft) {
-            console.warn("%c" + message,
-                        isSoft ? "color: darkorange" : "color: red");
-        };
-    }
-}
-
-var config = {
-    warnings: warnings,
-    longStackTraces: false,
-    cancellation: false,
-    monitoring: false
-};
-
-if (longStackTraces) Promise.longStackTraces();
-
-return {
-    longStackTraces: function() {
-        return config.longStackTraces;
-    },
-    warnings: function() {
-        return config.warnings;
-    },
-    cancellation: function() {
-        return config.cancellation;
-    },
-    monitoring: function() {
-        return config.monitoring;
-    },
-    propagateFromFunction: function() {
-        return propagateFromFunction;
-    },
-    boundValueFunction: function() {
-        return boundValueFunction;
-    },
-    checkForgottenReturns: checkForgottenReturns,
-    setBounds: setBounds,
-    warn: warn,
-    deprecated: deprecated,
-    CapturedTrace: CapturedTrace,
-    fireDomEvent: fireDomEvent,
-    fireGlobalEvent: fireGlobalEvent
-};
-};
-
-},{"./errors":9,"./util":21}],8:[function(_dereq_,module,exports){
-"use strict";
-module.exports = function(Promise) {
-function returner() {
-    return this.value;
-}
-function thrower() {
-    throw this.reason;
-}
-
-Promise.prototype["return"] =
-Promise.prototype.thenReturn = function (value) {
-    if (value instanceof Promise) value.suppressUnhandledRejections();
-    return this._then(
-        returner, undefined, undefined, {value: value}, undefined);
-};
-
-Promise.prototype["throw"] =
-Promise.prototype.thenThrow = function (reason) {
-    return this._then(
-        thrower, undefined, undefined, {reason: reason}, undefined);
-};
-
-Promise.prototype.catchThrow = function (reason) {
-    if (arguments.length <= 1) {
-        return this._then(
-            undefined, thrower, undefined, {reason: reason}, undefined);
-    } else {
-        var _reason = arguments[1];
-        var handler = function() {throw _reason;};
-        return this.caught(reason, handler);
-    }
-};
-
-Promise.prototype.catchReturn = function (value) {
-    if (arguments.length <= 1) {
-        if (value instanceof Promise) value.suppressUnhandledRejections();
-        return this._then(
-            undefined, returner, undefined, {value: value}, undefined);
-    } else {
-        var _value = arguments[1];
-        if (_value instanceof Promise) _value.suppressUnhandledRejections();
-        var handler = function() {return _value;};
-        return this.caught(value, handler);
-    }
-};
-};
-
-},{}],9:[function(_dereq_,module,exports){
-"use strict";
-var es5 = _dereq_("./es5");
-var Objectfreeze = es5.freeze;
-var util = _dereq_("./util");
-var inherits = util.inherits;
-var notEnumerableProp = util.notEnumerableProp;
-
-function subError(nameProperty, defaultMessage) {
-    function SubError(message) {
-        if (!(this instanceof SubError)) return new SubError(message);
-        notEnumerableProp(this, "message",
-            typeof message === "string" ? message : defaultMessage);
-        notEnumerableProp(this, "name", nameProperty);
-        if (Error.captureStackTrace) {
-            Error.captureStackTrace(this, this.constructor);
-        } else {
-            Error.call(this);
-        }
-    }
-    inherits(SubError, Error);
-    return SubError;
-}
-
-var _TypeError, _RangeError;
-var Warning = subError("Warning", "warning");
-var CancellationError = subError("CancellationError", "cancellation error");
-var TimeoutError = subError("TimeoutError", "timeout error");
-var AggregateError = subError("AggregateError", "aggregate error");
-try {
-    _TypeError = TypeError;
-    _RangeError = RangeError;
-} catch(e) {
-    _TypeError = subError("TypeError", "type error");
-    _RangeError = subError("RangeError", "range error");
-}
-
-var methods = ("join pop push shift unshift slice filter forEach some " +
-    "every map indexOf lastIndexOf reduce reduceRight sort reverse").split(" ");
-
-for (var i = 0; i < methods.length; ++i) {
-    if (typeof Array.prototype[methods[i]] === "function") {
-        AggregateError.prototype[methods[i]] = Array.prototype[methods[i]];
-    }
-}
-
-es5.defineProperty(AggregateError.prototype, "length", {
-    value: 0,
-    configurable: false,
-    writable: true,
-    enumerable: true
-});
-AggregateError.prototype["isOperational"] = true;
-var level = 0;
-AggregateError.prototype.toString = function() {
-    var indent = Array(level * 4 + 1).join(" ");
-    var ret = "\n" + indent + "AggregateError of:" + "\n";
-    level++;
-    indent = Array(level * 4 + 1).join(" ");
-    for (var i = 0; i < this.length; ++i) {
-        var str = this[i] === this ? "[Circular AggregateError]" : this[i] + "";
-        var lines = str.split("\n");
-        for (var j = 0; j < lines.length; ++j) {
-            lines[j] = indent + lines[j];
-        }
-        str = lines.join("\n");
-        ret += str + "\n";
-    }
-    level--;
-    return ret;
-};
-
-function OperationalError(message) {
-    if (!(this instanceof OperationalError))
-        return new OperationalError(message);
-    notEnumerableProp(this, "name", "OperationalError");
-    notEnumerableProp(this, "message", message);
-    this.cause = message;
-    this["isOperational"] = true;
-
-    if (message instanceof Error) {
-        notEnumerableProp(this, "message", message.message);
-        notEnumerableProp(this, "stack", message.stack);
-    } else if (Error.captureStackTrace) {
-        Error.captureStackTrace(this, this.constructor);
-    }
-
-}
-inherits(OperationalError, Error);
-
-var errorTypes = Error["__BluebirdErrorTypes__"];
-if (!errorTypes) {
-    errorTypes = Objectfreeze({
-        CancellationError: CancellationError,
-        TimeoutError: TimeoutError,
-        OperationalError: OperationalError,
-        RejectionError: OperationalError,
-        AggregateError: AggregateError
-    });
-    es5.defineProperty(Error, "__BluebirdErrorTypes__", {
-        value: errorTypes,
-        writable: false,
-        enumerable: false,
-        configurable: false
-    });
-}
-
-module.exports = {
-    Error: Error,
-    TypeError: _TypeError,
-    RangeError: _RangeError,
-    CancellationError: errorTypes.CancellationError,
-    OperationalError: errorTypes.OperationalError,
-    TimeoutError: errorTypes.TimeoutError,
-    AggregateError: errorTypes.AggregateError,
-    Warning: Warning
-};
-
-},{"./es5":10,"./util":21}],10:[function(_dereq_,module,exports){
-var isES5 = (function(){
-    "use strict";
-    return this === undefined;
-})();
-
-if (isES5) {
-    module.exports = {
-        freeze: Object.freeze,
-        defineProperty: Object.defineProperty,
-        getDescriptor: Object.getOwnPropertyDescriptor,
-        keys: Object.keys,
-        names: Object.getOwnPropertyNames,
-        getPrototypeOf: Object.getPrototypeOf,
-        isArray: Array.isArray,
-        isES5: isES5,
-        propertyIsWritable: function(obj, prop) {
-            var descriptor = Object.getOwnPropertyDescriptor(obj, prop);
-            return !!(!descriptor || descriptor.writable || descriptor.set);
-        }
-    };
-} else {
-    var has = {}.hasOwnProperty;
-    var str = {}.toString;
-    var proto = {}.constructor.prototype;
-
-    var ObjectKeys = function (o) {
-        var ret = [];
-        for (var key in o) {
-            if (has.call(o, key)) {
-                ret.push(key);
-            }
-        }
-        return ret;
-    };
-
-    var ObjectGetDescriptor = function(o, key) {
-        return {value: o[key]};
-    };
-
-    var ObjectDefineProperty = function (o, key, desc) {
-        o[key] = desc.value;
-        return o;
-    };
-
-    var ObjectFreeze = function (obj) {
-        return obj;
-    };
-
-    var ObjectGetPrototypeOf = function (obj) {
-        try {
-            return Object(obj).constructor.prototype;
-        }
-        catch (e) {
-            return proto;
-        }
-    };
-
-    var ArrayIsArray = function (obj) {
-        try {
-            return str.call(obj) === "[object Array]";
-        }
-        catch(e) {
-            return false;
-        }
-    };
-
-    module.exports = {
-        isArray: ArrayIsArray,
-        keys: ObjectKeys,
-        names: ObjectKeys,
-        defineProperty: ObjectDefineProperty,
-        getDescriptor: ObjectGetDescriptor,
-        freeze: ObjectFreeze,
-        getPrototypeOf: ObjectGetPrototypeOf,
-        isES5: isES5,
-        propertyIsWritable: function() {
-            return true;
-        }
-    };
-}
-
-},{}],11:[function(_dereq_,module,exports){
-"use strict";
-module.exports = function(Promise, tryConvertToPromise, NEXT_FILTER) {
-var util = _dereq_("./util");
-var CancellationError = Promise.CancellationError;
-var errorObj = util.errorObj;
-var catchFilter = _dereq_("./catch_filter")(NEXT_FILTER);
-
-function PassThroughHandlerContext(promise, type, handler) {
-    this.promise = promise;
-    this.type = type;
-    this.handler = handler;
-    this.called = false;
-    this.cancelPromise = null;
-}
-
-PassThroughHandlerContext.prototype.isFinallyHandler = function() {
-    return this.type === 0;
-};
-
-function FinallyHandlerCancelReaction(finallyHandler) {
-    this.finallyHandler = finallyHandler;
-}
-
-FinallyHandlerCancelReaction.prototype._resultCancelled = function() {
-    checkCancel(this.finallyHandler);
-};
-
-function checkCancel(ctx, reason) {
-    if (ctx.cancelPromise != null) {
-        if (arguments.length > 1) {
-            ctx.cancelPromise._reject(reason);
-        } else {
-            ctx.cancelPromise._cancel();
-        }
-        ctx.cancelPromise = null;
-        return true;
-    }
-    return false;
-}
-
-function succeed() {
-    return finallyHandler.call(this, this.promise._target()._settledValue());
-}
-function fail(reason) {
-    if (checkCancel(this, reason)) return;
-    errorObj.e = reason;
-    return errorObj;
-}
-function finallyHandler(reasonOrValue) {
-    var promise = this.promise;
-    var handler = this.handler;
-
-    if (!this.called) {
-        this.called = true;
-        var ret = this.isFinallyHandler()
-            ? handler.call(promise._boundValue())
-            : handler.call(promise._boundValue(), reasonOrValue);
-        if (ret === NEXT_FILTER) {
-            return ret;
-        } else if (ret !== undefined) {
-            promise._setReturnedNonUndefined();
-            var maybePromise = tryConvertToPromise(ret, promise);
-            if (maybePromise instanceof Promise) {
-                if (this.cancelPromise != null) {
-                    if (maybePromise._isCancelled()) {
-                        var reason =
-                            new CancellationError("late cancellation observer");
-                        promise._attachExtraTrace(reason);
-                        errorObj.e = reason;
-                        return errorObj;
-                    } else if (maybePromise.isPending()) {
-                        maybePromise._attachCancellationCallback(
-                            new FinallyHandlerCancelReaction(this));
-                    }
-                }
-                return maybePromise._then(
-                    succeed, fail, undefined, this, undefined);
-            }
-        }
-    }
-
-    if (promise.isRejected()) {
-        checkCancel(this);
-        errorObj.e = reasonOrValue;
-        return errorObj;
-    } else {
-        checkCancel(this);
-        return reasonOrValue;
-    }
-}
-
-Promise.prototype._passThrough = function(handler, type, success, fail) {
-    if (typeof handler !== "function") return this.then();
-    return this._then(success,
-                      fail,
-                      undefined,
-                      new PassThroughHandlerContext(this, type, handler),
-                      undefined);
-};
-
-Promise.prototype.lastly =
-Promise.prototype["finally"] = function (handler) {
-    return this._passThrough(handler,
-                             0,
-                             finallyHandler,
-                             finallyHandler);
-};
-
-
-Promise.prototype.tap = function (handler) {
-    return this._passThrough(handler, 1, finallyHandler);
-};
-
-Promise.prototype.tapCatch = function (handlerOrPredicate) {
-    var len = arguments.length;
-    if(len === 1) {
-        return this._passThrough(handlerOrPredicate,
-                                 1,
-                                 undefined,
-                                 finallyHandler);
-    } else {
-         var catchInstances = new Array(len - 1),
-            j = 0, i;
-        for (i = 0; i < len - 1; ++i) {
-            var item = arguments[i];
-            if (util.isObject(item)) {
-                catchInstances[j++] = item;
-            } else {
-                return Promise.reject(new TypeError(
-                    "tapCatch statement predicate: "
-                    + "expecting an object but got " + util.classString(item)
-                ));
-            }
-        }
-        catchInstances.length = j;
-        var handler = arguments[i];
-        return this._passThrough(catchFilter(catchInstances, handler, this),
-                                 1,
-                                 undefined,
-                                 finallyHandler);
-    }
-
-};
-
-return PassThroughHandlerContext;
-};
-
-},{"./catch_filter":5,"./util":21}],12:[function(_dereq_,module,exports){
-"use strict";
-module.exports =
-function(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async,
-         getDomain) {
-var util = _dereq_("./util");
-var canEvaluate = util.canEvaluate;
-var tryCatch = util.tryCatch;
-var errorObj = util.errorObj;
-var reject;
-
-if (!true) {
-if (canEvaluate) {
-    var thenCallback = function(i) {
-        return new Function("value", "holder", "                             \n\
-            'use strict';                                                    \n\
-            holder.pIndex = value;                                           \n\
-            holder.checkFulfillment(this);                                   \n\
-            ".replace(/Index/g, i));
-    };
-
-    var promiseSetter = function(i) {
-        return new Function("promise", "holder", "                           \n\
-            'use strict';                                                    \n\
-            holder.pIndex = promise;                                         \n\
-            ".replace(/Index/g, i));
-    };
-
-    var generateHolderClass = function(total) {
-        var props = new Array(total);
-        for (var i = 0; i < props.length; ++i) {
-            props[i] = "this.p" + (i+1);
-        }
-        var assignment = props.join(" = ") + " = null;";
-        var cancellationCode= "var promise;\n" + props.map(function(prop) {
-            return "                                                         \n\
-                promise = " + prop + ";                                      \n\
-                if (promise instanceof Promise) {                            \n\
-                    promise.cancel();                                        \n\
-                }                                                            \n\
-            ";
-        }).join("\n");
-        var passedArguments = props.join(", ");
-        var name = "Holder$" + total;
-
-
-        var code = "return function(tryCatch, errorObj, Promise, async) {    \n\
-            'use strict';                                                    \n\
-            function [TheName](fn) {                                         \n\
-                [TheProperties]                                              \n\
-                this.fn = fn;                                                \n\
-                this.asyncNeeded = true;                                     \n\
-                this.now = 0;                                                \n\
-            }                                                                \n\
-                                                                             \n\
-            [TheName].prototype._callFunction = function(promise) {          \n\
-                promise._pushContext();                                      \n\
-                var ret = tryCatch(this.fn)([ThePassedArguments]);           \n\
-                promise._popContext();                                       \n\
-                if (ret === errorObj) {                                      \n\
-                    promise._rejectCallback(ret.e, false);                   \n\
-                } else {                                                     \n\
-                    promise._resolveCallback(ret);                           \n\
-                }                                                            \n\
-            };                                                               \n\
-                                                                             \n\
-            [TheName].prototype.checkFulfillment = function(promise) {       \n\
-                var now = ++this.now;                                        \n\
-                if (now === [TheTotal]) {                                    \n\
-                    if (this.asyncNeeded) {                                  \n\
-                        async.invoke(this._callFunction, this, promise);     \n\
-                    } else {                                                 \n\
-                        this._callFunction(promise);                         \n\
-                    }                                                        \n\
-                                                                             \n\
-                }                                                            \n\
-            };                                                               \n\
-                                                                             \n\
-            [TheName].prototype._resultCancelled = function() {              \n\
-                [CancellationCode]                                           \n\
-            };                                                               \n\
-                                                                             \n\
-            return [TheName];                                                \n\
-        }(tryCatch, errorObj, Promise, async);                               \n\
-        ";
-
-        code = code.replace(/\[TheName\]/g, name)
-            .replace(/\[TheTotal\]/g, total)
-            .replace(/\[ThePassedArguments\]/g, passedArguments)
-            .replace(/\[TheProperties\]/g, assignment)
-            .replace(/\[CancellationCode\]/g, cancellationCode);
-
-        return new Function("tryCatch", "errorObj", "Promise", "async", code)
-                           (tryCatch, errorObj, Promise, async);
-    };
-
-    var holderClasses = [];
-    var thenCallbacks = [];
-    var promiseSetters = [];
-
-    for (var i = 0; i < 8; ++i) {
-        holderClasses.push(generateHolderClass(i + 1));
-        thenCallbacks.push(thenCallback(i + 1));
-        promiseSetters.push(promiseSetter(i + 1));
-    }
-
-    reject = function (reason) {
-        this._reject(reason);
-    };
-}}
-
-Promise.join = function () {
-    var last = arguments.length - 1;
-    var fn;
-    if (last > 0 && typeof arguments[last] === "function") {
-        fn = arguments[last];
-        if (!true) {
-            if (last <= 8 && canEvaluate) {
-                var ret = new Promise(INTERNAL);
-                ret._captureStackTrace();
-                var HolderClass = holderClasses[last - 1];
-                var holder = new HolderClass(fn);
-                var callbacks = thenCallbacks;
-
-                for (var i = 0; i < last; ++i) {
-                    var maybePromise = tryConvertToPromise(arguments[i], ret);
-                    if (maybePromise instanceof Promise) {
-                        maybePromise = maybePromise._target();
-                        var bitField = maybePromise._bitField;
-                        ;
-                        if (((bitField & 50397184) === 0)) {
-                            maybePromise._then(callbacks[i], reject,
-                                               undefined, ret, holder);
-                            promiseSetters[i](maybePromise, holder);
-                            holder.asyncNeeded = false;
-                        } else if (((bitField & 33554432) !== 0)) {
-                            callbacks[i].call(ret,
-                                              maybePromise._value(), holder);
-                        } else if (((bitField & 16777216) !== 0)) {
-                            ret._reject(maybePromise._reason());
-                        } else {
-                            ret._cancel();
-                        }
-                    } else {
-                        callbacks[i].call(ret, maybePromise, holder);
-                    }
-                }
-
-                if (!ret._isFateSealed()) {
-                    if (holder.asyncNeeded) {
-                        var domain = getDomain();
-                        if (domain !== null) {
-                            holder.fn = util.domainBind(domain, holder.fn);
-                        }
-                    }
-                    ret._setAsyncGuaranteed();
-                    ret._setOnCancel(holder);
-                }
-                return ret;
-            }
-        }
-    }
-    var args = [].slice.call(arguments);;
-    if (fn) args.pop();
-    var ret = new PromiseArray(args).promise();
-    return fn !== undefined ? ret.spread(fn) : ret;
-};
-
-};
-
-},{"./util":21}],13:[function(_dereq_,module,exports){
-"use strict";
-module.exports =
-function(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) {
-var util = _dereq_("./util");
-var tryCatch = util.tryCatch;
-
-Promise.method = function (fn) {
-    if (typeof fn !== "function") {
-        throw new Promise.TypeError("expecting a function but got " + util.classString(fn));
-    }
-    return function () {
-        var ret = new Promise(INTERNAL);
-        ret._captureStackTrace();
-        ret._pushContext();
-        var value = tryCatch(fn).apply(this, arguments);
-        var promiseCreated = ret._popContext();
-        debug.checkForgottenReturns(
-            value, promiseCreated, "Promise.method", ret);
-        ret._resolveFromSyncValue(value);
-        return ret;
-    };
-};
-
-Promise.attempt = Promise["try"] = function (fn) {
-    if (typeof fn !== "function") {
-        return apiRejection("expecting a function but got " + util.classString(fn));
-    }
-    var ret = new Promise(INTERNAL);
-    ret._captureStackTrace();
-    ret._pushContext();
-    var value;
-    if (arguments.length > 1) {
-        debug.deprecated("calling Promise.try with more than 1 argument");
-        var arg = arguments[1];
-        var ctx = arguments[2];
-        value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg)
-                                  : tryCatch(fn).call(ctx, arg);
-    } else {
-        value = tryCatch(fn)();
-    }
-    var promiseCreated = ret._popContext();
-    debug.checkForgottenReturns(
-        value, promiseCreated, "Promise.try", ret);
-    ret._resolveFromSyncValue(value);
-    return ret;
-};
-
-Promise.prototype._resolveFromSyncValue = function (value) {
-    if (value === util.errorObj) {
-        this._rejectCallback(value.e, false);
-    } else {
-        this._resolveCallback(value, true);
-    }
-};
-};
-
-},{"./util":21}],14:[function(_dereq_,module,exports){
-"use strict";
-var util = _dereq_("./util");
-var maybeWrapAsError = util.maybeWrapAsError;
-var errors = _dereq_("./errors");
-var OperationalError = errors.OperationalError;
-var es5 = _dereq_("./es5");
-
-function isUntypedError(obj) {
-    return obj instanceof Error &&
-        es5.getPrototypeOf(obj) === Error.prototype;
-}
-
-var rErrorKey = /^(?:name|message|stack|cause)$/;
-function wrapAsOperationalError(obj) {
-    var ret;
-    if (isUntypedError(obj)) {
-        ret = new OperationalError(obj);
-        ret.name = obj.name;
-        ret.message = obj.message;
-        ret.stack = obj.stack;
-        var keys = es5.keys(obj);
-        for (var i = 0; i < keys.length; ++i) {
-            var key = keys[i];
-            if (!rErrorKey.test(key)) {
-                ret[key] = obj[key];
-            }
-        }
-        return ret;
-    }
-    util.markAsOriginatingFromRejection(obj);
-    return obj;
-}
-
-function nodebackForPromise(promise, multiArgs) {
-    return function(err, value) {
-        if (promise === null) return;
-        if (err) {
-            var wrapped = wrapAsOperationalError(maybeWrapAsError(err));
-            promise._attachExtraTrace(wrapped);
-            promise._reject(wrapped);
-        } else if (!multiArgs) {
-            promise._fulfill(value);
-        } else {
-            var args = [].slice.call(arguments, 1);;
-            promise._fulfill(args);
-        }
-        promise = null;
-    };
-}
-
-module.exports = nodebackForPromise;
-
-},{"./errors":9,"./es5":10,"./util":21}],15:[function(_dereq_,module,exports){
-"use strict";
-module.exports = function() {
-var makeSelfResolutionError = function () {
-    return new TypeError("circular promise resolution chain\u000a\u000a    See http://goo.gl/MqrFmX\u000a");
-};
-var reflectHandler = function() {
-    return new Promise.PromiseInspection(this._target());
-};
-var apiRejection = function(msg) {
-    return Promise.reject(new TypeError(msg));
-};
-function Proxyable() {}
-var UNDEFINED_BINDING = {};
-var util = _dereq_("./util");
-
-var getDomain;
-if (util.isNode) {
-    getDomain = function() {
-        var ret = process.domain;
-        if (ret === undefined) ret = null;
-        return ret;
-    };
-} else {
-    getDomain = function() {
-        return null;
-    };
-}
-util.notEnumerableProp(Promise, "_getDomain", getDomain);
-
-var es5 = _dereq_("./es5");
-var Async = _dereq_("./async");
-var async = new Async();
-es5.defineProperty(Promise, "_async", {value: async});
-var errors = _dereq_("./errors");
-var TypeError = Promise.TypeError = errors.TypeError;
-Promise.RangeError = errors.RangeError;
-var CancellationError = Promise.CancellationError = errors.CancellationError;
-Promise.TimeoutError = errors.TimeoutError;
-Promise.OperationalError = errors.OperationalError;
-Promise.RejectionError = errors.OperationalError;
-Promise.AggregateError = errors.AggregateError;
-var INTERNAL = function(){};
-var APPLY = {};
-var NEXT_FILTER = {};
-var tryConvertToPromise = _dereq_("./thenables")(Promise, INTERNAL);
-var PromiseArray =
-    _dereq_("./promise_array")(Promise, INTERNAL,
-                               tryConvertToPromise, apiRejection, Proxyable);
-var Context = _dereq_("./context")(Promise);
- /*jshint unused:false*/
-var createContext = Context.create;
-var debug = _dereq_("./debuggability")(Promise, Context);
-var CapturedTrace = debug.CapturedTrace;
-var PassThroughHandlerContext =
-    _dereq_("./finally")(Promise, tryConvertToPromise, NEXT_FILTER);
-var catchFilter = _dereq_("./catch_filter")(NEXT_FILTER);
-var nodebackForPromise = _dereq_("./nodeback");
-var errorObj = util.errorObj;
-var tryCatch = util.tryCatch;
-function check(self, executor) {
-    if (self == null || self.constructor !== Promise) {
-        throw new TypeError("the promise constructor cannot be invoked directly\u000a\u000a    See http://goo.gl/MqrFmX\u000a");
-    }
-    if (typeof executor !== "function") {
-        throw new TypeError("expecting a function but got " + util.classString(executor));
-    }
-
-}
-
-function Promise(executor) {
-    if (executor !== INTERNAL) {
-        check(this, executor);
-    }
-    this._bitField = 0;
-    this._fulfillmentHandler0 = undefined;
-    this._rejectionHandler0 = undefined;
-    this._promise0 = undefined;
-    this._receiver0 = undefined;
-    this._resolveFromExecutor(executor);
-    this._promiseCreated();
-    this._fireEvent("promiseCreated", this);
-}
-
-Promise.prototype.toString = function () {
-    return "[object Promise]";
-};
-
-Promise.prototype.caught = Promise.prototype["catch"] = function (fn) {
-    var len = arguments.length;
-    if (len > 1) {
-        var catchInstances = new Array(len - 1),
-            j = 0, i;
-        for (i = 0; i < len - 1; ++i) {
-            var item = arguments[i];
-            if (util.isObject(item)) {
-                catchInstances[j++] = item;
-            } else {
-                return apiRejection("Catch statement predicate: " +
-                    "expecting an object but got " + util.classString(item));
-            }
-        }
-        catchInstances.length = j;
-        fn = arguments[i];
-        return this.then(undefined, catchFilter(catchInstances, fn, this));
-    }
-    return this.then(undefined, fn);
-};
-
-Promise.prototype.reflect = function () {
-    return this._then(reflectHandler,
-        reflectHandler, undefined, this, undefined);
-};
-
-Promise.prototype.then = function (didFulfill, didReject) {
-    if (debug.warnings() && arguments.length > 0 &&
-        typeof didFulfill !== "function" &&
-        typeof didReject !== "function") {
-        var msg = ".then() only accepts functions but was passed: " +
-                util.classString(didFulfill);
-        if (arguments.length > 1) {
-            msg += ", " + util.classString(didReject);
-        }
-        this._warn(msg);
-    }
-    return this._then(didFulfill, didReject, undefined, undefined, undefined);
-};
-
-Promise.prototype.done = function (didFulfill, didReject) {
-    var promise =
-        this._then(didFulfill, didReject, undefined, undefined, undefined);
-    promise._setIsFinal();
-};
-
-Promise.prototype.spread = function (fn) {
-    if (typeof fn !== "function") {
-        return apiRejection("expecting a function but got " + util.classString(fn));
-    }
-    return this.all()._then(fn, undefined, undefined, APPLY, undefined);
-};
-
-Promise.prototype.toJSON = function () {
-    var ret = {
-        isFulfilled: false,
-        isRejected: false,
-        fulfillmentValue: undefined,
-        rejectionReason: undefined
-    };
-    if (this.isFulfilled()) {
-        ret.fulfillmentValue = this.value();
-        ret.isFulfilled = true;
-    } else if (this.isRejected()) {
-        ret.rejectionReason = this.reason();
-        ret.isRejected = true;
-    }
-    return ret;
-};
-
-Promise.prototype.all = function () {
-    if (arguments.length > 0) {
-        this._warn(".all() was passed arguments but it does not take any");
-    }
-    return new PromiseArray(this).promise();
-};
-
-Promise.prototype.error = function (fn) {
-    return this.caught(util.originatesFromRejection, fn);
-};
-
-Promise.getNewLibraryCopy = module.exports;
-
-Promise.is = function (val) {
-    return val instanceof Promise;
-};
-
-Promise.fromNode = Promise.fromCallback = function(fn) {
-    var ret = new Promise(INTERNAL);
-    ret._captureStackTrace();
-    var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs
-                                         : false;
-    var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs));
-    if (result === errorObj) {
-        ret._rejectCallback(result.e, true);
-    }
-    if (!ret._isFateSealed()) ret._setAsyncGuaranteed();
-    return ret;
-};
-
-Promise.all = function (promises) {
-    return new PromiseArray(promises).promise();
-};
-
-Promise.cast = function (obj) {
-    var ret = tryConvertToPromise(obj);
-    if (!(ret instanceof Promise)) {
-        ret = new Promise(INTERNAL);
-        ret._captureStackTrace();
-        ret._setFulfilled();
-        ret._rejectionHandler0 = obj;
-    }
-    return ret;
-};
-
-Promise.resolve = Promise.fulfilled = Promise.cast;
-
-Promise.reject = Promise.rejected = function (reason) {
-    var ret = new Promise(INTERNAL);
-    ret._captureStackTrace();
-    ret._rejectCallback(reason, true);
-    return ret;
-};
-
-Promise.setScheduler = function(fn) {
-    if (typeof fn !== "function") {
-        throw new TypeError("expecting a function but got " + util.classString(fn));
-    }
-    return async.setScheduler(fn);
-};
-
-Promise.prototype._then = function (
-    didFulfill,
-    didReject,
-    _,    receiver,
-    internalData
-) {
-    var haveInternalData = internalData !== undefined;
-    var promise = haveInternalData ? internalData : new Promise(INTERNAL);
-    var target = this._target();
-    var bitField = target._bitField;
-
-    if (!haveInternalData) {
-        promise._propagateFrom(this, 3);
-        promise._captureStackTrace();
-        if (receiver === undefined &&
-            ((this._bitField & 2097152) !== 0)) {
-            if (!((bitField & 50397184) === 0)) {
-                receiver = this._boundValue();
-            } else {
-                receiver = target === this ? undefined : this._boundTo;
-            }
-        }
-        this._fireEvent("promiseChained", this, promise);
-    }
-
-    var domain = getDomain();
-    if (!((bitField & 50397184) === 0)) {
-        var handler, value, settler = target._settlePromiseCtx;
-        if (((bitField & 33554432) !== 0)) {
-            value = target._rejectionHandler0;
-            handler = didFulfill;
-        } else if (((bitField & 16777216) !== 0)) {
-            value = target._fulfillmentHandler0;
-            handler = didReject;
-            target._unsetRejectionIsUnhandled();
-        } else {
-            settler = target._settlePromiseLateCancellationObserver;
-            value = new CancellationError("late cancellation observer");
-            target._attachExtraTrace(value);
-            handler = didReject;
-        }
-
-        async.invoke(settler, target, {
-            handler: domain === null ? handler
-                : (typeof handler === "function" &&
-                    util.domainBind(domain, handler)),
-            promise: promise,
-            receiver: receiver,
-            value: value
-        });
-    } else {
-        target._addCallbacks(didFulfill, didReject, promise, receiver, domain);
-    }
-
-    return promise;
-};
-
-Promise.prototype._length = function () {
-    return this._bitField & 65535;
-};
-
-Promise.prototype._isFateSealed = function () {
-    return (this._bitField & 117506048) !== 0;
-};
-
-Promise.prototype._isFollowing = function () {
-    return (this._bitField & 67108864) === 67108864;
-};
-
-Promise.prototype._setLength = function (len) {
-    this._bitField = (this._bitField & -65536) |
-        (len & 65535);
-};
-
-Promise.prototype._setFulfilled = function () {
-    this._bitField = this._bitField | 33554432;
-    this._fireEvent("promiseFulfilled", this);
-};
-
-Promise.prototype._setRejected = function () {
-    this._bitField = this._bitField | 16777216;
-    this._fireEvent("promiseRejected", this);
-};
-
-Promise.prototype._setFollowing = function () {
-    this._bitField = this._bitField | 67108864;
-    this._fireEvent("promiseResolved", this);
-};
-
-Promise.prototype._setIsFinal = function () {
-    this._bitField = this._bitField | 4194304;
-};
-
-Promise.prototype._isFinal = function () {
-    return (this._bitField & 4194304) > 0;
-};
-
-Promise.prototype._unsetCancelled = function() {
-    this._bitField = this._bitField & (~65536);
-};
-
-Promise.prototype._setCancelled = function() {
-    this._bitField = this._bitField | 65536;
-    this._fireEvent("promiseCancelled", this);
-};
-
-Promise.prototype._setWillBeCancelled = function() {
-    this._bitField = this._bitField | 8388608;
-};
-
-Promise.prototype._setAsyncGuaranteed = function() {
-    if (async.hasCustomScheduler()) return;
-    this._bitField = this._bitField | 134217728;
-};
-
-Promise.prototype._receiverAt = function (index) {
-    var ret = index === 0 ? this._receiver0 : this[
-            index * 4 - 4 + 3];
-    if (ret === UNDEFINED_BINDING) {
-        return undefined;
-    } else if (ret === undefined && this._isBound()) {
-        return this._boundValue();
-    }
-    return ret;
-};
-
-Promise.prototype._promiseAt = function (index) {
-    return this[
-            index * 4 - 4 + 2];
-};
-
-Promise.prototype._fulfillmentHandlerAt = function (index) {
-    return this[
-            index * 4 - 4 + 0];
-};
-
-Promise.prototype._rejectionHandlerAt = function (index) {
-    return this[
-            index * 4 - 4 + 1];
-};
-
-Promise.prototype._boundValue = function() {};
-
-Promise.prototype._migrateCallback0 = function (follower) {
-    var bitField = follower._bitField;
-    var fulfill = follower._fulfillmentHandler0;
-    var reject = follower._rejectionHandler0;
-    var promise = follower._promise0;
-    var receiver = follower._receiverAt(0);
-    if (receiver === undefined) receiver = UNDEFINED_BINDING;
-    this._addCallbacks(fulfill, reject, promise, receiver, null);
-};
-
-Promise.prototype._migrateCallbackAt = function (follower, index) {
-    var fulfill = follower._fulfillmentHandlerAt(index);
-    var reject = follower._rejectionHandlerAt(index);
-    var promise = follower._promiseAt(index);
-    var receiver = follower._receiverAt(index);
-    if (receiver === undefined) receiver = UNDEFINED_BINDING;
-    this._addCallbacks(fulfill, reject, promise, receiver, null);
-};
-
-Promise.prototype._addCallbacks = function (
-    fulfill,
-    reject,
-    promise,
-    receiver,
-    domain
-) {
-    var index = this._length();
-
-    if (index >= 65535 - 4) {
-        index = 0;
-        this._setLength(0);
-    }
-
-    if (index === 0) {
-        this._promise0 = promise;
-        this._receiver0 = receiver;
-        if (typeof fulfill === "function") {
-            this._fulfillmentHandler0 =
-                domain === null ? fulfill : util.domainBind(domain, fulfill);
-        }
-        if (typeof reject === "function") {
-            this._rejectionHandler0 =
-                domain === null ? reject : util.domainBind(domain, reject);
-        }
-    } else {
-        var base = index * 4 - 4;
-        this[base + 2] = promise;
-        this[base + 3] = receiver;
-        if (typeof fulfill === "function") {
-            this[base + 0] =
-                domain === null ? fulfill : util.domainBind(domain, fulfill);
-        }
-        if (typeof reject === "function") {
-            this[base + 1] =
-                domain === null ? reject : util.domainBind(domain, reject);
-        }
-    }
-    this._setLength(index + 1);
-    return index;
-};
-
-Promise.prototype._proxy = function (proxyable, arg) {
-    this._addCallbacks(undefined, undefined, arg, proxyable, null);
-};
-
-Promise.prototype._resolveCallback = function(value, shouldBind) {
-    if (((this._bitField & 117506048) !== 0)) return;
-    if (value === this)
-        return this._rejectCallback(makeSelfResolutionError(), false);
-    var maybePromise = tryConvertToPromise(value, this);
-    if (!(maybePromise instanceof Promise)) return this._fulfill(value);
-
-    if (shouldBind) this._propagateFrom(maybePromise, 2);
-
-    var promise = maybePromise._target();
-
-    if (promise === this) {
-        this._reject(makeSelfResolutionError());
-        return;
-    }
-
-    var bitField = promise._bitField;
-    if (((bitField & 50397184) === 0)) {
-        var len = this._length();
-        if (len > 0) promise._migrateCallback0(this);
-        for (var i = 1; i < len; ++i) {
-            promise._migrateCallbackAt(this, i);
-        }
-        this._setFollowing();
-        this._setLength(0);
-        this._setFollowee(promise);
-    } else if (((bitField & 33554432) !== 0)) {
-        this._fulfill(promise._value());
-    } else if (((bitField & 16777216) !== 0)) {
-        this._reject(promise._reason());
-    } else {
-        var reason = new CancellationError("late cancellation observer");
-        promise._attachExtraTrace(reason);
-        this._reject(reason);
-    }
-};
-
-Promise.prototype._rejectCallback =
-function(reason, synchronous, ignoreNonErrorWarnings) {
-    var trace = util.ensureErrorObject(reason);
-    var hasStack = trace === reason;
-    if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) {
-        var message = "a promise was rejected with a non-error: " +
-            util.classString(reason);
-        this._warn(message, true);
-    }
-    this._attachExtraTrace(trace, synchronous ? hasStack : false);
-    this._reject(reason);
-};
-
-Promise.prototype._resolveFromExecutor = function (executor) {
-    if (executor === INTERNAL) return;
-    var promise = this;
-    this._captureStackTrace();
-    this._pushContext();
-    var synchronous = true;
-    var r = this._execute(executor, function(value) {
-        promise._resolveCallback(value);
-    }, function (reason) {
-        promise._rejectCallback(reason, synchronous);
-    });
-    synchronous = false;
-    this._popContext();
-
-    if (r !== undefined) {
-        promise._rejectCallback(r, true);
-    }
-};
-
-Promise.prototype._settlePromiseFromHandler = function (
-    handler, receiver, value, promise
-) {
-    var bitField = promise._bitField;
-    if (((bitField & 65536) !== 0)) return;
-    promise._pushContext();
-    var x;
-    if (receiver === APPLY) {
-        if (!value || typeof value.length !== "number") {
-            x = errorObj;
-            x.e = new TypeError("cannot .spread() a non-array: " +
-                                    util.classString(value));
-        } else {
-            x = tryCatch(handler).apply(this._boundValue(), value);
-        }
-    } else {
-        x = tryCatch(handler).call(receiver, value);
-    }
-    var promiseCreated = promise._popContext();
-    bitField = promise._bitField;
-    if (((bitField & 65536) !== 0)) return;
-
-    if (x === NEXT_FILTER) {
-        promise._reject(value);
-    } else if (x === errorObj) {
-        promise._rejectCallback(x.e, false);
-    } else {
-        debug.checkForgottenReturns(x, promiseCreated, "",  promise, this);
-        promise._resolveCallback(x);
-    }
-};
-
-Promise.prototype._target = function() {
-    var ret = this;
-    while (ret._isFollowing()) ret = ret._followee();
-    return ret;
-};
-
-Promise.prototype._followee = function() {
-    return this._rejectionHandler0;
-};
-
-Promise.prototype._setFollowee = function(promise) {
-    this._rejectionHandler0 = promise;
-};
-
-Promise.prototype._settlePromise = function(promise, handler, receiver, value) {
-    var isPromise = promise instanceof Promise;
-    var bitField = this._bitField;
-    var asyncGuaranteed = ((bitField 

<TRUNCATED>


[32/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/amdefine/amdefine.js
----------------------------------------------------------------------
diff --git a/node_modules/amdefine/amdefine.js b/node_modules/amdefine/amdefine.js
deleted file mode 100644
index ca830ba..0000000
--- a/node_modules/amdefine/amdefine.js
+++ /dev/null
@@ -1,301 +0,0 @@
-/** vim: et:ts=4:sw=4:sts=4
- * @license amdefine 1.0.1 Copyright (c) 2011-2016, The Dojo Foundation All Rights Reserved.
- * Available via the MIT or new BSD license.
- * see: http://github.com/jrburke/amdefine for details
- */
-
-/*jslint node: true */
-/*global module, process */
-'use strict';
-
-/**
- * Creates a define for node.
- * @param {Object} module the "module" object that is defined by Node for the
- * current module.
- * @param {Function} [requireFn]. Node's require function for the current module.
- * It only needs to be passed in Node versions before 0.5, when module.require
- * did not exist.
- * @returns {Function} a define function that is usable for the current node
- * module.
- */
-function amdefine(module, requireFn) {
-    'use strict';
-    var defineCache = {},
-        loaderCache = {},
-        alreadyCalled = false,
-        path = require('path'),
-        makeRequire, stringRequire;
-
-    /**
-     * Trims the . and .. from an array of path segments.
-     * It will keep a leading path segment if a .. will become
-     * the first path segment, to help with module name lookups,
-     * which act like paths, but can be remapped. But the end result,
-     * all paths that use this function should look normalized.
-     * NOTE: this method MODIFIES the input array.
-     * @param {Array} ary the array of path segments.
-     */
-    function trimDots(ary) {
-        var i, part;
-        for (i = 0; ary[i]; i+= 1) {
-            part = ary[i];
-            if (part === '.') {
-                ary.splice(i, 1);
-                i -= 1;
-            } else if (part === '..') {
-                if (i === 1 && (ary[2] === '..' || ary[0] === '..')) {
-                    //End of the line. Keep at least one non-dot
-                    //path segment at the front so it can be mapped
-                    //correctly to disk. Otherwise, there is likely
-                    //no path mapping for a path starting with '..'.
-                    //This can still fail, but catches the most reasonable
-                    //uses of ..
-                    break;
-                } else if (i > 0) {
-                    ary.splice(i - 1, 2);
-                    i -= 2;
-                }
-            }
-        }
-    }
-
-    function normalize(name, baseName) {
-        var baseParts;
-
-        //Adjust any relative paths.
-        if (name && name.charAt(0) === '.') {
-            //If have a base name, try to normalize against it,
-            //otherwise, assume it is a top-level require that will
-            //be relative to baseUrl in the end.
-            if (baseName) {
-                baseParts = baseName.split('/');
-                baseParts = baseParts.slice(0, baseParts.length - 1);
-                baseParts = baseParts.concat(name.split('/'));
-                trimDots(baseParts);
-                name = baseParts.join('/');
-            }
-        }
-
-        return name;
-    }
-
-    /**
-     * Create the normalize() function passed to a loader plugin's
-     * normalize method.
-     */
-    function makeNormalize(relName) {
-        return function (name) {
-            return normalize(name, relName);
-        };
-    }
-
-    function makeLoad(id) {
-        function load(value) {
-            loaderCache[id] = value;
-        }
-
-        load.fromText = function (id, text) {
-            //This one is difficult because the text can/probably uses
-            //define, and any relative paths and requires should be relative
-            //to that id was it would be found on disk. But this would require
-            //bootstrapping a module/require fairly deeply from node core.
-            //Not sure how best to go about that yet.
-            throw new Error('amdefine does not implement load.fromText');
-        };
-
-        return load;
-    }
-
-    makeRequire = function (systemRequire, exports, module, relId) {
-        function amdRequire(deps, callback) {
-            if (typeof deps === 'string') {
-                //Synchronous, single module require('')
-                return stringRequire(systemRequire, exports, module, deps, relId);
-            } else {
-                //Array of dependencies with a callback.
-
-                //Convert the dependencies to modules.
-                deps = deps.map(function (depName) {
-                    return stringRequire(systemRequire, exports, module, depName, relId);
-                });
-
-                //Wait for next tick to call back the require call.
-                if (callback) {
-                    process.nextTick(function () {
-                        callback.apply(null, deps);
-                    });
-                }
-            }
-        }
-
-        amdRequire.toUrl = function (filePath) {
-            if (filePath.indexOf('.') === 0) {
-                return normalize(filePath, path.dirname(module.filename));
-            } else {
-                return filePath;
-            }
-        };
-
-        return amdRequire;
-    };
-
-    //Favor explicit value, passed in if the module wants to support Node 0.4.
-    requireFn = requireFn || function req() {
-        return module.require.apply(module, arguments);
-    };
-
-    function runFactory(id, deps, factory) {
-        var r, e, m, result;
-
-        if (id) {
-            e = loaderCache[id] = {};
-            m = {
-                id: id,
-                uri: __filename,
-                exports: e
-            };
-            r = makeRequire(requireFn, e, m, id);
-        } else {
-            //Only support one define call per file
-            if (alreadyCalled) {
-                throw new Error('amdefine with no module ID cannot be called more than once per file.');
-            }
-            alreadyCalled = true;
-
-            //Use the real variables from node
-            //Use module.exports for exports, since
-            //the exports in here is amdefine exports.
-            e = module.exports;
-            m = module;
-            r = makeRequire(requireFn, e, m, module.id);
-        }
-
-        //If there are dependencies, they are strings, so need
-        //to convert them to dependency values.
-        if (deps) {
-            deps = deps.map(function (depName) {
-                return r(depName);
-            });
-        }
-
-        //Call the factory with the right dependencies.
-        if (typeof factory === 'function') {
-            result = factory.apply(m.exports, deps);
-        } else {
-            result = factory;
-        }
-
-        if (result !== undefined) {
-            m.exports = result;
-            if (id) {
-                loaderCache[id] = m.exports;
-            }
-        }
-    }
-
-    stringRequire = function (systemRequire, exports, module, id, relId) {
-        //Split the ID by a ! so that
-        var index = id.indexOf('!'),
-            originalId = id,
-            prefix, plugin;
-
-        if (index === -1) {
-            id = normalize(id, relId);
-
-            //Straight module lookup. If it is one of the special dependencies,
-            //deal with it, otherwise, delegate to node.
-            if (id === 'require') {
-                return makeRequire(systemRequire, exports, module, relId);
-            } else if (id === 'exports') {
-                return exports;
-            } else if (id === 'module') {
-                return module;
-            } else if (loaderCache.hasOwnProperty(id)) {
-                return loaderCache[id];
-            } else if (defineCache[id]) {
-                runFactory.apply(null, defineCache[id]);
-                return loaderCache[id];
-            } else {
-                if(systemRequire) {
-                    return systemRequire(originalId);
-                } else {
-                    throw new Error('No module with ID: ' + id);
-                }
-            }
-        } else {
-            //There is a plugin in play.
-            prefix = id.substring(0, index);
-            id = id.substring(index + 1, id.length);
-
-            plugin = stringRequire(systemRequire, exports, module, prefix, relId);
-
-            if (plugin.normalize) {
-                id = plugin.normalize(id, makeNormalize(relId));
-            } else {
-                //Normalize the ID normally.
-                id = normalize(id, relId);
-            }
-
-            if (loaderCache[id]) {
-                return loaderCache[id];
-            } else {
-                plugin.load(id, makeRequire(systemRequire, exports, module, relId), makeLoad(id), {});
-
-                return loaderCache[id];
-            }
-        }
-    };
-
-    //Create a define function specific to the module asking for amdefine.
-    function define(id, deps, factory) {
-        if (Array.isArray(id)) {
-            factory = deps;
-            deps = id;
-            id = undefined;
-        } else if (typeof id !== 'string') {
-            factory = id;
-            id = deps = undefined;
-        }
-
-        if (deps && !Array.isArray(deps)) {
-            factory = deps;
-            deps = undefined;
-        }
-
-        if (!deps) {
-            deps = ['require', 'exports', 'module'];
-        }
-
-        //Set up properties for this module. If an ID, then use
-        //internal cache. If no ID, then use the external variables
-        //for this node module.
-        if (id) {
-            //Put the module in deep freeze until there is a
-            //require call for it.
-            defineCache[id] = [id, deps, factory];
-        } else {
-            runFactory(id, deps, factory);
-        }
-    }
-
-    //define.require, which has access to all the values in the
-    //cache. Useful for AMD modules that all have IDs in the file,
-    //but need to finally export a value to node based on one of those
-    //IDs.
-    define.require = function (id) {
-        if (loaderCache[id]) {
-            return loaderCache[id];
-        }
-
-        if (defineCache[id]) {
-            runFactory.apply(null, defineCache[id]);
-            return loaderCache[id];
-        }
-    };
-
-    define.amd = {};
-
-    return define;
-}
-
-module.exports = amdefine;

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/amdefine/intercept.js
----------------------------------------------------------------------
diff --git a/node_modules/amdefine/intercept.js b/node_modules/amdefine/intercept.js
deleted file mode 100644
index 771a983..0000000
--- a/node_modules/amdefine/intercept.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/*jshint node: true */
-var inserted,
-    Module = require('module'),
-    fs = require('fs'),
-    existingExtFn = Module._extensions['.js'],
-    amdefineRegExp = /amdefine\.js/;
-
-inserted  = "if (typeof define !== 'function') {var define = require('amdefine')(module)}";
-
-//From the node/lib/module.js source:
-function stripBOM(content) {
-    // Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)
-    // because the buffer-to-string conversion in `fs.readFileSync()`
-    // translates it to FEFF, the UTF-16 BOM.
-    if (content.charCodeAt(0) === 0xFEFF) {
-        content = content.slice(1);
-    }
-    return content;
-}
-
-//Also adapted from the node/lib/module.js source:
-function intercept(module, filename) {
-    var content = stripBOM(fs.readFileSync(filename, 'utf8'));
-
-    if (!amdefineRegExp.test(module.id)) {
-        content = inserted + content;
-    }
-
-    module._compile(content, filename);
-}
-
-intercept._id = 'amdefine/intercept';
-
-if (!existingExtFn._id || existingExtFn._id !== intercept._id) {
-    Module._extensions['.js'] = intercept;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/amdefine/package.json
----------------------------------------------------------------------
diff --git a/node_modules/amdefine/package.json b/node_modules/amdefine/package.json
deleted file mode 100644
index ad6736a..0000000
--- a/node_modules/amdefine/package.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "amdefine@>=0.0.4",
-        "scope": null,
-        "escapedName": "amdefine",
-        "name": "amdefine",
-        "rawSpec": ">=0.0.4",
-        "spec": ">=0.0.4",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/source-map"
-    ]
-  ],
-  "_from": "amdefine@>=0.0.4",
-  "_id": "amdefine@1.0.1",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/amdefine",
-  "_nodeVersion": "6.7.0",
-  "_npmOperationalInternal": {
-    "host": "packages-18-east.internal.npmjs.com",
-    "tmp": "tmp/amdefine-1.0.1.tgz_1478062849665_0.19916908955201507"
-  },
-  "_npmUser": {
-    "name": "jrburke",
-    "email": "jrburke@gmail.com"
-  },
-  "_npmVersion": "3.10.3",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "amdefine@>=0.0.4",
-    "scope": null,
-    "escapedName": "amdefine",
-    "name": "amdefine",
-    "rawSpec": ">=0.0.4",
-    "spec": ">=0.0.4",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/source-map",
-    "/uglify-js/source-map"
-  ],
-  "_resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
-  "_shasum": "4a5282ac164729e93619bcfd3ad151f817ce91f5",
-  "_shrinkwrap": null,
-  "_spec": "amdefine@>=0.0.4",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/source-map",
-  "author": {
-    "name": "James Burke",
-    "email": "jrburke@gmail.com",
-    "url": "http://github.com/jrburke"
-  },
-  "bugs": {
-    "url": "https://github.com/jrburke/amdefine/issues"
-  },
-  "dependencies": {},
-  "description": "Provide AMD's define() API for declaring modules in the AMD format",
-  "devDependencies": {},
-  "directories": {},
-  "dist": {
-    "shasum": "4a5282ac164729e93619bcfd3ad151f817ce91f5",
-    "tarball": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz"
-  },
-  "engines": {
-    "node": ">=0.4.2"
-  },
-  "gitHead": "e59edc9da24404ec7937098e3992f8fb0e260be7",
-  "homepage": "http://github.com/jrburke/amdefine",
-  "license": "BSD-3-Clause OR MIT",
-  "main": "./amdefine.js",
-  "maintainers": [
-    {
-      "name": "jrburke",
-      "email": "jrburke@gmail.com"
-    }
-  ],
-  "name": "amdefine",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/jrburke/amdefine.git"
-  },
-  "scripts": {},
-  "version": "1.0.1"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ansi-regex/index.js
----------------------------------------------------------------------
diff --git a/node_modules/ansi-regex/index.js b/node_modules/ansi-regex/index.js
deleted file mode 100644
index b9574ed..0000000
--- a/node_modules/ansi-regex/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-'use strict';
-module.exports = function () {
-	return /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g;
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ansi-regex/license
----------------------------------------------------------------------
diff --git a/node_modules/ansi-regex/license b/node_modules/ansi-regex/license
deleted file mode 100644
index 654d0bf..0000000
--- a/node_modules/ansi-regex/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <si...@gmail.com> (sindresorhus.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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ansi-regex/package.json
----------------------------------------------------------------------
diff --git a/node_modules/ansi-regex/package.json b/node_modules/ansi-regex/package.json
deleted file mode 100644
index 0fc3457..0000000
--- a/node_modules/ansi-regex/package.json
+++ /dev/null
@@ -1,133 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "ansi-regex@^2.0.0",
-        "scope": null,
-        "escapedName": "ansi-regex",
-        "name": "ansi-regex",
-        "rawSpec": "^2.0.0",
-        "spec": ">=2.0.0 <3.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/has-ansi"
-    ]
-  ],
-  "_from": "ansi-regex@>=2.0.0 <3.0.0",
-  "_id": "ansi-regex@2.1.1",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/ansi-regex",
-  "_nodeVersion": "0.10.32",
-  "_npmOperationalInternal": {
-    "host": "packages-18-east.internal.npmjs.com",
-    "tmp": "tmp/ansi-regex-2.1.1.tgz_1484363378013_0.4482989883981645"
-  },
-  "_npmUser": {
-    "name": "qix",
-    "email": "i.am.qix@gmail.com"
-  },
-  "_npmVersion": "2.14.2",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "ansi-regex@^2.0.0",
-    "scope": null,
-    "escapedName": "ansi-regex",
-    "name": "ansi-regex",
-    "rawSpec": "^2.0.0",
-    "spec": ">=2.0.0 <3.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/has-ansi",
-    "/strip-ansi"
-  ],
-  "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
-  "_shasum": "c3b33ab5ee360d86e0e628f0468ae7ef27d654df",
-  "_shrinkwrap": null,
-  "_spec": "ansi-regex@^2.0.0",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/has-ansi",
-  "author": {
-    "name": "Sindre Sorhus",
-    "email": "sindresorhus@gmail.com",
-    "url": "sindresorhus.com"
-  },
-  "bugs": {
-    "url": "https://github.com/chalk/ansi-regex/issues"
-  },
-  "dependencies": {},
-  "description": "Regular expression for matching ANSI escape codes",
-  "devDependencies": {
-    "ava": "0.17.0",
-    "xo": "0.16.0"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "c3b33ab5ee360d86e0e628f0468ae7ef27d654df",
-    "tarball": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
-  },
-  "engines": {
-    "node": ">=0.10.0"
-  },
-  "files": [
-    "index.js"
-  ],
-  "gitHead": "7c908e7b4eb6cd82bfe1295e33fdf6d166c7ed85",
-  "homepage": "https://github.com/chalk/ansi-regex#readme",
-  "keywords": [
-    "ansi",
-    "styles",
-    "color",
-    "colour",
-    "colors",
-    "terminal",
-    "console",
-    "cli",
-    "string",
-    "tty",
-    "escape",
-    "formatting",
-    "rgb",
-    "256",
-    "shell",
-    "xterm",
-    "command-line",
-    "text",
-    "regex",
-    "regexp",
-    "re",
-    "match",
-    "test",
-    "find",
-    "pattern"
-  ],
-  "license": "MIT",
-  "maintainers": [
-    {
-      "name": "qix",
-      "email": "i.am.qix@gmail.com"
-    },
-    {
-      "name": "sindresorhus",
-      "email": "sindresorhus@gmail.com"
-    }
-  ],
-  "name": "ansi-regex",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/chalk/ansi-regex.git"
-  },
-  "scripts": {
-    "test": "xo && ava --verbose",
-    "view-supported": "node fixtures/view-codes.js"
-  },
-  "version": "2.1.1",
-  "xo": {
-    "rules": {
-      "guard-for-in": 0,
-      "no-loop-func": 0
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ansi-regex/readme.md
----------------------------------------------------------------------
diff --git a/node_modules/ansi-regex/readme.md b/node_modules/ansi-regex/readme.md
deleted file mode 100644
index 6a928ed..0000000
--- a/node_modules/ansi-regex/readme.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# ansi-regex [![Build Status](https://travis-ci.org/chalk/ansi-regex.svg?branch=master)](https://travis-ci.org/chalk/ansi-regex)
-
-> Regular expression for matching [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code)
-
-
-## Install
-
-```
-$ npm install --save ansi-regex
-```
-
-
-## Usage
-
-```js
-const ansiRegex = require('ansi-regex');
-
-ansiRegex().test('\u001b[4mcake\u001b[0m');
-//=> true
-
-ansiRegex().test('cake');
-//=> false
-
-'\u001b[4mcake\u001b[0m'.match(ansiRegex());
-//=> ['\u001b[4m', '\u001b[0m']
-```
-
-## FAQ
-
-### Why do you test for codes not in the ECMA 48 standard?
-
-Some of the codes we run as a test are codes that we acquired finding various lists of non-standard or manufacturer specific codes. If I recall correctly, we test for both standard and non-standard codes, as most of them follow the same or similar format and can be safely matched in strings without the risk of removing actual string content. There are a few non-standard control codes that do not follow the traditional format (i.e. they end in numbers) thus forcing us to exclude them from the test because we cannot reliably match them.
-
-On the historical side, those ECMA standards were established in the early 90's whereas the VT100, for example, was designed in the mid/late 70's. At that point in time, control codes were still pretty ungoverned and engineers used them for a multitude of things, namely to activate hardware ports that may have been proprietary. Somewhere else you see a similar 'anarchy' of codes is in the x86 architecture for processors; there are a ton of "interrupts" that can mean different things on certain brands of processors, most of which have been phased out.
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ansi-styles/index.js
----------------------------------------------------------------------
diff --git a/node_modules/ansi-styles/index.js b/node_modules/ansi-styles/index.js
deleted file mode 100644
index 7894527..0000000
--- a/node_modules/ansi-styles/index.js
+++ /dev/null
@@ -1,65 +0,0 @@
-'use strict';
-
-function assembleStyles () {
-	var styles = {
-		modifiers: {
-			reset: [0, 0],
-			bold: [1, 22], // 21 isn't widely supported and 22 does the same thing
-			dim: [2, 22],
-			italic: [3, 23],
-			underline: [4, 24],
-			inverse: [7, 27],
-			hidden: [8, 28],
-			strikethrough: [9, 29]
-		},
-		colors: {
-			black: [30, 39],
-			red: [31, 39],
-			green: [32, 39],
-			yellow: [33, 39],
-			blue: [34, 39],
-			magenta: [35, 39],
-			cyan: [36, 39],
-			white: [37, 39],
-			gray: [90, 39]
-		},
-		bgColors: {
-			bgBlack: [40, 49],
-			bgRed: [41, 49],
-			bgGreen: [42, 49],
-			bgYellow: [43, 49],
-			bgBlue: [44, 49],
-			bgMagenta: [45, 49],
-			bgCyan: [46, 49],
-			bgWhite: [47, 49]
-		}
-	};
-
-	// fix humans
-	styles.colors.grey = styles.colors.gray;
-
-	Object.keys(styles).forEach(function (groupName) {
-		var group = styles[groupName];
-
-		Object.keys(group).forEach(function (styleName) {
-			var style = group[styleName];
-
-			styles[styleName] = group[styleName] = {
-				open: '\u001b[' + style[0] + 'm',
-				close: '\u001b[' + style[1] + 'm'
-			};
-		});
-
-		Object.defineProperty(styles, groupName, {
-			value: group,
-			enumerable: false
-		});
-	});
-
-	return styles;
-}
-
-Object.defineProperty(module, 'exports', {
-	enumerable: true,
-	get: assembleStyles
-});

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ansi-styles/license
----------------------------------------------------------------------
diff --git a/node_modules/ansi-styles/license b/node_modules/ansi-styles/license
deleted file mode 100644
index 654d0bf..0000000
--- a/node_modules/ansi-styles/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <si...@gmail.com> (sindresorhus.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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ansi-styles/package.json
----------------------------------------------------------------------
diff --git a/node_modules/ansi-styles/package.json b/node_modules/ansi-styles/package.json
deleted file mode 100644
index 6514057..0000000
--- a/node_modules/ansi-styles/package.json
+++ /dev/null
@@ -1,115 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "ansi-styles@^2.2.1",
-        "scope": null,
-        "escapedName": "ansi-styles",
-        "name": "ansi-styles",
-        "rawSpec": "^2.2.1",
-        "spec": ">=2.2.1 <3.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/chalk"
-    ]
-  ],
-  "_from": "ansi-styles@>=2.2.1 <3.0.0",
-  "_id": "ansi-styles@2.2.1",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/ansi-styles",
-  "_nodeVersion": "4.3.0",
-  "_npmOperationalInternal": {
-    "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/ansi-styles-2.2.1.tgz_1459197317833_0.9694824463222176"
-  },
-  "_npmUser": {
-    "name": "sindresorhus",
-    "email": "sindresorhus@gmail.com"
-  },
-  "_npmVersion": "3.8.3",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "ansi-styles@^2.2.1",
-    "scope": null,
-    "escapedName": "ansi-styles",
-    "name": "ansi-styles",
-    "rawSpec": "^2.2.1",
-    "spec": ">=2.2.1 <3.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/chalk"
-  ],
-  "_resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
-  "_shasum": "b432dd3358b634cf75e1e4664368240533c1ddbe",
-  "_shrinkwrap": null,
-  "_spec": "ansi-styles@^2.2.1",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/chalk",
-  "author": {
-    "name": "Sindre Sorhus",
-    "email": "sindresorhus@gmail.com",
-    "url": "sindresorhus.com"
-  },
-  "bugs": {
-    "url": "https://github.com/chalk/ansi-styles/issues"
-  },
-  "dependencies": {},
-  "description": "ANSI escape codes for styling strings in the terminal",
-  "devDependencies": {
-    "mocha": "*"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "b432dd3358b634cf75e1e4664368240533c1ddbe",
-    "tarball": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz"
-  },
-  "engines": {
-    "node": ">=0.10.0"
-  },
-  "files": [
-    "index.js"
-  ],
-  "gitHead": "95c59b23be760108b6530ca1c89477c21b258032",
-  "homepage": "https://github.com/chalk/ansi-styles#readme",
-  "keywords": [
-    "ansi",
-    "styles",
-    "color",
-    "colour",
-    "colors",
-    "terminal",
-    "console",
-    "cli",
-    "string",
-    "tty",
-    "escape",
-    "formatting",
-    "rgb",
-    "256",
-    "shell",
-    "xterm",
-    "log",
-    "logging",
-    "command-line",
-    "text"
-  ],
-  "license": "MIT",
-  "maintainers": [
-    {
-      "name": "sindresorhus",
-      "email": "sindresorhus@gmail.com"
-    }
-  ],
-  "name": "ansi-styles",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/chalk/ansi-styles.git"
-  },
-  "scripts": {
-    "test": "mocha"
-  },
-  "version": "2.2.1"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ansi-styles/readme.md
----------------------------------------------------------------------
diff --git a/node_modules/ansi-styles/readme.md b/node_modules/ansi-styles/readme.md
deleted file mode 100644
index 3f933f6..0000000
--- a/node_modules/ansi-styles/readme.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# ansi-styles [![Build Status](https://travis-ci.org/chalk/ansi-styles.svg?branch=master)](https://travis-ci.org/chalk/ansi-styles)
-
-> [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) for styling strings in the terminal
-
-You probably want the higher-level [chalk](https://github.com/chalk/chalk) module for styling your strings.
-
-![](screenshot.png)
-
-
-## Install
-
-```
-$ npm install --save ansi-styles
-```
-
-
-## Usage
-
-```js
-var ansi = require('ansi-styles');
-
-console.log(ansi.green.open + 'Hello world!' + ansi.green.close);
-```
-
-
-## API
-
-Each style has an `open` and `close` property.
-
-
-## Styles
-
-### Modifiers
-
-- `reset`
-- `bold`
-- `dim`
-- `italic` *(not widely supported)*
-- `underline`
-- `inverse`
-- `hidden`
-- `strikethrough` *(not widely supported)*
-
-### Colors
-
-- `black`
-- `red`
-- `green`
-- `yellow`
-- `blue`
-- `magenta`
-- `cyan`
-- `white`
-- `gray`
-
-### Background colors
-
-- `bgBlack`
-- `bgRed`
-- `bgGreen`
-- `bgYellow`
-- `bgBlue`
-- `bgMagenta`
-- `bgCyan`
-- `bgWhite`
-
-
-## Advanced usage
-
-By default you get a map of styles, but the styles are also available as groups. They are non-enumerable so they don't show up unless you access them explicitly. This makes it easier to expose only a subset in a higher-level module.
-
-- `ansi.modifiers`
-- `ansi.colors`
-- `ansi.bgColors`
-
-
-###### Example
-
-```js
-console.log(ansi.colors.green.open);
-```
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/anymatch/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/anymatch/LICENSE b/node_modules/anymatch/LICENSE
deleted file mode 100644
index bc42470..0000000
--- a/node_modules/anymatch/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-The ISC License
-
-Copyright (c) 2014 Elan Shanker
-
-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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/anymatch/README.md
----------------------------------------------------------------------
diff --git a/node_modules/anymatch/README.md b/node_modules/anymatch/README.md
deleted file mode 100644
index 0a63292..0000000
--- a/node_modules/anymatch/README.md
+++ /dev/null
@@ -1,91 +0,0 @@
-anymatch [![Build Status](https://travis-ci.org/es128/anymatch.svg?branch=master)](https://travis-ci.org/es128/anymatch) [![Coverage Status](https://img.shields.io/coveralls/es128/anymatch.svg?branch=master)](https://coveralls.io/r/es128/anymatch?branch=master)
-======
-Javascript module to match a string against a regular expression, glob, string,
-or function that takes the string as an argument and returns a truthy or falsy
-value. The matcher can also be an array of any or all of these. Useful for
-allowing a very flexible user-defined config to define things like file paths.
-
-[![NPM](https://nodei.co/npm/anymatch.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/anymatch/)
-[![NPM](https://nodei.co/npm-dl/anymatch.png?height=3&months=9)](https://nodei.co/npm-dl/anymatch/)
-
-Usage
------
-```sh
-npm install anymatch --save
-```
-
-#### anymatch (matchers, testString, [returnIndex], [startIndex], [endIndex])
-* __matchers__: (_Array|String|RegExp|Function_)
-String to be directly matched, string with glob patterns, regular expression
-test, function that takes the testString as an argument and returns a truthy
-value if it should be matched, or an array of any number and mix of these types.
-* __testString__: (_String|Array_) The string to test against the matchers. If
-passed as an array, the first element of the array will be used as the
-`testString` for non-function matchers, while the entire array will be applied
-as the arguments for function matchers.
-* __returnIndex__: (_Boolean [optional]_) If true, return the array index of
-the first matcher that that testString matched, or -1 if no match, instead of a
-boolean result.
-* __startIndex, endIndex__: (_Integer [optional]_) Can be used to define a
-subset out of the array of provided matchers to test against. Can be useful
-with bound matcher functions (see below). When used with `returnIndex = true`
-preserves original indexing. Behaves the same as `Array.prototype.slice` (i.e.
-includes array members up to, but not including endIndex).
-
-```js
-var anymatch = require('anymatch');
-
-var matchers = [
-	'path/to/file.js',
-	'path/anyjs/**/*.js',
-	/foo.js$/,
-	function (string) {
-		return string.indexOf('bar') !== -1 && string.length > 10
-	}
-];
-
-anymatch(matchers, 'path/to/file.js'); // true
-anymatch(matchers, 'path/anyjs/baz.js'); // true
-anymatch(matchers, 'path/to/foo.js'); // true
-anymatch(matchers, 'path/to/bar.js'); // true
-anymatch(matchers, 'bar.js'); // false
-
-// returnIndex = true
-anymatch(matchers, 'foo.js', true); // 2
-anymatch(matchers, 'path/anyjs/foo.js', true); // 1
-
-// skip matchers
-anymatch(matchers, 'path/to/file.js', false, 1); // false
-anymatch(matchers, 'path/anyjs/foo.js', true, 2, 3); // 2
-anymatch(matchers, 'path/to/bar.js', true, 0, 3); // -1
-```
-
-#### anymatch (matchers)
-You can also pass in only your matcher(s) to get a curried function that has
-already been bound to the provided matching criteria. This can be used as an
-`Array.prototype.filter` callback.
-
-```js
-var matcher = anymatch(matchers);
-
-matcher('path/to/file.js'); // true
-matcher('path/anyjs/baz.js', true); // 1
-matcher('path/anyjs/baz.js', true, 2); // -1
-
-['foo.js', 'bar.js'].filter(matcher); // ['foo.js']
-```
-
-Change Log
-----------
-[See release notes page on GitHub](https://github.com/es128/anymatch/releases)
-
-NOTE: As of v1.2.0, anymatch uses [micromatch](https://github.com/jonschlinkert/micromatch)
-for glob pattern matching. The glob matching behavior should be functionally
-equivalent to the commonly used [minimatch](https://github.com/isaacs/minimatch)
-library (aside from some fixed bugs and greater performance), so a major
-version bump wasn't merited. Issues with glob pattern matching should be
-reported directly to the [micromatch issue tracker](https://github.com/jonschlinkert/micromatch/issues).
-
-License
--------
-[ISC](https://raw.github.com/es128/anymatch/master/LICENSE)

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/anymatch/index.js
----------------------------------------------------------------------
diff --git a/node_modules/anymatch/index.js b/node_modules/anymatch/index.js
deleted file mode 100644
index fd70ba0..0000000
--- a/node_modules/anymatch/index.js
+++ /dev/null
@@ -1,64 +0,0 @@
-'use strict';
-
-var arrify = require('arrify');
-var micromatch = require('micromatch');
-var path = require('path');
-
-var anymatch = function(criteria, value, returnIndex, startIndex, endIndex) {
-  criteria = arrify(criteria);
-  value = arrify(value);
-  if (arguments.length === 1) {
-    return anymatch.bind(null, criteria.map(function(criterion) {
-      return typeof criterion === 'string' && criterion[0] !== '!' ?
-        micromatch.matcher(criterion) : criterion;
-    }));
-  }
-  startIndex = startIndex || 0;
-  var string = value[0];
-  var altString;
-  var matched = false;
-  var matchIndex = -1;
-  function testCriteria (criterion, index) {
-    var result;
-    switch (toString.call(criterion)) {
-    case '[object String]':
-      result = string === criterion || altString && altString === criterion;
-      result = result || micromatch.isMatch(string, criterion);
-      break;
-    case '[object RegExp]':
-      result = criterion.test(string) || altString && criterion.test(altString);
-      break;
-    case '[object Function]':
-      result = criterion.apply(null, value);
-      break;
-    default:
-      result = false;
-    }
-    if (result) {
-      matchIndex = index + startIndex;
-    }
-    return result;
-  }
-  var crit = criteria;
-  var negGlobs = crit.reduce(function(arr, criterion, index) {
-    if (typeof criterion === 'string' && criterion[0] === '!') {
-      if (crit === criteria) {
-        // make a copy before modifying
-        crit = crit.slice();
-      }
-      crit[index] = null;
-      arr.push(criterion.substr(1));
-    }
-    return arr;
-  }, []);
-  if (!negGlobs.length || !micromatch.any(string, negGlobs)) {
-    if (path.sep === '\\' && typeof string === 'string') {
-      altString = string.split('\\').join('/');
-      altString = altString === string ? null : altString;
-    }
-    matched = crit.slice(startIndex, endIndex).some(testCriteria);
-  }
-  return returnIndex === true ? matchIndex : matched;
-};
-
-module.exports = anymatch;

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/anymatch/package.json
----------------------------------------------------------------------
diff --git a/node_modules/anymatch/package.json b/node_modules/anymatch/package.json
deleted file mode 100644
index 7ddb3d7..0000000
--- a/node_modules/anymatch/package.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "anymatch@^1.3.0",
-        "scope": null,
-        "escapedName": "anymatch",
-        "name": "anymatch",
-        "rawSpec": "^1.3.0",
-        "spec": ">=1.3.0 <2.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/chokidar"
-    ]
-  ],
-  "_from": "anymatch@>=1.3.0 <2.0.0",
-  "_id": "anymatch@1.3.0",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/anymatch",
-  "_nodeVersion": "1.6.2",
-  "_npmUser": {
-    "name": "es128",
-    "email": "elan.shanker+npm@gmail.com"
-  },
-  "_npmVersion": "2.7.3",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "anymatch@^1.3.0",
-    "scope": null,
-    "escapedName": "anymatch",
-    "name": "anymatch",
-    "rawSpec": "^1.3.0",
-    "spec": ">=1.3.0 <2.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/chokidar"
-  ],
-  "_resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz",
-  "_shasum": "a3e52fa39168c825ff57b0248126ce5a8ff95507",
-  "_shrinkwrap": null,
-  "_spec": "anymatch@^1.3.0",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/chokidar",
-  "author": {
-    "name": "Elan Shanker",
-    "url": "http://github.com/es128"
-  },
-  "bugs": {
-    "url": "https://github.com/es128/anymatch/issues"
-  },
-  "dependencies": {
-    "arrify": "^1.0.0",
-    "micromatch": "^2.1.5"
-  },
-  "description": "Matches strings against configurable strings, globs, regular expressions, and/or functions",
-  "devDependencies": {
-    "coveralls": "^2.11.2",
-    "istanbul": "^0.3.13",
-    "mocha": "^2.2.4"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "a3e52fa39168c825ff57b0248126ce5a8ff95507",
-    "tarball": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz"
-  },
-  "files": [
-    "index.js"
-  ],
-  "gitHead": "253d2ad42f644ed18557f561312a7f8426daca84",
-  "homepage": "https://github.com/es128/anymatch",
-  "keywords": [
-    "match",
-    "any",
-    "string",
-    "file",
-    "fs",
-    "list",
-    "glob",
-    "regex",
-    "regexp",
-    "regular",
-    "expression",
-    "function"
-  ],
-  "license": "ISC",
-  "maintainers": [
-    {
-      "name": "es128",
-      "email": "elan.shanker+npm@gmail.com"
-    }
-  ],
-  "name": "anymatch",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/es128/anymatch.git"
-  },
-  "scripts": {
-    "test": "istanbul cover _mocha && cat ./coverage/lcov.info | coveralls"
-  },
-  "version": "1.3.0"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/archy/.travis.yml
----------------------------------------------------------------------
diff --git a/node_modules/archy/.travis.yml b/node_modules/archy/.travis.yml
deleted file mode 100644
index 895dbd3..0000000
--- a/node_modules/archy/.travis.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-language: node_js
-node_js:
-  - 0.6
-  - 0.8

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/archy/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/archy/LICENSE b/node_modules/archy/LICENSE
deleted file mode 100644
index ee27ba4..0000000
--- a/node_modules/archy/LICENSE
+++ /dev/null
@@ -1,18 +0,0 @@
-This software is released under the MIT license:
-
-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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/archy/examples/beep.js
----------------------------------------------------------------------
diff --git a/node_modules/archy/examples/beep.js b/node_modules/archy/examples/beep.js
deleted file mode 100644
index 9c07047..0000000
--- a/node_modules/archy/examples/beep.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var archy = require('../');
-var s = archy({
-  label : 'beep',
-  nodes : [
-    'ity',
-    {
-      label : 'boop',
-      nodes : [
-        {
-          label : 'o_O',
-          nodes : [
-            {
-              label : 'oh',
-              nodes : [ 'hello', 'puny' ]
-            },
-            'human'
-          ]
-        },
-        'party\ntime!'
-      ]
-    }
-  ]
-});
-console.log(s);

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/archy/examples/multi_line.js
----------------------------------------------------------------------
diff --git a/node_modules/archy/examples/multi_line.js b/node_modules/archy/examples/multi_line.js
deleted file mode 100644
index 8afdfad..0000000
--- a/node_modules/archy/examples/multi_line.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var archy = require('../');
-
-var s = archy({
-  label : 'beep\none\ntwo',
-  nodes : [
-    'ity',
-    {
-      label : 'boop',
-      nodes : [
-        {
-          label : 'o_O\nwheee',
-          nodes : [
-            {
-              label : 'oh',
-              nodes : [ 'hello', 'puny\nmeat' ]
-            },
-            'creature'
-          ]
-        },
-        'party\ntime!'
-      ]
-    }
-  ]
-});
-console.log(s);

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/archy/index.js
----------------------------------------------------------------------
diff --git a/node_modules/archy/index.js b/node_modules/archy/index.js
deleted file mode 100644
index 869d64e..0000000
--- a/node_modules/archy/index.js
+++ /dev/null
@@ -1,35 +0,0 @@
-module.exports = function archy (obj, prefix, opts) {
-    if (prefix === undefined) prefix = '';
-    if (!opts) opts = {};
-    var chr = function (s) {
-        var chars = {
-            '│' : '|',
-            '└' : '`',
-            '├' : '+',
-            '─' : '-',
-            '┬' : '-'
-        };
-        return opts.unicode === false ? chars[s] : s;
-    };
-    
-    if (typeof obj === 'string') obj = { label : obj };
-    
-    var nodes = obj.nodes || [];
-    var lines = (obj.label || '').split('\n');
-    var splitter = '\n' + prefix + (nodes.length ? chr('│') : ' ') + ' ';
-    
-    return prefix
-        + lines.join(splitter) + '\n'
-        + nodes.map(function (node, ix) {
-            var last = ix === nodes.length - 1;
-            var more = node.nodes && node.nodes.length;
-            var prefix_ = prefix + (last ? ' ' : chr('│')) + ' ';
-            
-            return prefix
-                + (last ? chr('└') : chr('├')) + chr('─')
-                + (more ? chr('┬') : chr('─')) + ' '
-                + archy(node, prefix_, opts).slice(prefix.length + 2)
-            ;
-        }).join('')
-    ;
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/archy/package.json
----------------------------------------------------------------------
diff --git a/node_modules/archy/package.json b/node_modules/archy/package.json
deleted file mode 100644
index 3720d69..0000000
--- a/node_modules/archy/package.json
+++ /dev/null
@@ -1,115 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "archy@^1.0.0",
-        "scope": null,
-        "escapedName": "archy",
-        "name": "archy",
-        "rawSpec": "^1.0.0",
-        "spec": ">=1.0.0 <2.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/hexo"
-    ]
-  ],
-  "_from": "archy@>=1.0.0 <2.0.0",
-  "_id": "archy@1.0.0",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/archy",
-  "_npmUser": {
-    "name": "substack",
-    "email": "mail@substack.net"
-  },
-  "_npmVersion": "1.4.25",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "archy@^1.0.0",
-    "scope": null,
-    "escapedName": "archy",
-    "name": "archy",
-    "rawSpec": "^1.0.0",
-    "spec": ">=1.0.0 <2.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/hexo"
-  ],
-  "_resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
-  "_shasum": "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40",
-  "_shrinkwrap": null,
-  "_spec": "archy@^1.0.0",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/hexo",
-  "author": {
-    "name": "James Halliday",
-    "email": "mail@substack.net",
-    "url": "http://substack.net"
-  },
-  "bugs": {
-    "url": "https://github.com/substack/node-archy/issues"
-  },
-  "dependencies": {},
-  "description": "render nested hierarchies `npm ls` style with unicode pipes",
-  "devDependencies": {
-    "tap": "~0.3.3",
-    "tape": "~0.1.1"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40",
-    "tarball": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz"
-  },
-  "gitHead": "30223c16191e877bf027b15b12daf077b9b55b84",
-  "homepage": "https://github.com/substack/node-archy",
-  "keywords": [
-    "hierarchy",
-    "npm ls",
-    "unicode",
-    "pretty",
-    "print"
-  ],
-  "license": "MIT",
-  "main": "index.js",
-  "maintainers": [
-    {
-      "name": "substack",
-      "email": "mail@substack.net"
-    }
-  ],
-  "name": "archy",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+ssh://git@github.com/substack/node-archy.git"
-  },
-  "scripts": {
-    "test": "tap test"
-  },
-  "testling": {
-    "files": "test/*.js",
-    "browsers": {
-      "iexplore": [
-        "6.0",
-        "7.0",
-        "8.0",
-        "9.0"
-      ],
-      "chrome": [
-        "20.0"
-      ],
-      "firefox": [
-        "10.0",
-        "15.0"
-      ],
-      "safari": [
-        "5.1"
-      ],
-      "opera": [
-        "12.0"
-      ]
-    }
-  },
-  "version": "1.0.0"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/archy/readme.markdown
----------------------------------------------------------------------
diff --git a/node_modules/archy/readme.markdown b/node_modules/archy/readme.markdown
deleted file mode 100644
index ef7a5cf..0000000
--- a/node_modules/archy/readme.markdown
+++ /dev/null
@@ -1,88 +0,0 @@
-# archy
-
-Render nested hierarchies `npm ls` style with unicode pipes.
-
-[![browser support](http://ci.testling.com/substack/node-archy.png)](http://ci.testling.com/substack/node-archy)
-
-[![build status](https://secure.travis-ci.org/substack/node-archy.png)](http://travis-ci.org/substack/node-archy)
-
-# example
-
-``` js
-var archy = require('archy');
-var s = archy({
-  label : 'beep',
-  nodes : [
-    'ity',
-    {
-      label : 'boop',
-      nodes : [
-        {
-          label : 'o_O',
-          nodes : [
-            {
-              label : 'oh',
-              nodes : [ 'hello', 'puny' ]
-            },
-            'human'
-          ]
-        },
-        'party\ntime!'
-      ]
-    }
-  ]
-});
-console.log(s);
-```
-
-output
-
-```
-beep
-├── ity
-└─┬ boop
-  ├─┬ o_O
-  │ ├─┬ oh
-  │ │ ├── hello
-  │ │ └── puny
-  │ └── human
-  └── party
-      time!
-```
-
-# methods
-
-var archy = require('archy')
-
-## archy(obj, prefix='', opts={})
-
-Return a string representation of `obj` with unicode pipe characters like how
-`npm ls` looks.
-
-`obj` should be a tree of nested objects with `'label'` and `'nodes'` fields.
-`'label'` is a string of text to display at a node level and `'nodes'` is an
-array of the descendents of the current node.
-
-If a node is a string, that string will be used as the `'label'` and an empty
-array of `'nodes'` will be used.
-
-`prefix` gets prepended to all the lines and is used by the algorithm to
-recursively update.
-
-If `'label'` has newlines they will be indented at the present indentation level
-with the current prefix.
-
-To disable unicode results in favor of all-ansi output set `opts.unicode` to
-`false`.
-
-# install
-
-With [npm](http://npmjs.org) do:
-
-```
-npm install archy
-```
-
-# license
-
-MIT

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/archy/test/beep.js
----------------------------------------------------------------------
diff --git a/node_modules/archy/test/beep.js b/node_modules/archy/test/beep.js
deleted file mode 100644
index 4ea74f9..0000000
--- a/node_modules/archy/test/beep.js
+++ /dev/null
@@ -1,40 +0,0 @@
-var test = require('tape');
-var archy = require('../');
-
-test('beep', function (t) {
-    var s = archy({
-      label : 'beep',
-      nodes : [
-        'ity',
-        {
-          label : 'boop',
-          nodes : [
-            {
-              label : 'o_O',
-              nodes : [
-                {
-                  label : 'oh',
-                  nodes : [ 'hello', 'puny' ]
-                },
-                'human'
-              ]
-            },
-            'party!'
-          ]
-        }
-      ]
-    });
-    t.equal(s, [
-        'beep',
-        '├── ity',
-        '└─┬ boop',
-        '  ├─┬ o_O',
-        '  │ ├─┬ oh',
-        '  │ │ ├── hello',
-        '  │ │ └── puny',
-        '  │ └── human',
-        '  └── party!',
-        ''
-    ].join('\n'));
-    t.end();
-});

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/archy/test/multi_line.js
----------------------------------------------------------------------
diff --git a/node_modules/archy/test/multi_line.js b/node_modules/archy/test/multi_line.js
deleted file mode 100644
index 2cf2154..0000000
--- a/node_modules/archy/test/multi_line.js
+++ /dev/null
@@ -1,45 +0,0 @@
-var test = require('tape');
-var archy = require('../');
-
-test('multi-line', function (t) {
-    var s = archy({
-      label : 'beep\none\ntwo',
-      nodes : [
-        'ity',
-        {
-          label : 'boop',
-          nodes : [
-            {
-              label : 'o_O\nwheee',
-              nodes : [
-                {
-                  label : 'oh',
-                  nodes : [ 'hello', 'puny\nmeat' ]
-                },
-                'creature'
-              ]
-            },
-            'party\ntime!'
-          ]
-        }
-      ]
-    });
-    t.equal(s, [
-        'beep',
-        '│ one',
-        '│ two',
-        '├── ity',
-        '└─┬ boop',
-        '  ├─┬ o_O',
-        '  │ │ wheee',
-        '  │ ├─┬ oh',
-        '  │ │ ├── hello',
-        '  │ │ └── puny',
-        '  │ │     meat',
-        '  │ └── creature',
-        '  └── party',
-        '      time!',
-        ''
-    ].join('\n'));
-    t.end();
-});

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/archy/test/non_unicode.js
----------------------------------------------------------------------
diff --git a/node_modules/archy/test/non_unicode.js b/node_modules/archy/test/non_unicode.js
deleted file mode 100644
index 7204d33..0000000
--- a/node_modules/archy/test/non_unicode.js
+++ /dev/null
@@ -1,40 +0,0 @@
-var test = require('tape');
-var archy = require('../');
-
-test('beep', function (t) {
-    var s = archy({
-      label : 'beep',
-      nodes : [
-        'ity',
-        {
-          label : 'boop',
-          nodes : [
-            {
-              label : 'o_O',
-              nodes : [
-                {
-                  label : 'oh',
-                  nodes : [ 'hello', 'puny' ]
-                },
-                'human'
-              ]
-            },
-            'party!'
-          ]
-        }
-      ]
-    }, '', { unicode : false });
-    t.equal(s, [
-        'beep',
-        '+-- ity',
-        '`-- boop',
-        '  +-- o_O',
-        '  | +-- oh',
-        '  | | +-- hello',
-        '  | | `-- puny',
-        '  | `-- human',
-        '  `-- party!',
-        ''
-    ].join('\n'));
-    t.end();
-});

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/argparse/CHANGELOG.md
----------------------------------------------------------------------
diff --git a/node_modules/argparse/CHANGELOG.md b/node_modules/argparse/CHANGELOG.md
deleted file mode 100644
index e422115..0000000
--- a/node_modules/argparse/CHANGELOG.md
+++ /dev/null
@@ -1,179 +0,0 @@
-1.0.9 / 2016-09-29
-------------------
-
-- Rerelease after 1.0.8 - deps cleanup.
-
-
-1.0.8 / 2016-09-29
-------------------
-
-- Maintenance (deps bump, fix node 6.5+ tests, coverage report).
-
-
-1.0.7 / 2016-03-17
-------------------
-
-- Teach `addArgument` to accept string arg names. #97, @tomxtobin.
-
-
-1.0.6 / 2016-02-06
-------------------
-
-- Maintenance: moved to eslint & updated CS.
-
-
-1.0.5 / 2016-02-05
-------------------
-
-- Removed lodash dependency to significantly reduce install size.
-  Thanks to @mourner.
-
-
-1.0.4 / 2016-01-17
-------------------
-
-- Maintenance: lodash update to 4.0.0.
-
-
-1.0.3 / 2015-10-27
-------------------
-
-- Fix parse `=` in args: `--examplepath="C:\myfolder\env=x64"`. #84, @CatWithApple.
-
-
-1.0.2 / 2015-03-22
-------------------
-
-- Relaxed lodash version dependency.
-
-
-1.0.1 / 2015-02-20
-------------------
-
-- Changed dependencies to be compatible with ancient nodejs.
-
-
-1.0.0 / 2015-02-19
-------------------
-
-- Maintenance release.
-- Replaced `underscore` with `lodash`.
-- Bumped version to 1.0.0 to better reflect semver meaning.
-- HISTORY.md -> CHANGELOG.md
-
-
-0.1.16 / 2013-12-01
--------------------
-
-- Maintenance release. Updated dependencies and docs.
-
-
-0.1.15 / 2013-05-13
--------------------
-
-- Fixed #55, @trebor89
-
-
-0.1.14 / 2013-05-12
--------------------
-
-- Fixed #62, @maxtaco
-
-
-0.1.13 / 2013-04-08
--------------------
-
-- Added `.npmignore` to reduce package size
-
-
-0.1.12 / 2013-02-10
--------------------
-
-- Fixed conflictHandler (#46), @hpaulj
-
-
-0.1.11 / 2013-02-07
--------------------
-
-- Multiple bugfixes, @hpaulj
-- Added 70+ tests (ported from python), @hpaulj
-- Added conflictHandler, @applepicke
-- Added fromfilePrefixChar, @hpaulj
-
-
-0.1.10 / 2012-12-30
--------------------
-
-- Added [mutual exclusion](http://docs.python.org/dev/library/argparse.html#mutual-exclusion)
-  support, thanks to @hpaulj
-- Fixed options check for `storeConst` & `appendConst` actions, thanks to @hpaulj
-
-
-0.1.9 / 2012-12-27
-------------------
-
-- Fixed option dest interferens with other options (issue #23), thanks to @hpaulj
-- Fixed default value behavior with `*` positionals, thanks to @hpaulj
-- Improve `getDefault()` behavior, thanks to @hpaulj
-- Imrove negative argument parsing, thanks to @hpaulj
-
-
-0.1.8 / 2012-12-01
-------------------
-
-- Fixed parser parents (issue #19), thanks to @hpaulj
-- Fixed negative argument parse (issue #20), thanks to @hpaulj
-
-
-0.1.7 / 2012-10-14
-------------------
-
-- Fixed 'choices' argument parse (issue #16)
-- Fixed stderr output (issue #15)
-
-
-0.1.6 / 2012-09-09
-------------------
-
-- Fixed check for conflict of options (thanks to @tomxtobin)
-
-
-0.1.5 / 2012-09-03
-------------------
-
-- Fix parser #setDefaults method (thanks to @tomxtobin)
-
-
-0.1.4 / 2012-07-30
-------------------
-
-- Fixed pseudo-argument support (thanks to @CGamesPlay)
-- Fixed addHelp default (should be true), if not set (thanks to @benblank)
-
-
-0.1.3 / 2012-06-27
-------------------
-
-- Fixed formatter api name: Formatter -> HelpFormatter
-
-
-0.1.2 / 2012-05-29
-------------------
-
-- Added basic tests
-- Removed excess whitespace in help
-- Fixed error reporting, when parcer with subcommands
-  called with empty arguments
-
-
-0.1.1 / 2012-05-23
-------------------
-
-- Fixed line wrapping in help formatter
-- Added better error reporting on invalid arguments
-
-
-0.1.0 / 2012-05-16
-------------------
-
-- First release.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/argparse/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/argparse/LICENSE b/node_modules/argparse/LICENSE
deleted file mode 100644
index 1afdae5..0000000
--- a/node_modules/argparse/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-(The MIT License)
-
-Copyright (C) 2012 by Vitaly Puzrin
-
-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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/argparse/README.md
----------------------------------------------------------------------
diff --git a/node_modules/argparse/README.md b/node_modules/argparse/README.md
deleted file mode 100644
index 2d0bcab..0000000
--- a/node_modules/argparse/README.md
+++ /dev/null
@@ -1,253 +0,0 @@
-argparse
-========
-
-[![Build Status](https://secure.travis-ci.org/nodeca/argparse.png?branch=master)](http://travis-ci.org/nodeca/argparse)
-[![NPM version](https://img.shields.io/npm/v/argparse.svg)](https://www.npmjs.org/package/argparse)
-
-CLI arguments parser for node.js. Javascript port of python's
-[argparse](http://docs.python.org/dev/library/argparse.html) module
-(original version 3.2). That's a full port, except some very rare options,
-recorded in issue tracker.
-
-**NB. Difference with original.**
-
-- Method names changed to camelCase. See [generated docs](http://nodeca.github.com/argparse/).
-- Use `defaultValue` instead of `default`.
-
-
-Example
-=======
-
-test.js file:
-
-```javascript
-#!/usr/bin/env node
-'use strict';
-
-var ArgumentParser = require('../lib/argparse').ArgumentParser;
-var parser = new ArgumentParser({
-  version: '0.0.1',
-  addHelp:true,
-  description: 'Argparse example'
-});
-parser.addArgument(
-  [ '-f', '--foo' ],
-  {
-    help: 'foo bar'
-  }
-);
-parser.addArgument(
-  [ '-b', '--bar' ],
-  {
-    help: 'bar foo'
-  }
-);
-parser.addArgument(
-  '--baz',
-  {
-    help: 'baz bar'
-  }
-);
-var args = parser.parseArgs();
-console.dir(args);
-```
-
-Display help:
-
-```
-$ ./test.js -h
-usage: example.js [-h] [-v] [-f FOO] [-b BAR] [--baz BAZ]
-
-Argparse example
-
-Optional arguments:
-  -h, --help         Show this help message and exit.
-  -v, --version      Show program's version number and exit.
-  -f FOO, --foo FOO  foo bar
-  -b BAR, --bar BAR  bar foo
-  --baz BAZ          baz bar
-```
-
-Parse arguments:
-
-```
-$ ./test.js -f=3 --bar=4 --baz 5
-{ foo: '3', bar: '4', baz: '5' }
-```
-
-More [examples](https://github.com/nodeca/argparse/tree/master/examples).
-
-
-ArgumentParser objects
-======================
-
-```
-new ArgumentParser({paramters hash});
-```
-
-Creates a new ArgumentParser object.
-
-**Supported params:**
-
-- ```description``` - Text to display before the argument help.
-- ```epilog``` - Text to display after the argument help.
-- ```addHelp``` - Add a -h/–help option to the parser. (default: true)
-- ```argumentDefault``` - Set the global default value for arguments. (default: null)
-- ```parents``` - A list of ArgumentParser objects whose arguments should also be included.
-- ```prefixChars``` - The set of characters that prefix optional arguments. (default: ‘-‘)
-- ```formatterClass``` - A class for customizing the help output.
-- ```prog``` - The name of the program (default: `path.basename(process.argv[1])`)
-- ```usage``` - The string describing the program usage (default: generated)
-- ```conflictHandler``` - Usually unnecessary, defines strategy for resolving conflicting optionals.
-
-**Not supportied yet**
-
-- ```fromfilePrefixChars``` - The set of characters that prefix files from which additional arguments should be read.
-
-
-Details in [original ArgumentParser guide](http://docs.python.org/dev/library/argparse.html#argumentparser-objects)
-
-
-addArgument() method
-====================
-
-```
-ArgumentParser.addArgument(name or flag or [name] or [flags...], {options})
-```
-
-Defines how a single command-line argument should be parsed.
-
-- ```name or flag or [name] or [flags...]``` - Either a positional name
-  (e.g., `'foo'`), a single option (e.g., `'-f'` or `'--foo'`), an array
-  of a single positional name (e.g., `['foo']`), or an array of options
-  (e.g., `['-f', '--foo']`).
-
-Options:
-
-- ```action``` - The basic type of action to be taken when this argument is encountered at the command line.
-- ```nargs```- The number of command-line arguments that should be consumed.
-- ```constant``` - A constant value required by some action and nargs selections.
-- ```defaultValue``` - The value produced if the argument is absent from the command line.
-- ```type``` - The type to which the command-line argument should be converted.
-- ```choices``` - A container of the allowable values for the argument.
-- ```required``` - Whether or not the command-line option may be omitted (optionals only).
-- ```help``` - A brief description of what the argument does.
-- ```metavar``` - A name for the argument in usage messages.
-- ```dest``` - The name of the attribute to be added to the object returned by parseArgs().
-
-Details in [original add_argument guide](http://docs.python.org/dev/library/argparse.html#the-add-argument-method)
-
-
-Action (some details)
-================
-
-ArgumentParser objects associate command-line arguments with actions.
-These actions can do just about anything with the command-line arguments associated
-with them, though most actions simply add an attribute to the object returned by
-parseArgs(). The action keyword argument specifies how the command-line arguments
-should be handled. The supported actions are:
-
-- ```store``` - Just stores the argument’s value. This is the default action.
-- ```storeConst``` - Stores value, specified by the const keyword argument.
-  (Note that the const keyword argument defaults to the rather unhelpful None.)
-  The 'storeConst' action is most commonly used with optional arguments, that
-  specify some sort of flag.
-- ```storeTrue``` and ```storeFalse``` - Stores values True and False
-  respectively. These are special cases of 'storeConst'.
-- ```append``` - Stores a list, and appends each argument value to the list.
-  This is useful to allow an option to be specified multiple times.
-- ```appendConst``` - Stores a list, and appends value, specified by the
-  const keyword argument to the list. (Note, that the const keyword argument defaults
-  is None.) The 'appendConst' action is typically used when multiple arguments need
-  to store constants to the same list.
-- ```count``` - Counts the number of times a keyword argument occurs. For example,
-  used for increasing verbosity levels.
-- ```help``` - Prints a complete help message for all the options in the current
-  parser and then exits. By default a help action is automatically added to the parser.
-  See ArgumentParser for details of how the output is created.
-- ```version``` - Prints version information and exit. Expects a `version=`
-  keyword argument in the addArgument() call.
-
-Details in [original action guide](http://docs.python.org/dev/library/argparse.html#action)
-
-
-Sub-commands
-============
-
-ArgumentParser.addSubparsers()
-
-Many programs split their functionality into a number of sub-commands, for
-example, the svn program can invoke sub-commands like `svn checkout`, `svn update`,
-and `svn commit`. Splitting up functionality this way can be a particularly good
-idea when a program performs several different functions which require different
-kinds of command-line arguments. `ArgumentParser` supports creation of such
-sub-commands with `addSubparsers()` method. The `addSubparsers()` method is
-normally called with no arguments and returns an special action object.
-This object has a single method `addParser()`, which takes a command name and
-any `ArgumentParser` constructor arguments, and returns an `ArgumentParser` object
-that can be modified as usual.
-
-Example:
-
-sub_commands.js
-```javascript
-#!/usr/bin/env node
-'use strict';
-
-var ArgumentParser = require('../lib/argparse').ArgumentParser;
-var parser = new ArgumentParser({
-  version: '0.0.1',
-  addHelp:true,
-  description: 'Argparse examples: sub-commands',
-});
-
-var subparsers = parser.addSubparsers({
-  title:'subcommands',
-  dest:"subcommand_name"
-});
-
-var bar = subparsers.addParser('c1', {addHelp:true});
-bar.addArgument(
-  [ '-f', '--foo' ],
-  {
-    action: 'store',
-    help: 'foo3 bar3'
-  }
-);
-var bar = subparsers.addParser(
-  'c2',
-  {aliases:['co'], addHelp:true}
-);
-bar.addArgument(
-  [ '-b', '--bar' ],
-  {
-    action: 'store',
-    type: 'int',
-    help: 'foo3 bar3'
-  }
-);
-
-var args = parser.parseArgs();
-console.dir(args);
-
-```
-
-Details in [original sub-commands guide](http://docs.python.org/dev/library/argparse.html#sub-commands)
-
-
-Contributors
-============
-
-- [Eugene Shkuropat](https://github.com/shkuropat)
-- [Paul Jacobson](https://github.com/hpaulj)
-
-[others](https://github.com/nodeca/argparse/graphs/contributors)
-
-License
-=======
-
-Copyright (c) 2012 [Vitaly Puzrin](https://github.com/puzrin).
-Released under the MIT license. See
-[LICENSE](https://github.com/nodeca/argparse/blob/master/LICENSE) for details.
-
-

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/argparse/index.js
----------------------------------------------------------------------
diff --git a/node_modules/argparse/index.js b/node_modules/argparse/index.js
deleted file mode 100644
index 3bbc143..0000000
--- a/node_modules/argparse/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-'use strict';
-
-module.exports = require('./lib/argparse');

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/argparse/lib/action.js
----------------------------------------------------------------------
diff --git a/node_modules/argparse/lib/action.js b/node_modules/argparse/lib/action.js
deleted file mode 100644
index ef35989..0000000
--- a/node_modules/argparse/lib/action.js
+++ /dev/null
@@ -1,146 +0,0 @@
-/**
- * class Action
- *
- * Base class for all actions
- * Do not call in your code, use this class only for inherits your own action
- *
- * Information about how to convert command line strings to Javascript objects.
- * Action objects are used by an ArgumentParser to represent the information
- * needed to parse a single argument from one or more strings from the command
- * line. The keyword arguments to the Action constructor are also all attributes
- * of Action instances.
- *
- * #####Alowed keywords:
- *
- * - `store`
- * - `storeConstant`
- * - `storeTrue`
- * - `storeFalse`
- * - `append`
- * - `appendConstant`
- * - `count`
- * - `help`
- * - `version`
- *
- * Information about action options see [[Action.new]]
- *
- * See also [original guide](http://docs.python.org/dev/library/argparse.html#action)
- *
- **/
-
-'use strict';
-
-
-// Constants
-var c = require('./const');
-
-
-/**
- * new Action(options)
- *
- * Base class for all actions. Used only for inherits
- *
- *
- * ##### Options:
- *
- * - `optionStrings`  A list of command-line option strings for the action.
- * - `dest`  Attribute to hold the created object(s)
- * - `nargs`  The number of command-line arguments that should be consumed.
- * By default, one argument will be consumed and a single value will be
- * produced.
- * - `constant`  Default value for an action with no value.
- * - `defaultValue`  The value to be produced if the option is not specified.
- * - `type`  Cast to 'string'|'int'|'float'|'complex'|function (string). If
- * None, 'string'.
- * - `choices`  The choices available.
- * - `required`  True if the action must always be specified at the command
- * line.
- * - `help`  The help describing the argument.
- * - `metavar`  The name to be used for the option's argument with the help
- * string. If None, the 'dest' value will be used as the name.
- *
- * ##### nargs supported values:
- *
- * - `N` (an integer) consumes N arguments (and produces a list)
- * - `?`  consumes zero or one arguments
- * - `*` consumes zero or more arguments (and produces a list)
- * - `+` consumes one or more arguments (and produces a list)
- *
- * Note: that the difference between the default and nargs=1 is that with the
- * default, a single value will be produced, while with nargs=1, a list
- * containing a single value will be produced.
- **/
-var Action = module.exports = function Action(options) {
-  options = options || {};
-  this.optionStrings = options.optionStrings || [];
-  this.dest = options.dest;
-  this.nargs = typeof options.nargs !== 'undefined' ? options.nargs : null;
-  this.constant = typeof options.constant !== 'undefined' ? options.constant : null;
-  this.defaultValue = options.defaultValue;
-  this.type = typeof options.type !== 'undefined' ? options.type : null;
-  this.choices = typeof options.choices !== 'undefined' ? options.choices : null;
-  this.required = typeof options.required !== 'undefined' ? options.required : false;
-  this.help = typeof options.help !== 'undefined' ? options.help : null;
-  this.metavar = typeof options.metavar !== 'undefined' ? options.metavar : null;
-
-  if (!(this.optionStrings instanceof Array)) {
-    throw new Error('optionStrings should be an array');
-  }
-  if (typeof this.required !== 'undefined' && typeof this.required !== 'boolean') {
-    throw new Error('required should be a boolean');
-  }
-};
-
-/**
- * Action#getName -> String
- *
- * Tells action name
- **/
-Action.prototype.getName = function () {
-  if (this.optionStrings.length > 0) {
-    return this.optionStrings.join('/');
-  } else if (this.metavar !== null && this.metavar !== c.SUPPRESS) {
-    return this.metavar;
-  } else if (typeof this.dest !== 'undefined' && this.dest !== c.SUPPRESS) {
-    return this.dest;
-  }
-  return null;
-};
-
-/**
- * Action#isOptional -> Boolean
- *
- * Return true if optional
- **/
-Action.prototype.isOptional = function () {
-  return !this.isPositional();
-};
-
-/**
- * Action#isPositional -> Boolean
- *
- * Return true if positional
- **/
-Action.prototype.isPositional = function () {
-  return (this.optionStrings.length === 0);
-};
-
-/**
- * Action#call(parser, namespace, values, optionString) -> Void
- * - parser (ArgumentParser): current parser
- * - namespace (Namespace): namespace for output data
- * - values (Array): parsed values
- * - optionString (Array): input option string(not parsed)
- *
- * Call the action. Should be implemented in inherited classes
- *
- * ##### Example
- *
- *      ActionCount.prototype.call = function (parser, namespace, values, optionString) {
- *        namespace.set(this.dest, (namespace[this.dest] || 0) + 1);
- *      };
- *
- **/
-Action.prototype.call = function () {
-  throw new Error('.call() not defined');// Not Implemented error
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/argparse/lib/action/append.js
----------------------------------------------------------------------
diff --git a/node_modules/argparse/lib/action/append.js b/node_modules/argparse/lib/action/append.js
deleted file mode 100644
index b5da0de..0000000
--- a/node_modules/argparse/lib/action/append.js
+++ /dev/null
@@ -1,53 +0,0 @@
-/*:nodoc:*
- * class ActionAppend
- *
- * This action stores a list, and appends each argument value to the list.
- * This is useful to allow an option to be specified multiple times.
- * This class inherided from [[Action]]
- *
- **/
-
-'use strict';
-
-var util = require('util');
-
-var Action = require('../action');
-
-// Constants
-var c = require('../const');
-
-/*:nodoc:*
- * new ActionAppend(options)
- * - options (object): options hash see [[Action.new]]
- *
- * Note: options.nargs should be optional for constants
- * and more then zero for other
- **/
-var ActionAppend = module.exports = function ActionAppend(options) {
-  options = options || {};
-  if (this.nargs <= 0) {
-    throw new Error('nargs for append actions must be > 0; if arg ' +
-        'strings are not supplying the value to append, ' +
-        'the append const action may be more appropriate');
-  }
-  if (!!this.constant && this.nargs !== c.OPTIONAL) {
-    throw new Error('nargs must be OPTIONAL to supply const');
-  }
-  Action.call(this, options);
-};
-util.inherits(ActionAppend, Action);
-
-/*:nodoc:*
- * ActionAppend#call(parser, namespace, values, optionString) -> Void
- * - parser (ArgumentParser): current parser
- * - namespace (Namespace): namespace for output data
- * - values (Array): parsed values
- * - optionString (Array): input option string(not parsed)
- *
- * Call the action. Save result in namespace object
- **/
-ActionAppend.prototype.call = function (parser, namespace, values) {
-  var items = (namespace[this.dest] || []).slice();
-  items.push(values);
-  namespace.set(this.dest, items);
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/argparse/lib/action/append/constant.js
----------------------------------------------------------------------
diff --git a/node_modules/argparse/lib/action/append/constant.js b/node_modules/argparse/lib/action/append/constant.js
deleted file mode 100644
index 313f5d2..0000000
--- a/node_modules/argparse/lib/action/append/constant.js
+++ /dev/null
@@ -1,47 +0,0 @@
-/*:nodoc:*
- * class ActionAppendConstant
- *
- * This stores a list, and appends the value specified by
- * the const keyword argument to the list.
- * (Note that the const keyword argument defaults to null.)
- * The 'appendConst' action is typically useful when multiple
- * arguments need to store constants to the same list.
- *
- * This class inherited from [[Action]]
- **/
-
-'use strict';
-
-var util = require('util');
-
-var Action = require('../../action');
-
-/*:nodoc:*
- * new ActionAppendConstant(options)
- * - options (object): options hash see [[Action.new]]
- *
- **/
-var ActionAppendConstant = module.exports = function ActionAppendConstant(options) {
-  options = options || {};
-  options.nargs = 0;
-  if (typeof options.constant === 'undefined') {
-    throw new Error('constant option is required for appendAction');
-  }
-  Action.call(this, options);
-};
-util.inherits(ActionAppendConstant, Action);
-
-/*:nodoc:*
- * ActionAppendConstant#call(parser, namespace, values, optionString) -> Void
- * - parser (ArgumentParser): current parser
- * - namespace (Namespace): namespace for output data
- * - values (Array): parsed values
- * - optionString (Array): input option string(not parsed)
- *
- * Call the action. Save result in namespace object
- **/
-ActionAppendConstant.prototype.call = function (parser, namespace) {
-  var items = [].concat(namespace[this.dest] || []);
-  items.push(this.constant);
-  namespace.set(this.dest, items);
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/argparse/lib/action/count.js
----------------------------------------------------------------------
diff --git a/node_modules/argparse/lib/action/count.js b/node_modules/argparse/lib/action/count.js
deleted file mode 100644
index d6a5899..0000000
--- a/node_modules/argparse/lib/action/count.js
+++ /dev/null
@@ -1,40 +0,0 @@
-/*:nodoc:*
- * class ActionCount
- *
- * This counts the number of times a keyword argument occurs.
- * For example, this is useful for increasing verbosity levels
- *
- * This class inherided from [[Action]]
- *
- **/
-'use strict';
-
-var util = require('util');
-
-var Action = require('../action');
-
-/*:nodoc:*
- * new ActionCount(options)
- * - options (object): options hash see [[Action.new]]
- *
- **/
-var ActionCount = module.exports = function ActionCount(options) {
-  options = options || {};
-  options.nargs = 0;
-
-  Action.call(this, options);
-};
-util.inherits(ActionCount, Action);
-
-/*:nodoc:*
- * ActionCount#call(parser, namespace, values, optionString) -> Void
- * - parser (ArgumentParser): current parser
- * - namespace (Namespace): namespace for output data
- * - values (Array): parsed values
- * - optionString (Array): input option string(not parsed)
- *
- * Call the action. Save result in namespace object
- **/
-ActionCount.prototype.call = function (parser, namespace) {
-  namespace.set(this.dest, (namespace[this.dest] || 0) + 1);
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/argparse/lib/action/help.js
----------------------------------------------------------------------
diff --git a/node_modules/argparse/lib/action/help.js b/node_modules/argparse/lib/action/help.js
deleted file mode 100644
index b40e05a..0000000
--- a/node_modules/argparse/lib/action/help.js
+++ /dev/null
@@ -1,47 +0,0 @@
-/*:nodoc:*
- * class ActionHelp
- *
- * Support action for printing help
- * This class inherided from [[Action]]
- **/
-'use strict';
-
-var util = require('util');
-
-var Action = require('../action');
-
-// Constants
-var c  = require('../const');
-
-/*:nodoc:*
- * new ActionHelp(options)
- * - options (object): options hash see [[Action.new]]
- *
- **/
-var ActionHelp = module.exports = function ActionHelp(options) {
-  options = options || {};
-  if (options.defaultValue !== null) {
-    options.defaultValue = options.defaultValue;
-  } else {
-    options.defaultValue = c.SUPPRESS;
-  }
-  options.dest = (options.dest !== null ? options.dest : c.SUPPRESS);
-  options.nargs = 0;
-  Action.call(this, options);
-
-};
-util.inherits(ActionHelp, Action);
-
-/*:nodoc:*
- * ActionHelp#call(parser, namespace, values, optionString)
- * - parser (ArgumentParser): current parser
- * - namespace (Namespace): namespace for output data
- * - values (Array): parsed values
- * - optionString (Array): input option string(not parsed)
- *
- * Print help and exit
- **/
-ActionHelp.prototype.call = function (parser) {
-  parser.printHelp();
-  parser.exit();
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/argparse/lib/action/store.js
----------------------------------------------------------------------
diff --git a/node_modules/argparse/lib/action/store.js b/node_modules/argparse/lib/action/store.js
deleted file mode 100644
index 283b860..0000000
--- a/node_modules/argparse/lib/action/store.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/*:nodoc:*
- * class ActionStore
- *
- * This action just stores the argument’s value. This is the default action.
- *
- * This class inherited from [[Action]]
- *
- **/
-'use strict';
-
-var util = require('util');
-
-var Action = require('../action');
-
-// Constants
-var c = require('../const');
-
-
-/*:nodoc:*
- * new ActionStore(options)
- * - options (object): options hash see [[Action.new]]
- *
- **/
-var ActionStore = module.exports = function ActionStore(options) {
-  options = options || {};
-  if (this.nargs <= 0) {
-    throw new Error('nargs for store actions must be > 0; if you ' +
-        'have nothing to store, actions such as store ' +
-        'true or store const may be more appropriate');
-
-  }
-  if (typeof this.constant !== 'undefined' && this.nargs !== c.OPTIONAL) {
-    throw new Error('nargs must be OPTIONAL to supply const');
-  }
-  Action.call(this, options);
-};
-util.inherits(ActionStore, Action);
-
-/*:nodoc:*
- * ActionStore#call(parser, namespace, values, optionString) -> Void
- * - parser (ArgumentParser): current parser
- * - namespace (Namespace): namespace for output data
- * - values (Array): parsed values
- * - optionString (Array): input option string(not parsed)
- *
- * Call the action. Save result in namespace object
- **/
-ActionStore.prototype.call = function (parser, namespace, values) {
-  namespace.set(this.dest, values);
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/argparse/lib/action/store/constant.js
----------------------------------------------------------------------
diff --git a/node_modules/argparse/lib/action/store/constant.js b/node_modules/argparse/lib/action/store/constant.js
deleted file mode 100644
index 23caa89..0000000
--- a/node_modules/argparse/lib/action/store/constant.js
+++ /dev/null
@@ -1,43 +0,0 @@
-/*:nodoc:*
- * class ActionStoreConstant
- *
- * This action stores the value specified by the const keyword argument.
- * (Note that the const keyword argument defaults to the rather unhelpful null.)
- * The 'store_const' action is most commonly used with optional
- * arguments that specify some sort of flag.
- *
- * This class inherited from [[Action]]
- **/
-'use strict';
-
-var util = require('util');
-
-var Action = require('../../action');
-
-/*:nodoc:*
- * new ActionStoreConstant(options)
- * - options (object): options hash see [[Action.new]]
- *
- **/
-var ActionStoreConstant = module.exports = function ActionStoreConstant(options) {
-  options = options || {};
-  options.nargs = 0;
-  if (typeof options.constant === 'undefined') {
-    throw new Error('constant option is required for storeAction');
-  }
-  Action.call(this, options);
-};
-util.inherits(ActionStoreConstant, Action);
-
-/*:nodoc:*
- * ActionStoreConstant#call(parser, namespace, values, optionString) -> Void
- * - parser (ArgumentParser): current parser
- * - namespace (Namespace): namespace for output data
- * - values (Array): parsed values
- * - optionString (Array): input option string(not parsed)
- *
- * Call the action. Save result in namespace object
- **/
-ActionStoreConstant.prototype.call = function (parser, namespace) {
-  namespace.set(this.dest, this.constant);
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/argparse/lib/action/store/false.js
----------------------------------------------------------------------
diff --git a/node_modules/argparse/lib/action/store/false.js b/node_modules/argparse/lib/action/store/false.js
deleted file mode 100644
index 9924f46..0000000
--- a/node_modules/argparse/lib/action/store/false.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/*:nodoc:*
- * class ActionStoreFalse
- *
- * This action store the values False respectively.
- * This is special cases of 'storeConst'
- *
- * This class inherited from [[Action]]
- **/
-
-'use strict';
-
-var util = require('util');
-
-var ActionStoreConstant = require('./constant');
-
-/*:nodoc:*
- * new ActionStoreFalse(options)
- * - options (object): hash of options see [[Action.new]]
- *
- **/
-var ActionStoreFalse = module.exports = function ActionStoreFalse(options) {
-  options = options || {};
-  options.constant = false;
-  options.defaultValue = options.defaultValue !== null ? options.defaultValue : true;
-  ActionStoreConstant.call(this, options);
-};
-util.inherits(ActionStoreFalse, ActionStoreConstant);

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/argparse/lib/action/store/true.js
----------------------------------------------------------------------
diff --git a/node_modules/argparse/lib/action/store/true.js b/node_modules/argparse/lib/action/store/true.js
deleted file mode 100644
index 9e22f7d..0000000
--- a/node_modules/argparse/lib/action/store/true.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/*:nodoc:*
- * class ActionStoreTrue
- *
- * This action store the values True respectively.
- * This isspecial cases of 'storeConst'
- *
- * This class inherited from [[Action]]
- **/
-'use strict';
-
-var util = require('util');
-
-var ActionStoreConstant = require('./constant');
-
-/*:nodoc:*
- * new ActionStoreTrue(options)
- * - options (object): options hash see [[Action.new]]
- *
- **/
-var ActionStoreTrue = module.exports = function ActionStoreTrue(options) {
-  options = options || {};
-  options.constant = true;
-  options.defaultValue = options.defaultValue !== null ? options.defaultValue : false;
-  ActionStoreConstant.call(this, options);
-};
-util.inherits(ActionStoreTrue, ActionStoreConstant);



[02/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/core-js/client/library.min.js
----------------------------------------------------------------------
diff --git a/node_modules/core-js/client/library.min.js b/node_modules/core-js/client/library.min.js
deleted file mode 100644
index f665bed..0000000
--- a/node_modules/core-js/client/library.min.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/**
- * core-js 1.2.7
- * https://github.com/zloirock/core-js
- * License: http://rock.mit-license.org
- * © 2016 Denis Pushkarev
- */
-!function(b,c,a){"use strict";!function(b){function __webpack_require__(c){if(a[c])return a[c].exports;var d=a[c]={exports:{},id:c,loaded:!1};return b[c].call(d.exports,d,d.exports,__webpack_require__),d.loaded=!0,d.exports}var a={};return __webpack_require__.m=b,__webpack_require__.c=a,__webpack_require__.p="",__webpack_require__(0)}([function(b,c,a){a(1),a(32),a(40),a(42),a(44),a(46),a(48),a(49),a(50),a(51),a(52),a(53),a(54),a(55),a(56),a(57),a(58),a(59),a(60),a(62),a(63),a(64),a(65),a(66),a(67),a(68),a(70),a(71),a(72),a(74),a(75),a(76),a(78),a(79),a(80),a(81),a(82),a(83),a(84),a(85),a(86),a(87),a(88),a(89),a(90),a(92),a(94),a(98),a(99),a(101),a(102),a(106),a(112),a(113),a(116),a(118),a(120),a(122),a(123),a(124),a(131),a(134),a(135),a(137),a(138),a(139),a(140),a(141),a(142),a(143),a(144),a(145),a(146),a(147),a(148),a(150),a(151),a(152),a(153),a(154),a(155),a(157),a(158),a(159),a(160),a(162),a(163),a(165),a(166),a(168),a(169),a(170),a(171),a(174),a(109),a(176),a(175),a(177),a(178),
 a(179),a(180),a(181),a(183),a(184),a(185),a(186),a(187),b.exports=a(188)},function(S,R,b){var r,d=b(2),c=b(3),x=b(8),O=b(10),o=b(11),E=b(12),n=b(14),N=b(15),J=b(16),j=b(9),p=b(17),v=b(7),I=b(13),Q=b(18),y=b(20),K=b(22),w=b(23),h=b(24),s=b(21),m=b(25)("__proto__"),g=b(26),A=b(31)(!1),B=Object.prototype,C=Array.prototype,k=C.slice,M=C.join,F=d.setDesc,L=d.getDesc,q=d.setDescs,u={};x||(r=!j(function(){return 7!=F(E("div"),"a",{get:function(){return 7}}).a}),d.setDesc=function(b,c,a){if(r)try{return F(b,c,a)}catch(d){}if("get"in a||"set"in a)throw TypeError("Accessors not supported!");return"value"in a&&(p(b)[c]=a.value),b},d.getDesc=function(a,b){if(r)try{return L(a,b)}catch(c){}return n(a,b)?O(!B.propertyIsEnumerable.call(a,b),a[b]):void 0},d.setDescs=q=function(a,b){p(a);for(var c,e=d.getKeys(b),g=e.length,f=0;g>f;)d.setDesc(a,c=e[f++],b[c]);return a}),c(c.S+c.F*!x,"Object",{getOwnPropertyDescriptor:d.getDesc,defineProperty:d.setDesc,defineProperties:q});var i="constructor,hasOwnProp
 erty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),H=i.concat("length","prototype"),G=i.length,l=function(){var a,b=E("iframe"),c=G,d=">";for(b.style.display="none",o.appendChild(b),b.src="javascript:",a=b.contentWindow.document,a.open(),a.write("<script>document.F=Object</script"+d),a.close(),l=a.F;c--;)delete l.prototype[i[c]];return l()},D=function(a,b){return function(g){var c,e=y(g),f=0,d=[];for(c in e)c!=m&&n(e,c)&&d.push(c);for(;b>f;)n(e,c=a[f++])&&(~A(d,c)||d.push(c));return d}},t=function(){};c(c.S,"Object",{getPrototypeOf:d.getProto=d.getProto||function(a){return a=Q(a),n(a,m)?a[m]:"function"==typeof a.constructor&&a instanceof a.constructor?a.constructor.prototype:a instanceof Object?B:null},getOwnPropertyNames:d.getNames=d.getNames||D(H,H.length,!0),create:d.create=d.create||function(c,d){var b;return null!==c?(t.prototype=p(c),b=new t,t.prototype=null,b[m]=c):b=l(),d===a?b:q(b,d)},keys:d.getKeys=d.getKeys||D(i,G,!1)});var P=function(d,a,
 e){if(!(a in u)){for(var c=[],b=0;a>b;b++)c[b]="a["+b+"]";u[a]=Function("F,a","return new F("+c.join(",")+")")}return u[a](d,e)};c(c.P,"Function",{bind:function bind(c){var a=v(this),d=k.call(arguments,1),b=function(){var e=d.concat(k.call(arguments));return this instanceof b?P(a,e.length,e):J(a,e,c)};return I(a.prototype)&&(b.prototype=a.prototype),b}}),c(c.P+c.F*j(function(){o&&k.call(o)}),"Array",{slice:function(f,b){var d=h(this.length),g=N(this);if(b=b===a?d:b,"Array"==g)return k.call(this,f,b);for(var e=w(f,d),l=w(b,d),i=h(l-e),j=Array(i),c=0;i>c;c++)j[c]="String"==g?this.charAt(e+c):this[e+c];return j}}),c(c.P+c.F*(s!=Object),"Array",{join:function join(b){return M.call(s(this),b===a?",":b)}}),c(c.S,"Array",{isArray:b(28)});var z=function(a){return function(g,d){v(g);var c=s(this),e=h(c.length),b=a?e-1:0,f=a?-1:1;if(arguments.length<2)for(;;){if(b in c){d=c[b],b+=f;break}if(b+=f,a?0>b:b>=e)throw TypeError("Reduce of empty array with no initial value")}for(;a?b>=0:e>b;b+=f)b i
 n c&&(d=g(d,c[b],b,this));return d}},f=function(a){return function(b){return a(this,b,arguments[1])}};c(c.P,"Array",{forEach:d.each=d.each||f(g(0)),map:f(g(1)),filter:f(g(2)),some:f(g(3)),every:f(g(4)),reduce:z(!1),reduceRight:z(!0),indexOf:f(A),lastIndexOf:function(d,e){var b=y(this),c=h(b.length),a=c-1;for(arguments.length>1&&(a=Math.min(a,K(e))),0>a&&(a=h(c+a));a>=0;a--)if(a in b&&b[a]===d)return a;return-1}}),c(c.S,"Date",{now:function(){return+new Date}});var e=function(a){return a>9?a:"0"+a};c(c.P+c.F*(j(function(){return"0385-07-25T07:06:39.999Z"!=new Date(-5e13-1).toISOString()})||!j(function(){new Date(NaN).toISOString()})),"Date",{toISOString:function toISOString(){if(!isFinite(this))throw RangeError("Invalid time value");var a=this,b=a.getUTCFullYear(),c=a.getUTCMilliseconds(),d=0>b?"-":b>9999?"+":"";return d+("00000"+Math.abs(b)).slice(d?-6:-4)+"-"+e(a.getUTCMonth()+1)+"-"+e(a.getUTCDate())+"T"+e(a.getUTCHours())+":"+e(a.getUTCMinutes())+":"+e(a.getUTCSeconds())+"."+(c>9
 9?c:"0"+e(c))+"Z"}})},function(b,c){var a=Object;b.exports={create:a.create,getProto:a.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:a.getOwnPropertyDescriptor,setDesc:a.defineProperty,setDescs:a.defineProperties,getKeys:a.keys,getNames:a.getOwnPropertyNames,getSymbols:a.getOwnPropertySymbols,each:[].forEach}},function(g,h,d){var c=d(4),e=d(5),f=d(6),b="prototype",a=function(h,j,l){var d,k,g,p=h&a.F,n=h&a.G,q=h&a.S,o=h&a.P,r=h&a.B,s=h&a.W,m=n?e:e[j]||(e[j]={}),i=n?c:q?c[j]:(c[j]||{})[b];n&&(l=j);for(d in l)k=!p&&i&&d in i,k&&d in m||(g=k?i[d]:l[d],m[d]=n&&"function"!=typeof i[d]?l[d]:r&&k?f(g,c):s&&i[d]==g?function(a){var c=function(b){return this instanceof a?new a(b):a(b)};return c[b]=a[b],c}(g):o&&"function"==typeof g?f(Function.call,g):g,o&&((m[b]||(m[b]={}))[d]=g))};a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,g.exports=a},function(a,d){var b=a.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();
 "number"==typeof c&&(c=b)},function(a,d){var c=a.exports={version:"1.2.6"};"number"==typeof b&&(b=c)},function(b,e,c){var d=c(7);b.exports=function(b,c,e){if(d(b),c===a)return b;switch(e){case 1:return function(a){return b.call(c,a)};case 2:return function(a,d){return b.call(c,a,d)};case 3:return function(a,d,e){return b.call(c,a,d,e)}}return function(){return b.apply(c,arguments)}}},function(a,b){a.exports=function(a){if("function"!=typeof a)throw TypeError(a+" is not a function!");return a}},function(a,c,b){a.exports=!b(9)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(a,b){a.exports=function(a){try{return!!a()}catch(b){return!0}}},function(a,b){a.exports=function(a,b){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:b}}},function(a,c,b){a.exports=b(4).document&&document.documentElement},function(d,f,b){var c=b(13),a=b(4).document,e=c(a)&&c(a.createElement);d.exports=function(b){return e?a.createElement(b):{}}},functio
 n(a,b){a.exports=function(a){return"object"==typeof a?null!==a:"function"==typeof a}},function(a,c){var b={}.hasOwnProperty;a.exports=function(a,c){return b.call(a,c)}},function(a,c){var b={}.toString;a.exports=function(a){return b.call(a).slice(8,-1)}},function(b,c){b.exports=function(c,b,d){var e=d===a;switch(b.length){case 0:return e?c():c.call(d);case 1:return e?c(b[0]):c.call(d,b[0]);case 2:return e?c(b[0],b[1]):c.call(d,b[0],b[1]);case 3:return e?c(b[0],b[1],b[2]):c.call(d,b[0],b[1],b[2]);case 4:return e?c(b[0],b[1],b[2],b[3]):c.call(d,b[0],b[1],b[2],b[3])}return c.apply(d,b)}},function(a,d,b){var c=b(13);a.exports=function(a){if(!c(a))throw TypeError(a+" is not an object!");return a}},function(a,d,b){var c=b(19);a.exports=function(a){return Object(c(a))}},function(b,c){b.exports=function(b){if(b==a)throw TypeError("Can't call method on  "+b);return b}},function(b,e,a){var c=a(21),d=a(19);b.exports=function(a){return c(d(a))}},function(a,d,b){var c=b(15);a.exports=Object("z").
 propertyIsEnumerable(0)?Object:function(a){return"String"==c(a)?a.split(""):Object(a)}},function(a,d){var b=Math.ceil,c=Math.floor;a.exports=function(a){return isNaN(a=+a)?0:(a>0?c:b)(a)}},function(a,f,b){var c=b(22),d=Math.max,e=Math.min;a.exports=function(a,b){return a=c(a),0>a?d(a+b,0):e(a,b)}},function(a,e,b){var c=b(22),d=Math.min;a.exports=function(a){return a>0?d(c(a),9007199254740991):0}},function(b,e){var c=0,d=Math.random();b.exports=function(b){return"Symbol(".concat(b===a?"":b,")_",(++c+d).toString(36))}},function(d,i,b){var e=b(6),f=b(21),g=b(18),h=b(24),c=b(27);d.exports=function(b){var i=1==b,k=2==b,l=3==b,d=4==b,j=6==b,m=5==b||j;return function(p,v,x){for(var o,r,u=g(p),s=f(u),w=e(v,x,3),t=h(s.length),n=0,q=i?c(p,t):k?c(p,0):a;t>n;n++)if((m||n in s)&&(o=s[n],r=w(o,n,u),b))if(i)q[n]=r;else if(r)switch(b){case 3:return!0;case 5:return o;case 6:return n;case 2:q.push(o)}else if(d)return!1;return j?-1:l||d?d:q}}},function(d,g,b){var e=b(13),c=b(28),f=b(29)("species");d.e
 xports=function(d,g){var b;return c(d)&&(b=d.constructor,"function"!=typeof b||b!==Array&&!c(b.prototype)||(b=a),e(b)&&(b=b[f],null===b&&(b=a))),new(b===a?Array:b)(g)}},function(a,d,b){var c=b(15);a.exports=Array.isArray||function(a){return"Array"==c(a)}},function(d,f,a){var c=a(30)("wks"),e=a(25),b=a(4).Symbol;d.exports=function(a){return c[a]||(c[a]=b&&b[a]||(b||e)("Symbol."+a))}},function(d,f,e){var a=e(4),b="__core-js_shared__",c=a[b]||(a[b]={});d.exports=function(a){return c[a]||(c[a]={})}},function(b,f,a){var c=a(20),d=a(24),e=a(23);b.exports=function(a){return function(j,g,k){var h,f=c(j),i=d(f.length),b=e(k,i);if(a&&g!=g){for(;i>b;)if(h=f[b++],h!=h)return!0}else for(;i>b;b++)if((a||b in f)&&f[b]===g)return a||b;return!a&&-1}}},function(W,V,b){var e=b(2),x=b(4),d=b(14),w=b(8),f=b(3),G=b(33),H=b(9),J=b(30),s=b(35),S=b(25),A=b(29),R=b(36),C=b(37),Q=b(38),P=b(28),O=b(17),p=b(20),v=b(10),I=e.getDesc,i=e.setDesc,k=e.create,z=C.get,g=x.Symbol,l=x.JSON,m=l&&l.stringify,n=!1,c=A("_hi
 dden"),N=e.isEnum,o=J("symbol-registry"),h=J("symbols"),q="function"==typeof g,j=Object.prototype,y=w&&H(function(){return 7!=k(i({},"a",{get:function(){return i(this,"a",{value:7}).a}})).a})?function(c,a,d){var b=I(j,a);b&&delete j[a],i(c,a,d),b&&c!==j&&i(j,a,b)}:i,L=function(a){var b=h[a]=k(g.prototype);return b._k=a,w&&n&&y(j,a,{configurable:!0,set:function(b){d(this,c)&&d(this[c],a)&&(this[c][a]=!1),y(this,a,v(1,b))}}),b},r=function(a){return"symbol"==typeof a},t=function defineProperty(a,b,e){return e&&d(h,b)?(e.enumerable?(d(a,c)&&a[c][b]&&(a[c][b]=!1),e=k(e,{enumerable:v(0,!1)})):(d(a,c)||i(a,c,v(1,{})),a[c][b]=!0),y(a,b,e)):i(a,b,e)},u=function defineProperties(a,b){O(a);for(var c,d=Q(b=p(b)),e=0,f=d.length;f>e;)t(a,c=d[e++],b[c]);return a},F=function create(b,c){return c===a?k(b):u(k(b),c)},E=function propertyIsEnumerable(a){var b=N.call(this,a);return b||!d(this,a)||!d(h,a)||d(this,c)&&this[c][a]?b:!0},D=function getOwnPropertyDescriptor(a,b){var e=I(a=p(a),b);return!e||!d
 (h,b)||d(a,c)&&a[c][b]||(e.enumerable=!0),e},B=function getOwnPropertyNames(g){for(var a,b=z(p(g)),e=[],f=0;b.length>f;)d(h,a=b[f++])||a==c||e.push(a);return e},M=function getOwnPropertySymbols(f){for(var a,b=z(p(f)),c=[],e=0;b.length>e;)d(h,a=b[e++])&&c.push(h[a]);return c},T=function stringify(e){if(e!==a&&!r(e)){for(var b,c,d=[e],f=1,g=arguments;g.length>f;)d.push(g[f++]);return b=d[1],"function"==typeof b&&(c=b),(c||!P(b))&&(b=function(b,a){return c&&(a=c.call(this,b,a)),r(a)?void 0:a}),d[1]=b,m.apply(l,d)}},U=H(function(){var a=g();return"[null]"!=m([a])||"{}"!=m({a:a})||"{}"!=m(Object(a))});q||(g=function Symbol(){if(r(this))throw TypeError("Symbol is not a constructor");return L(S(arguments.length>0?arguments[0]:a))},G(g.prototype,"toString",function toString(){return this._k}),r=function(a){return a instanceof g},e.create=F,e.isEnum=E,e.getDesc=D,e.setDesc=t,e.setDescs=u,e.getNames=C.get=B,e.getSymbols=M,w&&!b(39)&&G(j,"propertyIsEnumerable",E,!0));var K={"for":function(a){r
 eturn d(o,a+="")?o[a]:o[a]=g(a)},keyFor:function keyFor(a){return R(o,a)},useSetter:function(){n=!0},useSimple:function(){n=!1}};e.each.call("hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),function(a){var b=A(a);K[a]=q?b:L(b)}),n=!0,f(f.G+f.W,{Symbol:g}),f(f.S,"Symbol",K),f(f.S+f.F*!q,"Object",{create:F,defineProperty:t,defineProperties:u,getOwnPropertyDescriptor:D,getOwnPropertyNames:B,getOwnPropertySymbols:M}),l&&f(f.S+f.F*(!q||U),"JSON",{stringify:T}),s(g,"Symbol"),s(Math,"Math",!0),s(x.JSON,"JSON",!0)},function(a,c,b){a.exports=b(34)},function(b,e,a){var c=a(2),d=a(10);b.exports=a(8)?function(a,b,e){return c.setDesc(a,b,d(1,e))}:function(a,b,c){return a[b]=c,a}},function(c,f,a){var d=a(2).setDesc,e=a(14),b=a(29)("toStringTag");c.exports=function(a,c,f){a&&!e(a=f?a:a.prototype,b)&&d(a,b,{configurable:!0,value:c})}},function(b,e,a){var c=a(2),d=a(20);b.exports=function(g,h){for(var a,b=d(g),e=c.getKeys(b),
 i=e.length,f=0;i>f;)if(b[a=e[f++]]===h)return a}},function(d,h,a){var e=a(20),b=a(2).getNames,f={}.toString,c="object"==typeof window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],g=function(a){try{return b(a)}catch(d){return c.slice()}};d.exports.get=function getOwnPropertyNames(a){return c&&"[object Window]"==f.call(a)?g(a):b(e(a))}},function(b,d,c){var a=c(2);b.exports=function(b){var c=a.getKeys(b),d=a.getSymbols;if(d)for(var e,f=d(b),h=a.isEnum,g=0;f.length>g;)h.call(b,e=f[g++])&&c.push(e);return c}},function(a,b){a.exports=!0},function(c,d,b){var a=b(3);a(a.S+a.F,"Object",{assign:b(41)})},function(c,f,a){var b=a(2),d=a(18),e=a(21);c.exports=a(9)(function(){var a=Object.assign,b={},c={},d=Symbol(),e="abcdefghijklmnopqrst";return b[d]=7,e.split("").forEach(function(a){c[a]=a}),7!=a({},b)[d]||Object.keys(a({},c)).join("")!=e})?function assign(n,q){for(var g=d(n),h=arguments,o=h.length,j=1,f=b.getKeys,l=b.getSymbols,m=b.isEnum;o>j;)for(var c,a=e(h[j++]),k=l?f(a
 ).concat(l(a)):f(a),p=k.length,i=0;p>i;)m.call(a,c=k[i++])&&(g[c]=a[c]);return g}:Object.assign},function(c,d,a){var b=a(3);b(b.S,"Object",{is:a(43)})},function(a,b){a.exports=Object.is||function is(a,b){return a===b?0!==a||1/a===1/b:a!=a&&b!=b}},function(c,d,a){var b=a(3);b(b.S,"Object",{setPrototypeOf:a(45).set})},function(d,h,b){var e=b(2).getDesc,f=b(13),g=b(17),c=function(b,a){if(g(b),!f(a)&&null!==a)throw TypeError(a+": can't set as prototype!")};d.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(f,a,d){try{d=b(6)(Function.call,e(Object.prototype,"__proto__").set,2),d(f,[]),a=!(f instanceof Array)}catch(g){a=!0}return function setPrototypeOf(b,e){return c(b,e),a?b.__proto__=e:d(b,e),b}}({},!1):a),check:c}},function(c,d,a){var b=a(13);a(47)("freeze",function(a){return function freeze(c){return a&&b(c)?a(c):c}})},function(c,f,a){var b=a(3),d=a(5),e=a(9);c.exports=function(a,g){var c=(d.Object||{})[a]||Object[a],f={};f[a]=g(c),b(b.S+b.F*e(function(){c(1)}),"Object",f
 )}},function(c,d,a){var b=a(13);a(47)("seal",function(a){return function seal(c){return a&&b(c)?a(c):c}})},function(c,d,a){var b=a(13);a(47)("preventExtensions",function(a){return function preventExtensions(c){return a&&b(c)?a(c):c}})},function(c,d,a){var b=a(13);a(47)("isFrozen",function(a){return function isFrozen(c){return b(c)?a?a(c):!1:!0}})},function(c,d,a){var b=a(13);a(47)("isSealed",function(a){return function isSealed(c){return b(c)?a?a(c):!1:!0}})},function(c,d,a){var b=a(13);a(47)("isExtensible",function(a){return function isExtensible(c){return b(c)?a?a(c):!0:!1}})},function(c,d,a){var b=a(20);a(47)("getOwnPropertyDescriptor",function(a){return function getOwnPropertyDescriptor(c,d){return a(b(c),d)}})},function(c,d,a){var b=a(18);a(47)("getPrototypeOf",function(a){return function getPrototypeOf(c){return a(b(c))}})},function(c,d,a){var b=a(18);a(47)("keys",function(a){return function keys(c){return a(b(c))}})},function(b,c,a){a(47)("getOwnPropertyNames",function(){retu
 rn a(37).get})},function(f,g,a){var b=a(2),c=a(13),d=a(29)("hasInstance"),e=Function.prototype;d in e||b.setDesc(e,d,{value:function(a){if("function"!=typeof this||!c(a))return!1;if(!c(this.prototype))return a instanceof this;for(;a=b.getProto(a);)if(this.prototype===a)return!0;return!1}})},function(c,d,b){var a=b(3);a(a.S,"Number",{EPSILON:Math.pow(2,-52)})},function(d,e,a){var b=a(3),c=a(4).isFinite;b(b.S,"Number",{isFinite:function isFinite(a){return"number"==typeof a&&c(a)}})},function(c,d,a){var b=a(3);b(b.S,"Number",{isInteger:a(61)})},function(a,e,b){var c=b(13),d=Math.floor;a.exports=function isInteger(a){return!c(a)&&isFinite(a)&&d(a)===a}},function(c,d,b){var a=b(3);a(a.S,"Number",{isNaN:function isNaN(a){return a!=a}})},function(e,f,a){var b=a(3),c=a(61),d=Math.abs;b(b.S,"Number",{isSafeInteger:function isSafeInteger(a){return c(a)&&d(a)<=9007199254740991}})},function(c,d,b){var a=b(3);a(a.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},function(c,d,b){var a=b(3);a(a.S,"
 Number",{MIN_SAFE_INTEGER:-9007199254740991})},function(c,d,b){var a=b(3);a(a.S,"Number",{parseFloat:parseFloat})},function(c,d,b){var a=b(3);a(a.S,"Number",{parseInt:parseInt})},function(f,g,b){var a=b(3),e=b(69),c=Math.sqrt,d=Math.acosh;a(a.S+a.F*!(d&&710==Math.floor(d(Number.MAX_VALUE))),"Math",{acosh:function acosh(a){return(a=+a)<1?NaN:a>94906265.62425156?Math.log(a)+Math.LN2:e(a-1+c(a-1)*c(a+1))}})},function(a,b){a.exports=Math.log1p||function log1p(a){return(a=+a)>-1e-8&&1e-8>a?a-a*a/2:Math.log(1+a)}},function(c,d,b){function asinh(a){return isFinite(a=+a)&&0!=a?0>a?-asinh(-a):Math.log(a+Math.sqrt(a*a+1)):a}var a=b(3);a(a.S,"Math",{asinh:asinh})},function(c,d,b){var a=b(3);a(a.S,"Math",{atanh:function atanh(a){return 0==(a=+a)?a:Math.log((1+a)/(1-a))/2}})},function(d,e,a){var b=a(3),c=a(73);b(b.S,"Math",{cbrt:function cbrt(a){return c(a=+a)*Math.pow(Math.abs(a),1/3)}})},function(a,b){a.exports=Math.sign||function sign(a){return 0==(a=+a)||a!=a?a:0>a?-1:1}},function(c,d,b){var
  a=b(3);a(a.S,"Math",{clz32:function clz32(a){return(a>>>=0)?31-Math.floor(Math.log(a+.5)*Math.LOG2E):32}})},function(d,e,c){var a=c(3),b=Math.exp;a(a.S,"Math",{cosh:function cosh(a){return(b(a=+a)+b(-a))/2}})},function(c,d,a){var b=a(3);b(b.S,"Math",{expm1:a(77)})},function(a,b){a.exports=Math.expm1||function expm1(a){return 0==(a=+a)?a:a>-1e-6&&1e-6>a?a+a*a/2:Math.exp(a)-1}},function(k,j,e){var f=e(3),g=e(73),a=Math.pow,d=a(2,-52),b=a(2,-23),i=a(2,127)*(2-b),c=a(2,-126),h=function(a){return a+1/d-1/d};f(f.S,"Math",{fround:function fround(k){var f,a,e=Math.abs(k),j=g(k);return c>e?j*h(e/c/b)*c*b:(f=(1+b/d)*e,a=f-(f-e),a>i||a!=a?j*(1/0):j*a)}})},function(d,e,b){var a=b(3),c=Math.abs;a(a.S,"Math",{hypot:function hypot(i,j){for(var a,b,e=0,f=0,g=arguments,h=g.length,d=0;h>f;)a=c(g[f++]),a>d?(b=d/a,e=e*b*b+1,d=a):a>0?(b=a/d,e+=b*b):e+=a;return d===1/0?1/0:d*Math.sqrt(e)}})},function(d,e,b){var a=b(3),c=Math.imul;a(a.S+a.F*b(9)(function(){return-5!=c(4294967295,5)||2!=c.length}),"Math",
 {imul:function imul(f,g){var a=65535,b=+f,c=+g,d=a&b,e=a&c;return 0|d*e+((a&b>>>16)*e+d*(a&c>>>16)<<16>>>0)}})},function(c,d,b){var a=b(3);a(a.S,"Math",{log10:function log10(a){return Math.log(a)/Math.LN10}})},function(c,d,a){var b=a(3);b(b.S,"Math",{log1p:a(69)})},function(c,d,b){var a=b(3);a(a.S,"Math",{log2:function log2(a){return Math.log(a)/Math.LN2}})},function(c,d,a){var b=a(3);b(b.S,"Math",{sign:a(73)})},function(e,f,a){var b=a(3),c=a(77),d=Math.exp;b(b.S+b.F*a(9)(function(){return-2e-17!=!Math.sinh(-2e-17)}),"Math",{sinh:function sinh(a){return Math.abs(a=+a)<1?(c(a)-c(-a))/2:(d(a-1)-d(-a-1))*(Math.E/2)}})},function(e,f,a){var b=a(3),c=a(77),d=Math.exp;b(b.S,"Math",{tanh:function tanh(a){var b=c(a=+a),e=c(-a);return b==1/0?1:e==1/0?-1:(b-e)/(d(a)+d(-a))}})},function(c,d,b){var a=b(3);a(a.S,"Math",{trunc:function trunc(a){return(a>0?Math.floor:Math.ceil)(a)}})},function(f,g,b){var a=b(3),e=b(23),c=String.fromCharCode,d=String.fromCodePoint;a(a.S+a.F*(!!d&&1!=d.length),"Strin
 g",{fromCodePoint:function fromCodePoint(h){for(var a,b=[],d=arguments,g=d.length,f=0;g>f;){if(a=+d[f++],e(a,1114111)!==a)throw RangeError(a+" is not a valid code point");b.push(65536>a?c(a):c(((a-=65536)>>10)+55296,a%1024+56320))}return b.join("")}})},function(e,f,a){var b=a(3),c=a(20),d=a(24);b(b.S,"String",{raw:function raw(g){for(var e=c(g.raw),h=d(e.length),f=arguments,i=f.length,b=[],a=0;h>a;)b.push(String(e[a++])),i>a&&b.push(String(f[a]));return b.join("")}})},function(b,c,a){a(91)("trim",function(a){return function trim(){return a(this,3)}})},function(g,m,b){var c=b(3),h=b(19),i=b(9),d="	\n\f\r   ᠎              \u2028\u2029\ufeff",a="["+d+"]",f="​…",j=RegExp("^"+a+a+"*"),k=RegExp(a+a+"*$"),e=function(a,e){var b={};b[a]=e(l),c(c.P+c.F*i(function(){return!!d[a]()||f[a]()!=f}),"String",b)},l=e.trim=function(a,b){return a=String(h(a)),1&b&&(a=a.replace(j,"")),2&b&&(a=a.replace(k,"")),a};g.exports=e},function(d,e,a){var b=a(3),c=a(93)(!1);b(b
 .P,"String",{codePointAt:function codePointAt(a){return c(this,a)}})},function(c,f,b){var d=b(22),e=b(19);c.exports=function(b){return function(j,k){var f,h,g=String(e(j)),c=d(k),i=g.length;return 0>c||c>=i?b?"":a:(f=g.charCodeAt(c),55296>f||f>56319||c+1===i||(h=g.charCodeAt(c+1))<56320||h>57343?b?g.charAt(c):f:b?g.slice(c,c+2):(f-55296<<10)+(h-56320)+65536)}}},function(h,i,b){var c=b(3),e=b(24),g=b(95),d="endsWith",f=""[d];c(c.P+c.F*b(97)(d),"String",{endsWith:function endsWith(i){var b=g(this,i,d),j=arguments,k=j.length>1?j[1]:a,l=e(b.length),c=k===a?l:Math.min(e(k),l),h=String(i);return f?f.call(b,h,c):b.slice(c-h.length,c)===h}})},function(b,e,a){var c=a(96),d=a(19);b.exports=function(a,b,e){if(c(b))throw TypeError("String#"+e+" doesn't accept regex!");return String(d(a))}},function(c,g,b){var d=b(13),e=b(15),f=b(29)("match");c.exports=function(b){var c;return d(b)&&((c=b[f])!==a?!!c:"RegExp"==e(b))}},function(a,d,b){var c=b(29)("match");a.exports=function(b){var a=/./;try{"/./"
 [b](a)}catch(d){try{return a[c]=!1,!"/./"[b](a)}catch(e){}}return!0}},function(f,g,b){var c=b(3),e=b(95),d="includes";c(c.P+c.F*b(97)(d),"String",{includes:function includes(b){return!!~e(this,b,d).indexOf(b,arguments.length>1?arguments[1]:a)}})},function(c,d,a){var b=a(3);b(b.P,"String",{repeat:a(100)})},function(b,e,a){var c=a(22),d=a(19);b.exports=function repeat(f){var b=String(d(this)),e="",a=c(f);if(0>a||a==1/0)throw RangeError("Count can't be negative");for(;a>0;(a>>>=1)&&(b+=b))1&a&&(e+=b);return e}},function(h,i,b){var c=b(3),f=b(24),g=b(95),d="startsWith",e=""[d];c(c.P+c.F*b(97)(d),"String",{startsWith:function startsWith(i){var b=g(this,i,d),j=arguments,c=f(Math.min(j.length>1?j[1]:a,b.length)),h=String(i);return e?e.call(b,h,c):b.slice(c,c+h.length)===h}})},function(d,e,b){var c=b(93)(!0);b(103)(String,"String",function(a){this._t=String(a),this._i=0},function(){var b,d=this._t,e=this._i;return e>=d.length?{value:a,done:!0}:(b=c(d,e),this._i+=b.length,{value:b,done:!1})}
 )},function(o,r,a){var i=a(39),d=a(3),n=a(33),h=a(34),m=a(14),f=a(104),q=a(105),p=a(35),l=a(2).getProto,c=a(29)("iterator"),e=!([].keys&&"next"in[].keys()),j="@@iterator",k="keys",b="values",g=function(){return this};o.exports=function(B,v,u,F,s,E,A){q(u,v,F);var r,x,w=function(c){if(!e&&c in a)return a[c];switch(c){case k:return function keys(){return new u(this,c)};case b:return function values(){return new u(this,c)}}return function entries(){return new u(this,c)}},C=v+" Iterator",y=s==b,z=!1,a=B.prototype,t=a[c]||a[j]||s&&a[s],o=t||w(s);if(t){var D=l(o.call(new B));p(D,C,!0),!i&&m(a,j)&&h(D,c,g),y&&t.name!==b&&(z=!0,o=function values(){return t.call(this)})}if(i&&!A||!e&&!z&&a[c]||h(a,c,o),f[v]=o,f[C]=g,s)if(r={values:y?o:w(b),keys:E?o:w(k),entries:y?w("entries"):o},A)for(x in r)x in a||n(a,x,r[x]);else d(d.P+d.F*(e||z),v,r);return r}},function(a,b){a.exports={}},function(c,g,a){var d=a(2),e=a(10),f=a(35),b={};a(34)(b,a(29)("iterator"),function(){return this}),c.exports=function
 (a,c,g){a.prototype=d.create(b,{next:e(1,g)}),f(a,c+" Iterator")}},function(j,k,b){var d=b(6),c=b(3),e=b(18),f=b(107),g=b(108),h=b(24),i=b(109);c(c.S+c.F*!b(111)(function(a){Array.from(a)}),"Array",{from:function from(t){var n,c,r,m,j=e(t),l="function"==typeof this?this:Array,p=arguments,s=p.length,k=s>1?p[1]:a,q=k!==a,b=0,o=i(j);if(q&&(k=d(k,s>2?p[2]:a,2)),o==a||l==Array&&g(o))for(n=h(j.length),c=new l(n);n>b;b++)c[b]=q?k(j[b],b):j[b];else for(m=o.call(j),c=new l;!(r=m.next()).done;b++)c[b]=q?f(m,k,[r.value,b],!0):r.value;return c.length=b,c}})},function(c,e,d){var b=d(17);c.exports=function(d,e,c,g){try{return g?e(b(c)[0],c[1]):e(c)}catch(h){var f=d["return"];throw f!==a&&b(f.call(d)),h}}},function(c,g,b){var d=b(104),e=b(29)("iterator"),f=Array.prototype;c.exports=function(b){return b!==a&&(d.Array===b||f[e]===b)}},function(c,g,b){var d=b(110),e=b(29)("iterator"),f=b(104);c.exports=b(5).getIteratorMethod=function(b){return b!=a?b[e]||b["@@iterator"]||f[d(b)]:void 0}},function(d,g
 ,c){var b=c(15),e=c(29)("toStringTag"),f="Arguments"==b(function(){return arguments}());d.exports=function(d){var c,g,h;return d===a?"Undefined":null===d?"Null":"string"==typeof(g=(c=Object(d))[e])?g:f?b(c):"Object"==(h=b(c))&&"function"==typeof c.callee?"Arguments":h}},function(d,f,e){var a=e(29)("iterator"),b=!1;try{var c=[7][a]();c["return"]=function(){b=!0},Array.from(c,function(){throw 2})}catch(g){}d.exports=function(f,g){if(!g&&!b)return!1;var d=!1;try{var c=[7],e=c[a]();e.next=function(){return{done:d=!0}},c[a]=function(){return e},f(c)}catch(h){}return d}},function(c,d,b){var a=b(3);a(a.S+a.F*b(9)(function(){function F(){}return!(Array.of.call(F)instanceof F)}),"Array",{of:function of(){for(var a=0,d=arguments,b=d.length,c=new("function"==typeof this?this:Array)(b);b>a;)c[a]=d[a++];return c.length=b,c}})},function(f,h,b){var d=b(114),c=b(115),e=b(104),g=b(20);f.exports=b(103)(Array,"Array",function(a,b){this._t=g(a),this._i=0,this._k=b},function(){var d=this._t,e=this._k,b=
 this._i++;return!d||b>=d.length?(this._t=a,c(1)):"keys"==e?c(0,b):"values"==e?c(0,d[b]):c(0,[b,d[b]])},"values"),e.Arguments=e.Array,d("keys"),d("values"),d("entries")},function(a,b){a.exports=function(){}},function(a,b){a.exports=function(a,b){return{value:b,done:!!a}}},function(b,c,a){a(117)("Array")},function(c,g,a){var d=a(5),e=a(2),f=a(8),b=a(29)("species");c.exports=function(c){var a=d[c];f&&a&&!a[b]&&e.setDesc(a,b,{configurable:!0,get:function(){return this}})}},function(c,d,a){var b=a(3);b(b.P,"Array",{copyWithin:a(119)}),a(114)("copyWithin")},function(d,g,b){var e=b(18),c=b(23),f=b(24);d.exports=[].copyWithin||function copyWithin(m,n){var g=e(this),h=f(g.length),b=c(m,h),d=c(n,h),k=arguments,l=k.length>2?k[2]:a,i=Math.min((l===a?h:c(l,h))-d,h-b),j=1;for(b>d&&d+i>b&&(j=-1,d+=i-1,b+=i-1);i-->0;)d in g?g[b]=g[d]:delete g[b],b+=j,d+=j;return g}},function(c,d,a){var b=a(3);b(b.P,"Array",{fill:a(121)}),a(114)("fill")},function(d,g,b){var e=b(18),c=b(23),f=b(24);d.exports=[].fill|
 |function fill(k){for(var b=e(this),d=f(b.length),g=arguments,h=g.length,i=c(h>1?g[1]:a,d),j=h>2?g[2]:a,l=j===a?d:c(j,d);l>i;)b[i++]=k;return b}},function(g,h,b){var c=b(3),f=b(26)(5),d="find",e=!0;d in[]&&Array(1)[d](function(){e=!1}),c(c.P+c.F*e,"Array",{find:function find(b){return f(this,b,arguments.length>1?arguments[1]:a)}}),b(114)(d)},function(g,h,b){var c=b(3),f=b(26)(6),d="findIndex",e=!0;d in[]&&Array(1)[d](function(){e=!1}),c(c.P+c.F*e,"Array",{findIndex:function findIndex(b){return f(this,b,arguments.length>1?arguments[1]:a)}}),b(114)(d)},function(K,J,b){var s,l=b(2),F=b(39),k=b(4),j=b(6),I=b(110),d=b(3),D=b(13),E=b(17),m=b(7),G=b(125),p=b(126),q=b(45).set,A=b(43),B=b(29)("species"),z=b(127),v=b(128),e="Promise",o=k.process,H="process"==I(o),c=k[e],i=function(){},r=function(d){var b,a=new c(i);return d&&(a.constructor=function(a){a(i,i)}),(b=c.resolve(a))["catch"](i),b===a},h=function(){function P2(b){var a=new c(b);return q(a,P2.prototype),a}var a=!1;try{if(a=c&&c.resol
 ve&&r(),q(P2,c),P2.prototype=l.create(c.prototype,{constructor:{value:P2}}),P2.resolve(5).then(function(){})instanceof P2||(a=!1),a&&b(8)){var d=!1;c.resolve(l.setDesc({},"then",{get:function(){d=!0}})),a=d}}catch(e){a=!1}return a}(),C=function(a,b){return F&&a===c&&b===s?!0:A(a,b)},t=function(b){var c=E(b)[B];return c!=a?c:b},u=function(a){var b;return D(a)&&"function"==typeof(b=a.then)?b:!1},g=function(d){var b,c;this.promise=new d(function(d,e){if(b!==a||c!==a)throw TypeError("Bad Promise constructor");b=d,c=e}),this.resolve=m(b),this.reject=m(c)},w=function(a){try{a()}catch(b){return{error:b}}},n=function(b,d){if(!b.n){b.n=!0;var c=b.c;v(function(){for(var e=b.v,f=1==b.s,g=0,h=function(a){var c,h,g=f?a.ok:a.fail,i=a.resolve,d=a.reject;try{g?(f||(b.h=!0),c=g===!0?e:g(e),c===a.promise?d(TypeError("Promise-chain cycle")):(h=u(c))?h.call(c,i,d):i(c)):d(e)}catch(j){d(j)}};c.length>g;)h(c[g++]);c.length=0,b.n=!1,d&&setTimeout(function(){var f,c,d=b.p;y(d)&&(H?o.emit("unhandledRejectio
 n",e,d):(f=k.onunhandledrejection)?f({promise:d,reason:e}):(c=k.console)&&c.error&&c.error("Unhandled promise rejection",e)),b.a=a},1)})}},y=function(e){var a,b=e._d,c=b.a||b.c,d=0;if(b.h)return!1;for(;c.length>d;)if(a=c[d++],a.fail||!y(a.promise))return!1;return!0},f=function(b){var a=this;a.d||(a.d=!0,a=a.r||a,a.v=b,a.s=2,a.a=a.c.slice(),n(a,!0))},x=function(b){var c,a=this;if(!a.d){a.d=!0,a=a.r||a;try{if(a.p===b)throw TypeError("Promise can't be resolved itself");(c=u(b))?v(function(){var d={r:a,d:!1};try{c.call(b,j(x,d,1),j(f,d,1))}catch(e){f.call(d,e)}}):(a.v=b,a.s=1,n(a,!1))}catch(d){f.call({r:a,d:!1},d)}}};h||(c=function Promise(d){m(d);var b=this._d={p:G(this,c,e),c:[],a:a,s:0,d:!1,v:a,h:!1,n:!1};try{d(j(x,b,1),j(f,b,1))}catch(g){f.call(b,g)}},b(130)(c.prototype,{then:function then(d,e){var a=new g(z(this,c)),f=a.promise,b=this._d;return a.ok="function"==typeof d?d:!0,a.fail="function"==typeof e&&e,b.c.push(a),b.a&&b.a.push(a),b.s&&n(b,!1),f},"catch":function(b){return this.
 then(a,b)}})),d(d.G+d.W+d.F*!h,{Promise:c}),b(35)(c,e),b(117)(e),s=b(5)[e],d(d.S+d.F*!h,e,{reject:function reject(b){var a=new g(this),c=a.reject;return c(b),a.promise}}),d(d.S+d.F*(!h||r(!0)),e,{resolve:function resolve(a){if(a instanceof c&&C(a.constructor,this))return a;var b=new g(this),d=b.resolve;return d(a),b.promise}}),d(d.S+d.F*!(h&&b(111)(function(a){c.all(a)["catch"](function(){})})),e,{all:function all(h){var c=t(this),b=new g(c),d=b.resolve,e=b.reject,a=[],f=w(function(){p(h,!1,a.push,a);var b=a.length,f=Array(b);b?l.each.call(a,function(g,h){var a=!1;c.resolve(g).then(function(c){a||(a=!0,f[h]=c,--b||d(f))},e)}):d(f)});return f&&e(f.error),b.promise},race:function race(e){var b=t(this),a=new g(b),c=a.reject,d=w(function(){p(e,!1,function(d){b.resolve(d).then(a.resolve,c)})});return d&&c(d.error),a.promise}})},function(a,b){a.exports=function(a,b,c){if(!(a instanceof b))throw TypeError(c+": use the 'new' operator!");return a}},function(b,i,a){var c=a(6),d=a(107),e=a(108
 ),f=a(17),g=a(24),h=a(109);b.exports=function(a,j,o,p){var n,b,k,l=h(a),m=c(o,p,j?2:1),i=0;if("function"!=typeof l)throw TypeError(a+" is not iterable!");if(e(l))for(n=g(a.length);n>i;i++)j?m(f(b=a[i])[0],b[1]):m(a[i]);else for(k=l.call(a);!(b=k.next()).done;)d(k,m,b.value,j)}},function(d,g,b){var c=b(17),e=b(7),f=b(29)("species");d.exports=function(g,h){var b,d=c(g).constructor;return d===a||(b=c(d)[f])==a?h:e(b)}},function(n,p,h){var b,f,g,c=h(4),o=h(129).set,k=c.MutationObserver||c.WebKitMutationObserver,d=c.process,i=c.Promise,j="process"==h(15)(d),e=function(){var e,c,g;for(j&&(e=d.domain)&&(d.domain=null,e.exit());b;)c=b.domain,g=b.fn,c&&c.enter(),g(),c&&c.exit(),b=b.next;f=a,e&&e.enter()};if(j)g=function(){d.nextTick(e)};else if(k){var m=1,l=document.createTextNode("");new k(e).observe(l,{characterData:!0}),g=function(){l.data=m=-m}}else g=i&&i.resolve?function(){i.resolve().then(e)}:function(){o.call(c,e)};n.exports=function asap(e){var c={fn:e,next:a,domain:j&&d.domain};f&&
 (f.next=c),b||(b=c,g()),f=c}},function(s,t,b){var c,g,f,k=b(6),r=b(16),n=b(11),p=b(12),a=b(4),l=a.process,h=a.setImmediate,i=a.clearImmediate,o=a.MessageChannel,j=0,d={},q="onreadystatechange",e=function(){
-var a=+this;if(d.hasOwnProperty(a)){var b=d[a];delete d[a],b()}},m=function(a){e.call(a.data)};h&&i||(h=function setImmediate(a){for(var b=[],e=1;arguments.length>e;)b.push(arguments[e++]);return d[++j]=function(){r("function"==typeof a?a:Function(a),b)},c(j),j},i=function clearImmediate(a){delete d[a]},"process"==b(15)(l)?c=function(a){l.nextTick(k(e,a,1))}:o?(g=new o,f=g.port2,g.port1.onmessage=m,c=k(f.postMessage,f,1)):a.addEventListener&&"function"==typeof postMessage&&!a.importScripts?(c=function(b){a.postMessage(b+"","*")},a.addEventListener("message",m,!1)):c=q in p("script")?function(a){n.appendChild(p("script"))[q]=function(){n.removeChild(this),e.call(a)}}:function(a){setTimeout(k(e,a,1),0)}),s.exports={set:h,clear:i}},function(a,d,b){var c=b(33);a.exports=function(a,b){for(var d in b)c(a,d,b[d]);return a}},function(d,e,c){var b=c(132);c(133)("Map",function(b){return function Map(){return b(this,arguments.length>0?arguments[0]:a)}},{get:function get(c){var a=b.getEntry(thi
 s,c);return a&&a.v},set:function set(a,c){return b.def(this,0===a?0:a,c)}},b,!0)},function(v,w,b){var j=b(2),m=b(34),o=b(130),n=b(6),p=b(125),r=b(19),t=b(126),l=b(103),d=b(115),f=b(25)("id"),k=b(14),h=b(13),q=b(117),i=b(8),s=Object.isExtensible||h,c=i?"_s":"size",u=0,g=function(a,b){if(!h(a))return"symbol"==typeof a?a:("string"==typeof a?"S":"P")+a;if(!k(a,f)){if(!s(a))return"F";if(!b)return"E";m(a,f,++u)}return"O"+a[f]},e=function(b,c){var a,d=g(c);if("F"!==d)return b._i[d];for(a=b._f;a;a=a.n)if(a.k==c)return a};v.exports={getConstructor:function(d,f,g,h){var b=d(function(d,e){p(d,b,f),d._i=j.create(null),d._f=a,d._l=a,d[c]=0,e!=a&&t(e,g,d[h],d)});return o(b.prototype,{clear:function clear(){for(var d=this,e=d._i,b=d._f;b;b=b.n)b.r=!0,b.p&&(b.p=b.p.n=a),delete e[b.i];d._f=d._l=a,d[c]=0},"delete":function(g){var b=this,a=e(b,g);if(a){var d=a.n,f=a.p;delete b._i[a.i],a.r=!0,f&&(f.n=d),d&&(d.p=f),b._f==a&&(b._f=d),b._l==a&&(b._l=f),b[c]--}return!!a},forEach:function forEach(c){for(var
  b,d=n(c,arguments.length>1?arguments[1]:a,3);b=b?b.n:this._f;)for(d(b.v,b.k,this);b&&b.r;)b=b.p},has:function has(a){return!!e(this,a)}}),i&&j.setDesc(b.prototype,"size",{get:function(){return r(this[c])}}),b},def:function(b,f,j){var h,i,d=e(b,f);return d?d.v=j:(b._l=d={i:i=g(f,!0),k:f,v:j,p:h=b._l,n:a,r:!1},b._f||(b._f=d),h&&(h.n=d),b[c]++,"F"!==i&&(b._i[i]=d)),b},getEntry:e,setStrong:function(e,b,c){l(e,b,function(b,c){this._t=b,this._k=c,this._l=a},function(){for(var c=this,e=c._k,b=c._l;b&&b.r;)b=b.p;return c._t&&(c._l=b=b?b.n:c._t._f)?"keys"==e?d(0,b.k):"values"==e?d(0,b.v):d(0,[b.k,b.v]):(c._t=a,d(1))},c?"entries":"values",!c,!0),q(b)}}},function(g,o,b){var d=b(2),f=b(4),c=b(3),h=b(9),e=b(34),j=b(130),k=b(126),l=b(125),m=b(13),i=b(35),n=b(8);g.exports=function(g,s,w,r,p,o){var t=f[g],b=t,u=p?"set":"add",q=b&&b.prototype,v={};return n&&"function"==typeof b&&(o||q.forEach&&!h(function(){(new b).entries().next()}))?(b=s(function(c,d){l(c,b,g),c._c=new t,d!=a&&k(d,p,c[u],c)}),d.e
 ach.call("add,clear,delete,forEach,get,has,set,keys,values,entries".split(","),function(c){var d="add"==c||"set"==c;c in q&&(!o||"clear"!=c)&&e(b.prototype,c,function(b,e){if(!d&&o&&!m(b))return"get"==c?a:!1;var f=this._c[c](0===b?0:b,e);return d?this:f})}),"size"in q&&d.setDesc(b.prototype,"size",{get:function(){return this._c.size}})):(b=r.getConstructor(s,g,p,u),j(b.prototype,w)),i(b,g),v[g]=b,c(c.G+c.W+c.F,v),o||r.setStrong(b,g,p),b}},function(d,e,b){var c=b(132);b(133)("Set",function(b){return function Set(){return b(this,arguments.length>0?arguments[0]:a)}},{add:function add(a){return c.def(this,a=0===a?0:a,a)}},c)},function(n,m,b){var l=b(2),k=b(33),c=b(136),d=b(13),j=b(14),i=c.frozenStore,h=c.WEAK,f=Object.isExtensible||d,e={},g=b(133)("WeakMap",function(b){return function WeakMap(){return b(this,arguments.length>0?arguments[0]:a)}},{get:function get(a){if(d(a)){if(!f(a))return i(this).get(a);if(j(a,h))return a[h][this._i]}},set:function set(a,b){return c.def(this,a,b)}},c,!
 0,!0);7!=(new g).set((Object.freeze||Object)(e),7).get(e)&&l.each.call(["delete","has","get","set"],function(a){var b=g.prototype,c=b[a];k(b,a,function(b,e){if(d(b)&&!f(b)){var g=i(this)[a](b,e);return"set"==a?this:g}return c.call(this,b,e)})})},function(s,t,b){var r=b(34),q=b(130),m=b(17),h=b(13),l=b(125),k=b(126),j=b(26),d=b(14),c=b(25)("weak"),g=Object.isExtensible||h,n=j(5),o=j(6),p=0,e=function(a){return a._l||(a._l=new i)},i=function(){this.a=[]},f=function(a,b){return n(a.a,function(a){return a[0]===b})};i.prototype={get:function(b){var a=f(this,b);return a?a[1]:void 0},has:function(a){return!!f(this,a)},set:function(a,b){var c=f(this,a);c?c[1]=b:this.a.push([a,b])},"delete":function(b){var a=o(this.a,function(a){return a[0]===b});return~a&&this.a.splice(a,1),!!~a}},s.exports={getConstructor:function(f,i,j,m){var b=f(function(c,d){l(c,b,i),c._i=p++,c._l=a,d!=a&&k(d,j,c[m],c)});return q(b.prototype,{"delete":function(a){return h(a)?g(a)?d(a,c)&&d(a[c],this._i)&&delete a[c][thi
 s._i]:e(this)["delete"](a):!1},has:function has(a){return h(a)?g(a)?d(a,c)&&d(a[c],this._i):e(this).has(a):!1}}),b},def:function(b,a,f){return g(m(a))?(d(a,c)||r(a,c,{}),a[c][b._i]=f):e(b).set(a,f),b},frozenStore:e,WEAK:c}},function(d,e,b){var c=b(136);b(133)("WeakSet",function(b){return function WeakSet(){return b(this,arguments.length>0?arguments[0]:a)}},{add:function add(a){return c.def(this,a,!0)}},c,!1,!0)},function(e,f,a){var b=a(3),c=Function.apply,d=a(17);b(b.S,"Reflect",{apply:function apply(a,b,e){return c.call(a,b,d(e))}})},function(h,i,a){var e=a(2),b=a(3),c=a(7),f=a(17),d=a(13),g=Function.bind||a(5).Function.prototype.bind;b(b.S+b.F*a(9)(function(){function F(){}return!(Reflect.construct(function(){},[],F)instanceof F)}),"Reflect",{construct:function construct(b,a){c(b),f(a);var i=arguments.length<3?b:c(arguments[2]);if(b==i){switch(a.length){case 0:return new b;case 1:return new b(a[0]);case 2:return new b(a[0],a[1]);case 3:return new b(a[0],a[1],a[2]);case 4:return ne
 w b(a[0],a[1],a[2],a[3])}var h=[null];return h.push.apply(h,a),new(g.apply(b,h))}var j=i.prototype,k=e.create(d(j)?j:Object.prototype),l=Function.apply.call(b,k,a);return d(l)?l:k}})},function(e,f,a){var c=a(2),b=a(3),d=a(17);b(b.S+b.F*a(9)(function(){Reflect.defineProperty(c.setDesc({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function defineProperty(a,b,e){d(a);try{return c.setDesc(a,b,e),!0}catch(f){return!1}}})},function(e,f,a){var b=a(3),c=a(2).getDesc,d=a(17);b(b.S,"Reflect",{deleteProperty:function deleteProperty(a,b){var e=c(d(a),b);return e&&!e.configurable?!1:delete a[b]}})},function(f,g,b){var c=b(3),e=b(17),d=function(a){this._t=e(a),this._i=0;var b,c=this._k=[];for(b in a)c.push(b)};b(105)(d,"Object",function(){var c,b=this,d=b._k;do if(b._i>=d.length)return{value:a,done:!0};while(!((c=d[b._i++])in b._t));return{value:c,done:!1}}),c(c.S,"Reflect",{enumerate:function enumerate(a){return new d(a)}})},function(h,i,b){function get(b,h){var d,j,i=arguments.length
 <3?b:arguments[2];return g(b)===i?b[h]:(d=c.getDesc(b,h))?e(d,"value")?d.value:d.get!==a?d.get.call(i):a:f(j=c.getProto(b))?get(j,h,i):void 0}var c=b(2),e=b(14),d=b(3),f=b(13),g=b(17);d(d.S,"Reflect",{get:get})},function(e,f,a){var c=a(2),b=a(3),d=a(17);b(b.S,"Reflect",{getOwnPropertyDescriptor:function getOwnPropertyDescriptor(a,b){return c.getDesc(d(a),b)}})},function(e,f,a){var b=a(3),c=a(2).getProto,d=a(17);b(b.S,"Reflect",{getPrototypeOf:function getPrototypeOf(a){return c(d(a))}})},function(c,d,b){var a=b(3);a(a.S,"Reflect",{has:function has(a,b){return b in a}})},function(e,f,a){var b=a(3),d=a(17),c=Object.isExtensible;b(b.S,"Reflect",{isExtensible:function isExtensible(a){return d(a),c?c(a):!0}})},function(c,d,a){var b=a(3);b(b.S,"Reflect",{ownKeys:a(149)})},function(d,f,a){var b=a(2),e=a(17),c=a(4).Reflect;d.exports=c&&c.ownKeys||function ownKeys(a){var c=b.getNames(e(a)),d=b.getSymbols;return d?c.concat(d(a)):c}},function(e,f,a){var b=a(3),d=a(17),c=Object.preventExtension
 s;b(b.S,"Reflect",{preventExtensions:function preventExtensions(a){d(a);try{return c&&c(a),!0}catch(b){return!1}}})},function(i,j,b){function set(j,i,k){var l,m,d=arguments.length<4?j:arguments[3],b=c.getDesc(h(j),i);if(!b){if(f(m=c.getProto(j)))return set(m,i,k,d);b=e(0)}return g(b,"value")?b.writable!==!1&&f(d)?(l=c.getDesc(d,i)||e(0),l.value=k,c.setDesc(d,i,l),!0):!1:b.set===a?!1:(b.set.call(d,k),!0)}var c=b(2),g=b(14),d=b(3),e=b(10),h=b(17),f=b(13);d(d.S,"Reflect",{set:set})},function(d,e,b){var c=b(3),a=b(45);a&&c(c.S,"Reflect",{setPrototypeOf:function setPrototypeOf(b,c){a.check(b,c);try{return a.set(b,c),!0}catch(d){return!1}}})},function(e,f,b){var c=b(3),d=b(31)(!0);c(c.P,"Array",{includes:function includes(b){return d(this,b,arguments.length>1?arguments[1]:a)}}),b(114)("includes")},function(d,e,a){var b=a(3),c=a(93)(!0);b(b.P,"String",{at:function at(a){return c(this,a)}})},function(e,f,b){var c=b(3),d=b(156);c(c.P,"String",{padLeft:function padLeft(b){return d(this,b,argu
 ments.length>1?arguments[1]:a,!0)}})},function(c,g,b){var d=b(24),e=b(100),f=b(19);c.exports=function(l,m,i,n){var c=String(f(l)),j=c.length,g=i===a?" ":String(i),k=d(m);if(j>=k)return c;""==g&&(g=" ");var h=k-j,b=e.call(g,Math.ceil(h/g.length));return b.length>h&&(b=b.slice(0,h)),n?b+c:c+b}},function(e,f,b){var c=b(3),d=b(156);c(c.P,"String",{padRight:function padRight(b){return d(this,b,arguments.length>1?arguments[1]:a,!1)}})},function(b,c,a){a(91)("trimLeft",function(a){return function trimLeft(){return a(this,1)}})},function(b,c,a){a(91)("trimRight",function(a){return function trimRight(){return a(this,2)}})},function(d,e,a){var b=a(3),c=a(161)(/[\\^$*+?.()|[\]{}]/g,"\\$&");b(b.S,"RegExp",{escape:function escape(a){return c(a)}})},function(a,b){a.exports=function(b,a){var c=a===Object(a)?function(b){return a[b]}:a;return function(a){return String(a).replace(b,c)}}},function(g,h,a){var b=a(2),c=a(3),d=a(149),e=a(20),f=a(10);c(c.S,"Object",{getOwnPropertyDescriptors:function getO
 wnPropertyDescriptors(k){for(var a,g,h=e(k),l=b.setDesc,m=b.getDesc,i=d(h),c={},j=0;i.length>j;)g=m(h,a=i[j++]),a in c?l(c,a,f(0,g)):c[a]=g;return c}})},function(d,e,a){var b=a(3),c=a(164)(!1);b(b.S,"Object",{values:function values(a){return c(a)}})},function(c,f,a){var b=a(2),d=a(20),e=b.isEnum;c.exports=function(a){return function(j){for(var c,f=d(j),g=b.getKeys(f),k=g.length,h=0,i=[];k>h;)e.call(f,c=g[h++])&&i.push(a?[c,f[c]]:f[c]);return i}}},function(d,e,a){var b=a(3),c=a(164)(!0);b(b.S,"Object",{entries:function entries(a){return c(a)}})},function(c,d,a){var b=a(3);b(b.P,"Map",{toJSON:a(167)("Map")})},function(b,e,a){var c=a(126),d=a(110);b.exports=function(a){return function toJSON(){if(d(this)!=a)throw TypeError(a+"#toJSON isn't generic");var b=[];return c(this,!1,b.push,b),b}}},function(c,d,a){var b=a(3);b(b.P,"Set",{toJSON:a(167)("Set")})},function(d,e,b){var a=b(3),c=b(129);a(a.G+a.B,{setImmediate:c.set,clearImmediate:c.clear})},function(c,d,b){b(113);var a=b(104);a.NodeL
 ist=a.HTMLCollection=a.Array},function(i,j,a){var c=a(4),b=a(3),g=a(16),h=a(172),d=c.navigator,e=!!d&&/MSIE .\./.test(d.userAgent),f=function(a){return e?function(b,c){return a(g(h,[].slice.call(arguments,2),"function"==typeof b?b:Function(b)),c)}:a};b(b.G+b.B+b.F*e,{setTimeout:f(c.setTimeout),setInterval:f(c.setInterval)})},function(c,f,a){var d=a(173),b=a(16),e=a(7);c.exports=function(){for(var h=e(this),a=arguments.length,c=Array(a),f=0,i=d._,g=!1;a>f;)(c[f]=arguments[f++])===i&&(g=!0);return function(){var d,k=this,f=arguments,l=f.length,e=0,j=0;if(!g&&!l)return b(h,c,k);if(d=c.slice(),g)for(;a>e;e++)d[e]===i&&(d[e]=f[j++]);for(;l>j;)d.push(f[j++]);return b(h,d,k)}}},function(a,c,b){a.exports=b(5)},function(x,w,b){function Dict(b){var c=f.create(null);return b!=a&&(r(b)?q(b,!0,function(a,b){c[a]=b}):o(c,b)),c}function reduce(g,h,l){p(h);var a,c,b=i(g),e=k(b),j=e.length,f=0;if(arguments.length<3){if(!j)throw TypeError("Reduce of empty object with no initial value");a=b[e[f++]]}el
 se a=Object(l);for(;j>f;)d(b,c=e[f++])&&(a=h(a,b[c],c,g));return a}function includes(c,b){return(b==b?j(c,b):l(c,function(a){return a!=a}))!==a}function get(a,b){return d(a,b)?a[b]:void 0}function set(a,b,c){return v&&b in Object?f.setDesc(a,b,t(0,c)):a[b]=c,a}function isDict(a){return u(a)&&f.getProto(a)===Dict.prototype}var f=b(2),n=b(6),e=b(3),t=b(10),o=b(41),j=b(36),p=b(7),q=b(126),r=b(175),s=b(105),g=b(115),u=b(13),i=b(20),v=b(8),d=b(14),k=f.getKeys,c=function(b){var e=1==b,c=4==b;return function(l,m,o){var f,h,g,p=n(m,o,3),k=i(l),j=e||7==b||2==b?new("function"==typeof this?this:Dict):a;for(f in k)if(d(k,f)&&(h=k[f],g=p(h,f,l),b))if(e)j[f]=g;else if(g)switch(b){case 2:j[f]=h;break;case 3:return!0;case 5:return h;case 6:return f;case 7:j[g[0]]=g[1]}else if(c)return!1;return 3==b||c?c:j}},l=c(6),h=function(a){return function(b){return new m(b,a)}},m=function(a,b){this._t=i(a),this._a=k(a),this._i=0,this._k=b};s(m,"Dict",function(){var c,b=this,e=b._t,f=b._a,h=b._k;do if(b._i>=f.l
 ength)return b._t=a,g(1);while(!d(e,c=f[b._i++]));return"keys"==h?g(0,c):"values"==h?g(0,e[c]):g(0,[c,e[c]])}),Dict.prototype=null,e(e.G+e.F,{Dict:Dict}),e(e.S,"Dict",{keys:h("keys"),values:h("values"),entries:h("entries"),forEach:c(0),map:c(1),filter:c(2),some:c(3),every:c(4),find:c(5),findKey:l,mapPairs:c(7),reduce:reduce,keyOf:j,includes:includes,has:d,get:get,set:set,isDict:isDict})},function(c,g,b){var d=b(110),e=b(29)("iterator"),f=b(104);c.exports=b(5).isIterable=function(c){var b=Object(c);return b[e]!==a||"@@iterator"in b||f.hasOwnProperty(d(b))}},function(b,e,a){var c=a(17),d=a(109);b.exports=a(5).getIterator=function(a){var b=d(a);if("function"!=typeof b)throw TypeError(a+" is not iterable!");return c(b.call(a))}},function(f,g,a){var c=a(4),d=a(5),b=a(3),e=a(172);b(b.G+b.F,{delay:function delay(a){return new(d.Promise||c.Promise)(function(b){setTimeout(e.call(b,!0),a)})}})},function(d,e,a){var c=a(173),b=a(3);a(5)._=c._=c._||{},b(b.P+b.F,"Function",{part:a(172)})},functio
 n(c,d,b){var a=b(3);a(a.S+a.F,"Object",{isObject:b(13)})},function(c,d,b){var a=b(3);a(a.S+a.F,"Object",{classof:b(110)})},function(d,e,b){var a=b(3),c=b(182);a(a.S+a.F,"Object",{define:c})},function(c,f,a){var b=a(2),d=a(149),e=a(20);c.exports=function define(a,c){for(var f,g=d(e(c)),i=g.length,h=0;i>h;)b.setDesc(a,f=g[h++],b.getDesc(c,f));return a}},function(e,f,a){var b=a(3),c=a(182),d=a(2).create;b(b.S+b.F,"Object",{make:function(a,b){return c(d(a),b)}})},function(c,d,b){b(103)(Number,"Number",function(a){this._l=+a,this._i=0},function(){var b=this._i++,c=!(this._l>b);return{done:c,value:c?a:b}})},function(d,e,b){var a=b(3),c=b(161)(/[&<>"']/g,{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&apos;"});a(a.P+a.F,"String",{escapeHTML:function escapeHTML(){return c(this)}})},function(d,e,b){var a=b(3),c=b(161)(/&(?:amp|lt|gt|quot|apos);/g,{"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&apos;":"'"});a(a.P+a.F,"String",{unescapeHTML:function unescapeHTML(){return c(this)}})},fu
 nction(g,h,a){var e=a(2),f=a(4),b=a(3),c={},d=!0;e.each.call("assert,clear,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,isIndependentlyComposed,log,markTimeline,profile,profileEnd,table,time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn".split(","),function(a){c[a]=function(){var b=f.console;return d&&b&&b[a]?Function.apply.call(b[a],b,arguments):void 0}}),b(b.G+b.F,{log:a(41)(c.log,c,{enable:function(){d=!0},disable:function(){d=!1}})})},function(i,j,b){var g=b(2),e=b(3),h=b(6),f=b(5).Array||Array,c={},d=function(d,b){g.each.call(d.split(","),function(d){b==a&&d in f?c[d]=f[d]:d in[]&&(c[d]=h(Function.call,[][d],b))})};d("pop,reverse,shift,keys,values,entries",1),d("indexOf,every,some,forEach,map,filter,find,findIndex,includes",3),d("join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill"),e(e.S,"Array",c)}]),"undefined"!=typeof module&&module.exports?module.exports=b:"function"==typeof define&&define.amd?define(fu
 nction(){return b}):c.core=b}(1,1);
-//# sourceMappingURL=library.min.js.map
\ No newline at end of file



[27/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asynckit/bench.js
----------------------------------------------------------------------
diff --git a/node_modules/asynckit/bench.js b/node_modules/asynckit/bench.js
deleted file mode 100644
index c612f1a..0000000
--- a/node_modules/asynckit/bench.js
+++ /dev/null
@@ -1,76 +0,0 @@
-/* eslint no-console: "off" */
-
-var asynckit = require('./')
-  , async    = require('async')
-  , assert   = require('assert')
-  , expected = 0
-  ;
-
-var Benchmark = require('benchmark');
-var suite = new Benchmark.Suite;
-
-var source = [];
-for (var z = 1; z < 100; z++)
-{
-  source.push(z);
-  expected += z;
-}
-
-suite
-// add tests
-
-.add('async.map', function(deferred)
-{
-  var total = 0;
-
-  async.map(source,
-  function(i, cb)
-  {
-    setImmediate(function()
-    {
-      total += i;
-      cb(null, total);
-    });
-  },
-  function(err, result)
-  {
-    assert.ifError(err);
-    assert.equal(result[result.length - 1], expected);
-    deferred.resolve();
-  });
-}, {'defer': true})
-
-
-.add('asynckit.parallel', function(deferred)
-{
-  var total = 0;
-
-  asynckit.parallel(source,
-  function(i, cb)
-  {
-    setImmediate(function()
-    {
-      total += i;
-      cb(null, total);
-    });
-  },
-  function(err, result)
-  {
-    assert.ifError(err);
-    assert.equal(result[result.length - 1], expected);
-    deferred.resolve();
-  });
-}, {'defer': true})
-
-
-// add listeners
-.on('cycle', function(ev)
-{
-  console.log(String(ev.target));
-})
-.on('complete', function()
-{
-  console.log('Fastest is ' + this.filter('fastest').map('name'));
-})
-// run async
-.run({ 'async': true });

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asynckit/index.js
----------------------------------------------------------------------
diff --git a/node_modules/asynckit/index.js b/node_modules/asynckit/index.js
deleted file mode 100644
index 455f945..0000000
--- a/node_modules/asynckit/index.js
+++ /dev/null
@@ -1,6 +0,0 @@
-module.exports =
-{
-  parallel      : require('./parallel.js'),
-  serial        : require('./serial.js'),
-  serialOrdered : require('./serialOrdered.js')
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asynckit/lib/abort.js
----------------------------------------------------------------------
diff --git a/node_modules/asynckit/lib/abort.js b/node_modules/asynckit/lib/abort.js
deleted file mode 100644
index 114367e..0000000
--- a/node_modules/asynckit/lib/abort.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// API
-module.exports = abort;
-
-/**
- * Aborts leftover active jobs
- *
- * @param {object} state - current state object
- */
-function abort(state)
-{
-  Object.keys(state.jobs).forEach(clean.bind(state));
-
-  // reset leftover jobs
-  state.jobs = {};
-}
-
-/**
- * Cleans up leftover job by invoking abort function for the provided job id
- *
- * @this  state
- * @param {string|number} key - job id to abort
- */
-function clean(key)
-{
-  if (typeof this.jobs[key] == 'function')
-  {
-    this.jobs[key]();
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asynckit/lib/async.js
----------------------------------------------------------------------
diff --git a/node_modules/asynckit/lib/async.js b/node_modules/asynckit/lib/async.js
deleted file mode 100644
index 7f1288a..0000000
--- a/node_modules/asynckit/lib/async.js
+++ /dev/null
@@ -1,34 +0,0 @@
-var defer = require('./defer.js');
-
-// API
-module.exports = async;
-
-/**
- * Runs provided callback asynchronously
- * even if callback itself is not
- *
- * @param   {function} callback - callback to invoke
- * @returns {function} - augmented callback
- */
-function async(callback)
-{
-  var isAsync = false;
-
-  // check if async happened
-  defer(function() { isAsync = true; });
-
-  return function async_callback(err, result)
-  {
-    if (isAsync)
-    {
-      callback(err, result);
-    }
-    else
-    {
-      defer(function nextTick_callback()
-      {
-        callback(err, result);
-      });
-    }
-  };
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asynckit/lib/defer.js
----------------------------------------------------------------------
diff --git a/node_modules/asynckit/lib/defer.js b/node_modules/asynckit/lib/defer.js
deleted file mode 100644
index b67110c..0000000
--- a/node_modules/asynckit/lib/defer.js
+++ /dev/null
@@ -1,26 +0,0 @@
-module.exports = defer;
-
-/**
- * Runs provided function on next iteration of the event loop
- *
- * @param {function} fn - function to run
- */
-function defer(fn)
-{
-  var nextTick = typeof setImmediate == 'function'
-    ? setImmediate
-    : (
-      typeof process == 'object' && typeof process.nextTick == 'function'
-      ? process.nextTick
-      : null
-    );
-
-  if (nextTick)
-  {
-    nextTick(fn);
-  }
-  else
-  {
-    setTimeout(fn, 0);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asynckit/lib/iterate.js
----------------------------------------------------------------------
diff --git a/node_modules/asynckit/lib/iterate.js b/node_modules/asynckit/lib/iterate.js
deleted file mode 100644
index 5d2839a..0000000
--- a/node_modules/asynckit/lib/iterate.js
+++ /dev/null
@@ -1,75 +0,0 @@
-var async = require('./async.js')
-  , abort = require('./abort.js')
-  ;
-
-// API
-module.exports = iterate;
-
-/**
- * Iterates over each job object
- *
- * @param {array|object} list - array or object (named list) to iterate over
- * @param {function} iterator - iterator to run
- * @param {object} state - current job status
- * @param {function} callback - invoked when all elements processed
- */
-function iterate(list, iterator, state, callback)
-{
-  // store current index
-  var key = state['keyedList'] ? state['keyedList'][state.index] : state.index;
-
-  state.jobs[key] = runJob(iterator, key, list[key], function(error, output)
-  {
-    // don't repeat yourself
-    // skip secondary callbacks
-    if (!(key in state.jobs))
-    {
-      return;
-    }
-
-    // clean up jobs
-    delete state.jobs[key];
-
-    if (error)
-    {
-      // don't process rest of the results
-      // stop still active jobs
-      // and reset the list
-      abort(state);
-    }
-    else
-    {
-      state.results[key] = output;
-    }
-
-    // return salvaged results
-    callback(error, state.results);
-  });
-}
-
-/**
- * Runs iterator over provided job element
- *
- * @param   {function} iterator - iterator to invoke
- * @param   {string|number} key - key/index of the element in the list of jobs
- * @param   {mixed} item - job description
- * @param   {function} callback - invoked after iterator is done with the job
- * @returns {function|mixed} - job abort function or something else
- */
-function runJob(iterator, key, item, callback)
-{
-  var aborter;
-
-  // allow shortcut if iterator expects only two arguments
-  if (iterator.length == 2)
-  {
-    aborter = iterator(item, async(callback));
-  }
-  // otherwise go with full three arguments
-  else
-  {
-    aborter = iterator(item, key, async(callback));
-  }
-
-  return aborter;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asynckit/lib/readable_asynckit.js
----------------------------------------------------------------------
diff --git a/node_modules/asynckit/lib/readable_asynckit.js b/node_modules/asynckit/lib/readable_asynckit.js
deleted file mode 100644
index 78ad240..0000000
--- a/node_modules/asynckit/lib/readable_asynckit.js
+++ /dev/null
@@ -1,91 +0,0 @@
-var streamify = require('./streamify.js')
-  , defer     = require('./defer.js')
-  ;
-
-// API
-module.exports = ReadableAsyncKit;
-
-/**
- * Base constructor for all streams
- * used to hold properties/methods
- */
-function ReadableAsyncKit()
-{
-  ReadableAsyncKit.super_.apply(this, arguments);
-
-  // list of active jobs
-  this.jobs = {};
-
-  // add stream methods
-  this.destroy = destroy;
-  this._start  = _start;
-  this._read   = _read;
-}
-
-/**
- * Destroys readable stream,
- * by aborting outstanding jobs
- *
- * @returns {void}
- */
-function destroy()
-{
-  if (this.destroyed)
-  {
-    return;
-  }
-
-  this.destroyed = true;
-
-  if (typeof this.terminator == 'function')
-  {
-    this.terminator();
-  }
-}
-
-/**
- * Starts provided jobs in async manner
- *
- * @private
- */
-function _start()
-{
-  // first argument – runner function
-  var runner = arguments[0]
-    // take away first argument
-    , args   = Array.prototype.slice.call(arguments, 1)
-      // second argument - input data
-    , input  = args[0]
-      // last argument - result callback
-    , endCb  = streamify.callback.call(this, args[args.length - 1])
-    ;
-
-  args[args.length - 1] = endCb;
-  // third argument - iterator
-  args[1] = streamify.iterator.call(this, args[1]);
-
-  // allow time for proper setup
-  defer(function()
-  {
-    if (!this.destroyed)
-    {
-      this.terminator = runner.apply(null, args);
-    }
-    else
-    {
-      endCb(null, Array.isArray(input) ? [] : {});
-    }
-  }.bind(this));
-}
-
-
-/**
- * Implement _read to comply with Readable streams
- * Doesn't really make sense for flowing object mode
- *
- * @private
- */
-function _read()
-{
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asynckit/lib/readable_parallel.js
----------------------------------------------------------------------
diff --git a/node_modules/asynckit/lib/readable_parallel.js b/node_modules/asynckit/lib/readable_parallel.js
deleted file mode 100644
index 5d2929f..0000000
--- a/node_modules/asynckit/lib/readable_parallel.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var parallel = require('../parallel.js');
-
-// API
-module.exports = ReadableParallel;
-
-/**
- * Streaming wrapper to `asynckit.parallel`
- *
- * @param   {array|object} list - array or object (named list) to iterate over
- * @param   {function} iterator - iterator to run
- * @param   {function} callback - invoked when all elements processed
- * @returns {stream.Readable#}
- */
-function ReadableParallel(list, iterator, callback)
-{
-  if (!(this instanceof ReadableParallel))
-  {
-    return new ReadableParallel(list, iterator, callback);
-  }
-
-  // turn on object mode
-  ReadableParallel.super_.call(this, {objectMode: true});
-
-  this._start(parallel, list, iterator, callback);
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asynckit/lib/readable_serial.js
----------------------------------------------------------------------
diff --git a/node_modules/asynckit/lib/readable_serial.js b/node_modules/asynckit/lib/readable_serial.js
deleted file mode 100644
index 7822698..0000000
--- a/node_modules/asynckit/lib/readable_serial.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var serial = require('../serial.js');
-
-// API
-module.exports = ReadableSerial;
-
-/**
- * Streaming wrapper to `asynckit.serial`
- *
- * @param   {array|object} list - array or object (named list) to iterate over
- * @param   {function} iterator - iterator to run
- * @param   {function} callback - invoked when all elements processed
- * @returns {stream.Readable#}
- */
-function ReadableSerial(list, iterator, callback)
-{
-  if (!(this instanceof ReadableSerial))
-  {
-    return new ReadableSerial(list, iterator, callback);
-  }
-
-  // turn on object mode
-  ReadableSerial.super_.call(this, {objectMode: true});
-
-  this._start(serial, list, iterator, callback);
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asynckit/lib/readable_serial_ordered.js
----------------------------------------------------------------------
diff --git a/node_modules/asynckit/lib/readable_serial_ordered.js b/node_modules/asynckit/lib/readable_serial_ordered.js
deleted file mode 100644
index 3de89c4..0000000
--- a/node_modules/asynckit/lib/readable_serial_ordered.js
+++ /dev/null
@@ -1,29 +0,0 @@
-var serialOrdered = require('../serialOrdered.js');
-
-// API
-module.exports = ReadableSerialOrdered;
-// expose sort helpers
-module.exports.ascending  = serialOrdered.ascending;
-module.exports.descending = serialOrdered.descending;
-
-/**
- * Streaming wrapper to `asynckit.serialOrdered`
- *
- * @param   {array|object} list - array or object (named list) to iterate over
- * @param   {function} iterator - iterator to run
- * @param   {function} sortMethod - custom sort function
- * @param   {function} callback - invoked when all elements processed
- * @returns {stream.Readable#}
- */
-function ReadableSerialOrdered(list, iterator, sortMethod, callback)
-{
-  if (!(this instanceof ReadableSerialOrdered))
-  {
-    return new ReadableSerialOrdered(list, iterator, sortMethod, callback);
-  }
-
-  // turn on object mode
-  ReadableSerialOrdered.super_.call(this, {objectMode: true});
-
-  this._start(serialOrdered, list, iterator, sortMethod, callback);
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asynckit/lib/state.js
----------------------------------------------------------------------
diff --git a/node_modules/asynckit/lib/state.js b/node_modules/asynckit/lib/state.js
deleted file mode 100644
index cbea7ad..0000000
--- a/node_modules/asynckit/lib/state.js
+++ /dev/null
@@ -1,37 +0,0 @@
-// API
-module.exports = state;
-
-/**
- * Creates initial state object
- * for iteration over list
- *
- * @param   {array|object} list - list to iterate over
- * @param   {function|null} sortMethod - function to use for keys sort,
- *                                     or `null` to keep them as is
- * @returns {object} - initial state object
- */
-function state(list, sortMethod)
-{
-  var isNamedList = !Array.isArray(list)
-    , initState =
-    {
-      index    : 0,
-      keyedList: isNamedList || sortMethod ? Object.keys(list) : null,
-      jobs     : {},
-      results  : isNamedList ? {} : [],
-      size     : isNamedList ? Object.keys(list).length : list.length
-    }
-    ;
-
-  if (sortMethod)
-  {
-    // sort array keys based on it's values
-    // sort object's keys just on own merit
-    initState.keyedList.sort(isNamedList ? sortMethod : function(a, b)
-    {
-      return sortMethod(list[a], list[b]);
-    });
-  }
-
-  return initState;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asynckit/lib/streamify.js
----------------------------------------------------------------------
diff --git a/node_modules/asynckit/lib/streamify.js b/node_modules/asynckit/lib/streamify.js
deleted file mode 100644
index f56a1c9..0000000
--- a/node_modules/asynckit/lib/streamify.js
+++ /dev/null
@@ -1,141 +0,0 @@
-var async = require('./async.js');
-
-// API
-module.exports = {
-  iterator: wrapIterator,
-  callback: wrapCallback
-};
-
-/**
- * Wraps iterators with long signature
- *
- * @this    ReadableAsyncKit#
- * @param   {function} iterator - function to wrap
- * @returns {function} - wrapped function
- */
-function wrapIterator(iterator)
-{
-  var stream = this;
-
-  return function(item, key, cb)
-  {
-    var aborter
-      , wrappedCb = async(wrapIteratorCallback.call(stream, cb, key))
-      ;
-
-    stream.jobs[key] = wrappedCb;
-
-    // it's either shortcut (item, cb)
-    if (iterator.length == 2)
-    {
-      aborter = iterator(item, wrappedCb);
-    }
-    // or long format (item, key, cb)
-    else
-    {
-      aborter = iterator(item, key, wrappedCb);
-    }
-
-    return aborter;
-  };
-}
-
-/**
- * Wraps provided callback function
- * allowing to execute snitch function before
- * real callback
- *
- * @this    ReadableAsyncKit#
- * @param   {function} callback - function to wrap
- * @returns {function} - wrapped function
- */
-function wrapCallback(callback)
-{
-  var stream = this;
-
-  var wrapped = function(error, result)
-  {
-    return finisher.call(stream, error, result, callback);
-  };
-
-  return wrapped;
-}
-
-/**
- * Wraps provided iterator callback function
- * makes sure snitch only called once,
- * but passes secondary calls to the original callback
- *
- * @this    ReadableAsyncKit#
- * @param   {function} callback - callback to wrap
- * @param   {number|string} key - iteration key
- * @returns {function} wrapped callback
- */
-function wrapIteratorCallback(callback, key)
-{
-  var stream = this;
-
-  return function(error, output)
-  {
-    // don't repeat yourself
-    if (!(key in stream.jobs))
-    {
-      callback(error, output);
-      return;
-    }
-
-    // clean up jobs
-    delete stream.jobs[key];
-
-    return streamer.call(stream, error, {key: key, value: output}, callback);
-  };
-}
-
-/**
- * Stream wrapper for iterator callback
- *
- * @this  ReadableAsyncKit#
- * @param {mixed} error - error response
- * @param {mixed} output - iterator output
- * @param {function} callback - callback that expects iterator results
- */
-function streamer(error, output, callback)
-{
-  if (error && !this.error)
-  {
-    this.error = error;
-    this.pause();
-    this.emit('error', error);
-    // send back value only, as expected
-    callback(error, output && output.value);
-    return;
-  }
-
-  // stream stuff
-  this.push(output);
-
-  // back to original track
-  // send back value only, as expected
-  callback(error, output && output.value);
-}
-
-/**
- * Stream wrapper for finishing callback
- *
- * @this  ReadableAsyncKit#
- * @param {mixed} error - error response
- * @param {mixed} output - iterator output
- * @param {function} callback - callback that expects final results
- */
-function finisher(error, output, callback)
-{
-  // signal end of the stream
-  // only for successfully finished streams
-  if (!error)
-  {
-    this.push(null);
-  }
-
-  // back to original track
-  callback(error, output);
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asynckit/lib/terminator.js
----------------------------------------------------------------------
diff --git a/node_modules/asynckit/lib/terminator.js b/node_modules/asynckit/lib/terminator.js
deleted file mode 100644
index d6eb992..0000000
--- a/node_modules/asynckit/lib/terminator.js
+++ /dev/null
@@ -1,29 +0,0 @@
-var abort = require('./abort.js')
-  , async = require('./async.js')
-  ;
-
-// API
-module.exports = terminator;
-
-/**
- * Terminates jobs in the attached state context
- *
- * @this  AsyncKitState#
- * @param {function} callback - final callback to invoke after termination
- */
-function terminator(callback)
-{
-  if (!Object.keys(this.jobs).length)
-  {
-    return;
-  }
-
-  // fast forward iteration index
-  this.index = this.size;
-
-  // abort jobs
-  abort(this);
-
-  // send back results we have so far
-  async(callback)(null, this.results);
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asynckit/package.json
----------------------------------------------------------------------
diff --git a/node_modules/asynckit/package.json b/node_modules/asynckit/package.json
deleted file mode 100644
index 7a13cce..0000000
--- a/node_modules/asynckit/package.json
+++ /dev/null
@@ -1,127 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "asynckit@^0.4.0",
-        "scope": null,
-        "escapedName": "asynckit",
-        "name": "asynckit",
-        "rawSpec": "^0.4.0",
-        "spec": ">=0.4.0 <0.5.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/form-data"
-    ]
-  ],
-  "_from": "asynckit@>=0.4.0 <0.5.0",
-  "_id": "asynckit@0.4.0",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/asynckit",
-  "_nodeVersion": "0.12.11",
-  "_npmOperationalInternal": {
-    "host": "packages-16-east.internal.npmjs.com",
-    "tmp": "tmp/asynckit-0.4.0.tgz_1465928940169_0.8008207362145185"
-  },
-  "_npmUser": {
-    "name": "alexindigo",
-    "email": "iam@alexindigo.com"
-  },
-  "_npmVersion": "2.15.6",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "asynckit@^0.4.0",
-    "scope": null,
-    "escapedName": "asynckit",
-    "name": "asynckit",
-    "rawSpec": "^0.4.0",
-    "spec": ">=0.4.0 <0.5.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/form-data"
-  ],
-  "_resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
-  "_shasum": "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79",
-  "_shrinkwrap": null,
-  "_spec": "asynckit@^0.4.0",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/form-data",
-  "author": {
-    "name": "Alex Indigo",
-    "email": "iam@alexindigo.com"
-  },
-  "bugs": {
-    "url": "https://github.com/alexindigo/asynckit/issues"
-  },
-  "dependencies": {},
-  "description": "Minimal async jobs utility library, with streams support",
-  "devDependencies": {
-    "browserify": "^13.0.0",
-    "browserify-istanbul": "^2.0.0",
-    "coveralls": "^2.11.9",
-    "eslint": "^2.9.0",
-    "istanbul": "^0.4.3",
-    "obake": "^0.1.2",
-    "phantomjs-prebuilt": "^2.1.7",
-    "pre-commit": "^1.1.3",
-    "reamde": "^1.1.0",
-    "rimraf": "^2.5.2",
-    "size-table": "^0.2.0",
-    "tap-spec": "^4.1.1",
-    "tape": "^4.5.1"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79",
-    "tarball": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
-  },
-  "gitHead": "583a75ed4fe41761b66416bb6e703ebb1f8963bf",
-  "homepage": "https://github.com/alexindigo/asynckit#readme",
-  "keywords": [
-    "async",
-    "jobs",
-    "parallel",
-    "serial",
-    "iterator",
-    "array",
-    "object",
-    "stream",
-    "destroy",
-    "terminate",
-    "abort"
-  ],
-  "license": "MIT",
-  "main": "index.js",
-  "maintainers": [
-    {
-      "name": "alexindigo",
-      "email": "iam@alexindigo.com"
-    }
-  ],
-  "name": "asynckit",
-  "optionalDependencies": {},
-  "pre-commit": [
-    "clean",
-    "lint",
-    "test",
-    "browser",
-    "report",
-    "size"
-  ],
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/alexindigo/asynckit.git"
-  },
-  "scripts": {
-    "browser": "browserify -t browserify-istanbul test/lib/browserify_adjustment.js test/test-*.js | obake --coverage | tap-spec",
-    "clean": "rimraf coverage",
-    "debug": "tape test/test-*.js",
-    "lint": "eslint *.js lib/*.js test/*.js",
-    "report": "istanbul report",
-    "size": "browserify index.js | size-table asynckit",
-    "test": "istanbul cover --reporter=json tape -- 'test/test-*.js' | tap-spec",
-    "win-test": "tape test/test-*.js"
-  },
-  "version": "0.4.0"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asynckit/parallel.js
----------------------------------------------------------------------
diff --git a/node_modules/asynckit/parallel.js b/node_modules/asynckit/parallel.js
deleted file mode 100644
index 3c50344..0000000
--- a/node_modules/asynckit/parallel.js
+++ /dev/null
@@ -1,43 +0,0 @@
-var iterate    = require('./lib/iterate.js')
-  , initState  = require('./lib/state.js')
-  , terminator = require('./lib/terminator.js')
-  ;
-
-// Public API
-module.exports = parallel;
-
-/**
- * Runs iterator over provided array elements in parallel
- *
- * @param   {array|object} list - array or object (named list) to iterate over
- * @param   {function} iterator - iterator to run
- * @param   {function} callback - invoked when all elements processed
- * @returns {function} - jobs terminator
- */
-function parallel(list, iterator, callback)
-{
-  var state = initState(list);
-
-  while (state.index < (state['keyedList'] || list).length)
-  {
-    iterate(list, iterator, state, function(error, result)
-    {
-      if (error)
-      {
-        callback(error, result);
-        return;
-      }
-
-      // looks like it's the last one
-      if (Object.keys(state.jobs).length === 0)
-      {
-        callback(null, state.results);
-        return;
-      }
-    });
-
-    state.index++;
-  }
-
-  return terminator.bind(state, callback);
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asynckit/serial.js
----------------------------------------------------------------------
diff --git a/node_modules/asynckit/serial.js b/node_modules/asynckit/serial.js
deleted file mode 100644
index 6cd949a..0000000
--- a/node_modules/asynckit/serial.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var serialOrdered = require('./serialOrdered.js');
-
-// Public API
-module.exports = serial;
-
-/**
- * Runs iterator over provided array elements in series
- *
- * @param   {array|object} list - array or object (named list) to iterate over
- * @param   {function} iterator - iterator to run
- * @param   {function} callback - invoked when all elements processed
- * @returns {function} - jobs terminator
- */
-function serial(list, iterator, callback)
-{
-  return serialOrdered(list, iterator, null, callback);
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asynckit/serialOrdered.js
----------------------------------------------------------------------
diff --git a/node_modules/asynckit/serialOrdered.js b/node_modules/asynckit/serialOrdered.js
deleted file mode 100644
index 607eafe..0000000
--- a/node_modules/asynckit/serialOrdered.js
+++ /dev/null
@@ -1,75 +0,0 @@
-var iterate    = require('./lib/iterate.js')
-  , initState  = require('./lib/state.js')
-  , terminator = require('./lib/terminator.js')
-  ;
-
-// Public API
-module.exports = serialOrdered;
-// sorting helpers
-module.exports.ascending  = ascending;
-module.exports.descending = descending;
-
-/**
- * Runs iterator over provided sorted array elements in series
- *
- * @param   {array|object} list - array or object (named list) to iterate over
- * @param   {function} iterator - iterator to run
- * @param   {function} sortMethod - custom sort function
- * @param   {function} callback - invoked when all elements processed
- * @returns {function} - jobs terminator
- */
-function serialOrdered(list, iterator, sortMethod, callback)
-{
-  var state = initState(list, sortMethod);
-
-  iterate(list, iterator, state, function iteratorHandler(error, result)
-  {
-    if (error)
-    {
-      callback(error, result);
-      return;
-    }
-
-    state.index++;
-
-    // are we there yet?
-    if (state.index < (state['keyedList'] || list).length)
-    {
-      iterate(list, iterator, state, iteratorHandler);
-      return;
-    }
-
-    // done here
-    callback(null, state.results);
-  });
-
-  return terminator.bind(state, callback);
-}
-
-/*
- * -- Sort methods
- */
-
-/**
- * sort helper to sort array elements in ascending order
- *
- * @param   {mixed} a - an item to compare
- * @param   {mixed} b - an item to compare
- * @returns {number} - comparison result
- */
-function ascending(a, b)
-{
-  return a < b ? -1 : a > b ? 1 : 0;
-}
-
-/**
- * sort helper to sort array elements in descending order
- *
- * @param   {mixed} a - an item to compare
- * @param   {mixed} b - an item to compare
- * @returns {number} - comparison result
- */
-function descending(a, b)
-{
-  return -1 * ascending(a, b);
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asynckit/stream.js
----------------------------------------------------------------------
diff --git a/node_modules/asynckit/stream.js b/node_modules/asynckit/stream.js
deleted file mode 100644
index d43465f..0000000
--- a/node_modules/asynckit/stream.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var inherits              = require('util').inherits
-  , Readable              = require('stream').Readable
-  , ReadableAsyncKit      = require('./lib/readable_asynckit.js')
-  , ReadableParallel      = require('./lib/readable_parallel.js')
-  , ReadableSerial        = require('./lib/readable_serial.js')
-  , ReadableSerialOrdered = require('./lib/readable_serial_ordered.js')
-  ;
-
-// API
-module.exports =
-{
-  parallel      : ReadableParallel,
-  serial        : ReadableSerial,
-  serialOrdered : ReadableSerialOrdered, 
-};
-
-inherits(ReadableAsyncKit, Readable);
-
-inherits(ReadableParallel, ReadableAsyncKit);
-inherits(ReadableSerial, ReadableAsyncKit);
-inherits(ReadableSerialOrdered, ReadableAsyncKit);

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/aws-sign2/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/aws-sign2/LICENSE b/node_modules/aws-sign2/LICENSE
deleted file mode 100644
index a4a9aee..0000000
--- a/node_modules/aws-sign2/LICENSE
+++ /dev/null
@@ -1,55 +0,0 @@
-Apache License
-
-Version 2.0, January 2004
-
-http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
-
-"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
-
-"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
-
-"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
-
-"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
-
-"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
-
-"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
-
-"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
-
-"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
-
-"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
-
-You must give any other recipients of the Work or Derivative Works a copy of this License; and
-
-You must cause any modified files to carry prominent notices stating that You changed the files; and
-
-You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
-
-If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modi
 fications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/aws-sign2/README.md
----------------------------------------------------------------------
diff --git a/node_modules/aws-sign2/README.md b/node_modules/aws-sign2/README.md
deleted file mode 100644
index 763564e..0000000
--- a/node_modules/aws-sign2/README.md
+++ /dev/null
@@ -1,4 +0,0 @@
-aws-sign
-========
-
-AWS signing. Originally pulled from LearnBoost/knox, maintained as vendor in request, now a standalone module.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/aws-sign2/index.js
----------------------------------------------------------------------
diff --git a/node_modules/aws-sign2/index.js b/node_modules/aws-sign2/index.js
deleted file mode 100644
index ac72093..0000000
--- a/node_modules/aws-sign2/index.js
+++ /dev/null
@@ -1,212 +0,0 @@
-
-/*!
- *  Copyright 2010 LearnBoost <de...@learnboost.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Module dependencies.
- */
-
-var crypto = require('crypto')
-  , parse = require('url').parse
-  ;
-
-/**
- * Valid keys.
- */
-
-var keys = 
-  [ 'acl'
-  , 'location'
-  , 'logging'
-  , 'notification'
-  , 'partNumber'
-  , 'policy'
-  , 'requestPayment'
-  , 'torrent'
-  , 'uploadId'
-  , 'uploads'
-  , 'versionId'
-  , 'versioning'
-  , 'versions'
-  , 'website'
-  ]
-
-/**
- * Return an "Authorization" header value with the given `options`
- * in the form of "AWS <key>:<signature>"
- *
- * @param {Object} options
- * @return {String}
- * @api private
- */
-
-function authorization (options) {
-  return 'AWS ' + options.key + ':' + sign(options)
-}
-
-module.exports = authorization
-module.exports.authorization = authorization
-
-/**
- * Simple HMAC-SHA1 Wrapper
- *
- * @param {Object} options
- * @return {String}
- * @api private
- */ 
-
-function hmacSha1 (options) {
-  return crypto.createHmac('sha1', options.secret).update(options.message).digest('base64')
-}
-
-module.exports.hmacSha1 = hmacSha1
-
-/**
- * Create a base64 sha1 HMAC for `options`. 
- * 
- * @param {Object} options
- * @return {String}
- * @api private
- */
-
-function sign (options) {
-  options.message = stringToSign(options)
-  return hmacSha1(options)
-}
-module.exports.sign = sign
-
-/**
- * Create a base64 sha1 HMAC for `options`. 
- *
- * Specifically to be used with S3 presigned URLs
- * 
- * @param {Object} options
- * @return {String}
- * @api private
- */
-
-function signQuery (options) {
-  options.message = queryStringToSign(options)
-  return hmacSha1(options)
-}
-module.exports.signQuery= signQuery
-
-/**
- * Return a string for sign() with the given `options`.
- *
- * Spec:
- * 
- *    <verb>\n
- *    <md5>\n
- *    <content-type>\n
- *    <date>\n
- *    [headers\n]
- *    <resource>
- *
- * @param {Object} options
- * @return {String}
- * @api private
- */
-
-function stringToSign (options) {
-  var headers = options.amazonHeaders || ''
-  if (headers) headers += '\n'
-  var r = 
-    [ options.verb
-    , options.md5
-    , options.contentType
-    , options.date ? options.date.toUTCString() : ''
-    , headers + options.resource
-    ]
-  return r.join('\n')
-}
-module.exports.queryStringToSign = stringToSign
-
-/**
- * Return a string for sign() with the given `options`, but is meant exclusively
- * for S3 presigned URLs
- *
- * Spec:
- * 
- *    <date>\n
- *    <resource>
- *
- * @param {Object} options
- * @return {String}
- * @api private
- */
-
-function queryStringToSign (options){
-  return 'GET\n\n\n' + options.date + '\n' + options.resource
-}
-module.exports.queryStringToSign = queryStringToSign
-
-/**
- * Perform the following:
- *
- *  - ignore non-amazon headers
- *  - lowercase fields
- *  - sort lexicographically
- *  - trim whitespace between ":"
- *  - join with newline
- *
- * @param {Object} headers
- * @return {String}
- * @api private
- */
-
-function canonicalizeHeaders (headers) {
-  var buf = []
-    , fields = Object.keys(headers)
-    ;
-  for (var i = 0, len = fields.length; i < len; ++i) {
-    var field = fields[i]
-      , val = headers[field]
-      , field = field.toLowerCase()
-      ;
-    if (0 !== field.indexOf('x-amz')) continue
-    buf.push(field + ':' + val)
-  }
-  return buf.sort().join('\n')
-}
-module.exports.canonicalizeHeaders = canonicalizeHeaders
-
-/**
- * Perform the following:
- *
- *  - ignore non sub-resources
- *  - sort lexicographically
- *
- * @param {String} resource
- * @return {String}
- * @api private
- */
-
-function canonicalizeResource (resource) {
-  var url = parse(resource, true)
-    , path = url.pathname
-    , buf = []
-    ;
-
-  Object.keys(url.query).forEach(function(key){
-    if (!~keys.indexOf(key)) return
-    var val = '' == url.query[key] ? '' : '=' + encodeURIComponent(url.query[key])
-    buf.push(key + val)
-  })
-
-  return path + (buf.length ? '?' + buf.sort().join('&') : '')
-}
-module.exports.canonicalizeResource = canonicalizeResource

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/aws-sign2/package.json
----------------------------------------------------------------------
diff --git a/node_modules/aws-sign2/package.json b/node_modules/aws-sign2/package.json
deleted file mode 100644
index b72fa3e..0000000
--- a/node_modules/aws-sign2/package.json
+++ /dev/null
@@ -1,82 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "aws-sign2@~0.6.0",
-        "scope": null,
-        "escapedName": "aws-sign2",
-        "name": "aws-sign2",
-        "rawSpec": "~0.6.0",
-        "spec": ">=0.6.0 <0.7.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/request"
-    ]
-  ],
-  "_from": "aws-sign2@>=0.6.0 <0.7.0",
-  "_id": "aws-sign2@0.6.0",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/aws-sign2",
-  "_nodeVersion": "4.1.2",
-  "_npmUser": {
-    "name": "mikeal",
-    "email": "mikeal.rogers@gmail.com"
-  },
-  "_npmVersion": "2.14.4",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "aws-sign2@~0.6.0",
-    "scope": null,
-    "escapedName": "aws-sign2",
-    "name": "aws-sign2",
-    "rawSpec": "~0.6.0",
-    "spec": ">=0.6.0 <0.7.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/request"
-  ],
-  "_resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
-  "_shasum": "14342dd38dbcc94d0e5b87d763cd63612c0e794f",
-  "_shrinkwrap": null,
-  "_spec": "aws-sign2@~0.6.0",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/request",
-  "author": {
-    "name": "Mikeal Rogers",
-    "email": "mikeal.rogers@gmail.com",
-    "url": "http://www.futurealoof.com"
-  },
-  "bugs": {
-    "url": "https://github.com/mikeal/aws-sign/issues"
-  },
-  "dependencies": {},
-  "description": "AWS signing. Originally pulled from LearnBoost/knox, maintained as vendor in request, now a standalone module.",
-  "devDependencies": {},
-  "directories": {},
-  "dist": {
-    "shasum": "14342dd38dbcc94d0e5b87d763cd63612c0e794f",
-    "tarball": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz"
-  },
-  "engines": {
-    "node": "*"
-  },
-  "gitHead": "8554bdb41268fa295eb1ee300f4adaa9f7f07fec",
-  "homepage": "https://github.com/mikeal/aws-sign#readme",
-  "license": "Apache-2.0",
-  "main": "index.js",
-  "maintainers": [
-    {
-      "name": "mikeal",
-      "email": "mikeal.rogers@gmail.com"
-    }
-  ],
-  "name": "aws-sign2",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "url": "git+https://github.com/mikeal/aws-sign.git"
-  },
-  "scripts": {},
-  "version": "0.6.0"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/aws4/.npmignore
----------------------------------------------------------------------
diff --git a/node_modules/aws4/.npmignore b/node_modules/aws4/.npmignore
deleted file mode 100644
index 6c6ade6..0000000
--- a/node_modules/aws4/.npmignore
+++ /dev/null
@@ -1,4 +0,0 @@
-test
-examples
-example.js
-browser

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/aws4/.tern-port
----------------------------------------------------------------------
diff --git a/node_modules/aws4/.tern-port b/node_modules/aws4/.tern-port
deleted file mode 100644
index 7fd1b52..0000000
--- a/node_modules/aws4/.tern-port
+++ /dev/null
@@ -1 +0,0 @@
-62638
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/aws4/.travis.yml
----------------------------------------------------------------------
diff --git a/node_modules/aws4/.travis.yml b/node_modules/aws4/.travis.yml
deleted file mode 100644
index 61d0634..0000000
--- a/node_modules/aws4/.travis.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-language: node_js
-node_js:
-  - "0.10"
-  - "0.12"
-  - "4.2"

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/aws4/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/aws4/LICENSE b/node_modules/aws4/LICENSE
deleted file mode 100644
index 4f321e5..0000000
--- a/node_modules/aws4/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright 2013 Michael Hart (michael.hart.au@gmail.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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/aws4/README.md
----------------------------------------------------------------------
diff --git a/node_modules/aws4/README.md b/node_modules/aws4/README.md
deleted file mode 100644
index 6b002d0..0000000
--- a/node_modules/aws4/README.md
+++ /dev/null
@@ -1,523 +0,0 @@
-aws4
-----
-
-[![Build Status](https://secure.travis-ci.org/mhart/aws4.png?branch=master)](http://travis-ci.org/mhart/aws4)
-
-A small utility to sign vanilla node.js http(s) request options using Amazon's
-[AWS Signature Version 4](http://docs.amazonwebservices.com/general/latest/gr/signature-version-4.html).
-
-Can also be used [in the browser](./browser).
-
-This signature is supported by nearly all Amazon services, including
-[S3](http://docs.aws.amazon.com/AmazonS3/latest/API/),
-[EC2](http://docs.aws.amazon.com/AWSEC2/latest/APIReference/),
-[DynamoDB](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/API.html),
-[Kinesis](http://docs.aws.amazon.com/kinesis/latest/APIReference/),
-[Lambda](http://docs.aws.amazon.com/lambda/latest/dg/API_Reference.html),
-[SQS](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/),
-[SNS](http://docs.aws.amazon.com/sns/latest/api/),
-[IAM](http://docs.aws.amazon.com/IAM/latest/APIReference/),
-[STS](http://docs.aws.amazon.com/STS/latest/APIReference/),
-[RDS](http://docs.aws.amazon.com/AmazonRDS/latest/APIReference/),
-[CloudWatch](http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/),
-[CloudWatch Logs](http://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/),
-[CodeDeploy](http://docs.aws.amazon.com/codedeploy/latest/APIReference/),
-[CloudFront](http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/),
-[CloudTrail](http://docs.aws.amazon.com/awscloudtrail/latest/APIReference/),
-[ElastiCache](http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/),
-[EMR](http://docs.aws.amazon.com/ElasticMapReduce/latest/API/),
-[Glacier](http://docs.aws.amazon.com/amazonglacier/latest/dev/amazon-glacier-api.html),
-[CloudSearch](http://docs.aws.amazon.com/cloudsearch/latest/developerguide/APIReq.html),
-[Elastic Load Balancing](http://docs.aws.amazon.com/ElasticLoadBalancing/latest/APIReference/),
-[Elastic Transcoder](http://docs.aws.amazon.com/elastictranscoder/latest/developerguide/api-reference.html),
-[CloudFormation](http://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/),
-[Elastic Beanstalk](http://docs.aws.amazon.com/elasticbeanstalk/latest/api/),
-[Storage Gateway](http://docs.aws.amazon.com/storagegateway/latest/userguide/AWSStorageGatewayAPI.html),
-[Data Pipeline](http://docs.aws.amazon.com/datapipeline/latest/APIReference/),
-[Direct Connect](http://docs.aws.amazon.com/directconnect/latest/APIReference/),
-[Redshift](http://docs.aws.amazon.com/redshift/latest/APIReference/),
-[OpsWorks](http://docs.aws.amazon.com/opsworks/latest/APIReference/),
-[SES](http://docs.aws.amazon.com/ses/latest/APIReference/),
-[SWF](http://docs.aws.amazon.com/amazonswf/latest/apireference/),
-[AutoScaling](http://docs.aws.amazon.com/AutoScaling/latest/APIReference/),
-[Mobile Analytics](http://docs.aws.amazon.com/mobileanalytics/latest/ug/server-reference.html),
-[Cognito Identity](http://docs.aws.amazon.com/cognitoidentity/latest/APIReference/),
-[Cognito Sync](http://docs.aws.amazon.com/cognitosync/latest/APIReference/),
-[Container Service](http://docs.aws.amazon.com/AmazonECS/latest/APIReference/),
-[AppStream](http://docs.aws.amazon.com/appstream/latest/developerguide/appstream-api-rest.html),
-[Key Management Service](http://docs.aws.amazon.com/kms/latest/APIReference/),
-[Config](http://docs.aws.amazon.com/config/latest/APIReference/),
-[CloudHSM](http://docs.aws.amazon.com/cloudhsm/latest/dg/api-ref.html),
-[Route53](http://docs.aws.amazon.com/Route53/latest/APIReference/requests-rest.html) and
-[Route53 Domains](http://docs.aws.amazon.com/Route53/latest/APIReference/requests-rpc.html).
-
-Indeed, the only AWS services that *don't* support v4 as of 2014-12-30 are
-[Import/Export](http://docs.aws.amazon.com/AWSImportExport/latest/DG/api-reference.html) and
-[SimpleDB](http://docs.aws.amazon.com/AmazonSimpleDB/latest/DeveloperGuide/SDB_API.html)
-(they only support [AWS Signature Version 2](https://github.com/mhart/aws2)).
-
-It also provides defaults for a number of core AWS headers and
-request parameters, making it very easy to query AWS services, or
-build out a fully-featured AWS library.
-
-Example
--------
-
-```javascript
-var http  = require('http'),
-    https = require('https'),
-    aws4  = require('aws4')
-
-// given an options object you could pass to http.request
-var opts = {host: 'sqs.us-east-1.amazonaws.com', path: '/?Action=ListQueues'}
-
-// alternatively (as aws4 can infer the host):
-opts = {service: 'sqs', region: 'us-east-1', path: '/?Action=ListQueues'}
-
-// alternatively (as us-east-1 is default):
-opts = {service: 'sqs', path: '/?Action=ListQueues'}
-
-aws4.sign(opts) // assumes AWS credentials are available in process.env
-
-console.log(opts)
-/*
-{
-  host: 'sqs.us-east-1.amazonaws.com',
-  path: '/?Action=ListQueues',
-  headers: {
-    Host: 'sqs.us-east-1.amazonaws.com',
-    'X-Amz-Date': '20121226T061030Z',
-    Authorization: 'AWS4-HMAC-SHA256 Credential=ABCDEF/20121226/us-east-1/sqs/aws4_request, ...'
-  }
-}
-*/
-
-// we can now use this to query AWS using the standard node.js http API
-http.request(opts, function(res) { res.pipe(process.stdout) }).end()
-/*
-<?xml version="1.0"?>
-<ListQueuesResponse xmlns="http://queue.amazonaws.com/doc/2012-11-05/">
-...
-*/
-```
-
-More options
-------------
-
-```javascript
-// you can also pass AWS credentials in explicitly (otherwise taken from process.env)
-aws4.sign(opts, {accessKeyId: '', secretAccessKey: ''})
-
-// can also add the signature to query strings
-aws4.sign({service: 's3', path: '/my-bucket?X-Amz-Expires=12345', signQuery: true})
-
-// create a utility function to pipe to stdout (with https this time)
-function request(o) { https.request(o, function(res) { res.pipe(process.stdout) }).end(o.body || '') }
-
-// aws4 can infer the HTTP method if a body is passed in
-// method will be POST and Content-Type: 'application/x-www-form-urlencoded; charset=utf-8'
-request(aws4.sign({service: 'iam', body: 'Action=ListGroups&Version=2010-05-08'}))
-/*
-<ListGroupsResponse xmlns="https://iam.amazonaws.com/doc/2010-05-08/">
-...
-*/
-
-// can specify any custom option or header as per usual
-request(aws4.sign({
-  service: 'dynamodb',
-  region: 'ap-southeast-2',
-  method: 'POST',
-  path: '/',
-  headers: {
-    'Content-Type': 'application/x-amz-json-1.0',
-    'X-Amz-Target': 'DynamoDB_20120810.ListTables'
-  },
-  body: '{}'
-}))
-/*
-{"TableNames":[]}
-...
-*/
-
-// works with all other services that support Signature Version 4
-
-request(aws4.sign({service: 's3', path: '/', signQuery: true}))
-/*
-<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
-...
-*/
-
-request(aws4.sign({service: 'ec2', path: '/?Action=DescribeRegions&Version=2014-06-15'}))
-/*
-<DescribeRegionsResponse xmlns="http://ec2.amazonaws.com/doc/2014-06-15/">
-...
-*/
-
-request(aws4.sign({service: 'sns', path: '/?Action=ListTopics&Version=2010-03-31'}))
-/*
-<ListTopicsResponse xmlns="http://sns.amazonaws.com/doc/2010-03-31/">
-...
-*/
-
-request(aws4.sign({service: 'sts', path: '/?Action=GetSessionToken&Version=2011-06-15'}))
-/*
-<GetSessionTokenResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
-...
-*/
-
-request(aws4.sign({service: 'cloudsearch', path: '/?Action=ListDomainNames&Version=2013-01-01'}))
-/*
-<ListDomainNamesResponse xmlns="http://cloudsearch.amazonaws.com/doc/2013-01-01/">
-...
-*/
-
-request(aws4.sign({service: 'ses', path: '/?Action=ListIdentities&Version=2010-12-01'}))
-/*
-<ListIdentitiesResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
-...
-*/
-
-request(aws4.sign({service: 'autoscaling', path: '/?Action=DescribeAutoScalingInstances&Version=2011-01-01'}))
-/*
-<DescribeAutoScalingInstancesResponse xmlns="http://autoscaling.amazonaws.com/doc/2011-01-01/">
-...
-*/
-
-request(aws4.sign({service: 'elasticloadbalancing', path: '/?Action=DescribeLoadBalancers&Version=2012-06-01'}))
-/*
-<DescribeLoadBalancersResponse xmlns="http://elasticloadbalancing.amazonaws.com/doc/2012-06-01/">
-...
-*/
-
-request(aws4.sign({service: 'cloudformation', path: '/?Action=ListStacks&Version=2010-05-15'}))
-/*
-<ListStacksResponse xmlns="http://cloudformation.amazonaws.com/doc/2010-05-15/">
-...
-*/
-
-request(aws4.sign({service: 'elasticbeanstalk', path: '/?Action=ListAvailableSolutionStacks&Version=2010-12-01'}))
-/*
-<ListAvailableSolutionStacksResponse xmlns="http://elasticbeanstalk.amazonaws.com/docs/2010-12-01/">
-...
-*/
-
-request(aws4.sign({service: 'rds', path: '/?Action=DescribeDBInstances&Version=2012-09-17'}))
-/*
-<DescribeDBInstancesResponse xmlns="http://rds.amazonaws.com/doc/2012-09-17/">
-...
-*/
-
-request(aws4.sign({service: 'monitoring', path: '/?Action=ListMetrics&Version=2010-08-01'}))
-/*
-<ListMetricsResponse xmlns="http://monitoring.amazonaws.com/doc/2010-08-01/">
-...
-*/
-
-request(aws4.sign({service: 'redshift', path: '/?Action=DescribeClusters&Version=2012-12-01'}))
-/*
-<DescribeClustersResponse xmlns="http://redshift.amazonaws.com/doc/2012-12-01/">
-...
-*/
-
-request(aws4.sign({service: 'cloudfront', path: '/2014-05-31/distribution'}))
-/*
-<DistributionList xmlns="http://cloudfront.amazonaws.com/doc/2014-05-31/">
-...
-*/
-
-request(aws4.sign({service: 'elasticache', path: '/?Action=DescribeCacheClusters&Version=2014-07-15'}))
-/*
-<DescribeCacheClustersResponse xmlns="http://elasticache.amazonaws.com/doc/2014-07-15/">
-...
-*/
-
-request(aws4.sign({service: 'elasticmapreduce', path: '/?Action=DescribeJobFlows&Version=2009-03-31'}))
-/*
-<DescribeJobFlowsResponse xmlns="http://elasticmapreduce.amazonaws.com/doc/2009-03-31">
-...
-*/
-
-request(aws4.sign({service: 'route53', path: '/2013-04-01/hostedzone'}))
-/*
-<ListHostedZonesResponse xmlns="https://route53.amazonaws.com/doc/2013-04-01/">
-...
-*/
-
-request(aws4.sign({service: 'appstream', path: '/applications'}))
-/*
-{"_links":{"curie":[{"href":"http://docs.aws.amazon.com/appstream/latest/...
-...
-*/
-
-request(aws4.sign({service: 'cognito-sync', path: '/identitypools'}))
-/*
-{"Count":0,"IdentityPoolUsages":[],"MaxResults":16,"NextToken":null}
-...
-*/
-
-request(aws4.sign({service: 'elastictranscoder', path: '/2012-09-25/pipelines'}))
-/*
-{"NextPageToken":null,"Pipelines":[]}
-...
-*/
-
-request(aws4.sign({service: 'lambda', path: '/2014-11-13/functions/'}))
-/*
-{"Functions":[],"NextMarker":null}
-...
-*/
-
-request(aws4.sign({service: 'ecs', path: '/?Action=ListClusters&Version=2014-11-13'}))
-/*
-<ListClustersResponse xmlns="http://ecs.amazonaws.com/doc/2014-11-13/">
-...
-*/
-
-request(aws4.sign({service: 'glacier', path: '/-/vaults', headers: {'X-Amz-Glacier-Version': '2012-06-01'}}))
-/*
-{"Marker":null,"VaultList":[]}
-...
-*/
-
-request(aws4.sign({service: 'storagegateway', body: '{}', headers: {
-  'Content-Type': 'application/x-amz-json-1.1',
-  'X-Amz-Target': 'StorageGateway_20120630.ListGateways'
-}}))
-/*
-{"Gateways":[]}
-...
-*/
-
-request(aws4.sign({service: 'datapipeline', body: '{}', headers: {
-  'Content-Type': 'application/x-amz-json-1.1',
-  'X-Amz-Target': 'DataPipeline.ListPipelines'
-}}))
-/*
-{"hasMoreResults":false,"pipelineIdList":[]}
-...
-*/
-
-request(aws4.sign({service: 'opsworks', body: '{}', headers: {
-  'Content-Type': 'application/x-amz-json-1.1',
-  'X-Amz-Target': 'OpsWorks_20130218.DescribeStacks'
-}}))
-/*
-{"Stacks":[]}
-...
-*/
-
-request(aws4.sign({service: 'route53domains', body: '{}', headers: {
-  'Content-Type': 'application/x-amz-json-1.1',
-  'X-Amz-Target': 'Route53Domains_v20140515.ListDomains'
-}}))
-/*
-{"Domains":[]}
-...
-*/
-
-request(aws4.sign({service: 'kinesis', body: '{}', headers: {
-  'Content-Type': 'application/x-amz-json-1.1',
-  'X-Amz-Target': 'Kinesis_20131202.ListStreams'
-}}))
-/*
-{"HasMoreStreams":false,"StreamNames":[]}
-...
-*/
-
-request(aws4.sign({service: 'cloudtrail', body: '{}', headers: {
-  'Content-Type': 'application/x-amz-json-1.1',
-  'X-Amz-Target': 'CloudTrail_20131101.DescribeTrails'
-}}))
-/*
-{"trailList":[]}
-...
-*/
-
-request(aws4.sign({service: 'logs', body: '{}', headers: {
-  'Content-Type': 'application/x-amz-json-1.1',
-  'X-Amz-Target': 'Logs_20140328.DescribeLogGroups'
-}}))
-/*
-{"logGroups":[]}
-...
-*/
-
-request(aws4.sign({service: 'codedeploy', body: '{}', headers: {
-  'Content-Type': 'application/x-amz-json-1.1',
-  'X-Amz-Target': 'CodeDeploy_20141006.ListApplications'
-}}))
-/*
-{"applications":[]}
-...
-*/
-
-request(aws4.sign({service: 'directconnect', body: '{}', headers: {
-  'Content-Type': 'application/x-amz-json-1.1',
-  'X-Amz-Target': 'OvertureService.DescribeConnections'
-}}))
-/*
-{"connections":[]}
-...
-*/
-
-request(aws4.sign({service: 'kms', body: '{}', headers: {
-  'Content-Type': 'application/x-amz-json-1.1',
-  'X-Amz-Target': 'TrentService.ListKeys'
-}}))
-/*
-{"Keys":[],"Truncated":false}
-...
-*/
-
-request(aws4.sign({service: 'config', body: '{}', headers: {
-  'Content-Type': 'application/x-amz-json-1.1',
-  'X-Amz-Target': 'StarlingDoveService.DescribeDeliveryChannels'
-}}))
-/*
-{"DeliveryChannels":[]}
-...
-*/
-
-request(aws4.sign({service: 'cloudhsm', body: '{}', headers: {
-  'Content-Type': 'application/x-amz-json-1.1',
-  'X-Amz-Target': 'CloudHsmFrontendService.ListAvailableZones'
-}}))
-/*
-{"AZList":["us-east-1a","us-east-1b","us-east-1c"]}
-...
-*/
-
-request(aws4.sign({
-  service: 'swf',
-  body: '{"registrationStatus":"REGISTERED"}',
-  headers: {
-    'Content-Type': 'application/x-amz-json-1.0',
-    'X-Amz-Target': 'SimpleWorkflowService.ListDomains'
-  }
-}))
-/*
-{"domainInfos":[]}
-...
-*/
-
-request(aws4.sign({
-  service: 'cognito-identity',
-  body: '{"MaxResults": 1}',
-  headers: {
-    'Content-Type': 'application/x-amz-json-1.1',
-    'X-Amz-Target': 'AWSCognitoIdentityService.ListIdentityPools'
-  }
-}))
-/*
-{"IdentityPools":[]}
-...
-*/
-
-request(aws4.sign({
-  service: 'mobileanalytics',
-  path: '/2014-06-05/events',
-  body: JSON.stringify({events:[{
-    eventType: 'a',
-    timestamp: new Date().toISOString(),
-    session: {},
-  }]}),
-  headers: {
-    'Content-Type': 'application/json',
-    'X-Amz-Client-Context': JSON.stringify({
-      client: {client_id: 'a', app_title: 'a'},
-      custom: {},
-      env: {platform: 'a'},
-      services: {},
-    }),
-  }
-}))
-/*
-(HTTP 202, empty response)
-*/
-
-// Generate CodeCommit Git access password
-var signer = new aws4.RequestSigner({
-  service: 'codecommit',
-  host: 'git-codecommit.us-east-1.amazonaws.com',
-  method: 'GIT',
-  path: '/v1/repos/MyAwesomeRepo',
-})
-var password = signer.getDateTime() + 'Z' + signer.signature()
-```
-
-API
----
-
-### aws4.sign(requestOptions, [credentials])
-
-This calculates and populates the `Authorization` header of
-`requestOptions`, and any other necessary AWS headers and/or request
-options. Returns `requestOptions` as a convenience for chaining.
-
-`requestOptions` is an object holding the same options that the node.js
-[http.request](http://nodejs.org/docs/latest/api/http.html#http_http_request_options_callback)
-function takes.
-
-The following properties of `requestOptions` are used in the signing or
-populated if they don't already exist:
-
-- `hostname` or `host` (will be determined from `service` and `region` if not given)
-- `method` (will use `'GET'` if not given or `'POST'` if there is a `body`)
-- `path` (will use `'/'` if not given)
-- `body` (will use `''` if not given)
-- `service` (will be calculated from `hostname` or `host` if not given)
-- `region` (will be calculated from `hostname` or `host` or use `'us-east-1'` if not given)
-- `headers['Host']` (will use `hostname` or `host` or be calculated if not given)
-- `headers['Content-Type']` (will use `'application/x-www-form-urlencoded; charset=utf-8'`
-  if not given and there is a `body`)
-- `headers['Date']` (used to calculate the signature date if given, otherwise `new Date` is used)
-
-Your AWS credentials (which can be found in your
-[AWS console](https://portal.aws.amazon.com/gp/aws/securityCredentials))
-can be specified in one of two ways:
-
-- As the second argument, like this:
-
-```javascript
-aws4.sign(requestOptions, {
-  secretAccessKey: "<your-secret-access-key>",
-  accessKeyId: "<your-access-key-id>",
-  sessionToken: "<your-session-token>"
-})
-```
-
-- From `process.env`, such as this:
-
-```
-export AWS_SECRET_ACCESS_KEY="<your-secret-access-key>"
-export AWS_ACCESS_KEY_ID="<your-access-key-id>"
-export AWS_SESSION_TOKEN="<your-session-token>"
-```
-
-(will also use `AWS_ACCESS_KEY` and `AWS_SECRET_KEY` if available)
-
-The `sessionToken` property and `AWS_SESSION_TOKEN` environment variable are optional for signing
-with [IAM STS temporary credentials](http://docs.aws.amazon.com/STS/latest/UsingSTS/using-temp-creds.html).
-
-Installation
-------------
-
-With [npm](http://npmjs.org/) do:
-
-```
-npm install aws4
-```
-
-Can also be used [in the browser](./browser).
-
-Thanks
-------
-
-Thanks to [@jed](https://github.com/jed) for his
-[dynamo-client](https://github.com/jed/dynamo-client) lib where I first
-committed and subsequently extracted this code.
-
-Also thanks to the
-[official node.js AWS SDK](https://github.com/aws/aws-sdk-js) for giving
-me a start on implementing the v4 signature.
-

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/aws4/aws4.js
----------------------------------------------------------------------
diff --git a/node_modules/aws4/aws4.js b/node_modules/aws4/aws4.js
deleted file mode 100644
index 0cff0f0..0000000
--- a/node_modules/aws4/aws4.js
+++ /dev/null
@@ -1,332 +0,0 @@
-var aws4 = exports,
-    url = require('url'),
-    querystring = require('querystring'),
-    crypto = require('crypto'),
-    lru = require('./lru'),
-    credentialsCache = lru(1000)
-
-// http://docs.amazonwebservices.com/general/latest/gr/signature-version-4.html
-
-function hmac(key, string, encoding) {
-  return crypto.createHmac('sha256', key).update(string, 'utf8').digest(encoding)
-}
-
-function hash(string, encoding) {
-  return crypto.createHash('sha256').update(string, 'utf8').digest(encoding)
-}
-
-// This function assumes the string has already been percent encoded
-function encodeRfc3986(urlEncodedString) {
-  return urlEncodedString.replace(/[!'()*]/g, function(c) {
-    return '%' + c.charCodeAt(0).toString(16).toUpperCase()
-  })
-}
-
-// request: { path | body, [host], [method], [headers], [service], [region] }
-// credentials: { accessKeyId, secretAccessKey, [sessionToken] }
-function RequestSigner(request, credentials) {
-
-  if (typeof request === 'string') request = url.parse(request)
-
-  var headers = request.headers = (request.headers || {}),
-      hostParts = this.matchHost(request.hostname || request.host || headers.Host || headers.host)
-
-  this.request = request
-  this.credentials = credentials || this.defaultCredentials()
-
-  this.service = request.service || hostParts[0] || ''
-  this.region = request.region || hostParts[1] || 'us-east-1'
-
-  // SES uses a different domain from the service name
-  if (this.service === 'email') this.service = 'ses'
-
-  if (!request.method && request.body)
-    request.method = 'POST'
-
-  if (!headers.Host && !headers.host) {
-    headers.Host = request.hostname || request.host || this.createHost()
-
-    // If a port is specified explicitly, use it as is
-    if (request.port)
-      headers.Host += ':' + request.port
-  }
-  if (!request.hostname && !request.host)
-    request.hostname = headers.Host || headers.host
-
-  this.isCodeCommitGit = this.service === 'codecommit' && request.method === 'GIT'
-}
-
-RequestSigner.prototype.matchHost = function(host) {
-  var match = (host || '').match(/([^\.]+)\.(?:([^\.]*)\.)?amazonaws\.com$/)
-  var hostParts = (match || []).slice(1, 3)
-
-  // ES's hostParts are sometimes the other way round, if the value that is expected
-  // to be region equals ‘es’ switch them back
-  // e.g. search-cluster-name-aaaa00aaaa0aaa0aaaaaaa0aaa.us-east-1.es.amazonaws.com
-  if (hostParts[1] === 'es')
-    hostParts = hostParts.reverse()
-
-  return hostParts
-}
-
-// http://docs.aws.amazon.com/general/latest/gr/rande.html
-RequestSigner.prototype.isSingleRegion = function() {
-  // Special case for S3 and SimpleDB in us-east-1
-  if (['s3', 'sdb'].indexOf(this.service) >= 0 && this.region === 'us-east-1') return true
-
-  return ['cloudfront', 'ls', 'route53', 'iam', 'importexport', 'sts']
-    .indexOf(this.service) >= 0
-}
-
-RequestSigner.prototype.createHost = function() {
-  var region = this.isSingleRegion() ? '' :
-        (this.service === 's3' && this.region !== 'us-east-1' ? '-' : '.') + this.region,
-      service = this.service === 'ses' ? 'email' : this.service
-  return service + region + '.amazonaws.com'
-}
-
-RequestSigner.prototype.prepareRequest = function() {
-  this.parsePath()
-
-  var request = this.request, headers = request.headers, query
-
-  if (request.signQuery) {
-
-    this.parsedPath.query = query = this.parsedPath.query || {}
-
-    if (this.credentials.sessionToken)
-      query['X-Amz-Security-Token'] = this.credentials.sessionToken
-
-    if (this.service === 's3' && !query['X-Amz-Expires'])
-      query['X-Amz-Expires'] = 86400
-
-    if (query['X-Amz-Date'])
-      this.datetime = query['X-Amz-Date']
-    else
-      query['X-Amz-Date'] = this.getDateTime()
-
-    query['X-Amz-Algorithm'] = 'AWS4-HMAC-SHA256'
-    query['X-Amz-Credential'] = this.credentials.accessKeyId + '/' + this.credentialString()
-    query['X-Amz-SignedHeaders'] = this.signedHeaders()
-
-  } else {
-
-    if (!request.doNotModifyHeaders && !this.isCodeCommitGit) {
-      if (request.body && !headers['Content-Type'] && !headers['content-type'])
-        headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=utf-8'
-
-      if (request.body && !headers['Content-Length'] && !headers['content-length'])
-        headers['Content-Length'] = Buffer.byteLength(request.body)
-
-      if (this.credentials.sessionToken && !headers['X-Amz-Security-Token'] && !headers['x-amz-security-token'])
-        headers['X-Amz-Security-Token'] = this.credentials.sessionToken
-
-      if (this.service === 's3' && !headers['X-Amz-Content-Sha256'] && !headers['x-amz-content-sha256'])
-        headers['X-Amz-Content-Sha256'] = hash(this.request.body || '', 'hex')
-
-      if (headers['X-Amz-Date'] || headers['x-amz-date'])
-        this.datetime = headers['X-Amz-Date'] || headers['x-amz-date']
-      else
-        headers['X-Amz-Date'] = this.getDateTime()
-    }
-
-    delete headers.Authorization
-    delete headers.authorization
-  }
-}
-
-RequestSigner.prototype.sign = function() {
-  if (!this.parsedPath) this.prepareRequest()
-
-  if (this.request.signQuery) {
-    this.parsedPath.query['X-Amz-Signature'] = this.signature()
-  } else {
-    this.request.headers.Authorization = this.authHeader()
-  }
-
-  this.request.path = this.formatPath()
-
-  return this.request
-}
-
-RequestSigner.prototype.getDateTime = function() {
-  if (!this.datetime) {
-    var headers = this.request.headers,
-      date = new Date(headers.Date || headers.date || new Date)
-
-    this.datetime = date.toISOString().replace(/[:\-]|\.\d{3}/g, '')
-
-    // Remove the trailing 'Z' on the timestamp string for CodeCommit git access
-    if (this.isCodeCommitGit) this.datetime = this.datetime.slice(0, -1)
-  }
-  return this.datetime
-}
-
-RequestSigner.prototype.getDate = function() {
-  return this.getDateTime().substr(0, 8)
-}
-
-RequestSigner.prototype.authHeader = function() {
-  return [
-    'AWS4-HMAC-SHA256 Credential=' + this.credentials.accessKeyId + '/' + this.credentialString(),
-    'SignedHeaders=' + this.signedHeaders(),
-    'Signature=' + this.signature(),
-  ].join(', ')
-}
-
-RequestSigner.prototype.signature = function() {
-  var date = this.getDate(),
-      cacheKey = [this.credentials.secretAccessKey, date, this.region, this.service].join(),
-      kDate, kRegion, kService, kCredentials = credentialsCache.get(cacheKey)
-  if (!kCredentials) {
-    kDate = hmac('AWS4' + this.credentials.secretAccessKey, date)
-    kRegion = hmac(kDate, this.region)
-    kService = hmac(kRegion, this.service)
-    kCredentials = hmac(kService, 'aws4_request')
-    credentialsCache.set(cacheKey, kCredentials)
-  }
-  return hmac(kCredentials, this.stringToSign(), 'hex')
-}
-
-RequestSigner.prototype.stringToSign = function() {
-  return [
-    'AWS4-HMAC-SHA256',
-    this.getDateTime(),
-    this.credentialString(),
-    hash(this.canonicalString(), 'hex'),
-  ].join('\n')
-}
-
-RequestSigner.prototype.canonicalString = function() {
-  if (!this.parsedPath) this.prepareRequest()
-
-  var pathStr = this.parsedPath.path,
-      query = this.parsedPath.query,
-      headers = this.request.headers,
-      queryStr = '',
-      normalizePath = this.service !== 's3',
-      decodePath = this.service === 's3' || this.request.doNotEncodePath,
-      decodeSlashesInPath = this.service === 's3',
-      firstValOnly = this.service === 's3',
-      bodyHash
-
-  if (this.service === 's3' && this.request.signQuery) {
-    bodyHash = 'UNSIGNED-PAYLOAD'
-  } else if (this.isCodeCommitGit) {
-    bodyHash = ''
-  } else {
-    bodyHash = headers['X-Amz-Content-Sha256'] || headers['x-amz-content-sha256'] ||
-      hash(this.request.body || '', 'hex')
-  }
-
-  if (query) {
-    queryStr = encodeRfc3986(querystring.stringify(Object.keys(query).sort().reduce(function(obj, key) {
-      if (!key) return obj
-      obj[key] = !Array.isArray(query[key]) ? query[key] :
-        (firstValOnly ? query[key][0] : query[key].slice().sort())
-      return obj
-    }, {})))
-  }
-  if (pathStr !== '/') {
-    if (normalizePath) pathStr = pathStr.replace(/\/{2,}/g, '/')
-    pathStr = pathStr.split('/').reduce(function(path, piece) {
-      if (normalizePath && piece === '..') {
-        path.pop()
-      } else if (!normalizePath || piece !== '.') {
-        if (decodePath) piece = querystring.unescape(piece)
-        path.push(encodeRfc3986(querystring.escape(piece)))
-      }
-      return path
-    }, []).join('/')
-    if (pathStr[0] !== '/') pathStr = '/' + pathStr
-    if (decodeSlashesInPath) pathStr = pathStr.replace(/%2F/g, '/')
-  }
-
-  return [
-    this.request.method || 'GET',
-    pathStr,
-    queryStr,
-    this.canonicalHeaders() + '\n',
-    this.signedHeaders(),
-    bodyHash,
-  ].join('\n')
-}
-
-RequestSigner.prototype.canonicalHeaders = function() {
-  var headers = this.request.headers
-  function trimAll(header) {
-    return header.toString().trim().replace(/\s+/g, ' ')
-  }
-  return Object.keys(headers)
-    .sort(function(a, b) { return a.toLowerCase() < b.toLowerCase() ? -1 : 1 })
-    .map(function(key) { return key.toLowerCase() + ':' + trimAll(headers[key]) })
-    .join('\n')
-}
-
-RequestSigner.prototype.signedHeaders = function() {
-  return Object.keys(this.request.headers)
-    .map(function(key) { return key.toLowerCase() })
-    .sort()
-    .join(';')
-}
-
-RequestSigner.prototype.credentialString = function() {
-  return [
-    this.getDate(),
-    this.region,
-    this.service,
-    'aws4_request',
-  ].join('/')
-}
-
-RequestSigner.prototype.defaultCredentials = function() {
-  var env = process.env
-  return {
-    accessKeyId: env.AWS_ACCESS_KEY_ID || env.AWS_ACCESS_KEY,
-    secretAccessKey: env.AWS_SECRET_ACCESS_KEY || env.AWS_SECRET_KEY,
-    sessionToken: env.AWS_SESSION_TOKEN,
-  }
-}
-
-RequestSigner.prototype.parsePath = function() {
-  var path = this.request.path || '/',
-      queryIx = path.indexOf('?'),
-      query = null
-
-  if (queryIx >= 0) {
-    query = querystring.parse(path.slice(queryIx + 1))
-    path = path.slice(0, queryIx)
-  }
-
-  // S3 doesn't always encode characters > 127 correctly and
-  // all services don't encode characters > 255 correctly
-  // So if there are non-reserved chars (and it's not already all % encoded), just encode them all
-  if (/[^0-9A-Za-z!'()*\-._~%/]/.test(path)) {
-    path = path.split('/').map(function(piece) {
-      return querystring.escape(querystring.unescape(piece))
-    }).join('/')
-  }
-
-  this.parsedPath = {
-    path: path,
-    query: query,
-  }
-}
-
-RequestSigner.prototype.formatPath = function() {
-  var path = this.parsedPath.path,
-      query = this.parsedPath.query
-
-  if (!query) return path
-
-  // Services don't support empty query string keys
-  if (query[''] != null) delete query['']
-
-  return path + '?' + encodeRfc3986(querystring.stringify(query))
-}
-
-aws4.RequestSigner = RequestSigner
-
-aws4.sign = function(request, credentials) {
-  return new RequestSigner(request, credentials).sign()
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/aws4/lru.js
----------------------------------------------------------------------
diff --git a/node_modules/aws4/lru.js b/node_modules/aws4/lru.js
deleted file mode 100644
index 333f66a..0000000
--- a/node_modules/aws4/lru.js
+++ /dev/null
@@ -1,96 +0,0 @@
-module.exports = function(size) {
-  return new LruCache(size)
-}
-
-function LruCache(size) {
-  this.capacity = size | 0
-  this.map = Object.create(null)
-  this.list = new DoublyLinkedList()
-}
-
-LruCache.prototype.get = function(key) {
-  var node = this.map[key]
-  if (node == null) return undefined
-  this.used(node)
-  return node.val
-}
-
-LruCache.prototype.set = function(key, val) {
-  var node = this.map[key]
-  if (node != null) {
-    node.val = val
-  } else {
-    if (!this.capacity) this.prune()
-    if (!this.capacity) return false
-    node = new DoublyLinkedNode(key, val)
-    this.map[key] = node
-    this.capacity--
-  }
-  this.used(node)
-  return true
-}
-
-LruCache.prototype.used = function(node) {
-  this.list.moveToFront(node)
-}
-
-LruCache.prototype.prune = function() {
-  var node = this.list.pop()
-  if (node != null) {
-    delete this.map[node.key]
-    this.capacity++
-  }
-}
-
-
-function DoublyLinkedList() {
-  this.firstNode = null
-  this.lastNode = null
-}
-
-DoublyLinkedList.prototype.moveToFront = function(node) {
-  if (this.firstNode == node) return
-
-  this.remove(node)
-
-  if (this.firstNode == null) {
-    this.firstNode = node
-    this.lastNode = node
-    node.prev = null
-    node.next = null
-  } else {
-    node.prev = null
-    node.next = this.firstNode
-    node.next.prev = node
-    this.firstNode = node
-  }
-}
-
-DoublyLinkedList.prototype.pop = function() {
-  var lastNode = this.lastNode
-  if (lastNode != null) {
-    this.remove(lastNode)
-  }
-  return lastNode
-}
-
-DoublyLinkedList.prototype.remove = function(node) {
-  if (this.firstNode == node) {
-    this.firstNode = node.next
-  } else if (node.prev != null) {
-    node.prev.next = node.next
-  }
-  if (this.lastNode == node) {
-    this.lastNode = node.prev
-  } else if (node.next != null) {
-    node.next.prev = node.prev
-  }
-}
-
-
-function DoublyLinkedNode(key, val) {
-  this.key = key
-  this.val = val
-  this.prev = null
-  this.next = null
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/aws4/package.json
----------------------------------------------------------------------
diff --git a/node_modules/aws4/package.json b/node_modules/aws4/package.json
deleted file mode 100644
index 8267c38..0000000
--- a/node_modules/aws4/package.json
+++ /dev/null
@@ -1,141 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "aws4@^1.2.1",
-        "scope": null,
-        "escapedName": "aws4",
-        "name": "aws4",
-        "rawSpec": "^1.2.1",
-        "spec": ">=1.2.1 <2.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/request"
-    ]
-  ],
-  "_from": "aws4@>=1.2.1 <2.0.0",
-  "_id": "aws4@1.6.0",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/aws4",
-  "_nodeVersion": "4.5.0",
-  "_npmOperationalInternal": {
-    "host": "packages-18-east.internal.npmjs.com",
-    "tmp": "tmp/aws4-1.6.0.tgz_1486481933920_0.6127187723759562"
-  },
-  "_npmUser": {
-    "name": "hichaelmart",
-    "email": "michael.hart.au@gmail.com"
-  },
-  "_npmVersion": "4.0.5",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "aws4@^1.2.1",
-    "scope": null,
-    "escapedName": "aws4",
-    "name": "aws4",
-    "rawSpec": "^1.2.1",
-    "spec": ">=1.2.1 <2.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/request"
-  ],
-  "_resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
-  "_shasum": "83ef5ca860b2b32e4a0deedee8c771b9db57471e",
-  "_shrinkwrap": null,
-  "_spec": "aws4@^1.2.1",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/request",
-  "author": {
-    "name": "Michael Hart",
-    "email": "michael.hart.au@gmail.com",
-    "url": "http://github.com/mhart"
-  },
-  "bugs": {
-    "url": "https://github.com/mhart/aws4/issues"
-  },
-  "dependencies": {},
-  "description": "Signs and prepares requests using AWS Signature Version 4",
-  "devDependencies": {
-    "mocha": "^2.4.5",
-    "should": "^8.2.2"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "83ef5ca860b2b32e4a0deedee8c771b9db57471e",
-    "tarball": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz"
-  },
-  "gitHead": "74bf0b64d1e8cbcd184964999c7ef53f52d7ad32",
-  "homepage": "https://github.com/mhart/aws4#readme",
-  "keywords": [
-    "amazon",
-    "aws",
-    "signature",
-    "s3",
-    "ec2",
-    "autoscaling",
-    "cloudformation",
-    "elasticloadbalancing",
-    "elb",
-    "elasticbeanstalk",
-    "cloudsearch",
-    "dynamodb",
-    "kinesis",
-    "lambda",
-    "glacier",
-    "sqs",
-    "sns",
-    "iam",
-    "sts",
-    "ses",
-    "swf",
-    "storagegateway",
-    "datapipeline",
-    "directconnect",
-    "redshift",
-    "opsworks",
-    "rds",
-    "monitoring",
-    "cloudtrail",
-    "cloudfront",
-    "codedeploy",
-    "elasticache",
-    "elasticmapreduce",
-    "elastictranscoder",
-    "emr",
-    "cloudwatch",
-    "mobileanalytics",
-    "cognitoidentity",
-    "cognitosync",
-    "cognito",
-    "containerservice",
-    "ecs",
-    "appstream",
-    "keymanagementservice",
-    "kms",
-    "config",
-    "cloudhsm",
-    "route53",
-    "route53domains",
-    "logs"
-  ],
-  "license": "MIT",
-  "main": "aws4.js",
-  "maintainers": [
-    {
-      "name": "hichaelmart",
-      "email": "michael.hart.au@gmail.com"
-    }
-  ],
-  "name": "aws4",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/mhart/aws4.git"
-  },
-  "scripts": {
-    "test": "mocha ./test/fast.js ./test/slow.js -b -t 100s -R list"
-  },
-  "version": "1.6.0"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/balanced-match/.npmignore
----------------------------------------------------------------------
diff --git a/node_modules/balanced-match/.npmignore b/node_modules/balanced-match/.npmignore
deleted file mode 100644
index ae5d8c3..0000000
--- a/node_modules/balanced-match/.npmignore
+++ /dev/null
@@ -1,5 +0,0 @@
-test
-.gitignore
-.travis.yml
-Makefile
-example.js

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/balanced-match/LICENSE.md
----------------------------------------------------------------------
diff --git a/node_modules/balanced-match/LICENSE.md b/node_modules/balanced-match/LICENSE.md
deleted file mode 100644
index 2cdc8e4..0000000
--- a/node_modules/balanced-match/LICENSE.md
+++ /dev/null
@@ -1,21 +0,0 @@
-(MIT)
-
-Copyright (c) 2013 Julian Gruber &lt;julian@juliangruber.com&gt;
-
-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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/balanced-match/README.md
----------------------------------------------------------------------
diff --git a/node_modules/balanced-match/README.md b/node_modules/balanced-match/README.md
deleted file mode 100644
index 08e918c..0000000
--- a/node_modules/balanced-match/README.md
+++ /dev/null
@@ -1,91 +0,0 @@
-# balanced-match
-
-Match balanced string pairs, like `{` and `}` or `<b>` and `</b>`. Supports regular expressions as well!
-
-[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match)
-[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match)
-
-[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match)
-
-## Example
-
-Get the first matching pair of braces:
-
-```js
-var balanced = require('balanced-match');
-
-console.log(balanced('{', '}', 'pre{in{nested}}post'));
-console.log(balanced('{', '}', 'pre{first}between{second}post'));
-console.log(balanced(/\s+\{\s+/, /\s+\}\s+/, 'pre  {   in{nest}   }  post'));
-```
-
-The matches are:
-
-```bash
-$ node example.js
-{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' }
-{ start: 3,
-  end: 9,
-  pre: 'pre',
-  body: 'first',
-  post: 'between{second}post' }
-{ start: 3, end: 17, pre: 'pre', body: 'in{nest}', post: 'post' }
-```
-
-## API
-
-### var m = balanced(a, b, str)
-
-For the first non-nested matching pair of `a` and `b` in `str`, return an
-object with those keys:
-
-* **start** the index of the first match of `a`
-* **end** the index of the matching `b`
-* **pre** the preamble, `a` and `b` not included
-* **body** the match, `a` and `b` not included
-* **post** the postscript, `a` and `b` not included
-
-If there's no match, `undefined` will be returned.
-
-If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']` and `{a}}` will match `['', 'a', '}']`.
-
-### var r = balanced.range(a, b, str)
-
-For the first non-nested matching pair of `a` and `b` in `str`, return an
-array with indexes: `[ <a index>, <b index> ]`.
-
-If there's no match, `undefined` will be returned.
-
-If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]` and `{a}}` will match `[0, 2]`.
-
-## Installation
-
-With [npm](https://npmjs.org) do:
-
-```bash
-npm install balanced-match
-```
-
-## License
-
-(MIT)
-
-Copyright (c) 2013 Julian Gruber &lt;julian@juliangruber.com&gt;
-
-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.



[05/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/core-js/client/core.min.js
----------------------------------------------------------------------
diff --git a/node_modules/core-js/client/core.min.js b/node_modules/core-js/client/core.min.js
deleted file mode 100644
index 7a080f0..0000000
--- a/node_modules/core-js/client/core.min.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/**
- * core-js 1.2.7
- * https://github.com/zloirock/core-js
- * License: http://rock.mit-license.org
- * © 2016 Denis Pushkarev
- */
-!function(b,c,a){"use strict";!function(b){function __webpack_require__(c){if(a[c])return a[c].exports;var d=a[c]={exports:{},id:c,loaded:!1};return b[c].call(d.exports,d,d.exports,__webpack_require__),d.loaded=!0,d.exports}var a={};return __webpack_require__.m=b,__webpack_require__.c=a,__webpack_require__.p="",__webpack_require__(0)}([function(b,c,a){a(1),a(34),a(40),a(42),a(44),a(46),a(48),a(50),a(51),a(52),a(53),a(54),a(55),a(56),a(57),a(58),a(59),a(60),a(61),a(64),a(65),a(66),a(68),a(69),a(70),a(71),a(72),a(73),a(74),a(76),a(77),a(78),a(80),a(81),a(82),a(84),a(85),a(86),a(87),a(88),a(89),a(90),a(91),a(92),a(93),a(94),a(95),a(96),a(97),a(99),a(103),a(104),a(106),a(107),a(111),a(116),a(117),a(120),a(122),a(124),a(126),a(127),a(128),a(130),a(131),a(133),a(134),a(135),a(136),a(143),a(146),a(147),a(149),a(150),a(151),a(152),a(153),a(154),a(155),a(156),a(157),a(158),a(159),a(160),a(162),a(163),a(164),a(165),a(166),a(167),a(169),a(170),a(171),a(172),a(174),a(175),a(177),a(178),a(180),a
 (181),a(182),a(183),a(186),a(114),a(188),a(187),a(189),a(190),a(191),a(192),a(193),a(195),a(196),a(197),a(198),a(199),b.exports=a(200)},function(S,R,b){var r,d=b(2),c=b(3),x=b(8),O=b(7),o=b(14),E=b(15),n=b(17),N=b(18),J=b(19),j=b(9),p=b(20),v=b(13),I=b(16),Q=b(21),y=b(23),K=b(25),w=b(26),h=b(27),s=b(24),m=b(11)("__proto__"),g=b(28),A=b(33)(!1),B=Object.prototype,C=Array.prototype,k=C.slice,M=C.join,F=d.setDesc,L=d.getDesc,q=d.setDescs,u={};x||(r=!j(function(){return 7!=F(E("div"),"a",{get:function(){return 7}}).a}),d.setDesc=function(b,c,a){if(r)try{return F(b,c,a)}catch(d){}if("get"in a||"set"in a)throw TypeError("Accessors not supported!");return"value"in a&&(p(b)[c]=a.value),b},d.getDesc=function(a,b){if(r)try{return L(a,b)}catch(c){}return n(a,b)?O(!B.propertyIsEnumerable.call(a,b),a[b]):void 0},d.setDescs=q=function(a,b){p(a);for(var c,e=d.getKeys(b),g=e.length,f=0;g>f;)d.setDesc(a,c=e[f++],b[c]);return a}),c(c.S+c.F*!x,"Object",{getOwnPropertyDescriptor:d.getDesc,definePropert
 y:d.setDesc,defineProperties:q});var i="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),H=i.concat("length","prototype"),G=i.length,l=function(){var a,b=E("iframe"),c=G,d=">";for(b.style.display="none",o.appendChild(b),b.src="javascript:",a=b.contentWindow.document,a.open(),a.write("<script>document.F=Object</script"+d),a.close(),l=a.F;c--;)delete l.prototype[i[c]];return l()},D=function(a,b){return function(g){var c,e=y(g),f=0,d=[];for(c in e)c!=m&&n(e,c)&&d.push(c);for(;b>f;)n(e,c=a[f++])&&(~A(d,c)||d.push(c));return d}},t=function(){};c(c.S,"Object",{getPrototypeOf:d.getProto=d.getProto||function(a){return a=Q(a),n(a,m)?a[m]:"function"==typeof a.constructor&&a instanceof a.constructor?a.constructor.prototype:a instanceof Object?B:null},getOwnPropertyNames:d.getNames=d.getNames||D(H,H.length,!0),create:d.create=d.create||function(c,d){var b;return null!==c?(t.prototype=p(c),b=new t,t.prototype=null,b[m]=c):b=l(),d===a?b:q(b
 ,d)},keys:d.getKeys=d.getKeys||D(i,G,!1)});var P=function(d,a,e){if(!(a in u)){for(var c=[],b=0;a>b;b++)c[b]="a["+b+"]";u[a]=Function("F,a","return new F("+c.join(",")+")")}return u[a](d,e)};c(c.P,"Function",{bind:function bind(c){var a=v(this),d=k.call(arguments,1),b=function(){var e=d.concat(k.call(arguments));return this instanceof b?P(a,e.length,e):J(a,e,c)};return I(a.prototype)&&(b.prototype=a.prototype),b}}),c(c.P+c.F*j(function(){o&&k.call(o)}),"Array",{slice:function(f,b){var d=h(this.length),g=N(this);if(b=b===a?d:b,"Array"==g)return k.call(this,f,b);for(var e=w(f,d),l=w(b,d),i=h(l-e),j=Array(i),c=0;i>c;c++)j[c]="String"==g?this.charAt(e+c):this[e+c];return j}}),c(c.P+c.F*(s!=Object),"Array",{join:function join(b){return M.call(s(this),b===a?",":b)}}),c(c.S,"Array",{isArray:b(30)});var z=function(a){return function(g,d){v(g);var c=s(this),e=h(c.length),b=a?e-1:0,f=a?-1:1;if(arguments.length<2)for(;;){if(b in c){d=c[b],b+=f;break}if(b+=f,a?0>b:b>=e)throw TypeError("Reduce o
 f empty array with no initial value")}for(;a?b>=0:e>b;b+=f)b in c&&(d=g(d,c[b],b,this));return d}},f=function(a){return function(b){return a(this,b,arguments[1])}};c(c.P,"Array",{forEach:d.each=d.each||f(g(0)),map:f(g(1)),filter:f(g(2)),some:f(g(3)),every:f(g(4)),reduce:z(!1),reduceRight:z(!0),indexOf:f(A),lastIndexOf:function(d,e){var b=y(this),c=h(b.length),a=c-1;for(arguments.length>1&&(a=Math.min(a,K(e))),0>a&&(a=h(c+a));a>=0;a--)if(a in b&&b[a]===d)return a;return-1}}),c(c.S,"Date",{now:function(){return+new Date}});var e=function(a){return a>9?a:"0"+a};c(c.P+c.F*(j(function(){return"0385-07-25T07:06:39.999Z"!=new Date(-5e13-1).toISOString()})||!j(function(){new Date(NaN).toISOString()})),"Date",{toISOString:function toISOString(){if(!isFinite(this))throw RangeError("Invalid time value");var a=this,b=a.getUTCFullYear(),c=a.getUTCMilliseconds(),d=0>b?"-":b>9999?"+":"";return d+("00000"+Math.abs(b)).slice(d?-6:-4)+"-"+e(a.getUTCMonth()+1)+"-"+e(a.getUTCDate())+"T"+e(a.getUTCHours
 ())+":"+e(a.getUTCMinutes())+":"+e(a.getUTCSeconds())+"."+(c>99?c:"0"+e(c))+"Z"}})},function(b,c){var a=Object;b.exports={create:a.create,getProto:a.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:a.getOwnPropertyDescriptor,setDesc:a.defineProperty,setDescs:a.defineProperties,getKeys:a.keys,getNames:a.getOwnPropertyNames,getSymbols:a.getOwnPropertySymbols,each:[].forEach}},function(g,j,c){var b=c(4),d=c(5),h=c(6),i=c(10),f=c(12),e="prototype",a=function(k,j,o){var g,m,c,s,v=k&a.F,p=k&a.G,u=k&a.S,r=k&a.P,t=k&a.B,l=p?b:u?b[j]||(b[j]={}):(b[j]||{})[e],n=p?d:d[j]||(d[j]={}),q=n[e]||(n[e]={});p&&(o=j);for(g in o)m=!v&&l&&g in l,c=(m?l:o)[g],s=t&&m?f(c,b):r&&"function"==typeof c?f(Function.call,c):c,l&&!m&&i(l,g,c),n[g]!=c&&h(n,g,s),r&&q[g]!=c&&(q[g]=c)};b.core=d,a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,g.exports=a},function(a,d){var b=a.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof
  c&&(c=b)},function(a,d){var c=a.exports={version:"1.2.6"};"number"==typeof b&&(b=c)},function(b,e,a){var c=a(2),d=a(7);b.exports=a(8)?function(a,b,e){return c.setDesc(a,b,d(1,e))}:function(a,b,c){return a[b]=c,a}},function(a,b){a.exports=function(a,b){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:b}}},function(a,c,b){a.exports=!b(9)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(a,b){a.exports=function(a){try{return!!a()}catch(b){return!0}}},function(f,i,a){var g=a(4),b=a(6),c=a(11)("src"),d="toString",e=Function[d],h=(""+e).split(d);a(5).inspectSource=function(a){return e.call(a)},(f.exports=function(e,a,d,f){"function"==typeof d&&(d.hasOwnProperty(c)||b(d,c,e[a]?""+e[a]:h.join(String(a))),d.hasOwnProperty("name")||b(d,"name",a)),e===g?e[a]=d:(f||delete e[a],b(e,a,d))})(Function.prototype,d,function toString(){return"function"==typeof this&&this[c]||e.call(this)})},function(b,e){var c=0,d=Math.random();b.exports=fun
 ction(b){return"Symbol(".concat(b===a?"":b,")_",(++c+d).toString(36))}},function(b,e,c){var d=c(13);b.exports=function(b,c,e){if(d(b),c===a)return b;switch(e){case 1:return function(a){return b.call(c,a)};case 2:return function(a,d){return b.call(c,a,d)};case 3:return function(a,d,e){return b.call(c,a,d,e)}}return function(){return b.apply(c,arguments)}}},function(a,b){a.exports=function(a){if("function"!=typeof a)throw TypeError(a+" is not a function!");return a}},function(a,c,b){a.exports=b(4).document&&document.documentElement},function(d,f,b){var c=b(16),a=b(4).document,e=c(a)&&c(a.createElement);d.exports=function(b){return e?a.createElement(b):{}}},function(a,b){a.exports=function(a){return"object"==typeof a?null!==a:"function"==typeof a}},function(a,c){var b={}.hasOwnProperty;a.exports=function(a,c){return b.call(a,c)}},function(a,c){var b={}.toString;a.exports=function(a){return b.call(a).slice(8,-1)}},function(b,c){b.exports=function(c,b,d){var e=d===a;switch(b.length){case
  0:return e?c():c.call(d);case 1:return e?c(b[0]):c.call(d,b[0]);case 2:return e?c(b[0],b[1]):c.call(d,b[0],b[1]);case 3:return e?c(b[0],b[1],b[2]):c.call(d,b[0],b[1],b[2]);case 4:return e?c(b[0],b[1],b[2],b[3]):c.call(d,b[0],b[1],b[2],b[3])}return c.apply(d,b)}},function(a,d,b){var c=b(16);a.exports=function(a){if(!c(a))throw TypeError(a+" is not an object!");return a}},function(a,d,b){var c=b(22);a.exports=function(a){return Object(c(a))}},function(b,c){b.exports=function(b){if(b==a)throw TypeError("Can't call method on  "+b);return b}},function(b,e,a){var c=a(24),d=a(22);b.exports=function(a){return c(d(a))}},function(a,d,b){var c=b(18);a.exports=Object("z").propertyIsEnumerable(0)?Object:function(a){return"String"==c(a)?a.split(""):Object(a)}},function(a,d){var b=Math.ceil,c=Math.floor;a.exports=function(a){return isNaN(a=+a)?0:(a>0?c:b)(a)}},function(a,f,b){var c=b(25),d=Math.max,e=Math.min;a.exports=function(a,b){return a=c(a),0>a?d(a+b,0):e(a,b)}},function(a,e,b){var c=b(25),
 d=Math.min;a.exports=function(a){return a>0?d(c(a),9007199254740991):0}},function(d,i,b){var e=b(12),f=b(24),g=b(21),h=b(27),c=b(29);d.exports=function(b){var i=1==b,k=2==b,l=3==b,d=4==b,j=6==b,m=5==b||j;return function(p,v,x){for(var o,r,u=g(p),s=f(u),w=e(v,x,3),t=h(s.length),n=0,q=i?c(p,t):k?c(p,0):a;t>n;n++)if((m||n in s)&&(o=s[n],r=w(o,n,u),b))if(i)q[n]=r;else if(r)switch(b){case 3:return!0;case 5:return o;case 6:return n;case 2:q.push(o)}else if(d)return!1;return j?-1:l||d?d:q}}},function(d,g,b){var e=b(16),c=b(30),f=b(31)("species");d.exports=function(d,g){var b;return c(d)&&(b=d.constructor,"function"!=typeof b||b!==Array&&!c(b.prototype)||(b=a),e(b)&&(b=b[f],null===b&&(b=a))),new(b===a?Array:b)(g)}},function(a,d,b){var c=b(18);a.exports=Array.isArray||function(a){return"Array"==c(a)}},function(d,f,a){var c=a(32)("wks"),e=a(11),b=a(4).Symbol;d.exports=function(a){return c[a]||(c[a]=b&&b[a]||(b||e)("Symbol."+a))}},function(d,f,e){var a=e(4),b="__core-js_shared__",c=a[b]||(a[b]
 ={});d.exports=function(a){return c[a]||(c[a]={})}},function(b,f,a){var c=a(23),d=a(27),e=a(26);b.exports=function(a){return function(j,g,k){var h,f=c(j),i=d(f.length),b=e(k,i);if(a&&g!=g){for(;i>b;)if(h=f[b++],h!=h)return!0}else for(;i>b;b++)if((a||b in f)&&f[b]===g)return a||b;return!a&&-1}}},function(W,V,b){var e=b(2),x=b(4),d=b(17),w=b(8),f=b(3),G=b(10),H=b(9),J=b(32),s=b(35),S=b(11),A=b(31),R=b(36),C=b(37),Q=b(38),P=b(30),O=b(20),p=b(23),v=b(7),I=e.getDesc,i=e.setDesc,k=e.create,z=C.get,g=x.Symbol,l=x.JSON,m=l&&l.stringify,n=!1,c=A("_hidden"),N=e.isEnum,o=J("symbol-registry"),h=J("symbols"),q="function"==typeof g,j=Object.prototype,y=w&&H(function(){return 7!=k(i({},"a",{get:function(){return i(this,"a",{value:7}).a}})).a})?function(c,a,d){var b=I(j,a);b&&delete j[a],i(c,a,d),b&&c!==j&&i(j,a,b)}:i,L=function(a){var b=h[a]=k(g.prototype);return b._k=a,w&&n&&y(j,a,{configurable:!0,set:function(b){d(this,c)&&d(this[c],a)&&(this[c][a]=!1),y(this,a,v(1,b))}}),b},r=function(a){return
 "symbol"==typeof a},t=function defineProperty(a,b,e){return e&&d(h,b)?(e.enumerable?(d(a,c)&&a[c][b]&&(a[c][b]=!1),e=k(e,{enumerable:v(0,!1)})):(d(a,c)||i(a,c,v(1,{})),a[c][b]=!0),y(a,b,e)):i(a,b,e)},u=function defineProperties(a,b){O(a);for(var c,d=Q(b=p(b)),e=0,f=d.length;f>e;)t(a,c=d[e++],b[c]);return a},F=function create(b,c){return c===a?k(b):u(k(b),c)},E=function propertyIsEnumerable(a){var b=N.call(this,a);return b||!d(this,a)||!d(h,a)||d(this,c)&&this[c][a]?b:!0},D=function getOwnPropertyDescriptor(a,b){var e=I(a=p(a),b);return!e||!d(h,b)||d(a,c)&&a[c][b]||(e.enumerable=!0),e},B=function getOwnPropertyNames(g){for(var a,b=z(p(g)),e=[],f=0;b.length>f;)d(h,a=b[f++])||a==c||e.push(a);return e},M=function getOwnPropertySymbols(f){for(var a,b=z(p(f)),c=[],e=0;b.length>e;)d(h,a=b[e++])&&c.push(h[a]);return c},T=function stringify(e){if(e!==a&&!r(e)){for(var b,c,d=[e],f=1,g=arguments;g.length>f;)d.push(g[f++]);return b=d[1],"function"==typeof b&&(c=b),(c||!P(b))&&(b=function(b,a){r
 eturn c&&(a=c.call(this,b,a)),r(a)?void 0:a}),d[1]=b,m.apply(l,d)}},U=H(function(){var a=g();return"[null]"!=m([a])||"{}"!=m({a:a})||"{}"!=m(Object(a))});q||(g=function Symbol(){if(r(this))throw TypeError("Symbol is not a constructor");return L(S(arguments.length>0?arguments[0]:a))},G(g.prototype,"toString",function toString(){return this._k}),r=function(a){return a instanceof g},e.create=F,e.isEnum=E,e.getDesc=D,e.setDesc=t,e.setDescs=u,e.getNames=C.get=B,e.getSymbols=M,w&&!b(39)&&G(j,"propertyIsEnumerable",E,!0));var K={"for":function(a){return d(o,a+="")?o[a]:o[a]=g(a)},keyFor:function keyFor(a){return R(o,a)},useSetter:function(){n=!0},useSimple:function(){n=!1}};e.each.call("hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),function(a){var b=A(a);K[a]=q?b:L(b)}),n=!0,f(f.G+f.W,{Symbol:g}),f(f.S,"Symbol",K),f(f.S+f.F*!q,"Object",{create:F,defineProperty:t,defineProperties:u,getOwnPropertyDescriptor:D,getOwn
 PropertyNames:B,getOwnPropertySymbols:M}),l&&f(f.S+f.F*(!q||U),"JSON",{stringify:T}),s(g,"Symbol"),s(Math,"Math",!0),s(x.JSON,"JSON",!0)},function(c,f,a){var d=a(2).setDesc,e=a(17),b=a(31)("toStringTag");c.exports=function(a,c,f){a&&!e(a=f?a:a.prototype,b)&&d(a,b,{configurable:!0,value:c})}},function(b,e,a){var c=a(2),d=a(23);b.exports=function(g,h){for(var a,b=d(g),e=c.getKeys(b),i=e.length,f=0;i>f;)if(b[a=e[f++]]===h)return a}},function(d,h,a){var e=a(23),b=a(2).getNames,f={}.toString,c="object"==typeof window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],g=function(a){try{return b(a)}catch(d){return c.slice()}};d.exports.get=function getOwnPropertyNames(a){return c&&"[object Window]"==f.call(a)?g(a):b(e(a))}},function(b,d,c){var a=c(2);b.exports=function(b){var c=a.getKeys(b),d=a.getSymbols;if(d)for(var e,f=d(b),h=a.isEnum,g=0;f.length>g;)h.call(b,e=f[g++])&&c.push(e);return c}},function(a,b){a.exports=!1},function(c,d,b){var a=b(3);a(a.S+a.F,"Object",{assign:
 b(41)})},function(c,f,a){var b=a(2),d=a(21),e=a(24);c.exports=a(9)(function(){var a=Object.assign,b={},c={},d=Symbol(),e="abcdefghijklmnopqrst";return b[d]=7,e.split("").forEach(function(a){c[a]=a}),7!=a({},b)[d]||Object.keys(a({},c)).join("")!=e})?function assign(n,q){for(var g=d(n),h=arguments,o=h.length,j=1,f=b.getKeys,l=b.getSymbols,m=b.isEnum;o>j;)for(var c,a=e(h[j++]),k=l?f(a).concat(l(a)):f(a),p=k.length,i=0;p>i;)m.call(a,c=k[i++])&&(g[c]=a[c]);return g}:Object.assign},function(c,d,a){var b=a(3);b(b.S,"Object",{is:a(43)})},function(a,b){a.exports=Object.is||function is(a,b){return a===b?0!==a||1/a===1/b:a!=a&&b!=b}},function(c,d,a){var b=a(3);b(b.S,"Object",{setPrototypeOf:a(45).set})},function(d,h,b){var e=b(2).getDesc,f=b(16),g=b(20),c=function(b,a){if(g(b),!f(a)&&null!==a)throw TypeError(a+": can't set as prototype!")};d.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(f,a,d){try{d=b(12)(Function.call,e(Object.prototype,"__proto__").set,2),d(f,[]),a=!(f instan
 ceof Array)}catch(g){a=!0}return function setPrototypeOf(b,e){return c(b,e),a?b.__proto__=e:d(b,e),b}}({},!1):a),check:c}},function(d,e,a){var c=a(47),b={};b[a(31)("toStringTag")]="z",b+""!="[object z]"&&a(10)(Object.prototype,"toString",function toString(){return"[object "+c(this)+"]"},!0)},function(d,g,c){var b=c(18),e=c(31)("toStringTag"),f="Arguments"==b(function(){return arguments}());d.exports=function(d){var c,g,h;return d===a?"Undefined":null===d?"Null":"string"==typeof(g=(c=Object(d))[e])?g:f?b(c):"Object"==(h=b(c))&&"function"==typeof c.callee?"Arguments":h}},function(c,d,a){var b=a(16);a(49)("freeze",function(a){return function freeze(c){return a&&b(c)?a(c):c}})},function(c,f,a){var b=a(3),d=a(5),e=a(9);c.exports=function(a,g){var c=(d.Object||{})[a]||Object[a],f={};f[a]=g(c),b(b.S+b.F*e(function(){c(1)}),"Object",f)}},function(c,d,a){var b=a(16);a(49)("seal",function(a){return function seal(c){return a&&b(c)?a(c):c}})},function(c,d,a){var b=a(16);a(49)("preventExtensions
 ",function(a){return function preventExtensions(c){return a&&b(c)?a(c):c}})},function(c,d,a){var b=a(16);a(49)("isFrozen",function(a){return function isFrozen(c){return b(c)?a?a(c):!1:!0}})},function(c,d,a){var b=a(16);a(49)("isSealed",function(a){return function isSealed(c){return b(c)?a?a(c):!1:!0}})},function(c,d,a){var b=a(16);a(49)("isExtensible",function(a){return function isExtensible(c){return b(c)?a?a(c):!0:!1}})},function(c,d,a){var b=a(23);a(49)("getOwnPropertyDescriptor",function(a){return function getOwnPropertyDescriptor(c,d){return a(b(c),d)}})},function(c,d,a){var b=a(21);a(49)("getPrototypeOf",function(a){return function getPrototypeOf(c){return a(b(c))}})},function(c,d,a){var b=a(21);a(49)("keys",function(a){return function keys(c){return a(b(c))}})},function(b,c,a){a(49)("getOwnPropertyNames",function(){return a(37).get})},function(h,i,a){var c=a(2).setDesc,e=a(7),f=a(17),d=Function.prototype,g=/^\s*function ([^ (]*)/,b="name";b in d||a(8)&&c(d,b,{configurable:!0,
 get:function(){var a=(""+this).match(g),d=a?a[1]:"";return f(this,b)||c(this,b,e(5,d)),d}})},function(f,g,a){var b=a(2),c=a(16),d=a(31)("hasInstance"),e=Function.prototype;d in e||b.setDesc(e,d,{value:function(a){if("function"!=typeof this||!c(a))return!1;if(!c(this.prototype))return a instanceof this;for(;a=b.getProto(a);)if(this.prototype===a)return!0;return!1}})},function(q,p,b){var c=b(2),h=b(4),i=b(17),j=b(18),l=b(62),k=b(9),n=b(63).trim,d="Number",a=h[d],e=a,f=a.prototype,o=j(c.create(f))==d,m="trim"in String.prototype,g=function(i){var a=l(i,!1);if("string"==typeof a&&a.length>2){a=m?a.trim():n(a,3);var b,c,d,e=a.charCodeAt(0);if(43===e||45===e){if(b=a.charCodeAt(2),88===b||120===b)return NaN}else if(48===e){switch(a.charCodeAt(1)){case 66:case 98:c=2,d=49;break;case 79:case 111:c=8,d=55;break;default:return+a}for(var f,g=a.slice(2),h=0,j=g.length;j>h;h++)if(f=g.charCodeAt(h),48>f||f>d)return NaN;return parseInt(g,c)}}return+a};a(" 0o1")&&a("0b1")&&!a("+0x1")||(a=function Num
 ber(h){var c=arguments.length<1?0:h,b=this;return b instanceof a&&(o?k(function(){f.valueOf.call(b)}):j(b)!=d)?new e(g(c)):g(c)},c.each.call(b(8)?c.getNames(e):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),function(b){i(e,b)&&!i(a,b)&&c.setDesc(a,b,c.getDesc(e,b))}),a.prototype=f,f.constructor=a,b(10)(h,d,a))},function(b,d,c){var a=c(16);b.exports=function(b,e){if(!a(b))return b;var c,d;if(e&&"function"==typeof(c=b.toString)&&!a(d=c.call(b)))return d;if("function"==typeof(c=b.valueOf)&&!a(d=c.call(b)))return d;if(!e&&"function"==typeof(c=b.toString)&&!a(d=c.call(b)))return d;throw TypeError("Can't convert object to primitive value")}},function(g,m,b){var c=b(3),h=b(22),i=b(9),d="	\n\f\r   ᠎              \u2028\u2029\ufeff",a="["+d+"]",f="​…",j=RegExp("^"+a+a+"*"),k=RegExp(a+a+"*$"),e=function(a,e){var b={};b[a]
 =e(l),c(c.P+c.F*i(function(){return!!d[a]()||f[a]()!=f}),"String",b)},l=e.trim=function(a,b){return a=String(h(a)),1&b&&(a=a.replace(j,"")),2&b&&(a=a.replace(k,"")),a};g.exports=e},function(c,d,b){var a=b(3);a(a.S,"Number",{EPSILON:Math.pow(2,-52)})},function(d,e,a){var b=a(3),c=a(4).isFinite;b(b.S,"Number",{isFinite:function isFinite(a){return"number"==typeof a&&c(a)}})},function(c,d,a){var b=a(3);b(b.S,"Number",{isInteger:a(67)})},function(a,e,b){var c=b(16),d=Math.floor;a.exports=function isInteger(a){return!c(a)&&isFinite(a)&&d(a)===a}},function(c,d,b){var a=b(3);a(a.S,"Number",{isNaN:function isNaN(a){return a!=a}})},function(e,f,a){var b=a(3),c=a(67),d=Math.abs;b(b.S,"Number",{isSafeInteger:function isSafeInteger(a){return c(a)&&d(a)<=9007199254740991}})},function(c,d,b){var a=b(3);a(a.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},function(c,d,b){var a=b(3);a(a.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},function(c,d,b){var a=b(3);a(a.S,"Number",{parseFloat:parseFloat
 })},function(c,d,b){var a=b(3);a(a.S,"Number",{parseInt:parseInt})},function(f,g,b){var a=b(3),e=b(75),c=Math.sqrt,d=Math.acosh;a(a.S+a.F*!(d&&710==Math.floor(d(Number.MAX_VALUE))),"Math",{acosh:function acosh(a){return(a=+a)<1?NaN:a>94906265.62425156?Math.log(a)+Math.LN2:e(a-1+c(a-1)*c(a+1))}})},function(a,b){a.exports=Math.log1p||function log1p(a){return(a=+a)>-1e-8&&1e-8>a?a-a*a/2:Math.log(1+a)}},function(c,d,b){function asinh(a){return isFinite(a=+a)&&0!=a?0>a?-asinh(-a):Math.log(a+Math.sqrt(a*a+1)):a}var a=b(3);a(a.S,"Math",{asinh:asinh})},function(c,d,b){var a=b(3);a(a.S,"Math",{atanh:function atanh(a){return 0==(a=+a)?a:Math.log((1+a)/(1-a))/2}})},function(d,e,a){var b=a(3),c=a(79);b(b.S,"Math",{cbrt:function cbrt(a){return c(a=+a)*Math.pow(Math.abs(a),1/3)}})},function(a,b){a.exports=Math.sign||function sign(a){return 0==(a=+a)||a!=a?a:0>a?-1:1}},function(c,d,b){var a=b(3);a(a.S,"Math",{clz32:function clz32(a){return(a>>>=0)?31-Math.floor(Math.log(a+.5)*Math.LOG2E):32}})},fu
 nction(d,e,c){var a=c(3),b=Math.exp;a(a.S,"Math",{cosh:function cosh(a){return(b(a=+a)+b(-a))/2}})},function(c,d,a){var b=a(3);b(b.S,"Math",{expm1:a(83)})},function(a,b){a.exports=Math.expm1||function expm1(a){return 0==(a=+a)?a:a>-1e-6&&1e-6>a?a+a*a/2:Math.exp(a)-1}},function(k,j,e){var f=e(3),g=e(79),a=Math.pow,d=a(2,-52),b=a(2,-23),i=a(2,127)*(2-b),c=a(2,-126),h=function(a){return a+1/d-1/d};f(f.S,"Math",{fround:function fround(k){var f,a,e=Math.abs(k),j=g(k);return c>e?j*h(e/c/b)*c*b:(f=(1+b/d)*e,a=f-(f-e),a>i||a!=a?j*(1/0):j*a)}})},function(d,e,b){var a=b(3),c=Math.abs;a(a.S,"Math",{hypot:function hypot(i,j){for(var a,b,e=0,f=0,g=arguments,h=g.length,d=0;h>f;)a=c(g[f++]),a>d?(b=d/a,e=e*b*b+1,d=a):a>0?(b=a/d,e+=b*b):e+=a;return d===1/0?1/0:d*Math.sqrt(e)}})},function(d,e,b){var a=b(3),c=Math.imul;a(a.S+a.F*b(9)(function(){return-5!=c(4294967295,5)||2!=c.length}),"Math",{imul:function imul(f,g){var a=65535,b=+f,c=+g,d=a&b,e=a&c;return 0|d*e+((a&b>>>16)*e+d*(a&c>>>16)<<16>>>0)}})}
 ,function(c,d,b){var a=b(3);a(a.S,"Math",{log10:function log10(a){return Math.log(a)/Math.LN10}})},function(c,d,a){var b=a(3);b(b.S,"Math",{log1p:a(75)})},function(c,d,b){var a=b(3);a(a.S,"Math",{log2:function log2(a){return Math.log(a)/Math.LN2}})},function(c,d,a){var b=a(3);b(b.S,"Math",{sign:a(79)})},function(e,f,a){var b=a(3),c=a(83),d=Math.exp;b(b.S+b.F*a(9)(function(){return-2e-17!=!Math.sinh(-2e-17)}),"Math",{sinh:function sinh(a){return Math.abs(a=+a)<1?(c(a)-c(-a))/2:(d(a-1)-d(-a-1))*(Math.E/2)}})},function(e,f,a){var b=a(3),c=a(83),d=Math.exp;b(b.S,"Math",{tanh:function tanh(a){var b=c(a=+a),e=c(-a);return b==1/0?1:e==1/0?-1:(b-e)/(d(a)+d(-a))}})},function(c,d,b){var a=b(3);a(a.S,"Math",{trunc:function trunc(a){return(a>0?Math.floor:Math.ceil)(a)}})},function(f,g,b){var a=b(3),e=b(26),c=String.fromCharCode,d=String.fromCodePoint;a(a.S+a.F*(!!d&&1!=d.length),"String",{fromCodePoint:function fromCodePoint(h){for(var a,b=[],d=arguments,g=d.length,f=0;g>f;){if(a=+d[f++],e(a,11
 14111)!==a)throw RangeError(a+" is not a valid code point");b.push(65536>a?c(a):c(((a-=65536)>>10)+55296,a%1024+56320))}return b.join("")}})},function(e,f,a){var b=a(3),c=a(23),d=a(27);b(b.S,"String",{raw:function raw(g){for(var e=c(g.raw),h=d(e.length),f=arguments,i=f.length,b=[],a=0;h>a;)b.push(String(e[a++])),i>a&&b.push(String(f[a]));return b.join("")}})},function(b,c,a){a(63)("trim",function(a){return function trim(){return a(this,3)}})},function(d,e,a){var b=a(3),c=a(98)(!1);b(b.P,"String",{codePointAt:function codePointAt(a){return c(this,a)}})},function(c,f,b){var d=b(25),e=b(22);c.exports=function(b){return function(j,k){var f,h,g=String(e(j)),c=d(k),i=g.length;return 0>c||c>=i?b?"":a:(f=g.charCodeAt(c),55296>f||f>56319||c+1===i||(h=g.charCodeAt(c+1))<56320||h>57343?b?g.charAt(c):f:b?g.slice(c,c+2):(f-55296<<10)+(h-56320)+65536)}}},function(h,i,b){var c=b(3),e=b(27),g=b(100),d="endsWith",f=""[d];c(c.P+c.F*b(102)(d),"String",{endsWith:function endsWith(i){var b=g(this,i,d),j
 =arguments,k=j.length>1?j[1]:a,l=e(b.length),c=k===a?l:Math.min(e(k),l),h=String(i);return f?f.call(b,h,c):b.slice(c-h.length,c)===h}})},function(b,e,a){var c=a(101),d=a(22);b.exports=function(a,b,e){if(c(b))throw TypeError("String#"+e+" doesn't accept regex!");return String(d(a))}},function(c,g,b){var d=b(16),e=b(18),f=b(31)("match");c.exports=function(b){var c;return d(b)&&((c=b[f])!==a?!!c:"RegExp"==e(b))}},function(a,d,b){var c=b(31)("match");a.exports=function(b){var a=/./;try{"/./"[b](a)}catch(d){try{return a[c]=!1,!"/./"[b](a)}catch(e){}}return!0}},function(f,g,b){var c=b(3),e=b(100),d="includes";c(c.P+c.F*b(102)(d),"String",{includes:function includes(b){return!!~e(this,b,d).indexOf(b,arguments.length>1?arguments[1]:a)}})},function(c,d,a){var b=a(3);b(b.P,"String",{repeat:a(105)})},function(b,e,a){var c=a(25),d=a(22);b.exports=function repeat(f){var b=String(d(this)),e="",a=c(f);if(0>a||a==1/0)throw RangeError("Count can't be negative");for(;a>0;(a>>>=1)&&(b+=b))1&a&&(e+=b);
 return e}},function(h,i,b){var c=b(3),f=b(27),g=b(100),d="startsWith",e=""[d];c(c.P+c.F*b(102)(d),"String",{startsWith:function startsWith(i){var b=g(this,i,d),j=arguments,c=f(Math.min(j.length>1?j[1]:a,b.length)),h=String(i);return e?e.call(b,h,c):b.slice(c,c+h.length)===h}})},function(d,e,b){var c=b(98)(!0);b(108)(String,"String",function(a){this._t=String(a),this._i=0},function(){var b,d=this._t,e=this._i;return e>=d.length?{value:a,done:!0}:(b=c(d,e),this._i+=b.length,{value:b,done:!1})})},function(o,r,a){var i=a(39),d=a(3),n=a(10),h=a(6),m=a(17),f=a(109),q=a(110),p=a(35),l=a(2).getProto,c=a(31)("iterator"),e=!([].keys&&"next"in[].keys()),j="@@iterator",k="keys",b="values",g=function(){return this};o.exports=function(B,v,u,F,s,E,A){q(u,v,F);var r,x,w=function(c){if(!e&&c in a)return a[c];switch(c){case k:return function keys(){return new u(this,c)};case b:return function values(){return new u(this,c)}}return function entries(){return new u(this,c)}},C=v+" Iterator",y=s==b,z=!1,a
 =B.prototype,t=a[c]||a[j]||s&&a[s],o=t||w(s);if(t){var D=l(o.call(new B));p(D,C,!0),!i&&m(a,j)&&h(D,c,g),y&&t.name!==b&&(z=!0,o=function values(){return t.call(this)})}if(i&&!A||!e&&!z&&a[c]||h(a,c,o),f[v]=o,f[C]=g,s)if(r={values:y?o:w(b),keys:E?o:w(k),entries:y?w("entries"):o},A)for(x in r)x in a||n(a,x,r[x]);else d(d.P+d.F*(e||z),v,r);return r}},function(a,b){a.exports={}},function(c,g,a){var d=a(2),e=a(7),f=a(35),b={};a(6)(b,a(31)("iterator"),function(){return this}),c.exports=function(a,c,g){a.prototype=d.create(b,{next:e(1,g)}),f(a,c+" Iterator")}},function(j,k,b){var d=b(12),c=b(3),e=b(21),f=b(112),g=b(113),h=b(27),i=b(114);c(c.S+c.F*!b(115)(function(a){Array.from(a)}),"Array",{from:function from(t){var n,c,r,m,j=e(t),l="function"==typeof this?this:Array,p=arguments,s=p.length,k=s>1?p[1]:a,q=k!==a,b=0,o=i(j);if(q&&(k=d(k,s>2?p[2]:a,2)),o==a||l==Array&&g(o))for(n=h(j.length),c=new l(n);n>b;b++)c[b]=q?k(j[b],b):j[b];else for(m=o.call(j),c=new l;!(r=m.next()).done;b++)c[b]=q?f(m,
 k,[r.value,b],!0):r.value;return c.length=b,c}})},function(c,e,d){var b=d(20);c.exports=function(d,e,c,g){try{return g?e(b(c)[0],c[1]):e(c)}catch(h){var f=d["return"];throw f!==a&&b(f.call(d)),h}}},function(c,g,b){var d=b(109),e=b(31)("iterator"),f=Array.prototype;c.exports=function(b){return b!==a&&(d.Array===b||f[e]===b)}},function(c,g,b){var d=b(47),e=b(31)("iterator"),f=b(109);c.exports=b(5).getIteratorMethod=function(b){return b!=a?b[e]||b["@@iterator"]||f[d(b)]:void 0}},function(d,f,e){var a=e(31)("iterator"),b=!1;try{var c=[7][a]();c["return"]=function(){b=!0},Array.from(c,function(){throw 2})}catch(g){}d.exports=function(f,g){if(!g&&!b)return!1;var d=!1;try{var c=[7],e=c[a]();e.next=function(){return{done:d=!0}},c[a]=function(){return e},f(c)}catch(h){}return d}},function(c,d,b){var a=b(3);a(a.S+a.F*b(9)(function(){function F(){}return!(Array.of.call(F)instanceof F)}),"Array",{of:function of(){for(var a=0,d=arguments,b=d.length,c=new("function"==typeof this?this:Array)(b);b>
 a;)c[a]=d[a++];return c.length=b,c}})},function(f,h,b){var d=b(118),c=b(119),e=b(109),g=b(23);f.exports=b(108)(Array,"Array",function(a,b){this._t=g(a),this._i=0,this._k=b},function(){var d=this._t,e=this._k,b=this._i++;return!d||b>=d.length?(this._t=a,c(1)):"keys"==e?c(0,b):"values"==e?c(0,d[b]):c(0,[b,d[b]])},"values"),e.Arguments=e.Array,d("keys"),d("values"),d("entries")},function(e,f,d){var b=d(31)("unscopables"),c=Array.prototype;c[b]==a&&d(6)(c,b,{}),e.exports=function(a){c[b][a]=!0}},function(a,b){a.exports=function(a,b){return{value:b,done:!!a}}},function(b,c,a){a(121)("Array")},function(c,g,a){var d=a(4),e=a(2),f=a(8),b=a(31)("species");c.exports=function(c){var a=d[c];f&&a&&!a[b]&&e.setDesc(a,b,{configurable:!0,get:function(){return this}})}},function(c,d,a){var b=a(3);b(b.P,"Array",{copyWithin:a(123)}),a(118)("copyWithin")},function(d,g,b){var e=b(21),c=b(26),f=b(27);d.exports=[].copyWithin||function copyWithin(m,n){var g=e(this),h=f(g.length),b=c(m,h),d=c(n,h),k=argumen
 ts,l=k.length>2?k[2]:a,i=Math.min((l===a?h:c(l,h))-d,h-b),j=1;for(b>d&&d+i>b&&(j=-1,d+=i-1,b+=i-1);i-->0;)d in g?g[b]=g[d]:delete g[b],b+=j,d+=j;return g}},function(c,d,a){var b=a(3);b(b.P,"Array",{fill:a(125)}),a(118)("fill")},function(d,g,b){var e=b(21),c=b(26),f=b(27);d.exports=[].fill||function fill(k){for(var b=e(this),d=f(b.length),g=arguments,h=g.length,i=c(h>1?g[1]:a,d),j=h>2?g[2]:a,l=j===a?d:c(j,d);l>i;)b[i++]=k;return b}},function(g,h,b){var c=b(3),f=b(28)(5),d="find",e=!0;d in[]&&Array(1)[d](function(){e=!1}),c(c.P+c.F*e,"Array",{find:function find(b){return f(this,b,arguments.length>1?arguments[1]:a)}}),b(118)(d)},function(g,h,b){var c=b(3),f=b(28)(6),d="findIndex",e=!0;d in[]&&Array(1)[d](function(){e=!1}),c(c.P+c.F*e,"Array",{findIndex:function findIndex(b){return f(this,b,arguments.length>1?arguments[1]:a)}}),b(118)(d)},function(n,m,c){var f=c(2),i=c(4),k=c(101),l=c(129),b=i.RegExp,d=b,j=b.prototype,e=/a/g,g=/a/g,h=new b(e)!==e;!c(8)||h&&!c(9)(function(){return g[c(31
 )("match")]=!1,b(e)!=e||b(g)==g||"/a/i"!=b(e,"i")})||(b=function RegExp(c,f){var e=k(c),g=f===a;return this instanceof b||!e||c.constructor!==b||!g?h?new d(e&&!g?c.source:c,f):d((e=c instanceof b)?c.source:c,e&&g?l.call(c):f):c},f.each.call(f.getNames(d),function(a){a in b||f.setDesc(b,a,{configurable:!0,get:function(){return d[a]},set:function(b){d[a]=b}})}),j.constructor=b,b.prototype=j,c(10)(i,"RegExp",b)),c(121)("RegExp")},function(a,d,b){var c=b(20);a.exports=function(){var b=c(this),a="";return b.global&&(a+="g"),b.ignoreCase&&(a+="i"),b.multiline&&(a+="m"),b.unicode&&(a+="u"),b.sticky&&(a+="y"),a}},function(c,d,a){var b=a(2);a(8)&&"g"!=/./g.flags&&b.setDesc(RegExp.prototype,"flags",{configurable:!0,get:a(129)})},function(c,d,b){b(132)("match",1,function(c,b){return function match(d){var e=c(this),f=d==a?a:d[b];return f!==a?f.call(d,e):new RegExp(d)[b](String(e))}})},function(b,h,a){var c=a(6),d=a(10),e=a(9),f=a(22),g=a(31);b.exports=function(a,i,j){var b=g(a),h=""[a];e(functi
 on(){var c={};return c[b]=function(){return 7},7!=""[a](c)})&&(d(String.prototype,a,j(f,b,h)),c(RegExp.prototype,b,2==i?function(a,b){return h.call(a,this,b)}:function(a){return h.call(a,this)}))}},function(c,d,b){b(132)("replace",2,function(b,c,d){return function replace(e,f){var g=b(this),h=e==a?a:e[c];return h!==a?h.call(e,g,f):d.call(String(g),e,f)}})},function(c,d,b){b(132)("search",1,function(c,b){return function search(d){var e=c(this),f=d==a?a:d[b];return f!==a?f.call(d,e):new RegExp(d)[b](String(e))}})},function(c,d,b){b(132)("split",2,function(b,c,d){return function split(e,f){var g=b(this),h=e==a?a:e[c];return h!==a?h.call(e,g,f):d.call(String(g),e,f)}})},function(K,J,b){var s,l=b(2),F=b(39),k=b(4),j=b(12),I=b(47),d=b(3),D=b(16),E=b(20),m=b(13),G=b(137),p=b(138),q=b(45).set,A=b(43),B=b(31)("species"),z=b(139),v=b(140),e="Promise",o=k.process,H="process"==I(o),c=k[e],i=function(){},r=function(d){var b,a=new c(i);return d&&(a.constructor=function(a){a(i,i)}),(b=c.resolve(a)
 )["catch"](i),b===a},h=function(){function P2(b){var a=new c(b);return q(a,P2.prototype),a}var a=!1;try{if(a=c&&c.resolve&&r(),q(P2,c),
-P2.prototype=l.create(c.prototype,{constructor:{value:P2}}),P2.resolve(5).then(function(){})instanceof P2||(a=!1),a&&b(8)){var d=!1;c.resolve(l.setDesc({},"then",{get:function(){d=!0}})),a=d}}catch(e){a=!1}return a}(),C=function(a,b){return F&&a===c&&b===s?!0:A(a,b)},t=function(b){var c=E(b)[B];return c!=a?c:b},u=function(a){var b;return D(a)&&"function"==typeof(b=a.then)?b:!1},g=function(d){var b,c;this.promise=new d(function(d,e){if(b!==a||c!==a)throw TypeError("Bad Promise constructor");b=d,c=e}),this.resolve=m(b),this.reject=m(c)},w=function(a){try{a()}catch(b){return{error:b}}},n=function(b,d){if(!b.n){b.n=!0;var c=b.c;v(function(){for(var e=b.v,f=1==b.s,g=0,h=function(a){var c,h,g=f?a.ok:a.fail,i=a.resolve,d=a.reject;try{g?(f||(b.h=!0),c=g===!0?e:g(e),c===a.promise?d(TypeError("Promise-chain cycle")):(h=u(c))?h.call(c,i,d):i(c)):d(e)}catch(j){d(j)}};c.length>g;)h(c[g++]);c.length=0,b.n=!1,d&&setTimeout(function(){var f,c,d=b.p;y(d)&&(H?o.emit("unhandledRejection",e,d):(f=k.onu
 nhandledrejection)?f({promise:d,reason:e}):(c=k.console)&&c.error&&c.error("Unhandled promise rejection",e)),b.a=a},1)})}},y=function(e){var a,b=e._d,c=b.a||b.c,d=0;if(b.h)return!1;for(;c.length>d;)if(a=c[d++],a.fail||!y(a.promise))return!1;return!0},f=function(b){var a=this;a.d||(a.d=!0,a=a.r||a,a.v=b,a.s=2,a.a=a.c.slice(),n(a,!0))},x=function(b){var c,a=this;if(!a.d){a.d=!0,a=a.r||a;try{if(a.p===b)throw TypeError("Promise can't be resolved itself");(c=u(b))?v(function(){var d={r:a,d:!1};try{c.call(b,j(x,d,1),j(f,d,1))}catch(e){f.call(d,e)}}):(a.v=b,a.s=1,n(a,!1))}catch(d){f.call({r:a,d:!1},d)}}};h||(c=function Promise(d){m(d);var b=this._d={p:G(this,c,e),c:[],a:a,s:0,d:!1,v:a,h:!1,n:!1};try{d(j(x,b,1),j(f,b,1))}catch(g){f.call(b,g)}},b(142)(c.prototype,{then:function then(d,e){var a=new g(z(this,c)),f=a.promise,b=this._d;return a.ok="function"==typeof d?d:!0,a.fail="function"==typeof e&&e,b.c.push(a),b.a&&b.a.push(a),b.s&&n(b,!1),f},"catch":function(b){return this.then(a,b)}})),d(
 d.G+d.W+d.F*!h,{Promise:c}),b(35)(c,e),b(121)(e),s=b(5)[e],d(d.S+d.F*!h,e,{reject:function reject(b){var a=new g(this),c=a.reject;return c(b),a.promise}}),d(d.S+d.F*(!h||r(!0)),e,{resolve:function resolve(a){if(a instanceof c&&C(a.constructor,this))return a;var b=new g(this),d=b.resolve;return d(a),b.promise}}),d(d.S+d.F*!(h&&b(115)(function(a){c.all(a)["catch"](function(){})})),e,{all:function all(h){var c=t(this),b=new g(c),d=b.resolve,e=b.reject,a=[],f=w(function(){p(h,!1,a.push,a);var b=a.length,f=Array(b);b?l.each.call(a,function(g,h){var a=!1;c.resolve(g).then(function(c){a||(a=!0,f[h]=c,--b||d(f))},e)}):d(f)});return f&&e(f.error),b.promise},race:function race(e){var b=t(this),a=new g(b),c=a.reject,d=w(function(){p(e,!1,function(d){b.resolve(d).then(a.resolve,c)})});return d&&c(d.error),a.promise}})},function(a,b){a.exports=function(a,b,c){if(!(a instanceof b))throw TypeError(c+": use the 'new' operator!");return a}},function(b,i,a){var c=a(12),d=a(112),e=a(113),f=a(20),g=a(2
 7),h=a(114);b.exports=function(a,j,o,p){var n,b,k,l=h(a),m=c(o,p,j?2:1),i=0;if("function"!=typeof l)throw TypeError(a+" is not iterable!");if(e(l))for(n=g(a.length);n>i;i++)j?m(f(b=a[i])[0],b[1]):m(a[i]);else for(k=l.call(a);!(b=k.next()).done;)d(k,m,b.value,j)}},function(d,g,b){var c=b(20),e=b(13),f=b(31)("species");d.exports=function(g,h){var b,d=c(g).constructor;return d===a||(b=c(d)[f])==a?h:e(b)}},function(n,p,h){var b,f,g,c=h(4),o=h(141).set,k=c.MutationObserver||c.WebKitMutationObserver,d=c.process,i=c.Promise,j="process"==h(18)(d),e=function(){var e,c,g;for(j&&(e=d.domain)&&(d.domain=null,e.exit());b;)c=b.domain,g=b.fn,c&&c.enter(),g(),c&&c.exit(),b=b.next;f=a,e&&e.enter()};if(j)g=function(){d.nextTick(e)};else if(k){var m=1,l=document.createTextNode("");new k(e).observe(l,{characterData:!0}),g=function(){l.data=m=-m}}else g=i&&i.resolve?function(){i.resolve().then(e)}:function(){o.call(c,e)};n.exports=function asap(e){var c={fn:e,next:a,domain:j&&d.domain};f&&(f.next=c),b||
 (b=c,g()),f=c}},function(s,t,b){var c,g,f,k=b(12),r=b(19),n=b(14),p=b(15),a=b(4),l=a.process,h=a.setImmediate,i=a.clearImmediate,o=a.MessageChannel,j=0,d={},q="onreadystatechange",e=function(){var a=+this;if(d.hasOwnProperty(a)){var b=d[a];delete d[a],b()}},m=function(a){e.call(a.data)};h&&i||(h=function setImmediate(a){for(var b=[],e=1;arguments.length>e;)b.push(arguments[e++]);return d[++j]=function(){r("function"==typeof a?a:Function(a),b)},c(j),j},i=function clearImmediate(a){delete d[a]},"process"==b(18)(l)?c=function(a){l.nextTick(k(e,a,1))}:o?(g=new o,f=g.port2,g.port1.onmessage=m,c=k(f.postMessage,f,1)):a.addEventListener&&"function"==typeof postMessage&&!a.importScripts?(c=function(b){a.postMessage(b+"","*")},a.addEventListener("message",m,!1)):c=q in p("script")?function(a){n.appendChild(p("script"))[q]=function(){n.removeChild(this),e.call(a)}}:function(a){setTimeout(k(e,a,1),0)}),s.exports={set:h,clear:i}},function(a,d,b){var c=b(10);a.exports=function(a,b){for(var d in 
 b)c(a,d,b[d]);return a}},function(d,e,c){var b=c(144);c(145)("Map",function(b){return function Map(){return b(this,arguments.length>0?arguments[0]:a)}},{get:function get(c){var a=b.getEntry(this,c);return a&&a.v},set:function set(a,c){return b.def(this,0===a?0:a,c)}},b,!0)},function(v,w,b){var j=b(2),m=b(6),o=b(142),n=b(12),p=b(137),r=b(22),t=b(138),l=b(108),d=b(119),f=b(11)("id"),k=b(17),h=b(16),q=b(121),i=b(8),s=Object.isExtensible||h,c=i?"_s":"size",u=0,g=function(a,b){if(!h(a))return"symbol"==typeof a?a:("string"==typeof a?"S":"P")+a;if(!k(a,f)){if(!s(a))return"F";if(!b)return"E";m(a,f,++u)}return"O"+a[f]},e=function(b,c){var a,d=g(c);if("F"!==d)return b._i[d];for(a=b._f;a;a=a.n)if(a.k==c)return a};v.exports={getConstructor:function(d,f,g,h){var b=d(function(d,e){p(d,b,f),d._i=j.create(null),d._f=a,d._l=a,d[c]=0,e!=a&&t(e,g,d[h],d)});return o(b.prototype,{clear:function clear(){for(var d=this,e=d._i,b=d._f;b;b=b.n)b.r=!0,b.p&&(b.p=b.p.n=a),delete e[b.i];d._f=d._l=a,d[c]=0},"dele
 te":function(g){var b=this,a=e(b,g);if(a){var d=a.n,f=a.p;delete b._i[a.i],a.r=!0,f&&(f.n=d),d&&(d.p=f),b._f==a&&(b._f=d),b._l==a&&(b._l=f),b[c]--}return!!a},forEach:function forEach(c){for(var b,d=n(c,arguments.length>1?arguments[1]:a,3);b=b?b.n:this._f;)for(d(b.v,b.k,this);b&&b.r;)b=b.p},has:function has(a){return!!e(this,a)}}),i&&j.setDesc(b.prototype,"size",{get:function(){return r(this[c])}}),b},def:function(b,f,j){var h,i,d=e(b,f);return d?d.v=j:(b._l=d={i:i=g(f,!0),k:f,v:j,p:h=b._l,n:a,r:!1},b._f||(b._f=d),h&&(h.n=d),b[c]++,"F"!==i&&(b._i[i]=d)),b},getEntry:e,setStrong:function(e,b,c){l(e,b,function(b,c){this._t=b,this._k=c,this._l=a},function(){for(var c=this,e=c._k,b=c._l;b&&b.r;)b=b.p;return c._t&&(c._l=b=b?b.n:c._t._f)?"keys"==e?d(0,b.k):"values"==e?d(0,b.v):d(0,[b.k,b.v]):(c._t=a,d(1))},c?"entries":"values",!c,!0),q(b)}}},function(l,n,b){var k=b(4),c=b(3),g=b(10),f=b(142),i=b(138),j=b(137),d=b(16),e=b(9),h=b(115),m=b(35);l.exports=function(o,v,y,x,p,l){var t=k[o],b=t,s=p
 ?"set":"add",n=b&&b.prototype,w={},r=function(b){var c=n[b];g(n,b,"delete"==b?function(a){return l&&!d(a)?!1:c.call(this,0===a?0:a)}:"has"==b?function has(a){return l&&!d(a)?!1:c.call(this,0===a?0:a)}:"get"==b?function get(b){return l&&!d(b)?a:c.call(this,0===b?0:b)}:"add"==b?function add(a){return c.call(this,0===a?0:a),this}:function set(a,b){return c.call(this,0===a?0:a,b),this})};if("function"==typeof b&&(l||n.forEach&&!e(function(){(new b).entries().next()}))){var u,q=new b,z=q[s](l?{}:-0,1)!=q,A=e(function(){q.has(1)}),B=h(function(a){new b(a)});B||(b=v(function(e,d){j(e,b,o);var c=new t;return d!=a&&i(d,p,c[s],c),c}),b.prototype=n,n.constructor=b),l||q.forEach(function(b,a){u=1/a===-(1/0)}),(A||u)&&(r("delete"),r("has"),p&&r("get")),(u||z)&&r(s),l&&n.clear&&delete n.clear}else b=x.getConstructor(v,o,p,s),f(b.prototype,y);return m(b,o),w[o]=b,c(c.G+c.W+c.F*(b!=t),w),l||x.setStrong(b,o,p),b}},function(d,e,b){var c=b(144);b(145)("Set",function(b){return function Set(){return b(t
 his,arguments.length>0?arguments[0]:a)}},{add:function add(a){return c.def(this,a=0===a?0:a,a)}},c)},function(n,m,b){var l=b(2),k=b(10),c=b(148),d=b(16),j=b(17),i=c.frozenStore,h=c.WEAK,f=Object.isExtensible||d,e={},g=b(145)("WeakMap",function(b){return function WeakMap(){return b(this,arguments.length>0?arguments[0]:a)}},{get:function get(a){if(d(a)){if(!f(a))return i(this).get(a);if(j(a,h))return a[h][this._i]}},set:function set(a,b){return c.def(this,a,b)}},c,!0,!0);7!=(new g).set((Object.freeze||Object)(e),7).get(e)&&l.each.call(["delete","has","get","set"],function(a){var b=g.prototype,c=b[a];k(b,a,function(b,e){if(d(b)&&!f(b)){var g=i(this)[a](b,e);return"set"==a?this:g}return c.call(this,b,e)})})},function(s,t,b){var r=b(6),q=b(142),m=b(20),h=b(16),l=b(137),k=b(138),j=b(28),d=b(17),c=b(11)("weak"),g=Object.isExtensible||h,n=j(5),o=j(6),p=0,e=function(a){return a._l||(a._l=new i)},i=function(){this.a=[]},f=function(a,b){return n(a.a,function(a){return a[0]===b})};i.prototype={
 get:function(b){var a=f(this,b);return a?a[1]:void 0},has:function(a){return!!f(this,a)},set:function(a,b){var c=f(this,a);c?c[1]=b:this.a.push([a,b])},"delete":function(b){var a=o(this.a,function(a){return a[0]===b});return~a&&this.a.splice(a,1),!!~a}},s.exports={getConstructor:function(f,i,j,m){var b=f(function(c,d){l(c,b,i),c._i=p++,c._l=a,d!=a&&k(d,j,c[m],c)});return q(b.prototype,{"delete":function(a){return h(a)?g(a)?d(a,c)&&d(a[c],this._i)&&delete a[c][this._i]:e(this)["delete"](a):!1},has:function has(a){return h(a)?g(a)?d(a,c)&&d(a[c],this._i):e(this).has(a):!1}}),b},def:function(b,a,f){return g(m(a))?(d(a,c)||r(a,c,{}),a[c][b._i]=f):e(b).set(a,f),b},frozenStore:e,WEAK:c}},function(d,e,b){var c=b(148);b(145)("WeakSet",function(b){return function WeakSet(){return b(this,arguments.length>0?arguments[0]:a)}},{add:function add(a){return c.def(this,a,!0)}},c,!1,!0)},function(e,f,a){var b=a(3),c=Function.apply,d=a(20);b(b.S,"Reflect",{apply:function apply(a,b,e){return c.call(a,b
 ,d(e))}})},function(h,i,a){var e=a(2),b=a(3),c=a(13),f=a(20),d=a(16),g=Function.bind||a(5).Function.prototype.bind;b(b.S+b.F*a(9)(function(){function F(){}return!(Reflect.construct(function(){},[],F)instanceof F)}),"Reflect",{construct:function construct(b,a){c(b),f(a);var i=arguments.length<3?b:c(arguments[2]);if(b==i){switch(a.length){case 0:return new b;case 1:return new b(a[0]);case 2:return new b(a[0],a[1]);case 3:return new b(a[0],a[1],a[2]);case 4:return new b(a[0],a[1],a[2],a[3])}var h=[null];return h.push.apply(h,a),new(g.apply(b,h))}var j=i.prototype,k=e.create(d(j)?j:Object.prototype),l=Function.apply.call(b,k,a);return d(l)?l:k}})},function(e,f,a){var c=a(2),b=a(3),d=a(20);b(b.S+b.F*a(9)(function(){Reflect.defineProperty(c.setDesc({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function defineProperty(a,b,e){d(a);try{return c.setDesc(a,b,e),!0}catch(f){return!1}}})},function(e,f,a){var b=a(3),c=a(2).getDesc,d=a(20);b(b.S,"Reflect",{deleteProperty:function delete
 Property(a,b){var e=c(d(a),b);return e&&!e.configurable?!1:delete a[b]}})},function(f,g,b){var c=b(3),e=b(20),d=function(a){this._t=e(a),this._i=0;var b,c=this._k=[];for(b in a)c.push(b)};b(110)(d,"Object",function(){var c,b=this,d=b._k;do if(b._i>=d.length)return{value:a,done:!0};while(!((c=d[b._i++])in b._t));return{value:c,done:!1}}),c(c.S,"Reflect",{enumerate:function enumerate(a){return new d(a)}})},function(h,i,b){function get(b,h){var d,j,i=arguments.length<3?b:arguments[2];return g(b)===i?b[h]:(d=c.getDesc(b,h))?e(d,"value")?d.value:d.get!==a?d.get.call(i):a:f(j=c.getProto(b))?get(j,h,i):void 0}var c=b(2),e=b(17),d=b(3),f=b(16),g=b(20);d(d.S,"Reflect",{get:get})},function(e,f,a){var c=a(2),b=a(3),d=a(20);b(b.S,"Reflect",{getOwnPropertyDescriptor:function getOwnPropertyDescriptor(a,b){return c.getDesc(d(a),b)}})},function(e,f,a){var b=a(3),c=a(2).getProto,d=a(20);b(b.S,"Reflect",{getPrototypeOf:function getPrototypeOf(a){return c(d(a))}})},function(c,d,b){var a=b(3);a(a.S,"Re
 flect",{has:function has(a,b){return b in a}})},function(e,f,a){var b=a(3),d=a(20),c=Object.isExtensible;b(b.S,"Reflect",{isExtensible:function isExtensible(a){return d(a),c?c(a):!0}})},function(c,d,a){var b=a(3);b(b.S,"Reflect",{ownKeys:a(161)})},function(d,f,a){var b=a(2),e=a(20),c=a(4).Reflect;d.exports=c&&c.ownKeys||function ownKeys(a){var c=b.getNames(e(a)),d=b.getSymbols;return d?c.concat(d(a)):c}},function(e,f,a){var b=a(3),d=a(20),c=Object.preventExtensions;b(b.S,"Reflect",{preventExtensions:function preventExtensions(a){d(a);try{return c&&c(a),!0}catch(b){return!1}}})},function(i,j,b){function set(j,i,k){var l,m,d=arguments.length<4?j:arguments[3],b=c.getDesc(h(j),i);if(!b){if(f(m=c.getProto(j)))return set(m,i,k,d);b=e(0)}return g(b,"value")?b.writable!==!1&&f(d)?(l=c.getDesc(d,i)||e(0),l.value=k,c.setDesc(d,i,l),!0):!1:b.set===a?!1:(b.set.call(d,k),!0)}var c=b(2),g=b(17),d=b(3),e=b(7),h=b(20),f=b(16);d(d.S,"Reflect",{set:set})},function(d,e,b){var c=b(3),a=b(45);a&&c(c.S,"
 Reflect",{setPrototypeOf:function setPrototypeOf(b,c){a.check(b,c);try{return a.set(b,c),!0}catch(d){return!1}}})},function(e,f,b){var c=b(3),d=b(33)(!0);c(c.P,"Array",{includes:function includes(b){return d(this,b,arguments.length>1?arguments[1]:a)}}),b(118)("includes")},function(d,e,a){var b=a(3),c=a(98)(!0);b(b.P,"String",{at:function at(a){return c(this,a)}})},function(e,f,b){var c=b(3),d=b(168);c(c.P,"String",{padLeft:function padLeft(b){return d(this,b,arguments.length>1?arguments[1]:a,!0)}})},function(c,g,b){var d=b(27),e=b(105),f=b(22);c.exports=function(l,m,i,n){var c=String(f(l)),j=c.length,g=i===a?" ":String(i),k=d(m);if(j>=k)return c;""==g&&(g=" ");var h=k-j,b=e.call(g,Math.ceil(h/g.length));return b.length>h&&(b=b.slice(0,h)),n?b+c:c+b}},function(e,f,b){var c=b(3),d=b(168);c(c.P,"String",{padRight:function padRight(b){return d(this,b,arguments.length>1?arguments[1]:a,!1)}})},function(b,c,a){a(63)("trimLeft",function(a){return function trimLeft(){return a(this,1)}})},fun
 ction(b,c,a){a(63)("trimRight",function(a){return function trimRight(){return a(this,2)}})},function(d,e,a){var b=a(3),c=a(173)(/[\\^$*+?.()|[\]{}]/g,"\\$&");b(b.S,"RegExp",{escape:function escape(a){return c(a)}})},function(a,b){a.exports=function(b,a){var c=a===Object(a)?function(b){return a[b]}:a;return function(a){return String(a).replace(b,c)}}},function(g,h,a){var b=a(2),c=a(3),d=a(161),e=a(23),f=a(7);c(c.S,"Object",{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(k){for(var a,g,h=e(k),l=b.setDesc,m=b.getDesc,i=d(h),c={},j=0;i.length>j;)g=m(h,a=i[j++]),a in c?l(c,a,f(0,g)):c[a]=g;return c}})},function(d,e,a){var b=a(3),c=a(176)(!1);b(b.S,"Object",{values:function values(a){return c(a)}})},function(c,f,a){var b=a(2),d=a(23),e=b.isEnum;c.exports=function(a){return function(j){for(var c,f=d(j),g=b.getKeys(f),k=g.length,h=0,i=[];k>h;)e.call(f,c=g[h++])&&i.push(a?[c,f[c]]:f[c]);return i}}},function(d,e,a){var b=a(3),c=a(176)(!0);b(b.S,"Object",{entries:function entries
 (a){return c(a)}})},function(c,d,a){var b=a(3);b(b.P,"Map",{toJSON:a(179)("Map")})},function(b,e,a){var c=a(138),d=a(47);b.exports=function(a){return function toJSON(){if(d(this)!=a)throw TypeError(a+"#toJSON isn't generic");var b=[];return c(this,!1,b.push,b),b}}},function(c,d,a){var b=a(3);b(b.P,"Set",{toJSON:a(179)("Set")})},function(d,e,b){var a=b(3),c=b(141);a(a.G+a.B,{setImmediate:c.set,clearImmediate:c.clear})},function(l,k,a){a(117);var g=a(4),j=a(6),c=a(109),b=a(31)("iterator"),h=g.NodeList,i=g.HTMLCollection,e=h&&h.prototype,d=i&&i.prototype,f=c.NodeList=c.HTMLCollection=c.Array;e&&!e[b]&&j(e,b,f),d&&!d[b]&&j(d,b,f)},function(i,j,a){var c=a(4),b=a(3),g=a(19),h=a(184),d=c.navigator,e=!!d&&/MSIE .\./.test(d.userAgent),f=function(a){return e?function(b,c){return a(g(h,[].slice.call(arguments,2),"function"==typeof b?b:Function(b)),c)}:a};b(b.G+b.B+b.F*e,{setTimeout:f(c.setTimeout),setInterval:f(c.setInterval)})},function(c,f,a){var d=a(185),b=a(19),e=a(13);c.exports=function()
 {for(var h=e(this),a=arguments.length,c=Array(a),f=0,i=d._,g=!1;a>f;)(c[f]=arguments[f++])===i&&(g=!0);return function(){var d,k=this,f=arguments,l=f.length,e=0,j=0;if(!g&&!l)return b(h,c,k);if(d=c.slice(),g)for(;a>e;e++)d[e]===i&&(d[e]=f[j++]);for(;l>j;)d.push(f[j++]);return b(h,d,k)}}},function(a,c,b){a.exports=b(4)},function(x,w,b){function Dict(b){var c=f.create(null);return b!=a&&(r(b)?q(b,!0,function(a,b){c[a]=b}):o(c,b)),c}function reduce(g,h,l){p(h);var a,c,b=i(g),e=k(b),j=e.length,f=0;if(arguments.length<3){if(!j)throw TypeError("Reduce of empty object with no initial value");a=b[e[f++]]}else a=Object(l);for(;j>f;)d(b,c=e[f++])&&(a=h(a,b[c],c,g));return a}function includes(c,b){return(b==b?j(c,b):l(c,function(a){return a!=a}))!==a}function get(a,b){return d(a,b)?a[b]:void 0}function set(a,b,c){return v&&b in Object?f.setDesc(a,b,t(0,c)):a[b]=c,a}function isDict(a){return u(a)&&f.getProto(a)===Dict.prototype}var f=b(2),n=b(12),e=b(3),t=b(7),o=b(41),j=b(36),p=b(13),q=b(138),r
 =b(187),s=b(110),g=b(119),u=b(16),i=b(23),v=b(8),d=b(17),k=f.getKeys,c=function(b){var e=1==b,c=4==b;return function(l,m,o){var f,h,g,p=n(m,o,3),k=i(l),j=e||7==b||2==b?new("function"==typeof this?this:Dict):a;for(f in k)if(d(k,f)&&(h=k[f],g=p(h,f,l),b))if(e)j[f]=g;else if(g)switch(b){case 2:j[f]=h;break;case 3:return!0;case 5:return h;case 6:return f;case 7:j[g[0]]=g[1]}else if(c)return!1;return 3==b||c?c:j}},l=c(6),h=function(a){return function(b){return new m(b,a)}},m=function(a,b){this._t=i(a),this._a=k(a),this._i=0,this._k=b};s(m,"Dict",function(){var c,b=this,e=b._t,f=b._a,h=b._k;do if(b._i>=f.length)return b._t=a,g(1);while(!d(e,c=f[b._i++]));return"keys"==h?g(0,c):"values"==h?g(0,e[c]):g(0,[c,e[c]])}),Dict.prototype=null,e(e.G+e.F,{Dict:Dict}),e(e.S,"Dict",{keys:h("keys"),values:h("values"),entries:h("entries"),forEach:c(0),map:c(1),filter:c(2),some:c(3),every:c(4),find:c(5),findKey:l,mapPairs:c(7),reduce:reduce,keyOf:j,includes:includes,has:d,get:get,set:set,isDict:isDict})}
 ,function(c,g,b){var d=b(47),e=b(31)("iterator"),f=b(109);c.exports=b(5).isIterable=function(c){var b=Object(c);return b[e]!==a||"@@iterator"in b||f.hasOwnProperty(d(b))}},function(b,e,a){var c=a(20),d=a(114);b.exports=a(5).getIterator=function(a){var b=d(a);if("function"!=typeof b)throw TypeError(a+" is not iterable!");return c(b.call(a))}},function(f,g,a){var c=a(4),d=a(5),b=a(3),e=a(184);b(b.G+b.F,{delay:function delay(a){return new(d.Promise||c.Promise)(function(b){setTimeout(e.call(b,!0),a)})}})},function(d,e,a){var c=a(185),b=a(3);a(5)._=c._=c._||{},b(b.P+b.F,"Function",{part:a(184)})},function(c,d,b){var a=b(3);a(a.S+a.F,"Object",{isObject:b(16)})},function(c,d,b){var a=b(3);a(a.S+a.F,"Object",{classof:b(47)})},function(d,e,b){var a=b(3),c=b(194);a(a.S+a.F,"Object",{define:c})},function(c,f,a){var b=a(2),d=a(161),e=a(23);c.exports=function define(a,c){for(var f,g=d(e(c)),i=g.length,h=0;i>h;)b.setDesc(a,f=g[h++],b.getDesc(c,f));return a}},function(e,f,a){var b=a(3),c=a(194),d=
 a(2).create;b(b.S+b.F,"Object",{make:function(a,b){return c(d(a),b)}})},function(c,d,b){b(108)(Number,"Number",function(a){this._l=+a,this._i=0},function(){var b=this._i++,c=!(this._l>b);return{done:c,value:c?a:b}})},function(d,e,b){var a=b(3),c=b(173)(/[&<>"']/g,{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&apos;"});a(a.P+a.F,"String",{escapeHTML:function escapeHTML(){return c(this)}})},function(d,e,b){var a=b(3),c=b(173)(/&(?:amp|lt|gt|quot|apos);/g,{"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&apos;":"'"});a(a.P+a.F,"String",{unescapeHTML:function unescapeHTML(){return c(this)}})},function(g,h,a){var e=a(2),f=a(4),b=a(3),c={},d=!0;e.each.call("assert,clear,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,isIndependentlyComposed,log,markTimeline,profile,profileEnd,table,time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn".split(","),function(a){c[a]=function(){var b=f.console;return d&&b&&b[a]?Function.apply.call(b[a],b,arguments):void 0}}),
 b(b.G+b.F,{log:a(41)(c.log,c,{enable:function(){d=!0},disable:function(){d=!1}})})},function(i,j,b){var g=b(2),e=b(3),h=b(12),f=b(5).Array||Array,c={},d=function(d,b){g.each.call(d.split(","),function(d){b==a&&d in f?c[d]=f[d]:d in[]&&(c[d]=h(Function.call,[][d],b))})};d("pop,reverse,shift,keys,values,entries",1),d("indexOf,every,some,forEach,map,filter,find,findIndex,includes",3),d("join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill"),e(e.S,"Array",c)}]),"undefined"!=typeof module&&module.exports?module.exports=b:"function"==typeof define&&define.amd?define(function(){return b}):c.core=b}(1,1);
-//# sourceMappingURL=core.min.js.map
\ No newline at end of file


[03/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/core-js/client/library.js
----------------------------------------------------------------------
diff --git a/node_modules/core-js/client/library.js b/node_modules/core-js/client/library.js
deleted file mode 100644
index 65385ef..0000000
--- a/node_modules/core-js/client/library.js
+++ /dev/null
@@ -1,4550 +0,0 @@
-/**
- * core-js 1.2.7
- * https://github.com/zloirock/core-js
- * License: http://rock.mit-license.org
- * © 2016 Denis Pushkarev
- */
-!function(__e, __g, undefined){
-'use strict';
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId])
-/******/ 			return installedModules[moduleId].exports;
-
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			exports: {},
-/******/ 			id: moduleId,
-/******/ 			loaded: false
-/******/ 		};
-
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-
-/******/ 		// Flag the module as loaded
-/******/ 		module.loaded = true;
-
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-
-
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ function(module, exports, __webpack_require__) {
-
-	__webpack_require__(1);
-	__webpack_require__(32);
-	__webpack_require__(40);
-	__webpack_require__(42);
-	__webpack_require__(44);
-	__webpack_require__(46);
-	__webpack_require__(48);
-	__webpack_require__(49);
-	__webpack_require__(50);
-	__webpack_require__(51);
-	__webpack_require__(52);
-	__webpack_require__(53);
-	__webpack_require__(54);
-	__webpack_require__(55);
-	__webpack_require__(56);
-	__webpack_require__(57);
-	__webpack_require__(58);
-	__webpack_require__(59);
-	__webpack_require__(60);
-	__webpack_require__(62);
-	__webpack_require__(63);
-	__webpack_require__(64);
-	__webpack_require__(65);
-	__webpack_require__(66);
-	__webpack_require__(67);
-	__webpack_require__(68);
-	__webpack_require__(70);
-	__webpack_require__(71);
-	__webpack_require__(72);
-	__webpack_require__(74);
-	__webpack_require__(75);
-	__webpack_require__(76);
-	__webpack_require__(78);
-	__webpack_require__(79);
-	__webpack_require__(80);
-	__webpack_require__(81);
-	__webpack_require__(82);
-	__webpack_require__(83);
-	__webpack_require__(84);
-	__webpack_require__(85);
-	__webpack_require__(86);
-	__webpack_require__(87);
-	__webpack_require__(88);
-	__webpack_require__(89);
-	__webpack_require__(90);
-	__webpack_require__(92);
-	__webpack_require__(94);
-	__webpack_require__(98);
-	__webpack_require__(99);
-	__webpack_require__(101);
-	__webpack_require__(102);
-	__webpack_require__(106);
-	__webpack_require__(112);
-	__webpack_require__(113);
-	__webpack_require__(116);
-	__webpack_require__(118);
-	__webpack_require__(120);
-	__webpack_require__(122);
-	__webpack_require__(123);
-	__webpack_require__(124);
-	__webpack_require__(131);
-	__webpack_require__(134);
-	__webpack_require__(135);
-	__webpack_require__(137);
-	__webpack_require__(138);
-	__webpack_require__(139);
-	__webpack_require__(140);
-	__webpack_require__(141);
-	__webpack_require__(142);
-	__webpack_require__(143);
-	__webpack_require__(144);
-	__webpack_require__(145);
-	__webpack_require__(146);
-	__webpack_require__(147);
-	__webpack_require__(148);
-	__webpack_require__(150);
-	__webpack_require__(151);
-	__webpack_require__(152);
-	__webpack_require__(153);
-	__webpack_require__(154);
-	__webpack_require__(155);
-	__webpack_require__(157);
-	__webpack_require__(158);
-	__webpack_require__(159);
-	__webpack_require__(160);
-	__webpack_require__(162);
-	__webpack_require__(163);
-	__webpack_require__(165);
-	__webpack_require__(166);
-	__webpack_require__(168);
-	__webpack_require__(169);
-	__webpack_require__(170);
-	__webpack_require__(171);
-	__webpack_require__(174);
-	__webpack_require__(109);
-	__webpack_require__(176);
-	__webpack_require__(175);
-	__webpack_require__(177);
-	__webpack_require__(178);
-	__webpack_require__(179);
-	__webpack_require__(180);
-	__webpack_require__(181);
-	__webpack_require__(183);
-	__webpack_require__(184);
-	__webpack_require__(185);
-	__webpack_require__(186);
-	__webpack_require__(187);
-	module.exports = __webpack_require__(188);
-
-
-/***/ },
-/* 1 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	var $                 = __webpack_require__(2)
-	  , $export           = __webpack_require__(3)
-	  , DESCRIPTORS       = __webpack_require__(8)
-	  , createDesc        = __webpack_require__(10)
-	  , html              = __webpack_require__(11)
-	  , cel               = __webpack_require__(12)
-	  , has               = __webpack_require__(14)
-	  , cof               = __webpack_require__(15)
-	  , invoke            = __webpack_require__(16)
-	  , fails             = __webpack_require__(9)
-	  , anObject          = __webpack_require__(17)
-	  , aFunction         = __webpack_require__(7)
-	  , isObject          = __webpack_require__(13)
-	  , toObject          = __webpack_require__(18)
-	  , toIObject         = __webpack_require__(20)
-	  , toInteger         = __webpack_require__(22)
-	  , toIndex           = __webpack_require__(23)
-	  , toLength          = __webpack_require__(24)
-	  , IObject           = __webpack_require__(21)
-	  , IE_PROTO          = __webpack_require__(25)('__proto__')
-	  , createArrayMethod = __webpack_require__(26)
-	  , arrayIndexOf      = __webpack_require__(31)(false)
-	  , ObjectProto       = Object.prototype
-	  , ArrayProto        = Array.prototype
-	  , arraySlice        = ArrayProto.slice
-	  , arrayJoin         = ArrayProto.join
-	  , defineProperty    = $.setDesc
-	  , getOwnDescriptor  = $.getDesc
-	  , defineProperties  = $.setDescs
-	  , factories         = {}
-	  , IE8_DOM_DEFINE;
-
-	if(!DESCRIPTORS){
-	  IE8_DOM_DEFINE = !fails(function(){
-	    return defineProperty(cel('div'), 'a', {get: function(){ return 7; }}).a != 7;
-	  });
-	  $.setDesc = function(O, P, Attributes){
-	    if(IE8_DOM_DEFINE)try {
-	      return defineProperty(O, P, Attributes);
-	    } catch(e){ /* empty */ }
-	    if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
-	    if('value' in Attributes)anObject(O)[P] = Attributes.value;
-	    return O;
-	  };
-	  $.getDesc = function(O, P){
-	    if(IE8_DOM_DEFINE)try {
-	      return getOwnDescriptor(O, P);
-	    } catch(e){ /* empty */ }
-	    if(has(O, P))return createDesc(!ObjectProto.propertyIsEnumerable.call(O, P), O[P]);
-	  };
-	  $.setDescs = defineProperties = function(O, Properties){
-	    anObject(O);
-	    var keys   = $.getKeys(Properties)
-	      , length = keys.length
-	      , i = 0
-	      , P;
-	    while(length > i)$.setDesc(O, P = keys[i++], Properties[P]);
-	    return O;
-	  };
-	}
-	$export($export.S + $export.F * !DESCRIPTORS, 'Object', {
-	  // 19.1.2.6 / 15.2.3.3 Object.getOwnPropertyDescriptor(O, P)
-	  getOwnPropertyDescriptor: $.getDesc,
-	  // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
-	  defineProperty: $.setDesc,
-	  // 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)
-	  defineProperties: defineProperties
-	});
-
-	  // IE 8- don't enum bug keys
-	var keys1 = ('constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,' +
-	            'toLocaleString,toString,valueOf').split(',')
-	  // Additional keys for getOwnPropertyNames
-	  , keys2 = keys1.concat('length', 'prototype')
-	  , keysLen1 = keys1.length;
-
-	// Create object with `null` prototype: use iframe Object with cleared prototype
-	var createDict = function(){
-	  // Thrash, waste and sodomy: IE GC bug
-	  var iframe = cel('iframe')
-	    , i      = keysLen1
-	    , gt     = '>'
-	    , iframeDocument;
-	  iframe.style.display = 'none';
-	  html.appendChild(iframe);
-	  iframe.src = 'javascript:'; // eslint-disable-line no-script-url
-	  // createDict = iframe.contentWindow.Object;
-	  // html.removeChild(iframe);
-	  iframeDocument = iframe.contentWindow.document;
-	  iframeDocument.open();
-	  iframeDocument.write('<script>document.F=Object</script' + gt);
-	  iframeDocument.close();
-	  createDict = iframeDocument.F;
-	  while(i--)delete createDict.prototype[keys1[i]];
-	  return createDict();
-	};
-	var createGetKeys = function(names, length){
-	  return function(object){
-	    var O      = toIObject(object)
-	      , i      = 0
-	      , result = []
-	      , key;
-	    for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);
-	    // Don't enum bug & hidden keys
-	    while(length > i)if(has(O, key = names[i++])){
-	      ~arrayIndexOf(result, key) || result.push(key);
-	    }
-	    return result;
-	  };
-	};
-	var Empty = function(){};
-	$export($export.S, 'Object', {
-	  // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
-	  getPrototypeOf: $.getProto = $.getProto || function(O){
-	    O = toObject(O);
-	    if(has(O, IE_PROTO))return O[IE_PROTO];
-	    if(typeof O.constructor == 'function' && O instanceof O.constructor){
-	      return O.constructor.prototype;
-	    } return O instanceof Object ? ObjectProto : null;
-	  },
-	  // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
-	  getOwnPropertyNames: $.getNames = $.getNames || createGetKeys(keys2, keys2.length, true),
-	  // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
-	  create: $.create = $.create || function(O, /*?*/Properties){
-	    var result;
-	    if(O !== null){
-	      Empty.prototype = anObject(O);
-	      result = new Empty();
-	      Empty.prototype = null;
-	      // add "__proto__" for Object.getPrototypeOf shim
-	      result[IE_PROTO] = O;
-	    } else result = createDict();
-	    return Properties === undefined ? result : defineProperties(result, Properties);
-	  },
-	  // 19.1.2.14 / 15.2.3.14 Object.keys(O)
-	  keys: $.getKeys = $.getKeys || createGetKeys(keys1, keysLen1, false)
-	});
-
-	var construct = function(F, len, args){
-	  if(!(len in factories)){
-	    for(var n = [], i = 0; i < len; i++)n[i] = 'a[' + i + ']';
-	    factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
-	  }
-	  return factories[len](F, args);
-	};
-
-	// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)
-	$export($export.P, 'Function', {
-	  bind: function bind(that /*, args... */){
-	    var fn       = aFunction(this)
-	      , partArgs = arraySlice.call(arguments, 1);
-	    var bound = function(/* args... */){
-	      var args = partArgs.concat(arraySlice.call(arguments));
-	      return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
-	    };
-	    if(isObject(fn.prototype))bound.prototype = fn.prototype;
-	    return bound;
-	  }
-	});
-
-	// fallback for not array-like ES3 strings and DOM objects
-	$export($export.P + $export.F * fails(function(){
-	  if(html)arraySlice.call(html);
-	}), 'Array', {
-	  slice: function(begin, end){
-	    var len   = toLength(this.length)
-	      , klass = cof(this);
-	    end = end === undefined ? len : end;
-	    if(klass == 'Array')return arraySlice.call(this, begin, end);
-	    var start  = toIndex(begin, len)
-	      , upTo   = toIndex(end, len)
-	      , size   = toLength(upTo - start)
-	      , cloned = Array(size)
-	      , i      = 0;
-	    for(; i < size; i++)cloned[i] = klass == 'String'
-	      ? this.charAt(start + i)
-	      : this[start + i];
-	    return cloned;
-	  }
-	});
-	$export($export.P + $export.F * (IObject != Object), 'Array', {
-	  join: function join(separator){
-	    return arrayJoin.call(IObject(this), separator === undefined ? ',' : separator);
-	  }
-	});
-
-	// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
-	$export($export.S, 'Array', {isArray: __webpack_require__(28)});
-
-	var createArrayReduce = function(isRight){
-	  return function(callbackfn, memo){
-	    aFunction(callbackfn);
-	    var O      = IObject(this)
-	      , length = toLength(O.length)
-	      , index  = isRight ? length - 1 : 0
-	      , i      = isRight ? -1 : 1;
-	    if(arguments.length < 2)for(;;){
-	      if(index in O){
-	        memo = O[index];
-	        index += i;
-	        break;
-	      }
-	      index += i;
-	      if(isRight ? index < 0 : length <= index){
-	        throw TypeError('Reduce of empty array with no initial value');
-	      }
-	    }
-	    for(;isRight ? index >= 0 : length > index; index += i)if(index in O){
-	      memo = callbackfn(memo, O[index], index, this);
-	    }
-	    return memo;
-	  };
-	};
-
-	var methodize = function($fn){
-	  return function(arg1/*, arg2 = undefined */){
-	    return $fn(this, arg1, arguments[1]);
-	  };
-	};
-
-	$export($export.P, 'Array', {
-	  // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
-	  forEach: $.each = $.each || methodize(createArrayMethod(0)),
-	  // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
-	  map: methodize(createArrayMethod(1)),
-	  // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
-	  filter: methodize(createArrayMethod(2)),
-	  // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])
-	  some: methodize(createArrayMethod(3)),
-	  // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])
-	  every: methodize(createArrayMethod(4)),
-	  // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
-	  reduce: createArrayReduce(false),
-	  // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])
-	  reduceRight: createArrayReduce(true),
-	  // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
-	  indexOf: methodize(arrayIndexOf),
-	  // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])
-	  lastIndexOf: function(el, fromIndex /* = @[*-1] */){
-	    var O      = toIObject(this)
-	      , length = toLength(O.length)
-	      , index  = length - 1;
-	    if(arguments.length > 1)index = Math.min(index, toInteger(fromIndex));
-	    if(index < 0)index = toLength(length + index);
-	    for(;index >= 0; index--)if(index in O)if(O[index] === el)return index;
-	    return -1;
-	  }
-	});
-
-	// 20.3.3.1 / 15.9.4.4 Date.now()
-	$export($export.S, 'Date', {now: function(){ return +new Date; }});
-
-	var lz = function(num){
-	  return num > 9 ? num : '0' + num;
-	};
-
-	// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
-	// PhantomJS / old WebKit has a broken implementations
-	$export($export.P + $export.F * (fails(function(){
-	  return new Date(-5e13 - 1).toISOString() != '0385-07-25T07:06:39.999Z';
-	}) || !fails(function(){
-	  new Date(NaN).toISOString();
-	})), 'Date', {
-	  toISOString: function toISOString(){
-	    if(!isFinite(this))throw RangeError('Invalid time value');
-	    var d = this
-	      , y = d.getUTCFullYear()
-	      , m = d.getUTCMilliseconds()
-	      , s = y < 0 ? '-' : y > 9999 ? '+' : '';
-	    return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +
-	      '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +
-	      'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +
-	      ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';
-	  }
-	});
-
-/***/ },
-/* 2 */
-/***/ function(module, exports) {
-
-	var $Object = Object;
-	module.exports = {
-	  create:     $Object.create,
-	  getProto:   $Object.getPrototypeOf,
-	  isEnum:     {}.propertyIsEnumerable,
-	  getDesc:    $Object.getOwnPropertyDescriptor,
-	  setDesc:    $Object.defineProperty,
-	  setDescs:   $Object.defineProperties,
-	  getKeys:    $Object.keys,
-	  getNames:   $Object.getOwnPropertyNames,
-	  getSymbols: $Object.getOwnPropertySymbols,
-	  each:       [].forEach
-	};
-
-/***/ },
-/* 3 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var global    = __webpack_require__(4)
-	  , core      = __webpack_require__(5)
-	  , ctx       = __webpack_require__(6)
-	  , PROTOTYPE = 'prototype';
-
-	var $export = function(type, name, source){
-	  var IS_FORCED = type & $export.F
-	    , IS_GLOBAL = type & $export.G
-	    , IS_STATIC = type & $export.S
-	    , IS_PROTO  = type & $export.P
-	    , IS_BIND   = type & $export.B
-	    , IS_WRAP   = type & $export.W
-	    , exports   = IS_GLOBAL ? core : core[name] || (core[name] = {})
-	    , target    = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
-	    , key, own, out;
-	  if(IS_GLOBAL)source = name;
-	  for(key in source){
-	    // contains in native
-	    own = !IS_FORCED && target && key in target;
-	    if(own && key in exports)continue;
-	    // export native or passed
-	    out = own ? target[key] : source[key];
-	    // prevent global pollution for namespaces
-	    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
-	    // bind timers to global for call from export context
-	    : IS_BIND && own ? ctx(out, global)
-	    // wrap global constructors for prevent change them in library
-	    : IS_WRAP && target[key] == out ? (function(C){
-	      var F = function(param){
-	        return this instanceof C ? new C(param) : C(param);
-	      };
-	      F[PROTOTYPE] = C[PROTOTYPE];
-	      return F;
-	    // make static versions for prototype methods
-	    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
-	    if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;
-	  }
-	};
-	// type bitmap
-	$export.F = 1;  // forced
-	$export.G = 2;  // global
-	$export.S = 4;  // static
-	$export.P = 8;  // proto
-	$export.B = 16; // bind
-	$export.W = 32; // wrap
-	module.exports = $export;
-
-/***/ },
-/* 4 */
-/***/ function(module, exports) {
-
-	// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
-	var global = module.exports = typeof window != 'undefined' && window.Math == Math
-	  ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
-	if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
-
-/***/ },
-/* 5 */
-/***/ function(module, exports) {
-
-	var core = module.exports = {version: '1.2.6'};
-	if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
-
-/***/ },
-/* 6 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// optional / simple context binding
-	var aFunction = __webpack_require__(7);
-	module.exports = function(fn, that, length){
-	  aFunction(fn);
-	  if(that === undefined)return fn;
-	  switch(length){
-	    case 1: return function(a){
-	      return fn.call(that, a);
-	    };
-	    case 2: return function(a, b){
-	      return fn.call(that, a, b);
-	    };
-	    case 3: return function(a, b, c){
-	      return fn.call(that, a, b, c);
-	    };
-	  }
-	  return function(/* ...args */){
-	    return fn.apply(that, arguments);
-	  };
-	};
-
-/***/ },
-/* 7 */
-/***/ function(module, exports) {
-
-	module.exports = function(it){
-	  if(typeof it != 'function')throw TypeError(it + ' is not a function!');
-	  return it;
-	};
-
-/***/ },
-/* 8 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// Thank's IE8 for his funny defineProperty
-	module.exports = !__webpack_require__(9)(function(){
-	  return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
-	});
-
-/***/ },
-/* 9 */
-/***/ function(module, exports) {
-
-	module.exports = function(exec){
-	  try {
-	    return !!exec();
-	  } catch(e){
-	    return true;
-	  }
-	};
-
-/***/ },
-/* 10 */
-/***/ function(module, exports) {
-
-	module.exports = function(bitmap, value){
-	  return {
-	    enumerable  : !(bitmap & 1),
-	    configurable: !(bitmap & 2),
-	    writable    : !(bitmap & 4),
-	    value       : value
-	  };
-	};
-
-/***/ },
-/* 11 */
-/***/ function(module, exports, __webpack_require__) {
-
-	module.exports = __webpack_require__(4).document && document.documentElement;
-
-/***/ },
-/* 12 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var isObject = __webpack_require__(13)
-	  , document = __webpack_require__(4).document
-	  // in old IE typeof document.createElement is 'object'
-	  , is = isObject(document) && isObject(document.createElement);
-	module.exports = function(it){
-	  return is ? document.createElement(it) : {};
-	};
-
-/***/ },
-/* 13 */
-/***/ function(module, exports) {
-
-	module.exports = function(it){
-	  return typeof it === 'object' ? it !== null : typeof it === 'function';
-	};
-
-/***/ },
-/* 14 */
-/***/ function(module, exports) {
-
-	var hasOwnProperty = {}.hasOwnProperty;
-	module.exports = function(it, key){
-	  return hasOwnProperty.call(it, key);
-	};
-
-/***/ },
-/* 15 */
-/***/ function(module, exports) {
-
-	var toString = {}.toString;
-
-	module.exports = function(it){
-	  return toString.call(it).slice(8, -1);
-	};
-
-/***/ },
-/* 16 */
-/***/ function(module, exports) {
-
-	// fast apply, http://jsperf.lnkit.com/fast-apply/5
-	module.exports = function(fn, args, that){
-	  var un = that === undefined;
-	  switch(args.length){
-	    case 0: return un ? fn()
-	                      : fn.call(that);
-	    case 1: return un ? fn(args[0])
-	                      : fn.call(that, args[0]);
-	    case 2: return un ? fn(args[0], args[1])
-	                      : fn.call(that, args[0], args[1]);
-	    case 3: return un ? fn(args[0], args[1], args[2])
-	                      : fn.call(that, args[0], args[1], args[2]);
-	    case 4: return un ? fn(args[0], args[1], args[2], args[3])
-	                      : fn.call(that, args[0], args[1], args[2], args[3]);
-	  } return              fn.apply(that, args);
-	};
-
-/***/ },
-/* 17 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var isObject = __webpack_require__(13);
-	module.exports = function(it){
-	  if(!isObject(it))throw TypeError(it + ' is not an object!');
-	  return it;
-	};
-
-/***/ },
-/* 18 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 7.1.13 ToObject(argument)
-	var defined = __webpack_require__(19);
-	module.exports = function(it){
-	  return Object(defined(it));
-	};
-
-/***/ },
-/* 19 */
-/***/ function(module, exports) {
-
-	// 7.2.1 RequireObjectCoercible(argument)
-	module.exports = function(it){
-	  if(it == undefined)throw TypeError("Can't call method on  " + it);
-	  return it;
-	};
-
-/***/ },
-/* 20 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// to indexed object, toObject with fallback for non-array-like ES3 strings
-	var IObject = __webpack_require__(21)
-	  , defined = __webpack_require__(19);
-	module.exports = function(it){
-	  return IObject(defined(it));
-	};
-
-/***/ },
-/* 21 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// fallback for non-array-like ES3 and non-enumerable old V8 strings
-	var cof = __webpack_require__(15);
-	module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
-	  return cof(it) == 'String' ? it.split('') : Object(it);
-	};
-
-/***/ },
-/* 22 */
-/***/ function(module, exports) {
-
-	// 7.1.4 ToInteger
-	var ceil  = Math.ceil
-	  , floor = Math.floor;
-	module.exports = function(it){
-	  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
-	};
-
-/***/ },
-/* 23 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var toInteger = __webpack_require__(22)
-	  , max       = Math.max
-	  , min       = Math.min;
-	module.exports = function(index, length){
-	  index = toInteger(index);
-	  return index < 0 ? max(index + length, 0) : min(index, length);
-	};
-
-/***/ },
-/* 24 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 7.1.15 ToLength
-	var toInteger = __webpack_require__(22)
-	  , min       = Math.min;
-	module.exports = function(it){
-	  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
-	};
-
-/***/ },
-/* 25 */
-/***/ function(module, exports) {
-
-	var id = 0
-	  , px = Math.random();
-	module.exports = function(key){
-	  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
-	};
-
-/***/ },
-/* 26 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 0 -> Array#forEach
-	// 1 -> Array#map
-	// 2 -> Array#filter
-	// 3 -> Array#some
-	// 4 -> Array#every
-	// 5 -> Array#find
-	// 6 -> Array#findIndex
-	var ctx      = __webpack_require__(6)
-	  , IObject  = __webpack_require__(21)
-	  , toObject = __webpack_require__(18)
-	  , toLength = __webpack_require__(24)
-	  , asc      = __webpack_require__(27);
-	module.exports = function(TYPE){
-	  var IS_MAP        = TYPE == 1
-	    , IS_FILTER     = TYPE == 2
-	    , IS_SOME       = TYPE == 3
-	    , IS_EVERY      = TYPE == 4
-	    , IS_FIND_INDEX = TYPE == 6
-	    , NO_HOLES      = TYPE == 5 || IS_FIND_INDEX;
-	  return function($this, callbackfn, that){
-	    var O      = toObject($this)
-	      , self   = IObject(O)
-	      , f      = ctx(callbackfn, that, 3)
-	      , length = toLength(self.length)
-	      , index  = 0
-	      , result = IS_MAP ? asc($this, length) : IS_FILTER ? asc($this, 0) : undefined
-	      , val, res;
-	    for(;length > index; index++)if(NO_HOLES || index in self){
-	      val = self[index];
-	      res = f(val, index, O);
-	      if(TYPE){
-	        if(IS_MAP)result[index] = res;            // map
-	        else if(res)switch(TYPE){
-	          case 3: return true;                    // some
-	          case 5: return val;                     // find
-	          case 6: return index;                   // findIndex
-	          case 2: result.push(val);               // filter
-	        } else if(IS_EVERY)return false;          // every
-	      }
-	    }
-	    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
-	  };
-	};
-
-/***/ },
-/* 27 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
-	var isObject = __webpack_require__(13)
-	  , isArray  = __webpack_require__(28)
-	  , SPECIES  = __webpack_require__(29)('species');
-	module.exports = function(original, length){
-	  var C;
-	  if(isArray(original)){
-	    C = original.constructor;
-	    // cross-realm fallback
-	    if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;
-	    if(isObject(C)){
-	      C = C[SPECIES];
-	      if(C === null)C = undefined;
-	    }
-	  } return new (C === undefined ? Array : C)(length);
-	};
-
-/***/ },
-/* 28 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 7.2.2 IsArray(argument)
-	var cof = __webpack_require__(15);
-	module.exports = Array.isArray || function(arg){
-	  return cof(arg) == 'Array';
-	};
-
-/***/ },
-/* 29 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var store  = __webpack_require__(30)('wks')
-	  , uid    = __webpack_require__(25)
-	  , Symbol = __webpack_require__(4).Symbol;
-	module.exports = function(name){
-	  return store[name] || (store[name] =
-	    Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name));
-	};
-
-/***/ },
-/* 30 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var global = __webpack_require__(4)
-	  , SHARED = '__core-js_shared__'
-	  , store  = global[SHARED] || (global[SHARED] = {});
-	module.exports = function(key){
-	  return store[key] || (store[key] = {});
-	};
-
-/***/ },
-/* 31 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// false -> Array#indexOf
-	// true  -> Array#includes
-	var toIObject = __webpack_require__(20)
-	  , toLength  = __webpack_require__(24)
-	  , toIndex   = __webpack_require__(23);
-	module.exports = function(IS_INCLUDES){
-	  return function($this, el, fromIndex){
-	    var O      = toIObject($this)
-	      , length = toLength(O.length)
-	      , index  = toIndex(fromIndex, length)
-	      , value;
-	    // Array#includes uses SameValueZero equality algorithm
-	    if(IS_INCLUDES && el != el)while(length > index){
-	      value = O[index++];
-	      if(value != value)return true;
-	    // Array#toIndex ignores holes, Array#includes - not
-	    } else for(;length > index; index++)if(IS_INCLUDES || index in O){
-	      if(O[index] === el)return IS_INCLUDES || index;
-	    } return !IS_INCLUDES && -1;
-	  };
-	};
-
-/***/ },
-/* 32 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	// ECMAScript 6 symbols shim
-	var $              = __webpack_require__(2)
-	  , global         = __webpack_require__(4)
-	  , has            = __webpack_require__(14)
-	  , DESCRIPTORS    = __webpack_require__(8)
-	  , $export        = __webpack_require__(3)
-	  , redefine       = __webpack_require__(33)
-	  , $fails         = __webpack_require__(9)
-	  , shared         = __webpack_require__(30)
-	  , setToStringTag = __webpack_require__(35)
-	  , uid            = __webpack_require__(25)
-	  , wks            = __webpack_require__(29)
-	  , keyOf          = __webpack_require__(36)
-	  , $names         = __webpack_require__(37)
-	  , enumKeys       = __webpack_require__(38)
-	  , isArray        = __webpack_require__(28)
-	  , anObject       = __webpack_require__(17)
-	  , toIObject      = __webpack_require__(20)
-	  , createDesc     = __webpack_require__(10)
-	  , getDesc        = $.getDesc
-	  , setDesc        = $.setDesc
-	  , _create        = $.create
-	  , getNames       = $names.get
-	  , $Symbol        = global.Symbol
-	  , $JSON          = global.JSON
-	  , _stringify     = $JSON && $JSON.stringify
-	  , setter         = false
-	  , HIDDEN         = wks('_hidden')
-	  , isEnum         = $.isEnum
-	  , SymbolRegistry = shared('symbol-registry')
-	  , AllSymbols     = shared('symbols')
-	  , useNative      = typeof $Symbol == 'function'
-	  , ObjectProto    = Object.prototype;
-
-	// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
-	var setSymbolDesc = DESCRIPTORS && $fails(function(){
-	  return _create(setDesc({}, 'a', {
-	    get: function(){ return setDesc(this, 'a', {value: 7}).a; }
-	  })).a != 7;
-	}) ? function(it, key, D){
-	  var protoDesc = getDesc(ObjectProto, key);
-	  if(protoDesc)delete ObjectProto[key];
-	  setDesc(it, key, D);
-	  if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);
-	} : setDesc;
-
-	var wrap = function(tag){
-	  var sym = AllSymbols[tag] = _create($Symbol.prototype);
-	  sym._k = tag;
-	  DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {
-	    configurable: true,
-	    set: function(value){
-	      if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;
-	      setSymbolDesc(this, tag, createDesc(1, value));
-	    }
-	  });
-	  return sym;
-	};
-
-	var isSymbol = function(it){
-	  return typeof it == 'symbol';
-	};
-
-	var $defineProperty = function defineProperty(it, key, D){
-	  if(D && has(AllSymbols, key)){
-	    if(!D.enumerable){
-	      if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));
-	      it[HIDDEN][key] = true;
-	    } else {
-	      if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;
-	      D = _create(D, {enumerable: createDesc(0, false)});
-	    } return setSymbolDesc(it, key, D);
-	  } return setDesc(it, key, D);
-	};
-	var $defineProperties = function defineProperties(it, P){
-	  anObject(it);
-	  var keys = enumKeys(P = toIObject(P))
-	    , i    = 0
-	    , l = keys.length
-	    , key;
-	  while(l > i)$defineProperty(it, key = keys[i++], P[key]);
-	  return it;
-	};
-	var $create = function create(it, P){
-	  return P === undefined ? _create(it) : $defineProperties(_create(it), P);
-	};
-	var $propertyIsEnumerable = function propertyIsEnumerable(key){
-	  var E = isEnum.call(this, key);
-	  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]
-	    ? E : true;
-	};
-	var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){
-	  var D = getDesc(it = toIObject(it), key);
-	  if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;
-	  return D;
-	};
-	var $getOwnPropertyNames = function getOwnPropertyNames(it){
-	  var names  = getNames(toIObject(it))
-	    , result = []
-	    , i      = 0
-	    , key;
-	  while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);
-	  return result;
-	};
-	var $getOwnPropertySymbols = function getOwnPropertySymbols(it){
-	  var names  = getNames(toIObject(it))
-	    , result = []
-	    , i      = 0
-	    , key;
-	  while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);
-	  return result;
-	};
-	var $stringify = function stringify(it){
-	  if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined
-	  var args = [it]
-	    , i    = 1
-	    , $$   = arguments
-	    , replacer, $replacer;
-	  while($$.length > i)args.push($$[i++]);
-	  replacer = args[1];
-	  if(typeof replacer == 'function')$replacer = replacer;
-	  if($replacer || !isArray(replacer))replacer = function(key, value){
-	    if($replacer)value = $replacer.call(this, key, value);
-	    if(!isSymbol(value))return value;
-	  };
-	  args[1] = replacer;
-	  return _stringify.apply($JSON, args);
-	};
-	var buggyJSON = $fails(function(){
-	  var S = $Symbol();
-	  // MS Edge converts symbol values to JSON as {}
-	  // WebKit converts symbol values to JSON as null
-	  // V8 throws on boxed symbols
-	  return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';
-	});
-
-	// 19.4.1.1 Symbol([description])
-	if(!useNative){
-	  $Symbol = function Symbol(){
-	    if(isSymbol(this))throw TypeError('Symbol is not a constructor');
-	    return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));
-	  };
-	  redefine($Symbol.prototype, 'toString', function toString(){
-	    return this._k;
-	  });
-
-	  isSymbol = function(it){
-	    return it instanceof $Symbol;
-	  };
-
-	  $.create     = $create;
-	  $.isEnum     = $propertyIsEnumerable;
-	  $.getDesc    = $getOwnPropertyDescriptor;
-	  $.setDesc    = $defineProperty;
-	  $.setDescs   = $defineProperties;
-	  $.getNames   = $names.get = $getOwnPropertyNames;
-	  $.getSymbols = $getOwnPropertySymbols;
-
-	  if(DESCRIPTORS && !__webpack_require__(39)){
-	    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
-	  }
-	}
-
-	var symbolStatics = {
-	  // 19.4.2.1 Symbol.for(key)
-	  'for': function(key){
-	    return has(SymbolRegistry, key += '')
-	      ? SymbolRegistry[key]
-	      : SymbolRegistry[key] = $Symbol(key);
-	  },
-	  // 19.4.2.5 Symbol.keyFor(sym)
-	  keyFor: function keyFor(key){
-	    return keyOf(SymbolRegistry, key);
-	  },
-	  useSetter: function(){ setter = true; },
-	  useSimple: function(){ setter = false; }
-	};
-	// 19.4.2.2 Symbol.hasInstance
-	// 19.4.2.3 Symbol.isConcatSpreadable
-	// 19.4.2.4 Symbol.iterator
-	// 19.4.2.6 Symbol.match
-	// 19.4.2.8 Symbol.replace
-	// 19.4.2.9 Symbol.search
-	// 19.4.2.10 Symbol.species
-	// 19.4.2.11 Symbol.split
-	// 19.4.2.12 Symbol.toPrimitive
-	// 19.4.2.13 Symbol.toStringTag
-	// 19.4.2.14 Symbol.unscopables
-	$.each.call((
-	  'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +
-	  'species,split,toPrimitive,toStringTag,unscopables'
-	).split(','), function(it){
-	  var sym = wks(it);
-	  symbolStatics[it] = useNative ? sym : wrap(sym);
-	});
-
-	setter = true;
-
-	$export($export.G + $export.W, {Symbol: $Symbol});
-
-	$export($export.S, 'Symbol', symbolStatics);
-
-	$export($export.S + $export.F * !useNative, 'Object', {
-	  // 19.1.2.2 Object.create(O [, Properties])
-	  create: $create,
-	  // 19.1.2.4 Object.defineProperty(O, P, Attributes)
-	  defineProperty: $defineProperty,
-	  // 19.1.2.3 Object.defineProperties(O, Properties)
-	  defineProperties: $defineProperties,
-	  // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
-	  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
-	  // 19.1.2.7 Object.getOwnPropertyNames(O)
-	  getOwnPropertyNames: $getOwnPropertyNames,
-	  // 19.1.2.8 Object.getOwnPropertySymbols(O)
-	  getOwnPropertySymbols: $getOwnPropertySymbols
-	});
-
-	// 24.3.2 JSON.stringify(value [, replacer [, space]])
-	$JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify});
-
-	// 19.4.3.5 Symbol.prototype[@@toStringTag]
-	setToStringTag($Symbol, 'Symbol');
-	// 20.2.1.9 Math[@@toStringTag]
-	setToStringTag(Math, 'Math', true);
-	// 24.3.3 JSON[@@toStringTag]
-	setToStringTag(global.JSON, 'JSON', true);
-
-/***/ },
-/* 33 */
-/***/ function(module, exports, __webpack_require__) {
-
-	module.exports = __webpack_require__(34);
-
-/***/ },
-/* 34 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var $          = __webpack_require__(2)
-	  , createDesc = __webpack_require__(10);
-	module.exports = __webpack_require__(8) ? function(object, key, value){
-	  return $.setDesc(object, key, createDesc(1, value));
-	} : function(object, key, value){
-	  object[key] = value;
-	  return object;
-	};
-
-/***/ },
-/* 35 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var def = __webpack_require__(2).setDesc
-	  , has = __webpack_require__(14)
-	  , TAG = __webpack_require__(29)('toStringTag');
-
-	module.exports = function(it, tag, stat){
-	  if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});
-	};
-
-/***/ },
-/* 36 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var $         = __webpack_require__(2)
-	  , toIObject = __webpack_require__(20);
-	module.exports = function(object, el){
-	  var O      = toIObject(object)
-	    , keys   = $.getKeys(O)
-	    , length = keys.length
-	    , index  = 0
-	    , key;
-	  while(length > index)if(O[key = keys[index++]] === el)return key;
-	};
-
-/***/ },
-/* 37 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
-	var toIObject = __webpack_require__(20)
-	  , getNames  = __webpack_require__(2).getNames
-	  , toString  = {}.toString;
-
-	var windowNames = typeof window == 'object' && Object.getOwnPropertyNames
-	  ? Object.getOwnPropertyNames(window) : [];
-
-	var getWindowNames = function(it){
-	  try {
-	    return getNames(it);
-	  } catch(e){
-	    return windowNames.slice();
-	  }
-	};
-
-	module.exports.get = function getOwnPropertyNames(it){
-	  if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);
-	  return getNames(toIObject(it));
-	};
-
-/***/ },
-/* 38 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// all enumerable object keys, includes symbols
-	var $ = __webpack_require__(2);
-	module.exports = function(it){
-	  var keys       = $.getKeys(it)
-	    , getSymbols = $.getSymbols;
-	  if(getSymbols){
-	    var symbols = getSymbols(it)
-	      , isEnum  = $.isEnum
-	      , i       = 0
-	      , key;
-	    while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);
-	  }
-	  return keys;
-	};
-
-/***/ },
-/* 39 */
-/***/ function(module, exports) {
-
-	module.exports = true;
-
-/***/ },
-/* 40 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.3.1 Object.assign(target, source)
-	var $export = __webpack_require__(3);
-
-	$export($export.S + $export.F, 'Object', {assign: __webpack_require__(41)});
-
-/***/ },
-/* 41 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.2.1 Object.assign(target, source, ...)
-	var $        = __webpack_require__(2)
-	  , toObject = __webpack_require__(18)
-	  , IObject  = __webpack_require__(21);
-
-	// should work with symbols and should have deterministic property order (V8 bug)
-	module.exports = __webpack_require__(9)(function(){
-	  var a = Object.assign
-	    , A = {}
-	    , B = {}
-	    , S = Symbol()
-	    , K = 'abcdefghijklmnopqrst';
-	  A[S] = 7;
-	  K.split('').forEach(function(k){ B[k] = k; });
-	  return a({}, A)[S] != 7 || Object.keys(a({}, B)).join('') != K;
-	}) ? function assign(target, source){ // eslint-disable-line no-unused-vars
-	  var T     = toObject(target)
-	    , $$    = arguments
-	    , $$len = $$.length
-	    , index = 1
-	    , getKeys    = $.getKeys
-	    , getSymbols = $.getSymbols
-	    , isEnum     = $.isEnum;
-	  while($$len > index){
-	    var S      = IObject($$[index++])
-	      , keys   = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)
-	      , length = keys.length
-	      , j      = 0
-	      , key;
-	    while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];
-	  }
-	  return T;
-	} : Object.assign;
-
-/***/ },
-/* 42 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.3.10 Object.is(value1, value2)
-	var $export = __webpack_require__(3);
-	$export($export.S, 'Object', {is: __webpack_require__(43)});
-
-/***/ },
-/* 43 */
-/***/ function(module, exports) {
-
-	// 7.2.9 SameValue(x, y)
-	module.exports = Object.is || function is(x, y){
-	  return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
-	};
-
-/***/ },
-/* 44 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.3.19 Object.setPrototypeOf(O, proto)
-	var $export = __webpack_require__(3);
-	$export($export.S, 'Object', {setPrototypeOf: __webpack_require__(45).set});
-
-/***/ },
-/* 45 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// Works with __proto__ only. Old v8 can't work with null proto objects.
-	/* eslint-disable no-proto */
-	var getDesc  = __webpack_require__(2).getDesc
-	  , isObject = __webpack_require__(13)
-	  , anObject = __webpack_require__(17);
-	var check = function(O, proto){
-	  anObject(O);
-	  if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!");
-	};
-	module.exports = {
-	  set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
-	    function(test, buggy, set){
-	      try {
-	        set = __webpack_require__(6)(Function.call, getDesc(Object.prototype, '__proto__').set, 2);
-	        set(test, []);
-	        buggy = !(test instanceof Array);
-	      } catch(e){ buggy = true; }
-	      return function setPrototypeOf(O, proto){
-	        check(O, proto);
-	        if(buggy)O.__proto__ = proto;
-	        else set(O, proto);
-	        return O;
-	      };
-	    }({}, false) : undefined),
-	  check: check
-	};
-
-/***/ },
-/* 46 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.2.5 Object.freeze(O)
-	var isObject = __webpack_require__(13);
-
-	__webpack_require__(47)('freeze', function($freeze){
-	  return function freeze(it){
-	    return $freeze && isObject(it) ? $freeze(it) : it;
-	  };
-	});
-
-/***/ },
-/* 47 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// most Object methods by ES6 should accept primitives
-	var $export = __webpack_require__(3)
-	  , core    = __webpack_require__(5)
-	  , fails   = __webpack_require__(9);
-	module.exports = function(KEY, exec){
-	  var fn  = (core.Object || {})[KEY] || Object[KEY]
-	    , exp = {};
-	  exp[KEY] = exec(fn);
-	  $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);
-	};
-
-/***/ },
-/* 48 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.2.17 Object.seal(O)
-	var isObject = __webpack_require__(13);
-
-	__webpack_require__(47)('seal', function($seal){
-	  return function seal(it){
-	    return $seal && isObject(it) ? $seal(it) : it;
-	  };
-	});
-
-/***/ },
-/* 49 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.2.15 Object.preventExtensions(O)
-	var isObject = __webpack_require__(13);
-
-	__webpack_require__(47)('preventExtensions', function($preventExtensions){
-	  return function preventExtensions(it){
-	    return $preventExtensions && isObject(it) ? $preventExtensions(it) : it;
-	  };
-	});
-
-/***/ },
-/* 50 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.2.12 Object.isFrozen(O)
-	var isObject = __webpack_require__(13);
-
-	__webpack_require__(47)('isFrozen', function($isFrozen){
-	  return function isFrozen(it){
-	    return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;
-	  };
-	});
-
-/***/ },
-/* 51 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.2.13 Object.isSealed(O)
-	var isObject = __webpack_require__(13);
-
-	__webpack_require__(47)('isSealed', function($isSealed){
-	  return function isSealed(it){
-	    return isObject(it) ? $isSealed ? $isSealed(it) : false : true;
-	  };
-	});
-
-/***/ },
-/* 52 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.2.11 Object.isExtensible(O)
-	var isObject = __webpack_require__(13);
-
-	__webpack_require__(47)('isExtensible', function($isExtensible){
-	  return function isExtensible(it){
-	    return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;
-	  };
-	});
-
-/***/ },
-/* 53 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
-	var toIObject = __webpack_require__(20);
-
-	__webpack_require__(47)('getOwnPropertyDescriptor', function($getOwnPropertyDescriptor){
-	  return function getOwnPropertyDescriptor(it, key){
-	    return $getOwnPropertyDescriptor(toIObject(it), key);
-	  };
-	});
-
-/***/ },
-/* 54 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.2.9 Object.getPrototypeOf(O)
-	var toObject = __webpack_require__(18);
-
-	__webpack_require__(47)('getPrototypeOf', function($getPrototypeOf){
-	  return function getPrototypeOf(it){
-	    return $getPrototypeOf(toObject(it));
-	  };
-	});
-
-/***/ },
-/* 55 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.2.14 Object.keys(O)
-	var toObject = __webpack_require__(18);
-
-	__webpack_require__(47)('keys', function($keys){
-	  return function keys(it){
-	    return $keys(toObject(it));
-	  };
-	});
-
-/***/ },
-/* 56 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.2.7 Object.getOwnPropertyNames(O)
-	__webpack_require__(47)('getOwnPropertyNames', function(){
-	  return __webpack_require__(37).get;
-	});
-
-/***/ },
-/* 57 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	var $             = __webpack_require__(2)
-	  , isObject      = __webpack_require__(13)
-	  , HAS_INSTANCE  = __webpack_require__(29)('hasInstance')
-	  , FunctionProto = Function.prototype;
-	// 19.2.3.6 Function.prototype[@@hasInstance](V)
-	if(!(HAS_INSTANCE in FunctionProto))$.setDesc(FunctionProto, HAS_INSTANCE, {value: function(O){
-	  if(typeof this != 'function' || !isObject(O))return false;
-	  if(!isObject(this.prototype))return O instanceof this;
-	  // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
-	  while(O = $.getProto(O))if(this.prototype === O)return true;
-	  return false;
-	}});
-
-/***/ },
-/* 58 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.1.2.1 Number.EPSILON
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Number', {EPSILON: Math.pow(2, -52)});
-
-/***/ },
-/* 59 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.1.2.2 Number.isFinite(number)
-	var $export   = __webpack_require__(3)
-	  , _isFinite = __webpack_require__(4).isFinite;
-
-	$export($export.S, 'Number', {
-	  isFinite: function isFinite(it){
-	    return typeof it == 'number' && _isFinite(it);
-	  }
-	});
-
-/***/ },
-/* 60 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.1.2.3 Number.isInteger(number)
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Number', {isInteger: __webpack_require__(61)});
-
-/***/ },
-/* 61 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.1.2.3 Number.isInteger(number)
-	var isObject = __webpack_require__(13)
-	  , floor    = Math.floor;
-	module.exports = function isInteger(it){
-	  return !isObject(it) && isFinite(it) && floor(it) === it;
-	};
-
-/***/ },
-/* 62 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.1.2.4 Number.isNaN(number)
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Number', {
-	  isNaN: function isNaN(number){
-	    return number != number;
-	  }
-	});
-
-/***/ },
-/* 63 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.1.2.5 Number.isSafeInteger(number)
-	var $export   = __webpack_require__(3)
-	  , isInteger = __webpack_require__(61)
-	  , abs       = Math.abs;
-
-	$export($export.S, 'Number', {
-	  isSafeInteger: function isSafeInteger(number){
-	    return isInteger(number) && abs(number) <= 0x1fffffffffffff;
-	  }
-	});
-
-/***/ },
-/* 64 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.1.2.6 Number.MAX_SAFE_INTEGER
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Number', {MAX_SAFE_INTEGER: 0x1fffffffffffff});
-
-/***/ },
-/* 65 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.1.2.10 Number.MIN_SAFE_INTEGER
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Number', {MIN_SAFE_INTEGER: -0x1fffffffffffff});
-
-/***/ },
-/* 66 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.1.2.12 Number.parseFloat(string)
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Number', {parseFloat: parseFloat});
-
-/***/ },
-/* 67 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.1.2.13 Number.parseInt(string, radix)
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Number', {parseInt: parseInt});
-
-/***/ },
-/* 68 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.3 Math.acosh(x)
-	var $export = __webpack_require__(3)
-	  , log1p   = __webpack_require__(69)
-	  , sqrt    = Math.sqrt
-	  , $acosh  = Math.acosh;
-
-	// V8 bug https://code.google.com/p/v8/issues/detail?id=3509
-	$export($export.S + $export.F * !($acosh && Math.floor($acosh(Number.MAX_VALUE)) == 710), 'Math', {
-	  acosh: function acosh(x){
-	    return (x = +x) < 1 ? NaN : x > 94906265.62425156
-	      ? Math.log(x) + Math.LN2
-	      : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));
-	  }
-	});
-
-/***/ },
-/* 69 */
-/***/ function(module, exports) {
-
-	// 20.2.2.20 Math.log1p(x)
-	module.exports = Math.log1p || function log1p(x){
-	  return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);
-	};
-
-/***/ },
-/* 70 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.5 Math.asinh(x)
-	var $export = __webpack_require__(3);
-
-	function asinh(x){
-	  return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));
-	}
-
-	$export($export.S, 'Math', {asinh: asinh});
-
-/***/ },
-/* 71 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.7 Math.atanh(x)
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Math', {
-	  atanh: function atanh(x){
-	    return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;
-	  }
-	});
-
-/***/ },
-/* 72 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.9 Math.cbrt(x)
-	var $export = __webpack_require__(3)
-	  , sign    = __webpack_require__(73);
-
-	$export($export.S, 'Math', {
-	  cbrt: function cbrt(x){
-	    return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);
-	  }
-	});
-
-/***/ },
-/* 73 */
-/***/ function(module, exports) {
-
-	// 20.2.2.28 Math.sign(x)
-	module.exports = Math.sign || function sign(x){
-	  return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;
-	};
-
-/***/ },
-/* 74 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.11 Math.clz32(x)
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Math', {
-	  clz32: function clz32(x){
-	    return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;
-	  }
-	});
-
-/***/ },
-/* 75 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.12 Math.cosh(x)
-	var $export = __webpack_require__(3)
-	  , exp     = Math.exp;
-
-	$export($export.S, 'Math', {
-	  cosh: function cosh(x){
-	    return (exp(x = +x) + exp(-x)) / 2;
-	  }
-	});
-
-/***/ },
-/* 76 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.14 Math.expm1(x)
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Math', {expm1: __webpack_require__(77)});
-
-/***/ },
-/* 77 */
-/***/ function(module, exports) {
-
-	// 20.2.2.14 Math.expm1(x)
-	module.exports = Math.expm1 || function expm1(x){
-	  return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;
-	};
-
-/***/ },
-/* 78 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.16 Math.fround(x)
-	var $export   = __webpack_require__(3)
-	  , sign      = __webpack_require__(73)
-	  , pow       = Math.pow
-	  , EPSILON   = pow(2, -52)
-	  , EPSILON32 = pow(2, -23)
-	  , MAX32     = pow(2, 127) * (2 - EPSILON32)
-	  , MIN32     = pow(2, -126);
-
-	var roundTiesToEven = function(n){
-	  return n + 1 / EPSILON - 1 / EPSILON;
-	};
-
-
-	$export($export.S, 'Math', {
-	  fround: function fround(x){
-	    var $abs  = Math.abs(x)
-	      , $sign = sign(x)
-	      , a, result;
-	    if($abs < MIN32)return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;
-	    a = (1 + EPSILON32 / EPSILON) * $abs;
-	    result = a - (a - $abs);
-	    if(result > MAX32 || result != result)return $sign * Infinity;
-	    return $sign * result;
-	  }
-	});
-
-/***/ },
-/* 79 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])
-	var $export = __webpack_require__(3)
-	  , abs     = Math.abs;
-
-	$export($export.S, 'Math', {
-	  hypot: function hypot(value1, value2){ // eslint-disable-line no-unused-vars
-	    var sum   = 0
-	      , i     = 0
-	      , $$    = arguments
-	      , $$len = $$.length
-	      , larg  = 0
-	      , arg, div;
-	    while(i < $$len){
-	      arg = abs($$[i++]);
-	      if(larg < arg){
-	        div  = larg / arg;
-	        sum  = sum * div * div + 1;
-	        larg = arg;
-	      } else if(arg > 0){
-	        div  = arg / larg;
-	        sum += div * div;
-	      } else sum += arg;
-	    }
-	    return larg === Infinity ? Infinity : larg * Math.sqrt(sum);
-	  }
-	});
-
-/***/ },
-/* 80 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.18 Math.imul(x, y)
-	var $export = __webpack_require__(3)
-	  , $imul   = Math.imul;
-
-	// some WebKit versions fails with big numbers, some has wrong arity
-	$export($export.S + $export.F * __webpack_require__(9)(function(){
-	  return $imul(0xffffffff, 5) != -5 || $imul.length != 2;
-	}), 'Math', {
-	  imul: function imul(x, y){
-	    var UINT16 = 0xffff
-	      , xn = +x
-	      , yn = +y
-	      , xl = UINT16 & xn
-	      , yl = UINT16 & yn;
-	    return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);
-	  }
-	});
-
-/***/ },
-/* 81 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.21 Math.log10(x)
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Math', {
-	  log10: function log10(x){
-	    return Math.log(x) / Math.LN10;
-	  }
-	});
-
-/***/ },
-/* 82 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.20 Math.log1p(x)
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Math', {log1p: __webpack_require__(69)});
-
-/***/ },
-/* 83 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.22 Math.log2(x)
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Math', {
-	  log2: function log2(x){
-	    return Math.log(x) / Math.LN2;
-	  }
-	});
-
-/***/ },
-/* 84 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.28 Math.sign(x)
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Math', {sign: __webpack_require__(73)});
-
-/***/ },
-/* 85 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.30 Math.sinh(x)
-	var $export = __webpack_require__(3)
-	  , expm1   = __webpack_require__(77)
-	  , exp     = Math.exp;
-
-	// V8 near Chromium 38 has a problem with very small numbers
-	$export($export.S + $export.F * __webpack_require__(9)(function(){
-	  return !Math.sinh(-2e-17) != -2e-17;
-	}), 'Math', {
-	  sinh: function sinh(x){
-	    return Math.abs(x = +x) < 1
-	      ? (expm1(x) - expm1(-x)) / 2
-	      : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);
-	  }
-	});
-
-/***/ },
-/* 86 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.33 Math.tanh(x)
-	var $export = __webpack_require__(3)
-	  , expm1   = __webpack_require__(77)
-	  , exp     = Math.exp;
-
-	$export($export.S, 'Math', {
-	  tanh: function tanh(x){
-	    var a = expm1(x = +x)
-	      , b = expm1(-x);
-	    return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));
-	  }
-	});
-
-/***/ },
-/* 87 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.34 Math.trunc(x)
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Math', {
-	  trunc: function trunc(it){
-	    return (it > 0 ? Math.floor : Math.ceil)(it);
-	  }
-	});
-
-/***/ },
-/* 88 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var $export        = __webpack_require__(3)
-	  , toIndex        = __webpack_require__(23)
-	  , fromCharCode   = String.fromCharCode
-	  , $fromCodePoint = String.fromCodePoint;
-
-	// length should be 1, old FF problem
-	$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {
-	  // 21.1.2.2 String.fromCodePoint(...codePoints)
-	  fromCodePoint: function fromCodePoint(x){ // eslint-disable-line no-unused-vars
-	    var res   = []
-	      , $$    = arguments
-	      , $$len = $$.length
-	      , i     = 0
-	      , code;
-	    while($$len > i){
-	      code = +$$[i++];
-	      if(toIndex(code, 0x10ffff) !== code)throw RangeError(code + ' is not a valid code point');
-	      res.push(code < 0x10000
-	        ? fromCharCode(code)
-	        : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)
-	      );
-	    } return res.join('');
-	  }
-	});
-
-/***/ },
-/* 89 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var $export   = __webpack_require__(3)
-	  , toIObject = __webpack_require__(20)
-	  , toLength  = __webpack_require__(24);
-
-	$export($export.S, 'String', {
-	  // 21.1.2.4 String.raw(callSite, ...substitutions)
-	  raw: function raw(callSite){
-	    var tpl   = toIObject(callSite.raw)
-	      , len   = toLength(tpl.length)
-	      , $$    = arguments
-	      , $$len = $$.length
-	      , res   = []
-	      , i     = 0;
-	    while(len > i){
-	      res.push(String(tpl[i++]));
-	      if(i < $$len)res.push(String($$[i]));
-	    } return res.join('');
-	  }
-	});
-
-/***/ },
-/* 90 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	// 21.1.3.25 String.prototype.trim()
-	__webpack_require__(91)('trim', function($trim){
-	  return function trim(){
-	    return $trim(this, 3);
-	  };
-	});
-
-/***/ },
-/* 91 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var $export = __webpack_require__(3)
-	  , defined = __webpack_require__(19)
-	  , fails   = __webpack_require__(9)
-	  , spaces  = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
-	      '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'
-	  , space   = '[' + spaces + ']'
-	  , non     = '\u200b\u0085'
-	  , ltrim   = RegExp('^' + space + space + '*')
-	  , rtrim   = RegExp(space + space + '*$');
-
-	var exporter = function(KEY, exec){
-	  var exp  = {};
-	  exp[KEY] = exec(trim);
-	  $export($export.P + $export.F * fails(function(){
-	    return !!spaces[KEY]() || non[KEY]() != non;
-	  }), 'String', exp);
-	};
-
-	// 1 -> String#trimLeft
-	// 2 -> String#trimRight
-	// 3 -> String#trim
-	var trim = exporter.trim = function(string, TYPE){
-	  string = String(defined(string));
-	  if(TYPE & 1)string = string.replace(ltrim, '');
-	  if(TYPE & 2)string = string.replace(rtrim, '');
-	  return string;
-	};
-
-	module.exports = exporter;
-
-/***/ },
-/* 92 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	var $export = __webpack_require__(3)
-	  , $at     = __webpack_require__(93)(false);
-	$export($export.P, 'String', {
-	  // 21.1.3.3 String.prototype.codePointAt(pos)
-	  codePointAt: function codePointAt(pos){
-	    return $at(this, pos);
-	  }
-	});
-
-/***/ },
-/* 93 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var toInteger = __webpack_require__(22)
-	  , defined   = __webpack_require__(19);
-	// true  -> String#at
-	// false -> String#codePointAt
-	module.exports = function(TO_STRING){
-	  return function(that, pos){
-	    var s = String(defined(that))
-	      , i = toInteger(pos)
-	      , l = s.length
-	      , a, b;
-	    if(i < 0 || i >= l)return TO_STRING ? '' : undefined;
-	    a = s.charCodeAt(i);
-	    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
-	      ? TO_STRING ? s.charAt(i) : a
-	      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
-	  };
-	};
-
-/***/ },
-/* 94 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])
-	'use strict';
-	var $export   = __webpack_require__(3)
-	  , toLength  = __webpack_require__(24)
-	  , context   = __webpack_require__(95)
-	  , ENDS_WITH = 'endsWith'
-	  , $endsWith = ''[ENDS_WITH];
-
-	$export($export.P + $export.F * __webpack_require__(97)(ENDS_WITH), 'String', {
-	  endsWith: function endsWith(searchString /*, endPosition = @length */){
-	    var that = context(this, searchString, ENDS_WITH)
-	      , $$   = arguments
-	      , endPosition = $$.length > 1 ? $$[1] : undefined
-	      , len    = toLength(that.length)
-	      , end    = endPosition === undefined ? len : Math.min(toLength(endPosition), len)
-	      , search = String(searchString);
-	    return $endsWith
-	      ? $endsWith.call(that, search, end)
-	      : that.slice(end - search.length, end) === search;
-	  }
-	});
-
-/***/ },
-/* 95 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// helper for String#{startsWith, endsWith, includes}
-	var isRegExp = __webpack_require__(96)
-	  , defined  = __webpack_require__(19);
-
-	module.exports = function(that, searchString, NAME){
-	  if(isRegExp(searchString))throw TypeError('String#' + NAME + " doesn't accept regex!");
-	  return String(defined(that));
-	};
-
-/***/ },
-/* 96 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 7.2.8 IsRegExp(argument)
-	var isObject = __webpack_require__(13)
-	  , cof      = __webpack_require__(15)
-	  , MATCH    = __webpack_require__(29)('match');
-	module.exports = function(it){
-	  var isRegExp;
-	  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
-	};
-
-/***/ },
-/* 97 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var MATCH = __webpack_require__(29)('match');
-	module.exports = function(KEY){
-	  var re = /./;
-	  try {
-	    '/./'[KEY](re);
-	  } catch(e){
-	    try {
-	      re[MATCH] = false;
-	      return !'/./'[KEY](re);
-	    } catch(f){ /* empty */ }
-	  } return true;
-	};
-
-/***/ },
-/* 98 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 21.1.3.7 String.prototype.includes(searchString, position = 0)
-	'use strict';
-	var $export  = __webpack_require__(3)
-	  , context  = __webpack_require__(95)
-	  , INCLUDES = 'includes';
-
-	$export($export.P + $export.F * __webpack_require__(97)(INCLUDES), 'String', {
-	  includes: function includes(searchString /*, position = 0 */){
-	    return !!~context(this, searchString, INCLUDES)
-	      .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
-	  }
-	});
-
-/***/ },
-/* 99 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var $export = __webpack_require__(3);
-
-	$export($export.P, 'String', {
-	  // 21.1.3.13 String.prototype.repeat(count)
-	  repeat: __webpack_require__(100)
-	});
-
-/***/ },
-/* 100 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	var toInteger = __webpack_require__(22)
-	  , defined   = __webpack_require__(19);
-
-	module.exports = function repeat(count){
-	  var str = String(defined(this))
-	    , res = ''
-	    , n   = toInteger(count);
-	  if(n < 0 || n == Infinity)throw RangeError("Count can't be negative");
-	  for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str;
-	  return res;
-	};
-
-/***/ },
-/* 101 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 21.1.3.18 String.prototype.startsWith(searchString [, position ])
-	'use strict';
-	var $export     = __webpack_require__(3)
-	  , toLength    = __webpack_require__(24)
-	  , context     = __webpack_require__(95)
-	  , STARTS_WITH = 'startsWith'
-	  , $startsWith = ''[STARTS_WITH];
-
-	$export($export.P + $export.F * __webpack_require__(97)(STARTS_WITH), 'String', {
-	  startsWith: function startsWith(searchString /*, position = 0 */){
-	    var that   = context(this, searchString, STARTS_WITH)
-	      , $$     = arguments
-	      , index  = toLength(Math.min($$.length > 1 ? $$[1] : undefined, that.length))
-	      , search = String(searchString);
-	    return $startsWith
-	      ? $startsWith.call(that, search, index)
-	      : that.slice(index, index + search.length) === search;
-	  }
-	});
-
-/***/ },
-/* 102 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	var $at  = __webpack_require__(93)(true);
-
-	// 21.1.3.27 String.prototype[@@iterator]()
-	__webpack_require__(103)(String, 'String', function(iterated){
-	  this._t = String(iterated); // target
-	  this._i = 0;                // next index
-	// 21.1.5.2.1 %StringIteratorPrototype%.next()
-	}, function(){
-	  var O     = this._t
-	    , index = this._i
-	    , point;
-	  if(index >= O.length)return {value: undefined, done: true};
-	  point = $at(O, index);
-	  this._i += point.length;
-	  return {value: point, done: false};
-	});
-
-/***/ },
-/* 103 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	var LIBRARY        = __webpack_require__(39)
-	  , $export        = __webpack_require__(3)
-	  , redefine       = __webpack_require__(33)
-	  , hide           = __webpack_require__(34)
-	  , has            = __webpack_require__(14)
-	  , Iterators      = __webpack_require__(104)
-	  , $iterCreate    = __webpack_require__(105)
-	  , setToStringTag = __webpack_require__(35)
-	  , getProto       = __webpack_require__(2).getProto
-	  , ITERATOR       = __webpack_require__(29)('iterator')
-	  , BUGGY          = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`
-	  , FF_ITERATOR    = '@@iterator'
-	  , KEYS           = 'keys'
-	  , VALUES         = 'values';
-
-	var returnThis = function(){ return this; };
-
-	module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){
-	  $iterCreate(Constructor, NAME, next);
-	  var getMethod = function(kind){
-	    if(!BUGGY && kind in proto)return proto[kind];
-	    switch(kind){
-	      case KEYS: return function keys(){ return new Constructor(this, kind); };
-	      case VALUES: return function values(){ return new Constructor(this, kind); };
-	    } return function entries(){ return new Constructor(this, kind); };
-	  };
-	  var TAG        = NAME + ' Iterator'
-	    , DEF_VALUES = DEFAULT == VALUES
-	    , VALUES_BUG = false
-	    , proto      = Base.prototype
-	    , $native    = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]
-	    , $default   = $native || getMethod(DEFAULT)
-	    , methods, key;
-	  // Fix native
-	  if($native){
-	    var IteratorPrototype = getProto($default.call(new Base));
-	    // Set @@toStringTag to native iterators
-	    setToStringTag(IteratorPrototype, TAG, true);
-	    // FF fix
-	    if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);
-	    // fix Array#{values, @@iterator}.name in V8 / FF
-	    if(DEF_VALUES && $native.name !== VALUES){
-	      VALUES_BUG = true;
-	      $default = function values(){ return $native.call(this); };
-	    }
-	  }
-	  // Define iterator
-	  if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){
-	    hide(proto, ITERATOR, $default);
-	  }
-	  // Plug for library
-	  Iterators[NAME] = $default;
-	  Iterators[TAG]  = returnThis;
-	  if(DEFAULT){
-	    methods = {
-	      values:  DEF_VALUES  ? $default : getMethod(VALUES),
-	      keys:    IS_SET      ? $default : getMethod(KEYS),
-	      entries: !DEF_VALUES ? $default : getMethod('entries')
-	    };
-	    if(FORCED)for(key in methods){
-	      if(!(key in proto))redefine(proto, key, methods[key]);
-	    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
-	  }
-	  return methods;
-	};
-
-/***/ },
-/* 104 */
-/***/ function(module, exports) {
-
-	module.exports = {};
-
-/***/ },
-/* 105 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	var $              = __webpack_require__(2)
-	  , descriptor     = __webpack_require__(10)
-	  , setToStringTag = __webpack_require__(35)
-	  , IteratorPrototype = {};
-
-	// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
-	__webpack_require__(34)(IteratorPrototype, __webpack_require__(29)('iterator'), function(){ return this; });
-
-	module.exports = function(Constructor, NAME, next){
-	  Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});
-	  setToStringTag(Constructor, NAME + ' Iterator');
-	};
-
-/***/ },
-/* 106 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	var ctx         = __webpack_require__(6)
-	  , $export     = __webpack_require__(3)
-	  , toObject    = __webpack_require__(18)
-	  , call        = __webpack_require__(107)
-	  , isArrayIter = __webpack_require__(108)
-	  , toLength    = __webpack_require__(24)
-	  , getIterFn   = __webpack_require__(109);
-	$export($export.S + $export.F * !__webpack_require__(111)(function(iter){ Array.from(iter); }), 'Array', {
-	  // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
-	  from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){
-	    var O       = toObject(arrayLike)
-	      , C       = typeof this == 'function' ? this : Array
-	      , $$      = arguments
-	      , $$len   = $$.length
-	      , mapfn   = $$len > 1 ? $$[1] : undefined
-	      , mapping = mapfn !== undefined
-	      , index   = 0
-	      , iterFn  = getIterFn(O)
-	      , length, result, step, iterator;
-	    if(mapping)mapfn = ctx(mapfn, $$len > 2 ? $$[2] : undefined, 2);
-	    // if object isn't iterable or it's array with default iterator - use simple case
-	    if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){
-	      for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){
-	        result[index] = mapping ? call(iterator, mapfn, [step.value, index], true) : step.value;
-	      }
-	    } else {
-	      length = toLength(O.length);
-	      for(result = new C(length); length > index; index++){
-	        result[index] = mapping ? mapfn(O[index], index) : O[index];
-	      }
-	    }
-	    result.length = index;
-	    return result;
-	  }
-	});
-
-
-/***/ },
-/* 107 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// call something on iterator step with safe closing on error
-	var anObject = __webpack_require__(17);
-	module.exports = function(iterator, fn, value, entries){
-	  try {
-	    return entries ? fn(anObject(value)[0], value[1]) : fn(value);
-	  // 7.4.6 IteratorClose(iterator, completion)
-	  } catch(e){
-	    var ret = iterator['return'];
-	    if(ret !== undefined)anObject(ret.call(iterator));
-	    throw e;
-	  }
-	};
-
-/***/ },
-/* 108 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// check on default Array iterator
-	var Iterators  = __webpack_require__(104)
-	  , ITERATOR   = __webpack_require__(29)('iterator')
-	  , ArrayProto = Array.prototype;
-
-	module.exports = function(it){
-	  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
-	};
-
-/***/ },
-/* 109 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var classof   = __webpack_require__(110)
-	  , ITERATOR  = __webpack_require__(29)('iterator')
-	  , Iterators = __webpack_require__(104);
-	module.exports = __webpack_require__(5).getIteratorMethod = function(it){
-	  if(it != undefined)return it[ITERATOR]
-	    || it['@@iterator']
-	    || Iterators[classof(it)];
-	};
-
-/***/ },
-/* 110 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// getting tag from 19.1.3.6 Object.prototype.toString()
-	var cof = __webpack_require__(15)
-	  , TAG = __webpack_require__(29)('toStringTag')
-	  // ES3 wrong here
-	  , ARG = cof(function(){ return arguments; }()) == 'Arguments';
-
-	module.exports = function(it){
-	  var O, T, B;
-	  return it === undefined ? 'Undefined' : it === null ? 'Null'
-	    // @@toStringTag case
-	    : typeof (T = (O = Object(it))[TAG]) == 'string' ? T
-	    // builtinTag case
-	    : ARG ? cof(O)
-	    // ES3 arguments fallback
-	    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
-	};
-
-/***/ },
-/* 111 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var ITERATOR     = __webpack_require__(29)('iterator')
-	  , SAFE_CLOSING = false;
-
-	try {
-	  var riter = [7][ITERATOR]();
-	  riter['return'] = function(){ SAFE_CLOSING = true; };
-	  Array.from(riter, function(){ throw 2; });
-	} catch(e){ /* empty */ }
-
-	module.exports = function(exec, skipClosing){
-	  if(!skipClosing && !SAFE_CLOSING)return false;
-	  var safe = false;
-	  try {
-	    var arr  = [7]
-	      , iter = arr[ITERATOR]();
-	    iter.next = function(){ return {done: safe = true}; };
-	    arr[ITERATOR] = function(){ return iter; };
-	    exec(arr);
-	  } catch(e){ /* empty */ }
-	  return safe;
-	};
-
-/***/ },
-/* 112 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	var $export = __webpack_require__(3);
-
-	// WebKit Array.of isn't generic
-	$export($export.S + $export.F * __webpack_require__(9)(function(){
-	  function F(){}
-	  return !(Array.of.call(F) instanceof F);
-	}), 'Array', {
-	  // 22.1.2.3 Array.of( ...items)
-	  of: function of(/* ...args */){
-	    var index  = 0
-	      , $$     = arguments
-	      , $$len  = $$.length
-	      , result = new (typeof this == 'function' ? this : Array)($$len);
-	    while($$len > index)result[index] = $$[index++];
-	    result.length = $$len;
-	    return result;
-	  }
-	});
-
-/***/ },
-/* 113 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	var addToUnscopables = __webpack_require__(114)
-	  , step             = __webpack_require__(115)
-	  , Iterators        = __webpack_require__(104)
-	  , toIObject        = __webpack_require__(20);
-
-	// 22.1.3.4 Array.prototype.entries()
-	// 22.1.3.13 Array.prototype.keys()
-	// 22.1.3.29 Array.prototype.values()
-	// 22.1.3.30 Array.prototype[@@iterator]()
-	module.exports = __webpack_require__(103)(Array, 'Array', function(iterated, kind){
-	  this._t = toIObject(iterated); // target
-	  this._i = 0;                   // next index
-	  this._k = kind;                // kind
-	// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
-	}, function(){
-	  var O     = this._t
-	    , kind  = this._k
-	    , index = this._i++;
-	  if(!O || index >= O.length){
-	    this._t = undefined;
-	    return step(1);
-	  }
-	  if(kind == 'keys'  )return step(0, index);
-	  if(kind == 'values')return step(0, O[index]);
-	  return step(0, [index, O[index]]);
-	}, 'values');
-
-	// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
-	Iterators.Arguments = Iterators.Array;
-
-	addToUnscopables('keys');
-	addToUnscopables('values');
-	addToUnscopables('entries');
-
-/***/ },
-/* 114 */
-/***/ function(module, exports) {
-
-	module.exports = function(){ /* empty */ };
-
-/***/ },
-/* 115 */
-/***/ function(module, exports) {
-
-	module.exports = function(done, value){
-	  return {value: value, done: !!done};
-	};
-
-/***/ },
-/* 116 */
-/***/ function(module, exports, __webpack_require__) {
-
-	__webpack_require__(117)('Array');
-
-/***/ },
-/* 117 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	var core        = __webpack_require__(5)
-	  , $           = __webpack_require__(2)
-	  , DESCRIPTORS = __webpack_require__(8)
-	  , SPECIES     = __webpack_require__(29)('species');
-
-	module.exports = function(KEY){
-	  var C = core[KEY];
-	  if(DESCRIPTORS && C && !C[SPECIES])$.setDesc(C, SPECIES, {
-	    configurable: true,
-	    get: function(){ return this; }
-	  });
-	};
-
-/***/ },
-/* 118 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
-	var $export = __webpack_require__(3);
-
-	$export($export.P, 'Array', {copyWithin: __webpack_require__(119)});
-
-	__webpack_require__(114)('copyWithin');
-
-/***/ },
-/* 119 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
-	'use strict';
-	var toObject = __webpack_require__(18)
-	  , toIndex  = __webpack_require__(23)
-	  , toLength = __webpack_require__(24);
-
-	module.exports = [].copyWithin || function copyWithin(target/*= 0*/, start/*= 0, end = @length*/){
-	  var O     = toObject(this)
-	    , len   = toLength(O.length)
-	    , to    = toIndex(target, len)
-	    , from  = toIndex(start, len)
-	    , $$    = arguments
-	    , end   = $$.length > 2 ? $$[2] : undefined
-	    , count = Math.min((end === undefined ? len : toIndex(end, len)) - from, len - to)
-	    , inc   = 1;
-	  if(from < to && to < from + count){
-	    inc  = -1;
-	    from += count - 1;
-	    to   += count - 1;
-	  }
-	  while(count-- > 0){
-	    if(from in O)O[to] = O[from];
-	    else delete O[to];
-	    to   += inc;
-	    from += inc;
-	  } return O;
-	};
-
-/***/ },
-/* 120 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
-	var $export = __webpack_require__(3);
-
-	$export($export.P, 'Array', {fill: __webpack_require__(121)});
-
-	__webpack_require__(114)('fill');
-
-/***/ },
-/* 121 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
-	'use strict';
-	var toObject = __webpack_require__(18)
-	  , toIndex  = __webpack_require__(23)
-	  , toLength = __webpack_require__(24);
-	module.exports = [].fill || function fill(value /*, start = 0, end = @length */){
-	  var O      = toObject(this)
-	    , length = toLength(O.length)
-	    , $$     = arguments
-	    , $$len  = $$.length
-	    , index  = toIndex($$len > 1 ? $$[1] : undefined, length)
-	    , end    = $$len > 2 ? $$[2] : undefined
-	    , endPos = end === undefined ? length : toIndex(end, length);
-	  while(endPos > index)O[index++] = value;
-	  return O;
-	};
-
-/***/ },
-/* 122 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
-	var $export = __webpack_require__(3)
-	  , $find   = __webpack_require__(26)(5)
-	  , KEY     = 'find'
-	  , forced  = true;
-	// Shouldn't skip holes
-	if(KEY in [])Array(1)[KEY](function(){ forced = false; });
-	$export($export.P + $export.F * forced, 'Array', {
-	  find: function find(callbackfn/*, that = undefined */){
-	    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
-	  }
-	});
-	__webpack_require__(114)(KEY);
-
-/***/ },
-/* 123 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)
-	var $export = __webpack_require__(3)
-	  , $find   = __webpack_require__(26)(6)
-	  , KEY     = 'findIndex'
-	  , forced  = true;
-	// Shouldn't skip holes
-	if(KEY in [])Array(1)[KEY](function(){ forced = false; });
-	$export($export.P + $export.F * forced, 'Array', {
-	  findIndex: function findIndex(callbackfn/*, that = undefined */){
-	    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
-	  }
-	});
-	__webpack_require__(114)(KEY);
-
-/***/ },
-/* 124 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	var $          = __webpack_require__(2)
-	  , LIBRARY    = __webpack_require__(39)
-	  , global     = __webpack_require__(4)
-	  , ctx        = __webpack_require__(6)
-	  , classof    = __webpack_require__(110)
-	  , $export    = __webpack_require__(3)
-	  , isObject   = __webpack_require__(13)
-	  , anObject   = __webpack_require__(17)
-	  , aFunction  = __webpack_require__(7)
-	  , strictNew  = __webpack_require__(125)
-	  , forOf      = __webpack_require__(126)
-	  , setProto   = __webpack_require__(45).set
-	  , same       = __webpack_require__(43)
-	  , SPECIES    = __webpack_require__(29)('species')
-	  , speciesConstructor = __webpack_require__(127)
-	  , asap       = __webpack_require__(128)
-	  , PROMISE    = 'Promise'
-	  , process    = global.process
-	  , isNode     = classof(process) == 'process'
-	  , P          = global[PROMISE]
-	  , empty      = function(){ /* empty */ }
-	  , Wrapper;
-
-	var testResolve = function(sub){
-	  var test = new P(empty), promise;
-	  if(sub)test.constructor = function(exec){
-	    exec(empty, empty);
-	  };
-	  (promise = P.resolve(test))['catch'](empty);
-	  return promise === test;
-	};
-
-	var USE_NATIVE = function(){
-	  var works = false;
-	  function P2(x){
-	    var self = new P(x);
-	    setProto(self, P2.prototype);
-	    return self;
-	  }
-	  try {
-	    works = P && P.resolve && testResolve();
-	    setProto(P2, P);
-	    P2.prototype = $.create(P.prototype, {constructor: {value: P2}});
-	    // actual Firefox has broken subclass support, test that
-	    if(!(P2.resolve(5).then(function(){}) instanceof P2)){
-	      works = false;
-	    }
-	    // actual V8 bug, https://code.google.com/p/v8/issues/detail?id=4162
-	    if(works && __webpack_require__(8)){
-	      var thenableThenGotten = false;
-	      P.resolve($.setDesc({}, 'then', {
-	        get: function(){ thenableThenGotten = true; }
-	      }));
-	      works = thenableThenGotten;
-	    }
-	  } catch(e){ works = false; }
-	  return works;
-	}();
-
-	// helpers
-	var sameConstructor = function(a, b){
-	  // library wrapper special case
-	  if(LIBRARY && a === P && b === Wrapper)return true;
-	  return same(a, b);
-	};
-	var getConstructor = function(C){
-	  var S = anObject(C)[SPECIES];
-	  return S != undefined ? S : C;
-	};
-	var isThenable = function(it){
-	  var then;
-	  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
-	};
-	var PromiseCapability = function(C){
-	  var resolve, reject;
-	  this.promise = new C(function($$resolve, $$reject){
-	    if(resolve !== undefined || reject !== undefined)throw TypeError('Bad Promise constructor');
-	    resolve = $$resolve;
-	    reject  = $$reject;
-	  });
-	  this.resolve = aFunction(resolve),
-	  this.reject  = aFunction(reject)
-	};
-	var perform = function(exec){
-	  try {
-	    exec();
-	  } catch(e){
-	    return {error: e};
-	  }
-	};
-	var notify = function(record, isReject){
-	  if(record.n)return;
-	  record.n = true;
-	  var chain = record.c;
-	  asap(function(){
-	    var value = record.v
-	      , ok    = record.s == 1
-	      , i     = 0;
-	    var run = function(reaction){
-	      var handler = ok ? reaction.ok : reaction.fail
-	        , resolve = reaction.resolve
-	        , reject  = reaction.reject
-	        , result, then;
-	      try {
-	        if(handler){
-	          if(!ok)record.h = true;
-	          result = handler === true ? value : handler(value);
-	          if(result === reaction.promise){
-	            reject(TypeError('Promise-chain cycle'));
-	          } else if(then = isThenable(result)){
-	            then.call(result, resolve, reject);
-	          } else resolve(result);
-	        } else reject(value);
-	      } catch(e){
-	        reject(e);
-	      }
-	    };
-	    while(chain.length > i)run(chain[i++]); // variable length - can't use forEach
-	    chain.length = 0;
-	    record.n = false;
-	    if(isReject)setTimeout(function(){
-	      var promise = record.p
-	        , handler, console;
-	      if(isUnhandled(promise)){
-	        if(isNode){
-	          process.emit('unhandledRejection', value, promise);
-	        } else if(handler = global.onunhandledrejection){
-	          handler({promise: promise, reason: value});
-	        } else if((console = global.console) && console.error){
-	          console.error('Unhandled promise rejection', value);
-	        }
-	      } record.a = undefined;
-	    }, 1);
-	  });
-	};
-	var isUnhandled = function(promise){
-	  var record = promise._d
-	    , chain  = record.a || record.c
-	    , i      = 0
-	    , reaction;
-	  if(record.h)return false;
-	  while(chain.length > i){
-	    reaction = chain[i++];
-	    if(reaction.fail || !isUnhandled(reaction.promise))return false;
-	  } return true;
-	};
-	var $reject = function(value){
-	  var record = this;
-	  if(record.d)return;
-	  record.d = true;
-	  record = record.r || record; // unwrap
-	  record.v = value;
-	  record.s = 2;
-	  record.a = record.c.slice();
-	  notify(record, true);
-	};
-	var $resolve = function(value){
-	  var record = this
-	    , then;
-	  if(record.d)return;
-	  record.d = true;
-	  record = record.r || record; // unwrap
-	  try {
-	    if(record.p === value)throw TypeError("Promise can't be resolved itself");
-	    if(then = isThenable(value)){
-	      asap(function(){
-	        var wrapper = {r: record, d: false}; // wrap
-	        try {
-	          then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
-	        } catch(e){
-	          $reject.call(wrapper, e);
-	        }
-	      });
-	    } else {
-	      record.v = value;
-	      record.s = 1;
-	      notify(record, false);
-	    }
-	  } catch(e){
-	    $reject.call({r: record, d: false}, e); // wrap
-	  }
-	};
-
-	// constructor polyfill
-	if(!USE_NATIVE){
-	  // 25.4.3.1 Promise(executor)
-	  P = function Promise(executor){
-	    aFunction(executor);
-	    var record = this._d = {
-	      p: strictNew(this, P, PROMISE),         // <- promise
-	      c: [],                                  // <- awaiting reactions
-	      a: undefined,                           // <- checked in isUnhandled reactions
-	      s: 0,                                   // <- state
-	      d: false,                               // <- done
-	      v: undefined,                           // <- value
-	      h: false,                               // <- handled rejection
-	      n: false                                // <- notify
-	    };
-	    try {
-	      executor(ctx($resolve, record, 1), ctx($reject, record, 1));
-	    } catch(err){
-	      $reject.call(record, err);
-	    }
-	  };
-	  __webpack_require__(130)(P.prototype, {
-	    // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
-	    then: function then(onFulfilled, onRejected){
-	      var reaction = new PromiseCapability(speciesConstructor(this, P))
-	        , promise  = reaction.promise
-	        , record   = this._d;
-	      reaction.ok   = typeof onFulfilled == 'function' ? onFulfilled : true;
-	      reaction.fail = typeof onRejected == 'function' && onRejected;
-	      record.c.push(reaction);
-	      if(record.a)record.a.push(reaction);
-	      if(record.s)notify(record, false);
-	      return promise;
-	    },
-	    // 25.4.5.1 Promise.prototype.catch(onRejected)
-	    'catch': function(onRejected){
-	      return this.then(undefined, onRejected);
-	    }
-	  });
-	}
-
-	$export($export.G + $export.W + $export.F * !USE_NATIVE, {Promise: P});
-	__webpack_require__(35)(P, PROMISE);
-	__webpack_require__(117)(PROMISE);
-	Wrapper = __webpack_require__(5)[PROMISE];
-
-	// statics
-	$export($export.S + $export.F * !USE_NATIVE, PROMISE, {
-	  // 25.4.4.5 Promise.reject(r)
-	  reject: function reject(r){
-	    var capability = new PromiseCapability(this)
-	      , $$reject   = capability.reject;
-	    $$reject(r);
-	    return capability.promise;
-	  }
-	});
-	$export($export.S + $export.F * (!USE_NATIVE || testResolve(true)), PROMISE, {
-	  // 25.4.4.6 Promise.resolve(x)
-	  resolve: function resolve(x){
-	    // instanceof instead of internal slot check because we should fix it without replacement native Promise core
-	    if(x instanceof P && sameConstructor(x.constructor, this))return x;
-	    var capability = new PromiseCapability(this)
-	      , $$resolve  = capability.resolve;
-	    $$resolve(x);
-	    return capability.promise;
-	  }
-	});
-	$export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(111)(function(iter){
-	  P.all(iter)['catch'](function(){});
-	})), PROMISE, {
-	  // 25.4.4.1 Promise.all(iterable)
-	  all: func

<TRUNCATED>


[08/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/connect/index.js
----------------------------------------------------------------------
diff --git a/node_modules/connect/index.js b/node_modules/connect/index.js
deleted file mode 100644
index 6473a3a..0000000
--- a/node_modules/connect/index.js
+++ /dev/null
@@ -1,283 +0,0 @@
-/*!
- * connect
- * Copyright(c) 2010 Sencha Inc.
- * Copyright(c) 2011 TJ Holowaychuk
- * Copyright(c) 2015 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-'use strict';
-
-/**
- * Module dependencies.
- * @private
- */
-
-var debug = require('debug')('connect:dispatcher');
-var EventEmitter = require('events').EventEmitter;
-var finalhandler = require('finalhandler');
-var http = require('http');
-var merge = require('utils-merge');
-var parseUrl = require('parseurl');
-
-/**
- * Module exports.
- * @public
- */
-
-module.exports = createServer;
-
-/**
- * Module variables.
- * @private
- */
-
-var env = process.env.NODE_ENV || 'development';
-var proto = {};
-
-/* istanbul ignore next */
-var defer = typeof setImmediate === 'function'
-  ? setImmediate
-  : function(fn){ process.nextTick(fn.bind.apply(fn, arguments)) }
-
-/**
- * Create a new connect server.
- *
- * @return {function}
- * @public
- */
-
-function createServer() {
-  function app(req, res, next){ app.handle(req, res, next); }
-  merge(app, proto);
-  merge(app, EventEmitter.prototype);
-  app.route = '/';
-  app.stack = [];
-  return app;
-}
-
-/**
- * Utilize the given middleware `handle` to the given `route`,
- * defaulting to _/_. This "route" is the mount-point for the
- * middleware, when given a value other than _/_ the middleware
- * is only effective when that segment is present in the request's
- * pathname.
- *
- * For example if we were to mount a function at _/admin_, it would
- * be invoked on _/admin_, and _/admin/settings_, however it would
- * not be invoked for _/_, or _/posts_.
- *
- * @param {String|Function|Server} route, callback or server
- * @param {Function|Server} callback or server
- * @return {Server} for chaining
- * @public
- */
-
-proto.use = function use(route, fn) {
-  var handle = fn;
-  var path = route;
-
-  // default route to '/'
-  if (typeof route !== 'string') {
-    handle = route;
-    path = '/';
-  }
-
-  // wrap sub-apps
-  if (typeof handle.handle === 'function') {
-    var server = handle;
-    server.route = path;
-    handle = function (req, res, next) {
-      server.handle(req, res, next);
-    };
-  }
-
-  // wrap vanilla http.Servers
-  if (handle instanceof http.Server) {
-    handle = handle.listeners('request')[0];
-  }
-
-  // strip trailing slash
-  if (path[path.length - 1] === '/') {
-    path = path.slice(0, -1);
-  }
-
-  // add the middleware
-  debug('use %s %s', path || '/', handle.name || 'anonymous');
-  this.stack.push({ route: path, handle: handle });
-
-  return this;
-};
-
-/**
- * Handle server requests, punting them down
- * the middleware stack.
- *
- * @private
- */
-
-proto.handle = function handle(req, res, out) {
-  var index = 0;
-  var protohost = getProtohost(req.url) || '';
-  var removed = '';
-  var slashAdded = false;
-  var stack = this.stack;
-
-  // final function handler
-  var done = out || finalhandler(req, res, {
-    env: env,
-    onerror: logerror
-  });
-
-  // store the original URL
-  req.originalUrl = req.originalUrl || req.url;
-
-  function next(err) {
-    if (slashAdded) {
-      req.url = req.url.substr(1);
-      slashAdded = false;
-    }
-
-    if (removed.length !== 0) {
-      req.url = protohost + removed + req.url.substr(protohost.length);
-      removed = '';
-    }
-
-    // next callback
-    var layer = stack[index++];
-
-    // all done
-    if (!layer) {
-      defer(done, err);
-      return;
-    }
-
-    // route data
-    var path = parseUrl(req).pathname || '/';
-    var route = layer.route;
-
-    // skip this layer if the route doesn't match
-    if (path.toLowerCase().substr(0, route.length) !== route.toLowerCase()) {
-      return next(err);
-    }
-
-    // skip if route match does not border "/", ".", or end
-    var c = path[route.length];
-    if (c !== undefined && '/' !== c && '.' !== c) {
-      return next(err);
-    }
-
-    // trim off the part of the url that matches the route
-    if (route.length !== 0 && route !== '/') {
-      removed = route;
-      req.url = protohost + req.url.substr(protohost.length + removed.length);
-
-      // ensure leading slash
-      if (!protohost && req.url[0] !== '/') {
-        req.url = '/' + req.url;
-        slashAdded = true;
-      }
-    }
-
-    // call the layer handle
-    call(layer.handle, route, err, req, res, next);
-  }
-
-  next();
-};
-
-/**
- * Listen for connections.
- *
- * This method takes the same arguments
- * as node's `http.Server#listen()`.
- *
- * HTTP and HTTPS:
- *
- * If you run your application both as HTTP
- * and HTTPS you may wrap them individually,
- * since your Connect "server" is really just
- * a JavaScript `Function`.
- *
- *      var connect = require('connect')
- *        , http = require('http')
- *        , https = require('https');
- *
- *      var app = connect();
- *
- *      http.createServer(app).listen(80);
- *      https.createServer(options, app).listen(443);
- *
- * @return {http.Server}
- * @api public
- */
-
-proto.listen = function listen() {
-  var server = http.createServer(this);
-  return server.listen.apply(server, arguments);
-};
-
-/**
- * Invoke a route handle.
- * @private
- */
-
-function call(handle, route, err, req, res, next) {
-  var arity = handle.length;
-  var error = err;
-  var hasError = Boolean(err);
-
-  debug('%s %s : %s', handle.name || '<anonymous>', route, req.originalUrl);
-
-  try {
-    if (hasError && arity === 4) {
-      // error-handling middleware
-      handle(err, req, res, next);
-      return;
-    } else if (!hasError && arity < 4) {
-      // request-handling middleware
-      handle(req, res, next);
-      return;
-    }
-  } catch (e) {
-    // replace the error
-    error = e;
-  }
-
-  // continue
-  next(error);
-}
-
-/**
- * Log error using console.error.
- *
- * @param {Error} err
- * @private
- */
-
-function logerror(err) {
-  if (env !== 'test') console.error(err.stack || err.toString());
-}
-
-/**
- * Get get protocol + host for a URL.
- *
- * @param {string} url
- * @private
- */
-
-function getProtohost(url) {
-  if (url.length === 0 || url[0] === '/') {
-    return undefined;
-  }
-
-  var searchIndex = url.indexOf('?');
-  var pathLength = searchIndex !== -1
-    ? searchIndex
-    : url.length;
-  var fqdnIndex = url.substr(0, pathLength).indexOf('://');
-
-  return fqdnIndex !== -1
-    ? url.substr(0, url.indexOf('/', 3 + fqdnIndex))
-    : undefined;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/connect/node_modules/debug/.coveralls.yml
----------------------------------------------------------------------
diff --git a/node_modules/connect/node_modules/debug/.coveralls.yml b/node_modules/connect/node_modules/debug/.coveralls.yml
deleted file mode 100644
index 20a7068..0000000
--- a/node_modules/connect/node_modules/debug/.coveralls.yml
+++ /dev/null
@@ -1 +0,0 @@
-repo_token: SIAeZjKYlHK74rbcFvNHMUzjRiMpflxve

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/connect/node_modules/debug/.eslintrc
----------------------------------------------------------------------
diff --git a/node_modules/connect/node_modules/debug/.eslintrc b/node_modules/connect/node_modules/debug/.eslintrc
deleted file mode 100644
index 8a37ae2..0000000
--- a/node_modules/connect/node_modules/debug/.eslintrc
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-  "env": {
-    "browser": true,
-    "node": true
-  },
-  "rules": {
-    "no-console": 0,
-    "no-empty": [1, { "allowEmptyCatch": true }]
-  },
-  "extends": "eslint:recommended"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/connect/node_modules/debug/.npmignore
----------------------------------------------------------------------
diff --git a/node_modules/connect/node_modules/debug/.npmignore b/node_modules/connect/node_modules/debug/.npmignore
deleted file mode 100644
index db2fbb9..0000000
--- a/node_modules/connect/node_modules/debug/.npmignore
+++ /dev/null
@@ -1,8 +0,0 @@
-support
-test
-examples
-example
-*.sock
-dist
-yarn.lock
-coverage

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/connect/node_modules/debug/.travis.yml
----------------------------------------------------------------------
diff --git a/node_modules/connect/node_modules/debug/.travis.yml b/node_modules/connect/node_modules/debug/.travis.yml
deleted file mode 100644
index 6c6090c..0000000
--- a/node_modules/connect/node_modules/debug/.travis.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-language: node_js
-node_js:
-  - "6"
-  - "5"
-  - "4"
-
-install:
-  - make node_modules
-
-script:
-  - make lint
-  - make test
-  - make coveralls

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/connect/node_modules/debug/CHANGELOG.md
----------------------------------------------------------------------
diff --git a/node_modules/connect/node_modules/debug/CHANGELOG.md b/node_modules/connect/node_modules/debug/CHANGELOG.md
deleted file mode 100644
index 99abf97..0000000
--- a/node_modules/connect/node_modules/debug/CHANGELOG.md
+++ /dev/null
@@ -1,316 +0,0 @@
-2.6.1 / 2017-02-10
-==================
-
-  * Fix: Module's `export default` syntax fix for IE8 `Expected identifier` error
-  * Fix: Whitelist DEBUG_FD for values 1 and 2 only (#415, @pi0)
-  * Fix: IE8 "Expected identifier" error (#414, @vgoma)
-  * Fix: Namespaces would not disable once enabled (#409, @musikov)
-
-2.6.0 / 2016-12-28
-==================
-
-  * Fix: added better null pointer checks for browser useColors (@thebigredgeek)
-  * Improvement: removed explicit `window.debug` export (#404, @tootallnate)
-  * Improvement: deprecated `DEBUG_FD` environment variable (#405, @tootallnate)
-
-2.5.2 / 2016-12-25
-==================
-
-  * Fix: reference error on window within webworkers (#393, @KlausTrainer)
-  * Docs: fixed README typo (#391, @lurch) 
-  * Docs: added notice about v3 api discussion (@thebigredgeek)
-
-2.5.1 / 2016-12-20
-==================
-
-  * Fix: babel-core compatibility
-
-2.5.0 / 2016-12-20
-==================
-
-  * Fix: wrong reference in bower file (@thebigredgeek)
-  * Fix: webworker compatibility (@thebigredgeek)
-  * Fix: output formatting issue (#388, @kribblo)
-  * Fix: babel-loader compatibility (#383, @escwald)
-  * Misc: removed built asset from repo and publications (@thebigredgeek) 
-  * Misc: moved source files to /src (#378, @yamikuronue)
-  * Test: added karma integration and replaced babel with browserify for browser tests (#378, @yamikuronue)
-  * Test: coveralls integration (#378, @yamikuronue)
-  * Docs: simplified language in the opening paragraph (#373, @yamikuronue)
-
-2.4.5 / 2016-12-17
-==================
-
-  * Fix: `navigator` undefined in Rhino (#376, @jochenberger)
-  * Fix: custom log function (#379, @hsiliev)
-  * Improvement: bit of cleanup + linting fixes (@thebigredgeek)
-  * Improvement: rm non-maintainted `dist/` dir (#375, @freewil)
-  * Docs: simplified language in the opening paragraph. (#373, @yamikuronue)
-
-2.4.4 / 2016-12-14
-==================
-
-  * Fix: work around debug being loaded in preload scripts for electron (#368, @paulcbetts)
-
-2.4.3 / 2016-12-14
-==================
-
-  * Fix: navigation.userAgent error for react native (#364, @escwald)
-
-2.4.2 / 2016-12-14
-==================
-
-  * Fix: browser colors (#367, @tootallnate)
-  * Misc: travis ci integration (@thebigredgeek)
-  * Misc: added linting and testing boilerplate with sanity check (@thebigredgeek)
-
-2.4.1 / 2016-12-13
-==================
-
-  * Fix: typo that broke the package (#356)
-
-2.4.0 / 2016-12-13
-==================
-
-  * Fix: bower.json references unbuilt src entry point (#342, @justmatt)
-  * Fix: revert "handle regex special characters" (@tootallnate)
-  * Feature: configurable util.inspect()`options for NodeJS (#327, @tootallnate)
-  * Feature: %O`(big O) pretty-prints objects (#322, @tootallnate)
-  * Improvement: allow colors in workers (#335, @botverse)
-  * Improvement: use same color for same namespace. (#338, @lchenay)
-
-2.3.3 / 2016-11-09
-==================
-
-  * Fix: Catch `JSON.stringify()` errors (#195, Jovan Alleyne)
-  * Fix: Returning `localStorage` saved values (#331, Levi Thomason)
-  * Improvement: Don't create an empty object when no `process` (Nathan Rajlich)
-
-2.3.2 / 2016-11-09
-==================
-
-  * Fix: be super-safe in index.js as well (@TooTallNate)
-  * Fix: should check whether process exists (Tom Newby)
-
-2.3.1 / 2016-11-09
-==================
-
-  * Fix: Added electron compatibility (#324, @paulcbetts)
-  * Improvement: Added performance optimizations (@tootallnate)
-  * Readme: Corrected PowerShell environment variable example (#252, @gimre)
-  * Misc: Removed yarn lock file from source control (#321, @fengmk2)
-
-2.3.0 / 2016-11-07
-==================
-
-  * Fix: Consistent placement of ms diff at end of output (#215, @gorangajic)
-  * Fix: Escaping of regex special characters in namespace strings (#250, @zacronos)
-  * Fix: Fixed bug causing crash on react-native (#282, @vkarpov15)
-  * Feature: Enabled ES6+ compatible import via default export (#212 @bucaran)
-  * Feature: Added %O formatter to reflect Chrome's console.log capability (#279, @oncletom)
-  * Package: Update "ms" to 0.7.2 (#315, @DevSide)
-  * Package: removed superfluous version property from bower.json (#207 @kkirsche)
-  * Readme: fix USE_COLORS to DEBUG_COLORS
-  * Readme: Doc fixes for format string sugar (#269, @mlucool)
-  * Readme: Updated docs for DEBUG_FD and DEBUG_COLORS environment variables (#232, @mattlyons0)
-  * Readme: doc fixes for PowerShell (#271 #243, @exoticknight @unreadable)
-  * Readme: better docs for browser support (#224, @matthewmueller)
-  * Tooling: Added yarn integration for development (#317, @thebigredgeek)
-  * Misc: Renamed History.md to CHANGELOG.md (@thebigredgeek)
-  * Misc: Added license file (#226 #274, @CantemoInternal @sdaitzman)
-  * Misc: Updated contributors (@thebigredgeek)
-
-2.2.0 / 2015-05-09
-==================
-
-  * package: update "ms" to v0.7.1 (#202, @dougwilson)
-  * README: add logging to file example (#193, @DanielOchoa)
-  * README: fixed a typo (#191, @amir-s)
-  * browser: expose `storage` (#190, @stephenmathieson)
-  * Makefile: add a `distclean` target (#189, @stephenmathieson)
-
-2.1.3 / 2015-03-13
-==================
-
-  * Updated stdout/stderr example (#186)
-  * Updated example/stdout.js to match debug current behaviour
-  * Renamed example/stderr.js to stdout.js
-  * Update Readme.md (#184)
-  * replace high intensity foreground color for bold (#182, #183)
-
-2.1.2 / 2015-03-01
-==================
-
-  * dist: recompile
-  * update "ms" to v0.7.0
-  * package: update "browserify" to v9.0.3
-  * component: fix "ms.js" repo location
-  * changed bower package name
-  * updated documentation about using debug in a browser
-  * fix: security error on safari (#167, #168, @yields)
-
-2.1.1 / 2014-12-29
-==================
-
-  * browser: use `typeof` to check for `console` existence
-  * browser: check for `console.log` truthiness (fix IE 8/9)
-  * browser: add support for Chrome apps
-  * Readme: added Windows usage remarks
-  * Add `bower.json` to properly support bower install
-
-2.1.0 / 2014-10-15
-==================
-
-  * node: implement `DEBUG_FD` env variable support
-  * package: update "browserify" to v6.1.0
-  * package: add "license" field to package.json (#135, @panuhorsmalahti)
-
-2.0.0 / 2014-09-01
-==================
-
-  * package: update "browserify" to v5.11.0
-  * node: use stderr rather than stdout for logging (#29, @stephenmathieson)
-
-1.0.4 / 2014-07-15
-==================
-
-  * dist: recompile
-  * example: remove `console.info()` log usage
-  * example: add "Content-Type" UTF-8 header to browser example
-  * browser: place %c marker after the space character
-  * browser: reset the "content" color via `color: inherit`
-  * browser: add colors support for Firefox >= v31
-  * debug: prefer an instance `log()` function over the global one (#119)
-  * Readme: update documentation about styled console logs for FF v31 (#116, @wryk)
-
-1.0.3 / 2014-07-09
-==================
-
-  * Add support for multiple wildcards in namespaces (#122, @seegno)
-  * browser: fix lint
-
-1.0.2 / 2014-06-10
-==================
-
-  * browser: update color palette (#113, @gscottolson)
-  * common: make console logging function configurable (#108, @timoxley)
-  * node: fix %o colors on old node <= 0.8.x
-  * Makefile: find node path using shell/which (#109, @timoxley)
-
-1.0.1 / 2014-06-06
-==================
-
-  * browser: use `removeItem()` to clear localStorage
-  * browser, node: don't set DEBUG if namespaces is undefined (#107, @leedm777)
-  * package: add "contributors" section
-  * node: fix comment typo
-  * README: list authors
-
-1.0.0 / 2014-06-04
-==================
-
-  * make ms diff be global, not be scope
-  * debug: ignore empty strings in enable()
-  * node: make DEBUG_COLORS able to disable coloring
-  * *: export the `colors` array
-  * npmignore: don't publish the `dist` dir
-  * Makefile: refactor to use browserify
-  * package: add "browserify" as a dev dependency
-  * Readme: add Web Inspector Colors section
-  * node: reset terminal color for the debug content
-  * node: map "%o" to `util.inspect()`
-  * browser: map "%j" to `JSON.stringify()`
-  * debug: add custom "formatters"
-  * debug: use "ms" module for humanizing the diff
-  * Readme: add "bash" syntax highlighting
-  * browser: add Firebug color support
-  * browser: add colors for WebKit browsers
-  * node: apply log to `console`
-  * rewrite: abstract common logic for Node & browsers
-  * add .jshintrc file
-
-0.8.1 / 2014-04-14
-==================
-
-  * package: re-add the "component" section
-
-0.8.0 / 2014-03-30
-==================
-
-  * add `enable()` method for nodejs. Closes #27
-  * change from stderr to stdout
-  * remove unnecessary index.js file
-
-0.7.4 / 2013-11-13
-==================
-
-  * remove "browserify" key from package.json (fixes something in browserify)
-
-0.7.3 / 2013-10-30
-==================
-
-  * fix: catch localStorage security error when cookies are blocked (Chrome)
-  * add debug(err) support. Closes #46
-  * add .browser prop to package.json. Closes #42
-
-0.7.2 / 2013-02-06
-==================
-
-  * fix package.json
-  * fix: Mobile Safari (private mode) is broken with debug
-  * fix: Use unicode to send escape character to shell instead of octal to work with strict mode javascript
-
-0.7.1 / 2013-02-05
-==================
-
-  * add repository URL to package.json
-  * add DEBUG_COLORED to force colored output
-  * add browserify support
-  * fix component. Closes #24
-
-0.7.0 / 2012-05-04
-==================
-
-  * Added .component to package.json
-  * Added debug.component.js build
-
-0.6.0 / 2012-03-16
-==================
-
-  * Added support for "-" prefix in DEBUG [Vinay Pulim]
-  * Added `.enabled` flag to the node version [TooTallNate]
-
-0.5.0 / 2012-02-02
-==================
-
-  * Added: humanize diffs. Closes #8
-  * Added `debug.disable()` to the CS variant
-  * Removed padding. Closes #10
-  * Fixed: persist client-side variant again. Closes #9
-
-0.4.0 / 2012-02-01
-==================
-
-  * Added browser variant support for older browsers [TooTallNate]
-  * Added `debug.enable('project:*')` to browser variant [TooTallNate]
-  * Added padding to diff (moved it to the right)
-
-0.3.0 / 2012-01-26
-==================
-
-  * Added millisecond diff when isatty, otherwise UTC string
-
-0.2.0 / 2012-01-22
-==================
-
-  * Added wildcard support
-
-0.1.0 / 2011-12-02
-==================
-
-  * Added: remove colors unless stderr isatty [TooTallNate]
-
-0.0.1 / 2010-01-03
-==================
-
-  * Initial release

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/connect/node_modules/debug/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/connect/node_modules/debug/LICENSE b/node_modules/connect/node_modules/debug/LICENSE
deleted file mode 100644
index 658c933..0000000
--- a/node_modules/connect/node_modules/debug/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2014 TJ Holowaychuk <tj...@vision-media.ca>
-
-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.
-

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/connect/node_modules/debug/Makefile
----------------------------------------------------------------------
diff --git a/node_modules/connect/node_modules/debug/Makefile b/node_modules/connect/node_modules/debug/Makefile
deleted file mode 100644
index 584da8b..0000000
--- a/node_modules/connect/node_modules/debug/Makefile
+++ /dev/null
@@ -1,50 +0,0 @@
-# get Makefile directory name: http://stackoverflow.com/a/5982798/376773
-THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
-THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd)
-
-# BIN directory
-BIN := $(THIS_DIR)/node_modules/.bin
-
-# Path
-PATH := node_modules/.bin:$(PATH)
-SHELL := /bin/bash
-
-# applications
-NODE ?= $(shell which node)
-YARN ?= $(shell which yarn)
-PKG ?= $(if $(YARN),$(YARN),$(NODE) $(shell which npm))
-BROWSERIFY ?= $(NODE) $(BIN)/browserify
-
-.FORCE:
-
-install: node_modules
-
-node_modules: package.json
-	@NODE_ENV= $(PKG) install
-	@touch node_modules
-
-lint: .FORCE
-	eslint browser.js debug.js index.js node.js
-
-test-node: .FORCE
-	istanbul cover node_modules/mocha/bin/_mocha -- test/**.js
-
-test-browser: .FORCE
-	mkdir -p dist
-
-	@$(BROWSERIFY) \
-		--standalone debug \
-		. > dist/debug.js
-
-	karma start --single-run
-	rimraf dist
-
-test: .FORCE
-	concurrently \
-		"make test-node" \
-		"make test-browser"
-
-coveralls:
-	cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js
-
-.PHONY: all install clean distclean

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/connect/node_modules/debug/README.md
----------------------------------------------------------------------
diff --git a/node_modules/connect/node_modules/debug/README.md b/node_modules/connect/node_modules/debug/README.md
deleted file mode 100644
index 2c57ddf..0000000
--- a/node_modules/connect/node_modules/debug/README.md
+++ /dev/null
@@ -1,238 +0,0 @@
-# debug
-[![Build Status](https://travis-ci.org/visionmedia/debug.svg?branch=master)](https://travis-ci.org/visionmedia/debug)  [![Coverage Status](https://coveralls.io/repos/github/visionmedia/debug/badge.svg?branch=master)](https://coveralls.io/github/visionmedia/debug?branch=master)
-
-A tiny node.js debugging utility modelled after node core's debugging technique.
-
-**Discussion around the V3 API is under way [here](https://github.com/visionmedia/debug/issues/370)**
-
-## Installation
-
-```bash
-$ npm install debug
-```
-
-## Usage
-
-`debug` exposes a function; simply pass this function the name of your module, and it will return a decorated version of `console.error` for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole. 
-
-Example _app.js_:
-
-```js
-var debug = require('debug')('http')
-  , http = require('http')
-  , name = 'My App';
-
-// fake app
-
-debug('booting %s', name);
-
-http.createServer(function(req, res){
-  debug(req.method + ' ' + req.url);
-  res.end('hello\n');
-}).listen(3000, function(){
-  debug('listening');
-});
-
-// fake worker of some kind
-
-require('./worker');
-```
-
-Example _worker.js_:
-
-```js
-var debug = require('debug')('worker');
-
-setInterval(function(){
-  debug('doing some work');
-}, 1000);
-```
-
- The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples:
-
-  ![debug http and worker](http://f.cl.ly/items/18471z1H402O24072r1J/Screenshot.png)
-
-  ![debug worker](http://f.cl.ly/items/1X413v1a3M0d3C2c1E0i/Screenshot.png)
-
-#### Windows note
-
- On Windows the environment variable is set using the `set` command.
-
- ```cmd
- set DEBUG=*,-not_this
- ```
-
- Note that PowerShell uses different syntax to set environment variables.
-
- ```cmd
- $env:DEBUG = "*,-not_this"
-  ```
-
-Then, run the program to be debugged as usual.
-
-## Millisecond diff
-
-  When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls.
-
-  ![](http://f.cl.ly/items/2i3h1d3t121M2Z1A3Q0N/Screenshot.png)
-
-  When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below:
-
-  ![](http://f.cl.ly/items/112H3i0e0o0P0a2Q2r11/Screenshot.png)
-
-## Conventions
-
-  If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser".
-
-## Wildcards
-
-  The `*` character may be used as a wildcard. Suppose for example your library has debuggers named "connect:bodyParser", "connect:compress", "connect:session", instead of listing all three with `DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`.
-
-  You can also exclude specific debuggers by prefixing them with a "-" character.  For example, `DEBUG=*,-connect:*` would include all debuggers except those starting with "connect:".
-
-## Environment Variables
-
-  When running through Node.js, you can set a few environment variables that will
-  change the behavior of the debug logging:
-
-| Name      | Purpose                                         |
-|-----------|-------------------------------------------------|
-| `DEBUG`   | Enables/disabled specific debugging namespaces. |
-| `DEBUG_COLORS`| Whether or not to use colors in the debug output. |
-| `DEBUG_DEPTH` | Object inspection depth. |
-| `DEBUG_SHOW_HIDDEN` | Shows hidden properties on inspected objects. |
-
-
-  __Note:__ The environment variables beginning with `DEBUG_` end up being
-  converted into an Options object that gets used with `%o`/`%O` formatters.
-  See the Node.js documentation for
-  [`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options)
-  for the complete list.
-
-## Formatters
-
-
-  Debug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting. Below are the officially supported formatters:
-
-| Formatter | Representation |
-|-----------|----------------|
-| `%O`      | Pretty-print an Object on multiple lines. |
-| `%o`      | Pretty-print an Object all on a single line. |
-| `%s`      | String. |
-| `%d`      | Number (both integer and float). |
-| `%j`      | JSON. Replaced with the string '[Circular]' if the argument contains circular references. |
-| `%%`      | Single percent sign ('%'). This does not consume an argument. |
-
-### Custom formatters
-
-  You can add custom formatters by extending the `debug.formatters` object. For example, if you wanted to add support for rendering a Buffer as hex with `%h`, you could do something like:
-
-```js
-const createDebug = require('debug')
-createDebug.formatters.h = (v) => {
-  return v.toString('hex')
-}
-
-// …elsewhere
-const debug = createDebug('foo')
-debug('this is hex: %h', new Buffer('hello world'))
-//   foo this is hex: 68656c6c6f20776f726c6421 +0ms
-```
-
-## Browser support
-  You can build a browser-ready script using [browserify](https://github.com/substack/node-browserify),
-  or just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest),
-  if you don't want to build it yourself.
-
-  Debug's enable state is currently persisted by `localStorage`.
-  Consider the situation shown below where you have `worker:a` and `worker:b`,
-  and wish to debug both. You can enable this using `localStorage.debug`:
-
-```js
-localStorage.debug = 'worker:*'
-```
-
-And then refresh the page.
-
-```js
-a = debug('worker:a');
-b = debug('worker:b');
-
-setInterval(function(){
-  a('doing some work');
-}, 1000);
-
-setInterval(function(){
-  b('doing some work');
-}, 1200);
-```
-
-#### Web Inspector Colors
-
-  Colors are also enabled on "Web Inspectors" that understand the `%c` formatting
-  option. These are WebKit web inspectors, Firefox ([since version
-  31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/))
-  and the Firebug plugin for Firefox (any version).
-
-  Colored output looks something like:
-
-  ![](https://cloud.githubusercontent.com/assets/71256/3139768/b98c5fd8-e8ef-11e3-862a-f7253b6f47c6.png)
-
-
-## Output streams
-
-  By default `debug` will log to stderr, however this can be configured per-namespace by overriding the `log` method:
-
-Example _stdout.js_:
-
-```js
-var debug = require('debug');
-var error = debug('app:error');
-
-// by default stderr is used
-error('goes to stderr!');
-
-var log = debug('app:log');
-// set this namespace to log via console.log
-log.log = console.log.bind(console); // don't forget to bind to console!
-log('goes to stdout');
-error('still goes to stderr!');
-
-// set all output to go via console.info
-// overrides all per-namespace log settings
-debug.log = console.info.bind(console);
-error('now goes to stdout via console.info');
-log('still goes to stdout, but via console.info now');
-```
-
-
-## Authors
-
- - TJ Holowaychuk
- - Nathan Rajlich
- - Andrew Rhyne
-
-## License
-
-(The MIT License)
-
-Copyright (c) 2014-2016 TJ Holowaychuk &lt;tj@vision-media.ca&gt;
-
-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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/connect/node_modules/debug/bower.json
----------------------------------------------------------------------
diff --git a/node_modules/connect/node_modules/debug/bower.json b/node_modules/connect/node_modules/debug/bower.json
deleted file mode 100644
index 027804c..0000000
--- a/node_modules/connect/node_modules/debug/bower.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-  "name": "visionmedia-debug",
-  "main": "./src/browser.js",
-  "homepage": "https://github.com/visionmedia/debug",
-  "authors": [
-    "TJ Holowaychuk <tj...@vision-media.ca>",
-    "Nathan Rajlich <na...@tootallnate.net> (http://n8.io)",
-    "Andrew Rhyne <rh...@gmail.com>"
-  ],
-  "description": "visionmedia-debug",
-  "moduleType": [
-    "amd",
-    "es6",
-    "globals",
-    "node"
-  ],
-  "keywords": [
-    "visionmedia",
-    "debug"
-  ],
-  "license": "MIT",
-  "ignore": [
-    "**/.*",
-    "node_modules",
-    "bower_components",
-    "test",
-    "tests"
-  ]
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/connect/node_modules/debug/component.json
----------------------------------------------------------------------
diff --git a/node_modules/connect/node_modules/debug/component.json b/node_modules/connect/node_modules/debug/component.json
deleted file mode 100644
index 4861027..0000000
--- a/node_modules/connect/node_modules/debug/component.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-  "name": "debug",
-  "repo": "visionmedia/debug",
-  "description": "small debugging utility",
-  "version": "2.6.1",
-  "keywords": [
-    "debug",
-    "log",
-    "debugger"
-  ],
-  "main": "src/browser.js",
-  "scripts": [
-    "src/browser.js",
-    "src/debug.js"
-  ],
-  "dependencies": {
-    "rauchg/ms.js": "0.7.1"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/connect/node_modules/debug/karma.conf.js
----------------------------------------------------------------------
diff --git a/node_modules/connect/node_modules/debug/karma.conf.js b/node_modules/connect/node_modules/debug/karma.conf.js
deleted file mode 100644
index 103a82d..0000000
--- a/node_modules/connect/node_modules/debug/karma.conf.js
+++ /dev/null
@@ -1,70 +0,0 @@
-// Karma configuration
-// Generated on Fri Dec 16 2016 13:09:51 GMT+0000 (UTC)
-
-module.exports = function(config) {
-  config.set({
-
-    // base path that will be used to resolve all patterns (eg. files, exclude)
-    basePath: '',
-
-
-    // frameworks to use
-    // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
-    frameworks: ['mocha', 'chai', 'sinon'],
-
-
-    // list of files / patterns to load in the browser
-    files: [
-      'dist/debug.js',
-      'test/*spec.js'
-    ],
-
-
-    // list of files to exclude
-    exclude: [
-      'src/node.js'
-    ],
-
-
-    // preprocess matching files before serving them to the browser
-    // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
-    preprocessors: {
-    },
-
-    // test results reporter to use
-    // possible values: 'dots', 'progress'
-    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
-    reporters: ['progress'],
-
-
-    // web server port
-    port: 9876,
-
-
-    // enable / disable colors in the output (reporters and logs)
-    colors: true,
-
-
-    // level of logging
-    // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
-    logLevel: config.LOG_INFO,
-
-
-    // enable / disable watching file and executing tests whenever any file changes
-    autoWatch: true,
-
-
-    // start these browsers
-    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
-    browsers: ['PhantomJS'],
-
-
-    // Continuous Integration mode
-    // if true, Karma captures browsers, runs the tests and exits
-    singleRun: false,
-
-    // Concurrency level
-    // how many browser should be started simultaneous
-    concurrency: Infinity
-  })
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/connect/node_modules/debug/node.js
----------------------------------------------------------------------
diff --git a/node_modules/connect/node_modules/debug/node.js b/node_modules/connect/node_modules/debug/node.js
deleted file mode 100644
index 7fc36fe..0000000
--- a/node_modules/connect/node_modules/debug/node.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./src/node');

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/connect/node_modules/debug/package.json
----------------------------------------------------------------------
diff --git a/node_modules/connect/node_modules/debug/package.json b/node_modules/connect/node_modules/debug/package.json
deleted file mode 100644
index 793ed00..0000000
--- a/node_modules/connect/node_modules/debug/package.json
+++ /dev/null
@@ -1,125 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "debug@2.6.1",
-        "scope": null,
-        "escapedName": "debug",
-        "name": "debug",
-        "rawSpec": "2.6.1",
-        "spec": "2.6.1",
-        "type": "version"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/connect"
-    ]
-  ],
-  "_from": "debug@2.6.1",
-  "_id": "debug@2.6.1",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/connect/debug",
-  "_nodeVersion": "6.9.0",
-  "_npmOperationalInternal": {
-    "host": "packages-18-east.internal.npmjs.com",
-    "tmp": "tmp/debug-2.6.1.tgz_1486753226738_0.07569954148493707"
-  },
-  "_npmUser": {
-    "name": "thebigredgeek",
-    "email": "rhyneandrew@gmail.com"
-  },
-  "_npmVersion": "4.0.3",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "debug@2.6.1",
-    "scope": null,
-    "escapedName": "debug",
-    "name": "debug",
-    "rawSpec": "2.6.1",
-    "spec": "2.6.1",
-    "type": "version"
-  },
-  "_requiredBy": [
-    "/connect"
-  ],
-  "_resolved": "https://registry.npmjs.org/debug/-/debug-2.6.1.tgz",
-  "_shasum": "79855090ba2c4e3115cc7d8769491d58f0491351",
-  "_shrinkwrap": null,
-  "_spec": "debug@2.6.1",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/connect",
-  "author": {
-    "name": "TJ Holowaychuk",
-    "email": "tj@vision-media.ca"
-  },
-  "browser": "./src/browser.js",
-  "bugs": {
-    "url": "https://github.com/visionmedia/debug/issues"
-  },
-  "component": {
-    "scripts": {
-      "debug/index.js": "browser.js",
-      "debug/debug.js": "debug.js"
-    }
-  },
-  "contributors": [
-    {
-      "name": "Nathan Rajlich",
-      "email": "nathan@tootallnate.net",
-      "url": "http://n8.io"
-    },
-    {
-      "name": "Andrew Rhyne",
-      "email": "rhyneandrew@gmail.com"
-    }
-  ],
-  "dependencies": {
-    "ms": "0.7.2"
-  },
-  "description": "small debugging utility",
-  "devDependencies": {
-    "browserify": "9.0.3",
-    "chai": "^3.5.0",
-    "concurrently": "^3.1.0",
-    "coveralls": "^2.11.15",
-    "eslint": "^3.12.1",
-    "istanbul": "^0.4.5",
-    "karma": "^1.3.0",
-    "karma-chai": "^0.1.0",
-    "karma-mocha": "^1.3.0",
-    "karma-phantomjs-launcher": "^1.0.2",
-    "karma-sinon": "^1.0.5",
-    "mocha": "^3.2.0",
-    "mocha-lcov-reporter": "^1.2.0",
-    "rimraf": "^2.5.4",
-    "sinon": "^1.17.6",
-    "sinon-chai": "^2.8.0"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "79855090ba2c4e3115cc7d8769491d58f0491351",
-    "tarball": "https://registry.npmjs.org/debug/-/debug-2.6.1.tgz"
-  },
-  "gitHead": "941653e3334e9e3e2cca87cad9bbf6c5cb245215",
-  "homepage": "https://github.com/visionmedia/debug#readme",
-  "keywords": [
-    "debug",
-    "log",
-    "debugger"
-  ],
-  "license": "MIT",
-  "main": "./src/index.js",
-  "maintainers": [
-    {
-      "name": "thebigredgeek",
-      "email": "rhyneandrew@gmail.com"
-    }
-  ],
-  "name": "debug",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/visionmedia/debug.git"
-  },
-  "scripts": {},
-  "version": "2.6.1"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/connect/node_modules/debug/src/browser.js
----------------------------------------------------------------------
diff --git a/node_modules/connect/node_modules/debug/src/browser.js b/node_modules/connect/node_modules/debug/src/browser.js
deleted file mode 100644
index 38d6391..0000000
--- a/node_modules/connect/node_modules/debug/src/browser.js
+++ /dev/null
@@ -1,182 +0,0 @@
-/**
- * This is the web browser implementation of `debug()`.
- *
- * Expose `debug()` as the module.
- */
-
-exports = module.exports = require('./debug');
-exports.log = log;
-exports.formatArgs = formatArgs;
-exports.save = save;
-exports.load = load;
-exports.useColors = useColors;
-exports.storage = 'undefined' != typeof chrome
-               && 'undefined' != typeof chrome.storage
-                  ? chrome.storage.local
-                  : localstorage();
-
-/**
- * Colors.
- */
-
-exports.colors = [
-  'lightseagreen',
-  'forestgreen',
-  'goldenrod',
-  'dodgerblue',
-  'darkorchid',
-  'crimson'
-];
-
-/**
- * Currently only WebKit-based Web Inspectors, Firefox >= v31,
- * and the Firebug extension (any Firefox version) are known
- * to support "%c" CSS customizations.
- *
- * TODO: add a `localStorage` variable to explicitly enable/disable colors
- */
-
-function useColors() {
-  // NB: In an Electron preload script, document will be defined but not fully
-  // initialized. Since we know we're in Chrome, we'll just detect this case
-  // explicitly
-  if (typeof window !== 'undefined' && window && typeof window.process !== 'undefined' && window.process.type === 'renderer') {
-    return true;
-  }
-
-  // is webkit? http://stackoverflow.com/a/16459606/376773
-  // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
-  return (typeof document !== 'undefined' && document && 'WebkitAppearance' in document.documentElement.style) ||
-    // is firebug? http://stackoverflow.com/a/398120/376773
-    (typeof window !== 'undefined' && window && window.console && (console.firebug || (console.exception && console.table))) ||
-    // is firefox >= v31?
-    // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
-    (typeof navigator !== 'undefined' && navigator && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
-    // double check webkit in userAgent just in case we are in a worker
-    (typeof navigator !== 'undefined' && navigator && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
-}
-
-/**
- * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
- */
-
-exports.formatters.j = function(v) {
-  try {
-    return JSON.stringify(v);
-  } catch (err) {
-    return '[UnexpectedJSONParseError]: ' + err.message;
-  }
-};
-
-
-/**
- * Colorize log arguments if enabled.
- *
- * @api public
- */
-
-function formatArgs(args) {
-  var useColors = this.useColors;
-
-  args[0] = (useColors ? '%c' : '')
-    + this.namespace
-    + (useColors ? ' %c' : ' ')
-    + args[0]
-    + (useColors ? '%c ' : ' ')
-    + '+' + exports.humanize(this.diff);
-
-  if (!useColors) return;
-
-  var c = 'color: ' + this.color;
-  args.splice(1, 0, c, 'color: inherit')
-
-  // the final "%c" is somewhat tricky, because there could be other
-  // arguments passed either before or after the %c, so we need to
-  // figure out the correct index to insert the CSS into
-  var index = 0;
-  var lastC = 0;
-  args[0].replace(/%[a-zA-Z%]/g, function(match) {
-    if ('%%' === match) return;
-    index++;
-    if ('%c' === match) {
-      // we only are interested in the *last* %c
-      // (the user may have provided their own)
-      lastC = index;
-    }
-  });
-
-  args.splice(lastC, 0, c);
-}
-
-/**
- * Invokes `console.log()` when available.
- * No-op when `console.log` is not a "function".
- *
- * @api public
- */
-
-function log() {
-  // this hackery is required for IE8/9, where
-  // the `console.log` function doesn't have 'apply'
-  return 'object' === typeof console
-    && console.log
-    && Function.prototype.apply.call(console.log, console, arguments);
-}
-
-/**
- * Save `namespaces`.
- *
- * @param {String} namespaces
- * @api private
- */
-
-function save(namespaces) {
-  try {
-    if (null == namespaces) {
-      exports.storage.removeItem('debug');
-    } else {
-      exports.storage.debug = namespaces;
-    }
-  } catch(e) {}
-}
-
-/**
- * Load `namespaces`.
- *
- * @return {String} returns the previously persisted debug modes
- * @api private
- */
-
-function load() {
-  try {
-    return exports.storage.debug;
-  } catch(e) {}
-
-  // If debug isn't set in LS, and we're in Electron, try to load $DEBUG
-  if (typeof process !== 'undefined' && 'env' in process) {
-    return process.env.DEBUG;
-  }
-}
-
-/**
- * Enable namespaces listed in `localStorage.debug` initially.
- */
-
-exports.enable(load());
-
-/**
- * Localstorage attempts to return the localstorage.
- *
- * This is necessary because safari throws
- * when a user disables cookies/localstorage
- * and you attempt to access it.
- *
- * @return {LocalStorage}
- * @api private
- */
-
-function localstorage() {
-  try {
-    return window.localStorage;
-  } catch (e) {}
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/connect/node_modules/debug/src/debug.js
----------------------------------------------------------------------
diff --git a/node_modules/connect/node_modules/debug/src/debug.js b/node_modules/connect/node_modules/debug/src/debug.js
deleted file mode 100644
index d5d6d16..0000000
--- a/node_modules/connect/node_modules/debug/src/debug.js
+++ /dev/null
@@ -1,202 +0,0 @@
-
-/**
- * This is the common logic for both the Node.js and web browser
- * implementations of `debug()`.
- *
- * Expose `debug()` as the module.
- */
-
-exports = module.exports = createDebug.debug = createDebug['default'] = createDebug;
-exports.coerce = coerce;
-exports.disable = disable;
-exports.enable = enable;
-exports.enabled = enabled;
-exports.humanize = require('ms');
-
-/**
- * The currently active debug mode names, and names to skip.
- */
-
-exports.names = [];
-exports.skips = [];
-
-/**
- * Map of special "%n" handling functions, for the debug "format" argument.
- *
- * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
- */
-
-exports.formatters = {};
-
-/**
- * Previous log timestamp.
- */
-
-var prevTime;
-
-/**
- * Select a color.
- * @param {String} namespace
- * @return {Number}
- * @api private
- */
-
-function selectColor(namespace) {
-  var hash = 0, i;
-
-  for (i in namespace) {
-    hash  = ((hash << 5) - hash) + namespace.charCodeAt(i);
-    hash |= 0; // Convert to 32bit integer
-  }
-
-  return exports.colors[Math.abs(hash) % exports.colors.length];
-}
-
-/**
- * Create a debugger with the given `namespace`.
- *
- * @param {String} namespace
- * @return {Function}
- * @api public
- */
-
-function createDebug(namespace) {
-
-  function debug() {
-    // disabled?
-    if (!debug.enabled) return;
-
-    var self = debug;
-
-    // set `diff` timestamp
-    var curr = +new Date();
-    var ms = curr - (prevTime || curr);
-    self.diff = ms;
-    self.prev = prevTime;
-    self.curr = curr;
-    prevTime = curr;
-
-    // turn the `arguments` into a proper Array
-    var args = new Array(arguments.length);
-    for (var i = 0; i < args.length; i++) {
-      args[i] = arguments[i];
-    }
-
-    args[0] = exports.coerce(args[0]);
-
-    if ('string' !== typeof args[0]) {
-      // anything else let's inspect with %O
-      args.unshift('%O');
-    }
-
-    // apply any `formatters` transformations
-    var index = 0;
-    args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {
-      // if we encounter an escaped % then don't increase the array index
-      if (match === '%%') return match;
-      index++;
-      var formatter = exports.formatters[format];
-      if ('function' === typeof formatter) {
-        var val = args[index];
-        match = formatter.call(self, val);
-
-        // now we need to remove `args[index]` since it's inlined in the `format`
-        args.splice(index, 1);
-        index--;
-      }
-      return match;
-    });
-
-    // apply env-specific formatting (colors, etc.)
-    exports.formatArgs.call(self, args);
-
-    var logFn = debug.log || exports.log || console.log.bind(console);
-    logFn.apply(self, args);
-  }
-
-  debug.namespace = namespace;
-  debug.enabled = exports.enabled(namespace);
-  debug.useColors = exports.useColors();
-  debug.color = selectColor(namespace);
-
-  // env-specific initialization logic for debug instances
-  if ('function' === typeof exports.init) {
-    exports.init(debug);
-  }
-
-  return debug;
-}
-
-/**
- * Enables a debug mode by namespaces. This can include modes
- * separated by a colon and wildcards.
- *
- * @param {String} namespaces
- * @api public
- */
-
-function enable(namespaces) {
-  exports.save(namespaces);
-
-  exports.names = [];
-  exports.skips = [];
-
-  var split = (namespaces || '').split(/[\s,]+/);
-  var len = split.length;
-
-  for (var i = 0; i < len; i++) {
-    if (!split[i]) continue; // ignore empty strings
-    namespaces = split[i].replace(/\*/g, '.*?');
-    if (namespaces[0] === '-') {
-      exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));
-    } else {
-      exports.names.push(new RegExp('^' + namespaces + '$'));
-    }
-  }
-}
-
-/**
- * Disable debug output.
- *
- * @api public
- */
-
-function disable() {
-  exports.enable('');
-}
-
-/**
- * Returns true if the given mode name is enabled, false otherwise.
- *
- * @param {String} name
- * @return {Boolean}
- * @api public
- */
-
-function enabled(name) {
-  var i, len;
-  for (i = 0, len = exports.skips.length; i < len; i++) {
-    if (exports.skips[i].test(name)) {
-      return false;
-    }
-  }
-  for (i = 0, len = exports.names.length; i < len; i++) {
-    if (exports.names[i].test(name)) {
-      return true;
-    }
-  }
-  return false;
-}
-
-/**
- * Coerce `val`.
- *
- * @param {Mixed} val
- * @return {Mixed}
- * @api private
- */
-
-function coerce(val) {
-  if (val instanceof Error) return val.stack || val.message;
-  return val;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/connect/node_modules/debug/src/index.js
----------------------------------------------------------------------
diff --git a/node_modules/connect/node_modules/debug/src/index.js b/node_modules/connect/node_modules/debug/src/index.js
deleted file mode 100644
index e12cf4d..0000000
--- a/node_modules/connect/node_modules/debug/src/index.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * Detect Electron renderer process, which is node, but we should
- * treat as a browser.
- */
-
-if (typeof process !== 'undefined' && process.type === 'renderer') {
-  module.exports = require('./browser.js');
-} else {
-  module.exports = require('./node.js');
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/connect/node_modules/debug/src/node.js
----------------------------------------------------------------------
diff --git a/node_modules/connect/node_modules/debug/src/node.js b/node_modules/connect/node_modules/debug/src/node.js
deleted file mode 100644
index 4fa564b..0000000
--- a/node_modules/connect/node_modules/debug/src/node.js
+++ /dev/null
@@ -1,241 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var tty = require('tty');
-var util = require('util');
-
-/**
- * This is the Node.js implementation of `debug()`.
- *
- * Expose `debug()` as the module.
- */
-
-exports = module.exports = require('./debug');
-exports.init = init;
-exports.log = log;
-exports.formatArgs = formatArgs;
-exports.save = save;
-exports.load = load;
-exports.useColors = useColors;
-
-/**
- * Colors.
- */
-
-exports.colors = [6, 2, 3, 4, 5, 1];
-
-/**
- * Build up the default `inspectOpts` object from the environment variables.
- *
- *   $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js
- */
-
-exports.inspectOpts = Object.keys(process.env).filter(function (key) {
-  return /^debug_/i.test(key);
-}).reduce(function (obj, key) {
-  // camel-case
-  var prop = key
-    .substring(6)
-    .toLowerCase()
-    .replace(/_([a-z])/, function (_, k) { return k.toUpperCase() });
-
-  // coerce string value into JS value
-  var val = process.env[key];
-  if (/^(yes|on|true|enabled)$/i.test(val)) val = true;
-  else if (/^(no|off|false|disabled)$/i.test(val)) val = false;
-  else if (val === 'null') val = null;
-  else val = Number(val);
-
-  obj[prop] = val;
-  return obj;
-}, {});
-
-/**
- * The file descriptor to write the `debug()` calls to.
- * Set the `DEBUG_FD` env variable to override with another value. i.e.:
- *
- *   $ DEBUG_FD=3 node script.js 3>debug.log
- */
-
-var fd = parseInt(process.env.DEBUG_FD, 10) || 2;
-
-if (1 !== fd && 2 !== fd) {
-  util.deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')()
-}
-
-var stream = 1 === fd ? process.stdout :
-             2 === fd ? process.stderr :
-             createWritableStdioStream(fd);
-
-/**
- * Is stdout a TTY? Colored output is enabled when `true`.
- */
-
-function useColors() {
-  return 'colors' in exports.inspectOpts
-    ? Boolean(exports.inspectOpts.colors)
-    : tty.isatty(fd);
-}
-
-/**
- * Map %o to `util.inspect()`, all on a single line.
- */
-
-exports.formatters.o = function(v) {
-  this.inspectOpts.colors = this.useColors;
-  return util.inspect(v, this.inspectOpts)
-    .replace(/\s*\n\s*/g, ' ');
-};
-
-/**
- * Map %o to `util.inspect()`, allowing multiple lines if needed.
- */
-
-exports.formatters.O = function(v) {
-  this.inspectOpts.colors = this.useColors;
-  return util.inspect(v, this.inspectOpts);
-};
-
-/**
- * Adds ANSI color escape codes if enabled.
- *
- * @api public
- */
-
-function formatArgs(args) {
-  var name = this.namespace;
-  var useColors = this.useColors;
-
-  if (useColors) {
-    var c = this.color;
-    var prefix = '  \u001b[3' + c + ';1m' + name + ' ' + '\u001b[0m';
-
-    args[0] = prefix + args[0].split('\n').join('\n' + prefix);
-    args.push('\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\u001b[0m');
-  } else {
-    args[0] = new Date().toUTCString()
-      + ' ' + name + ' ' + args[0];
-  }
-}
-
-/**
- * Invokes `util.format()` with the specified arguments and writes to `stream`.
- */
-
-function log() {
-  return stream.write(util.format.apply(util, arguments) + '\n');
-}
-
-/**
- * Save `namespaces`.
- *
- * @param {String} namespaces
- * @api private
- */
-
-function save(namespaces) {
-  if (null == namespaces) {
-    // If you set a process.env field to null or undefined, it gets cast to the
-    // string 'null' or 'undefined'. Just delete instead.
-    delete process.env.DEBUG;
-  } else {
-    process.env.DEBUG = namespaces;
-  }
-}
-
-/**
- * Load `namespaces`.
- *
- * @return {String} returns the previously persisted debug modes
- * @api private
- */
-
-function load() {
-  return process.env.DEBUG;
-}
-
-/**
- * Copied from `node/src/node.js`.
- *
- * XXX: It's lame that node doesn't expose this API out-of-the-box. It also
- * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.
- */
-
-function createWritableStdioStream (fd) {
-  var stream;
-  var tty_wrap = process.binding('tty_wrap');
-
-  // Note stream._type is used for test-module-load-list.js
-
-  switch (tty_wrap.guessHandleType(fd)) {
-    case 'TTY':
-      stream = new tty.WriteStream(fd);
-      stream._type = 'tty';
-
-      // Hack to have stream not keep the event loop alive.
-      // See https://github.com/joyent/node/issues/1726
-      if (stream._handle && stream._handle.unref) {
-        stream._handle.unref();
-      }
-      break;
-
-    case 'FILE':
-      var fs = require('fs');
-      stream = new fs.SyncWriteStream(fd, { autoClose: false });
-      stream._type = 'fs';
-      break;
-
-    case 'PIPE':
-    case 'TCP':
-      var net = require('net');
-      stream = new net.Socket({
-        fd: fd,
-        readable: false,
-        writable: true
-      });
-
-      // FIXME Should probably have an option in net.Socket to create a
-      // stream from an existing fd which is writable only. But for now
-      // we'll just add this hack and set the `readable` member to false.
-      // Test: ./node test/fixtures/echo.js < /etc/passwd
-      stream.readable = false;
-      stream.read = null;
-      stream._type = 'pipe';
-
-      // FIXME Hack to have stream not keep the event loop alive.
-      // See https://github.com/joyent/node/issues/1726
-      if (stream._handle && stream._handle.unref) {
-        stream._handle.unref();
-      }
-      break;
-
-    default:
-      // Probably an error on in uv_guess_handle()
-      throw new Error('Implement me. Unknown stream file type!');
-  }
-
-  // For supporting legacy API we put the FD here.
-  stream.fd = fd;
-
-  stream._isStdio = true;
-
-  return stream;
-}
-
-/**
- * Init logic for `debug` instances.
- *
- * Create a new `inspectOpts` object in case `useColors` is set
- * differently for a particular `debug` instance.
- */
-
-function init (debug) {
-  debug.inspectOpts = util._extend({}, exports.inspectOpts);
-}
-
-/**
- * Enable namespaces listed in `process.env.DEBUG` initially.
- */
-
-exports.enable(load());

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/connect/package.json
----------------------------------------------------------------------
diff --git a/node_modules/connect/package.json b/node_modules/connect/package.json
deleted file mode 100644
index 920c257..0000000
--- a/node_modules/connect/package.json
+++ /dev/null
@@ -1,136 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "connect@3.x",
-        "scope": null,
-        "escapedName": "connect",
-        "name": "connect",
-        "rawSpec": "3.x",
-        "spec": ">=3.0.0 <4.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/hexo-server"
-    ]
-  ],
-  "_from": "connect@>=3.0.0 <4.0.0",
-  "_id": "connect@3.6.0",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/connect",
-  "_nodeVersion": "4.7.3",
-  "_npmOperationalInternal": {
-    "host": "packages-18-east.internal.npmjs.com",
-    "tmp": "tmp/connect-3.6.0.tgz_1487391440284_0.8698382510337979"
-  },
-  "_npmUser": {
-    "name": "dougwilson",
-    "email": "doug@somethingdoug.com"
-  },
-  "_npmVersion": "2.15.11",
-  "_phantomChildren": {
-    "ms": "0.7.2"
-  },
-  "_requested": {
-    "raw": "connect@3.x",
-    "scope": null,
-    "escapedName": "connect",
-    "name": "connect",
-    "rawSpec": "3.x",
-    "spec": ">=3.0.0 <4.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/hexo-server"
-  ],
-  "_resolved": "https://registry.npmjs.org/connect/-/connect-3.6.0.tgz",
-  "_shasum": "f09a4f7dcd17324b663b725c815bdb1c4158a46e",
-  "_shrinkwrap": null,
-  "_spec": "connect@3.x",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/hexo-server",
-  "author": {
-    "name": "TJ Holowaychuk",
-    "email": "tj@vision-media.ca",
-    "url": "http://tjholowaychuk.com"
-  },
-  "bugs": {
-    "url": "https://github.com/senchalabs/connect/issues"
-  },
-  "contributors": [
-    {
-      "name": "Douglas Christopher Wilson",
-      "email": "doug@somethingdoug.com"
-    },
-    {
-      "name": "Jonathan Ong",
-      "email": "me@jongleberry.com"
-    },
-    {
-      "name": "Tim Caswell",
-      "email": "tim@creationix.com"
-    }
-  ],
-  "dependencies": {
-    "debug": "2.6.1",
-    "finalhandler": "1.0.0",
-    "parseurl": "~1.3.1",
-    "utils-merge": "1.0.0"
-  },
-  "description": "High performance middleware framework",
-  "devDependencies": {
-    "istanbul": "0.4.5",
-    "mocha": "3.2.0",
-    "supertest": "2.0.0"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "f09a4f7dcd17324b663b725c815bdb1c4158a46e",
-    "tarball": "https://registry.npmjs.org/connect/-/connect-3.6.0.tgz"
-  },
-  "engines": {
-    "node": ">= 0.10.0"
-  },
-  "files": [
-    "LICENSE",
-    "HISTORY.md",
-    "README.md",
-    "index.js"
-  ],
-  "gitHead": "2fa751469f1298913d1f66ccf00b00b37be9f77b",
-  "homepage": "https://github.com/senchalabs/connect#readme",
-  "keywords": [
-    "framework",
-    "web",
-    "middleware",
-    "connect",
-    "rack"
-  ],
-  "license": "MIT",
-  "maintainers": [
-    {
-      "name": "dougwilson",
-      "email": "doug@somethingdoug.com"
-    },
-    {
-      "name": "jongleberry",
-      "email": "jonathanrichardong@gmail.com"
-    },
-    {
-      "name": "tjholowaychuk",
-      "email": "tj@vision-media.ca"
-    }
-  ],
-  "name": "connect",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/senchalabs/connect.git"
-  },
-  "scripts": {
-    "test": "mocha --require test/support/env --reporter spec --bail --check-leaks test/",
-    "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --require test/support/env --reporter dot --check-leaks test/",
-    "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --require test/support/env --reporter spec --check-leaks test/"
-  },
-  "version": "3.6.0"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/core-js/CHANGELOG.md
----------------------------------------------------------------------
diff --git a/node_modules/core-js/CHANGELOG.md b/node_modules/core-js/CHANGELOG.md
deleted file mode 100644
index 6fbcbb4..0000000
--- a/node_modules/core-js/CHANGELOG.md
+++ /dev/null
@@ -1,409 +0,0 @@
-## Changelog
-##### 1.2.7 [LEGACY] - 2016.07.18
-* some fixes for issues like #159, #186, #194, #207
-
-##### 1.2.6 - 2015.11.09
-* reject with `TypeError` on attempt resolve promise itself
-* correct behavior with broken `Promise` subclass constructors / methods
-* added `Promise`-based fallback for microtask
-* fixed V8 and FF `Array#{values, @@iterator}.name`
-* fixed IE7- `[1, 2].join(undefined) -> '1,2'`
-* some other fixes / improvements / optimizations
-
-##### 1.2.5 - 2015.11.02
-* some more `Number` constructor fixes:
-  * fixed V8 ~ Node 0.8 bug: `Number('+0x1')` should be `NaN`
-  * fixed `Number(' 0b1\n')` case, should be `1`
-  * fixed `Number()` case, should be `0`
-
-##### 1.2.4 - 2015.11.01
-* fixed `Number('0b12') -> NaN` case in the shim
-* fixed V8 ~ Chromium 40- bug - `Weak(Map|Set)#{delete, get, has}` should not throw errors [#124](https://github.com/zloirock/core-js/issues/124)
-* some other fixes and optimizations
-
-##### 1.2.3 - 2015.10.23
-* fixed some problems related old V8 bug `Object('a').propertyIsEnumerable(0) // => false`, for example, `Object.assign({}, 'qwe')` from the last release
-* fixed `.name` property and `Function#toString` conversion some polyfilled methods
-* fixed `Math.imul` arity in Safari 8-
-
-##### 1.2.2 - 2015.10.18
-* improved optimisations for V8
-* fixed build process from external packages, [#120](https://github.com/zloirock/core-js/pull/120)
-* one more `Object.{assign, values, entries}` fix for [**very** specific case](https://github.com/ljharb/proposal-object-values-entries/issues/5)
-
-##### 1.2.1 - 2015.10.02
-* replaced fix `JSON.stringify` + `Symbol` behavior from `.toJSON` method to wrapping `JSON.stringify` - little more correct, [compat-table/642](https://github.com/kangax/compat-table/pull/642)
-* fixed typo which broke tasks scheduler in WebWorkers in old FF, [#114](https://github.com/zloirock/core-js/pull/114)
-
-##### 1.2.0 - 2015.09.27
-* added browser [`Promise` rejection hook](#unhandled-rejection-tracking), [#106](https://github.com/zloirock/core-js/issues/106)
-* added correct [`IsRegExp`](http://www.ecma-international.org/ecma-262/6.0/#sec-isregexp) logic to [`String#{includes, startsWith, endsWith}`](https://github.com/zloirock/core-js/#ecmascript-6-string) and [`RegExp` constructor](https://github.com/zloirock/core-js/#ecmascript-6-regexp), `@@match` case, [example](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/match#Disabling_the_isRegExp_check)
-* updated [`String#leftPad`](https://github.com/zloirock/core-js/#ecmascript-7) [with proposal](https://github.com/ljharb/proposal-string-pad-left-right/issues/6): string filler truncated from the right side
-* replaced V8 [`Object.assign`](https://github.com/zloirock/core-js/#ecmascript-6-object) - its properties order not only [incorrect](https://github.com/sindresorhus/object-assign/issues/22), it is non-deterministic and it causes some problems
-* fixed behavior with deleted in getters properties for `Object.{`[`assign`](https://github.com/zloirock/core-js/#ecmascript-6-object)`, `[`entries, values`](https://github.com/zloirock/core-js/#ecmascript-7)`}`, [example](http://goo.gl/iQE01c)
-* fixed [`Math.sinh`](https://github.com/zloirock/core-js/#ecmascript-6-math) with very small numbers in V8 near Chromium 38
-* some other fixes and optimizations
-
-##### 1.1.4 - 2015.09.05
-* fixed support symbols in FF34-35 [`Object.assign`](https://github.com/zloirock/core-js/#ecmascript-6-object)
-* fixed [collections iterators](https://github.com/zloirock/core-js/#ecmascript-6-iterators) in FF25-26
-* fixed non-generic WebKit [`Array.of`](https://github.com/zloirock/core-js/#ecmascript-6-array)
-* some other fixes and optimizations
-
-##### 1.1.3 - 2015.08.29
-* fixed support Node.js domains in [`Promise`](https://github.com/zloirock/core-js/#ecmascript-6-promise), [#103](https://github.com/zloirock/core-js/issues/103)
-
-##### 1.1.2 - 2015.08.28
-* added `toJSON` method to [`Symbol`](https://github.com/zloirock/core-js/#ecmascript-6-symbol) polyfill and to MS Edge implementation for expected `JSON.stringify` result w/o patching this method
-* replaced [`Reflect.construct`](https://github.com/zloirock/core-js/#ecmascript-6-reflect) implementations w/o correct support third argument
-* fixed `global` detection with changed `document.domain` in ~IE8, [#100](https://github.com/zloirock/core-js/issues/100)
-
-##### 1.1.1 - 2015.08.20
-* added more correct microtask implementation for [`Promise`](#ecmascript-6-promise)
-
-##### 1.1.0 - 2015.08.17
-* updated [string padding](https://github.com/zloirock/core-js/#ecmascript-7) to [actual proposal](https://github.com/ljharb/proposal-string-pad-left-right) - renamed, minor internal changes:
-  * `String#lpad` -> `String#padLeft`
-  * `String#rpad` -> `String#padRight`
-* added [string trim functions](#ecmascript-7) - [proposal](https://github.com/sebmarkbage/ecmascript-string-left-right-trim), defacto standard - required only for IE11- and fixed for some old engines:
-  * `String#trimLeft`
-  * `String#trimRight`
-* [`String#trim`](https://github.com/zloirock/core-js/#ecmascript-6-string) fixed for some engines by es6 spec and moved from `es5` to single `es6` module
-* splitted [`es6.object.statics-accept-primitives`](https://github.com/zloirock/core-js/#ecmascript-6-object)
-* caps for `freeze`-family `Object` methods moved from `es5` to `es6` namespace and joined with [es6 wrappers](https://github.com/zloirock/core-js/#ecmascript-6-object)
-* `es5` [namespace](https://github.com/zloirock/core-js/#commonjs) also includes modules, moved to `es6` namespace - you can use it as before
-* increased `MessageChannel` priority in `$.task`, [#95](https://github.com/zloirock/core-js/issues/95)
-* does not get `global.Symbol` on each getting iterator, if you wanna use alternative `Symbol` shim - add it before `core-js`
-* [`Reflect.construct`](https://github.com/zloirock/core-js/#ecmascript-6-reflect) optimized and fixed for some cases
-* simplified [`Reflect.enumerate`](https://github.com/zloirock/core-js/#ecmascript-6-reflect), see [this question](https://esdiscuss.org/topic/question-about-enumerate-and-property-decision-timing)
-* some corrections in [`Math.acosh`](https://github.com/zloirock/core-js/#ecmascript-6-math)
-* fixed [`Math.imul`](https://github.com/zloirock/core-js/#ecmascript-6-math) for old WebKit
-* some fixes in string / RegExp [well-known symbols](https://github.com/zloirock/core-js/#ecmascript-6-regexp) logic
-* some other fixes and optimizations
-
-##### 1.0.1 - 2015.07.31
-* some fixes for final MS Edge, replaced broken native `Reflect.defineProperty`
-* some minor fixes and optimizations
-* changed compression `client/*.min.js` options for safe `Function#name` and `Function#length`, should be fixed [#92](https://github.com/zloirock/core-js/issues/92)
-
-##### 1.0.0 - 2015.07.22
-* added logic for [well-known symbols](https://github.com/zloirock/core-js/#ecmascript-6-regexp):
-  * `Symbol.match`
-  * `Symbol.replace`
-  * `Symbol.split`
-  * `Symbol.search`
-* actualized and optimized work with iterables:
-  * optimized  [`Map`, `Set`, `WeakMap`, `WeakSet` constructors](https://github.com/zloirock/core-js/#ecmascript-6-collections), [`Promise.all`, `Promise.race`](https://github.com/zloirock/core-js/#ecmascript-6-promise) for default `Array Iterator`
-  * optimized  [`Array.from`](https://github.com/zloirock/core-js/#ecmascript-6-array) for default `Array Iterator`
-  * added [`core.getIteratorMethod`](https://github.com/zloirock/core-js/#ecmascript-6-iterators) helper
-* uses enumerable properties in shimmed instances - collections, iterators, etc for optimize performance
-* added support native constructors to [`Reflect.construct`](https://github.com/zloirock/core-js/#ecmascript-6-reflect) with 2 arguments
-* added support native constructors to [`Function#bind`](https://github.com/zloirock/core-js/#ecmascript-5) shim with `new`
-* removed obsolete `.clear` methods native [`Weak`-collections](https://github.com/zloirock/core-js/#ecmascript-6-collections)
-* maximum modularity, reduced minimal custom build size, separated into submodules:
-  * [`es6.reflect`](https://github.com/zloirock/core-js/#ecmascript-6-reflect)
-  * [`es6.regexp`](https://github.com/zloirock/core-js/#ecmascript-6-regexp)
-  * [`es6.math`](https://github.com/zloirock/core-js/#ecmascript-6-math)
-  * [`es6.number`](https://github.com/zloirock/core-js/#ecmascript-6-number)
-  * [`es7.object.to-array`](https://github.com/zloirock/core-js/#ecmascript-7)
-  * [`core.object`](https://github.com/zloirock/core-js/#object)
-  * [`core.string`](https://github.com/zloirock/core-js/#escaping-html)
-  * [`core.iter-helpers`](https://github.com/zloirock/core-js/#ecmascript-6-iterators)
-  * internal modules (`$`, `$.iter`, etc)
-* many other optimizations
-* final cleaning non-standard features
-  * moved `$for` to [separate library](https://github.com/zloirock/forof). This work for syntax - `for-of` loop and comprehensions
-  * moved `Date#{format, formatUTC}` to [separate library](https://github.com/zloirock/dtf). Standard way for this - `ECMA-402`
-  * removed `Math` methods from `Number.prototype`. Slight sugar for simple `Math` methods calling
-  * removed `{Array#, Array, Dict}.turn`
-  * removed `core.global`
-* uses `ToNumber` instead of `ToLength` in [`Number Iterator`](https://github.com/zloirock/core-js/#number-iterator), `Array.from(2.5)` will be `[0, 1, 2]` instead of `[0, 1]`
-* fixed [#85](https://github.com/zloirock/core-js/issues/85) - invalid `Promise` unhandled rejection message in nested `setTimeout`
-* fixed [#86](https://github.com/zloirock/core-js/issues/86) - support FF extensions
-* fixed [#89](https://github.com/zloirock/core-js/issues/89) - behavior `Number` constructor in strange case
-
-##### 0.9.18 - 2015.06.17
-* removed `/` from [`RegExp.escape`](https://github.com/zloirock/core-js/#ecmascript-7) escaped characters
-
-##### 0.9.17 - 2015.06.14
-* updated [`RegExp.escape`](https://github.com/zloirock/core-js/#ecmascript-7) to the [latest proposal](https://github.com/benjamingr/RexExp.escape)
-* fixed conflict with webpack dev server + IE buggy behavior
-
-##### 0.9.16 - 2015.06.11
-* more correct order resolving thenable in [`Promise`](https://github.com/zloirock/core-js/#ecmascript-6-promise) polyfill
-* uses polyfill instead of [buggy V8 `Promise`](https://github.com/zloirock/core-js/issues/78)
-
-##### 0.9.15 - 2015.06.09
-* [collections](https://github.com/zloirock/core-js/#ecmascript-6-collections) from `library` version return wrapped native instances
-* fixed collections prototype methods in `library` version
-* optimized [`Math.hypot`](https://github.com/zloirock/core-js/#ecmascript-6-math)
-
-##### 0.9.14 - 2015.06.04
-* updated [`Promise.resolve` behavior](https://esdiscuss.org/topic/fixing-promise-resolve)
-* added fallback for IE11 buggy `Object.getOwnPropertyNames` + iframe
-* some other fixes
-
-##### 0.9.13 - 2015.05.25
-* added fallback for [`Symbol` polyfill](https://github.com/zloirock/core-js/#ecmascript-6-symbol) for old Android
-* some other fixes
-
-##### 0.9.12 - 2015.05.24
-* different instances `core-js` should use / recognize the same symbols
-* some fixes
-
-##### 0.9.11 - 2015.05.18
-* simplified [custom build](https://github.com/zloirock/core-js/#custom-build)
-  * add custom build js api
-  * added `grunt-cli` to `devDependencies` for `npm run grunt`
-* some fixes
-
-##### 0.9.10 - 2015.05.16
-* wrapped `Function#toString` for correct work wrapped methods / constructors with methods similar to the [`lodash` `isNative`](https://github.com/lodash/lodash/issues/1197)
-* added proto versions of methods to export object in `default` version for consistency with `library` version
-
-##### 0.9.9 - 2015.05.14
-* wrapped `Object#propertyIsEnumerable` for [`Symbol` polyfill](https://github.com/zloirock/core-js/#ecmascript-6-symbol)
-* [added proto versions of methods to `library` for ES7 bind syntax](https://github.com/zloirock/core-js/issues/65)
-* some other fixes
-
-##### 0.9.8 - 2015.05.12
-* fixed [`Math.hypot`](https://github.com/zloirock/core-js/#ecmascript-6-math) with negative arguments
-* added `Object#toString.toString` as fallback for [`lodash` `isNative`](https://github.com/lodash/lodash/issues/1197)
-
-##### 0.9.7 - 2015.05.07
-* added [support DOM collections](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice#Streamlining_cross-browser_behavior) to IE8- `Array#slice`
-
-##### 0.9.6 - 2015.05.01
-* added [`String#lpad`, `String#rpad`](https://github.com/zloirock/core-js/#ecmascript-7)
-
-##### 0.9.5 - 2015.04.30
-* added cap for `Function#@@hasInstance`
-* some fixes and optimizations
-
-##### 0.9.4 - 2015.04.27
-* fixed `RegExp` constructor
-
-##### 0.9.3 - 2015.04.26
-* some fixes and optimizations
-
-##### 0.9.2 - 2015.04.25
-* more correct [`Promise`](https://github.com/zloirock/core-js/#ecmascript-6-promise) unhandled rejection tracking and resolving / rejection priority
-
-##### 0.9.1 - 2015.04.25
-* fixed `__proto__`-based [`Promise`](https://github.com/zloirock/core-js/#ecmascript-6-promise) subclassing in some environments
-
-##### 0.9.0 - 2015.04.24
-* added correct [symbols](https://github.com/zloirock/core-js/#ecmascript-6-symbol) descriptors
-  * fixed behavior `Object.{assign, create, defineProperty, defineProperties, getOwnPropertyDescriptor, getOwnPropertyDescriptors}` with symbols
-  * added [single entry points](https://github.com/zloirock/core-js/#commonjs) for `Object.{create, defineProperty, defineProperties}`
-* added [`Map#toJSON`](https://github.com/zloirock/core-js/#ecmascript-7)
-* removed non-standard methods `Object#[_]` and `Function#only` - they solves syntax problems, but now in compilers available arrows and ~~in near future will be available~~ [available](http://babeljs.io/blog/2015/05/14/function-bind/) [bind syntax](https://github.com/zenparsing/es-function-bind)
-* removed non-standard undocumented methods `Symbol.{pure, set}`
-* some fixes and internal changes
-
-##### 0.8.4 - 2015.04.18
-* uses `webpack` instead of `browserify` for browser builds - more compression-friendly result
-
-##### 0.8.3 - 2015.04.14
-* fixed `Array` statics with single entry points
-
-##### 0.8.2 - 2015.04.13
-* [`Math.fround`](https://github.com/zloirock/core-js/#ecmascript-6-math) now also works in IE9-
-* added [`Set#toJSON`](https://github.com/zloirock/core-js/#ecmascript-7)
-* some optimizations and fixes
-
-##### 0.8.1 - 2015.04.03
-* fixed `Symbol.keyFor`
-
-##### 0.8.0 - 2015.04.02
-* changed [CommonJS API](https://github.com/zloirock/core-js/#commonjs)
-* splitted and renamed some modules
-* added support ES3 environment (ES5 polyfill) to **all** default versions - size increases slightly (+ ~4kb w/o gzip), many issues disappear, if you don't need it - [simply include only required namespaces / features / modules](https://github.com/zloirock/core-js/#commonjs)
-* removed [abstract references](https://github.com/zenparsing/es-abstract-refs) support - proposal has been superseded =\
-* [`$for.isIterable` -> `core.isIterable`, `$for.getIterator` -> `core.getIterator`](https://github.com/zloirock/core-js/#ecmascript-6-iterators), temporary available in old namespace
-* fixed iterators support in v8 `Promise.all` and `Promise.race`
-* many other fixes
-
-##### 0.7.2 - 2015.03.09
-* some fixes
-
-##### 0.7.1 - 2015.03.07
-* some fixes
-
-##### 0.7.0 - 2015.03.06
-* rewritten and splitted into [CommonJS modules](https://github.com/zloirock/core-js/#commonjs)
-
-##### 0.6.1 - 2015.02.24
-* fixed support [`Object.defineProperty`](https://github.com/zloirock/core-js/#ecmascript-5) with accessors on DOM elements on IE8
-
-##### 0.6.0 - 2015.02.23
-* added support safe closing iteration - calling `iterator.return` on abort iteration, if it exists
-* added basic support [`Promise`](https://github.com/zloirock/core-js/#ecmascript-6-promise) unhandled rejection tracking in shim
-* added [`Object.getOwnPropertyDescriptors`](https://github.com/zloirock/core-js/#ecmascript-7)
-* removed `console` cap - creates too many problems - you can use [`core.log`](https://github.com/zloirock/core-js/#console) module as that
-* restructuring [namespaces](https://github.com/zloirock/core-js/#custom-build)
-* some fixes
-
-##### 0.5.4 - 2015.02.15
-* some fixes
-
-##### 0.5.3 - 2015.02.14
-* added [support binary and octal literals](https://github.com/zloirock/core-js/#ecmascript-6-number) to `Number` constructor
-* added [`Date#toISOString`](https://github.com/zloirock/core-js/#ecmascript-5)
-
-##### 0.5.2 - 2015.02.10
-* some fixes
-
-##### 0.5.1 - 2015.02.09
-* some fixes
-
-##### 0.5.0 - 2015.02.08
-* systematization of modules
-* splitted [`es6` module](https://github.com/zloirock/core-js/#ecmascript-6)
-* splitted [`console` module](https://github.com/zloirock/core-js/#console): `web.console` - only cap for missing methods, `core.log` - bound methods & additional features
-* added [`delay` method](https://github.com/zloirock/core-js/#delay)
-* some fixes
-
-##### 0.4.10 - 2015.01.28
-* [`Object.getOwnPropertySymbols`](https://github.com/zloirock/core-js/#ecmascript-6-symbol) polyfill returns array of wrapped keys
-
-##### 0.4.9 - 2015.01.27
-* FF20-24 fix
-
-##### 0.4.8 - 2015.01.25
-* some [collections](https://github.com/zloirock/core-js/#ecmascript-6-collections) fixes
-
-##### 0.4.7 - 2015.01.25
-* added support frozen objects as [collections](https://github.com/zloirock/core-js/#ecmascript-6-collections) keys
-
-##### 0.4.6 - 2015.01.21
-* added [`Object.getOwnPropertySymbols`](https://github.com/zloirock/core-js/#ecmascript-6-symbol)
-* added [`NodeList.prototype[@@iterator]`](https://github.com/zloirock/core-js/#ecmascript-6-iterators)
-* added basic `@@species` logic - getter in native constructors
-* removed `Function#by`
-* some fixes
-
-##### 0.4.5 - 2015.01.16
-* some fixes
-
-##### 0.4.4 - 2015.01.11
-* enabled CSP support
-
-##### 0.4.3 - 2015.01.10
-* added `Function` instances `name` property for IE9+
-
-##### 0.4.2 - 2015.01.10
-* `Object` static methods accept primitives
-* `RegExp` constructor can alter flags (IE9+)
-* added `Array.prototype[Symbol.unscopables]`
-
-##### 0.4.1 - 2015.01.05
-* some fixes
-
-##### 0.4.0 - 2015.01.03
-* added [`es6.reflect`](https://github.com/zloirock/core-js/#ecmascript-6-reflect) module:
-  * added `Reflect.apply`
-  * added `Reflect.construct`
-  * added `Reflect.defineProperty`
-  * added `Reflect.deleteProperty`
-  * added `Reflect.enumerate`
-  * added `Reflect.get`
-  * added `Reflect.getOwnPropertyDescriptor`
-  * added `Reflect.getPrototypeOf`
-  * added `Reflect.has`
-  * added `Reflect.isExtensible`
-  * added `Reflect.preventExtensions`
-  * added `Reflect.set`
-  * added `Reflect.setPrototypeOf`
-* `core-js` methods now can use external `Symbol.iterator` polyfill
-* some fixes
-
-##### 0.3.3 - 2014.12.28
-* [console cap](https://github.com/zloirock/core-js/#console) excluded from node.js default builds
-
-##### 0.3.2 - 2014.12.25
-* added cap for [ES5](https://github.com/zloirock/core-js/#ecmascript-5) freeze-family methods
-* fixed `console` bug
-
-##### 0.3.1 - 2014.12.23
-* some fixes
-
-##### 0.3.0 - 2014.12.23
-* Optimize [`Map` & `Set`](https://github.com/zloirock/core-js/#ecmascript-6-collections):
-  * use entries chain on hash table
-  * fast & correct iteration
-  * iterators moved to [`es6`](https://github.com/zloirock/core-js/#ecmascript-6) and [`es6.collections`](https://github.com/zloirock/core-js/#ecmascript-6-collections) modules
-
-##### 0.2.5 - 2014.12.20
-* `console` no longer shortcut for `console.log` (compatibility problems)
-* some fixes
-
-##### 0.2.4 - 2014.12.17
-* better compliance of ES6
-* added [`Math.fround`](https://github.com/zloirock/core-js/#ecmascript-6-math) (IE10+)
-* some fixes
-
-##### 0.2.3 - 2014.12.15
-* [Symbols](https://github.com/zloirock/core-js/#ecmascript-6-symbol):
-  * added option to disable addition setter to `Object.prototype` for Symbol polyfill:
-    * added `Symbol.useSimple`
-    * added `Symbol.useSetter`
-  * added cap for well-known Symbols:
-    * added `Symbol.hasInstance`
-    * added `Symbol.isConcatSpreadable`
-    * added `Symbol.match`
-    * added `Symbol.replace`
-    * added `Symbol.search`
-    * added `Symbol.species`
-    * added `Symbol.split`
-    * added `Symbol.toPrimitive`
-    * added `Symbol.unscopables`
-
-##### 0.2.2 - 2014.12.13
-* added [`RegExp#flags`](https://github.com/zloirock/core-js/#ecmascript-6-regexp) ([December 2014 Draft Rev 29](http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#december_6_2014_draft_rev_29))
-* added [`String.raw`](https://github.com/zloirock/core-js/#ecmascript-6-string)
-
-##### 0.2.1 - 2014.12.12
-* repair converting -0 to +0 in [native collections](https://github.com/zloirock/core-js/#ecmascript-6-collections)
-
-##### 0.2.0 - 2014.12.06
-* added [`es7.proposals`](https://github.com/zloirock/core-js/#ecmascript-7) and [`es7.abstract-refs`](https://github.com/zenparsing/es-abstract-refs) modules
-* added [`String#at`](https://github.com/zloirock/core-js/#ecmascript-7)
-* added real [`String Iterator`](https://github.com/zloirock/core-js/#ecmascript-6-iterators), older versions used Array Iterator
-* added abstract references support:
-  * added `Symbol.referenceGet`
-  * added `Symbol.referenceSet`
-  * added `Symbol.referenceDelete`
-  * added `Function#@@referenceGet`
-  * added `Map#@@referenceGet`
-  * added `Map#@@referenceSet`
-  * added `Map#@@referenceDelete`
-  * added `WeakMap#@@referenceGet`
-  * added `WeakMap#@@referenceSet`
-  * added `WeakMap#@@referenceDelete`
-  * added `Dict.{...methods}[@@referenceGet]`
-* removed deprecated `.contains` methods
-* some fixes
-
-##### 0.1.5 - 2014.12.01
-* added [`Array#copyWithin`](https://github.com/zloirock/core-js/#ecmascript-6-array)
-* added [`String#codePointAt`](https://github.com/zloirock/core-js/#ecmascript-6-string)
-* added [`String.fromCodePoint`](https://github.com/zloirock/core-js/#ecmascript-6-string)
-
-##### 0.1.4 - 2014.11.27
-* added [`Dict.mapPairs`](https://github.com/zloirock/core-js/#dict)
-
-##### 0.1.3 - 2014.11.20
-* [TC39 November meeting](https://github.com/rwaldron/tc39-notes/tree/master/es6/2014-11):
-  * [`.contains` -> `.includes`](https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-11/nov-18.md#51--44-arrayprototypecontains-and-stringprototypecontains)
-    * `String#contains` -> [`String#includes`](https://github.com/zloirock/core-js/#ecmascript-6-string)
-    * `Array#contains` -> [`Array#includes`](https://github.com/zloirock/core-js/#ecmascript-7)
-    * `Dict.contains` -> [`Dict.includes`](https://github.com/zloirock/core-js/#dict)
-  * [removed `WeakMap#clear`](https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-11/nov-19.md#412-should-weakmapweakset-have-a-clear-method-markm)
-  * [removed `WeakSet#clear`](https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-11/nov-19.md#412-should-weakmapweakset-have-a-clear-method-markm)
-
-##### 0.1.2 - 2014.11.19
-* `Map` & `Set` bug fix
-
-##### 0.1.1 - 2014.11.18
-* public release
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/core-js/Gruntfile.js
----------------------------------------------------------------------
diff --git a/node_modules/core-js/Gruntfile.js b/node_modules/core-js/Gruntfile.js
deleted file mode 100644
index afbcd94..0000000
--- a/node_modules/core-js/Gruntfile.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('LiveScript');
-module.exports = require('./build/Gruntfile');
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/core-js/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/core-js/LICENSE b/node_modules/core-js/LICENSE
deleted file mode 100644
index 669bcc9..0000000
--- a/node_modules/core-js/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2015 Denis Pushkarev
-
-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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/core-js/bower.json
----------------------------------------------------------------------
diff --git a/node_modules/core-js/bower.json b/node_modules/core-js/bower.json
deleted file mode 100644
index 0568819..0000000
--- a/node_modules/core-js/bower.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
-  "name": "core.js",
-  "main": "client/core.js",
-  "version": "1.2.7",
-  "description": "Standard Library",
-  "keywords": [
-    "ES6",
-    "ECMAScript 6",
-    "ES7",
-    "ECMAScript 7",
-    "Map",
-    "Set",
-    "WeakMap",
-    "WeakSet",
-    "Dict",
-    "Promise",
-    "Symbol",
-    "console"
-  ],
-  "authors": [
-    "Denis Pushkarev <zl...@zloirock.ru> (http://zloirock.ru/)"
-  ],
-  "license": "MIT",
-  "homepage": "https://github.com/zloirock/core-js",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/zloirock/core-js.git"
-  },
-  "ignore": [
-    "build",
-    "node_modules",
-    "tests"
-  ]
-}



[35/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/custom.jst
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/custom.jst b/node_modules/ajv/lib/dot/custom.jst
deleted file mode 100644
index ed5d80a..0000000
--- a/node_modules/ajv/lib/dot/custom.jst
+++ /dev/null
@@ -1,188 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.$data }}
-
-{{
-  var $rule = this
-    , $definition = 'definition' + $lvl
-    , $rDef = $rule.definition
-    , $validate = $rDef.validate
-    , $compile
-    , $inline
-    , $macro
-    , $ruleValidate
-    , $validateCode;
-}}
-
-{{? $isData && $rDef.$data }}
-  {{
-    $validateCode = 'keywordValidate' + $lvl;
-    var $validateSchema = $rDef.validateSchema;
-  }}
-  var {{=$definition}} = RULES.custom['{{=$keyword}}'].definition;
-  var {{=$validateCode}} = {{=$definition}}.validate;
-{{??}}
-  {{
-    $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);
-    $schemaValue = 'validate.schema' + $schemaPath;
-    $validateCode = $ruleValidate.code;
-    $compile = $rDef.compile;
-    $inline = $rDef.inline;
-    $macro = $rDef.macro;
-  }}
-{{?}}
-
-{{
-  var $ruleErrs = $validateCode + '.errors'
-    , $i = 'i' + $lvl
-    , $ruleErr = 'ruleErr' + $lvl
-    , $asyncKeyword = $rDef.async;
-
-  if ($asyncKeyword && !it.async)
-    throw new Error('async keyword in sync schema');
-}}
-
-
-{{? !($inline || $macro) }}{{=$ruleErrs}} = null;{{?}}
-var {{=$errs}} = errors;
-var {{=$valid}};
-
-{{## def.callRuleValidate:
-  {{=$validateCode}}.call(
-    {{? it.opts.passContext }}this{{??}}self{{?}}
-    {{? $compile || $rDef.schema === false }}
-      , {{=$data}}
-    {{??}}
-      , {{=$schemaValue}}
-      , {{=$data}}
-      , validate.schema{{=it.schemaPath}}
-    {{?}}
-    , {{# def.dataPath }}
-    {{# def.passParentData }}
-    , rootData
-  )
-#}}
-
-{{## def.extendErrors:_inline:
-  for (var {{=$i}}={{=$errs}}; {{=$i}}<errors; {{=$i}}++) {
-    var {{=$ruleErr}} = vErrors[{{=$i}}];
-    if ({{=$ruleErr}}.dataPath === undefined)
-      {{=$ruleErr}}.dataPath = (dataPath || '') + {{= it.errorPath }};
-    {{# _inline ? 'if (\{\{=$ruleErr\}\}.schemaPath === undefined) {' : '' }}
-      {{=$ruleErr}}.schemaPath = "{{=$errSchemaPath}}";
-    {{# _inline ? '}' : '' }}
-    {{? it.opts.verbose }}
-      {{=$ruleErr}}.schema = {{=$schemaValue}};
-      {{=$ruleErr}}.data = {{=$data}};
-    {{?}}
-  }
-#}}
-
-
-{{? $validateSchema }}
-  {{=$valid}} = {{=$definition}}.validateSchema({{=$schemaValue}});
-  if ({{=$valid}}) {
-{{?}}
-
-{{? $inline }}
-  {{? $rDef.statements }}
-    {{= $ruleValidate.validate }}
-  {{??}}
-    {{=$valid}} = {{= $ruleValidate.validate }};
-  {{?}}
-{{?? $macro }}
-  {{# def.setupNextLevel }}
-  {{
-    $it.schema = $ruleValidate.validate;
-    $it.schemaPath = '';
-  }}
-  {{# def.setCompositeRule }}
-  {{ var $code = it.validate($it).replace(/validate\.schema/g, $validateCode); }}
-  {{# def.resetCompositeRule }}
-  {{= $code }}
-{{??}}
-  {{# def.beginDefOut}}
-    {{# def.callRuleValidate }}
-  {{# def.storeDefOut:def_callRuleValidate }}
-
-  {{? $rDef.errors === false }}
-    {{=$valid}} = {{? $asyncKeyword }}{{=it.yieldAwait}}{{?}}{{= def_callRuleValidate }};
-  {{??}}
-    {{? $asyncKeyword }}
-      {{ $ruleErrs = 'customErrors' + $lvl; }}
-      var {{=$ruleErrs}} = null;
-      try {
-        {{=$valid}} = {{=it.yieldAwait}}{{= def_callRuleValidate }};
-      } catch (e) {
-        {{=$valid}} = false;
-        if (e instanceof ValidationError) {{=$ruleErrs}} = e.errors;
-        else throw e;
-      }
-    {{??}}
-      {{=$ruleErrs}} = null;
-      {{=$valid}} = {{= def_callRuleValidate }};
-    {{?}}
-  {{?}}
-{{?}}
-
-{{? $rDef.modifying }}
-  {{=$data}} = {{=$parentData}}[{{=$parentDataProperty}}];
-{{?}}
-
-{{? $validateSchema }}
-  }
-{{?}}
-
-{{## def.notValidationResult:
-  {{? $rDef.valid === undefined }}
-    !{{? $macro }}{{=$nextValid}}{{??}}{{=$valid}}{{?}}
-  {{??}}
-    {{= !$rDef.valid }}
-  {{?}}
-#}}
-
-{{? $rDef.valid }}
-  {{? $breakOnError }} if (true) { {{?}}
-{{??}}
-  if ({{# def.notValidationResult }}) {
-    {{ $errorKeyword = $rule.keyword; }}
-    {{# def.beginDefOut}}
-      {{# def.error:'custom' }}
-    {{# def.storeDefOut:def_customError }}
-
-    {{? $inline }}
-      {{? $rDef.errors }}
-        {{? $rDef.errors != 'full' }}
-          {{# def.extendErrors:true }}
-        {{?}}
-      {{??}}
-        {{? $rDef.errors === false}}
-          {{= def_customError }}
-        {{??}}
-          if ({{=$errs}} == errors) {
-            {{= def_customError }}
-          } else {
-            {{# def.extendErrors:true }}
-          }
-        {{?}}
-      {{?}}
-    {{?? $macro }}
-      {{# def.extraError:'custom' }}
-    {{??}}
-      {{? $rDef.errors === false}}
-        {{= def_customError }}
-      {{??}}
-        if (Array.isArray({{=$ruleErrs}})) {
-          if (vErrors === null) vErrors = {{=$ruleErrs}};
-          else vErrors = vErrors.concat({{=$ruleErrs}});
-          errors = vErrors.length;
-          {{# def.extendErrors:false }}
-        } else {
-          {{= def_customError }}
-        }
-      {{?}}
-    {{?}}
-
-  } {{? $breakOnError }} else { {{?}}
-{{?}}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/defaults.def
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/defaults.def b/node_modules/ajv/lib/dot/defaults.def
deleted file mode 100644
index 5ad8d1d..0000000
--- a/node_modules/ajv/lib/dot/defaults.def
+++ /dev/null
@@ -1,32 +0,0 @@
-{{## def.assignDefault:
-  if ({{=$passData}} === undefined)
-    {{=$passData}} = {{? it.opts.useDefaults == 'shared' }}
-                       {{= it.useDefault($sch.default) }}
-                     {{??}}
-                       {{= JSON.stringify($sch.default) }}
-                     {{?}};
-#}}
-
-
-{{## def.defaultProperties:
-  {{
-    var $schema = it.schema.properties
-      , $schemaKeys = Object.keys($schema); }}
-  {{~ $schemaKeys:$propertyKey }}
-    {{ var $sch = $schema[$propertyKey]; }}
-    {{? $sch.default !== undefined }}
-      {{ var $passData = $data + it.util.getProperty($propertyKey); }}
-      {{# def.assignDefault }}
-    {{?}}
-  {{~}}
-#}}
-
-
-{{## def.defaultItems:
-  {{~ it.schema.items:$sch:$i }}
-    {{? $sch.default !== undefined }}
-      {{ var $passData = $data + '[' + $i + ']'; }}
-      {{# def.assignDefault }}
-    {{?}}
-  {{~}}
-#}}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/definitions.def
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/definitions.def b/node_modules/ajv/lib/dot/definitions.def
deleted file mode 100644
index a442346..0000000
--- a/node_modules/ajv/lib/dot/definitions.def
+++ /dev/null
@@ -1,182 +0,0 @@
-{{## def.setupKeyword:
-  {{
-    var $lvl = it.level;
-    var $dataLvl = it.dataLevel;
-    var $schema = it.schema[$keyword];
-    var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-    var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-    var $breakOnError = !it.opts.allErrors;
-    var $errorKeyword;
-
-    var $data = 'data' + ($dataLvl || '');
-    var $valid = 'valid' + $lvl;
-    var $errs = 'errs__' + $lvl;
-  }}
-#}}
-
-
-{{## def.setCompositeRule:
-  {{
-    var $wasComposite = it.compositeRule;
-    it.compositeRule = $it.compositeRule = true;
-  }}
-#}}
-
-
-{{## def.resetCompositeRule:
-  {{ it.compositeRule = $it.compositeRule = $wasComposite; }}
-#}}
-
-
-{{## def.setupNextLevel:
-  {{
-    var $it = it.util.copy(it);
-    var $closingBraces = '';
-    $it.level++;
-    var $nextValid = 'valid' + $it.level;
-  }}
-#}}
-
-
-{{## def.ifValid:
-  {{? $breakOnError }}
-    if ({{=$valid}}) {
-    {{ $closingBraces += '}'; }}
-  {{?}}
-#}}
-
-
-{{## def.ifResultValid:
-  {{? $breakOnError }}
-    if ({{=$nextValid}}) {
-    {{ $closingBraces += '}'; }}
-  {{?}}
-#}}
-
-
-{{## def.elseIfValid:
-  {{? $breakOnError }}
-    {{ $closingBraces += '}'; }}
-    else {
-  {{?}}
-#}}
-
-
-{{## def.nonEmptySchema:_schema:
-  it.util.schemaHasRules(_schema, it.RULES.all)
-#}}
-
-
-{{## def.strLength:
-  {{? it.opts.unicode === false }}
-    {{=$data}}.length
-  {{??}}
-    ucs2length({{=$data}})
-  {{?}}
-#}}
-
-
-{{## def.willOptimize:
-  it.util.varOccurences($code, $nextData) < 2
-#}}
-
-
-{{## def.generateSubschemaCode:
-  {{
-    var $code = it.validate($it);
-    $it.baseId = $currentBaseId;
-  }}
-#}}
-
-
-{{## def.insertSubschemaCode:
-  {{= it.validate($it) }}
-  {{ $it.baseId = $currentBaseId; }}
-#}}
-
-
-{{## def._optimizeValidate:
-  it.util.varReplace($code, $nextData, $passData)
-#}}
-
-
-{{## def.optimizeValidate:
-  {{? {{# def.willOptimize}} }}
-    {{= {{# def._optimizeValidate }} }}
-  {{??}}
-    var {{=$nextData}} = {{=$passData}};
-    {{= $code }}
-  {{?}}
-#}}
-
-
-{{## def.cleanUp: {{ out = it.util.cleanUpCode(out); }} #}}
-
-
-{{## def.cleanUpVarErrors: {{ out = it.util.cleanUpVarErrors(out, $async); }} #}}
-
-
-{{## def.$data:
-  {{
-    var $isData = it.opts.v5 && $schema && $schema.$data
-      , $schemaValue;
-  }}
-  {{? $isData }}
-    var schema{{=$lvl}} = {{= it.util.getData($schema.$data, $dataLvl, it.dataPathArr) }};
-    {{ $schemaValue = 'schema' + $lvl; }}
-  {{??}}
-    {{ $schemaValue = $schema; }}
-  {{?}}
-#}}
-
-
-{{## def.$dataNotType:_type:
-  {{?$isData}} ({{=$schemaValue}} !== undefined && typeof {{=$schemaValue}} != _type) || {{?}}
-#}}
-
-
-{{## def.check$dataIsArray:
-  if (schema{{=$lvl}} === undefined) {{=$valid}} = true;
-  else if (!Array.isArray(schema{{=$lvl}})) {{=$valid}} = false;
-  else {
-#}}
-
-
-{{## def.beginDefOut:
-  {{
-    var $$outStack = $$outStack || [];
-    $$outStack.push(out);
-    out = '';
-  }}
-#}}
-
-
-{{## def.storeDefOut:_variable:
-  {{
-    var _variable = out;
-    out = $$outStack.pop();
-  }}
-#}}
-
-
-{{## def.dataPath:(dataPath || ''){{? it.errorPath != '""'}} + {{= it.errorPath }}{{?}}#}}
-
-{{## def.setParentData:
-  {{
-    var $parentData = $dataLvl ? 'data' + (($dataLvl-1)||'') : 'parentData'
-      , $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';
-  }}
-#}}
-
-{{## def.passParentData:
-  {{# def.setParentData }}
-  , {{= $parentData }}
-  , {{= $parentDataProperty }}
-#}}
-
-
-{{## def.checkOwnProperty:
-  {{? $ownProperties }}
-    if (!Object.prototype.hasOwnProperty.call({{=$data}}, {{=$key}})) continue;
-  {{?}}
-#}}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/dependencies.jst
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/dependencies.jst b/node_modules/ajv/lib/dot/dependencies.jst
deleted file mode 100644
index 1198a45..0000000
--- a/node_modules/ajv/lib/dot/dependencies.jst
+++ /dev/null
@@ -1,69 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.missing }}
-{{# def.setupKeyword }}
-{{# def.setupNextLevel }}
-
-
-{{
-  var $schemaDeps = {}
-    , $propertyDeps = {};
-
-  for ($property in $schema) {
-    var $sch = $schema[$property];
-    var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;
-    $deps[$property] = $sch;
-  }
-}}
-
-var {{=$errs}} = errors;
-
-{{ var $currentErrorPath = it.errorPath; }}
-
-var missing{{=$lvl}};
-{{ for (var $property in $propertyDeps) { }}
-  {{ $deps = $propertyDeps[$property]; }}
-  if ({{=$data}}{{= it.util.getProperty($property) }} !== undefined
-    {{? $breakOnError }}
-        && ({{# def.checkMissingProperty:$deps }})) {
-        {{# def.errorMissingProperty:'dependencies' }}
-    {{??}}
-      ) {
-        {{~ $deps:$reqProperty }}
-          {{# def.allErrorsMissingProperty:'dependencies' }}
-        {{~}}
-    {{?}}
-  } {{# def.elseIfValid }}
-{{ } }}
-
-{{
-  it.errorPath = $currentErrorPath;
-  var $currentBaseId = $it.baseId;
-}}
-
-
-{{ for (var $property in $schemaDeps) { }}
-  {{ var $sch = $schemaDeps[$property]; }}
-  {{? {{# def.nonEmptySchema:$sch }} }}
-    {{=$nextValid}} = true;
-
-    if ({{=$data}}{{= it.util.getProperty($property) }} !== undefined) {
-      {{ 
-        $it.schema = $sch;
-        $it.schemaPath = $schemaPath + it.util.getProperty($property);
-        $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);
-      }}
-
-      {{# def.insertSubschemaCode }}
-    }
-
-    {{# def.ifResultValid }}
-  {{?}}
-{{ } }}
-
-{{? $breakOnError }} 
-  {{= $closingBraces }}
-  if ({{=$errs}} == errors) {
-{{?}}
-
-{{# def.cleanUp }}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/enum.jst
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/enum.jst b/node_modules/ajv/lib/dot/enum.jst
deleted file mode 100644
index 357c2e8..0000000
--- a/node_modules/ajv/lib/dot/enum.jst
+++ /dev/null
@@ -1,30 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.$data }}
-
-{{
-  var $i = 'i' + $lvl
-    , $vSchema = 'schema' + $lvl;
-}}
-
-{{? !$isData }}
-  var {{=$vSchema}} = validate.schema{{=$schemaPath}};
-{{?}}
-var {{=$valid}};
-
-{{?$isData}}{{# def.check$dataIsArray }}{{?}}
-
-{{=$valid}} = false;
-
-for (var {{=$i}}=0; {{=$i}}<{{=$vSchema}}.length; {{=$i}}++)
-  if (equal({{=$data}}, {{=$vSchema}}[{{=$i}}])) {
-    {{=$valid}} = true;
-    break;
-  }
-
-{{? $isData }}  }  {{?}}
-
-{{# def.checkError:'enum' }}
-
-{{? $breakOnError }} else { {{?}}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/errors.def
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/errors.def b/node_modules/ajv/lib/dot/errors.def
deleted file mode 100644
index 3e04721..0000000
--- a/node_modules/ajv/lib/dot/errors.def
+++ /dev/null
@@ -1,185 +0,0 @@
-{{# def.definitions }}
-
-{{## def._error:_rule:
-  {{ 'istanbul ignore else'; }}
-  {{? it.createErrors !== false }}
-    {
-      keyword: '{{= $errorKeyword || _rule }}'
-      , dataPath: (dataPath || '') + {{= it.errorPath }}
-      , schemaPath: {{=it.util.toQuotedString($errSchemaPath)}}
-      , params: {{# def._errorParams[_rule] }}
-      {{? it.opts.messages !== false }}
-        , message: {{# def._errorMessages[_rule] }}
-      {{?}}
-      {{? it.opts.verbose }}
-        , schema: {{# def._errorSchemas[_rule] }}
-        , parentSchema: validate.schema{{=it.schemaPath}}
-        , data: {{=$data}}
-      {{?}}
-    }
-  {{??}}
-    {}
-  {{?}}
-#}}
-
-
-{{## def._addError:_rule:
-  if (vErrors === null) vErrors = [err];
-  else vErrors.push(err);
-  errors++;
-#}}
-
-
-{{## def.addError:_rule:
-  var err = {{# def._error:_rule }};
-  {{# def._addError:_rule }}
-#}}
-
-
-{{## def.error:_rule:
-  {{# def.beginDefOut}}
-    {{# def._error:_rule }}
-  {{# def.storeDefOut:__err }}
-
-  {{? !it.compositeRule && $breakOnError }}
-    {{ 'istanbul ignore if'; }}
-    {{? it.async }}
-      throw new ValidationError([{{=__err}}]);
-    {{??}}
-      validate.errors = [{{=__err}}];
-      return false;
-    {{?}}
-  {{??}}
-    var err = {{=__err}};
-    {{# def._addError:_rule }}
-  {{?}}
-#}}
-
-
-{{## def.extraError:_rule:
-  {{# def.addError:_rule}}
-  {{? !it.compositeRule && $breakOnError }}
-    {{ 'istanbul ignore if'; }}
-    {{? it.async }}
-      throw new ValidationError(vErrors);
-    {{??}}
-      validate.errors = vErrors;
-      return false;
-    {{?}}
-  {{?}}
-#}}
-
-
-{{## def.checkError:_rule:
-  if (!{{=$valid}}) {
-    {{# def.error:_rule }}
-  }
-#}}
-
-
-{{## def.resetErrors:
-  errors = {{=$errs}};
-  if (vErrors !== null) {
-    if ({{=$errs}}) vErrors.length = {{=$errs}};
-    else vErrors = null;
-  }
-#}}
-
-
-{{## def.concatSchema:{{?$isData}}' + {{=$schemaValue}} + '{{??}}{{=$schema}}{{?}}#}}
-{{## def.appendSchema:{{?$isData}}' + {{=$schemaValue}}{{??}}{{=$schema}}'{{?}}#}}
-{{## def.concatSchemaEQ:{{?$isData}}' + {{=$schemaValue}} + '{{??}}{{=it.util.escapeQuotes($schema)}}{{?}}#}}
-
-{{## def._errorMessages = {
-  $ref:            "'can\\\'t resolve reference {{=it.util.escapeQuotes($schema)}}'",
-  additionalItems: "'should NOT have more than {{=$schema.length}} items'",
-  additionalProperties: "'should NOT have additional properties'",
-  anyOf:           "'should match some schema in anyOf'",
-  dependencies:    "'should have {{? $deps.length == 1 }}property {{= it.util.escapeQuotes($deps[0]) }}{{??}}properties {{= it.util.escapeQuotes($deps.join(\", \")) }}{{?}} when property {{= it.util.escapeQuotes($property) }} is present'",
-  'enum':          "'should be equal to one of the allowed values'",
-  format:          "'should match format \"{{#def.concatSchemaEQ}}\"'",
-  _limit:          "'should be {{=$opStr}} {{#def.appendSchema}}",
-  _exclusiveLimit: "'{{=$exclusiveKeyword}} should be boolean'",
-  _limitItems:     "'should NOT have {{?$keyword=='maxItems'}}more{{??}}less{{?}} than {{#def.concatSchema}} items'",
-  _limitLength:    "'should NOT be {{?$keyword=='maxLength'}}longer{{??}}shorter{{?}} than {{#def.concatSchema}} characters'",
-  _limitProperties:"'should NOT have {{?$keyword=='maxProperties'}}more{{??}}less{{?}} than {{#def.concatSchema}} properties'",
-  multipleOf:      "'should be multiple of {{#def.appendSchema}}",
-  not:             "'should NOT be valid'",
-  oneOf:           "'should match exactly one schema in oneOf'",
-  pattern:         "'should match pattern \"{{#def.concatSchemaEQ}}\"'",
-  required:        "'{{? it.opts._errorDataPathProperty }}is a required property{{??}}should have required property \\'{{=$missingProperty}}\\'{{?}}'",
-  type:            "'should be {{? $typeIsArray }}{{= $typeSchema.join(\",\") }}{{??}}{{=$typeSchema}}{{?}}'",
-  uniqueItems:     "'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)'",
-  custom:          "'should pass \"{{=$rule.keyword}}\" keyword validation'",
-  patternGroups:   "'should NOT have {{=$moreOrLess}} than {{=$limit}} properties matching pattern \"{{=it.util.escapeQuotes($pgProperty)}}\"'",
-  patternRequired: "'should have property matching pattern \\'{{=$missingPattern}}\\''",
-  switch:          "'should pass \"switch\" keyword validation'",
-  constant:        "'should be equal to constant'",
-  _formatLimit:    "'should be {{=$opStr}} \"{{#def.concatSchemaEQ}}\"'",
-  _formatExclusiveLimit: "'{{=$exclusiveKeyword}} should be boolean'"
-} #}}
-
-
-{{## def.schemaRefOrVal: {{?$isData}}validate.schema{{=$schemaPath}}{{??}}{{=$schema}}{{?}} #}}
-{{## def.schemaRefOrQS: {{?$isData}}validate.schema{{=$schemaPath}}{{??}}{{=it.util.toQuotedString($schema)}}{{?}} #}}
-
-{{## def._errorSchemas = {
-  $ref:            "{{=it.util.toQuotedString($schema)}}",
-  additionalItems: "false",
-  additionalProperties: "false",
-  anyOf:           "validate.schema{{=$schemaPath}}",
-  dependencies:    "validate.schema{{=$schemaPath}}",
-  'enum':          "validate.schema{{=$schemaPath}}",
-  format:          "{{#def.schemaRefOrQS}}",
-  _limit:          "{{#def.schemaRefOrVal}}",
-  _exclusiveLimit: "validate.schema{{=$schemaPath}}",
-  _limitItems:     "{{#def.schemaRefOrVal}}",
-  _limitLength:    "{{#def.schemaRefOrVal}}",
-  _limitProperties:"{{#def.schemaRefOrVal}}",
-  multipleOf:      "{{#def.schemaRefOrVal}}",
-  not:             "validate.schema{{=$schemaPath}}",
-  oneOf:           "validate.schema{{=$schemaPath}}",
-  pattern:         "{{#def.schemaRefOrQS}}",
-  required:        "validate.schema{{=$schemaPath}}",
-  type:            "validate.schema{{=$schemaPath}}",
-  uniqueItems:     "{{#def.schemaRefOrVal}}",
-  custom:          "validate.schema{{=$schemaPath}}",
-  patternGroups:   "validate.schema{{=$schemaPath}}",
-  patternRequired: "validate.schema{{=$schemaPath}}",
-  switch:          "validate.schema{{=$schemaPath}}",
-  constant:        "validate.schema{{=$schemaPath}}",
-  _formatLimit:    "{{#def.schemaRefOrQS}}",
-  _formatExclusiveLimit: "validate.schema{{=$schemaPath}}"
-} #}}
-
-
-{{## def.schemaValueQS: {{?$isData}}{{=$schemaValue}}{{??}}{{=it.util.toQuotedString($schema)}}{{?}} #}}
-
-{{## def._errorParams = {
-  $ref:            "{ ref: '{{=it.util.escapeQuotes($schema)}}' }",
-  additionalItems: "{ limit: {{=$schema.length}} }",
-  additionalProperties: "{ additionalProperty: '{{=$additionalProperty}}' }",
-  anyOf:           "{}",
-  dependencies:    "{ property: '{{= it.util.escapeQuotes($property) }}', missingProperty: '{{=$missingProperty}}', depsCount: {{=$deps.length}}, deps: '{{= it.util.escapeQuotes($deps.length==1 ? $deps[0] : $deps.join(\", \")) }}' }",
-  'enum':          "{ allowedValues: schema{{=$lvl}} }",
-  format:          "{ format: {{#def.schemaValueQS}} }",
-  _limit:          "{ comparison: {{=$opExpr}}, limit: {{=$schemaValue}}, exclusive: {{=$exclusive}} }",
-  _exclusiveLimit: "{}",
-  _limitItems:     "{ limit: {{=$schemaValue}} }",
-  _limitLength:    "{ limit: {{=$schemaValue}} }",
-  _limitProperties:"{ limit: {{=$schemaValue}} }",
-  multipleOf:      "{ multipleOf: {{=$schemaValue}} }",
-  not:             "{}",
-  oneOf:           "{}",
-  pattern:         "{ pattern: {{#def.schemaValueQS}} }",
-  required:        "{ missingProperty: '{{=$missingProperty}}' }",
-  type:            "{ type: '{{? $typeIsArray }}{{= $typeSchema.join(\",\") }}{{??}}{{=$typeSchema}}{{?}}' }",
-  uniqueItems:     "{ i: i, j: j }",
-  custom:          "{ keyword: '{{=$rule.keyword}}' }",
-  patternGroups:   "{ reason: '{{=$reason}}', limit: {{=$limit}}, pattern: '{{=it.util.escapeQuotes($pgProperty)}}' }",
-  patternRequired: "{ missingPattern: '{{=$missingPattern}}' }",
-  switch:          "{ caseIndex: {{=$caseIndex}} }",
-  constant:        "{}",
-  _formatLimit:    "{ comparison: {{=$opExpr}}, limit: {{#def.schemaValueQS}}, exclusive: {{=$exclusive}} }",
-  _formatExclusiveLimit: "{}"
-} #}}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/format.jst
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/format.jst b/node_modules/ajv/lib/dot/format.jst
deleted file mode 100644
index 961fe4f..0000000
--- a/node_modules/ajv/lib/dot/format.jst
+++ /dev/null
@@ -1,100 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-
-{{## def.skipFormat:
-  {{? $breakOnError }} if (true) { {{?}}
-  {{ return out; }}
-#}}
-
-{{? it.opts.format === false }}{{# def.skipFormat }}{{?}}
-
-
-{{# def.$data }}
-
-
-{{## def.$dataCheckFormat:
-  {{# def.$dataNotType:'string' }}
-  ({{? $unknownFormats === true || $allowUnknown }}
-     ({{=$schemaValue}} && !{{=$format}}
-      {{? $allowUnknown }}
-        && self._opts.unknownFormats.indexOf({{=$schemaValue}}) == -1
-      {{?}}) ||
-   {{?}}
-   ({{=$format}} && !(typeof {{=$format}} == 'function'
-                     ? {{? it.async}}
-                        (async{{=$lvl}} ? {{=it.yieldAwait}} {{=$format}}({{=$data}}) : {{=$format}}({{=$data}}))
-                       {{??}}
-                        {{=$format}}({{=$data}})
-                       {{?}}
-                     : {{=$format}}.test({{=$data}}))))
-#}}
-
-{{## def.checkFormat:
-  {{
-    var $formatRef = 'formats' + it.util.getProperty($schema);
-    if ($isObject) $formatRef += '.validate';
-  }}
-  {{? typeof $format == 'function' }}
-    {{=$formatRef}}({{=$data}})
-  {{??}}
-    {{=$formatRef}}.test({{=$data}})
-  {{?}}
-#}}
-
-
-{{
-  var $unknownFormats = it.opts.unknownFormats
-    , $allowUnknown = Array.isArray($unknownFormats);
-}}
-
-{{? $isData }}
-  {{ var $format = 'format' + $lvl; }}
-  var {{=$format}} = formats[{{=$schemaValue}}];
-  var isObject{{=$lvl}} = typeof {{=$format}} == 'object'
-                          && !({{=$format}} instanceof RegExp)
-                          && {{=$format}}.validate;
-  if (isObject{{=$lvl}}) {
-    {{? it.async}}
-      var async{{=$lvl}} = {{=$format}}.async;
-    {{?}}
-    {{=$format}} = {{=$format}}.validate;
-  }
-  if ({{# def.$dataCheckFormat }}) {
-{{??}}
-  {{ var $format = it.formats[$schema]; }}
-  {{? !$format }}
-    {{? $unknownFormats === true || ($allowUnknown && $unknownFormats.indexOf($schema) == -1) }}
-      {{ throw new Error('unknown format "' + $schema + '" is used in schema at path "' + it.errSchemaPath + '"'); }}
-    {{??}}
-      {{
-        if (!$allowUnknown) {
-          console.warn('unknown format "' + $schema + '" ignored in schema at path "' + it.errSchemaPath + '"');
-          if ($unknownFormats !== 'ignore')
-            console.warn('In the next major version it will throw exception. See option unknownFormats for more information');
-        }
-      }}
-      {{# def.skipFormat }}
-    {{?}}
-  {{?}}
-  {{
-    var $isObject = typeof $format == 'object'
-                    && !($format instanceof RegExp)
-                    && $format.validate;
-    if ($isObject) {
-      var $async = $format.async === true;
-      $format = $format.validate;
-    }
-  }}
-  {{? $async }}
-    {{
-      if (!it.async) throw new Error('async format in sync schema');
-      var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';
-    }}
-    if (!({{=it.yieldAwait}} {{=$formatRef}}({{=$data}}))) {
-  {{??}}
-    if (!{{# def.checkFormat }}) {
-  {{?}}
-{{?}}
-    {{# def.error:'format' }}
-  } {{? $breakOnError }} else { {{?}}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/items.jst
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/items.jst b/node_modules/ajv/lib/dot/items.jst
deleted file mode 100644
index a8b8aa7..0000000
--- a/node_modules/ajv/lib/dot/items.jst
+++ /dev/null
@@ -1,101 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.setupNextLevel }}
-
-
-{{## def.validateItems:startFrom:
-  for (var {{=$idx}} = {{=startFrom}}; {{=$idx}} < {{=$data}}.length; {{=$idx}}++) {
-    {{
-      $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);
-      var $passData = $data + '[' + $idx + ']';
-      $it.dataPathArr[$dataNxt] = $idx;
-    }}
-
-    {{# def.generateSubschemaCode }}
-    {{# def.optimizeValidate }}
-
-    {{? $breakOnError }}
-      if (!{{=$nextValid}}) break;
-    {{?}}
-  }
-#}}
-
-{{
-  var $idx = 'i' + $lvl
-    , $dataNxt = $it.dataLevel = it.dataLevel + 1
-    , $nextData = 'data' + $dataNxt
-    , $currentBaseId = it.baseId;
-}}
-
-var {{=$errs}} = errors;
-var {{=$valid}};
-
-{{? Array.isArray($schema) }}
-  {{ /* 'items' is an array of schemas */}}
-  {{ var $additionalItems = it.schema.additionalItems; }}
-  {{? $additionalItems === false }}
-    {{=$valid}} = {{=$data}}.length <= {{= $schema.length }};
-    {{
-      var $currErrSchemaPath = $errSchemaPath;
-      $errSchemaPath = it.errSchemaPath + '/additionalItems';      
-    }}
-    {{# def.checkError:'additionalItems' }}
-    {{ $errSchemaPath = $currErrSchemaPath; }}
-    {{# def.elseIfValid}}
-  {{?}}
-
-  {{~ $schema:$sch:$i }}
-    {{? {{# def.nonEmptySchema:$sch }} }}
-      {{=$nextValid}} = true;
-
-      if ({{=$data}}.length > {{=$i}}) {
-        {{
-          var $passData = $data + '[' + $i + ']';
-          $it.schema = $sch;
-          $it.schemaPath = $schemaPath + '[' + $i + ']';
-          $it.errSchemaPath = $errSchemaPath + '/' + $i;
-          $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);
-          $it.dataPathArr[$dataNxt] = $i;
-        }}
-
-        {{# def.generateSubschemaCode }}
-        {{# def.optimizeValidate }}
-      }
-
-      {{# def.ifResultValid }}
-    {{?}}
-  {{~}}
-
-  {{? typeof $additionalItems == 'object' && {{# def.nonEmptySchema:$additionalItems }} }}
-    {{
-      $it.schema = $additionalItems;
-      $it.schemaPath = it.schemaPath + '.additionalItems';
-      $it.errSchemaPath = it.errSchemaPath + '/additionalItems';
-    }}
-    {{=$nextValid}} = true;
-
-    if ({{=$data}}.length > {{= $schema.length }}) {
-      {{# def.validateItems: $schema.length }}
-    }
-
-    {{# def.ifResultValid }}
-  {{?}}
-
-{{?? {{# def.nonEmptySchema:$schema }} }}
-  {{ /* 'items' is a single schema */}}
-  {{
-    $it.schema = $schema;
-    $it.schemaPath = $schemaPath;
-    $it.errSchemaPath = $errSchemaPath;
-  }}
-  {{# def.validateItems: 0 }}
-  {{# def.ifResultValid }}
-{{?}}
-
-{{? $breakOnError }}
-  {{= $closingBraces }}
-  if ({{=$errs}} == errors) {
-{{?}}
-
-{{# def.cleanUp }}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/missing.def
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/missing.def b/node_modules/ajv/lib/dot/missing.def
deleted file mode 100644
index 23ad04c..0000000
--- a/node_modules/ajv/lib/dot/missing.def
+++ /dev/null
@@ -1,34 +0,0 @@
-{{## def.checkMissingProperty:_properties:
-  {{~ _properties:_$property:$i }}
-    {{?$i}} || {{?}}
-    {{ var $prop = it.util.getProperty(_$property); }}
-    ( {{=$data}}{{=$prop}} === undefined && (missing{{=$lvl}} = {{= it.util.toQuotedString(it.opts.jsonPointers ? _$property : $prop) }}) )
-  {{~}}
-#}}
-
-
-{{## def.errorMissingProperty:_error:
-  {{
-    var $propertyPath = 'missing' + $lvl
-      , $missingProperty = '\' + ' + $propertyPath + ' + \'';
-    if (it.opts._errorDataPathProperty) {
-      it.errorPath = it.opts.jsonPointers
-                      ? it.util.getPathExpr($currentErrorPath,  $propertyPath, true)
-                      : $currentErrorPath + ' + ' + $propertyPath;
-    }
-  }}
-  {{# def.error:_error }}
-#}}
-
-{{## def.allErrorsMissingProperty:_error:
-  {{
-    var $prop = it.util.getProperty($reqProperty)
-      , $missingProperty = it.util.escapeQuotes($reqProperty);
-    if (it.opts._errorDataPathProperty) {
-      it.errorPath = it.util.getPath($currentErrorPath, $reqProperty, it.opts.jsonPointers);
-    }
-  }}
-  if ({{=$data}}{{=$prop}} === undefined) {
-    {{# def.addError:_error }}
-  }
-#}}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/multipleOf.jst
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/multipleOf.jst b/node_modules/ajv/lib/dot/multipleOf.jst
deleted file mode 100644
index 5f8dd33..0000000
--- a/node_modules/ajv/lib/dot/multipleOf.jst
+++ /dev/null
@@ -1,20 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.$data }}
-
-var division{{=$lvl}};
-if ({{?$isData}}
-      {{=$schemaValue}} !== undefined && (
-      typeof {{=$schemaValue}} != 'number' ||
-    {{?}}
-      (division{{=$lvl}} = {{=$data}} / {{=$schemaValue}},
-      {{? it.opts.multipleOfPrecision }}
-        Math.abs(Math.round(division{{=$lvl}}) - division{{=$lvl}}) > 1e-{{=it.opts.multipleOfPrecision}}
-      {{??}}
-        division{{=$lvl}} !== parseInt(division{{=$lvl}})
-      {{?}}
-      )
-    {{?$isData}}  )  {{?}} ) {
-  {{# def.error:'multipleOf' }}
-} {{? $breakOnError }} else { {{?}}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/not.jst
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/not.jst b/node_modules/ajv/lib/dot/not.jst
deleted file mode 100644
index e03185a..0000000
--- a/node_modules/ajv/lib/dot/not.jst
+++ /dev/null
@@ -1,43 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.setupNextLevel }}
-
-{{? {{# def.nonEmptySchema:$schema }} }}
-  {{
-    $it.schema = $schema;
-    $it.schemaPath = $schemaPath;
-    $it.errSchemaPath = $errSchemaPath;
-  }}
-
-  var {{=$errs}} = errors;
-
-  {{# def.setCompositeRule }}
-
-  {{
-    $it.createErrors = false;
-    var $allErrorsOption;
-    if ($it.opts.allErrors) {
-      $allErrorsOption = $it.opts.allErrors;
-      $it.opts.allErrors = false;
-    }
-  }}
-  {{= it.validate($it) }}
-  {{
-    $it.createErrors = true;
-    if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;
-  }}
-
-  {{# def.resetCompositeRule }}
-
-  if ({{=$nextValid}}) {
-    {{# def.error:'not' }}
-  } else {
-    {{# def.resetErrors }}
-  {{? it.opts.allErrors }} } {{?}}
-{{??}}
-  {{# def.addError:'not' }}
-  {{? $breakOnError}}
-    if (false) {
-  {{?}}
-{{?}}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/oneOf.jst
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/oneOf.jst b/node_modules/ajv/lib/dot/oneOf.jst
deleted file mode 100644
index b7f7bff..0000000
--- a/node_modules/ajv/lib/dot/oneOf.jst
+++ /dev/null
@@ -1,44 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.setupNextLevel }}
-
-var {{=$errs}} = errors;
-var prevValid{{=$lvl}} = false;
-var {{=$valid}} = false;
-
-{{ var $currentBaseId = $it.baseId; }}
-{{# def.setCompositeRule }}
-
-{{~ $schema:$sch:$i }}
-  {{? {{# def.nonEmptySchema:$sch }} }}
-    {{
-      $it.schema = $sch;
-      $it.schemaPath = $schemaPath + '[' + $i + ']';
-      $it.errSchemaPath = $errSchemaPath + '/' + $i;
-    }}
-
-    {{# def.insertSubschemaCode }}
-  {{??}}
-    var {{=$nextValid}} = true;
-  {{?}}
-
-  {{? $i }}
-    if ({{=$nextValid}} && prevValid{{=$lvl}})
-      {{=$valid}} = false;
-    else {
-    {{ $closingBraces += '}'; }}
-  {{?}}
-
-    if ({{=$nextValid}}) {{=$valid}} = prevValid{{=$lvl}} = true;
-{{~}}
-
-{{# def.resetCompositeRule }}
-
-{{= $closingBraces }}
-
-if (!{{=$valid}}) {
-  {{# def.error:'oneOf' }}
-} else {
-  {{# def.resetErrors }}
-{{? it.opts.allErrors }} } {{?}}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/pattern.jst
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/pattern.jst b/node_modules/ajv/lib/dot/pattern.jst
deleted file mode 100644
index 3a37ef6..0000000
--- a/node_modules/ajv/lib/dot/pattern.jst
+++ /dev/null
@@ -1,14 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.$data }}
-
-{{
-  var $regexp = $isData
-                ? '(new RegExp(' + $schemaValue + '))'
-                : it.usePattern($schema);
-}}
-
-if ({{# def.$dataNotType:'string' }} !{{=$regexp}}.test({{=$data}}) ) {
-  {{# def.error:'pattern' }}
-} {{? $breakOnError }} else { {{?}}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/properties.jst
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/properties.jst b/node_modules/ajv/lib/dot/properties.jst
deleted file mode 100644
index 3a4b966..0000000
--- a/node_modules/ajv/lib/dot/properties.jst
+++ /dev/null
@@ -1,319 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.setupNextLevel }}
-
-
-{{## def.validateAdditional:
-  {{ /* additionalProperties is schema */
-    $it.schema = $aProperties;
-    $it.schemaPath = it.schemaPath + '.additionalProperties';
-    $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';
-    $it.errorPath = it.opts._errorDataPathProperty
-                    ? it.errorPath
-                    : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
-    var $passData = $data + '[' + $key + ']';
-    $it.dataPathArr[$dataNxt] = $key;
-  }}
-
-  {{# def.generateSubschemaCode }}
-  {{# def.optimizeValidate }}
-#}}
-
-
-{{
-  var $key = 'key' + $lvl
-    , $dataNxt = $it.dataLevel = it.dataLevel + 1
-    , $nextData = 'data' + $dataNxt;
-
-  var $schemaKeys = Object.keys($schema || {})
-    , $pProperties = it.schema.patternProperties || {}
-    , $pPropertyKeys = Object.keys($pProperties)
-    , $aProperties = it.schema.additionalProperties
-    , $someProperties = $schemaKeys.length || $pPropertyKeys.length
-    , $noAdditional = $aProperties === false
-    , $additionalIsSchema = typeof $aProperties == 'object'
-                              && Object.keys($aProperties).length
-    , $removeAdditional = it.opts.removeAdditional
-    , $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional
-    , $ownProperties = it.opts.ownProperties
-    , $currentBaseId = it.baseId;
-
-  var $required = it.schema.required;
-  if ($required && !(it.opts.v5 && $required.$data) && $required.length < it.opts.loopRequired)
-    var $requiredHash = it.util.toHash($required);
-
-  if (it.opts.v5) {
-    var $pgProperties = it.schema.patternGroups || {}
-      , $pgPropertyKeys = Object.keys($pgProperties);
-  }
-}}
-
-
-var {{=$errs}} = errors;
-var {{=$nextValid}} = true;
-
-{{? $checkAdditional }}
-  for (var {{=$key}} in {{=$data}}) {
-    {{# def.checkOwnProperty }}
-    {{? $someProperties }}
-      var isAdditional{{=$lvl}} = !(false
-        {{? $schemaKeys.length }}
-          {{? $schemaKeys.length > 5 }}
-            || validate.schema{{=$schemaPath}}[{{=$key}}]
-          {{??}}
-            {{~ $schemaKeys:$propertyKey }}
-              || {{=$key}} == {{= it.util.toQuotedString($propertyKey) }}
-            {{~}}
-          {{?}}
-        {{?}}
-        {{? $pPropertyKeys.length }}
-          {{~ $pPropertyKeys:$pProperty:$i }}
-            || {{= it.usePattern($pProperty) }}.test({{=$key}})
-          {{~}}
-        {{?}}
-        {{? it.opts.v5 && $pgPropertyKeys && $pgPropertyKeys.length }}
-          {{~ $pgPropertyKeys:$pgProperty:$i }}
-            || {{= it.usePattern($pgProperty) }}.test({{=$key}})
-          {{~}}
-        {{?}}
-      );
-
-      if (isAdditional{{=$lvl}}) {
-    {{?}}
-    {{? $removeAdditional == 'all' }}
-      delete {{=$data}}[{{=$key}}];
-    {{??}}
-      {{
-        var $currentErrorPath = it.errorPath;
-        var $additionalProperty = '\' + ' + $key + ' + \'';
-        if (it.opts._errorDataPathProperty) {
-          it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
-        }
-      }}
-      {{? $noAdditional }}
-        {{? $removeAdditional }}
-          delete {{=$data}}[{{=$key}}];
-        {{??}}
-          {{=$nextValid}} = false;
-          {{
-            var $currErrSchemaPath = $errSchemaPath;
-            $errSchemaPath = it.errSchemaPath + '/additionalProperties';
-          }}
-          {{# def.error:'additionalProperties' }}
-          {{ $errSchemaPath = $currErrSchemaPath; }}
-          {{? $breakOnError }} break; {{?}}
-        {{?}}
-      {{?? $additionalIsSchema }}
-        {{? $removeAdditional == 'failing' }}
-          var {{=$errs}} = errors;
-          {{# def.setCompositeRule }}
-
-          {{# def.validateAdditional }}
-
-          if (!{{=$nextValid}}) {
-            errors = {{=$errs}};
-            if (validate.errors !== null) {
-              if (errors) validate.errors.length = errors;
-              else validate.errors = null;
-            }
-            delete {{=$data}}[{{=$key}}];
-          }
-
-          {{# def.resetCompositeRule }}
-        {{??}}
-          {{# def.validateAdditional }}
-          {{? $breakOnError }} if (!{{=$nextValid}}) break; {{?}}
-        {{?}}
-      {{?}}
-      {{ it.errorPath = $currentErrorPath; }}
-    {{?}}
-    {{? $someProperties }}
-      }
-    {{?}}
-  }
-
-  {{# def.ifResultValid }}
-{{?}}
-
-{{ var $useDefaults = it.opts.useDefaults && !it.compositeRule; }}
-
-{{? $schemaKeys.length }}
-  {{~ $schemaKeys:$propertyKey }}
-    {{ var $sch = $schema[$propertyKey]; }}
-
-    {{? {{# def.nonEmptySchema:$sch}} }}
-      {{
-        var $prop = it.util.getProperty($propertyKey)
-          , $passData = $data + $prop
-          , $hasDefault = $useDefaults && $sch.default !== undefined;
-        $it.schema = $sch;
-        $it.schemaPath = $schemaPath + $prop;
-        $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);
-        $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);
-        $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);
-      }}
-
-      {{# def.generateSubschemaCode }}
-
-      {{? {{# def.willOptimize }} }}
-        {{
-          $code = {{# def._optimizeValidate }};
-          var $useData = $passData;
-        }}
-      {{??}}
-        {{ var $useData = $nextData; }}
-        var {{=$nextData}} = {{=$passData}};
-      {{?}}
-
-      {{? $hasDefault }}
-        {{= $code }}
-      {{??}}
-        {{? $requiredHash && $requiredHash[$propertyKey] }}
-          if ({{=$useData}} === undefined) {
-            {{=$nextValid}} = false;
-            {{
-              var $currentErrorPath = it.errorPath
-                , $currErrSchemaPath = $errSchemaPath
-                , $missingProperty = it.util.escapeQuotes($propertyKey);
-              if (it.opts._errorDataPathProperty) {
-                it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);
-              }
-              $errSchemaPath = it.errSchemaPath + '/required';
-            }}
-            {{# def.error:'required' }}
-            {{ $errSchemaPath = $currErrSchemaPath; }}
-            {{ it.errorPath = $currentErrorPath; }}
-          } else {
-        {{??}}
-          {{? $breakOnError }}
-            if ({{=$useData}} === undefined) {
-              {{=$nextValid}} = true;
-            } else {
-          {{??}}
-            if ({{=$useData}} !== undefined) {
-          {{?}}
-        {{?}}
-
-          {{= $code }}
-        }
-      {{?}}  {{ /* $hasDefault */ }}
-    {{?}} {{ /* def.nonEmptySchema */ }}
-
-    {{# def.ifResultValid }}
-  {{~}}
-{{?}}
-
-{{~ $pPropertyKeys:$pProperty }}
-  {{ var $sch = $pProperties[$pProperty]; }}
-
-  {{? {{# def.nonEmptySchema:$sch}} }}
-    {{
-      $it.schema = $sch;
-      $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);
-      $it.errSchemaPath = it.errSchemaPath + '/patternProperties/'
-                                           + it.util.escapeFragment($pProperty);
-    }}
-
-    for (var {{=$key}} in {{=$data}}) {
-      {{# def.checkOwnProperty }}
-      if ({{= it.usePattern($pProperty) }}.test({{=$key}})) {
-        {{
-          $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
-          var $passData = $data + '[' + $key + ']';
-          $it.dataPathArr[$dataNxt] = $key;
-        }}
-
-        {{# def.generateSubschemaCode }}
-        {{# def.optimizeValidate }}
-
-        {{? $breakOnError }} if (!{{=$nextValid}}) break; {{?}}
-      }
-      {{? $breakOnError }} else {{=$nextValid}} = true; {{?}}
-    }
-
-    {{# def.ifResultValid }}
-  {{?}} {{ /* def.nonEmptySchema */ }}
-{{~}}
-
-
-{{? it.opts.v5 }}
-  {{~ $pgPropertyKeys:$pgProperty }}
-    {{
-      var $pgSchema = $pgProperties[$pgProperty]
-        , $sch = $pgSchema.schema;
-    }}
-
-    {{? {{# def.nonEmptySchema:$sch}} }}
-      {{
-        $it.schema = $sch;
-        $it.schemaPath = it.schemaPath + '.patternGroups' + it.util.getProperty($pgProperty) + '.schema';
-        $it.errSchemaPath = it.errSchemaPath + '/patternGroups/'
-                                             + it.util.escapeFragment($pgProperty)
-                                             + '/schema';
-      }}
-
-      var pgPropCount{{=$lvl}} = 0;
-
-      for (var {{=$key}} in {{=$data}}) {
-        {{# def.checkOwnProperty }}
-        if ({{= it.usePattern($pgProperty) }}.test({{=$key}})) {
-          pgPropCount{{=$lvl}}++;
-
-          {{
-            $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
-            var $passData = $data + '[' + $key + ']';
-            $it.dataPathArr[$dataNxt] = $key;
-          }}
-
-          {{# def.generateSubschemaCode }}
-          {{# def.optimizeValidate }}
-
-          {{? $breakOnError }} if (!{{=$nextValid}}) break; {{?}}
-        }
-        {{? $breakOnError }} else {{=$nextValid}} = true; {{?}}
-      }
-
-      {{# def.ifResultValid }}
-
-      {{
-        var $pgMin = $pgSchema.minimum
-          , $pgMax = $pgSchema.maximum;
-      }}
-      {{? $pgMin !== undefined || $pgMax !== undefined }}
-        var {{=$valid}} = true;
-
-        {{ var $currErrSchemaPath = $errSchemaPath; }}
-
-        {{? $pgMin !== undefined }}
-          {{ var $limit = $pgMin, $reason = 'minimum', $moreOrLess = 'less'; }}
-          {{=$valid}} = pgPropCount{{=$lvl}} >= {{=$pgMin}};
-          {{ $errSchemaPath = it.errSchemaPath + '/patternGroups/minimum'; }}
-          {{# def.checkError:'patternGroups' }}
-          {{? $pgMax !== undefined }}
-            else
-          {{?}}
-        {{?}}
-
-        {{? $pgMax !== undefined }}
-          {{ var $limit = $pgMax, $reason = 'maximum', $moreOrLess = 'more'; }}
-          {{=$valid}} = pgPropCount{{=$lvl}} <= {{=$pgMax}};
-          {{ $errSchemaPath = it.errSchemaPath + '/patternGroups/maximum'; }}
-          {{# def.checkError:'patternGroups' }}
-        {{?}}
-
-        {{ $errSchemaPath = $currErrSchemaPath; }}
-
-        {{# def.ifValid }}
-      {{?}}
-    {{?}} {{ /* def.nonEmptySchema */ }}
-  {{~}}
-{{?}}
-
-
-{{? $breakOnError }}
-  {{= $closingBraces }}
-  if ({{=$errs}} == errors) {
-{{?}}
-
-{{# def.cleanUp }}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/ref.jst
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/ref.jst b/node_modules/ajv/lib/dot/ref.jst
deleted file mode 100644
index e8cdc44..0000000
--- a/node_modules/ajv/lib/dot/ref.jst
+++ /dev/null
@@ -1,86 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-
-{{## def._validateRef:_v:
-  {{? it.opts.passContext }}
-    {{=_v}}.call(this,
-  {{??}}
-    {{=_v}}(
-  {{?}}
-    {{=$data}}, {{# def.dataPath }}{{# def.passParentData }}, rootData)
-#}}
-
-{{ var $async, $refCode; }}
-{{? $schema == '#' || $schema == '#/' }}
-  {{
-    if (it.isRoot) {
-      $async = it.async;
-      $refCode = 'validate';
-    } else {
-      $async = it.root.schema.$async === true;
-      $refCode = 'root.refVal[0]';
-    }
-  }}
-{{??}}
-  {{ var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot); }}
-  {{? $refVal === undefined }}
-    {{ var $message = 'can\'t resolve reference ' + $schema + ' from id ' + it.baseId; }}
-    {{? it.opts.missingRefs == 'fail' }}
-      {{ console.log($message); }}
-      {{# def.error:'$ref' }}
-      {{? $breakOnError }} if (false) { {{?}}
-    {{?? it.opts.missingRefs == 'ignore' }}
-      {{ console.log($message); }}
-      {{? $breakOnError }} if (true) { {{?}}
-    {{??}}
-      {{
-        var $error = new Error($message);
-        $error.missingRef = it.resolve.url(it.baseId, $schema);
-        $error.missingSchema = it.resolve.normalizeId(it.resolve.fullPath($error.missingRef));
-        throw $error;
-      }}
-    {{?}}
-  {{?? $refVal.inline }}
-    {{# def.setupNextLevel }}
-    {{
-      $it.schema = $refVal.schema;
-      $it.schemaPath = '';
-      $it.errSchemaPath = $schema;
-    }}
-    {{ var $code = it.validate($it).replace(/validate\.schema/g, $refVal.code); }}
-    {{= $code }}
-    {{? $breakOnError}}
-      if ({{=$nextValid}}) {
-    {{?}}
-  {{??}}
-    {{
-      $async = $refVal.$async === true;
-      $refCode = $refVal.code;
-    }}
-  {{?}}
-{{?}}
-
-{{? $refCode }}
-  {{# def.beginDefOut}}
-    {{# def._validateRef:$refCode }}
-  {{# def.storeDefOut:__callValidate }}
-
-  {{? $async }}
-    {{ if (!it.async) throw new Error('async schema referenced by sync schema'); }}
-    try { {{? $breakOnError }}var {{=$valid}} ={{?}} {{=it.yieldAwait}} {{=__callValidate}}; }
-    catch (e) {
-      if (!(e instanceof ValidationError)) throw e;
-      if (vErrors === null) vErrors = e.errors;
-      else vErrors = vErrors.concat(e.errors);
-      errors = vErrors.length;
-    }
-    {{? $breakOnError }} if ({{=$valid}}) { {{?}}
-  {{??}}
-    if (!{{=__callValidate}}) {
-      if (vErrors === null) vErrors = {{=$refCode}}.errors;
-      else vErrors = vErrors.concat({{=$refCode}}.errors);
-      errors = vErrors.length;
-    } {{? $breakOnError }} else { {{?}}
-  {{?}}
-{{?}}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/required.jst
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/required.jst b/node_modules/ajv/lib/dot/required.jst
deleted file mode 100644
index e109568..0000000
--- a/node_modules/ajv/lib/dot/required.jst
+++ /dev/null
@@ -1,96 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.missing }}
-{{# def.setupKeyword }}
-{{# def.$data }}
-
-{{ var $vSchema = 'schema' + $lvl; }}
-
-{{## def.setupLoop:
-  {{? !$isData }}
-    var {{=$vSchema}} = validate.schema{{=$schemaPath}};
-  {{?}}
-
-  {{
-    var $i = 'i' + $lvl
-      , $propertyPath = 'schema' + $lvl + '[' + $i + ']'
-      , $missingProperty = '\' + ' + $propertyPath + ' + \'';
-    if (it.opts._errorDataPathProperty) {
-      it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);
-    }
-  }}
-#}}
-
-
-{{? !$isData }}
-  {{? $schema.length < it.opts.loopRequired &&
-      it.schema.properties && Object.keys(it.schema.properties).length }}
-    {{ var $required = []; }}
-    {{~ $schema:$property }}
-      {{ var $propertySch = it.schema.properties[$property]; }}
-      {{? !($propertySch && {{# def.nonEmptySchema:$propertySch}}) }}
-        {{ $required[$required.length] = $property; }}
-      {{?}}
-    {{~}}
-  {{??}}
-    {{ var $required = $schema; }}
-  {{?}}
-{{?}}
-
-
-{{? $isData || $required.length }}
-  {{
-    var $currentErrorPath = it.errorPath
-      , $loopRequired = $isData || $required.length >= it.opts.loopRequired;
-  }}
-
-  {{? $breakOnError }}
-    var missing{{=$lvl}};
-    {{? $loopRequired }}
-      {{# def.setupLoop }}
-      var {{=$valid}} = true;
-
-      {{?$isData}}{{# def.check$dataIsArray }}{{?}}
-
-      for (var {{=$i}} = 0; {{=$i}} < {{=$vSchema}}.length; {{=$i}}++) {
-        {{=$valid}} = {{=$data}}[{{=$vSchema}}[{{=$i}}]] !== undefined;
-        if (!{{=$valid}}) break;
-      }
-
-      {{? $isData }}  }  {{?}}
-
-      {{# def.checkError:'required' }}
-      else {
-    {{??}}
-      if ({{# def.checkMissingProperty:$required }}) {
-        {{# def.errorMissingProperty:'required' }}
-      } else {
-    {{?}}
-  {{??}}
-    {{? $loopRequired }}
-      {{# def.setupLoop }}
-      {{? $isData }}
-        if ({{=$vSchema}} && !Array.isArray({{=$vSchema}})) {
-          {{# def.addError:'required' }}
-        } else if ({{=$vSchema}} !== undefined) {
-      {{?}}
-
-      for (var {{=$i}} = 0; {{=$i}} < {{=$vSchema}}.length; {{=$i}}++) {
-        if ({{=$data}}[{{=$vSchema}}[{{=$i}}]] === undefined) {
-          {{# def.addError:'required' }}
-        }
-      }
-
-      {{? $isData }}  }  {{?}}
-    {{??}}
-      {{~ $required:$reqProperty }}
-        {{# def.allErrorsMissingProperty:'required' }}
-      {{~}}
-    {{?}}
-  {{?}}
-
-  {{ it.errorPath = $currentErrorPath; }}
-
-{{?? $breakOnError }}
-  if (true) {
-{{?}}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/uniqueItems.jst
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/uniqueItems.jst b/node_modules/ajv/lib/dot/uniqueItems.jst
deleted file mode 100644
index dfc42b0..0000000
--- a/node_modules/ajv/lib/dot/uniqueItems.jst
+++ /dev/null
@@ -1,38 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.$data }}
-
-
-{{? ($schema || $isData) && it.opts.uniqueItems !== false }}
-  {{? $isData }}
-    var {{=$valid}};
-    if ({{=$schemaValue}} === false || {{=$schemaValue}} === undefined)
-      {{=$valid}} = true;
-    else if (typeof {{=$schemaValue}} != 'boolean')
-      {{=$valid}} = false;
-    else {
-  {{?}}
-
-  var {{=$valid}} = true;
-  if ({{=$data}}.length > 1) {
-    var i = {{=$data}}.length, j;
-    outer:
-    for (;i--;) {
-      for (j = i; j--;) {
-        if (equal({{=$data}}[i], {{=$data}}[j])) {
-          {{=$valid}} = false;
-          break outer;
-        }
-      }
-    }
-  }
-
-  {{? $isData }}  }  {{?}}
-
-  if (!{{=$valid}}) {
-    {{# def.error:'uniqueItems' }}
-  } {{? $breakOnError }} else { {{?}}
-{{??}}
-  {{? $breakOnError }} if (true) { {{?}}
-{{?}}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/v5/_formatLimit.jst
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/v5/_formatLimit.jst b/node_modules/ajv/lib/dot/v5/_formatLimit.jst
deleted file mode 100644
index af16b88..0000000
--- a/node_modules/ajv/lib/dot/v5/_formatLimit.jst
+++ /dev/null
@@ -1,116 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-
-var {{=$valid}} = undefined;
-
-{{## def.skipFormatLimit:
-  {{=$valid}} = true;
-  {{ return out; }}
-#}}
-
-{{## def.compareFormat:
-  {{? $isData }}
-    if ({{=$schemaValue}} === undefined) {{=$valid}} = true;
-    else if (typeof {{=$schemaValue}} != 'string') {{=$valid}} = false;
-    else {
-    {{ $closingBraces += '}'; }}
-  {{?}}
-
-  {{? $isDataFormat }}
-    if (!{{=$compare}}) {{=$valid}} = true;
-    else {
-    {{ $closingBraces += '}'; }}
-  {{?}}
-
-  var {{=$result}} = {{=$compare}}({{=$data}}, {{# def.schemaValueQS }});
-
-  if ({{=$result}} === undefined) {{=$valid}} = false;
-#}}
-
-
-{{? it.opts.format === false }}{{# def.skipFormatLimit }}{{?}}
-
-{{
-  var $schemaFormat = it.schema.format
-    , $isDataFormat = it.opts.v5 && $schemaFormat.$data
-    , $closingBraces = '';
-}}
-
-{{? $isDataFormat }}
-  {{
-    var $schemaValueFormat = it.util.getData($schemaFormat.$data, $dataLvl, it.dataPathArr)
-      , $format = 'format' + $lvl
-      , $compare = 'compare' + $lvl;
-  }}
-
-  var {{=$format}} = formats[{{=$schemaValueFormat}}]
-    , {{=$compare}} = {{=$format}} && {{=$format}}.compare;
-{{??}}
-  {{ var $format = it.formats[$schemaFormat]; }}
-  {{? !($format && $format.compare) }}
-    {{# def.skipFormatLimit }}
-  {{?}}
-  {{ var $compare = 'formats' + it.util.getProperty($schemaFormat) + '.compare'; }}
-{{?}}
-
-{{
-  var $isMax = $keyword == 'formatMaximum'
-    , $exclusiveKeyword = 'formatExclusive' + ($isMax ? 'Maximum' : 'Minimum')
-    , $schemaExcl = it.schema[$exclusiveKeyword]
-    , $isDataExcl = it.opts.v5 && $schemaExcl && $schemaExcl.$data
-    , $op = $isMax ? '<' : '>'
-    , $result = 'result' + $lvl;
-}}
-
-{{# def.$data }}
-
-
-{{? $isDataExcl }}
-  {{
-    var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr)
-      , $exclusive = 'exclusive' + $lvl
-      , $opExpr = 'op' + $lvl
-      , $opStr = '\' + ' + $opExpr + ' + \'';
-  }}
-  var schemaExcl{{=$lvl}} = {{=$schemaValueExcl}};
-  {{ $schemaValueExcl = 'schemaExcl' + $lvl; }}
-
-  if (typeof {{=$schemaValueExcl}} != 'boolean' && {{=$schemaValueExcl}} !== undefined) {
-    {{=$valid}} = false;
-    {{ var $errorKeyword = $exclusiveKeyword; }}
-    {{# def.error:'_formatExclusiveLimit' }}
-  }
-
-  {{# def.elseIfValid }}
-
-  {{# def.compareFormat }}
-  var {{=$exclusive}} = {{=$schemaValueExcl}} === true;
-
-  if ({{=$valid}} === undefined) {
-    {{=$valid}} = {{=$exclusive}}
-                  ? {{=$result}} {{=$op}} 0
-                  : {{=$result}} {{=$op}}= 0;
-  }
-
-  if (!{{=$valid}}) var op{{=$lvl}} = {{=$exclusive}} ? '{{=$op}}' : '{{=$op}}=';
-{{??}}
-  {{
-    var $exclusive = $schemaExcl === true
-      , $opStr = $op;  /*used in error*/
-    if (!$exclusive) $opStr += '=';
-    var $opExpr = '\'' + $opStr + '\''; /*used in error*/
-  }}
-
-  {{# def.compareFormat }}
-
-  if ({{=$valid}} === undefined)
-    {{=$valid}} = {{=$result}} {{=$op}}{{?!$exclusive}}={{?}} 0;
-{{?}}
-
-{{= $closingBraces }}
-
-if (!{{=$valid}}) {
-  {{ var $errorKeyword = $keyword; }}
-  {{# def.error:'_formatLimit' }}
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/v5/constant.jst
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/v5/constant.jst b/node_modules/ajv/lib/dot/v5/constant.jst
deleted file mode 100644
index 67969c1..0000000
--- a/node_modules/ajv/lib/dot/v5/constant.jst
+++ /dev/null
@@ -1,10 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.$data }}
-
-{{? !$isData }}
-  var schema{{=$lvl}} = validate.schema{{=$schemaPath}};
-{{?}}
-var {{=$valid}} = equal({{=$data}}, schema{{=$lvl}});
-{{# def.checkError:'constant' }}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/v5/patternRequired.jst
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/v5/patternRequired.jst b/node_modules/ajv/lib/dot/v5/patternRequired.jst
deleted file mode 100644
index 9af2cdc..0000000
--- a/node_modules/ajv/lib/dot/v5/patternRequired.jst
+++ /dev/null
@@ -1,28 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-
-{{
-  var $key = 'key' + $lvl
-    , $matched = 'patternMatched' + $lvl
-    , $closingBraces = ''
-    , $ownProperties = it.opts.ownProperties;
-}}
-
-var {{=$valid}} = true;
-{{~ $schema:$pProperty }}
-  var {{=$matched}} = false;
-  for (var {{=$key}} in {{=$data}}) {
-    {{# def.checkOwnProperty }}
-    {{=$matched}} = {{= it.usePattern($pProperty) }}.test({{=$key}});
-    if ({{=$matched}}) break;
-  }
-
-  {{ var $missingPattern = it.util.escapeQuotes($pProperty); }}
-  if (!{{=$matched}}) {
-    {{=$valid}} = false;
-    {{# def.addError:'patternRequired' }}
-  } {{# def.elseIfValid }}
-{{~}}
-
-{{= $closingBraces }}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/v5/switch.jst
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/v5/switch.jst b/node_modules/ajv/lib/dot/v5/switch.jst
deleted file mode 100644
index 389678e..0000000
--- a/node_modules/ajv/lib/dot/v5/switch.jst
+++ /dev/null
@@ -1,73 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.setupKeyword }}
-{{# def.setupNextLevel }}
-
-
-{{## def.validateIf:
-  {{# def.setCompositeRule }}
-  {{ $it.createErrors = false; }}
-  {{# def._validateSwitchRule:if }}
-  {{ $it.createErrors = true; }}
-  {{# def.resetCompositeRule }}
-  {{=$ifPassed}} = {{=$nextValid}};
-#}}
-
-{{## def.validateThen:
-  {{? typeof $sch.then == 'boolean' }}
-    {{? $sch.then === false }}
-      {{# def.error:'switch' }}
-    {{?}}
-    var {{=$nextValid}} = {{= $sch.then }};
-  {{??}}
-    {{# def._validateSwitchRule:then }}
-  {{?}}
-#}}
-
-{{## def._validateSwitchRule:_clause:
-  {{
-    $it.schema = $sch._clause;
-    $it.schemaPath = $schemaPath + '[' + $caseIndex + ']._clause';
-    $it.errSchemaPath = $errSchemaPath + '/' + $caseIndex + '/_clause';
-  }}
-  {{# def.insertSubschemaCode }}
-#}}
-
-{{## def.switchCase:
-  {{? $sch.if && {{# def.nonEmptySchema:$sch.if }} }}
-    var {{=$errs}} = errors;
-    {{# def.validateIf }}
-    if ({{=$ifPassed}}) {
-      {{# def.validateThen }}  
-    } else {
-      {{# def.resetErrors }}
-    }
-  {{??}}
-    {{=$ifPassed}} = true;
-    {{# def.validateThen }}
-  {{?}}
-#}}
-
-
-{{
-  var $ifPassed = 'ifPassed' + it.level
-    , $currentBaseId = $it.baseId
-    , $shouldContinue;
-}}
-var {{=$ifPassed}};
-
-{{~ $schema:$sch:$caseIndex }}
-  {{? $caseIndex && !$shouldContinue }}
-    if (!{{=$ifPassed}}) {
-    {{ $closingBraces+= '}'; }}
-  {{?}}
-
-  {{# def.switchCase }}
-  {{ $shouldContinue = $sch.continue }}
-{{~}}
-
-{{= $closingBraces }}
-
-var {{=$valid}} = {{=$nextValid}};
-
-{{# def.cleanUp }}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dot/validate.jst
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dot/validate.jst b/node_modules/ajv/lib/dot/validate.jst
deleted file mode 100644
index 1b08758..0000000
--- a/node_modules/ajv/lib/dot/validate.jst
+++ /dev/null
@@ -1,210 +0,0 @@
-{{# def.definitions }}
-{{# def.errors }}
-{{# def.defaults }}
-{{# def.coerce }}
-
-{{ /**
-    * schema compilation (render) time:
-    * it = { schema, RULES, _validate, opts }
-    * it.validate - this template function,
-    *   it is used recursively to generate code for subschemas
-    *
-    * runtime:
-    * "validate" is a variable name to which this function will be assigned
-    * validateRef etc. are defined in the parent scope in index.js
-    */ }}
-
-{{ var $async = it.schema.$async === true; }}
-
-{{? it.isTop}}
-  {{
-    var $top = it.isTop
-      , $lvl = it.level = 0
-      , $dataLvl = it.dataLevel = 0
-      , $data = 'data';
-    it.rootId = it.resolve.fullPath(it.root.schema.id);
-    it.baseId = it.baseId || it.rootId;
-    if ($async) {
-      it.async = true;
-      var $es7 = it.opts.async == 'es7';
-      it.yieldAwait = $es7 ? 'await' : 'yield';
-    }
-    delete it.isTop;
-
-    it.dataPathArr = [undefined];
-  }}
-
-  var validate =
-  {{? $async }}
-    {{? $es7 }}
-      (async function
-    {{??}}
-      {{? it.opts.async == 'co*'}}co.wrap{{?}}(function*
-    {{?}}
-  {{??}}
-    (function
-  {{?}}
-    (data, dataPath, parentData, parentDataProperty, rootData) {
-    'use strict';
-    var vErrors = null; {{ /* don't edit, used in replace */ }}
-    var errors = 0;     {{ /* don't edit, used in replace */ }}
-    if (rootData === undefined) rootData = data;
-{{??}}
-  {{
-    var $lvl = it.level
-      , $dataLvl = it.dataLevel
-      , $data = 'data' + ($dataLvl || '');
-
-    if (it.schema.id) it.baseId = it.resolve.url(it.baseId, it.schema.id);
-
-    if ($async && !it.async) throw new Error('async schema in sync schema');
-  }}
-
-  var errs_{{=$lvl}} = errors;
-{{?}}
-
-{{
-  var $valid = 'valid' + $lvl
-    , $breakOnError = !it.opts.allErrors
-    , $closingBraces1 = ''
-    , $closingBraces2 = ''
-    , $errorKeyword;
-
-  var $typeSchema = it.schema.type
-    , $typeIsArray = Array.isArray($typeSchema);
-}}
-
-{{## def.checkType:
-  {{
-    var $schemaPath = it.schemaPath + '.type'
-      , $errSchemaPath = it.errSchemaPath + '/type'
-      , $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType';
-  }}
-
-  if ({{= it.util[$method]($typeSchema, $data, true) }}) {
-#}}
-
-{{? $typeSchema && it.opts.coerceTypes }}
-  {{ var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema); }}
-  {{? $coerceToTypes }}
-    {{# def.checkType }}
-      {{# def.coerceType }}
-    }
-  {{?}}
-{{?}}
-
-{{ var $refKeywords; }}
-{{? it.schema.$ref && ($refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref')) }}
-  {{? it.opts.extendRefs == 'fail' }}
-    {{ throw new Error('$ref: validation keywords used in schema at path "' + it.errSchemaPath + '"'); }}
-  {{?? it.opts.extendRefs == 'ignore' }}
-    {{
-      $refKeywords = false;
-      console.log('$ref: keywords ignored in schema at path "' + it.errSchemaPath + '"');
-    }}
-  {{?? it.opts.extendRefs !== true }}
-    {{ console.log('$ref: all keywords used in schema at path "' + it.errSchemaPath + '". It will change in the next major version, see issue #260. Use option { extendRefs: true } to keep current behaviour'); }}
-  {{?}}
-{{?}}
-
-{{? it.schema.$ref && !$refKeywords }}
-  {{= it.RULES.all.$ref.code(it, '$ref') }}
-  {{? $breakOnError }}
-    }
-    if (errors === {{?$top}}0{{??}}errs_{{=$lvl}}{{?}}) {
-    {{ $closingBraces2 += '}'; }}
-  {{?}}
-{{??}}
-  {{~ it.RULES:$rulesGroup }}
-    {{? $shouldUseGroup($rulesGroup) }}
-      {{? $rulesGroup.type }}
-        if ({{= it.util.checkDataType($rulesGroup.type, $data) }}) {
-      {{?}}
-        {{? it.opts.useDefaults && !it.compositeRule }}
-          {{? $rulesGroup.type == 'object' && it.schema.properties }}
-            {{# def.defaultProperties }}
-          {{?? $rulesGroup.type == 'array' && Array.isArray(it.schema.items) }}
-            {{# def.defaultItems }}
-          {{?}}
-        {{?}}
-        {{~ $rulesGroup.rules:$rule }}
-          {{? $shouldUseRule($rule) }}
-            {{= $rule.code(it, $rule.keyword) }}
-            {{? $breakOnError }}
-              {{ $closingBraces1 += '}'; }}
-            {{?}}
-          {{?}}
-        {{~}}
-        {{? $breakOnError }}
-          {{= $closingBraces1 }}
-          {{ $closingBraces1 = ''; }}
-        {{?}}
-      {{? $rulesGroup.type }}
-        }
-        {{? $typeSchema && $typeSchema === $rulesGroup.type }}
-          {{ var $typeChecked = true; }}
-          else {
-            {{
-              var $schemaPath = it.schemaPath + '.type'
-                , $errSchemaPath = it.errSchemaPath + '/type';
-            }}
-            {{# def.error:'type' }}
-          }
-        {{?}}
-      {{?}}
-
-      {{? $breakOnError }}
-        if (errors === {{?$top}}0{{??}}errs_{{=$lvl}}{{?}}) {
-        {{ $closingBraces2 += '}'; }}
-      {{?}}
-    {{?}}
-  {{~}}
-{{?}}
-
-{{? $typeSchema && !$typeChecked && !(it.opts.coerceTypes && $coerceToTypes) }}
-  {{# def.checkType }}
-    {{# def.error:'type' }}
-  }
-{{?}}
-
-{{? $breakOnError }} {{= $closingBraces2 }} {{?}}
-
-{{? $top }}
-    {{? $async }}
-      if (errors === 0) return true;           {{ /* don't edit, used in replace */ }}
-      else throw new ValidationError(vErrors); {{ /* don't edit, used in replace */ }}
-    {{??}}
-      validate.errors = vErrors; {{ /* don't edit, used in replace */ }}
-      return errors === 0;       {{ /* don't edit, used in replace */ }}
-    {{?}}
-  });
-
-  return validate;
-{{??}}
-  var {{=$valid}} = errors === errs_{{=$lvl}};
-{{?}}
-
-{{# def.cleanUp }}
-
-{{? $top && $breakOnError }}
-  {{# def.cleanUpVarErrors }}
-{{?}}
-
-{{
-  function $shouldUseGroup($rulesGroup) {
-    for (var i=0; i < $rulesGroup.rules.length; i++)
-      if ($shouldUseRule($rulesGroup.rules[i]))
-        return true;
-  }
-
-  function $shouldUseRule($rule) {
-    return it.schema[$rule.keyword] !== undefined ||
-           ( $rule.keyword == 'properties' &&
-             ( it.schema.additionalProperties === false ||
-               typeof it.schema.additionalProperties == 'object'
-               || ( it.schema.patternProperties &&
-                    Object.keys(it.schema.patternProperties).length )
-               || ( it.opts.v5 && it.schema.patternGroups &&
-                    Object.keys(it.schema.patternGroups).length )));
-  }
-}}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dotjs/README.md
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dotjs/README.md b/node_modules/ajv/lib/dotjs/README.md
deleted file mode 100644
index 4d99484..0000000
--- a/node_modules/ajv/lib/dotjs/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-These files are compiled dot templates from dot folder.
-
-Do NOT edit them directly, edit the templates and run `npm run build` from main ajv folder.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dotjs/_formatLimit.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dotjs/_formatLimit.js b/node_modules/ajv/lib/dotjs/_formatLimit.js
deleted file mode 100644
index 996e1f2..0000000
--- a/node_modules/ajv/lib/dotjs/_formatLimit.js
+++ /dev/null
@@ -1,176 +0,0 @@
-'use strict';
-module.exports = function generate__formatLimit(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $valid = 'valid' + $lvl;
-  out += 'var ' + ($valid) + ' = undefined;';
-  if (it.opts.format === false) {
-    out += ' ' + ($valid) + ' = true; ';
-    return out;
-  }
-  var $schemaFormat = it.schema.format,
-    $isDataFormat = it.opts.v5 && $schemaFormat.$data,
-    $closingBraces = '';
-  if ($isDataFormat) {
-    var $schemaValueFormat = it.util.getData($schemaFormat.$data, $dataLvl, it.dataPathArr),
-      $format = 'format' + $lvl,
-      $compare = 'compare' + $lvl;
-    out += ' var ' + ($format) + ' = formats[' + ($schemaValueFormat) + '] , ' + ($compare) + ' = ' + ($format) + ' && ' + ($format) + '.compare;';
-  } else {
-    var $format = it.formats[$schemaFormat];
-    if (!($format && $format.compare)) {
-      out += '  ' + ($valid) + ' = true; ';
-      return out;
-    }
-    var $compare = 'formats' + it.util.getProperty($schemaFormat) + '.compare';
-  }
-  var $isMax = $keyword == 'formatMaximum',
-    $exclusiveKeyword = 'formatExclusive' + ($isMax ? 'Maximum' : 'Minimum'),
-    $schemaExcl = it.schema[$exclusiveKeyword],
-    $isDataExcl = it.opts.v5 && $schemaExcl && $schemaExcl.$data,
-    $op = $isMax ? '<' : '>',
-    $result = 'result' + $lvl;
-  var $isData = it.opts.v5 && $schema && $schema.$data,
-    $schemaValue;
-  if ($isData) {
-    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
-    $schemaValue = 'schema' + $lvl;
-  } else {
-    $schemaValue = $schema;
-  }
-  if ($isDataExcl) {
-    var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),
-      $exclusive = 'exclusive' + $lvl,
-      $opExpr = 'op' + $lvl,
-      $opStr = '\' + ' + $opExpr + ' + \'';
-    out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';
-    $schemaValueExcl = 'schemaExcl' + $lvl;
-    out += ' if (typeof ' + ($schemaValueExcl) + ' != \'boolean\' && ' + ($schemaValueExcl) + ' !== undefined) { ' + ($valid) + ' = false; ';
-    var $errorKeyword = $exclusiveKeyword;
-    var $$outStack = $$outStack || [];
-    $$outStack.push(out);
-    out = ''; /* istanbul ignore else */
-    if (it.createErrors !== false) {
-      out += ' { keyword: \'' + ($errorKeyword || '_formatExclusiveLimit') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
-      if (it.opts.messages !== false) {
-        out += ' , message: \'' + ($exclusiveKeyword) + ' should be boolean\' ';
-      }
-      if (it.opts.verbose) {
-        out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-      }
-      out += ' } ';
-    } else {
-      out += ' {} ';
-    }
-    var __err = out;
-    out = $$outStack.pop();
-    if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-      if (it.async) {
-        out += ' throw new ValidationError([' + (__err) + ']); ';
-      } else {
-        out += ' validate.errors = [' + (__err) + ']; return false; ';
-      }
-    } else {
-      out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-    }
-    out += ' }  ';
-    if ($breakOnError) {
-      $closingBraces += '}';
-      out += ' else { ';
-    }
-    if ($isData) {
-      out += ' if (' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \'string\') ' + ($valid) + ' = false; else { ';
-      $closingBraces += '}';
-    }
-    if ($isDataFormat) {
-      out += ' if (!' + ($compare) + ') ' + ($valid) + ' = true; else { ';
-      $closingBraces += '}';
-    }
-    out += ' var ' + ($result) + ' = ' + ($compare) + '(' + ($data) + ',  ';
-    if ($isData) {
-      out += '' + ($schemaValue);
-    } else {
-      out += '' + (it.util.toQuotedString($schema));
-    }
-    out += ' ); if (' + ($result) + ' === undefined) ' + ($valid) + ' = false; var ' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true; if (' + ($valid) + ' === undefined) { ' + ($valid) + ' = ' + ($exclusive) + ' ? ' + ($result) + ' ' + ($op) + ' 0 : ' + ($result) + ' ' + ($op) + '= 0; } if (!' + ($valid) + ') var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \'' + ($op) + '\' : \'' + ($op) + '=\';';
-  } else {
-    var $exclusive = $schemaExcl === true,
-      $opStr = $op;
-    if (!$exclusive) $opStr += '=';
-    var $opExpr = '\'' + $opStr + '\'';
-    if ($isData) {
-      out += ' if (' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \'string\') ' + ($valid) + ' = false; else { ';
-      $closingBraces += '}';
-    }
-    if ($isDataFormat) {
-      out += ' if (!' + ($compare) + ') ' + ($valid) + ' = true; else { ';
-      $closingBraces += '}';
-    }
-    out += ' var ' + ($result) + ' = ' + ($compare) + '(' + ($data) + ',  ';
-    if ($isData) {
-      out += '' + ($schemaValue);
-    } else {
-      out += '' + (it.util.toQuotedString($schema));
-    }
-    out += ' ); if (' + ($result) + ' === undefined) ' + ($valid) + ' = false; if (' + ($valid) + ' === undefined) ' + ($valid) + ' = ' + ($result) + ' ' + ($op);
-    if (!$exclusive) {
-      out += '=';
-    }
-    out += ' 0;';
-  }
-  out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { ';
-  var $errorKeyword = $keyword;
-  var $$outStack = $$outStack || [];
-  $$outStack.push(out);
-  out = ''; /* istanbul ignore else */
-  if (it.createErrors !== false) {
-    out += ' { keyword: \'' + ($errorKeyword || '_formatLimit') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit:  ';
-    if ($isData) {
-      out += '' + ($schemaValue);
-    } else {
-      out += '' + (it.util.toQuotedString($schema));
-    }
-    out += ' , exclusive: ' + ($exclusive) + ' } ';
-    if (it.opts.messages !== false) {
-      out += ' , message: \'should be ' + ($opStr) + ' "';
-      if ($isData) {
-        out += '\' + ' + ($schemaValue) + ' + \'';
-      } else {
-        out += '' + (it.util.escapeQuotes($schema));
-      }
-      out += '"\' ';
-    }
-    if (it.opts.verbose) {
-      out += ' , schema:  ';
-      if ($isData) {
-        out += 'validate.schema' + ($schemaPath);
-      } else {
-        out += '' + (it.util.toQuotedString($schema));
-      }
-      out += '         , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-    }
-    out += ' } ';
-  } else {
-    out += ' {} ';
-  }
-  var __err = out;
-  out = $$outStack.pop();
-  if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-    if (it.async) {
-      out += ' throw new ValidationError([' + (__err) + ']); ';
-    } else {
-      out += ' validate.errors = [' + (__err) + ']; return false; ';
-    }
-  } else {
-    out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-  }
-  out += '}';
-  return out;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dotjs/_limit.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dotjs/_limit.js b/node_modules/ajv/lib/dotjs/_limit.js
deleted file mode 100644
index 4d92024..0000000
--- a/node_modules/ajv/lib/dotjs/_limit.js
+++ /dev/null
@@ -1,124 +0,0 @@
-'use strict';
-module.exports = function generate__limit(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $isData = it.opts.v5 && $schema && $schema.$data,
-    $schemaValue;
-  if ($isData) {
-    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
-    $schemaValue = 'schema' + $lvl;
-  } else {
-    $schemaValue = $schema;
-  }
-  var $isMax = $keyword == 'maximum',
-    $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum',
-    $schemaExcl = it.schema[$exclusiveKeyword],
-    $isDataExcl = it.opts.v5 && $schemaExcl && $schemaExcl.$data,
-    $op = $isMax ? '<' : '>',
-    $notOp = $isMax ? '>' : '<';
-  if ($isDataExcl) {
-    var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),
-      $exclusive = 'exclusive' + $lvl,
-      $opExpr = 'op' + $lvl,
-      $opStr = '\' + ' + $opExpr + ' + \'';
-    out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';
-    $schemaValueExcl = 'schemaExcl' + $lvl;
-    out += ' var exclusive' + ($lvl) + '; if (typeof ' + ($schemaValueExcl) + ' != \'boolean\' && typeof ' + ($schemaValueExcl) + ' != \'undefined\') { ';
-    var $errorKeyword = $exclusiveKeyword;
-    var $$outStack = $$outStack || [];
-    $$outStack.push(out);
-    out = ''; /* istanbul ignore else */
-    if (it.createErrors !== false) {
-      out += ' { keyword: \'' + ($errorKeyword || '_exclusiveLimit') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
-      if (it.opts.messages !== false) {
-        out += ' , message: \'' + ($exclusiveKeyword) + ' should be boolean\' ';
-      }
-      if (it.opts.verbose) {
-        out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-      }
-      out += ' } ';
-    } else {
-      out += ' {} ';
-    }
-    var __err = out;
-    out = $$outStack.pop();
-    if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-      if (it.async) {
-        out += ' throw new ValidationError([' + (__err) + ']); ';
-      } else {
-        out += ' validate.errors = [' + (__err) + ']; return false; ';
-      }
-    } else {
-      out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-    }
-    out += ' } else if( ';
-    if ($isData) {
-      out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
-    }
-    out += ' ((exclusive' + ($lvl) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ') || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = exclusive' + ($lvl) + ' ? \'' + ($op) + '\' : \'' + ($op) + '=\';';
-  } else {
-    var $exclusive = $schemaExcl === true,
-      $opStr = $op;
-    if (!$exclusive) $opStr += '=';
-    var $opExpr = '\'' + $opStr + '\'';
-    out += ' if ( ';
-    if ($isData) {
-      out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
-    }
-    out += ' ' + ($data) + ' ' + ($notOp);
-    if ($exclusive) {
-      out += '=';
-    }
-    out += ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') {';
-  }
-  var $errorKeyword = $keyword;
-  var $$outStack = $$outStack || [];
-  $$outStack.push(out);
-  out = ''; /* istanbul ignore else */
-  if (it.createErrors !== false) {
-    out += ' { keyword: \'' + ($errorKeyword || '_limit') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';
-    if (it.opts.messages !== false) {
-      out += ' , message: \'should be ' + ($opStr) + ' ';
-      if ($isData) {
-        out += '\' + ' + ($schemaValue);
-      } else {
-        out += '' + ($schema) + '\'';
-      }
-    }
-    if (it.opts.verbose) {
-      out += ' , schema:  ';
-      if ($isData) {
-        out += 'validate.schema' + ($schemaPath);
-      } else {
-        out += '' + ($schema);
-      }
-      out += '         , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-    }
-    out += ' } ';
-  } else {
-    out += ' {} ';
-  }
-  var __err = out;
-  out = $$outStack.pop();
-  if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-    if (it.async) {
-      out += ' throw new ValidationError([' + (__err) + ']); ';
-    } else {
-      out += ' validate.errors = [' + (__err) + ']; return false; ';
-    }
-  } else {
-    out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-  }
-  out += ' } ';
-  if ($breakOnError) {
-    out += ' else { ';
-  }
-  return out;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dotjs/_limitItems.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dotjs/_limitItems.js b/node_modules/ajv/lib/dotjs/_limitItems.js
deleted file mode 100644
index 6a84362..0000000
--- a/node_modules/ajv/lib/dotjs/_limitItems.js
+++ /dev/null
@@ -1,76 +0,0 @@
-'use strict';
-module.exports = function generate__limitItems(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $isData = it.opts.v5 && $schema && $schema.$data,
-    $schemaValue;
-  if ($isData) {
-    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
-    $schemaValue = 'schema' + $lvl;
-  } else {
-    $schemaValue = $schema;
-  }
-  var $op = $keyword == 'maxItems' ? '>' : '<';
-  out += 'if ( ';
-  if ($isData) {
-    out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
-  }
-  out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';
-  var $errorKeyword = $keyword;
-  var $$outStack = $$outStack || [];
-  $$outStack.push(out);
-  out = ''; /* istanbul ignore else */
-  if (it.createErrors !== false) {
-    out += ' { keyword: \'' + ($errorKeyword || '_limitItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';
-    if (it.opts.messages !== false) {
-      out += ' , message: \'should NOT have ';
-      if ($keyword == 'maxItems') {
-        out += 'more';
-      } else {
-        out += 'less';
-      }
-      out += ' than ';
-      if ($isData) {
-        out += '\' + ' + ($schemaValue) + ' + \'';
-      } else {
-        out += '' + ($schema);
-      }
-      out += ' items\' ';
-    }
-    if (it.opts.verbose) {
-      out += ' , schema:  ';
-      if ($isData) {
-        out += 'validate.schema' + ($schemaPath);
-      } else {
-        out += '' + ($schema);
-      }
-      out += '         , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-    }
-    out += ' } ';
-  } else {
-    out += ' {} ';
-  }
-  var __err = out;
-  out = $$outStack.pop();
-  if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-    if (it.async) {
-      out += ' throw new ValidationError([' + (__err) + ']); ';
-    } else {
-      out += ' validate.errors = [' + (__err) + ']; return false; ';
-    }
-  } else {
-    out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-  }
-  out += '} ';
-  if ($breakOnError) {
-    out += ' else { ';
-  }
-  return out;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dotjs/_limitLength.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dotjs/_limitLength.js b/node_modules/ajv/lib/dotjs/_limitLength.js
deleted file mode 100644
index e378104..0000000
--- a/node_modules/ajv/lib/dotjs/_limitLength.js
+++ /dev/null
@@ -1,81 +0,0 @@
-'use strict';
-module.exports = function generate__limitLength(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $isData = it.opts.v5 && $schema && $schema.$data,
-    $schemaValue;
-  if ($isData) {
-    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
-    $schemaValue = 'schema' + $lvl;
-  } else {
-    $schemaValue = $schema;
-  }
-  var $op = $keyword == 'maxLength' ? '>' : '<';
-  out += 'if ( ';
-  if ($isData) {
-    out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
-  }
-  if (it.opts.unicode === false) {
-    out += ' ' + ($data) + '.length ';
-  } else {
-    out += ' ucs2length(' + ($data) + ') ';
-  }
-  out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';
-  var $errorKeyword = $keyword;
-  var $$outStack = $$outStack || [];
-  $$outStack.push(out);
-  out = ''; /* istanbul ignore else */
-  if (it.createErrors !== false) {
-    out += ' { keyword: \'' + ($errorKeyword || '_limitLength') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';
-    if (it.opts.messages !== false) {
-      out += ' , message: \'should NOT be ';
-      if ($keyword == 'maxLength') {
-        out += 'longer';
-      } else {
-        out += 'shorter';
-      }
-      out += ' than ';
-      if ($isData) {
-        out += '\' + ' + ($schemaValue) + ' + \'';
-      } else {
-        out += '' + ($schema);
-      }
-      out += ' characters\' ';
-    }
-    if (it.opts.verbose) {
-      out += ' , schema:  ';
-      if ($isData) {
-        out += 'validate.schema' + ($schemaPath);
-      } else {
-        out += '' + ($schema);
-      }
-      out += '         , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-    }
-    out += ' } ';
-  } else {
-    out += ' {} ';
-  }
-  var __err = out;
-  out = $$outStack.pop();
-  if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-    if (it.async) {
-      out += ' throw new ValidationError([' + (__err) + ']); ';
-    } else {
-      out += ' validate.errors = [' + (__err) + ']; return false; ';
-    }
-  } else {
-    out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-  }
-  out += '} ';
-  if ($breakOnError) {
-    out += ' else { ';
-  }
-  return out;
-}


[22/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/browser/bluebird.min.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/browser/bluebird.min.js b/node_modules/bluebird/js/browser/bluebird.min.js
deleted file mode 100644
index 59afc96..0000000
--- a/node_modules/bluebird/js/browser/bluebird.min.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/* @preserve
- * The MIT License (MIT)
- * 
- * Copyright (c) 2013-2017 Petka Antonov
- * 
- * 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.
- * 
- */
-/**
- * bluebird build version 3.5.0
- * Features enabled: core, race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each
-*/
-!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.Promise=t()}}(function(){var t,e,n;return function r(t,e,n){function i(s,a){if(!e[s]){if(!t[s]){var c="function"==typeof _dereq_&&_dereq_;if(!a&&c)return c(s,!0);if(o)return o(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var u=e[s]={exports:{}};t[s][0].call(u.exports,function(e){var n=t[s][1][e];return i(n?n:e)},u,u.exports,r,t,e,n)}return e[s].exports}for(var o="function"==typeof _dereq_&&_dereq_,s=0;s<n.length;s++)i(n[s]);return i}({1:[function(t,e,n){"use strict";e.exports=function(t){function e(t){var e=new n(t),r=e.promise();return e.setHowMany(1),e.setUnwrap(),e.init(),r}var n=t._SomePromiseArray;t.any=function(t){return e(t)},t.prototype.any=function(){return e(this)}}},{}]
 ,2:[function(t,e,n){"use strict";function r(){this._customScheduler=!1,this._isTickUsed=!1,this._lateQueue=new u(16),this._normalQueue=new u(16),this._haveDrainedQueues=!1,this._trampolineEnabled=!0;var t=this;this.drainQueues=function(){t._drainQueues()},this._schedule=l}function i(t,e,n){this._lateQueue.push(t,e,n),this._queueTick()}function o(t,e,n){this._normalQueue.push(t,e,n),this._queueTick()}function s(t){this._normalQueue._pushOne(t),this._queueTick()}var a;try{throw new Error}catch(c){a=c}var l=t("./schedule"),u=t("./queue"),p=t("./util");r.prototype.setScheduler=function(t){var e=this._schedule;return this._schedule=t,this._customScheduler=!0,e},r.prototype.hasCustomScheduler=function(){return this._customScheduler},r.prototype.enableTrampoline=function(){this._trampolineEnabled=!0},r.prototype.disableTrampolineIfNecessary=function(){p.hasDevTools&&(this._trampolineEnabled=!1)},r.prototype.haveItemsQueued=function(){return this._isTickUsed||this._haveDrainedQueues},r.prot
 otype.fatalError=function(t,e){e?(process.stderr.write("Fatal "+(t instanceof Error?t.stack:t)+"\n"),process.exit(2)):this.throwLater(t)},r.prototype.throwLater=function(t,e){if(1===arguments.length&&(e=t,t=function(){throw e}),"undefined"!=typeof setTimeout)setTimeout(function(){t(e)},0);else try{this._schedule(function(){t(e)})}catch(n){throw new Error("No async scheduler available\n\n    See http://goo.gl/MqrFmX\n")}},p.hasDevTools?(r.prototype.invokeLater=function(t,e,n){this._trampolineEnabled?i.call(this,t,e,n):this._schedule(function(){setTimeout(function(){t.call(e,n)},100)})},r.prototype.invoke=function(t,e,n){this._trampolineEnabled?o.call(this,t,e,n):this._schedule(function(){t.call(e,n)})},r.prototype.settlePromises=function(t){this._trampolineEnabled?s.call(this,t):this._schedule(function(){t._settlePromises()})}):(r.prototype.invokeLater=i,r.prototype.invoke=o,r.prototype.settlePromises=s),r.prototype._drainQueue=function(t){for(;t.length()>0;){var e=t.shift();if("func
 tion"==typeof e){var n=t.shift(),r=t.shift();e.call(n,r)}else e._settlePromises()}},r.prototype._drainQueues=function(){this._drainQueue(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,this._drainQueue(this._lateQueue)},r.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},r.prototype._reset=function(){this._isTickUsed=!1},e.exports=r,e.exports.firstLineError=a},{"./queue":26,"./schedule":29,"./util":36}],3:[function(t,e,n){"use strict";e.exports=function(t,e,n,r){var i=!1,o=function(t,e){this._reject(e)},s=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(o,o,null,this,t)},a=function(t,e){0===(50397184&this._bitField)&&this._resolveCallback(e.target)},c=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(o){i||(i=!0,t.prototype._propagateFrom=r.propagateFromFunction(),t.prototype._boundValue=r.boundValueFunction());var l=n(o),u=new t(e);u._propagateFrom(this,1);var p=this
 ._target();if(u._setBoundTo(l),l instanceof t){var h={promiseRejectionQueued:!1,promise:u,target:p,bindingPromise:l};p._then(e,s,void 0,u,h),l._then(a,c,void 0,u,h),u._setOnCancel(l)}else u._resolveCallback(p);return u},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152===(2097152&this._bitField)},t.bind=function(e,n){return t.resolve(n).bind(e)}}},{}],4:[function(t,e,n){"use strict";function r(){try{Promise===o&&(Promise=i)}catch(t){}return o}var i;"undefined"!=typeof Promise&&(i=Promise);var o=t("./promise")();o.noConflict=r,e.exports=o},{"./promise":22}],5:[function(t,e,n){"use strict";var r=Object.create;if(r){var i=r(null),o=r(null);i[" size"]=o[" size"]=0}e.exports=function(e){function n(t,n){var r;if(null!=t&&(r=t[n]),"function"!=typeof r){var i="Object "+a.classString(t)+" has no method '"+a.toString(n)+"'";throw new e.TypeError(i)}return
  r}function r(t){var e=this.pop(),r=n(t,e);return r.apply(t,this)}function i(t){return t[this]}function o(t){var e=+this;return 0>e&&(e=Math.max(0,e+t.length)),t[e]}var s,a=t("./util"),c=a.canEvaluate;a.isIdentifier;e.prototype.call=function(t){var e=[].slice.call(arguments,1);return e.push(t),this._then(r,void 0,void 0,e,void 0)},e.prototype.get=function(t){var e,n="number"==typeof t;if(n)e=o;else if(c){var r=s(t);e=null!==r?r:i}else e=i;return this._then(e,void 0,void 0,t,void 0)}}},{"./util":36}],6:[function(t,e,n){"use strict";e.exports=function(e,n,r,i){var o=t("./util"),s=o.tryCatch,a=o.errorObj,c=e._async;e.prototype["break"]=e.prototype.cancel=function(){if(!i.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t._isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var n=t._cancellationParent;if(null==n||!n._isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isF
 ollowing()&&t._followee().cancel(),t._setWillBeCancelled(),e=t,t=n}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),this._enoughBranchesHaveCancelled()?(this._invokeOnCancel(),!0):!1)},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this._isCancellable()&&(this._setCancelled(),c.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},e.prototype.isCancellable=function(){return this.isPending(
 )&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(o.isArray(t))for(var n=0;n<t.length;++n)this._doInvokeOnCancel(t[n],e);else if(void 0!==t)if("function"==typeof t){if(!e){var r=s(t).call(this._boundValue());r===a&&(this._attachExtraTrace(r.e),c.throwLater(r.e))}}else t._resultCancelled(this)},e.prototype._invokeOnCancel=function(){var t=this._onCancel();this._unsetOnCancel(),c.invoke(this._doInvokeOnCancel,this,t)},e.prototype._invokeInternalOnCancel=function(){this._isCancellable()&&(this._doInvokeOnCancel(this._onCancel(),!0),this._unsetOnCancel())},e.prototype._resultCancelled=function(){this.cancel()}}},{"./util":36}],7:[function(t,e,n){"use strict";e.exports=function(e){function n(t,n,a){return function(c){var l=a._boundValue();t:for(var u=0;u<t.length;++u){var p=t[u];if(p===Error||null!=p&&p.prototype instanceof Error){if(c instanceof p)return o(n).call(l,c)}else if("function"==typeof p){var h=o(p).call(l,c);if(h===s)return h;if(h)return o(n).call(l,c)}el
 se if(r.isObject(c)){for(var f=i(p),_=0;_<f.length;++_){var d=f[_];if(p[d]!=c[d])continue t}return o(n).call(l,c)}}return e}}var r=t("./util"),i=t("./es5").keys,o=r.tryCatch,s=r.errorObj;return n}},{"./es5":13,"./util":36}],8:[function(t,e,n){"use strict";e.exports=function(t){function e(){this._trace=new e.CapturedTrace(r())}function n(){return i?new e:void 0}function r(){var t=o.length-1;return t>=0?o[t]:void 0}var i=!1,o=[];return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},e.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,o.push(this._trace))},e.prototype._popContext=function(){if(void 0!==this._trace){var t=o.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},e.CapturedTrace=null,e.create=n,e.deactivateLongStackTraces=function(){},e.activateLongStackTraces=function(){var n=t.prototyp
 e._pushContext,o=t.prototype._popContext,s=t._peekContext,a=t.prototype._peekContext,c=t.prototype._promiseCreated;e.deactivateLongStackTraces=function(){t.prototype._pushContext=n,t.prototype._popContext=o,t._peekContext=s,t.prototype._peekContext=a,t.prototype._promiseCreated=c,i=!1},i=!0,t.prototype._pushContext=e.prototype._pushContext,t.prototype._popContext=e.prototype._popContext,t._peekContext=t.prototype._peekContext=r,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},e}},{}],9:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,e){return{promise:e}}function i(){return!1}function o(t,e,n){var r=this;try{t(e,n,function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+H.toString(t));r._attachCancellationCallback(t)})}catch(i){return i}}function s(t){if(!this._isCancellable())return this;var e=this._onCancel();void 0!==e?H.isArray(e)?e.push(t):this._setOnCanc
 el([e,t]):this._setOnCancel(t)}function a(){return this._onCancelField}function c(t){this._onCancelField=t}function l(){this._cancellationParent=void 0,this._onCancelField=void 0}function u(t,e){if(0!==(1&e)){this._cancellationParent=t;var n=t._branchesRemainingToCancel;void 0===n&&(n=0),t._branchesRemainingToCancel=n+1}0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function p(t,e){0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function h(){var t=this._boundTo;return void 0!==t&&t instanceof e?t.isFulfilled()?t.value():void 0:t}function f(){this._trace=new S(this._peekContext())}function _(t,e){if(N(t)){var n=this._trace;if(void 0!==n&&e&&(n=n._parent),void 0!==n)n.attachExtraTrace(t);else if(!t.__stackCleaned__){var r=j(t);H.notEnumerableProp(t,"stack",r.message+"\n"+r.stack.join("\n")),H.notEnumerableProp(t,"__stackCleaned__",!0)}}}function d(t,e,n,r,i){if(void 0===t&&null!==e&&W){if(void 0!==i&&i._returnedNonUndefined())return;if(0===(65535&r._bitField))return;n&&(n
 +=" ");var o="",s="";if(e._trace){for(var a=e._trace.stack.split("\n"),c=w(a),l=c.length-1;l>=0;--l){var u=c[l];if(!U.test(u)){var p=u.match(M);p&&(o="at "+p[1]+":"+p[2]+":"+p[3]+" ");break}}if(c.length>0)for(var h=c[0],l=0;l<a.length;++l)if(a[l]===h){l>0&&(s="\n"+a[l-1]);break}}var f="a promise was created in a "+n+"handler "+o+"but was not returned from it, see http://goo.gl/rRqMUw"+s;r._warn(f,!0,e)}}function v(t,e){var n=t+" is deprecated and will be removed in a future version.";return e&&(n+=" Use "+e+" instead."),y(n)}function y(t,n,r){if(ot.warnings){var i,o=new L(t);if(n)r._attachExtraTrace(o);else if(ot.longStackTraces&&(i=e._peekContext()))i.attachExtraTrace(o);else{var s=j(o);o.stack=s.message+"\n"+s.stack.join("\n")}tt("warning",o)||E(o,"",!0)}}function m(t,e){for(var n=0;n<e.length-1;++n)e[n].push("From previous event:"),e[n]=e[n].join("\n");return n<e.length&&(e[n]=e[n].join("\n")),t+"\n"+e.join("\n")}function g(t){for(var e=0;e<t.length;++e)(0===t[e].length||e+1<t.le
 ngth&&t[e][0]===t[e+1][0])&&(t.splice(e,1),e--)}function b(t){for(var e=t[0],n=1;n<t.length;++n){for(var r=t[n],i=e.length-1,o=e[i],s=-1,a=r.length-1;a>=0;--a)if(r[a]===o){s=a;break}for(var a=s;a>=0;--a){var c=r[a];if(e[i]!==c)break;e.pop(),i--}e=r}}function w(t){for(var e=[],n=0;n<t.length;++n){var r=t[n],i="    (No stack trace)"===r||q.test(r),o=i&&nt(r);i&&!o&&($&&" "!==r.charAt(0)&&(r="    "+r),e.push(r))}return e}function C(t){for(var e=t.stack.replace(/\s+$/g,"").split("\n"),n=0;n<e.length;++n){var r=e[n];if("    (No stack trace)"===r||q.test(r))break}return n>0&&"SyntaxError"!=t.name&&(e=e.slice(n)),e}function j(t){var e=t.stack,n=t.toString();return e="string"==typeof e&&e.length>0?C(t):["    (No stack trace)"],{message:n,stack:"SyntaxError"==t.name?e:w(e)}}function E(t,e,n){if("undefined"!=typeof console){var r;if(H.isObject(t)){var i=t.stack;r=e+Q(i,t)}else r=e+String(t);"function"==typeof D?D(r,n):("function"==typeof console.log||"object"==typeof console.log)&&console.log
 (r)}}function k(t,e,n,r){var i=!1;try{"function"==typeof e&&(i=!0,"rejectionHandled"===t?e(r):e(n,r))}catch(o){I.throwLater(o)}"unhandledRejection"===t?tt(t,n,r)||i||E(n,"Unhandled rejection "):tt(t,r)}function F(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{e=t&&"function"==typeof t.toString?t.toString():H.toString(t);var n=/\[object [a-zA-Z0-9$_]+\]/;if(n.test(e))try{var r=JSON.stringify(t);e=r}catch(i){}0===e.length&&(e="(empty array)")}return"(<"+x(e)+">, no stack trace)"}function x(t){var e=41;return t.length<e?t:t.substr(0,e-3)+"..."}function T(){return"function"==typeof it}function P(t){var e=t.match(rt);return e?{fileName:e[1],line:parseInt(e[2],10)}:void 0}function R(t,e){if(T()){for(var n,r,i=t.stack.split("\n"),o=e.stack.split("\n"),s=-1,a=-1,c=0;c<i.length;++c){var l=P(i[c]);if(l){n=l.fileName,s=l.line;break}}for(var c=0;c<o.length;++c){var l=P(o[c]);if(l){r=l.fileName,a=l.line;break}}0>s||0>a||!n||!r||n!==r||s>=a||(nt=function(t){if(B.te
 st(t))return!0;var e=P(t);return e&&e.fileName===n&&s<=e.line&&e.line<=a?!0:!1})}}function S(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);it(this,S),e>32&&this.uncycle()}var O,A,D,V=e._getDomain,I=e._async,L=t("./errors").Warning,H=t("./util"),N=H.canAttachTrace,B=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,U=/\((?:timers\.js):\d+:\d+\)/,M=/[\/<\(](.+?):(\d+):(\d+)\)?\s*$/,q=null,Q=null,$=!1,G=!(0==H.env("BLUEBIRD_DEBUG")||!H.env("BLUEBIRD_DEBUG")&&"development"!==H.env("NODE_ENV")),z=!(0==H.env("BLUEBIRD_WARNINGS")||!G&&!H.env("BLUEBIRD_WARNINGS")),X=!(0==H.env("BLUEBIRD_LONG_STACK_TRACES")||!G&&!H.env("BLUEBIRD_LONG_STACK_TRACES")),W=0!=H.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&(z||!!H.env("BLUEBIRD_W_FORGOTTEN_RETURN"));e.prototype.suppressUnhandledRejections=function(){var t=this._target();t._bitField=-1048577&t._bitField|524288},e.prototype._ensurePossibleRejectionHandled=function(){0===(524288&this._bitField)&&(this._setRej
 ectionIsUnhandled(),I.invokeLater(this._notifyUnhandledRejection,this,void 0))},e.prototype._notifyUnhandledRejectionIsHandled=function(){k("rejectionHandled",O,void 0,this)},e.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},e.prototype._returnedNonUndefined=function(){return 0!==(268435456&this._bitField)},e.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var t=this._settledValue();this._setUnhandledRejectionIsNotified(),k("unhandledRejection",A,t,this)}},e.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},e.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},e.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},e.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},e.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnha
 ndledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},e.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},e.prototype._warn=function(t,e,n){return y(t,e,n||this)},e.onPossiblyUnhandledRejection=function(t){var e=V();A="function"==typeof t?null===e?t:H.domainBind(e,t):void 0},e.onUnhandledRejectionHandled=function(t){var e=V();O="function"==typeof t?null===e?t:H.domainBind(e,t):void 0};var K=function(){};e.longStackTraces=function(){if(I.haveItemsQueued()&&!ot.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n    See http://goo.gl/MqrFmX\n");if(!ot.longStackTraces&&T()){var t=e.prototype._captureStackTrace,r=e.prototype._attachExtraTrace;ot.longStackTraces=!0,K=function(){if(I.haveItemsQueued()&&!ot.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n    See http://goo.gl/MqrFmX\n");e.prototype._captu
 reStackTrace=t,e.prototype._attachExtraTrace=r,n.deactivateLongStackTraces(),I.enableTrampoline(),ot.longStackTraces=!1},e.prototype._captureStackTrace=f,e.prototype._attachExtraTrace=_,n.activateLongStackTraces(),I.disableTrampolineIfNecessary()}},e.hasLongStackTraces=function(){return ot.longStackTraces&&T()};var J=function(){try{if("function"==typeof CustomEvent){var t=new CustomEvent("CustomEvent");return H.global.dispatchEvent(t),function(t,e){var n=new CustomEvent(t.toLowerCase(),{detail:e,cancelable:!0});return!H.global.dispatchEvent(n)}}if("function"==typeof Event){var t=new Event("CustomEvent");return H.global.dispatchEvent(t),function(t,e){var n=new Event(t.toLowerCase(),{cancelable:!0});return n.detail=e,!H.global.dispatchEvent(n)}}var t=document.createEvent("CustomEvent");return t.initCustomEvent("testingtheevent",!1,!0,{}),H.global.dispatchEvent(t),function(t,e){var n=document.createEvent("CustomEvent");return n.initCustomEvent(t.toLowerCase(),!1,!0,e),!H.global.dispatc
 hEvent(n)}}catch(e){}return function(){return!1}}(),Y=function(){return H.isNode?function(){return process.emit.apply(process,arguments)}:H.global?function(t){var e="on"+t.toLowerCase(),n=H.global[e];return n?(n.apply(H.global,[].slice.call(arguments,1)),!0):!1}:function(){return!1}}(),Z={promiseCreated:r,promiseFulfilled:r,promiseRejected:r,promiseResolved:r,promiseCancelled:r,promiseChained:function(t,e,n){return{promise:e,child:n}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,n){return{reason:e,promise:n}},rejectionHandled:r},tt=function(t){var e=!1;try{e=Y.apply(null,arguments)}catch(n){I.throwLater(n),e=!0}var r=!1;try{r=J(t,Z[t].apply(null,arguments))}catch(n){I.throwLater(n),r=!0}return r||e};e.config=function(t){if(t=Object(t),"longStackTraces"in t&&(t.longStackTraces?e.longStackTraces():!t.longStackTraces&&e.hasLongStackTraces()&&K()),"warnings"in t){var n=t.warnings;ot.warnings=!!n,W=ot.warnings,H.isObject(n)&&"wForgottenReturn"in n&&(W=!!n.wFor
 gottenReturn)}if("cancellation"in t&&t.cancellation&&!ot.cancellation){if(I.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");e.prototype._clearCancellationData=l,e.prototype._propagateFrom=u,e.prototype._onCancel=a,e.prototype._setOnCancel=c,e.prototype._attachCancellationCallback=s,e.prototype._execute=o,et=u,ot.cancellation=!0}return"monitoring"in t&&(t.monitoring&&!ot.monitoring?(ot.monitoring=!0,e.prototype._fireEvent=tt):!t.monitoring&&ot.monitoring&&(ot.monitoring=!1,e.prototype._fireEvent=i)),e},e.prototype._fireEvent=i,e.prototype._execute=function(t,e,n){try{t(e,n)}catch(r){return r}},e.prototype._onCancel=function(){},e.prototype._setOnCancel=function(t){},e.prototype._attachCancellationCallback=function(t){},e.prototype._captureStackTrace=function(){},e.prototype._attachExtraTrace=function(){},e.prototype._clearCancellationData=function(){},e.prototype._propagateFrom=function(t,e){};var et=p,nt=function(){return!1},rt=/[\/<\(]([^:\
 /]+):(\d+):(?:\d+)\)?\s*$/;H.inherits(S,Error),n.CapturedTrace=S,S.prototype.uncycle=function(){var t=this._length;if(!(2>t)){for(var e=[],n={},r=0,i=this;void 0!==i;++r)e.push(i),i=i._parent;t=this._length=r;for(var r=t-1;r>=0;--r){var o=e[r].stack;void 0===n[o]&&(n[o]=r)}for(var r=0;t>r;++r){var s=e[r].stack,a=n[s];if(void 0!==a&&a!==r){a>0&&(e[a-1]._parent=void 0,e[a-1]._length=1),e[r]._parent=void 0,e[r]._length=1;var c=r>0?e[r-1]:this;t-1>a?(c._parent=e[a+1],c._parent.uncycle(),c._length=c._parent._length+1):(c._parent=void 0,c._length=1);for(var l=c._length+1,u=r-2;u>=0;--u)e[u]._length=l,l++;return}}}},S.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=j(t),n=e.message,r=[e.stack],i=this;void 0!==i;)r.push(w(i.stack.split("\n"))),i=i._parent;b(r),g(r),H.notEnumerableProp(t,"stack",m(n,r)),H.notEnumerableProp(t,"__stackCleaned__",!0)}};var it=function(){var t=/^\s*at\s*/,e=function(t,e){return"string"==typeof t?t:void 0!==e.name&&void 0!=
 =e.message?e.toString():F(e)};if("number"==typeof Error.stackTraceLimit&&"function"==typeof Error.captureStackTrace){Error.stackTraceLimit+=6,q=t,Q=e;var n=Error.captureStackTrace;return nt=function(t){return B.test(t)},function(t,e){Error.stackTraceLimit+=6,n(t,e),Error.stackTraceLimit-=6}}var r=new Error;if("string"==typeof r.stack&&r.stack.split("\n")[0].indexOf("stackDetection@")>=0)return q=/@/,Q=e,$=!0,function(t){t.stack=(new Error).stack};var i;try{throw new Error}catch(o){i="stack"in o}return"stack"in r||!i||"number"!=typeof Error.stackTraceLimit?(Q=function(t,e){return"string"==typeof t?t:"object"!=typeof e&&"function"!=typeof e||void 0===e.name||void 0===e.message?F(e):e.toString()},null):(q=t,Q=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}([]);"undefined"!=typeof console&&"undefined"!=typeof console.warn&&(D=function(t){console.warn(t)},H.isNode&&process.stderr.isTTY?D=function(t,e){var n=e?"":""
 ;console.warn(n+t+"\n")}:H.isNode||"string"!=typeof(new Error).stack||(D=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var ot={warnings:z,longStackTraces:!1,cancellation:!1,monitoring:!1};return X&&e.longStackTraces(),{longStackTraces:function(){return ot.longStackTraces},warnings:function(){return ot.warnings},cancellation:function(){return ot.cancellation},monitoring:function(){return ot.monitoring},propagateFromFunction:function(){return et},boundValueFunction:function(){return h},checkForgottenReturns:d,setBounds:R,warn:y,deprecated:v,CapturedTrace:S,fireDomEvent:J,fireGlobalEvent:Y}}},{"./errors":12,"./util":36}],10:[function(t,e,n){"use strict";e.exports=function(t){function e(){return this.value}function n(){throw this.reason}t.prototype["return"]=t.prototype.thenReturn=function(n){return n instanceof t&&n.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:n},void 0)},t.prototype["throw"]=t.prototype.thenThrow=function(t){return thi
 s._then(n,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,n,void 0,{reason:t},void 0);var e=arguments[1],r=function(){throw e};return this.caught(t,r)},t.prototype.catchReturn=function(n){if(arguments.length<=1)return n instanceof t&&n.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:n},void 0);var r=arguments[1];r instanceof t&&r.suppressUnhandledRejections();var i=function(){return r};return this.caught(n,i)}}},{}],11:[function(t,e,n){"use strict";e.exports=function(t,e){function n(){return o(this)}function r(t,n){return i(t,n,e,e)}var i=t.reduce,o=t.all;t.prototype.each=function(t){return i(this,t,e,0)._then(n,void 0,void 0,this,void 0)},t.prototype.mapSeries=function(t){return i(this,t,e,e)},t.each=function(t,r){return i(t,r,e,0)._then(n,void 0,void 0,t,void 0)},t.mapSeries=r}},{}],12:[function(t,e,n){"use strict";function r(t,e){function n(r){return this instanceof n?(p(this,"message","string"==
 typeof r?r:e),p(this,"name",t),void(Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this))):new n(r)}return u(n,Error),n}function i(t){return this instanceof i?(p(this,"name","OperationalError"),p(this,"message",t),this.cause=t,this.isOperational=!0,void(t instanceof Error?(p(this,"message",t.message),p(this,"stack",t.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor))):new i(t)}var o,s,a=t("./es5"),c=a.freeze,l=t("./util"),u=l.inherits,p=l.notEnumerableProp,h=r("Warning","warning"),f=r("CancellationError","cancellation error"),_=r("TimeoutError","timeout error"),d=r("AggregateError","aggregate error");try{o=TypeError,s=RangeError}catch(v){o=r("TypeError","type error"),s=r("RangeError","range error")}for(var y="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),m=0;m<y.length;++m)"function"==typeof Array.prototype[y[m]]&&(d.prototype[y[m]]=Array
 .prototype[y[m]]);a.defineProperty(d.prototype,"length",{value:0,configurable:!1,writable:!0,enumerable:!0}),d.prototype.isOperational=!0;var g=0;d.prototype.toString=function(){var t=Array(4*g+1).join(" "),e="\n"+t+"AggregateError of:\n";g++,t=Array(4*g+1).join(" ");for(var n=0;n<this.length;++n){for(var r=this[n]===this?"[Circular AggregateError]":this[n]+"",i=r.split("\n"),o=0;o<i.length;++o)i[o]=t+i[o];r=i.join("\n"),e+=r+"\n"}return g--,e},u(i,Error);var b=Error.__BluebirdErrorTypes__;b||(b=c({CancellationError:f,TimeoutError:_,OperationalError:i,RejectionError:i,AggregateError:d}),a.defineProperty(Error,"__BluebirdErrorTypes__",{value:b,writable:!1,enumerable:!1,configurable:!1})),e.exports={Error:Error,TypeError:o,RangeError:s,CancellationError:b.CancellationError,OperationalError:b.OperationalError,TimeoutError:b.TimeoutError,AggregateError:b.AggregateError,Warning:h}},{"./es5":13,"./util":36}],13:[function(t,e,n){var r=function(){"use strict";return void 0===this}();if(r)e.
 exports={freeze:Object.freeze,defineProperty:Object.defineProperty,getDescriptor:Object.getOwnPropertyDescriptor,keys:Object.keys,names:Object.getOwnPropertyNames,getPrototypeOf:Object.getPrototypeOf,isArray:Array.isArray,isES5:r,propertyIsWritable:function(t,e){var n=Object.getOwnPropertyDescriptor(t,e);return!(n&&!n.writable&&!n.set)}};else{var i={}.hasOwnProperty,o={}.toString,s={}.constructor.prototype,a=function(t){var e=[];for(var n in t)i.call(t,n)&&e.push(n);return e},c=function(t,e){return{value:t[e]}},l=function(t,e,n){return t[e]=n.value,t},u=function(t){return t},p=function(t){try{return Object(t).constructor.prototype}catch(e){return s}},h=function(t){try{return"[object Array]"===o.call(t)}catch(e){return!1}};e.exports={isArray:h,keys:a,names:a,defineProperty:l,getDescriptor:c,freeze:u,getPrototypeOf:p,isES5:r,propertyIsWritable:function(){return!0}}}},{}],14:[function(t,e,n){"use strict";e.exports=function(t,e){var n=t.map;t.prototype.filter=function(t,r){return n(this
 ,t,r,e)},t.filter=function(t,r,i){return n(t,r,i,e)}}},{}],15:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t,e,n){this.promise=t,this.type=e,this.handler=n,this.called=!1,this.cancelPromise=null}function o(t){this.finallyHandler=t}function s(t,e){return null!=t.cancelPromise?(arguments.length>1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0):!1}function a(){return l.call(this,this.promise._target()._settledValue())}function c(t){return s(this,t)?void 0:(h.e=t,h)}function l(t){var i=this.promise,l=this.handler;if(!this.called){this.called=!0;var u=this.isFinallyHandler()?l.call(i._boundValue()):l.call(i._boundValue(),t);if(u===r)return u;if(void 0!==u){i._setReturnedNonUndefined();var f=n(u,i);if(f instanceof e){if(null!=this.cancelPromise){if(f._isCancelled()){var _=new p("late cancellation observer");return i._attachExtraTrace(_),h.e=_,h}f.isPending()&&f._attachCancellationCallback(new o(this))}return f._then(a,c,void 0,this,void 
 0)}}}return i.isRejected()?(s(this),h.e=t,h):(s(this),t)}var u=t("./util"),p=e.CancellationError,h=u.errorObj,f=t("./catch_filter")(r);return i.prototype.isFinallyHandler=function(){return 0===this.type},o.prototype._resultCancelled=function(){s(this.finallyHandler)},e.prototype._passThrough=function(t,e,n,r){return"function"!=typeof t?this.then():this._then(n,r,void 0,new i(this,e,t),void 0)},e.prototype.lastly=e.prototype["finally"]=function(t){return this._passThrough(t,0,l,l)},e.prototype.tap=function(t){return this._passThrough(t,1,l)},e.prototype.tapCatch=function(t){var n=arguments.length;if(1===n)return this._passThrough(t,1,void 0,l);var r,i=new Array(n-1),o=0;for(r=0;n-1>r;++r){var s=arguments[r];if(!u.isObject(s))return e.reject(new TypeError("tapCatch statement predicate: expecting an object but got "+u.classString(s)));i[o++]=s}i.length=o;var a=arguments[r];return this._passThrough(f(i,a,this),1,void 0,l)},i}},{"./catch_filter":7,"./util":36}],16:[function(t,e,n){"use s
 trict";e.exports=function(e,n,r,i,o,s){function a(t,n,r){for(var o=0;o<n.length;++o){r._pushContext();var s=f(n[o])(t);if(r._popContext(),s===h){r._pushContext();var a=e.reject(h.e);return r._popContext(),a}var c=i(s,r);if(c instanceof e)return c}return null}function c(t,n,i,o){if(s.cancellation()){var a=new e(r),c=this._finallyPromise=new e(r);this._promise=a.lastly(function(){return c}),a._captureStackTrace(),a._setOnCancel(this)}else{var l=this._promise=new e(r);l._captureStackTrace()}this._stack=o,this._generatorFunction=t,this._receiver=n,this._generator=void 0,this._yieldHandlers="function"==typeof i?[i].concat(_):_,this._yieldedPromise=null,this._cancellationPhase=!1}var l=t("./errors"),u=l.TypeError,p=t("./util"),h=p.errorObj,f=p.tryCatch,_=[];p.inherits(c,o),c.prototype._isResolved=function(){return null===this._promise},c.prototype._cleanup=function(){this._promise=this._generator=null,s.cancellation()&&null!==this._finallyPromise&&(this._finallyPromise._fulfill(),this._fi
 nallyPromise=null)},c.prototype._promiseCancelled=function(){if(!this._isResolved()){var t,n="undefined"!=typeof this._generator["return"];if(n)this._promise._pushContext(),t=f(this._generator["return"]).call(this._generator,void 0),this._promise._popContext();else{var r=new e.CancellationError("generator .return() sentinel");e.coroutine.returnSentinel=r,this._promise._attachExtraTrace(r),this._promise._pushContext(),t=f(this._generator["throw"]).call(this._generator,r),this._promise._popContext()}this._cancellationPhase=!0,this._yieldedPromise=null,this._continue(t)}},c.prototype._promiseFulfilled=function(t){this._yieldedPromise=null,this._promise._pushContext();var e=f(this._generator.next).call(this._generator,t);this._promise._popContext(),this._continue(e)},c.prototype._promiseRejected=function(t){this._yieldedPromise=null,this._promise._attachExtraTrace(t),this._promise._pushContext();var e=f(this._generator["throw"]).call(this._generator,t);this._promise._popContext(),this._
 continue(e)},c.prototype._resultCancelled=function(){if(this._yieldedPromise instanceof e){var t=this._yieldedPromise;this._yieldedPromise=null,t.cancel()}},c.prototype.promise=function(){return this._promise},c.prototype._run=function(){this._generator=this._generatorFunction.call(this._receiver),this._receiver=this._generatorFunction=void 0,this._promiseFulfilled(void 0)},c.prototype._continue=function(t){var n=this._promise;if(t===h)return this._cleanup(),this._cancellationPhase?n.cancel():n._rejectCallback(t.e,!1);var r=t.value;if(t.done===!0)return this._cleanup(),this._cancellationPhase?n.cancel():n._resolveCallback(r);var o=i(r,this._promise);if(!(o instanceof e)&&(o=a(o,this._yieldHandlers,this._promise),null===o))return void this._promiseRejected(new u("A value %s was yielded that could not be treated as a promise\n\n    See http://goo.gl/MqrFmX\n\n".replace("%s",String(r))+"From coroutine:\n"+this._stack.split("\n").slice(1,-7).join("\n")));o=o._target();var s=o._bitField;
 0===(50397184&s)?(this._yieldedPromise=o,o._proxy(this,null)):0!==(33554432&s)?e._async.invoke(this._promiseFulfilled,this,o._value()):0!==(16777216&s)?e._async.invoke(this._promiseRejected,this,o._reason()):this._promiseCancelled();
-},e.coroutine=function(t,e){if("function"!=typeof t)throw new u("generatorFunction must be a function\n\n    See http://goo.gl/MqrFmX\n");var n=Object(e).yieldHandler,r=c,i=(new Error).stack;return function(){var e=t.apply(this,arguments),o=new r(void 0,void 0,n,i),s=o.promise();return o._generator=e,o._promiseFulfilled(void 0),s}},e.coroutine.addYieldHandler=function(t){if("function"!=typeof t)throw new u("expecting a function but got "+p.classString(t));_.push(t)},e.spawn=function(t){if(s.deprecated("Promise.spawn()","Promise.coroutine()"),"function"!=typeof t)return n("generatorFunction must be a function\n\n    See http://goo.gl/MqrFmX\n");var r=new c(t,this),i=r.promise();return r._run(e.spawn),i}}},{"./errors":12,"./util":36}],17:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){var a=t("./util");a.canEvaluate,a.tryCatch,a.errorObj;e.join=function(){var t,e=arguments.length-1;if(e>0&&"function"==typeof arguments[e]){t=arguments[e];var r}var i=[].slice.call(argument
 s);t&&i.pop();var r=new n(i).promise();return void 0!==t?r.spread(t):r}}},{"./util":36}],18:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,e,n,r){this.constructor$(t),this._promise._captureStackTrace();var i=l();this._callback=null===i?e:u.domainBind(i,e),this._preservedValues=r===o?new Array(this.length()):null,this._limit=n,this._inFlight=0,this._queue=[],f.invoke(this._asyncInit,this,void 0)}function c(t,n,i,o){if("function"!=typeof n)return r("expecting a function but got "+u.classString(n));var s=0;if(void 0!==i){if("object"!=typeof i||null===i)return e.reject(new TypeError("options argument must be an object but it is "+u.classString(i)));if("number"!=typeof i.concurrency)return e.reject(new TypeError("'concurrency' must be a number but it is "+u.classString(i.concurrency)));s=i.concurrency}return s="number"==typeof s&&isFinite(s)&&s>=1?s:0,new a(t,n,s,o).promise()}var l=e._getDomain,u=t("./util"),p=u.tryCatch,h=u.errorObj,f=e._async;u.inherits(a,n)
 ,a.prototype._asyncInit=function(){this._init$(void 0,-2)},a.prototype._init=function(){},a.prototype._promiseFulfilled=function(t,n){var r=this._values,o=this.length(),a=this._preservedValues,c=this._limit;if(0>n){if(n=-1*n-1,r[n]=t,c>=1&&(this._inFlight--,this._drainQueue(),this._isResolved()))return!0}else{if(c>=1&&this._inFlight>=c)return r[n]=t,this._queue.push(n),!1;null!==a&&(a[n]=t);var l=this._promise,u=this._callback,f=l._boundValue();l._pushContext();var _=p(u).call(f,t,n,o),d=l._popContext();if(s.checkForgottenReturns(_,d,null!==a?"Promise.filter":"Promise.map",l),_===h)return this._reject(_.e),!0;var v=i(_,this._promise);if(v instanceof e){v=v._target();var y=v._bitField;if(0===(50397184&y))return c>=1&&this._inFlight++,r[n]=v,v._proxy(this,-1*(n+1)),!1;if(0===(33554432&y))return 0!==(16777216&y)?(this._reject(v._reason()),!0):(this._cancel(),!0);_=v._value()}r[n]=_}var m=++this._totalResolved;return m>=o?(null!==a?this._filter(r,a):this._resolve(r),!0):!1},a.prototype.
 _drainQueue=function(){for(var t=this._queue,e=this._limit,n=this._values;t.length>0&&this._inFlight<e;){if(this._isResolved())return;var r=t.pop();this._promiseFulfilled(n[r],r)}},a.prototype._filter=function(t,e){for(var n=e.length,r=new Array(n),i=0,o=0;n>o;++o)t[o]&&(r[i++]=e[o]);r.length=i,this._resolve(r)},a.prototype.preservedValues=function(){return this._preservedValues},e.prototype.map=function(t,e){return c(this,t,e,null)},e.map=function(t,e,n,r){return c(t,e,n,r)}}},{"./util":36}],19:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){var s=t("./util"),a=s.tryCatch;e.method=function(t){if("function"!=typeof t)throw new e.TypeError("expecting a function but got "+s.classString(t));return function(){var r=new e(n);r._captureStackTrace(),r._pushContext();var i=a(t).apply(this,arguments),s=r._popContext();return o.checkForgottenReturns(i,s,"Promise.method",r),r._resolveFromSyncValue(i),r}},e.attempt=e["try"]=function(t){if("function"!=typeof t)return i("expecting a f
 unction but got "+s.classString(t));var r=new e(n);r._captureStackTrace(),r._pushContext();var c;if(arguments.length>1){o.deprecated("calling Promise.try with more than 1 argument");var l=arguments[1],u=arguments[2];c=s.isArray(l)?a(t).apply(u,l):a(t).call(u,l)}else c=a(t)();var p=r._popContext();return o.checkForgottenReturns(c,p,"Promise.try",r),r._resolveFromSyncValue(c),r},e.prototype._resolveFromSyncValue=function(t){t===s.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":36}],20:[function(t,e,n){"use strict";function r(t){return t instanceof Error&&u.getPrototypeOf(t)===Error.prototype}function i(t){var e;if(r(t)){e=new l(t),e.name=t.name,e.message=t.message,e.stack=t.stack;for(var n=u.keys(t),i=0;i<n.length;++i){var o=n[i];p.test(o)||(e[o]=t[o])}return e}return s.markAsOriginatingFromRejection(t),t}function o(t,e){return function(n,r){if(null!==t){if(n){var o=i(a(n));t._attachExtraTrace(o),t._reject(o)}else if(e){var s=[].slice.call(arguments,1);t
 ._fulfill(s)}else t._fulfill(r);t=null}}}var s=t("./util"),a=s.maybeWrapAsError,c=t("./errors"),l=c.OperationalError,u=t("./es5"),p=/^(?:name|message|stack|cause)$/;e.exports=o},{"./errors":12,"./es5":13,"./util":36}],21:[function(t,e,n){"use strict";e.exports=function(e){function n(t,e){var n=this;if(!o.isArray(t))return r.call(n,t,e);var i=a(e).apply(n._boundValue(),[null].concat(t));i===c&&s.throwLater(i.e)}function r(t,e){var n=this,r=n._boundValue(),i=void 0===t?a(e).call(r,null):a(e).call(r,null,t);i===c&&s.throwLater(i.e)}function i(t,e){var n=this;if(!t){var r=new Error(t+"");r.cause=t,t=r}var i=a(e).call(n._boundValue(),t);i===c&&s.throwLater(i.e)}var o=t("./util"),s=e._async,a=o.tryCatch,c=o.errorObj;e.prototype.asCallback=e.prototype.nodeify=function(t,e){if("function"==typeof t){var o=r;void 0!==e&&Object(e).spread&&(o=n),this._then(o,i,void 0,this,t)}return this}}},{"./util":36}],22:[function(t,e,n){"use strict";e.exports=function(){function n(){}function r(t,e){if(null
 ==t||t.constructor!==i)throw new m("the promise constructor cannot be invoked directly\n\n    See http://goo.gl/MqrFmX\n");if("function"!=typeof e)throw new m("expecting a function but got "+f.classString(e))}function i(t){t!==b&&r(this,t),this._bitField=0,this._fulfillmentHandler0=void 0,this._rejectionHandler0=void 0,this._promise0=void 0,this._receiver0=void 0,this._resolveFromExecutor(t),this._promiseCreated(),this._fireEvent("promiseCreated",this)}function o(t){this.promise._resolveCallback(t)}function s(t){this.promise._rejectCallback(t,!1)}function a(t){var e=new i(b);e._fulfillmentHandler0=t,e._rejectionHandler0=t,e._promise0=t,e._receiver0=t}var c,l=function(){return new m("circular promise resolution chain\n\n    See http://goo.gl/MqrFmX\n")},u=function(){return new i.PromiseInspection(this._target())},p=function(t){return i.reject(new m(t))},h={},f=t("./util");c=f.isNode?function(){var t=process.domain;return void 0===t&&(t=null),t}:function(){return null},f.notEnumerable
 Prop(i,"_getDomain",c);var _=t("./es5"),d=t("./async"),v=new d;_.defineProperty(i,"_async",{value:v});var y=t("./errors"),m=i.TypeError=y.TypeError;i.RangeError=y.RangeError;var g=i.CancellationError=y.CancellationError;i.TimeoutError=y.TimeoutError,i.OperationalError=y.OperationalError,i.RejectionError=y.OperationalError,i.AggregateError=y.AggregateError;var b=function(){},w={},C={},j=t("./thenables")(i,b),E=t("./promise_array")(i,b,j,p,n),k=t("./context")(i),F=k.create,x=t("./debuggability")(i,k),T=(x.CapturedTrace,t("./finally")(i,j,C)),P=t("./catch_filter")(C),R=t("./nodeback"),S=f.errorObj,O=f.tryCatch;return i.prototype.toString=function(){return"[object Promise]"},i.prototype.caught=i.prototype["catch"]=function(t){var e=arguments.length;if(e>1){var n,r=new Array(e-1),i=0;for(n=0;e-1>n;++n){var o=arguments[n];if(!f.isObject(o))return p("Catch statement predicate: expecting an object but got "+f.classString(o));r[i++]=o}return r.length=i,t=arguments[n],this.then(void 0,P(r,t,t
 his))}return this.then(void 0,t)},i.prototype.reflect=function(){return this._then(u,u,void 0,this,void 0)},i.prototype.then=function(t,e){if(x.warnings()&&arguments.length>0&&"function"!=typeof t&&"function"!=typeof e){var n=".then() only accepts functions but was passed: "+f.classString(t);arguments.length>1&&(n+=", "+f.classString(e)),this._warn(n)}return this._then(t,e,void 0,void 0,void 0)},i.prototype.done=function(t,e){var n=this._then(t,e,void 0,void 0,void 0);n._setIsFinal()},i.prototype.spread=function(t){return"function"!=typeof t?p("expecting a function but got "+f.classString(t)):this.all()._then(t,void 0,void 0,w,void 0)},i.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},i.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed argume
 nts but it does not take any"),new E(this).promise()},i.prototype.error=function(t){return this.caught(f.originatesFromRejection,t)},i.getNewLibraryCopy=e.exports,i.is=function(t){return t instanceof i},i.fromNode=i.fromCallback=function(t){var e=new i(b);e._captureStackTrace();var n=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,r=O(t)(R(e,n));return r===S&&e._rejectCallback(r.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},i.all=function(t){return new E(t).promise()},i.cast=function(t){var e=j(t);return e instanceof i||(e=new i(b),e._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},i.resolve=i.fulfilled=i.cast,i.reject=i.rejected=function(t){var e=new i(b);return e._captureStackTrace(),e._rejectCallback(t,!0),e},i.setScheduler=function(t){if("function"!=typeof t)throw new m("expecting a function but got "+f.classString(t));return v.setScheduler(t)},i.prototype._then=function(t,e,n,r,o){var s=void 0!==o,a=s?o:new i(b),l=this._target(),u=l._bitField;s||(a
 ._propagateFrom(this,3),a._captureStackTrace(),void 0===r&&0!==(2097152&this._bitField)&&(r=0!==(50397184&u)?this._boundValue():l===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,a));var p=c();if(0!==(50397184&u)){var h,_,d=l._settlePromiseCtx;0!==(33554432&u)?(_=l._rejectionHandler0,h=t):0!==(16777216&u)?(_=l._fulfillmentHandler0,h=e,l._unsetRejectionIsUnhandled()):(d=l._settlePromiseLateCancellationObserver,_=new g("late cancellation observer"),l._attachExtraTrace(_),h=e),v.invoke(d,l,{handler:null===p?h:"function"==typeof h&&f.domainBind(p,h),promise:a,receiver:r,value:_})}else l._addCallbacks(t,e,a,r,p);return a},i.prototype._length=function(){return 65535&this._bitField},i.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},i.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},i.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},i.prototype._setFulfilled=function(){this._bitField=3355
 4432|this._bitField,this._fireEvent("promiseFulfilled",this)},i.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},i.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},i.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},i.prototype._isFinal=function(){return(4194304&this._bitField)>0},i.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},i.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},i.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},i.prototype._setAsyncGuaranteed=function(){v.hasCustomScheduler()||(this._bitField=134217728|this._bitField)},i.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];return e===h?void 0:void 0===e&&this._isBound()?this._boundValue():e},i.prototype._promiseAt=functio
 n(t){return this[4*t-4+2]},i.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},i.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},i.prototype._boundValue=function(){},i.prototype._migrateCallback0=function(t){var e=(t._bitField,t._fulfillmentHandler0),n=t._rejectionHandler0,r=t._promise0,i=t._receiverAt(0);void 0===i&&(i=h),this._addCallbacks(e,n,r,i,null)},i.prototype._migrateCallbackAt=function(t,e){var n=t._fulfillmentHandlerAt(e),r=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=h),this._addCallbacks(n,r,i,o,null)},i.prototype._addCallbacks=function(t,e,n,r,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=n,this._receiver0=r,"function"==typeof t&&(this._fulfillmentHandler0=null===i?t:f.domainBind(i,t)),"function"==typeof e&&(this._rejectionHandler0=null===i?e:f.domainBind(i,e));else{var s=4*o-4;this[s+2]=n,this[s+3]=r,"function"==typeof t&&(this[s+0]=null===i?t:f.domainBind(i,t)),"funct
 ion"==typeof e&&(this[s+1]=null===i?e:f.domainBind(i,e))}return this._setLength(o+1),o},i.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},i.prototype._resolveCallback=function(t,e){if(0===(117506048&this._bitField)){if(t===this)return this._rejectCallback(l(),!1);var n=j(t,this);if(!(n instanceof i))return this._fulfill(t);e&&this._propagateFrom(n,2);var r=n._target();if(r===this)return void this._reject(l());var o=r._bitField;if(0===(50397184&o)){var s=this._length();s>0&&r._migrateCallback0(this);for(var a=1;s>a;++a)r._migrateCallbackAt(this,a);this._setFollowing(),this._setLength(0),this._setFollowee(r)}else if(0!==(33554432&o))this._fulfill(r._value());else if(0!==(16777216&o))this._reject(r._reason());else{var c=new g("late cancellation observer");r._attachExtraTrace(c),this._reject(c)}}},i.prototype._rejectCallback=function(t,e,n){var r=f.ensureErrorObject(t),i=r===t;if(!i&&!n&&x.warnings()){var o="a promise was rejected with a non-error: "+f.classSt
 ring(t);this._warn(o,!0)}this._attachExtraTrace(r,e?i:!1),this._reject(t)},i.prototype._resolveFromExecutor=function(t){if(t!==b){var e=this;this._captureStackTrace(),this._pushContext();var n=!0,r=this._execute(t,function(t){e._resolveCallback(t)},function(t){e._rejectCallback(t,n)});n=!1,this._popContext(),void 0!==r&&e._rejectCallback(r,!0)}},i.prototype._settlePromiseFromHandler=function(t,e,n,r){var i=r._bitField;if(0===(65536&i)){r._pushContext();var o;e===w?n&&"number"==typeof n.length?o=O(t).apply(this._boundValue(),n):(o=S,o.e=new m("cannot .spread() a non-array: "+f.classString(n))):o=O(t).call(e,n);var s=r._popContext();i=r._bitField,0===(65536&i)&&(o===C?r._reject(n):o===S?r._rejectCallback(o.e,!1):(x.checkForgottenReturns(o,s,"",r,this),r._resolveCallback(o)))}},i.prototype._target=function(){for(var t=this;t._isFollowing();)t=t._followee();return t},i.prototype._followee=function(){return this._rejectionHandler0},i.prototype._setFollowee=function(t){this._rejectionHand
 ler0=t},i.prototype._settlePromise=function(t,e,r,o){var s=t instanceof i,a=this._bitField,c=0!==(134217728&a);0!==(65536&a)?(s&&t._invokeInternalOnCancel(),r instanceof T&&r.isFinallyHandler()?(r.cancelPromise=t,O(e).call(r,o)===S&&t._reject(S.e)):e===u?t._fulfill(u.call(r)):r instanceof n?r._promiseCancelled(t):s||t instanceof E?t._cancel():r.cancel()):"function"==typeof e?s?(c&&t._setAsyncGuaranteed(),this._settlePromiseFromHandler(e,r,o,t)):e.call(r,o,t):r instanceof n?r._isResolved()||(0!==(33554432&a)?r._promiseFulfilled(o,t):r._promiseRejected(o,t)):s&&(c&&t._setAsyncGuaranteed(),0!==(33554432&a)?t._fulfill(o):t._reject(o))},i.prototype._settlePromiseLateCancellationObserver=function(t){var e=t.handler,n=t.promise,r=t.receiver,o=t.value;"function"==typeof e?n instanceof i?this._settlePromiseFromHandler(e,r,o,n):e.call(r,o,n):n instanceof i&&n._reject(o)},i.prototype._settlePromiseCtx=function(t){this._settlePromise(t.promise,t.handler,t.receiver,t.value)},i.prototype._settleP
 romise0=function(t,e,n){var r=this._promise0,i=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(r,t,i,e)},i.prototype._clearCallbackDataAtIndex=function(t){var e=4*t-4;this[e+2]=this[e+3]=this[e+0]=this[e+1]=void 0},i.prototype._fulfill=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(t===this){var n=l();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!==(134217728&e)?this._settlePromises():v.settlePromises(this))}},i.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16))return this._setRejected(),this._fulfillmentHandler0=t,this._isFinal()?v.fatalError(t,f.isNode):void((65535&e)>0?v.settlePromises(this):this._ensurePossibleRejectionHandled())},i.prototype._fulfillPromises=function(t,e){for(var n=1;t>n;n++){var r=this._fulfillmentHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.
 prototype._rejectPromises=function(t,e){for(var n=1;t>n;n++){var r=this._rejectionHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._settlePromises=function(){var t=this._bitField,e=65535&t;if(e>0){if(0!==(16842752&t)){var n=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,n,t),this._rejectPromises(e,n)}else{var r=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,r,t),this._fulfillPromises(e,r)}this._setLength(0)}this._clearCancellationData()},i.prototype._settledValue=function(){var t=this._bitField;return 0!==(33554432&t)?this._rejectionHandler0:0!==(16777216&t)?this._fulfillmentHandler0:void 0},i.defer=i.pending=function(){x.deprecated("Promise.defer","new Promise");var t=new i(b);return{promise:t,resolve:o,reject:s}},f.notEnumerableProp(i,"_makeSelfResolutionError",l),t("./method")(i,b,j,p,x),t("./bind")(i,b,j,x),t("./cancel")(i,E,p,x),t("./direct_resolve
 ")(i),t("./synchronous_inspection")(i),t("./join")(i,E,j,b,v,c),i.Promise=i,i.version="3.5.0",t("./map.js")(i,E,p,j,b,x),t("./call_get.js")(i),t("./using.js")(i,p,j,F,b,x),t("./timers.js")(i,b,x),t("./generators.js")(i,p,b,j,n,x),t("./nodeify.js")(i),t("./promisify.js")(i,b),t("./props.js")(i,E,j,p),t("./race.js")(i,b,j,p),t("./reduce.js")(i,E,p,j,b,x),t("./settle.js")(i,E,x),t("./some.js")(i,E,p),t("./filter.js")(i,b),t("./each.js")(i,b),t("./any.js")(i),f.toFastProperties(i),f.toFastProperties(i.prototype),a({a:1}),a({b:2}),a({c:3}),a(1),a(function(){}),a(void 0),a(!1),a(new i(b)),x.setBounds(d.firstLineError,f.lastLineError),i}},{"./any.js":1,"./async":2,"./bind":3,"./call_get.js":5,"./cancel":6,"./catch_filter":7,"./context":8,"./debuggability":9,"./direct_resolve":10,"./each.js":11,"./errors":12,"./es5":13,"./filter.js":14,"./finally":15,"./generators.js":16,"./join":17,"./map.js":18,"./method":19,"./nodeback":20,"./nodeify.js":21,"./promise_array":23,"./promisify.js":24,"./pro
 ps.js":25,"./race.js":27,"./reduce.js":28,"./settle.js":30,"./some.js":31,"./synchronous_inspection":32,"./thenables":33,"./timers.js":34,"./using.js":35,"./util":36}],23:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){function s(t){switch(t){case-2:return[];case-3:return{};case-6:return new Map}}function a(t){var r=this._promise=new e(n);t instanceof e&&r._propagateFrom(t,3),r._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var c=t("./util");c.isArray;return c.inherits(a,o),a.prototype.length=function(){return this._length},a.prototype.promise=function(){return this._promise},a.prototype._init=function l(t,n){var o=r(this._values,this._promise);if(o instanceof e){o=o._target();var a=o._bitField;if(this._values=o,0===(50397184&a))return this._promise._setAsyncGuaranteed(),o._then(l,this._reject,void 0,this,n);if(0===(33554432&a))return 0!==(16777216&a)?this._reject(o._reason()):this._cancel();o=o._value()}if(o=c.asArray(o),nul
 l===o){var u=i("expecting an array or an iterable object but got "+c.classString(o)).reason();return void this._promise._rejectCallback(u,!1)}return 0===o.length?void(-5===n?this._resolveEmptyArray():this._resolve(s(n))):void this._iterate(o)},a.prototype._iterate=function(t){var n=this.getActualLength(t.length);this._length=n,this._values=this.shouldCopyValues()?new Array(n):this._values;for(var i=this._promise,o=!1,s=null,a=0;n>a;++a){var c=r(t[a],i);c instanceof e?(c=c._target(),s=c._bitField):s=null,o?null!==s&&c.suppressUnhandledRejections():null!==s?0===(50397184&s)?(c._proxy(this,a),this._values[a]=c):o=0!==(33554432&s)?this._promiseFulfilled(c._value(),a):0!==(16777216&s)?this._promiseRejected(c._reason(),a):this._promiseCancelled(a):o=this._promiseFulfilled(c,a)}o||i._setAsyncGuaranteed()},a.prototype._isResolved=function(){return null===this._values},a.prototype._resolve=function(t){this._values=null,this._promise._fulfill(t)},a.prototype._cancel=function(){!this._isResolv
 ed()&&this._promise._isCancellable()&&(this._values=null,this._promise._cancel())},a.prototype._reject=function(t){this._values=null,this._promise._rejectCallback(t,!1)},a.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},a.prototype._promiseCancelled=function(){return this._cancel(),!0},a.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},a.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var n=0;n<t.length;++n)t[n]instanceof e&&t[n].cancel()}},a.prototype.shouldCopyValues=function(){return!0},a.prototype.getActualLength=function(t){return t},a}},{"./util":36}],24:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t){return!C.test(t)}function i(t){try{return t.__isPromisified__===!0}catch(e){return!1}}function o(t,e,n){var r=f.getDataPropertyOrDefault(
 t,e+n,b);return r?i(r):!1}function s(t,e,n){for(var r=0;r<t.length;r+=2){var i=t[r];if(n.test(i))for(var o=i.replace(n,""),s=0;s<t.length;s+=2)if(t[s]===o)throw new m("Cannot promisify an API that has normal methods with '%s'-suffix\n\n    See http://goo.gl/MqrFmX\n".replace("%s",e))}}function a(t,e,n,r){for(var a=f.inheritedDataKeys(t),c=[],l=0;l<a.length;++l){var u=a[l],p=t[u],h=r===j?!0:j(u,p,t);"function"!=typeof p||i(p)||o(t,u,e)||!r(u,p,t,h)||c.push(u,p)}return s(c,e,n),c}function c(t,r,i,o,s,a){function c(){var i=r;r===h&&(i=this);var o=new e(n);o._captureStackTrace();var s="string"==typeof u&&this!==l?this[u]:t,c=_(o,a);try{s.apply(i,d(arguments,c))}catch(p){o._rejectCallback(v(p),!0,!0)}return o._isFateSealed()||o._setAsyncGuaranteed(),o}var l=function(){return this}(),u=t;return"string"==typeof u&&(t=o),f.notEnumerableProp(c,"__isPromisified__",!0),c}function l(t,e,n,r,i){for(var o=new RegExp(E(e)+"$"),s=a(t,e,o,n),c=0,l=s.length;l>c;c+=2){var u=s[c],p=s[c+1],_=u+e;if(r===
 k)t[_]=k(u,h,u,p,e,i);else{var d=r(p,function(){return k(u,h,u,p,e,i)});f.notEnumerableProp(d,"__isPromisified__",!0),t[_]=d}}return f.toFastProperties(t),t}function u(t,e,n){return k(t,e,void 0,t,null,n)}var p,h={},f=t("./util"),_=t("./nodeback"),d=f.withAppended,v=f.maybeWrapAsError,y=f.canEvaluate,m=t("./errors").TypeError,g="Async",b={__isPromisified__:!0},w=["arity","length","name","arguments","caller","callee","prototype","__isPromisified__"],C=new RegExp("^(?:"+w.join("|")+")$"),j=function(t){return f.isIdentifier(t)&&"_"!==t.charAt(0)&&"constructor"!==t},E=function(t){return t.replace(/([$])/,"\\$")},k=y?p:c;e.promisify=function(t,e){if("function"!=typeof t)throw new m("expecting a function but got "+f.classString(t));if(i(t))return t;e=Object(e);var n=void 0===e.context?h:e.context,o=!!e.multiArgs,s=u(t,n,o);return f.copyDescriptors(t,s,r),s},e.promisifyAll=function(t,e){if("function"!=typeof t&&"object"!=typeof t)throw new m("the target of promisifyAll must be an object or
  a function\n\n    See http://goo.gl/MqrFmX\n");e=Object(e);var n=!!e.multiArgs,r=e.suffix;"string"!=typeof r&&(r=g);var i=e.filter;"function"!=typeof i&&(i=j);var o=e.promisifier;if("function"!=typeof o&&(o=k),!f.isIdentifier(r))throw new RangeError("suffix must be a valid identifier\n\n    See http://goo.gl/MqrFmX\n");for(var s=f.inheritedDataKeys(t),a=0;a<s.length;++a){var c=t[s[a]];"constructor"!==s[a]&&f.isClass(c)&&(l(c.prototype,r,i,o,n),l(c,r,i,o,n))}return l(t,r,i,o,n)}}},{"./errors":12,"./nodeback":20,"./util":36}],25:[function(t,e,n){"use strict";e.exports=function(e,n,r,i){function o(t){var e,n=!1;if(void 0!==a&&t instanceof a)e=p(t),n=!0;else{var r=u.keys(t),i=r.length;e=new Array(2*i);for(var o=0;i>o;++o){var s=r[o];e[o]=t[s],e[o+i]=s}}this.constructor$(e),this._isMap=n,this._init$(void 0,n?-6:-3)}function s(t){var n,s=r(t);return l(s)?(n=s instanceof e?s._then(e.props,void 0,void 0,void 0,void 0):new o(s).promise(),s instanceof e&&n._propagateFrom(s,2),n):i("cannot aw
 ait properties of a non-object\n\n    See http://goo.gl/MqrFmX\n")}var a,c=t("./util"),l=c.isObject,u=t("./es5");"function"==typeof Map&&(a=Map);var p=function(){function t(t,r){this[e]=t,this[e+n]=r,e++}var e=0,n=0;return function(r){n=r.size,e=0;var i=new Array(2*r.size);return r.forEach(t,i),i}}(),h=function(t){for(var e=new a,n=t.length/2|0,r=0;n>r;++r){var i=t[n+r],o=t[r];e.set(i,o)}return e};c.inherits(o,n),o.prototype._init=function(){},o.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;if(n>=this._length){var r;if(this._isMap)r=h(this._values);else{r={};for(var i=this.length(),o=0,s=this.length();s>o;++o)r[this._values[o+i]]=this._values[o]}return this._resolve(r),!0}return!1},o.prototype.shouldCopyValues=function(){return!1},o.prototype.getActualLength=function(t){return t>>1},e.prototype.props=function(){return s(this)},e.props=function(t){return s(t)}}},{"./es5":13,"./util":36}],26:[function(t,e,n){"use strict";function r(t,e,n,r,i){
 for(var o=0;i>o;++o)n[o+r]=t[o+e],t[o+e]=void 0}function i(t){this._capacity=t,this._length=0,this._front=0}i.prototype._willBeOverCapacity=function(t){return this._capacity<t},i.prototype._pushOne=function(t){var e=this.length();this._checkCapacity(e+1);var n=this._front+e&this._capacity-1;this[n]=t,this._length=e+1},i.prototype.push=function(t,e,n){var r=this.length()+3;if(this._willBeOverCapacity(r))return this._pushOne(t),this._pushOne(e),void this._pushOne(n);var i=this._front+r-3;this._checkCapacity(r);var o=this._capacity-1;this[i+0&o]=t,this[i+1&o]=e,this[i+2&o]=n,this._length=r},i.prototype.shift=function(){var t=this._front,e=this[t];return this[t]=void 0,this._front=t+1&this._capacity-1,this._length--,e},i.prototype.length=function(){return this._length},i.prototype._checkCapacity=function(t){this._capacity<t&&this._resizeTo(this._capacity<<1)},i.prototype._resizeTo=function(t){var e=this._capacity;this._capacity=t;var n=this._front,i=this._length,o=n+i&e-1;r(this,0,this,
 e,o)},e.exports=i},{}],27:[function(t,e,n){"use strict";e.exports=function(e,n,r,i){function o(t,o){var c=r(t);if(c instanceof e)return a(c);if(t=s.asArray(t),null===t)return i("expecting an array or an iterable object but got "+s.classString(t));var l=new e(n);void 0!==o&&l._propagateFrom(o,3);for(var u=l._fulfill,p=l._reject,h=0,f=t.length;f>h;++h){var _=t[h];(void 0!==_||h in t)&&e.cast(_)._then(u,p,void 0,l,null)}return l}var s=t("./util"),a=function(t){return t.then(function(e){return o(e,t)})};e.race=function(t){return o(t,void 0)},e.prototype.race=function(){return o(this,void 0)}}},{"./util":36}],28:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,n,r,i){this.constructor$(t);var s=h();this._fn=null===s?n:f.domainBind(s,n),void 0!==r&&(r=e.resolve(r),r._attachCancellationCallback(this)),this._initialValue=r,this._currentCancellable=null,i===o?this._eachValues=Array(this._length):0===i?this._eachValues=null:this._eachValues=void 0,this._promise._captu
 reStackTrace(),this._init$(void 0,-5)}function c(t,e){this.isFulfilled()?e._resolve(t):e._reject(t)}function l(t,e,n,i){if("function"!=typeof e)return r("expecting a function but got "+f.classString(e));var o=new a(t,e,n,i);return o.promise()}function u(t){this.accum=t,this.array._gotAccum(t);var n=i(this.value,this.array._promise);return n instanceof e?(this.array._currentCancellable=n,n._then(p,void 0,void 0,this,void 0)):p.call(this,n)}function p(t){var n=this.array,r=n._promise,i=_(n._fn);r._pushContext();var o;o=void 0!==n._eachValues?i.call(r._boundValue(),t,this.index,this.length):i.call(r._boundValue(),this.accum,t,this.index,this.length),o instanceof e&&(n._currentCancellable=o);var a=r._popContext();return s.checkForgottenReturns(o,a,void 0!==n._eachValues?"Promise.each":"Promise.reduce",r),o}var h=e._getDomain,f=t("./util"),_=f.tryCatch;f.inherits(a,n),a.prototype._gotAccum=function(t){void 0!==this._eachValues&&null!==this._eachValues&&t!==o&&this._eachValues.push(t)},a.
 prototype._eachComplete=function(t){return null!==this._eachValues&&this._eachValues.push(t),this._eachValues},a.prototype._init=function(){},a.prototype._resolveEmptyArray=function(){this._resolve(void 0!==this._eachValues?this._eachValues:this._initialValue)},a.prototype.shouldCopyValues=function(){return!1},a.prototype._resolve=function(t){this._promise._resolveCallback(t),this._values=null},a.prototype._resultCancelled=function(t){return t===this._initialValue?this._cancel():void(this._isResolved()||(this._resultCancelled$(),this._currentCancellable instanceof e&&this._currentCancellable.cancel(),this._initialValue instanceof e&&this._initialValue.cancel()))},a.prototype._iterate=function(t){this._values=t;var n,r,i=t.length;if(void 0!==this._initialValue?(n=this._initialValue,r=0):(n=e.resolve(t[0]),r=1),this._currentCancellable=n,!n.isRejected())for(;i>r;++r){var o={accum:null,value:t[r],index:r,length:i,array:this};n=n._then(u,void 0,void 0,o,void 0)}void 0!==this._eachValues
 &&(n=n._then(this._eachComplete,void 0,void 0,this,void 0)),n._then(c,c,void 0,n,this)},e.prototype.reduce=function(t,e){return l(this,t,e,null)},e.reduce=function(t,e,n,r){return l(t,e,n,r)}}},{"./util":36}],29:[function(t,e,n){"use strict";var r,i=t("./util"),o=function(){throw new Error("No async scheduler available\n\n    See http://goo.gl/MqrFmX\n")},s=i.getNativePromise();if(i.isNode&&"undefined"==typeof MutationObserver){var a=global.setImmediate,c=process.nextTick;r=i.isRecentNode?function(t){a.call(global,t)}:function(t){c.call(process,t)}}else if("function"==typeof s&&"function"==typeof s.resolve){var l=s.resolve();r=function(t){l.then(t)}}else r="undefined"==typeof MutationObserver||"undefined"!=typeof window&&window.navigator&&(window.navigator.standalone||window.cordova)?"undefined"!=typeof setImmediate?function(t){setImmediate(t)}:"undefined"!=typeof setTimeout?function(t){setTimeout(t,0)}:o:function(){var t=document.createElement("div"),e={attributes:!0},n=!1,r=docume
 nt.createElement("div"),i=new MutationObserver(function(){t.classList.toggle("foo"),n=!1});i.observe(r,e);var o=function(){n||(n=!0,r.classList.toggle("foo"))};return function(n){var r=new MutationObserver(function(){r.disconnect(),n()});r.observe(t,e),o()}}();e.exports=r},{"./util":36}],30:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.constructor$(t)}var o=e.PromiseInspection,s=t("./util");s.inherits(i,n),i.prototype._promiseResolved=function(t,e){this._values[t]=e;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},i.prototype._promiseFulfilled=function(t,e){var n=new o;return n._bitField=33554432,n._settledValueField=t,this._promiseResolved(e,n)},i.prototype._promiseRejected=function(t,e){var n=new o;return n._bitField=16777216,n._settledValueField=t,this._promiseResolved(e,n)},e.settle=function(t){return r.deprecated(".settle()",".reflect()"),new i(t).promise()},e.prototype.settle=function(){return e.settle(this)}}
 },{"./util":36}],31:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.constructor$(t),
-this._howMany=0,this._unwrap=!1,this._initialized=!1}function o(t,e){if((0|e)!==e||0>e)return r("expecting a positive integer\n\n    See http://goo.gl/MqrFmX\n");var n=new i(t),o=n.promise();return n.setHowMany(e),n.init(),o}var s=t("./util"),a=t("./errors").RangeError,c=t("./errors").AggregateError,l=s.isArray,u={};s.inherits(i,n),i.prototype._init=function(){if(this._initialized){if(0===this._howMany)return void this._resolve([]);this._init$(void 0,-5);var t=l(this._values);!this._isResolved()&&t&&this._howMany>this._canPossiblyFulfill()&&this._reject(this._getRangeError(this.length()))}},i.prototype.init=function(){this._initialized=!0,this._init()},i.prototype.setUnwrap=function(){this._unwrap=!0},i.prototype.howMany=function(){return this._howMany},i.prototype.setHowMany=function(t){this._howMany=t},i.prototype._promiseFulfilled=function(t){return this._addFulfilled(t),this._fulfilled()===this.howMany()?(this._values.length=this.howMany(),1===this.howMany()&&this._unwrap?this._
 resolve(this._values[0]):this._resolve(this._values),!0):!1},i.prototype._promiseRejected=function(t){return this._addRejected(t),this._checkOutcome()},i.prototype._promiseCancelled=function(){return this._values instanceof e||null==this._values?this._cancel():(this._addRejected(u),this._checkOutcome())},i.prototype._checkOutcome=function(){if(this.howMany()>this._canPossiblyFulfill()){for(var t=new c,e=this.length();e<this._values.length;++e)this._values[e]!==u&&t.push(this._values[e]);return t.length>0?this._reject(t):this._cancel(),!0}return!1},i.prototype._fulfilled=function(){return this._totalResolved},i.prototype._rejected=function(){return this._values.length-this.length()},i.prototype._addRejected=function(t){this._values.push(t)},i.prototype._addFulfilled=function(t){this._values[this._totalResolved++]=t},i.prototype._canPossiblyFulfill=function(){return this.length()-this._rejected()},i.prototype._getRangeError=function(t){var e="Input array must contain at least "+this._
 howMany+" items but contains only "+t+" items";return new a(e)},i.prototype._resolveEmptyArray=function(){this._reject(this._getRangeError(0))},e.some=function(t,e){return o(t,e)},e.prototype.some=function(t){return o(this,t)},e._SomePromiseArray=i}},{"./errors":12,"./util":36}],32:[function(t,e,n){"use strict";e.exports=function(t){function e(t){void 0!==t?(t=t._target(),this._bitField=t._bitField,this._settledValueField=t._isFateSealed()?t._settledValue():void 0):(this._bitField=0,this._settledValueField=void 0)}e.prototype._settledValue=function(){return this._settledValueField};var n=e.prototype.value=function(){if(!this.isFulfilled())throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n    See http://goo.gl/MqrFmX\n");return this._settledValue()},r=e.prototype.error=e.prototype.reason=function(){if(!this.isRejected())throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n    See http://goo.gl/MqrFmX\n");return this._settledValue
 ()},i=e.prototype.isFulfilled=function(){return 0!==(33554432&this._bitField)},o=e.prototype.isRejected=function(){return 0!==(16777216&this._bitField)},s=e.prototype.isPending=function(){return 0===(50397184&this._bitField)},a=e.prototype.isResolved=function(){return 0!==(50331648&this._bitField)};e.prototype.isCancelled=function(){return 0!==(8454144&this._bitField)},t.prototype.__isCancelled=function(){return 65536===(65536&this._bitField)},t.prototype._isCancelled=function(){return this._target().__isCancelled()},t.prototype.isCancelled=function(){return 0!==(8454144&this._target()._bitField)},t.prototype.isPending=function(){return s.call(this._target())},t.prototype.isRejected=function(){return o.call(this._target())},t.prototype.isFulfilled=function(){return i.call(this._target())},t.prototype.isResolved=function(){return a.call(this._target())},t.prototype.value=function(){return n.call(this._target())},t.prototype.reason=function(){var t=this._target();return t._unsetReject
 ionIsUnhandled(),r.call(t)},t.prototype._value=function(){return this._settledValue()},t.prototype._reason=function(){return this._unsetRejectionIsUnhandled(),this._settledValue()},t.PromiseInspection=e}},{}],33:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,r){if(u(t)){if(t instanceof e)return t;var i=o(t);if(i===l){r&&r._pushContext();var c=e.reject(i.e);return r&&r._popContext(),c}if("function"==typeof i){if(s(t)){var c=new e(n);return t._then(c._fulfill,c._reject,void 0,c,null),c}return a(t,i,r)}}return t}function i(t){return t.then}function o(t){try{return i(t)}catch(e){return l.e=e,l}}function s(t){try{return p.call(t,"_promise0")}catch(e){return!1}}function a(t,r,i){function o(t){a&&(a._resolveCallback(t),a=null)}function s(t){a&&(a._rejectCallback(t,p,!0),a=null)}var a=new e(n),u=a;i&&i._pushContext(),a._captureStackTrace(),i&&i._popContext();var p=!0,h=c.tryCatch(r).call(t,o,s);return p=!1,a&&h===l&&(a._rejectCallback(h.e,!0,!0),a=null),u}var c=t("./util
 "),l=c.errorObj,u=c.isObject,p={}.hasOwnProperty;return r}},{"./util":36}],34:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.handle=t}function o(t){return clearTimeout(this.handle),t}function s(t){throw clearTimeout(this.handle),t}var a=t("./util"),c=e.TimeoutError;i.prototype._resultCancelled=function(){clearTimeout(this.handle)};var l=function(t){return u(+this).thenReturn(t)},u=e.delay=function(t,o){var s,a;return void 0!==o?(s=e.resolve(o)._then(l,null,null,t,void 0),r.cancellation()&&o instanceof e&&s._setOnCancel(o)):(s=new e(n),a=setTimeout(function(){s._fulfill()},+t),r.cancellation()&&s._setOnCancel(new i(a)),s._captureStackTrace()),s._setAsyncGuaranteed(),s};e.prototype.delay=function(t){return u(t,this)};var p=function(t,e,n){var r;r="string"!=typeof e?e instanceof Error?e:new c("operation timed out"):new c(e),a.markAsOriginatingFromRejection(r),t._attachExtraTrace(r),t._reject(r),null!=n&&n.cancel()};e.prototype.timeout=function(t,e){t=+t;var 
 n,a,c=new i(setTimeout(function(){n.isPending()&&p(n,e,a)},t));return r.cancellation()?(a=this.then(),n=a._then(o,s,void 0,c,void 0),n._setOnCancel(c)):n=this._then(o,s,void 0,c,void 0),n}}},{"./util":36}],35:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t){setTimeout(function(){throw t},0)}function c(t){var e=r(t);return e!==t&&"function"==typeof t._isDisposable&&"function"==typeof t._getDisposer&&t._isDisposable()&&e._setDisposable(t._getDisposer()),e}function l(t,n){function i(){if(s>=l)return u._fulfill();var o=c(t[s++]);if(o instanceof e&&o._isDisposable()){try{o=r(o._getDisposer().tryDispose(n),t.promise)}catch(p){return a(p)}if(o instanceof e)return o._then(i,a,null,null,null)}i()}var s=0,l=t.length,u=new e(o);return i(),u}function u(t,e,n){this._data=t,this._promise=e,this._context=n}function p(t,e,n){this.constructor$(t,e,n)}function h(t){return u.isDisposer(t)?(this.resources[this.index]._setDisposable(t),t.promise()):t}function f(t){this.length=
 t,this.promise=null,this[t-1]=null}var _=t("./util"),d=t("./errors").TypeError,v=t("./util").inherits,y=_.errorObj,m=_.tryCatch,g={};u.prototype.data=function(){return this._data},u.prototype.promise=function(){return this._promise},u.prototype.resource=function(){return this.promise().isFulfilled()?this.promise().value():g},u.prototype.tryDispose=function(t){var e=this.resource(),n=this._context;void 0!==n&&n._pushContext();var r=e!==g?this.doDispose(e,t):null;return void 0!==n&&n._popContext(),this._promise._unsetDisposable(),this._data=null,r},u.isDisposer=function(t){return null!=t&&"function"==typeof t.resource&&"function"==typeof t.tryDispose},v(p,u),p.prototype.doDispose=function(t,e){var n=this.data();return n.call(t,t,e)},f.prototype._resultCancelled=function(){for(var t=this.length,n=0;t>n;++n){var r=this[n];r instanceof e&&r.cancel()}},e.using=function(){var t=arguments.length;if(2>t)return n("you must pass at least 2 arguments to Promise.using");var i=arguments[t-1];if("
 function"!=typeof i)return n("expecting a function but got "+_.classString(i));var o,a=!0;2===t&&Array.isArray(arguments[0])?(o=arguments[0],t=o.length,a=!1):(o=arguments,t--);for(var c=new f(t),p=0;t>p;++p){var d=o[p];if(u.isDisposer(d)){var v=d;d=d.promise(),d._setDisposable(v)}else{var g=r(d);g instanceof e&&(d=g._then(h,null,null,{resources:c,index:p},void 0))}c[p]=d}for(var b=new Array(c.length),p=0;p<b.length;++p)b[p]=e.resolve(c[p]).reflect();var w=e.all(b).then(function(t){for(var e=0;e<t.length;++e){var n=t[e];if(n.isRejected())return y.e=n.error(),y;if(!n.isFulfilled())return void w.cancel();t[e]=n.value()}C._pushContext(),i=m(i);var r=a?i.apply(void 0,t):i(t),o=C._popContext();return s.checkForgottenReturns(r,o,"Promise.using",C),r}),C=w.lastly(function(){var t=new e.PromiseInspection(w);return l(c,t)});return c.promise=C,C._setOnCancel(c),C},e.prototype._setDisposable=function(t){this._bitField=131072|this._bitField,this._disposer=t},e.prototype._isDisposable=function(){
 return(131072&this._bitField)>0},e.prototype._getDisposer=function(){return this._disposer},e.prototype._unsetDisposable=function(){this._bitField=-131073&this._bitField,this._disposer=void 0},e.prototype.disposer=function(t){if("function"==typeof t)return new p(t,this,i());throw new d}}},{"./errors":12,"./util":36}],36:[function(t,e,n){"use strict";function r(){try{var t=P;return P=null,t.apply(this,arguments)}catch(e){return T.e=e,T}}function i(t){return P=t,r}function o(t){return null==t||t===!0||t===!1||"string"==typeof t||"number"==typeof t}function s(t){return"function"==typeof t||"object"==typeof t&&null!==t}function a(t){return o(t)?new Error(v(t)):t}function c(t,e){var n,r=t.length,i=new Array(r+1);for(n=0;r>n;++n)i[n]=t[n];return i[n]=e,i}function l(t,e,n){if(!F.isES5)return{}.hasOwnProperty.call(t,e)?t[e]:void 0;var r=Object.getOwnPropertyDescriptor(t,e);return null!=r?null==r.get&&null==r.set?r.value:n:void 0}function u(t,e,n){if(o(t))return t;var r={value:n,configurable
 :!0,enumerable:!1,writable:!0};return F.defineProperty(t,e,r),t}function p(t){throw t}function h(t){try{if("function"==typeof t){var e=F.names(t.prototype),n=F.isES5&&e.length>1,r=e.length>0&&!(1===e.length&&"constructor"===e[0]),i=A.test(t+"")&&F.names(t).length>0;if(n||r||i)return!0}return!1}catch(o){return!1}}function f(t){function e(){}e.prototype=t;for(var n=8;n--;)new e;return t}function _(t){return D.test(t)}function d(t,e,n){for(var r=new Array(t),i=0;t>i;++i)r[i]=e+i+n;return r}function v(t){try{return t+""}catch(e){return"[no string representation]"}}function y(t){return null!==t&&"object"==typeof t&&"string"==typeof t.message&&"string"==typeof t.name}function m(t){try{u(t,"isOperational",!0)}catch(e){}}function g(t){return null==t?!1:t instanceof Error.__BluebirdErrorTypes__.OperationalError||t.isOperational===!0}function b(t){return y(t)&&F.propertyIsWritable(t,"stack")}function w(t){return{}.toString.call(t)}function C(t,e,n){for(var r=F.names(t),i=0;i<r.length;++i){var
  o=r[i];if(n(o))try{F.defineProperty(e,o,F.getDescriptor(t,o))}catch(s){}}}function j(t){return N?process.env[t]:void 0}function E(){if("function"==typeof Promise)try{var t=new Promise(function(){});if("[object Promise]"==={}.toString.call(t))return Promise}catch(e){}}function k(t,e){return t.bind(e)}var F=t("./es5"),x="undefined"==typeof navigator,T={e:{}},P,R="undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:void 0!==this?this:null,S=function(t,e){function n(){this.constructor=t,this.constructor$=e;for(var n in e.prototype)r.call(e.prototype,n)&&"$"!==n.charAt(n.length-1)&&(this[n+"$"]=e.prototype[n])}var r={}.hasOwnProperty;return n.prototype=e.prototype,t.prototype=new n,t.prototype},O=function(){var t=[Array.prototype,Object.prototype,Function.prototype],e=function(e){for(var n=0;n<t.length;++n)if(t[n]===e)return!0;return!1};if(F.isES5){var n=Object.getOwnPropertyNames;return function(t){for(var r=[],i=Object.create(null);null!=t&
 &!e(t);){var o;try{o=n(t)}catch(s){return r}for(var a=0;a<o.length;++a){var c=o[a];if(!i[c]){i[c]=!0;var l=Object.getOwnPropertyDescriptor(t,c);null!=l&&null==l.get&&null==l.set&&r.push(c)}}t=F.getPrototypeOf(t)}return r}}var r={}.hasOwnProperty;return function(n){if(e(n))return[];var i=[];t:for(var o in n)if(r.call(n,o))i.push(o);else{for(var s=0;s<t.length;++s)if(r.call(t[s],o))continue t;i.push(o)}return i}}(),A=/this\s*\.\s*\S+\s*=/,D=/^[a-z$_][a-z$_0-9]*$/i,V=function(){return"stack"in new Error?function(t){return b(t)?t:new Error(v(t))}:function(t){if(b(t))return t;try{throw new Error(v(t))}catch(e){return e}}}(),I=function(t){return F.isArray(t)?t:null};if("undefined"!=typeof Symbol&&Symbol.iterator){var L="function"==typeof Array.from?function(t){return Array.from(t)}:function(t){for(var e,n=[],r=t[Symbol.iterator]();!(e=r.next()).done;)n.push(e.value);return n};I=function(t){return F.isArray(t)?t:null!=t&&"function"==typeof t[Symbol.iterator]?L(t):null}}var H="undefined"!=t
 ypeof process&&"[object process]"===w(process).toLowerCase(),N="undefined"!=typeof process&&"undefined"!=typeof process.env,B={isClass:h,isIdentifier:_,inheritedDataKeys:O,getDataPropertyOrDefault:l,thrower:p,isArray:F.isArray,asArray:I,notEnumerableProp:u,isPrimitive:o,isObject:s,isError:y,canEvaluate:x,errorObj:T,tryCatch:i,inherits:S,withAppended:c,maybeWrapAsError:a,toFastProperties:f,filledRange:d,toString:v,canAttachTrace:b,ensureErrorObject:V,originatesFromRejection:g,markAsOriginatingFromRejection:m,classString:w,copyDescriptors:C,hasDevTools:"undefined"!=typeof chrome&&chrome&&"function"==typeof chrome.loadTimes,isNode:H,hasEnvVariables:N,env:j,global:R,getNativePromise:E,domainBind:k};B.isRecentNode=B.isNode&&function(){var t=process.versions.node.split(".").map(Number);return 0===t[0]&&t[1]>10||t[0]>0}(),B.isNode&&B.toFastProperties(process);try{throw new Error}catch(U){B.lastLineError=U}e.exports=B},{"./es5":13}]},{},[4])(4)}),"undefined"!=typeof window&&null!==window?wi
 ndow.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/any.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/any.js b/node_modules/bluebird/js/release/any.js
deleted file mode 100644
index 05a6228..0000000
--- a/node_modules/bluebird/js/release/any.js
+++ /dev/null
@@ -1,21 +0,0 @@
-"use strict";
-module.exports = function(Promise) {
-var SomePromiseArray = Promise._SomePromiseArray;
-function any(promises) {
-    var ret = new SomePromiseArray(promises);
-    var promise = ret.promise();
-    ret.setHowMany(1);
-    ret.setUnwrap();
-    ret.init();
-    return promise;
-}
-
-Promise.any = function (promises) {
-    return any(promises);
-};
-
-Promise.prototype.any = function () {
-    return any(this);
-};
-
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/assert.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/assert.js b/node_modules/bluebird/js/release/assert.js
deleted file mode 100644
index 4518231..0000000
--- a/node_modules/bluebird/js/release/assert.js
+++ /dev/null
@@ -1,55 +0,0 @@
-"use strict";
-module.exports = (function(){
-var AssertionError = (function() {
-    function AssertionError(a) {
-        this.constructor$(a);
-        this.message = a;
-        this.name = "AssertionError";
-    }
-    AssertionError.prototype = new Error();
-    AssertionError.prototype.constructor = AssertionError;
-    AssertionError.prototype.constructor$ = Error;
-    return AssertionError;
-})();
-
-function getParams(args) {
-    var params = [];
-    for (var i = 0; i < args.length; ++i) params.push("arg" + i);
-    return params;
-}
-
-function nativeAssert(callName, args, expect) {
-    try {
-        var params = getParams(args);
-        var constructorArgs = params;
-        constructorArgs.push("return " +
-                callName + "("+ params.join(",") + ");");
-        var fn = Function.apply(null, constructorArgs);
-        return fn.apply(null, args);
-    } catch (e) {
-        if (!(e instanceof SyntaxError)) {
-            throw e;
-        } else {
-            return expect;
-        }
-    }
-}
-
-return function assert(boolExpr, message) {
-    if (boolExpr === true) return;
-
-    if (typeof boolExpr === "string" &&
-        boolExpr.charAt(0) === "%") {
-        var nativeCallName = boolExpr;
-        var $_len = arguments.length;var args = new Array(Math.max($_len - 2, 0)); for(var $_i = 2; $_i < $_len; ++$_i) {args[$_i - 2] = arguments[$_i];};
-        if (nativeAssert(nativeCallName, args, message) === message) return;
-        message = (nativeCallName + " !== " + message);
-    }
-
-    var ret = new AssertionError(message);
-    if (Error.captureStackTrace) {
-        Error.captureStackTrace(ret, assert);
-    }
-    throw ret;
-};
-})();

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/async.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/async.js b/node_modules/bluebird/js/release/async.js
deleted file mode 100644
index 41f6655..0000000
--- a/node_modules/bluebird/js/release/async.js
+++ /dev/null
@@ -1,161 +0,0 @@
-"use strict";
-var firstLineError;
-try {throw new Error(); } catch (e) {firstLineError = e;}
-var schedule = require("./schedule");
-var Queue = require("./queue");
-var util = require("./util");
-
-function Async() {
-    this._customScheduler = false;
-    this._isTickUsed = false;
-    this._lateQueue = new Queue(16);
-    this._normalQueue = new Queue(16);
-    this._haveDrainedQueues = false;
-    this._trampolineEnabled = true;
-    var self = this;
-    this.drainQueues = function () {
-        self._drainQueues();
-    };
-    this._schedule = schedule;
-}
-
-Async.prototype.setScheduler = function(fn) {
-    var prev = this._schedule;
-    this._schedule = fn;
-    this._customScheduler = true;
-    return prev;
-};
-
-Async.prototype.hasCustomScheduler = function() {
-    return this._customScheduler;
-};
-
-Async.prototype.enableTrampoline = function() {
-    this._trampolineEnabled = true;
-};
-
-Async.prototype.disableTrampolineIfNecessary = function() {
-    if (util.hasDevTools) {
-        this._trampolineEnabled = false;
-    }
-};
-
-Async.prototype.haveItemsQueued = function () {
-    return this._isTickUsed || this._haveDrainedQueues;
-};
-
-
-Async.prototype.fatalError = function(e, isNode) {
-    if (isNode) {
-        process.stderr.write("Fatal " + (e instanceof Error ? e.stack : e) +
-            "\n");
-        process.exit(2);
-    } else {
-        this.throwLater(e);
-    }
-};
-
-Async.prototype.throwLater = function(fn, arg) {
-    if (arguments.length === 1) {
-        arg = fn;
-        fn = function () { throw arg; };
-    }
-    if (typeof setTimeout !== "undefined") {
-        setTimeout(function() {
-            fn(arg);
-        }, 0);
-    } else try {
-        this._schedule(function() {
-            fn(arg);
-        });
-    } catch (e) {
-        throw new Error("No async scheduler available\u000a\u000a    See http://goo.gl/MqrFmX\u000a");
-    }
-};
-
-function AsyncInvokeLater(fn, receiver, arg) {
-    this._lateQueue.push(fn, receiver, arg);
-    this._queueTick();
-}
-
-function AsyncInvoke(fn, receiver, arg) {
-    this._normalQueue.push(fn, receiver, arg);
-    this._queueTick();
-}
-
-function AsyncSettlePromises(promise) {
-    this._normalQueue._pushOne(promise);
-    this._queueTick();
-}
-
-if (!util.hasDevTools) {
-    Async.prototype.invokeLater = AsyncInvokeLater;
-    Async.prototype.invoke = AsyncInvoke;
-    Async.prototype.settlePromises = AsyncSettlePromises;
-} else {
-    Async.prototype.invokeLater = function (fn, receiver, arg) {
-        if (this._trampolineEnabled) {
-            AsyncInvokeLater.call(this, fn, receiver, arg);
-        } else {
-            this._schedule(function() {
-                setTimeout(function() {
-                    fn.call(receiver, arg);
-                }, 100);
-            });
-        }
-    };
-
-    Async.prototype.invoke = function (fn, receiver, arg) {
-        if (this._trampolineEnabled) {
-            AsyncInvoke.call(this, fn, receiver, arg);
-        } else {
-            this._schedule(function() {
-                fn.call(receiver, arg);
-            });
-        }
-    };
-
-    Async.prototype.settlePromises = function(promise) {
-        if (this._trampolineEnabled) {
-            AsyncSettlePromises.call(this, promise);
-        } else {
-            this._schedule(function() {
-                promise._settlePromises();
-            });
-        }
-    };
-}
-
-Async.prototype._drainQueue = function(queue) {
-    while (queue.length() > 0) {
-        var fn = queue.shift();
-        if (typeof fn !== "function") {
-            fn._settlePromises();
-            continue;
-        }
-        var receiver = queue.shift();
-        var arg = queue.shift();
-        fn.call(receiver, arg);
-    }
-};
-
-Async.prototype._drainQueues = function () {
-    this._drainQueue(this._normalQueue);
-    this._reset();
-    this._haveDrainedQueues = true;
-    this._drainQueue(this._lateQueue);
-};
-
-Async.prototype._queueTick = function () {
-    if (!this._isTickUsed) {
-        this._isTickUsed = true;
-        this._schedule(this.drainQueues);
-    }
-};
-
-Async.prototype._reset = function () {
-    this._isTickUsed = false;
-};
-
-module.exports = Async;
-module.exports.firstLineError = firstLineError;


[40/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/dist/ajv.min.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/dist/ajv.min.js b/node_modules/ajv/dist/ajv.min.js
deleted file mode 100644
index c48e7e0..0000000
--- a/node_modules/ajv/dist/ajv.min.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/* ajv 4.11.5: Another JSON Schema Validator */
-!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var r;r="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,r.Ajv=e()}}(function(){var e;return function e(r,t,a){function s(i,n){if(!t[i]){if(!r[i]){var l="function"==typeof require&&require;if(!n&&l)return l(i,!0);if(o)return o(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var h=t[i]={exports:{}};r[i][0].call(h.exports,function(e){var t=r[i][1][e];return s(t?t:e)},h,h.exports,e,r,t,a)}return t[i].exports}for(var o="function"==typeof require&&require,i=0;i<a.length;i++)s(a[i]);return s}({1:[function(e,r,t){"use strict";function a(e,r){r!==!1&&(r=!0);var t,s=e.async,o=e.transpile;switch(typeof o){case"string":var i=m[o];if(!i)throw new Error("bad transpiler: "+o);return e._transpileFunc=i(e,r);case"undefined":case"boolean":if("string"==typeof s
 ){if(t=p[s],!t)throw new Error("bad async mode: "+s);return e.transpile=t(e,r)}for(var n=0;n<v.length;n++){var l=v[n];if(a(l,!1))return d.copy(l,e),e.transpile}throw new Error("generators, nodent and regenerator are not available");case"function":return e._transpileFunc=e.transpile;default:throw new Error("bad transpiler: "+o)}}function s(e,r){try{return new Function("(function*(){})()")(),!0}catch(e){if(r)throw new Error("generators not supported")}}function o(e,r){try{return new Function("(async function(){})()")(),!0}catch(e){if(r)throw new Error("es7 async functions not supported")}}function i(r,t){try{if(!u){u=e("regenerator"),u.runtime()}return r.async&&r.async!==!0||(r.async="es7"),n}catch(e){if(t)throw new Error("regenerator not available")}}function n(e){return u.compile(e).code}function l(r,t){try{if(!f){f=e("nodent")({log:!1,dontInstallRequireHook:!0})}return"es7"!=r.async&&(r.async&&r.async!==!0&&console.warn("nodent transpiles only es7 async functions"),r.async="es7"),c
 }catch(e){if(t)throw new Error("nodent not available")}}function c(e){return f.compile(e,"",{promises:!0,sourcemap:!1}).code}function h(e,r){function t(e,r,a){function o(a){function o(a,o){if(a)return r(a);if(!s._refs[i]&&!s._schemas[i])try{s.addSchema(o,i)}catch(e){return void r(e)}t(e,r)}var i=a.missingSchema;if(s._refs[i]||s._schemas[i])return r(new Error("Schema "+i+" is loaded but "+a.missingRef+" cannot be resolved"));var n=s._loadingSchemas[i];n?"function"==typeof n?s._loadingSchemas[i]=[n,o]:n[n.length]=o:(s._loadingSchemas[i]=o,s._opts.loadSchema(i,function(e,r){var t=s._loadingSchemas[i];if(delete s._loadingSchemas[i],"function"==typeof t)t(e,r);else for(var a=0;a<t.length;a++)t[a](e,r)}))}function i(e,t){if(!a)return r(e,t);setTimeout(function(){r(e,t)})}var n;try{n=s.compile(e)}catch(e){return void(e.missingSchema?o(e):i(e))}i(null,n)}var a,s=this;try{a=this._addSchema(e)}catch(e){return void setTimeout(function(){r(e)})}if(a.validate)setTimeout(function(){r(null,a.valid
 ate)});else{if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");t(e,r,!0)}}r.exports={setup:a,compile:h};var u,f,d=e("./compile/util"),p={"*":s,"co*":s,es7:o},m={nodent:l,regenerator:i},v=[{async:"co*"},{async:"es7",transpile:"nodent"},{async:"co*",transpile:"regenerator"}]},{"./compile/util":11}],2:[function(e,r,t){"use strict";var a=r.exports=function(){this._cache={}};a.prototype.put=function(e,r){this._cache[e]=r},a.prototype.get=function(e){return this._cache[e]},a.prototype.del=function(e){delete this._cache[e]},a.prototype.clear=function(){this._cache={}}},{}],3:[function(e,r,t){"use strict";r.exports={$ref:e("../dotjs/ref"),allOf:e("../dotjs/allOf"),anyOf:e("../dotjs/anyOf"),dependencies:e("../dotjs/dependencies"),enum:e("../dotjs/enum"),format:e("../dotjs/format"),items:e("../dotjs/items"),maximum:e("../dotjs/_limit"),minimum:e("../dotjs/_limit"),maxItems:e("../dotjs/_limitItems"),minItems:e("../dotjs/_limitItems"),maxLengt
 h:e("../dotjs/_limitLength"),minLength:e("../dotjs/_limitLength"),maxProperties:e("../dotjs/_limitProperties"),minProperties:e("../dotjs/_limitProperties"),multipleOf:e("../dotjs/multipleOf"),not:e("../dotjs/not"),oneOf:e("../dotjs/oneOf"),pattern:e("../dotjs/pattern"),properties:e("../dotjs/properties"),required:e("../dotjs/required"),uniqueItems:e("../dotjs/uniqueItems"),validate:e("../dotjs/validate")}},{"../dotjs/_limit":14,"../dotjs/_limitItems":15,"../dotjs/_limitLength":16,"../dotjs/_limitProperties":17,"../dotjs/allOf":18,"../dotjs/anyOf":19,"../dotjs/dependencies":22,"../dotjs/enum":23,"../dotjs/format":24,"../dotjs/items":25,"../dotjs/multipleOf":26,"../dotjs/not":27,"../dotjs/oneOf":28,"../dotjs/pattern":29,"../dotjs/properties":31,"../dotjs/ref":32,"../dotjs/required":33,"../dotjs/uniqueItems":35,"../dotjs/validate":36}],4:[function(e,r,t){"use strict";r.exports=function e(r,t){if(r===t)return!0;var a,s=Array.isArray(r),o=Array.isArray(t);if(s&&o){if(r.length!=t.length)r
 eturn!1;for(a=0;a<r.length;a++)if(!e(r[a],t[a]))return!1;return!0}if(s!=o)return!1;if(r&&t&&"object"==typeof r&&"object"==typeof t){var i=Object.keys(r);if(i.length!==Object.keys(t).length)return!1;var n=r instanceof Date,l=t instanceof Date;if(n&&l)return r.getTime()==t.getTime();if(n!=l)return!1;var c=r instanceof RegExp,h=t instanceof RegExp;if(c&&h)return r.toString()==t.toString();if(c!=h)return!1;for(a=0;a<i.length;a++)if(!Object.prototype.hasOwnProperty.call(t,i[a]))return!1;for(a=0;a<i.length;a++)if(!e(r[i[a]],t[i[a]]))return!1;return!0}return!1}},{}],5:[function(e,r,t){"use strict";function a(e){e="full"==e?"full":"fast";var r=d.copy(a[e]);for(var t in a.compare)r[t]={validate:r[t],compare:a.compare[t]};return r}function s(e){var r=e.match(p);if(!r)return!1;var t=+r[1],a=+r[2];return t>=1&&t<=12&&a>=1&&a<=m[t]}function o(e,r){var t=e.match(v);if(!t)return!1;var a=t[1],s=t[2],o=t[3],i=t[5];return a<=23&&s<=59&&o<=59&&(!r||i)}function i(e){var r=e.split(w);return 2==r.length&
 &s(r[0])&&o(r[1],!0)}function n(e){return e.length<=255&&y.test(e)}function l(e){return j.test(e)&&g.test(e)}function c(e){try{return new RegExp(e),!0}catch(e){return!1}}function h(e,r){if(e&&r)return e>r?1:e<r?-1:e===r?0:void 0}function u(e,r){if(e&&r&&(e=e.match(v),r=r.match(v),e&&r))return e=e[1]+e[2]+e[3]+(e[4]||""),r=r[1]+r[2]+r[3]+(r[4]||""),e>r?1:e<r?-1:e===r?0:void 0}function f(e,r){if(e&&r){e=e.split(w),r=r.split(w);var t=h(e[0],r[0]);if(void 0!==t)return t||u(e[1],r[1])}}var d=e("./util"),p=/^\d\d\d\d-(\d\d)-(\d\d)$/,m=[0,31,29,31,30,31,30,31,31,30,31,30,31],v=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i,y=/^[0-9a-z](?:(?:[-0-9a-z]{0,61})?[0-9a-z])?(\.[0-9a-z](?:(?:[-0-9a-z]{0,61})?[0-9a-z])?)*$/i,g=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:)
 {0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?(?:\#(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?$/i,P=/^(?:urn\:uuid\:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,E=/^(?:\/(?:[^~\/]|~0|~1)*)*$|^\#(?:\/(?:[a-z0
 -9_\-\.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,b=/^(?:0|[1-9][0-9]*)(?:\#|(?:\/(?:[^~\/]|~0|~1)*)*)$/;r.exports=a,a.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s][0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)$/i,uri:/^(?:[a-z][a-z0-9+-.]*)?(?:\:|\/)\/?[^\s]*$/i,email:/^[a-z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:y,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:
 (?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:c,uuid:P,"json-pointer":E,"relative-json-pointer":b},a.full={date:s,time:o,"date-time":i,uri:l,email:/^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&''*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9
 -]*[a-z0-9])?$/i,hostname:n,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}
 ){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:c,uuid:P,"json-pointer":E,"relative-json-pointer":b},a.compare={date:h,time:u,"date-time":f};var w=/t|\s/i,j=/\/|\:/},{"./util":11}],6:[function(e,r,t){"use strict";function a(){if(void 0===d){try{d=e("js-beautify").js_beautify}catch(e){d=!1}}}function s(e,r,t,n){function j(){var e=N.validate,r=e.apply(null,arguments);return j.errors=e.errors,r}function S(e,t,o,i){var n=!t||t&&t.schema==e;if(t.schema!=r.schema)return s.call(k,e,t,o,i);var v=e.$async===!0;v&&!q.transpile&&y.setup(q);var j=g({isTop:!0,schema:e,isRoot:n,baseId:i,root:t,schemaPath:"",errSchemaPath:"#",errorPath:'""',RULES:H,validate:g,util:m,resolve:p,resolveRef:$,usePattern:R,useDefault:I,useCustomRule:A,opts:q,formats:F,self:k}
 );j=f(D,h)+f(Q,l)+f(V,c)+f(U,u)+j,q.beautify&&(a(),d?j=d(j,q.beautify):console.error('"npm install js-beautify" to use beautify option'));var S,x,_=q._transpileFunc;try{x=v&&_?_(j):j;S=new Function("self","RULES","formats","root","refVal","defaults","customRules","co","equal","ucs2length","ValidationError",x)(k,H,F,r,D,V,U,P,b,E,w),D[0]=S}catch(e){throw console.error("Error compiling schema, function code:",x),e}return S.schema=e,S.errors=null,S.refs=L,S.refVal=D,S.root=n?S:t,v&&(S.$async=!0),T&&(S.sourceCode=j),q.sourceCode===!0&&(S.source={patterns:Q,defaults:V}),S}function $(e,a,o){a=p.url(e,a);var i,n,l=L[a];if(void 0!==l)return i=D[l],n="refVal["+l+"]",O(i,n);if(!o&&r.refs){var c=r.refs[a];if(void 0!==c)return i=r.refVal[c],n=x(a,i),O(i,n)}n=x(a);var h=p.call(k,S,r,a);if(!h){var u=t&&t[a];u&&(h=p.inlineRef(u,q.inlineRefs)?u:s.call(k,u,r,t,e))}return h?(_(a,h),O(h,n)):void 0}function x(e,r){var t=D.length;return D[t]=r,L[e]=t,"refVal"+t}function _(e,r){D[L[e]]=r}function O(e,r){
 return"object"==typeof e?{code:r,schema:e,inline:!0}:{code:r,$async:e&&e.$async}}function R(e){var r=C[e];return void 0===r&&(r=C[e]=Q.length,Q[r]=e),"pattern"+r}function I(e){switch(typeof e){case"boolean":case"number":return""+e;case"string":return m.toQuotedString(e);case"object":if(null===e)return"null";var r=v(e),t=z[r];return void 0===t&&(t=z[r]=V.length,V[t]=e),"default"+t}}function A(e,r,t,a){var s=e.definition.validateSchema;if(s&&k._opts.validateSchema!==!1){if(!s(r)){var o="keyword schema is invalid: "+k.errorsText(s.errors);if("log"!=k._opts.validateSchema)throw new Error(o);console.error(o)}}var i,n=e.definition.compile,l=e.definition.inline,c=e.definition.macro;n?i=n.call(k,r,t,a):c?(i=c.call(k,r,t,a),q.validateSchema!==!1&&k.validateSchema(i,!0)):i=l?l.call(k,a,e.keyword,r,t):e.definition.validate;var h=U.length;return U[h]=i,{code:"customRule"+h,validate:i}}var k=this,q=this._opts,D=[void 0],L={},Q=[],C={},V=[],z={},U=[],T=q.sourceCode!==!1;r=r||{schema:e,refVal:D,re
 fs:L};var M=o.call(this,e,r,n),N=this._compilations[M.index];if(M.compiling)return N.callValidate=j;var F=this._formats,H=this.RULES;try{var J=S(e,r,t,n);N.validate=J;var G=N.callValidate;return G&&(G.schema=J.schema,G.errors=null,G.refs=J.refs,G.refVal=J.refVal,G.root=J.root,G.$async=J.$async,T&&(G.sourceCode=J.sourceCode)),J}finally{i.call(this,e,r,n)}}function o(e,r,t){var a=n.call(this,e,r,t);return a>=0?{index:a,compiling:!0}:(a=this._compilations.length,this._compilations[a]={schema:e,root:r,baseId:t},{index:a,compiling:!1})}function i(e,r,t){var a=n.call(this,e,r,t);a>=0&&this._compilations.splice(a,1)}function n(e,r,t){for(var a=0;a<this._compilations.length;a++){var s=this._compilations[a];if(s.schema==e&&s.root==r&&s.baseId==t)return a}return-1}function l(e,r){return"var pattern"+e+" = new RegExp("+m.toQuotedString(r[e])+");"}function c(e){return"var default"+e+" = defaults["+e+"];"}function h(e,r){return r[e]?"var refVal"+e+" = refVal["+e+"];":""}function u(e){return"var 
 customRule"+e+" = customRules["+e+"];"}function f(e,r){if(!e.length)return"";for(var t="",a=0;a<e.length;a++)t+=r(a,e);return t}var d,p=e("./resolve"),m=e("./util"),v=e("json-stable-stringify"),y=e("../async"),g=e("../dotjs/validate"),P=e("co"),E=m.ucs2length,b=e("./equal"),w=e("./validation_error");r.exports=s},{"../async":1,"../dotjs/validate":36,"./equal":4,"./resolve":7,"./util":11,"./validation_error":12,co:47,"json-stable-stringify":48}],7:[function(e,r,t){"use strict";function a(e,r,t){var o=this._refs[t];if("string"==typeof o){if(!this._refs[o])return a.call(this,e,r,o);o=this._refs[o]}if(o=o||this._schemas[t],o instanceof g)return n(o.schema,this._opts.inlineRefs)?o.schema:o.validate||this._compile(o);var i,l,c,h=s.call(this,r,t);return h&&(i=h.schema,r=h.root,c=h.baseId),i instanceof g?l=i.validate||e.call(this,i.schema,r,void 0,c):i&&(l=n(i,this._opts.inlineRefs)?i:e.call(this,i,r,void 0,c)),l}function s(e,r){var t=m.parse(r,!1,!0),a=u(t),s=h(e.schema.id);if(a!==s){var n=
 f(a),l=this._refs[n];if("string"==typeof l)return o.call(this,e,l,t);if(l instanceof g)l.validate||this._compile(l),e=l;else{if(l=this._schemas[n],!(l instanceof g))return;if(l.validate||this._compile(l),n==f(r))return{schema:l,root:e,baseId:s};e=l}if(!e.schema)return;s=h(e.schema.id)}return i.call(this,t,s,e.schema,e)}function o(e,r,t){var a=s.call(this,e,r);if(a){var o=a.schema,n=a.baseId;return e=a.root,o.id&&(n=d(n,o.id)),i.call(this,t,n,o,e)}}function i(e,r,t,a){if(e.hash=e.hash||"","#/"==e.hash.slice(0,2)){for(var o=e.hash.split("/"),i=1;i<o.length;i++){var n=o[i];if(n){if(n=y.unescapeFragment(n),t=t[n],!t)break;if(t.id&&!P[n]&&(r=d(r,t.id)),t.$ref){var l=d(r,t.$ref),c=s.call(this,a,l);c&&(t=c.schema,a=c.root,r=c.baseId)}}}return t&&t!=a.schema?{schema:t,root:a,baseId:r}:void 0}}function n(e,r){return r!==!1&&(void 0===r||r===!0?l(e):r?c(e)<=r:void 0)}function l(e){var r;if(Array.isArray(e)){for(var t=0;t<e.length;t++)if(r=e[t],"object"==typeof r&&!l(r))return!1}else for(var a
  in e){if("$ref"==a)return!1;if(r=e[a],"object"==typeof r&&!l(r))return!1}return!0}function c(e){var r,t=0;if(Array.isArray(e)){for(var a=0;a<e.length;a++)if(r=e[a],"object"==typeof r&&(t+=c(r)),t==1/0)return 1/0}else for(var s in e){if("$ref"==s)return 1/0;if(E[s])t++;else if(r=e[s],"object"==typeof r&&(t+=c(r)+1),t==1/0)return 1/0}return t}function h(e,r){return r!==!1&&(e=f(e)),u(m.parse(e,!1,!0))}function u(e){var r=e.protocol||"//"==e.href.slice(0,2)?"//":"";return(e.protocol||"")+r+(e.host||"")+(e.path||"")+"#"}function f(e){return e?e.replace(b,""):""}function d(e,r){return r=f(r),m.resolve(e,r)}function p(e){function r(e,t,s){if(Array.isArray(e))for(var o=0;o<e.length;o++)r.call(this,e[o],t+"/"+o,s);else if(e&&"object"==typeof e){if("string"==typeof e.id){var i=s=s?m.resolve(s,e.id):e.id;i=f(i);var n=this._refs[i];if("string"==typeof n&&(n=this._refs[n]),n&&n.schema){if(!v(e,n.schema))throw new Error('id "'+i+'" resolves to more than one schema')}else if(i!=f(t))if("#"==i[0]
 ){if(a[i]&&!v(e,a[i]))throw new Error('id "'+i+'" resolves to more than one schema');a[i]=e}else this._refs[i]=t}for(var l in e)r.call(this,e[l],t+"/"+y.escapeFragment(l),s)}}var t=f(e.id),a={};return r.call(this,e,h(t,!1),t),a}var m=e("url"),v=e("./equal"),y=e("./util"),g=e("./schema_obj");r.exports=a,a.normalizeId=f,a.fullPath=h,a.url=d,a.ids=p,a.inlineRef=n,a.schema=s;var P=y.toHash(["properties","patternProperties","enum","dependencies","definitions"]),E=y.toHash(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum"]),b=/#\/?$/},{"./equal":4,"./schema_obj":9,"./util":11,url:45}],8:[function(e,r,t){"use strict";var a=e("./_rules"),s=e("./util").toHash;r.exports=function(){var e=[{type:"number",rules:["maximum","minimum","multipleOf"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","uniqueItems","items"]}
 ,{type:"object",rules:["maxProperties","minProperties","required","dependencies","properties"]},{rules:["$ref","enum","not","anyOf","oneOf","allOf"]}],r=["type","additionalProperties","patternProperties"],t=["additionalItems","$schema","id","title","description","default"],o=["number","integer","string","array","object","boolean","null"];return e.all=s(r),e.forEach(function(t){t.rules=t.rules.map(function(t){return r.push(t),e.all[t]={keyword:t,code:a[t]}})}),e.keywords=s(r.concat(t)),e.types=s(o),e.custom={},e}},{"./_rules":3,"./util":11}],9:[function(e,r,t){"use strict";function a(e){s.copy(e,this)}var s=e("./util");r.exports=a},{"./util":11}],10:[function(e,r,t){"use strict";r.exports=function(e){for(var r,t=0,a=e.length,s=0;s<a;)t++,r=e.charCodeAt(s++),r>=55296&&r<=56319&&s<a&&(r=e.charCodeAt(s),56320==(64512&r)&&s++);return t}},{}],11:[function(e,r,t){"use strict";function a(e,r){r=r||{};for(var t in e)r[t]=e[t];return r}function s(e,r,t){var a=t?" !== ":" === ",s=t?" || ":" &&
  ",o=t?"!":"",i=t?"":"!";switch(e){case"null":return r+a+"null";case"array":return o+"Array.isArray("+r+")";case"object":return"("+o+r+s+"typeof "+r+a+'"object"'+s+i+"Array.isArray("+r+"))";case"integer":return"(typeof "+r+a+'"number"'+s+i+"("+r+" % 1)"+s+r+a+r+")";default:return"typeof "+r+a+'"'+e+'"'}}function o(e,r){switch(e.length){case 1:return s(e[0],r,!0);default:var t="",a=n(e);a.array&&a.object&&(t=a.null?"(":"(!"+r+" || ",t+="typeof "+r+' !== "object")',delete a.null,delete a.array,delete a.object),a.number&&delete a.integer;for(var o in a)t+=(t?" && ":"")+s(o,r,!0);return t}}function i(e,r){if(Array.isArray(r)){for(var t=[],a=0;a<r.length;a++){var s=r[a];$[s]?t[t.length]=s:"array"===e&&"array"===s&&(t[t.length]=s)}if(t.length)return t}else{if($[r])return[r];if("array"===e&&"array"===r)return["array"]}}function n(e){for(var r={},t=0;t<e.length;t++)r[e[t]]=!0;return r}function l(e){return"number"==typeof e?"["+e+"]":x.test(e)?"."+e:"['"+c(e)+"']"}function c(e){return e.repl
 ace(_,"\\$&").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\f/g,"\\f").replace(/\t/g,"\\t")}function h(e,r){r+="[^0-9]";var t=e.match(new RegExp(r,"g"));return t?t.length:0}function u(e,r,t){return r+="([^0-9])",t=t.replace(/\$/g,"$$$$"),e.replace(new RegExp(r,"g"),t+"$1")}function f(e){return e.replace(O,"").replace(R,"").replace(I,"if (!($1))")}function d(e,r){var t=e.match(A);return t&&2===t.length?r?e.replace(q,"").replace(Q,C):e.replace(k,"").replace(D,L):e}function p(e,r){for(var t in e)if(r[t])return!0}function m(e,r,t){for(var a in e)if(a!=t&&r[a])return!0}function v(e){return"'"+c(e)+"'"}function y(e,r,t,a){return E(e,t?"'/' + "+r+(a?"":".replace(/~/g, '~0').replace(/\\//g, '~1')"):a?"'[' + "+r+" + ']'":"'[\\'' + "+r+" + '\\']'")}function g(e,r,t){return E(e,v(t?"/"+j(r):l(r)))}function P(e,r,t){var a,s,o,i;if(""===e)return"rootData";if("/"==e[0]){if(!V.test(e))throw new Error("Invalid JSON-pointer: "+e);s=e,o="rootData"}else{if(i=e.match(z),!i)throw new Error("Invali
 d JSON-pointer: "+e);if(a=+i[1],s=i[2],"#"==s){if(a>=r)throw new Error("Cannot access property/index "+a+" levels up, current level is "+r);return t[r-a]}if(a>r)throw new Error("Cannot access data "+a+" levels up, current level is "+r);if(o="data"+(r-a||""),!s)return o}for(var n=o,c=s.split("/"),h=0;h<c.length;h++){var u=c[h];u&&(o+=l(S(u)),n+=" && "+o)}return n}function E(e,r){return'""'==e?r:(e+" + "+r).replace(/' \+ '/g,"")}function b(e){return S(decodeURIComponent(e))}function w(e){return encodeURIComponent(j(e))}function j(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}function S(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}r.exports={copy:a,checkDataType:s,checkDataTypes:o,coerceToTypes:i,toHash:n,getProperty:l,escapeQuotes:c,ucs2length:e("./ucs2length"),varOccurences:h,varReplace:u,cleanUpCode:f,cleanUpVarErrors:d,schemaHasRules:p,schemaHasRulesExcept:m,stableStringify:e("json-stable-stringify"),toQuotedString:v,getPathExpr:y,getPath:g,getData:P,unescapeFragment:b,es
 capeFragment:w,escapeJsonPointer:j};var $=n(["string","number","integer","boolean","null"]),x=/^[a-z$_][a-z$_0-9]*$/i,_=/'|\\/g,O=/else\s*{\s*}/g,R=/if\s*\([^)]+\)\s*\{\s*\}(?!\s*else)/g,I=/if\s*\(([^)]+)\)\s*\{\s*\}\s*else(?!\s*if)/g,A=/[^v\.]errors/g,k=/var errors = 0;|var vErrors = null;|validate.errors = vErrors;/g,q=/var errors = 0;|var vErrors = null;/g,D="return errors === 0;",L="validate.errors = null; return true;",Q=/if \(errors === 0\) return true;\s*else throw new ValidationError\(vErrors\);/,C="return true;",V=/^\/(?:[^~]|~0|~1)*$/,z=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/},{"./ucs2length":10,"json-stable-stringify":48}],12:[function(e,r,t){"use strict";function a(e){this.message="validation failed",this.errors=e,this.ajv=this.validation=!0}r.exports=a,a.prototype=Object.create(Error.prototype),a.prototype.constructor=a},{}],13:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errS
 chemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s;if(a+="var "+u+" = undefined;",e.opts.format===!1)return a+=" "+u+" = true; ";var f=e.schema.format,d=e.opts.v5&&f.$data,p="";if(d){var m=e.util.getData(f.$data,o,e.dataPathArr),v="format"+s,y="compare"+s;a+=" var "+v+" = formats["+m+"] , "+y+" = "+v+" && "+v+".compare;"}else{var v=e.formats[f];if(!v||!v.compare)return a+="  "+u+" = true; ";var y="formats"+e.util.getProperty(f)+".compare"}var g,P="formatMaximum"==r,E="formatExclusive"+(P?"Maximum":"Minimum"),b=e.schema[E],w=e.opts.v5&&b&&b.$data,j=P?"<":">",S="result"+s,$=e.opts.v5&&i&&i.$data;if($?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",g="schema"+s):g=i,w){var x=e.util.getData(b.$data,o,e.dataPathArr),_="exclusive"+s,O="op"+s,R="' + "+O+" + '";a+=" var schemaExcl"+s+" = "+x+"; ",x="schemaExcl"+s,a+=" if (typeof "+x+" != 'boolean' && "+x+" !== undefined) { "+u+" = false; ";var t=E,I=I||[];I.push(a),a="",e.createErrors!==!1?(a+=" { keywor
 d: '"+(t||"_formatExclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",e.opts.messages!==!1&&(a+=" , message: '"+E+" should be boolean' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var A=a;a=I.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+A+"]); ":" validate.errors = ["+A+"]; return false; ":" var err = "+A+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" }  ",c&&(p+="}",a+=" else { "),$&&(a+=" if ("+g+" === undefined) "+u+" = true; else if (typeof "+g+" != 'string') "+u+" = false; else { ",p+="}"),d&&(a+=" if (!"+y+") "+u+" = true; else { ",p+="}"),a+=" var "+S+" = "+y+"("+h+",  ",a+=$?""+g:""+e.util.toQuotedString(i),a+=" ); if ("+S+" === undefined) "+u+" = false; var "+_+" = "+x+" === true; if ("+u+" === undefined) { "+u+" = "+_+" ? "+S+" "+j+" 0 : "+S+" "+j+
 "= 0; } if (!"+u+") var op"+s+" = "+_+" ? '"+j+"' : '"+j+"=';"}else{var _=b===!0,R=j;_||(R+="=");var O="'"+R+"'";$&&(a+=" if ("+g+" === undefined) "+u+" = true; else if (typeof "+g+" != 'string') "+u+" = false; else { ",p+="}"),d&&(a+=" if (!"+y+") "+u+" = true; else { ",p+="}"),a+=" var "+S+" = "+y+"("+h+",  ",a+=$?""+g:""+e.util.toQuotedString(i),a+=" ); if ("+S+" === undefined) "+u+" = false; if ("+u+" === undefined) "+u+" = "+S+" "+j,_||(a+="="),a+=" 0;"}a+=""+p+"if (!"+u+") { ";var t=r,I=I||[];I.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"_formatLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { comparison: "+O+", limit:  ",a+=$?""+g:""+e.util.toQuotedString(i),a+=" , exclusive: "+_+" } ",e.opts.messages!==!1&&(a+=" , message: 'should be "+R+' "',a+=$?"' + "+g+" + '":""+e.util.escapeQuotes(i),a+="\"' "),e.opts.verbose&&(a+=" , schema:  ",a+=$?"validate.schema"+n:""+e.util.toQuotedString(i),a+="         
 , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var A=a;return a=I.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+A+"]); ":" validate.errors = ["+A+"]; return false; ":" var err = "+A+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="}"}},{}],14:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f=e.opts.v5&&n&&n.$data;f?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var d="maximum"==r,p=d?"exclusiveMaximum":"exclusiveMinimum",m=e.schema[p],v=e.opts.v5&&m&&m.$data,y=d?"<":">",g=d?">":"<";if(v){var P=e.util.getData(m.$data,i,e.dataPathArr),E="exclusive"+o,b="op"+o,w="' + "+b+" + '";s+=" var schemaExcl"+o+" = "+P+"; ",P="schemaExcl"+o,s+=" var exclusive"+o+"; if (typeof "+P+" != 'boolean' && typeof "+P+"
  != 'undefined') { ";var t=p,j=j||[];j.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",e.opts.messages!==!1&&(s+=" , message: '"+p+" should be boolean' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var S=s;s=j.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+S+"]); ":" validate.errors = ["+S+"]; return false; ":" var err = "+S+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else if( ",f&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" ((exclusive"+o+" = "+P+" === true) ? "+u+" "+g+"= "+a+" : "+u+" "+g+" "+a+") || "+u+" !== "+u+") { var op"+o+" = exclusive"+o+" ? '"+y+"' : '"+y+"=';"}else{var E=m===!0,w=y;E||(w+="=");var b="'"+w+"'";s+=" if ( ",f&&(s+=" ("+a+" !== undefined && typeo
 f "+a+" != 'number') || "),s+=" "+u+" "+g,E&&(s+="="),s+=" "+a+" || "+u+" !== "+u+") {"}var t=r,j=j||[];j.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { comparison: "+b+", limit: "+a+", exclusive: "+E+" } ",e.opts.messages!==!1&&(s+=" , message: 'should be "+w+" ",s+=f?"' + "+a:""+n+"'"),e.opts.verbose&&(s+=" , schema:  ",s+=f?"validate.schema"+l:""+n,s+="         , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var S=s;return s=j.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+S+"]); ":" validate.errors = ["+S+"]; return false; ":" var err = "+S+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",h&&(s+=" else { "),s}},{}],15:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=
 e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f=e.opts.v5&&n&&n.$data;f?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var d="maxItems"==r?">":"<";s+="if ( ",f&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" "+u+".length "+d+" "+a+") { ";var t=r,p=p||[];p.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+a+" } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT have ",s+="maxItems"==r?"more":"less",s+=" than ",s+=f?"' + "+a+" + '":""+n,s+=" items' "),e.opts.verbose&&(s+=" , schema:  ",s+=f?"validate.schema"+l:""+n,s+="         , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+";  if (vE
 rrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",h&&(s+=" else { "),s}},{}],16:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f=e.opts.v5&&n&&n.$data;f?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var d="maxLength"==r?">":"<";s+="if ( ",f&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=e.opts.unicode===!1?" "+u+".length ":" ucs2length("+u+") ",s+=" "+d+" "+a+") { ";var t=r,p=p||[];p.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+a+" } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT be ",s+="maxLength"==r?"longer":"shorter",s+=" than ",s+=f?"' + "+a+" + '":""+n,s+=" characters' "),e.opts.verbose&&(s
 +=" , schema:  ",s+=f?"validate.schema"+l:""+n,
-s+="         , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",h&&(s+=" else { "),s}},{}],17:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f=e.opts.v5&&n&&n.$data;f?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var d="maxProperties"==r?">":"<";s+="if ( ",f&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" Object.keys("+u+").length "+d+" "+a+") { ";var t=r,p=p||[];p.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , sc
 hemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+a+" } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT have ",s+="maxProperties"==r?"more":"less",s+=" than ",s+=f?"' + "+a+" + '":""+n,s+=" properties' "),e.opts.verbose&&(s+=" , schema:  ",s+=f?"validate.schema"+l:""+n,s+="         , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",h&&(s+=" else { "),s}},{}],18:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.schema[r],s=e.schemaPath+e.util.getProperty(r),o=e.errSchemaPath+"/"+r,i=!e.opts.allErrors,n=e.util.copy(e),l="";n.level++;var c="valid"+n.level,h=n.baseId,u=!0,f=a;if(f)for(var d,p=-1,m=f.length-1;p<m;)d=f[p+=1],e.util.schemaHasRules(d,e.RULES.all)&&(u=!1,n.schema=d,n.sc
 hemaPath=s+"["+p+"]",n.errSchemaPath=o+"/"+p,t+="  "+e.validate(n)+" ",n.baseId=h,i&&(t+=" if ("+c+") { ",l+="}"));return i&&(t+=u?" if (true) { ":" "+l.slice(0,-1)+" "),t=e.util.cleanUpCode(t)}},{}],19:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="errs__"+s,d=e.util.copy(e),p="";d.level++;var m="valid"+d.level;if(i.every(function(r){return e.util.schemaHasRules(r,e.RULES.all)})){var v=d.baseId;a+=" var "+f+" = errors; var "+u+" = false;  ";var y=e.compositeRule;e.compositeRule=d.compositeRule=!0;var g=i;if(g)for(var P,E=-1,b=g.length-1;E<b;)P=g[E+=1],d.schema=P,d.schemaPath=n+"["+E+"]",d.errSchemaPath=l+"/"+E,a+="  "+e.validate(d)+" ",d.baseId=v,a+=" "+u+" = "+u+" || "+m+"; if (!"+u+") { ",p+="}";e.compositeRule=d.compositeRule=y,a+=" "+p+" if (!"+u+") {  var err =   ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"
 anyOf")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",e.opts.messages!==!1&&(a+=" , message: 'should match some schema in anyOf' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+=";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else {  errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; } ",e.opts.allErrors&&(a+=" } "),a=e.util.cleanUpCode(a)}else c&&(a+=" if (true) { ");return a}},{}],20:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f=e.opts.v5&&i&&i.$data;f&&(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; "),f||(a+=" var schema"+s+" = validate.schema"+n+";"),a+="var "+u
 +" = equal("+h+", schema"+s+"); if (!"+u+") {   ";var d=d||[];d.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"constant")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",e.opts.messages!==!1&&(a+=" , message: 'should be equal to constant' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var p=a;return a=d.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" }"}},{}],21:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f="valid"+o,d="errs__"+o,p=e.opts.v5&&n&&n.$data;p?(s+=" var schema"+o+" = "+e.util.getDa
 ta(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var m,v,y,g,P,E=this,b="definition"+o,w=E.definition;if(p&&w.$data){P="keywordValidate"+o;var j=w.validateSchema;s+=" var "+b+" = RULES.custom['"+r+"'].definition; var "+P+" = "+b+".validate;"}else g=e.useCustomRule(E,n,e.schema,e),a="validate.schema"+l,P=g.code,m=w.compile,v=w.inline,y=w.macro;var S=P+".errors",$="i"+o,x="ruleErr"+o,_=w.async;if(_&&!e.async)throw new Error("async keyword in sync schema");if(v||y||(s+=""+S+" = null;"),s+="var "+d+" = errors;var "+f+";",j&&(s+=" "+f+" = "+b+".validateSchema("+a+"); if ("+f+") {"),v)s+=w.statements?" "+g.validate+" ":" "+f+" = "+g.validate+"; ";else if(y){var O=e.util.copy(e);O.level++;var R="valid"+O.level;O.schema=g.validate,O.schemaPath="";var I=e.compositeRule;e.compositeRule=O.compositeRule=!0;var A=e.validate(O).replace(/validate\.schema/g,P);e.compositeRule=O.compositeRule=I,s+=" "+A}else{var k=k||[];k.push(s),s="",s+="  "+P+".call( ",s+=e.opts.passContext?"this":"self",s+=m||w
 .schema===!1?" , "+u+" ":" , "+a+" , "+u+" , validate.schema"+e.schemaPath+" ",s+=" , (dataPath || '')",'""'!=e.errorPath&&(s+=" + "+e.errorPath);var q=i?"data"+(i-1||""):"parentData",D=i?e.dataPathArr[i]:"parentDataProperty";s+=" , "+q+" , "+D+" , rootData )  ";var L=s;s=k.pop(),w.errors===!1?(s+=" "+f+" = ",_&&(s+=""+e.yieldAwait),s+=""+L+"; "):_?(S="customErrors"+o,s+=" var "+S+" = null; try { "+f+" = "+e.yieldAwait+L+"; } catch (e) { "+f+" = false; if (e instanceof ValidationError) "+S+" = e.errors; else throw e; } "):s+=" "+S+" = null; "+f+" = "+L+"; "}if(w.modifying&&(s+=" "+u+" = "+q+"["+D+"];"),j&&(s+=" }"),w.valid)h&&(s+=" if (true) { ");else{s+=" if ( ",void 0===w.valid?(s+=" !",s+=y?""+R:""+f):s+=" "+!w.valid+" ",s+=") { ",t=E.keyword;var k=k||[];k.push(s),s="";var k=k||[];k.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { keyword: '"+E.keyword+"' } "
 ,e.opts.messages!==!1&&(s+=" , message: 'should pass \""+E.keyword+"\" keyword validation' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var Q=s;s=k.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+Q+"]); ":" validate.errors = ["+Q+"]; return false; ":" var err = "+Q+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";var C=s;s=k.pop(),v?w.errors?"full"!=w.errors&&(s+="  for (var "+$+"="+d+"; "+$+"<errors; "+$+"++) { var "+x+" = vErrors["+$+"]; if ("+x+".dataPath === undefined) "+x+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+x+".schemaPath === undefined) { "+x+'.schemaPath = "'+c+'"; } ',e.opts.verbose&&(s+=" "+x+".schema = "+a+"; "+x+".data = "+u+"; "),s+=" } "):w.errors===!1?s+=" "+C+" ":(s+=" if ("+d+" == errors) { "+C+" } else {  for (var "+$+"="+d+"; "+$+"<errors; "+$+"++) { var "+x+" = vErrors["+$+"]; if ("+x+".dataPath === und
 efined) "+x+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+x+".schemaPath === undefined) { "+x+'.schemaPath = "'+c+'"; } ',e.opts.verbose&&(s+=" "+x+".schema = "+a+"; "+x+".data = "+u+"; "),s+=" } } "):y?(s+="   var err =   ",e.createErrors!==!1?(s+=" { keyword: '"+(t||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { keyword: '"+E.keyword+"' } ",e.opts.messages!==!1&&(s+=" , message: 'should pass \""+E.keyword+"\" keyword validation' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ",s+=";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&h&&(s+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; ")):w.errors===!1?s+=" "+C+" ":(s+=" if (Array.isArray("+S+")) { if (vErrors === null) vErrors = "+S+"; else vErrors = vErrors.concat("+S+"); erro
 rs = vErrors.length;  for (var "+$+"="+d+"; "+$+"<errors; "+$+"++) { var "+x+" = vErrors["+$+"]; if ("+x+".dataPath === undefined) "+x+".dataPath = (dataPath || '') + "+e.errorPath+";  "+x+'.schemaPath = "'+c+'";  ',e.opts.verbose&&(s+=" "+x+".schema = "+a+"; "+x+".data = "+u+"; "),s+=" } } else { "+C+" } "),s+=" } ",h&&(s+=" else { ")}return s}},{}],22:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="errs__"+s,f=e.util.copy(e),d="";f.level++;var p="valid"+f.level,m={},v={};for(E in i){var y=i[E],g=Array.isArray(y)?v:m;g[E]=y}a+="var "+u+" = errors;";var P=e.errorPath;a+="var missing"+s+";";for(var E in v){if(g=v[E],a+=" if ("+h+e.util.getProperty(E)+" !== undefined ",c){a+=" && ( ";var b=g;if(b)for(var w,j=-1,S=b.length-1;j<S;){w=b[j+=1],j&&(a+=" || ");var $=e.util.getProperty(w);a+=" ( "+h+$+" === undefined && (missing"+s+" = "
 +e.util.toQuotedString(e.opts.jsonPointers?w:$)+") ) "}a+=")) {  ";var x="missing"+s,_="' + "+x+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(P,x,!0):P+" + "+x);var O=O||[];O.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"dependencies")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { property: '"+e.util.escapeQuotes(E)+"', missingProperty: '"+_+"', depsCount: "+g.length+", deps: '"+e.util.escapeQuotes(1==g.length?g[0]:g.join(", "))+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should have ",a+=1==g.length?"property "+e.util.escapeQuotes(g[0]):"properties "+e.util.escapeQuotes(g.join(", ")),a+=" when property "+e.util.escapeQuotes(E)+" is present' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var R=a;a=O.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+R+"]); "
 :" validate.errors = ["+R+"]; return false; ":" var err = "+R+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else{a+=" ) { ";var I=g;if(I)for(var A,k=-1,q=I.length-1;k<q;){A=I[k+=1];var $=e.util.getProperty(A),_=e.util.escapeQuotes(A);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(P,A,e.opts.jsonPointers)),a+=" if ("+h+$+" === undefined) {  var err =   ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"dependencies")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { property: '"+e.util.escapeQuotes(E)+"', missingProperty: '"+_+"', depsCount: "+g.length+", deps: '"+e.util.escapeQuotes(1==g.length?g[0]:g.join(", "))+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should have ",a+=1==g.length?"property "+e.util.escapeQuotes(g[0]):"properties "+e.util.escapeQuotes(g.join(", ")),a+=" when property "+e.util.escapeQuotes(E)+" is present' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , pa
 rentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+=";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}a+=" }   ",c&&(d+="}",a+=" else { ")}e.errorPath=P;var D=f.baseId;for(var E in m){var y=m[E];e.util.schemaHasRules(y,e.RULES.all)&&(a+=" "+p+" = true; if ("+h+e.util.getProperty(E)+" !== undefined) { ",f.schema=y,f.schemaPath=n+e.util.getProperty(E),f.errSchemaPath=l+"/"+e.util.escapeFragment(E),a+="  "+e.validate(f)+" ",f.baseId=D,a+=" }  ",c&&(a+=" if ("+p+") { ",d+="}"))}return c&&(a+="   "+d+" if ("+u+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],23:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f=e.opts.v5&&i&&i.$data;f&&(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ");var d="i"+s,p="schema"+s;f||(a+=" var "+p+" = validate.sche
 ma"+n+";"),a+="var "+u+";",f&&(a+=" if (schema"+s+" === undefined) "+u+" = true; else if (!Array.isArray(schema"+s+")) "+u+" = false; else {"),a+=""+u+" = false;for (var "+d+"=0; "+d+"<"+p+".length; "+d+"++) if (equal("+h+", "+p+"["+d+"])) { "+u+" = true; break; }",f&&(a+="  }  "),a+=" if (!"+u+") {   ";var m=m||[];m.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"enum")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { allowedValues: schema"+s+" } ",e.opts.messages!==!1&&(a+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var v=a;return a=m.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" }",c&&(a+
 =" else { "),a}},{}],24:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||"");if(e.opts.format===!1)return c&&(a+=" if (true) { "),a;var u,f=e.opts.v5&&i&&i.$data;f?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",u="schema"+s):u=i;var d=e.opts.unknownFormats,p=Array.isArray(d);if(f){var m="format"+s;a+=" var "+m+" = formats["+u+"]; var isObject"+s+" = typeof "+m+" == 'object' && !("+m+" instanceof RegExp) && "+m+".validate; if (isObject"+s+") { ",e.async&&(a+=" var async"+s+" = "+m+".async; "),a+=" "+m+" = "+m+".validate; } if (  ",f&&(a+=" ("+u+" !== undefined && typeof "+u+" != 'string') || "),a+=" (",(d===!0||p)&&(a+=" ("+u+" && !"+m+" ",p&&(a+=" && self._opts.unknownFormats.indexOf("+u+") == -1 "),a+=") || "),a+=" ("+m+" && !(typeof "+m+" == 'function' ? ",a+=e.async?" (async"+s+" ? "+e.yieldAwait+" "+m+"("+h+"
 ) : "+m+"("+h+")) ":" "+m+"("+h+") ",a+=" : "+m+".test("+h+"))))) {"}else{var m=e.formats[i];if(!m){if(d===!0||p&&d.indexOf(i)==-1)throw new Error('unknown format "'+i+'" is used in schema at path "'+e.errSchemaPath+'"');return p||(console.warn('unknown format "'+i+'" ignored in schema at path "'+e.errSchemaPath+'"'),"ignore"!==d&&console.warn("In the next major version it will throw exception. See option unknownFormats for more information")),c&&(a+=" if (true) { "),a}var v="object"==typeof m&&!(m instanceof RegExp)&&m.validate;if(v){var y=m.async===!0;m=m.validate}if(y){if(!e.async)throw new Error("async format in sync schema");var g="formats"+e.util.getProperty(i)+".validate";a+=" if (!("+e.yieldAwait+" "+g+"("+h+"))) { "}else{a+=" if (! ";var g="formats"+e.util.getProperty(i);v&&(g+=".validate"),a+="function"==typeof m?" "+g+"("+h+") ":" "+g+".test("+h+") ",a+=") { "}}var P=P||[];P.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"format")+"' , dataPath: (dataPath || '')
  + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { format:  ",a+=f?""+u:""+e.util.toQuotedString(i),a+="  } ",e.opts.messages!==!1&&(a+=" , message: 'should match format \"",a+=f?"' + "+u+" + '":""+e.util.escapeQuotes(i),a+="\"' "),e.opts.verbose&&(a+=" , schema:  ",a+=f?"validate.schema"+n:""+e.util.toQuotedString(i),a+="         , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var E=a;return a=P.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+E+"]); ":" validate.errors = ["+E+"]; return false; ":" var err = "+E+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",c&&(a+=" else { "),a}},{}],25:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="errs__"+s,d=e.util.copy(e),p="";d.level++;var m="valid"+d.level,
 v="i"+s,y=d.dataLevel=e.dataLevel+1,g="data"+y,P=e.baseId;if(a+="var "+f+" = errors;var "+u+";",Array.isArray(i)){var E=e.schema.additionalItems;if(E===!1){a+=" "+u+" = "+h+".length <= "+i.length+"; ";var b=l;l=e.errSchemaPath+"/additionalItems",a+="  if (!"+u+") {   ";var w=w||[];w.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"additionalItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+i.length+" } ",e.opts.messages!==!1&&(a+=" , message: 'should NOT have more than "+i.length+" items' "),e.opts.verbose&&(a+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var j=a;a=w.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+j+"]); ":" validate.errors = ["+j+"]; return false; ":" var err = "+j+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",l=b,c&&(p+="}",a+=" else { ")}var S=i;if(S)for(var $,x=-1,
 _=S.length-1;x<_;)if($=S[x+=1],e.util.schemaHasRules($,e.RULES.all)){a+=" "+m+" = true; if ("+h+".length > "+x+") { ";var O=h+"["+x+"]";d.schema=$,d.schemaPath=n+"["+x+"]",d.errSchemaPath=l+"/"+x,d.errorPath=e.util.getPathExpr(e.errorPath,x,e.opts.jsonPointers,!0),d.dataPathArr[y]=x;var R=e.validate(d);d.baseId=P,a+=e.util.varOccurences(R,g)<2?" "+e.util.varReplace(R,g,O)+" ":" var "+g+" = "+O+"; "+R+" ",a+=" }  ",c&&(a+=" if ("+m+") { ",p+="}")}if("object"==typeof E&&e.util.schemaHasRules(E,e.RULES.all)){d.schema=E,d.schemaPath=e.schemaPath+".additionalItems",d.errSchemaPath=e.errSchemaPath+"/additionalItems",a+=" "+m+" = true; if ("+h+".length > "+i.length+") {  for (var "+v+" = "+i.length+"; "+v+" < "+h+".length; "+v+"++) { ",d.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers,!0);var O=h+"["+v+"]";d.dataPathArr[y]=v;var R=e.validate(d);d.baseId=P,a+=e.util.varOccurences(R,g)<2?" "+e.util.varReplace(R,g,O)+" ":" var "+g+" = "+O+"; "+R+" ",c&&(a+=" if (!"+m+") break; 
 "),a+=" } }  ",c&&(a+=" if ("+m+") { ",p+="}")}}else if(e.util.schemaHasRules(i,e.RULES.all)){d.schema=i,d.schemaPath=n,d.errSchemaPath=l,a+="  for (var "+v+" = 0; "+v+" < "+h+".length; "+v+"++) { ",d.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers,!0);var O=h+"["+v+"]";d.dataPathArr[y]=v;var R=e.validate(d);d.baseId=P,a+=e.util.varOccurences(R,g)<2?" "+e.util.varReplace(R,g,O)+" ":" var "+g+" = "+O+"; "+R+" ",c&&(a+=" if (!"+m+") break; "),a+=" }  ",c&&(a+=" if ("+m+") { ",p+="}")}return c&&(a+=" "+p+" if ("+f+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],26:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f=e.opts.v5&&n&&n.$data;f?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,s+="var division"+o+";if (",f&&(s+=" "+a+" !== undefined && ( typeof "+a+" != 'number' || "),s+=
 " (division"+o+" = "+u+" / "+a+", ",s+=e.opts.multipleOfPrecision?" Math.abs(Math.round(division"+o+") - division"+o+") > 1e-"+e.opts.multipleOfPrecision+" ":" division"+o+" !== parseInt(division"+o+") ",s+=" ) ",f&&(s+="  )  "),s+=" ) {   ";var d=d||[];d.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"multipleOf")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { multipleOf: "+a+" } ",e.opts.messages!==!1&&(s+=" , message: 'should be multiple of ",s+=f?"' + "+a:""+n+"'"),e.opts.verbose&&(s+=" , schema:  ",s+=f?"validate.schema"+l:""+n,s+="         , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var p=s;return s=d.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",h&&(s+=" else { "),s}},{}],27:[function(e,r,t){"
 use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="errs__"+s,f=e.util.copy(e);f.level++;var d="valid"+f.level;if(e.util.schemaHasRules(i,e.RULES.all)){f.schema=i,f.schemaPath=n,f.errSchemaPath=l,a+=" var "+u+" = errors;  ";var p=e.compositeRule;e.compositeRule=f.compositeRule=!0,f.createErrors=!1;var m;f.opts.allErrors&&(m=f.opts.allErrors,f.opts.allErrors=!1),a+=" "+e.validate(f)+" ",f.createErrors=!0,m&&(f.opts.allErrors=m),e.compositeRule=f.compositeRule=p,a+=" if ("+d+") {   ";var v=v||[];v.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"not")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",e.opts.messages!==!1&&(a+=" , message: 'should NOT be valid' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } 
 "):a+=" {} ";var y=a;a=v.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+y+"]); ":" validate.errors = ["+y+"]; return false; ":" var err = "+y+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else {  errors = "+u+"; if (vErrors !== null) { if ("+u+") vErrors.length = "+u+"; else vErrors = null; } ",e.opts.allErrors&&(a+=" } ")}else a+="  var err =   ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"not")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",e.opts.messages!==!1&&(a+=" , message: 'should NOT be valid' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+=";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c&&(a+=" if (false) { ");return a}},{}],28:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema
 [r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="errs__"+s,d=e.util.copy(e),p="";d.level++;var m="valid"+d.level;a+="var "+f+" = errors;var prevValid"+s+" = false;var "+u+" = false;";var v=d.baseId,y=e.compositeRule;e.compositeRule=d.compositeRule=!0;var g=i;if(g)for(var P,E=-1,b=g.length-1;E<b;)P=g[E+=1],e.util.schemaHasRules(P,e.RULES.all)?(d.schema=P,d.schemaPath=n+"["+E+"]",d.errSchemaPath=l+"/"+E,a+="  "+e.validate(d)+" ",d.baseId=v):a+=" var "+m+" = true; ",E&&(a+=" if ("+m+" && prevValid"+s+") "+u+" = false; else { ",p+="}"),a+=" if ("+m+") "+u+" = prevValid"+s+" = true;";e.compositeRule=d.compositeRule=y,a+=""+p+"if (!"+u+") {   ";var w=w||[];w.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"oneOf")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",e.opts.messages!==!1&&(a+=" , message: 'should match exactly one schema in oneOf' "),e.opts.ve
 rbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var j=a;return a=w.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+j+"]); ":" validate.errors = ["+j+"]; return false; ":" var err = "+j+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} else {  errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; }",e.opts.allErrors&&(a+=" } "),a}},{}],29:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f=e.opts.v5&&n&&n.$data;f?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var d=f?"(new RegExp("+a+"))":e.usePattern(n);s+="if ( ",f&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'string') || "),s+=" !"+d+".test("+u+") ) {   ";var p=
 p||[];p.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"pattern")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { pattern:  ",s+=f?""+a:""+e.util.toQuotedString(n),s+="  } ",e.opts.messages!==!1&&(s+=" , message: 'should match pattern \"",s+=f?"' + "+a+" + '":""+e.util.escapeQuotes(n),s+="\"' "),e.opts.verbose&&(s+=" , schema:  ",s+=f?"validate.schema"+l:""+e.util.toQuotedString(n),s+="         , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",h&&(s+=" else { "),s}},{}],30:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opt
 s.allErrors,h="data"+(o||""),u="valid"+s,f="key"+s,d="patternMatched"+s,p="",m=e.opts.ownProperties;a+="var "+u+" = true;";var v=i;if(v)for(var y,g=-1,P=v.length-1;g<P;){y=v[g+=1],a+=" var "+d+" = false; for (var "+f+" in "+h+") {  ",m&&(a+=" if (!Object.prototype.hasOwnProperty.call("+h+", "+f+")) continue; "),a+=" "+d+" = "+e.usePattern(y)+".test("+f+"); if ("+d+") break; } ";var E=e.util.escapeQuotes(y);a+=" if (!"+d+") { "+u+" = false;  var err =   ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"patternRequired")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingPattern: '"+E+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should have property matching pattern \\'"+E+"\\'' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+=";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; }   ",c&&(p+="}",a+=" else { "
 )}return a+=""+p}},{}],31:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="errs__"+s,d=e.util.copy(e),p="";d.level++;var m="valid"+d.level,v="key"+s,y=d.dataLevel=e.dataLevel+1,g="data"+y,P=Object.keys(i||{}),E=e.schema.patternProperties||{},b=Object.keys(E),w=e.schema.additionalProperties,j=P.length||b.length,S=w===!1,$="object"==typeof w&&Object.keys(w).length,x=e.opts.removeAdditional,_=S||$||x,O=e.opts.ownProperties,R=e.baseId,I=e.schema.required;if(I&&(!e.opts.v5||!I.$data)&&I.length<e.opts.loopRequired)var A=e.util.toHash(I);if(e.opts.v5)var k=e.schema.patternGroups||{},q=Object.keys(k);if(a+="var "+f+" = errors;var "+m+" = true;",_){if(a+=" for (var "+v+" in "+h+") {  ",O&&(a+=" if (!Object.prototype.hasOwnProperty.call("+h+", "+v+")) continue; "),j){if(a+=" var isAdditional"+s+" = !(false ",P.length)if(P.lengt
 h>5)a+=" || validate.schema"+n+"["+v+"] ";else{var D=P;if(D)for(var L,Q=-1,C=D.length-1;Q<C;)L=D[Q+=1],a+=" || "+v+" == "+e.util.toQuotedString(L)+" "}if(b.length){var V=b;if(V)for(var z,U=-1,T=V.length-1;U<T;)z=V[U+=1],a+=" || "+e.usePattern(z)+".test("+v+") "}if(e.opts.v5&&q&&q.length){var M=q;if(M)for(var N,U=-1,F=M.length-1;U<F;)N=M[U+=1],a+=" || "+e.usePattern(N)+".test("+v+") "}a+=" ); if (isAdditional"+s+") { "}if("all"==x)a+=" delete "+h+"["+v+"]; ";else{var H=e.errorPath,J="' + "+v+" + '";if(e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers)),S)if(x)a+=" delete "+h+"["+v+"]; ";else{a+=" "+m+" = false; ";var G=l;l=e.errSchemaPath+"/additionalProperties";var K=K||[];K.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"additionalProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { additionalProperty: '"+J+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should N
 OT have additional properties' "),e.opts.verbose&&(a+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var B=a;a=K.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+B+"]); ":" validate.errors = ["+B+"]; return false; ":" var err = "+B+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",l=G,c&&(a+=" break; ")}else if($)if("failing"==x){a+=" var "+f+" = errors;  ";var Z=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.schema=w,d.schemaPath=e.schemaPath+".additionalProperties",d.errSchemaPath=e.errSchemaPath+"/additionalProperties",d.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers);var Y=h+"["+v+"]";d.dataPathArr[y]=v;var W=e.validate(d);d.baseId=R,a+=e.util.varOccurences(W,g)<2?" "+e.util.varReplace(W,g,Y)+" ":" var "+g+" = "+Y+"; "+W+" ",a+=" if (!"+m+") { errors = "+f+"; if (validate.errors !== null) { if (errors) validate.er
 rors.length = errors; else validate.errors = null; } delete "+h+"["+v+"]; }  ",e.compositeRule=d.compositeRule=Z}else{d.schema=w,d.schemaPath=e.schemaPath+".additionalProperties",d.errSchemaPath=e.errSchemaPath+"/additionalProperties",d.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers);var Y=h+"["+v+"]";d.dataPathArr[y]=v;var W=e.validate(d);d.baseId=R,a+=e.util.varOccurences(W,g)<2?" "+e.util.varReplace(W,g,Y)+" ":" var "+g+" = "+Y+"; "+W+" ",c&&(a+=" if (!"+m+") break; ")}e.errorPath=H}j&&(a+=" } "),a+=" }  ",c&&(a+=" if ("+m+") { ",p+="}")}var X=e.opts.useDefaults&&!e.compositeRule;if(P.length){var ee=P;if(ee)for(var L,re=-1,te=ee.length-1;re<te;){L=ee[re+=1];var ae=i[L];if(e.util.schemaHasRules(ae,e.RULES.all)){var se=e.util.getProperty(L),Y=h+se,oe=X&&void 0!==ae.default;d.schema=ae,d.schemaPath=n+se,d.errSchemaPath=l+"/"+e.util.escapeFragment(L),d.errorPath=e.util.getPath(e.errorPath,L,e.opts.jsonPointers),d.dataPathArr[y
 ]=e.util.toQuotedString(L);var W=e.validate(d);if(d.baseId=R,e.util.varOccurences(W,g)<2){W=e.util.varReplace(W,g,Y);var ie=Y}else{var ie=g;a+=" var "+g+" = "+Y+"; "}if(oe)a+=" "+W+" ";else{if(A&&A[L]){a+=" if ("+ie+" === undefined) { "+m+" = false; ";var H=e.errorPath,G=l,ne=e.util.escapeQuotes(L);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(H,L,e.opts.jsonPointers)),l=e.errSchemaPath+"/required";var K=K||[];K.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+ne+"' } ",e.opts.messages!==!1&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+ne+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var B=a;a=K.pop(),
-a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+B+"]); ":" validate.errors = ["+B+"]; return false; ":" var err = "+B+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",l=G,e.errorPath=H,a+=" } else { "}else a+=c?" if ("+ie+" === undefined) { "+m+" = true; } else { ":" if ("+ie+" !== undefined) { ";a+=" "+W+" } "}}c&&(a+=" if ("+m+") { ",p+="}")}}var le=b;if(le)for(var z,ce=-1,he=le.length-1;ce<he;){z=le[ce+=1];var ae=E[z];if(e.util.schemaHasRules(ae,e.RULES.all)){d.schema=ae,d.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(z),d.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(z),a+=" for (var "+v+" in "+h+") {  ",O&&(a+=" if (!Object.prototype.hasOwnProperty.call("+h+", "+v+")) continue; "),a+=" if ("+e.usePattern(z)+".test("+v+")) { ",d.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers);var Y=h+"["+v+"]";d.dataPathArr[y]=v;var W=e.validate(d);d.baseId=R,a+=e.util.varOccurences(W,g)<2?"
  "+e.util.varReplace(W,g,Y)+" ":" var "+g+" = "+Y+"; "+W+" ",c&&(a+=" if (!"+m+") break; "),a+=" } ",c&&(a+=" else "+m+" = true; "),a+=" }  ",c&&(a+=" if ("+m+") { ",p+="}")}}if(e.opts.v5){var ue=q;if(ue)for(var N,fe=-1,de=ue.length-1;fe<de;){N=ue[fe+=1];var pe=k[N],ae=pe.schema;if(e.util.schemaHasRules(ae,e.RULES.all)){d.schema=ae,d.schemaPath=e.schemaPath+".patternGroups"+e.util.getProperty(N)+".schema",d.errSchemaPath=e.errSchemaPath+"/patternGroups/"+e.util.escapeFragment(N)+"/schema",a+=" var pgPropCount"+s+" = 0; for (var "+v+" in "+h+") {  ",O&&(a+=" if (!Object.prototype.hasOwnProperty.call("+h+", "+v+")) continue; "),a+=" if ("+e.usePattern(N)+".test("+v+")) { pgPropCount"+s+"++; ",d.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers);var Y=h+"["+v+"]";d.dataPathArr[y]=v;var W=e.validate(d);d.baseId=R,a+=e.util.varOccurences(W,g)<2?" "+e.util.varReplace(W,g,Y)+" ":" var "+g+" = "+Y+"; "+W+" ",c&&(a+=" if (!"+m+") break; "),a+=" } ",c&&(a+=" else "+m+" = true; ")
 ,a+=" }  ",c&&(a+=" if ("+m+") { ",p+="}");var me=pe.minimum,ve=pe.maximum;if(void 0!==me||void 0!==ve){a+=" var "+u+" = true; ";var G=l;if(void 0!==me){var ye=me,ge="minimum",Pe="less";a+=" "+u+" = pgPropCount"+s+" >= "+me+"; ",l=e.errSchemaPath+"/patternGroups/minimum",a+="  if (!"+u+") {   ";var K=K||[];K.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"patternGroups")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+ge+"', limit: "+ye+", pattern: '"+e.util.escapeQuotes(N)+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should NOT have "+Pe+" than "+ye+' properties matching pattern "'+e.util.escapeQuotes(N)+"\"' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var B=a;a=K.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+B+"]); ":" validate.errors = ["+B+"]; return false; ":" var err = "+B+";  if (
 vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",void 0!==ve&&(a+=" else ")}if(void 0!==ve){var ye=ve,ge="maximum",Pe="more";a+=" "+u+" = pgPropCount"+s+" <= "+ve+"; ",l=e.errSchemaPath+"/patternGroups/maximum",a+="  if (!"+u+") {   ";var K=K||[];K.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"patternGroups")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+ge+"', limit: "+ye+", pattern: '"+e.util.escapeQuotes(N)+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should NOT have "+Pe+" than "+ye+' properties matching pattern "'+e.util.escapeQuotes(N)+"\"' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var B=a;a=K.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+B+"]); ":" validate.errors = ["+B+"]; return false; ":" var err = "+B+";  if (vErrors === null) vErrors = [e
 rr]; else vErrors.push(err); errors++; ",a+=" } "}l=G,c&&(a+=" if ("+u+") { ",p+="}")}}}}return c&&(a+=" "+p+" if ("+f+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],32:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s,o=" ",i=e.level,n=e.dataLevel,l=e.schema[r],c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(n||""),f="valid"+i;if("#"==l||"#/"==l)e.isRoot?(a=e.async,s="validate"):(a=e.root.schema.$async===!0,s="root.refVal[0]");else{var d=e.resolveRef(e.baseId,l,e.isRoot);if(void 0===d){var p="can't resolve reference "+l+" from id "+e.baseId;if("fail"==e.opts.missingRefs){console.log(p);var m=m||[];m.push(o),o="",e.createErrors!==!1?(o+=" { keyword: '"+(t||"$ref")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { ref: '"+e.util.escapeQuotes(l)+"' } ",e.opts.messages!==!1&&(o+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(l)+"' "),e.opts.verbose&&(o+=" , schema: "+e.util.toQuotedString(l)+" , p
 arentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var v=o;o=m.pop(),o+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",h&&(o+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs){var y=new Error(p);throw y.missingRef=e.resolve.url(e.baseId,l),y.missingSchema=e.resolve.normalizeId(e.resolve.fullPath(y.missingRef)),y}console.log(p),h&&(o+=" if (true) { ")}}else if(d.inline){var g=e.util.copy(e);g.level++;var P="valid"+g.level;g.schema=d.schema,g.schemaPath="",g.errSchemaPath=l;var E=e.validate(g).replace(/validate\.schema/g,d.code);o+=" "+E+" ",h&&(o+=" if ("+P+") { ")}else a=d.$async===!0,s=d.code}if(s){var m=m||[];m.push(o),o="",o+=e.opts.passContext?" "+s+".call(this, ":" "+s+"( ",o+=" "+u+", (dataPath || '')",'""'!=e.errorPath&&(o+=" + "+e.errorPath);o+=" , "+(n?"data"+(n-1||""):"parentDat
 a")+" , "+(n?e.dataPathArr[n]:"parentDataProperty")+", rootData)  ";var b=o;if(o=m.pop(),a){if(!e.async)throw new Error("async schema referenced by sync schema");o+=" try { ",h&&(o+="var "+f+" ="),o+=" "+e.yieldAwait+" "+b+"; } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; } ",h&&(o+=" if ("+f+") { ")}else o+=" if (!"+b+") { if (vErrors === null) vErrors = "+s+".errors; else vErrors = vErrors.concat("+s+".errors); errors = vErrors.length; } ",h&&(o+=" else { ")}return o}},{}],33:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f=e.opts.v5&&i&&i.$data;f&&(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ");var d="schema"+s;if(!f)if(i.length<e.opts.loopRequired&&e.schema.properties&&Obj
 ect.keys(e.schema.properties).length){var p=[],m=i;if(m)for(var v,y=-1,g=m.length-1;y<g;){v=m[y+=1];var P=e.schema.properties[v];P&&e.util.schemaHasRules(P,e.RULES.all)||(p[p.length]=v)}}else var p=i;if(f||p.length){var E=e.errorPath,b=f||p.length>=e.opts.loopRequired;if(c)if(a+=" var missing"+s+"; ",b){f||(a+=" var "+d+" = validate.schema"+n+"; ");var w="i"+s,j="schema"+s+"["+w+"]",S="' + "+j+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(E,j,e.opts.jsonPointers)),a+=" var "+u+" = true; ",f&&(a+=" if (schema"+s+" === undefined) "+u+" = true; else if (!Array.isArray(schema"+s+")) "+u+" = false; else {"),a+=" for (var "+w+" = 0; "+w+" < "+d+".length; "+w+"++) { "+u+" = "+h+"["+d+"["+w+"]] !== undefined; if (!"+u+") break; } ",f&&(a+="  }  "),a+="  if (!"+u+") {   ";var $=$||[];$.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProp
 erty: '"+S+"' } ",e.opts.messages!==!1&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+S+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var x=a;a=$.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+x+"]); ":" validate.errors = ["+x+"]; return false; ":" var err = "+x+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { "}else{a+=" if ( ";var _=p;if(_)for(var O,w=-1,R=_.length-1;w<R;){O=_[w+=1],w&&(a+=" || ");var I=e.util.getProperty(O);a+=" ( "+h+I+" === undefined && (missing"+s+" = "+e.util.toQuotedString(e.opts.jsonPointers?O:I)+") ) "}a+=") {  ";var j="missing"+s,S="' + "+j+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(E,j,!0):E+" + "+j);var $=$||[];$.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"r
 equired")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+S+"' } ",e.opts.messages!==!1&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+S+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var x=a;a=$.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+x+"]); ":" validate.errors = ["+x+"]; return false; ":" var err = "+x+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { "}else if(b){f||(a+=" var "+d+" = validate.schema"+n+"; ");var w="i"+s,j="schema"+s+"["+w+"]",S="' + "+j+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(E,j,e.opts.jsonPointers)),f&&(a+=" if ("+d+" && !Array.isArray("+d+")) {  var err =   ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"required")+
 "' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+S+"' } ",e.opts.messages!==!1&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+S+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+=";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if ("+d+" !== undefined) { "),a+=" for (var "+w+" = 0; "+w+" < "+d+".length; "+w+"++) { if ("+h+"["+d+"["+w+"]] === undefined) {  var err =   ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+S+"' } ",e.opts.messages!==!1&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+S+"\\'",a+="' "
 ),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+=";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ",f&&(a+="  }  ")}else{var A=p;if(A)for(var k,q=-1,D=A.length-1;q<D;){k=A[q+=1];var I=e.util.getProperty(k),S=e.util.escapeQuotes(k);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(E,k,e.opts.jsonPointers)),a+=" if ("+h+I+" === undefined) {  var err =   ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+S+"' } ",e.opts.messages!==!1&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+S+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+=";  if (vErrors === nu
 ll) vErrors = [err]; else vErrors.push(err); errors++; } "}}e.errorPath=E}else c&&(a+=" if (true) {");return a}},{}],34:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="errs__"+s,d=e.util.copy(e),p="";d.level++;var m,v="valid"+d.level,y="ifPassed"+e.level,g=d.baseId;a+="var "+y+";";var P=i;if(P)for(var E,b=-1,w=P.length-1;b<w;){if(E=P[b+=1],b&&!m&&(a+=" if (!"+y+") { ",p+="}"),E.if&&e.util.schemaHasRules(E.if,e.RULES.all)){a+=" var "+f+" = errors;   ";var j=e.compositeRule;if(e.compositeRule=d.compositeRule=!0,d.createErrors=!1,d.schema=E.if,d.schemaPath=n+"["+b+"].if",d.errSchemaPath=l+"/"+b+"/if",a+="  "+e.validate(d)+" ",d.baseId=g,d.createErrors=!0,e.compositeRule=d.compositeRule=j,a+=" "+y+" = "+v+"; if ("+y+") {  ","boolean"==typeof E.then){if(E.then===!1){var S=S||[];S.push(a),a="",e.createErrors!==!1?(a+=" { k
 eyword: '"+(t||"switch")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { caseIndex: "+b+" } ",e.opts.messages!==!1&&(a+=" , message: 'should pass \"switch\" keyword validation' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var $=a;a=S.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+$+"]); ":" validate.errors = ["+$+"]; return false; ":" var err = "+$+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}a+=" var "+v+" = "+E.then+"; "}else d.schema=E.then,d.schemaPath=n+"["+b+"].then",d.errSchemaPath=l+"/"+b+"/then",a+="  "+e.validate(d)+" ",d.baseId=g;a+="  } else {  errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; } } "}else if(a+=" "+y+" = true;  ","boolean"==typeof E.then){if(E.then===!1){var S=S||[];S.push(a),a="",e.createErrors!==!1?(a+="
  { keyword: '"+(t||"switch")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { caseIndex: "+b+" } ",e.opts.messages!==!1&&(a+=" , message: 'should pass \"switch\" keyword validation' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var $=a;a=S.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+$+"]); ":" validate.errors = ["+$+"]; return false; ":" var err = "+$+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}a+=" var "+v+" = "+E.then+"; "}else d.schema=E.then,d.schemaPath=n+"["+b+"].then",d.errSchemaPath=l+"/"+b+"/then",a+="  "+e.validate(d)+" ",d.baseId=g;m=E.continue}return a+=""+p+"var "+u+" = "+v+"; ",a=e.util.cleanUpCode(a)}},{}],35:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchem
 aPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f="valid"+o,d=e.opts.v5&&n&&n.$data;if(d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,(n||d)&&e.opts.uniqueItems!==!1){d&&(s+=" var "+f+"; if ("+a+" === false || "+a+" === undefined) "+f+" = true; else if (typeof "+a+" != 'boolean') "+f+" = false; else { "),s+=" var "+f+" = true; if ("+u+".length > 1) { var i = "+u+".length, j; outer: for (;i--;) { for (j = i; j--;) { if (equal("+u+"[i], "+u+"[j])) { "+f+" = false; break outer; } } } } ",d&&(s+="  }  "),s+=" if (!"+f+") {   ";var p=p||[];p.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"uniqueItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { i: i, j: j } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(s+=" , schema:  ",s+=d?"validate.schema"+l:""+n,s+="         , parentSchema
 : validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var m=s;s=p.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",h&&(s+=" else { ")}else h&&(s+=" if (true) { ");return s}},{}],36:[function(e,r,t){"use strict";r.exports=function(e,r){function t(e){for(var r=0;r<e.rules.length;r++)if(a(e.rules[r]))return!0}function a(r){return void 0!==e.schema[r.keyword]||"properties"==r.keyword&&(e.schema.additionalProperties===!1||"object"==typeof e.schema.additionalProperties||e.schema.patternProperties&&Object.keys(e.schema.patternProperties).length||e.opts.v5&&e.schema.patternGroups&&Object.keys(e.schema.patternGroups).length)}var s="",o=e.schema.$async===!0;if(e.isTop){var i=e.isTop,n=e.level=0,l=e.dataLevel=0,c="data";if(e.rootId=e.resolve.fullPath(e.root.schema.id),e.baseId=e.baseId||e.rootId,o){e.as
 ync=!0;var h="es7"==e.opts.async;e.yieldAwait=h?"await":"yield"}delete e.isTop,e.dataPathArr=[void 0],s+=" var validate = ",o?h?s+=" (async function ":("co*"==e.opts.async&&(s+="co.wrap"),s+="(function* "):s+=" (function ",s+=" (data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; var vErrors = null; ",s+=" var errors = 0;     ",s+=" if (rootData === undefined) rootData = data;"}else{var n=e.level,l=e.dataLevel,c="data"+(l||"");if(e.schema.id&&(e.baseId=e.resolve.url(e.baseId,e.schema.id)),o&&!e.async)throw new Error("async schema in sync schema");s+=" var errs_"+n+" = errors;"}var u,f="valid"+n,d=!e.opts.allErrors,p="",m="",v=e.schema.type,y=Array.isArray(v);if(v&&e.opts.coerceTypes){var g=e.util.coerceToTypes(e.opts.coerceTypes,v);if(g){var P=e.schemaPath+".type",E=e.errSchemaPath+"/type",b=y?"checkDataTypes":"checkDataType";s+=" if ("+e.util[b](v,c,!0)+") {  ";var w="dataType"+n,j="coerced"+n;s+=" var "+w+" = typeof "+c+"; ","array"==e.opts.coerceTypes&&(s+="
  if ("+w+" == 'object' && Array.isArray("+c+")) "+w+" = 'array'; "),s+=" var "+j+" = undefined; ";var S="",$=g;if($)for(var x,_=-1,O=$.length-1;_<O;)x=$[_+=1],_&&(s+=" if ("+j+" === undefined) { ",S+="}"),"array"==e.opts.coerceTypes&&"array"!=x&&(s+=" if ("+w+" == 'array' && "+c+".length == 1) { "+j+" = "+c+" = "+c+"[0]; "+w+" = typeof "+c+";  } "),"string"==x?s+=" if ("+w+" == 'number' || "+w+" == 'boolean') "+j+" = '' + "+c+"; else if ("+c+" === null) "+j+" = ''; ":"number"==x||"integer"==x?(s+=" if ("+w+" == 'boolean' || "+c+" === null || ("+w+" == 'string' && "+c+" && "+c+" == +"+c+" ","integer"==x&&(s+=" && !("+c+" % 1)"),s+=")) "+j+" = +"+c+"; "):"boolean"==x?s+=" if ("+c+" === 'false' || "+c+" === 0 || "+c+" === null) "+j+" = false; else if ("+c+" === 'true' || "+c+" === 1) "+j+" = true; ":"null"==x?s+=" if ("+c+" === '' || "+c+" === 0 || "+c+" === false) "+j+" = null; ":"array"==e.opts.coerceTypes&&"array"==x&&(s+=" if ("+w+" == 'string' || "+w+" == 'number' || "+w+" == 'boo
 lean' || "+c+" == null) "+j+" = ["+c+"]; ");s+=" "+S+" if ("+j+" === undefined) {   ";var R=R||[];R.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(u||"type")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(E)+" , params: { type: '",s+=y?""+v.join(","):""+v,s+="' } ",e.opts.messages!==!1&&(s+=" , message: 'should be ",s+=y?""+v.join(","):""+v,s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+P+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var I=s;s=R.pop(),s+=!e.compositeRule&&d?e.async?" throw new ValidationError(["+I+"]); ":" validate.errors = ["+I+"]; return false; ":" var err = "+I+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else {  ";var A=l?"data"+(l-1||""):"parentData",k=l?e.dataPathArr[l]:"parentDataProperty";s+=" "+c+" = "+j+"; ",l||(s+="if ("+A+" !== undefined)"),s+=" "+A+"["+k+"] = "+j+"; } } "}}var q;if(e.schema.$ref&&(q=e.util.schemaHa
 sRulesExcept(e.schema,e.RULES.all,"$ref"))){if("fail"==e.opts.extendRefs)throw new Error('$ref: validation keywords used in schema at path "'+e.errSchemaPath+'"');"ignore"==e.opts.extendRefs?(q=!1,console.log('$ref: keywords ignored in schema at path "'+e.errSchemaPath+'"')):e.opts.extendRefs!==!0&&console.log('$ref: all keywords used in schema at path "'+e.errSchemaPath+'". It will change in the next major version, see issue #260. Use option { extendRefs: true } to keep current behaviour')}if(e.schema.$ref&&!q)s+=" "+e.RULES.all.$ref.code(e,"$ref")+" ",d&&(s+=" } if (errors === ",s+=i?"0":"errs_"+n,s+=") { ",m+="}");else{var D=e.RULES;if(D)for(var L,Q=-1,C=D.length-1;Q<C;)if(L=D[Q+=1],t(L)){if(L.type&&(s+=" if ("+e.util.checkDataType(L.type,c)+") { "),e.opts.useDefaults&&!e.compositeRule)if("object"==L.type&&e.schema.properties){var V=e.schema.properties,z=Object.keys(V),U=z;if(U)for(var T,M=-1,N=U.length-1;M<N;){T=U[M+=1];var F=V[T];if(void 0!==F.default){var H=c+e.util.getPropert
 y(T);s+="  if ("+H+" === undefined) "+H+" = ",s+="shared"==e.opts.useDefaults?" "+e.useDefault(F.default)+" ":" "+JSON.stringify(F.default)+" ",s+="; "}}}else if("array"==L.type&&Array.isArray(e.schema.items)){var J=e.schema.items;if(J)for(var F,_=-1,G=J.length-1;_<G;)if(F=J[_+=1],void 0!==F.default){var H=c+"["+_+"]";s+="  if ("+H+" === undefined) "+H+" = ",s+="shared"==e.opts.useDefaults?" "+e.useDefault(F.default)+" ":" "+JSON.stringify(F.default)+" ",s+="; "}}var K=L.rules;if(K)for(var B,Z=-1,Y=K.length-1;Z<Y;)B=K[Z+=1],a(B)&&(s+=" "+B.code(e,B.keyword)+" ",d&&(p+="}"));if(d&&(s+=" "+p+" ",p=""),L.type&&(s+=" } ",v&&v===L.type)){var W=!0;s+=" else { ";var P=e.schemaPath+".type",E=e.errSchemaPath+"/type",R=R||[];R.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(u||"type")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(E)+" , params: { type: '",s+=y?""+v.join(","):""+v,s+="' } ",e.opts.messages!==!1&&(s+=" , message: 'should be ",s+=y
 ?""+v.join(","):""+v,s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+P+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var I=s;s=R.pop(),s+=!e.compositeRule&&d?e.async?" throw new ValidationError(["+I+"]); ":" validate.errors = ["+I+"]; return false; ":" var err = "+I+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } "}d&&(s+=" if (errors === ",s+=i?"0":"errs_"+n,s+=") { ",m+="}")}}if(v&&!W&&(!e.opts.coerceTypes||!g)){var P=e.schemaPath+".type",E=e.errSchemaPath+"/type",b=y?"checkDataTypes":"checkDataType";s+=" if ("+e.util[b](v,c,!0)+") {   ";var R=R||[];R.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(u||"type")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(E)+" , params: { type: '",s+=y?""+v.join(","):""+v,s+="' } ",e.opts.messages!==!1&&(s+=" , message: 'should be ",s+=y?""+v.join(","):""+v,s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"
 +P+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var I=s;s=R.pop(),s+=!e.compositeRule&&d?e.async?" throw new ValidationError(["+I+"]); ":" validate.errors = ["+I+"]; return false; ":" var err = "+I+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" }"}return d&&(s+=" "+m+" "),i?(o?(s+=" if (errors === 0) return true;           ",s+=" else throw new ValidationError(vErrors); "):(s+=" validate.errors = vErrors; ",s+=" return errors === 0;       "),s+=" }); return validate;"):s+=" var "+f+" = errors === errs_"+n+";",s=e.util.cleanUpCode(s),i&&d&&(s=e.util.cleanUpVarErrors(s,o)),s}},{}],37:[function(e,r,t){"use strict";function a(e,r){function t(e,r,t){for(var a,o=0;o<s.length;o++){var i=s[o];if(i.type==r){a=i;break}}a||(a={type:r,rules:[]},s.push(a));var l={keyword:e,definition:t,custom:!0,code:n};a.rules.push(l),s.custom[e]=l}function a(e){if(!s.types[e])throw new Error("Unknown type "+e)}var s=this.RULES;if(s.
 keywords[e])throw new Error("Keyword "+e+" is already defined");if(!i.test(e))throw new Error("Keyword "+e+" is not a valid identifier");if(r){if(r.macro&&void 0!==r.valid)throw new Error('"valid" option cannot be used with macro keywords');var o=r.type;if(Array.isArray(o)){var l,c=o.length;for(l=0;l<c;l++)a(o[l]);for(l=0;l<c;l++)t(e,o[l],r)}else o&&a(o),t(e,o,r);var h=r.$data===!0&&this._opts.v5;if(h&&!r.validate)throw new Error('$data support: "validate" function is not defined');var u=r.metaSchema;u&&(h&&(u={anyOf:[u,{$ref:"https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-v5.json#/definitions/$data"}]}),r.validateSchema=this.compile(u,!0))}s.keywords[e]=s.all[e]=!0}function s(e){var r=this.RULES.custom[e];return r?r.definition:this.RULES.keywords[e]||!1}function o(e){var r=this.RULES;delete r.keywords[e],delete r.all[e],delete r.custom[e];for(var t=0;t<r.length;t++)for(var a=r[t].rules,s=0;s<a.length;s++)if(a[s].keyword==e){a.splice(s,1);break}}var i=
 /^[a-z_$][a-z0-9_$\-]*$/i,n=e("./dotjs/custom");r.exports={add:a,get:s,remove:o}},{"./dotjs/custom":21}],38:[function(e,r,t){r.exports={id:"http://json-schema.org/draft-04/schema#",$schema:"http://json-schema.org/draft-04/schema#",description:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref

<TRUNCATED>


[28/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/async/README.md
----------------------------------------------------------------------
diff --git a/node_modules/async/README.md b/node_modules/async/README.md
deleted file mode 100644
index 951f76e..0000000
--- a/node_modules/async/README.md
+++ /dev/null
@@ -1,1425 +0,0 @@
-# Async.js
-
-Async is a utility module which provides straight-forward, powerful functions
-for working with asynchronous JavaScript. Although originally designed for
-use with [node.js](http://nodejs.org), it can also be used directly in the
-browser. Also supports [component](https://github.com/component/component).
-
-Async provides around 20 functions that include the usual 'functional'
-suspects (map, reduce, filter, each…) as well as some common patterns
-for asynchronous control flow (parallel, series, waterfall…). All these
-functions assume you follow the node.js convention of providing a single
-callback as the last argument of your async function.
-
-
-## Quick Examples
-
-```javascript
-async.map(['file1','file2','file3'], fs.stat, function(err, results){
-    // results is now an array of stats for each file
-});
-
-async.filter(['file1','file2','file3'], fs.exists, function(results){
-    // results now equals an array of the existing files
-});
-
-async.parallel([
-    function(){ ... },
-    function(){ ... }
-], callback);
-
-async.series([
-    function(){ ... },
-    function(){ ... }
-]);
-```
-
-There are many more functions available so take a look at the docs below for a
-full list. This module aims to be comprehensive, so if you feel anything is
-missing please create a GitHub issue for it.
-
-## Common Pitfalls
-
-### Binding a context to an iterator
-
-This section is really about bind, not about async. If you are wondering how to
-make async execute your iterators in a given context, or are confused as to why
-a method of another library isn't working as an iterator, study this example:
-
-```js
-// Here is a simple object with an (unnecessarily roundabout) squaring method
-var AsyncSquaringLibrary = {
-  squareExponent: 2,
-  square: function(number, callback){ 
-    var result = Math.pow(number, this.squareExponent);
-    setTimeout(function(){
-      callback(null, result);
-    }, 200);
-  }
-};
-
-async.map([1, 2, 3], AsyncSquaringLibrary.square, function(err, result){
-  // result is [NaN, NaN, NaN]
-  // This fails because the `this.squareExponent` expression in the square
-  // function is not evaluated in the context of AsyncSquaringLibrary, and is
-  // therefore undefined.
-});
-
-async.map([1, 2, 3], AsyncSquaringLibrary.square.bind(AsyncSquaringLibrary), function(err, result){
-  // result is [1, 4, 9]
-  // With the help of bind we can attach a context to the iterator before
-  // passing it to async. Now the square function will be executed in its 
-  // 'home' AsyncSquaringLibrary context and the value of `this.squareExponent`
-  // will be as expected.
-});
-```
-
-## Download
-
-The source is available for download from
-[GitHub](http://github.com/caolan/async).
-Alternatively, you can install using Node Package Manager (npm):
-
-    npm install async
-
-__Development:__ [async.js](https://github.com/caolan/async/raw/master/lib/async.js) - 29.6kb Uncompressed
-
-## In the Browser
-
-So far it's been tested in IE6, IE7, IE8, FF3.6 and Chrome 5. Usage:
-
-```html
-<script type="text/javascript" src="async.js"></script>
-<script type="text/javascript">
-
-    async.map(data, asyncProcess, function(err, results){
-        alert(results);
-    });
-
-</script>
-```
-
-## Documentation
-
-### Collections
-
-* [each](#each)
-* [eachSeries](#eachSeries)
-* [eachLimit](#eachLimit)
-* [map](#map)
-* [mapSeries](#mapSeries)
-* [mapLimit](#mapLimit)
-* [filter](#filter)
-* [filterSeries](#filterSeries)
-* [reject](#reject)
-* [rejectSeries](#rejectSeries)
-* [reduce](#reduce)
-* [reduceRight](#reduceRight)
-* [detect](#detect)
-* [detectSeries](#detectSeries)
-* [sortBy](#sortBy)
-* [some](#some)
-* [every](#every)
-* [concat](#concat)
-* [concatSeries](#concatSeries)
-
-### Control Flow
-
-* [series](#series)
-* [parallel](#parallel)
-* [parallelLimit](#parallellimittasks-limit-callback)
-* [whilst](#whilst)
-* [doWhilst](#doWhilst)
-* [until](#until)
-* [doUntil](#doUntil)
-* [forever](#forever)
-* [waterfall](#waterfall)
-* [compose](#compose)
-* [applyEach](#applyEach)
-* [applyEachSeries](#applyEachSeries)
-* [queue](#queue)
-* [cargo](#cargo)
-* [auto](#auto)
-* [iterator](#iterator)
-* [apply](#apply)
-* [nextTick](#nextTick)
-* [times](#times)
-* [timesSeries](#timesSeries)
-
-### Utils
-
-* [memoize](#memoize)
-* [unmemoize](#unmemoize)
-* [log](#log)
-* [dir](#dir)
-* [noConflict](#noConflict)
-
-
-## Collections
-
-<a name="forEach" />
-<a name="each" />
-### each(arr, iterator, callback)
-
-Applies an iterator function to each item in an array, in parallel.
-The iterator is called with an item from the list and a callback for when it
-has finished. If the iterator passes an error to this callback, the main
-callback for the each function is immediately called with the error.
-
-Note, that since this function applies the iterator to each item in parallel
-there is no guarantee that the iterator functions will complete in order.
-
-__Arguments__
-
-* arr - An array to iterate over.
-* iterator(item, callback) - A function to apply to each item in the array.
-  The iterator is passed a callback(err) which must be called once it has 
-  completed. If no error has occured, the callback should be run without 
-  arguments or with an explicit null argument.
-* callback(err) - A callback which is called after all the iterator functions
-  have finished, or an error has occurred.
-
-__Example__
-
-```js
-// assuming openFiles is an array of file names and saveFile is a function
-// to save the modified contents of that file:
-
-async.each(openFiles, saveFile, function(err){
-    // if any of the saves produced an error, err would equal that error
-});
-```
-
----------------------------------------
-
-<a name="forEachSeries" />
-<a name="eachSeries" />
-### eachSeries(arr, iterator, callback)
-
-The same as each only the iterator is applied to each item in the array in
-series. The next iterator is only called once the current one has completed
-processing. This means the iterator functions will complete in order.
-
-
----------------------------------------
-
-<a name="forEachLimit" />
-<a name="eachLimit" />
-### eachLimit(arr, limit, iterator, callback)
-
-The same as each only no more than "limit" iterators will be simultaneously 
-running at any time.
-
-Note that the items are not processed in batches, so there is no guarantee that
- the first "limit" iterator functions will complete before any others are 
-started.
-
-__Arguments__
-
-* arr - An array to iterate over.
-* limit - The maximum number of iterators to run at any time.
-* iterator(item, callback) - A function to apply to each item in the array.
-  The iterator is passed a callback(err) which must be called once it has 
-  completed. If no error has occured, the callback should be run without 
-  arguments or with an explicit null argument.
-* callback(err) - A callback which is called after all the iterator functions
-  have finished, or an error has occurred.
-
-__Example__
-
-```js
-// Assume documents is an array of JSON objects and requestApi is a
-// function that interacts with a rate-limited REST api.
-
-async.eachLimit(documents, 20, requestApi, function(err){
-    // if any of the saves produced an error, err would equal that error
-});
-```
-
----------------------------------------
-
-<a name="map" />
-### map(arr, iterator, callback)
-
-Produces a new array of values by mapping each value in the given array through
-the iterator function. The iterator is called with an item from the array and a
-callback for when it has finished processing. The callback takes 2 arguments, 
-an error and the transformed item from the array. If the iterator passes an
-error to this callback, the main callback for the map function is immediately
-called with the error.
-
-Note, that since this function applies the iterator to each item in parallel
-there is no guarantee that the iterator functions will complete in order, however
-the results array will be in the same order as the original array.
-
-__Arguments__
-
-* arr - An array to iterate over.
-* iterator(item, callback) - A function to apply to each item in the array.
-  The iterator is passed a callback(err, transformed) which must be called once 
-  it has completed with an error (which can be null) and a transformed item.
-* callback(err, results) - A callback which is called after all the iterator
-  functions have finished, or an error has occurred. Results is an array of the
-  transformed items from the original array.
-
-__Example__
-
-```js
-async.map(['file1','file2','file3'], fs.stat, function(err, results){
-    // results is now an array of stats for each file
-});
-```
-
----------------------------------------
-
-<a name="mapSeries" />
-### mapSeries(arr, iterator, callback)
-
-The same as map only the iterator is applied to each item in the array in
-series. The next iterator is only called once the current one has completed
-processing. The results array will be in the same order as the original.
-
-
----------------------------------------
-
-<a name="mapLimit" />
-### mapLimit(arr, limit, iterator, callback)
-
-The same as map only no more than "limit" iterators will be simultaneously 
-running at any time.
-
-Note that the items are not processed in batches, so there is no guarantee that
- the first "limit" iterator functions will complete before any others are 
-started.
-
-__Arguments__
-
-* arr - An array to iterate over.
-* limit - The maximum number of iterators to run at any time.
-* iterator(item, callback) - A function to apply to each item in the array.
-  The iterator is passed a callback(err, transformed) which must be called once 
-  it has completed with an error (which can be null) and a transformed item.
-* callback(err, results) - A callback which is called after all the iterator
-  functions have finished, or an error has occurred. Results is an array of the
-  transformed items from the original array.
-
-__Example__
-
-```js
-async.mapLimit(['file1','file2','file3'], 1, fs.stat, function(err, results){
-    // results is now an array of stats for each file
-});
-```
-
----------------------------------------
-
-<a name="filter" />
-### filter(arr, iterator, callback)
-
-__Alias:__ select
-
-Returns a new array of all the values which pass an async truth test.
-_The callback for each iterator call only accepts a single argument of true or
-false, it does not accept an error argument first!_ This is in-line with the
-way node libraries work with truth tests like fs.exists. This operation is
-performed in parallel, but the results array will be in the same order as the
-original.
-
-__Arguments__
-
-* arr - An array to iterate over.
-* iterator(item, callback) - A truth test to apply to each item in the array.
-  The iterator is passed a callback(truthValue) which must be called with a 
-  boolean argument once it has completed.
-* callback(results) - A callback which is called after all the iterator
-  functions have finished.
-
-__Example__
-
-```js
-async.filter(['file1','file2','file3'], fs.exists, function(results){
-    // results now equals an array of the existing files
-});
-```
-
----------------------------------------
-
-<a name="filterSeries" />
-### filterSeries(arr, iterator, callback)
-
-__alias:__ selectSeries
-
-The same as filter only the iterator is applied to each item in the array in
-series. The next iterator is only called once the current one has completed
-processing. The results array will be in the same order as the original.
-
----------------------------------------
-
-<a name="reject" />
-### reject(arr, iterator, callback)
-
-The opposite of filter. Removes values that pass an async truth test.
-
----------------------------------------
-
-<a name="rejectSeries" />
-### rejectSeries(arr, iterator, callback)
-
-The same as reject, only the iterator is applied to each item in the array
-in series.
-
-
----------------------------------------
-
-<a name="reduce" />
-### reduce(arr, memo, iterator, callback)
-
-__aliases:__ inject, foldl
-
-Reduces a list of values into a single value using an async iterator to return
-each successive step. Memo is the initial state of the reduction. This
-function only operates in series. For performance reasons, it may make sense to
-split a call to this function into a parallel map, then use the normal
-Array.prototype.reduce on the results. This function is for situations where
-each step in the reduction needs to be async, if you can get the data before
-reducing it then it's probably a good idea to do so.
-
-__Arguments__
-
-* arr - An array to iterate over.
-* memo - The initial state of the reduction.
-* iterator(memo, item, callback) - A function applied to each item in the
-  array to produce the next step in the reduction. The iterator is passed a
-  callback(err, reduction) which accepts an optional error as its first 
-  argument, and the state of the reduction as the second. If an error is 
-  passed to the callback, the reduction is stopped and the main callback is 
-  immediately called with the error.
-* callback(err, result) - A callback which is called after all the iterator
-  functions have finished. Result is the reduced value.
-
-__Example__
-
-```js
-async.reduce([1,2,3], 0, function(memo, item, callback){
-    // pointless async:
-    process.nextTick(function(){
-        callback(null, memo + item)
-    });
-}, function(err, result){
-    // result is now equal to the last value of memo, which is 6
-});
-```
-
----------------------------------------
-
-<a name="reduceRight" />
-### reduceRight(arr, memo, iterator, callback)
-
-__Alias:__ foldr
-
-Same as reduce, only operates on the items in the array in reverse order.
-
-
----------------------------------------
-
-<a name="detect" />
-### detect(arr, iterator, callback)
-
-Returns the first value in a list that passes an async truth test. The
-iterator is applied in parallel, meaning the first iterator to return true will
-fire the detect callback with that result. That means the result might not be
-the first item in the original array (in terms of order) that passes the test.
-
-If order within the original array is important then look at detectSeries.
-
-__Arguments__
-
-* arr - An array to iterate over.
-* iterator(item, callback) - A truth test to apply to each item in the array.
-  The iterator is passed a callback(truthValue) which must be called with a 
-  boolean argument once it has completed.
-* callback(result) - A callback which is called as soon as any iterator returns
-  true, or after all the iterator functions have finished. Result will be
-  the first item in the array that passes the truth test (iterator) or the
-  value undefined if none passed.
-
-__Example__
-
-```js
-async.detect(['file1','file2','file3'], fs.exists, function(result){
-    // result now equals the first file in the list that exists
-});
-```
-
----------------------------------------
-
-<a name="detectSeries" />
-### detectSeries(arr, iterator, callback)
-
-The same as detect, only the iterator is applied to each item in the array
-in series. This means the result is always the first in the original array (in
-terms of array order) that passes the truth test.
-
-
----------------------------------------
-
-<a name="sortBy" />
-### sortBy(arr, iterator, callback)
-
-Sorts a list by the results of running each value through an async iterator.
-
-__Arguments__
-
-* arr - An array to iterate over.
-* iterator(item, callback) - A function to apply to each item in the array.
-  The iterator is passed a callback(err, sortValue) which must be called once it
-  has completed with an error (which can be null) and a value to use as the sort
-  criteria.
-* callback(err, results) - A callback which is called after all the iterator
-  functions have finished, or an error has occurred. Results is the items from
-  the original array sorted by the values returned by the iterator calls.
-
-__Example__
-
-```js
-async.sortBy(['file1','file2','file3'], function(file, callback){
-    fs.stat(file, function(err, stats){
-        callback(err, stats.mtime);
-    });
-}, function(err, results){
-    // results is now the original array of files sorted by
-    // modified date
-});
-```
-
----------------------------------------
-
-<a name="some" />
-### some(arr, iterator, callback)
-
-__Alias:__ any
-
-Returns true if at least one element in the array satisfies an async test.
-_The callback for each iterator call only accepts a single argument of true or
-false, it does not accept an error argument first!_ This is in-line with the
-way node libraries work with truth tests like fs.exists. Once any iterator
-call returns true, the main callback is immediately called.
-
-__Arguments__
-
-* arr - An array to iterate over.
-* iterator(item, callback) - A truth test to apply to each item in the array.
-  The iterator is passed a callback(truthValue) which must be called with a 
-  boolean argument once it has completed.
-* callback(result) - A callback which is called as soon as any iterator returns
-  true, or after all the iterator functions have finished. Result will be
-  either true or false depending on the values of the async tests.
-
-__Example__
-
-```js
-async.some(['file1','file2','file3'], fs.exists, function(result){
-    // if result is true then at least one of the files exists
-});
-```
-
----------------------------------------
-
-<a name="every" />
-### every(arr, iterator, callback)
-
-__Alias:__ all
-
-Returns true if every element in the array satisfies an async test.
-_The callback for each iterator call only accepts a single argument of true or
-false, it does not accept an error argument first!_ This is in-line with the
-way node libraries work with truth tests like fs.exists.
-
-__Arguments__
-
-* arr - An array to iterate over.
-* iterator(item, callback) - A truth test to apply to each item in the array.
-  The iterator is passed a callback(truthValue) which must be called with a 
-  boolean argument once it has completed.
-* callback(result) - A callback which is called after all the iterator
-  functions have finished. Result will be either true or false depending on
-  the values of the async tests.
-
-__Example__
-
-```js
-async.every(['file1','file2','file3'], fs.exists, function(result){
-    // if result is true then every file exists
-});
-```
-
----------------------------------------
-
-<a name="concat" />
-### concat(arr, iterator, callback)
-
-Applies an iterator to each item in a list, concatenating the results. Returns the
-concatenated list. The iterators are called in parallel, and the results are
-concatenated as they return. There is no guarantee that the results array will
-be returned in the original order of the arguments passed to the iterator function.
-
-__Arguments__
-
-* arr - An array to iterate over
-* iterator(item, callback) - A function to apply to each item in the array.
-  The iterator is passed a callback(err, results) which must be called once it 
-  has completed with an error (which can be null) and an array of results.
-* callback(err, results) - A callback which is called after all the iterator
-  functions have finished, or an error has occurred. Results is an array containing
-  the concatenated results of the iterator function.
-
-__Example__
-
-```js
-async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){
-    // files is now a list of filenames that exist in the 3 directories
-});
-```
-
----------------------------------------
-
-<a name="concatSeries" />
-### concatSeries(arr, iterator, callback)
-
-Same as async.concat, but executes in series instead of parallel.
-
-
-## Control Flow
-
-<a name="series" />
-### series(tasks, [callback])
-
-Run an array of functions in series, each one running once the previous
-function has completed. If any functions in the series pass an error to its
-callback, no more functions are run and the callback for the series is
-immediately called with the value of the error. Once the tasks have completed,
-the results are passed to the final callback as an array.
-
-It is also possible to use an object instead of an array. Each property will be
-run as a function and the results will be passed to the final callback as an object
-instead of an array. This can be a more readable way of handling results from
-async.series.
-
-
-__Arguments__
-
-* tasks - An array or object containing functions to run, each function is passed
-  a callback(err, result) it must call on completion with an error (which can
-  be null) and an optional result value.
-* callback(err, results) - An optional callback to run once all the functions
-  have completed. This function gets a results array (or object) containing all 
-  the result arguments passed to the task callbacks.
-
-__Example__
-
-```js
-async.series([
-    function(callback){
-        // do some stuff ...
-        callback(null, 'one');
-    },
-    function(callback){
-        // do some more stuff ...
-        callback(null, 'two');
-    }
-],
-// optional callback
-function(err, results){
-    // results is now equal to ['one', 'two']
-});
-
-
-// an example using an object instead of an array
-async.series({
-    one: function(callback){
-        setTimeout(function(){
-            callback(null, 1);
-        }, 200);
-    },
-    two: function(callback){
-        setTimeout(function(){
-            callback(null, 2);
-        }, 100);
-    }
-},
-function(err, results) {
-    // results is now equal to: {one: 1, two: 2}
-});
-```
-
----------------------------------------
-
-<a name="parallel" />
-### parallel(tasks, [callback])
-
-Run an array of functions in parallel, without waiting until the previous
-function has completed. If any of the functions pass an error to its
-callback, the main callback is immediately called with the value of the error.
-Once the tasks have completed, the results are passed to the final callback as an
-array.
-
-It is also possible to use an object instead of an array. Each property will be
-run as a function and the results will be passed to the final callback as an object
-instead of an array. This can be a more readable way of handling results from
-async.parallel.
-
-
-__Arguments__
-
-* tasks - An array or object containing functions to run, each function is passed 
-  a callback(err, result) it must call on completion with an error (which can
-  be null) and an optional result value.
-* callback(err, results) - An optional callback to run once all the functions
-  have completed. This function gets a results array (or object) containing all 
-  the result arguments passed to the task callbacks.
-
-__Example__
-
-```js
-async.parallel([
-    function(callback){
-        setTimeout(function(){
-            callback(null, 'one');
-        }, 200);
-    },
-    function(callback){
-        setTimeout(function(){
-            callback(null, 'two');
-        }, 100);
-    }
-],
-// optional callback
-function(err, results){
-    // the results array will equal ['one','two'] even though
-    // the second function had a shorter timeout.
-});
-
-
-// an example using an object instead of an array
-async.parallel({
-    one: function(callback){
-        setTimeout(function(){
-            callback(null, 1);
-        }, 200);
-    },
-    two: function(callback){
-        setTimeout(function(){
-            callback(null, 2);
-        }, 100);
-    }
-},
-function(err, results) {
-    // results is now equals to: {one: 1, two: 2}
-});
-```
-
----------------------------------------
-
-<a name="parallel" />
-### parallelLimit(tasks, limit, [callback])
-
-The same as parallel only the tasks are executed in parallel with a maximum of "limit" 
-tasks executing at any time.
-
-Note that the tasks are not executed in batches, so there is no guarantee that 
-the first "limit" tasks will complete before any others are started.
-
-__Arguments__
-
-* tasks - An array or object containing functions to run, each function is passed 
-  a callback(err, result) it must call on completion with an error (which can
-  be null) and an optional result value.
-* limit - The maximum number of tasks to run at any time.
-* callback(err, results) - An optional callback to run once all the functions
-  have completed. This function gets a results array (or object) containing all 
-  the result arguments passed to the task callbacks.
-
----------------------------------------
-
-<a name="whilst" />
-### whilst(test, fn, callback)
-
-Repeatedly call fn, while test returns true. Calls the callback when stopped,
-or an error occurs.
-
-__Arguments__
-
-* test() - synchronous truth test to perform before each execution of fn.
-* fn(callback) - A function to call each time the test passes. The function is
-  passed a callback(err) which must be called once it has completed with an 
-  optional error argument.
-* callback(err) - A callback which is called after the test fails and repeated
-  execution of fn has stopped.
-
-__Example__
-
-```js
-var count = 0;
-
-async.whilst(
-    function () { return count < 5; },
-    function (callback) {
-        count++;
-        setTimeout(callback, 1000);
-    },
-    function (err) {
-        // 5 seconds have passed
-    }
-);
-```
-
----------------------------------------
-
-<a name="doWhilst" />
-### doWhilst(fn, test, callback)
-
-The post check version of whilst. To reflect the difference in the order of operations `test` and `fn` arguments are switched. `doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript.
-
----------------------------------------
-
-<a name="until" />
-### until(test, fn, callback)
-
-Repeatedly call fn, until test returns true. Calls the callback when stopped,
-or an error occurs.
-
-The inverse of async.whilst.
-
----------------------------------------
-
-<a name="doUntil" />
-### doUntil(fn, test, callback)
-
-Like doWhilst except the test is inverted. Note the argument ordering differs from `until`.
-
----------------------------------------
-
-<a name="forever" />
-### forever(fn, callback)
-
-Calls the asynchronous function 'fn' repeatedly, in series, indefinitely.
-If an error is passed to fn's callback then 'callback' is called with the
-error, otherwise it will never be called.
-
----------------------------------------
-
-<a name="waterfall" />
-### waterfall(tasks, [callback])
-
-Runs an array of functions in series, each passing their results to the next in
-the array. However, if any of the functions pass an error to the callback, the
-next function is not executed and the main callback is immediately called with
-the error.
-
-__Arguments__
-
-* tasks - An array of functions to run, each function is passed a 
-  callback(err, result1, result2, ...) it must call on completion. The first
-  argument is an error (which can be null) and any further arguments will be 
-  passed as arguments in order to the next task.
-* callback(err, [results]) - An optional callback to run once all the functions
-  have completed. This will be passed the results of the last task's callback.
-
-
-
-__Example__
-
-```js
-async.waterfall([
-    function(callback){
-        callback(null, 'one', 'two');
-    },
-    function(arg1, arg2, callback){
-        callback(null, 'three');
-    },
-    function(arg1, callback){
-        // arg1 now equals 'three'
-        callback(null, 'done');
-    }
-], function (err, result) {
-   // result now equals 'done'    
-});
-```
-
----------------------------------------
-<a name="compose" />
-### compose(fn1, fn2...)
-
-Creates a function which is a composition of the passed asynchronous
-functions. Each function consumes the return value of the function that
-follows. Composing functions f(), g() and h() would produce the result of
-f(g(h())), only this version uses callbacks to obtain the return values.
-
-Each function is executed with the `this` binding of the composed function.
-
-__Arguments__
-
-* functions... - the asynchronous functions to compose
-
-
-__Example__
-
-```js
-function add1(n, callback) {
-    setTimeout(function () {
-        callback(null, n + 1);
-    }, 10);
-}
-
-function mul3(n, callback) {
-    setTimeout(function () {
-        callback(null, n * 3);
-    }, 10);
-}
-
-var add1mul3 = async.compose(mul3, add1);
-
-add1mul3(4, function (err, result) {
-   // result now equals 15
-});
-```
-
----------------------------------------
-<a name="applyEach" />
-### applyEach(fns, args..., callback)
-
-Applies the provided arguments to each function in the array, calling the
-callback after all functions have completed. If you only provide the first
-argument then it will return a function which lets you pass in the
-arguments as if it were a single function call.
-
-__Arguments__
-
-* fns - the asynchronous functions to all call with the same arguments
-* args... - any number of separate arguments to pass to the function
-* callback - the final argument should be the callback, called when all
-  functions have completed processing
-
-
-__Example__
-
-```js
-async.applyEach([enableSearch, updateSchema], 'bucket', callback);
-
-// partial application example:
-async.each(
-    buckets,
-    async.applyEach([enableSearch, updateSchema]),
-    callback
-);
-```
-
----------------------------------------
-
-<a name="applyEachSeries" />
-### applyEachSeries(arr, iterator, callback)
-
-The same as applyEach only the functions are applied in series.
-
----------------------------------------
-
-<a name="queue" />
-### queue(worker, concurrency)
-
-Creates a queue object with the specified concurrency. Tasks added to the
-queue will be processed in parallel (up to the concurrency limit). If all
-workers are in progress, the task is queued until one is available. Once
-a worker has completed a task, the task's callback is called.
-
-__Arguments__
-
-* worker(task, callback) - An asynchronous function for processing a queued
-  task, which must call its callback(err) argument when finished, with an 
-  optional error as an argument.
-* concurrency - An integer for determining how many worker functions should be
-  run in parallel.
-
-__Queue objects__
-
-The queue object returned by this function has the following properties and
-methods:
-
-* length() - a function returning the number of items waiting to be processed.
-* concurrency - an integer for determining how many worker functions should be
-  run in parallel. This property can be changed after a queue is created to
-  alter the concurrency on-the-fly.
-* push(task, [callback]) - add a new task to the queue, the callback is called
-  once the worker has finished processing the task.
-  instead of a single task, an array of tasks can be submitted. the respective callback is used for every task in the list.
-* unshift(task, [callback]) - add a new task to the front of the queue.
-* saturated - a callback that is called when the queue length hits the concurrency and further tasks will be queued
-* empty - a callback that is called when the last item from the queue is given to a worker
-* drain - a callback that is called when the last item from the queue has returned from the worker
-
-__Example__
-
-```js
-// create a queue object with concurrency 2
-
-var q = async.queue(function (task, callback) {
-    console.log('hello ' + task.name);
-    callback();
-}, 2);
-
-
-// assign a callback
-q.drain = function() {
-    console.log('all items have been processed');
-}
-
-// add some items to the queue
-
-q.push({name: 'foo'}, function (err) {
-    console.log('finished processing foo');
-});
-q.push({name: 'bar'}, function (err) {
-    console.log('finished processing bar');
-});
-
-// add some items to the queue (batch-wise)
-
-q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function (err) {
-    console.log('finished processing bar');
-});
-
-// add some items to the front of the queue
-
-q.unshift({name: 'bar'}, function (err) {
-    console.log('finished processing bar');
-});
-```
-
----------------------------------------
-
-<a name="cargo" />
-### cargo(worker, [payload])
-
-Creates a cargo object with the specified payload. Tasks added to the
-cargo will be processed altogether (up to the payload limit). If the
-worker is in progress, the task is queued until it is available. Once
-the worker has completed some tasks, each callback of those tasks is called.
-
-__Arguments__
-
-* worker(tasks, callback) - An asynchronous function for processing an array of
-  queued tasks, which must call its callback(err) argument when finished, with 
-  an optional error as an argument.
-* payload - An optional integer for determining how many tasks should be
-  processed per round; if omitted, the default is unlimited.
-
-__Cargo objects__
-
-The cargo object returned by this function has the following properties and
-methods:
-
-* length() - a function returning the number of items waiting to be processed.
-* payload - an integer for determining how many tasks should be
-  process per round. This property can be changed after a cargo is created to
-  alter the payload on-the-fly.
-* push(task, [callback]) - add a new task to the queue, the callback is called
-  once the worker has finished processing the task.
-  instead of a single task, an array of tasks can be submitted. the respective callback is used for every task in the list.
-* saturated - a callback that is called when the queue length hits the concurrency and further tasks will be queued
-* empty - a callback that is called when the last item from the queue is given to a worker
-* drain - a callback that is called when the last item from the queue has returned from the worker
-
-__Example__
-
-```js
-// create a cargo object with payload 2
-
-var cargo = async.cargo(function (tasks, callback) {
-    for(var i=0; i<tasks.length; i++){
-      console.log('hello ' + tasks[i].name);
-    }
-    callback();
-}, 2);
-
-
-// add some items
-
-cargo.push({name: 'foo'}, function (err) {
-    console.log('finished processing foo');
-});
-cargo.push({name: 'bar'}, function (err) {
-    console.log('finished processing bar');
-});
-cargo.push({name: 'baz'}, function (err) {
-    console.log('finished processing baz');
-});
-```
-
----------------------------------------
-
-<a name="auto" />
-### auto(tasks, [callback])
-
-Determines the best order for running functions based on their requirements.
-Each function can optionally depend on other functions being completed first,
-and each function is run as soon as its requirements are satisfied. If any of
-the functions pass an error to their callback, that function will not complete
-(so any other functions depending on it will not run) and the main callback
-will be called immediately with the error. Functions also receive an object
-containing the results of functions which have completed so far.
-
-Note, all functions are called with a results object as a second argument, 
-so it is unsafe to pass functions in the tasks object which cannot handle the
-extra argument. For example, this snippet of code:
-
-```js
-async.auto({
-  readData: async.apply(fs.readFile, 'data.txt', 'utf-8')
-}, callback);
-```
-
-will have the effect of calling readFile with the results object as the last
-argument, which will fail:
-
-```js
-fs.readFile('data.txt', 'utf-8', cb, {});
-```
-
-Instead, wrap the call to readFile in a function which does not forward the 
-results object:
-
-```js
-async.auto({
-  readData: function(cb, results){
-    fs.readFile('data.txt', 'utf-8', cb);
-  }
-}, callback);
-```
-
-__Arguments__
-
-* tasks - An object literal containing named functions or an array of
-  requirements, with the function itself the last item in the array. The key
-  used for each function or array is used when specifying requirements. The 
-  function receives two arguments: (1) a callback(err, result) which must be 
-  called when finished, passing an error (which can be null) and the result of 
-  the function's execution, and (2) a results object, containing the results of
-  the previously executed functions.
-* callback(err, results) - An optional callback which is called when all the
-  tasks have been completed. The callback will receive an error as an argument
-  if any tasks pass an error to their callback. Results will always be passed
-	but if an error occurred, no other tasks will be performed, and the results
-	object will only contain partial results.
-  
-
-__Example__
-
-```js
-async.auto({
-    get_data: function(callback){
-        // async code to get some data
-    },
-    make_folder: function(callback){
-        // async code to create a directory to store a file in
-        // this is run at the same time as getting the data
-    },
-    write_file: ['get_data', 'make_folder', function(callback){
-        // once there is some data and the directory exists,
-        // write the data to a file in the directory
-        callback(null, filename);
-    }],
-    email_link: ['write_file', function(callback, results){
-        // once the file is written let's email a link to it...
-        // results.write_file contains the filename returned by write_file.
-    }]
-});
-```
-
-This is a fairly trivial example, but to do this using the basic parallel and
-series functions would look like this:
-
-```js
-async.parallel([
-    function(callback){
-        // async code to get some data
-    },
-    function(callback){
-        // async code to create a directory to store a file in
-        // this is run at the same time as getting the data
-    }
-],
-function(err, results){
-    async.series([
-        function(callback){
-            // once there is some data and the directory exists,
-            // write the data to a file in the directory
-        },
-        function(callback){
-            // once the file is written let's email a link to it...
-        }
-    ]);
-});
-```
-
-For a complicated series of async tasks using the auto function makes adding
-new tasks much easier and makes the code more readable.
-
-
----------------------------------------
-
-<a name="iterator" />
-### iterator(tasks)
-
-Creates an iterator function which calls the next function in the array,
-returning a continuation to call the next one after that. It's also possible to
-'peek' the next iterator by doing iterator.next().
-
-This function is used internally by the async module but can be useful when
-you want to manually control the flow of functions in series.
-
-__Arguments__
-
-* tasks - An array of functions to run.
-
-__Example__
-
-```js
-var iterator = async.iterator([
-    function(){ sys.p('one'); },
-    function(){ sys.p('two'); },
-    function(){ sys.p('three'); }
-]);
-
-node> var iterator2 = iterator();
-'one'
-node> var iterator3 = iterator2();
-'two'
-node> iterator3();
-'three'
-node> var nextfn = iterator2.next();
-node> nextfn();
-'three'
-```
-
----------------------------------------
-
-<a name="apply" />
-### apply(function, arguments..)
-
-Creates a continuation function with some arguments already applied, a useful
-shorthand when combined with other control flow functions. Any arguments
-passed to the returned function are added to the arguments originally passed
-to apply.
-
-__Arguments__
-
-* function - The function you want to eventually apply all arguments to.
-* arguments... - Any number of arguments to automatically apply when the
-  continuation is called.
-
-__Example__
-
-```js
-// using apply
-
-async.parallel([
-    async.apply(fs.writeFile, 'testfile1', 'test1'),
-    async.apply(fs.writeFile, 'testfile2', 'test2'),
-]);
-
-
-// the same process without using apply
-
-async.parallel([
-    function(callback){
-        fs.writeFile('testfile1', 'test1', callback);
-    },
-    function(callback){
-        fs.writeFile('testfile2', 'test2', callback);
-    }
-]);
-```
-
-It's possible to pass any number of additional arguments when calling the
-continuation:
-
-```js
-node> var fn = async.apply(sys.puts, 'one');
-node> fn('two', 'three');
-one
-two
-three
-```
-
----------------------------------------
-
-<a name="nextTick" />
-### nextTick(callback)
-
-Calls the callback on a later loop around the event loop. In node.js this just
-calls process.nextTick, in the browser it falls back to setImmediate(callback)
-if available, otherwise setTimeout(callback, 0), which means other higher priority
-events may precede the execution of the callback.
-
-This is used internally for browser-compatibility purposes.
-
-__Arguments__
-
-* callback - The function to call on a later loop around the event loop.
-
-__Example__
-
-```js
-var call_order = [];
-async.nextTick(function(){
-    call_order.push('two');
-    // call_order now equals ['one','two']
-});
-call_order.push('one')
-```
-
-<a name="times" />
-### times(n, callback)
-
-Calls the callback n times and accumulates results in the same manner
-you would use with async.map.
-
-__Arguments__
-
-* n - The number of times to run the function.
-* callback - The function to call n times.
-
-__Example__
-
-```js
-// Pretend this is some complicated async factory
-var createUser = function(id, callback) {
-  callback(null, {
-    id: 'user' + id
-  })
-}
-// generate 5 users
-async.times(5, function(n, next){
-    createUser(n, function(err, user) {
-      next(err, user)
-    })
-}, function(err, users) {
-  // we should now have 5 users
-});
-```
-
-<a name="timesSeries" />
-### timesSeries(n, callback)
-
-The same as times only the iterator is applied to each item in the array in
-series. The next iterator is only called once the current one has completed
-processing. The results array will be in the same order as the original.
-
-
-## Utils
-
-<a name="memoize" />
-### memoize(fn, [hasher])
-
-Caches the results of an async function. When creating a hash to store function
-results against, the callback is omitted from the hash and an optional hash
-function can be used.
-
-The cache of results is exposed as the `memo` property of the function returned
-by `memoize`.
-
-__Arguments__
-
-* fn - the function you to proxy and cache results from.
-* hasher - an optional function for generating a custom hash for storing
-  results, it has all the arguments applied to it apart from the callback, and
-  must be synchronous.
-
-__Example__
-
-```js
-var slow_fn = function (name, callback) {
-    // do something
-    callback(null, result);
-};
-var fn = async.memoize(slow_fn);
-
-// fn can now be used as if it were slow_fn
-fn('some name', function () {
-    // callback
-});
-```
-
-<a name="unmemoize" />
-### unmemoize(fn)
-
-Undoes a memoized function, reverting it to the original, unmemoized
-form. Comes handy in tests.
-
-__Arguments__
-
-* fn - the memoized function
-
-<a name="log" />
-### log(function, arguments)
-
-Logs the result of an async function to the console. Only works in node.js or
-in browsers that support console.log and console.error (such as FF and Chrome).
-If multiple arguments are returned from the async function, console.log is
-called on each argument in order.
-
-__Arguments__
-
-* function - The function you want to eventually apply all arguments to.
-* arguments... - Any number of arguments to apply to the function.
-
-__Example__
-
-```js
-var hello = function(name, callback){
-    setTimeout(function(){
-        callback(null, 'hello ' + name);
-    }, 1000);
-};
-```
-```js
-node> async.log(hello, 'world');
-'hello world'
-```
-
----------------------------------------
-
-<a name="dir" />
-### dir(function, arguments)
-
-Logs the result of an async function to the console using console.dir to
-display the properties of the resulting object. Only works in node.js or
-in browsers that support console.dir and console.error (such as FF and Chrome).
-If multiple arguments are returned from the async function, console.dir is
-called on each argument in order.
-
-__Arguments__
-
-* function - The function you want to eventually apply all arguments to.
-* arguments... - Any number of arguments to apply to the function.
-
-__Example__
-
-```js
-var hello = function(name, callback){
-    setTimeout(function(){
-        callback(null, {hello: name});
-    }, 1000);
-};
-```
-```js
-node> async.dir(hello, 'world');
-{hello: 'world'}
-```
-
----------------------------------------
-
-<a name="noConflict" />
-### noConflict()
-
-Changes the value of async back to its original value, returning a reference to the
-async object.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/async/component.json
----------------------------------------------------------------------
diff --git a/node_modules/async/component.json b/node_modules/async/component.json
deleted file mode 100644
index bbb0115..0000000
--- a/node_modules/async/component.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-  "name": "async",
-  "repo": "caolan/async",
-  "description": "Higher-order functions and common patterns for asynchronous code",
-  "version": "0.1.23",
-  "keywords": [],
-  "dependencies": {},
-  "development": {},
-  "main": "lib/async.js",
-  "scripts": [ "lib/async.js" ]
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/async/lib/async.js
----------------------------------------------------------------------
diff --git a/node_modules/async/lib/async.js b/node_modules/async/lib/async.js
deleted file mode 100755
index 1eebb15..0000000
--- a/node_modules/async/lib/async.js
+++ /dev/null
@@ -1,958 +0,0 @@
-/*global setImmediate: false, setTimeout: false, console: false */
-(function () {
-
-    var async = {};
-
-    // global on the server, window in the browser
-    var root, previous_async;
-
-    root = this;
-    if (root != null) {
-      previous_async = root.async;
-    }
-
-    async.noConflict = function () {
-        root.async = previous_async;
-        return async;
-    };
-
-    function only_once(fn) {
-        var called = false;
-        return function() {
-            if (called) throw new Error("Callback was already called.");
-            called = true;
-            fn.apply(root, arguments);
-        }
-    }
-
-    //// cross-browser compatiblity functions ////
-
-    var _each = function (arr, iterator) {
-        if (arr.forEach) {
-            return arr.forEach(iterator);
-        }
-        for (var i = 0; i < arr.length; i += 1) {
-            iterator(arr[i], i, arr);
-        }
-    };
-
-    var _map = function (arr, iterator) {
-        if (arr.map) {
-            return arr.map(iterator);
-        }
-        var results = [];
-        _each(arr, function (x, i, a) {
-            results.push(iterator(x, i, a));
-        });
-        return results;
-    };
-
-    var _reduce = function (arr, iterator, memo) {
-        if (arr.reduce) {
-            return arr.reduce(iterator, memo);
-        }
-        _each(arr, function (x, i, a) {
-            memo = iterator(memo, x, i, a);
-        });
-        return memo;
-    };
-
-    var _keys = function (obj) {
-        if (Object.keys) {
-            return Object.keys(obj);
-        }
-        var keys = [];
-        for (var k in obj) {
-            if (obj.hasOwnProperty(k)) {
-                keys.push(k);
-            }
-        }
-        return keys;
-    };
-
-    //// exported async module functions ////
-
-    //// nextTick implementation with browser-compatible fallback ////
-    if (typeof process === 'undefined' || !(process.nextTick)) {
-        if (typeof setImmediate === 'function') {
-            async.nextTick = function (fn) {
-                // not a direct alias for IE10 compatibility
-                setImmediate(fn);
-            };
-            async.setImmediate = async.nextTick;
-        }
-        else {
-            async.nextTick = function (fn) {
-                setTimeout(fn, 0);
-            };
-            async.setImmediate = async.nextTick;
-        }
-    }
-    else {
-        async.nextTick = process.nextTick;
-        if (typeof setImmediate !== 'undefined') {
-            async.setImmediate = function (fn) {
-              // not a direct alias for IE10 compatibility
-              setImmediate(fn);
-            };
-        }
-        else {
-            async.setImmediate = async.nextTick;
-        }
-    }
-
-    async.each = function (arr, iterator, callback) {
-        callback = callback || function () {};
-        if (!arr.length) {
-            return callback();
-        }
-        var completed = 0;
-        _each(arr, function (x) {
-            iterator(x, only_once(function (err) {
-                if (err) {
-                    callback(err);
-                    callback = function () {};
-                }
-                else {
-                    completed += 1;
-                    if (completed >= arr.length) {
-                        callback(null);
-                    }
-                }
-            }));
-        });
-    };
-    async.forEach = async.each;
-
-    async.eachSeries = function (arr, iterator, callback) {
-        callback = callback || function () {};
-        if (!arr.length) {
-            return callback();
-        }
-        var completed = 0;
-        var iterate = function () {
-            iterator(arr[completed], function (err) {
-                if (err) {
-                    callback(err);
-                    callback = function () {};
-                }
-                else {
-                    completed += 1;
-                    if (completed >= arr.length) {
-                        callback(null);
-                    }
-                    else {
-                        iterate();
-                    }
-                }
-            });
-        };
-        iterate();
-    };
-    async.forEachSeries = async.eachSeries;
-
-    async.eachLimit = function (arr, limit, iterator, callback) {
-        var fn = _eachLimit(limit);
-        fn.apply(null, [arr, iterator, callback]);
-    };
-    async.forEachLimit = async.eachLimit;
-
-    var _eachLimit = function (limit) {
-
-        return function (arr, iterator, callback) {
-            callback = callback || function () {};
-            if (!arr.length || limit <= 0) {
-                return callback();
-            }
-            var completed = 0;
-            var started = 0;
-            var running = 0;
-
-            (function replenish () {
-                if (completed >= arr.length) {
-                    return callback();
-                }
-
-                while (running < limit && started < arr.length) {
-                    started += 1;
-                    running += 1;
-                    iterator(arr[started - 1], function (err) {
-                        if (err) {
-                            callback(err);
-                            callback = function () {};
-                        }
-                        else {
-                            completed += 1;
-                            running -= 1;
-                            if (completed >= arr.length) {
-                                callback();
-                            }
-                            else {
-                                replenish();
-                            }
-                        }
-                    });
-                }
-            })();
-        };
-    };
-
-
-    var doParallel = function (fn) {
-        return function () {
-            var args = Array.prototype.slice.call(arguments);
-            return fn.apply(null, [async.each].concat(args));
-        };
-    };
-    var doParallelLimit = function(limit, fn) {
-        return function () {
-            var args = Array.prototype.slice.call(arguments);
-            return fn.apply(null, [_eachLimit(limit)].concat(args));
-        };
-    };
-    var doSeries = function (fn) {
-        return function () {
-            var args = Array.prototype.slice.call(arguments);
-            return fn.apply(null, [async.eachSeries].concat(args));
-        };
-    };
-
-
-    var _asyncMap = function (eachfn, arr, iterator, callback) {
-        var results = [];
-        arr = _map(arr, function (x, i) {
-            return {index: i, value: x};
-        });
-        eachfn(arr, function (x, callback) {
-            iterator(x.value, function (err, v) {
-                results[x.index] = v;
-                callback(err);
-            });
-        }, function (err) {
-            callback(err, results);
-        });
-    };
-    async.map = doParallel(_asyncMap);
-    async.mapSeries = doSeries(_asyncMap);
-    async.mapLimit = function (arr, limit, iterator, callback) {
-        return _mapLimit(limit)(arr, iterator, callback);
-    };
-
-    var _mapLimit = function(limit) {
-        return doParallelLimit(limit, _asyncMap);
-    };
-
-    // reduce only has a series version, as doing reduce in parallel won't
-    // work in many situations.
-    async.reduce = function (arr, memo, iterator, callback) {
-        async.eachSeries(arr, function (x, callback) {
-            iterator(memo, x, function (err, v) {
-                memo = v;
-                callback(err);
-            });
-        }, function (err) {
-            callback(err, memo);
-        });
-    };
-    // inject alias
-    async.inject = async.reduce;
-    // foldl alias
-    async.foldl = async.reduce;
-
-    async.reduceRight = function (arr, memo, iterator, callback) {
-        var reversed = _map(arr, function (x) {
-            return x;
-        }).reverse();
-        async.reduce(reversed, memo, iterator, callback);
-    };
-    // foldr alias
-    async.foldr = async.reduceRight;
-
-    var _filter = function (eachfn, arr, iterator, callback) {
-        var results = [];
-        arr = _map(arr, function (x, i) {
-            return {index: i, value: x};
-        });
-        eachfn(arr, function (x, callback) {
-            iterator(x.value, function (v) {
-                if (v) {
-                    results.push(x);
-                }
-                callback();
-            });
-        }, function (err) {
-            callback(_map(results.sort(function (a, b) {
-                return a.index - b.index;
-            }), function (x) {
-                return x.value;
-            }));
-        });
-    };
-    async.filter = doParallel(_filter);
-    async.filterSeries = doSeries(_filter);
-    // select alias
-    async.select = async.filter;
-    async.selectSeries = async.filterSeries;
-
-    var _reject = function (eachfn, arr, iterator, callback) {
-        var results = [];
-        arr = _map(arr, function (x, i) {
-            return {index: i, value: x};
-        });
-        eachfn(arr, function (x, callback) {
-            iterator(x.value, function (v) {
-                if (!v) {
-                    results.push(x);
-                }
-                callback();
-            });
-        }, function (err) {
-            callback(_map(results.sort(function (a, b) {
-                return a.index - b.index;
-            }), function (x) {
-                return x.value;
-            }));
-        });
-    };
-    async.reject = doParallel(_reject);
-    async.rejectSeries = doSeries(_reject);
-
-    var _detect = function (eachfn, arr, iterator, main_callback) {
-        eachfn(arr, function (x, callback) {
-            iterator(x, function (result) {
-                if (result) {
-                    main_callback(x);
-                    main_callback = function () {};
-                }
-                else {
-                    callback();
-                }
-            });
-        }, function (err) {
-            main_callback();
-        });
-    };
-    async.detect = doParallel(_detect);
-    async.detectSeries = doSeries(_detect);
-
-    async.some = function (arr, iterator, main_callback) {
-        async.each(arr, function (x, callback) {
-            iterator(x, function (v) {
-                if (v) {
-                    main_callback(true);
-                    main_callback = function () {};
-                }
-                callback();
-            });
-        }, function (err) {
-            main_callback(false);
-        });
-    };
-    // any alias
-    async.any = async.some;
-
-    async.every = function (arr, iterator, main_callback) {
-        async.each(arr, function (x, callback) {
-            iterator(x, function (v) {
-                if (!v) {
-                    main_callback(false);
-                    main_callback = function () {};
-                }
-                callback();
-            });
-        }, function (err) {
-            main_callback(true);
-        });
-    };
-    // all alias
-    async.all = async.every;
-
-    async.sortBy = function (arr, iterator, callback) {
-        async.map(arr, function (x, callback) {
-            iterator(x, function (err, criteria) {
-                if (err) {
-                    callback(err);
-                }
-                else {
-                    callback(null, {value: x, criteria: criteria});
-                }
-            });
-        }, function (err, results) {
-            if (err) {
-                return callback(err);
-            }
-            else {
-                var fn = function (left, right) {
-                    var a = left.criteria, b = right.criteria;
-                    return a < b ? -1 : a > b ? 1 : 0;
-                };
-                callback(null, _map(results.sort(fn), function (x) {
-                    return x.value;
-                }));
-            }
-        });
-    };
-
-    async.auto = function (tasks, callback) {
-        callback = callback || function () {};
-        var keys = _keys(tasks);
-        if (!keys.length) {
-            return callback(null);
-        }
-
-        var results = {};
-
-        var listeners = [];
-        var addListener = function (fn) {
-            listeners.unshift(fn);
-        };
-        var removeListener = function (fn) {
-            for (var i = 0; i < listeners.length; i += 1) {
-                if (listeners[i] === fn) {
-                    listeners.splice(i, 1);
-                    return;
-                }
-            }
-        };
-        var taskComplete = function () {
-            _each(listeners.slice(0), function (fn) {
-                fn();
-            });
-        };
-
-        addListener(function () {
-            if (_keys(results).length === keys.length) {
-                callback(null, results);
-                callback = function () {};
-            }
-        });
-
-        _each(keys, function (k) {
-            var task = (tasks[k] instanceof Function) ? [tasks[k]]: tasks[k];
-            var taskCallback = function (err) {
-                var args = Array.prototype.slice.call(arguments, 1);
-                if (args.length <= 1) {
-                    args = args[0];
-                }
-                if (err) {
-                    var safeResults = {};
-                    _each(_keys(results), function(rkey) {
-                        safeResults[rkey] = results[rkey];
-                    });
-                    safeResults[k] = args;
-                    callback(err, safeResults);
-                    // stop subsequent errors hitting callback multiple times
-                    callback = function () {};
-                }
-                else {
-                    results[k] = args;
-                    async.setImmediate(taskComplete);
-                }
-            };
-            var requires = task.slice(0, Math.abs(task.length - 1)) || [];
-            var ready = function () {
-                return _reduce(requires, function (a, x) {
-                    return (a && results.hasOwnProperty(x));
-                }, true) && !results.hasOwnProperty(k);
-            };
-            if (ready()) {
-                task[task.length - 1](taskCallback, results);
-            }
-            else {
-                var listener = function () {
-                    if (ready()) {
-                        removeListener(listener);
-                        task[task.length - 1](taskCallback, results);
-                    }
-                };
-                addListener(listener);
-            }
-        });
-    };
-
-    async.waterfall = function (tasks, callback) {
-        callback = callback || function () {};
-        if (tasks.constructor !== Array) {
-          var err = new Error('First argument to waterfall must be an array of functions');
-          return callback(err);
-        }
-        if (!tasks.length) {
-            return callback();
-        }
-        var wrapIterator = function (iterator) {
-            return function (err) {
-                if (err) {
-                    callback.apply(null, arguments);
-                    callback = function () {};
-                }
-                else {
-                    var args = Array.prototype.slice.call(arguments, 1);
-                    var next = iterator.next();
-                    if (next) {
-                        args.push(wrapIterator(next));
-                    }
-                    else {
-                        args.push(callback);
-                    }
-                    async.setImmediate(function () {
-                        iterator.apply(null, args);
-                    });
-                }
-            };
-        };
-        wrapIterator(async.iterator(tasks))();
-    };
-
-    var _parallel = function(eachfn, tasks, callback) {
-        callback = callback || function () {};
-        if (tasks.constructor === Array) {
-            eachfn.map(tasks, function (fn, callback) {
-                if (fn) {
-                    fn(function (err) {
-                        var args = Array.prototype.slice.call(arguments, 1);
-                        if (args.length <= 1) {
-                            args = args[0];
-                        }
-                        callback.call(null, err, args);
-                    });
-                }
-            }, callback);
-        }
-        else {
-            var results = {};
-            eachfn.each(_keys(tasks), function (k, callback) {
-                tasks[k](function (err) {
-                    var args = Array.prototype.slice.call(arguments, 1);
-                    if (args.length <= 1) {
-                        args = args[0];
-                    }
-                    results[k] = args;
-                    callback(err);
-                });
-            }, function (err) {
-                callback(err, results);
-            });
-        }
-    };
-
-    async.parallel = function (tasks, callback) {
-        _parallel({ map: async.map, each: async.each }, tasks, callback);
-    };
-
-    async.parallelLimit = function(tasks, limit, callback) {
-        _parallel({ map: _mapLimit(limit), each: _eachLimit(limit) }, tasks, callback);
-    };
-
-    async.series = function (tasks, callback) {
-        callback = callback || function () {};
-        if (tasks.constructor === Array) {
-            async.mapSeries(tasks, function (fn, callback) {
-                if (fn) {
-                    fn(function (err) {
-                        var args = Array.prototype.slice.call(arguments, 1);
-                        if (args.length <= 1) {
-                            args = args[0];
-                        }
-                        callback.call(null, err, args);
-                    });
-                }
-            }, callback);
-        }
-        else {
-            var results = {};
-            async.eachSeries(_keys(tasks), function (k, callback) {
-                tasks[k](function (err) {
-                    var args = Array.prototype.slice.call(arguments, 1);
-                    if (args.length <= 1) {
-                        args = args[0];
-                    }
-                    results[k] = args;
-                    callback(err);
-                });
-            }, function (err) {
-                callback(err, results);
-            });
-        }
-    };
-
-    async.iterator = function (tasks) {
-        var makeCallback = function (index) {
-            var fn = function () {
-                if (tasks.length) {
-                    tasks[index].apply(null, arguments);
-                }
-                return fn.next();
-            };
-            fn.next = function () {
-                return (index < tasks.length - 1) ? makeCallback(index + 1): null;
-            };
-            return fn;
-        };
-        return makeCallback(0);
-    };
-
-    async.apply = function (fn) {
-        var args = Array.prototype.slice.call(arguments, 1);
-        return function () {
-            return fn.apply(
-                null, args.concat(Array.prototype.slice.call(arguments))
-            );
-        };
-    };
-
-    var _concat = function (eachfn, arr, fn, callback) {
-        var r = [];
-        eachfn(arr, function (x, cb) {
-            fn(x, function (err, y) {
-                r = r.concat(y || []);
-                cb(err);
-            });
-        }, function (err) {
-            callback(err, r);
-        });
-    };
-    async.concat = doParallel(_concat);
-    async.concatSeries = doSeries(_concat);
-
-    async.whilst = function (test, iterator, callback) {
-        if (test()) {
-            iterator(function (err) {
-                if (err) {
-                    return callback(err);
-                }
-                async.whilst(test, iterator, callback);
-            });
-        }
-        else {
-            callback();
-        }
-    };
-
-    async.doWhilst = function (iterator, test, callback) {
-        iterator(function (err) {
-            if (err) {
-                return callback(err);
-            }
-            if (test()) {
-                async.doWhilst(iterator, test, callback);
-            }
-            else {
-                callback();
-            }
-        });
-    };
-
-    async.until = function (test, iterator, callback) {
-        if (!test()) {
-            iterator(function (err) {
-                if (err) {
-                    return callback(err);
-                }
-                async.until(test, iterator, callback);
-            });
-        }
-        else {
-            callback();
-        }
-    };
-
-    async.doUntil = function (iterator, test, callback) {
-        iterator(function (err) {
-            if (err) {
-                return callback(err);
-            }
-            if (!test()) {
-                async.doUntil(iterator, test, callback);
-            }
-            else {
-                callback();
-            }
-        });
-    };
-
-    async.queue = function (worker, concurrency) {
-        if (concurrency === undefined) {
-            concurrency = 1;
-        }
-        function _insert(q, data, pos, callback) {
-          if(data.constructor !== Array) {
-              data = [data];
-          }
-          _each(data, function(task) {
-              var item = {
-                  data: task,
-                  callback: typeof callback === 'function' ? callback : null
-              };
-
-              if (pos) {
-                q.tasks.unshift(item);
-              } else {
-                q.tasks.push(item);
-              }
-
-              if (q.saturated && q.tasks.length === concurrency) {
-                  q.saturated();
-              }
-              async.setImmediate(q.process);
-          });
-        }
-
-        var workers = 0;
-        var q = {
-            tasks: [],
-            concurrency: concurrency,
-            saturated: null,
-            empty: null,
-            drain: null,
-            push: function (data, callback) {
-              _insert(q, data, false, callback);
-            },
-            unshift: function (data, callback) {
-              _insert(q, data, true, callback);
-            },
-            process: function () {
-                if (workers < q.concurrency && q.tasks.length) {
-                    var task = q.tasks.shift();
-                    if (q.empty && q.tasks.length === 0) {
-                        q.empty();
-                    }
-                    workers += 1;
-                    var next = function () {
-                        workers -= 1;
-                        if (task.callback) {
-                            task.callback.apply(task, arguments);
-                        }
-                        if (q.drain && q.tasks.length + workers === 0) {
-                            q.drain();
-                        }
-                        q.process();
-                    };
-                    var cb = only_once(next);
-                    worker(task.data, cb);
-                }
-            },
-            length: function () {
-                return q.tasks.length;
-            },
-            running: function () {
-                return workers;
-            }
-        };
-        return q;
-    };
-
-    async.cargo = function (worker, payload) {
-        var working     = false,
-            tasks       = [];
-
-        var cargo = {
-            tasks: tasks,
-            payload: payload,
-            saturated: null,
-            empty: null,
-            drain: null,
-            push: function (data, callback) {
-                if(data.constructor !== Array) {
-                    data = [data];
-                }
-                _each(data, function(task) {
-                    tasks.push({
-                        data: task,
-                        callback: typeof callback === 'function' ? callback : null
-                    });
-                    if (cargo.saturated && tasks.length === payload) {
-                        cargo.saturated();
-                    }
-                });
-                async.setImmediate(cargo.process);
-            },
-            process: function process() {
-                if (working) return;
-                if (tasks.length === 0) {
-                    if(cargo.drain) cargo.drain();
-                    return;
-                }
-
-                var ts = typeof payload === 'number'
-                            ? tasks.splice(0, payload)
-                            : tasks.splice(0);
-
-                var ds = _map(ts, function (task) {
-                    return task.data;
-                });
-
-                if(cargo.empty) cargo.empty();
-                working = true;
-                worker(ds, function () {
-                    working = false;
-
-                    var args = arguments;
-                    _each(ts, function (data) {
-                        if (data.callback) {
-                            data.callback.apply(null, args);
-                        }
-                    });
-
-                    process();
-                });
-            },
-            length: function () {
-                return tasks.length;
-            },
-            running: function () {
-                return working;
-            }
-        };
-        return cargo;
-    };
-
-    var _console_fn = function (name) {
-        return function (fn) {
-            var args = Array.prototype.slice.call(arguments, 1);
-            fn.apply(null, args.concat([function (err) {
-                var args = Array.prototype.slice.call(arguments, 1);
-                if (typeof console !== 'undefined') {
-                    if (err) {
-                        if (console.error) {
-                            console.error(err);
-                        }
-                    }
-                    else if (console[name]) {
-                        _each(args, function (x) {
-                            console[name](x);
-                        });
-                    }
-                }
-            }]));
-        };
-    };
-    async.log = _console_fn('log');
-    async.dir = _console_fn('dir');
-    /*async.info = _console_fn('info');
-    async.warn = _console_fn('warn');
-    async.error = _console_fn('error');*/
-
-    async.memoize = function (fn, hasher) {
-        var memo = {};
-        var queues = {};
-        hasher = hasher || function (x) {
-            return x;
-        };
-        var memoized = function () {
-            var args = Array.prototype.slice.call(arguments);
-            var callback = args.pop();
-            var key = hasher.apply(null, args);
-            if (key in memo) {
-                callback.apply(null, memo[key]);
-            }
-            else if (key in queues) {
-                queues[key].push(callback);
-            }
-            else {
-                queues[key] = [callback];
-                fn.apply(null, args.concat([function () {
-                    memo[key] = arguments;
-                    var q = queues[key];
-                    delete queues[key];
-                    for (var i = 0, l = q.length; i < l; i++) {
-                      q[i].apply(null, arguments);
-                    }
-                }]));
-            }
-        };
-        memoized.memo = memo;
-        memoized.unmemoized = fn;
-        return memoized;
-    };
-
-    async.unmemoize = function (fn) {
-      return function () {
-        return (fn.unmemoized || fn).apply(null, arguments);
-      };
-    };
-
-    async.times = function (count, iterator, callback) {
-        var counter = [];
-        for (var i = 0; i < count; i++) {
-            counter.push(i);
-        }
-        return async.map(counter, iterator, callback);
-    };
-
-    async.timesSeries = function (count, iterator, callback) {
-        var counter = [];
-        for (var i = 0; i < count; i++) {
-            counter.push(i);
-        }
-        return async.mapSeries(counter, iterator, callback);
-    };
-
-    async.compose = function (/* functions... */) {
-        var fns = Array.prototype.reverse.call(arguments);
-        return function () {
-            var that = this;
-            var args = Array.prototype.slice.call(arguments);
-            var callback = args.pop();
-            async.reduce(fns, args, function (newargs, fn, cb) {
-                fn.apply(that, newargs.concat([function () {
-                    var err = arguments[0];
-                    var nextargs = Array.prototype.slice.call(arguments, 1);
-                    cb(err, nextargs);
-                }]))
-            },
-            function (err, results) {
-                callback.apply(that, [err].concat(results));
-            });
-        };
-    };
-
-    var _applyEach = function (eachfn, fns /*args...*/) {
-        var go = function () {
-            var that = this;
-            var args = Array.prototype.slice.call(arguments);
-            var callback = args.pop();
-            return eachfn(fns, function (fn, cb) {
-                fn.apply(that, args.concat([cb]));
-            },
-            callback);
-        };
-        if (arguments.length > 2) {
-            var args = Array.prototype.slice.call(arguments, 2);
-            return go.apply(this, args);
-        }
-        else {
-            return go;
-        }
-    };
-    async.applyEach = doParallel(_applyEach);
-    async.applyEachSeries = doSeries(_applyEach);
-
-    async.forever = function (fn, callback) {
-        function next(err) {
-            if (err) {
-                if (callback) {
-                    return callback(err);
-                }
-                throw err;
-            }
-            fn(next);
-        }
-        next();
-    };
-
-    // AMD / RequireJS
-    if (typeof define !== 'undefined' && define.amd) {
-        define([], function () {
-            return async;
-        });
-    }
-    // Node.js
-    else if (typeof module !== 'undefined' && module.exports) {
-        module.exports = async;
-    }
-    // included directly via <script> tag
-    else {
-        root.async = async;
-    }
-
-}());

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/async/package.json
----------------------------------------------------------------------
diff --git a/node_modules/async/package.json b/node_modules/async/package.json
deleted file mode 100644
index 0d4d605..0000000
--- a/node_modules/async/package.json
+++ /dev/null
@@ -1,95 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "async@~0.2.6",
-        "scope": null,
-        "escapedName": "async",
-        "name": "async",
-        "rawSpec": "~0.2.6",
-        "spec": ">=0.2.6 <0.3.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/uglify-js"
-    ]
-  ],
-  "_from": "async@>=0.2.6 <0.3.0",
-  "_id": "async@0.2.10",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/async",
-  "_npmUser": {
-    "name": "caolan",
-    "email": "caolan.mcmahon@gmail.com"
-  },
-  "_npmVersion": "1.3.2",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "async@~0.2.6",
-    "scope": null,
-    "escapedName": "async",
-    "name": "async",
-    "rawSpec": "~0.2.6",
-    "spec": ">=0.2.6 <0.3.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/uglify-js"
-  ],
-  "_resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
-  "_shasum": "b6bbe0b0674b9d719708ca38de8c237cb526c3d1",
-  "_shrinkwrap": null,
-  "_spec": "async@~0.2.6",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/uglify-js",
-  "author": {
-    "name": "Caolan McMahon"
-  },
-  "bugs": {
-    "url": "https://github.com/caolan/async/issues"
-  },
-  "dependencies": {},
-  "description": "Higher-order functions and common patterns for asynchronous code",
-  "devDependencies": {
-    "nodelint": ">0.0.0",
-    "nodeunit": ">0.0.0",
-    "uglify-js": "1.2.x"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "b6bbe0b0674b9d719708ca38de8c237cb526c3d1",
-    "tarball": "https://registry.npmjs.org/async/-/async-0.2.10.tgz"
-  },
-  "homepage": "https://github.com/caolan/async#readme",
-  "jam": {
-    "main": "lib/async.js",
-    "include": [
-      "lib/async.js",
-      "README.md",
-      "LICENSE"
-    ]
-  },
-  "licenses": [
-    {
-      "type": "MIT",
-      "url": "https://github.com/caolan/async/raw/master/LICENSE"
-    }
-  ],
-  "main": "./lib/async",
-  "maintainers": [
-    {
-      "name": "caolan",
-      "email": "caolan@caolanmcmahon.com"
-    }
-  ],
-  "name": "async",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/caolan/async.git"
-  },
-  "scripts": {
-    "test": "nodeunit test/test-async.js"
-  },
-  "version": "0.2.10"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asynckit/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/asynckit/LICENSE b/node_modules/asynckit/LICENSE
deleted file mode 100644
index c9eca5d..0000000
--- a/node_modules/asynckit/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 Alex Indigo
-
-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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asynckit/README.md
----------------------------------------------------------------------
diff --git a/node_modules/asynckit/README.md b/node_modules/asynckit/README.md
deleted file mode 100644
index ddcc7e6..0000000
--- a/node_modules/asynckit/README.md
+++ /dev/null
@@ -1,233 +0,0 @@
-# asynckit [![NPM Module](https://img.shields.io/npm/v/asynckit.svg?style=flat)](https://www.npmjs.com/package/asynckit)
-
-Minimal async jobs utility library, with streams support.
-
-[![PhantomJS Build](https://img.shields.io/travis/alexindigo/asynckit/v0.4.0.svg?label=browser&style=flat)](https://travis-ci.org/alexindigo/asynckit)
-[![Linux Build](https://img.shields.io/travis/alexindigo/asynckit/v0.4.0.svg?label=linux:0.12-6.x&style=flat)](https://travis-ci.org/alexindigo/asynckit)
-[![Windows Build](https://img.shields.io/appveyor/ci/alexindigo/asynckit/v0.4.0.svg?label=windows:0.12-6.x&style=flat)](https://ci.appveyor.com/project/alexindigo/asynckit)
-
-[![Coverage Status](https://img.shields.io/coveralls/alexindigo/asynckit/v0.4.0.svg?label=code+coverage&style=flat)](https://coveralls.io/github/alexindigo/asynckit?branch=master)
-[![Dependency Status](https://img.shields.io/david/alexindigo/asynckit/v0.4.0.svg?style=flat)](https://david-dm.org/alexindigo/asynckit)
-[![bitHound Overall Score](https://www.bithound.io/github/alexindigo/asynckit/badges/score.svg)](https://www.bithound.io/github/alexindigo/asynckit)
-
-<!-- [![Readme](https://img.shields.io/badge/readme-tested-brightgreen.svg?style=flat)](https://www.npmjs.com/package/reamde) -->
-
-AsyncKit provides harness for `parallel` and `serial` iterators over list of items represented by arrays or objects.
-Optionally it accepts abort function (should be synchronously return by iterator for each item), and terminates left over jobs upon an error event. For specific iteration order built-in (`ascending` and `descending`) and custom sort helpers also supported, via `asynckit.serialOrdered` method.
-
-It ensures async operations to keep behavior more stable and prevent `Maximum call stack size exceeded` errors, from sync iterators.
-
-| compression        |     size |
-| :----------------- | -------: |
-| asynckit.js        | 12.34 kB |
-| asynckit.min.js    |  4.11 kB |
-| asynckit.min.js.gz |  1.47 kB |
-
-
-## Install
-
-```sh
-$ npm install --save asynckit
-```
-
-## Examples
-
-### Parallel Jobs
-
-Runs iterator over provided array in parallel. Stores output in the `result` array,
-on the matching positions. In unlikely event of an error from one of the jobs,
-will terminate rest of the active jobs (if abort function is provided)
-and return error along with salvaged data to the main callback function.
-
-#### Input Array
-
-```javascript
-var parallel = require('asynckit').parallel
-  , assert   = require('assert')
-  ;
-
-var source         = [ 1, 1, 4, 16, 64, 32, 8, 2 ]
-  , expectedResult = [ 2, 2, 8, 32, 128, 64, 16, 4 ]
-  , expectedTarget = [ 1, 1, 2, 4, 8, 16, 32, 64 ]
-  , target         = []
-  ;
-
-parallel(source, asyncJob, function(err, result)
-{
-  assert.deepEqual(result, expectedResult);
-  assert.deepEqual(target, expectedTarget);
-});
-
-// async job accepts one element from the array
-// and a callback function
-function asyncJob(item, cb)
-{
-  // different delays (in ms) per item
-  var delay = item * 25;
-
-  // pretend different jobs take different time to finish
-  // and not in consequential order
-  var timeoutId = setTimeout(function() {
-    target.push(item);
-    cb(null, item * 2);
-  }, delay);
-
-  // allow to cancel "leftover" jobs upon error
-  // return function, invoking of which will abort this job
-  return clearTimeout.bind(null, timeoutId);
-}
-```
-
-More examples could be found in [test/test-parallel-array.js](test/test-parallel-array.js).
-
-#### Input Object
-
-Also it supports named jobs, listed via object.
-
-```javascript
-var parallel = require('asynckit/parallel')
-  , assert   = require('assert')
-  ;
-
-var source         = { first: 1, one: 1, four: 4, sixteen: 16, sixtyFour: 64, thirtyTwo: 32, eight: 8, two: 2 }
-  , expectedResult = { first: 2, one: 2, four: 8, sixteen: 32, sixtyFour: 128, thirtyTwo: 64, eight: 16, two: 4 }
-  , expectedTarget = [ 1, 1, 2, 4, 8, 16, 32, 64 ]
-  , expectedKeys   = [ 'first', 'one', 'two', 'four', 'eight', 'sixteen', 'thirtyTwo', 'sixtyFour' ]
-  , target         = []
-  , keys           = []
-  ;
-
-parallel(source, asyncJob, function(err, result)
-{
-  assert.deepEqual(result, expectedResult);
-  assert.deepEqual(target, expectedTarget);
-  assert.deepEqual(keys, expectedKeys);
-});
-
-// supports full value, key, callback (shortcut) interface
-function asyncJob(item, key, cb)
-{
-  // different delays (in ms) per item
-  var delay = item * 25;
-
-  // pretend different jobs take different time to finish
-  // and not in consequential order
-  var timeoutId = setTimeout(function() {
-    keys.push(key);
-    target.push(item);
-    cb(null, item * 2);
-  }, delay);
-
-  // allow to cancel "leftover" jobs upon error
-  // return function, invoking of which will abort this job
-  return clearTimeout.bind(null, timeoutId);
-}
-```
-
-More examples could be found in [test/test-parallel-object.js](test/test-parallel-object.js).
-
-### Serial Jobs
-
-Runs iterator over provided array sequentially. Stores output in the `result` array,
-on the matching positions. In unlikely event of an error from one of the jobs,
-will not proceed to the rest of the items in the list
-and return error along with salvaged data to the main callback function.
-
-#### Input Array
-
-```javascript
-var serial = require('asynckit/serial')
-  , assert = require('assert')
-  ;
-
-var source         = [ 1, 1, 4, 16, 64, 32, 8, 2 ]
-  , expectedResult = [ 2, 2, 8, 32, 128, 64, 16, 4 ]
-  , expectedTarget = [ 0, 1, 2, 3, 4, 5, 6, 7 ]
-  , target         = []
-  ;
-
-serial(source, asyncJob, function(err, result)
-{
-  assert.deepEqual(result, expectedResult);
-  assert.deepEqual(target, expectedTarget);
-});
-
-// extended interface (item, key, callback)
-// also supported for arrays
-function asyncJob(item, key, cb)
-{
-  target.push(key);
-
-  // it will be automatically made async
-  // even it iterator "returns" in the same event loop
-  cb(null, item * 2);
-}
-```
-
-More examples could be found in [test/test-serial-array.js](test/test-serial-array.js).
-
-#### Input Object
-
-Also it supports named jobs, listed via object.
-
-```javascript
-var serial = require('asynckit').serial
-  , assert = require('assert')
-  ;
-
-var source         = [ 1, 1, 4, 16, 64, 32, 8, 2 ]
-  , expectedResult = [ 2, 2, 8, 32, 128, 64, 16, 4 ]
-  , expectedTarget = [ 0, 1, 2, 3, 4, 5, 6, 7 ]
-  , target         = []
-  ;
-
-var source         = { first: 1, one: 1, four: 4, sixteen: 16, sixtyFour: 64, thirtyTwo: 32, eight: 8, two: 2 }
-  , expectedResult = { first: 2, one: 2, four: 8, sixteen: 32, sixtyFour: 128, thirtyTwo: 64, eight: 16, two: 4 }
-  , expectedTarget = [ 1, 1, 4, 16, 64, 32, 8, 2 ]
-  , target         = []
-  ;
-
-
-serial(source, asyncJob, function(err, result)
-{
-  assert.deepEqual(result, expectedResult);
-  assert.deepEqual(target, expectedTarget);
-});
-
-// shortcut interface (item, callback)
-// works for object as well as for the arrays
-function asyncJob(item, cb)
-{
-  target.push(item);
-
-  // it will be automatically made async
-  // even it iterator "returns" in the same event loop
-  cb(null, item * 2);
-}
-```
-
-More examples could be found in [test/test-serial-object.js](test/test-serial-object.js).
-
-_Note: Since _object_ is an _unordered_ collection of properties,
-it may produce unexpected results with sequential iterations.
-Whenever order of the jobs' execution is important please use `serialOrdered` method._
-
-### Ordered Serial Iterations
-
-TBD
-
-For example [compare-property](compare-property) package.
-
-### Streaming interface
-
-TBD
-
-## Want to Know More?
-
-More examples can be found in [test folder](test/).
-
-Or open an [issue](https://github.com/alexindigo/asynckit/issues) with questions and/or suggestions.
-
-## License
-
-AsyncKit is licensed under the MIT license.



[09/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/connect/HISTORY.md
----------------------------------------------------------------------
diff --git a/node_modules/connect/HISTORY.md b/node_modules/connect/HISTORY.md
deleted file mode 100644
index 3c48e26..0000000
--- a/node_modules/connect/HISTORY.md
+++ /dev/null
@@ -1,2443 +0,0 @@
-3.6.0 / 2017-02-17
-==================
-
-  * deps: debug@2.6.1
-    - Allow colors in workers
-    - Deprecated `DEBUG_FD` environment variable set to `3` or higher
-    - Fix error when running under React Native
-    - Use same color for same namespace
-    - deps: ms@0.7.2
-  * deps: finalhandler@1.0.0
-    - Fix exception when `err` cannot be converted to a string
-    - Fully URL-encode the pathname in the 404
-    - Only include the pathname in the 404 message
-    - Send complete HTML document
-    - Set `Content-Security-Policy: default-src 'self'` header
-    - deps: debug@2.6.1
-
-3.5.1 / 2017-02-12
-==================
-
-  * deps: finalhandler@0.5.1
-    - Fix exception when `err.headers` is not an object
-    - deps: statuses@~1.3.1
-    - perf: hoist regular expressions
-    - perf: remove duplicate validation path
-
-3.5.0 / 2016-09-09
-==================
-
-  * deps: finalhandler@0.5.0
-    - Change invalid or non-numeric status code to 500
-    - Overwrite status message to match set status code
-    - Prefer `err.statusCode` if `err.status` is invalid
-    - Set response headers from `err.headers` object
-    - Use `statuses` instead of `http` module for status messages
-
-3.4.1 / 2016-01-23
-==================
-
-  * deps: finalhandler@0.4.1
-    - deps: escape-html@~1.0.3
-  * deps: parseurl@~1.3.1
-    - perf: enable strict mode
-
-3.4.0 / 2015-06-18
-==================
-
-  * deps: debug@~2.2.0
-    - deps: ms@0.7.1
-  * deps: finalhandler@0.4.0
-    - Fix a false-positive when unpiping in Node.js 0.8
-    - Support `statusCode` property on `Error` objects
-    - Use `unpipe` module for unpiping requests
-    - deps: debug@~2.2.0
-    - deps: escape-html@1.0.2
-    - deps: on-finished@~2.3.0
-    - perf: enable strict mode
-    - perf: remove argument reassignment
-  * perf: enable strict mode
-  * perf: remove argument reassignments
-
-3.3.5 / 2015-03-16
-==================
-
-  * deps: debug@~2.1.3
-    - Fix high intensity foreground color for bold
-    - deps: ms@0.7.0
-  * deps: finalhandler@0.3.4
-    - deps: debug@~2.1.3
-
-3.3.4 / 2015-01-07
-==================
-
-  * deps: debug@~2.1.1
-  * deps: finalhandler@0.3.3
-    - deps: debug@~2.1.1
-    - deps: on-finished@~2.2.0
-
-3.3.3 / 2014-11-09
-==================
-
-  * Correctly invoke async callback asynchronously
-
-3.3.2 / 2014-10-28
-==================
-
-  * Fix handling of URLs containing `://` in the path
-
-3.3.1 / 2014-10-22
-==================
-
-  * deps: finalhandler@0.3.2
-    - deps: on-finished@~2.1.1
-
-3.3.0 / 2014-10-17
-==================
-
-  * deps: debug@~2.1.0
-    - Implement `DEBUG_FD` env variable support
-  * deps: finalhandler@0.3.1
-    - Terminate in progress response only on error
-    - Use `on-finished` to determine request status
-    - deps: debug@~2.1.0
-
-3.2.0 / 2014-09-08
-==================
-
-  * deps: debug@~2.0.0
-  * deps: finalhandler@0.2.0
-    - Set `X-Content-Type-Options: nosniff` header
-    - deps: debug@~2.0.0
-
-3.1.1 / 2014-08-10
-==================
-
-  * deps: parseurl@~1.3.0
-
-3.1.0 / 2014-07-22
-==================
-
-  * deps: debug@1.0.4
-  * deps: finalhandler@0.1.0
-    - Respond after request fully read
-    - deps: debug@1.0.4
-  * deps: parseurl@~1.2.0
-    - Cache URLs based on original value
-    - Remove no-longer-needed URL mis-parse work-around
-    - Simplify the "fast-path" `RegExp`
-  * perf: reduce executed logic in routing
-  * perf: refactor location of `try` block
-
-3.0.2 / 2014-07-10
-==================
-
-  * deps: debug@1.0.3
-    - Add support for multiple wildcards in namespaces
-  * deps: parseurl@~1.1.3
-    - faster parsing of href-only URLs
-
-3.0.1 / 2014-06-19
-==================
-
-  * use `finalhandler` for final response handling
-  * deps: debug@1.0.2
-
-3.0.0 / 2014-05-29
-==================
-
-  * No changes
-
-3.0.0-rc.2 / 2014-05-04
-=======================
-
-  * Call error stack even when response has been sent
-  * Prevent default 404 handler after response sent
-  * dep: debug@0.8.1
-  * encode stack in HTML for default error handler
-  * remove `proto` export
-
-3.0.0-rc.1 / 2014-03-06
-=======================
-
-  * move middleware to separate repos
-  * remove docs
-  * remove node patches
-  * remove connect(middleware...)
-  * remove the old `connect.createServer()` method
-  * remove various private `connect.utils` functions
-  * drop node.js 0.8 support
-
-2.30.2 / 2015-07-31
-===================
-
-  * deps: body-parser@~1.13.3
-    - deps: type-is@~1.6.6
-  * deps: compression@~1.5.2
-    - deps: accepts@~1.2.12
-    - deps: compressible@~2.0.5
-    - deps: vary@~1.0.1
-  * deps: errorhandler@~1.4.2
-    - deps: accepts@~1.2.12
-  * deps: method-override@~2.3.5
-    - deps: vary@~1.0.1
-    - perf: enable strict mode
-  * deps: serve-index@~1.7.2
-    - deps: accepts@~1.2.12
-    - deps: mime-types@~2.1.4
-  * deps: type-is@~1.6.6
-    - deps: mime-types@~2.1.4
-  * deps: vhost@~3.0.1
-    - perf: enable strict mode
-
-2.30.1 / 2015-07-05
-===================
-
-  * deps: body-parser@~1.13.2
-    - deps: iconv-lite@0.4.11
-    - deps: qs@4.0.0
-    - deps: raw-body@~2.1.2
-    - deps: type-is@~1.6.4
-  * deps: compression@~1.5.1
-    - deps: accepts@~1.2.10
-    - deps: compressible@~2.0.4
-  * deps: errorhandler@~1.4.1
-    - deps: accepts@~1.2.10
-  * deps: qs@4.0.0
-    - Fix dropping parameters like `hasOwnProperty`
-    - Fix various parsing edge cases
-  * deps: morgan@~1.6.1
-    - deps: basic-auth@~1.0.3
-  * deps: pause@0.1.0
-    - Re-emit events with all original arguments
-    - Refactor internals
-    - perf: enable strict mode
-  * deps: serve-index@~1.7.1
-    - deps: accepts@~1.2.10
-    - deps: mime-types@~2.1.2
-  * deps: type-is@~1.6.4
-    - deps: mime-types@~2.1.2
-    - perf: enable strict mode
-    - perf: remove argument reassignment
-
-2.30.0 / 2015-06-18
-===================
-
-  * deps: body-parser@~1.13.1
-    - Add `statusCode` property on `Error`s, in addition to `status`
-    - Change `type` default to `application/json` for JSON parser
-    - Change `type` default to `application/x-www-form-urlencoded` for urlencoded parser
-    - Provide static `require` analysis
-    - Use the `http-errors` module to generate errors
-    - deps: bytes@2.1.0
-    - deps: iconv-lite@0.4.10
-    - deps: on-finished@~2.3.0
-    - deps: raw-body@~2.1.1
-    - deps: type-is@~1.6.3
-    - perf: enable strict mode
-    - perf: remove argument reassignment
-    - perf: remove delete call
-  * deps: bytes@2.1.0
-    - Slight optimizations
-    - Units no longer case sensitive when parsing
-  * deps: compression@~1.5.0
-    - Fix return value from `.end` and `.write` after end
-    - Improve detection of zero-length body without `Content-Length`
-    - deps: accepts@~1.2.9
-    - deps: bytes@2.1.0
-    - deps: compressible@~2.0.3
-    - perf: enable strict mode
-    - perf: remove flush reassignment
-    - perf: simplify threshold detection
-  * deps: cookie@0.1.3
-    - Slight optimizations
-  * deps: cookie-parser@~1.3.5
-    - deps: cookie@0.1.3
-  * deps: csurf@~1.8.3
-    - Add `sessionKey` option
-    - deps: cookie@0.1.3
-    - deps: csrf@~3.0.0
-  * deps: errorhandler@~1.4.0
-    - Add charset to the `Content-Type` header
-    - Support `statusCode` property on `Error` objects
-    - deps: accepts@~1.2.9
-    - deps: escape-html@1.0.2
-  * deps: express-session@~1.11.3
-    - Support an array in `secret` option for key rotation
-    - deps: cookie@0.1.3
-    - deps: crc@3.3.0
-    - deps: debug@~2.2.0
-    - deps: depd@~1.0.1
-    - deps: uid-safe@~2.0.0
-  * deps: finalhandler@0.4.0
-    - Fix a false-positive when unpiping in Node.js 0.8
-    - Support `statusCode` property on `Error` objects
-    - Use `unpipe` module for unpiping requests
-    - deps: escape-html@1.0.2
-    - deps: on-finished@~2.3.0
-    - perf: enable strict mode
-    - perf: remove argument reassignment
-  * deps: fresh@0.3.0
-    - Add weak `ETag` matching support
-  * deps: morgan@~1.6.0
-    - Add `morgan.compile(format)` export
-    - Do not color 1xx status codes in `dev` format
-    - Fix `response-time` token to not include response latency
-    - Fix `status` token incorrectly displaying before response in `dev` format
-    - Fix token return values to be `undefined` or a string
-    - Improve representation of multiple headers in `req` and `res` tokens
-    - Use `res.getHeader` in `res` token
-    - deps: basic-auth@~1.0.2
-    - deps: on-finished@~2.3.0
-    - pref: enable strict mode
-    - pref: reduce function closure scopes
-    - pref: remove dynamic compile on every request for `dev` format
-    - pref: remove an argument reassignment
-    - pref: skip function call without `skip` option
-  * deps: serve-favicon@~2.3.0
-    - Send non-chunked response for `OPTIONS`
-    - deps: etag@~1.7.0
-    - deps: fresh@0.3.0
-    - perf: enable strict mode
-    - perf: remove argument reassignment
-    - perf: remove bitwise operations
-  * deps: serve-index@~1.7.0
-    - Accept `function` value for `template` option
-    - Send non-chunked response for `OPTIONS`
-    - Stat parent directory when necessary
-    - Use `Date.prototype.toLocaleDateString` to format date
-    - deps: accepts@~1.2.9
-    - deps: escape-html@1.0.2
-    - deps: mime-types@~2.1.1
-    - perf: enable strict mode
-    - perf: remove argument reassignment
-  * deps: serve-static@~1.10.0
-    - Add `fallthrough` option
-    - Fix reading options from options prototype
-    - Improve the default redirect response headers
-    - Malformed URLs now `next()` instead of 400
-    - deps: escape-html@1.0.2
-    - deps: send@0.13.0
-    - perf: enable strict mode
-    - perf: remove argument reassignment
-  * deps: type-is@~1.6.3
-    - deps: mime-types@~2.1.1
-    - perf: reduce try block size
-    - perf: remove bitwise operations
-
-2.29.2 / 2015-05-14
-===================
-
-  * deps: body-parser@~1.12.4
-    - Slight efficiency improvement when not debugging
-    - deps: debug@~2.2.0
-    - deps: depd@~1.0.1
-    - deps: iconv-lite@0.4.8
-    - deps: on-finished@~2.2.1
-    - deps: qs@2.4.2
-    - deps: raw-body@~2.0.1
-    - deps: type-is@~1.6.2
-  * deps: compression@~1.4.4
-    - deps: accepts@~1.2.7
-    - deps: debug@~2.2.0
-  * deps: connect-timeout@~1.6.2
-    - deps: debug@~2.2.0
-    - deps: ms@0.7.1
-  * deps: debug@~2.2.0
-    - deps: ms@0.7.1
-  * deps: depd@~1.0.1
-  * deps: errorhandler@~1.3.6
-    - deps: accepts@~1.2.7
-  * deps: finalhandler@0.3.6
-    - deps: debug@~2.2.0
-    - deps: on-finished@~2.2.1
-  * deps: method-override@~2.3.3
-    - deps: debug@~2.2.0
-  * deps: morgan@~1.5.3
-    - deps: basic-auth@~1.0.1
-    - deps: debug@~2.2.0
-    - deps: depd@~1.0.1
-    - deps: on-finished@~2.2.1
-  * deps: qs@2.4.2
-   - Fix allowing parameters like `constructor`
-  * deps: response-time@~2.3.1
-    - deps: depd@~1.0.1
-  * deps: serve-favicon@~2.2.1
-    - deps: etag@~1.6.0
-    - deps: ms@0.7.1
-  * deps: serve-index@~1.6.4
-    - deps: accepts@~1.2.7
-    - deps: debug@~2.2.0
-    - deps: mime-types@~2.0.11
-  * deps: serve-static@~1.9.3
-    - deps: send@0.12.3
-  * deps: type-is@~1.6.2
-    - deps: mime-types@~2.0.11
-
-2.29.1 / 2015-03-16
-===================
-
-  * deps: body-parser@~1.12.2
-    - deps: debug@~2.1.3
-    - deps: qs@2.4.1
-    - deps: type-is@~1.6.1
-  * deps: compression@~1.4.3
-    - Fix error when code calls `res.end(str, encoding)`
-    - deps: accepts@~1.2.5
-    - deps: debug@~2.1.3
-  * deps: connect-timeout@~1.6.1
-    - deps: debug@~2.1.3
-  * deps: debug@~2.1.3
-    - Fix high intensity foreground color for bold
-    - deps: ms@0.7.0
-  * deps: errorhandler@~1.3.5
-    - deps: accepts@~1.2.5
-  * deps: express-session@~1.10.4
-    - deps: debug@~2.1.3
-  * deps: finalhandler@0.3.4
-    - deps: debug@~2.1.3
-  * deps: method-override@~2.3.2
-    - deps: debug@~2.1.3
-  * deps: morgan@~1.5.2
-    - deps: debug@~2.1.3
-  * deps: qs@2.4.1
-    - Fix error when parameter `hasOwnProperty` is present
-  * deps: serve-index@~1.6.3
-    - Properly escape file names in HTML
-    - deps: accepts@~1.2.5
-    - deps: debug@~2.1.3
-    - deps: escape-html@1.0.1
-    - deps: mime-types@~2.0.10
-  * deps: serve-static@~1.9.2
-    - deps: send@0.12.2
-  * deps: type-is@~1.6.1
-    - deps: mime-types@~2.0.10
-
-2.29.0 / 2015-02-17
-===================
-
-  * Use `content-type` to parse `Content-Type` headers
-  * deps: body-parser@~1.12.0
-    - add `debug` messages
-    - accept a function for the `type` option
-    - make internal `extended: true` depth limit infinity
-    - use `content-type` to parse `Content-Type` headers
-    - deps: iconv-lite@0.4.7
-    - deps: raw-body@1.3.3
-    - deps: type-is@~1.6.0
-  * deps: compression@~1.4.1
-    - Prefer `gzip` over `deflate` on the server
-    - deps: accepts@~1.2.4
-  * deps: connect-timeout@~1.6.0
-    - deps: http-errors@~1.3.1
-  * deps: cookie-parser@~1.3.4
-    - deps: cookie-signature@1.0.6
-  * deps: cookie-signature@1.0.6
-  * deps: csurf@~1.7.0
-    - Accept `CSRF-Token` and `XSRF-Token` request headers
-    - Default `cookie.path` to `'/'`, if using cookies
-    - deps: cookie-signature@1.0.6
-    - deps: csrf@~2.0.6
-    - deps: http-errors@~1.3.1
-  * deps: errorhandler@~1.3.4
-    - deps: accepts@~1.2.4
-  * deps: express-session@~1.10.3
-    - deps: cookie-signature@1.0.6
-    - deps: uid-safe@1.1.0
-  * deps: http-errors@~1.3.1
-    - Construct errors using defined constructors from `createError`
-    - Fix error names that are not identifiers
-    - Set a meaningful `name` property on constructed errors
-  * deps: response-time@~2.3.0
-    - Add function argument to support recording of response time
-  * deps: serve-index@~1.6.2
-    - deps: accepts@~1.2.4
-    - deps: http-errors@~1.3.1
-    - deps: mime-types@~2.0.9
-  * deps: serve-static@~1.9.1
-    - deps: send@0.12.1
-  * deps: type-is@~1.6.0
-    - fix argument reassignment
-    - fix false-positives in `hasBody` `Transfer-Encoding` check
-    - support wildcard for both type and subtype (`*/*`)
-    - deps: mime-types@~2.0.9
-
-2.28.3 / 2015-01-31
-===================
-
-  * deps: compression@~1.3.1
-    - deps: accepts@~1.2.3
-    - deps: compressible@~2.0.2
-  * deps: csurf@~1.6.6
-    - deps: csrf@~2.0.5
-  * deps: errorhandler@~1.3.3
-    - deps: accepts@~1.2.3
-  * deps: express-session@~1.10.2
-    - deps: uid-safe@1.0.3
-  * deps: serve-index@~1.6.1
-    - deps: accepts@~1.2.3
-    - deps: mime-types@~2.0.8
-  * deps: type-is@~1.5.6
-    - deps: mime-types@~2.0.8
-
-2.28.2 / 2015-01-20
-===================
-
-  * deps: body-parser@~1.10.2
-    - deps: iconv-lite@0.4.6
-    - deps: raw-body@1.3.2
-  * deps: serve-static@~1.8.1
-    - Fix redirect loop in Node.js 0.11.14
-    - Fix root path disclosure
-    - deps: send@0.11.1
-
-2.28.1 / 2015-01-08
-===================
-
-  * deps: csurf@~1.6.5
-    - deps: csrf@~2.0.4
-  * deps: express-session@~1.10.1
-    - deps: uid-safe@~1.0.2
-
-2.28.0 / 2015-01-05
-===================
-
-  * deps: body-parser@~1.10.1
-    - Make internal `extended: true` array limit dynamic
-    - deps: on-finished@~2.2.0
-    - deps: type-is@~1.5.5
-  * deps: compression@~1.3.0
-    - Export the default `filter` function for wrapping
-    - deps: accepts@~1.2.2
-    - deps: debug@~2.1.1
-  * deps: connect-timeout@~1.5.0
-    - deps: debug@~2.1.1
-    - deps: http-errors@~1.2.8
-    - deps: ms@0.7.0
-  * deps: csurf@~1.6.4
-    - deps: csrf@~2.0.3
-    - deps: http-errors@~1.2.8
-  * deps: debug@~2.1.1
-  * deps: errorhandler@~1.3.2
-    - Add `log` option
-    - Fix heading content to not include stack
-    - deps: accepts@~1.2.2
-  * deps: express-session@~1.10.0
-    - Add `store.touch` interface for session stores
-    - Fix `MemoryStore` expiration with `resave: false`
-    - deps: debug@~2.1.1
-  * deps: finalhandler@0.3.3
-    - deps: debug@~2.1.1
-    - deps: on-finished@~2.2.0
-  * deps: method-override@~2.3.1
-    - deps: debug@~2.1.1
-    - deps: methods@~1.1.1
-  * deps: morgan@~1.5.1
-    - Add multiple date formats `clf`, `iso`, and `web`
-    - Deprecate `buffer` option
-    - Fix date format in `common` and `combined` formats
-    - Fix token arguments to accept values with `"`
-    - deps: debug@~2.1.1
-    - deps: on-finished@~2.2.0
-  * deps: serve-favicon@~2.2.0
-    - Support query string in the URL
-    - deps: etag@~1.5.1
-    - deps: ms@0.7.0
-  * deps: serve-index@~1.6.0
-    - Add link to root directory
-    - deps: accepts@~1.2.2
-    - deps: batch@0.5.2
-    - deps: debug@~2.1.1
-    - deps: mime-types@~2.0.7
-  * deps: serve-static@~1.8.0
-    - Fix potential open redirect when mounted at root
-    - deps: send@0.11.0
-  * deps: type-is@~1.5.5
-    - deps: mime-types@~2.0.7
-
-2.27.6 / 2014-12-10
-===================
-
-  * deps: serve-index@~1.5.3
-    - deps: accepts@~1.1.4
-    - deps: http-errors@~1.2.8
-    - deps: mime-types@~2.0.4
-
-2.27.5 / 2014-12-10
-===================
-
-  * deps: compression@~1.2.2
-    - Fix `.end` to only proxy to `.end`
-    - deps: accepts@~1.1.4
-  * deps: express-session@~1.9.3
-    - Fix error when `req.sessionID` contains a non-string value
-  * deps: http-errors@~1.2.8
-    - Fix stack trace from exported function
-    - Remove `arguments.callee` usage
-  * deps: serve-index@~1.5.2
-    - Fix icon name background alignment on mobile view
-  * deps: type-is@~1.5.4
-    - deps: mime-types@~2.0.4
-
-2.27.4 / 2014-11-23
-===================
-
-  * deps: body-parser@~1.9.3
-    - deps: iconv-lite@0.4.5
-    - deps: qs@2.3.3
-    - deps: raw-body@1.3.1
-    - deps: type-is@~1.5.3
-  * deps: compression@~1.2.1
-    - deps: accepts@~1.1.3
-  * deps: errorhandler@~1.2.3
-    - deps: accepts@~1.1.3
-  * deps: express-session@~1.9.2
-    - deps: crc@3.2.1
-  * deps: qs@2.3.3
-    - Fix `arrayLimit` behavior
-  * deps: serve-favicon@~2.1.7
-    - Avoid errors from enumerables on `Object.prototype`
-  * deps: serve-index@~1.5.1
-    - deps: accepts@~1.1.3
-    - deps: mime-types@~2.0.3
-  * deps: type-is@~1.5.3
-    - deps: mime-types@~2.0.3
-
-2.27.3 / 2014-11-09
-===================
-
-  * Correctly invoke async callback asynchronously
-  * deps: csurf@~1.6.3
-    - bump csrf
-    - bump http-errors
-
-2.27.2 / 2014-10-28
-===================
-
-  * Fix handling of URLs containing `://` in the path
-  * deps: body-parser@~1.9.2
-    - deps: qs@2.3.2
-  * deps: qs@2.3.2
-    - Fix parsing of mixed objects and values
-
-2.27.1 / 2014-10-22
-===================
-
-  * deps: body-parser@~1.9.1
-    - deps: on-finished@~2.1.1
-    - deps: qs@2.3.0
-    - deps: type-is@~1.5.2
-  * deps: express-session@~1.9.1
-    - Remove unnecessary empty write call
-  * deps: finalhandler@0.3.2
-    - deps: on-finished@~2.1.1
-  * deps: morgan@~1.4.1
-    - deps: on-finished@~2.1.1
-  * deps: qs@2.3.0
-    - Fix parsing of mixed implicit and explicit arrays
-  * deps: serve-static@~1.7.1
-    - deps: send@0.10.1
-
-2.27.0 / 2014-10-16
-===================
-
-  * Use `http-errors` module for creating errors
-  * Use `utils-merge` module for merging objects
-  * deps: body-parser@~1.9.0
-    - include the charset in "unsupported charset" error message
-    - include the encoding in "unsupported content encoding" error message
-    - deps: depd@~1.0.0
-  * deps: compression@~1.2.0
-    - deps: debug@~2.1.0
-  * deps: connect-timeout@~1.4.0
-    - Create errors with `http-errors`
-    - deps: debug@~2.1.0
-  * deps: debug@~2.1.0
-    - Implement `DEBUG_FD` env variable support
-  * deps: depd@~1.0.0
-  * deps: express-session@~1.9.0
-    - deps: debug@~2.1.0
-    - deps: depd@~1.0.0
-  * deps: finalhandler@0.3.1
-    - Terminate in progress response only on error
-    - Use `on-finished` to determine request status
-    - deps: debug@~2.1.0
-  * deps: method-override@~2.3.0
-    - deps: debug@~2.1.0
-  * deps: morgan@~1.4.0
-    - Add `debug` messages
-    - deps: depd@~1.0.0
-  * deps: response-time@~2.2.0
-    - Add `header` option for custom header name
-    - Add `suffix` option
-    - Change `digits` argument to an `options` argument
-    - deps: depd@~1.0.0
-  * deps: serve-favicon@~2.1.6
-    - deps: etag@~1.5.0
-  * deps: serve-index@~1.5.0
-    - Add `dir` argument to `filter` function
-    - Add icon for mkv files
-    - Create errors with `http-errors`
-    - Fix incorrect 403 on Windows and Node.js 0.11
-    - Lookup icon by mime type for greater icon support
-    - Support using tokens multiple times
-    - deps: accepts@~1.1.2
-    - deps: debug@~2.1.0
-    - deps: mime-types@~2.0.2
-  * deps: serve-static@~1.7.0
-    - deps: send@0.10.0
-
-2.26.6 / 2014-10-15
-===================
-
-  * deps: compression@~1.1.2
-    - deps: accepts@~1.1.2
-    - deps: compressible@~2.0.1
-  * deps: csurf@~1.6.2
-    - bump http-errors
-    - fix cookie name when using `cookie: true`
-  * deps: errorhandler@~1.2.2
-    - deps: accepts@~1.1.2
-
-2.26.5 / 2014-10-08
-===================
-
-  * Fix accepting non-object arguments to `logger`
-  * deps: serve-static@~1.6.4
-    - Fix redirect loop when index file serving disabled
-
-2.26.4 / 2014-10-02
-===================
-
-  * deps: morgan@~1.3.2
-    - Fix `req.ip` integration when `immediate: false`
-  * deps: type-is@~1.5.2
-    - deps: mime-types@~2.0.2
-
-2.26.3 / 2014-09-24
-===================
-
-  * deps: body-parser@~1.8.4
-    - fix content encoding to be case-insensitive
-  * deps: serve-favicon@~2.1.5
-    - deps: etag@~1.4.0
-  * deps: serve-static@~1.6.3
-    - deps: send@0.9.3
-
-2.26.2 / 2014-09-19
-===================
-
-  * deps: body-parser@~1.8.3
-    - deps: qs@2.2.4
-  * deps: qs@2.2.4
-    - Fix issue with object keys starting with numbers truncated
-
-2.26.1 / 2014-09-15
-===================
-
-  * deps: body-parser@~1.8.2
-    - deps: depd@0.4.5
-  * deps: depd@0.4.5
-  * deps: express-session@~1.8.2
-    - Use `crc` instead of `buffer-crc32` for speed
-    - deps: depd@0.4.5
-  * deps: morgan@~1.3.1
-    - Remove un-used `bytes` dependency
-    - deps: depd@0.4.5
-  * deps: serve-favicon@~2.1.4
-    - Fix content headers being sent in 304 response
-    - deps: etag@~1.3.1
-  * deps: serve-static@~1.6.2
-    - deps: send@0.9.2
-
-2.26.0 / 2014-09-08
-===================
-
-  * deps: body-parser@~1.8.1
-    - add `parameterLimit` option to `urlencoded` parser
-    - change `urlencoded` extended array limit to 100
-    - make empty-body-handling consistent between chunked requests
-    - respond with 415 when over `parameterLimit` in `urlencoded`
-    - deps: media-typer@0.3.0
-    - deps: qs@2.2.3
-    - deps: type-is@~1.5.1
-  * deps: compression@~1.1.0
-    - deps: accepts@~1.1.0
-    - deps: compressible@~2.0.0
-    - deps: debug@~2.0.0
-  * deps: connect-timeout@~1.3.0
-    - deps: debug@~2.0.0
-  * deps: cookie-parser@~1.3.3
-    - deps: cookie-signature@1.0.5
-  * deps: cookie-signature@1.0.5
-  * deps: csurf@~1.6.1
-    - add `ignoreMethods` option
-    - bump cookie-signature
-    - csrf-tokens -> csrf
-    - set `code` property on CSRF token errors
-  * deps: debug@~2.0.0
-  * deps: errorhandler@~1.2.0
-    - Display error using `util.inspect` if no other representation
-    - deps: accepts@~1.1.0
-  * deps: express-session@~1.8.1
-    - Do not resave already-saved session at end of request
-    - Prevent session prototype methods from being overwritten
-    - deps: cookie-signature@1.0.5
-    - deps: debug@~2.0.0
-  * deps: finalhandler@0.2.0
-    - Set `X-Content-Type-Options: nosniff` header
-    - deps: debug@~2.0.0
-  * deps: fresh@0.2.4
-  * deps: media-typer@0.3.0
-    - Throw error when parameter format invalid on parse
-  * deps: method-override@~2.2.0
-    - deps: debug@~2.0.0
-  * deps: morgan@~1.3.0
-    - Assert if `format` is not a function or string
-  * deps: qs@2.2.3
-    - Fix issue where first empty value in array is discarded
-  * deps: serve-favicon@~2.1.3
-    - Accept string for `maxAge` (converted by `ms`)
-    - Use `etag` to generate `ETag` header
-    - deps: fresh@0.2.4
-  * deps: serve-index@~1.2.1
-    - Add `debug` messages
-    - Resolve relative paths at middleware setup
-    - deps: accepts@~1.1.0
-  * deps: serve-static@~1.6.1
-    - Add `lastModified` option
-    - deps: send@0.9.1
-  * deps: type-is@~1.5.1
-    - fix `hasbody` to be true for `content-length: 0`
-    - deps: media-typer@0.3.0
-    - deps: mime-types@~2.0.1
-  * deps: vhost@~3.0.0
-
-2.25.10 / 2014-09-04
-====================
-
-  * deps: serve-static@~1.5.4
-    - deps: send@0.8.5
-
-2.25.9 / 2014-08-29
-===================
-
-  * deps: body-parser@~1.6.7
-    - deps: qs@2.2.2
-  * deps: qs@2.2.2
-
-2.25.8 / 2014-08-27
-===================
-
-  * deps: body-parser@~1.6.6
-    - deps: qs@2.2.0
-  * deps: csurf@~1.4.1
-  * deps: qs@2.2.0
-    - Array parsing fix
-    - Performance improvements
-
-2.25.7 / 2014-08-18
-===================
-
-  * deps: body-parser@~1.6.5
-    - deps: on-finished@2.1.0
-  * deps: express-session@~1.7.6
-    - Fix exception on `res.end(null)` calls
-  * deps: morgan@~1.2.3
-    - deps: on-finished@2.1.0
-  * deps: serve-static@~1.5.3
-    - deps: send@0.8.3
-
-2.25.6 / 2014-08-14
-===================
-
-  * deps: body-parser@~1.6.4
-    - deps: qs@1.2.2
-  * deps: qs@1.2.2
-  * deps: serve-static@~1.5.2
-    - deps: send@0.8.2
-
-2.25.5 / 2014-08-11
-===================
-
-  * Fix backwards compatibility in `logger`
-
-2.25.4 / 2014-08-10
-===================
-
-  * Fix `query` middleware breaking with argument
-    - It never really took one in the first place
-  * deps: body-parser@~1.6.3
-    - deps: qs@1.2.1
-  * deps: compression@~1.0.11
-    - deps: on-headers@~1.0.0
-    - deps: parseurl@~1.3.0
-  * deps: connect-timeout@~1.2.2
-    - deps: on-headers@~1.0.0
-  * deps: express-session@~1.7.5
-    - Fix parsing original URL
-    - deps: on-headers@~1.0.0
-    - deps: parseurl@~1.3.0
-  * deps: method-override@~2.1.3
-  * deps: on-headers@~1.0.0
-  * deps: parseurl@~1.3.0
-  * deps: qs@1.2.1
-  * deps: response-time@~2.0.1
-    - deps: on-headers@~1.0.0
-  * deps: serve-index@~1.1.6
-    - Fix URL parsing
-  * deps: serve-static@~1.5.1
-    - Fix parsing of weird `req.originalUrl` values
-    - deps: parseurl@~1.3.0
-    = deps: utils-merge@1.0.0
-
-2.25.3 / 2014-08-07
-===================
-
-  * deps: multiparty@3.3.2
-    - Fix potential double-callback
-
-2.25.2 / 2014-08-07
-===================
-
-  * deps: body-parser@~1.6.2
-    - deps: qs@1.2.0
-  * deps: qs@1.2.0
-    - Fix parsing array of objects
-
-2.25.1 / 2014-08-06
-===================
-
-  * deps: body-parser@~1.6.1
-    - deps: qs@1.1.0
-  * deps: qs@1.1.0
-    - Accept urlencoded square brackets
-    - Accept empty values in implicit array notation
-
-2.25.0 / 2014-08-05
-===================
-
-  * deps: body-parser@~1.6.0
-    - deps: qs@1.0.2
-  * deps: compression@~1.0.10
-    - Fix upper-case Content-Type characters prevent compression
-    - deps: compressible@~1.1.1
-  * deps: csurf@~1.4.0
-    - Support changing `req.session` after `csurf` middleware
-    - Calling `res.csrfToken()` after `req.session.destroy()` will now work
-  * deps: express-session@~1.7.4
-    - Fix `res.end` patch to call correct upstream `res.write`
-    - Fix response end delay for non-chunked responses
-  * deps: qs@1.0.2
-    - Complete rewrite
-    - Limits array length to 20
-    - Limits object depth to 5
-    - Limits parameters to 1,000
-  * deps: serve-static@~1.5.0
-    - Add `extensions` option
-    - deps: send@0.8.1
-
-2.24.3 / 2014-08-04
-===================
-
-  * deps: serve-index@~1.1.5
-    - Fix Content-Length calculation for multi-byte file names
-    - deps: accepts@~1.0.7
-  * deps: serve-static@~1.4.4
-    - Fix incorrect 403 on Windows and Node.js 0.11
-    - deps: send@0.7.4
-
-2.24.2 / 2014-07-27
-===================
-
-  * deps: body-parser@~1.5.2
-  * deps: depd@0.4.4
-    - Work-around v8 generating empty stack traces
-  * deps: express-session@~1.7.2
-  * deps: morgan@~1.2.2
-  * deps: serve-static@~1.4.2
-
-2.24.1 / 2014-07-26
-===================
-
-  * deps: body-parser@~1.5.1
-  * deps: depd@0.4.3
-    - Fix exception when global `Error.stackTraceLimit` is too low
-  * deps: express-session@~1.7.1
-  * deps: morgan@~1.2.1
-  * deps: serve-index@~1.1.4
-  * deps: serve-static@~1.4.1
-
-2.24.0 / 2014-07-22
-===================
-
-  * deps: body-parser@~1.5.0
-    - deps: depd@0.4.2
-    - deps: iconv-lite@0.4.4
-    - deps: raw-body@1.3.0
-    - deps: type-is@~1.3.2
-  * deps: compression@~1.0.9
-    - Add `debug` messages
-    - deps: accepts@~1.0.7
-  * deps: connect-timeout@~1.2.1
-    - Accept string for `time` (converted by `ms`)
-    - deps: debug@1.0.4
-  * deps: debug@1.0.4
-  * deps: depd@0.4.2
-    - Add `TRACE_DEPRECATION` environment variable
-    - Remove non-standard grey color from color output
-    - Support `--no-deprecation` argument
-    - Support `--trace-deprecation` argument
-  * deps: express-session@~1.7.0
-    - Improve session-ending error handling
-    - deps: debug@1.0.4
-    - deps: depd@0.4.2
-  * deps: finalhandler@0.1.0
-    - Respond after request fully read
-    - deps: debug@1.0.4
-  * deps: method-override@~2.1.2
-    - deps: debug@1.0.4
-    - deps: parseurl@~1.2.0
-  * deps: morgan@~1.2.0
-    - Add `:remote-user` token
-    - Add `combined` log format
-    - Add `common` log format
-    - Remove non-standard grey color from `dev` format
-  * deps: multiparty@3.3.1
-  * deps: parseurl@~1.2.0
-    - Cache URLs based on original value
-    - Remove no-longer-needed URL mis-parse work-around
-    - Simplify the "fast-path" `RegExp`
-  * deps: serve-static@~1.4.0
-    - Add `dotfiles` option
-    - deps: parseurl@~1.2.0
-    - deps: send@0.7.0
-
-2.23.0 / 2014-07-10
-===================
-
-  * deps: debug@1.0.3
-    - Add support for multiple wildcards in namespaces
-  * deps: express-session@~1.6.4
-  * deps: method-override@~2.1.0
-    - add simple debug output
-    - deps: methods@1.1.0
-    - deps: parseurl@~1.1.3
-  * deps: parseurl@~1.1.3
-    - faster parsing of href-only URLs
-  * deps: serve-static@~1.3.1
-    - deps: parseurl@~1.1.3
-
-2.22.0 / 2014-07-03
-===================
-
-  * deps: csurf@~1.3.0
-    - Fix `cookie.signed` option to actually sign cookie
-  * deps: express-session@~1.6.1
-    - Fix `res.end` patch to return correct value
-    - Fix `res.end` patch to handle multiple `res.end` calls
-    - Reject cookies with missing signatures
-  * deps: multiparty@3.3.0
-    - Always emit close after all parts ended
-    - Fix callback hang in node.js 0.8 on errors
-  * deps: serve-static@~1.3.0
-    - Accept string for `maxAge` (converted by `ms`)
-    - Add `setHeaders` option
-    - Include HTML link in redirect response
-    - deps: send@0.5.0
-
-2.21.1 / 2014-06-26
-===================
-
-  * deps: cookie-parser@1.3.2
-    - deps: cookie-signature@1.0.4
-  * deps: cookie-signature@1.0.4
-    - fix for timing attacks
-  * deps: express-session@~1.5.2
-    - deps: cookie-signature@1.0.4
-  * deps: type-is@~1.3.2
-    - more mime types
-
-2.21.0 / 2014-06-20
-===================
-
-  * deprecate `connect(middleware)` -- use `app.use(middleware)` instead
-  * deprecate `connect.createServer()` -- use `connect()` instead
-  * fix `res.setHeader()` patch to work with get -> append -> set pattern
-  * deps: compression@~1.0.8
-  * deps: errorhandler@~1.1.1
-  * deps: express-session@~1.5.0
-    - Deprecate integration with `cookie-parser` middleware
-    - Deprecate looking for secret in `req.secret`
-    - Directly read cookies; `cookie-parser` no longer required
-    - Directly set cookies; `res.cookie` no longer required
-    - Generate session IDs with `uid-safe`, faster and even less collisions
-  * deps: serve-index@~1.1.3
-
-2.20.2 / 2014-06-19
-===================
-
-  * deps: body-parser@1.4.3
-    - deps: type-is@1.3.1
-
-2.20.1 / 2014-06-19
-===================
-
-  * deps: type-is@1.3.1
-    - fix global variable leak
-
-2.20.0 / 2014-06-19
-===================
-
-  * deprecate `verify` option to `json` -- use `body-parser` npm module instead
-  * deprecate `verify` option to `urlencoded` -- use `body-parser` npm module instead
-  * deprecate things with `depd` module
-  * use `finalhandler` for final response handling
-  * use `media-typer` to parse `content-type` for charset
-  * deps: body-parser@1.4.2
-    - check accepted charset in content-type (accepts utf-8)
-    - check accepted encoding in content-encoding (accepts identity)
-    - deprecate `urlencoded()` without provided `extended` option
-    - lazy-load urlencoded parsers
-    - support gzip and deflate bodies
-    - set `inflate: false` to turn off
-    - deps: raw-body@1.2.2
-    - deps: type-is@1.3.0
-    - Support all encodings from `iconv-lite`
-  * deps: connect-timeout@1.1.1
-    - deps: debug@1.0.2
-  * deps: cookie-parser@1.3.1
-    - export parsing functions
-    - `req.cookies` and `req.signedCookies` are now plain objects
-    - slightly faster parsing of many cookies
-  * deps: csurf@1.2.2
-  * deps: errorhandler@1.1.0
-    - Display error on console formatted like `throw`
-    - Escape HTML in stack trace
-    - Escape HTML in title
-    - Fix up edge cases with error sent in response
-    - Set `X-Content-Type-Options: nosniff` header
-    - Use accepts for negotiation
-  * deps: express-session@1.4.0
-    - Add `genid` option to generate custom session IDs
-    - Add `saveUninitialized` option to control saving uninitialized sessions
-    - Add `unset` option to control unsetting `req.session`
-    - Generate session IDs with `rand-token` by default; reduce collisions
-    - Integrate with express "trust proxy" by default
-    - deps: buffer-crc32@0.2.3
-    - deps: debug@1.0.2
-  * deps: multiparty@3.2.9
-  * deps: serve-index@1.1.2
-    - deps: batch@0.5.1
-  * deps: type-is@1.3.0
-    - improve type parsing
-  * deps: vhost@2.0.0
-    - Accept `RegExp` object for `hostname`
-    - Provide `req.vhost` object
-    - Support IPv6 literal in `Host` header
-
-2.19.6 / 2014-06-11
-===================
-
-  * deps: body-parser@1.3.1
-    - deps: type-is@1.2.1
-  * deps: compression@1.0.7
-    - use vary module for better `Vary` behavior
-    - deps: accepts@1.0.3
-    - deps: compressible@1.1.0
-  * deps: debug@1.0.2
-  * deps: serve-index@1.1.1
-    - deps: accepts@1.0.3
-  * deps: serve-static@1.2.3
-    - Do not throw un-catchable error on file open race condition
-    - deps: send@0.4.3
-
-2.19.5 / 2014-06-09
-===================
-
-  * deps: csurf@1.2.1
-    - refactor to use csrf-tokens@~1.0.2
-  * deps: debug@1.0.1
-  * deps: serve-static@1.2.2
-    - fix "event emitter leak" warnings
-    - deps: send@0.4.2
-  * deps: type-is@1.2.1
-    - Switch dependency from `mime` to `mime-types@1.0.0`
-
-2.19.4 / 2014-06-05
-===================
-
-  * deps: errorhandler@1.0.2
-    - Pass on errors from reading error files
-  * deps: method-override@2.0.2
-    - use vary module for better `Vary` behavior
-  * deps: serve-favicon@2.0.1
-    - Reduce byte size of `ETag` header
-
-2.19.3 / 2014-06-03
-===================
-
-  * deps: compression@1.0.6
-    - fix listeners for delayed stream creation
-    - fix regression for certain `stream.pipe(res)` situations
-    - fix regression when negotiation fails
-
-2.19.2 / 2014-06-03
-===================
-
-  * deps: compression@1.0.4
-    - fix adding `Vary` when value stored as array
-    - fix back-pressure behavior
-    - fix length check for `res.end`
-
-2.19.1 / 2014-06-02
-===================
-
-  * fix deprecated `utils.escape`
-
-2.19.0 / 2014-06-02
-===================
-
-  * deprecate `methodOverride()` -- use `method-override` npm module instead
-  * deps: body-parser@1.3.0
-    - add `extended` option to urlencoded parser
-  * deps: method-override@2.0.1
-    - set `Vary` header
-    - deps: methods@1.0.1
-  * deps: multiparty@3.2.8
-  * deps: response-time@2.0.0
-    - add `digits` argument
-    - do not override existing `X-Response-Time` header
-    - timer not subject to clock drift
-    - timer resolution down to nanoseconds
-  * deps: serve-static@1.2.1
-    - send max-age in Cache-Control in correct format
-    - use `escape-html` for escaping
-    - deps: send@0.4.1
-
-2.18.0 / 2014-05-29
-===================
-
-  * deps: compression@1.0.3
-  * deps: serve-index@1.1.0
-    - Fix content negotiation when no `Accept` header
-    - Properly support all HTTP methods
-    - Support vanilla node.js http servers
-    - Treat `ENAMETOOLONG` as code 414
-    - Use accepts for negotiation
-  * deps: serve-static@1.2.0
-    - Calculate ETag with md5 for reduced collisions
-    - Fix wrong behavior when index file matches directory
-    - Ignore stream errors after request ends
-    - Skip directories in index file search
-    - deps: send@0.4.0
-
-2.17.3 / 2014-05-27
-===================
-
-  * deps: express-session@1.2.1
-    - Fix `resave` such that `resave: true` works
-
-2.17.2 / 2014-05-27
-===================
-
-  * deps: body-parser@1.2.2
-    - invoke `next(err)` after request fully read
-    - deps: raw-body@1.1.6
-  * deps: method-override@1.0.2
-    - Handle `req.body` key referencing array or object
-    - Handle multiple HTTP headers
-
-2.17.1 / 2014-05-21
-===================
-
-  * fix `res.charset` appending charset when `content-type` has one
-
-2.17.0 / 2014-05-20
-===================
-
-  * deps: express-session@1.2.0
-    - Add `resave` option to control saving unmodified sessions
-  * deps: morgan@1.1.1
-    - "dev" format will use same tokens as other formats
-    - `:response-time` token is now empty when immediate used
-    - `:response-time` token is now monotonic
-    - `:response-time` token has precision to 1 μs
-    - fix `:status` + immediate output in node.js 0.8
-    - improve `buffer` option to prevent indefinite event loop holding
-    - simplify method to get remote address
-    - deps: bytes@1.0.0
-  * deps: serve-index@1.0.3
-    - Fix error from non-statable files in HTML view
-
-2.16.2 / 2014-05-18
-===================
-
-  * fix edge-case in `res.appendHeader` that would append in wrong order
-  * deps: method-override@1.0.1
-
-2.16.1 / 2014-05-17
-===================
-
-  * remove usages of `res.headerSent` from core
-
-2.16.0 / 2014-05-17
-===================
-
-  * deprecate `res.headerSent` -- use `res.headersSent`
-  * deprecate `res.on("header")` -- use on-headers module instead
-  * fix `connect.version` to reflect the actual version
-  * json: use body-parser
-    - add `type` option
-    - fix repeated limit parsing with every request
-    - improve parser speed
-  * urlencoded: use body-parser
-    - add `type` option
-    - fix repeated limit parsing with every request
-  * dep: bytes@1.0.0
-    * add negative support
-  * dep: cookie-parser@1.1.0
-    - deps: cookie@0.1.2
-  * dep: csurf@1.2.0
-    - add support for double-submit cookie
-  * dep: express-session@1.1.0
-    - Add `name` option; replacement for `key` option
-    - Use `setImmediate` in MemoryStore for node.js >= 0.10
-
-2.15.0 / 2014-05-04
-===================
-
-  * Add simple `res.cookie` support
-  * Add `res.appendHeader`
-  * Call error stack even when response has been sent
-  * Patch `res.headerSent` to return Boolean
-  * Patch `res.headersSent` for node.js 0.8
-  * Prevent default 404 handler after response sent
-  * dep: compression@1.0.2
-    * support headers given to `res.writeHead`
-    * deps: bytes@0.3.0
-    * deps: negotiator@0.4.3
-  * dep: connect-timeout@1.1.0
-    * Add `req.timedout` property
-    * Add `respond` option to constructor
-    * Clear timer on socket destroy
-    * deps: debug@0.8.1
-  * dep: debug@^0.8.0
-    * add `enable()` method
-    * change from stderr to stdout
-  * dep: errorhandler@1.0.1
-    * Clean up error CSS
-    * Do not respond after headers sent
-  * dep: express-session@1.0.4
-    * Remove import of `setImmediate`
-    * Use `res.cookie()` instead of `res.setHeader()`
-    * deps: cookie@0.1.2
-    * deps: debug@0.8.1
-  * dep: morgan@1.0.1
-    * Make buffer unique per morgan instance
-    * deps: bytes@0.3.0
-  * dep: serve-favicon@2.0.0
-    * Accept `Buffer` of icon as first argument
-    * Non-GET and HEAD requests are denied
-    * Send valid max-age value
-    * Support conditional requests
-    * Support max-age=0
-    * Support OPTIONS method
-    * Throw if `path` argument is directory
-  * dep: serve-index@1.0.2
-    * Add stylesheet option
-    * deps: negotiator@0.4.3
-
-2.14.5 / 2014-04-24
-===================
-
-  * dep: raw-body@1.1.4
-    * allow true as an option
-    * deps: bytes@0.3.0
-  * dep: serve-static@1.1.0
-    * Accept options directly to `send` module
-    * deps: send@0.3.0
-
-2.14.4 / 2014-04-07
-===================
-
-  * dep: bytes@0.3.0
-    * added terabyte support
-  * dep: csurf@1.1.0
-    * add constant-time string compare
-  * dep: serve-static@1.0.4
-    * Resolve relative paths at middleware setup
-    * Use parseurl to parse the URL from request
-  * fix node.js 0.8 compatibility with memory session
-
-2.14.3 / 2014-03-18
-===================
-
-  * dep: static-favicon@1.0.2
-    * Fixed content of default icon
-
-2.14.2 / 2014-03-11
-===================
-
-  * dep: static-favicon@1.0.1
-    * Fixed path to default icon
-
-2.14.1 / 2014-03-06
-===================
-
-  * dep: fresh@0.2.2
-    * no real changes
-  * dep: serve-index@1.0.1
-    * deps: negotiator@0.4.2
-  * dep: serve-static@1.0.2
-    * deps: send@0.2.0
-
-2.14.0 / 2014-03-05
-===================
-
- * basicAuth: use basic-auth-connect
- * cookieParser: use cookie-parser
- * compress: use compression
- * csrf: use csurf
- * dep: cookie-signature@1.0.3
- * directory: use serve-index
- * errorHandler: use errorhandler
- * favicon: use static-favicon
- * logger: use morgan
- * methodOverride: use method-override
- * responseTime: use response-time
- * session: use express-session
- * static: use serve-static
- * timeout: use connect-timeout
- * vhost: use vhost
-
-2.13.1 / 2014-03-05
-===================
-
- * cookieSession: compare full value rather than crc32
- * deps: raw-body@1.1.3
-
-2.13.0 / 2014-02-14
-===================
-
- * fix typo in memory store warning #974 @rvagg
- * compress: use compressible
- * directory: add template option #990 @gottaloveit @Earl-Brown
- * csrf: prevent deprecated warning with old sessions
-
-2.12.0 / 2013-12-10
-===================
-
- * bump qs
- * directory: sort folders before files
- * directory: add folder icons
- * directory: de-duplicate icons, details/mobile views #968 @simov
- * errorHandler: end default 404 handler with a newline #972 @rlidwka
- * session: remove long cookie expire check #870 @undoZen
-
-2.11.2 / 2013-12-01
-===================
-
- * bump raw-body
-
-2.11.1 / 2013-11-27
-===================
-
- * bump raw-body
- * errorHandler: use `res.setHeader()` instead of `res.writeHead()` #949 @lo1tuma
-
-2.11.0 / 2013-10-29
-===================
-
- * update bytes
- * update uid2
- * update negotiator
- * sessions: add rolling session option #944 @ilmeo
- * sessions: property set cookies when given FQDN
- * cookieSessions: properly set cookies when given FQDN #948 @bmancini55
- * proto: fix FQDN mounting when multiple handlers #945 @bmancini55
-
-2.10.1 / 2013-10-23
-===================
-
- * fixed; fixed a bug with static middleware at root and trailing slashes #942 (@dougwilson)
-
-2.10.0 / 2013-10-22
-===================
-
- * fixed: set headers written by writeHead before emitting 'header'
- * fixed: mounted path should ignore querystrings on FQDNs #940 (@dougwilson)
- * fixed: parsing protocol-relative URLs with @ as pathnames #938 (@dougwilson)
- * fixed: fix static directory redirect for mount's root #937 (@dougwilson)
- * fixed: setting set-cookie header when mixing arrays and strings #893 (@anuj123)
- * bodyParser: optional verify function for urlencoded and json parsers for signing request bodies
- * compress: compress checks content-length to check threshold
- * compress: expose `res.flush()` for flushing responses
- * cookieParser: pass options into node-cookie #803 (@cauldrath)
- * errorHandler: replace `\n`s with `<br/>`s in error handler
-
-2.9.2 / 2013-10-18
-==================
-
- * warn about multiparty and limit middleware deprecation for v3
- * fix fully qualified domain name mounting. #920 (@dougwilson)
- * directory: Fix potential security issue with serving files outside the root. #929 (@dougwilson)
- * logger: store IP at beginning in case socket prematurely closes #930 (@dougwilson)
-
-2.9.1 / 2013-10-15
-==================
-
- * update multiparty
- * compress: Set vary header only if Content-Type passes filter #904
- * directory: Fix directory middleware URI escaping #917 (@dougwilson)
- * directory: Fix directory seperators for Windows #914 (@dougwilson)
- * directory: Keep query string intact during directory redirect #913 (@dougwilson)
- * directory: Fix paths in links #730 (@JacksonTian)
- * errorHandler: Don't escape text/plain as HTML #875 (@johan)
- * logger: Write '0' instead of '-' when response time is zero #910 (@dougwilson)
- * logger: Log even when connections are aborted #760 (@dylanahsmith)
- * methodOverride: Check req.body is an object #907 (@kbjr)
- * multipart: Add .type back to file parts for backwards compatibility #912 (@dougwilson)
- * multipart: Allow passing options to the Multiparty constructor #902 (@niftylettuce)
-
-2.9.0 / 2013-09-07
-==================
-
- * multipart: add docs regarding tmpfiles
- * multipart: add .name back to file parts
- * multipart: use multiparty instead of formidable
-
-2.8.8 / 2013-09-02
-==================
-
- * csrf: change to math.random() salt and remove csrfToken() callback
-
-2.8.7 / 2013-08-28
-==================
-
- * csrf: prevent salt generation on every request, and add async req.csrfToken(fn)
-
-2.8.6 / 2013-08-28
-==================
-
- * csrf: refactor to use HMAC tokens (BREACH attack)
- * compress: add compression of SVG and common font files by default.
-
-2.8.5 / 2013-08-11
-==================
-
- * add: compress Dart source files by default
- * update fresh
-
-2.8.4 / 2013-07-08
-==================
-
- * update send
-
-2.8.3 / 2013-07-04
-==================
-
- * add a name back to static middleware ("staticMiddleware")
- * fix .hasBody() utility to require transfer-encoding or content-length
-
-2.8.2 / 2013-07-03
-==================
-
- * update send
- * update cookie dep.
- * add better debug() for middleware
- * add whitelisting of supported methods to methodOverride()
-
-2.8.1 / 2013-06-27
-==================
-
- * fix: escape req.method in 404 response
-
-2.8.0 / 2013-06-26
-==================
-
- * add `threshold` option to `compress()` to prevent compression of small responses
- * add support for vendor JSON mime types in json()
- * add X-Forwarded-Proto initial https proxy support
- * change static redirect to 303
- * change octal escape sequences for strict mode
- * change: replace utils.uid() with uid2 lib
- * remove other "static" function name. Fixes #794
- * fix: hasBody() should return false if Content-Length: 0
-
-2.7.11 / 2013-06-02
-==================
-
- * update send
-
-2.7.10 / 2013-05-21
-==================
-
- * update qs
- * update formidable
- * fix: write/end to noop() when request aborted
-
-2.7.9 / 2013-05-07
-==================
-
-  * update qs
-  * drop support for node < v0.8
-
-2.7.8 / 2013-05-03
-==================
-
-  * update qs
-
-2.7.7 / 2013-04-29
-==================
-
-  * update qs dependency
-  * remove "static" function name. Closes #794
-  * update node-formidable
-  * update buffer-crc32
-
-2.7.6 / 2013-04-15
-==================
-
-  * revert cookie signature which was creating session race conditions
-
-2.7.5 / 2013-04-12
-==================
-
-  * update cookie-signature
-  * limit: do not consume request in node 0.10.x
-
-2.7.4 / 2013-04-01
-==================
-
-  * session: add long expires check and prevent excess set-cookie
-  * session: add console.error() of session#save() errors
-
-2.7.3 / 2013-02-19
-==================
-
-  * add name to compress middleware
-  * add appending Accept-Encoding to Vary when set but missing
-  * add tests for csrf middleware
-  * add 'next' support for connect() server handler
-  * change utils.uid() to return url-safe chars. Closes #753
-  * fix treating '.' as a regexp in vhost()
-  * fix duplicate bytes dep in package.json. Closes #743
-  * fix #733 - parse x-forwarded-proto in a more generally compatibly way
-  * revert "add support for `next(status[, msg])`"; makes composition hard
-
-2.7.2 / 2013-01-04
-==================
-
-  * add support for `next(status[, msg])` back
-  * add utf-8 meta tag to support foreign characters in filenames/directories
-  * change `timeout()` 408 to 503
-  * replace 'node-crc' with 'buffer-crc32', fixes licensing
-  * fix directory.html IE support
-
-2.7.1 / 2012-12-05
-==================
-
-  * add directory() tests
-  * add support for bodyParser to ignore Content-Type if no body is present (jquery primarily does this poorely)
-  * fix errorHandler signature
-
-2.7.0 / 2012-11-13
-==================
-
-  * add support for leading JSON whitespace
-  * add logging of `req.ip` when present
-  * add basicAuth support for `:`-delimited string
-  * update cookie module. Closes #688
-
-2.6.2 / 2012-11-01
-==================
-
-  * add `debug()` for disconnected session store
-  * fix session regeneration bug. Closes #681
-
-2.6.1 / 2012-10-25
-==================
-
-  * add passing of `connect.timeout()` errors to `next()`
-  * replace signature utils with cookie-signature module
-
-2.6.0 / 2012-10-09
-==================
-
-  * add `defer` option to `multipart()` [Blake Miner]
-  * fix mount path case sensitivity. Closes #663
-  * fix default of ascii encoding from `logger()`, now utf8. Closes #293
-
-2.5.0 / 2012-09-27
-==================
-
-  * add `err.status = 400` to multipart() errors
-  * add double-encoding protection to `compress()`. Closes #659
-  * add graceful handling cookie parsing errors [shtylman]
-  * fix typo X-Response-time to X-Response-Time
-
-2.4.6 / 2012-09-18
-==================
-
-  * update qs
-
-2.4.5 / 2012-09-03
-==================
-
-  * add session store "connect" / "disconnect" support [louischatriot]
-  * fix `:url` log token
-
-2.4.4 / 2012-08-21
-==================
-
-  * fix `static()` pause regression from "send" integration
-
-2.4.3 / 2012-08-07
-==================
-
-  * fix `.write()` encoding for zlib inconstancy. Closes #561
-
-2.4.2 / 2012-07-25
-==================
-
-  * remove limit default from `urlencoded()`
-  * remove limit default from `json()`
-  * remove limit default from `multipart()`
-  * fix `cookieSession()` clear cookie path / domain bug. Closes #636
-
-2.4.1 / 2012-07-24
-==================
-
-  * fix `options` mutation in `static()`
-
-2.4.0 / 2012-07-23
-==================
-
-  * add `connect.timeout()`
-  * add __GET__ / __HEAD__ check to `directory()`. Closes #634
-  * add "pause" util dep
-  * update send dep for normalization bug
-
-2.3.9 / 2012-07-16
-==================
-
-  * add more descriptive invalid json error message
-  * update send dep for root normalization regression
-  * fix staticCache fresh dep
-
-2.3.8 / 2012-07-12
-==================
-
-  * fix `connect.static()` 404 regression, pass `next()`. Closes #629
-
-2.3.7 / 2012-07-05
-==================
-
-  * add `json()` utf-8 illustration test. Closes #621
-  * add "send" dependency
-  * change `connect.static()` internals to use "send"
-  * fix `session()` req.session generation with pathname mismatch
-  * fix `cookieSession()` req.session generation with pathname mismatch
-  * fix mime export. Closes #618
-
-2.3.6 / 2012-07-03
-==================
-
-  * Fixed cookieSession() with cookieParser() secret regression. Closes #602
-  * Fixed set-cookie header fields on cookie.path mismatch. Closes #615
-
-2.3.5 / 2012-06-28
-==================
-
-  * Remove `logger()` mount check
-  * Fixed `staticCache()` dont cache responses with set-cookie. Closes #607
-  * Fixed `staticCache()` when Cookie is present
-
-2.3.4 / 2012-06-22
-==================
-
-  * Added `err.buf` to urlencoded() and json()
-  * Update cookie to 0.0.4. Closes #604
-  * Fixed: only send 304 if original response in 2xx or 304 [timkuijsten]
-
-2.3.3 / 2012-06-11
-==================
-
-  * Added ETags back to `static()` [timkuijsten]
-  * Replaced `utils.parseRange()` with `range-parser` module
-  * Replaced `utils.parseBytes()` with `bytes` module
-  * Replaced `utils.modified()` with `fresh` module
-  * Fixed `cookieSession()` regression with invalid cookie signing [shtylman]
-
-2.3.2 / 2012-06-08
-==================
-
-  * expose mime module
-  * Update crc dep (which bundled nodeunit)
-
-2.3.1 / 2012-06-06
-==================
-
-  * Added `secret` option to `cookieSession` middleware [shtylman]
-  * Added `secret` option to `session` middleware [shtylman]
-  * Added `req.remoteUser` back to `basicAuth()` as alias of `req.user`
-  * Performance: improve signed cookie parsing
-  * Update `cookie` dependency [shtylman]
-
-2.3.0 / 2012-05-20
-==================
-
-  * Added limit option to `json()`
-  * Added limit option to `urlencoded()`
-  * Added limit option to `multipart()`
-  * Fixed: remove socket error event listener on callback
-  * Fixed __ENOTDIR__ error on `static` middleware
-
-2.2.2 / 2012-05-07
-==================
-
-  * Added support to csrf middle for pre-flight CORS requests
-  * Updated `engines` to allow newer version of node
-  * Removed duplicate repo prop. Closes #560
-
-2.2.1 / 2012-04-28
-==================
-
-  * Fixed `static()` redirect when mounted. Closes #554
-
-2.2.0 / 2012-04-25
-==================
-
-  * Added `make benchmark`
-  * Perf: memoize url parsing (~20% increase)
-  * Fixed `connect(fn, fn2, ...)`. Closes #549
-
-2.1.3 / 2012-04-20
-==================
-
-  * Added optional json() `reviver` function to be passed to JSON.parse [jed]
-  * Fixed: emit drain in compress middleware [nsabovic]
-
-2.1.2 / 2012-04-11
-==================
-
-  * Fixed cookieParser() `req.cookies` regression
-
-2.1.1 / 2012-04-11
-==================
-
-  * Fixed `session()` browser-session length cookies & examples
-  * Fixed: make `query()` "self-aware" [jed]
-
-2.1.0 / 2012-04-05
-==================
-
-  * Added `debug()` calls to `.use()` (`DEBUG=connect:displatcher`)
-  * Added `urlencoded()` support for GET
-  * Added `json()` support for GET. Closes #497
-  * Added `strict` option to `json()`
-  * Changed: `session()` only set-cookie when modified
-  * Removed `Session#lastAccess` property. Closes #399
-
-2.0.3 / 2012-03-20
-==================
-
-  * Added: `cookieSession()` only sets cookie on change. Closes #442
-  * Added `connect:dispatcher` debug() probes
-
-2.0.2 / 2012-03-04
-==================
-
-  * Added test for __ENAMETOOLONG__ now that node is fixed
-  * Fixed static() index "/" check on windows. Closes #498
-  * Fixed Content-Range behaviour to match RFC2616 [matthiasdg / visionmedia]
-
-2.0.1 / 2012-02-29
-==================
-
-  * Added test coverage for `vhost()` middleware
-  * Changed `cookieParser()` signed cookie support to use SHA-2 [senotrusov]
-  * Fixed `static()` Range: respond with 416 when unsatisfiable
-  * Fixed `vhost()` middleware. Closes #494
-
-2.0.0 / 2011-10-05
-==================
-
-  * Added `cookieSession()` middleware for cookie-only sessions
-  * Added `compress()` middleware for gzip / deflate support
-  * Added `session()` "proxy" setting to trust `X-Forwarded-Proto`
-  * Added `json()` middleware to parse "application/json"
-  * Added `urlencoded()` middleware to parse "application/x-www-form-urlencoded"
-  * Added `multipart()` middleware to parse "multipart/form-data"
-  * Added `cookieParser(secret)` support so anything using this middleware may access signed cookies
-  * Added signed cookie support to `cookieParser()`
-  * Added support for JSON-serialized cookies to `cookieParser()`
-  * Added `err.status` support in Connect's default end-point
-  * Added X-Cache MISS / HIT to `staticCache()`
-  * Added public `res.headerSent` checking nodes `res._headerSent` until node does
-  * Changed `basicAuth()` req.remoteUser to req.user
-  * Changed: default `session()` to a browser-session cookie. Closes #475
-  * Changed: no longer lowercase cookie names
-  * Changed `bodyParser()` to use `json()`, `urlencoded()`, and `multipart()`
-  * Changed: `errorHandler()` is now a development-only middleware
-  * Changed middleware to `next()` errors when possible so applications can unify logging / handling
-  * Removed `http[s].Server` inheritance, now just a function, making it easy to have an app providing both http and https
-  * Removed `.createServer()` (use `connect()`)
-  * Removed `secret` option from `session()`, use `cookieParser(secret)`
-  * Removed `connect.session.ignore` array support
-  * Removed `router()` middleware. Closes #262
-  * Fixed: set-cookie only once for browser-session cookies
-  * Fixed FQDN support. dont add leading "/"
-  * Fixed 404 XSS attack vector. Closes #473
-  * Fixed __HEAD__ support for 404s and 500s generated by Connect's end-point
-
-1.8.5 / 2011-12-22
-==================
-
-  * Fixed: actually allow empty body for json
-
-1.8.4 / 2011-12-22
-==================
-
-  * Changed: allow empty body for json/urlencoded requests. Backport for #443
-
-1.8.3 / 2011-12-16
-==================
-
-  * Fixed `static()` _index.html_ support on windows
-
-1.8.2 / 2011-12-03
-==================
-
-  * Fixed potential security issue, store files in req.files. Closes #431 [reported by dobesv]
-
-1.8.1 / 2011-11-21
-==================
-
-  * Added nesting support for _multipart/form-data_ [jackyz]
-
-1.8.0 / 2011-11-17
-==================
-
-  * Added _multipart/form-data_ support to `bodyParser()` using formidable
-
-1.7.3 / 2011-11-11
-==================
-
-  * Fixed `req.body`, always default to {}
-  * Fixed HEAD support for 404s and 500s
-
-1.7.2 / 2011-10-24
-==================
-
-  * "node": ">= 0.4.1 < 0.7.0"
-  * Added `static()` redirect option. Closes #398
-  * Changed `limit()`: respond with 413 when content-length exceeds the limit
-  * Removed socket error listener in static(). Closes #389
-  * Fixed `staticCache()` Age header field
-  * Fixed race condition causing errors reported in #329.
-
-1.7.1 / 2011-09-12
-==================
-
-  * Added: make `Store` inherit from `EventEmitter`
-  * Added session `Store#load(sess, fn)` to fetch a `Session` instance
-  * Added backpressure support to `staticCache()`
-  * Changed `res.socket.destroy()` to `req.socket.destroy()`
-
-1.7.0 / 2011-08-31
-==================
-
-  * Added `staticCache()` middleware, a memory cache for `static()`
-  * Added public `res.headerSent` checking nodes `res._headerSent` (remove when node adds this)
-  * Changed: ignore error handling middleware when header is sent
-  * Changed: dispatcher errors after header is sent destroy the sock
-
-1.6.4 / 2011-08-26
-==================
-
-  * Revert "Added double-next reporting"
-
-1.6.3 / 2011-08-26
-==================
-
-  * Added double-`next()` reporting
-  * Added `immediate` option to `logger()`. Closes #321
-  * Dependency `qs >= 0.3.1`
-
-1.6.2 / 2011-08-11
-==================
-
-  * Fixed `connect.static()` null byte vulnerability
-  * Fixed `connect.directory()` null byte vulnerability
-  * Changed: 301 redirect in `static()` to postfix "/" on directory. Closes #289
-
-1.6.1 / 2011-08-03
-==================
-
-  * Added: allow retval `== null` from logger callback to ignore line
-  * Added `getOnly` option to `connect.static.send()`
-  * Added response "header" event allowing augmentation
-  * Added `X-CSRF-Token` header field check
-  * Changed dep `qs >= 0.3.0`
-  * Changed: persist csrf token. Closes #322
-  * Changed: sort directory middleware files alphabetically
-
-1.6.0 / 2011-07-10
-==================
-
-  * Added :response-time to "dev" logger format
-  * Added simple `csrf()` middleware. Closes #315
-  * Fixed `res._headers` logger regression. Closes #318
-  * Removed support for multiple middleware being passed to `.use()`
-
-1.5.2 / 2011-07-06
-==================
-
-  * Added `filter` function option to `directory()` [David Rio Deiros]
-  * Changed: re-write of the `logger()` middleware, with extensible tokens and formats
-  * Changed: `static.send()` ".." in path without root considered malicious
-  * Fixed quotes in docs. Closes #312
-  * Fixed urls when mounting `directory()`, use `originalUrl` [Daniel Dickison]
-
-
-1.5.1 / 2011-06-20
-==================
-
-  * Added malicious path check to `directory()` middleware
-  * Added `utils.forbidden(res)`
-  * Added `connect.query()` middleware
-
-1.5.0 / 2011-06-20
-==================
-
-  * Added `connect.directory()` middleware for serving directory listings
-
-1.4.6 / 2011-06-18
-==================
-
-  * Fixed `connect.static()` root with `..`
-  * Fixed `connect.static()` __EBADF__
-
-1.4.5 / 2011-06-17
-==================
-
-  * Fixed EBADF in `connect.static()`. Closes #297
-
-1.4.4 / 2011-06-16
-==================
-
-  * Changed `connect.static()` to check resolved dirname. Closes #294
-
-1.4.3 / 2011-06-06
-==================
-
-  * Fixed fd leak in `connect.static()` when the socket is closed
-  * Fixed; `bodyParser()` ignoring __GET/HEAD__. Closes #285
-
-1.4.2 / 2011-05-27
-==================
-
-  * Changed to `devDependencies`
-  * Fixed stream creation on `static()` __HEAD__ request. [Andreas Lind Petersen]
-  * Fixed Win32 support for `static()`
-  * Fixed monkey-patch issue. Closes #261
-
-1.4.1 / 2011-05-08
-==================
-
-  * Added "hidden" option to `static()`. ignores hidden files by default. Closes   * Added; expose `connect.static.mime.define()`. Closes #251
-  * Fixed `errorHandler` middleware for missing stack traces. [aseemk]
-#274
-
-1.4.0 / 2011-04-25
-==================
-
-  * Added route-middleware `next('route')` support to jump passed the route itself
-  * Added Content-Length support to `limit()`
-  * Added route-specific middleware support (used to be in express)
-  * Changed; refactored duplicate session logic
-  * Changed; prevent redefining `store.generate` per request
-  * Fixed; `static()` does not set Content-Type when explicitly set [nateps]
-  * Fixed escape `errorHandler()` {error} contents
-  * NOTE: `router` will be removed in 2.0
-
-
-1.3.0 / 2011-04-06
-==================
-
-  * Added `router.remove(path[, method])` to remove a route
-
-1.2.3 / 2011-04-05
-==================
-
-  * Fixed basicAuth realm issue when passing strings. Closes #253
-
-1.2.2 / 2011-04-05
-==================
-
-  * Added `basicAuth(username, password)` support
-  * Added `errorHandler.title` defaulting to "Connect"
-  * Changed `errorHandler` css
-
-1.2.1 / 2011-03-30
-==================
-
-  * Fixed `logger()` https `remoteAddress` logging [Alexander Simmerl]
-
-1.2.0 / 2011-03-30
-==================
-
-  * Added `router.lookup(path[, method])`
-  * Added `router.match(url[, method])`
-  * Added basicAuth async support. Closes #223
-
-1.1.5 / 2011-03-27
-==================
-
-  * Added; allow `logger()` callback function to return an empty string to ignore logging
-  * Fixed; utilizing `mime.charsets.lookup()` for `static()`. Closes 245
-
-1.1.4 / 2011-03-23
-==================
-
-  * Added `logger()` support for format function
-  * Fixed `logger()` to support mess of writeHead()/progressive api for node 0.4.x
-
-1.1.3 / 2011-03-21
-==================
-
-  * Changed; `limit()` now calls `req.destroy()`
-
-1.1.2 / 2011-03-21
-==================
-
-  * Added request "limit" event to `limit()` middleware
-  * Changed; `limit()` middleware will `next(err)` on failure
-
-1.1.1 / 2011-03-18
-==================
-
-  * Fixed session middleware for HTTPS. Closes #241 [reported by mt502]
-
-1.1.0 / 2011-03-17
-==================
-
-  * Added `Session#reload(fn)`
-
-1.0.6 / 2011-03-09
-==================
-
-  * Fixed `res.setHeader()` patch, preserve casing
-
-1.0.5 / 2011-03-09
-==================
-
-  * Fixed; `logger()` using `req.originalUrl` instead of `req.url`
-
-1.0.4 / 2011-03-09
-==================
-
-  * Added `res.charset`
-  * Added conditional sessions example
-  * Added support for `session.ignore` to be replaced. Closes #227
-  * Fixed `Cache-Control` delimiters. Closes #228
-
-1.0.3 / 2011-03-03
-==================
-
-  * Fixed; `static.send()` invokes callback with connection error
-
-1.0.2 / 2011-03-02
-==================
-
-  * Fixed exported connect function
-  * Fixed package.json; node ">= 0.4.1 < 0.5.0"
-
-1.0.1 / 2011-03-02
-==================
-
-  * Added `Session#save(fn)`. Closes #213
-  * Added callback support to `connect.static.send()` for express
-  * Added `connect.static.send()` "path" option
-  * Fixed content-type in `static()` for _index.html_
-
-1.0.0 / 2011-03-01
-==================
-
-  * Added `stack`, `message`, and `dump` errorHandler option aliases
-  * Added `req.originalMethod` to methodOverride
-  * Added `favicon()` maxAge option support
-  * Added `connect()` alternative to `connect.createServer()`
-  * Added new [documentation](http://senchalabs.github.com/connect)
-  * Added Range support to `static()`
-  * Added HTTPS support
-  * Rewrote session middleware. The session API now allows for
-    session-specific cookies, so you may alter each individually.
-    Click to view the new [session api](http://senchalabs.github.com/connect/middleware-session.html).
-  * Added middleware self-awareness. This helps prevent
-    middleware breakage when used within mounted servers.
-    For example `cookieParser()` will not parse cookies more
-    than once even when within a mounted server.
-  * Added new examples in the `./examples` directory
-  * Added [limit()](http://senchalabs.github.com/connect/middleware-limit.html) middleware
-  * Added [profiler()](http://senchalabs.github.com/connect/middleware-profiler.html) middleware
-  * Added [responseTime()](http://senchalabs.github.com/connect/middleware-responseTime.html) middleware
-  * Renamed `staticProvider` to `static`
-  * Renamed `bodyDecoder` to `bodyParser`
-  * Renamed `cookieDecoder` to `cookieParser`
-  * Fixed ETag quotes. [reported by papandreou]
-  * Fixed If-None-Match comma-delimited ETag support. [reported by papandreou]
-  * Fixed; only set req.originalUrl once. Closes #124
-  * Fixed symlink support for `static()`. Closes #123
-
-0.5.10 / 2011-02-14
-==================
-
-  * Fixed SID space issue. Closes #196
-  * Fixed; proxy `res.end()` to commit session data
-  * Fixed directory traversal attack in `staticProvider`. Closes #198
-
-0.5.9 / 2011-02-09
-==================
-
-  * qs >= 0.0.4
-
-0.5.8 / 2011-02-04
-==================
-
-  * Added `qs` dependency
-  * Fixed router race-condition causing possible failure
-    when `next()`ing to one or more routes with parallel
-    requests
-
-0.5.7 / 2011-02-01
-==================
-
-  * Added `onvhost()` call so Express (and others) can know when they are
-  * Revert "Added stylus support" (use the middleware which ships with stylus)
-  * Removed custom `Server#listen()` to allow regular `http.Server#listen()` args to work properly
-  * Fixed long standing router issue (#83) that causes '.' to be disallowed within named placeholders in routes [Andreas Lind Petersen]
-  * Fixed `utils.uid()` length error [Jxck]
-mounted
-
-0.5.6 / 2011-01-23
-==================
-
-  * Added stylus support to `compiler`
-  * _favicon.js_ cleanup
-  * _compiler.js_ cleanup
-  * _bodyDecoder.js_ cleanup
-
-0.5.5 / 2011-01-13
-==================
-
-  * Changed; using sha256 HMAC instead of md5. [Paul Querna]
-  * Changed; generated a longer random UID, without time influence. [Paul Querna]
-  * Fixed; session middleware throws when secret is not present. [Paul Querna]
-
-0.5.4 / 2011-01-07
-==================
-
-  * Added; throw when router path or callback is missing
-  * Fixed; `next(err)` on cookie parse exception instead of ignoring
-  * Revert "Added utils.pathname(), memoized url.parse(str).pathname"
-
-0.5.3 / 2011-01-05
-==================
-
-  * Added _docs/api.html_
-  * Added `utils.pathname()`, memoized url.parse(str).pathname
-  * Fixed `session.id` issue. Closes #183
-  * Changed; Defaulting `staticProvider` maxAge to 0 not 1 year. Closes #179
-  * Removed bad outdated docs, we need something new / automated eventually
-
-0.5.2 / 2010-12-28
-==================
-
-  * Added default __OPTIONS__ support to _router_ middleware
-
-0.5.1 / 2010-12-28
-==================
-
-  * Added `req.session.id` mirroring `req.sessionID`
-  * Refactored router, exposing `connect.router.methods`
-  * Exclude non-lib files from npm
-  * Removed imposed headers `X-Powered-By`, `Server`, etc
-
-0.5.0 / 2010-12-06
-==================
-
-  * Added _./index.js_
-  * Added route segment precondition support and example
-  * Added named capture group support to router
-
-0.4.0 / 2010-11-29
-==================
-
-  * Added `basicAuth` middleware
-  * Added more HTTP methods to the `router` middleware
-
-0.3.0 / 2010-07-21
-==================
-
-  * Added _staticGzip_ middleware
-  * Added `connect.utils` to expose utils
-  * Added `connect.session.Session`
-  * Added `connect.session.Store`
-  * Added `connect.session.MemoryStore`
-  * Added `connect.middleware` to expose the middleware getters
-  * Added `buffer` option to _logger_ for performance increase
-  * Added _favicon_ middleware for serving your own favicon or the connect default
-  * Added option support to _staticProvider_, can now pass _root_ and _lifetime_.
-  * Added; mounted `Server` instances now have the `route` property exposed for reflection
-  * Added support for callback as first arg to `Server#use()`
-  * Added support for `next(true)` in _router_ to bypass match attempts
-  * Added `Server#listen()` _host_ support
-  * Added `Server#route` when `Server#use()` is called with a route on a `Server` instance
-  * Added _methodOverride_ X-HTTP-Method-Override support
-  * Refactored session internals, adds _secret_ option
-  * Renamed `lifetime` option to `maxAge` in _staticProvider_
-  * Removed connect(1), it is now [spark(1)](http://github.com/senchalabs/spark)
-  * Removed connect(1) dependency on examples, they can all now run with node(1)
-  * Remove a typo that was leaking a global.
-  * Removed `Object.prototype` forEach() and map() methods
-  * Removed a few utils not used
-  * Removed `connect.createApp()`
-  * Removed `res.simpleBody()`
-  * Removed _format_ middleware
-  * Removed _flash_ middleware
-  * Removed _redirect_ middleware
-  * Removed _jsonrpc_ middleware, use [visionmedia/connect-jsonrpc](http://github.com/visionmedia/connect-jsonrpc)
-  * Removed _pubsub_ middleware
-  * Removed need for `params.{captures,splat}` in _router_ middleware, `params` is an array
-  * Changed; _compiler_ no longer 404s
-  * Changed; _router_ signature now matches connect middleware signature
-  * Fixed a require in _session_ for default `MemoryStore`
-  * Fixed nasty request body bug in _router_. Closes #54
-  * Fixed _less_ support in _compiler_
-  * Fixed bug preventing proper bubbling of exceptions in mounted servers
-  * Fixed bug in `Server#use()` preventing `Server` instances as the first arg
-  * Fixed **ENOENT** special case, is now treated as any other exception
-  * Fixed spark env support
-
-0.2.1 / 2010-07-09
-==================
-
-  * Added support for _router_ `next()` to continue calling matched routes
-  * Added mime type for _cache.manifest_ files.
-  * Changed _compiler_ middleware to use async require
-  * Changed session api, stores now only require `#get()`, and `#set()`
-  * Fixed _cacheManifest_ by adding `utils.find()` back
-
-0.2.0 / 2010-07-01
-==================
-
-  * Added calls to `Session()` casts the given object as a `Session` instance
-  * Added passing of `next()` to _router_ callbacks. Closes #46
-  * Changed; `MemoryStore#destroy()` removes `req.session`
-  * Changed `res.redirect("back")` to default to "/" when Referr?er is not present
-  * Fixed _staticProvider_ urlencoded paths issue. Closes #47
-  * Fixed _staticProvider_ middleware responding to **GET** requests
-  * Fixed _jsonrpc_ middleware `Accept` header check. Closes #43
-  * Fixed _logger_ format option
-  * Fixed typo in _compiler_ middleware preventing the _dest_ option from working
-
-0.1.0 / 2010-06-25
-==================
-
-  * Revamped the api, view the [Connect documentation](http://extjs.github.com/Connect/index.html#Middleware-Authoring) for more info (hover on the right for menu)
-  * Added [extended api docs](http://extjs.github.com/Connect/api.html)
-  * Added docs for several more middleware layers
-  * Added `connect.Server#use()`
-  * Added _compiler_ middleware which provides arbitrary static compilation
-  * Added `req.originalUrl`
-  * Removed _blog_ example
-  * Removed _sass_ middleware (use _compiler_)
-  * Removed _less_ middleware (use _compiler_)
-  * Renamed middleware to be camelcase, _body-decoder_ is now _bodyDecoder_ etc.
-  * Fixed `req.url` mutation bug when matching `connect.Server#use()` routes
-  * Fixed `mkdir -p` implementation used in _bin/connect_. Closes #39
-  * Fixed bug in _bodyDecoder_ throwing exceptions on request empty bodies
-  * `make install` installing lib to $LIB_PREFIX aka $HOME/.node_libraries
-
-0.0.6 / 2010-06-22
-==================
-
-  * Added _static_ middleware usage example
-  * Added support for regular expressions as paths for _router_
-  * Added `util.merge()`
-  * Increased performance of _static_ by ~ 200 rps
-  * Renamed the _rest_ middleware to _router_
-  * Changed _rest_ api to accept a callback function
-  * Removed _router_ middleware
-  * Removed _proto.js_, only `Object#forEach()` remains
-
-0.0.5 / 2010-06-21
-==================
-
-  * Added Server#use() which contains the Layer normalization logic
-  * Added documentation for several middleware
-  * Added several new examples
-  * Added _less_ middleware
-  * Added _repl_ middleware
-  * Added _vhost_ middleware
-  * Added _flash_ middleware
-  * Added _cookie_ middleware
-  * Added _session_ middleware
-  * Added `utils.htmlEscape()`
-  * Added `utils.base64Decode()`
-  * Added `utils.base64Encode()`
-  * Added `utils.uid()`
-  * Added bin/connect app path and --config path support for .js suffix, although optional. Closes #26
-  * Moved mime code to `utils.mime`, ex `utils.mime.types`, and `utils.mime.type()`
-  * Renamed req.redirect() to res.redirect(). Closes #29
-  * Fixed _sass_ 404 on **ENOENT**
-  * Fixed +new Date duplication. Closes #24
-
-0.0.4 / 2010-06-16
-==================
-
-  * Added workerPidfile() to bin/connect
-  * Added --workers support to bin/connect stop and status commands
-  * Added _redirect_ middleware
-  * Added better --config support to bin/connect. All flags can be utilized
-  * Added auto-detection of _./config.js_
-  * Added config example
-  * Added `net.Server` support to bin/connect
-  * Writing worker pids relative to `env.pidfile`
-  * s/parseQuery/parse/g
-  * Fixed npm support
-
-0.0.3 / 2010-06-16
-==================
-
-  * Fixed node dependency in package.json, now _">= 0.1.98-0"_ to support __HEAD__
-
-0.0.2 / 2010-06-15
-==================
-
-  * Added `-V, --version` to bin/connect
-  * Added `utils.parseCookie()`
-  * Added `utils.serializeCookie()`
-  * Added `utils.toBoolean()`
-  * Added _sass_ middleware
-  * Added _cookie_ middleware
-  * Added _format_ middleware
-  * Added _lint_ middleware
-  * Added _rest_ middleware
-  * Added _./package.json_ (npm install connect)
-  * Added `handleError()` support
-  * Added `process.connectEnv`
-  * Added custom log format support to _log_ middleware
-  * Added arbitrary env variable support to bin/connect (ext: --logFormat ":method :url")
-  * Added -w, --workers to bin/connect
-  * Added bin/connect support for --user NAME and --group NAME
-  * Fixed url re-writing support
-
-0.0.1 / 2010-06-03
-==================
-
-  * Initial release
-

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/connect/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/connect/LICENSE b/node_modules/connect/LICENSE
deleted file mode 100644
index 9c27617..0000000
--- a/node_modules/connect/LICENSE
+++ /dev/null
@@ -1,25 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2010 Sencha Inc.
-Copyright (c) 2011 LearnBoost
-Copyright (c) 2011-2014 TJ Holowaychuk
-Copyright (c) 2015 Douglas Christopher Wilson
-
-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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/connect/README.md
----------------------------------------------------------------------
diff --git a/node_modules/connect/README.md b/node_modules/connect/README.md
deleted file mode 100644
index c524e49..0000000
--- a/node_modules/connect/README.md
+++ /dev/null
@@ -1,289 +0,0 @@
-# Connect
-
-[![NPM Version][npm-image]][npm-url]
-[![NPM Downloads][downloads-image]][downloads-url]
-[![Build Status][travis-image]][travis-url]
-[![Test Coverage][coveralls-image]][coveralls-url]
-[![Gratipay][gratipay-image]][gratipay-url]
-
-  Connect is an extensible HTTP server framework for [node](http://nodejs.org) using "plugins" known as _middleware_.
-
-```js
-var connect = require('connect');
-var http = require('http');
-
-var app = connect();
-
-// gzip/deflate outgoing responses
-var compression = require('compression');
-app.use(compression());
-
-// store session state in browser cookie
-var cookieSession = require('cookie-session');
-app.use(cookieSession({
-    keys: ['secret1', 'secret2']
-}));
-
-// parse urlencoded request bodies into req.body
-var bodyParser = require('body-parser');
-app.use(bodyParser.urlencoded({extended: false}));
-
-// respond to all requests
-app.use(function(req, res){
-  res.end('Hello from Connect!\n');
-});
-
-//create node.js http server and listen on port
-http.createServer(app).listen(3000);
-```
-
-## Getting Started
-
-Connect is a simple framework to glue together various "middleware" to handle requests.
-
-### Install Connect
-
-```sh
-$ npm install connect
-```
-
-### Create an app
-
-The main component is a Connect "app". This will store all the middleware
-added and is, itself, a function.
-
-```js
-var app = connect();
-```
-
-### Use middleware
-
-The core of Connect is "using" middleware. Middleware are added as a "stack"
-where incoming requests will execute each middleware one-by-one until a middleware
-does not call `next()` within it.
-
-```js
-app.use(function middleware1(req, res, next) {
-  // middleware 1
-  next();
-});
-app.use(function middleware2(req, res, next) {
-  // middleware 2
-  next();
-});
-```
-
-### Mount middleware
-
-The `.use()` method also takes an optional path string that is matched against
-the beginning of the incoming request URL. This allows for basic routing.
-
-```js
-app.use('/foo', function fooMiddleware(req, res, next) {
-  // req.url starts with "/foo"
-  next();
-});
-app.use('/bar', function barMiddleware(req, res, next) {
-  // req.url starts with "/bar"
-  next();
-});
-```
-
-### Error middleware
-
-There are special cases of "error-handling" middleware. There are middleware
-where the function takes exactly 4 arguments. When a middleware passes an error
-to `next`, the app will proceed to look for the error middleware that was declared
-after that middleware and invoke it, skipping any error middleware above that
-middleware and any non-error middleware below.
-
-```js
-// regular middleware
-app.use(function (req, res, next) {
-  // i had an error
-  next(new Error('boom!'));
-});
-
-// error middleware for errors that occurred in middleware
-// declared before this
-app.use(function onerror(err, req, res, next) {
-  // an error occurred!
-});
-```
-
-### Create a server from the app
-
-The last step is to actually use the Connect app in a server. The `.listen()` method
-is a convenience to start a HTTP server (and is identical to the `http.Server`'s `listen`
-method in the version of Node.js you are running).
-
-```js
-var server = app.listen(port);
-```
-
-The app itself is really just a function with three arguments, so it can also be handed
-to `.createServer()` in Node.js.
-
-```js
-var server = http.createServer(app);
-```
-
-## Middleware
-
-These middleware and libraries are officially supported by the Connect/Express team:
-
-  - [body-parser](https://www.npmjs.com/package/body-parser) - previous `bodyParser`, `json`, and `urlencoded`. You may also be interested in:
-    - [body](https://www.npmjs.com/package/body)
-    - [co-body](https://www.npmjs.com/package/co-body)
-    - [raw-body](https://www.npmjs.com/package/raw-body)
-  - [compression](https://www.npmjs.com/package/compression) - previously `compress`
-  - [connect-timeout](https://www.npmjs.com/package/connect-timeout) - previously `timeout`
-  - [cookie-parser](https://www.npmjs.com/package/cookie-parser) - previously `cookieParser`
-  - [cookie-session](https://www.npmjs.com/package/cookie-session) - previously `cookieSession`
-  - [csurf](https://www.npmjs.com/package/csurf) - previously `csrf`
-  - [errorhandler](https://www.npmjs.com/package/errorhandler) - previously `error-handler`
-  - [express-session](https://www.npmjs.com/package/express-session) - previously `session`
-  - [method-override](https://www.npmjs.com/package/method-override) - previously `method-override`
-  - [morgan](https://www.npmjs.com/package/morgan) - previously `logger`
-  - [response-time](https://www.npmjs.com/package/response-time) - previously `response-time`
-  - [serve-favicon](https://www.npmjs.com/package/serve-favicon) - previously `favicon`
-  - [serve-index](https://www.npmjs.com/package/serve-index) - previously `directory`
-  - [serve-static](https://www.npmjs.com/package/serve-static) - previously `static`
-  - [vhost](https://www.npmjs.com/package/vhost) - previously `vhost`
-
-Most of these are exact ports of their Connect 2.x equivalents. The primary exception is `cookie-session`.
-
-Some middleware previously included with Connect are no longer supported by the Connect/Express team, are replaced by an alternative module, or should be superseded by a better module. Use one of these alternatives instead:
-
-  - `cookieParser`
-    - [cookies](https://www.npmjs.com/package/cookies) and [keygrip](https://www.npmjs.com/package/keygrip)
-  - `limit`
-    - [raw-body](https://www.npmjs.com/package/raw-body)
-  - `multipart`
-    - [connect-multiparty](https://www.npmjs.com/package/connect-multiparty)
-    - [connect-busboy](https://www.npmjs.com/package/connect-busboy)
-  - `query`
-    - [qs](https://www.npmjs.com/package/qs)
-  - `staticCache`
-    - [st](https://www.npmjs.com/package/st)
-    - [connect-static](https://www.npmjs.com/package/connect-static)
-
-Checkout [http-framework](https://github.com/Raynos/http-framework/wiki/Modules) for many other compatible middleware! 
-
-## API
-
-The Connect API is very minimalist, enough to create an app and add a chain
-of middleware.
-
-When the `connect` module is required, a function is returned that will construct
-a new app when called.
-
-```js
-// require module
-var connect = require('connect')
-
-// create app
-var app = connect()
-```
-
-### app(req, res[, next])
-
-The `app` itself is a function. This is just an alias to `app.handle`.
-
-### app.handle(req, res[, out])
-
-Calling the function will run the middleware stack against the given Node.js
-http request (`req`) and response (`res`) objects. An optional function `out`
-can be provided that will be called if the request (or error) was not handled
-by the middleware stack.
-
-### app.listen([...])
-
-Start the app listening for requests. This method will internally create a Node.js
-HTTP server and call `.listen()` on it.
-
-This is an alias to the `server.listen()` method in the version of Node.js running,
-so consult the Node.js documentation for all the different variations. The most
-common signature is [`app.listen(port)`](https://nodejs.org/dist/latest-v6.x/docs/api/http.html#http_server_listen_port_hostname_backlog_callback).
-
-### app.use(fn)
-
-Use a function on the app, where the function represents a middleware. The function
-will be invoked for every request in the order that `app.use` is called. The function
-is called with three arguments:
-
-```js
-app.use(function (req, res, next) {
-  // req is the Node.js http request object
-  // res is the Node.js http response object
-  // next is a function to call to invoke the next middleware
-})
-```
-
-In addition to a plan function, the `fn` argument can also be a Node.js HTTP server
-instance or another Connect app instance.
-
-### app.use(route, fn)
-
-Use a function on the app, where the function represents a middleware. The function
-will be invoked for every request in which the URL (`req.url` property) starts with
-the given `route` string in the order that `app.use` is called. The function is
-called with three arguments:
-
-```js
-app.use('/foo', function (req, res, next) {
-  // req is the Node.js http request object
-  // res is the Node.js http response object
-  // next is a function to call to invoke the next middleware
-})
-```
-
-In addition to a plan function, the `fn` argument can also be a Node.js HTTP server
-instance or another Connect app instance.
-
-The `route` is always terminated at a path separator (`/`) or a dot (`.`) character.
-This means the given routes `/foo/` and `/foo` are the same and both will match requests
-with the URLs `/foo`, `/foo/`, `/foo/bar`, and `/foo.bar`, but not match a request with
-the URL `/foobar`.
-
-The `route` is matched in a case-insensitive manor.
-
-In order to make middleware easier to write to be agnostic of the `route`, when the
-`fn` is invoked, the `req.url` will be altered to remove the `route` part (and the
-original will be available as `req.originalUrl`). For example, if `fn` is used at the
-route `/foo`, the request for `/foo/bar` will invoke `fn` with `req.url === '/foo'`
-and `req.originalUrl === '/foo/bar'`.
-
-## Running Tests
-
-```bash
-npm install
-npm test
-```
-
-## Contributors
-
- https://github.com/senchalabs/connect/graphs/contributors
-
-## Node Compatibility
-
-  - Connect `< 1.x` - node `0.2`
-  - Connect `1.x` - node `0.4`
-  - Connect `< 2.8` - node `0.6`
-  - Connect `>= 2.8 < 3` - node `0.8`
-  - Connect `>= 3` - node `0.10`, `0.12`, `4.x`, `5.x`, `6.x`, `7.x`; io.js `1.x`, `2.x`, `3.x`
-
-## License
-
-[MIT](LICENSE)
-
-[npm-image]: https://img.shields.io/npm/v/connect.svg
-[npm-url]: https://npmjs.org/package/connect
-[travis-image]: https://img.shields.io/travis/senchalabs/connect/master.svg
-[travis-url]: https://travis-ci.org/senchalabs/connect
-[coveralls-image]: https://img.shields.io/coveralls/senchalabs/connect/master.svg
-[coveralls-url]: https://coveralls.io/r/senchalabs/connect
-[downloads-image]: https://img.shields.io/npm/dm/connect.svg
-[downloads-url]: https://npmjs.org/package/connect
-[gratipay-image]: https://img.shields.io/gratipay/dougwilson.svg
-[gratipay-url]: https://www.gratipay.com/dougwilson/



[41/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/dist/ajv.bundle.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/dist/ajv.bundle.js b/node_modules/ajv/dist/ajv.bundle.js
deleted file mode 100644
index 1b76cb9..0000000
--- a/node_modules/ajv/dist/ajv.bundle.js
+++ /dev/null
@@ -1,8041 +0,0 @@
-(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Ajv = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
-'use strict';
-
-module.exports = {
-  setup: setupAsync,
-  compile: compileAsync
-};
-
-
-var util = require('./compile/util');
-
-var ASYNC = {
-  '*': checkGenerators,
-  'co*': checkGenerators,
-  'es7': checkAsyncFunction
-};
-
-var TRANSPILE = {
-  'nodent': getNodent,
-  'regenerator': getRegenerator
-};
-
-var MODES = [
-  { async: 'co*' },
-  { async: 'es7', transpile: 'nodent' },
-  { async: 'co*', transpile: 'regenerator' }
-];
-
-
-var regenerator, nodent;
-
-
-function setupAsync(opts, required) {
-  if (required !== false) required = true;
-  var async = opts.async
-    , transpile = opts.transpile
-    , check;
-
-  switch (typeof transpile) {
-    case 'string':
-      var get = TRANSPILE[transpile];
-      if (!get) throw new Error('bad transpiler: ' + transpile);
-      return (opts._transpileFunc = get(opts, required));
-    case 'undefined':
-    case 'boolean':
-      if (typeof async == 'string') {
-        check = ASYNC[async];
-        if (!check) throw new Error('bad async mode: ' + async);
-        return (opts.transpile = check(opts, required));
-      }
-
-      for (var i=0; i<MODES.length; i++) {
-        var _opts = MODES[i];
-        if (setupAsync(_opts, false)) {
-          util.copy(_opts, opts);
-          return opts.transpile;
-        }
-      }
-      /* istanbul ignore next */
-      throw new Error('generators, nodent and regenerator are not available');
-    case 'function':
-      return (opts._transpileFunc = opts.transpile);
-    default:
-      throw new Error('bad transpiler: ' + transpile);
-  }
-}
-
-
-function checkGenerators(opts, required) {
-  /* jshint evil: true */
-  try {
-    (new Function('(function*(){})()'))();
-    return true;
-  } catch(e) {
-    /* istanbul ignore next */
-    if (required) throw new Error('generators not supported');
-  }
-}
-
-
-function checkAsyncFunction(opts, required) {
-  /* jshint evil: true */
-  try {
-    (new Function('(async function(){})()'))();
-    /* istanbul ignore next */
-    return true;
-  } catch(e) {
-    if (required) throw new Error('es7 async functions not supported');
-  }
-}
-
-
-function getRegenerator(opts, required) {
-  try {
-    if (!regenerator) {
-      var name = 'regenerator';
-      regenerator = require(name);
-      regenerator.runtime();
-    }
-    if (!opts.async || opts.async === true)
-      opts.async = 'es7';
-    return regeneratorTranspile;
-  } catch(e) {
-    /* istanbul ignore next */
-    if (required) throw new Error('regenerator not available');
-  }
-}
-
-
-function regeneratorTranspile(code) {
-  return regenerator.compile(code).code;
-}
-
-
-function getNodent(opts, required) {
-  /* jshint evil: true */
-  try {
-    if (!nodent) {
-      var name = 'nodent';
-      nodent = require(name)({ log: false, dontInstallRequireHook: true });
-    }
-    if (opts.async != 'es7') {
-      if (opts.async && opts.async !== true) console.warn('nodent transpiles only es7 async functions');
-      opts.async = 'es7';
-    }
-    return nodentTranspile;
-  } catch(e) {
-    /* istanbul ignore next */
-    if (required) throw new Error('nodent not available');
-  }
-}
-
-
-function nodentTranspile(code) {
-  return nodent.compile(code, '', { promises: true, sourcemap: false }).code;
-}
-
-
-/**
- * Creates validating function for passed schema with asynchronous loading of missing schemas.
- * `loadSchema` option should be a function that accepts schema uri and node-style callback.
- * @this  Ajv
- * @param {Object}   schema schema object
- * @param {Function} callback node-style callback, it is always called with 2 parameters: error (or null) and validating function.
- */
-function compileAsync(schema, callback) {
-  /* eslint no-shadow: 0 */
-  /* jshint validthis: true */
-  var schemaObj;
-  var self = this;
-  try {
-    schemaObj = this._addSchema(schema);
-  } catch(e) {
-    setTimeout(function() { callback(e); });
-    return;
-  }
-  if (schemaObj.validate) {
-    setTimeout(function() { callback(null, schemaObj.validate); });
-  } else {
-    if (typeof this._opts.loadSchema != 'function')
-      throw new Error('options.loadSchema should be a function');
-    _compileAsync(schema, callback, true);
-  }
-
-
-  function _compileAsync(schema, callback, firstCall) {
-    var validate;
-    try { validate = self.compile(schema); }
-    catch(e) {
-      if (e.missingSchema) loadMissingSchema(e);
-      else deferCallback(e);
-      return;
-    }
-    deferCallback(null, validate);
-
-    function loadMissingSchema(e) {
-      var ref = e.missingSchema;
-      if (self._refs[ref] || self._schemas[ref])
-        return callback(new Error('Schema ' + ref + ' is loaded but ' + e.missingRef + ' cannot be resolved'));
-      var _callbacks = self._loadingSchemas[ref];
-      if (_callbacks) {
-        if (typeof _callbacks == 'function')
-          self._loadingSchemas[ref] = [_callbacks, schemaLoaded];
-        else
-          _callbacks[_callbacks.length] = schemaLoaded;
-      } else {
-        self._loadingSchemas[ref] = schemaLoaded;
-        self._opts.loadSchema(ref, function (err, sch) {
-          var _callbacks = self._loadingSchemas[ref];
-          delete self._loadingSchemas[ref];
-          if (typeof _callbacks == 'function') {
-            _callbacks(err, sch);
-          } else {
-            for (var i=0; i<_callbacks.length; i++)
-              _callbacks[i](err, sch);
-          }
-        });
-      }
-
-      function schemaLoaded(err, sch) {
-        if (err) return callback(err);
-        if (!(self._refs[ref] || self._schemas[ref])) {
-          try {
-            self.addSchema(sch, ref);
-          } catch(e) {
-            callback(e);
-            return;
-          }
-        }
-        _compileAsync(schema, callback);
-      }
-    }
-
-    function deferCallback(err, validate) {
-      if (firstCall) setTimeout(function() { callback(err, validate); });
-      else return callback(err, validate);
-    }
-  }
-}
-
-},{"./compile/util":11}],2:[function(require,module,exports){
-'use strict';
-
-
-var Cache = module.exports = function Cache() {
-  this._cache = {};
-};
-
-
-Cache.prototype.put = function Cache_put(key, value) {
-  this._cache[key] = value;
-};
-
-
-Cache.prototype.get = function Cache_get(key) {
-  return this._cache[key];
-};
-
-
-Cache.prototype.del = function Cache_del(key) {
-  delete this._cache[key];
-};
-
-
-Cache.prototype.clear = function Cache_clear() {
-  this._cache = {};
-};
-
-},{}],3:[function(require,module,exports){
-'use strict';
-
-//all requires must be explicit because browserify won't work with dynamic requires
-module.exports = {
-  '$ref': require('../dotjs/ref'),
-  allOf: require('../dotjs/allOf'),
-  anyOf: require('../dotjs/anyOf'),
-  dependencies: require('../dotjs/dependencies'),
-  'enum': require('../dotjs/enum'),
-  format: require('../dotjs/format'),
-  items: require('../dotjs/items'),
-  maximum: require('../dotjs/_limit'),
-  minimum: require('../dotjs/_limit'),
-  maxItems: require('../dotjs/_limitItems'),
-  minItems: require('../dotjs/_limitItems'),
-  maxLength: require('../dotjs/_limitLength'),
-  minLength: require('../dotjs/_limitLength'),
-  maxProperties: require('../dotjs/_limitProperties'),
-  minProperties: require('../dotjs/_limitProperties'),
-  multipleOf: require('../dotjs/multipleOf'),
-  not: require('../dotjs/not'),
-  oneOf: require('../dotjs/oneOf'),
-  pattern: require('../dotjs/pattern'),
-  properties: require('../dotjs/properties'),
-  required: require('../dotjs/required'),
-  uniqueItems: require('../dotjs/uniqueItems'),
-  validate: require('../dotjs/validate')
-};
-
-},{"../dotjs/_limit":14,"../dotjs/_limitItems":15,"../dotjs/_limitLength":16,"../dotjs/_limitProperties":17,"../dotjs/allOf":18,"../dotjs/anyOf":19,"../dotjs/dependencies":22,"../dotjs/enum":23,"../dotjs/format":24,"../dotjs/items":25,"../dotjs/multipleOf":26,"../dotjs/not":27,"../dotjs/oneOf":28,"../dotjs/pattern":29,"../dotjs/properties":31,"../dotjs/ref":32,"../dotjs/required":33,"../dotjs/uniqueItems":35,"../dotjs/validate":36}],4:[function(require,module,exports){
-'use strict';
-
-/*eslint complexity: 0*/
-
-module.exports = function equal(a, b) {
-  if (a === b) return true;
-
-  var arrA = Array.isArray(a)
-    , arrB = Array.isArray(b)
-    , i;
-
-  if (arrA && arrB) {
-    if (a.length != b.length) return false;
-    for (i = 0; i < a.length; i++)
-      if (!equal(a[i], b[i])) return false;
-    return true;
-  }
-
-  if (arrA != arrB) return false;
-
-  if (a && b && typeof a === 'object' && typeof b === 'object') {
-    var keys = Object.keys(a);
-    if (keys.length !== Object.keys(b).length) return false;
-
-    var dateA = a instanceof Date
-      , dateB = b instanceof Date;
-    if (dateA && dateB) return a.getTime() == b.getTime();
-    if (dateA != dateB) return false;
-
-    var regexpA = a instanceof RegExp
-      , regexpB = b instanceof RegExp;
-    if (regexpA && regexpB) return a.toString() == b.toString();
-    if (regexpA != regexpB) return false;
-
-    for (i = 0; i < keys.length; i++)
-      if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
-
-    for (i = 0; i < keys.length; i++)
-      if(!equal(a[keys[i]], b[keys[i]])) return false;
-
-    return true;
-  }
-
-  return false;
-};
-
-},{}],5:[function(require,module,exports){
-'use strict';
-
-var util = require('./util');
-
-var DATE = /^\d\d\d\d-(\d\d)-(\d\d)$/;
-var DAYS = [0,31,29,31,30,31,30,31,31,30,31,30,31];
-var TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i;
-var HOSTNAME = /^[0-9a-z](?:(?:[-0-9a-z]{0,61})?[0-9a-z])?(\.[0-9a-z](?:(?:[-0-9a-z]{0,61})?[0-9a-z])?)*$/i;
-var URI = /^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{
 2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?(?:\#(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?$/i;
-var UUID = /^(?:urn\:uuid\:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;
-var JSON_POINTER = /^(?:\/(?:[^~\/]|~0|~1)*)*$|^\#(?:\/(?:[a-z0-9_\-\.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;
-var RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:\#|(?:\/(?:[^~\/]|~0|~1)*)*)$/;
-
-
-module.exports = formats;
-
-function formats(mode) {
-  mode = mode == 'full' ? 'full' : 'fast';
-  var formatDefs = util.copy(formats[mode]);
-  for (var fName in formats.compare) {
-    formatDefs[fName] = {
-      validate: formatDefs[fName],
-      compare: formats.compare[fName]
-    };
-  }
-  return formatDefs;
-}
-
-
-formats.fast = {
-  // date: http://tools.ietf.org/html/rfc3339#section-5.6
-  date: /^\d\d\d\d-[0-1]\d-[0-3]\d$/,
-  // date-time: http://tools.ietf.org/html/rfc3339#section-5.6
-  time: /^[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)?$/i,
-  'date-time': /^\d\d\d\d-[0-1]\d-[0-3]\d[t\s][0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)$/i,
-  // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js
-  uri: /^(?:[a-z][a-z0-9+-.]*)?(?:\:|\/)\/?[^\s]*$/i,
-  // email (sources from jsen validator):
-  // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363
-  // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')
-  email: /^[a-z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,
-  hostname: HOSTNAME,
-  // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html
-  ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,
-  // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses
-  ipv6: /^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1
 -9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,
-  regex: regex,
-  // uuid: http://tools.ietf.org/html/rfc4122
-  uuid: UUID,
-  // JSON-pointer: https://tools.ietf.org/html/rfc6901
-  // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A
-  'json-pointer': JSON_POINTER,
-  // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00
-  'relative-json-pointer': RELATIVE_JSON_POINTER
-};
-
-
-formats.full = {
-  date: date,
-  time: time,
-  'date-time': date_time,
-  uri: uri,
-  email: /^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&''*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,
-  hostname: hostname,
-  ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,
-  ipv6: /^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1
 -9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,
-  regex: regex,
-  uuid: UUID,
-  'json-pointer': JSON_POINTER,
-  'relative-json-pointer': RELATIVE_JSON_POINTER
-};
-
-
-formats.compare = {
-  date: compareDate,
-  time: compareTime,
-  'date-time': compareDateTime
-};
-
-
-function date(str) {
-  // full-date from http://tools.ietf.org/html/rfc3339#section-5.6
-  var matches = str.match(DATE);
-  if (!matches) return false;
-
-  var month = +matches[1];
-  var day = +matches[2];
-  return month >= 1 && month <= 12 && day >= 1 && day <= DAYS[month];
-}
-
-
-function time(str, full) {
-  var matches = str.match(TIME);
-  if (!matches) return false;
-
-  var hour = matches[1];
-  var minute = matches[2];
-  var second = matches[3];
-  var timeZone = matches[5];
-  return hour <= 23 && minute <= 59 && second <= 59 && (!full || timeZone);
-}
-
-
-var DATE_TIME_SEPARATOR = /t|\s/i;
-function date_time(str) {
-  // http://tools.ietf.org/html/rfc3339#section-5.6
-  var dateTime = str.split(DATE_TIME_SEPARATOR);
-  return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);
-}
-
-
-function hostname(str) {
-  // https://tools.ietf.org/html/rfc1034#section-3.5
-  // https://tools.ietf.org/html/rfc1123#section-2
-  return str.length <= 255 && HOSTNAME.test(str);
-}
-
-
-var NOT_URI_FRAGMENT = /\/|\:/;
-function uri(str) {
-  // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required "."
-  return NOT_URI_FRAGMENT.test(str) && URI.test(str);
-}
-
-
-function regex(str) {
-  try {
-    new RegExp(str);
-    return true;
-  } catch(e) {
-    return false;
-  }
-}
-
-
-function compareDate(d1, d2) {
-  if (!(d1 && d2)) return;
-  if (d1 > d2) return 1;
-  if (d1 < d2) return -1;
-  if (d1 === d2) return 0;
-}
-
-
-function compareTime(t1, t2) {
-  if (!(t1 && t2)) return;
-  t1 = t1.match(TIME);
-  t2 = t2.match(TIME);
-  if (!(t1 && t2)) return;
-  t1 = t1[1] + t1[2] + t1[3] + (t1[4]||'');
-  t2 = t2[1] + t2[2] + t2[3] + (t2[4]||'');
-  if (t1 > t2) return 1;
-  if (t1 < t2) return -1;
-  if (t1 === t2) return 0;
-}
-
-
-function compareDateTime(dt1, dt2) {
-  if (!(dt1 && dt2)) return;
-  dt1 = dt1.split(DATE_TIME_SEPARATOR);
-  dt2 = dt2.split(DATE_TIME_SEPARATOR);
-  var res = compareDate(dt1[0], dt2[0]);
-  if (res === undefined) return;
-  return res || compareTime(dt1[1], dt2[1]);
-}
-
-},{"./util":11}],6:[function(require,module,exports){
-'use strict';
-
-var resolve = require('./resolve')
-  , util = require('./util')
-  , stableStringify = require('json-stable-stringify')
-  , async = require('../async');
-
-var beautify;
-
-function loadBeautify(){
-  if (beautify === undefined) {
-    var name = 'js-beautify';
-    try { beautify = require(name).js_beautify; }
-    catch(e) { beautify = false; }
-  }
-}
-
-var validateGenerator = require('../dotjs/validate');
-
-/**
- * Functions below are used inside compiled validations function
- */
-
-var co = require('co');
-var ucs2length = util.ucs2length;
-var equal = require('./equal');
-
-// this error is thrown by async schemas to return validation errors via exception
-var ValidationError = require('./validation_error');
-
-module.exports = compile;
-
-
-/**
- * Compiles schema to validation function
- * @this   Ajv
- * @param  {Object} schema schema object
- * @param  {Object} root object with information about the root schema for this schema
- * @param  {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution
- * @param  {String} baseId base ID for IDs in the schema
- * @return {Function} validation function
- */
-function compile(schema, root, localRefs, baseId) {
-  /* jshint validthis: true, evil: true */
-  /* eslint no-shadow: 0 */
-  var self = this
-    , opts = this._opts
-    , refVal = [ undefined ]
-    , refs = {}
-    , patterns = []
-    , patternsHash = {}
-    , defaults = []
-    , defaultsHash = {}
-    , customRules = []
-    , keepSourceCode = opts.sourceCode !== false;
-
-  root = root || { schema: schema, refVal: refVal, refs: refs };
-
-  var c = checkCompiling.call(this, schema, root, baseId);
-  var compilation = this._compilations[c.index];
-  if (c.compiling) return (compilation.callValidate = callValidate);
-
-  var formats = this._formats;
-  var RULES = this.RULES;
-
-  try {
-    var v = localCompile(schema, root, localRefs, baseId);
-    compilation.validate = v;
-    var cv = compilation.callValidate;
-    if (cv) {
-      cv.schema = v.schema;
-      cv.errors = null;
-      cv.refs = v.refs;
-      cv.refVal = v.refVal;
-      cv.root = v.root;
-      cv.$async = v.$async;
-      if (keepSourceCode) cv.sourceCode = v.sourceCode;
-    }
-    return v;
-  } finally {
-    endCompiling.call(this, schema, root, baseId);
-  }
-
-  function callValidate() {
-    var validate = compilation.validate;
-    var result = validate.apply(null, arguments);
-    callValidate.errors = validate.errors;
-    return result;
-  }
-
-  function localCompile(_schema, _root, localRefs, baseId) {
-    var isRoot = !_root || (_root && _root.schema == _schema);
-    if (_root.schema != root.schema)
-      return compile.call(self, _schema, _root, localRefs, baseId);
-
-    var $async = _schema.$async === true;
-    if ($async && !opts.transpile) async.setup(opts);
-
-    var sourceCode = validateGenerator({
-      isTop: true,
-      schema: _schema,
-      isRoot: isRoot,
-      baseId: baseId,
-      root: _root,
-      schemaPath: '',
-      errSchemaPath: '#',
-      errorPath: '""',
-      RULES: RULES,
-      validate: validateGenerator,
-      util: util,
-      resolve: resolve,
-      resolveRef: resolveRef,
-      usePattern: usePattern,
-      useDefault: useDefault,
-      useCustomRule: useCustomRule,
-      opts: opts,
-      formats: formats,
-      self: self
-    });
-
-    sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode)
-                   + vars(defaults, defaultCode) + vars(customRules, customRuleCode)
-                   + sourceCode;
-
-    if (opts.beautify) {
-      loadBeautify();
-      /* istanbul ignore else */
-      if (beautify) sourceCode = beautify(sourceCode, opts.beautify);
-      else console.error('"npm install js-beautify" to use beautify option');
-    }
-    // console.log('\n\n\n *** \n', sourceCode);
-    var validate, validateCode
-      , transpile = opts._transpileFunc;
-    try {
-      validateCode = $async && transpile
-                      ? transpile(sourceCode)
-                      : sourceCode;
-
-      var makeValidate = new Function(
-        'self',
-        'RULES',
-        'formats',
-        'root',
-        'refVal',
-        'defaults',
-        'customRules',
-        'co',
-        'equal',
-        'ucs2length',
-        'ValidationError',
-        validateCode
-      );
-
-      validate = makeValidate(
-        self,
-        RULES,
-        formats,
-        root,
-        refVal,
-        defaults,
-        customRules,
-        co,
-        equal,
-        ucs2length,
-        ValidationError
-      );
-
-      refVal[0] = validate;
-    } catch(e) {
-      console.error('Error compiling schema, function code:', validateCode);
-      throw e;
-    }
-
-    validate.schema = _schema;
-    validate.errors = null;
-    validate.refs = refs;
-    validate.refVal = refVal;
-    validate.root = isRoot ? validate : _root;
-    if ($async) validate.$async = true;
-    if (keepSourceCode) validate.sourceCode = sourceCode;
-    if (opts.sourceCode === true) {
-      validate.source = {
-        patterns: patterns,
-        defaults: defaults
-      };
-    }
-
-    return validate;
-  }
-
-  function resolveRef(baseId, ref, isRoot) {
-    ref = resolve.url(baseId, ref);
-    var refIndex = refs[ref];
-    var _refVal, refCode;
-    if (refIndex !== undefined) {
-      _refVal = refVal[refIndex];
-      refCode = 'refVal[' + refIndex + ']';
-      return resolvedRef(_refVal, refCode);
-    }
-    if (!isRoot && root.refs) {
-      var rootRefId = root.refs[ref];
-      if (rootRefId !== undefined) {
-        _refVal = root.refVal[rootRefId];
-        refCode = addLocalRef(ref, _refVal);
-        return resolvedRef(_refVal, refCode);
-      }
-    }
-
-    refCode = addLocalRef(ref);
-    var v = resolve.call(self, localCompile, root, ref);
-    if (!v) {
-      var localSchema = localRefs && localRefs[ref];
-      if (localSchema) {
-        v = resolve.inlineRef(localSchema, opts.inlineRefs)
-            ? localSchema
-            : compile.call(self, localSchema, root, localRefs, baseId);
-      }
-    }
-
-    if (v) {
-      replaceLocalRef(ref, v);
-      return resolvedRef(v, refCode);
-    }
-  }
-
-  function addLocalRef(ref, v) {
-    var refId = refVal.length;
-    refVal[refId] = v;
-    refs[ref] = refId;
-    return 'refVal' + refId;
-  }
-
-  function replaceLocalRef(ref, v) {
-    var refId = refs[ref];
-    refVal[refId] = v;
-  }
-
-  function resolvedRef(refVal, code) {
-    return typeof refVal == 'object'
-            ? { code: code, schema: refVal, inline: true }
-            : { code: code, $async: refVal && refVal.$async };
-  }
-
-  function usePattern(regexStr) {
-    var index = patternsHash[regexStr];
-    if (index === undefined) {
-      index = patternsHash[regexStr] = patterns.length;
-      patterns[index] = regexStr;
-    }
-    return 'pattern' + index;
-  }
-
-  function useDefault(value) {
-    switch (typeof value) {
-      case 'boolean':
-      case 'number':
-        return '' + value;
-      case 'string':
-        return util.toQuotedString(value);
-      case 'object':
-        if (value === null) return 'null';
-        var valueStr = stableStringify(value);
-        var index = defaultsHash[valueStr];
-        if (index === undefined) {
-          index = defaultsHash[valueStr] = defaults.length;
-          defaults[index] = value;
-        }
-        return 'default' + index;
-    }
-  }
-
-  function useCustomRule(rule, schema, parentSchema, it) {
-    var validateSchema = rule.definition.validateSchema;
-    if (validateSchema && self._opts.validateSchema !== false) {
-      var valid = validateSchema(schema);
-      if (!valid) {
-        var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors);
-        if (self._opts.validateSchema == 'log') console.error(message);
-        else throw new Error(message);
-      }
-    }
-
-    var compile = rule.definition.compile
-      , inline = rule.definition.inline
-      , macro = rule.definition.macro;
-
-    var validate;
-    if (compile) {
-      validate = compile.call(self, schema, parentSchema, it);
-    } else if (macro) {
-      validate = macro.call(self, schema, parentSchema, it);
-      if (opts.validateSchema !== false) self.validateSchema(validate, true);
-    } else if (inline) {
-      validate = inline.call(self, it, rule.keyword, schema, parentSchema);
-    } else {
-      validate = rule.definition.validate;
-    }
-
-    var index = customRules.length;
-    customRules[index] = validate;
-
-    return {
-      code: 'customRule' + index,
-      validate: validate
-    };
-  }
-}
-
-
-/**
- * Checks if the schema is currently compiled
- * @this   Ajv
- * @param  {Object} schema schema to compile
- * @param  {Object} root root object
- * @param  {String} baseId base schema ID
- * @return {Object} object with properties "index" (compilation index) and "compiling" (boolean)
- */
-function checkCompiling(schema, root, baseId) {
-  /* jshint validthis: true */
-  var index = compIndex.call(this, schema, root, baseId);
-  if (index >= 0) return { index: index, compiling: true };
-  index = this._compilations.length;
-  this._compilations[index] = {
-    schema: schema,
-    root: root,
-    baseId: baseId
-  };
-  return { index: index, compiling: false };
-}
-
-
-/**
- * Removes the schema from the currently compiled list
- * @this   Ajv
- * @param  {Object} schema schema to compile
- * @param  {Object} root root object
- * @param  {String} baseId base schema ID
- */
-function endCompiling(schema, root, baseId) {
-  /* jshint validthis: true */
-  var i = compIndex.call(this, schema, root, baseId);
-  if (i >= 0) this._compilations.splice(i, 1);
-}
-
-
-/**
- * Index of schema compilation in the currently compiled list
- * @this   Ajv
- * @param  {Object} schema schema to compile
- * @param  {Object} root root object
- * @param  {String} baseId base schema ID
- * @return {Integer} compilation index
- */
-function compIndex(schema, root, baseId) {
-  /* jshint validthis: true */
-  for (var i=0; i<this._compilations.length; i++) {
-    var c = this._compilations[i];
-    if (c.schema == schema && c.root == root && c.baseId == baseId) return i;
-  }
-  return -1;
-}
-
-
-function patternCode(i, patterns) {
-  return 'var pattern' + i + ' = new RegExp(' + util.toQuotedString(patterns[i]) + ');';
-}
-
-
-function defaultCode(i) {
-  return 'var default' + i + ' = defaults[' + i + '];';
-}
-
-
-function refValCode(i, refVal) {
-  return refVal[i] ? 'var refVal' + i + ' = refVal[' + i + '];' : '';
-}
-
-
-function customRuleCode(i) {
-  return 'var customRule' + i + ' = customRules[' + i + '];';
-}
-
-
-function vars(arr, statement) {
-  if (!arr.length) return '';
-  var code = '';
-  for (var i=0; i<arr.length; i++)
-    code += statement(i, arr);
-  return code;
-}
-
-},{"../async":1,"../dotjs/validate":36,"./equal":4,"./resolve":7,"./util":11,"./validation_error":12,"co":47,"json-stable-stringify":48}],7:[function(require,module,exports){
-'use strict';
-
-var url = require('url')
-  , equal = require('./equal')
-  , util = require('./util')
-  , SchemaObject = require('./schema_obj');
-
-module.exports = resolve;
-
-resolve.normalizeId = normalizeId;
-resolve.fullPath = getFullPath;
-resolve.url = resolveUrl;
-resolve.ids = resolveIds;
-resolve.inlineRef = inlineRef;
-resolve.schema = resolveSchema;
-
-/**
- * [resolve and compile the references ($ref)]
- * @this   Ajv
- * @param  {Function} compile reference to schema compilation funciton (localCompile)
- * @param  {Object} root object with information about the root schema for the current schema
- * @param  {String} ref reference to resolve
- * @return {Object|Function} schema object (if the schema can be inlined) or validation function
- */
-function resolve(compile, root, ref) {
-  /* jshint validthis: true */
-  var refVal = this._refs[ref];
-  if (typeof refVal == 'string') {
-    if (this._refs[refVal]) refVal = this._refs[refVal];
-    else return resolve.call(this, compile, root, refVal);
-  }
-
-  refVal = refVal || this._schemas[ref];
-  if (refVal instanceof SchemaObject) {
-    return inlineRef(refVal.schema, this._opts.inlineRefs)
-            ? refVal.schema
-            : refVal.validate || this._compile(refVal);
-  }
-
-  var res = resolveSchema.call(this, root, ref);
-  var schema, v, baseId;
-  if (res) {
-    schema = res.schema;
-    root = res.root;
-    baseId = res.baseId;
-  }
-
-  if (schema instanceof SchemaObject) {
-    v = schema.validate || compile.call(this, schema.schema, root, undefined, baseId);
-  } else if (schema) {
-    v = inlineRef(schema, this._opts.inlineRefs)
-        ? schema
-        : compile.call(this, schema, root, undefined, baseId);
-  }
-
-  return v;
-}
-
-
-/**
- * Resolve schema, its root and baseId
- * @this Ajv
- * @param  {Object} root root object with properties schema, refVal, refs
- * @param  {String} ref  reference to resolve
- * @return {Object} object with properties schema, root, baseId
- */
-function resolveSchema(root, ref) {
-  /* jshint validthis: true */
-  var p = url.parse(ref, false, true)
-    , refPath = _getFullPath(p)
-    , baseId = getFullPath(root.schema.id);
-  if (refPath !== baseId) {
-    var id = normalizeId(refPath);
-    var refVal = this._refs[id];
-    if (typeof refVal == 'string') {
-      return resolveRecursive.call(this, root, refVal, p);
-    } else if (refVal instanceof SchemaObject) {
-      if (!refVal.validate) this._compile(refVal);
-      root = refVal;
-    } else {
-      refVal = this._schemas[id];
-      if (refVal instanceof SchemaObject) {
-        if (!refVal.validate) this._compile(refVal);
-        if (id == normalizeId(ref))
-          return { schema: refVal, root: root, baseId: baseId };
-        root = refVal;
-      } else {
-        return;
-      }
-    }
-    if (!root.schema) return;
-    baseId = getFullPath(root.schema.id);
-  }
-  return getJsonPointer.call(this, p, baseId, root.schema, root);
-}
-
-
-/* @this Ajv */
-function resolveRecursive(root, ref, parsedRef) {
-  /* jshint validthis: true */
-  var res = resolveSchema.call(this, root, ref);
-  if (res) {
-    var schema = res.schema;
-    var baseId = res.baseId;
-    root = res.root;
-    if (schema.id) baseId = resolveUrl(baseId, schema.id);
-    return getJsonPointer.call(this, parsedRef, baseId, schema, root);
-  }
-}
-
-
-var PREVENT_SCOPE_CHANGE = util.toHash(['properties', 'patternProperties', 'enum', 'dependencies', 'definitions']);
-/* @this Ajv */
-function getJsonPointer(parsedRef, baseId, schema, root) {
-  /* jshint validthis: true */
-  parsedRef.hash = parsedRef.hash || '';
-  if (parsedRef.hash.slice(0,2) != '#/') return;
-  var parts = parsedRef.hash.split('/');
-
-  for (var i = 1; i < parts.length; i++) {
-    var part = parts[i];
-    if (part) {
-      part = util.unescapeFragment(part);
-      schema = schema[part];
-      if (!schema) break;
-      if (schema.id && !PREVENT_SCOPE_CHANGE[part]) baseId = resolveUrl(baseId, schema.id);
-      if (schema.$ref) {
-        var $ref = resolveUrl(baseId, schema.$ref);
-        var res = resolveSchema.call(this, root, $ref);
-        if (res) {
-          schema = res.schema;
-          root = res.root;
-          baseId = res.baseId;
-        }
-      }
-    }
-  }
-  if (schema && schema != root.schema)
-    return { schema: schema, root: root, baseId: baseId };
-}
-
-
-var SIMPLE_INLINED = util.toHash([
-  'type', 'format', 'pattern',
-  'maxLength', 'minLength',
-  'maxProperties', 'minProperties',
-  'maxItems', 'minItems',
-  'maximum', 'minimum',
-  'uniqueItems', 'multipleOf',
-  'required', 'enum'
-]);
-function inlineRef(schema, limit) {
-  if (limit === false) return false;
-  if (limit === undefined || limit === true) return checkNoRef(schema);
-  else if (limit) return countKeys(schema) <= limit;
-}
-
-
-function checkNoRef(schema) {
-  var item;
-  if (Array.isArray(schema)) {
-    for (var i=0; i<schema.length; i++) {
-      item = schema[i];
-      if (typeof item == 'object' && !checkNoRef(item)) return false;
-    }
-  } else {
-    for (var key in schema) {
-      if (key == '$ref') return false;
-      item = schema[key];
-      if (typeof item == 'object' && !checkNoRef(item)) return false;
-    }
-  }
-  return true;
-}
-
-
-function countKeys(schema) {
-  var count = 0, item;
-  if (Array.isArray(schema)) {
-    for (var i=0; i<schema.length; i++) {
-      item = schema[i];
-      if (typeof item == 'object') count += countKeys(item);
-      if (count == Infinity) return Infinity;
-    }
-  } else {
-    for (var key in schema) {
-      if (key == '$ref') return Infinity;
-      if (SIMPLE_INLINED[key]) {
-        count++;
-      } else {
-        item = schema[key];
-        if (typeof item == 'object') count += countKeys(item) + 1;
-        if (count == Infinity) return Infinity;
-      }
-    }
-  }
-  return count;
-}
-
-
-function getFullPath(id, normalize) {
-  if (normalize !== false) id = normalizeId(id);
-  var p = url.parse(id, false, true);
-  return _getFullPath(p);
-}
-
-
-function _getFullPath(p) {
-  var protocolSeparator = p.protocol || p.href.slice(0,2) == '//' ? '//' : '';
-  return (p.protocol||'') + protocolSeparator + (p.host||'') + (p.path||'')  + '#';
-}
-
-
-var TRAILING_SLASH_HASH = /#\/?$/;
-function normalizeId(id) {
-  return id ? id.replace(TRAILING_SLASH_HASH, '') : '';
-}
-
-
-function resolveUrl(baseId, id) {
-  id = normalizeId(id);
-  return url.resolve(baseId, id);
-}
-
-
-/* @this Ajv */
-function resolveIds(schema) {
-  /* eslint no-shadow: 0 */
-  /* jshint validthis: true */
-  var id = normalizeId(schema.id);
-  var localRefs = {};
-  _resolveIds.call(this, schema, getFullPath(id, false), id);
-  return localRefs;
-
-  /* @this Ajv */
-  function _resolveIds(schema, fullPath, baseId) {
-    /* jshint validthis: true */
-    if (Array.isArray(schema)) {
-      for (var i=0; i<schema.length; i++)
-        _resolveIds.call(this, schema[i], fullPath+'/'+i, baseId);
-    } else if (schema && typeof schema == 'object') {
-      if (typeof schema.id == 'string') {
-        var id = baseId = baseId
-                          ? url.resolve(baseId, schema.id)
-                          : schema.id;
-        id = normalizeId(id);
-
-        var refVal = this._refs[id];
-        if (typeof refVal == 'string') refVal = this._refs[refVal];
-        if (refVal && refVal.schema) {
-          if (!equal(schema, refVal.schema))
-            throw new Error('id "' + id + '" resolves to more than one schema');
-        } else if (id != normalizeId(fullPath)) {
-          if (id[0] == '#') {
-            if (localRefs[id] && !equal(schema, localRefs[id]))
-              throw new Error('id "' + id + '" resolves to more than one schema');
-            localRefs[id] = schema;
-          } else {
-            this._refs[id] = fullPath;
-          }
-        }
-      }
-      for (var key in schema)
-        _resolveIds.call(this, schema[key], fullPath+'/'+util.escapeFragment(key), baseId);
-    }
-  }
-}
-
-},{"./equal":4,"./schema_obj":9,"./util":11,"url":45}],8:[function(require,module,exports){
-'use strict';
-
-var ruleModules = require('./_rules')
-  , toHash = require('./util').toHash;
-
-module.exports = function rules() {
-  var RULES = [
-    { type: 'number',
-      rules: [ 'maximum', 'minimum', 'multipleOf'] },
-    { type: 'string',
-      rules: [ 'maxLength', 'minLength', 'pattern', 'format' ] },
-    { type: 'array',
-      rules: [ 'maxItems', 'minItems', 'uniqueItems', 'items' ] },
-    { type: 'object',
-      rules: [ 'maxProperties', 'minProperties', 'required', 'dependencies', 'properties' ] },
-    { rules: [ '$ref', 'enum', 'not', 'anyOf', 'oneOf', 'allOf' ] }
-  ];
-
-  var ALL = [ 'type', 'additionalProperties', 'patternProperties' ];
-  var KEYWORDS = [ 'additionalItems', '$schema', 'id', 'title', 'description', 'default' ];
-  var TYPES = [ 'number', 'integer', 'string', 'array', 'object', 'boolean', 'null' ];
-  RULES.all = toHash(ALL);
-
-  RULES.forEach(function (group) {
-    group.rules = group.rules.map(function (keyword) {
-      ALL.push(keyword);
-      var rule = RULES.all[keyword] = {
-        keyword: keyword,
-        code: ruleModules[keyword]
-      };
-      return rule;
-    });
-  });
-
-  RULES.keywords = toHash(ALL.concat(KEYWORDS));
-  RULES.types = toHash(TYPES);
-  RULES.custom = {};
-
-  return RULES;
-};
-
-},{"./_rules":3,"./util":11}],9:[function(require,module,exports){
-'use strict';
-
-var util = require('./util');
-
-module.exports = SchemaObject;
-
-function SchemaObject(obj) {
-  util.copy(obj, this);
-}
-
-},{"./util":11}],10:[function(require,module,exports){
-'use strict';
-
-// https://mathiasbynens.be/notes/javascript-encoding
-// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode
-module.exports = function ucs2length(str) {
-  var length = 0
-    , len = str.length
-    , pos = 0
-    , value;
-  while (pos < len) {
-    length++;
-    value = str.charCodeAt(pos++);
-    if (value >= 0xD800 && value <= 0xDBFF && pos < len) {
-      // high surrogate, and there is a next character
-      value = str.charCodeAt(pos);
-      if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate
-    }
-  }
-  return length;
-};
-
-},{}],11:[function(require,module,exports){
-'use strict';
-
-
-module.exports = {
-  copy: copy,
-  checkDataType: checkDataType,
-  checkDataTypes: checkDataTypes,
-  coerceToTypes: coerceToTypes,
-  toHash: toHash,
-  getProperty: getProperty,
-  escapeQuotes: escapeQuotes,
-  ucs2length: require('./ucs2length'),
-  varOccurences: varOccurences,
-  varReplace: varReplace,
-  cleanUpCode: cleanUpCode,
-  cleanUpVarErrors: cleanUpVarErrors,
-  schemaHasRules: schemaHasRules,
-  schemaHasRulesExcept: schemaHasRulesExcept,
-  stableStringify: require('json-stable-stringify'),
-  toQuotedString: toQuotedString,
-  getPathExpr: getPathExpr,
-  getPath: getPath,
-  getData: getData,
-  unescapeFragment: unescapeFragment,
-  escapeFragment: escapeFragment,
-  escapeJsonPointer: escapeJsonPointer
-};
-
-
-function copy(o, to) {
-  to = to || {};
-  for (var key in o) to[key] = o[key];
-  return to;
-}
-
-
-function checkDataType(dataType, data, negate) {
-  var EQUAL = negate ? ' !== ' : ' === '
-    , AND = negate ? ' || ' : ' && '
-    , OK = negate ? '!' : ''
-    , NOT = negate ? '' : '!';
-  switch (dataType) {
-    case 'null': return data + EQUAL + 'null';
-    case 'array': return OK + 'Array.isArray(' + data + ')';
-    case 'object': return '(' + OK + data + AND +
-                          'typeof ' + data + EQUAL + '"object"' + AND +
-                          NOT + 'Array.isArray(' + data + '))';
-    case 'integer': return '(typeof ' + data + EQUAL + '"number"' + AND +
-                           NOT + '(' + data + ' % 1)' +
-                           AND + data + EQUAL + data + ')';
-    default: return 'typeof ' + data + EQUAL + '"' + dataType + '"';
-  }
-}
-
-
-function checkDataTypes(dataTypes, data) {
-  switch (dataTypes.length) {
-    case 1: return checkDataType(dataTypes[0], data, true);
-    default:
-      var code = '';
-      var types = toHash(dataTypes);
-      if (types.array && types.object) {
-        code = types.null ? '(': '(!' + data + ' || ';
-        code += 'typeof ' + data + ' !== "object")';
-        delete types.null;
-        delete types.array;
-        delete types.object;
-      }
-      if (types.number) delete types.integer;
-      for (var t in types)
-        code += (code ? ' && ' : '' ) + checkDataType(t, data, true);
-
-      return code;
-  }
-}
-
-
-var COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);
-function coerceToTypes(optionCoerceTypes, dataTypes) {
-  if (Array.isArray(dataTypes)) {
-    var types = [];
-    for (var i=0; i<dataTypes.length; i++) {
-      var t = dataTypes[i];
-      if (COERCE_TO_TYPES[t]) types[types.length] = t;
-      else if (optionCoerceTypes === 'array' && t === 'array') types[types.length] = t;
-    }
-    if (types.length) return types;
-  } else if (COERCE_TO_TYPES[dataTypes]) {
-    return [dataTypes];
-  } else if (optionCoerceTypes === 'array' && dataTypes === 'array') {
-    return ['array'];
-  }
-}
-
-
-function toHash(arr) {
-  var hash = {};
-  for (var i=0; i<arr.length; i++) hash[arr[i]] = true;
-  return hash;
-}
-
-
-var IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;
-var SINGLE_QUOTE = /'|\\/g;
-function getProperty(key) {
-  return typeof key == 'number'
-          ? '[' + key + ']'
-          : IDENTIFIER.test(key)
-            ? '.' + key
-            : "['" + escapeQuotes(key) + "']";
-}
-
-
-function escapeQuotes(str) {
-  return str.replace(SINGLE_QUOTE, '\\$&')
-            .replace(/\n/g, '\\n')
-            .replace(/\r/g, '\\r')
-            .replace(/\f/g, '\\f')
-            .replace(/\t/g, '\\t');
-}
-
-
-function varOccurences(str, dataVar) {
-  dataVar += '[^0-9]';
-  var matches = str.match(new RegExp(dataVar, 'g'));
-  return matches ? matches.length : 0;
-}
-
-
-function varReplace(str, dataVar, expr) {
-  dataVar += '([^0-9])';
-  expr = expr.replace(/\$/g, '$$$$');
-  return str.replace(new RegExp(dataVar, 'g'), expr + '$1');
-}
-
-
-var EMPTY_ELSE = /else\s*{\s*}/g
-  , EMPTY_IF_NO_ELSE = /if\s*\([^)]+\)\s*\{\s*\}(?!\s*else)/g
-  , EMPTY_IF_WITH_ELSE = /if\s*\(([^)]+)\)\s*\{\s*\}\s*else(?!\s*if)/g;
-function cleanUpCode(out) {
-  return out.replace(EMPTY_ELSE, '')
-            .replace(EMPTY_IF_NO_ELSE, '')
-            .replace(EMPTY_IF_WITH_ELSE, 'if (!($1))');
-}
-
-
-var ERRORS_REGEXP = /[^v\.]errors/g
-  , REMOVE_ERRORS = /var errors = 0;|var vErrors = null;|validate.errors = vErrors;/g
-  , REMOVE_ERRORS_ASYNC = /var errors = 0;|var vErrors = null;/g
-  , RETURN_VALID = 'return errors === 0;'
-  , RETURN_TRUE = 'validate.errors = null; return true;'
-  , RETURN_ASYNC = /if \(errors === 0\) return true;\s*else throw new ValidationError\(vErrors\);/
-  , RETURN_TRUE_ASYNC = 'return true;';
-
-function cleanUpVarErrors(out, async) {
-  var matches = out.match(ERRORS_REGEXP);
-  if (!matches || matches.length !== 2) return out;
-  return async
-          ? out.replace(REMOVE_ERRORS_ASYNC, '')
-               .replace(RETURN_ASYNC, RETURN_TRUE_ASYNC)
-          : out.replace(REMOVE_ERRORS, '')
-               .replace(RETURN_VALID, RETURN_TRUE);
-}
-
-
-function schemaHasRules(schema, rules) {
-  for (var key in schema) if (rules[key]) return true;
-}
-
-
-function schemaHasRulesExcept(schema, rules, exceptKeyword) {
-  for (var key in schema) if (key != exceptKeyword && rules[key]) return true;
-}
-
-
-function toQuotedString(str) {
-  return '\'' + escapeQuotes(str) + '\'';
-}
-
-
-function getPathExpr(currentPath, expr, jsonPointers, isNumber) {
-  var path = jsonPointers // false by default
-              ? '\'/\' + ' + expr + (isNumber ? '' : '.replace(/~/g, \'~0\').replace(/\\//g, \'~1\')')
-              : (isNumber ? '\'[\' + ' + expr + ' + \']\'' : '\'[\\\'\' + ' + expr + ' + \'\\\']\'');
-  return joinPaths(currentPath, path);
-}
-
-
-function getPath(currentPath, prop, jsonPointers) {
-  var path = jsonPointers // false by default
-              ? toQuotedString('/' + escapeJsonPointer(prop))
-              : toQuotedString(getProperty(prop));
-  return joinPaths(currentPath, path);
-}
-
-
-var JSON_POINTER = /^\/(?:[^~]|~0|~1)*$/;
-var RELATIVE_JSON_POINTER = /^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;
-function getData($data, lvl, paths) {
-  var up, jsonPointer, data, matches;
-  if ($data === '') return 'rootData';
-  if ($data[0] == '/') {
-    if (!JSON_POINTER.test($data)) throw new Error('Invalid JSON-pointer: ' + $data);
-    jsonPointer = $data;
-    data = 'rootData';
-  } else {
-    matches = $data.match(RELATIVE_JSON_POINTER);
-    if (!matches) throw new Error('Invalid JSON-pointer: ' + $data);
-    up = +matches[1];
-    jsonPointer = matches[2];
-    if (jsonPointer == '#') {
-      if (up >= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);
-      return paths[lvl - up];
-    }
-
-    if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);
-    data = 'data' + ((lvl - up) || '');
-    if (!jsonPointer) return data;
-  }
-
-  var expr = data;
-  var segments = jsonPointer.split('/');
-  for (var i=0; i<segments.length; i++) {
-    var segment = segments[i];
-    if (segment) {
-      data += getProperty(unescapeJsonPointer(segment));
-      expr += ' && ' + data;
-    }
-  }
-  return expr;
-}
-
-
-function joinPaths (a, b) {
-  if (a == '""') return b;
-  return (a + ' + ' + b).replace(/' \+ '/g, '');
-}
-
-
-function unescapeFragment(str) {
-  return unescapeJsonPointer(decodeURIComponent(str));
-}
-
-
-function escapeFragment(str) {
-  return encodeURIComponent(escapeJsonPointer(str));
-}
-
-
-function escapeJsonPointer(str) {
-  return str.replace(/~/g, '~0').replace(/\//g, '~1');
-}
-
-
-function unescapeJsonPointer(str) {
-  return str.replace(/~1/g, '/').replace(/~0/g, '~');
-}
-
-},{"./ucs2length":10,"json-stable-stringify":48}],12:[function(require,module,exports){
-'use strict';
-
-module.exports = ValidationError;
-
-
-function ValidationError(errors) {
-  this.message = 'validation failed';
-  this.errors = errors;
-  this.ajv = this.validation = true;
-}
-
-
-ValidationError.prototype = Object.create(Error.prototype);
-ValidationError.prototype.constructor = ValidationError;
-
-},{}],13:[function(require,module,exports){
-'use strict';
-module.exports = function generate__formatLimit(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $valid = 'valid' + $lvl;
-  out += 'var ' + ($valid) + ' = undefined;';
-  if (it.opts.format === false) {
-    out += ' ' + ($valid) + ' = true; ';
-    return out;
-  }
-  var $schemaFormat = it.schema.format,
-    $isDataFormat = it.opts.v5 && $schemaFormat.$data,
-    $closingBraces = '';
-  if ($isDataFormat) {
-    var $schemaValueFormat = it.util.getData($schemaFormat.$data, $dataLvl, it.dataPathArr),
-      $format = 'format' + $lvl,
-      $compare = 'compare' + $lvl;
-    out += ' var ' + ($format) + ' = formats[' + ($schemaValueFormat) + '] , ' + ($compare) + ' = ' + ($format) + ' && ' + ($format) + '.compare;';
-  } else {
-    var $format = it.formats[$schemaFormat];
-    if (!($format && $format.compare)) {
-      out += '  ' + ($valid) + ' = true; ';
-      return out;
-    }
-    var $compare = 'formats' + it.util.getProperty($schemaFormat) + '.compare';
-  }
-  var $isMax = $keyword == 'formatMaximum',
-    $exclusiveKeyword = 'formatExclusive' + ($isMax ? 'Maximum' : 'Minimum'),
-    $schemaExcl = it.schema[$exclusiveKeyword],
-    $isDataExcl = it.opts.v5 && $schemaExcl && $schemaExcl.$data,
-    $op = $isMax ? '<' : '>',
-    $result = 'result' + $lvl;
-  var $isData = it.opts.v5 && $schema && $schema.$data,
-    $schemaValue;
-  if ($isData) {
-    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
-    $schemaValue = 'schema' + $lvl;
-  } else {
-    $schemaValue = $schema;
-  }
-  if ($isDataExcl) {
-    var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),
-      $exclusive = 'exclusive' + $lvl,
-      $opExpr = 'op' + $lvl,
-      $opStr = '\' + ' + $opExpr + ' + \'';
-    out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';
-    $schemaValueExcl = 'schemaExcl' + $lvl;
-    out += ' if (typeof ' + ($schemaValueExcl) + ' != \'boolean\' && ' + ($schemaValueExcl) + ' !== undefined) { ' + ($valid) + ' = false; ';
-    var $errorKeyword = $exclusiveKeyword;
-    var $$outStack = $$outStack || [];
-    $$outStack.push(out);
-    out = ''; /* istanbul ignore else */
-    if (it.createErrors !== false) {
-      out += ' { keyword: \'' + ($errorKeyword || '_formatExclusiveLimit') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
-      if (it.opts.messages !== false) {
-        out += ' , message: \'' + ($exclusiveKeyword) + ' should be boolean\' ';
-      }
-      if (it.opts.verbose) {
-        out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-      }
-      out += ' } ';
-    } else {
-      out += ' {} ';
-    }
-    var __err = out;
-    out = $$outStack.pop();
-    if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-      if (it.async) {
-        out += ' throw new ValidationError([' + (__err) + ']); ';
-      } else {
-        out += ' validate.errors = [' + (__err) + ']; return false; ';
-      }
-    } else {
-      out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-    }
-    out += ' }  ';
-    if ($breakOnError) {
-      $closingBraces += '}';
-      out += ' else { ';
-    }
-    if ($isData) {
-      out += ' if (' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \'string\') ' + ($valid) + ' = false; else { ';
-      $closingBraces += '}';
-    }
-    if ($isDataFormat) {
-      out += ' if (!' + ($compare) + ') ' + ($valid) + ' = true; else { ';
-      $closingBraces += '}';
-    }
-    out += ' var ' + ($result) + ' = ' + ($compare) + '(' + ($data) + ',  ';
-    if ($isData) {
-      out += '' + ($schemaValue);
-    } else {
-      out += '' + (it.util.toQuotedString($schema));
-    }
-    out += ' ); if (' + ($result) + ' === undefined) ' + ($valid) + ' = false; var ' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true; if (' + ($valid) + ' === undefined) { ' + ($valid) + ' = ' + ($exclusive) + ' ? ' + ($result) + ' ' + ($op) + ' 0 : ' + ($result) + ' ' + ($op) + '= 0; } if (!' + ($valid) + ') var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \'' + ($op) + '\' : \'' + ($op) + '=\';';
-  } else {
-    var $exclusive = $schemaExcl === true,
-      $opStr = $op;
-    if (!$exclusive) $opStr += '=';
-    var $opExpr = '\'' + $opStr + '\'';
-    if ($isData) {
-      out += ' if (' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \'string\') ' + ($valid) + ' = false; else { ';
-      $closingBraces += '}';
-    }
-    if ($isDataFormat) {
-      out += ' if (!' + ($compare) + ') ' + ($valid) + ' = true; else { ';
-      $closingBraces += '}';
-    }
-    out += ' var ' + ($result) + ' = ' + ($compare) + '(' + ($data) + ',  ';
-    if ($isData) {
-      out += '' + ($schemaValue);
-    } else {
-      out += '' + (it.util.toQuotedString($schema));
-    }
-    out += ' ); if (' + ($result) + ' === undefined) ' + ($valid) + ' = false; if (' + ($valid) + ' === undefined) ' + ($valid) + ' = ' + ($result) + ' ' + ($op);
-    if (!$exclusive) {
-      out += '=';
-    }
-    out += ' 0;';
-  }
-  out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { ';
-  var $errorKeyword = $keyword;
-  var $$outStack = $$outStack || [];
-  $$outStack.push(out);
-  out = ''; /* istanbul ignore else */
-  if (it.createErrors !== false) {
-    out += ' { keyword: \'' + ($errorKeyword || '_formatLimit') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit:  ';
-    if ($isData) {
-      out += '' + ($schemaValue);
-    } else {
-      out += '' + (it.util.toQuotedString($schema));
-    }
-    out += ' , exclusive: ' + ($exclusive) + ' } ';
-    if (it.opts.messages !== false) {
-      out += ' , message: \'should be ' + ($opStr) + ' "';
-      if ($isData) {
-        out += '\' + ' + ($schemaValue) + ' + \'';
-      } else {
-        out += '' + (it.util.escapeQuotes($schema));
-      }
-      out += '"\' ';
-    }
-    if (it.opts.verbose) {
-      out += ' , schema:  ';
-      if ($isData) {
-        out += 'validate.schema' + ($schemaPath);
-      } else {
-        out += '' + (it.util.toQuotedString($schema));
-      }
-      out += '         , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-    }
-    out += ' } ';
-  } else {
-    out += ' {} ';
-  }
-  var __err = out;
-  out = $$outStack.pop();
-  if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-    if (it.async) {
-      out += ' throw new ValidationError([' + (__err) + ']); ';
-    } else {
-      out += ' validate.errors = [' + (__err) + ']; return false; ';
-    }
-  } else {
-    out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-  }
-  out += '}';
-  return out;
-}
-
-},{}],14:[function(require,module,exports){
-'use strict';
-module.exports = function generate__limit(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $isData = it.opts.v5 && $schema && $schema.$data,
-    $schemaValue;
-  if ($isData) {
-    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
-    $schemaValue = 'schema' + $lvl;
-  } else {
-    $schemaValue = $schema;
-  }
-  var $isMax = $keyword == 'maximum',
-    $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum',
-    $schemaExcl = it.schema[$exclusiveKeyword],
-    $isDataExcl = it.opts.v5 && $schemaExcl && $schemaExcl.$data,
-    $op = $isMax ? '<' : '>',
-    $notOp = $isMax ? '>' : '<';
-  if ($isDataExcl) {
-    var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),
-      $exclusive = 'exclusive' + $lvl,
-      $opExpr = 'op' + $lvl,
-      $opStr = '\' + ' + $opExpr + ' + \'';
-    out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';
-    $schemaValueExcl = 'schemaExcl' + $lvl;
-    out += ' var exclusive' + ($lvl) + '; if (typeof ' + ($schemaValueExcl) + ' != \'boolean\' && typeof ' + ($schemaValueExcl) + ' != \'undefined\') { ';
-    var $errorKeyword = $exclusiveKeyword;
-    var $$outStack = $$outStack || [];
-    $$outStack.push(out);
-    out = ''; /* istanbul ignore else */
-    if (it.createErrors !== false) {
-      out += ' { keyword: \'' + ($errorKeyword || '_exclusiveLimit') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
-      if (it.opts.messages !== false) {
-        out += ' , message: \'' + ($exclusiveKeyword) + ' should be boolean\' ';
-      }
-      if (it.opts.verbose) {
-        out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-      }
-      out += ' } ';
-    } else {
-      out += ' {} ';
-    }
-    var __err = out;
-    out = $$outStack.pop();
-    if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-      if (it.async) {
-        out += ' throw new ValidationError([' + (__err) + ']); ';
-      } else {
-        out += ' validate.errors = [' + (__err) + ']; return false; ';
-      }
-    } else {
-      out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-    }
-    out += ' } else if( ';
-    if ($isData) {
-      out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
-    }
-    out += ' ((exclusive' + ($lvl) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ') || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = exclusive' + ($lvl) + ' ? \'' + ($op) + '\' : \'' + ($op) + '=\';';
-  } else {
-    var $exclusive = $schemaExcl === true,
-      $opStr = $op;
-    if (!$exclusive) $opStr += '=';
-    var $opExpr = '\'' + $opStr + '\'';
-    out += ' if ( ';
-    if ($isData) {
-      out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
-    }
-    out += ' ' + ($data) + ' ' + ($notOp);
-    if ($exclusive) {
-      out += '=';
-    }
-    out += ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') {';
-  }
-  var $errorKeyword = $keyword;
-  var $$outStack = $$outStack || [];
-  $$outStack.push(out);
-  out = ''; /* istanbul ignore else */
-  if (it.createErrors !== false) {
-    out += ' { keyword: \'' + ($errorKeyword || '_limit') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';
-    if (it.opts.messages !== false) {
-      out += ' , message: \'should be ' + ($opStr) + ' ';
-      if ($isData) {
-        out += '\' + ' + ($schemaValue);
-      } else {
-        out += '' + ($schema) + '\'';
-      }
-    }
-    if (it.opts.verbose) {
-      out += ' , schema:  ';
-      if ($isData) {
-        out += 'validate.schema' + ($schemaPath);
-      } else {
-        out += '' + ($schema);
-      }
-      out += '         , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-    }
-    out += ' } ';
-  } else {
-    out += ' {} ';
-  }
-  var __err = out;
-  out = $$outStack.pop();
-  if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-    if (it.async) {
-      out += ' throw new ValidationError([' + (__err) + ']); ';
-    } else {
-      out += ' validate.errors = [' + (__err) + ']; return false; ';
-    }
-  } else {
-    out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-  }
-  out += ' } ';
-  if ($breakOnError) {
-    out += ' else { ';
-  }
-  return out;
-}
-
-},{}],15:[function(require,module,exports){
-'use strict';
-module.exports = function generate__limitItems(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $isData = it.opts.v5 && $schema && $schema.$data,
-    $schemaValue;
-  if ($isData) {
-    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
-    $schemaValue = 'schema' + $lvl;
-  } else {
-    $schemaValue = $schema;
-  }
-  var $op = $keyword == 'maxItems' ? '>' : '<';
-  out += 'if ( ';
-  if ($isData) {
-    out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
-  }
-  out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';
-  var $errorKeyword = $keyword;
-  var $$outStack = $$outStack || [];
-  $$outStack.push(out);
-  out = ''; /* istanbul ignore else */
-  if (it.createErrors !== false) {
-    out += ' { keyword: \'' + ($errorKeyword || '_limitItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';
-    if (it.opts.messages !== false) {
-      out += ' , message: \'should NOT have ';
-      if ($keyword == 'maxItems') {
-        out += 'more';
-      } else {
-        out += 'less';
-      }
-      out += ' than ';
-      if ($isData) {
-        out += '\' + ' + ($schemaValue) + ' + \'';
-      } else {
-        out += '' + ($schema);
-      }
-      out += ' items\' ';
-    }
-    if (it.opts.verbose) {
-      out += ' , schema:  ';
-      if ($isData) {
-        out += 'validate.schema' + ($schemaPath);
-      } else {
-        out += '' + ($schema);
-      }
-      out += '         , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-    }
-    out += ' } ';
-  } else {
-    out += ' {} ';
-  }
-  var __err = out;
-  out = $$outStack.pop();
-  if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-    if (it.async) {
-      out += ' throw new ValidationError([' + (__err) + ']); ';
-    } else {
-      out += ' validate.errors = [' + (__err) + ']; return false; ';
-    }
-  } else {
-    out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-  }
-  out += '} ';
-  if ($breakOnError) {
-    out += ' else { ';
-  }
-  return out;
-}
-
-},{}],16:[function(require,module,exports){
-'use strict';
-module.exports = function generate__limitLength(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $isData = it.opts.v5 && $schema && $schema.$data,
-    $schemaValue;
-  if ($isData) {
-    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
-    $schemaValue = 'schema' + $lvl;
-  } else {
-    $schemaValue = $schema;
-  }
-  var $op = $keyword == 'maxLength' ? '>' : '<';
-  out += 'if ( ';
-  if ($isData) {
-    out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
-  }
-  if (it.opts.unicode === false) {
-    out += ' ' + ($data) + '.length ';
-  } else {
-    out += ' ucs2length(' + ($data) + ') ';
-  }
-  out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';
-  var $errorKeyword = $keyword;
-  var $$outStack = $$outStack || [];
-  $$outStack.push(out);
-  out = ''; /* istanbul ignore else */
-  if (it.createErrors !== false) {
-    out += ' { keyword: \'' + ($errorKeyword || '_limitLength') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';
-    if (it.opts.messages !== false) {
-      out += ' , message: \'should NOT be ';
-      if ($keyword == 'maxLength') {
-        out += 'longer';
-      } else {
-        out += 'shorter';
-      }
-      out += ' than ';
-      if ($isData) {
-        out += '\' + ' + ($schemaValue) + ' + \'';
-      } else {
-        out += '' + ($schema);
-      }
-      out += ' characters\' ';
-    }
-    if (it.opts.verbose) {
-      out += ' , schema:  ';
-      if ($isData) {
-        out += 'validate.schema' + ($schemaPath);
-      } else {
-        out += '' + ($schema);
-      }
-      out += '         , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-    }
-    out += ' } ';
-  } else {
-    out += ' {} ';
-  }
-  var __err = out;
-  out = $$outStack.pop();
-  if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-    if (it.async) {
-      out += ' throw new ValidationError([' + (__err) + ']); ';
-    } else {
-      out += ' validate.errors = [' + (__err) + ']; return false; ';
-    }
-  } else {
-    out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-  }
-  out += '} ';
-  if ($breakOnError) {
-    out += ' else { ';
-  }
-  return out;
-}
-
-},{}],17:[function(require,module,exports){
-'use strict';
-module.exports = function generate__limitProperties(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $isData = it.opts.v5 && $schema && $schema.$data,
-    $schemaValue;
-  if ($isData) {
-    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
-    $schemaValue = 'schema' + $lvl;
-  } else {
-    $schemaValue = $schema;
-  }
-  var $op = $keyword == 'maxProperties' ? '>' : '<';
-  out += 'if ( ';
-  if ($isData) {
-    out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
-  }
-  out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';
-  var $errorKeyword = $keyword;
-  var $$outStack = $$outStack || [];
-  $$outStack.push(out);
-  out = ''; /* istanbul ignore else */
-  if (it.createErrors !== false) {
-    out += ' { keyword: \'' + ($errorKeyword || '_limitProperties') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';
-    if (it.opts.messages !== false) {
-      out += ' , message: \'should NOT have ';
-      if ($keyword == 'maxProperties') {
-        out += 'more';
-      } else {
-        out += 'less';
-      }
-      out += ' than ';
-      if ($isData) {
-        out += '\' + ' + ($schemaValue) + ' + \'';
-      } else {
-        out += '' + ($schema);
-      }
-      out += ' properties\' ';
-    }
-    if (it.opts.verbose) {
-      out += ' , schema:  ';
-      if ($isData) {
-        out += 'validate.schema' + ($schemaPath);
-      } else {
-        out += '' + ($schema);
-      }
-      out += '         , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-    }
-    out += ' } ';
-  } else {
-    out += ' {} ';
-  }
-  var __err = out;
-  out = $$outStack.pop();
-  if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-    if (it.async) {
-      out += ' throw new ValidationError([' + (__err) + ']); ';
-    } else {
-      out += ' validate.errors = [' + (__err) + ']; return false; ';
-    }
-  } else {
-    out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-  }
-  out += '} ';
-  if ($breakOnError) {
-    out += ' else { ';
-  }
-  return out;
-}
-
-},{}],18:[function(require,module,exports){
-'use strict';
-module.exports = function generate_allOf(it, $keyword) {
-  var out = ' ';
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $it = it.util.copy(it);
-  var $closingBraces = '';
-  $it.level++;
-  var $nextValid = 'valid' + $it.level;
-  var $currentBaseId = $it.baseId,
-    $allSchemasEmpty = true;
-  var arr1 = $schema;
-  if (arr1) {
-    var $sch, $i = -1,
-      l1 = arr1.length - 1;
-    while ($i < l1) {
-      $sch = arr1[$i += 1];
-      if (it.util.schemaHasRules($sch, it.RULES.all)) {
-        $allSchemasEmpty = false;
-        $it.schema = $sch;
-        $it.schemaPath = $schemaPath + '[' + $i + ']';
-        $it.errSchemaPath = $errSchemaPath + '/' + $i;
-        out += '  ' + (it.validate($it)) + ' ';
-        $it.baseId = $currentBaseId;
-        if ($breakOnError) {
-          out += ' if (' + ($nextValid) + ') { ';
-          $closingBraces += '}';
-        }
-      }
-    }
-  }
-  if ($breakOnError) {
-    if ($allSchemasEmpty) {
-      out += ' if (true) { ';
-    } else {
-      out += ' ' + ($closingBraces.slice(0, -1)) + ' ';
-    }
-  }
-  out = it.util.cleanUpCode(out);
-  return out;
-}
-
-},{}],19:[function(require,module,exports){
-'use strict';
-module.exports = function generate_anyOf(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $valid = 'valid' + $lvl;
-  var $errs = 'errs__' + $lvl;
-  var $it = it.util.copy(it);
-  var $closingBraces = '';
-  $it.level++;
-  var $nextValid = 'valid' + $it.level;
-  var $noEmptySchema = $schema.every(function($sch) {
-    return it.util.schemaHasRules($sch, it.RULES.all);
-  });
-  if ($noEmptySchema) {
-    var $currentBaseId = $it.baseId;
-    out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false;  ';
-    var $wasComposite = it.compositeRule;
-    it.compositeRule = $it.compositeRule = true;
-    var arr1 = $schema;
-    if (arr1) {
-      var $sch, $i = -1,
-        l1 = arr1.length - 1;
-      while ($i < l1) {
-        $sch = arr1[$i += 1];
-        $it.schema = $sch;
-        $it.schemaPath = $schemaPath + '[' + $i + ']';
-        $it.errSchemaPath = $errSchemaPath + '/' + $i;
-        out += '  ' + (it.validate($it)) + ' ';
-        $it.baseId = $currentBaseId;
-        out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';
-        $closingBraces += '}';
-      }
-    }
-    it.compositeRule = $it.compositeRule = $wasComposite;
-    out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') {  var err =   '; /* istanbul ignore else */
-    if (it.createErrors !== false) {
-      out += ' { keyword: \'' + ($errorKeyword || 'anyOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
-      if (it.opts.messages !== false) {
-        out += ' , message: \'should match some schema in anyOf\' ';
-      }
-      if (it.opts.verbose) {
-        out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-      }
-      out += ' } ';
-    } else {
-      out += ' {} ';
-    }
-    out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else {  errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';
-    if (it.opts.allErrors) {
-      out += ' } ';
-    }
-    out = it.util.cleanUpCode(out);
-  } else {
-    if ($breakOnError) {
-      out += ' if (true) { ';
-    }
-  }
-  return out;
-}
-
-},{}],20:[function(require,module,exports){
-'use strict';
-module.exports = function generate_constant(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $valid = 'valid' + $lvl;
-  var $isData = it.opts.v5 && $schema && $schema.$data,
-    $schemaValue;
-  if ($isData) {
-    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
-    $schemaValue = 'schema' + $lvl;
-  } else {
-    $schemaValue = $schema;
-  }
-  if (!$isData) {
-    out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';
-  }
-  out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') {   ';
-  var $$outStack = $$outStack || [];
-  $$outStack.push(out);
-  out = ''; /* istanbul ignore else */
-  if (it.createErrors !== false) {
-    out += ' { keyword: \'' + ($errorKeyword || 'constant') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
-    if (it.opts.messages !== false) {
-      out += ' , message: \'should be equal to constant\' ';
-    }
-    if (it.opts.verbose) {
-      out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-    }
-    out += ' } ';
-  } else {
-    out += ' {} ';
-  }
-  var __err = out;
-  out = $$outStack.pop();
-  if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-    if (it.async) {
-      out += ' throw new ValidationError([' + (__err) + ']); ';
-    } else {
-      out += ' validate.errors = [' + (__err) + ']; return false; ';
-    }
-  } else {
-    out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-  }
-  out += ' }';
-  return out;
-}
-
-},{}],21:[function(require,module,exports){
-'use strict';
-module.exports = function generate_custom(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $valid = 'valid' + $lvl;
-  var $errs = 'errs__' + $lvl;
-  var $isData = it.opts.v5 && $schema && $schema.$data,
-    $schemaValue;
-  if ($isData) {
-    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
-    $schemaValue = 'schema' + $lvl;
-  } else {
-    $schemaValue = $schema;
-  }
-  var $rule = this,
-    $definition = 'definition' + $lvl,
-    $rDef = $rule.definition,
-    $validate = $rDef.validate,
-    $compile, $inline, $macro, $ruleValidate, $validateCode;
-  if ($isData && $rDef.$data) {
-    $validateCode = 'keywordValidate' + $lvl;
-    var $validateSchema = $rDef.validateSchema;
-    out += ' var ' + ($definition) + ' = RULES.custom[\'' + ($keyword) + '\'].definition; var ' + ($validateCode) + ' = ' + ($definition) + '.validate;';
-  } else {
-    $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);
-    $schemaValue = 'validate.schema' + $schemaPath;
-    $validateCode = $ruleValidate.code;
-    $compile = $rDef.compile;
-    $inline = $rDef.inline;
-    $macro = $rDef.macro;
-  }
-  var $ruleErrs = $validateCode + '.errors',
-    $i = 'i' + $lvl,
-    $ruleErr = 'ruleErr' + $lvl,
-    $asyncKeyword = $rDef.async;
-  if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema');
-  if (!($inline || $macro)) {
-    out += '' + ($ruleErrs) + ' = null;';
-  }
-  out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';
-  if ($validateSchema) {
-    out += ' ' + ($valid) + ' = ' + ($definition) + '.validateSchema(' + ($schemaValue) + '); if (' + ($valid) + ') {';
-  }
-  if ($inline) {
-    if ($rDef.statements) {
-      out += ' ' + ($ruleValidate.validate) + ' ';
-    } else {
-      out += ' ' + ($valid) + ' = ' + ($ruleValidate.validate) + '; ';
-    }
-  } else if ($macro) {
-    var $it = it.util.copy(it);
-    $it.level++;
-    var $nextValid = 'valid' + $it.level;
-    $it.schema = $ruleValidate.validate;
-    $it.schemaPath = '';
-    var $wasComposite = it.compositeRule;
-    it.compositeRule = $it.compositeRule = true;
-    var $code = it.validate($it).replace(/validate\.schema/g, $validateCode);
-    it.compositeRule = $it.compositeRule = $wasComposite;
-    out += ' ' + ($code);
-  } else {
-    var $$outStack = $$outStack || [];
-    $$outStack.push(out);
-    out = '';
-    out += '  ' + ($validateCode) + '.call( ';
-    if (it.opts.passContext) {
-      out += 'this';
-    } else {
-      out += 'self';
-    }
-    if ($compile || $rDef.schema === false) {
-      out += ' , ' + ($data) + ' ';
-    } else {
-      out += ' , ' + ($schemaValue) + ' , ' + ($data) + ' , validate.schema' + (it.schemaPath) + ' ';
-    }
-    out += ' , (dataPath || \'\')';
-    if (it.errorPath != '""') {
-      out += ' + ' + (it.errorPath);
-    }
-    var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',
-      $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';
-    out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ' , rootData )  ';
-    var def_callRuleValidate = out;
-    out = $$outStack.pop();
-    if ($rDef.errors === false) {
-      out += ' ' + ($valid) + ' = ';
-      if ($asyncKeyword) {
-        out += '' + (it.yieldAwait);
-      }
-      out += '' + (def_callRuleValidate) + '; ';
-    } else {
-      if ($asyncKeyword) {
-        $ruleErrs = 'customErrors' + $lvl;
-        out += ' var ' + ($ruleErrs) + ' = null; try { ' + ($valid) + ' = ' + (it.yieldAwait) + (def_callRuleValidate) + '; } catch (e) { ' + ($valid) + ' = false; if (e instanceof ValidationError) ' + ($ruleErrs) + ' = e.errors; else throw e; } ';
-      } else {
-        out += ' ' + ($ruleErrs) + ' = null; ' + ($valid) + ' = ' + (def_callRuleValidate) + '; ';
-      }
-    }
-  }
-  if ($rDef.modifying) {
-    out += ' ' + ($data) + ' = ' + ($parentData) + '[' + ($parentDataProperty) + '];';
-  }
-  if ($validateSchema) {
-    out += ' }';
-  }
-  if ($rDef.valid) {
-    if ($breakOnError) {
-      out += ' if (true) { ';
-    }
-  } else {
-    out += ' if ( ';
-    if ($rDef.valid === undefined) {
-      out += ' !';
-      if ($macro) {
-        out += '' + ($nextValid);
-      } else {
-        out += '' + ($valid);
-      }
-    } else {
-      out += ' ' + (!$rDef.valid) + ' ';
-    }
-    out += ') { ';
-    $errorKeyword = $rule.keyword;
-    var $$outStack = $$outStack || [];
-    $$outStack.push(out);
-    out = '';
-    var $$outStack = $$outStack || [];
-    $$outStack.push(out);
-    out = ''; /* istanbul ignore else */
-    if (it.createErrors !== false) {
-      out += ' { keyword: \'' + ($errorKeyword || 'custom') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \'' + ($rule.keyword) + '\' } ';
-      if (it.opts.messages !== false) {
-        out += ' , message: \'should pass "' + ($rule.keyword) + '" keyword validation\' ';
-      }
-      if (it.opts.verbose) {
-        out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-      }
-      out += ' } ';
-    } else {
-      out += ' {} ';
-    }
-    var __err = out;
-    out = $$outStack.pop();
-    if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-      if (it.async) {
-        out += ' throw new ValidationError([' + (__err) + ']); ';
-      } else {
-        out += ' validate.errors = [' + (__err) + ']; return false; ';
-      }
-    } else {
-      out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-    }
-    var def_customError = out;
-    out = $$outStack.pop();
-    if ($inline) {
-      if ($rDef.errors) {
-        if ($rDef.errors != 'full') {
-          out += '  for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \'\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = "' + ($errSchemaPath) + '"; } ';
-          if (it.opts.verbose) {
-            out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';
-          }
-          out += ' } ';
-        }
-      } else {
-        if ($rDef.errors === false) {
-          out += ' ' + (def_customError) + ' ';
-        } else {
-          out += ' if (' + ($errs) + ' == errors) { ' + (def_customError) + ' } else {  for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \'\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = "' + ($errSchemaPath) + '"; } ';
-          if (it.opts.verbose) {
-            out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';
-          }
-          out += ' } } ';
-        }
-      }
-    } else if ($macro) {
-      out += '   var err =   '; /* istanbul ignore else */
-      if (it.createErrors !== false) {
-        out += ' { keyword: \'' + ($errorKeyword || 'custom') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \'' + ($rule.keyword) + '\' } ';
-        if (it.opts.messages !== false) {
-          out += ' , message: \'should pass "' + ($rule.keyword) + '" keyword validation\' ';
-        }
-        if (it.opts.verbose) {
-          out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-        }
-        out += ' } ';
-      } else {
-        out += ' {} ';
-      }
-      out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-      if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-        if (it.async) {
-          out += ' throw new ValidationError(vErrors); ';
-        } else {
-          out += ' validate.errors = vErrors; return false; ';
-        }
-      }
-    } else {
-      if ($rDef.errors === false) {
-        out += ' ' + (def_customError) + ' ';
-      } else {
-        out += ' if (Array.isArray(' + ($ruleErrs) + ')) { if (vErrors === null) vErrors = ' + ($ruleErrs) + '; else vErrors = vErrors.concat(' + ($ruleErrs) + '); errors = vErrors.length;  for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \'\') + ' + (it.errorPath) + ';  ' + ($ruleErr) + '.schemaPath = "' + ($errSchemaPath) + '";  ';
-        if (it.opts.verbose) {
-          out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';
-        }
-        out += ' } } else { ' + (def_customError) + ' } ';
-      }
-    }
-    out += ' } ';
-    if ($breakOnError) {
-      out += ' else { ';
-    }
-  }
-  return out;
-}
-
-},{}],22:[function(require,module,exports){
-'use strict';
-module.exports = function generate_dependencies(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $errs = 'errs__' + $lvl;
-  var $it = it.util.copy(it);
-  var $closingBraces = '';
-  $it.level++;
-  var $nextValid = 'valid' + $it.level;
-  var $schemaDeps = {},
-    $propertyDeps = {};
-  for ($property in $schema) {
-    var $sch = $schema[$property];
-    var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;
-    $deps[$property] = $sch;
-  }
-  out += 'var ' + ($errs) + ' = errors;';
-  var $currentErrorPath = it.errorPath;
-  out += 'var missing' + ($lvl) + ';';
-  for (var $property in $propertyDeps) {
-    $deps = $propertyDeps[$property];
-    out += ' if (' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';
-    if ($breakOnError) {
-      out += ' && ( ';
-      var arr1 = $deps;
-      if (arr1) {
-        var _$property, $i = -1,
-          l1 = arr1.length - 1;
-        while ($i < l1) {
-          _$property = arr1[$i += 1];
-          if ($i) {
-            out += ' || ';
-          }
-          var $prop = it.util.getProperty(_$property);
-          out += ' ( ' + ($data) + ($prop) + ' === undefined && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? _$property : $prop)) + ') ) ';
-        }
-      }
-      out += ')) {  ';
-      var $propertyPath = 'missing' + $lvl,
-        $missingProperty = '\' + ' + $propertyPath + ' + \'';
-      if (it.opts._errorDataPathProperty) {
-        it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;
-      }
-      var $$outStack = $$outStack || [];
-      $$outStack.push(out);
-      out = ''; /* istanbul ignore else */
-      if (it.createErrors !== false) {
-        out += ' { keyword: \'' + ($errorKeyword || 'dependencies') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \'' + (it.util.escapeQuotes($property)) + '\', missingProperty: \'' + ($missingProperty) + '\', depsCount: ' + ($deps.length) + ', deps: \'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(", "))) + '\' } ';
-        if (it.opts.messages !== false) {
-          out += ' , message: \'should have ';
-          if ($deps.length == 1) {
-            out += 'property ' + (it.util.escapeQuotes($deps[0]));
-          } else {
-            out += 'properties ' + (it.util.escapeQuotes($deps.join(", ")));
-          }
-          out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\' ';
-        }
-        if (it.opts.verbose) {
-          out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-        }
-        out += ' } ';
-      } else {
-        out += ' {} ';
-      }
-      var __err = ou

<TRUNCATED>


[10/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/compression/node_modules/debug/debug.js
----------------------------------------------------------------------
diff --git a/node_modules/compression/node_modules/debug/debug.js b/node_modules/compression/node_modules/debug/debug.js
deleted file mode 100644
index 7571a86..0000000
--- a/node_modules/compression/node_modules/debug/debug.js
+++ /dev/null
@@ -1,197 +0,0 @@
-
-/**
- * This is the common logic for both the Node.js and web browser
- * implementations of `debug()`.
- *
- * Expose `debug()` as the module.
- */
-
-exports = module.exports = debug;
-exports.coerce = coerce;
-exports.disable = disable;
-exports.enable = enable;
-exports.enabled = enabled;
-exports.humanize = require('ms');
-
-/**
- * The currently active debug mode names, and names to skip.
- */
-
-exports.names = [];
-exports.skips = [];
-
-/**
- * Map of special "%n" handling functions, for the debug "format" argument.
- *
- * Valid key names are a single, lowercased letter, i.e. "n".
- */
-
-exports.formatters = {};
-
-/**
- * Previously assigned color.
- */
-
-var prevColor = 0;
-
-/**
- * Previous log timestamp.
- */
-
-var prevTime;
-
-/**
- * Select a color.
- *
- * @return {Number}
- * @api private
- */
-
-function selectColor() {
-  return exports.colors[prevColor++ % exports.colors.length];
-}
-
-/**
- * Create a debugger with the given `namespace`.
- *
- * @param {String} namespace
- * @return {Function}
- * @api public
- */
-
-function debug(namespace) {
-
-  // define the `disabled` version
-  function disabled() {
-  }
-  disabled.enabled = false;
-
-  // define the `enabled` version
-  function enabled() {
-
-    var self = enabled;
-
-    // set `diff` timestamp
-    var curr = +new Date();
-    var ms = curr - (prevTime || curr);
-    self.diff = ms;
-    self.prev = prevTime;
-    self.curr = curr;
-    prevTime = curr;
-
-    // add the `color` if not set
-    if (null == self.useColors) self.useColors = exports.useColors();
-    if (null == self.color && self.useColors) self.color = selectColor();
-
-    var args = Array.prototype.slice.call(arguments);
-
-    args[0] = exports.coerce(args[0]);
-
-    if ('string' !== typeof args[0]) {
-      // anything else let's inspect with %o
-      args = ['%o'].concat(args);
-    }
-
-    // apply any `formatters` transformations
-    var index = 0;
-    args[0] = args[0].replace(/%([a-z%])/g, function(match, format) {
-      // if we encounter an escaped % then don't increase the array index
-      if (match === '%%') return match;
-      index++;
-      var formatter = exports.formatters[format];
-      if ('function' === typeof formatter) {
-        var val = args[index];
-        match = formatter.call(self, val);
-
-        // now we need to remove `args[index]` since it's inlined in the `format`
-        args.splice(index, 1);
-        index--;
-      }
-      return match;
-    });
-
-    if ('function' === typeof exports.formatArgs) {
-      args = exports.formatArgs.apply(self, args);
-    }
-    var logFn = enabled.log || exports.log || console.log.bind(console);
-    logFn.apply(self, args);
-  }
-  enabled.enabled = true;
-
-  var fn = exports.enabled(namespace) ? enabled : disabled;
-
-  fn.namespace = namespace;
-
-  return fn;
-}
-
-/**
- * Enables a debug mode by namespaces. This can include modes
- * separated by a colon and wildcards.
- *
- * @param {String} namespaces
- * @api public
- */
-
-function enable(namespaces) {
-  exports.save(namespaces);
-
-  var split = (namespaces || '').split(/[\s,]+/);
-  var len = split.length;
-
-  for (var i = 0; i < len; i++) {
-    if (!split[i]) continue; // ignore empty strings
-    namespaces = split[i].replace(/\*/g, '.*?');
-    if (namespaces[0] === '-') {
-      exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));
-    } else {
-      exports.names.push(new RegExp('^' + namespaces + '$'));
-    }
-  }
-}
-
-/**
- * Disable debug output.
- *
- * @api public
- */
-
-function disable() {
-  exports.enable('');
-}
-
-/**
- * Returns true if the given mode name is enabled, false otherwise.
- *
- * @param {String} name
- * @return {Boolean}
- * @api public
- */
-
-function enabled(name) {
-  var i, len;
-  for (i = 0, len = exports.skips.length; i < len; i++) {
-    if (exports.skips[i].test(name)) {
-      return false;
-    }
-  }
-  for (i = 0, len = exports.names.length; i < len; i++) {
-    if (exports.names[i].test(name)) {
-      return true;
-    }
-  }
-  return false;
-}
-
-/**
- * Coerce `val`.
- *
- * @param {Mixed} val
- * @return {Mixed}
- * @api private
- */
-
-function coerce(val) {
-  if (val instanceof Error) return val.stack || val.message;
-  return val;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/compression/node_modules/debug/node.js
----------------------------------------------------------------------
diff --git a/node_modules/compression/node_modules/debug/node.js b/node_modules/compression/node_modules/debug/node.js
deleted file mode 100644
index 1d392a8..0000000
--- a/node_modules/compression/node_modules/debug/node.js
+++ /dev/null
@@ -1,209 +0,0 @@
-
-/**
- * Module dependencies.
- */
-
-var tty = require('tty');
-var util = require('util');
-
-/**
- * This is the Node.js implementation of `debug()`.
- *
- * Expose `debug()` as the module.
- */
-
-exports = module.exports = require('./debug');
-exports.log = log;
-exports.formatArgs = formatArgs;
-exports.save = save;
-exports.load = load;
-exports.useColors = useColors;
-
-/**
- * Colors.
- */
-
-exports.colors = [6, 2, 3, 4, 5, 1];
-
-/**
- * The file descriptor to write the `debug()` calls to.
- * Set the `DEBUG_FD` env variable to override with another value. i.e.:
- *
- *   $ DEBUG_FD=3 node script.js 3>debug.log
- */
-
-var fd = parseInt(process.env.DEBUG_FD, 10) || 2;
-var stream = 1 === fd ? process.stdout :
-             2 === fd ? process.stderr :
-             createWritableStdioStream(fd);
-
-/**
- * Is stdout a TTY? Colored output is enabled when `true`.
- */
-
-function useColors() {
-  var debugColors = (process.env.DEBUG_COLORS || '').trim().toLowerCase();
-  if (0 === debugColors.length) {
-    return tty.isatty(fd);
-  } else {
-    return '0' !== debugColors
-        && 'no' !== debugColors
-        && 'false' !== debugColors
-        && 'disabled' !== debugColors;
-  }
-}
-
-/**
- * Map %o to `util.inspect()`, since Node doesn't do that out of the box.
- */
-
-var inspect = (4 === util.inspect.length ?
-  // node <= 0.8.x
-  function (v, colors) {
-    return util.inspect(v, void 0, void 0, colors);
-  } :
-  // node > 0.8.x
-  function (v, colors) {
-    return util.inspect(v, { colors: colors });
-  }
-);
-
-exports.formatters.o = function(v) {
-  return inspect(v, this.useColors)
-    .replace(/\s*\n\s*/g, ' ');
-};
-
-/**
- * Adds ANSI color escape codes if enabled.
- *
- * @api public
- */
-
-function formatArgs() {
-  var args = arguments;
-  var useColors = this.useColors;
-  var name = this.namespace;
-
-  if (useColors) {
-    var c = this.color;
-
-    args[0] = '  \u001b[3' + c + ';1m' + name + ' '
-      + '\u001b[0m'
-      + args[0] + '\u001b[3' + c + 'm'
-      + ' +' + exports.humanize(this.diff) + '\u001b[0m';
-  } else {
-    args[0] = new Date().toUTCString()
-      + ' ' + name + ' ' + args[0];
-  }
-  return args;
-}
-
-/**
- * Invokes `console.error()` with the specified arguments.
- */
-
-function log() {
-  return stream.write(util.format.apply(this, arguments) + '\n');
-}
-
-/**
- * Save `namespaces`.
- *
- * @param {String} namespaces
- * @api private
- */
-
-function save(namespaces) {
-  if (null == namespaces) {
-    // If you set a process.env field to null or undefined, it gets cast to the
-    // string 'null' or 'undefined'. Just delete instead.
-    delete process.env.DEBUG;
-  } else {
-    process.env.DEBUG = namespaces;
-  }
-}
-
-/**
- * Load `namespaces`.
- *
- * @return {String} returns the previously persisted debug modes
- * @api private
- */
-
-function load() {
-  return process.env.DEBUG;
-}
-
-/**
- * Copied from `node/src/node.js`.
- *
- * XXX: It's lame that node doesn't expose this API out-of-the-box. It also
- * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.
- */
-
-function createWritableStdioStream (fd) {
-  var stream;
-  var tty_wrap = process.binding('tty_wrap');
-
-  // Note stream._type is used for test-module-load-list.js
-
-  switch (tty_wrap.guessHandleType(fd)) {
-    case 'TTY':
-      stream = new tty.WriteStream(fd);
-      stream._type = 'tty';
-
-      // Hack to have stream not keep the event loop alive.
-      // See https://github.com/joyent/node/issues/1726
-      if (stream._handle && stream._handle.unref) {
-        stream._handle.unref();
-      }
-      break;
-
-    case 'FILE':
-      var fs = require('fs');
-      stream = new fs.SyncWriteStream(fd, { autoClose: false });
-      stream._type = 'fs';
-      break;
-
-    case 'PIPE':
-    case 'TCP':
-      var net = require('net');
-      stream = new net.Socket({
-        fd: fd,
-        readable: false,
-        writable: true
-      });
-
-      // FIXME Should probably have an option in net.Socket to create a
-      // stream from an existing fd which is writable only. But for now
-      // we'll just add this hack and set the `readable` member to false.
-      // Test: ./node test/fixtures/echo.js < /etc/passwd
-      stream.readable = false;
-      stream.read = null;
-      stream._type = 'pipe';
-
-      // FIXME Hack to have stream not keep the event loop alive.
-      // See https://github.com/joyent/node/issues/1726
-      if (stream._handle && stream._handle.unref) {
-        stream._handle.unref();
-      }
-      break;
-
-    default:
-      // Probably an error on in uv_guess_handle()
-      throw new Error('Implement me. Unknown stream file type!');
-  }
-
-  // For supporting legacy API we put the FD here.
-  stream.fd = fd;
-
-  stream._isStdio = true;
-
-  return stream;
-}
-
-/**
- * Enable namespaces listed in `process.env.DEBUG` initially.
- */
-
-exports.enable(load());

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/compression/node_modules/debug/package.json
----------------------------------------------------------------------
diff --git a/node_modules/compression/node_modules/debug/package.json b/node_modules/compression/node_modules/debug/package.json
deleted file mode 100644
index fd8cac0..0000000
--- a/node_modules/compression/node_modules/debug/package.json
+++ /dev/null
@@ -1,107 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "debug@~2.2.0",
-        "scope": null,
-        "escapedName": "debug",
-        "name": "debug",
-        "rawSpec": "~2.2.0",
-        "spec": ">=2.2.0 <2.3.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/compression"
-    ]
-  ],
-  "_from": "debug@>=2.2.0 <2.3.0",
-  "_id": "debug@2.2.0",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/compression/debug",
-  "_nodeVersion": "0.12.2",
-  "_npmUser": {
-    "name": "tootallnate",
-    "email": "nathan@tootallnate.net"
-  },
-  "_npmVersion": "2.7.4",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "debug@~2.2.0",
-    "scope": null,
-    "escapedName": "debug",
-    "name": "debug",
-    "rawSpec": "~2.2.0",
-    "spec": ">=2.2.0 <2.3.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/compression"
-  ],
-  "_resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
-  "_shasum": "f87057e995b1a1f6ae6a4960664137bc56f039da",
-  "_shrinkwrap": null,
-  "_spec": "debug@~2.2.0",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/compression",
-  "author": {
-    "name": "TJ Holowaychuk",
-    "email": "tj@vision-media.ca"
-  },
-  "browser": "./browser.js",
-  "bugs": {
-    "url": "https://github.com/visionmedia/debug/issues"
-  },
-  "component": {
-    "scripts": {
-      "debug/index.js": "browser.js",
-      "debug/debug.js": "debug.js"
-    }
-  },
-  "contributors": [
-    {
-      "name": "Nathan Rajlich",
-      "email": "nathan@tootallnate.net",
-      "url": "http://n8.io"
-    }
-  ],
-  "dependencies": {
-    "ms": "0.7.1"
-  },
-  "description": "small debugging utility",
-  "devDependencies": {
-    "browserify": "9.0.3",
-    "mocha": "*"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "f87057e995b1a1f6ae6a4960664137bc56f039da",
-    "tarball": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz"
-  },
-  "gitHead": "b38458422b5aa8aa6d286b10dfe427e8a67e2b35",
-  "homepage": "https://github.com/visionmedia/debug",
-  "keywords": [
-    "debug",
-    "log",
-    "debugger"
-  ],
-  "license": "MIT",
-  "main": "./node.js",
-  "maintainers": [
-    {
-      "name": "tjholowaychuk",
-      "email": "tj@vision-media.ca"
-    },
-    {
-      "name": "tootallnate",
-      "email": "nathan@tootallnate.net"
-    }
-  ],
-  "name": "debug",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/visionmedia/debug.git"
-  },
-  "scripts": {},
-  "version": "2.2.0"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/compression/node_modules/ms/.npmignore
----------------------------------------------------------------------
diff --git a/node_modules/compression/node_modules/ms/.npmignore b/node_modules/compression/node_modules/ms/.npmignore
deleted file mode 100644
index d1aa0ce..0000000
--- a/node_modules/compression/node_modules/ms/.npmignore
+++ /dev/null
@@ -1,5 +0,0 @@
-node_modules
-test
-History.md
-Makefile
-component.json

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/compression/node_modules/ms/History.md
----------------------------------------------------------------------
diff --git a/node_modules/compression/node_modules/ms/History.md b/node_modules/compression/node_modules/ms/History.md
deleted file mode 100644
index 32fdfc1..0000000
--- a/node_modules/compression/node_modules/ms/History.md
+++ /dev/null
@@ -1,66 +0,0 @@
-
-0.7.1 / 2015-04-20
-==================
-
-  * prevent extraordinary long inputs (@evilpacket)
-  * Fixed broken readme link
-
-0.7.0 / 2014-11-24
-==================
-
- * add time abbreviations, updated tests and readme for the new units
- * fix example in the readme.
- * add LICENSE file
-
-0.6.2 / 2013-12-05
-==================
-
- * Adding repository section to package.json to suppress warning from NPM.
-
-0.6.1 / 2013-05-10
-==================
-
-  * fix singularization [visionmedia]
-
-0.6.0 / 2013-03-15
-==================
-
-  * fix minutes
-
-0.5.1 / 2013-02-24
-==================
-
-  * add component namespace
-
-0.5.0 / 2012-11-09
-==================
-
-  * add short formatting as default and .long option
-  * add .license property to component.json
-  * add version to component.json
-
-0.4.0 / 2012-10-22
-==================
-
-  * add rounding to fix crazy decimals
-
-0.3.0 / 2012-09-07
-==================
-
-  * fix `ms(<String>)` [visionmedia]
-
-0.2.0 / 2012-09-03
-==================
-
-  * add component.json [visionmedia]
-  * add days support [visionmedia]
-  * add hours support [visionmedia]
-  * add minutes support [visionmedia]
-  * add seconds support [visionmedia]
-  * add ms string support [visionmedia]
-  * refactor tests to facilitate ms(number) [visionmedia]
-
-0.1.0 / 2012-03-07
-==================
-
-  * Initial release

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/compression/node_modules/ms/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/compression/node_modules/ms/LICENSE b/node_modules/compression/node_modules/ms/LICENSE
deleted file mode 100644
index 6c07561..0000000
--- a/node_modules/compression/node_modules/ms/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2014 Guillermo Rauch <ra...@gmail.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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/compression/node_modules/ms/README.md
----------------------------------------------------------------------
diff --git a/node_modules/compression/node_modules/ms/README.md b/node_modules/compression/node_modules/ms/README.md
deleted file mode 100644
index 9b4fd03..0000000
--- a/node_modules/compression/node_modules/ms/README.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# ms.js: miliseconds conversion utility
-
-```js
-ms('2 days')  // 172800000
-ms('1d')      // 86400000
-ms('10h')     // 36000000
-ms('2.5 hrs') // 9000000
-ms('2h')      // 7200000
-ms('1m')      // 60000
-ms('5s')      // 5000
-ms('100')     // 100
-```
-
-```js
-ms(60000)             // "1m"
-ms(2 * 60000)         // "2m"
-ms(ms('10 hours'))    // "10h"
-```
-
-```js
-ms(60000, { long: true })             // "1 minute"
-ms(2 * 60000, { long: true })         // "2 minutes"
-ms(ms('10 hours'), { long: true })    // "10 hours"
-```
-
-- Node/Browser compatible. Published as [`ms`](https://www.npmjs.org/package/ms) in [NPM](http://nodejs.org/download).
-- If a number is supplied to `ms`, a string with a unit is returned.
-- If a string that contains the number is supplied, it returns it as
-a number (e.g: it returns `100` for `'100'`).
-- If you pass a string with a number and a valid unit, the number of
-equivalent ms is returned.
-
-## License
-
-MIT

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/compression/node_modules/ms/index.js
----------------------------------------------------------------------
diff --git a/node_modules/compression/node_modules/ms/index.js b/node_modules/compression/node_modules/ms/index.js
deleted file mode 100644
index 4f92771..0000000
--- a/node_modules/compression/node_modules/ms/index.js
+++ /dev/null
@@ -1,125 +0,0 @@
-/**
- * Helpers.
- */
-
-var s = 1000;
-var m = s * 60;
-var h = m * 60;
-var d = h * 24;
-var y = d * 365.25;
-
-/**
- * Parse or format the given `val`.
- *
- * Options:
- *
- *  - `long` verbose formatting [false]
- *
- * @param {String|Number} val
- * @param {Object} options
- * @return {String|Number}
- * @api public
- */
-
-module.exports = function(val, options){
-  options = options || {};
-  if ('string' == typeof val) return parse(val);
-  return options.long
-    ? long(val)
-    : short(val);
-};
-
-/**
- * Parse the given `str` and return milliseconds.
- *
- * @param {String} str
- * @return {Number}
- * @api private
- */
-
-function parse(str) {
-  str = '' + str;
-  if (str.length > 10000) return;
-  var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str);
-  if (!match) return;
-  var n = parseFloat(match[1]);
-  var type = (match[2] || 'ms').toLowerCase();
-  switch (type) {
-    case 'years':
-    case 'year':
-    case 'yrs':
-    case 'yr':
-    case 'y':
-      return n * y;
-    case 'days':
-    case 'day':
-    case 'd':
-      return n * d;
-    case 'hours':
-    case 'hour':
-    case 'hrs':
-    case 'hr':
-    case 'h':
-      return n * h;
-    case 'minutes':
-    case 'minute':
-    case 'mins':
-    case 'min':
-    case 'm':
-      return n * m;
-    case 'seconds':
-    case 'second':
-    case 'secs':
-    case 'sec':
-    case 's':
-      return n * s;
-    case 'milliseconds':
-    case 'millisecond':
-    case 'msecs':
-    case 'msec':
-    case 'ms':
-      return n;
-  }
-}
-
-/**
- * Short format for `ms`.
- *
- * @param {Number} ms
- * @return {String}
- * @api private
- */
-
-function short(ms) {
-  if (ms >= d) return Math.round(ms / d) + 'd';
-  if (ms >= h) return Math.round(ms / h) + 'h';
-  if (ms >= m) return Math.round(ms / m) + 'm';
-  if (ms >= s) return Math.round(ms / s) + 's';
-  return ms + 'ms';
-}
-
-/**
- * Long format for `ms`.
- *
- * @param {Number} ms
- * @return {String}
- * @api private
- */
-
-function long(ms) {
-  return plural(ms, d, 'day')
-    || plural(ms, h, 'hour')
-    || plural(ms, m, 'minute')
-    || plural(ms, s, 'second')
-    || ms + ' ms';
-}
-
-/**
- * Pluralization helper.
- */
-
-function plural(ms, n, name) {
-  if (ms < n) return;
-  if (ms < n * 1.5) return Math.floor(ms / n) + ' ' + name;
-  return Math.ceil(ms / n) + ' ' + name + 's';
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/compression/node_modules/ms/package.json
----------------------------------------------------------------------
diff --git a/node_modules/compression/node_modules/ms/package.json b/node_modules/compression/node_modules/ms/package.json
deleted file mode 100644
index 66f4377..0000000
--- a/node_modules/compression/node_modules/ms/package.json
+++ /dev/null
@@ -1,83 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "ms@0.7.1",
-        "scope": null,
-        "escapedName": "ms",
-        "name": "ms",
-        "rawSpec": "0.7.1",
-        "spec": "0.7.1",
-        "type": "version"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/compression/node_modules/debug"
-    ]
-  ],
-  "_from": "ms@0.7.1",
-  "_id": "ms@0.7.1",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/compression/ms",
-  "_nodeVersion": "0.12.2",
-  "_npmUser": {
-    "name": "rauchg",
-    "email": "rauchg@gmail.com"
-  },
-  "_npmVersion": "2.7.5",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "ms@0.7.1",
-    "scope": null,
-    "escapedName": "ms",
-    "name": "ms",
-    "rawSpec": "0.7.1",
-    "spec": "0.7.1",
-    "type": "version"
-  },
-  "_requiredBy": [
-    "/compression/debug"
-  ],
-  "_resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
-  "_shasum": "9cd13c03adbff25b65effde7ce864ee952017098",
-  "_shrinkwrap": null,
-  "_spec": "ms@0.7.1",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/compression/node_modules/debug",
-  "bugs": {
-    "url": "https://github.com/guille/ms.js/issues"
-  },
-  "component": {
-    "scripts": {
-      "ms/index.js": "index.js"
-    }
-  },
-  "dependencies": {},
-  "description": "Tiny ms conversion utility",
-  "devDependencies": {
-    "expect.js": "*",
-    "mocha": "*",
-    "serve": "*"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "9cd13c03adbff25b65effde7ce864ee952017098",
-    "tarball": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz"
-  },
-  "gitHead": "713dcf26d9e6fd9dbc95affe7eff9783b7f1b909",
-  "homepage": "https://github.com/guille/ms.js",
-  "main": "./index",
-  "maintainers": [
-    {
-      "name": "rauchg",
-      "email": "rauchg@gmail.com"
-    }
-  ],
-  "name": "ms",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/guille/ms.js.git"
-  },
-  "scripts": {},
-  "version": "0.7.1"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/compression/package.json
----------------------------------------------------------------------
diff --git a/node_modules/compression/package.json b/node_modules/compression/package.json
deleted file mode 100644
index 0281a73..0000000
--- a/node_modules/compression/package.json
+++ /dev/null
@@ -1,117 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "compression@^1.6.0",
-        "scope": null,
-        "escapedName": "compression",
-        "name": "compression",
-        "rawSpec": "^1.6.0",
-        "spec": ">=1.6.0 <2.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/hexo-server"
-    ]
-  ],
-  "_from": "compression@>=1.6.0 <2.0.0",
-  "_id": "compression@1.6.2",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/compression",
-  "_nodeVersion": "4.4.3",
-  "_npmOperationalInternal": {
-    "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/compression-1.6.2.tgz_1463095977791_0.03453603922389448"
-  },
-  "_npmUser": {
-    "name": "dougwilson",
-    "email": "doug@somethingdoug.com"
-  },
-  "_npmVersion": "2.15.1",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "compression@^1.6.0",
-    "scope": null,
-    "escapedName": "compression",
-    "name": "compression",
-    "rawSpec": "^1.6.0",
-    "spec": ">=1.6.0 <2.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/hexo-server"
-  ],
-  "_resolved": "https://registry.npmjs.org/compression/-/compression-1.6.2.tgz",
-  "_shasum": "cceb121ecc9d09c52d7ad0c3350ea93ddd402bc3",
-  "_shrinkwrap": null,
-  "_spec": "compression@^1.6.0",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/hexo-server",
-  "bugs": {
-    "url": "https://github.com/expressjs/compression/issues"
-  },
-  "contributors": [
-    {
-      "name": "Douglas Christopher Wilson",
-      "email": "doug@somethingdoug.com"
-    },
-    {
-      "name": "Jonathan Ong",
-      "email": "me@jongleberry.com",
-      "url": "http://jongleberry.com"
-    }
-  ],
-  "dependencies": {
-    "accepts": "~1.3.3",
-    "bytes": "2.3.0",
-    "compressible": "~2.0.8",
-    "debug": "~2.2.0",
-    "on-headers": "~1.0.1",
-    "vary": "~1.1.0"
-  },
-  "description": "Node.js compression middleware",
-  "devDependencies": {
-    "eslint": "2.9.0",
-    "eslint-config-standard": "5.3.1",
-    "eslint-plugin-promise": "1.1.0",
-    "eslint-plugin-standard": "1.3.2",
-    "istanbul": "0.4.3",
-    "mocha": "2.4.5",
-    "supertest": "1.1.0"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "cceb121ecc9d09c52d7ad0c3350ea93ddd402bc3",
-    "tarball": "https://registry.npmjs.org/compression/-/compression-1.6.2.tgz"
-  },
-  "engines": {
-    "node": ">= 0.8.0"
-  },
-  "files": [
-    "LICENSE",
-    "HISTORY.md",
-    "index.js"
-  ],
-  "gitHead": "b9c63ced82b9f719cd5d9fd250c8432b00752d89",
-  "homepage": "https://github.com/expressjs/compression#readme",
-  "license": "MIT",
-  "maintainers": [
-    {
-      "name": "dougwilson",
-      "email": "doug@somethingdoug.com"
-    }
-  ],
-  "name": "compression",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/expressjs/compression.git"
-  },
-  "scripts": {
-    "lint": "eslint **/*.js",
-    "test": "mocha --check-leaks --reporter spec --bail",
-    "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot",
-    "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec"
-  },
-  "version": "1.6.2"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/concat-map/.travis.yml
----------------------------------------------------------------------
diff --git a/node_modules/concat-map/.travis.yml b/node_modules/concat-map/.travis.yml
deleted file mode 100644
index f1d0f13..0000000
--- a/node_modules/concat-map/.travis.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-language: node_js
-node_js:
-  - 0.4
-  - 0.6

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/concat-map/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/concat-map/LICENSE b/node_modules/concat-map/LICENSE
deleted file mode 100644
index ee27ba4..0000000
--- a/node_modules/concat-map/LICENSE
+++ /dev/null
@@ -1,18 +0,0 @@
-This software is released under the MIT license:
-
-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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/concat-map/README.markdown
----------------------------------------------------------------------
diff --git a/node_modules/concat-map/README.markdown b/node_modules/concat-map/README.markdown
deleted file mode 100644
index 408f70a..0000000
--- a/node_modules/concat-map/README.markdown
+++ /dev/null
@@ -1,62 +0,0 @@
-concat-map
-==========
-
-Concatenative mapdashery.
-
-[![browser support](http://ci.testling.com/substack/node-concat-map.png)](http://ci.testling.com/substack/node-concat-map)
-
-[![build status](https://secure.travis-ci.org/substack/node-concat-map.png)](http://travis-ci.org/substack/node-concat-map)
-
-example
-=======
-
-``` js
-var concatMap = require('concat-map');
-var xs = [ 1, 2, 3, 4, 5, 6 ];
-var ys = concatMap(xs, function (x) {
-    return x % 2 ? [ x - 0.1, x, x + 0.1 ] : [];
-});
-console.dir(ys);
-```
-
-***
-
-```
-[ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]
-```
-
-methods
-=======
-
-``` js
-var concatMap = require('concat-map')
-```
-
-concatMap(xs, fn)
------------------
-
-Return an array of concatenated elements by calling `fn(x, i)` for each element
-`x` and each index `i` in the array `xs`.
-
-When `fn(x, i)` returns an array, its result will be concatenated with the
-result array. If `fn(x, i)` returns anything else, that value will be pushed
-onto the end of the result array.
-
-install
-=======
-
-With [npm](http://npmjs.org) do:
-
-```
-npm install concat-map
-```
-
-license
-=======
-
-MIT
-
-notes
-=====
-
-This module was written while sitting high above the ground in a tree.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/concat-map/example/map.js
----------------------------------------------------------------------
diff --git a/node_modules/concat-map/example/map.js b/node_modules/concat-map/example/map.js
deleted file mode 100644
index 3365621..0000000
--- a/node_modules/concat-map/example/map.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var concatMap = require('../');
-var xs = [ 1, 2, 3, 4, 5, 6 ];
-var ys = concatMap(xs, function (x) {
-    return x % 2 ? [ x - 0.1, x, x + 0.1 ] : [];
-});
-console.dir(ys);

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/concat-map/index.js
----------------------------------------------------------------------
diff --git a/node_modules/concat-map/index.js b/node_modules/concat-map/index.js
deleted file mode 100644
index b29a781..0000000
--- a/node_modules/concat-map/index.js
+++ /dev/null
@@ -1,13 +0,0 @@
-module.exports = function (xs, fn) {
-    var res = [];
-    for (var i = 0; i < xs.length; i++) {
-        var x = fn(xs[i], i);
-        if (isArray(x)) res.push.apply(res, x);
-        else res.push(x);
-    }
-    return res;
-};
-
-var isArray = Array.isArray || function (xs) {
-    return Object.prototype.toString.call(xs) === '[object Array]';
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/concat-map/package.json
----------------------------------------------------------------------
diff --git a/node_modules/concat-map/package.json b/node_modules/concat-map/package.json
deleted file mode 100644
index 8a6b559..0000000
--- a/node_modules/concat-map/package.json
+++ /dev/null
@@ -1,118 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "concat-map@0.0.1",
-        "scope": null,
-        "escapedName": "concat-map",
-        "name": "concat-map",
-        "rawSpec": "0.0.1",
-        "spec": "0.0.1",
-        "type": "version"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/brace-expansion"
-    ]
-  ],
-  "_from": "concat-map@0.0.1",
-  "_id": "concat-map@0.0.1",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/concat-map",
-  "_npmUser": {
-    "name": "substack",
-    "email": "mail@substack.net"
-  },
-  "_npmVersion": "1.3.21",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "concat-map@0.0.1",
-    "scope": null,
-    "escapedName": "concat-map",
-    "name": "concat-map",
-    "rawSpec": "0.0.1",
-    "spec": "0.0.1",
-    "type": "version"
-  },
-  "_requiredBy": [
-    "/brace-expansion"
-  ],
-  "_resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
-  "_shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b",
-  "_shrinkwrap": null,
-  "_spec": "concat-map@0.0.1",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/brace-expansion",
-  "author": {
-    "name": "James Halliday",
-    "email": "mail@substack.net",
-    "url": "http://substack.net"
-  },
-  "bugs": {
-    "url": "https://github.com/substack/node-concat-map/issues"
-  },
-  "dependencies": {},
-  "description": "concatenative mapdashery",
-  "devDependencies": {
-    "tape": "~2.4.0"
-  },
-  "directories": {
-    "example": "example",
-    "test": "test"
-  },
-  "dist": {
-    "shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b",
-    "tarball": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
-  },
-  "homepage": "https://github.com/substack/node-concat-map",
-  "keywords": [
-    "concat",
-    "concatMap",
-    "map",
-    "functional",
-    "higher-order"
-  ],
-  "license": "MIT",
-  "main": "index.js",
-  "maintainers": [
-    {
-      "name": "substack",
-      "email": "mail@substack.net"
-    }
-  ],
-  "name": "concat-map",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/substack/node-concat-map.git"
-  },
-  "scripts": {
-    "test": "tape test/*.js"
-  },
-  "testling": {
-    "files": "test/*.js",
-    "browsers": {
-      "ie": [
-        6,
-        7,
-        8,
-        9
-      ],
-      "ff": [
-        3.5,
-        10,
-        15
-      ],
-      "chrome": [
-        10,
-        22
-      ],
-      "safari": [
-        5.1
-      ],
-      "opera": [
-        12
-      ]
-    }
-  },
-  "version": "0.0.1"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/concat-map/test/map.js
----------------------------------------------------------------------
diff --git a/node_modules/concat-map/test/map.js b/node_modules/concat-map/test/map.js
deleted file mode 100644
index fdbd702..0000000
--- a/node_modules/concat-map/test/map.js
+++ /dev/null
@@ -1,39 +0,0 @@
-var concatMap = require('../');
-var test = require('tape');
-
-test('empty or not', function (t) {
-    var xs = [ 1, 2, 3, 4, 5, 6 ];
-    var ixes = [];
-    var ys = concatMap(xs, function (x, ix) {
-        ixes.push(ix);
-        return x % 2 ? [ x - 0.1, x, x + 0.1 ] : [];
-    });
-    t.same(ys, [ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]);
-    t.same(ixes, [ 0, 1, 2, 3, 4, 5 ]);
-    t.end();
-});
-
-test('always something', function (t) {
-    var xs = [ 'a', 'b', 'c', 'd' ];
-    var ys = concatMap(xs, function (x) {
-        return x === 'b' ? [ 'B', 'B', 'B' ] : [ x ];
-    });
-    t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]);
-    t.end();
-});
-
-test('scalars', function (t) {
-    var xs = [ 'a', 'b', 'c', 'd' ];
-    var ys = concatMap(xs, function (x) {
-        return x === 'b' ? [ 'B', 'B', 'B' ] : x;
-    });
-    t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]);
-    t.end();
-});
-
-test('undefs', function (t) {
-    var xs = [ 'a', 'b', 'c', 'd' ];
-    var ys = concatMap(xs, function () {});
-    t.same(ys, [ undefined, undefined, undefined, undefined ]);
-    t.end();
-});



[34/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dotjs/_limitProperties.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dotjs/_limitProperties.js b/node_modules/ajv/lib/dotjs/_limitProperties.js
deleted file mode 100644
index 74c0851..0000000
--- a/node_modules/ajv/lib/dotjs/_limitProperties.js
+++ /dev/null
@@ -1,76 +0,0 @@
-'use strict';
-module.exports = function generate__limitProperties(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $isData = it.opts.v5 && $schema && $schema.$data,
-    $schemaValue;
-  if ($isData) {
-    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
-    $schemaValue = 'schema' + $lvl;
-  } else {
-    $schemaValue = $schema;
-  }
-  var $op = $keyword == 'maxProperties' ? '>' : '<';
-  out += 'if ( ';
-  if ($isData) {
-    out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || ';
-  }
-  out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';
-  var $errorKeyword = $keyword;
-  var $$outStack = $$outStack || [];
-  $$outStack.push(out);
-  out = ''; /* istanbul ignore else */
-  if (it.createErrors !== false) {
-    out += ' { keyword: \'' + ($errorKeyword || '_limitProperties') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';
-    if (it.opts.messages !== false) {
-      out += ' , message: \'should NOT have ';
-      if ($keyword == 'maxProperties') {
-        out += 'more';
-      } else {
-        out += 'less';
-      }
-      out += ' than ';
-      if ($isData) {
-        out += '\' + ' + ($schemaValue) + ' + \'';
-      } else {
-        out += '' + ($schema);
-      }
-      out += ' properties\' ';
-    }
-    if (it.opts.verbose) {
-      out += ' , schema:  ';
-      if ($isData) {
-        out += 'validate.schema' + ($schemaPath);
-      } else {
-        out += '' + ($schema);
-      }
-      out += '         , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-    }
-    out += ' } ';
-  } else {
-    out += ' {} ';
-  }
-  var __err = out;
-  out = $$outStack.pop();
-  if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-    if (it.async) {
-      out += ' throw new ValidationError([' + (__err) + ']); ';
-    } else {
-      out += ' validate.errors = [' + (__err) + ']; return false; ';
-    }
-  } else {
-    out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-  }
-  out += '} ';
-  if ($breakOnError) {
-    out += ' else { ';
-  }
-  return out;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dotjs/allOf.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dotjs/allOf.js b/node_modules/ajv/lib/dotjs/allOf.js
deleted file mode 100644
index 0063ecf..0000000
--- a/node_modules/ajv/lib/dotjs/allOf.js
+++ /dev/null
@@ -1,43 +0,0 @@
-'use strict';
-module.exports = function generate_allOf(it, $keyword) {
-  var out = ' ';
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $it = it.util.copy(it);
-  var $closingBraces = '';
-  $it.level++;
-  var $nextValid = 'valid' + $it.level;
-  var $currentBaseId = $it.baseId,
-    $allSchemasEmpty = true;
-  var arr1 = $schema;
-  if (arr1) {
-    var $sch, $i = -1,
-      l1 = arr1.length - 1;
-    while ($i < l1) {
-      $sch = arr1[$i += 1];
-      if (it.util.schemaHasRules($sch, it.RULES.all)) {
-        $allSchemasEmpty = false;
-        $it.schema = $sch;
-        $it.schemaPath = $schemaPath + '[' + $i + ']';
-        $it.errSchemaPath = $errSchemaPath + '/' + $i;
-        out += '  ' + (it.validate($it)) + ' ';
-        $it.baseId = $currentBaseId;
-        if ($breakOnError) {
-          out += ' if (' + ($nextValid) + ') { ';
-          $closingBraces += '}';
-        }
-      }
-    }
-  }
-  if ($breakOnError) {
-    if ($allSchemasEmpty) {
-      out += ' if (true) { ';
-    } else {
-      out += ' ' + ($closingBraces.slice(0, -1)) + ' ';
-    }
-  }
-  out = it.util.cleanUpCode(out);
-  return out;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dotjs/anyOf.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dotjs/anyOf.js b/node_modules/ajv/lib/dotjs/anyOf.js
deleted file mode 100644
index 3d24b89..0000000
--- a/node_modules/ajv/lib/dotjs/anyOf.js
+++ /dev/null
@@ -1,66 +0,0 @@
-'use strict';
-module.exports = function generate_anyOf(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $valid = 'valid' + $lvl;
-  var $errs = 'errs__' + $lvl;
-  var $it = it.util.copy(it);
-  var $closingBraces = '';
-  $it.level++;
-  var $nextValid = 'valid' + $it.level;
-  var $noEmptySchema = $schema.every(function($sch) {
-    return it.util.schemaHasRules($sch, it.RULES.all);
-  });
-  if ($noEmptySchema) {
-    var $currentBaseId = $it.baseId;
-    out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false;  ';
-    var $wasComposite = it.compositeRule;
-    it.compositeRule = $it.compositeRule = true;
-    var arr1 = $schema;
-    if (arr1) {
-      var $sch, $i = -1,
-        l1 = arr1.length - 1;
-      while ($i < l1) {
-        $sch = arr1[$i += 1];
-        $it.schema = $sch;
-        $it.schemaPath = $schemaPath + '[' + $i + ']';
-        $it.errSchemaPath = $errSchemaPath + '/' + $i;
-        out += '  ' + (it.validate($it)) + ' ';
-        $it.baseId = $currentBaseId;
-        out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';
-        $closingBraces += '}';
-      }
-    }
-    it.compositeRule = $it.compositeRule = $wasComposite;
-    out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') {  var err =   '; /* istanbul ignore else */
-    if (it.createErrors !== false) {
-      out += ' { keyword: \'' + ($errorKeyword || 'anyOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
-      if (it.opts.messages !== false) {
-        out += ' , message: \'should match some schema in anyOf\' ';
-      }
-      if (it.opts.verbose) {
-        out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-      }
-      out += ' } ';
-    } else {
-      out += ' {} ';
-    }
-    out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else {  errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';
-    if (it.opts.allErrors) {
-      out += ' } ';
-    }
-    out = it.util.cleanUpCode(out);
-  } else {
-    if ($breakOnError) {
-      out += ' if (true) { ';
-    }
-  }
-  return out;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dotjs/constant.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dotjs/constant.js b/node_modules/ajv/lib/dotjs/constant.js
deleted file mode 100644
index 9e8f371..0000000
--- a/node_modules/ajv/lib/dotjs/constant.js
+++ /dev/null
@@ -1,53 +0,0 @@
-'use strict';
-module.exports = function generate_constant(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $valid = 'valid' + $lvl;
-  var $isData = it.opts.v5 && $schema && $schema.$data,
-    $schemaValue;
-  if ($isData) {
-    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
-    $schemaValue = 'schema' + $lvl;
-  } else {
-    $schemaValue = $schema;
-  }
-  if (!$isData) {
-    out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';
-  }
-  out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') {   ';
-  var $$outStack = $$outStack || [];
-  $$outStack.push(out);
-  out = ''; /* istanbul ignore else */
-  if (it.createErrors !== false) {
-    out += ' { keyword: \'' + ($errorKeyword || 'constant') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
-    if (it.opts.messages !== false) {
-      out += ' , message: \'should be equal to constant\' ';
-    }
-    if (it.opts.verbose) {
-      out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-    }
-    out += ' } ';
-  } else {
-    out += ' {} ';
-  }
-  var __err = out;
-  out = $$outStack.pop();
-  if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-    if (it.async) {
-      out += ' throw new ValidationError([' + (__err) + ']); ';
-    } else {
-      out += ' validate.errors = [' + (__err) + ']; return false; ';
-    }
-  } else {
-    out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-  }
-  out += ' }';
-  return out;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dotjs/custom.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dotjs/custom.js b/node_modules/ajv/lib/dotjs/custom.js
deleted file mode 100644
index def37df..0000000
--- a/node_modules/ajv/lib/dotjs/custom.js
+++ /dev/null
@@ -1,221 +0,0 @@
-'use strict';
-module.exports = function generate_custom(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $valid = 'valid' + $lvl;
-  var $errs = 'errs__' + $lvl;
-  var $isData = it.opts.v5 && $schema && $schema.$data,
-    $schemaValue;
-  if ($isData) {
-    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
-    $schemaValue = 'schema' + $lvl;
-  } else {
-    $schemaValue = $schema;
-  }
-  var $rule = this,
-    $definition = 'definition' + $lvl,
-    $rDef = $rule.definition,
-    $validate = $rDef.validate,
-    $compile, $inline, $macro, $ruleValidate, $validateCode;
-  if ($isData && $rDef.$data) {
-    $validateCode = 'keywordValidate' + $lvl;
-    var $validateSchema = $rDef.validateSchema;
-    out += ' var ' + ($definition) + ' = RULES.custom[\'' + ($keyword) + '\'].definition; var ' + ($validateCode) + ' = ' + ($definition) + '.validate;';
-  } else {
-    $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);
-    $schemaValue = 'validate.schema' + $schemaPath;
-    $validateCode = $ruleValidate.code;
-    $compile = $rDef.compile;
-    $inline = $rDef.inline;
-    $macro = $rDef.macro;
-  }
-  var $ruleErrs = $validateCode + '.errors',
-    $i = 'i' + $lvl,
-    $ruleErr = 'ruleErr' + $lvl,
-    $asyncKeyword = $rDef.async;
-  if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema');
-  if (!($inline || $macro)) {
-    out += '' + ($ruleErrs) + ' = null;';
-  }
-  out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';
-  if ($validateSchema) {
-    out += ' ' + ($valid) + ' = ' + ($definition) + '.validateSchema(' + ($schemaValue) + '); if (' + ($valid) + ') {';
-  }
-  if ($inline) {
-    if ($rDef.statements) {
-      out += ' ' + ($ruleValidate.validate) + ' ';
-    } else {
-      out += ' ' + ($valid) + ' = ' + ($ruleValidate.validate) + '; ';
-    }
-  } else if ($macro) {
-    var $it = it.util.copy(it);
-    $it.level++;
-    var $nextValid = 'valid' + $it.level;
-    $it.schema = $ruleValidate.validate;
-    $it.schemaPath = '';
-    var $wasComposite = it.compositeRule;
-    it.compositeRule = $it.compositeRule = true;
-    var $code = it.validate($it).replace(/validate\.schema/g, $validateCode);
-    it.compositeRule = $it.compositeRule = $wasComposite;
-    out += ' ' + ($code);
-  } else {
-    var $$outStack = $$outStack || [];
-    $$outStack.push(out);
-    out = '';
-    out += '  ' + ($validateCode) + '.call( ';
-    if (it.opts.passContext) {
-      out += 'this';
-    } else {
-      out += 'self';
-    }
-    if ($compile || $rDef.schema === false) {
-      out += ' , ' + ($data) + ' ';
-    } else {
-      out += ' , ' + ($schemaValue) + ' , ' + ($data) + ' , validate.schema' + (it.schemaPath) + ' ';
-    }
-    out += ' , (dataPath || \'\')';
-    if (it.errorPath != '""') {
-      out += ' + ' + (it.errorPath);
-    }
-    var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',
-      $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';
-    out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ' , rootData )  ';
-    var def_callRuleValidate = out;
-    out = $$outStack.pop();
-    if ($rDef.errors === false) {
-      out += ' ' + ($valid) + ' = ';
-      if ($asyncKeyword) {
-        out += '' + (it.yieldAwait);
-      }
-      out += '' + (def_callRuleValidate) + '; ';
-    } else {
-      if ($asyncKeyword) {
-        $ruleErrs = 'customErrors' + $lvl;
-        out += ' var ' + ($ruleErrs) + ' = null; try { ' + ($valid) + ' = ' + (it.yieldAwait) + (def_callRuleValidate) + '; } catch (e) { ' + ($valid) + ' = false; if (e instanceof ValidationError) ' + ($ruleErrs) + ' = e.errors; else throw e; } ';
-      } else {
-        out += ' ' + ($ruleErrs) + ' = null; ' + ($valid) + ' = ' + (def_callRuleValidate) + '; ';
-      }
-    }
-  }
-  if ($rDef.modifying) {
-    out += ' ' + ($data) + ' = ' + ($parentData) + '[' + ($parentDataProperty) + '];';
-  }
-  if ($validateSchema) {
-    out += ' }';
-  }
-  if ($rDef.valid) {
-    if ($breakOnError) {
-      out += ' if (true) { ';
-    }
-  } else {
-    out += ' if ( ';
-    if ($rDef.valid === undefined) {
-      out += ' !';
-      if ($macro) {
-        out += '' + ($nextValid);
-      } else {
-        out += '' + ($valid);
-      }
-    } else {
-      out += ' ' + (!$rDef.valid) + ' ';
-    }
-    out += ') { ';
-    $errorKeyword = $rule.keyword;
-    var $$outStack = $$outStack || [];
-    $$outStack.push(out);
-    out = '';
-    var $$outStack = $$outStack || [];
-    $$outStack.push(out);
-    out = ''; /* istanbul ignore else */
-    if (it.createErrors !== false) {
-      out += ' { keyword: \'' + ($errorKeyword || 'custom') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \'' + ($rule.keyword) + '\' } ';
-      if (it.opts.messages !== false) {
-        out += ' , message: \'should pass "' + ($rule.keyword) + '" keyword validation\' ';
-      }
-      if (it.opts.verbose) {
-        out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-      }
-      out += ' } ';
-    } else {
-      out += ' {} ';
-    }
-    var __err = out;
-    out = $$outStack.pop();
-    if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-      if (it.async) {
-        out += ' throw new ValidationError([' + (__err) + ']); ';
-      } else {
-        out += ' validate.errors = [' + (__err) + ']; return false; ';
-      }
-    } else {
-      out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-    }
-    var def_customError = out;
-    out = $$outStack.pop();
-    if ($inline) {
-      if ($rDef.errors) {
-        if ($rDef.errors != 'full') {
-          out += '  for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \'\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = "' + ($errSchemaPath) + '"; } ';
-          if (it.opts.verbose) {
-            out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';
-          }
-          out += ' } ';
-        }
-      } else {
-        if ($rDef.errors === false) {
-          out += ' ' + (def_customError) + ' ';
-        } else {
-          out += ' if (' + ($errs) + ' == errors) { ' + (def_customError) + ' } else {  for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \'\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = "' + ($errSchemaPath) + '"; } ';
-          if (it.opts.verbose) {
-            out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';
-          }
-          out += ' } } ';
-        }
-      }
-    } else if ($macro) {
-      out += '   var err =   '; /* istanbul ignore else */
-      if (it.createErrors !== false) {
-        out += ' { keyword: \'' + ($errorKeyword || 'custom') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \'' + ($rule.keyword) + '\' } ';
-        if (it.opts.messages !== false) {
-          out += ' , message: \'should pass "' + ($rule.keyword) + '" keyword validation\' ';
-        }
-        if (it.opts.verbose) {
-          out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-        }
-        out += ' } ';
-      } else {
-        out += ' {} ';
-      }
-      out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-      if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-        if (it.async) {
-          out += ' throw new ValidationError(vErrors); ';
-        } else {
-          out += ' validate.errors = vErrors; return false; ';
-        }
-      }
-    } else {
-      if ($rDef.errors === false) {
-        out += ' ' + (def_customError) + ' ';
-      } else {
-        out += ' if (Array.isArray(' + ($ruleErrs) + ')) { if (vErrors === null) vErrors = ' + ($ruleErrs) + '; else vErrors = vErrors.concat(' + ($ruleErrs) + '); errors = vErrors.length;  for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \'\') + ' + (it.errorPath) + ';  ' + ($ruleErr) + '.schemaPath = "' + ($errSchemaPath) + '";  ';
-        if (it.opts.verbose) {
-          out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';
-        }
-        out += ' } } else { ' + (def_customError) + ' } ';
-      }
-    }
-    out += ' } ';
-    if ($breakOnError) {
-      out += ' else { ';
-    }
-  }
-  return out;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dotjs/dependencies.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dotjs/dependencies.js b/node_modules/ajv/lib/dotjs/dependencies.js
deleted file mode 100644
index 1b13c20..0000000
--- a/node_modules/ajv/lib/dotjs/dependencies.js
+++ /dev/null
@@ -1,148 +0,0 @@
-'use strict';
-module.exports = function generate_dependencies(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $errs = 'errs__' + $lvl;
-  var $it = it.util.copy(it);
-  var $closingBraces = '';
-  $it.level++;
-  var $nextValid = 'valid' + $it.level;
-  var $schemaDeps = {},
-    $propertyDeps = {};
-  for ($property in $schema) {
-    var $sch = $schema[$property];
-    var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;
-    $deps[$property] = $sch;
-  }
-  out += 'var ' + ($errs) + ' = errors;';
-  var $currentErrorPath = it.errorPath;
-  out += 'var missing' + ($lvl) + ';';
-  for (var $property in $propertyDeps) {
-    $deps = $propertyDeps[$property];
-    out += ' if (' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';
-    if ($breakOnError) {
-      out += ' && ( ';
-      var arr1 = $deps;
-      if (arr1) {
-        var _$property, $i = -1,
-          l1 = arr1.length - 1;
-        while ($i < l1) {
-          _$property = arr1[$i += 1];
-          if ($i) {
-            out += ' || ';
-          }
-          var $prop = it.util.getProperty(_$property);
-          out += ' ( ' + ($data) + ($prop) + ' === undefined && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? _$property : $prop)) + ') ) ';
-        }
-      }
-      out += ')) {  ';
-      var $propertyPath = 'missing' + $lvl,
-        $missingProperty = '\' + ' + $propertyPath + ' + \'';
-      if (it.opts._errorDataPathProperty) {
-        it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;
-      }
-      var $$outStack = $$outStack || [];
-      $$outStack.push(out);
-      out = ''; /* istanbul ignore else */
-      if (it.createErrors !== false) {
-        out += ' { keyword: \'' + ($errorKeyword || 'dependencies') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \'' + (it.util.escapeQuotes($property)) + '\', missingProperty: \'' + ($missingProperty) + '\', depsCount: ' + ($deps.length) + ', deps: \'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(", "))) + '\' } ';
-        if (it.opts.messages !== false) {
-          out += ' , message: \'should have ';
-          if ($deps.length == 1) {
-            out += 'property ' + (it.util.escapeQuotes($deps[0]));
-          } else {
-            out += 'properties ' + (it.util.escapeQuotes($deps.join(", ")));
-          }
-          out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\' ';
-        }
-        if (it.opts.verbose) {
-          out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-        }
-        out += ' } ';
-      } else {
-        out += ' {} ';
-      }
-      var __err = out;
-      out = $$outStack.pop();
-      if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-        if (it.async) {
-          out += ' throw new ValidationError([' + (__err) + ']); ';
-        } else {
-          out += ' validate.errors = [' + (__err) + ']; return false; ';
-        }
-      } else {
-        out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-      }
-    } else {
-      out += ' ) { ';
-      var arr2 = $deps;
-      if (arr2) {
-        var $reqProperty, i2 = -1,
-          l2 = arr2.length - 1;
-        while (i2 < l2) {
-          $reqProperty = arr2[i2 += 1];
-          var $prop = it.util.getProperty($reqProperty),
-            $missingProperty = it.util.escapeQuotes($reqProperty);
-          if (it.opts._errorDataPathProperty) {
-            it.errorPath = it.util.getPath($currentErrorPath, $reqProperty, it.opts.jsonPointers);
-          }
-          out += ' if (' + ($data) + ($prop) + ' === undefined) {  var err =   '; /* istanbul ignore else */
-          if (it.createErrors !== false) {
-            out += ' { keyword: \'' + ($errorKeyword || 'dependencies') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \'' + (it.util.escapeQuotes($property)) + '\', missingProperty: \'' + ($missingProperty) + '\', depsCount: ' + ($deps.length) + ', deps: \'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(", "))) + '\' } ';
-            if (it.opts.messages !== false) {
-              out += ' , message: \'should have ';
-              if ($deps.length == 1) {
-                out += 'property ' + (it.util.escapeQuotes($deps[0]));
-              } else {
-                out += 'properties ' + (it.util.escapeQuotes($deps.join(", ")));
-              }
-              out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\' ';
-            }
-            if (it.opts.verbose) {
-              out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-            }
-            out += ' } ';
-          } else {
-            out += ' {} ';
-          }
-          out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';
-        }
-      }
-    }
-    out += ' }   ';
-    if ($breakOnError) {
-      $closingBraces += '}';
-      out += ' else { ';
-    }
-  }
-  it.errorPath = $currentErrorPath;
-  var $currentBaseId = $it.baseId;
-  for (var $property in $schemaDeps) {
-    var $sch = $schemaDeps[$property];
-    if (it.util.schemaHasRules($sch, it.RULES.all)) {
-      out += ' ' + ($nextValid) + ' = true; if (' + ($data) + (it.util.getProperty($property)) + ' !== undefined) { ';
-      $it.schema = $sch;
-      $it.schemaPath = $schemaPath + it.util.getProperty($property);
-      $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);
-      out += '  ' + (it.validate($it)) + ' ';
-      $it.baseId = $currentBaseId;
-      out += ' }  ';
-      if ($breakOnError) {
-        out += ' if (' + ($nextValid) + ') { ';
-        $closingBraces += '}';
-      }
-    }
-  }
-  if ($breakOnError) {
-    out += '   ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';
-  }
-  out = it.util.cleanUpCode(out);
-  return out;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dotjs/enum.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dotjs/enum.js b/node_modules/ajv/lib/dotjs/enum.js
deleted file mode 100644
index 92c7960..0000000
--- a/node_modules/ajv/lib/dotjs/enum.js
+++ /dev/null
@@ -1,66 +0,0 @@
-'use strict';
-module.exports = function generate_enum(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $valid = 'valid' + $lvl;
-  var $isData = it.opts.v5 && $schema && $schema.$data,
-    $schemaValue;
-  if ($isData) {
-    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
-    $schemaValue = 'schema' + $lvl;
-  } else {
-    $schemaValue = $schema;
-  }
-  var $i = 'i' + $lvl,
-    $vSchema = 'schema' + $lvl;
-  if (!$isData) {
-    out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';';
-  }
-  out += 'var ' + ($valid) + ';';
-  if ($isData) {
-    out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';
-  }
-  out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';
-  if ($isData) {
-    out += '  }  ';
-  }
-  out += ' if (!' + ($valid) + ') {   ';
-  var $$outStack = $$outStack || [];
-  $$outStack.push(out);
-  out = ''; /* istanbul ignore else */
-  if (it.createErrors !== false) {
-    out += ' { keyword: \'' + ($errorKeyword || 'enum') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } ';
-    if (it.opts.messages !== false) {
-      out += ' , message: \'should be equal to one of the allowed values\' ';
-    }
-    if (it.opts.verbose) {
-      out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-    }
-    out += ' } ';
-  } else {
-    out += ' {} ';
-  }
-  var __err = out;
-  out = $$outStack.pop();
-  if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-    if (it.async) {
-      out += ' throw new ValidationError([' + (__err) + ']); ';
-    } else {
-      out += ' validate.errors = [' + (__err) + ']; return false; ';
-    }
-  } else {
-    out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-  }
-  out += ' }';
-  if ($breakOnError) {
-    out += ' else { ';
-  }
-  return out;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dotjs/format.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dotjs/format.js b/node_modules/ajv/lib/dotjs/format.js
deleted file mode 100644
index 09f7efe..0000000
--- a/node_modules/ajv/lib/dotjs/format.js
+++ /dev/null
@@ -1,139 +0,0 @@
-'use strict';
-module.exports = function generate_format(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  if (it.opts.format === false) {
-    if ($breakOnError) {
-      out += ' if (true) { ';
-    }
-    return out;
-  }
-  var $isData = it.opts.v5 && $schema && $schema.$data,
-    $schemaValue;
-  if ($isData) {
-    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
-    $schemaValue = 'schema' + $lvl;
-  } else {
-    $schemaValue = $schema;
-  }
-  var $unknownFormats = it.opts.unknownFormats,
-    $allowUnknown = Array.isArray($unknownFormats);
-  if ($isData) {
-    var $format = 'format' + $lvl;
-    out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var isObject' + ($lvl) + ' = typeof ' + ($format) + ' == \'object\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; if (isObject' + ($lvl) + ') { ';
-    if (it.async) {
-      out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; ';
-    }
-    out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if (  ';
-    if ($isData) {
-      out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'string\') || ';
-    }
-    out += ' (';
-    if ($unknownFormats === true || $allowUnknown) {
-      out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';
-      if ($allowUnknown) {
-        out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';
-      }
-      out += ') || ';
-    }
-    out += ' (' + ($format) + ' && !(typeof ' + ($format) + ' == \'function\' ? ';
-    if (it.async) {
-      out += ' (async' + ($lvl) + ' ? ' + (it.yieldAwait) + ' ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';
-    } else {
-      out += ' ' + ($format) + '(' + ($data) + ') ';
-    }
-    out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';
-  } else {
-    var $format = it.formats[$schema];
-    if (!$format) {
-      if ($unknownFormats === true || ($allowUnknown && $unknownFormats.indexOf($schema) == -1)) {
-        throw new Error('unknown format "' + $schema + '" is used in schema at path "' + it.errSchemaPath + '"');
-      } else {
-        if (!$allowUnknown) {
-          console.warn('unknown format "' + $schema + '" ignored in schema at path "' + it.errSchemaPath + '"');
-          if ($unknownFormats !== 'ignore') console.warn('In the next major version it will throw exception. See option unknownFormats for more information');
-        }
-        if ($breakOnError) {
-          out += ' if (true) { ';
-        }
-        return out;
-      }
-    }
-    var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;
-    if ($isObject) {
-      var $async = $format.async === true;
-      $format = $format.validate;
-    }
-    if ($async) {
-      if (!it.async) throw new Error('async format in sync schema');
-      var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';
-      out += ' if (!(' + (it.yieldAwait) + ' ' + ($formatRef) + '(' + ($data) + '))) { ';
-    } else {
-      out += ' if (! ';
-      var $formatRef = 'formats' + it.util.getProperty($schema);
-      if ($isObject) $formatRef += '.validate';
-      if (typeof $format == 'function') {
-        out += ' ' + ($formatRef) + '(' + ($data) + ') ';
-      } else {
-        out += ' ' + ($formatRef) + '.test(' + ($data) + ') ';
-      }
-      out += ') { ';
-    }
-  }
-  var $$outStack = $$outStack || [];
-  $$outStack.push(out);
-  out = ''; /* istanbul ignore else */
-  if (it.createErrors !== false) {
-    out += ' { keyword: \'' + ($errorKeyword || 'format') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format:  ';
-    if ($isData) {
-      out += '' + ($schemaValue);
-    } else {
-      out += '' + (it.util.toQuotedString($schema));
-    }
-    out += '  } ';
-    if (it.opts.messages !== false) {
-      out += ' , message: \'should match format "';
-      if ($isData) {
-        out += '\' + ' + ($schemaValue) + ' + \'';
-      } else {
-        out += '' + (it.util.escapeQuotes($schema));
-      }
-      out += '"\' ';
-    }
-    if (it.opts.verbose) {
-      out += ' , schema:  ';
-      if ($isData) {
-        out += 'validate.schema' + ($schemaPath);
-      } else {
-        out += '' + (it.util.toQuotedString($schema));
-      }
-      out += '         , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-    }
-    out += ' } ';
-  } else {
-    out += ' {} ';
-  }
-  var __err = out;
-  out = $$outStack.pop();
-  if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-    if (it.async) {
-      out += ' throw new ValidationError([' + (__err) + ']); ';
-    } else {
-      out += ' validate.errors = [' + (__err) + ']; return false; ';
-    }
-  } else {
-    out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-  }
-  out += ' } ';
-  if ($breakOnError) {
-    out += ' else { ';
-  }
-  return out;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dotjs/items.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dotjs/items.js b/node_modules/ajv/lib/dotjs/items.js
deleted file mode 100644
index 7148707..0000000
--- a/node_modules/ajv/lib/dotjs/items.js
+++ /dev/null
@@ -1,145 +0,0 @@
-'use strict';
-module.exports = function generate_items(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $valid = 'valid' + $lvl;
-  var $errs = 'errs__' + $lvl;
-  var $it = it.util.copy(it);
-  var $closingBraces = '';
-  $it.level++;
-  var $nextValid = 'valid' + $it.level;
-  var $idx = 'i' + $lvl,
-    $dataNxt = $it.dataLevel = it.dataLevel + 1,
-    $nextData = 'data' + $dataNxt,
-    $currentBaseId = it.baseId;
-  out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';
-  if (Array.isArray($schema)) {
-    var $additionalItems = it.schema.additionalItems;
-    if ($additionalItems === false) {
-      out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; ';
-      var $currErrSchemaPath = $errSchemaPath;
-      $errSchemaPath = it.errSchemaPath + '/additionalItems';
-      out += '  if (!' + ($valid) + ') {   ';
-      var $$outStack = $$outStack || [];
-      $$outStack.push(out);
-      out = ''; /* istanbul ignore else */
-      if (it.createErrors !== false) {
-        out += ' { keyword: \'' + ($errorKeyword || 'additionalItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } ';
-        if (it.opts.messages !== false) {
-          out += ' , message: \'should NOT have more than ' + ($schema.length) + ' items\' ';
-        }
-        if (it.opts.verbose) {
-          out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-        }
-        out += ' } ';
-      } else {
-        out += ' {} ';
-      }
-      var __err = out;
-      out = $$outStack.pop();
-      if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-        if (it.async) {
-          out += ' throw new ValidationError([' + (__err) + ']); ';
-        } else {
-          out += ' validate.errors = [' + (__err) + ']; return false; ';
-        }
-      } else {
-        out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-      }
-      out += ' } ';
-      $errSchemaPath = $currErrSchemaPath;
-      if ($breakOnError) {
-        $closingBraces += '}';
-        out += ' else { ';
-      }
-    }
-    var arr1 = $schema;
-    if (arr1) {
-      var $sch, $i = -1,
-        l1 = arr1.length - 1;
-      while ($i < l1) {
-        $sch = arr1[$i += 1];
-        if (it.util.schemaHasRules($sch, it.RULES.all)) {
-          out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';
-          var $passData = $data + '[' + $i + ']';
-          $it.schema = $sch;
-          $it.schemaPath = $schemaPath + '[' + $i + ']';
-          $it.errSchemaPath = $errSchemaPath + '/' + $i;
-          $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);
-          $it.dataPathArr[$dataNxt] = $i;
-          var $code = it.validate($it);
-          $it.baseId = $currentBaseId;
-          if (it.util.varOccurences($code, $nextData) < 2) {
-            out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
-          } else {
-            out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
-          }
-          out += ' }  ';
-          if ($breakOnError) {
-            out += ' if (' + ($nextValid) + ') { ';
-            $closingBraces += '}';
-          }
-        }
-      }
-    }
-    if (typeof $additionalItems == 'object' && it.util.schemaHasRules($additionalItems, it.RULES.all)) {
-      $it.schema = $additionalItems;
-      $it.schemaPath = it.schemaPath + '.additionalItems';
-      $it.errSchemaPath = it.errSchemaPath + '/additionalItems';
-      out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') {  for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';
-      $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);
-      var $passData = $data + '[' + $idx + ']';
-      $it.dataPathArr[$dataNxt] = $idx;
-      var $code = it.validate($it);
-      $it.baseId = $currentBaseId;
-      if (it.util.varOccurences($code, $nextData) < 2) {
-        out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
-      } else {
-        out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
-      }
-      if ($breakOnError) {
-        out += ' if (!' + ($nextValid) + ') break; ';
-      }
-      out += ' } }  ';
-      if ($breakOnError) {
-        out += ' if (' + ($nextValid) + ') { ';
-        $closingBraces += '}';
-      }
-    }
-  } else if (it.util.schemaHasRules($schema, it.RULES.all)) {
-    $it.schema = $schema;
-    $it.schemaPath = $schemaPath;
-    $it.errSchemaPath = $errSchemaPath;
-    out += '  for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';
-    $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);
-    var $passData = $data + '[' + $idx + ']';
-    $it.dataPathArr[$dataNxt] = $idx;
-    var $code = it.validate($it);
-    $it.baseId = $currentBaseId;
-    if (it.util.varOccurences($code, $nextData) < 2) {
-      out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
-    } else {
-      out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
-    }
-    if ($breakOnError) {
-      out += ' if (!' + ($nextValid) + ') break; ';
-    }
-    out += ' }  ';
-    if ($breakOnError) {
-      out += ' if (' + ($nextValid) + ') { ';
-      $closingBraces += '}';
-    }
-  }
-  if ($breakOnError) {
-    out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';
-  }
-  out = it.util.cleanUpCode(out);
-  return out;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dotjs/multipleOf.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dotjs/multipleOf.js b/node_modules/ajv/lib/dotjs/multipleOf.js
deleted file mode 100644
index 1f89031..0000000
--- a/node_modules/ajv/lib/dotjs/multipleOf.js
+++ /dev/null
@@ -1,77 +0,0 @@
-'use strict';
-module.exports = function generate_multipleOf(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $isData = it.opts.v5 && $schema && $schema.$data,
-    $schemaValue;
-  if ($isData) {
-    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
-    $schemaValue = 'schema' + $lvl;
-  } else {
-    $schemaValue = $schema;
-  }
-  out += 'var division' + ($lvl) + ';if (';
-  if ($isData) {
-    out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \'number\' || ';
-  }
-  out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', ';
-  if (it.opts.multipleOfPrecision) {
-    out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' ';
-  } else {
-    out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') ';
-  }
-  out += ' ) ';
-  if ($isData) {
-    out += '  )  ';
-  }
-  out += ' ) {   ';
-  var $$outStack = $$outStack || [];
-  $$outStack.push(out);
-  out = ''; /* istanbul ignore else */
-  if (it.createErrors !== false) {
-    out += ' { keyword: \'' + ($errorKeyword || 'multipleOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } ';
-    if (it.opts.messages !== false) {
-      out += ' , message: \'should be multiple of ';
-      if ($isData) {
-        out += '\' + ' + ($schemaValue);
-      } else {
-        out += '' + ($schema) + '\'';
-      }
-    }
-    if (it.opts.verbose) {
-      out += ' , schema:  ';
-      if ($isData) {
-        out += 'validate.schema' + ($schemaPath);
-      } else {
-        out += '' + ($schema);
-      }
-      out += '         , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-    }
-    out += ' } ';
-  } else {
-    out += ' {} ';
-  }
-  var __err = out;
-  out = $$outStack.pop();
-  if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-    if (it.async) {
-      out += ' throw new ValidationError([' + (__err) + ']); ';
-    } else {
-      out += ' validate.errors = [' + (__err) + ']; return false; ';
-    }
-  } else {
-    out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-  }
-  out += '} ';
-  if ($breakOnError) {
-    out += ' else { ';
-  }
-  return out;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dotjs/not.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dotjs/not.js b/node_modules/ajv/lib/dotjs/not.js
deleted file mode 100644
index f1af86d..0000000
--- a/node_modules/ajv/lib/dotjs/not.js
+++ /dev/null
@@ -1,84 +0,0 @@
-'use strict';
-module.exports = function generate_not(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $errs = 'errs__' + $lvl;
-  var $it = it.util.copy(it);
-  $it.level++;
-  var $nextValid = 'valid' + $it.level;
-  if (it.util.schemaHasRules($schema, it.RULES.all)) {
-    $it.schema = $schema;
-    $it.schemaPath = $schemaPath;
-    $it.errSchemaPath = $errSchemaPath;
-    out += ' var ' + ($errs) + ' = errors;  ';
-    var $wasComposite = it.compositeRule;
-    it.compositeRule = $it.compositeRule = true;
-    $it.createErrors = false;
-    var $allErrorsOption;
-    if ($it.opts.allErrors) {
-      $allErrorsOption = $it.opts.allErrors;
-      $it.opts.allErrors = false;
-    }
-    out += ' ' + (it.validate($it)) + ' ';
-    $it.createErrors = true;
-    if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;
-    it.compositeRule = $it.compositeRule = $wasComposite;
-    out += ' if (' + ($nextValid) + ') {   ';
-    var $$outStack = $$outStack || [];
-    $$outStack.push(out);
-    out = ''; /* istanbul ignore else */
-    if (it.createErrors !== false) {
-      out += ' { keyword: \'' + ($errorKeyword || 'not') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
-      if (it.opts.messages !== false) {
-        out += ' , message: \'should NOT be valid\' ';
-      }
-      if (it.opts.verbose) {
-        out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-      }
-      out += ' } ';
-    } else {
-      out += ' {} ';
-    }
-    var __err = out;
-    out = $$outStack.pop();
-    if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-      if (it.async) {
-        out += ' throw new ValidationError([' + (__err) + ']); ';
-      } else {
-        out += ' validate.errors = [' + (__err) + ']; return false; ';
-      }
-    } else {
-      out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-    }
-    out += ' } else {  errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';
-    if (it.opts.allErrors) {
-      out += ' } ';
-    }
-  } else {
-    out += '  var err =   '; /* istanbul ignore else */
-    if (it.createErrors !== false) {
-      out += ' { keyword: \'' + ($errorKeyword || 'not') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
-      if (it.opts.messages !== false) {
-        out += ' , message: \'should NOT be valid\' ';
-      }
-      if (it.opts.verbose) {
-        out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-      }
-      out += ' } ';
-    } else {
-      out += ' {} ';
-    }
-    out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-    if ($breakOnError) {
-      out += ' if (false) { ';
-    }
-  }
-  return out;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dotjs/oneOf.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dotjs/oneOf.js b/node_modules/ajv/lib/dotjs/oneOf.js
deleted file mode 100644
index 077f00a..0000000
--- a/node_modules/ajv/lib/dotjs/oneOf.js
+++ /dev/null
@@ -1,77 +0,0 @@
-'use strict';
-module.exports = function generate_oneOf(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $valid = 'valid' + $lvl;
-  var $errs = 'errs__' + $lvl;
-  var $it = it.util.copy(it);
-  var $closingBraces = '';
-  $it.level++;
-  var $nextValid = 'valid' + $it.level;
-  out += 'var ' + ($errs) + ' = errors;var prevValid' + ($lvl) + ' = false;var ' + ($valid) + ' = false;';
-  var $currentBaseId = $it.baseId;
-  var $wasComposite = it.compositeRule;
-  it.compositeRule = $it.compositeRule = true;
-  var arr1 = $schema;
-  if (arr1) {
-    var $sch, $i = -1,
-      l1 = arr1.length - 1;
-    while ($i < l1) {
-      $sch = arr1[$i += 1];
-      if (it.util.schemaHasRules($sch, it.RULES.all)) {
-        $it.schema = $sch;
-        $it.schemaPath = $schemaPath + '[' + $i + ']';
-        $it.errSchemaPath = $errSchemaPath + '/' + $i;
-        out += '  ' + (it.validate($it)) + ' ';
-        $it.baseId = $currentBaseId;
-      } else {
-        out += ' var ' + ($nextValid) + ' = true; ';
-      }
-      if ($i) {
-        out += ' if (' + ($nextValid) + ' && prevValid' + ($lvl) + ') ' + ($valid) + ' = false; else { ';
-        $closingBraces += '}';
-      }
-      out += ' if (' + ($nextValid) + ') ' + ($valid) + ' = prevValid' + ($lvl) + ' = true;';
-    }
-  }
-  it.compositeRule = $it.compositeRule = $wasComposite;
-  out += '' + ($closingBraces) + 'if (!' + ($valid) + ') {   ';
-  var $$outStack = $$outStack || [];
-  $$outStack.push(out);
-  out = ''; /* istanbul ignore else */
-  if (it.createErrors !== false) {
-    out += ' { keyword: \'' + ($errorKeyword || 'oneOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
-    if (it.opts.messages !== false) {
-      out += ' , message: \'should match exactly one schema in oneOf\' ';
-    }
-    if (it.opts.verbose) {
-      out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-    }
-    out += ' } ';
-  } else {
-    out += ' {} ';
-  }
-  var __err = out;
-  out = $$outStack.pop();
-  if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-    if (it.async) {
-      out += ' throw new ValidationError([' + (__err) + ']); ';
-    } else {
-      out += ' validate.errors = [' + (__err) + ']; return false; ';
-    }
-  } else {
-    out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-  }
-  out += '} else {  errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }';
-  if (it.opts.allErrors) {
-    out += ' } ';
-  }
-  return out;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dotjs/pattern.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dotjs/pattern.js b/node_modules/ajv/lib/dotjs/pattern.js
deleted file mode 100644
index dc22149..0000000
--- a/node_modules/ajv/lib/dotjs/pattern.js
+++ /dev/null
@@ -1,75 +0,0 @@
-'use strict';
-module.exports = function generate_pattern(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $isData = it.opts.v5 && $schema && $schema.$data,
-    $schemaValue;
-  if ($isData) {
-    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
-    $schemaValue = 'schema' + $lvl;
-  } else {
-    $schemaValue = $schema;
-  }
-  var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema);
-  out += 'if ( ';
-  if ($isData) {
-    out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'string\') || ';
-  }
-  out += ' !' + ($regexp) + '.test(' + ($data) + ') ) {   ';
-  var $$outStack = $$outStack || [];
-  $$outStack.push(out);
-  out = ''; /* istanbul ignore else */
-  if (it.createErrors !== false) {
-    out += ' { keyword: \'' + ($errorKeyword || 'pattern') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern:  ';
-    if ($isData) {
-      out += '' + ($schemaValue);
-    } else {
-      out += '' + (it.util.toQuotedString($schema));
-    }
-    out += '  } ';
-    if (it.opts.messages !== false) {
-      out += ' , message: \'should match pattern "';
-      if ($isData) {
-        out += '\' + ' + ($schemaValue) + ' + \'';
-      } else {
-        out += '' + (it.util.escapeQuotes($schema));
-      }
-      out += '"\' ';
-    }
-    if (it.opts.verbose) {
-      out += ' , schema:  ';
-      if ($isData) {
-        out += 'validate.schema' + ($schemaPath);
-      } else {
-        out += '' + (it.util.toQuotedString($schema));
-      }
-      out += '         , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-    }
-    out += ' } ';
-  } else {
-    out += ' {} ';
-  }
-  var __err = out;
-  out = $$outStack.pop();
-  if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-    if (it.async) {
-      out += ' throw new ValidationError([' + (__err) + ']); ';
-    } else {
-      out += ' validate.errors = [' + (__err) + ']; return false; ';
-    }
-  } else {
-    out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-  }
-  out += '} ';
-  if ($breakOnError) {
-    out += ' else { ';
-  }
-  return out;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dotjs/patternRequired.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dotjs/patternRequired.js b/node_modules/ajv/lib/dotjs/patternRequired.js
deleted file mode 100644
index e20df98..0000000
--- a/node_modules/ajv/lib/dotjs/patternRequired.js
+++ /dev/null
@@ -1,52 +0,0 @@
-'use strict';
-module.exports = function generate_patternRequired(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $valid = 'valid' + $lvl;
-  var $key = 'key' + $lvl,
-    $matched = 'patternMatched' + $lvl,
-    $closingBraces = '',
-    $ownProperties = it.opts.ownProperties;
-  out += 'var ' + ($valid) + ' = true;';
-  var arr1 = $schema;
-  if (arr1) {
-    var $pProperty, i1 = -1,
-      l1 = arr1.length - 1;
-    while (i1 < l1) {
-      $pProperty = arr1[i1 += 1];
-      out += ' var ' + ($matched) + ' = false; for (var ' + ($key) + ' in ' + ($data) + ') {  ';
-      if ($ownProperties) {
-        out += ' if (!Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($key) + ')) continue; ';
-      }
-      out += ' ' + ($matched) + ' = ' + (it.usePattern($pProperty)) + '.test(' + ($key) + '); if (' + ($matched) + ') break; } ';
-      var $missingPattern = it.util.escapeQuotes($pProperty);
-      out += ' if (!' + ($matched) + ') { ' + ($valid) + ' = false;  var err =   '; /* istanbul ignore else */
-      if (it.createErrors !== false) {
-        out += ' { keyword: \'' + ($errorKeyword || 'patternRequired') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingPattern: \'' + ($missingPattern) + '\' } ';
-        if (it.opts.messages !== false) {
-          out += ' , message: \'should have property matching pattern \\\'' + ($missingPattern) + '\\\'\' ';
-        }
-        if (it.opts.verbose) {
-          out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-        }
-        out += ' } ';
-      } else {
-        out += ' {} ';
-      }
-      out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; }   ';
-      if ($breakOnError) {
-        $closingBraces += '}';
-        out += ' else { ';
-      }
-    }
-  }
-  out += '' + ($closingBraces);
-  return out;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dotjs/properties.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dotjs/properties.js b/node_modules/ajv/lib/dotjs/properties.js
deleted file mode 100644
index ea42c82..0000000
--- a/node_modules/ajv/lib/dotjs/properties.js
+++ /dev/null
@@ -1,446 +0,0 @@
-'use strict';
-module.exports = function generate_properties(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $valid = 'valid' + $lvl;
-  var $errs = 'errs__' + $lvl;
-  var $it = it.util.copy(it);
-  var $closingBraces = '';
-  $it.level++;
-  var $nextValid = 'valid' + $it.level;
-  var $key = 'key' + $lvl,
-    $dataNxt = $it.dataLevel = it.dataLevel + 1,
-    $nextData = 'data' + $dataNxt;
-  var $schemaKeys = Object.keys($schema || {}),
-    $pProperties = it.schema.patternProperties || {},
-    $pPropertyKeys = Object.keys($pProperties),
-    $aProperties = it.schema.additionalProperties,
-    $someProperties = $schemaKeys.length || $pPropertyKeys.length,
-    $noAdditional = $aProperties === false,
-    $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,
-    $removeAdditional = it.opts.removeAdditional,
-    $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,
-    $ownProperties = it.opts.ownProperties,
-    $currentBaseId = it.baseId;
-  var $required = it.schema.required;
-  if ($required && !(it.opts.v5 && $required.$data) && $required.length < it.opts.loopRequired) var $requiredHash = it.util.toHash($required);
-  if (it.opts.v5) {
-    var $pgProperties = it.schema.patternGroups || {},
-      $pgPropertyKeys = Object.keys($pgProperties);
-  }
-  out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';
-  if ($checkAdditional) {
-    out += ' for (var ' + ($key) + ' in ' + ($data) + ') {  ';
-    if ($ownProperties) {
-      out += ' if (!Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($key) + ')) continue; ';
-    }
-    if ($someProperties) {
-      out += ' var isAdditional' + ($lvl) + ' = !(false ';
-      if ($schemaKeys.length) {
-        if ($schemaKeys.length > 5) {
-          out += ' || validate.schema' + ($schemaPath) + '[' + ($key) + '] ';
-        } else {
-          var arr1 = $schemaKeys;
-          if (arr1) {
-            var $propertyKey, i1 = -1,
-              l1 = arr1.length - 1;
-            while (i1 < l1) {
-              $propertyKey = arr1[i1 += 1];
-              out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' ';
-            }
-          }
-        }
-      }
-      if ($pPropertyKeys.length) {
-        var arr2 = $pPropertyKeys;
-        if (arr2) {
-          var $pProperty, $i = -1,
-            l2 = arr2.length - 1;
-          while ($i < l2) {
-            $pProperty = arr2[$i += 1];
-            out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') ';
-          }
-        }
-      }
-      if (it.opts.v5 && $pgPropertyKeys && $pgPropertyKeys.length) {
-        var arr3 = $pgPropertyKeys;
-        if (arr3) {
-          var $pgProperty, $i = -1,
-            l3 = arr3.length - 1;
-          while ($i < l3) {
-            $pgProperty = arr3[$i += 1];
-            out += ' || ' + (it.usePattern($pgProperty)) + '.test(' + ($key) + ') ';
-          }
-        }
-      }
-      out += ' ); if (isAdditional' + ($lvl) + ') { ';
-    }
-    if ($removeAdditional == 'all') {
-      out += ' delete ' + ($data) + '[' + ($key) + ']; ';
-    } else {
-      var $currentErrorPath = it.errorPath;
-      var $additionalProperty = '\' + ' + $key + ' + \'';
-      if (it.opts._errorDataPathProperty) {
-        it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
-      }
-      if ($noAdditional) {
-        if ($removeAdditional) {
-          out += ' delete ' + ($data) + '[' + ($key) + ']; ';
-        } else {
-          out += ' ' + ($nextValid) + ' = false; ';
-          var $currErrSchemaPath = $errSchemaPath;
-          $errSchemaPath = it.errSchemaPath + '/additionalProperties';
-          var $$outStack = $$outStack || [];
-          $$outStack.push(out);
-          out = ''; /* istanbul ignore else */
-          if (it.createErrors !== false) {
-            out += ' { keyword: \'' + ($errorKeyword || 'additionalProperties') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \'' + ($additionalProperty) + '\' } ';
-            if (it.opts.messages !== false) {
-              out += ' , message: \'should NOT have additional properties\' ';
-            }
-            if (it.opts.verbose) {
-              out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-            }
-            out += ' } ';
-          } else {
-            out += ' {} ';
-          }
-          var __err = out;
-          out = $$outStack.pop();
-          if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-            if (it.async) {
-              out += ' throw new ValidationError([' + (__err) + ']); ';
-            } else {
-              out += ' validate.errors = [' + (__err) + ']; return false; ';
-            }
-          } else {
-            out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-          }
-          $errSchemaPath = $currErrSchemaPath;
-          if ($breakOnError) {
-            out += ' break; ';
-          }
-        }
-      } else if ($additionalIsSchema) {
-        if ($removeAdditional == 'failing') {
-          out += ' var ' + ($errs) + ' = errors;  ';
-          var $wasComposite = it.compositeRule;
-          it.compositeRule = $it.compositeRule = true;
-          $it.schema = $aProperties;
-          $it.schemaPath = it.schemaPath + '.additionalProperties';
-          $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';
-          $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
-          var $passData = $data + '[' + $key + ']';
-          $it.dataPathArr[$dataNxt] = $key;
-          var $code = it.validate($it);
-          $it.baseId = $currentBaseId;
-          if (it.util.varOccurences($code, $nextData) < 2) {
-            out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
-          } else {
-            out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
-          }
-          out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; }  ';
-          it.compositeRule = $it.compositeRule = $wasComposite;
-        } else {
-          $it.schema = $aProperties;
-          $it.schemaPath = it.schemaPath + '.additionalProperties';
-          $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';
-          $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
-          var $passData = $data + '[' + $key + ']';
-          $it.dataPathArr[$dataNxt] = $key;
-          var $code = it.validate($it);
-          $it.baseId = $currentBaseId;
-          if (it.util.varOccurences($code, $nextData) < 2) {
-            out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
-          } else {
-            out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
-          }
-          if ($breakOnError) {
-            out += ' if (!' + ($nextValid) + ') break; ';
-          }
-        }
-      }
-      it.errorPath = $currentErrorPath;
-    }
-    if ($someProperties) {
-      out += ' } ';
-    }
-    out += ' }  ';
-    if ($breakOnError) {
-      out += ' if (' + ($nextValid) + ') { ';
-      $closingBraces += '}';
-    }
-  }
-  var $useDefaults = it.opts.useDefaults && !it.compositeRule;
-  if ($schemaKeys.length) {
-    var arr4 = $schemaKeys;
-    if (arr4) {
-      var $propertyKey, i4 = -1,
-        l4 = arr4.length - 1;
-      while (i4 < l4) {
-        $propertyKey = arr4[i4 += 1];
-        var $sch = $schema[$propertyKey];
-        if (it.util.schemaHasRules($sch, it.RULES.all)) {
-          var $prop = it.util.getProperty($propertyKey),
-            $passData = $data + $prop,
-            $hasDefault = $useDefaults && $sch.default !== undefined;
-          $it.schema = $sch;
-          $it.schemaPath = $schemaPath + $prop;
-          $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);
-          $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);
-          $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);
-          var $code = it.validate($it);
-          $it.baseId = $currentBaseId;
-          if (it.util.varOccurences($code, $nextData) < 2) {
-            $code = it.util.varReplace($code, $nextData, $passData);
-            var $useData = $passData;
-          } else {
-            var $useData = $nextData;
-            out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ';
-          }
-          if ($hasDefault) {
-            out += ' ' + ($code) + ' ';
-          } else {
-            if ($requiredHash && $requiredHash[$propertyKey]) {
-              out += ' if (' + ($useData) + ' === undefined) { ' + ($nextValid) + ' = false; ';
-              var $currentErrorPath = it.errorPath,
-                $currErrSchemaPath = $errSchemaPath,
-                $missingProperty = it.util.escapeQuotes($propertyKey);
-              if (it.opts._errorDataPathProperty) {
-                it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);
-              }
-              $errSchemaPath = it.errSchemaPath + '/required';
-              var $$outStack = $$outStack || [];
-              $$outStack.push(out);
-              out = ''; /* istanbul ignore else */
-              if (it.createErrors !== false) {
-                out += ' { keyword: \'' + ($errorKeyword || 'required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
-                if (it.opts.messages !== false) {
-                  out += ' , message: \'';
-                  if (it.opts._errorDataPathProperty) {
-                    out += 'is a required property';
-                  } else {
-                    out += 'should have required property \\\'' + ($missingProperty) + '\\\'';
-                  }
-                  out += '\' ';
-                }
-                if (it.opts.verbose) {
-                  out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-                }
-                out += ' } ';
-              } else {
-                out += ' {} ';
-              }
-              var __err = out;
-              out = $$outStack.pop();
-              if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-                if (it.async) {
-                  out += ' throw new ValidationError([' + (__err) + ']); ';
-                } else {
-                  out += ' validate.errors = [' + (__err) + ']; return false; ';
-                }
-              } else {
-                out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-              }
-              $errSchemaPath = $currErrSchemaPath;
-              it.errorPath = $currentErrorPath;
-              out += ' } else { ';
-            } else {
-              if ($breakOnError) {
-                out += ' if (' + ($useData) + ' === undefined) { ' + ($nextValid) + ' = true; } else { ';
-              } else {
-                out += ' if (' + ($useData) + ' !== undefined) { ';
-              }
-            }
-            out += ' ' + ($code) + ' } ';
-          }
-        }
-        if ($breakOnError) {
-          out += ' if (' + ($nextValid) + ') { ';
-          $closingBraces += '}';
-        }
-      }
-    }
-  }
-  var arr5 = $pPropertyKeys;
-  if (arr5) {
-    var $pProperty, i5 = -1,
-      l5 = arr5.length - 1;
-    while (i5 < l5) {
-      $pProperty = arr5[i5 += 1];
-      var $sch = $pProperties[$pProperty];
-      if (it.util.schemaHasRules($sch, it.RULES.all)) {
-        $it.schema = $sch;
-        $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);
-        $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);
-        out += ' for (var ' + ($key) + ' in ' + ($data) + ') {  ';
-        if ($ownProperties) {
-          out += ' if (!Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($key) + ')) continue; ';
-        }
-        out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';
-        $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
-        var $passData = $data + '[' + $key + ']';
-        $it.dataPathArr[$dataNxt] = $key;
-        var $code = it.validate($it);
-        $it.baseId = $currentBaseId;
-        if (it.util.varOccurences($code, $nextData) < 2) {
-          out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
-        } else {
-          out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
-        }
-        if ($breakOnError) {
-          out += ' if (!' + ($nextValid) + ') break; ';
-        }
-        out += ' } ';
-        if ($breakOnError) {
-          out += ' else ' + ($nextValid) + ' = true; ';
-        }
-        out += ' }  ';
-        if ($breakOnError) {
-          out += ' if (' + ($nextValid) + ') { ';
-          $closingBraces += '}';
-        }
-      }
-    }
-  }
-  if (it.opts.v5) {
-    var arr6 = $pgPropertyKeys;
-    if (arr6) {
-      var $pgProperty, i6 = -1,
-        l6 = arr6.length - 1;
-      while (i6 < l6) {
-        $pgProperty = arr6[i6 += 1];
-        var $pgSchema = $pgProperties[$pgProperty],
-          $sch = $pgSchema.schema;
-        if (it.util.schemaHasRules($sch, it.RULES.all)) {
-          $it.schema = $sch;
-          $it.schemaPath = it.schemaPath + '.patternGroups' + it.util.getProperty($pgProperty) + '.schema';
-          $it.errSchemaPath = it.errSchemaPath + '/patternGroups/' + it.util.escapeFragment($pgProperty) + '/schema';
-          out += ' var pgPropCount' + ($lvl) + ' = 0; for (var ' + ($key) + ' in ' + ($data) + ') {  ';
-          if ($ownProperties) {
-            out += ' if (!Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($key) + ')) continue; ';
-          }
-          out += ' if (' + (it.usePattern($pgProperty)) + '.test(' + ($key) + ')) { pgPropCount' + ($lvl) + '++; ';
-          $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
-          var $passData = $data + '[' + $key + ']';
-          $it.dataPathArr[$dataNxt] = $key;
-          var $code = it.validate($it);
-          $it.baseId = $currentBaseId;
-          if (it.util.varOccurences($code, $nextData) < 2) {
-            out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';
-          } else {
-            out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
-          }
-          if ($breakOnError) {
-            out += ' if (!' + ($nextValid) + ') break; ';
-          }
-          out += ' } ';
-          if ($breakOnError) {
-            out += ' else ' + ($nextValid) + ' = true; ';
-          }
-          out += ' }  ';
-          if ($breakOnError) {
-            out += ' if (' + ($nextValid) + ') { ';
-            $closingBraces += '}';
-          }
-          var $pgMin = $pgSchema.minimum,
-            $pgMax = $pgSchema.maximum;
-          if ($pgMin !== undefined || $pgMax !== undefined) {
-            out += ' var ' + ($valid) + ' = true; ';
-            var $currErrSchemaPath = $errSchemaPath;
-            if ($pgMin !== undefined) {
-              var $limit = $pgMin,
-                $reason = 'minimum',
-                $moreOrLess = 'less';
-              out += ' ' + ($valid) + ' = pgPropCount' + ($lvl) + ' >= ' + ($pgMin) + '; ';
-              $errSchemaPath = it.errSchemaPath + '/patternGroups/minimum';
-              out += '  if (!' + ($valid) + ') {   ';
-              var $$outStack = $$outStack || [];
-              $$outStack.push(out);
-              out = ''; /* istanbul ignore else */
-              if (it.createErrors !== false) {
-                out += ' { keyword: \'' + ($errorKeyword || 'patternGroups') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { reason: \'' + ($reason) + '\', limit: ' + ($limit) + ', pattern: \'' + (it.util.escapeQuotes($pgProperty)) + '\' } ';
-                if (it.opts.messages !== false) {
-                  out += ' , message: \'should NOT have ' + ($moreOrLess) + ' than ' + ($limit) + ' properties matching pattern "' + (it.util.escapeQuotes($pgProperty)) + '"\' ';
-                }
-                if (it.opts.verbose) {
-                  out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-                }
-                out += ' } ';
-              } else {
-                out += ' {} ';
-              }
-              var __err = out;
-              out = $$outStack.pop();
-              if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-                if (it.async) {
-                  out += ' throw new ValidationError([' + (__err) + ']); ';
-                } else {
-                  out += ' validate.errors = [' + (__err) + ']; return false; ';
-                }
-              } else {
-                out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-              }
-              out += ' } ';
-              if ($pgMax !== undefined) {
-                out += ' else ';
-              }
-            }
-            if ($pgMax !== undefined) {
-              var $limit = $pgMax,
-                $reason = 'maximum',
-                $moreOrLess = 'more';
-              out += ' ' + ($valid) + ' = pgPropCount' + ($lvl) + ' <= ' + ($pgMax) + '; ';
-              $errSchemaPath = it.errSchemaPath + '/patternGroups/maximum';
-              out += '  if (!' + ($valid) + ') {   ';
-              var $$outStack = $$outStack || [];
-              $$outStack.push(out);
-              out = ''; /* istanbul ignore else */
-              if (it.createErrors !== false) {
-                out += ' { keyword: \'' + ($errorKeyword || 'patternGroups') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { reason: \'' + ($reason) + '\', limit: ' + ($limit) + ', pattern: \'' + (it.util.escapeQuotes($pgProperty)) + '\' } ';
-                if (it.opts.messages !== false) {
-                  out += ' , message: \'should NOT have ' + ($moreOrLess) + ' than ' + ($limit) + ' properties matching pattern "' + (it.util.escapeQuotes($pgProperty)) + '"\' ';
-                }
-                if (it.opts.verbose) {
-                  out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-                }
-                out += ' } ';
-              } else {
-                out += ' {} ';
-              }
-              var __err = out;
-              out = $$outStack.pop();
-              if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-                if (it.async) {
-                  out += ' throw new ValidationError([' + (__err) + ']); ';
-                } else {
-                  out += ' validate.errors = [' + (__err) + ']; return false; ';
-                }
-              } else {
-                out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-              }
-              out += ' } ';
-            }
-            $errSchemaPath = $currErrSchemaPath;
-            if ($breakOnError) {
-              out += ' if (' + ($valid) + ') { ';
-              $closingBraces += '}';
-            }
-          }
-        }
-      }
-    }
-  }
-  if ($breakOnError) {
-    out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';
-  }
-  out = it.util.cleanUpCode(out);
-  return out;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dotjs/ref.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dotjs/ref.js b/node_modules/ajv/lib/dotjs/ref.js
deleted file mode 100644
index 4b38b06..0000000
--- a/node_modules/ajv/lib/dotjs/ref.js
+++ /dev/null
@@ -1,120 +0,0 @@
-'use strict';
-module.exports = function generate_ref(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $valid = 'valid' + $lvl;
-  var $async, $refCode;
-  if ($schema == '#' || $schema == '#/') {
-    if (it.isRoot) {
-      $async = it.async;
-      $refCode = 'validate';
-    } else {
-      $async = it.root.schema.$async === true;
-      $refCode = 'root.refVal[0]';
-    }
-  } else {
-    var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot);
-    if ($refVal === undefined) {
-      var $message = 'can\'t resolve reference ' + $schema + ' from id ' + it.baseId;
-      if (it.opts.missingRefs == 'fail') {
-        console.log($message);
-        var $$outStack = $$outStack || [];
-        $$outStack.push(out);
-        out = ''; /* istanbul ignore else */
-        if (it.createErrors !== false) {
-          out += ' { keyword: \'' + ($errorKeyword || '$ref') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { ref: \'' + (it.util.escapeQuotes($schema)) + '\' } ';
-          if (it.opts.messages !== false) {
-            out += ' , message: \'can\\\'t resolve reference ' + (it.util.escapeQuotes($schema)) + '\' ';
-          }
-          if (it.opts.verbose) {
-            out += ' , schema: ' + (it.util.toQuotedString($schema)) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-          }
-          out += ' } ';
-        } else {
-          out += ' {} ';
-        }
-        var __err = out;
-        out = $$outStack.pop();
-        if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-          if (it.async) {
-            out += ' throw new ValidationError([' + (__err) + ']); ';
-          } else {
-            out += ' validate.errors = [' + (__err) + ']; return false; ';
-          }
-        } else {
-          out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-        }
-        if ($breakOnError) {
-          out += ' if (false) { ';
-        }
-      } else if (it.opts.missingRefs == 'ignore') {
-        console.log($message);
-        if ($breakOnError) {
-          out += ' if (true) { ';
-        }
-      } else {
-        var $error = new Error($message);
-        $error.missingRef = it.resolve.url(it.baseId, $schema);
-        $error.missingSchema = it.resolve.normalizeId(it.resolve.fullPath($error.missingRef));
-        throw $error;
-      }
-    } else if ($refVal.inline) {
-      var $it = it.util.copy(it);
-      $it.level++;
-      var $nextValid = 'valid' + $it.level;
-      $it.schema = $refVal.schema;
-      $it.schemaPath = '';
-      $it.errSchemaPath = $schema;
-      var $code = it.validate($it).replace(/validate\.schema/g, $refVal.code);
-      out += ' ' + ($code) + ' ';
-      if ($breakOnError) {
-        out += ' if (' + ($nextValid) + ') { ';
-      }
-    } else {
-      $async = $refVal.$async === true;
-      $refCode = $refVal.code;
-    }
-  }
-  if ($refCode) {
-    var $$outStack = $$outStack || [];
-    $$outStack.push(out);
-    out = '';
-    if (it.opts.passContext) {
-      out += ' ' + ($refCode) + '.call(this, ';
-    } else {
-      out += ' ' + ($refCode) + '( ';
-    }
-    out += ' ' + ($data) + ', (dataPath || \'\')';
-    if (it.errorPath != '""') {
-      out += ' + ' + (it.errorPath);
-    }
-    var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',
-      $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';
-    out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ', rootData)  ';
-    var __callValidate = out;
-    out = $$outStack.pop();
-    if ($async) {
-      if (!it.async) throw new Error('async schema referenced by sync schema');
-      out += ' try { ';
-      if ($breakOnError) {
-        out += 'var ' + ($valid) + ' =';
-      }
-      out += ' ' + (it.yieldAwait) + ' ' + (__callValidate) + '; } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; } ';
-      if ($breakOnError) {
-        out += ' if (' + ($valid) + ') { ';
-      }
-    } else {
-      out += ' if (!' + (__callValidate) + ') { if (vErrors === null) vErrors = ' + ($refCode) + '.errors; else vErrors = vErrors.concat(' + ($refCode) + '.errors); errors = vErrors.length; } ';
-      if ($breakOnError) {
-        out += ' else { ';
-      }
-    }
-  }
-  return out;
-}


[43/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/src/lval.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/src/lval.js b/node_modules/acorn/src/lval.js
deleted file mode 100644
index 1e2508e..0000000
--- a/node_modules/acorn/src/lval.js
+++ /dev/null
@@ -1,215 +0,0 @@
-import {types as tt} from "./tokentype"
-import {Parser} from "./state"
-import {has} from "./util"
-
-const pp = Parser.prototype
-
-// Convert existing expression atom to assignable pattern
-// if possible.
-
-pp.toAssignable = function(node, isBinding) {
-  if (this.options.ecmaVersion >= 6 && node) {
-    switch (node.type) {
-    case "Identifier":
-    case "ObjectPattern":
-    case "ArrayPattern":
-      break
-
-    case "ObjectExpression":
-      node.type = "ObjectPattern"
-      for (let i = 0; i < node.properties.length; i++) {
-        let prop = node.properties[i]
-        if (prop.kind !== "init") this.raise(prop.key.start, "Object pattern can't contain getter or setter")
-        this.toAssignable(prop.value, isBinding)
-      }
-      break
-
-    case "ArrayExpression":
-      node.type = "ArrayPattern"
-      this.toAssignableList(node.elements, isBinding)
-      break
-
-    case "AssignmentExpression":
-      if (node.operator === "=") {
-        node.type = "AssignmentPattern"
-        delete node.operator
-        // falls through to AssignmentPattern
-      } else {
-        this.raise(node.left.end, "Only '=' operator can be used for specifying default value.")
-        break;
-      }
-
-    case "AssignmentPattern":
-      if (node.right.type === "YieldExpression")
-        this.raise(node.right.start, "Yield expression cannot be a default value")
-      break;
-
-    case "ParenthesizedExpression":
-      node.expression = this.toAssignable(node.expression, isBinding)
-      break
-
-    case "MemberExpression":
-      if (!isBinding) break
-
-    default:
-      this.raise(node.start, "Assigning to rvalue")
-    }
-  }
-  return node
-}
-
-// Convert list of expression atoms to binding list.
-
-pp.toAssignableList = function(exprList, isBinding) {
-  let end = exprList.length
-  if (end) {
-    let last = exprList[end - 1]
-    if (last && last.type == "RestElement") {
-      --end
-    } else if (last && last.type == "SpreadElement") {
-      last.type = "RestElement"
-      let arg = last.argument
-      this.toAssignable(arg, isBinding)
-      if (arg.type !== "Identifier" && arg.type !== "MemberExpression" && arg.type !== "ArrayPattern")
-        this.unexpected(arg.start)
-      --end
-    }
-
-    if (isBinding && last.type === "RestElement" && last.argument.type !== "Identifier")
-      this.unexpected(last.argument.start);
-  }
-  for (let i = 0; i < end; i++) {
-    let elt = exprList[i]
-    if (elt) this.toAssignable(elt, isBinding)
-  }
-  return exprList
-}
-
-// Parses spread element.
-
-pp.parseSpread = function(refDestructuringErrors) {
-  let node = this.startNode()
-  this.next()
-  node.argument = this.parseMaybeAssign(refDestructuringErrors)
-  return this.finishNode(node, "SpreadElement")
-}
-
-pp.parseRest = function(allowNonIdent) {
-  let node = this.startNode()
-  this.next()
-
-  // RestElement inside of a function parameter must be an identifier
-  if (allowNonIdent) node.argument = this.type === tt.name ? this.parseIdent() : this.unexpected()
-  else node.argument = this.type === tt.name || this.type === tt.bracketL ? this.parseBindingAtom() : this.unexpected()
-
-  return this.finishNode(node, "RestElement")
-}
-
-// Parses lvalue (assignable) atom.
-
-pp.parseBindingAtom = function() {
-  if (this.options.ecmaVersion < 6) return this.parseIdent()
-  switch (this.type) {
-  case tt.name:
-    return this.parseIdent()
-
-  case tt.bracketL:
-    let node = this.startNode()
-    this.next()
-    node.elements = this.parseBindingList(tt.bracketR, true, true)
-    return this.finishNode(node, "ArrayPattern")
-
-  case tt.braceL:
-    return this.parseObj(true)
-
-  default:
-    this.unexpected()
-  }
-}
-
-pp.parseBindingList = function(close, allowEmpty, allowTrailingComma, allowNonIdent) {
-  let elts = [], first = true
-  while (!this.eat(close)) {
-    if (first) first = false
-    else this.expect(tt.comma)
-    if (allowEmpty && this.type === tt.comma) {
-      elts.push(null)
-    } else if (allowTrailingComma && this.afterTrailingComma(close)) {
-      break
-    } else if (this.type === tt.ellipsis) {
-      let rest = this.parseRest(allowNonIdent)
-      this.parseBindingListItem(rest)
-      elts.push(rest)
-      this.expect(close)
-      break
-    } else {
-      let elem = this.parseMaybeDefault(this.start, this.startLoc)
-      this.parseBindingListItem(elem)
-      elts.push(elem)
-    }
-  }
-  return elts
-}
-
-pp.parseBindingListItem = function(param) {
-  return param
-}
-
-// Parses assignment pattern around given atom if possible.
-
-pp.parseMaybeDefault = function(startPos, startLoc, left) {
-  left = left || this.parseBindingAtom()
-  if (this.options.ecmaVersion < 6 || !this.eat(tt.eq)) return left
-  let node = this.startNodeAt(startPos, startLoc)
-  node.left = left
-  node.right = this.parseMaybeAssign()
-  return this.finishNode(node, "AssignmentPattern")
-}
-
-// Verify that a node is an lval — something that can be assigned
-// to.
-
-pp.checkLVal = function(expr, isBinding, checkClashes) {
-  switch (expr.type) {
-  case "Identifier":
-    if (this.strict && this.reservedWordsStrictBind.test(expr.name))
-      this.raise(expr.start, (isBinding ? "Binding " : "Assigning to ") + expr.name + " in strict mode")
-    if (checkClashes) {
-      if (has(checkClashes, expr.name))
-        this.raise(expr.start, "Argument name clash")
-      checkClashes[expr.name] = true
-    }
-    break
-
-  case "MemberExpression":
-    if (isBinding) this.raise(expr.start, (isBinding ? "Binding" : "Assigning to") + " member expression")
-    break
-
-  case "ObjectPattern":
-    for (let i = 0; i < expr.properties.length; i++)
-      this.checkLVal(expr.properties[i].value, isBinding, checkClashes)
-    break
-
-  case "ArrayPattern":
-    for (let i = 0; i < expr.elements.length; i++) {
-      let elem = expr.elements[i]
-      if (elem) this.checkLVal(elem, isBinding, checkClashes)
-    }
-    break
-
-  case "AssignmentPattern":
-    this.checkLVal(expr.left, isBinding, checkClashes)
-    break
-
-  case "RestElement":
-    this.checkLVal(expr.argument, isBinding, checkClashes)
-    break
-
-  case "ParenthesizedExpression":
-    this.checkLVal(expr.expression, isBinding, checkClashes)
-    break
-
-  default:
-    this.raise(expr.start, (isBinding ? "Binding" : "Assigning to") + " rvalue")
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/src/node.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/src/node.js b/node_modules/acorn/src/node.js
deleted file mode 100644
index 76b5b09..0000000
--- a/node_modules/acorn/src/node.js
+++ /dev/null
@@ -1,50 +0,0 @@
-import {Parser} from "./state"
-import {SourceLocation} from "./locutil"
-
-export class Node {
-  constructor(parser, pos, loc) {
-    this.type = ""
-    this.start = pos
-    this.end = 0
-    if (parser.options.locations)
-      this.loc = new SourceLocation(parser, loc)
-    if (parser.options.directSourceFile)
-      this.sourceFile = parser.options.directSourceFile
-    if (parser.options.ranges)
-      this.range = [pos, 0]
-  }
-}
-
-// Start an AST node, attaching a start offset.
-
-const pp = Parser.prototype
-
-pp.startNode = function() {
-  return new Node(this, this.start, this.startLoc)
-}
-
-pp.startNodeAt = function(pos, loc) {
-  return new Node(this, pos, loc)
-}
-
-// Finish an AST node, adding `type` and `end` properties.
-
-function finishNodeAt(node, type, pos, loc) {
-  node.type = type
-  node.end = pos
-  if (this.options.locations)
-    node.loc.end = loc
-  if (this.options.ranges)
-    node.range[1] = pos
-  return node
-}
-
-pp.finishNode = function(node, type) {
-  return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc)
-}
-
-// Finish node at given position
-
-pp.finishNodeAt = function(node, type, pos, loc) {
-  return finishNodeAt.call(this, node, type, pos, loc)
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/src/options.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/src/options.js b/node_modules/acorn/src/options.js
deleted file mode 100644
index f2d2981..0000000
--- a/node_modules/acorn/src/options.js
+++ /dev/null
@@ -1,121 +0,0 @@
-import {has, isArray} from "./util"
-import {SourceLocation} from "./locutil"
-
-// A second optional argument can be given to further configure
-// the parser process. These options are recognized:
-
-export const defaultOptions = {
-  // `ecmaVersion` indicates the ECMAScript version to parse. Must
-  // be either 3, or 5, or 6. This influences support for strict
-  // mode, the set of reserved words, support for getters and
-  // setters and other features.
-  ecmaVersion: 5,
-  // Source type ("script" or "module") for different semantics
-  sourceType: "script",
-  // `onInsertedSemicolon` can be a callback that will be called
-  // when a semicolon is automatically inserted. It will be passed
-  // th position of the comma as an offset, and if `locations` is
-  // enabled, it is given the location as a `{line, column}` object
-  // as second argument.
-  onInsertedSemicolon: null,
-  // `onTrailingComma` is similar to `onInsertedSemicolon`, but for
-  // trailing commas.
-  onTrailingComma: null,
-  // By default, reserved words are only enforced if ecmaVersion >= 5.
-  // Set `allowReserved` to a boolean value to explicitly turn this on
-  // an off. When this option has the value "never", reserved words
-  // and keywords can also not be used as property names.
-  allowReserved: null,
-  // When enabled, a return at the top level is not considered an
-  // error.
-  allowReturnOutsideFunction: false,
-  // When enabled, import/export statements are not constrained to
-  // appearing at the top of the program.
-  allowImportExportEverywhere: false,
-  // When enabled, hashbang directive in the beginning of file
-  // is allowed and treated as a line comment.
-  allowHashBang: false,
-  // When `locations` is on, `loc` properties holding objects with
-  // `start` and `end` properties in `{line, column}` form (with
-  // line being 1-based and column 0-based) will be attached to the
-  // nodes.
-  locations: false,
-  // A function can be passed as `onToken` option, which will
-  // cause Acorn to call that function with object in the same
-  // format as tokens returned from `tokenizer().getToken()`. Note
-  // that you are not allowed to call the parser from the
-  // callback—that will corrupt its internal state.
-  onToken: null,
-  // A function can be passed as `onComment` option, which will
-  // cause Acorn to call that function with `(block, text, start,
-  // end)` parameters whenever a comment is skipped. `block` is a
-  // boolean indicating whether this is a block (`/* */`) comment,
-  // `text` is the content of the comment, and `start` and `end` are
-  // character offsets that denote the start and end of the comment.
-  // When the `locations` option is on, two more parameters are
-  // passed, the full `{line, column}` locations of the start and
-  // end of the comments. Note that you are not allowed to call the
-  // parser from the callback—that will corrupt its internal state.
-  onComment: null,
-  // Nodes have their start and end characters offsets recorded in
-  // `start` and `end` properties (directly on the node, rather than
-  // the `loc` object, which holds line/column data. To also add a
-  // [semi-standardized][range] `range` property holding a `[start,
-  // end]` array with the same numbers, set the `ranges` option to
-  // `true`.
-  //
-  // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678
-  ranges: false,
-  // It is possible to parse multiple files into a single AST by
-  // passing the tree produced by parsing the first file as
-  // `program` option in subsequent parses. This will add the
-  // toplevel forms of the parsed file to the `Program` (top) node
-  // of an existing parse tree.
-  program: null,
-  // When `locations` is on, you can pass this to record the source
-  // file in every node's `loc` object.
-  sourceFile: null,
-  // This value, if given, is stored in every node, whether
-  // `locations` is on or off.
-  directSourceFile: null,
-  // When enabled, parenthesized expressions are represented by
-  // (non-standard) ParenthesizedExpression nodes
-  preserveParens: false,
-  plugins: {}
-}
-
-// Interpret and default an options object
-
-export function getOptions(opts) {
-  let options = {}
-  for (let opt in defaultOptions)
-    options[opt] = opts && has(opts, opt) ? opts[opt] : defaultOptions[opt]
-  if (options.allowReserved == null)
-    options.allowReserved = options.ecmaVersion < 5
-
-  if (isArray(options.onToken)) {
-    let tokens = options.onToken
-    options.onToken = (token) => tokens.push(token)
-  }
-  if (isArray(options.onComment))
-    options.onComment = pushComment(options, options.onComment)
-
-  return options
-}
-
-function pushComment(options, array) {
-  return function (block, text, start, end, startLoc, endLoc) {
-    let comment = {
-      type: block ? 'Block' : 'Line',
-      value: text,
-      start: start,
-      end: end
-    }
-    if (options.locations)
-      comment.loc = new SourceLocation(this, startLoc, endLoc)
-    if (options.ranges)
-      comment.range = [start, end]
-    array.push(comment)
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/src/parseutil.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/src/parseutil.js b/node_modules/acorn/src/parseutil.js
deleted file mode 100644
index 9c71c48..0000000
--- a/node_modules/acorn/src/parseutil.js
+++ /dev/null
@@ -1,102 +0,0 @@
-import {types as tt} from "./tokentype"
-import {Parser} from "./state"
-import {lineBreak} from "./whitespace"
-
-const pp = Parser.prototype
-
-// ## Parser utilities
-
-// Test whether a statement node is the string literal `"use strict"`.
-
-pp.isUseStrict = function(stmt) {
-  return this.options.ecmaVersion >= 5 && stmt.type === "ExpressionStatement" &&
-    stmt.expression.type === "Literal" &&
-    stmt.expression.raw.slice(1, -1) === "use strict"
-}
-
-// Predicate that tests whether the next token is of the given
-// type, and if yes, consumes it as a side effect.
-
-pp.eat = function(type) {
-  if (this.type === type) {
-    this.next()
-    return true
-  } else {
-    return false
-  }
-}
-
-// Tests whether parsed token is a contextual keyword.
-
-pp.isContextual = function(name) {
-  return this.type === tt.name && this.value === name
-}
-
-// Consumes contextual keyword if possible.
-
-pp.eatContextual = function(name) {
-  return this.value === name && this.eat(tt.name)
-}
-
-// Asserts that following token is given contextual keyword.
-
-pp.expectContextual = function(name) {
-  if (!this.eatContextual(name)) this.unexpected()
-}
-
-// Test whether a semicolon can be inserted at the current position.
-
-pp.canInsertSemicolon = function() {
-  return this.type === tt.eof ||
-    this.type === tt.braceR ||
-    lineBreak.test(this.input.slice(this.lastTokEnd, this.start))
-}
-
-pp.insertSemicolon = function() {
-  if (this.canInsertSemicolon()) {
-    if (this.options.onInsertedSemicolon)
-      this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc)
-    return true
-  }
-}
-
-// Consume a semicolon, or, failing that, see if we are allowed to
-// pretend that there is a semicolon at this position.
-
-pp.semicolon = function() {
-  if (!this.eat(tt.semi) && !this.insertSemicolon()) this.unexpected()
-}
-
-pp.afterTrailingComma = function(tokType) {
-  if (this.type == tokType) {
-    if (this.options.onTrailingComma)
-      this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc)
-    this.next()
-    return true
-  }
-}
-
-// Expect a token of a given type. If found, consume it, otherwise,
-// raise an unexpected token error.
-
-pp.expect = function(type) {
-  this.eat(type) || this.unexpected()
-}
-
-// Raise an unexpected token error.
-
-pp.unexpected = function(pos) {
-  this.raise(pos != null ? pos : this.start, "Unexpected token")
-}
-
-pp.checkPatternErrors = function(refDestructuringErrors, andThrow) {
-  let pos = refDestructuringErrors && refDestructuringErrors.trailingComma
-  if (!andThrow) return !!pos
-  if (pos) this.raise(pos, "Trailing comma is not permitted in destructuring patterns")
-}
-
-pp.checkExpressionErrors = function(refDestructuringErrors, andThrow) {
-  let pos = refDestructuringErrors && refDestructuringErrors.shorthandAssign
-  if (!andThrow) return !!pos
-  if (pos) this.raise(pos, "Shorthand property assignments are valid only in destructuring patterns")
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/src/state.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/src/state.js b/node_modules/acorn/src/state.js
deleted file mode 100644
index 3a0d5ff..0000000
--- a/node_modules/acorn/src/state.js
+++ /dev/null
@@ -1,104 +0,0 @@
-import {reservedWords, keywords} from "./identifier"
-import {types as tt} from "./tokentype"
-import {lineBreak} from "./whitespace"
-import {getOptions} from "./options"
-
-// Registered plugins
-export const plugins = {}
-
-function keywordRegexp(words) {
-  return new RegExp("^(" + words.replace(/ /g, "|") + ")$")
-}
-
-export class Parser {
-  constructor(options, input, startPos) {
-    this.options = options = getOptions(options)
-    this.sourceFile = options.sourceFile
-    this.keywords = keywordRegexp(keywords[options.ecmaVersion >= 6 ? 6 : 5])
-    let reserved = options.allowReserved ? "" :
-        reservedWords[options.ecmaVersion] + (options.sourceType == "module" ? " await" : "")
-    this.reservedWords = keywordRegexp(reserved)
-    let reservedStrict = (reserved ? reserved + " " : "") + reservedWords.strict
-    this.reservedWordsStrict = keywordRegexp(reservedStrict)
-    this.reservedWordsStrictBind = keywordRegexp(reservedStrict + " " + reservedWords.strictBind)
-    this.input = String(input)
-
-    // Used to signal to callers of `readWord1` whether the word
-    // contained any escape sequences. This is needed because words with
-    // escape sequences must not be interpreted as keywords.
-    this.containsEsc = false;
-
-    // Load plugins
-    this.loadPlugins(options.plugins)
-
-    // Set up token state
-
-    // The current position of the tokenizer in the input.
-    if (startPos) {
-      this.pos = startPos
-      this.lineStart = Math.max(0, this.input.lastIndexOf("\n", startPos))
-      this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length
-    } else {
-      this.pos = this.lineStart = 0
-      this.curLine = 1
-    }
-
-    // Properties of the current token:
-    // Its type
-    this.type = tt.eof
-    // For tokens that include more information than their type, the value
-    this.value = null
-    // Its start and end offset
-    this.start = this.end = this.pos
-    // And, if locations are used, the {line, column} object
-    // corresponding to those offsets
-    this.startLoc = this.endLoc = this.curPosition()
-
-    // Position information for the previous token
-    this.lastTokEndLoc = this.lastTokStartLoc = null
-    this.lastTokStart = this.lastTokEnd = this.pos
-
-    // The context stack is used to superficially track syntactic
-    // context to predict whether a regular expression is allowed in a
-    // given position.
-    this.context = this.initialContext()
-    this.exprAllowed = true
-
-    // Figure out if it's a module code.
-    this.strict = this.inModule = options.sourceType === "module"
-
-    // Used to signify the start of a potential arrow function
-    this.potentialArrowAt = -1
-
-    // Flags to track whether we are in a function, a generator.
-    this.inFunction = this.inGenerator = false
-    // Labels in scope.
-    this.labels = []
-
-    // If enabled, skip leading hashbang line.
-    if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === '#!')
-      this.skipLineComment(2)
-  }
-
-  // DEPRECATED Kept for backwards compatibility until 3.0 in case a plugin uses them
-  isKeyword(word) { return this.keywords.test(word) }
-  isReservedWord(word) { return this.reservedWords.test(word) }
-
-  extend(name, f) {
-    this[name] = f(this[name])
-  }
-
-  loadPlugins(pluginConfigs) {
-    for (let name in pluginConfigs) {
-      let plugin = plugins[name]
-      if (!plugin) throw new Error("Plugin '" + name + "' not found")
-      plugin(this, pluginConfigs[name])
-    }
-  }
-
-  parse() {
-    let node = this.options.program || this.startNode()
-    this.nextToken()
-    return this.parseTopLevel(node)
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/src/statement.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/src/statement.js b/node_modules/acorn/src/statement.js
deleted file mode 100644
index 7ade79f..0000000
--- a/node_modules/acorn/src/statement.js
+++ /dev/null
@@ -1,626 +0,0 @@
-import {types as tt} from "./tokentype"
-import {Parser} from "./state"
-import {lineBreak} from "./whitespace"
-
-const pp = Parser.prototype
-
-// ### Statement parsing
-
-// Parse a program. Initializes the parser, reads any number of
-// statements, and wraps them in a Program node.  Optionally takes a
-// `program` argument.  If present, the statements will be appended
-// to its body instead of creating a new node.
-
-pp.parseTopLevel = function(node) {
-  let first = true
-  if (!node.body) node.body = []
-  while (this.type !== tt.eof) {
-    let stmt = this.parseStatement(true, true)
-    node.body.push(stmt)
-    if (first) {
-      if (this.isUseStrict(stmt)) this.setStrict(true)
-      first = false
-    }
-  }
-  this.next()
-  if (this.options.ecmaVersion >= 6) {
-    node.sourceType = this.options.sourceType
-  }
-  return this.finishNode(node, "Program")
-}
-
-const loopLabel = {kind: "loop"}, switchLabel = {kind: "switch"}
-
-// Parse a single statement.
-//
-// If expecting a statement and finding a slash operator, parse a
-// regular expression literal. This is to handle cases like
-// `if (foo) /blah/.exec(foo)`, where looking at the previous token
-// does not help.
-
-pp.parseStatement = function(declaration, topLevel) {
-  let starttype = this.type, node = this.startNode()
-
-  // Most types of statements are recognized by the keyword they
-  // start with. Many are trivial to parse, some require a bit of
-  // complexity.
-
-  switch (starttype) {
-  case tt._break: case tt._continue: return this.parseBreakContinueStatement(node, starttype.keyword)
-  case tt._debugger: return this.parseDebuggerStatement(node)
-  case tt._do: return this.parseDoStatement(node)
-  case tt._for: return this.parseForStatement(node)
-  case tt._function:
-    if (!declaration && this.options.ecmaVersion >= 6) this.unexpected()
-    return this.parseFunctionStatement(node)
-  case tt._class:
-    if (!declaration) this.unexpected()
-    return this.parseClass(node, true)
-  case tt._if: return this.parseIfStatement(node)
-  case tt._return: return this.parseReturnStatement(node)
-  case tt._switch: return this.parseSwitchStatement(node)
-  case tt._throw: return this.parseThrowStatement(node)
-  case tt._try: return this.parseTryStatement(node)
-  case tt._let: case tt._const: if (!declaration) this.unexpected() // NOTE: falls through to _var
-  case tt._var: return this.parseVarStatement(node, starttype)
-  case tt._while: return this.parseWhileStatement(node)
-  case tt._with: return this.parseWithStatement(node)
-  case tt.braceL: return this.parseBlock()
-  case tt.semi: return this.parseEmptyStatement(node)
-  case tt._export:
-  case tt._import:
-    if (!this.options.allowImportExportEverywhere) {
-      if (!topLevel)
-        this.raise(this.start, "'import' and 'export' may only appear at the top level")
-      if (!this.inModule)
-        this.raise(this.start, "'import' and 'export' may appear only with 'sourceType: module'")
-    }
-    return starttype === tt._import ? this.parseImport(node) : this.parseExport(node)
-
-    // If the statement does not start with a statement keyword or a
-    // brace, it's an ExpressionStatement or LabeledStatement. We
-    // simply start parsing an expression, and afterwards, if the
-    // next token is a colon and the expression was a simple
-    // Identifier node, we switch to interpreting it as a label.
-  default:
-    let maybeName = this.value, expr = this.parseExpression()
-    if (starttype === tt.name && expr.type === "Identifier" && this.eat(tt.colon))
-      return this.parseLabeledStatement(node, maybeName, expr)
-    else return this.parseExpressionStatement(node, expr)
-  }
-}
-
-pp.parseBreakContinueStatement = function(node, keyword) {
-  let isBreak = keyword == "break"
-  this.next()
-  if (this.eat(tt.semi) || this.insertSemicolon()) node.label = null
-  else if (this.type !== tt.name) this.unexpected()
-  else {
-    node.label = this.parseIdent()
-    this.semicolon()
-  }
-
-  // Verify that there is an actual destination to break or
-  // continue to.
-  for (var i = 0; i < this.labels.length; ++i) {
-    let lab = this.labels[i]
-    if (node.label == null || lab.name === node.label.name) {
-      if (lab.kind != null && (isBreak || lab.kind === "loop")) break
-      if (node.label && isBreak) break
-    }
-  }
-  if (i === this.labels.length) this.raise(node.start, "Unsyntactic " + keyword)
-  return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement")
-}
-
-pp.parseDebuggerStatement = function(node) {
-  this.next()
-  this.semicolon()
-  return this.finishNode(node, "DebuggerStatement")
-}
-
-pp.parseDoStatement = function(node) {
-  this.next()
-  this.labels.push(loopLabel)
-  node.body = this.parseStatement(false)
-  this.labels.pop()
-  this.expect(tt._while)
-  node.test = this.parseParenExpression()
-  if (this.options.ecmaVersion >= 6)
-    this.eat(tt.semi)
-  else
-    this.semicolon()
-  return this.finishNode(node, "DoWhileStatement")
-}
-
-// Disambiguating between a `for` and a `for`/`in` or `for`/`of`
-// loop is non-trivial. Basically, we have to parse the init `var`
-// statement or expression, disallowing the `in` operator (see
-// the second parameter to `parseExpression`), and then check
-// whether the next token is `in` or `of`. When there is no init
-// part (semicolon immediately after the opening parenthesis), it
-// is a regular `for` loop.
-
-pp.parseForStatement = function(node) {
-  this.next()
-  this.labels.push(loopLabel)
-  this.expect(tt.parenL)
-  if (this.type === tt.semi) return this.parseFor(node, null)
-  if (this.type === tt._var || this.type === tt._let || this.type === tt._const) {
-    let init = this.startNode(), varKind = this.type
-    this.next()
-    this.parseVar(init, true, varKind)
-    this.finishNode(init, "VariableDeclaration")
-    if ((this.type === tt._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) && init.declarations.length === 1 &&
-        !(varKind !== tt._var && init.declarations[0].init))
-      return this.parseForIn(node, init)
-    return this.parseFor(node, init)
-  }
-  let refDestructuringErrors = {shorthandAssign: 0, trailingComma: 0}
-  let init = this.parseExpression(true, refDestructuringErrors)
-  if (this.type === tt._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) {
-    this.checkPatternErrors(refDestructuringErrors, true)
-    this.toAssignable(init)
-    this.checkLVal(init)
-    return this.parseForIn(node, init)
-  } else {
-    this.checkExpressionErrors(refDestructuringErrors, true)
-  }
-  return this.parseFor(node, init)
-}
-
-pp.parseFunctionStatement = function(node) {
-  this.next()
-  return this.parseFunction(node, true)
-}
-
-pp.parseIfStatement = function(node) {
-  this.next()
-  node.test = this.parseParenExpression()
-  node.consequent = this.parseStatement(false)
-  node.alternate = this.eat(tt._else) ? this.parseStatement(false) : null
-  return this.finishNode(node, "IfStatement")
-}
-
-pp.parseReturnStatement = function(node) {
-  if (!this.inFunction && !this.options.allowReturnOutsideFunction)
-    this.raise(this.start, "'return' outside of function")
-  this.next()
-
-  // In `return` (and `break`/`continue`), the keywords with
-  // optional arguments, we eagerly look for a semicolon or the
-  // possibility to insert one.
-
-  if (this.eat(tt.semi) || this.insertSemicolon()) node.argument = null
-  else { node.argument = this.parseExpression(); this.semicolon() }
-  return this.finishNode(node, "ReturnStatement")
-}
-
-pp.parseSwitchStatement = function(node) {
-  this.next()
-  node.discriminant = this.parseParenExpression()
-  node.cases = []
-  this.expect(tt.braceL)
-  this.labels.push(switchLabel)
-
-  // Statements under must be grouped (by label) in SwitchCase
-  // nodes. `cur` is used to keep the node that we are currently
-  // adding statements to.
-
-  for (var cur, sawDefault = false; this.type != tt.braceR;) {
-    if (this.type === tt._case || this.type === tt._default) {
-      let isCase = this.type === tt._case
-      if (cur) this.finishNode(cur, "SwitchCase")
-      node.cases.push(cur = this.startNode())
-      cur.consequent = []
-      this.next()
-      if (isCase) {
-        cur.test = this.parseExpression()
-      } else {
-        if (sawDefault) this.raise(this.lastTokStart, "Multiple default clauses")
-        sawDefault = true
-        cur.test = null
-      }
-      this.expect(tt.colon)
-    } else {
-      if (!cur) this.unexpected()
-      cur.consequent.push(this.parseStatement(true))
-    }
-  }
-  if (cur) this.finishNode(cur, "SwitchCase")
-  this.next() // Closing brace
-  this.labels.pop()
-  return this.finishNode(node, "SwitchStatement")
-}
-
-pp.parseThrowStatement = function(node) {
-  this.next()
-  if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start)))
-    this.raise(this.lastTokEnd, "Illegal newline after throw")
-  node.argument = this.parseExpression()
-  this.semicolon()
-  return this.finishNode(node, "ThrowStatement")
-}
-
-// Reused empty array added for node fields that are always empty.
-
-const empty = []
-
-pp.parseTryStatement = function(node) {
-  this.next()
-  node.block = this.parseBlock()
-  node.handler = null
-  if (this.type === tt._catch) {
-    let clause = this.startNode()
-    this.next()
-    this.expect(tt.parenL)
-    clause.param = this.parseBindingAtom()
-    this.checkLVal(clause.param, true)
-    this.expect(tt.parenR)
-    clause.body = this.parseBlock()
-    node.handler = this.finishNode(clause, "CatchClause")
-  }
-  node.finalizer = this.eat(tt._finally) ? this.parseBlock() : null
-  if (!node.handler && !node.finalizer)
-    this.raise(node.start, "Missing catch or finally clause")
-  return this.finishNode(node, "TryStatement")
-}
-
-pp.parseVarStatement = function(node, kind) {
-  this.next()
-  this.parseVar(node, false, kind)
-  this.semicolon()
-  return this.finishNode(node, "VariableDeclaration")
-}
-
-pp.parseWhileStatement = function(node) {
-  this.next()
-  node.test = this.parseParenExpression()
-  this.labels.push(loopLabel)
-  node.body = this.parseStatement(false)
-  this.labels.pop()
-  return this.finishNode(node, "WhileStatement")
-}
-
-pp.parseWithStatement = function(node) {
-  if (this.strict) this.raise(this.start, "'with' in strict mode")
-  this.next()
-  node.object = this.parseParenExpression()
-  node.body = this.parseStatement(false)
-  return this.finishNode(node, "WithStatement")
-}
-
-pp.parseEmptyStatement = function(node) {
-  this.next()
-  return this.finishNode(node, "EmptyStatement")
-}
-
-pp.parseLabeledStatement = function(node, maybeName, expr) {
-  for (let i = 0; i < this.labels.length; ++i)
-    if (this.labels[i].name === maybeName) this.raise(expr.start, "Label '" + maybeName + "' is already declared")
-  let kind = this.type.isLoop ? "loop" : this.type === tt._switch ? "switch" : null
-  for (let i = this.labels.length - 1; i >= 0; i--) {
-    let label = this.labels[i]
-    if (label.statementStart == node.start) {
-      label.statementStart = this.start;
-      label.kind = kind;
-    } else break;
-  }
-  this.labels.push({name: maybeName, kind: kind, statementStart: this.start})
-  node.body = this.parseStatement(true)
-  this.labels.pop()
-  node.label = expr
-  return this.finishNode(node, "LabeledStatement")
-}
-
-pp.parseExpressionStatement = function(node, expr) {
-  node.expression = expr
-  this.semicolon()
-  return this.finishNode(node, "ExpressionStatement")
-}
-
-// Parse a semicolon-enclosed block of statements, handling `"use
-// strict"` declarations when `allowStrict` is true (used for
-// function bodies).
-
-pp.parseBlock = function(allowStrict) {
-  let node = this.startNode(), first = true, oldStrict
-  node.body = []
-  this.expect(tt.braceL)
-  while (!this.eat(tt.braceR)) {
-    let stmt = this.parseStatement(true)
-    node.body.push(stmt)
-    if (first && allowStrict && this.isUseStrict(stmt)) {
-      oldStrict = this.strict
-      this.setStrict(this.strict = true)
-    }
-    first = false
-  }
-  if (oldStrict === false) this.setStrict(false)
-  return this.finishNode(node, "BlockStatement")
-}
-
-// Parse a regular `for` loop. The disambiguation code in
-// `parseStatement` will already have parsed the init statement or
-// expression.
-
-pp.parseFor = function(node, init) {
-  node.init = init
-  this.expect(tt.semi)
-  node.test = this.type === tt.semi ? null : this.parseExpression()
-  this.expect(tt.semi)
-  node.update = this.type === tt.parenR ? null : this.parseExpression()
-  this.expect(tt.parenR)
-  node.body = this.parseStatement(false)
-  this.labels.pop()
-  return this.finishNode(node, "ForStatement")
-}
-
-// Parse a `for`/`in` and `for`/`of` loop, which are almost
-// same from parser's perspective.
-
-pp.parseForIn = function(node, init) {
-  let type = this.type === tt._in ? "ForInStatement" : "ForOfStatement"
-  this.next()
-  node.left = init
-  node.right = this.parseExpression()
-  this.expect(tt.parenR)
-  node.body = this.parseStatement(false)
-  this.labels.pop()
-  return this.finishNode(node, type)
-}
-
-// Parse a list of variable declarations.
-
-pp.parseVar = function(node, isFor, kind) {
-  node.declarations = []
-  node.kind = kind.keyword
-  for (;;) {
-    let decl = this.startNode()
-    this.parseVarId(decl)
-    if (this.eat(tt.eq)) {
-      decl.init = this.parseMaybeAssign(isFor)
-    } else if (kind === tt._const && !(this.type === tt._in || (this.options.ecmaVersion >= 6 && this.isContextual("of")))) {
-      this.unexpected()
-    } else if (decl.id.type != "Identifier" && !(isFor && (this.type === tt._in || this.isContextual("of")))) {
-      this.raise(this.lastTokEnd, "Complex binding patterns require an initialization value")
-    } else {
-      decl.init = null
-    }
-    node.declarations.push(this.finishNode(decl, "VariableDeclarator"))
-    if (!this.eat(tt.comma)) break
-  }
-  return node
-}
-
-pp.parseVarId = function(decl) {
-  decl.id = this.parseBindingAtom()
-  this.checkLVal(decl.id, true)
-}
-
-// Parse a function declaration or literal (depending on the
-// `isStatement` parameter).
-
-pp.parseFunction = function(node, isStatement, allowExpressionBody) {
-  this.initFunction(node)
-  if (this.options.ecmaVersion >= 6)
-    node.generator = this.eat(tt.star)
-  if (isStatement || this.type === tt.name)
-    node.id = this.parseIdent()
-  this.parseFunctionParams(node)
-  this.parseFunctionBody(node, allowExpressionBody)
-  return this.finishNode(node, isStatement ? "FunctionDeclaration" : "FunctionExpression")
-}
-
-pp.parseFunctionParams = function(node) {
-  this.expect(tt.parenL)
-  node.params = this.parseBindingList(tt.parenR, false, false, true)
-}
-
-// Parse a class declaration or literal (depending on the
-// `isStatement` parameter).
-
-pp.parseClass = function(node, isStatement) {
-  this.next()
-  this.parseClassId(node, isStatement)
-  this.parseClassSuper(node)
-  let classBody = this.startNode()
-  let hadConstructor = false
-  classBody.body = []
-  this.expect(tt.braceL)
-  while (!this.eat(tt.braceR)) {
-    if (this.eat(tt.semi)) continue
-    let method = this.startNode()
-    let isGenerator = this.eat(tt.star)
-    let isMaybeStatic = this.type === tt.name && this.value === "static"
-    this.parsePropertyName(method)
-    method.static = isMaybeStatic && this.type !== tt.parenL
-    if (method.static) {
-      if (isGenerator) this.unexpected()
-      isGenerator = this.eat(tt.star)
-      this.parsePropertyName(method)
-    }
-    method.kind = "method"
-    let isGetSet = false
-    if (!method.computed) {
-      let {key} = method
-      if (!isGenerator && key.type === "Identifier" && this.type !== tt.parenL && (key.name === "get" || key.name === "set")) {
-        isGetSet = true
-        method.kind = key.name
-        key = this.parsePropertyName(method)
-      }
-      if (!method.static && (key.type === "Identifier" && key.name === "constructor" ||
-          key.type === "Literal" && key.value === "constructor")) {
-        if (hadConstructor) this.raise(key.start, "Duplicate constructor in the same class")
-        if (isGetSet) this.raise(key.start, "Constructor can't have get/set modifier")
-        if (isGenerator) this.raise(key.start, "Constructor can't be a generator")
-        method.kind = "constructor"
-        hadConstructor = true
-      }
-    }
-    this.parseClassMethod(classBody, method, isGenerator)
-    if (isGetSet) {
-      let paramCount = method.kind === "get" ? 0 : 1
-      if (method.value.params.length !== paramCount) {
-        let start = method.value.start
-        if (method.kind === "get")
-          this.raise(start, "getter should have no params");
-        else
-          this.raise(start, "setter should have exactly one param")
-      }
-      if (method.kind === "set" && method.value.params[0].type === "RestElement")
-        this.raise(method.value.params[0].start, "Setter cannot use rest params")
-    }
-  }
-  node.body = this.finishNode(classBody, "ClassBody")
-  return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression")
-}
-
-pp.parseClassMethod = function(classBody, method, isGenerator) {
-  method.value = this.parseMethod(isGenerator)
-  classBody.body.push(this.finishNode(method, "MethodDefinition"))
-}
-
-pp.parseClassId = function(node, isStatement) {
-  node.id = this.type === tt.name ? this.parseIdent() : isStatement ? this.unexpected() : null
-}
-
-pp.parseClassSuper = function(node) {
-  node.superClass = this.eat(tt._extends) ? this.parseExprSubscripts() : null
-}
-
-// Parses module export declaration.
-
-pp.parseExport = function(node) {
-  this.next()
-  // export * from '...'
-  if (this.eat(tt.star)) {
-    this.expectContextual("from")
-    node.source = this.type === tt.string ? this.parseExprAtom() : this.unexpected()
-    this.semicolon()
-    return this.finishNode(node, "ExportAllDeclaration")
-  }
-  if (this.eat(tt._default)) { // export default ...
-    let expr = this.parseMaybeAssign()
-    let needsSemi = true
-    if (expr.type == "FunctionExpression" ||
-        expr.type == "ClassExpression") {
-      needsSemi = false
-      if (expr.id) {
-        expr.type = expr.type == "FunctionExpression"
-          ? "FunctionDeclaration"
-          : "ClassDeclaration"
-      }
-    }
-    node.declaration = expr
-    if (needsSemi) this.semicolon()
-    return this.finishNode(node, "ExportDefaultDeclaration")
-  }
-  // export var|const|let|function|class ...
-  if (this.shouldParseExportStatement()) {
-    node.declaration = this.parseStatement(true)
-    node.specifiers = []
-    node.source = null
-  } else { // export { x, y as z } [from '...']
-    node.declaration = null
-    node.specifiers = this.parseExportSpecifiers()
-    if (this.eatContextual("from")) {
-      node.source = this.type === tt.string ? this.parseExprAtom() : this.unexpected()
-    } else {
-      // check for keywords used as local names
-      for (let i = 0; i < node.specifiers.length; i++) {
-        if (this.keywords.test(node.specifiers[i].local.name) || this.reservedWords.test(node.specifiers[i].local.name)) {
-          this.unexpected(node.specifiers[i].local.start)
-        }
-      }
-
-      node.source = null
-    }
-    this.semicolon()
-  }
-  return this.finishNode(node, "ExportNamedDeclaration")
-}
-
-pp.shouldParseExportStatement = function() {
-  return this.type.keyword
-}
-
-// Parses a comma-separated list of module exports.
-
-pp.parseExportSpecifiers = function() {
-  let nodes = [], first = true
-  // export { x, y as z } [from '...']
-  this.expect(tt.braceL)
-  while (!this.eat(tt.braceR)) {
-    if (!first) {
-      this.expect(tt.comma)
-      if (this.afterTrailingComma(tt.braceR)) break
-    } else first = false
-
-    let node = this.startNode()
-    node.local = this.parseIdent(this.type === tt._default)
-    node.exported = this.eatContextual("as") ? this.parseIdent(true) : node.local
-    nodes.push(this.finishNode(node, "ExportSpecifier"))
-  }
-  return nodes
-}
-
-// Parses import declaration.
-
-pp.parseImport = function(node) {
-  this.next()
-  // import '...'
-  if (this.type === tt.string) {
-    node.specifiers = empty
-    node.source = this.parseExprAtom()
-  } else {
-    node.specifiers = this.parseImportSpecifiers()
-    this.expectContextual("from")
-    node.source = this.type === tt.string ? this.parseExprAtom() : this.unexpected()
-  }
-  this.semicolon()
-  return this.finishNode(node, "ImportDeclaration")
-}
-
-// Parses a comma-separated list of module imports.
-
-pp.parseImportSpecifiers = function() {
-  let nodes = [], first = true
-  if (this.type === tt.name) {
-    // import defaultObj, { x, y as z } from '...'
-    let node = this.startNode()
-    node.local = this.parseIdent()
-    this.checkLVal(node.local, true)
-    nodes.push(this.finishNode(node, "ImportDefaultSpecifier"))
-    if (!this.eat(tt.comma)) return nodes
-  }
-  if (this.type === tt.star) {
-    let node = this.startNode()
-    this.next()
-    this.expectContextual("as")
-    node.local = this.parseIdent()
-    this.checkLVal(node.local, true)
-    nodes.push(this.finishNode(node, "ImportNamespaceSpecifier"))
-    return nodes
-  }
-  this.expect(tt.braceL)
-  while (!this.eat(tt.braceR)) {
-    if (!first) {
-      this.expect(tt.comma)
-      if (this.afterTrailingComma(tt.braceR)) break
-    } else first = false
-
-    let node = this.startNode()
-    node.imported = this.parseIdent(true)
-    if (this.eatContextual("as")) {
-      node.local = this.parseIdent()
-    } else {
-      node.local = node.imported
-      if (this.isKeyword(node.local.name)) this.unexpected(node.local.start)
-      if (this.reservedWordsStrict.test(node.local.name)) this.raise(node.local.start, "The keyword '" + node.local.name + "' is reserved")
-    }
-    this.checkLVal(node.local, true)
-    nodes.push(this.finishNode(node, "ImportSpecifier"))
-  }
-  return nodes
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/src/tokencontext.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/src/tokencontext.js b/node_modules/acorn/src/tokencontext.js
deleted file mode 100644
index c76fc9d..0000000
--- a/node_modules/acorn/src/tokencontext.js
+++ /dev/null
@@ -1,109 +0,0 @@
-// The algorithm used to determine whether a regexp can appear at a
-// given point in the program is loosely based on sweet.js' approach.
-// See https://github.com/mozilla/sweet.js/wiki/design
-
-import {Parser} from "./state"
-import {types as tt} from "./tokentype"
-import {lineBreak} from "./whitespace"
-
-export class TokContext {
-  constructor(token, isExpr, preserveSpace, override) {
-    this.token = token
-    this.isExpr = !!isExpr
-    this.preserveSpace = !!preserveSpace
-    this.override = override
-  }
-}
-
-export const types = {
-  b_stat: new TokContext("{", false),
-  b_expr: new TokContext("{", true),
-  b_tmpl: new TokContext("${", true),
-  p_stat: new TokContext("(", false),
-  p_expr: new TokContext("(", true),
-  q_tmpl: new TokContext("`", true, true, p => p.readTmplToken()),
-  f_expr: new TokContext("function", true)
-}
-
-const pp = Parser.prototype
-
-pp.initialContext = function() {
-  return [types.b_stat]
-}
-
-pp.braceIsBlock = function(prevType) {
-  if (prevType === tt.colon) {
-    let parent = this.curContext()
-    if (parent === types.b_stat || parent === types.b_expr)
-      return !parent.isExpr
-  }
-  if (prevType === tt._return)
-    return lineBreak.test(this.input.slice(this.lastTokEnd, this.start))
-  if (prevType === tt._else || prevType === tt.semi || prevType === tt.eof || prevType === tt.parenR)
-    return true
-  if (prevType == tt.braceL)
-    return this.curContext() === types.b_stat
-  return !this.exprAllowed
-}
-
-pp.updateContext = function(prevType) {
-  let update, type = this.type
-  if (type.keyword && prevType == tt.dot)
-    this.exprAllowed = false
-  else if (update = type.updateContext)
-    update.call(this, prevType)
-  else
-    this.exprAllowed = type.beforeExpr
-}
-
-// Token-specific context update code
-
-tt.parenR.updateContext = tt.braceR.updateContext = function() {
-  if (this.context.length == 1) {
-    this.exprAllowed = true
-    return
-  }
-  let out = this.context.pop()
-  if (out === types.b_stat && this.curContext() === types.f_expr) {
-    this.context.pop()
-    this.exprAllowed = false
-  } else if (out === types.b_tmpl) {
-    this.exprAllowed = true
-  } else {
-    this.exprAllowed = !out.isExpr
-  }
-}
-
-tt.braceL.updateContext = function(prevType) {
-  this.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr)
-  this.exprAllowed = true
-}
-
-tt.dollarBraceL.updateContext = function() {
-  this.context.push(types.b_tmpl)
-  this.exprAllowed = true
-}
-
-tt.parenL.updateContext = function(prevType) {
-  let statementParens = prevType === tt._if || prevType === tt._for || prevType === tt._with || prevType === tt._while
-  this.context.push(statementParens ? types.p_stat : types.p_expr)
-  this.exprAllowed = true
-}
-
-tt.incDec.updateContext = function() {
-  // tokExprAllowed stays unchanged
-}
-
-tt._function.updateContext = function() {
-  if (this.curContext() !== types.b_stat)
-    this.context.push(types.f_expr)
-  this.exprAllowed = false
-}
-
-tt.backQuote.updateContext = function() {
-  if (this.curContext() === types.q_tmpl)
-    this.context.pop()
-  else
-    this.context.push(types.q_tmpl)
-  this.exprAllowed = false
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/src/tokenize.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/src/tokenize.js b/node_modules/acorn/src/tokenize.js
deleted file mode 100644
index 1b2bd95..0000000
--- a/node_modules/acorn/src/tokenize.js
+++ /dev/null
@@ -1,682 +0,0 @@
-import {isIdentifierStart, isIdentifierChar} from "./identifier"
-import {types as tt, keywords as keywordTypes} from "./tokentype"
-import {Parser} from "./state"
-import {SourceLocation} from "./locutil"
-import {lineBreak, lineBreakG, isNewLine, nonASCIIwhitespace} from "./whitespace"
-
-// Object type used to represent tokens. Note that normally, tokens
-// simply exist as properties on the parser object. This is only
-// used for the onToken callback and the external tokenizer.
-
-export class Token {
-  constructor(p) {
-    this.type = p.type
-    this.value = p.value
-    this.start = p.start
-    this.end = p.end
-    if (p.options.locations)
-      this.loc = new SourceLocation(p, p.startLoc, p.endLoc)
-    if (p.options.ranges)
-      this.range = [p.start, p.end]
-  }
-}
-
-// ## Tokenizer
-
-const pp = Parser.prototype
-
-// Are we running under Rhino?
-const isRhino = typeof Packages == "object" && Object.prototype.toString.call(Packages) == "[object JavaPackage]"
-
-// Move to the next token
-
-pp.next = function() {
-  if (this.options.onToken)
-    this.options.onToken(new Token(this))
-
-  this.lastTokEnd = this.end
-  this.lastTokStart = this.start
-  this.lastTokEndLoc = this.endLoc
-  this.lastTokStartLoc = this.startLoc
-  this.nextToken()
-}
-
-pp.getToken = function() {
-  this.next()
-  return new Token(this)
-}
-
-// If we're in an ES6 environment, make parsers iterable
-if (typeof Symbol !== "undefined")
-  pp[Symbol.iterator] = function () {
-    let self = this
-    return {next: function () {
-      let token = self.getToken()
-      return {
-        done: token.type === tt.eof,
-        value: token
-      }
-    }}
-  }
-
-// Toggle strict mode. Re-reads the next number or string to please
-// pedantic tests (`"use strict"; 010;` should fail).
-
-pp.setStrict = function(strict) {
-  this.strict = strict
-  if (this.type !== tt.num && this.type !== tt.string) return
-  this.pos = this.start
-  if (this.options.locations) {
-    while (this.pos < this.lineStart) {
-      this.lineStart = this.input.lastIndexOf("\n", this.lineStart - 2) + 1
-      --this.curLine
-    }
-  }
-  this.nextToken()
-}
-
-pp.curContext = function() {
-  return this.context[this.context.length - 1]
-}
-
-// Read a single token, updating the parser object's token-related
-// properties.
-
-pp.nextToken = function() {
-  let curContext = this.curContext()
-  if (!curContext || !curContext.preserveSpace) this.skipSpace()
-
-  this.start = this.pos
-  if (this.options.locations) this.startLoc = this.curPosition()
-  if (this.pos >= this.input.length) return this.finishToken(tt.eof)
-
-  if (curContext.override) return curContext.override(this)
-  else this.readToken(this.fullCharCodeAtPos())
-}
-
-pp.readToken = function(code) {
-  // Identifier or keyword. '\uXXXX' sequences are allowed in
-  // identifiers, so '\' also dispatches to that.
-  if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\' */)
-    return this.readWord()
-
-  return this.getTokenFromCode(code)
-}
-
-pp.fullCharCodeAtPos = function() {
-  let code = this.input.charCodeAt(this.pos)
-  if (code <= 0xd7ff || code >= 0xe000) return code
-  let next = this.input.charCodeAt(this.pos + 1)
-  return (code << 10) + next - 0x35fdc00
-}
-
-pp.skipBlockComment = function() {
-  let startLoc = this.options.onComment && this.curPosition()
-  let start = this.pos, end = this.input.indexOf("*/", this.pos += 2)
-  if (end === -1) this.raise(this.pos - 2, "Unterminated comment")
-  this.pos = end + 2
-  if (this.options.locations) {
-    lineBreakG.lastIndex = start
-    let match
-    while ((match = lineBreakG.exec(this.input)) && match.index < this.pos) {
-      ++this.curLine
-      this.lineStart = match.index + match[0].length
-    }
-  }
-  if (this.options.onComment)
-    this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos,
-                           startLoc, this.curPosition())
-}
-
-pp.skipLineComment = function(startSkip) {
-  let start = this.pos
-  let startLoc = this.options.onComment && this.curPosition()
-  let ch = this.input.charCodeAt(this.pos+=startSkip)
-  while (this.pos < this.input.length && ch !== 10 && ch !== 13 && ch !== 8232 && ch !== 8233) {
-    ++this.pos
-    ch = this.input.charCodeAt(this.pos)
-  }
-  if (this.options.onComment)
-    this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos,
-                           startLoc, this.curPosition())
-}
-
-// Called at the start of the parse and after every token. Skips
-// whitespace and comments, and.
-
-pp.skipSpace = function() {
-  loop: while (this.pos < this.input.length) {
-    let ch = this.input.charCodeAt(this.pos)
-    switch (ch) {
-      case 32: case 160: // ' '
-        ++this.pos
-        break
-      case 13:
-        if (this.input.charCodeAt(this.pos + 1) === 10) {
-          ++this.pos
-        }
-      case 10: case 8232: case 8233:
-        ++this.pos
-        if (this.options.locations) {
-          ++this.curLine
-          this.lineStart = this.pos
-        }
-        break
-      case 47: // '/'
-        switch (this.input.charCodeAt(this.pos + 1)) {
-          case 42: // '*'
-            this.skipBlockComment()
-            break
-          case 47:
-            this.skipLineComment(2)
-            break
-          default:
-            break loop
-        }
-        break
-      default:
-        if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) {
-          ++this.pos
-        } else {
-          break loop
-        }
-    }
-  }
-}
-
-// Called at the end of every token. Sets `end`, `val`, and
-// maintains `context` and `exprAllowed`, and skips the space after
-// the token, so that the next one's `start` will point at the
-// right position.
-
-pp.finishToken = function(type, val) {
-  this.end = this.pos
-  if (this.options.locations) this.endLoc = this.curPosition()
-  let prevType = this.type
-  this.type = type
-  this.value = val
-
-  this.updateContext(prevType)
-}
-
-// ### Token reading
-
-// This is the function that is called to fetch the next token. It
-// is somewhat obscure, because it works in character codes rather
-// than characters, and because operator parsing has been inlined
-// into it.
-//
-// All in the name of speed.
-//
-pp.readToken_dot = function() {
-  let next = this.input.charCodeAt(this.pos + 1)
-  if (next >= 48 && next <= 57) return this.readNumber(true)
-  let next2 = this.input.charCodeAt(this.pos + 2)
-  if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.'
-    this.pos += 3
-    return this.finishToken(tt.ellipsis)
-  } else {
-    ++this.pos
-    return this.finishToken(tt.dot)
-  }
-}
-
-pp.readToken_slash = function() { // '/'
-  let next = this.input.charCodeAt(this.pos + 1)
-  if (this.exprAllowed) {++this.pos; return this.readRegexp();}
-  if (next === 61) return this.finishOp(tt.assign, 2)
-  return this.finishOp(tt.slash, 1)
-}
-
-pp.readToken_mult_modulo = function(code) { // '%*'
-  let next = this.input.charCodeAt(this.pos + 1)
-  if (next === 61) return this.finishOp(tt.assign, 2)
-  return this.finishOp(code === 42 ? tt.star : tt.modulo, 1)
-}
-
-pp.readToken_pipe_amp = function(code) { // '|&'
-  let next = this.input.charCodeAt(this.pos + 1)
-  if (next === code) return this.finishOp(code === 124 ? tt.logicalOR : tt.logicalAND, 2)
-  if (next === 61) return this.finishOp(tt.assign, 2)
-  return this.finishOp(code === 124 ? tt.bitwiseOR : tt.bitwiseAND, 1)
-}
-
-pp.readToken_caret = function() { // '^'
-  let next = this.input.charCodeAt(this.pos + 1)
-  if (next === 61) return this.finishOp(tt.assign, 2)
-  return this.finishOp(tt.bitwiseXOR, 1)
-}
-
-pp.readToken_plus_min = function(code) { // '+-'
-  let next = this.input.charCodeAt(this.pos + 1)
-  if (next === code) {
-    if (next == 45 && this.input.charCodeAt(this.pos + 2) == 62 &&
-        lineBreak.test(this.input.slice(this.lastTokEnd, this.pos))) {
-      // A `-->` line comment
-      this.skipLineComment(3)
-      this.skipSpace()
-      return this.nextToken()
-    }
-    return this.finishOp(tt.incDec, 2)
-  }
-  if (next === 61) return this.finishOp(tt.assign, 2)
-  return this.finishOp(tt.plusMin, 1)
-}
-
-pp.readToken_lt_gt = function(code) { // '<>'
-  let next = this.input.charCodeAt(this.pos + 1)
-  let size = 1
-  if (next === code) {
-    size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2
-    if (this.input.charCodeAt(this.pos + size) === 61) return this.finishOp(tt.assign, size + 1)
-    return this.finishOp(tt.bitShift, size)
-  }
-  if (next == 33 && code == 60 && this.input.charCodeAt(this.pos + 2) == 45 &&
-      this.input.charCodeAt(this.pos + 3) == 45) {
-    if (this.inModule) this.unexpected()
-    // `<!--`, an XML-style comment that should be interpreted as a line comment
-    this.skipLineComment(4)
-    this.skipSpace()
-    return this.nextToken()
-  }
-  if (next === 61)
-    size = this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2
-  return this.finishOp(tt.relational, size)
-}
-
-pp.readToken_eq_excl = function(code) { // '=!'
-  let next = this.input.charCodeAt(this.pos + 1)
-  if (next === 61) return this.finishOp(tt.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2)
-  if (code === 61 && next === 62 && this.options.ecmaVersion >= 6) { // '=>'
-    this.pos += 2
-    return this.finishToken(tt.arrow)
-  }
-  return this.finishOp(code === 61 ? tt.eq : tt.prefix, 1)
-}
-
-pp.getTokenFromCode = function(code) {
-  switch (code) {
-    // The interpretation of a dot depends on whether it is followed
-    // by a digit or another two dots.
-  case 46: // '.'
-    return this.readToken_dot()
-
-    // Punctuation tokens.
-  case 40: ++this.pos; return this.finishToken(tt.parenL)
-  case 41: ++this.pos; return this.finishToken(tt.parenR)
-  case 59: ++this.pos; return this.finishToken(tt.semi)
-  case 44: ++this.pos; return this.finishToken(tt.comma)
-  case 91: ++this.pos; return this.finishToken(tt.bracketL)
-  case 93: ++this.pos; return this.finishToken(tt.bracketR)
-  case 123: ++this.pos; return this.finishToken(tt.braceL)
-  case 125: ++this.pos; return this.finishToken(tt.braceR)
-  case 58: ++this.pos; return this.finishToken(tt.colon)
-  case 63: ++this.pos; return this.finishToken(tt.question)
-
-  case 96: // '`'
-    if (this.options.ecmaVersion < 6) break
-    ++this.pos
-    return this.finishToken(tt.backQuote)
-
-  case 48: // '0'
-    let next = this.input.charCodeAt(this.pos + 1)
-    if (next === 120 || next === 88) return this.readRadixNumber(16); // '0x', '0X' - hex number
-    if (this.options.ecmaVersion >= 6) {
-      if (next === 111 || next === 79) return this.readRadixNumber(8); // '0o', '0O' - octal number
-      if (next === 98 || next === 66) return this.readRadixNumber(2); // '0b', '0B' - binary number
-    }
-    // Anything else beginning with a digit is an integer, octal
-    // number, or float.
-  case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: // 1-9
-    return this.readNumber(false)
-
-    // Quotes produce strings.
-  case 34: case 39: // '"', "'"
-    return this.readString(code)
-
-    // Operators are parsed inline in tiny state machines. '=' (61) is
-    // often referred to. `finishOp` simply skips the amount of
-    // characters it is given as second argument, and returns a token
-    // of the type given by its first argument.
-
-  case 47: // '/'
-    return this.readToken_slash()
-
-  case 37: case 42: // '%*'
-    return this.readToken_mult_modulo(code)
-
-  case 124: case 38: // '|&'
-    return this.readToken_pipe_amp(code)
-
-  case 94: // '^'
-    return this.readToken_caret()
-
-  case 43: case 45: // '+-'
-    return this.readToken_plus_min(code)
-
-  case 60: case 62: // '<>'
-    return this.readToken_lt_gt(code)
-
-  case 61: case 33: // '=!'
-    return this.readToken_eq_excl(code)
-
-  case 126: // '~'
-    return this.finishOp(tt.prefix, 1)
-  }
-
-  this.raise(this.pos, "Unexpected character '" + codePointToString(code) + "'")
-}
-
-pp.finishOp = function(type, size) {
-  let str = this.input.slice(this.pos, this.pos + size)
-  this.pos += size
-  return this.finishToken(type, str)
-}
-
-// Parse a regular expression. Some context-awareness is necessary,
-// since a '/' inside a '[]' set does not end the expression.
-
-function tryCreateRegexp(src, flags, throwErrorAt, parser) {
-  try {
-    return new RegExp(src, flags);
-  } catch (e) {
-    if (throwErrorAt !== undefined) {
-      if (e instanceof SyntaxError) parser.raise(throwErrorAt, "Error parsing regular expression: " + e.message)
-      throw e
-    }
-  }
-}
-
-var regexpUnicodeSupport = !!tryCreateRegexp("\uffff", "u");
-
-pp.readRegexp = function() {
-  let escaped, inClass, start = this.pos
-  for (;;) {
-    if (this.pos >= this.input.length) this.raise(start, "Unterminated regular expression")
-    let ch = this.input.charAt(this.pos)
-    if (lineBreak.test(ch)) this.raise(start, "Unterminated regular expression")
-    if (!escaped) {
-      if (ch === "[") inClass = true
-      else if (ch === "]" && inClass) inClass = false
-      else if (ch === "/" && !inClass) break
-      escaped = ch === "\\"
-    } else escaped = false
-    ++this.pos
-  }
-  let content = this.input.slice(start, this.pos)
-  ++this.pos
-  // Need to use `readWord1` because '\uXXXX' sequences are allowed
-  // here (don't ask).
-  let mods = this.readWord1()
-  let tmp = content
-  if (mods) {
-    let validFlags = /^[gim]*$/
-    if (this.options.ecmaVersion >= 6) validFlags = /^[gimuy]*$/
-    if (!validFlags.test(mods)) this.raise(start, "Invalid regular expression flag")
-    if (mods.indexOf('u') >= 0 && !regexpUnicodeSupport) {
-      // Replace each astral symbol and every Unicode escape sequence that
-      // possibly represents an astral symbol or a paired surrogate with a
-      // single ASCII symbol to avoid throwing on regular expressions that
-      // are only valid in combination with the `/u` flag.
-      // Note: replacing with the ASCII symbol `x` might cause false
-      // negatives in unlikely scenarios. For example, `[\u{61}-b]` is a
-      // perfectly valid pattern that is equivalent to `[a-b]`, but it would
-      // be replaced by `[x-b]` which throws an error.
-      tmp = tmp.replace(/\\u\{([0-9a-fA-F]+)\}/g, (_match, code, offset) => {
-        code = Number("0x" + code)
-        if (code > 0x10FFFF) this.raise(start + offset + 3, "Code point out of bounds")
-        return "x"
-      });
-      tmp = tmp.replace(/\\u([a-fA-F0-9]{4})|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, "x")
-    }
-  }
-  // Detect invalid regular expressions.
-  let value = null
-  // Rhino's regular expression parser is flaky and throws uncatchable exceptions,
-  // so don't do detection if we are running under Rhino
-  if (!isRhino) {
-    tryCreateRegexp(tmp, undefined, start, this);
-    // Get a regular expression object for this pattern-flag pair, or `null` in
-    // case the current environment doesn't support the flags it uses.
-    value = tryCreateRegexp(content, mods)
-  }
-  return this.finishToken(tt.regexp, {pattern: content, flags: mods, value: value})
-}
-
-// Read an integer in the given radix. Return null if zero digits
-// were read, the integer value otherwise. When `len` is given, this
-// will return `null` unless the integer has exactly `len` digits.
-
-pp.readInt = function(radix, len) {
-  let start = this.pos, total = 0
-  for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {
-    let code = this.input.charCodeAt(this.pos), val
-    if (code >= 97) val = code - 97 + 10; // a
-    else if (code >= 65) val = code - 65 + 10; // A
-    else if (code >= 48 && code <= 57) val = code - 48; // 0-9
-    else val = Infinity
-    if (val >= radix) break
-    ++this.pos
-    total = total * radix + val
-  }
-  if (this.pos === start || len != null && this.pos - start !== len) return null
-
-  return total
-}
-
-pp.readRadixNumber = function(radix) {
-  this.pos += 2; // 0x
-  let val = this.readInt(radix)
-  if (val == null) this.raise(this.start + 2, "Expected number in radix " + radix)
-  if (isIdentifierStart(this.fullCharCodeAtPos())) this.raise(this.pos, "Identifier directly after number")
-  return this.finishToken(tt.num, val)
-}
-
-// Read an integer, octal integer, or floating-point number.
-
-pp.readNumber = function(startsWithDot) {
-  let start = this.pos, isFloat = false, octal = this.input.charCodeAt(this.pos) === 48
-  if (!startsWithDot && this.readInt(10) === null) this.raise(start, "Invalid number")
-  let next = this.input.charCodeAt(this.pos)
-  if (next === 46) { // '.'
-    ++this.pos
-    this.readInt(10)
-    isFloat = true
-    next = this.input.charCodeAt(this.pos)
-  }
-  if (next === 69 || next === 101) { // 'eE'
-    next = this.input.charCodeAt(++this.pos)
-    if (next === 43 || next === 45) ++this.pos; // '+-'
-    if (this.readInt(10) === null) this.raise(start, "Invalid number")
-    isFloat = true
-  }
-  if (isIdentifierStart(this.fullCharCodeAtPos())) this.raise(this.pos, "Identifier directly after number")
-
-  let str = this.input.slice(start, this.pos), val
-  if (isFloat) val = parseFloat(str)
-  else if (!octal || str.length === 1) val = parseInt(str, 10)
-  else if (/[89]/.test(str) || this.strict) this.raise(start, "Invalid number")
-  else val = parseInt(str, 8)
-  return this.finishToken(tt.num, val)
-}
-
-// Read a string value, interpreting backslash-escapes.
-
-pp.readCodePoint = function() {
-  let ch = this.input.charCodeAt(this.pos), code
-
-  if (ch === 123) {
-    if (this.options.ecmaVersion < 6) this.unexpected()
-    let codePos = ++this.pos
-    code = this.readHexChar(this.input.indexOf('}', this.pos) - this.pos)
-    ++this.pos
-    if (code > 0x10FFFF) this.raise(codePos, "Code point out of bounds")
-  } else {
-    code = this.readHexChar(4)
-  }
-  return code
-}
-
-function codePointToString(code) {
-  // UTF-16 Decoding
-  if (code <= 0xFFFF) return String.fromCharCode(code)
-  code -= 0x10000
-  return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00)
-}
-
-pp.readString = function(quote) {
-  let out = "", chunkStart = ++this.pos
-  for (;;) {
-    if (this.pos >= this.input.length) this.raise(this.start, "Unterminated string constant")
-    let ch = this.input.charCodeAt(this.pos)
-    if (ch === quote) break
-    if (ch === 92) { // '\'
-      out += this.input.slice(chunkStart, this.pos)
-      out += this.readEscapedChar(false)
-      chunkStart = this.pos
-    } else {
-      if (isNewLine(ch)) this.raise(this.start, "Unterminated string constant")
-      ++this.pos
-    }
-  }
-  out += this.input.slice(chunkStart, this.pos++)
-  return this.finishToken(tt.string, out)
-}
-
-// Reads template string tokens.
-
-pp.readTmplToken = function() {
-  let out = "", chunkStart = this.pos
-  for (;;) {
-    if (this.pos >= this.input.length) this.raise(this.start, "Unterminated template")
-    let ch = this.input.charCodeAt(this.pos)
-    if (ch === 96 || ch === 36 && this.input.charCodeAt(this.pos + 1) === 123) { // '`', '${'
-      if (this.pos === this.start && this.type === tt.template) {
-        if (ch === 36) {
-          this.pos += 2
-          return this.finishToken(tt.dollarBraceL)
-        } else {
-          ++this.pos
-          return this.finishToken(tt.backQuote)
-        }
-      }
-      out += this.input.slice(chunkStart, this.pos)
-      return this.finishToken(tt.template, out)
-    }
-    if (ch === 92) { // '\'
-      out += this.input.slice(chunkStart, this.pos)
-      out += this.readEscapedChar(true)
-      chunkStart = this.pos
-    } else if (isNewLine(ch)) {
-      out += this.input.slice(chunkStart, this.pos)
-      ++this.pos
-      switch (ch) {
-        case 13:
-          if (this.input.charCodeAt(this.pos) === 10) ++this.pos;
-        case 10:
-          out += "\n";
-          break;
-        default:
-          out += String.fromCharCode(ch);
-          break;
-      }
-      if (this.options.locations) {
-        ++this.curLine
-        this.lineStart = this.pos
-      }
-      chunkStart = this.pos
-    } else {
-      ++this.pos
-    }
-  }
-}
-
-// Used to read escaped characters
-
-pp.readEscapedChar = function(inTemplate) {
-  let ch = this.input.charCodeAt(++this.pos)
-  ++this.pos
-  switch (ch) {
-  case 110: return "\n"; // 'n' -> '\n'
-  case 114: return "\r"; // 'r' -> '\r'
-  case 120: return String.fromCharCode(this.readHexChar(2)); // 'x'
-  case 117: return codePointToString(this.readCodePoint()); // 'u'
-  case 116: return "\t"; // 't' -> '\t'
-  case 98: return "\b"; // 'b' -> '\b'
-  case 118: return "\u000b"; // 'v' -> '\u000b'
-  case 102: return "\f"; // 'f' -> '\f'
-  case 13: if (this.input.charCodeAt(this.pos) === 10) ++this.pos; // '\r\n'
-  case 10: // ' \n'
-    if (this.options.locations) { this.lineStart = this.pos; ++this.curLine }
-    return ""
-  default:
-    if (ch >= 48 && ch <= 55) {
-      let octalStr = this.input.substr(this.pos - 1, 3).match(/^[0-7]+/)[0]
-      let octal = parseInt(octalStr, 8)
-      if (octal > 255) {
-        octalStr = octalStr.slice(0, -1)
-        octal = parseInt(octalStr, 8)
-      }
-      if (octalStr !== "0" && (this.strict || inTemplate)) {
-        this.raise(this.pos - 2, "Octal literal in strict mode")
-      }
-      this.pos += octalStr.length - 1
-      return String.fromCharCode(octal)
-    }
-    return String.fromCharCode(ch)
-  }
-}
-
-// Used to read character escape sequences ('\x', '\u', '\U').
-
-pp.readHexChar = function(len) {
-  let codePos = this.pos
-  let n = this.readInt(16, len)
-  if (n === null) this.raise(codePos, "Bad character escape sequence")
-  return n
-}
-
-// Read an identifier, and return it as a string. Sets `this.containsEsc`
-// to whether the word contained a '\u' escape.
-//
-// Incrementally adds only escaped chars, adding other chunks as-is
-// as a micro-optimization.
-
-pp.readWord1 = function() {
-  this.containsEsc = false
-  let word = "", first = true, chunkStart = this.pos
-  let astral = this.options.ecmaVersion >= 6
-  while (this.pos < this.input.length) {
-    let ch = this.fullCharCodeAtPos()
-    if (isIdentifierChar(ch, astral)) {
-      this.pos += ch <= 0xffff ? 1 : 2
-    } else if (ch === 92) { // "\"
-      this.containsEsc = true
-      word += this.input.slice(chunkStart, this.pos)
-      let escStart = this.pos
-      if (this.input.charCodeAt(++this.pos) != 117) // "u"
-        this.raise(this.pos, "Expecting Unicode escape sequence \\uXXXX")
-      ++this.pos
-      let esc = this.readCodePoint()
-      if (!(first ? isIdentifierStart : isIdentifierChar)(esc, astral))
-        this.raise(escStart, "Invalid Unicode escape")
-      word += codePointToString(esc)
-      chunkStart = this.pos
-    } else {
-      break
-    }
-    first = false
-  }
-  return word + this.input.slice(chunkStart, this.pos)
-}
-
-// Read an identifier or keyword token. Will check for reserved
-// words when necessary.
-
-pp.readWord = function() {
-  let word = this.readWord1()
-  let type = tt.name
-  if ((this.options.ecmaVersion >= 6 || !this.containsEsc) && this.keywords.test(word))
-    type = keywordTypes[word]
-  return this.finishToken(type, word)
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/src/tokentype.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/src/tokentype.js b/node_modules/acorn/src/tokentype.js
deleted file mode 100644
index e4efd2b..0000000
--- a/node_modules/acorn/src/tokentype.js
+++ /dev/null
@@ -1,147 +0,0 @@
-// ## Token types
-
-// The assignment of fine-grained, information-carrying type objects
-// allows the tokenizer to store the information it has about a
-// token in a way that is very cheap for the parser to look up.
-
-// All token type variables start with an underscore, to make them
-// easy to recognize.
-
-// The `beforeExpr` property is used to disambiguate between regular
-// expressions and divisions. It is set on all token types that can
-// be followed by an expression (thus, a slash after them would be a
-// regular expression).
-//
-// The `startsExpr` property is used to check if the token ends a
-// `yield` expression. It is set on all token types that either can
-// directly start an expression (like a quotation mark) or can
-// continue an expression (like the body of a string).
-//
-// `isLoop` marks a keyword as starting a loop, which is important
-// to know when parsing a label, in order to allow or disallow
-// continue jumps to that label.
-
-export class TokenType {
-  constructor(label, conf = {}) {
-    this.label = label
-    this.keyword = conf.keyword
-    this.beforeExpr = !!conf.beforeExpr
-    this.startsExpr = !!conf.startsExpr
-    this.isLoop = !!conf.isLoop
-    this.isAssign = !!conf.isAssign
-    this.prefix = !!conf.prefix
-    this.postfix = !!conf.postfix
-    this.binop = conf.binop || null
-    this.updateContext = null
-  }
-}
-
-function binop(name, prec) {
-  return new TokenType(name, {beforeExpr: true, binop: prec})
-}
-const beforeExpr = {beforeExpr: true}, startsExpr = {startsExpr: true}
-
-export const types = {
-  num: new TokenType("num", startsExpr),
-  regexp: new TokenType("regexp", startsExpr),
-  string: new TokenType("string", startsExpr),
-  name: new TokenType("name", startsExpr),
-  eof: new TokenType("eof"),
-
-  // Punctuation token types.
-  bracketL: new TokenType("[", {beforeExpr: true, startsExpr: true}),
-  bracketR: new TokenType("]"),
-  braceL: new TokenType("{", {beforeExpr: true, startsExpr: true}),
-  braceR: new TokenType("}"),
-  parenL: new TokenType("(", {beforeExpr: true, startsExpr: true}),
-  parenR: new TokenType(")"),
-  comma: new TokenType(",", beforeExpr),
-  semi: new TokenType(";", beforeExpr),
-  colon: new TokenType(":", beforeExpr),
-  dot: new TokenType("."),
-  question: new TokenType("?", beforeExpr),
-  arrow: new TokenType("=>", beforeExpr),
-  template: new TokenType("template"),
-  ellipsis: new TokenType("...", beforeExpr),
-  backQuote: new TokenType("`", startsExpr),
-  dollarBraceL: new TokenType("${", {beforeExpr: true, startsExpr: true}),
-
-  // Operators. These carry several kinds of properties to help the
-  // parser use them properly (the presence of these properties is
-  // what categorizes them as operators).
-  //
-  // `binop`, when present, specifies that this operator is a binary
-  // operator, and will refer to its precedence.
-  //
-  // `prefix` and `postfix` mark the operator as a prefix or postfix
-  // unary operator.
-  //
-  // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as
-  // binary operators with a very low precedence, that should result
-  // in AssignmentExpression nodes.
-
-  eq: new TokenType("=", {beforeExpr: true, isAssign: true}),
-  assign: new TokenType("_=", {beforeExpr: true, isAssign: true}),
-  incDec: new TokenType("++/--", {prefix: true, postfix: true, startsExpr: true}),
-  prefix: new TokenType("prefix", {beforeExpr: true, prefix: true, startsExpr: true}),
-  logicalOR: binop("||", 1),
-  logicalAND: binop("&&", 2),
-  bitwiseOR: binop("|", 3),
-  bitwiseXOR: binop("^", 4),
-  bitwiseAND: binop("&", 5),
-  equality: binop("==/!=", 6),
-  relational: binop("</>", 7),
-  bitShift: binop("<</>>", 8),
-  plusMin: new TokenType("+/-", {beforeExpr: true, binop: 9, prefix: true, startsExpr: true}),
-  modulo: binop("%", 10),
-  star: binop("*", 10),
-  slash: binop("/", 10)
-}
-
-// Map keyword names to token types.
-
-export const keywords = {}
-
-// Succinct definitions of keyword token types
-function kw(name, options = {}) {
-  options.keyword = name
-  keywords[name] = types["_" + name] = new TokenType(name, options)
-}
-
-kw("break")
-kw("case", beforeExpr)
-kw("catch")
-kw("continue")
-kw("debugger")
-kw("default", beforeExpr)
-kw("do", {isLoop: true, beforeExpr: true})
-kw("else", beforeExpr)
-kw("finally")
-kw("for", {isLoop: true})
-kw("function", startsExpr)
-kw("if")
-kw("return", beforeExpr)
-kw("switch")
-kw("throw", beforeExpr)
-kw("try")
-kw("var")
-kw("let")
-kw("const")
-kw("while", {isLoop: true})
-kw("with")
-kw("new", {beforeExpr: true, startsExpr: true})
-kw("this", startsExpr)
-kw("super", startsExpr)
-kw("class")
-kw("extends", beforeExpr)
-kw("export")
-kw("import")
-kw("yield", {beforeExpr: true, startsExpr: true})
-kw("null", startsExpr)
-kw("true", startsExpr)
-kw("false", startsExpr)
-kw("in", {beforeExpr: true, binop: 7})
-kw("instanceof", {beforeExpr: true, binop: 7})
-kw("typeof", {beforeExpr: true, prefix: true, startsExpr: true})
-kw("void", {beforeExpr: true, prefix: true, startsExpr: true})
-kw("delete", {beforeExpr: true, prefix: true, startsExpr: true})

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/src/util.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/src/util.js b/node_modules/acorn/src/util.js
deleted file mode 100644
index 3517f8d..0000000
--- a/node_modules/acorn/src/util.js
+++ /dev/null
@@ -1,9 +0,0 @@
-export function isArray(obj) {
-  return Object.prototype.toString.call(obj) === "[object Array]"
-}
-
-// Checks if an object has a property.
-
-export function has(obj, propName) {
-  return Object.prototype.hasOwnProperty.call(obj, propName)
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/src/walk/index.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/src/walk/index.js b/node_modules/acorn/src/walk/index.js
deleted file mode 100644
index 9f45a0c..0000000
--- a/node_modules/acorn/src/walk/index.js
+++ /dev/null
@@ -1,340 +0,0 @@
-// AST walker module for Mozilla Parser API compatible trees
-
-// A simple walk is one where you simply specify callbacks to be
-// called on specific nodes. The last two arguments are optional. A
-// simple use would be
-//
-//     walk.simple(myTree, {
-//         Expression: function(node) { ... }
-//     });
-//
-// to do something with all expressions. All Parser API node types
-// can be used to identify node types, as well as Expression,
-// Statement, and ScopeBody, which denote categories of nodes.
-//
-// The base argument can be used to pass a custom (recursive)
-// walker, and state can be used to give this walked an initial
-// state.
-
-export function simple(node, visitors, base, state, override) {
-  if (!base) base = exports.base
-  ;(function c(node, st, override) {
-    let type = override || node.type, found = visitors[type]
-    base[type](node, st, c)
-    if (found) found(node, st)
-  })(node, state, override)
-}
-
-// An ancestor walk builds up an array of ancestor nodes (including
-// the current node) and passes them to the callback as the state parameter.
-export function ancestor(node, visitors, base, state) {
-  if (!base) base = exports.base
-  if (!state) state = []
-  ;(function c(node, st, override) {
-    let type = override || node.type, found = visitors[type]
-    if (node != st[st.length - 1]) {
-      st = st.slice()
-      st.push(node)
-    }
-    base[type](node, st, c)
-    if (found) found(node, st)
-  })(node, state)
-}
-
-// A recursive walk is one where your functions override the default
-// walkers. They can modify and replace the state parameter that's
-// threaded through the walk, and can opt how and whether to walk
-// their child nodes (by calling their third argument on these
-// nodes).
-export function recursive(node, state, funcs, base, override) {
-  let visitor = funcs ? exports.make(funcs, base) : base
-  ;(function c(node, st, override) {
-    visitor[override || node.type](node, st, c)
-  })(node, state, override)
-}
-
-function makeTest(test) {
-  if (typeof test == "string")
-    return type => type == test
-  else if (!test)
-    return () => true
-  else
-    return test
-}
-
-class Found {
-  constructor(node, state) { this.node = node; this.state = state }
-}
-
-// Find a node with a given start, end, and type (all are optional,
-// null can be used as wildcard). Returns a {node, state} object, or
-// undefined when it doesn't find a matching node.
-export function findNodeAt(node, start, end, test, base, state) {
-  test = makeTest(test)
-  if (!base) base = exports.base
-  try {
-    ;(function c(node, st, override) {
-      let type = override || node.type
-      if ((start == null || node.start <= start) &&
-          (end == null || node.end >= end))
-        base[type](node, st, c)
-      if ((start == null || node.start == start) &&
-          (end == null || node.end == end) &&
-          test(type, node))
-        throw new Found(node, st)
-    })(node, state)
-  } catch (e) {
-    if (e instanceof Found) return e
-    throw e
-  }
-}
-
-// Find the innermost node of a given type that contains the given
-// position. Interface similar to findNodeAt.
-export function findNodeAround(node, pos, test, base, state) {
-  test = makeTest(test)
-  if (!base) base = exports.base
-  try {
-    ;(function c(node, st, override) {
-      let type = override || node.type
-      if (node.start > pos || node.end < pos) return
-      base[type](node, st, c)
-      if (test(type, node)) throw new Found(node, st)
-    })(node, state)
-  } catch (e) {
-    if (e instanceof Found) return e
-    throw e
-  }
-}
-
-// Find the outermost matching node after a given position.
-export function findNodeAfter(node, pos, test, base, state) {
-  test = makeTest(test)
-  if (!base) base = exports.base
-  try {
-    ;(function c(node, st, override) {
-      if (node.end < pos) return
-      let type = override || node.type
-      if (node.start >= pos && test(type, node)) throw new Found(node, st)
-      base[type](node, st, c)
-    })(node, state)
-  } catch (e) {
-    if (e instanceof Found) return e
-    throw e
-  }
-}
-
-// Find the outermost matching node before a given position.
-export function findNodeBefore(node, pos, test, base, state) {
-  test = makeTest(test)
-  if (!base) base = exports.base
-  let max
-  ;(function c(node, st, override) {
-    if (node.start > pos) return
-    let type = override || node.type
-    if (node.end <= pos && (!max || max.node.end < node.end) && test(type, node))
-      max = new Found(node, st)
-    base[type](node, st, c)
-  })(node, state)
-  return max
-}
-
-// Used to create a custom walker. Will fill in all missing node
-// type properties with the defaults.
-export function make(funcs, base) {
-  if (!base) base = exports.base
-  let visitor = {}
-  for (var type in base) visitor[type] = base[type]
-  for (var type in funcs) visitor[type] = funcs[type]
-  return visitor
-}
-
-function skipThrough(node, st, c) { c(node, st) }
-function ignore(_node, _st, _c) {}
-
-// Node walkers.
-
-export const base = {}
-
-base.Program = base.BlockStatement = (node, st, c) => {
-  for (let i = 0; i < node.body.length; ++i)
-    c(node.body[i], st, "Statement")
-}
-base.Statement = skipThrough
-base.EmptyStatement = ignore
-base.ExpressionStatement = base.ParenthesizedExpression =
-  (node, st, c) => c(node.expression, st, "Expression")
-base.IfStatement = (node, st, c) => {
-  c(node.test, st, "Expression")
-  c(node.consequent, st, "Statement")
-  if (node.alternate) c(node.alternate, st, "Statement")
-}
-base.LabeledStatement = (node, st, c) => c(node.body, st, "Statement")
-base.BreakStatement = base.ContinueStatement = ignore
-base.WithStatement = (node, st, c) => {
-  c(node.object, st, "Expression")
-  c(node.body, st, "Statement")
-}
-base.SwitchStatement = (node, st, c) => {
-  c(node.discriminant, st, "Expression")
-  for (let i = 0; i < node.cases.length; ++i) {
-    let cs = node.cases[i]
-    if (cs.test) c(cs.test, st, "Expression")
-    for (let j = 0; j < cs.consequent.length; ++j)
-      c(cs.consequent[j], st, "Statement")
-  }
-}
-base.ReturnStatement = base.YieldExpression = (node, st, c) => {
-  if (node.argument) c(node.argument, st, "Expression")
-}
-base.ThrowStatement = base.SpreadElement =
-  (node, st, c) => c(node.argument, st, "Expression")
-base.TryStatement = (node, st, c) => {
-  c(node.block, st, "Statement")
-  if (node.handler) {
-    c(node.handler.param, st, "Pattern")
-    c(node.handler.body, st, "ScopeBody")
-  }
-  if (node.finalizer) c(node.finalizer, st, "Statement")
-}
-base.WhileStatement = base.DoWhileStatement = (node, st, c) => {
-  c(node.test, st, "Expression")
-  c(node.body, st, "Statement")
-}
-base.ForStatement = (node, st, c) => {
-  if (node.init) c(node.init, st, "ForInit")
-  if (node.test) c(node.test, st, "Expression")
-  if (node.update) c(node.update, st, "Expression")
-  c(node.body, st, "Statement")
-}
-base.ForInStatement = base.ForOfStatement = (node, st, c) => {
-  c(node.left, st, "ForInit")
-  c(node.right, st, "Expression")
-  c(node.body, st, "Statement")
-}
-base.ForInit = (node, st, c) => {
-  if (node.type == "VariableDeclaration") c(node, st)
-  else c(node, st, "Expression")
-}
-base.DebuggerStatement = ignore
-
-base.FunctionDeclaration = (node, st, c) => c(node, st, "Function")
-base.VariableDeclaration = (node, st, c) => {
-  for (let i = 0; i < node.declarations.length; ++i)
-    c(node.declarations[i], st)
-}
-base.VariableDeclarator = (node, st, c) => {
-  c(node.id, st, "Pattern")
-  if (node.init) c(node.init, st, "Expression")
-}
-
-base.Function = (node, st, c) => {
-  if (node.id) c(node.id, st, "Pattern")
-  for (let i = 0; i < node.params.length; i++)
-    c(node.params[i], st, "Pattern")
-  c(node.body, st, node.expression ? "ScopeExpression" : "ScopeBody")
-}
-// FIXME drop these node types in next major version
-// (They are awkward, and in ES6 every block can be a scope.)
-base.ScopeBody = (node, st, c) => c(node, st, "Statement")
-base.ScopeExpression = (node, st, c) => c(node, st, "Expression")
-
-base.Pattern = (node, st, c) => {
-  if (node.type == "Identifier")
-    c(node, st, "VariablePattern")
-  else if (node.type == "MemberExpression")
-    c(node, st, "MemberPattern")
-  else
-    c(node, st)
-}
-base.VariablePattern = ignore
-base.MemberPattern = skipThrough
-base.RestElement = (node, st, c) => c(node.argument, st, "Pattern")
-base.ArrayPattern =  (node, st, c) => {
-  for (let i = 0; i < node.elements.length; ++i) {
-    let elt = node.elements[i]
-    if (elt) c(elt, st, "Pattern")
-  }
-}
-base.ObjectPattern = (node, st, c) => {
-  for (let i = 0; i < node.properties.length; ++i)
-    c(node.properties[i].value, st, "Pattern")
-}
-
-base.Expression = skipThrough
-base.ThisExpression = base.Super = base.MetaProperty = ignore
-base.ArrayExpression = (node, st, c) => {
-  for (let i = 0; i < node.elements.length; ++i) {
-    let elt = node.elements[i]
-    if (elt) c(elt, st, "Expression")
-  }
-}
-base.ObjectExpression = (node, st, c) => {
-  for (let i = 0; i < node.properties.length; ++i)
-    c(node.properties[i], st)
-}
-base.FunctionExpression = base.ArrowFunctionExpression = base.FunctionDeclaration
-base.SequenceExpression = base.TemplateLiteral = (node, st, c) => {
-  for (let i = 0; i < node.expressions.length; ++i)
-    c(node.expressions[i], st, "Expression")
-}
-base.UnaryExpression = base.UpdateExpression = (node, st, c) => {
-  c(node.argument, st, "Expression")
-}
-base.BinaryExpression = base.LogicalExpression = (node, st, c) => {
-  c(node.left, st, "Expression")
-  c(node.right, st, "Expression")
-}
-base.AssignmentExpression = base.AssignmentPattern = (node, st, c) => {
-  c(node.left, st, "Pattern")
-  c(node.right, st, "Expression")
-}
-base.ConditionalExpression = (node, st, c) => {
-  c(node.test, st, "Expression")
-  c(node.consequent, st, "Expression")
-  c(node.alternate, st, "Expression")
-}
-base.NewExpression = base.CallExpression = (node, st, c) => {
-  c(node.callee, st, "Expression")
-  if (node.arguments) for (let i = 0; i < node.arguments.length; ++i)
-    c(node.arguments[i], st, "Expression")
-}
-base.MemberExpression = (node, st, c) => {
-  c(node.object, st, "Expression")
-  if (node.computed) c(node.property, st, "Expression")
-}
-base.ExportNamedDeclaration = base.ExportDefaultDeclaration = (node, st, c) => {
-  if (node.declaration)
-    c(node.declaration, st, node.type == "ExportNamedDeclaration" || node.declaration.id ? "Statement" : "Expression")
-  if (node.source) c(node.source, st, "Expression")
-}
-base.ExportAllDeclaration = (node, st, c) => {
-  c(node.source, st, "Expression")
-}
-base.ImportDeclaration = (node, st, c) => {
-  for (let i = 0; i < node.specifiers.length; i++)
-    c(node.specifiers[i], st)
-  c(node.source, st, "Expression")
-}
-base.ImportSpecifier = base.ImportDefaultSpecifier = base.ImportNamespaceSpecifier = base.Identifier = base.Literal = ignore
-
-base.TaggedTemplateExpression = (node, st, c) => {
-  c(node.tag, st, "Expression")
-  c(node.quasi, st)
-}
-base.ClassDeclaration = base.ClassExpression = (node, st, c) => c(node, st, "Class")
-base.Class = (node, st, c) => {
-  if (node.id) c(node.id, st, "Pattern")
-  if (node.superClass) c(node.superClass, st, "Expression")
-  for (let i = 0; i < node.body.body.length; i++)
-    c(node.body.body[i], st)
-}
-base.MethodDefinition = base.Property = (node, st, c) => {
-  if (node.computed) c(node.key, st, "Expression")
-  c(node.value, st, "Expression")
-}
-base.ComprehensionExpression = (node, st, c) => {
-  for (let i = 0; i < node.blocks.length; i++)
-    c(node.blocks[i].right, st, "Expression")
-  c(node.body, st, "Expression")
-}



[07/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/core-js/build/Gruntfile.ls
----------------------------------------------------------------------
diff --git a/node_modules/core-js/build/Gruntfile.ls b/node_modules/core-js/build/Gruntfile.ls
deleted file mode 100644
index 6151842..0000000
--- a/node_modules/core-js/build/Gruntfile.ls
+++ /dev/null
@@ -1,84 +0,0 @@
-require! <[./build fs ./config]>
-library-tests = <[client/library.js tests/helpers.js tests/library.js]>map -> src: it
-module.exports = (grunt)->
-  grunt.loadNpmTasks \grunt-contrib-clean
-  grunt.loadNpmTasks \grunt-contrib-copy
-  grunt.loadNpmTasks \grunt-contrib-uglify
-  grunt.loadNpmTasks \grunt-contrib-watch
-  grunt.loadNpmTasks \grunt-livescript
-  grunt.loadNpmTasks \grunt-karma
-  grunt.initConfig do
-    pkg: grunt.file.readJSON './package.json'
-    uglify: build:
-      files: '<%=grunt.option("path")%>.min.js': '<%=grunt.option("path")%>.js'
-      options:
-        mangle: {+sort, +keep_fnames}
-        compress: {+pure_getters, +keep_fargs, +keep_fnames}
-        sourceMap: on
-        banner: config.banner
-    livescript: src: files:
-      './tests/helpers.js': './tests/helpers/*'
-      './tests/tests.js': './tests/tests/*'
-      './tests/library.js': './tests/library/*'
-      './tests/es.js': './tests/tests/es*'
-      './tests/experimental.js': './tests/experimental/*'
-      './build/index.js': './build/build.ls*'
-    clean: <[./library]>
-    copy: lib: files:
-      * expand: on
-        cwd: './'
-        src: <[es5/** es6/** es7/** js/** web/** core/** fn/** index.js shim.js]>
-        dest: './library/'
-      * expand: on
-        cwd: './'
-        src: <[modules/*]>
-        dest: './library/'
-        filter: \isFile
-      * expand: on
-        cwd: './modules/library/'
-        src: '*'
-        dest: './library/modules/'
-    watch:
-      core:
-        files: './modules/*'
-        tasks: \default
-      tests:
-        files: './tests/tests/*'
-        tasks: \livescript
-    karma:
-      'options':
-        configFile: './tests/karma.conf.js'
-        browsers: <[PhantomJS]>
-        singleRun: on
-      'continuous': {}
-      'continuous-library':
-        files: library-tests
-  grunt.registerTask \build (options)->
-    done = @async!
-    err, it <- build {
-      modules: (options || 'es5,es6,es7,js,web,core')split \,
-      blacklist: (grunt.option(\blacklist) || '')split \,
-      library: !!grunt.option \library
-    }
-    if err
-      console.error err
-      process.exit 1
-    grunt.option(\path) || grunt.option(\path, './custom')
-    fs.writeFile grunt.option(\path) + '.js', it, done
-  grunt.registerTask \client ->
-    grunt.option \library ''
-    grunt.option \path './client/core'
-    grunt.task.run <[build:es5,es6,es7,js,web,core uglify]>
-  grunt.registerTask \library ->
-    grunt.option \library 'true'
-    grunt.option \path './client/library'
-    grunt.task.run <[build:es5,es6,es7,js,web,core uglify]>
-  grunt.registerTask \shim ->
-    grunt.option \library ''
-    grunt.option \path './client/shim'
-    grunt.task.run <[build:es5,es6,es7,js,web uglify]>
-  grunt.registerTask \e ->
-    grunt.option \library ''>
-    grunt.option \path './client/core'
-    grunt.task.run <[build:es5,es6,es7,js,web,core,exp uglify]>
-  grunt.registerTask \default <[clean copy client library shim]>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/core-js/build/build.ls
----------------------------------------------------------------------
diff --git a/node_modules/core-js/build/build.ls b/node_modules/core-js/build/build.ls
deleted file mode 100644
index 274ffc4..0000000
--- a/node_modules/core-js/build/build.ls
+++ /dev/null
@@ -1,218 +0,0 @@
-require! {'./config': {banner}, fs: {readFile, writeFile, unlink}, path, webpack}
-
-list = <[
-  es5
-  es6.symbol
-  es6.object.assign
-  es6.object.is
-  es6.object.set-prototype-of
-  es6.object.to-string
-  es6.object.freeze
-  es6.object.seal
-  es6.object.prevent-extensions
-  es6.object.is-frozen
-  es6.object.is-sealed
-  es6.object.is-extensible
-  es6.object.get-own-property-descriptor
-  es6.object.get-prototype-of
-  es6.object.keys
-  es6.object.get-own-property-names
-  es6.function.name
-  es6.function.has-instance
-  es6.number.constructor
-  es6.number.epsilon
-  es6.number.is-finite
-  es6.number.is-integer
-  es6.number.is-nan
-  es6.number.is-safe-integer
-  es6.number.max-safe-integer
-  es6.number.min-safe-integer
-  es6.number.parse-float
-  es6.number.parse-int
-  es6.math.acosh
-  es6.math.asinh
-  es6.math.atanh
-  es6.math.cbrt
-  es6.math.clz32
-  es6.math.cosh
-  es6.math.expm1
-  es6.math.fround
-  es6.math.hypot
-  es6.math.imul
-  es6.math.log10
-  es6.math.log1p
-  es6.math.log2
-  es6.math.sign
-  es6.math.sinh
-  es6.math.tanh
-  es6.math.trunc
-  es6.string.from-code-point
-  es6.string.raw
-  es6.string.trim
-  es6.string.code-point-at
-  es6.string.ends-with
-  es6.string.includes
-  es6.string.repeat
-  es6.string.starts-with
-  es6.string.iterator
-  es6.array.from
-  es6.array.of
-  es6.array.iterator
-  es6.array.species
-  es6.array.copy-within
-  es6.array.fill
-  es6.array.find
-  es6.array.find-index
-  es6.regexp.constructor
-  es6.regexp.flags
-  es6.regexp.match
-  es6.regexp.replace
-  es6.regexp.search
-  es6.regexp.split
-  es6.promise
-  es6.map
-  es6.set
-  es6.weak-map
-  es6.weak-set
-  es6.reflect.apply
-  es6.reflect.construct
-  es6.reflect.define-property
-  es6.reflect.delete-property
-  es6.reflect.enumerate
-  es6.reflect.get
-  es6.reflect.get-own-property-descriptor
-  es6.reflect.get-prototype-of
-  es6.reflect.has
-  es6.reflect.is-extensible
-  es6.reflect.own-keys
-  es6.reflect.prevent-extensions
-  es6.reflect.set
-  es6.reflect.set-prototype-of
-  es6.date.to-string
-  es6.typed.array-buffer
-  es6.typed.data-view
-  es6.typed.int8-array
-  es6.typed.uint8-array
-  es6.typed.uint8-clamped-array
-  es6.typed.int16-array
-  es6.typed.uint16-array
-  es6.typed.int32-array
-  es6.typed.uint32-array
-  es6.typed.float32-array
-  es6.typed.float64-array
-  es7.array.includes
-  es7.string.at
-  es7.string.pad-left
-  es7.string.pad-right
-  es7.string.trim-left
-  es7.string.trim-right
-  es7.regexp.escape
-  es7.object.get-own-property-descriptors
-  es7.object.values
-  es7.object.entries
-  es7.map.to-json
-  es7.set.to-json
-  web.immediate
-  web.dom.iterable
-  web.timers
-  core.dict
-  core.get-iterator-method
-  core.get-iterator
-  core.is-iterable
-  core.delay
-  core.function.part
-  core.object.is-object
-  core.object.classof
-  core.object.define
-  core.object.make
-  core.number.iterator
-  core.string.escape-html
-  core.string.unescape-html
-  core.log
-  js.array.statics
-]>
-
-experimental = <[
-  es6.date.to-string
-  es6.typed.array-buffer
-  es6.typed.data-view
-  es6.typed.int8-array
-  es6.typed.uint8-array
-  es6.typed.uint8-clamped-array
-  es6.typed.int16-array
-  es6.typed.uint16-array
-  es6.typed.int32-array
-  es6.typed.uint32-array
-  es6.typed.float32-array
-  es6.typed.float64-array
-]>
-
-libraryBlacklist = <[
-  es6.object.to-string
-  es6.function.name
-  es6.regexp.constructor
-  es6.regexp.flags
-  es6.regexp.match
-  es6.regexp.replace
-  es6.regexp.search
-  es6.regexp.split
-  es6.number.constructor
-]>
-
-es5SpecialCase = <[
-  es6.object.freeze
-  es6.object.seal
-  es6.object.prevent-extensions
-  es6.object.is-frozen
-  es6.object.is-sealed
-  es6.object.is-extensible
-  es6.string.trim
-]>
-
-module.exports = ({modules = [], blacklist = [], library = no}, next)!->
-  let @ = modules.reduce ((memo, it)-> memo[it] = on; memo), {}
-    check = (err)->
-      if err
-        next err, ''
-        on
-
-    if @exp => for experimental => @[..] = on
-    if @es5 => for es5SpecialCase => @[..] = on
-    for ns of @
-      if @[ns]
-        for name in list
-          if name.indexOf("#ns.") is 0 and name not in experimental
-            @[name] = on
-
-    if library => blacklist ++= libraryBlacklist
-    for ns in blacklist
-      for name in list
-        if name is ns or name.indexOf("#ns.") is 0
-          @[name] = no
-
-    TARGET = "./__tmp#{ Math.random! }__.js"
-    err, info <~! webpack do
-      entry: list.filter(~> @[it]).map ~>
-        path.join(__dirname, '../', "#{ if library => '/library' else '' }/modules/#it")
-      output:
-        path: ''
-        filename: TARGET
-    if check err => return
-    err, script <~! readFile TARGET
-    if check err => return
-    err <~! unlink TARGET
-    if check err => return
-
-    next null """
-      #banner
-      !function(__e, __g, undefined){
-      'use strict';
-      #script
-      // CommonJS export
-      if(typeof module != 'undefined' && module.exports)module.exports = __e;
-      // RequireJS export
-      else if(typeof define == 'function' && define.amd)define(function(){return __e});
-      // Export to global object
-      else __g.core = __e;
-      }(1, 1);
-      """

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/core-js/build/config.js
----------------------------------------------------------------------
diff --git a/node_modules/core-js/build/config.js b/node_modules/core-js/build/config.js
deleted file mode 100644
index 8df3dc6..0000000
--- a/node_modules/core-js/build/config.js
+++ /dev/null
@@ -1,8 +0,0 @@
-module.exports = {
-  banner: '/**\n' +
-          ' * core-js ' + require('../package').version + '\n' +
-          ' * https://github.com/zloirock/core-js\n' +
-          ' * License: http://rock.mit-license.org\n' +
-          ' * © ' + new Date().getFullYear() + ' Denis Pushkarev\n' +
-          ' */'
-};
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/core-js/build/index.js
----------------------------------------------------------------------
diff --git a/node_modules/core-js/build/index.js b/node_modules/core-js/build/index.js
deleted file mode 100644
index d9cf11f..0000000
--- a/node_modules/core-js/build/index.js
+++ /dev/null
@@ -1,98 +0,0 @@
-// Generated by LiveScript 1.3.1
-(function(){
-  var banner, ref$, readFile, writeFile, unlink, path, webpack, list, experimental, libraryBlacklist, es5SpecialCase;
-  banner = require('./config').banner;
-  ref$ = require('fs'), readFile = ref$.readFile, writeFile = ref$.writeFile, unlink = ref$.unlink;
-  path = require('path');
-  webpack = require('webpack');
-  list = ['es5', 'es6.symbol', 'es6.object.assign', 'es6.object.is', 'es6.object.set-prototype-of', 'es6.object.to-string', 'es6.object.freeze', 'es6.object.seal', 'es6.object.prevent-extensions', 'es6.object.is-frozen', 'es6.object.is-sealed', 'es6.object.is-extensible', 'es6.object.get-own-property-descriptor', 'es6.object.get-prototype-of', 'es6.object.keys', 'es6.object.get-own-property-names', 'es6.function.name', 'es6.function.has-instance', 'es6.number.constructor', 'es6.number.epsilon', 'es6.number.is-finite', 'es6.number.is-integer', 'es6.number.is-nan', 'es6.number.is-safe-integer', 'es6.number.max-safe-integer', 'es6.number.min-safe-integer', 'es6.number.parse-float', 'es6.number.parse-int', 'es6.math.acosh', 'es6.math.asinh', 'es6.math.atanh', 'es6.math.cbrt', 'es6.math.clz32', 'es6.math.cosh', 'es6.math.expm1', 'es6.math.fround', 'es6.math.hypot', 'es6.math.imul', 'es6.math.log10', 'es6.math.log1p', 'es6.math.log2', 'es6.math.sign', 'es6.math.sinh', 'es6.math.tanh', 'es
 6.math.trunc', 'es6.string.from-code-point', 'es6.string.raw', 'es6.string.trim', 'es6.string.code-point-at', 'es6.string.ends-with', 'es6.string.includes', 'es6.string.repeat', 'es6.string.starts-with', 'es6.string.iterator', 'es6.array.from', 'es6.array.of', 'es6.array.iterator', 'es6.array.species', 'es6.array.copy-within', 'es6.array.fill', 'es6.array.find', 'es6.array.find-index', 'es6.regexp.constructor', 'es6.regexp.flags', 'es6.regexp.match', 'es6.regexp.replace', 'es6.regexp.search', 'es6.regexp.split', 'es6.promise', 'es6.map', 'es6.set', 'es6.weak-map', 'es6.weak-set', 'es6.reflect.apply', 'es6.reflect.construct', 'es6.reflect.define-property', 'es6.reflect.delete-property', 'es6.reflect.enumerate', 'es6.reflect.get', 'es6.reflect.get-own-property-descriptor', 'es6.reflect.get-prototype-of', 'es6.reflect.has', 'es6.reflect.is-extensible', 'es6.reflect.own-keys', 'es6.reflect.prevent-extensions', 'es6.reflect.set', 'es6.reflect.set-prototype-of', 'es6.date.to-string', 'es6
 .typed.array-buffer', 'es6.typed.data-view', 'es6.typed.int8-array', 'es6.typed.uint8-array', 'es6.typed.uint8-clamped-array', 'es6.typed.int16-array', 'es6.typed.uint16-array', 'es6.typed.int32-array', 'es6.typed.uint32-array', 'es6.typed.float32-array', 'es6.typed.float64-array', 'es7.array.includes', 'es7.string.at', 'es7.string.pad-left', 'es7.string.pad-right', 'es7.string.trim-left', 'es7.string.trim-right', 'es7.regexp.escape', 'es7.object.get-own-property-descriptors', 'es7.object.values', 'es7.object.entries', 'es7.map.to-json', 'es7.set.to-json', 'web.immediate', 'web.dom.iterable', 'web.timers', 'core.dict', 'core.get-iterator-method', 'core.get-iterator', 'core.is-iterable', 'core.delay', 'core.function.part', 'core.object.is-object', 'core.object.classof', 'core.object.define', 'core.object.make', 'core.number.iterator', 'core.string.escape-html', 'core.string.unescape-html', 'core.log', 'js.array.statics'];
-  experimental = ['es6.date.to-string', 'es6.typed.array-buffer', 'es6.typed.data-view', 'es6.typed.int8-array', 'es6.typed.uint8-array', 'es6.typed.uint8-clamped-array', 'es6.typed.int16-array', 'es6.typed.uint16-array', 'es6.typed.int32-array', 'es6.typed.uint32-array', 'es6.typed.float32-array', 'es6.typed.float64-array'];
-  libraryBlacklist = ['es6.object.to-string', 'es6.function.name', 'es6.regexp.constructor', 'es6.regexp.flags', 'es6.regexp.match', 'es6.regexp.replace', 'es6.regexp.search', 'es6.regexp.split', 'es6.number.constructor'];
-  es5SpecialCase = ['es6.object.freeze', 'es6.object.seal', 'es6.object.prevent-extensions', 'es6.object.is-frozen', 'es6.object.is-sealed', 'es6.object.is-extensible', 'es6.string.trim'];
-  module.exports = function(arg$, next){
-    var modules, ref$, blacklist, library;
-    modules = (ref$ = arg$.modules) != null
-      ? ref$
-      : [], blacklist = (ref$ = arg$.blacklist) != null
-      ? ref$
-      : [], library = (ref$ = arg$.library) != null ? ref$ : false;
-    (function(){
-      var check, i$, x$, ref$, len$, y$, ns, name, j$, len1$, TARGET, this$ = this;
-      check = function(err){
-        if (err) {
-          next(err, '');
-          return true;
-        }
-      };
-      if (this.exp) {
-        for (i$ = 0, len$ = (ref$ = experimental).length; i$ < len$; ++i$) {
-          x$ = ref$[i$];
-          this[x$] = true;
-        }
-      }
-      if (this.es5) {
-        for (i$ = 0, len$ = (ref$ = es5SpecialCase).length; i$ < len$; ++i$) {
-          y$ = ref$[i$];
-          this[y$] = true;
-        }
-      }
-      for (ns in this) {
-        if (this[ns]) {
-          for (i$ = 0, len$ = (ref$ = list).length; i$ < len$; ++i$) {
-            name = ref$[i$];
-            if (name.indexOf(ns + ".") === 0 && !in$(name, experimental)) {
-              this[name] = true;
-            }
-          }
-        }
-      }
-      if (library) {
-        blacklist = blacklist.concat(libraryBlacklist);
-      }
-      for (i$ = 0, len$ = blacklist.length; i$ < len$; ++i$) {
-        ns = blacklist[i$];
-        for (j$ = 0, len1$ = (ref$ = list).length; j$ < len1$; ++j$) {
-          name = ref$[j$];
-          if (name === ns || name.indexOf(ns + ".") === 0) {
-            this[name] = false;
-          }
-        }
-      }
-      TARGET = "./__tmp" + Math.random() + "__.js";
-      webpack({
-        entry: list.filter(function(it){
-          return this$[it];
-        }).map(function(it){
-          return path.join(__dirname, '../', (library ? '/library' : '') + "/modules/" + it);
-        }),
-        output: {
-          path: '',
-          filename: TARGET
-        }
-      }, function(err, info){
-        if (check(err)) {
-          return;
-        }
-        readFile(TARGET, function(err, script){
-          if (check(err)) {
-            return;
-          }
-          unlink(TARGET, function(err){
-            if (check(err)) {
-              return;
-            }
-            next(null, "" + banner + "\n!function(__e, __g, undefined){\n'use strict';\n" + script + "\n// CommonJS export\nif(typeof module != 'undefined' && module.exports)module.exports = __e;\n// RequireJS export\nelse if(typeof define == 'function' && define.amd)define(function(){return __e});\n// Export to global object\nelse __g.core = __e;\n}(1, 1);");
-          });
-        });
-      });
-    }.call(modules.reduce(function(memo, it){
-      memo[it] = true;
-      return memo;
-    }, {})));
-  };
-  function in$(x, xs){
-    var i = -1, l = xs.length >>> 0;
-    while (++i < l) if (x === xs[i]) return true;
-    return false;
-  }
-}).call(this);


[39/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/dist/ajv.min.js.map
----------------------------------------------------------------------
diff --git a/node_modules/ajv/dist/ajv.min.js.map b/node_modules/ajv/dist/ajv.min.js.map
deleted file mode 100644
index 26549b7..0000000
--- a/node_modules/ajv/dist/ajv.min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["/Users/evgenypoberezkin/JSON/ajv/dist/ajv.bundle.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","Ajv","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length","1","setupAsync","opts","required","check","async","transpile","get","TRANSPILE","_transpileFunc","ASYNC","MODES","_opts","util","copy","checkGenerators","Function","checkAsyncFunction","getRegenerator","regenerator","runtime","regeneratorTranspile","compile","getNodent","nodent","log","dontInstallRequireHook","console","warn","nodentTranspile","promises","sourcemap","compileAsync","schema","callback","_compileAsync","firstCall","loadMissingSchema","schemaLoaded","err","sch","_refs","ref","_schemas","addSchema","missingSchema","missingRef","_callbacks","_loadingSchemas","loadSchema","deferCallback","validate","setTimeout","schemaObj","_addSchema","setup","*","co*","es7","./compile/util","2","Cache","_cache","prototype","put","key","value"
 ,"del","clear","3","$ref","allOf","anyOf","dependencies","enum","format","items","maximum","minimum","maxItems","minItems","maxLength","minLength","maxProperties","minProperties","multipleOf","not","oneOf","pattern","properties","uniqueItems","../dotjs/_limit","../dotjs/_limitItems","../dotjs/_limitLength","../dotjs/_limitProperties","../dotjs/allOf","../dotjs/anyOf","../dotjs/dependencies","../dotjs/enum","../dotjs/format","../dotjs/items","../dotjs/multipleOf","../dotjs/not","../dotjs/oneOf","../dotjs/pattern","../dotjs/properties","../dotjs/ref","../dotjs/required","../dotjs/uniqueItems","../dotjs/validate","4","equal","b","arrA","Array","isArray","arrB","keys","Object","dateA","Date","dateB","getTime","regexpA","RegExp","regexpB","toString","hasOwnProperty","5","formats","mode","formatDefs","fName","compare","date","str","matches","match","DATE","month","day","DAYS","time","full","TIME","hour","minute","second","timeZone","date_time","dateTime","split","DATE_TIME_SEPARATOR","hos
 tname","HOSTNAME","test","uri","NOT_URI_FRAGMENT","URI","regex","compareDate","d1","d2","compareTime","t1","t2","compareDateTime","dt1","dt2","res","undefined","UUID","JSON_POINTER","RELATIVE_JSON_POINTER","fast","date-time","email","ipv4","ipv6","uuid","json-pointer","relative-json-pointer","./util","6","loadBeautify","beautify","js_beautify","root","localRefs","baseId","callValidate","compilation","result","apply","arguments","errors","localCompile","_schema","_root","isRoot","$async","sourceCode","validateGenerator","isTop","schemaPath","errSchemaPath","errorPath","RULES","resolve","resolveRef","usePattern","useDefault","useCustomRule","vars","refVal","refValCode","patterns","patternCode","defaults","defaultCode","customRules","customRuleCode","error","validateCode","co","ucs2length","ValidationError","refs","keepSourceCode","source","url","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","v","localSchema","inlineRef","inlineRefs","replaceLocalRef","refId","i
 nline","regexStr","index","patternsHash","toQuotedString","valueStr","stableStringify","defaultsHash","rule","parentSchema","it","validateSchema","definition","message","errorsText","macro","keyword","c","checkCompiling","_compilations","compiling","_formats","cv","endCompiling","compIndex","splice","arr","statement","../async","./equal","./resolve","./validation_error","json-stable-stringify","7","SchemaObject","_compile","resolveSchema","p","parse","refPath","_getFullPath","getFullPath","id","normalizeId","resolveRecursive","getJsonPointer","parsedRef","resolveUrl","hash","slice","parts","part","unescapeFragment","PREVENT_SCOPE_CHANGE","limit","checkNoRef","countKeys","item","count","Infinity","SIMPLE_INLINED","normalize","protocolSeparator","protocol","href","host","path","replace","TRAILING_SLASH_HASH","resolveIds","_resolveIds","fullPath","escapeFragment","ids","toHash","./schema_obj","8","ruleModules","type","rules","ALL","KEYWORDS","TYPES","all","forEach","group","map","push"
 ,"keywords","concat","types","custom","./_rules","9","obj","10","len","pos","charCodeAt","11","to","checkDataType","dataType","data","negate","EQUAL","AND","OK","NOT","checkDataTypes","dataTypes","array","object","null","number","integer","coerceToTypes","optionCoerceTypes","COERCE_TO_TYPES","getProperty","IDENTIFIER","escapeQuotes","SINGLE_QUOTE","varOccurences","dataVar","varReplace","expr","cleanUpCode","out","EMPTY_ELSE","EMPTY_IF_NO_ELSE","EMPTY_IF_WITH_ELSE","cleanUpVarErrors","ERRORS_REGEXP","REMOVE_ERRORS_ASYNC","RETURN_ASYNC","RETURN_TRUE_ASYNC","REMOVE_ERRORS","RETURN_VALID","RETURN_TRUE","schemaHasRules","schemaHasRulesExcept","exceptKeyword","getPathExpr","currentPath","jsonPointers","isNumber","joinPaths","getPath","prop","escapeJsonPointer","getData","$data","lvl","paths","up","jsonPointer","segments","segment","unescapeJsonPointer","decodeURIComponent","encodeURIComponent","./ucs2length","12","ajv","validation","create","constructor","13","$keyword","$errorKeyword","$
 lvl","level","$dataLvl","dataLevel","$schema","$schemaPath","$errSchemaPath","$breakOnError","allErrors","$valid","$schemaFormat","$isDataFormat","v5","$closingBraces","$schemaValueFormat","dataPathArr","$format","$compare","$schemaValue","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$result","$isData","$schemaValueExcl","$exclusive","$opExpr","$opStr","$$outStack","createErrors","messages","verbose","__err","pop","compositeRule","14","$notOp","15","16","unicode","17","18","$it","$nextValid","$currentBaseId","$allSchemasEmpty","arr1","$sch","$i","l1","19","$errs","every","$wasComposite","20","21","$compile","$inline","$macro","$ruleValidate","$validateCode","$rule","$definition","$rDef","$validateSchema","$ruleErrs","$ruleErr","$asyncKeyword","statements","$code","passContext","$parentData","$parentDataProperty","def_callRuleValidate","modifying","valid","def_customError","22","$schemaDeps","$propertyDeps","$property","$deps","$currentErrorPath","_$property","$prop
 ","$propertyPath","$missingProperty","_errorDataPathProperty","join","arr2","$reqProperty","i2","l2","23","$vSchema","24","$unknownFormats","unknownFormats","$allowUnknown","indexOf","$isObject","$formatRef","25","$idx","$dataNxt","$nextData","$additionalItems","additionalItems","$currErrSchemaPath","$passData","26","multipleOfPrecision","27","$allErrorsOption","28","29","$regexp","30","$key","$matched","$ownProperties","ownProperties","$pProperty","i1","$missingPattern","31","$schemaKeys","$pProperties","patternProperties","$pPropertyKeys","$aProperties","additionalProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","loopRequired","$requiredHash","$pgProperties","patternGroups","$pgPropertyKeys","$propertyKey","arr3","$pgProperty","l3","$additionalProperty","$useDefaults","useDefaults","arr4","i4","l4","$hasDefault","default","$useData","arr5","i5","l5","arr6","i6","l6","$pgSchema","$pgMin","$pgMa
 x","$limit","$reason","$moreOrLess","32","$refCode","$refVal","$message","missingRefs","$error","__callValidate","33","$propertySch","$loopRequired","i3","34","$shouldContinue","$ifPassed","$caseIndex","if","then","continue","35","36","$shouldUseGroup","$rulesGroup","$shouldUseRule","$top","rootId","$es7","yieldAwait","$closingBraces1","$closingBraces2","$typeSchema","$typeIsArray","coerceTypes","$coerceToTypes","$method","$dataType","$coerced","$bracesCoercion","$type","$refKeywords","extendRefs","JSON","stringify","$typeChecked","37","addKeyword","_addRule","ruleGroup","rg","metaSchema","getKeyword","removeKeyword","j","add","remove","./dotjs/custom","38","description","definitions","schemaArray","positiveInteger","positiveIntegerDefault0","simpleTypes","stringArray","title","exclusiveMinimum","exclusiveMaximum","39","formatMaximum","formatMinimum","formatExclusiveMaximum","formatExclusiveMinimum","constant","contains","switch","40","enableV5","_addKeyword","inlineFunc","inlineFun
 ctions","_formatLimit","patternRequired","meta","addMetaSchema","META_SCHEMA_ID","containsMacro","enable","./dotjs/_formatLimit","./dotjs/constant","./dotjs/patternRequired","./dotjs/switch","./refs/json-schema-v5.json","41","RangeError","fn","mapDomain","string","regexSeparators","ucs2decode","extra","output","counter","ucs2encode","stringFromCharCode","basicToDigit","codePoint","base","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","floor","damp","baseMinusTMin","tMax","skew","decode","input","basic","oldi","w","baseMinusT","inputLength","initialN","bias","initialBias","lastIndexOf","delimiter","maxInt","tMin","encode","handledCPCount","basicLength","m","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","regexPunycode","toLowerCase","toASCII","regexNonASCII","freeExports","nodeType","freeModule","freeGlobal","punycode","overflow","not-basic","invalid-input","Math","String","fromCharCode","version","ucs2","42","qs","sep","eq","options","regex
 p","maxKeys","kstr","vstr","x","idx","substr","xs","43","stringifyPrimitive","isFinite","name","objectKeys","ks","44","./decode","./encode","45","Url","slashes","auth","port","search","query","pathname","urlParse","parseQueryString","slashesDenoteHost","isObject","urlFormat","isString","urlResolve","relative","urlResolveObject","resolveObject","protocolPattern","portPattern","simplePathPattern","delims","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","javascript","javascript:","hostlessProtocol","slashedProtocol","http","https","ftp","gopher","file","http:","https:","ftp:","gopher:","file:","querystring","TypeError","queryIndex","splitter","uSplit","rest","trim","simplePath","exec","proto","lowerProto","hostEnd","hec","atSign","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","unshift","ae","esc","escape","qm","charAt","rel","tkeys","tk","tkey","rkeys","rk","rkey","relPath","shift","isSourc
 eAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","isNullOrUndefined","authInHost","isNull","last","hasTrailingSlash","isAbsolute","46","arg","47","gen","ctx","args","Promise","reject","onFulfilled","ret","next","onRejected","throw","done","toPromise","isPromise","isGeneratorFunction","isGenerator","thunkToPromise","arrayToPromise","objectToPromise","defer","promise","results","displayName","val","wrap","createPromise","__generatorFunction__","48","json","cmp","space","cycles","replacer","node","seen","parent","indent","colonSeparator","toJSON","sort","","has","jsonify","49","./lib/parse","./lib/stringify","50","at","ch","text","escapee","\"","\\","/","hex","uffff","parseInt","white","word","reviver","walk","holder","51","quote","escapable","lastIndex","partial","mind","gap","rep","\b","\t","\n","\f","\r","SCHEMA_URI_FORMAT_FUNC","SCHEMA_URI_FORMAT","schemaKeyRef","getSchema","_meta","_skipValidation","checkUnique","skipValidation","throwOrLogError","defaultMeta","
 currentUriFormat","keyRef","_getSchemaObj","_getSchemaFragment","compileSchema","_fragments","fragment","removeSchema","_removeAllSchemas","jsonStr","schemas","shouldAddSchema","cached","addUsedSchema","recursiveMeta","willValidate","_validate","currentOpts","_metaOpts","separator","dataPath","addFormat","addDraft4MetaSchema","addInitialSchemas","optsSchemas","addInitialFormats","getMetaSchemaOptions","metaOpts","META_IGNORE_OPTIONS","cache","indent_size","errorDataPath","customKeyword","./async","./cache","./compile","./compile/formats","./compile/resolve","./compile/rules","./compile/schema_obj","./compile/validation_error","./keyword","./refs/json-schema-draft-04.json","./v5"],"mappings":"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

<TRUNCATED>


[48/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/test/fixtures/couch_sample.json
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/test/fixtures/couch_sample.json b/node_modules/JSONStream/test/fixtures/couch_sample.json
deleted file mode 100644
index b154c86..0000000
--- a/node_modules/JSONStream/test/fixtures/couch_sample.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{"total_rows":129,"offset":0,"rows":[
-  { "id":"change1_0.6995461115147918"
-  , "key":"change1_0.6995461115147918"
-  , "value":{"rev":"1-e240bae28c7bb3667f02760f6398d508"}
-  , "doc":{
-      "_id":  "change1_0.6995461115147918"
-    , "_rev": "1-e240bae28c7bb3667f02760f6398d508","hello":1}
-  },
-  { "id":"change2_0.6995461115147918"
-  , "key":"change2_0.6995461115147918"
-  , "value":{"rev":"1-13677d36b98c0c075145bb8975105153"}
-  , "doc":{
-      "_id":"change2_0.6995461115147918"
-    , "_rev":"1-13677d36b98c0c075145bb8975105153"
-    , "hello":2
-    }
-  },
-]}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/test/fixtures/depth.json
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/test/fixtures/depth.json b/node_modules/JSONStream/test/fixtures/depth.json
deleted file mode 100644
index 868062f..0000000
--- a/node_modules/JSONStream/test/fixtures/depth.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "total": 5,
-  "docs": [
-    {
-      "key": {
-        "value": 0,
-        "some": "property"
-      }
-    },
-    {"value": 1},
-    {"value": 2},
-    {"blbl": [{}, {"a":0, "b":1, "value":3}, 10]},
-    {"value": 4}
-  ]
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/test/fixtures/error.json
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/test/fixtures/error.json b/node_modules/JSONStream/test/fixtures/error.json
deleted file mode 100644
index 9736f3e..0000000
--- a/node_modules/JSONStream/test/fixtures/error.json
+++ /dev/null
@@ -1 +0,0 @@
-{"error": "error_code", "message": "this is an error message"}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/test/fixtures/header_footer.json
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/test/fixtures/header_footer.json b/node_modules/JSONStream/test/fixtures/header_footer.json
deleted file mode 100644
index 6e4694d..0000000
--- a/node_modules/JSONStream/test/fixtures/header_footer.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{"total_rows":129,"offset":0,"rows":[
-  { "id":"change1_0.6995461115147918"
-  , "key":"change1_0.6995461115147918"
-  , "value":{"rev":"1-e240bae28c7bb3667f02760f6398d508"}
-  , "doc":{
-      "_id":  "change1_0.6995461115147918"
-    , "_rev": "1-e240bae28c7bb3667f02760f6398d508","hello":1}
-  },
-  { "id":"change2_0.6995461115147918"
-  , "key":"change2_0.6995461115147918"
-  , "value":{"rev":"1-13677d36b98c0c075145bb8975105153"}
-  , "doc":{
-      "_id":"change2_0.6995461115147918"
-    , "_rev":"1-13677d36b98c0c075145bb8975105153"
-    , "hello":2
-    }
-  }
-],
-"foo": {"bar": "baz"}}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/test/fn.js
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/test/fn.js b/node_modules/JSONStream/test/fn.js
deleted file mode 100644
index 4acc672..0000000
--- a/node_modules/JSONStream/test/fn.js
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-var fs = require ('fs')
-  , join = require('path').join
-  , file = join(__dirname, 'fixtures','all_npm.json')
-  , JSONStream = require('../')
-  , it = require('it-is')
-
-function fn (s) {
-  return !isNaN(parseInt(s, 10))
-}
-
-var expected = JSON.parse(fs.readFileSync(file))
-  , parser = JSONStream.parse(['rows', fn])
-  , called = 0
-  , ended = false
-  , parsed = []
-
-fs.createReadStream(file).pipe(parser)
-  
-parser.on('data', function (data) {
-  called ++
-  it.has({
-    id: it.typeof('string'),
-    value: {rev: it.typeof('string')},
-    key:it.typeof('string')
-  })
-  parsed.push(data)
-})
-
-parser.on('end', function () {
-  ended = true
-})
-
-process.on('exit', function () {
-  it(called).equal(expected.rows.length)
-  it(parsed).deepEqual(expected.rows)
-  console.error('PASSED')
-})

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/test/gen.js
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/test/gen.js b/node_modules/JSONStream/test/gen.js
deleted file mode 100644
index c233722..0000000
--- a/node_modules/JSONStream/test/gen.js
+++ /dev/null
@@ -1,135 +0,0 @@
-return // dont run this test for now since tape is weird and broken on 0.10
-
-var fs = require('fs')
-var JSONStream = require('../')
-var file = process.argv[2] || '/tmp/JSONStream-test-large.json'
-var size = Number(process.argv[3] || 100000)
-var tape = require('tape')
-// if (process.title !== 'browser') {
-  tape('out of mem', function (t) {
-    t.plan(1)
-    //////////////////////////////////////////////////////
-    // Produces a random number between arg1 and arg2
-    //////////////////////////////////////////////////////
-    var randomNumber = function (min, max) {
-      var number = Math.floor(Math.random() * (max - min + 1) + min);
-      return number;
-    };
-
-    //////////////////////////////////////////////////////
-    // Produces a random string of a length between arg1 and arg2
-    //////////////////////////////////////////////////////
-    var randomString = function (min, max) {
-
-      // add several spaces to increase chanses of creating 'words'
-      var chars = '      0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
-      var result = '';
-
-      var randomLength = randomNumber(min, max);
-
-      for (var i = randomLength; i > 0; --i) {
-        result += chars[Math.round(Math.random() * (chars.length - 1))];
-      }
-      return result;
-    };
-
-    //////////////////////////////////////////////////////
-    // Produces a random JSON document, as a string
-    //////////////////////////////////////////////////////
-    var randomJsonDoc = function () {
-
-      var doc = {
-        "CrashOccurenceID": randomNumber(10000, 50000),
-        "CrashID": randomNumber(1000, 10000),
-        "SiteName": randomString(10, 25),
-        "MachineName": randomString(10, 25),
-        "Date": randomString(26, 26),
-        "ProcessDuration": randomString(18, 18),
-        "ThreadIdentityName": null,
-        "WindowsIdentityName": randomString(15, 40),
-        "OperatingSystemName": randomString(35, 65),
-        "DetailedExceptionInformation": randomString(100, 800)
-      };
-
-      doc = JSON.stringify(doc);
-      doc = doc.replace(/\,/g, ',\n'); // add new lines after each attribute
-      return doc;
-    };
-
-    //////////////////////////////////////////////////////
-    // generates test data
-    //////////////////////////////////////////////////////
-    var generateTestData = function (cb) {
-
-      console.log('generating large data file...');
-
-      var stream = fs.createWriteStream(file, {
-        encoding: 'utf8'
-      });
-
-      var i = 0;
-      var max = size;
-      var writing = false
-      var split = ',\n';
-      var doc = randomJsonDoc();
-      stream.write('[');
-
-      function write () {
-        if(writing) return
-        writing = true
-        while(++i < max) {
-          if(Math.random() < 0.001)
-            console.log('generate..', i + ' / ' + size)
-          if(!stream.write(doc + split)) {
-            writing = false
-            return stream.once('drain', write)
-          }
-        }
-        stream.write(doc + ']')
-        stream.end();
-        console.log('END')
-      }
-      write()
-      stream.on('close', cb)
-    };
-
-    //////////////////////////////////////////////////////
-    // Shows that parsing 100000 instances using JSONStream fails
-    //
-    // After several seconds, you will get this crash
-    //     FATAL ERROR: JS Allocation failed - process out of memory
-    //////////////////////////////////////////////////////
-    var testJSONStreamParse_causesOutOfMem = function (done) {
-      var items = 0
-      console.log('parsing data files using JSONStream...');
-
-      var parser = JSONStream.parse([true]);
-      var stream = fs.createReadStream(file);
-      stream.pipe(parser);
-
-      parser.on('data', function (data) {
-        items++
-        if(Math.random() < 0.01) console.log(items, '...')
-      });
-      
-      parser.on('end', function () {
-        t.equal(items, size)
-      });
-
-    };
-
-    //////////////////////////////////////////////////////
-    // main
-    //////////////////////////////////////////////////////
-
-    fs.stat(file, function (err, stat) {
-      console.log(stat)
-      if(err)
-        generateTestData(testJSONStreamParse_causesOutOfMem);
-      else 
-        testJSONStreamParse_causesOutOfMem()
-    })
-
-  })
-  
-// }

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/test/header_footer.js
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/test/header_footer.js b/node_modules/JSONStream/test/header_footer.js
deleted file mode 100644
index f18fc59..0000000
--- a/node_modules/JSONStream/test/header_footer.js
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-var fs = require ('fs')
-  , join = require('path').join
-  , file = join(__dirname, 'fixtures','header_footer.json')
-  , JSONStream = require('../')
-  , it = require('it-is')
-
-var expected = JSON.parse(fs.readFileSync(file))
-  , parser = JSONStream.parse(['rows', /\d+/ /*, 'value'*/])
-  , called = 0
-  , headerCalled = 0
-  , footerCalled = 0
-  , ended = false
-  , parsed = []
-
-fs.createReadStream(file).pipe(parser)
-
-parser.on('header', function (data) {
-  headerCalled ++
-  it(data).deepEqual({
-    total_rows: 129,
-    offset: 0
-  })
-})
-
-parser.on('footer', function (data) {
-  footerCalled ++
-  it(data).deepEqual({
-    foo: { bar: 'baz' }
-  })
-})
-
-parser.on('data', function (data) {
-  called ++
-  it.has({
-    id: it.typeof('string'),
-    value: {rev: it.typeof('string')},
-    key:it.typeof('string')
-  })
-  it(headerCalled).equal(1)
-  parsed.push(data)
-})
-
-parser.on('end', function () {
-  ended = true
-})
-
-process.on('exit', function () {
-  it(called).equal(expected.rows.length)
-  it(headerCalled).equal(1)
-  it(footerCalled).equal(1)
-  it(parsed).deepEqual(expected.rows)
-  console.error('PASSED')
-})

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/test/issues.js
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/test/issues.js b/node_modules/JSONStream/test/issues.js
deleted file mode 100644
index ea4c743..0000000
--- a/node_modules/JSONStream/test/issues.js
+++ /dev/null
@@ -1,34 +0,0 @@
-var JSONStream = require('../');
-var test = require('tape')
-
-test('#66', function (t) {
-   var error = 0;
-   var stream = JSONStream
-    .parse()
-    .on('error', function (err) {
-        t.ok(err);
-        error++;
-    })
-    .on('end', function () {
-        t.ok(error === 1);
-        t.end();
-    });
-
-    stream.write('["foo":bar[');
-    stream.end();
-
-});
-
-test('#81 - failure to parse nested objects', function (t) {
-  var stream = JSONStream
-    .parse('.bar.foo')
-    .on('error', function (err) {
-      t.error(err);
-    })
-    .on('end', function () {
-      t.end();
-    });
-
-  stream.write('{"bar":{"foo":"baz"}}');
-  stream.end();
-});

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/test/keys.js
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/test/keys.js b/node_modules/JSONStream/test/keys.js
deleted file mode 100644
index 747723d..0000000
--- a/node_modules/JSONStream/test/keys.js
+++ /dev/null
@@ -1,105 +0,0 @@
-var test = require('tape');
-var fs = require ('fs');
-var join = require('path').join;
-var couch_sample_file = join(__dirname, 'fixtures','couch_sample.json');
-var JSONStream = require('../');
-
-var fixture = {
-  obj: {
-    one: 1,
-    two: 2,
-    three: 3
-  }
-};
-
-function assertFixtureKeys(stream, t) {
-    var keys = [];
-    var values = [];
-    stream.on('data', function(data) {
-        keys.push(data.key);
-        values.push(data.value);
-    });
-
-    stream.on('end', function() {
-        t.deepEqual(keys, ['one', 'two', 'three']);
-        t.deepEqual(values, [1,2,3]);
-        t.end();
-    });
-    stream.write(JSON.stringify(fixture));
-    stream.end();
-}
-
-test('keys via string', function(t) {
-    var stream = JSONStream.parse('obj.$*');
-    assertFixtureKeys(stream, t);
-});
-
-test('keys via array', function(t) {
-    var stream = JSONStream.parse(['obj',{emitKey: true}]);
-    assertFixtureKeys(stream, t);
-});
-
-test('path via array', function(t) {
-    var stream = JSONStream.parse(['obj',{emitPath: true}]);
-    
-    var paths = [];
-    var values = [];
-    stream.on('data', function(data) {
-        console.log(JSON.stringify(data));
-        paths.push(data.path);
-        values.push(data.value);
-    });
-
-    stream.on('end', function() {
-        t.deepEqual(paths, [['obj', 'one'], ['obj', 'two'], ['obj', 'three']]);
-        t.deepEqual(values, [1,2,3]);
-        t.end();
-    });
-    stream.write(JSON.stringify(fixture));
-    stream.end();
-});
-
-test('advanced keys', function(t) {
-    var advanced = fs.readFileSync(couch_sample_file);
-    var stream = JSONStream.parse(['rows', true, 'doc', {emitKey: true}]);
-
-    var keys = [];
-    var values = [];
-    stream.on('data', function(data) {
-        keys.push(data.key);
-        values.push(data.value);
-    });
-
-    stream.on('end', function() {
-        t.deepEqual(keys, [
-            '_id', '_rev', 'hello',
-            '_id', '_rev', 'hello'
-        ]);
-        t.deepEqual(values, [
-            "change1_0.6995461115147918", "1-e240bae28c7bb3667f02760f6398d508", 1,
-            "change2_0.6995461115147918", "1-13677d36b98c0c075145bb8975105153", 2
-        ]);
-        t.end();
-    });
-    stream.write(advanced);
-    stream.end();
-});
-
-test('parent keys', function(t) {
-    var stream = JSONStream.parse('$*');
-    var d = null;
-    stream.on('data', function(data) {
-        if(d) t.fail('should only be called once');
-        d = data;
-    });
-
-    stream.on('end', function() {
-        t.deepEqual(d,{
-            key: 'obj',
-            value: fixture.obj
-        });
-        t.end();
-    });
-    stream.write(JSON.stringify(fixture));
-    stream.end();
-})

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/test/map.js
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/test/map.js b/node_modules/JSONStream/test/map.js
deleted file mode 100644
index 29b9d89..0000000
--- a/node_modules/JSONStream/test/map.js
+++ /dev/null
@@ -1,40 +0,0 @@
-
-var test = require('tape')
-
-var JSONStream = require('../')
-
-test('map function', function (t) {
-
-  var actual = []
-
-  stream = JSONStream.parse([true], function (e) { return e*10 })
-    stream.on('data', function (v) { actual.push(v)})
-    stream.on('end', function () {
-      t.deepEqual(actual, [10,20,30,40,50,60])
-      t.end()
-
-    })
-
-  stream.write(JSON.stringify([1,2,3,4,5,6], null, 2))
-  stream.end()
-
-})
-
-test('filter function', function (t) {
-
-  var actual = []
-
-  stream = JSONStream
-    .parse([true], function (e) { return e%2 ? e : null})
-    .on('data', function (v) { actual.push(v)})
-    .on('end', function () {
-      t.deepEqual(actual, [1,3,5])
-      t.end()
-
-    })
-
-  stream.write(JSON.stringify([1,2,3,4,5,6], null, 2))
-  stream.end()
-
-})
-

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/test/multiple_objects.js
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/test/multiple_objects.js b/node_modules/JSONStream/test/multiple_objects.js
deleted file mode 100644
index 22f6324..0000000
--- a/node_modules/JSONStream/test/multiple_objects.js
+++ /dev/null
@@ -1,36 +0,0 @@
-var fs = require ('fs');
-var net = require('net');
-var join = require('path').join;
-var file = join(__dirname, 'fixtures','all_npm.json');
-var it = require('it-is');
-var JSONStream = require('../');
-
-var str = fs.readFileSync(file);
-
-var datas = {}
-
-var server = net.createServer(function(client) {
-    var data_calls = 0;
-    var parser = JSONStream.parse(['rows', true, 'key']);
-    parser.on('data', function(data) {
-        ++ data_calls;
-        datas[data] = (datas[data] || 0) + 1
-        it(data).typeof('string')
-    });
-
-    parser.on('end', function() {
-        console.log('END')
-        var min = Infinity
-        for (var d in datas)
-          min = min > datas[d] ? datas[d] : min
-        it(min).equal(3);
-        server.close();
-    });
-    client.pipe(parser);
-});
-server.listen(9999);
-
-var client = net.connect({ port : 9999 }, function() {
-    var msgs = str + ' ' + str + '\n\n' + str
-    client.end(msgs);
-});

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/test/multiple_objects_error.js
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/test/multiple_objects_error.js b/node_modules/JSONStream/test/multiple_objects_error.js
deleted file mode 100644
index 83d113b..0000000
--- a/node_modules/JSONStream/test/multiple_objects_error.js
+++ /dev/null
@@ -1,29 +0,0 @@
-var fs = require ('fs');
-var net = require('net');
-var join = require('path').join;
-var file = join(__dirname, 'fixtures','all_npm.json');
-var it = require('it-is');
-var JSONStream = require('../');
-
-var str = fs.readFileSync(file);
-
-var server = net.createServer(function(client) {
-    var data_calls = 0;
-    var parser = JSONStream.parse();
-    parser.on('error', function(err) {
-        console.log(err);
-        server.close();
-    });
-
-    parser.on('end', function() {
-        console.log('END');
-        server.close();
-    });
-    client.pipe(parser);
-});
-server.listen(9999);
-
-var client = net.connect({ port : 9999 }, function() {
-    var msgs = str + '}';
-    client.end(msgs);
-});

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/test/null.js
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/test/null.js b/node_modules/JSONStream/test/null.js
deleted file mode 100644
index 95dd60c..0000000
--- a/node_modules/JSONStream/test/null.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var JSONStream = require('../')
-
-var data = [
-  {ID: 1, optional: null},
-  {ID: 2, optional: null},
-  {ID: 3, optional: 20},
-  {ID: 4, optional: null},
-  {ID: 5, optional: 'hello'},
-  {ID: 6, optional: null}
-]
-
-
-var test = require('tape')
-
-test ('null properties', function (t) {
-  var actual = []
-  var stream = 
-
-  JSONStream.parse('*.optional')
-    .on('data', function (v) { actual.push(v) })
-    .on('end', function () {
-      t.deepEqual(actual, [20, 'hello'])
-      t.end()
-    })
-
-  stream.write(JSON.stringify(data, null, 2))
-  stream.end()
-})

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/test/parsejson.js
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/test/parsejson.js b/node_modules/JSONStream/test/parsejson.js
deleted file mode 100644
index a943334..0000000
--- a/node_modules/JSONStream/test/parsejson.js
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-/*
- sometimes jsonparse changes numbers slightly.
-*/
-
-var r = Math.random()
-  , Parser = require('jsonparse')
-  , p = new Parser()
-  , assert = require('assert')  
-  , times = 20
-while (times --) {
-
-  assert.equal(JSON.parse(JSON.stringify(r)), r, 'core JSON')
-
-  p.onValue = function (v) {
-    console.error('parsed', v)
-    assert.equal(v,r)
-  }
-  console.error('correct', r)
-  p.write (new Buffer(JSON.stringify([r])))
-
-
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/test/stringify.js
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/test/stringify.js b/node_modules/JSONStream/test/stringify.js
deleted file mode 100644
index b6de85e..0000000
--- a/node_modules/JSONStream/test/stringify.js
+++ /dev/null
@@ -1,41 +0,0 @@
-
-var fs = require ('fs')
-  , join = require('path').join
-  , file = join(__dirname, 'fixtures','all_npm.json')
-  , JSONStream = require('../')
-  , it = require('it-is').style('colour')
-
-  function randomObj () {
-    return (
-      Math.random () < 0.4
-      ? {hello: 'eonuhckmqjk',
-          whatever: 236515,
-          lies: true,
-          nothing: [null],
-          stuff: [Math.random(),Math.random(),Math.random()]
-        } 
-      : ['AOREC', 'reoubaor', {ouec: 62642}, [[[], {}, 53]]]
-    )
-  }
-
-var expected =  []
-  , stringify = JSONStream.stringify()
-  , es = require('event-stream')
-  , stringified = ''
-  , called = 0
-  , count = 10
-  , ended = false
-  
-while (count --)
-  expected.push(randomObj())
-
-  es.connect(
-    es.readArray(expected),
-    stringify,
-    //JSONStream.parse([/./]),
-    es.writeArray(function (err, lines) {
-      
-      it(JSON.parse(lines.join(''))).deepEqual(expected)
-      console.error('PASSED')
-    })
-  )

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/test/stringify_object.js
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/test/stringify_object.js b/node_modules/JSONStream/test/stringify_object.js
deleted file mode 100644
index 9490115..0000000
--- a/node_modules/JSONStream/test/stringify_object.js
+++ /dev/null
@@ -1,47 +0,0 @@
-
-var fs = require ('fs')
-  , join = require('path').join
-  , file = join(__dirname, 'fixtures','all_npm.json')
-  , JSONStream = require('../')
-  , it = require('it-is').style('colour')
-  , es = require('event-stream')
-  , pending = 10
-  , passed = true
-
-  function randomObj () {
-    return (
-      Math.random () < 0.4
-      ? {hello: 'eonuhckmqjk',
-          whatever: 236515,
-          lies: true,
-          nothing: [null],
-          stuff: [Math.random(),Math.random(),Math.random()]
-        } 
-      : ['AOREC', 'reoubaor', {ouec: 62642}, [[[], {}, 53]]]
-    )
-  }
-
-for (var ix = 0; ix < pending; ix++) (function (count) {
-  var expected =  {}
-    , stringify = JSONStream.stringifyObject()
-    
-  es.connect(
-    stringify,
-    es.writeArray(function (err, lines) {
-      it(JSON.parse(lines.join(''))).deepEqual(expected)
-      if (--pending === 0) {
-        console.error('PASSED')
-      }
-    })
-  )
-
-  while (count --) {
-    var key = Math.random().toString(16).slice(2)
-    expected[key] = randomObj()
-    stringify.write([ key, expected[key] ])
-  }
-
-  process.nextTick(function () {
-    stringify.end()
-  })
-})(ix)

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/test/test.js
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/test/test.js b/node_modules/JSONStream/test/test.js
deleted file mode 100644
index 8ea7c2e..0000000
--- a/node_modules/JSONStream/test/test.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-var fs = require ('fs')
-  , join = require('path').join
-  , file = join(__dirname, 'fixtures','all_npm.json')
-  , JSONStream = require('../')
-  , it = require('it-is')
-
-var expected = JSON.parse(fs.readFileSync(file))
-  , parser = JSONStream.parse(['rows', /\d+/ /*, 'value'*/])
-  , called = 0
-  , ended = false
-  , parsed = []
-
-fs.createReadStream(file).pipe(parser)
-  
-parser.on('data', function (data) {
-  called ++
-  it.has({
-    id: it.typeof('string'),
-    value: {rev: it.typeof('string')},
-    key:it.typeof('string')
-  })
-  parsed.push(data)
-})
-
-parser.on('end', function () {
-  ended = true
-})
-
-process.on('exit', function () {
-  it(called).equal(expected.rows.length)
-  it(parsed).deepEqual(expected.rows)
-  console.error('PASSED')
-})

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/test/test2.js
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/test/test2.js b/node_modules/JSONStream/test/test2.js
deleted file mode 100644
index d09df7b..0000000
--- a/node_modules/JSONStream/test/test2.js
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-var fs = require ('fs')
-  , join = require('path').join
-  , file = join(__dirname, '..','package.json')
-  , JSONStream = require('../')
-  , it = require('it-is')
-
-var expected = JSON.parse(fs.readFileSync(file))
-  , parser = JSONStream.parse([])
-  , called = 0
-  , ended = false
-  , parsed = []
-
-fs.createReadStream(file).pipe(parser)
-  
-parser.on('data', function (data) {
-  called ++
-  it(data).deepEqual(expected)
-})
-
-parser.on('end', function () {
-  ended = true
-})
-
-process.on('exit', function () {
-  it(called).equal(1)
-  console.error('PASSED')
-})
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/test/two-ways.js
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/test/two-ways.js b/node_modules/JSONStream/test/two-ways.js
deleted file mode 100644
index 8f3b89c..0000000
--- a/node_modules/JSONStream/test/two-ways.js
+++ /dev/null
@@ -1,41 +0,0 @@
-
-var fs = require ('fs')
-  , join = require('path').join
-  , file = join(__dirname, 'fixtures','all_npm.json')
-  , JSONStream = require('../')
-  , it = require('it-is').style('colour')
-
-  function randomObj () {
-    return (
-      Math.random () < 0.4
-      ? {hello: 'eonuhckmqjk',
-          whatever: 236515,
-          lies: true,
-          nothing: [null],
-//          stuff: [Math.random(),Math.random(),Math.random()]
-        } 
-      : ['AOREC', 'reoubaor', {ouec: 62642}, [[[], {}, 53]]]
-    )
-  }
-
-var expected =  []
-  , stringify = JSONStream.stringify()
-  , es = require('event-stream')
-  , stringified = ''
-  , called = 0
-  , count = 10
-  , ended = false
-  
-while (count --)
-  expected.push(randomObj())
-
-  es.connect(
-    es.readArray(expected),
-    stringify,
-    JSONStream.parse([/./]),
-    es.writeArray(function (err, lines) {
-    
-      it(lines).has(expected)
-      console.error('PASSED')
-    })
-  )

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/abab/CHANGELOG.md
----------------------------------------------------------------------
diff --git a/node_modules/abab/CHANGELOG.md b/node_modules/abab/CHANGELOG.md
deleted file mode 100644
index 3b16719..0000000
--- a/node_modules/abab/CHANGELOG.md
+++ /dev/null
@@ -1,11 +0,0 @@
-## 1.0.3
-
-- Replaced `let` with `var` in `lib/btoa.js`
-  - Follow up from `1.0.2`
-  - Resolves https://github.com/jsdom/abab/issues/18
-
-## 1.0.2
-
-- Replaced `const` with `var` in `index.js`
-  - Allows use of `abab` in the browser without a transpilation step
-  - Resolves https://github.com/jsdom/abab/issues/15

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/abab/README.md
----------------------------------------------------------------------
diff --git a/node_modules/abab/README.md b/node_modules/abab/README.md
deleted file mode 100644
index 2d9c1b5..0000000
--- a/node_modules/abab/README.md
+++ /dev/null
@@ -1,52 +0,0 @@
-# abab
-
-[![npm version](https://badge.fury.io/js/abab.svg)](https://www.npmjs.com/package/abab) [![Build Status](https://travis-ci.org/jsdom/abab.svg?branch=master)](https://travis-ci.org/jsdom/abab)
-
-A module that implements `window.atob` and `window.btoa` according to the [WHATWG spec](https://html.spec.whatwg.org/multipage/webappapis.html#atob). The code is originally from [w3c/web-platform-tests](https://github.com/w3c/web-platform-tests/blob/master/html/webappapis/atob/base64.html).
-
-Compatibility: Node.js version 3+ and all major browsers (using browserify or webpack)
-
-Install with `npm`:
-
-```sh
-npm install abab
-```
-
-## API
-
-### `btoa` (base64 encode)
-
-```js
-const btoa = require('abab').btoa;
-btoa('Hello, world!'); // 'SGVsbG8sIHdvcmxkIQ=='
-```
-
-### `atob` (base64 decode)
-
-```js 
-const atob = require('abab').atob;
-atob('SGVsbG8sIHdvcmxkIQ=='); // 'Hello, world!'
-```
-
-#### Valid characters
-
-[Per the spec](https://html.spec.whatwg.org/multipage/webappapis.html#atob:dom-windowbase64-btoa-3), `btoa` will accept strings "containing only characters in the range `U+0000` to `U+00FF`." If passed a string with characters above `U+00FF`, `btoa` will return `null`. If `atob` is passed a string that is not base64-valid, it will also return `null`. In both cases when `null` is returned, the spec calls for throwing a `DOMException` of type `InvalidCharacterError`.
-
-## Browsers
-
-If you want to include just one of the methods to save bytes in your client-side code, you can `require` the desired module directly.
-
-```js
-var atob = require('abab/lib/atob');
-var btoa = require('abab/lib/btoa');
-```
-
------
-
-### Checklists
-
-If you're **submitting a PR** or **deploying to npm**, please use the [checklists in CONTRIBUTING.md](https://github.com/jsdom/abab/blob/master/CONTRIBUTING.md#checklists)
-
-### Remembering `atob` vs. `btoa`
-
-Here's a mnemonic that might be useful: if you have a plain string and want to base64 encode it, then decode it, `btoa` is what you run before (**b**efore - **b**toa), and `atob` is what you run after (**a**fter - **a**tob).

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/abab/index.js
----------------------------------------------------------------------
diff --git a/node_modules/abab/index.js b/node_modules/abab/index.js
deleted file mode 100644
index 16342c4..0000000
--- a/node_modules/abab/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-
-var atob = require('./lib/atob');
-var btoa = require('./lib/btoa');
-
-module.exports = {
-  atob: atob,
-  btoa: btoa
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/abab/lib/atob.js
----------------------------------------------------------------------
diff --git a/node_modules/abab/lib/atob.js b/node_modules/abab/lib/atob.js
deleted file mode 100644
index ba2528f..0000000
--- a/node_modules/abab/lib/atob.js
+++ /dev/null
@@ -1,109 +0,0 @@
-'use strict';
-
-/**
- * Implementation of atob() according to the HTML spec, except that instead of
- * throwing INVALID_CHARACTER_ERR we return null.
- */
-function atob(input) {
-  // WebIDL requires DOMStrings to just be converted using ECMAScript
-  // ToString, which in our case amounts to calling String().
-  input = String(input);
-  // "Remove all space characters from input."
-  input = input.replace(/[ \t\n\f\r]/g, '');
-  // "If the length of input divides by 4 leaving no remainder, then: if
-  // input ends with one or two U+003D EQUALS SIGN (=) characters, remove
-  // them from input."
-  if (input.length % 4 == 0 && /==?$/.test(input)) {
-    input = input.replace(/==?$/, '');
-  }
-  // "If the length of input divides by 4 leaving a remainder of 1, throw an
-  // INVALID_CHARACTER_ERR exception and abort these steps."
-  //
-  // "If input contains a character that is not in the following list of
-  // characters and character ranges, throw an INVALID_CHARACTER_ERR
-  // exception and abort these steps:
-  //
-  // U+002B PLUS SIGN (+)
-  // U+002F SOLIDUS (/)
-  // U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9)
-  // U+0041 LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER Z
-  // U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER Z"
-  if (input.length % 4 == 1 || !/^[+/0-9A-Za-z]*$/.test(input)) {
-    return null;
-  }
-  // "Let output be a string, initially empty."
-  var output = '';
-  // "Let buffer be a buffer that can have bits appended to it, initially
-  // empty."
-  //
-  // We append bits via left-shift and or.  accumulatedBits is used to track
-  // when we've gotten to 24 bits.
-  var buffer = 0;
-  var accumulatedBits = 0;
-  // "While position does not point past the end of input, run these
-  // substeps:"
-  for (var i = 0; i < input.length; i++) {
-    // "Find the character pointed to by position in the first column of
-    // the following table. Let n be the number given in the second cell of
-    // the same row."
-    //
-    // "Append to buffer the six bits corresponding to number, most
-    // significant bit first."
-    //
-    // atobLookup() implements the table from the spec.
-    buffer <<= 6;
-    buffer |= atobLookup(input[i]);
-    // "If buffer has accumulated 24 bits, interpret them as three 8-bit
-    // big-endian numbers. Append the three characters with code points
-    // equal to those numbers to output, in the same order, and then empty
-    // buffer."
-    accumulatedBits += 6;
-    if (accumulatedBits == 24) {
-      output += String.fromCharCode((buffer & 0xff0000) >> 16);
-      output += String.fromCharCode((buffer & 0xff00) >> 8);
-      output += String.fromCharCode(buffer & 0xff);
-      buffer = accumulatedBits = 0;
-    }
-    // "Advance position by one character."
-  }
-  // "If buffer is not empty, it contains either 12 or 18 bits. If it
-  // contains 12 bits, discard the last four and interpret the remaining
-  // eight as an 8-bit big-endian number. If it contains 18 bits, discard the
-  // last two and interpret the remaining 16 as two 8-bit big-endian numbers.
-  // Append the one or two characters with code points equal to those one or
-  // two numbers to output, in the same order."
-  if (accumulatedBits == 12) {
-    buffer >>= 4;
-    output += String.fromCharCode(buffer);
-  } else if (accumulatedBits == 18) {
-    buffer >>= 2;
-    output += String.fromCharCode((buffer & 0xff00) >> 8);
-    output += String.fromCharCode(buffer & 0xff);
-  }
-  // "Return output."
-  return output;
-}
-/**
- * A lookup table for atob(), which converts an ASCII character to the
- * corresponding six-bit number.
- */
-function atobLookup(chr) {
-  if (/[A-Z]/.test(chr)) {
-    return chr.charCodeAt(0) - 'A'.charCodeAt(0);
-  }
-  if (/[a-z]/.test(chr)) {
-    return chr.charCodeAt(0) - 'a'.charCodeAt(0) + 26;
-  }
-  if (/[0-9]/.test(chr)) {
-    return chr.charCodeAt(0) - '0'.charCodeAt(0) + 52;
-  }
-  if (chr == '+') {
-    return 62;
-  }
-  if (chr == '/') {
-    return 63;
-  }
-  // Throw exception; should not be hit in tests
-}
-
-module.exports = atob;

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/abab/lib/btoa.js
----------------------------------------------------------------------
diff --git a/node_modules/abab/lib/btoa.js b/node_modules/abab/lib/btoa.js
deleted file mode 100644
index bc5b665..0000000
--- a/node_modules/abab/lib/btoa.js
+++ /dev/null
@@ -1,65 +0,0 @@
-'use strict';
-
-/**
- * btoa() as defined by the HTML5 spec, which mostly just references RFC4648.
- */
-function btoa(s) {
-  var i;
-  // String conversion as required by WebIDL.
-  s = String(s);
-  // "The btoa() method must throw an INVALID_CHARACTER_ERR exception if the
-  // method's first argument contains any character whose code point is
-  // greater than U+00FF."
-  for (i = 0; i < s.length; i++) {
-    if (s.charCodeAt(i) > 255) {
-      return null;
-    }
-  }
-  var out = '';
-  for (i = 0; i < s.length; i += 3) {
-    var groupsOfSix = [undefined, undefined, undefined, undefined];
-    groupsOfSix[0] = s.charCodeAt(i) >> 2;
-    groupsOfSix[1] = (s.charCodeAt(i) & 0x03) << 4;
-    if (s.length > i + 1) {
-      groupsOfSix[1] |= s.charCodeAt(i + 1) >> 4;
-      groupsOfSix[2] = (s.charCodeAt(i + 1) & 0x0f) << 2;
-    }
-    if (s.length > i + 2) {
-      groupsOfSix[2] |= s.charCodeAt(i + 2) >> 6;
-      groupsOfSix[3] = s.charCodeAt(i + 2) & 0x3f;
-    }
-    for (var j = 0; j < groupsOfSix.length; j++) {
-      if (typeof groupsOfSix[j] == 'undefined') {
-        out += '=';
-      } else {
-        out += btoaLookup(groupsOfSix[j]);
-      }
-    }
-  }
-  return out;
-}
-
-/**
- * Lookup table for btoa(), which converts a six-bit number into the
- * corresponding ASCII character.
- */
-function btoaLookup(idx) {
-  if (idx < 26) {
-    return String.fromCharCode(idx + 'A'.charCodeAt(0));
-  }
-  if (idx < 52) {
-    return String.fromCharCode(idx - 26 + 'a'.charCodeAt(0));
-  }
-  if (idx < 62) {
-    return String.fromCharCode(idx - 52 + '0'.charCodeAt(0));
-  }
-  if (idx == 62) {
-    return '+';
-  }
-  if (idx == 63) {
-    return '/';
-  }
-  // Throw INVALID_CHARACTER_ERR exception here -- won't be hit in the tests.
-}
-
-module.exports = btoa;

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/abab/package.json
----------------------------------------------------------------------
diff --git a/node_modules/abab/package.json b/node_modules/abab/package.json
deleted file mode 100644
index dd6e036..0000000
--- a/node_modules/abab/package.json
+++ /dev/null
@@ -1,107 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "abab@^1.0.0",
-        "scope": null,
-        "escapedName": "abab",
-        "name": "abab",
-        "rawSpec": "^1.0.0",
-        "spec": ">=1.0.0 <2.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/jsdom"
-    ]
-  ],
-  "_from": "abab@>=1.0.0 <2.0.0",
-  "_id": "abab@1.0.3",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/abab",
-  "_nodeVersion": "4.1.2",
-  "_npmUser": {
-    "name": "jeffcarp",
-    "email": "gcarpenterv@gmail.com"
-  },
-  "_npmVersion": "2.14.4",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "abab@^1.0.0",
-    "scope": null,
-    "escapedName": "abab",
-    "name": "abab",
-    "rawSpec": "^1.0.0",
-    "spec": ">=1.0.0 <2.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/jsdom"
-  ],
-  "_resolved": "https://registry.npmjs.org/abab/-/abab-1.0.3.tgz",
-  "_shasum": "b81de5f7274ec4e756d797cd834f303642724e5d",
-  "_shrinkwrap": null,
-  "_spec": "abab@^1.0.0",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/jsdom",
-  "author": {
-    "name": "Jeff Carpenter",
-    "email": "gcarpenterv@gmail.com"
-  },
-  "bugs": {
-    "url": "https://github.com/jsdom/abab/issues"
-  },
-  "dependencies": {},
-  "description": "WHATWG spec-compliant implementations of window.atob and window.btoa.",
-  "devDependencies": {
-    "babel-core": "^6.1.4",
-    "babel-loader": "^6.1.0",
-    "babel-preset-es2015": "^6.1.4",
-    "eslint": "^1.3.1",
-    "jscs": "^2.1.1",
-    "karma": "^0.13.10",
-    "karma-cli": "^0.1.1",
-    "karma-firefox-launcher": "^0.1.6",
-    "karma-mocha": "^0.2.0",
-    "karma-sauce-launcher": "^0.2.14",
-    "karma-webpack": "^1.7.0",
-    "mocha": "^2.2.5",
-    "webpack": "^1.12.2"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "b81de5f7274ec4e756d797cd834f303642724e5d",
-    "tarball": "https://registry.npmjs.org/abab/-/abab-1.0.3.tgz"
-  },
-  "files": [
-    "index.js",
-    "lib/"
-  ],
-  "gitHead": "223c06f29e0e4d4f3bc11164f762898474158c3a",
-  "homepage": "https://github.com/jsdom/abab#readme",
-  "keywords": [
-    "atob",
-    "btoa",
-    "browser"
-  ],
-  "license": "ISC",
-  "main": "index.js",
-  "maintainers": [
-    {
-      "name": "jeffcarp",
-      "email": "gcarpenterv@gmail.com"
-    }
-  ],
-  "name": "abab",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/jsdom/abab.git"
-  },
-  "scripts": {
-    "karma": "karma start",
-    "lint": "jscs . && eslint .",
-    "mocha": "mocha test/node",
-    "test": "npm run lint && npm run mocha && npm run karma"
-  },
-  "version": "1.0.3"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/abbrev/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/abbrev/LICENSE b/node_modules/abbrev/LICENSE
deleted file mode 100644
index 19129e3..0000000
--- a/node_modules/abbrev/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/abbrev/README.md
----------------------------------------------------------------------
diff --git a/node_modules/abbrev/README.md b/node_modules/abbrev/README.md
deleted file mode 100644
index 99746fe..0000000
--- a/node_modules/abbrev/README.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# abbrev-js
-
-Just like [ruby's Abbrev](http://apidock.com/ruby/Abbrev).
-
-Usage:
-
-    var abbrev = require("abbrev");
-    abbrev("foo", "fool", "folding", "flop");
-    
-    // returns:
-    { fl: 'flop'
-    , flo: 'flop'
-    , flop: 'flop'
-    , fol: 'folding'
-    , fold: 'folding'
-    , foldi: 'folding'
-    , foldin: 'folding'
-    , folding: 'folding'
-    , foo: 'foo'
-    , fool: 'fool'
-    }
-
-This is handy for command-line scripts, or other cases where you want to be able to accept shorthands.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/abbrev/abbrev.js
----------------------------------------------------------------------
diff --git a/node_modules/abbrev/abbrev.js b/node_modules/abbrev/abbrev.js
deleted file mode 100644
index 7b1dc5d..0000000
--- a/node_modules/abbrev/abbrev.js
+++ /dev/null
@@ -1,61 +0,0 @@
-module.exports = exports = abbrev.abbrev = abbrev
-
-abbrev.monkeyPatch = monkeyPatch
-
-function monkeyPatch () {
-  Object.defineProperty(Array.prototype, 'abbrev', {
-    value: function () { return abbrev(this) },
-    enumerable: false, configurable: true, writable: true
-  })
-
-  Object.defineProperty(Object.prototype, 'abbrev', {
-    value: function () { return abbrev(Object.keys(this)) },
-    enumerable: false, configurable: true, writable: true
-  })
-}
-
-function abbrev (list) {
-  if (arguments.length !== 1 || !Array.isArray(list)) {
-    list = Array.prototype.slice.call(arguments, 0)
-  }
-  for (var i = 0, l = list.length, args = [] ; i < l ; i ++) {
-    args[i] = typeof list[i] === "string" ? list[i] : String(list[i])
-  }
-
-  // sort them lexicographically, so that they're next to their nearest kin
-  args = args.sort(lexSort)
-
-  // walk through each, seeing how much it has in common with the next and previous
-  var abbrevs = {}
-    , prev = ""
-  for (var i = 0, l = args.length ; i < l ; i ++) {
-    var current = args[i]
-      , next = args[i + 1] || ""
-      , nextMatches = true
-      , prevMatches = true
-    if (current === next) continue
-    for (var j = 0, cl = current.length ; j < cl ; j ++) {
-      var curChar = current.charAt(j)
-      nextMatches = nextMatches && curChar === next.charAt(j)
-      prevMatches = prevMatches && curChar === prev.charAt(j)
-      if (!nextMatches && !prevMatches) {
-        j ++
-        break
-      }
-    }
-    prev = current
-    if (j === cl) {
-      abbrevs[current] = current
-      continue
-    }
-    for (var a = current.substr(0, j) ; j <= cl ; j ++) {
-      abbrevs[a] = current
-      a += current.charAt(j)
-    }
-  }
-  return abbrevs
-}
-
-function lexSort (a, b) {
-  return a === b ? 0 : a > b ? 1 : -1
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/abbrev/package.json
----------------------------------------------------------------------
diff --git a/node_modules/abbrev/package.json b/node_modules/abbrev/package.json
deleted file mode 100644
index 3542759..0000000
--- a/node_modules/abbrev/package.json
+++ /dev/null
@@ -1,95 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "abbrev@^1.0.7",
-        "scope": null,
-        "escapedName": "abbrev",
-        "name": "abbrev",
-        "rawSpec": "^1.0.7",
-        "spec": ">=1.0.7 <2.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/hexo"
-    ]
-  ],
-  "_from": "abbrev@>=1.0.7 <2.0.0",
-  "_id": "abbrev@1.1.0",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/abbrev",
-  "_nodeVersion": "8.0.0-pre",
-  "_npmOperationalInternal": {
-    "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/abbrev-1.1.0.tgz_1487054000015_0.9229173036292195"
-  },
-  "_npmUser": {
-    "name": "isaacs",
-    "email": "i@izs.me"
-  },
-  "_npmVersion": "4.3.0",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "abbrev@^1.0.7",
-    "scope": null,
-    "escapedName": "abbrev",
-    "name": "abbrev",
-    "rawSpec": "^1.0.7",
-    "spec": ">=1.0.7 <2.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/hexo",
-    "/hexo/hexo-cli",
-    "/nopt"
-  ],
-  "_resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz",
-  "_shasum": "d0554c2256636e2f56e7c2e5ad183f859428d81f",
-  "_shrinkwrap": null,
-  "_spec": "abbrev@^1.0.7",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/hexo",
-  "author": {
-    "name": "Isaac Z. Schlueter",
-    "email": "i@izs.me"
-  },
-  "bugs": {
-    "url": "https://github.com/isaacs/abbrev-js/issues"
-  },
-  "dependencies": {},
-  "description": "Like ruby's abbrev module, but in js",
-  "devDependencies": {
-    "tap": "^10.1"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "d0554c2256636e2f56e7c2e5ad183f859428d81f",
-    "tarball": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz"
-  },
-  "files": [
-    "abbrev.js"
-  ],
-  "gitHead": "7136d4d95449dc44115d4f78b80ec907724f64e0",
-  "homepage": "https://github.com/isaacs/abbrev-js#readme",
-  "license": "ISC",
-  "main": "abbrev.js",
-  "maintainers": [
-    {
-      "name": "isaacs",
-      "email": "i@izs.me"
-    }
-  ],
-  "name": "abbrev",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+ssh://git@github.com/isaacs/abbrev-js.git"
-  },
-  "scripts": {
-    "postpublish": "git push origin --all; git push origin --tags",
-    "postversion": "npm publish",
-    "preversion": "npm test",
-    "test": "tap test.js --100"
-  },
-  "version": "1.1.0"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/accepts/HISTORY.md
----------------------------------------------------------------------
diff --git a/node_modules/accepts/HISTORY.md b/node_modules/accepts/HISTORY.md
deleted file mode 100644
index 0477ed7..0000000
--- a/node_modules/accepts/HISTORY.md
+++ /dev/null
@@ -1,212 +0,0 @@
-1.3.3 / 2016-05-02
-==================
-
-  * deps: mime-types@~2.1.11
-    - deps: mime-db@~1.23.0
-  * deps: negotiator@0.6.1
-    - perf: improve `Accept` parsing speed
-    - perf: improve `Accept-Charset` parsing speed
-    - perf: improve `Accept-Encoding` parsing speed
-    - perf: improve `Accept-Language` parsing speed
-
-1.3.2 / 2016-03-08
-==================
-
-  * deps: mime-types@~2.1.10
-    - Fix extension of `application/dash+xml`
-    - Update primary extension for `audio/mp4`
-    - deps: mime-db@~1.22.0
-
-1.3.1 / 2016-01-19
-==================
-
-  * deps: mime-types@~2.1.9
-    - deps: mime-db@~1.21.0
-
-1.3.0 / 2015-09-29
-==================
-
-  * deps: mime-types@~2.1.7
-    - deps: mime-db@~1.19.0
-  * deps: negotiator@0.6.0
-    - Fix including type extensions in parameters in `Accept` parsing
-    - Fix parsing `Accept` parameters with quoted equals
-    - Fix parsing `Accept` parameters with quoted semicolons
-    - Lazy-load modules from main entry point
-    - perf: delay type concatenation until needed
-    - perf: enable strict mode
-    - perf: hoist regular expressions
-    - perf: remove closures getting spec properties
-    - perf: remove a closure from media type parsing
-    - perf: remove property delete from media type parsing
-
-1.2.13 / 2015-09-06
-===================
-
-  * deps: mime-types@~2.1.6
-    - deps: mime-db@~1.18.0
-
-1.2.12 / 2015-07-30
-===================
-
-  * deps: mime-types@~2.1.4
-    - deps: mime-db@~1.16.0
-
-1.2.11 / 2015-07-16
-===================
-
-  * deps: mime-types@~2.1.3
-    - deps: mime-db@~1.15.0
-
-1.2.10 / 2015-07-01
-===================
-
-  * deps: mime-types@~2.1.2
-    - deps: mime-db@~1.14.0
-
-1.2.9 / 2015-06-08
-==================
-
-  * deps: mime-types@~2.1.1
-    - perf: fix deopt during mapping
-
-1.2.8 / 2015-06-07
-==================
-
-  * deps: mime-types@~2.1.0
-    - deps: mime-db@~1.13.0
-  * perf: avoid argument reassignment & argument slice
-  * perf: avoid negotiator recursive construction
-  * perf: enable strict mode
-  * perf: remove unnecessary bitwise operator
-
-1.2.7 / 2015-05-10
-==================
-
-  * deps: negotiator@0.5.3
-    - Fix media type parameter matching to be case-insensitive
-
-1.2.6 / 2015-05-07
-==================
-
-  * deps: mime-types@~2.0.11
-    - deps: mime-db@~1.9.1
-  * deps: negotiator@0.5.2
-    - Fix comparing media types with quoted values
-    - Fix splitting media types with quoted commas
-
-1.2.5 / 2015-03-13
-==================
-
-  * deps: mime-types@~2.0.10
-    - deps: mime-db@~1.8.0
-
-1.2.4 / 2015-02-14
-==================
-
-  * Support Node.js 0.6
-  * deps: mime-types@~2.0.9
-    - deps: mime-db@~1.7.0
-  * deps: negotiator@0.5.1
-    - Fix preference sorting to be stable for long acceptable lists
-
-1.2.3 / 2015-01-31
-==================
-
-  * deps: mime-types@~2.0.8
-    - deps: mime-db@~1.6.0
-
-1.2.2 / 2014-12-30
-==================
-
-  * deps: mime-types@~2.0.7
-    - deps: mime-db@~1.5.0
-
-1.2.1 / 2014-12-30
-==================
-
-  * deps: mime-types@~2.0.5
-    - deps: mime-db@~1.3.1
-
-1.2.0 / 2014-12-19
-==================
-
-  * deps: negotiator@0.5.0
-    - Fix list return order when large accepted list
-    - Fix missing identity encoding when q=0 exists
-    - Remove dynamic building of Negotiator class
-
-1.1.4 / 2014-12-10
-==================
-
-  * deps: mime-types@~2.0.4
-    - deps: mime-db@~1.3.0
-
-1.1.3 / 2014-11-09
-==================
-
-  * deps: mime-types@~2.0.3
-    - deps: mime-db@~1.2.0
-
-1.1.2 / 2014-10-14
-==================
-
-  * deps: negotiator@0.4.9
-    - Fix error when media type has invalid parameter
-
-1.1.1 / 2014-09-28
-==================
-
-  * deps: mime-types@~2.0.2
-    - deps: mime-db@~1.1.0
-  * deps: negotiator@0.4.8
-    - Fix all negotiations to be case-insensitive
-    - Stable sort preferences of same quality according to client order
-
-1.1.0 / 2014-09-02
-==================
-
-  * update `mime-types`
-
-1.0.7 / 2014-07-04
-==================
-
-  * Fix wrong type returned from `type` when match after unknown extension
-
-1.0.6 / 2014-06-24
-==================
-
-  * deps: negotiator@0.4.7
-
-1.0.5 / 2014-06-20
-==================
-
- * fix crash when unknown extension given
-
-1.0.4 / 2014-06-19
-==================
-
-  * use `mime-types`
-
-1.0.3 / 2014-06-11
-==================
-
-  * deps: negotiator@0.4.6
-    - Order by specificity when quality is the same
-
-1.0.2 / 2014-05-29
-==================
-
-  * Fix interpretation when header not in request
-  * deps: pin negotiator@0.4.5
-
-1.0.1 / 2014-01-18
-==================
-
-  * Identity encoding isn't always acceptable
-  * deps: negotiator@~0.4.0
-
-1.0.0 / 2013-12-27
-==================
-
-  * Genesis

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/accepts/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/accepts/LICENSE b/node_modules/accepts/LICENSE
deleted file mode 100644
index 0616607..0000000
--- a/node_modules/accepts/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2014 Jonathan Ong <me...@jongleberry.com>
-Copyright (c) 2015 Douglas Christopher Wilson <do...@somethingdoug.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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/accepts/README.md
----------------------------------------------------------------------
diff --git a/node_modules/accepts/README.md b/node_modules/accepts/README.md
deleted file mode 100644
index ae36676..0000000
--- a/node_modules/accepts/README.md
+++ /dev/null
@@ -1,135 +0,0 @@
-# accepts
-
-[![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]
-
-Higher level content negotiation based on [negotiator](https://www.npmjs.com/package/negotiator). Extracted from [koa](https://www.npmjs.com/package/koa) for general use.
-
-In addition to negotiator, it allows:
-
-- Allows types as an array or arguments list, ie `(['text/html', 'application/json'])` as well as `('text/html', 'application/json')`.
-- Allows type shorthands such as `json`.
-- Returns `false` when no types match
-- Treats non-existent headers as `*`
-
-## Installation
-
-```sh
-npm install accepts
-```
-
-## API
-
-```js
-var accepts = require('accepts')
-```
-
-### accepts(req)
-
-Create a new `Accepts` object for the given `req`.
-
-#### .charset(charsets)
-
-Return the first accepted charset. If nothing in `charsets` is accepted,
-then `false` is returned.
-
-#### .charsets()
-
-Return the charsets that the request accepts, in the order of the client's
-preference (most preferred first).
-
-#### .encoding(encodings)
-
-Return the first accepted encoding. If nothing in `encodings` is accepted,
-then `false` is returned.
-
-#### .encodings()
-
-Return the encodings that the request accepts, in the order of the client's
-preference (most preferred first).
-
-#### .language(languages)
-
-Return the first accepted language. If nothing in `languages` is accepted,
-then `false` is returned.
-
-#### .languages()
-
-Return the languages that the request accepts, in the order of the client's
-preference (most preferred first).
-
-#### .type(types)
-
-Return the first accepted type (and it is returned as the same text as what
-appears in the `types` array). If nothing in `types` is accepted, then `false`
-is returned.
-
-The `types` array can contain full MIME types or file extensions. Any value
-that is not a full MIME types is passed to `require('mime-types').lookup`.
-
-#### .types()
-
-Return the types that the request accepts, in the order of the client's
-preference (most preferred first).
-
-## Examples
-
-### Simple type negotiation
-
-This simple example shows how to use `accepts` to return a different typed
-respond body based on what the client wants to accept. The server lists it's
-preferences in order and will get back the best match between the client and
-server.
-
-```js
-var accepts = require('accepts')
-var http = require('http')
-
-function app(req, res) {
-  var accept = accepts(req)
-
-  // the order of this list is significant; should be server preferred order
-  switch(accept.type(['json', 'html'])) {
-    case 'json':
-      res.setHeader('Content-Type', 'application/json')
-      res.write('{"hello":"world!"}')
-      break
-    case 'html':
-      res.setHeader('Content-Type', 'text/html')
-      res.write('<b>hello, world!</b>')
-      break
-    default:
-      // the fallback is text/plain, so no need to specify it above
-      res.setHeader('Content-Type', 'text/plain')
-      res.write('hello, world!')
-      break
-  }
-
-  res.end()
-}
-
-http.createServer(app).listen(3000)
-```
-
-You can test this out with the cURL program:
-```sh
-curl -I -H'Accept: text/html' http://localhost:3000/
-```
-
-## License
-
-[MIT](LICENSE)
-
-[npm-image]: https://img.shields.io/npm/v/accepts.svg
-[npm-url]: https://npmjs.org/package/accepts
-[node-version-image]: https://img.shields.io/node/v/accepts.svg
-[node-version-url]: http://nodejs.org/download/
-[travis-image]: https://img.shields.io/travis/jshttp/accepts/master.svg
-[travis-url]: https://travis-ci.org/jshttp/accepts
-[coveralls-image]: https://img.shields.io/coveralls/jshttp/accepts/master.svg
-[coveralls-url]: https://coveralls.io/r/jshttp/accepts
-[downloads-image]: https://img.shields.io/npm/dm/accepts.svg
-[downloads-url]: https://npmjs.org/package/accepts

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/accepts/index.js
----------------------------------------------------------------------
diff --git a/node_modules/accepts/index.js b/node_modules/accepts/index.js
deleted file mode 100644
index e80192a..0000000
--- a/node_modules/accepts/index.js
+++ /dev/null
@@ -1,231 +0,0 @@
-/*!
- * accepts
- * Copyright(c) 2014 Jonathan Ong
- * Copyright(c) 2015 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-'use strict'
-
-/**
- * Module dependencies.
- * @private
- */
-
-var Negotiator = require('negotiator')
-var mime = require('mime-types')
-
-/**
- * Module exports.
- * @public
- */
-
-module.exports = Accepts
-
-/**
- * Create a new Accepts object for the given req.
- *
- * @param {object} req
- * @public
- */
-
-function Accepts(req) {
-  if (!(this instanceof Accepts))
-    return new Accepts(req)
-
-  this.headers = req.headers
-  this.negotiator = new Negotiator(req)
-}
-
-/**
- * Check if the given `type(s)` is acceptable, returning
- * the best match when true, otherwise `undefined`, in which
- * case you should respond with 406 "Not Acceptable".
- *
- * The `type` value may be a single mime type string
- * such as "application/json", the extension name
- * such as "json" or an array `["json", "html", "text/plain"]`. When a list
- * or array is given the _best_ match, if any is returned.
- *
- * Examples:
- *
- *     // Accept: text/html
- *     this.types('html');
- *     // => "html"
- *
- *     // Accept: text/*, application/json
- *     this.types('html');
- *     // => "html"
- *     this.types('text/html');
- *     // => "text/html"
- *     this.types('json', 'text');
- *     // => "json"
- *     this.types('application/json');
- *     // => "application/json"
- *
- *     // Accept: text/*, application/json
- *     this.types('image/png');
- *     this.types('png');
- *     // => undefined
- *
- *     // Accept: text/*;q=.5, application/json
- *     this.types(['html', 'json']);
- *     this.types('html', 'json');
- *     // => "json"
- *
- * @param {String|Array} types...
- * @return {String|Array|Boolean}
- * @public
- */
-
-Accepts.prototype.type =
-Accepts.prototype.types = function (types_) {
-  var types = types_
-
-  // support flattened arguments
-  if (types && !Array.isArray(types)) {
-    types = new Array(arguments.length)
-    for (var i = 0; i < types.length; i++) {
-      types[i] = arguments[i]
-    }
-  }
-
-  // no types, return all requested types
-  if (!types || types.length === 0) {
-    return this.negotiator.mediaTypes()
-  }
-
-  if (!this.headers.accept) return types[0];
-  var mimes = types.map(extToMime);
-  var accepts = this.negotiator.mediaTypes(mimes.filter(validMime));
-  var first = accepts[0];
-  if (!first) return false;
-  return types[mimes.indexOf(first)];
-}
-
-/**
- * Return accepted encodings or best fit based on `encodings`.
- *
- * Given `Accept-Encoding: gzip, deflate`
- * an array sorted by quality is returned:
- *
- *     ['gzip', 'deflate']
- *
- * @param {String|Array} encodings...
- * @return {String|Array}
- * @public
- */
-
-Accepts.prototype.encoding =
-Accepts.prototype.encodings = function (encodings_) {
-  var encodings = encodings_
-
-  // support flattened arguments
-  if (encodings && !Array.isArray(encodings)) {
-    encodings = new Array(arguments.length)
-    for (var i = 0; i < encodings.length; i++) {
-      encodings[i] = arguments[i]
-    }
-  }
-
-  // no encodings, return all requested encodings
-  if (!encodings || encodings.length === 0) {
-    return this.negotiator.encodings()
-  }
-
-  return this.negotiator.encodings(encodings)[0] || false
-}
-
-/**
- * Return accepted charsets or best fit based on `charsets`.
- *
- * Given `Accept-Charset: utf-8, iso-8859-1;q=0.2, utf-7;q=0.5`
- * an array sorted by quality is returned:
- *
- *     ['utf-8', 'utf-7', 'iso-8859-1']
- *
- * @param {String|Array} charsets...
- * @return {String|Array}
- * @public
- */
-
-Accepts.prototype.charset =
-Accepts.prototype.charsets = function (charsets_) {
-  var charsets = charsets_
-
-  // support flattened arguments
-  if (charsets && !Array.isArray(charsets)) {
-    charsets = new Array(arguments.length)
-    for (var i = 0; i < charsets.length; i++) {
-      charsets[i] = arguments[i]
-    }
-  }
-
-  // no charsets, return all requested charsets
-  if (!charsets || charsets.length === 0) {
-    return this.negotiator.charsets()
-  }
-
-  return this.negotiator.charsets(charsets)[0] || false
-}
-
-/**
- * Return accepted languages or best fit based on `langs`.
- *
- * Given `Accept-Language: en;q=0.8, es, pt`
- * an array sorted by quality is returned:
- *
- *     ['es', 'pt', 'en']
- *
- * @param {String|Array} langs...
- * @return {Array|String}
- * @public
- */
-
-Accepts.prototype.lang =
-Accepts.prototype.langs =
-Accepts.prototype.language =
-Accepts.prototype.languages = function (languages_) {
-  var languages = languages_
-
-  // support flattened arguments
-  if (languages && !Array.isArray(languages)) {
-    languages = new Array(arguments.length)
-    for (var i = 0; i < languages.length; i++) {
-      languages[i] = arguments[i]
-    }
-  }
-
-  // no languages, return all requested languages
-  if (!languages || languages.length === 0) {
-    return this.negotiator.languages()
-  }
-
-  return this.negotiator.languages(languages)[0] || false
-}
-
-/**
- * Convert extnames to mime.
- *
- * @param {String} type
- * @return {String}
- * @private
- */
-
-function extToMime(type) {
-  return type.indexOf('/') === -1
-    ? mime.lookup(type)
-    : type
-}
-
-/**
- * Check if mime is valid.
- *
- * @param {String} type
- * @return {String}
- * @private
- */
-
-function validMime(type) {
-  return typeof type === 'string';
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/accepts/package.json
----------------------------------------------------------------------
diff --git a/node_modules/accepts/package.json b/node_modules/accepts/package.json
deleted file mode 100644
index dd36762..0000000
--- a/node_modules/accepts/package.json
+++ /dev/null
@@ -1,113 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "accepts@~1.3.3",
-        "scope": null,
-        "escapedName": "accepts",
-        "name": "accepts",
-        "rawSpec": "~1.3.3",
-        "spec": ">=1.3.3 <1.4.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/compression"
-    ]
-  ],
-  "_from": "accepts@>=1.3.3 <1.4.0",
-  "_id": "accepts@1.3.3",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/accepts",
-  "_nodeVersion": "4.4.3",
-  "_npmOperationalInternal": {
-    "host": "packages-16-east.internal.npmjs.com",
-    "tmp": "tmp/accepts-1.3.3.tgz_1462251932032_0.7092335098423064"
-  },
-  "_npmUser": {
-    "name": "dougwilson",
-    "email": "doug@somethingdoug.com"
-  },
-  "_npmVersion": "2.15.1",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "accepts@~1.3.3",
-    "scope": null,
-    "escapedName": "accepts",
-    "name": "accepts",
-    "rawSpec": "~1.3.3",
-    "spec": ">=1.3.3 <1.4.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/compression"
-  ],
-  "_resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz",
-  "_shasum": "c3ca7434938648c3e0d9c1e328dd68b622c284ca",
-  "_shrinkwrap": null,
-  "_spec": "accepts@~1.3.3",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/compression",
-  "bugs": {
-    "url": "https://github.com/jshttp/accepts/issues"
-  },
-  "contributors": [
-    {
-      "name": "Douglas Christopher Wilson",
-      "email": "doug@somethingdoug.com"
-    },
-    {
-      "name": "Jonathan Ong",
-      "email": "me@jongleberry.com",
-      "url": "http://jongleberry.com"
-    }
-  ],
-  "dependencies": {
-    "mime-types": "~2.1.11",
-    "negotiator": "0.6.1"
-  },
-  "description": "Higher-level content negotiation",
-  "devDependencies": {
-    "istanbul": "0.4.3",
-    "mocha": "~1.21.5"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "c3ca7434938648c3e0d9c1e328dd68b622c284ca",
-    "tarball": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz"
-  },
-  "engines": {
-    "node": ">= 0.6"
-  },
-  "files": [
-    "LICENSE",
-    "HISTORY.md",
-    "index.js"
-  ],
-  "gitHead": "3e925b1e65ed7da2798849683d49814680dfa426",
-  "homepage": "https://github.com/jshttp/accepts#readme",
-  "keywords": [
-    "content",
-    "negotiation",
-    "accept",
-    "accepts"
-  ],
-  "license": "MIT",
-  "maintainers": [
-    {
-      "name": "dougwilson",
-      "email": "doug@somethingdoug.com"
-    }
-  ],
-  "name": "accepts",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/jshttp/accepts.git"
-  },
-  "scripts": {
-    "test": "mocha --reporter spec --check-leaks --bail test/",
-    "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/",
-    "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"
-  },
-  "version": "1.3.3"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn-globals/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/acorn-globals/LICENSE b/node_modules/acorn-globals/LICENSE
deleted file mode 100644
index 27cc9f3..0000000
--- a/node_modules/acorn-globals/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2014 Forbes Lindesay
-
-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.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn-globals/README.md
----------------------------------------------------------------------
diff --git a/node_modules/acorn-globals/README.md b/node_modules/acorn-globals/README.md
deleted file mode 100644
index d8cd372..0000000
--- a/node_modules/acorn-globals/README.md
+++ /dev/null
@@ -1,76 +0,0 @@
-# acorn-globals
-
-Detect global variables in JavaScript using acorn
-
-[![Build Status](https://img.shields.io/travis/ForbesLindesay/acorn-globals/master.svg)](https://travis-ci.org/ForbesLindesay/acorn-globals)
-[![Dependency Status](https://img.shields.io/david/ForbesLindesay/acorn-globals.svg)](https://david-dm.org/ForbesLindesay/acorn-globals)
-[![NPM version](https://img.shields.io/npm/v/acorn-globals.svg)](https://www.npmjs.org/package/acorn-globals)
-
-## Installation
-
-    npm install acorn-globals
-
-## Usage
-
-detect.js
-
-```js
-var fs = require('fs');
-var detect = require('acorn-globals');
-
-var src = fs.readFileSync(__dirname + '/input.js', 'utf8');
-
-var scope = detect(src);
-console.dir(scope);
-```
-
-input.js
-
-```js
-var x = 5;
-var y = 3, z = 2;
-
-w.foo();
-w = 2;
-
-RAWR=444;
-RAWR.foo();
-
-BLARG=3;
-
-foo(function () {
-    var BAR = 3;
-    process.nextTick(function (ZZZZZZZZZZZZ) {
-        console.log('beep boop');
-        var xyz = 4;
-        x += 10;
-        x.zzzzzz;
-        ZZZ=6;
-    });
-    function doom () {
-    }
-    ZZZ.foo();
-
-});
-
-console.log(xyz);
-```
-
-output:
-
-```
-$ node example/detect.js
-[ { name: 'BLARG', nodes: [ [Object] ] },
-  { name: 'RAWR', nodes: [ [Object], [Object] ] },
-  { name: 'ZZZ', nodes: [ [Object], [Object] ] },
-  { name: 'console', nodes: [ [Object], [Object] ] },
-  { name: 'foo', nodes: [ [Object] ] },
-  { name: 'process', nodes: [ [Object] ] },
-  { name: 'w', nodes: [ [Object], [Object] ] },
-  { name: 'xyz', nodes: [ [Object] ] } ]
-```
-
-
-## License
-
-  MIT

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn-globals/index.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn-globals/index.js b/node_modules/acorn-globals/index.js
deleted file mode 100644
index ff924c9..0000000
--- a/node_modules/acorn-globals/index.js
+++ /dev/null
@@ -1,180 +0,0 @@
-'use strict';
-
-var acorn = require('acorn');
-var walk = require('acorn/dist/walk');
-
-function isScope(node) {
-  return node.type === 'FunctionExpression' || node.type === 'FunctionDeclaration' || node.type === 'ArrowFunctionExpression' || node.type === 'Program';
-}
-function isBlockScope(node) {
-  return node.type === 'BlockStatement' || isScope(node);
-}
-
-function declaresArguments(node) {
-  return node.type === 'FunctionExpression' || node.type === 'FunctionDeclaration';
-}
-
-function declaresThis(node) {
-  return node.type === 'FunctionExpression' || node.type === 'FunctionDeclaration';
-}
-
-function reallyParse(source) {
-  try {
-    return acorn.parse(source, {
-      ecmaVersion: 6,
-      allowReturnOutsideFunction: true,
-      allowImportExportEverywhere: true,
-      allowHashBang: true
-    });
-  } catch (ex) {
-    return acorn.parse(source, {
-      ecmaVersion: 5,
-      allowReturnOutsideFunction: true,
-      allowImportExportEverywhere: true,
-      allowHashBang: true
-    });
-  }
-}
-module.exports = findGlobals;
-module.exports.parse = reallyParse;
-function findGlobals(source) {
-  var globals = [];
-  var ast;
-  // istanbul ignore else
-  if (typeof source === 'string') {
-    ast = reallyParse(source);
-  } else {
-    ast = source;
-  }
-  // istanbul ignore if
-  if (!(ast && typeof ast === 'object' && ast.type === 'Program')) {
-    throw new TypeError('Source must be either a string of JavaScript or an acorn AST');
-  }
-  var declareFunction = function (node) {
-    var fn = node;
-    fn.locals = fn.locals || {};
-    node.params.forEach(function (node) {
-      declarePattern(node, fn);
-    });
-    if (node.id) {
-      fn.locals[node.id.name] = true;
-    }
-  }
-  var declarePattern = function (node, parent) {
-    switch (node.type) {
-      case 'Identifier':
-        parent.locals[node.name] = true;
-        break;
-      case 'ObjectPattern':
-        node.properties.forEach(function (node) {
-          declarePattern(node.value, parent);
-        });
-        break;
-      case 'ArrayPattern':
-        node.elements.forEach(function (node) {
-          if (node) declarePattern(node, parent);
-        });
-        break;
-      case 'RestElement':
-        declarePattern(node.argument, parent);
-        break;
-      case 'AssignmentPattern':
-        declarePattern(node.left, parent);
-        break;
-      // istanbul ignore next
-      default:
-        throw new Error('Unrecognized pattern type: ' + node.type);
-    }
-  }
-  var declareModuleSpecifier = function (node, parents) {
-    ast.locals = ast.locals || {};
-    ast.locals[node.local.name] = true;
-  }
-  walk.ancestor(ast, {
-    'VariableDeclaration': function (node, parents) {
-      var parent = null;
-      for (var i = parents.length - 1; i >= 0 && parent === null; i--) {
-        if (node.kind === 'var' ? isScope(parents[i]) : isBlockScope(parents[i])) {
-          parent = parents[i];
-        }
-      }
-      parent.locals = parent.locals || {};
-      node.declarations.forEach(function (declaration) {
-        declarePattern(declaration.id, parent);
-      });
-    },
-    'FunctionDeclaration': function (node, parents) {
-      var parent = null;
-      for (var i = parents.length - 2; i >= 0 && parent === null; i--) {
-        if (isScope(parents[i])) {
-          parent = parents[i];
-        }
-      }
-      parent.locals = parent.locals || {};
-      parent.locals[node.id.name] = true;
-      declareFunction(node);
-    },
-    'Function': declareFunction,
-    'ClassDeclaration': function (node, parents) {
-      var parent = null;
-      for (var i = parents.length - 2; i >= 0 && parent === null; i--) {
-        if (isScope(parents[i])) {
-          parent = parents[i];
-        }
-      }
-      parent.locals = parent.locals || {};
-      parent.locals[node.id.name] = true;
-    },
-    'TryStatement': function (node) {
-      if (node.handler === null) return;
-      node.handler.body.locals = node.handler.body.locals || {};
-      node.handler.body.locals[node.handler.param.name] = true;
-    },
-    'ImportDefaultSpecifier': declareModuleSpecifier,
-    'ImportSpecifier': declareModuleSpecifier,
-    'ImportNamespaceSpecifier': declareModuleSpecifier
-  });
-  function identifier(node, parents) {
-    var name = node.name;
-    if (name === 'undefined') return;
-    for (var i = 0; i < parents.length; i++) {
-      if (name === 'arguments' && declaresArguments(parents[i])) {
-        return;
-      }
-      if (parents[i].locals && name in parents[i].locals) {
-        return;
-      }
-    }
-    if (
-      parents[parents.length - 2] &&
-      parents[parents.length - 2].type === 'TryStatement' &&
-      parents[parents.length - 2].handler &&
-      node === parents[parents.length - 2].handler.param
-    ) {
-      return;
-    }
-    node.parents = parents;
-    globals.push(node);
-  }
-  walk.ancestor(ast, {
-    'VariablePattern': identifier,
-    'Identifier': identifier,
-    'ThisExpression': function (node, parents) {
-      for (var i = 0; i < parents.length; i++) {
-        if (declaresThis(parents[i])) {
-          return;
-        }
-      }
-      node.parents = parents;
-      globals.push(node);
-    }
-  });
-  var groupedGlobals = {};
-  globals.forEach(function (node) {
-    groupedGlobals[node.name] = (groupedGlobals[node.name] || []);
-    groupedGlobals[node.name].push(node);
-  });
-  return Object.keys(groupedGlobals).sort().map(function (name) {
-    return {name: name, nodes: groupedGlobals[name]};
-  });
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn-globals/package.json
----------------------------------------------------------------------
diff --git a/node_modules/acorn-globals/package.json b/node_modules/acorn-globals/package.json
deleted file mode 100644
index 9735f67..0000000
--- a/node_modules/acorn-globals/package.json
+++ /dev/null
@@ -1,101 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "acorn-globals@^1.0.4",
-        "scope": null,
-        "escapedName": "acorn-globals",
-        "name": "acorn-globals",
-        "rawSpec": "^1.0.4",
-        "spec": ">=1.0.4 <2.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/jsdom"
-    ]
-  ],
-  "_from": "acorn-globals@>=1.0.4 <2.0.0",
-  "_id": "acorn-globals@1.0.9",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/acorn-globals",
-  "_nodeVersion": "1.6.2",
-  "_npmUser": {
-    "name": "forbeslindesay",
-    "email": "forbes@lindesay.co.uk"
-  },
-  "_npmVersion": "2.7.1",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "acorn-globals@^1.0.4",
-    "scope": null,
-    "escapedName": "acorn-globals",
-    "name": "acorn-globals",
-    "rawSpec": "^1.0.4",
-    "spec": ">=1.0.4 <2.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/jsdom"
-  ],
-  "_resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz",
-  "_shasum": "55bb5e98691507b74579d0513413217c380c54cf",
-  "_shrinkwrap": null,
-  "_spec": "acorn-globals@^1.0.4",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/jsdom",
-  "author": {
-    "name": "ForbesLindesay"
-  },
-  "bugs": {
-    "url": "https://github.com/ForbesLindesay/acorn-globals/issues"
-  },
-  "dependencies": {
-    "acorn": "^2.1.0"
-  },
-  "description": "Detect global variables in JavaScript using acorn",
-  "devDependencies": {
-    "testit": "^2.0.2"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "55bb5e98691507b74579d0513413217c380c54cf",
-    "tarball": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz"
-  },
-  "files": [
-    "index.js",
-    "LICENSE"
-  ],
-  "gitHead": "808cab09764b63679138b012602ca1bb51657f97",
-  "homepage": "https://github.com/ForbesLindesay/acorn-globals",
-  "keywords": [
-    "ast",
-    "variable",
-    "name",
-    "lexical",
-    "scope",
-    "local",
-    "global",
-    "implicit"
-  ],
-  "license": "MIT",
-  "maintainers": [
-    {
-      "name": "forbeslindesay",
-      "email": "forbes@lindesay.co.uk"
-    },
-    {
-      "name": "timothygu",
-      "email": "timothygu99@gmail.com"
-    }
-  ],
-  "name": "acorn-globals",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/ForbesLindesay/acorn-globals.git"
-  },
-  "scripts": {
-    "test": "node test"
-  },
-  "version": "1.0.9"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/.editorconfig
----------------------------------------------------------------------
diff --git a/node_modules/acorn/.editorconfig b/node_modules/acorn/.editorconfig
deleted file mode 100644
index c14d5c6..0000000
--- a/node_modules/acorn/.editorconfig
+++ /dev/null
@@ -1,7 +0,0 @@
-root = true
-
-[*]
-indent_style = space
-indent_size = 2
-end_of_line = lf
-insert_final_newline = true

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/.gitattributes
----------------------------------------------------------------------
diff --git a/node_modules/acorn/.gitattributes b/node_modules/acorn/.gitattributes
deleted file mode 100644
index fcadb2c..0000000
--- a/node_modules/acorn/.gitattributes
+++ /dev/null
@@ -1 +0,0 @@
-* text eol=lf

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/.npmignore
----------------------------------------------------------------------
diff --git a/node_modules/acorn/.npmignore b/node_modules/acorn/.npmignore
deleted file mode 100644
index ecba291..0000000
--- a/node_modules/acorn/.npmignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/.tern-port
-/test
-/local

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/.tern-project
----------------------------------------------------------------------
diff --git a/node_modules/acorn/.tern-project b/node_modules/acorn/.tern-project
deleted file mode 100644
index 6718ce0..0000000
--- a/node_modules/acorn/.tern-project
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "plugins": {
-    "node": true,
-    "es_modules": true
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/.travis.yml
----------------------------------------------------------------------
diff --git a/node_modules/acorn/.travis.yml b/node_modules/acorn/.travis.yml
deleted file mode 100644
index f50c379..0000000
--- a/node_modules/acorn/.travis.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-language: node_js
-sudo: false
-node_js:
-  - '0.10'
-  - '0.12'
-  - '4'

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/AUTHORS
----------------------------------------------------------------------
diff --git a/node_modules/acorn/AUTHORS b/node_modules/acorn/AUTHORS
deleted file mode 100644
index 0e8f48b..0000000
--- a/node_modules/acorn/AUTHORS
+++ /dev/null
@@ -1,43 +0,0 @@
-List of Acorn contributors. Updated before every release.
-
-Adrian Rakovsky
-Alistair Braidwood
-Andres Suarez
-Aparajita Fishman
-Arian Stolwijk
-Artem Govorov
-Brandon Mills
-Charles Hughes
-Conrad Irwin
-David Bonnet
-ForbesLindesay
-Forbes Lindesay
-Gilad Peleg
-impinball
-Ingvar Stepanyan
-Jesse McCarthy
-Jiaxing Wang
-Joel Kemp
-Johannes Herr
-Jürg Lehni
-keeyipchan
-Kevin Kwok
-krator
-Marijn Haverbeke
-Martin Carlberg
-Mathias Bynens
-Mathieu 'p01' Henri
-Max Schaefer
-Max Zerzouri
-Mihai Bazon
-Mike Rennie
-Nick Fitzgerald
-Oskar Schöldström
-Paul Harper
-Peter Rust
-PlNG
-r-e-d
-Rich Harris
-Sebastian McKenzie
-Timothy Gu
-zsjforcn

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/acorn/LICENSE b/node_modules/acorn/LICENSE
deleted file mode 100644
index d4c7fc5..0000000
--- a/node_modules/acorn/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (C) 2012-2014 by various contributors (see AUTHORS)
-
-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.


[19/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/util.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/util.js b/node_modules/bluebird/js/release/util.js
deleted file mode 100644
index 84c28ec..0000000
--- a/node_modules/bluebird/js/release/util.js
+++ /dev/null
@@ -1,379 +0,0 @@
-"use strict";
-var es5 = require("./es5");
-var canEvaluate = typeof navigator == "undefined";
-
-var errorObj = {e: {}};
-var tryCatchTarget;
-var globalObject = typeof self !== "undefined" ? self :
-    typeof window !== "undefined" ? window :
-    typeof global !== "undefined" ? global :
-    this !== undefined ? this : null;
-
-function tryCatcher() {
-    try {
-        var target = tryCatchTarget;
-        tryCatchTarget = null;
-        return target.apply(this, arguments);
-    } catch (e) {
-        errorObj.e = e;
-        return errorObj;
-    }
-}
-function tryCatch(fn) {
-    tryCatchTarget = fn;
-    return tryCatcher;
-}
-
-var inherits = function(Child, Parent) {
-    var hasProp = {}.hasOwnProperty;
-
-    function T() {
-        this.constructor = Child;
-        this.constructor$ = Parent;
-        for (var propertyName in Parent.prototype) {
-            if (hasProp.call(Parent.prototype, propertyName) &&
-                propertyName.charAt(propertyName.length-1) !== "$"
-           ) {
-                this[propertyName + "$"] = Parent.prototype[propertyName];
-            }
-        }
-    }
-    T.prototype = Parent.prototype;
-    Child.prototype = new T();
-    return Child.prototype;
-};
-
-
-function isPrimitive(val) {
-    return val == null || val === true || val === false ||
-        typeof val === "string" || typeof val === "number";
-
-}
-
-function isObject(value) {
-    return typeof value === "function" ||
-           typeof value === "object" && value !== null;
-}
-
-function maybeWrapAsError(maybeError) {
-    if (!isPrimitive(maybeError)) return maybeError;
-
-    return new Error(safeToString(maybeError));
-}
-
-function withAppended(target, appendee) {
-    var len = target.length;
-    var ret = new Array(len + 1);
-    var i;
-    for (i = 0; i < len; ++i) {
-        ret[i] = target[i];
-    }
-    ret[i] = appendee;
-    return ret;
-}
-
-function getDataPropertyOrDefault(obj, key, defaultValue) {
-    if (es5.isES5) {
-        var desc = Object.getOwnPropertyDescriptor(obj, key);
-
-        if (desc != null) {
-            return desc.get == null && desc.set == null
-                    ? desc.value
-                    : defaultValue;
-        }
-    } else {
-        return {}.hasOwnProperty.call(obj, key) ? obj[key] : undefined;
-    }
-}
-
-function notEnumerableProp(obj, name, value) {
-    if (isPrimitive(obj)) return obj;
-    var descriptor = {
-        value: value,
-        configurable: true,
-        enumerable: false,
-        writable: true
-    };
-    es5.defineProperty(obj, name, descriptor);
-    return obj;
-}
-
-function thrower(r) {
-    throw r;
-}
-
-var inheritedDataKeys = (function() {
-    var excludedPrototypes = [
-        Array.prototype,
-        Object.prototype,
-        Function.prototype
-    ];
-
-    var isExcludedProto = function(val) {
-        for (var i = 0; i < excludedPrototypes.length; ++i) {
-            if (excludedPrototypes[i] === val) {
-                return true;
-            }
-        }
-        return false;
-    };
-
-    if (es5.isES5) {
-        var getKeys = Object.getOwnPropertyNames;
-        return function(obj) {
-            var ret = [];
-            var visitedKeys = Object.create(null);
-            while (obj != null && !isExcludedProto(obj)) {
-                var keys;
-                try {
-                    keys = getKeys(obj);
-                } catch (e) {
-                    return ret;
-                }
-                for (var i = 0; i < keys.length; ++i) {
-                    var key = keys[i];
-                    if (visitedKeys[key]) continue;
-                    visitedKeys[key] = true;
-                    var desc = Object.getOwnPropertyDescriptor(obj, key);
-                    if (desc != null && desc.get == null && desc.set == null) {
-                        ret.push(key);
-                    }
-                }
-                obj = es5.getPrototypeOf(obj);
-            }
-            return ret;
-        };
-    } else {
-        var hasProp = {}.hasOwnProperty;
-        return function(obj) {
-            if (isExcludedProto(obj)) return [];
-            var ret = [];
-
-            /*jshint forin:false */
-            enumeration: for (var key in obj) {
-                if (hasProp.call(obj, key)) {
-                    ret.push(key);
-                } else {
-                    for (var i = 0; i < excludedPrototypes.length; ++i) {
-                        if (hasProp.call(excludedPrototypes[i], key)) {
-                            continue enumeration;
-                        }
-                    }
-                    ret.push(key);
-                }
-            }
-            return ret;
-        };
-    }
-
-})();
-
-var thisAssignmentPattern = /this\s*\.\s*\S+\s*=/;
-function isClass(fn) {
-    try {
-        if (typeof fn === "function") {
-            var keys = es5.names(fn.prototype);
-
-            var hasMethods = es5.isES5 && keys.length > 1;
-            var hasMethodsOtherThanConstructor = keys.length > 0 &&
-                !(keys.length === 1 && keys[0] === "constructor");
-            var hasThisAssignmentAndStaticMethods =
-                thisAssignmentPattern.test(fn + "") && es5.names(fn).length > 0;
-
-            if (hasMethods || hasMethodsOtherThanConstructor ||
-                hasThisAssignmentAndStaticMethods) {
-                return true;
-            }
-        }
-        return false;
-    } catch (e) {
-        return false;
-    }
-}
-
-function toFastProperties(obj) {
-    /*jshint -W027,-W055,-W031*/
-    function FakeConstructor() {}
-    FakeConstructor.prototype = obj;
-    var l = 8;
-    while (l--) new FakeConstructor();
-    return obj;
-    eval(obj);
-}
-
-var rident = /^[a-z$_][a-z$_0-9]*$/i;
-function isIdentifier(str) {
-    return rident.test(str);
-}
-
-function filledRange(count, prefix, suffix) {
-    var ret = new Array(count);
-    for(var i = 0; i < count; ++i) {
-        ret[i] = prefix + i + suffix;
-    }
-    return ret;
-}
-
-function safeToString(obj) {
-    try {
-        return obj + "";
-    } catch (e) {
-        return "[no string representation]";
-    }
-}
-
-function isError(obj) {
-    return obj !== null &&
-           typeof obj === "object" &&
-           typeof obj.message === "string" &&
-           typeof obj.name === "string";
-}
-
-function markAsOriginatingFromRejection(e) {
-    try {
-        notEnumerableProp(e, "isOperational", true);
-    }
-    catch(ignore) {}
-}
-
-function originatesFromRejection(e) {
-    if (e == null) return false;
-    return ((e instanceof Error["__BluebirdErrorTypes__"].OperationalError) ||
-        e["isOperational"] === true);
-}
-
-function canAttachTrace(obj) {
-    return isError(obj) && es5.propertyIsWritable(obj, "stack");
-}
-
-var ensureErrorObject = (function() {
-    if (!("stack" in new Error())) {
-        return function(value) {
-            if (canAttachTrace(value)) return value;
-            try {throw new Error(safeToString(value));}
-            catch(err) {return err;}
-        };
-    } else {
-        return function(value) {
-            if (canAttachTrace(value)) return value;
-            return new Error(safeToString(value));
-        };
-    }
-})();
-
-function classString(obj) {
-    return {}.toString.call(obj);
-}
-
-function copyDescriptors(from, to, filter) {
-    var keys = es5.names(from);
-    for (var i = 0; i < keys.length; ++i) {
-        var key = keys[i];
-        if (filter(key)) {
-            try {
-                es5.defineProperty(to, key, es5.getDescriptor(from, key));
-            } catch (ignore) {}
-        }
-    }
-}
-
-var asArray = function(v) {
-    if (es5.isArray(v)) {
-        return v;
-    }
-    return null;
-};
-
-if (typeof Symbol !== "undefined" && Symbol.iterator) {
-    var ArrayFrom = typeof Array.from === "function" ? function(v) {
-        return Array.from(v);
-    } : function(v) {
-        var ret = [];
-        var it = v[Symbol.iterator]();
-        var itResult;
-        while (!((itResult = it.next()).done)) {
-            ret.push(itResult.value);
-        }
-        return ret;
-    };
-
-    asArray = function(v) {
-        if (es5.isArray(v)) {
-            return v;
-        } else if (v != null && typeof v[Symbol.iterator] === "function") {
-            return ArrayFrom(v);
-        }
-        return null;
-    };
-}
-
-var isNode = typeof process !== "undefined" &&
-        classString(process).toLowerCase() === "[object process]";
-
-var hasEnvVariables = typeof process !== "undefined" &&
-    typeof process.env !== "undefined";
-
-function env(key) {
-    return hasEnvVariables ? process.env[key] : undefined;
-}
-
-function getNativePromise() {
-    if (typeof Promise === "function") {
-        try {
-            var promise = new Promise(function(){});
-            if ({}.toString.call(promise) === "[object Promise]") {
-                return Promise;
-            }
-        } catch (e) {}
-    }
-}
-
-function domainBind(self, cb) {
-    return self.bind(cb);
-}
-
-var ret = {
-    isClass: isClass,
-    isIdentifier: isIdentifier,
-    inheritedDataKeys: inheritedDataKeys,
-    getDataPropertyOrDefault: getDataPropertyOrDefault,
-    thrower: thrower,
-    isArray: es5.isArray,
-    asArray: asArray,
-    notEnumerableProp: notEnumerableProp,
-    isPrimitive: isPrimitive,
-    isObject: isObject,
-    isError: isError,
-    canEvaluate: canEvaluate,
-    errorObj: errorObj,
-    tryCatch: tryCatch,
-    inherits: inherits,
-    withAppended: withAppended,
-    maybeWrapAsError: maybeWrapAsError,
-    toFastProperties: toFastProperties,
-    filledRange: filledRange,
-    toString: safeToString,
-    canAttachTrace: canAttachTrace,
-    ensureErrorObject: ensureErrorObject,
-    originatesFromRejection: originatesFromRejection,
-    markAsOriginatingFromRejection: markAsOriginatingFromRejection,
-    classString: classString,
-    copyDescriptors: copyDescriptors,
-    hasDevTools: typeof chrome !== "undefined" && chrome &&
-                 typeof chrome.loadTimes === "function",
-    isNode: isNode,
-    hasEnvVariables: hasEnvVariables,
-    env: env,
-    global: globalObject,
-    getNativePromise: getNativePromise,
-    domainBind: domainBind
-};
-ret.isRecentNode = ret.isNode && (function() {
-    var version = process.versions.node.split(".").map(Number);
-    return (version[0] === 0 && version[1] > 10) || (version[0] > 0);
-})();
-
-if (ret.isNode) ret.toFastProperties(process);
-
-try {throw new Error(); } catch (e) {ret.lastLineError = e;}
-module.exports = ret;

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/package.json
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/package.json b/node_modules/bluebird/package.json
deleted file mode 100644
index bb2f00a..0000000
--- a/node_modules/bluebird/package.json
+++ /dev/null
@@ -1,142 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "bluebird@^3.4.0",
-        "scope": null,
-        "escapedName": "bluebird",
-        "name": "bluebird",
-        "rawSpec": "^3.4.0",
-        "spec": ">=3.4.0 <4.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/hexo"
-    ]
-  ],
-  "_from": "bluebird@>=3.4.0 <4.0.0",
-  "_id": "bluebird@3.5.0",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/bluebird",
-  "_nodeVersion": "7.7.1",
-  "_npmOperationalInternal": {
-    "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/bluebird-3.5.0.tgz_1488577769162_0.549377566203475"
-  },
-  "_npmUser": {
-    "name": "esailija",
-    "email": "petka_antonov@hotmail.com"
-  },
-  "_npmVersion": "4.1.2",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "bluebird@^3.4.0",
-    "scope": null,
-    "escapedName": "bluebird",
-    "name": "bluebird",
-    "rawSpec": "^3.4.0",
-    "spec": ">=3.4.0 <4.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/hexo",
-    "/hexo-fs",
-    "/hexo-util",
-    "/hexo/hexo-cli",
-    "/warehouse"
-  ],
-  "_resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz",
-  "_shasum": "791420d7f551eea2897453a8a77653f96606d67c",
-  "_shrinkwrap": null,
-  "_spec": "bluebird@^3.4.0",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/hexo",
-  "author": {
-    "name": "Petka Antonov",
-    "email": "petka_antonov@hotmail.com",
-    "url": "http://github.com/petkaantonov/"
-  },
-  "browser": "./js/browser/bluebird.js",
-  "bugs": {
-    "url": "http://github.com/petkaantonov/bluebird/issues"
-  },
-  "dependencies": {},
-  "description": "Full featured Promises/A+ implementation with exceptionally good performance",
-  "devDependencies": {
-    "acorn": "~0.6.0",
-    "baconjs": "^0.7.43",
-    "bluebird": "^2.9.2",
-    "body-parser": "^1.10.2",
-    "browserify": "^8.1.1",
-    "cli-table": "~0.3.1",
-    "co": "^4.2.0",
-    "cross-spawn": "^0.2.3",
-    "glob": "^4.3.2",
-    "grunt-saucelabs": "~8.4.1",
-    "highland": "^2.3.0",
-    "istanbul": "^0.3.5",
-    "jshint": "^2.6.0",
-    "jshint-stylish": "~0.2.0",
-    "kefir": "^2.4.1",
-    "mkdirp": "~0.5.0",
-    "mocha": "~2.1",
-    "open": "~0.0.5",
-    "optimist": "~0.6.1",
-    "rimraf": "~2.2.6",
-    "rx": "^2.3.25",
-    "serve-static": "^1.7.1",
-    "sinon": "~1.7.3",
-    "uglify-js": "~2.4.16"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "791420d7f551eea2897453a8a77653f96606d67c",
-    "tarball": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz"
-  },
-  "files": [
-    "js/browser",
-    "js/release",
-    "LICENSE"
-  ],
-  "gitHead": "0b281e6caeec9c30b8de9a409b8ff1723f973f59",
-  "homepage": "https://github.com/petkaantonov/bluebird",
-  "keywords": [
-    "promise",
-    "performance",
-    "promises",
-    "promises-a",
-    "promises-aplus",
-    "async",
-    "await",
-    "deferred",
-    "deferreds",
-    "future",
-    "flow control",
-    "dsl",
-    "fluent interface"
-  ],
-  "license": "MIT",
-  "main": "./js/release/bluebird.js",
-  "maintainers": [
-    {
-      "name": "esailija",
-      "email": "petka_antonov@hotmail.com"
-    }
-  ],
-  "name": "bluebird",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/petkaantonov/bluebird.git"
-  },
-  "scripts": {
-    "generate-browser-core": "node tools/build.js --features=core --no-debug --release --zalgo --browser --minify && mv js/browser/bluebird.js js/browser/bluebird.core.js && mv js/browser/bluebird.min.js js/browser/bluebird.core.min.js",
-    "generate-browser-full": "node tools/build.js --no-clean --no-debug --release --browser --minify",
-    "istanbul": "istanbul",
-    "lint": "node scripts/jshint.js",
-    "prepublish": "npm run generate-browser-core && npm run generate-browser-full",
-    "test": "node tools/test.js"
-  },
-  "version": "3.5.0",
-  "webpack": "./js/release/bluebird.js"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/boolbase/README.md
----------------------------------------------------------------------
diff --git a/node_modules/boolbase/README.md b/node_modules/boolbase/README.md
deleted file mode 100644
index 85eefa5..0000000
--- a/node_modules/boolbase/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-#boolbase
-This very simple module provides two basic functions, one that always returns true (`trueFunc`) and one that always returns false (`falseFunc`).
-
-###WTF?
-
-By having only a single instance of these functions around, it's possible to do some nice optimizations. Eg. [`CSSselect`](https://github.com/fb55/CSSselect) uses these functions to determine whether a selector won't match any elements. If that's the case, the DOM doesn't even have to be touched.
-
-###And why is this a separate module?
-
-I'm trying to modularize `CSSselect` and most modules depend on these functions. IMHO, having a separate module is the easiest solution to this problem.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/boolbase/index.js
----------------------------------------------------------------------
diff --git a/node_modules/boolbase/index.js b/node_modules/boolbase/index.js
deleted file mode 100644
index 8799fd9..0000000
--- a/node_modules/boolbase/index.js
+++ /dev/null
@@ -1,8 +0,0 @@
-module.exports = {
-	trueFunc: function trueFunc(){
-		return true;
-	},
-	falseFunc: function falseFunc(){
-		return false;
-	}
-};
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/boolbase/package.json
----------------------------------------------------------------------
diff --git a/node_modules/boolbase/package.json b/node_modules/boolbase/package.json
deleted file mode 100644
index 78027aa..0000000
--- a/node_modules/boolbase/package.json
+++ /dev/null
@@ -1,84 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "boolbase@~1.0.0",
-        "scope": null,
-        "escapedName": "boolbase",
-        "name": "boolbase",
-        "rawSpec": "~1.0.0",
-        "spec": ">=1.0.0 <1.1.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/css-select"
-    ]
-  ],
-  "_from": "boolbase@>=1.0.0 <1.1.0",
-  "_id": "boolbase@1.0.0",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/boolbase",
-  "_npmUser": {
-    "name": "feedic",
-    "email": "me@feedic.com"
-  },
-  "_npmVersion": "1.4.2",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "boolbase@~1.0.0",
-    "scope": null,
-    "escapedName": "boolbase",
-    "name": "boolbase",
-    "rawSpec": "~1.0.0",
-    "spec": ">=1.0.0 <1.1.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/css-select",
-    "/nth-check"
-  ],
-  "_resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
-  "_shasum": "68dff5fbe60c51eb37725ea9e3ed310dcc1e776e",
-  "_shrinkwrap": null,
-  "_spec": "boolbase@~1.0.0",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/css-select",
-  "author": {
-    "name": "Felix Boehm",
-    "email": "me@feedic.com"
-  },
-  "bugs": {
-    "url": "https://github.com/fb55/boolbase/issues"
-  },
-  "dependencies": {},
-  "description": "two functions: One that returns true, one that returns false",
-  "devDependencies": {},
-  "directories": {},
-  "dist": {
-    "shasum": "68dff5fbe60c51eb37725ea9e3ed310dcc1e776e",
-    "tarball": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz"
-  },
-  "homepage": "https://github.com/fb55/boolbase",
-  "keywords": [
-    "boolean",
-    "function"
-  ],
-  "license": "ISC",
-  "main": "index.js",
-  "maintainers": [
-    {
-      "name": "feedic",
-      "email": "me@feedic.com"
-    }
-  ],
-  "name": "boolbase",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/fb55/boolbase.git"
-  },
-  "scripts": {
-    "test": "echo \"Error: no test specified\" && exit 1"
-  },
-  "version": "1.0.0"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/boom/.npmignore
----------------------------------------------------------------------
diff --git a/node_modules/boom/.npmignore b/node_modules/boom/.npmignore
deleted file mode 100644
index 77ba16c..0000000
--- a/node_modules/boom/.npmignore
+++ /dev/null
@@ -1,18 +0,0 @@
-.idea
-*.iml
-npm-debug.log
-dump.rdb
-node_modules
-results.tap
-results.xml
-npm-shrinkwrap.json
-config.json
-.DS_Store
-*/.DS_Store
-*/*/.DS_Store
-._*
-*/._*
-*/*/._*
-coverage.*
-lib-cov
-

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/boom/.travis.yml
----------------------------------------------------------------------
diff --git a/node_modules/boom/.travis.yml b/node_modules/boom/.travis.yml
deleted file mode 100755
index dd1b24f..0000000
--- a/node_modules/boom/.travis.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-language: node_js
-
-node_js:
-  - 0.10
-  - 4.0
-
-sudo: false
-

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/boom/CONTRIBUTING.md
----------------------------------------------------------------------
diff --git a/node_modules/boom/CONTRIBUTING.md b/node_modules/boom/CONTRIBUTING.md
deleted file mode 100644
index 8928361..0000000
--- a/node_modules/boom/CONTRIBUTING.md
+++ /dev/null
@@ -1 +0,0 @@
-Please view our [hapijs contributing guide](https://github.com/hapijs/hapi/blob/master/CONTRIBUTING.md).

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/boom/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/boom/LICENSE b/node_modules/boom/LICENSE
deleted file mode 100755
index 3946889..0000000
--- a/node_modules/boom/LICENSE
+++ /dev/null
@@ -1,28 +0,0 @@
-Copyright (c) 2012-2014, Walmart and other contributors.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-    * The names of any contributors may not be used to endorse or promote
-      products derived from this software without specific prior written
-      permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-                                  *   *   *
-
-The complete list of contributors can be found at: https://github.com/hapijs/boom/graphs/contributors
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/boom/README.md
----------------------------------------------------------------------
diff --git a/node_modules/boom/README.md b/node_modules/boom/README.md
deleted file mode 100755
index cbd91c9..0000000
--- a/node_modules/boom/README.md
+++ /dev/null
@@ -1,652 +0,0 @@
-![boom Logo](https://raw.github.com/hapijs/boom/master/images/boom.png)
-
-HTTP-friendly error objects
-
-[![Build Status](https://secure.travis-ci.org/hapijs/boom.png)](http://travis-ci.org/hapijs/boom)
-[![Current Version](https://img.shields.io/npm/v/boom.svg)](https://www.npmjs.com/package/boom)
-
-Lead Maintainer: [Adam Bretz](https://github.com/arb)
-
-**boom** provides a set of utilities for returning HTTP errors. Each utility returns a `Boom` error response
-object (instance of `Error`) which includes the following properties:
-- `isBoom` - if `true`, indicates this is a `Boom` object instance.
-- `isServer` - convenience bool indicating status code >= 500.
-- `message` - the error message.
-- `output` - the formatted response. Can be directly manipulated after object construction to return a custom
-  error response. Allowed root keys:
-    - `statusCode` - the HTTP status code (typically 4xx or 5xx).
-    - `headers` - an object containing any HTTP headers where each key is a header name and value is the header content.
-    - `payload` - the formatted object used as the response payload (stringified). Can be directly manipulated but any
-      changes will be lost
-      if `reformat()` is called. Any content allowed and by default includes the following content:
-        - `statusCode` - the HTTP status code, derived from `error.output.statusCode`.
-        - `error` - the HTTP status message (e.g. 'Bad Request', 'Internal Server Error') derived from `statusCode`.
-        - `message` - the error message derived from `error.message`.
-- inherited `Error` properties.
-
-The `Boom` object also supports the following method:
-- `reformat()` - rebuilds `error.output` using the other object properties.
-
-## Overview
-
-- Helper methods
-  - [`wrap(error, [statusCode], [message])`](#wraperror-statuscode-message)
-  - [`create(statusCode, [message], [data])`](#createstatuscode-message-data)
-- HTTP 4xx Errors
-  - 400: [`Boom.badRequest([message], [data])`](#boombadrequestmessage-data)
-  - 401: [`Boom.unauthorized([message], [scheme], [attributes])`](#boomunauthorizedmessage-scheme-attributes)
-  - 403: [`Boom.forbidden([message], [data])`](#boomforbiddenmessage-data)
-  - 404: [`Boom.notFound([message], [data])`](#boomnotfoundmessage-data)
-  - 405: [`Boom.methodNotAllowed([message], [data])`](#boommethodnotallowedmessage-data)
-  - 406: [`Boom.notAcceptable([message], [data])`](#boomnotacceptablemessage-data)
-  - 407: [`Boom.proxyAuthRequired([message], [data])`](#boomproxyauthrequiredmessage-data)
-  - 408: [`Boom.clientTimeout([message], [data])`](#boomclienttimeoutmessage-data)
-  - 409: [`Boom.conflict([message], [data])`](#boomconflictmessage-data)
-  - 410: [`Boom.resourceGone([message], [data])`](#boomresourcegonemessage-data)
-  - 411: [`Boom.lengthRequired([message], [data])`](#boomlengthrequiredmessage-data)
-  - 412: [`Boom.preconditionFailed([message], [data])`](#boompreconditionfailedmessage-data)
-  - 413: [`Boom.entityTooLarge([message], [data])`](#boomentitytoolargemessage-data)
-  - 414: [`Boom.uriTooLong([message], [data])`](#boomuritoolongmessage-data)
-  - 415: [`Boom.unsupportedMediaType([message], [data])`](#boomunsupportedmediatypemessage-data)
-  - 416: [`Boom.rangeNotSatisfiable([message], [data])`](#boomrangenotsatisfiablemessage-data)
-  - 417: [`Boom.expectationFailed([message], [data])`](#boomexpectationfailedmessage-data)
-  - 422: [`Boom.badData([message], [data])`](#boombaddatamessage-data)
-  - 428: [`Boom.preconditionRequired([message], [data])`](#boompreconditionrequiredmessage-data)
-  - 429: [`Boom.tooManyRequests([message], [data])`](#boomtoomanyrequestsmessage-data)
-- HTTP 5xx Errors
-  - 500: [`Boom.badImplementation([message], [data])`](#boombadimplementationmessage-data)
-  - 501: [`Boom.notImplemented([message], [data])`](#boomnotimplementedmessage-data)
-  - 502: [`Boom.badGateway([message], [data])`](#boombadgatewaymessage-data)
-  - 503: [`Boom.serverTimeout([message], [data])`](#boomservertimeoutmessage-data)
-  - 504: [`Boom.gatewayTimeout([message], [data])`](#boomgatewaytimeoutmessage-data)
-- [FAQ](#faq)
-
-
-## Helper Methods
-
-### `wrap(error, [statusCode], [message])`
-
-Decorates an error with the **boom** properties where:
-- `error` - the error object to wrap. If `error` is already a **boom** object, returns back the same object.
-- `statusCode` - optional HTTP status code. Defaults to `500`.
-- `message` - optional message string. If the error already has a message, it adds the message as a prefix.
-  Defaults to no message.
-
-```js
-var error = new Error('Unexpected input');
-Boom.wrap(error, 400);
-```
-
-### `create(statusCode, [message], [data])`
-
-Generates an `Error` object with the **boom** decorations where:
-- `statusCode` - an HTTP error code number. Must be greater or equal 400.
-- `message` - optional message string.
-- `data` - additional error data set to `error.data` property.
-
-```js
-var error = Boom.create(400, 'Bad request', { timestamp: Date.now() });
-```
-
-## HTTP 4xx Errors
-
-### `Boom.badRequest([message], [data])`
-
-Returns a 400 Bad Request error where:
-- `message` - optional message.
-- `data` - optional additional error data.
-
-```js
-Boom.badRequest('invalid query');
-```
-
-Generates the following response payload:
-
-```json
-{
-    "statusCode": 400,
-    "error": "Bad Request",
-    "message": "invalid query"
-}
-```
-
-### `Boom.unauthorized([message], [scheme], [attributes])`
-
-Returns a 401 Unauthorized error where:
-- `message` - optional message.
-- `scheme` can be one of the following:
-  - an authentication scheme name
-  - an array of string values. These values will be separated by ', ' and set to the 'WWW-Authenticate' header.
-- `attributes` - an object of values to use while setting the 'WWW-Authenticate' header. This value is only used
-  when `schema` is a string, otherwise it is ignored. Every key/value pair will be included in the
-  'WWW-Authenticate' in the format of 'key="value"' as well as in the response payload under the `attributes` key.
-  `null` and `undefined` will be replaced with an empty string. If `attributes` is set, `message` will be used as
-  the 'error' segment of the 'WWW-Authenticate' header. If `message` is unset, the 'error' segment of the header
-  will not be present and `isMissing` will be true on the error object.
-
-If either `scheme` or `attributes` are set, the resultant `Boom` object will have the 'WWW-Authenticate' header set for the response.
-
-```js
-Boom.unauthorized('invalid password');
-```
-
-Generates the following response:
-
-```json
-"payload": {
-    "statusCode": 401,
-    "error": "Unauthorized",
-    "message": "invalid password"
-},
-"headers" {}
-```
-
-```js
-Boom.unauthorized('invalid password', 'sample');
-```
-
-Generates the following response:
-
-```json
-"payload": {
-    "statusCode": 401,
-    "error": "Unauthorized",
-    "message": "invalid password",
-    "attributes": {
-        "error": "invalid password"
-    }
-},
-"headers" {
-  "WWW-Authenticate": "sample error=\"invalid password\""
-}
-```
-
-```js
-Boom.unauthorized('invalid password', 'sample', { ttl: 0, cache: null, foo: 'bar' });
-```
-
-Generates the following response:
-
-```json
-"payload": {
-    "statusCode": 401,
-    "error": "Unauthorized",
-    "message": "invalid password",
-    "attributes": {
-        "error": "invalid password",
-        "ttl": 0,
-        "cache": "",
-        "foo": "bar"
-    }
-},
-"headers" {
-  "WWW-Authenticate": "sample ttl=\"0\", cache=\"\", foo=\"bar\", error=\"invalid password\""
-}
-```
-
-### `Boom.forbidden([message], [data])`
-
-Returns a 403 Forbidden error where:
-- `message` - optional message.
-- `data` - optional additional error data.
-
-```js
-Boom.forbidden('try again some time');
-```
-
-Generates the following response payload:
-
-```json
-{
-    "statusCode": 403,
-    "error": "Forbidden",
-    "message": "try again some time"
-}
-```
-
-### `Boom.notFound([message], [data])`
-
-Returns a 404 Not Found error where:
-- `message` - optional message.
-- `data` - optional additional error data.
-
-```js
-Boom.notFound('missing');
-```
-
-Generates the following response payload:
-
-```json
-{
-    "statusCode": 404,
-    "error": "Not Found",
-    "message": "missing"
-}
-```
-
-### `Boom.methodNotAllowed([message], [data])`
-
-Returns a 405 Method Not Allowed error where:
-- `message` - optional message.
-- `data` - optional additional error data.
-
-```js
-Boom.methodNotAllowed('that method is not allowed');
-```
-
-Generates the following response payload:
-
-```json
-{
-    "statusCode": 405,
-    "error": "Method Not Allowed",
-    "message": "that method is not allowed"
-}
-```
-
-### `Boom.notAcceptable([message], [data])`
-
-Returns a 406 Not Acceptable error where:
-- `message` - optional message.
-- `data` - optional additional error data.
-
-```js
-Boom.notAcceptable('unacceptable');
-```
-
-Generates the following response payload:
-
-```json
-{
-    "statusCode": 406,
-    "error": "Not Acceptable",
-    "message": "unacceptable"
-}
-```
-
-### `Boom.proxyAuthRequired([message], [data])`
-
-Returns a 407 Proxy Authentication Required error where:
-- `message` - optional message.
-- `data` - optional additional error data.
-
-```js
-Boom.proxyAuthRequired('auth missing');
-```
-
-Generates the following response payload:
-
-```json
-{
-    "statusCode": 407,
-    "error": "Proxy Authentication Required",
-    "message": "auth missing"
-}
-```
-
-### `Boom.clientTimeout([message], [data])`
-
-Returns a 408 Request Time-out error where:
-- `message` - optional message.
-- `data` - optional additional error data.
-
-```js
-Boom.clientTimeout('timed out');
-```
-
-Generates the following response payload:
-
-```json
-{
-    "statusCode": 408,
-    "error": "Request Time-out",
-    "message": "timed out"
-}
-```
-
-### `Boom.conflict([message], [data])`
-
-Returns a 409 Conflict error where:
-- `message` - optional message.
-- `data` - optional additional error data.
-
-```js
-Boom.conflict('there was a conflict');
-```
-
-Generates the following response payload:
-
-```json
-{
-    "statusCode": 409,
-    "error": "Conflict",
-    "message": "there was a conflict"
-}
-```
-
-### `Boom.resourceGone([message], [data])`
-
-Returns a 410 Gone error where:
-- `message` - optional message.
-- `data` - optional additional error data.
-
-```js
-Boom.resourceGone('it is gone');
-```
-
-Generates the following response payload:
-
-```json
-{
-    "statusCode": 410,
-    "error": "Gone",
-    "message": "it is gone"
-}
-```
-
-### `Boom.lengthRequired([message], [data])`
-
-Returns a 411 Length Required error where:
-- `message` - optional message.
-- `data` - optional additional error data.
-
-```js
-Boom.lengthRequired('length needed');
-```
-
-Generates the following response payload:
-
-```json
-{
-    "statusCode": 411,
-    "error": "Length Required",
-    "message": "length needed"
-}
-```
-
-### `Boom.preconditionFailed([message], [data])`
-
-Returns a 412 Precondition Failed error where:
-- `message` - optional message.
-- `data` - optional additional error data.
-
-```js
-Boom.preconditionFailed();
-```
-
-Generates the following response payload:
-
-```json
-{
-    "statusCode": 412,
-    "error": "Precondition Failed"
-}
-```
-
-### `Boom.entityTooLarge([message], [data])`
-
-Returns a 413 Request Entity Too Large error where:
-- `message` - optional message.
-- `data` - optional additional error data.
-
-```js
-Boom.entityTooLarge('too big');
-```
-
-Generates the following response payload:
-
-```json
-{
-    "statusCode": 413,
-    "error": "Request Entity Too Large",
-    "message": "too big"
-}
-```
-
-### `Boom.uriTooLong([message], [data])`
-
-Returns a 414 Request-URI Too Large error where:
-- `message` - optional message.
-- `data` - optional additional error data.
-
-```js
-Boom.uriTooLong('uri is too long');
-```
-
-Generates the following response payload:
-
-```json
-{
-    "statusCode": 414,
-    "error": "Request-URI Too Large",
-    "message": "uri is too long"
-}
-```
-
-### `Boom.unsupportedMediaType([message], [data])`
-
-Returns a 415 Unsupported Media Type error where:
-- `message` - optional message.
-- `data` - optional additional error data.
-
-```js
-Boom.unsupportedMediaType('that media is not supported');
-```
-
-Generates the following response payload:
-
-```json
-{
-    "statusCode": 415,
-    "error": "Unsupported Media Type",
-    "message": "that media is not supported"
-}
-```
-
-### `Boom.rangeNotSatisfiable([message], [data])`
-
-Returns a 416 Requested Range Not Satisfiable error where:
-- `message` - optional message.
-- `data` - optional additional error data.
-
-```js
-Boom.rangeNotSatisfiable();
-```
-
-Generates the following response payload:
-
-```json
-{
-    "statusCode": 416,
-    "error": "Requested Range Not Satisfiable"
-}
-```
-
-### `Boom.expectationFailed([message], [data])`
-
-Returns a 417 Expectation Failed error where:
-- `message` - optional message.
-- `data` - optional additional error data.
-
-```js
-Boom.expectationFailed('expected this to work');
-```
-
-Generates the following response payload:
-
-```json
-{
-    "statusCode": 417,
-    "error": "Expectation Failed",
-    "message": "expected this to work"
-}
-```
-
-### `Boom.badData([message], [data])`
-
-Returns a 422 Unprocessable Entity error where:
-- `message` - optional message.
-- `data` - optional additional error data.
-
-```js
-Boom.badData('your data is bad and you should feel bad');
-```
-
-Generates the following response payload:
-
-```json
-{
-    "statusCode": 422,
-    "error": "Unprocessable Entity",
-    "message": "your data is bad and you should feel bad"
-}
-```
-
-### `Boom.preconditionRequired([message], [data])`
-
-Returns a 428 Precondition Required error where:
-- `message` - optional message.
-- `data` - optional additional error data.
-
-```js
-Boom.preconditionRequired('you must supply an If-Match header');
-```
-
-Generates the following response payload:
-
-```json
-{
-    "statusCode": 428,
-    "error": "Precondition Required",
-    "message": "you must supply an If-Match header"
-}
-```
-
-### `Boom.tooManyRequests([message], [data])`
-
-Returns a 429 Too Many Requests error where:
-- `message` - optional message.
-- `data` - optional additional error data.
-
-```js
-Boom.tooManyRequests('you have exceeded your request limit');
-```
-
-Generates the following response payload:
-
-```json
-{
-    "statusCode": 429,
-    "error": "Too Many Requests",
-    "message": "you have exceeded your request limit"
-}
-```
-
-## HTTP 5xx Errors
-
-All 500 errors hide your message from the end user. Your message is recorded in the server log.
-
-### `Boom.badImplementation([message], [data])`
-
-Returns a 500 Internal Server Error error where:
-- `message` - optional message.
-- `data` - optional additional error data.
-
-```js
-Boom.badImplementation('terrible implementation');
-```
-
-Generates the following response payload:
-
-```json
-{
-    "statusCode": 500,
-    "error": "Internal Server Error",
-    "message": "An internal server error occurred"
-}
-```
-
-### `Boom.notImplemented([message], [data])`
-
-Returns a 501 Not Implemented error where:
-- `message` - optional message.
-- `data` - optional additional error data.
-
-```js
-Boom.notImplemented('method not implemented');
-```
-
-Generates the following response payload:
-
-```json
-{
-    "statusCode": 501,
-    "error": "Not Implemented",
-    "message": "method not implemented"
-}
-```
-
-### `Boom.badGateway([message], [data])`
-
-Returns a 502 Bad Gateway error where:
-- `message` - optional message.
-- `data` - optional additional error data.
-
-```js
-Boom.badGateway('that is a bad gateway');
-```
-
-Generates the following response payload:
-
-```json
-{
-    "statusCode": 502,
-    "error": "Bad Gateway",
-    "message": "that is a bad gateway"
-}
-```
-
-### `Boom.serverTimeout([message], [data])`
-
-Returns a 503 Service Unavailable error where:
-- `message` - optional message.
-- `data` - optional additional error data.
-
-```js
-Boom.serverTimeout('unavailable');
-```
-
-Generates the following response payload:
-
-```json
-{
-    "statusCode": 503,
-    "error": "Service Unavailable",
-    "message": "unavailable"
-}
-```
-
-### `Boom.gatewayTimeout([message], [data])`
-
-Returns a 504 Gateway Time-out error where:
-- `message` - optional message.
-- `data` - optional additional error data.
-
-```js
-Boom.gatewayTimeout();
-```
-
-Generates the following response payload:
-
-```json
-{
-    "statusCode": 504,
-    "error": "Gateway Time-out"
-}
-```
-
-## F.A.Q.
-
-###### How do I include extra information in my responses? `output.payload` is missing `data`, what gives?
-
-There is a reason the values passed back in the response payloads are pretty locked down. It's mostly for security and to not leak any important information back to the client. This means you will need to put in a little more effort to include extra information about your custom error. Check out the ["Error transformation"](https://github.com/hapijs/hapi/blob/master/API.md#error-transformation) section in the hapi documentation.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/boom/images/boom.png
----------------------------------------------------------------------
diff --git a/node_modules/boom/images/boom.png b/node_modules/boom/images/boom.png
deleted file mode 100755
index 373bc13..0000000
Binary files a/node_modules/boom/images/boom.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/boom/lib/index.js
----------------------------------------------------------------------
diff --git a/node_modules/boom/lib/index.js b/node_modules/boom/lib/index.js
deleted file mode 100755
index 6bdea69..0000000
--- a/node_modules/boom/lib/index.js
+++ /dev/null
@@ -1,318 +0,0 @@
-// Load modules
-
-var Http = require('http');
-var Hoek = require('hoek');
-
-
-// Declare internals
-
-var internals = {};
-
-exports.wrap = function (error, statusCode, message) {
-
-    Hoek.assert(error instanceof Error, 'Cannot wrap non-Error object');
-    return (error.isBoom ? error : internals.initialize(error, statusCode || 500, message));
-};
-
-
-exports.create = function (statusCode, message, data) {
-
-    return internals.create(statusCode, message, data, exports.create);
-};
-
-internals.create = function (statusCode, message, data, ctor) {
-
-    var error = new Error(message ? message : undefined);       // Avoids settings null message
-    Error.captureStackTrace(error, ctor);                       // Filter the stack to our external API
-    error.data = data || null;
-    internals.initialize(error, statusCode);
-    return error;
-};
-
-internals.initialize = function (error, statusCode, message) {
-
-    var numberCode = parseInt(statusCode, 10);
-    Hoek.assert(!isNaN(numberCode) && numberCode >= 400, 'First argument must be a number (400+):', statusCode);
-
-    error.isBoom = true;
-    error.isServer = numberCode >= 500;
-
-    if (!error.hasOwnProperty('data')) {
-        error.data = null;
-    }
-
-    error.output = {
-        statusCode: numberCode,
-        payload: {},
-        headers: {}
-    };
-
-    error.reformat = internals.reformat;
-    error.reformat();
-
-    if (!message &&
-        !error.message) {
-
-        message = error.output.payload.error;
-    }
-
-    if (message) {
-        error.message = (message + (error.message ? ': ' + error.message : ''));
-    }
-
-    return error;
-};
-
-
-internals.reformat = function () {
-
-    this.output.payload.statusCode = this.output.statusCode;
-    this.output.payload.error = Http.STATUS_CODES[this.output.statusCode] || 'Unknown';
-
-    if (this.output.statusCode === 500) {
-        this.output.payload.message = 'An internal server error occurred';              // Hide actual error from user
-    }
-    else if (this.message) {
-        this.output.payload.message = this.message;
-    }
-};
-
-
-// 4xx Client Errors
-
-exports.badRequest = function (message, data) {
-
-    return internals.create(400, message, data, exports.badRequest);
-};
-
-
-exports.unauthorized = function (message, scheme, attributes) {          // Or function (message, wwwAuthenticate[])
-
-    var err = internals.create(401, message, undefined, exports.unauthorized);
-
-    if (!scheme) {
-        return err;
-    }
-
-    var wwwAuthenticate = '';
-    var i = 0;
-    var il = 0;
-
-    if (typeof scheme === 'string') {
-
-        // function (message, scheme, attributes)
-
-        wwwAuthenticate = scheme;
-
-        if (attributes || message) {
-            err.output.payload.attributes = {};
-        }
-
-        if (attributes) {
-            var names = Object.keys(attributes);
-            for (i = 0, il = names.length; i < il; ++i) {
-                var name = names[i];
-                if (i) {
-                    wwwAuthenticate += ',';
-                }
-
-                var value = attributes[name];
-                if (value === null ||
-                    value === undefined) {              // Value can be zero
-
-                    value = '';
-                }
-                wwwAuthenticate += ' ' + name + '="' + Hoek.escapeHeaderAttribute(value.toString()) + '"';
-                err.output.payload.attributes[name] = value;
-            }
-        }
-
-        if (message) {
-            if (attributes) {
-                wwwAuthenticate += ',';
-            }
-            wwwAuthenticate += ' error="' + Hoek.escapeHeaderAttribute(message) + '"';
-            err.output.payload.attributes.error = message;
-        }
-        else {
-            err.isMissing = true;
-        }
-    }
-    else {
-
-        // function (message, wwwAuthenticate[])
-
-        var wwwArray = scheme;
-        for (i = 0, il = wwwArray.length; i < il; ++i) {
-            if (i) {
-                wwwAuthenticate += ', ';
-            }
-
-            wwwAuthenticate += wwwArray[i];
-        }
-    }
-
-    err.output.headers['WWW-Authenticate'] = wwwAuthenticate;
-
-    return err;
-};
-
-
-exports.forbidden = function (message, data) {
-
-    return internals.create(403, message, data, exports.forbidden);
-};
-
-
-exports.notFound = function (message, data) {
-
-    return internals.create(404, message, data, exports.notFound);
-};
-
-
-exports.methodNotAllowed = function (message, data) {
-
-    return internals.create(405, message, data, exports.methodNotAllowed);
-};
-
-
-exports.notAcceptable = function (message, data) {
-
-    return internals.create(406, message, data, exports.notAcceptable);
-};
-
-
-exports.proxyAuthRequired = function (message, data) {
-
-    return internals.create(407, message, data, exports.proxyAuthRequired);
-};
-
-
-exports.clientTimeout = function (message, data) {
-
-    return internals.create(408, message, data, exports.clientTimeout);
-};
-
-
-exports.conflict = function (message, data) {
-
-    return internals.create(409, message, data, exports.conflict);
-};
-
-
-exports.resourceGone = function (message, data) {
-
-    return internals.create(410, message, data, exports.resourceGone);
-};
-
-
-exports.lengthRequired = function (message, data) {
-
-    return internals.create(411, message, data, exports.lengthRequired);
-};
-
-
-exports.preconditionFailed = function (message, data) {
-
-    return internals.create(412, message, data, exports.preconditionFailed);
-};
-
-
-exports.entityTooLarge = function (message, data) {
-
-    return internals.create(413, message, data, exports.entityTooLarge);
-};
-
-
-exports.uriTooLong = function (message, data) {
-
-    return internals.create(414, message, data, exports.uriTooLong);
-};
-
-
-exports.unsupportedMediaType = function (message, data) {
-
-    return internals.create(415, message, data, exports.unsupportedMediaType);
-};
-
-
-exports.rangeNotSatisfiable = function (message, data) {
-
-    return internals.create(416, message, data, exports.rangeNotSatisfiable);
-};
-
-
-exports.expectationFailed = function (message, data) {
-
-    return internals.create(417, message, data, exports.expectationFailed);
-};
-
-exports.badData = function (message, data) {
-
-    return internals.create(422, message, data, exports.badData);
-};
-
-
-exports.preconditionRequired = function (message, data) {
-
-    return internals.create(428, message, data, exports.preconditionRequired);
-};
-
-
-exports.tooManyRequests = function (message, data) {
-
-    return internals.create(429, message, data, exports.tooManyRequests);
-};
-
-
-// 5xx Server Errors
-
-exports.internal = function (message, data, statusCode) {
-
-    return internals.serverError(message, data, statusCode, exports.internal);
-};
-
-internals.serverError = function (message, data, statusCode, ctor) {
-
-    var error;
-    if (data instanceof Error) {
-        error = exports.wrap(data, statusCode, message);
-    } else {
-        error = internals.create(statusCode || 500, message, undefined, ctor);
-        error.data = data;
-    }
-
-    return error;
-};
-
-
-exports.notImplemented = function (message, data) {
-
-    return internals.serverError(message, data, 501, exports.notImplemented);
-};
-
-
-exports.badGateway = function (message, data) {
-
-    return internals.serverError(message, data, 502, exports.badGateway);
-};
-
-
-exports.serverTimeout = function (message, data) {
-
-    return internals.serverError(message, data, 503, exports.serverTimeout);
-};
-
-
-exports.gatewayTimeout = function (message, data) {
-
-    return internals.serverError(message, data, 504, exports.gatewayTimeout);
-};
-
-
-exports.badImplementation = function (message, data) {
-
-    var err = internals.serverError(message, data, 500, exports.badImplementation);
-    err.isDeveloperError = true;
-    return err;
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/boom/package.json
----------------------------------------------------------------------
diff --git a/node_modules/boom/package.json b/node_modules/boom/package.json
deleted file mode 100644
index 0496067..0000000
--- a/node_modules/boom/package.json
+++ /dev/null
@@ -1,99 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "boom@2.x.x",
-        "scope": null,
-        "escapedName": "boom",
-        "name": "boom",
-        "rawSpec": "2.x.x",
-        "spec": ">=2.0.0 <3.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/hawk"
-    ]
-  ],
-  "_from": "boom@>=2.0.0 <3.0.0",
-  "_id": "boom@2.10.1",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/boom",
-  "_nodeVersion": "0.10.40",
-  "_npmUser": {
-    "name": "arb",
-    "email": "arbretz@gmail.com"
-  },
-  "_npmVersion": "2.11.1",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "boom@2.x.x",
-    "scope": null,
-    "escapedName": "boom",
-    "name": "boom",
-    "rawSpec": "2.x.x",
-    "spec": ">=2.0.0 <3.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/cryptiles",
-    "/hawk"
-  ],
-  "_resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
-  "_shasum": "39c8918ceff5799f83f9492a848f625add0c766f",
-  "_shrinkwrap": null,
-  "_spec": "boom@2.x.x",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/hawk",
-  "bugs": {
-    "url": "https://github.com/hapijs/boom/issues"
-  },
-  "dependencies": {
-    "hoek": "2.x.x"
-  },
-  "description": "HTTP-friendly error objects",
-  "devDependencies": {
-    "code": "1.x.x",
-    "lab": "7.x.x"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "39c8918ceff5799f83f9492a848f625add0c766f",
-    "tarball": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz"
-  },
-  "engines": {
-    "node": ">=0.10.40"
-  },
-  "gitHead": "ff1a662a86b39426cdd18f4441b112d307a34a6f",
-  "homepage": "https://github.com/hapijs/boom#readme",
-  "keywords": [
-    "error",
-    "http"
-  ],
-  "license": "BSD-3-Clause",
-  "main": "lib/index.js",
-  "maintainers": [
-    {
-      "name": "hueniverse",
-      "email": "eran@hueniverse.com"
-    },
-    {
-      "name": "wyatt",
-      "email": "wpreul@gmail.com"
-    },
-    {
-      "name": "arb",
-      "email": "arbretz@gmail.com"
-    }
-  ],
-  "name": "boom",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/hapijs/boom.git"
-  },
-  "scripts": {
-    "test": "lab -a code -t 100 -L",
-    "test-cov-html": "lab -a code -r html -o coverage.html -L"
-  },
-  "version": "2.10.1"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/boom/test/index.js
----------------------------------------------------------------------
diff --git a/node_modules/boom/test/index.js b/node_modules/boom/test/index.js
deleted file mode 100755
index 79a59e9..0000000
--- a/node_modules/boom/test/index.js
+++ /dev/null
@@ -1,654 +0,0 @@
-// Load modules
-
-var Code = require('code');
-var Boom = require('../lib');
-var Lab = require('lab');
-
-
-// Declare internals
-
-var internals = {};
-
-
-// Test shortcuts
-
-var lab = exports.lab = Lab.script();
-var describe = lab.describe;
-var it = lab.it;
-var expect = Code.expect;
-
-
-it('returns the same object when already boom', function (done) {
-
-    var error = Boom.badRequest();
-    var wrapped = Boom.wrap(error);
-    expect(error).to.equal(wrapped);
-    done();
-});
-
-it('returns an error with info when constructed using another error', function (done) {
-
-    var error = new Error('ka-boom');
-    error.xyz = 123;
-    var err = Boom.wrap(error);
-    expect(err.xyz).to.equal(123);
-    expect(err.message).to.equal('ka-boom');
-    expect(err.output).to.deep.equal({
-        statusCode: 500,
-        payload: {
-            statusCode: 500,
-            error: 'Internal Server Error',
-            message: 'An internal server error occurred'
-        },
-        headers: {}
-    });
-    expect(err.data).to.equal(null);
-    done();
-});
-
-it('does not override data when constructed using another error', function (done) {
-
-    var error = new Error('ka-boom');
-    error.data = { useful: 'data' };
-    var err = Boom.wrap(error);
-    expect(err.data).to.equal(error.data);
-    done();
-});
-
-it('sets new message when none exists', function (done) {
-
-    var error = new Error();
-    var wrapped = Boom.wrap(error, 400, 'something bad');
-    expect(wrapped.message).to.equal('something bad');
-    done();
-});
-
-it('throws when statusCode is not a number', function (done) {
-
-    expect(function () {
-
-        Boom.create('x');
-    }).to.throw('First argument must be a number (400+): x');
-    done();
-});
-
-it('will cast a number-string to an integer', function (done) {
-
-    var codes = [
-        { input: '404', result: 404 },
-        { input: '404.1', result: 404 },
-        { input: 400, result: 400 },
-        { input: 400.123, result: 400 }];
-    for (var i = 0, il = codes.length; i < il; ++i) {
-        var code = codes[i];
-        var err = Boom.create(code.input);
-        expect(err.output.statusCode).to.equal(code.result);
-    }
-
-    done();
-});
-
-it('throws when statusCode is not finite', function (done) {
-
-    expect(function () {
-
-        Boom.create(1 / 0);
-    }).to.throw('First argument must be a number (400+): null');
-    done();
-});
-
-it('sets error code to unknown', function (done) {
-
-    var err = Boom.create(999);
-    expect(err.output.payload.error).to.equal('Unknown');
-    done();
-});
-
-describe('create()', function () {
-
-    it('does not sets null message', function (done) {
-
-        var error = Boom.unauthorized(null);
-        expect(error.output.payload.message).to.not.exist();
-        expect(error.isServer).to.be.false();
-        done();
-    });
-
-    it('sets message and data', function (done) {
-
-        var error = Boom.badRequest('Missing data', { type: 'user' });
-        expect(error.data.type).to.equal('user');
-        expect(error.output.payload.message).to.equal('Missing data');
-        done();
-    });
-});
-
-describe('isBoom()', function () {
-
-    it('returns true for Boom object', function (done) {
-
-        expect(Boom.badRequest().isBoom).to.equal(true);
-        done();
-    });
-
-    it('returns false for Error object', function (done) {
-
-        expect((new Error()).isBoom).to.not.exist();
-        done();
-    });
-});
-
-describe('badRequest()', function () {
-
-    it('returns a 400 error statusCode', function (done) {
-
-        var error = Boom.badRequest();
-
-        expect(error.output.statusCode).to.equal(400);
-        expect(error.isServer).to.be.false();
-        done();
-    });
-
-    it('sets the message with the passed in message', function (done) {
-
-        expect(Boom.badRequest('my message').message).to.equal('my message');
-        done();
-    });
-
-    it('sets the message to HTTP status if none provided', function (done) {
-
-        expect(Boom.badRequest().message).to.equal('Bad Request');
-        done();
-    });
-});
-
-describe('unauthorized()', function () {
-
-    it('returns a 401 error statusCode', function (done) {
-
-        var err = Boom.unauthorized();
-        expect(err.output.statusCode).to.equal(401);
-        expect(err.output.headers).to.deep.equal({});
-        done();
-    });
-
-    it('sets the message with the passed in message', function (done) {
-
-        expect(Boom.unauthorized('my message').message).to.equal('my message');
-        done();
-    });
-
-    it('returns a WWW-Authenticate header when passed a scheme', function (done) {
-
-        var err = Boom.unauthorized('boom', 'Test');
-        expect(err.output.statusCode).to.equal(401);
-        expect(err.output.headers['WWW-Authenticate']).to.equal('Test error="boom"');
-        done();
-    });
-
-    it('returns a WWW-Authenticate header set to the schema array value', function (done) {
-
-        var err = Boom.unauthorized(null, ['Test','one','two']);
-        expect(err.output.statusCode).to.equal(401);
-        expect(err.output.headers['WWW-Authenticate']).to.equal('Test, one, two');
-        done();
-    });
-
-    it('returns a WWW-Authenticate header when passed a scheme and attributes', function (done) {
-
-        var err = Boom.unauthorized('boom', 'Test', { a: 1, b: 'something', c: null, d: 0 });
-        expect(err.output.statusCode).to.equal(401);
-        expect(err.output.headers['WWW-Authenticate']).to.equal('Test a="1", b="something", c="", d="0", error="boom"');
-        expect(err.output.payload.attributes).to.deep.equal({ a: 1, b: 'something', c: '', d: 0, error: 'boom' });
-        done();
-    });
-
-    it('returns a WWW-Authenticate header when passed attributes, missing error', function (done) {
-
-        var err = Boom.unauthorized(null, 'Test', { a: 1, b: 'something', c: null, d: 0 });
-        expect(err.output.statusCode).to.equal(401);
-        expect(err.output.headers['WWW-Authenticate']).to.equal('Test a="1", b="something", c="", d="0"');
-        expect(err.isMissing).to.equal(true);
-        done();
-    });
-
-    it('sets the isMissing flag when error message is empty', function (done) {
-
-        var err = Boom.unauthorized('', 'Basic');
-        expect(err.isMissing).to.equal(true);
-        done();
-    });
-
-    it('does not set the isMissing flag when error message is not empty', function (done) {
-
-        var err = Boom.unauthorized('message', 'Basic');
-        expect(err.isMissing).to.equal(undefined);
-        done();
-    });
-
-    it('sets a WWW-Authenticate when passed as an array', function (done) {
-
-        var err = Boom.unauthorized('message', ['Basic', 'Example e="1"', 'Another x="3", y="4"']);
-        expect(err.output.headers['WWW-Authenticate']).to.equal('Basic, Example e="1", Another x="3", y="4"');
-        done();
-    });
-});
-
-
-describe('methodNotAllowed()', function () {
-
-    it('returns a 405 error statusCode', function (done) {
-
-        expect(Boom.methodNotAllowed().output.statusCode).to.equal(405);
-        done();
-    });
-
-    it('sets the message with the passed in message', function (done) {
-
-        expect(Boom.methodNotAllowed('my message').message).to.equal('my message');
-        done();
-    });
-});
-
-
-describe('notAcceptable()', function () {
-
-    it('returns a 406 error statusCode', function (done) {
-
-        expect(Boom.notAcceptable().output.statusCode).to.equal(406);
-        done();
-    });
-
-    it('sets the message with the passed in message', function (done) {
-
-        expect(Boom.notAcceptable('my message').message).to.equal('my message');
-        done();
-    });
-});
-
-
-describe('proxyAuthRequired()', function () {
-
-    it('returns a 407 error statusCode', function (done) {
-
-        expect(Boom.proxyAuthRequired().output.statusCode).to.equal(407);
-        done();
-    });
-
-    it('sets the message with the passed in message', function (done) {
-
-        expect(Boom.proxyAuthRequired('my message').message).to.equal('my message');
-        done();
-    });
-});
-
-
-describe('clientTimeout()', function () {
-
-    it('returns a 408 error statusCode', function (done) {
-
-        expect(Boom.clientTimeout().output.statusCode).to.equal(408);
-        done();
-    });
-
-    it('sets the message with the passed in message', function (done) {
-
-        expect(Boom.clientTimeout('my message').message).to.equal('my message');
-        done();
-    });
-});
-
-
-describe('conflict()', function () {
-
-    it('returns a 409 error statusCode', function (done) {
-
-        expect(Boom.conflict().output.statusCode).to.equal(409);
-        done();
-    });
-
-    it('sets the message with the passed in message', function (done) {
-
-        expect(Boom.conflict('my message').message).to.equal('my message');
-        done();
-    });
-});
-
-
-describe('resourceGone()', function () {
-
-    it('returns a 410 error statusCode', function (done) {
-
-        expect(Boom.resourceGone().output.statusCode).to.equal(410);
-        done();
-    });
-
-    it('sets the message with the passed in message', function (done) {
-
-        expect(Boom.resourceGone('my message').message).to.equal('my message');
-        done();
-    });
-});
-
-
-describe('lengthRequired()', function () {
-
-    it('returns a 411 error statusCode', function (done) {
-
-        expect(Boom.lengthRequired().output.statusCode).to.equal(411);
-        done();
-    });
-
-    it('sets the message with the passed in message', function (done) {
-
-        expect(Boom.lengthRequired('my message').message).to.equal('my message');
-        done();
-    });
-});
-
-
-describe('preconditionFailed()', function () {
-
-    it('returns a 412 error statusCode', function (done) {
-
-        expect(Boom.preconditionFailed().output.statusCode).to.equal(412);
-        done();
-    });
-
-    it('sets the message with the passed in message', function (done) {
-
-        expect(Boom.preconditionFailed('my message').message).to.equal('my message');
-        done();
-    });
-});
-
-
-describe('entityTooLarge()', function () {
-
-    it('returns a 413 error statusCode', function (done) {
-
-        expect(Boom.entityTooLarge().output.statusCode).to.equal(413);
-        done();
-    });
-
-    it('sets the message with the passed in message', function (done) {
-
-        expect(Boom.entityTooLarge('my message').message).to.equal('my message');
-        done();
-    });
-});
-
-
-describe('uriTooLong()', function () {
-
-    it('returns a 414 error statusCode', function (done) {
-
-        expect(Boom.uriTooLong().output.statusCode).to.equal(414);
-        done();
-    });
-
-    it('sets the message with the passed in message', function (done) {
-
-        expect(Boom.uriTooLong('my message').message).to.equal('my message');
-        done();
-    });
-});
-
-
-describe('unsupportedMediaType()', function () {
-
-    it('returns a 415 error statusCode', function (done) {
-
-        expect(Boom.unsupportedMediaType().output.statusCode).to.equal(415);
-        done();
-    });
-
-    it('sets the message with the passed in message', function (done) {
-
-        expect(Boom.unsupportedMediaType('my message').message).to.equal('my message');
-        done();
-    });
-});
-
-
-describe('rangeNotSatisfiable()', function () {
-
-    it('returns a 416 error statusCode', function (done) {
-
-        expect(Boom.rangeNotSatisfiable().output.statusCode).to.equal(416);
-        done();
-    });
-
-    it('sets the message with the passed in message', function (done) {
-
-        expect(Boom.rangeNotSatisfiable('my message').message).to.equal('my message');
-        done();
-    });
-});
-
-
-describe('expectationFailed()', function () {
-
-    it('returns a 417 error statusCode', function (done) {
-
-        expect(Boom.expectationFailed().output.statusCode).to.equal(417);
-        done();
-    });
-
-    it('sets the message with the passed in message', function (done) {
-
-        expect(Boom.expectationFailed('my message').message).to.equal('my message');
-        done();
-    });
-});
-
-
-describe('badData()', function () {
-
-    it('returns a 422 error statusCode', function (done) {
-
-        expect(Boom.badData().output.statusCode).to.equal(422);
-        done();
-    });
-
-    it('sets the message with the passed in message', function (done) {
-
-        expect(Boom.badData('my message').message).to.equal('my message');
-        done();
-    });
-});
-
-
-describe('preconditionRequired()', function () {
-
-    it('returns a 428 error statusCode', function (done) {
-
-        expect(Boom.preconditionRequired().output.statusCode).to.equal(428);
-        done();
-    });
-
-    it('sets the message with the passed in message', function (done) {
-
-        expect(Boom.preconditionRequired('my message').message).to.equal('my message');
-        done();
-    });
-});
-
-
-describe('tooManyRequests()', function () {
-
-    it('returns a 429 error statusCode', function (done) {
-
-        expect(Boom.tooManyRequests().output.statusCode).to.equal(429);
-        done();
-    });
-
-    it('sets the message with the passed-in message', function (done) {
-
-        expect(Boom.tooManyRequests('my message').message).to.equal('my message');
-        done();
-    });
-});
-
-describe('serverTimeout()', function () {
-
-    it('returns a 503 error statusCode', function (done) {
-
-        expect(Boom.serverTimeout().output.statusCode).to.equal(503);
-        done();
-    });
-
-    it('sets the message with the passed in message', function (done) {
-
-        expect(Boom.serverTimeout('my message').message).to.equal('my message');
-        done();
-    });
-});
-
-describe('forbidden()', function () {
-
-    it('returns a 403 error statusCode', function (done) {
-
-        expect(Boom.forbidden().output.statusCode).to.equal(403);
-        done();
-    });
-
-    it('sets the message with the passed in message', function (done) {
-
-        expect(Boom.forbidden('my message').message).to.equal('my message');
-        done();
-    });
-});
-
-describe('notFound()', function () {
-
-    it('returns a 404 error statusCode', function (done) {
-
-        expect(Boom.notFound().output.statusCode).to.equal(404);
-        done();
-    });
-
-    it('sets the message with the passed in message', function (done) {
-
-        expect(Boom.notFound('my message').message).to.equal('my message');
-        done();
-    });
-});
-
-describe('internal()', function () {
-
-    it('returns a 500 error statusCode', function (done) {
-
-        expect(Boom.internal().output.statusCode).to.equal(500);
-        done();
-    });
-
-    it('sets the message with the passed in message', function (done) {
-
-        var err = Boom.internal('my message');
-        expect(err.message).to.equal('my message');
-        expect(err.isServer).to.true();
-        expect(err.output.payload.message).to.equal('An internal server error occurred');
-        done();
-    });
-
-    it('passes data on the callback if its passed in', function (done) {
-
-        expect(Boom.internal('my message', { my: 'data' }).data.my).to.equal('data');
-        done();
-    });
-
-    it('returns an error with composite message', function (done) {
-
-        try {
-            JSON.parse('{');
-        }
-        catch (err) {
-            var boom = Boom.internal('Someting bad', err);
-            expect(boom.message).to.equal('Someting bad: Unexpected end of input');
-            expect(boom.isServer).to.be.true();
-            done();
-        }
-    });
-});
-
-describe('notImplemented()', function () {
-
-    it('returns a 501 error statusCode', function (done) {
-
-        expect(Boom.notImplemented().output.statusCode).to.equal(501);
-        done();
-    });
-
-    it('sets the message with the passed in message', function (done) {
-
-        expect(Boom.notImplemented('my message').message).to.equal('my message');
-        done();
-    });
-});
-
-
-describe('badGateway()', function () {
-
-    it('returns a 502 error statusCode', function (done) {
-
-        expect(Boom.badGateway().output.statusCode).to.equal(502);
-        done();
-    });
-
-    it('sets the message with the passed in message', function (done) {
-
-        expect(Boom.badGateway('my message').message).to.equal('my message');
-        done();
-    });
-});
-
-describe('gatewayTimeout()', function () {
-
-    it('returns a 504 error statusCode', function (done) {
-
-        expect(Boom.gatewayTimeout().output.statusCode).to.equal(504);
-        done();
-    });
-
-    it('sets the message with the passed in message', function (done) {
-
-        expect(Boom.gatewayTimeout('my message').message).to.equal('my message');
-        done();
-    });
-});
-
-describe('badImplementation()', function () {
-
-    it('returns a 500 error statusCode', function (done) {
-
-        var err = Boom.badImplementation();
-        expect(err.output.statusCode).to.equal(500);
-        expect(err.isDeveloperError).to.equal(true);
-        expect(err.isServer).to.be.true();
-        done();
-    });
-});
-
-describe('stack trace', function () {
-
-    it('should omit lib', function (done) {
-
-        ['badRequest', 'unauthorized', 'forbidden', 'notFound', 'methodNotAllowed',
-            'notAcceptable', 'proxyAuthRequired', 'clientTimeout', 'conflict',
-            'resourceGone', 'lengthRequired', 'preconditionFailed', 'entityTooLarge',
-            'uriTooLong', 'unsupportedMediaType', 'rangeNotSatisfiable', 'expectationFailed',
-            'badData', 'preconditionRequired', 'tooManyRequests',
-
-            // 500s
-            'internal', 'notImplemented', 'badGateway', 'serverTimeout', 'gatewayTimeout',
-            'badImplementation'
-        ].forEach(function (name) {
-
-            var err = Boom[name]();
-            expect(err.stack).to.not.match(/\/lib\/index\.js/);
-        });
-
-        done();
-    });
-});

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/brace-expansion/README.md
----------------------------------------------------------------------
diff --git a/node_modules/brace-expansion/README.md b/node_modules/brace-expansion/README.md
deleted file mode 100644
index 1793929..0000000
--- a/node_modules/brace-expansion/README.md
+++ /dev/null
@@ -1,122 +0,0 @@
-# brace-expansion
-
-[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html), 
-as known from sh/bash, in JavaScript.
-
-[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion)
-[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion)
-
-[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion)
-
-## Example
-
-```js
-var expand = require('brace-expansion');
-
-expand('file-{a,b,c}.jpg')
-// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg']
-
-expand('-v{,,}')
-// => ['-v', '-v', '-v']
-
-expand('file{0..2}.jpg')
-// => ['file0.jpg', 'file1.jpg', 'file2.jpg']
-
-expand('file-{a..c}.jpg')
-// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg']
-
-expand('file{2..0}.jpg')
-// => ['file2.jpg', 'file1.jpg', 'file0.jpg']
-
-expand('file{0..4..2}.jpg')
-// => ['file0.jpg', 'file2.jpg', 'file4.jpg']
-
-expand('file-{a..e..2}.jpg')
-// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg']
-
-expand('file{00..10..5}.jpg')
-// => ['file00.jpg', 'file05.jpg', 'file10.jpg']
-
-expand('{{A..C},{a..c}}')
-// => ['A', 'B', 'C', 'a', 'b', 'c']
-
-expand('ppp{,config,oe{,conf}}')
-// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf']
-```
-
-## API
-
-```js
-var expand = require('brace-expansion');
-```
-
-### var expanded = expand(str)
-
-Return an array of all possible and valid expansions of `str`. If none are
-found, `[str]` is returned.
-
-Valid expansions are:
-
-```js
-/^(.*,)+(.+)?$/
-// {a,b,...}
-```
-
-A comma seperated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`.
-
-```js
-/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/
-// {x..y[..incr]}
-```
-
-A numeric sequence from `x` to `y` inclusive, with optional increment.
-If `x` or `y` start with a leading `0`, all the numbers will be padded
-to have equal length. Negative numbers and backwards iteration work too.
-
-```js
-/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/
-// {x..y[..incr]}
-```
-
-An alphabetic sequence from `x` to `y` inclusive, with optional increment.
-`x` and `y` must be exactly one character, and if given, `incr` must be a
-number.
-
-For compatibility reasons, the string `${` is not eligible for brace expansion.
-
-## Installation
-
-With [npm](https://npmjs.org) do:
-
-```bash
-npm install brace-expansion
-```
-
-## Contributors
-
-- [Julian Gruber](https://github.com/juliangruber)
-- [Isaac Z. Schlueter](https://github.com/isaacs)
-
-## License
-
-(MIT)
-
-Copyright (c) 2013 Julian Gruber &lt;julian@juliangruber.com&gt;
-
-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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/brace-expansion/index.js
----------------------------------------------------------------------
diff --git a/node_modules/brace-expansion/index.js b/node_modules/brace-expansion/index.js
deleted file mode 100644
index 955f27c..0000000
--- a/node_modules/brace-expansion/index.js
+++ /dev/null
@@ -1,201 +0,0 @@
-var concatMap = require('concat-map');
-var balanced = require('balanced-match');
-
-module.exports = expandTop;
-
-var escSlash = '\0SLASH'+Math.random()+'\0';
-var escOpen = '\0OPEN'+Math.random()+'\0';
-var escClose = '\0CLOSE'+Math.random()+'\0';
-var escComma = '\0COMMA'+Math.random()+'\0';
-var escPeriod = '\0PERIOD'+Math.random()+'\0';
-
-function numeric(str) {
-  return parseInt(str, 10) == str
-    ? parseInt(str, 10)
-    : str.charCodeAt(0);
-}
-
-function escapeBraces(str) {
-  return str.split('\\\\').join(escSlash)
-            .split('\\{').join(escOpen)
-            .split('\\}').join(escClose)
-            .split('\\,').join(escComma)
-            .split('\\.').join(escPeriod);
-}
-
-function unescapeBraces(str) {
-  return str.split(escSlash).join('\\')
-            .split(escOpen).join('{')
-            .split(escClose).join('}')
-            .split(escComma).join(',')
-            .split(escPeriod).join('.');
-}
-
-
-// Basically just str.split(","), but handling cases
-// where we have nested braced sections, which should be
-// treated as individual members, like {a,{b,c},d}
-function parseCommaParts(str) {
-  if (!str)
-    return [''];
-
-  var parts = [];
-  var m = balanced('{', '}', str);
-
-  if (!m)
-    return str.split(',');
-
-  var pre = m.pre;
-  var body = m.body;
-  var post = m.post;
-  var p = pre.split(',');
-
-  p[p.length-1] += '{' + body + '}';
-  var postParts = parseCommaParts(post);
-  if (post.length) {
-    p[p.length-1] += postParts.shift();
-    p.push.apply(p, postParts);
-  }
-
-  parts.push.apply(parts, p);
-
-  return parts;
-}
-
-function expandTop(str) {
-  if (!str)
-    return [];
-
-  // I don't know why Bash 4.3 does this, but it does.
-  // Anything starting with {} will have the first two bytes preserved
-  // but *only* at the top level, so {},a}b will not expand to anything,
-  // but a{},b}c will be expanded to [a}c,abc].
-  // One could argue that this is a bug in Bash, but since the goal of
-  // this module is to match Bash's rules, we escape a leading {}
-  if (str.substr(0, 2) === '{}') {
-    str = '\\{\\}' + str.substr(2);
-  }
-
-  return expand(escapeBraces(str), true).map(unescapeBraces);
-}
-
-function identity(e) {
-  return e;
-}
-
-function embrace(str) {
-  return '{' + str + '}';
-}
-function isPadded(el) {
-  return /^-?0\d/.test(el);
-}
-
-function lte(i, y) {
-  return i <= y;
-}
-function gte(i, y) {
-  return i >= y;
-}
-
-function expand(str, isTop) {
-  var expansions = [];
-
-  var m = balanced('{', '}', str);
-  if (!m || /\$$/.test(m.pre)) return [str];
-
-  var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
-  var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
-  var isSequence = isNumericSequence || isAlphaSequence;
-  var isOptions = /^(.*,)+(.+)?$/.test(m.body);
-  if (!isSequence && !isOptions) {
-    // {a},b}
-    if (m.post.match(/,.*\}/)) {
-      str = m.pre + '{' + m.body + escClose + m.post;
-      return expand(str);
-    }
-    return [str];
-  }
-
-  var n;
-  if (isSequence) {
-    n = m.body.split(/\.\./);
-  } else {
-    n = parseCommaParts(m.body);
-    if (n.length === 1) {
-      // x{{a,b}}y ==> x{a}y x{b}y
-      n = expand(n[0], false).map(embrace);
-      if (n.length === 1) {
-        var post = m.post.length
-          ? expand(m.post, false)
-          : [''];
-        return post.map(function(p) {
-          return m.pre + n[0] + p;
-        });
-      }
-    }
-  }
-
-  // at this point, n is the parts, and we know it's not a comma set
-  // with a single entry.
-
-  // no need to expand pre, since it is guaranteed to be free of brace-sets
-  var pre = m.pre;
-  var post = m.post.length
-    ? expand(m.post, false)
-    : [''];
-
-  var N;
-
-  if (isSequence) {
-    var x = numeric(n[0]);
-    var y = numeric(n[1]);
-    var width = Math.max(n[0].length, n[1].length)
-    var incr = n.length == 3
-      ? Math.abs(numeric(n[2]))
-      : 1;
-    var test = lte;
-    var reverse = y < x;
-    if (reverse) {
-      incr *= -1;
-      test = gte;
-    }
-    var pad = n.some(isPadded);
-
-    N = [];
-
-    for (var i = x; test(i, y); i += incr) {
-      var c;
-      if (isAlphaSequence) {
-        c = String.fromCharCode(i);
-        if (c === '\\')
-          c = '';
-      } else {
-        c = String(i);
-        if (pad) {
-          var need = width - c.length;
-          if (need > 0) {
-            var z = new Array(need + 1).join('0');
-            if (i < 0)
-              c = '-' + z + c.slice(1);
-            else
-              c = z + c;
-          }
-        }
-      }
-      N.push(c);
-    }
-  } else {
-    N = concatMap(n, function(el) { return expand(el, false) });
-  }
-
-  for (var j = 0; j < N.length; j++) {
-    for (var k = 0; k < post.length; k++) {
-      var expansion = pre + N[j] + post[k];
-      if (!isTop || isSequence || expansion)
-        expansions.push(expansion);
-    }
-  }
-
-  return expansions;
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/brace-expansion/package.json
----------------------------------------------------------------------
diff --git a/node_modules/brace-expansion/package.json b/node_modules/brace-expansion/package.json
deleted file mode 100644
index 7c366bb..0000000
--- a/node_modules/brace-expansion/package.json
+++ /dev/null
@@ -1,113 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "brace-expansion@^1.0.0",
-        "scope": null,
-        "escapedName": "brace-expansion",
-        "name": "brace-expansion",
-        "rawSpec": "^1.0.0",
-        "spec": ">=1.0.0 <2.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/minimatch"
-    ]
-  ],
-  "_from": "brace-expansion@>=1.0.0 <2.0.0",
-  "_id": "brace-expansion@1.1.6",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/brace-expansion",
-  "_nodeVersion": "4.4.7",
-  "_npmOperationalInternal": {
-    "host": "packages-16-east.internal.npmjs.com",
-    "tmp": "tmp/brace-expansion-1.1.6.tgz_1469047715600_0.9362958471756428"
-  },
-  "_npmUser": {
-    "name": "juliangruber",
-    "email": "julian@juliangruber.com"
-  },
-  "_npmVersion": "2.15.8",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "brace-expansion@^1.0.0",
-    "scope": null,
-    "escapedName": "brace-expansion",
-    "name": "brace-expansion",
-    "rawSpec": "^1.0.0",
-    "spec": ">=1.0.0 <2.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/minimatch"
-  ],
-  "_resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz",
-  "_shasum": "7197d7eaa9b87e648390ea61fc66c84427420df9",
-  "_shrinkwrap": null,
-  "_spec": "brace-expansion@^1.0.0",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/minimatch",
-  "author": {
-    "name": "Julian Gruber",
-    "email": "mail@juliangruber.com",
-    "url": "http://juliangruber.com"
-  },
-  "bugs": {
-    "url": "https://github.com/juliangruber/brace-expansion/issues"
-  },
-  "dependencies": {
-    "balanced-match": "^0.4.1",
-    "concat-map": "0.0.1"
-  },
-  "description": "Brace expansion as known from sh/bash",
-  "devDependencies": {
-    "tape": "^4.6.0"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "7197d7eaa9b87e648390ea61fc66c84427420df9",
-    "tarball": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz"
-  },
-  "gitHead": "791262fa06625e9c5594cde529a21d82086af5f2",
-  "homepage": "https://github.com/juliangruber/brace-expansion",
-  "keywords": [],
-  "license": "MIT",
-  "main": "index.js",
-  "maintainers": [
-    {
-      "name": "juliangruber",
-      "email": "julian@juliangruber.com"
-    },
-    {
-      "name": "isaacs",
-      "email": "isaacs@npmjs.com"
-    }
-  ],
-  "name": "brace-expansion",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/juliangruber/brace-expansion.git"
-  },
-  "scripts": {
-    "gentest": "bash test/generate.sh",
-    "test": "tape test/*.js"
-  },
-  "testling": {
-    "files": "test/*.js",
-    "browsers": [
-      "ie/8..latest",
-      "firefox/20..latest",
-      "firefox/nightly",
-      "chrome/25..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": "1.1.6"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/braces/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/braces/LICENSE b/node_modules/braces/LICENSE
deleted file mode 100644
index 39245ac..0000000
--- a/node_modules/braces/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2016, Jon Schlinkert.
-
-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.


[33/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dotjs/required.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dotjs/required.js b/node_modules/ajv/lib/dotjs/required.js
deleted file mode 100644
index 43dbf35..0000000
--- a/node_modules/ajv/lib/dotjs/required.js
+++ /dev/null
@@ -1,250 +0,0 @@
-'use strict';
-module.exports = function generate_required(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $valid = 'valid' + $lvl;
-  var $isData = it.opts.v5 && $schema && $schema.$data,
-    $schemaValue;
-  if ($isData) {
-    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
-    $schemaValue = 'schema' + $lvl;
-  } else {
-    $schemaValue = $schema;
-  }
-  var $vSchema = 'schema' + $lvl;
-  if (!$isData) {
-    if ($schema.length < it.opts.loopRequired && it.schema.properties && Object.keys(it.schema.properties).length) {
-      var $required = [];
-      var arr1 = $schema;
-      if (arr1) {
-        var $property, i1 = -1,
-          l1 = arr1.length - 1;
-        while (i1 < l1) {
-          $property = arr1[i1 += 1];
-          var $propertySch = it.schema.properties[$property];
-          if (!($propertySch && it.util.schemaHasRules($propertySch, it.RULES.all))) {
-            $required[$required.length] = $property;
-          }
-        }
-      }
-    } else {
-      var $required = $schema;
-    }
-  }
-  if ($isData || $required.length) {
-    var $currentErrorPath = it.errorPath,
-      $loopRequired = $isData || $required.length >= it.opts.loopRequired;
-    if ($breakOnError) {
-      out += ' var missing' + ($lvl) + '; ';
-      if ($loopRequired) {
-        if (!$isData) {
-          out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';
-        }
-        var $i = 'i' + $lvl,
-          $propertyPath = 'schema' + $lvl + '[' + $i + ']',
-          $missingProperty = '\' + ' + $propertyPath + ' + \'';
-        if (it.opts._errorDataPathProperty) {
-          it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);
-        }
-        out += ' var ' + ($valid) + ' = true; ';
-        if ($isData) {
-          out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';
-        }
-        out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined; if (!' + ($valid) + ') break; } ';
-        if ($isData) {
-          out += '  }  ';
-        }
-        out += '  if (!' + ($valid) + ') {   ';
-        var $$outStack = $$outStack || [];
-        $$outStack.push(out);
-        out = ''; /* istanbul ignore else */
-        if (it.createErrors !== false) {
-          out += ' { keyword: \'' + ($errorKeyword || 'required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
-          if (it.opts.messages !== false) {
-            out += ' , message: \'';
-            if (it.opts._errorDataPathProperty) {
-              out += 'is a required property';
-            } else {
-              out += 'should have required property \\\'' + ($missingProperty) + '\\\'';
-            }
-            out += '\' ';
-          }
-          if (it.opts.verbose) {
-            out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-          }
-          out += ' } ';
-        } else {
-          out += ' {} ';
-        }
-        var __err = out;
-        out = $$outStack.pop();
-        if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-          if (it.async) {
-            out += ' throw new ValidationError([' + (__err) + ']); ';
-          } else {
-            out += ' validate.errors = [' + (__err) + ']; return false; ';
-          }
-        } else {
-          out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-        }
-        out += ' } else { ';
-      } else {
-        out += ' if ( ';
-        var arr2 = $required;
-        if (arr2) {
-          var _$property, $i = -1,
-            l2 = arr2.length - 1;
-          while ($i < l2) {
-            _$property = arr2[$i += 1];
-            if ($i) {
-              out += ' || ';
-            }
-            var $prop = it.util.getProperty(_$property);
-            out += ' ( ' + ($data) + ($prop) + ' === undefined && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? _$property : $prop)) + ') ) ';
-          }
-        }
-        out += ') {  ';
-        var $propertyPath = 'missing' + $lvl,
-          $missingProperty = '\' + ' + $propertyPath + ' + \'';
-        if (it.opts._errorDataPathProperty) {
-          it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;
-        }
-        var $$outStack = $$outStack || [];
-        $$outStack.push(out);
-        out = ''; /* istanbul ignore else */
-        if (it.createErrors !== false) {
-          out += ' { keyword: \'' + ($errorKeyword || 'required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
-          if (it.opts.messages !== false) {
-            out += ' , message: \'';
-            if (it.opts._errorDataPathProperty) {
-              out += 'is a required property';
-            } else {
-              out += 'should have required property \\\'' + ($missingProperty) + '\\\'';
-            }
-            out += '\' ';
-          }
-          if (it.opts.verbose) {
-            out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-          }
-          out += ' } ';
-        } else {
-          out += ' {} ';
-        }
-        var __err = out;
-        out = $$outStack.pop();
-        if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-          if (it.async) {
-            out += ' throw new ValidationError([' + (__err) + ']); ';
-          } else {
-            out += ' validate.errors = [' + (__err) + ']; return false; ';
-          }
-        } else {
-          out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-        }
-        out += ' } else { ';
-      }
-    } else {
-      if ($loopRequired) {
-        if (!$isData) {
-          out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';
-        }
-        var $i = 'i' + $lvl,
-          $propertyPath = 'schema' + $lvl + '[' + $i + ']',
-          $missingProperty = '\' + ' + $propertyPath + ' + \'';
-        if (it.opts._errorDataPathProperty) {
-          it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);
-        }
-        if ($isData) {
-          out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) {  var err =   '; /* istanbul ignore else */
-          if (it.createErrors !== false) {
-            out += ' { keyword: \'' + ($errorKeyword || 'required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
-            if (it.opts.messages !== false) {
-              out += ' , message: \'';
-              if (it.opts._errorDataPathProperty) {
-                out += 'is a required property';
-              } else {
-                out += 'should have required property \\\'' + ($missingProperty) + '\\\'';
-              }
-              out += '\' ';
-            }
-            if (it.opts.verbose) {
-              out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-            }
-            out += ' } ';
-          } else {
-            out += ' {} ';
-          }
-          out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';
-        }
-        out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined) {  var err =   '; /* istanbul ignore else */
-        if (it.createErrors !== false) {
-          out += ' { keyword: \'' + ($errorKeyword || 'required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
-          if (it.opts.messages !== false) {
-            out += ' , message: \'';
-            if (it.opts._errorDataPathProperty) {
-              out += 'is a required property';
-            } else {
-              out += 'should have required property \\\'' + ($missingProperty) + '\\\'';
-            }
-            out += '\' ';
-          }
-          if (it.opts.verbose) {
-            out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-          }
-          out += ' } ';
-        } else {
-          out += ' {} ';
-        }
-        out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ';
-        if ($isData) {
-          out += '  }  ';
-        }
-      } else {
-        var arr3 = $required;
-        if (arr3) {
-          var $reqProperty, i3 = -1,
-            l3 = arr3.length - 1;
-          while (i3 < l3) {
-            $reqProperty = arr3[i3 += 1];
-            var $prop = it.util.getProperty($reqProperty),
-              $missingProperty = it.util.escapeQuotes($reqProperty);
-            if (it.opts._errorDataPathProperty) {
-              it.errorPath = it.util.getPath($currentErrorPath, $reqProperty, it.opts.jsonPointers);
-            }
-            out += ' if (' + ($data) + ($prop) + ' === undefined) {  var err =   '; /* istanbul ignore else */
-            if (it.createErrors !== false) {
-              out += ' { keyword: \'' + ($errorKeyword || 'required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
-              if (it.opts.messages !== false) {
-                out += ' , message: \'';
-                if (it.opts._errorDataPathProperty) {
-                  out += 'is a required property';
-                } else {
-                  out += 'should have required property \\\'' + ($missingProperty) + '\\\'';
-                }
-                out += '\' ';
-              }
-              if (it.opts.verbose) {
-                out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-              }
-              out += ' } ';
-            } else {
-              out += ' {} ';
-            }
-            out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';
-          }
-        }
-      }
-    }
-    it.errorPath = $currentErrorPath;
-  } else if ($breakOnError) {
-    out += ' if (true) {';
-  }
-  return out;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dotjs/switch.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dotjs/switch.js b/node_modules/ajv/lib/dotjs/switch.js
deleted file mode 100644
index 4ccf0bc..0000000
--- a/node_modules/ajv/lib/dotjs/switch.js
+++ /dev/null
@@ -1,129 +0,0 @@
-'use strict';
-module.exports = function generate_switch(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $valid = 'valid' + $lvl;
-  var $errs = 'errs__' + $lvl;
-  var $it = it.util.copy(it);
-  var $closingBraces = '';
-  $it.level++;
-  var $nextValid = 'valid' + $it.level;
-  var $ifPassed = 'ifPassed' + it.level,
-    $currentBaseId = $it.baseId,
-    $shouldContinue;
-  out += 'var ' + ($ifPassed) + ';';
-  var arr1 = $schema;
-  if (arr1) {
-    var $sch, $caseIndex = -1,
-      l1 = arr1.length - 1;
-    while ($caseIndex < l1) {
-      $sch = arr1[$caseIndex += 1];
-      if ($caseIndex && !$shouldContinue) {
-        out += ' if (!' + ($ifPassed) + ') { ';
-        $closingBraces += '}';
-      }
-      if ($sch.if && it.util.schemaHasRules($sch.if, it.RULES.all)) {
-        out += ' var ' + ($errs) + ' = errors;   ';
-        var $wasComposite = it.compositeRule;
-        it.compositeRule = $it.compositeRule = true;
-        $it.createErrors = false;
-        $it.schema = $sch.if;
-        $it.schemaPath = $schemaPath + '[' + $caseIndex + '].if';
-        $it.errSchemaPath = $errSchemaPath + '/' + $caseIndex + '/if';
-        out += '  ' + (it.validate($it)) + ' ';
-        $it.baseId = $currentBaseId;
-        $it.createErrors = true;
-        it.compositeRule = $it.compositeRule = $wasComposite;
-        out += ' ' + ($ifPassed) + ' = ' + ($nextValid) + '; if (' + ($ifPassed) + ') {  ';
-        if (typeof $sch.then == 'boolean') {
-          if ($sch.then === false) {
-            var $$outStack = $$outStack || [];
-            $$outStack.push(out);
-            out = ''; /* istanbul ignore else */
-            if (it.createErrors !== false) {
-              out += ' { keyword: \'' + ($errorKeyword || 'switch') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { caseIndex: ' + ($caseIndex) + ' } ';
-              if (it.opts.messages !== false) {
-                out += ' , message: \'should pass "switch" keyword validation\' ';
-              }
-              if (it.opts.verbose) {
-                out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-              }
-              out += ' } ';
-            } else {
-              out += ' {} ';
-            }
-            var __err = out;
-            out = $$outStack.pop();
-            if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-              if (it.async) {
-                out += ' throw new ValidationError([' + (__err) + ']); ';
-              } else {
-                out += ' validate.errors = [' + (__err) + ']; return false; ';
-              }
-            } else {
-              out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-            }
-          }
-          out += ' var ' + ($nextValid) + ' = ' + ($sch.then) + '; ';
-        } else {
-          $it.schema = $sch.then;
-          $it.schemaPath = $schemaPath + '[' + $caseIndex + '].then';
-          $it.errSchemaPath = $errSchemaPath + '/' + $caseIndex + '/then';
-          out += '  ' + (it.validate($it)) + ' ';
-          $it.baseId = $currentBaseId;
-        }
-        out += '  } else {  errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } } ';
-      } else {
-        out += ' ' + ($ifPassed) + ' = true;  ';
-        if (typeof $sch.then == 'boolean') {
-          if ($sch.then === false) {
-            var $$outStack = $$outStack || [];
-            $$outStack.push(out);
-            out = ''; /* istanbul ignore else */
-            if (it.createErrors !== false) {
-              out += ' { keyword: \'' + ($errorKeyword || 'switch') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { caseIndex: ' + ($caseIndex) + ' } ';
-              if (it.opts.messages !== false) {
-                out += ' , message: \'should pass "switch" keyword validation\' ';
-              }
-              if (it.opts.verbose) {
-                out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-              }
-              out += ' } ';
-            } else {
-              out += ' {} ';
-            }
-            var __err = out;
-            out = $$outStack.pop();
-            if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-              if (it.async) {
-                out += ' throw new ValidationError([' + (__err) + ']); ';
-              } else {
-                out += ' validate.errors = [' + (__err) + ']; return false; ';
-              }
-            } else {
-              out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-            }
-          }
-          out += ' var ' + ($nextValid) + ' = ' + ($sch.then) + '; ';
-        } else {
-          $it.schema = $sch.then;
-          $it.schemaPath = $schemaPath + '[' + $caseIndex + '].then';
-          $it.errSchemaPath = $errSchemaPath + '/' + $caseIndex + '/then';
-          out += '  ' + (it.validate($it)) + ' ';
-          $it.baseId = $currentBaseId;
-        }
-      }
-      $shouldContinue = $sch.continue
-    }
-  }
-  out += '' + ($closingBraces) + 'var ' + ($valid) + ' = ' + ($nextValid) + '; ';
-  out = it.util.cleanUpCode(out);
-  return out;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dotjs/uniqueItems.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dotjs/uniqueItems.js b/node_modules/ajv/lib/dotjs/uniqueItems.js
deleted file mode 100644
index 7faff85..0000000
--- a/node_modules/ajv/lib/dotjs/uniqueItems.js
+++ /dev/null
@@ -1,72 +0,0 @@
-'use strict';
-module.exports = function generate_uniqueItems(it, $keyword) {
-  var out = ' ';
-  var $lvl = it.level;
-  var $dataLvl = it.dataLevel;
-  var $schema = it.schema[$keyword];
-  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
-  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
-  var $breakOnError = !it.opts.allErrors;
-  var $errorKeyword;
-  var $data = 'data' + ($dataLvl || '');
-  var $valid = 'valid' + $lvl;
-  var $isData = it.opts.v5 && $schema && $schema.$data,
-    $schemaValue;
-  if ($isData) {
-    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
-    $schemaValue = 'schema' + $lvl;
-  } else {
-    $schemaValue = $schema;
-  }
-  if (($schema || $isData) && it.opts.uniqueItems !== false) {
-    if ($isData) {
-      out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \'boolean\') ' + ($valid) + ' = false; else { ';
-    }
-    out += ' var ' + ($valid) + ' = true; if (' + ($data) + '.length > 1) { var i = ' + ($data) + '.length, j; outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } } ';
-    if ($isData) {
-      out += '  }  ';
-    }
-    out += ' if (!' + ($valid) + ') {   ';
-    var $$outStack = $$outStack || [];
-    $$outStack.push(out);
-    out = ''; /* istanbul ignore else */
-    if (it.createErrors !== false) {
-      out += ' { keyword: \'' + ($errorKeyword || 'uniqueItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } ';
-      if (it.opts.messages !== false) {
-        out += ' , message: \'should NOT have duplicate items (items ## \' + j + \' and \' + i + \' are identical)\' ';
-      }
-      if (it.opts.verbose) {
-        out += ' , schema:  ';
-        if ($isData) {
-          out += 'validate.schema' + ($schemaPath);
-        } else {
-          out += '' + ($schema);
-        }
-        out += '         , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-      }
-      out += ' } ';
-    } else {
-      out += ' {} ';
-    }
-    var __err = out;
-    out = $$outStack.pop();
-    if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-      if (it.async) {
-        out += ' throw new ValidationError([' + (__err) + ']); ';
-      } else {
-        out += ' validate.errors = [' + (__err) + ']; return false; ';
-      }
-    } else {
-      out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-    }
-    out += ' } ';
-    if ($breakOnError) {
-      out += ' else { ';
-    }
-  } else {
-    if ($breakOnError) {
-      out += ' if (true) { ';
-    }
-  }
-  return out;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/dotjs/validate.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/dotjs/validate.js b/node_modules/ajv/lib/dotjs/validate.js
deleted file mode 100644
index c984af3..0000000
--- a/node_modules/ajv/lib/dotjs/validate.js
+++ /dev/null
@@ -1,376 +0,0 @@
-'use strict';
-module.exports = function generate_validate(it, $keyword) {
-  var out = '';
-  var $async = it.schema.$async === true;
-  if (it.isTop) {
-    var $top = it.isTop,
-      $lvl = it.level = 0,
-      $dataLvl = it.dataLevel = 0,
-      $data = 'data';
-    it.rootId = it.resolve.fullPath(it.root.schema.id);
-    it.baseId = it.baseId || it.rootId;
-    if ($async) {
-      it.async = true;
-      var $es7 = it.opts.async == 'es7';
-      it.yieldAwait = $es7 ? 'await' : 'yield';
-    }
-    delete it.isTop;
-    it.dataPathArr = [undefined];
-    out += ' var validate = ';
-    if ($async) {
-      if ($es7) {
-        out += ' (async function ';
-      } else {
-        if (it.opts.async == 'co*') {
-          out += 'co.wrap';
-        }
-        out += '(function* ';
-      }
-    } else {
-      out += ' (function ';
-    }
-    out += ' (data, dataPath, parentData, parentDataProperty, rootData) { \'use strict\'; var vErrors = null; ';
-    out += ' var errors = 0;     ';
-    out += ' if (rootData === undefined) rootData = data;';
-  } else {
-    var $lvl = it.level,
-      $dataLvl = it.dataLevel,
-      $data = 'data' + ($dataLvl || '');
-    if (it.schema.id) it.baseId = it.resolve.url(it.baseId, it.schema.id);
-    if ($async && !it.async) throw new Error('async schema in sync schema');
-    out += ' var errs_' + ($lvl) + ' = errors;';
-  }
-  var $valid = 'valid' + $lvl,
-    $breakOnError = !it.opts.allErrors,
-    $closingBraces1 = '',
-    $closingBraces2 = '',
-    $errorKeyword;
-  var $typeSchema = it.schema.type,
-    $typeIsArray = Array.isArray($typeSchema);
-  if ($typeSchema && it.opts.coerceTypes) {
-    var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema);
-    if ($coerceToTypes) {
-      var $schemaPath = it.schemaPath + '.type',
-        $errSchemaPath = it.errSchemaPath + '/type',
-        $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType';
-      out += ' if (' + (it.util[$method]($typeSchema, $data, true)) + ') {  ';
-      var $dataType = 'dataType' + $lvl,
-        $coerced = 'coerced' + $lvl;
-      out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; ';
-      if (it.opts.coerceTypes == 'array') {
-        out += ' if (' + ($dataType) + ' == \'object\' && Array.isArray(' + ($data) + ')) ' + ($dataType) + ' = \'array\'; ';
-      }
-      out += ' var ' + ($coerced) + ' = undefined; ';
-      var $bracesCoercion = '';
-      var arr1 = $coerceToTypes;
-      if (arr1) {
-        var $type, $i = -1,
-          l1 = arr1.length - 1;
-        while ($i < l1) {
-          $type = arr1[$i += 1];
-          if ($i) {
-            out += ' if (' + ($coerced) + ' === undefined) { ';
-            $bracesCoercion += '}';
-          }
-          if (it.opts.coerceTypes == 'array' && $type != 'array') {
-            out += ' if (' + ($dataType) + ' == \'array\' && ' + ($data) + '.length == 1) { ' + ($coerced) + ' = ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + ';  } ';
-          }
-          if ($type == 'string') {
-            out += ' if (' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\') ' + ($coerced) + ' = \'\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \'\'; ';
-          } else if ($type == 'number' || $type == 'integer') {
-            out += ' if (' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \'string\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' ';
-            if ($type == 'integer') {
-              out += ' && !(' + ($data) + ' % 1)';
-            }
-            out += ')) ' + ($coerced) + ' = +' + ($data) + '; ';
-          } else if ($type == 'boolean') {
-            out += ' if (' + ($data) + ' === \'false\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \'true\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; ';
-          } else if ($type == 'null') {
-            out += ' if (' + ($data) + ' === \'\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; ';
-          } else if (it.opts.coerceTypes == 'array' && $type == 'array') {
-            out += ' if (' + ($dataType) + ' == \'string\' || ' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; ';
-          }
-        }
-      }
-      out += ' ' + ($bracesCoercion) + ' if (' + ($coerced) + ' === undefined) {   ';
-      var $$outStack = $$outStack || [];
-      $$outStack.push(out);
-      out = ''; /* istanbul ignore else */
-      if (it.createErrors !== false) {
-        out += ' { keyword: \'' + ($errorKeyword || 'type') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \'';
-        if ($typeIsArray) {
-          out += '' + ($typeSchema.join(","));
-        } else {
-          out += '' + ($typeSchema);
-        }
-        out += '\' } ';
-        if (it.opts.messages !== false) {
-          out += ' , message: \'should be ';
-          if ($typeIsArray) {
-            out += '' + ($typeSchema.join(","));
-          } else {
-            out += '' + ($typeSchema);
-          }
-          out += '\' ';
-        }
-        if (it.opts.verbose) {
-          out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-        }
-        out += ' } ';
-      } else {
-        out += ' {} ';
-      }
-      var __err = out;
-      out = $$outStack.pop();
-      if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-        if (it.async) {
-          out += ' throw new ValidationError([' + (__err) + ']); ';
-        } else {
-          out += ' validate.errors = [' + (__err) + ']; return false; ';
-        }
-      } else {
-        out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-      }
-      out += ' } else {  ';
-      var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',
-        $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';
-      out += ' ' + ($data) + ' = ' + ($coerced) + '; ';
-      if (!$dataLvl) {
-        out += 'if (' + ($parentData) + ' !== undefined)';
-      }
-      out += ' ' + ($parentData) + '[' + ($parentDataProperty) + '] = ' + ($coerced) + '; } } ';
-    }
-  }
-  var $refKeywords;
-  if (it.schema.$ref && ($refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref'))) {
-    if (it.opts.extendRefs == 'fail') {
-      throw new Error('$ref: validation keywords used in schema at path "' + it.errSchemaPath + '"');
-    } else if (it.opts.extendRefs == 'ignore') {
-      $refKeywords = false;
-      console.log('$ref: keywords ignored in schema at path "' + it.errSchemaPath + '"');
-    } else if (it.opts.extendRefs !== true) {
-      console.log('$ref: all keywords used in schema at path "' + it.errSchemaPath + '". It will change in the next major version, see issue #260. Use option { extendRefs: true } to keep current behaviour');
-    }
-  }
-  if (it.schema.$ref && !$refKeywords) {
-    out += ' ' + (it.RULES.all.$ref.code(it, '$ref')) + ' ';
-    if ($breakOnError) {
-      out += ' } if (errors === ';
-      if ($top) {
-        out += '0';
-      } else {
-        out += 'errs_' + ($lvl);
-      }
-      out += ') { ';
-      $closingBraces2 += '}';
-    }
-  } else {
-    var arr2 = it.RULES;
-    if (arr2) {
-      var $rulesGroup, i2 = -1,
-        l2 = arr2.length - 1;
-      while (i2 < l2) {
-        $rulesGroup = arr2[i2 += 1];
-        if ($shouldUseGroup($rulesGroup)) {
-          if ($rulesGroup.type) {
-            out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data)) + ') { ';
-          }
-          if (it.opts.useDefaults && !it.compositeRule) {
-            if ($rulesGroup.type == 'object' && it.schema.properties) {
-              var $schema = it.schema.properties,
-                $schemaKeys = Object.keys($schema);
-              var arr3 = $schemaKeys;
-              if (arr3) {
-                var $propertyKey, i3 = -1,
-                  l3 = arr3.length - 1;
-                while (i3 < l3) {
-                  $propertyKey = arr3[i3 += 1];
-                  var $sch = $schema[$propertyKey];
-                  if ($sch.default !== undefined) {
-                    var $passData = $data + it.util.getProperty($propertyKey);
-                    out += '  if (' + ($passData) + ' === undefined) ' + ($passData) + ' = ';
-                    if (it.opts.useDefaults == 'shared') {
-                      out += ' ' + (it.useDefault($sch.default)) + ' ';
-                    } else {
-                      out += ' ' + (JSON.stringify($sch.default)) + ' ';
-                    }
-                    out += '; ';
-                  }
-                }
-              }
-            } else if ($rulesGroup.type == 'array' && Array.isArray(it.schema.items)) {
-              var arr4 = it.schema.items;
-              if (arr4) {
-                var $sch, $i = -1,
-                  l4 = arr4.length - 1;
-                while ($i < l4) {
-                  $sch = arr4[$i += 1];
-                  if ($sch.default !== undefined) {
-                    var $passData = $data + '[' + $i + ']';
-                    out += '  if (' + ($passData) + ' === undefined) ' + ($passData) + ' = ';
-                    if (it.opts.useDefaults == 'shared') {
-                      out += ' ' + (it.useDefault($sch.default)) + ' ';
-                    } else {
-                      out += ' ' + (JSON.stringify($sch.default)) + ' ';
-                    }
-                    out += '; ';
-                  }
-                }
-              }
-            }
-          }
-          var arr5 = $rulesGroup.rules;
-          if (arr5) {
-            var $rule, i5 = -1,
-              l5 = arr5.length - 1;
-            while (i5 < l5) {
-              $rule = arr5[i5 += 1];
-              if ($shouldUseRule($rule)) {
-                out += ' ' + ($rule.code(it, $rule.keyword)) + ' ';
-                if ($breakOnError) {
-                  $closingBraces1 += '}';
-                }
-              }
-            }
-          }
-          if ($breakOnError) {
-            out += ' ' + ($closingBraces1) + ' ';
-            $closingBraces1 = '';
-          }
-          if ($rulesGroup.type) {
-            out += ' } ';
-            if ($typeSchema && $typeSchema === $rulesGroup.type) {
-              var $typeChecked = true;
-              out += ' else { ';
-              var $schemaPath = it.schemaPath + '.type',
-                $errSchemaPath = it.errSchemaPath + '/type';
-              var $$outStack = $$outStack || [];
-              $$outStack.push(out);
-              out = ''; /* istanbul ignore else */
-              if (it.createErrors !== false) {
-                out += ' { keyword: \'' + ($errorKeyword || 'type') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \'';
-                if ($typeIsArray) {
-                  out += '' + ($typeSchema.join(","));
-                } else {
-                  out += '' + ($typeSchema);
-                }
-                out += '\' } ';
-                if (it.opts.messages !== false) {
-                  out += ' , message: \'should be ';
-                  if ($typeIsArray) {
-                    out += '' + ($typeSchema.join(","));
-                  } else {
-                    out += '' + ($typeSchema);
-                  }
-                  out += '\' ';
-                }
-                if (it.opts.verbose) {
-                  out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-                }
-                out += ' } ';
-              } else {
-                out += ' {} ';
-              }
-              var __err = out;
-              out = $$outStack.pop();
-              if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-                if (it.async) {
-                  out += ' throw new ValidationError([' + (__err) + ']); ';
-                } else {
-                  out += ' validate.errors = [' + (__err) + ']; return false; ';
-                }
-              } else {
-                out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-              }
-              out += ' } ';
-            }
-          }
-          if ($breakOnError) {
-            out += ' if (errors === ';
-            if ($top) {
-              out += '0';
-            } else {
-              out += 'errs_' + ($lvl);
-            }
-            out += ') { ';
-            $closingBraces2 += '}';
-          }
-        }
-      }
-    }
-  }
-  if ($typeSchema && !$typeChecked && !(it.opts.coerceTypes && $coerceToTypes)) {
-    var $schemaPath = it.schemaPath + '.type',
-      $errSchemaPath = it.errSchemaPath + '/type',
-      $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType';
-    out += ' if (' + (it.util[$method]($typeSchema, $data, true)) + ') {   ';
-    var $$outStack = $$outStack || [];
-    $$outStack.push(out);
-    out = ''; /* istanbul ignore else */
-    if (it.createErrors !== false) {
-      out += ' { keyword: \'' + ($errorKeyword || 'type') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \'';
-      if ($typeIsArray) {
-        out += '' + ($typeSchema.join(","));
-      } else {
-        out += '' + ($typeSchema);
-      }
-      out += '\' } ';
-      if (it.opts.messages !== false) {
-        out += ' , message: \'should be ';
-        if ($typeIsArray) {
-          out += '' + ($typeSchema.join(","));
-        } else {
-          out += '' + ($typeSchema);
-        }
-        out += '\' ';
-      }
-      if (it.opts.verbose) {
-        out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
-      }
-      out += ' } ';
-    } else {
-      out += ' {} ';
-    }
-    var __err = out;
-    out = $$outStack.pop();
-    if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
-      if (it.async) {
-        out += ' throw new ValidationError([' + (__err) + ']); ';
-      } else {
-        out += ' validate.errors = [' + (__err) + ']; return false; ';
-      }
-    } else {
-      out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
-    }
-    out += ' }';
-  }
-  if ($breakOnError) {
-    out += ' ' + ($closingBraces2) + ' ';
-  }
-  if ($top) {
-    if ($async) {
-      out += ' if (errors === 0) return true;           ';
-      out += ' else throw new ValidationError(vErrors); ';
-    } else {
-      out += ' validate.errors = vErrors; ';
-      out += ' return errors === 0;       ';
-    }
-    out += ' }); return validate;';
-  } else {
-    out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';';
-  }
-  out = it.util.cleanUpCode(out);
-  if ($top && $breakOnError) {
-    out = it.util.cleanUpVarErrors(out, $async);
-  }
-
-  function $shouldUseGroup($rulesGroup) {
-    for (var i = 0; i < $rulesGroup.rules.length; i++)
-      if ($shouldUseRule($rulesGroup.rules[i])) return true;
-  }
-
-  function $shouldUseRule($rule) {
-    return it.schema[$rule.keyword] !== undefined || ($rule.keyword == 'properties' && (it.schema.additionalProperties === false || typeof it.schema.additionalProperties == 'object' || (it.schema.patternProperties && Object.keys(it.schema.patternProperties).length) || (it.opts.v5 && it.schema.patternGroups && Object.keys(it.schema.patternGroups).length)));
-  }
-  return out;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/keyword.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/keyword.js b/node_modules/ajv/lib/keyword.js
deleted file mode 100644
index 1c9cccf..0000000
--- a/node_modules/ajv/lib/keyword.js
+++ /dev/null
@@ -1,129 +0,0 @@
-'use strict';
-
-var IDENTIFIER = /^[a-z_$][a-z0-9_$\-]*$/i;
-var customRuleCode = require('./dotjs/custom');
-
-module.exports = {
-  add: addKeyword,
-  get: getKeyword,
-  remove: removeKeyword
-};
-
-/**
- * Define custom keyword
- * @this  Ajv
- * @param {String} keyword custom keyword, should be unique (including different from all standard, custom and macro keywords).
- * @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`.
- */
-function addKeyword(keyword, definition) {
-  /* jshint validthis: true */
-  /* eslint no-shadow: 0 */
-  var RULES = this.RULES;
-
-  if (RULES.keywords[keyword])
-    throw new Error('Keyword ' + keyword + ' is already defined');
-
-  if (!IDENTIFIER.test(keyword))
-    throw new Error('Keyword ' + keyword + ' is not a valid identifier');
-
-  if (definition) {
-    if (definition.macro && definition.valid !== undefined)
-      throw new Error('"valid" option cannot be used with macro keywords');
-
-    var dataType = definition.type;
-    if (Array.isArray(dataType)) {
-      var i, len = dataType.length;
-      for (i=0; i<len; i++) checkDataType(dataType[i]);
-      for (i=0; i<len; i++) _addRule(keyword, dataType[i], definition);
-    } else {
-      if (dataType) checkDataType(dataType);
-      _addRule(keyword, dataType, definition);
-    }
-
-    var $data = definition.$data === true && this._opts.v5;
-    if ($data && !definition.validate)
-      throw new Error('$data support: "validate" function is not defined');
-
-    var metaSchema = definition.metaSchema;
-    if (metaSchema) {
-      if ($data) {
-        metaSchema = {
-          anyOf: [
-            metaSchema,
-            { '$ref': 'https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-v5.json#/definitions/$data' }
-          ]
-        };
-      }
-      definition.validateSchema = this.compile(metaSchema, true);
-    }
-  }
-
-  RULES.keywords[keyword] = RULES.all[keyword] = true;
-
-
-  function _addRule(keyword, dataType, definition) {
-    var ruleGroup;
-    for (var i=0; i<RULES.length; i++) {
-      var rg = RULES[i];
-      if (rg.type == dataType) {
-        ruleGroup = rg;
-        break;
-      }
-    }
-
-    if (!ruleGroup) {
-      ruleGroup = { type: dataType, rules: [] };
-      RULES.push(ruleGroup);
-    }
-
-    var rule = {
-      keyword: keyword,
-      definition: definition,
-      custom: true,
-      code: customRuleCode
-    };
-    ruleGroup.rules.push(rule);
-    RULES.custom[keyword] = rule;
-  }
-
-
-  function checkDataType(dataType) {
-    if (!RULES.types[dataType]) throw new Error('Unknown type ' + dataType);
-  }
-}
-
-
-/**
- * Get keyword
- * @this  Ajv
- * @param {String} keyword pre-defined or custom keyword.
- * @return {Object|Boolean} custom keyword definition, `true` if it is a predefined keyword, `false` otherwise.
- */
-function getKeyword(keyword) {
-  /* jshint validthis: true */
-  var rule = this.RULES.custom[keyword];
-  return rule ? rule.definition : this.RULES.keywords[keyword] || false;
-}
-
-
-/**
- * Remove keyword
- * @this  Ajv
- * @param {String} keyword pre-defined or custom keyword.
- */
-function removeKeyword(keyword) {
-  /* jshint validthis: true */
-  var RULES = this.RULES;
-  delete RULES.keywords[keyword];
-  delete RULES.all[keyword];
-  delete RULES.custom[keyword];
-  for (var i=0; i<RULES.length; i++) {
-    var rules = RULES[i].rules;
-    for (var j=0; j<rules.length; j++) {
-      if (rules[j].keyword == keyword) {
-        rules.splice(j, 1);
-        break;
-      }
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/refs/json-schema-draft-04.json
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/refs/json-schema-draft-04.json b/node_modules/ajv/lib/refs/json-schema-draft-04.json
deleted file mode 100644
index 85eb502..0000000
--- a/node_modules/ajv/lib/refs/json-schema-draft-04.json
+++ /dev/null
@@ -1,150 +0,0 @@
-{
-    "id": "http://json-schema.org/draft-04/schema#",
-    "$schema": "http://json-schema.org/draft-04/schema#",
-    "description": "Core schema meta-schema",
-    "definitions": {
-        "schemaArray": {
-            "type": "array",
-            "minItems": 1,
-            "items": { "$ref": "#" }
-        },
-        "positiveInteger": {
-            "type": "integer",
-            "minimum": 0
-        },
-        "positiveIntegerDefault0": {
-            "allOf": [ { "$ref": "#/definitions/positiveInteger" }, { "default": 0 } ]
-        },
-        "simpleTypes": {
-            "enum": [ "array", "boolean", "integer", "null", "number", "object", "string" ]
-        },
-        "stringArray": {
-            "type": "array",
-            "items": { "type": "string" },
-            "minItems": 1,
-            "uniqueItems": true
-        }
-    },
-    "type": "object",
-    "properties": {
-        "id": {
-            "type": "string",
-            "format": "uri"
-        },
-        "$schema": {
-            "type": "string",
-            "format": "uri"
-        },
-        "title": {
-            "type": "string"
-        },
-        "description": {
-            "type": "string"
-        },
-        "default": {},
-        "multipleOf": {
-            "type": "number",
-            "minimum": 0,
-            "exclusiveMinimum": true
-        },
-        "maximum": {
-            "type": "number"
-        },
-        "exclusiveMaximum": {
-            "type": "boolean",
-            "default": false
-        },
-        "minimum": {
-            "type": "number"
-        },
-        "exclusiveMinimum": {
-            "type": "boolean",
-            "default": false
-        },
-        "maxLength": { "$ref": "#/definitions/positiveInteger" },
-        "minLength": { "$ref": "#/definitions/positiveIntegerDefault0" },
-        "pattern": {
-            "type": "string",
-            "format": "regex"
-        },
-        "additionalItems": {
-            "anyOf": [
-                { "type": "boolean" },
-                { "$ref": "#" }
-            ],
-            "default": {}
-        },
-        "items": {
-            "anyOf": [
-                { "$ref": "#" },
-                { "$ref": "#/definitions/schemaArray" }
-            ],
-            "default": {}
-        },
-        "maxItems": { "$ref": "#/definitions/positiveInteger" },
-        "minItems": { "$ref": "#/definitions/positiveIntegerDefault0" },
-        "uniqueItems": {
-            "type": "boolean",
-            "default": false
-        },
-        "maxProperties": { "$ref": "#/definitions/positiveInteger" },
-        "minProperties": { "$ref": "#/definitions/positiveIntegerDefault0" },
-        "required": { "$ref": "#/definitions/stringArray" },
-        "additionalProperties": {
-            "anyOf": [
-                { "type": "boolean" },
-                { "$ref": "#" }
-            ],
-            "default": {}
-        },
-        "definitions": {
-            "type": "object",
-            "additionalProperties": { "$ref": "#" },
-            "default": {}
-        },
-        "properties": {
-            "type": "object",
-            "additionalProperties": { "$ref": "#" },
-            "default": {}
-        },
-        "patternProperties": {
-            "type": "object",
-            "additionalProperties": { "$ref": "#" },
-            "default": {}
-        },
-        "dependencies": {
-            "type": "object",
-            "additionalProperties": {
-                "anyOf": [
-                    { "$ref": "#" },
-                    { "$ref": "#/definitions/stringArray" }
-                ]
-            }
-        },
-        "enum": {
-            "type": "array",
-            "minItems": 1,
-            "uniqueItems": true
-        },
-        "type": {
-            "anyOf": [
-                { "$ref": "#/definitions/simpleTypes" },
-                {
-                    "type": "array",
-                    "items": { "$ref": "#/definitions/simpleTypes" },
-                    "minItems": 1,
-                    "uniqueItems": true
-                }
-            ]
-        },
-        "allOf": { "$ref": "#/definitions/schemaArray" },
-        "anyOf": { "$ref": "#/definitions/schemaArray" },
-        "oneOf": { "$ref": "#/definitions/schemaArray" },
-        "not": { "$ref": "#" }
-    },
-    "dependencies": {
-        "exclusiveMaximum": [ "maximum" ],
-        "exclusiveMinimum": [ "minimum" ]
-    },
-    "default": {}
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/refs/json-schema-v5.json
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/refs/json-schema-v5.json b/node_modules/ajv/lib/refs/json-schema-v5.json
deleted file mode 100644
index 5964042..0000000
--- a/node_modules/ajv/lib/refs/json-schema-v5.json
+++ /dev/null
@@ -1,328 +0,0 @@
-{
-    "id": "https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-v5.json#",
-    "$schema": "http://json-schema.org/draft-04/schema#",
-    "description": "Core schema meta-schema (v5 proposals)",
-    "definitions": {
-        "schemaArray": {
-            "type": "array",
-            "minItems": 1,
-            "items": { "$ref": "#" }
-        },
-        "positiveInteger": {
-            "type": "integer",
-            "minimum": 0
-        },
-        "positiveIntegerDefault0": {
-            "allOf": [ { "$ref": "#/definitions/positiveInteger" }, { "default": 0 } ]
-        },
-        "simpleTypes": {
-            "enum": [ "array", "boolean", "integer", "null", "number", "object", "string" ]
-        },
-        "stringArray": {
-            "type": "array",
-            "items": { "type": "string" },
-            "minItems": 1,
-            "uniqueItems": true
-        },
-        "$data": {
-            "type": "object",
-            "required": [ "$data" ],
-            "properties": {
-                "$data": {
-                    "type": "string",
-                    "anyOf": [
-                        { "format": "relative-json-pointer" }, 
-                        { "format": "json-pointer" }
-                    ]
-                }
-            },
-            "additionalProperties": false
-        }
-    },
-    "type": "object",
-    "properties": {
-        "id": {
-            "type": "string",
-            "format": "uri"
-        },
-        "$schema": {
-            "type": "string",
-            "format": "uri"
-        },
-        "title": {
-            "type": "string"
-        },
-        "description": {
-            "type": "string"
-        },
-        "default": {},
-        "multipleOf": {
-            "anyOf": [
-                {
-                    "type": "number",
-                    "minimum": 0,
-                    "exclusiveMinimum": true
-                },
-                { "$ref": "#/definitions/$data" }
-            ]
-        },
-        "maximum": {
-            "anyOf": [
-                { "type": "number" },
-                { "$ref": "#/definitions/$data" }
-            ]
-        },
-        "exclusiveMaximum": {
-            "anyOf": [
-                {
-                    "type": "boolean",
-                    "default": false
-                },
-                { "$ref": "#/definitions/$data" }
-            ]
-        },
-        "minimum": {
-            "anyOf": [
-                { "type": "number" },
-                { "$ref": "#/definitions/$data" }
-            ]
-        },
-        "exclusiveMinimum": {
-            "anyOf": [
-                {
-                    "type": "boolean",
-                    "default": false
-                },
-                { "$ref": "#/definitions/$data" }
-            ]
-        },
-        "maxLength": {
-            "anyOf": [
-                { "$ref": "#/definitions/positiveInteger" },
-                { "$ref": "#/definitions/$data" }
-            ]
-        },
-        "minLength": {
-            "anyOf": [
-                { "$ref": "#/definitions/positiveIntegerDefault0" },
-                { "$ref": "#/definitions/$data" }
-            ]
-        },
-        "pattern": {
-            "anyOf": [
-                {
-                    "type": "string",
-                    "format": "regex"
-                },
-                { "$ref": "#/definitions/$data" }
-            ]
-        },
-        "additionalItems": {
-            "anyOf": [
-                { "type": "boolean" },
-                { "$ref": "#" },
-                { "$ref": "#/definitions/$data" }
-            ],
-            "default": {}
-        },
-        "items": {
-            "anyOf": [
-                { "$ref": "#" },
-                { "$ref": "#/definitions/schemaArray" }
-            ],
-            "default": {}
-        },
-        "maxItems": {
-            "anyOf": [
-                { "$ref": "#/definitions/positiveInteger" },
-                { "$ref": "#/definitions/$data" }
-            ]
-        },
-        "minItems": {
-            "anyOf": [
-                { "$ref": "#/definitions/positiveIntegerDefault0" },
-                { "$ref": "#/definitions/$data" }
-            ]
-        },
-        "uniqueItems": {
-            "anyOf": [
-                {
-                    "type": "boolean",
-                    "default": false
-                },
-                { "$ref": "#/definitions/$data" }
-            ]
-        },
-        "maxProperties": {
-            "anyOf": [
-                { "$ref": "#/definitions/positiveInteger" },
-                { "$ref": "#/definitions/$data" }
-            ]
-        },
-        "minProperties": {
-            "anyOf": [
-                { "$ref": "#/definitions/positiveIntegerDefault0" },
-                { "$ref": "#/definitions/$data" }
-            ]
-        },
-        "required": {
-            "anyOf": [
-                { "$ref": "#/definitions/stringArray" },
-                { "$ref": "#/definitions/$data" }
-            ]
-        },
-        "additionalProperties": {
-            "anyOf": [
-                { "type": "boolean" },
-                { "$ref": "#" },
-                { "$ref": "#/definitions/$data" }
-            ],
-            "default": {}
-        },
-        "definitions": {
-            "type": "object",
-            "additionalProperties": { "$ref": "#" },
-            "default": {}
-        },
-        "properties": {
-            "type": "object",
-            "additionalProperties": { "$ref": "#" },
-            "default": {}
-        },
-        "patternProperties": {
-            "type": "object",
-            "additionalProperties": { "$ref": "#" },
-            "default": {}
-        },
-        "dependencies": {
-            "type": "object",
-            "additionalProperties": {
-                "anyOf": [
-                    { "$ref": "#" },
-                    { "$ref": "#/definitions/stringArray" }
-                ]
-            }
-        },
-        "enum": {
-            "anyOf": [
-                {
-                    "type": "array",
-                    "minItems": 1,
-                    "uniqueItems": true
-                },
-                { "$ref": "#/definitions/$data" }
-            ]
-        },
-        "type": {
-            "anyOf": [
-                { "$ref": "#/definitions/simpleTypes" },
-                {
-                    "type": "array",
-                    "items": { "$ref": "#/definitions/simpleTypes" },
-                    "minItems": 1,
-                    "uniqueItems": true
-                }
-            ]
-        },
-        "allOf": { "$ref": "#/definitions/schemaArray" },
-        "anyOf": { "$ref": "#/definitions/schemaArray" },
-        "oneOf": { "$ref": "#/definitions/schemaArray" },
-        "not": { "$ref": "#" },
-        "format": {
-            "anyOf": [
-                { "type": "string" },
-                { "$ref": "#/definitions/$data" }
-            ]
-        },
-        "formatMaximum": {
-            "anyOf": [
-                { "type": "string" },
-                { "$ref": "#/definitions/$data" }
-            ]
-        },
-        "formatMinimum": {
-            "anyOf": [
-                { "type": "string" },
-                { "$ref": "#/definitions/$data" }
-            ]
-        },
-        "formatExclusiveMaximum": {
-            "anyOf": [
-                {
-                    "type": "boolean",
-                    "default": false
-                },
-                { "$ref": "#/definitions/$data" }
-            ]
-        },
-        "formatExclusiveMinimum": {
-            "anyOf": [
-                {
-                    "type": "boolean",
-                    "default": false
-                },
-                { "$ref": "#/definitions/$data" }
-            ]
-        },
-        "constant": {
-            "anyOf": [
-                {},
-                { "$ref": "#/definitions/$data" }
-            ]
-        },
-        "contains": { "$ref": "#" },
-        "patternGroups": {
-            "type": "object",
-            "additionalProperties": {
-                "type": "object",
-                "required": [ "schema" ],
-                "properties": {
-                    "maximum": {
-                        "anyOf": [
-                            { "$ref": "#/definitions/positiveInteger" },
-                            { "$ref": "#/definitions/$data" }
-                        ]
-                    },
-                    "minimum": {
-                        "anyOf": [
-                            { "$ref": "#/definitions/positiveIntegerDefault0" },
-                            { "$ref": "#/definitions/$data" }
-                        ]
-                    },
-                    "schema": { "$ref": "#" }
-                },
-                "additionalProperties": false
-            },
-            "default": {}
-        },
-        "switch": {
-            "type": "array",
-            "items": {
-                "required": [ "then" ],
-                "properties": {
-                    "if": { "$ref": "#" },
-                    "then": {
-                        "anyOf": [
-                            { "type": "boolean" },
-                            { "$ref": "#" }
-                        ]
-                    },
-                    "continue": { "type": "boolean" }
-                },
-                "additionalProperties": false,
-                "dependencies": {
-                    "continue": [ "if" ]
-                }
-            }
-        }
-    },
-    "dependencies": {
-        "exclusiveMaximum": [ "maximum" ],
-        "exclusiveMinimum": [ "minimum" ],
-        "formatMaximum": [ "format" ],
-        "formatMinimum": [ "format" ],
-        "formatExclusiveMaximum": [ "formatMaximum" ],
-        "formatExclusiveMinimum": [ "formatMinimum" ]
-    },
-    "default": {}
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/lib/v5.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/lib/v5.js b/node_modules/ajv/lib/v5.js
deleted file mode 100644
index 8f6e53f..0000000
--- a/node_modules/ajv/lib/v5.js
+++ /dev/null
@@ -1,52 +0,0 @@
-'use strict';
-
-var META_SCHEMA_ID = 'https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-v5.json';
-
-module.exports = {
-  enable: enableV5,
-  META_SCHEMA_ID: META_SCHEMA_ID
-};
-
-
-function enableV5(ajv) {
-  var inlineFunctions = {
-    'switch': require('./dotjs/switch'),
-    'constant': require('./dotjs/constant'),
-    '_formatLimit': require('./dotjs/_formatLimit'),
-    'patternRequired': require('./dotjs/patternRequired')
-  };
-
-  if (ajv._opts.meta !== false) {
-    var metaSchema = require('./refs/json-schema-v5.json');
-    ajv.addMetaSchema(metaSchema, META_SCHEMA_ID);
-  }
-  _addKeyword('constant');
-  ajv.addKeyword('contains', { type: 'array', macro: containsMacro });
-
-  _addKeyword('formatMaximum', 'string', inlineFunctions._formatLimit);
-  _addKeyword('formatMinimum', 'string', inlineFunctions._formatLimit);
-  ajv.addKeyword('formatExclusiveMaximum');
-  ajv.addKeyword('formatExclusiveMinimum');
-
-  ajv.addKeyword('patternGroups'); // implemented in properties.jst
-  _addKeyword('patternRequired', 'object');
-  _addKeyword('switch');
-
-
-  function _addKeyword(keyword, types, inlineFunc) {
-    var definition = {
-      inline: inlineFunc || inlineFunctions[keyword],
-      statements: true,
-      errors: 'full'
-    };
-    if (types) definition.type = types;
-    ajv.addKeyword(keyword, definition);
-  }
-}
-
-
-function containsMacro(schema) {
-  return {
-    not: { items: { not: schema } }
-  };
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/package.json
----------------------------------------------------------------------
diff --git a/node_modules/ajv/package.json b/node_modules/ajv/package.json
deleted file mode 100644
index 485c66c..0000000
--- a/node_modules/ajv/package.json
+++ /dev/null
@@ -1,168 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "ajv@^4.9.1",
-        "scope": null,
-        "escapedName": "ajv",
-        "name": "ajv",
-        "rawSpec": "^4.9.1",
-        "spec": ">=4.9.1 <5.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/har-validator"
-    ]
-  ],
-  "_from": "ajv@>=4.9.1 <5.0.0",
-  "_id": "ajv@4.11.5",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/ajv",
-  "_nodeVersion": "4.6.1",
-  "_npmOperationalInternal": {
-    "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/ajv-4.11.5.tgz_1489268678176_0.7930811231490225"
-  },
-  "_npmUser": {
-    "name": "esp",
-    "email": "e.poberezkin@me.com"
-  },
-  "_npmVersion": "2.15.9",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "ajv@^4.9.1",
-    "scope": null,
-    "escapedName": "ajv",
-    "name": "ajv",
-    "rawSpec": "^4.9.1",
-    "spec": ">=4.9.1 <5.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/har-validator"
-  ],
-  "_resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.5.tgz",
-  "_shasum": "b6ee74657b993a01dce44b7944d56f485828d5bd",
-  "_shrinkwrap": null,
-  "_spec": "ajv@^4.9.1",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/har-validator",
-  "author": {
-    "name": "Evgeny Poberezkin"
-  },
-  "bugs": {
-    "url": "https://github.com/epoberezkin/ajv/issues"
-  },
-  "dependencies": {
-    "co": "^4.6.0",
-    "json-stable-stringify": "^1.0.1"
-  },
-  "description": "Another JSON Schema Validator",
-  "devDependencies": {
-    "bluebird": "^3.1.5",
-    "brfs": "^1.4.3",
-    "browserify": "^14.1.0",
-    "chai": "^3.5.0",
-    "coveralls": "^2.11.4",
-    "del-cli": "^0.2.1",
-    "dot": "^1.0.3",
-    "eslint": "^3.2.2",
-    "gh-pages-generator": "^0.2.0",
-    "glob": "^7.0.0",
-    "if-node-version": "^1.0.0",
-    "js-beautify": "^1.5.6",
-    "jshint": "^2.8.0",
-    "json-schema-test": "^1.1.1",
-    "karma": "^1.0.0",
-    "karma-chrome-launcher": "^2.0.0",
-    "karma-mocha": "^1.1.1",
-    "karma-phantomjs-launcher": "^1.0.0",
-    "karma-sauce-launcher": "^1.1.0",
-    "mocha": "^3.0.0",
-    "nodent": "^3.0.2",
-    "nyc": "^10.0.0",
-    "phantomjs-prebuilt": "^2.1.4",
-    "pre-commit": "^1.1.1",
-    "regenerator": "0.9.5",
-    "require-globify": "^1.3.0",
-    "typescript": "^2.0.3",
-    "uglify-js": "^2.6.1",
-    "watch": "^1.0.0"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "b6ee74657b993a01dce44b7944d56f485828d5bd",
-    "tarball": "https://registry.npmjs.org/ajv/-/ajv-4.11.5.tgz"
-  },
-  "files": [
-    "lib/",
-    "dist/",
-    "scripts/",
-    "LICENSE",
-    ".tonic_example.js"
-  ],
-  "gitHead": "c0a625b1a911ef1de6a67ed8f7819cba12161ff8",
-  "homepage": "https://github.com/epoberezkin/ajv",
-  "keywords": [
-    "JSON",
-    "schema",
-    "validator",
-    "validation",
-    "jsonschema",
-    "json-schema",
-    "json-schema-validator",
-    "json-schema-validation"
-  ],
-  "license": "MIT",
-  "main": "lib/ajv.js",
-  "maintainers": [
-    {
-      "name": "blakeembrey",
-      "email": "hello@blakeembrey.com"
-    },
-    {
-      "name": "esp",
-      "email": "e.poberezkin@me.com"
-    }
-  ],
-  "name": "ajv",
-  "nyc": {
-    "exclude": [
-      "**/spec/**",
-      "node_modules"
-    ],
-    "reporter": [
-      "lcov",
-      "text-summary"
-    ]
-  },
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/epoberezkin/ajv.git"
-  },
-  "scripts": {
-    "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js",
-    "bundle": "node ./scripts/bundle.js . Ajv pure_getters",
-    "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent",
-    "bundle-beautify": "node ./scripts/bundle.js js-beautify",
-    "bundle-nodent": "node ./scripts/bundle.js nodent",
-    "bundle-regenerator": "node ./scripts/bundle.js regenerator",
-    "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts",
-    "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*",
-    "prepublish": "npm run build && npm run bundle-all",
-    "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser",
-    "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma",
-    "test-cov": "nyc npm run test-spec",
-    "test-debug": "mocha spec/*.spec.js --debug-brk -R spec",
-    "test-fast": "AJV_FAST_TEST=true npm run test-spec",
-    "test-karma": "karma start --single-run --browsers PhantomJS",
-    "test-spec": "mocha spec/*.spec.js -R spec",
-    "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts",
-    "watch": "watch 'npm run build' ./lib/dot"
-  },
-  "tonicExampleFilename": ".tonic_example.js",
-  "typings": "lib/ajv.d.ts",
-  "version": "4.11.5",
-  "webpack": "dist/ajv.bundle.js"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/scripts/.eslintrc.yml
----------------------------------------------------------------------
diff --git a/node_modules/ajv/scripts/.eslintrc.yml b/node_modules/ajv/scripts/.eslintrc.yml
deleted file mode 100644
index 493d7d3..0000000
--- a/node_modules/ajv/scripts/.eslintrc.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-rules:
-  no-console: 0
-  no-empty: [2, allowEmptyCatch: true]

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/scripts/bundle.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/scripts/bundle.js b/node_modules/ajv/scripts/bundle.js
deleted file mode 100644
index b3a9890..0000000
--- a/node_modules/ajv/scripts/bundle.js
+++ /dev/null
@@ -1,54 +0,0 @@
-'use strict';
-
-var fs = require('fs')
-  , path = require('path')
-  , browserify = require('browserify')
-  , uglify = require('uglify-js');
-
-var pkg = process.argv[2]
-  , standalone = process.argv[3]
-  , compress = process.argv[4];
-
-var packageDir = path.join(__dirname, '..');
-if (pkg != '.') packageDir = path.join(packageDir, 'node_modules', pkg);
-
-var json = require(path.join(packageDir, 'package.json'));
-
-var distDir = path.join(__dirname, '..', 'dist');
-if (!fs.existsSync(distDir)) fs.mkdirSync(distDir);
-
-var bOpts = {};
-if (standalone) bOpts.standalone = standalone;
-
-browserify(bOpts)
-.require(path.join(packageDir, json.main), {expose: json.name})
-.bundle(function (err, buf) {
-  if (err) {
-    console.error('browserify error:', err);
-    process.exit(1);
-  }
-
-  var outputFile = path.join(distDir, json.name);
-  var outputBundle = outputFile + '.bundle.js';
-  fs.writeFileSync(outputBundle, buf);
-  var uglifyOpts = {
-    warnings: true,
-    compress: {},
-    output: {
-      preamble: '/* ' + json.name + ' ' + json.version + ': ' + json.description + ' */'
-    }
-  };
-  if (compress) {
-    var compressOpts = compress.split(',');
-    for (var i=0; i<compressOpts.length; ++i) {
-      var pair = compressOpts[i].split('=');
-      uglifyOpts.compress[pair[0]] = pair.length < 1 || pair[1] != 'false';
-    }
-  }
-  if (standalone) uglifyOpts.outSourceMap = json.name + '.min.js.map';
-
-  var result = uglify.minify(outputBundle, uglifyOpts);
-  fs.writeFileSync(outputFile + '.min.js', result.code);
-  if (result.map) fs.writeFileSync(outputFile + '.min.js.map', result.map);
-  if (!standalone) fs.unlinkSync(outputBundle);
-});

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/scripts/compile-dots.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/scripts/compile-dots.js b/node_modules/ajv/scripts/compile-dots.js
deleted file mode 100644
index 486d0a9..0000000
--- a/node_modules/ajv/scripts/compile-dots.js
+++ /dev/null
@@ -1,59 +0,0 @@
-//compile doT templates to js functions
-'use strict';
-
-var glob = require('glob')
-  , fs = require('fs')
-  , path = require('path')
-  , doT = require('dot')
-  , beautify = require('js-beautify').js_beautify;
-
-var defsRootPath = process.argv[2] || path.join(__dirname, '../lib');
-
-var defs = {};
-var defFiles = glob.sync('./dot/**/*.def', { cwd: defsRootPath });
-defFiles.forEach(function (f) {
-  var name = path.basename(f, '.def');
-  defs[name] = fs.readFileSync(path.join(defsRootPath, f));
-});
-
-var filesRootPath = process.argv[3] || path.join(__dirname, '../lib');
-var files = glob.sync('./dot/**/*.jst', { cwd: filesRootPath });
-
-var dotjsPath = path.join(filesRootPath, './dotjs');
-try { fs.mkdirSync(dotjsPath); } catch(e) {}
-
-console.log('\n\nCompiling:');
-
-var FUNCTION_NAME = /function\s+anonymous\s*\(it[^)]*\)\s*{/;
-var OUT_EMPTY_STRING = /out\s*\+=\s*'\s*';/g;
-var ISTANBUL = /\'(istanbul[^']+)\';/g;
-var VARS = [
-  '$errs', '$valid', '$lvl', '$data', '$dataLvl',
-  '$errorKeyword', '$closingBraces', '$schemaPath'
-];
-
-files.forEach(function (f) {
-  var keyword = path.basename(f, '.jst');
-  var targetPath = path.join(dotjsPath, keyword + '.js');
-  var template = fs.readFileSync(path.join(filesRootPath, f));
-  var code = doT.compile(template, defs);
-  code = code.toString()
-             .replace(OUT_EMPTY_STRING, '')
-             .replace(FUNCTION_NAME, 'function generate_' + keyword + '(it, $keyword) {')
-             .replace(ISTANBUL, '/* $1 */');
-  VARS.forEach(removeUnusedVar);
-  code = "'use strict';\nmodule.exports = " + code;
-  code = beautify(code, { indent_size: 2 }) + '\n';
-  fs.writeFileSync(targetPath, code);
-  console.log('compiled', keyword);
-
-  function removeUnusedVar(v) {
-    v = v.replace(/\$/g, '\\$$');
-    var regexp = new RegExp(v + '[^A-Za-z0-9_$]', 'g');
-    var count = (code.match(regexp) || []).length;
-    if (count == 1) {
-      regexp = new RegExp('var\\s+' + v + '\\s*=[^;]+;|var\\s+' + v + ';');
-      code = code.replace(regexp, '');
-    }
-  }
-});

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/scripts/info
----------------------------------------------------------------------
diff --git a/node_modules/ajv/scripts/info b/node_modules/ajv/scripts/info
deleted file mode 100755
index 77269ab..0000000
--- a/node_modules/ajv/scripts/info
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/env node
-
-'use strict';
-
-var fs = require('fs');
-var name = process.argv[2] || '.';
-var property = process.argv[3] || 'version';
-if (name != '.') name = 'node_modules/' + name;
-var json = JSON.parse(fs.readFileSync(name + '/package.json', 'utf8'));
-console.log(json[property]);

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/scripts/prepare-tests
----------------------------------------------------------------------
diff --git a/node_modules/ajv/scripts/prepare-tests b/node_modules/ajv/scripts/prepare-tests
deleted file mode 100755
index 6f62634..0000000
--- a/node_modules/ajv/scripts/prepare-tests
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env sh
-
-set -e
-
-mkdir -p .browser
-
-find spec -type f -name '*.spec.js' | \
-xargs -I {} sh -c \
-'export f="{}"; browserify $f -t require-globify -t brfs -x ajv -u buffer -o $(echo $f | sed -e "s/spec/.browser/");'

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/scripts/travis-gh-pages
----------------------------------------------------------------------
diff --git a/node_modules/ajv/scripts/travis-gh-pages b/node_modules/ajv/scripts/travis-gh-pages
deleted file mode 100755
index ac8b8f5..0000000
--- a/node_modules/ajv/scripts/travis-gh-pages
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-if [[ "$TRAVIS_BRANCH" == "master" && "$TRAVIS_PULL_REQUEST" == "false" && $TRAVIS_JOB_NUMBER =~ ".3" ]]; then
-  git diff --name-only $TRAVIS_COMMIT_RANGE | grep -qE '\.md$|^LICENSE$' && {
-    rm -rf ../gh-pages
-    git clone -b gh-pages --single-branch https://${GITHUB_TOKEN}@github.com/epoberezkin/ajv.git ../gh-pages
-    mkdir -p ../gh-pages/_source
-    cp *.md ../gh-pages/_source
-    cp LICENSE ../gh-pages/_source
-    currentDir=$(pwd)
-    cd ../gh-pages
-    $currentDir/node_modules/.bin/gh-pages-generator
-    git config user.email "$GIT_USER_EMAIL"
-    git config user.name "$GIT_USER_NAME"
-    git add .
-    git commit -am "updated by travis build #$TRAVIS_BUILD_NUMBER"
-    git push --quiet origin gh-pages > /dev/null 2>&1
-  }
-fi

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/amdefine/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/amdefine/LICENSE b/node_modules/amdefine/LICENSE
deleted file mode 100644
index 9b25ee0..0000000
--- a/node_modules/amdefine/LICENSE
+++ /dev/null
@@ -1,58 +0,0 @@
-amdefine is released under two licenses: new BSD, and MIT. You may pick the
-license that best suits your development needs. The text of both licenses are
-provided below.
-
-
-The "New" BSD License:
-----------------------
-
-Copyright (c) 2011-2016, The Dojo Foundation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-  * Redistributions of source code must retain the above copyright notice, this
-    list of conditions and the following disclaimer.
-  * Redistributions in binary form must reproduce the above copyright notice,
-    this list of conditions and the following disclaimer in the documentation
-    and/or other materials provided with the distribution.
-  * Neither the name of the Dojo Foundation nor the names of its contributors
-    may be used to endorse or promote products derived from this software
-    without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-
-MIT License
------------
-
-Copyright (c) 2011-2016, The Dojo Foundation
-
-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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/amdefine/README.md
----------------------------------------------------------------------
diff --git a/node_modules/amdefine/README.md b/node_modules/amdefine/README.md
deleted file mode 100644
index 037a6e8..0000000
--- a/node_modules/amdefine/README.md
+++ /dev/null
@@ -1,171 +0,0 @@
-# amdefine
-
-A module that can be used to implement AMD's define() in Node. This allows you
-to code to the AMD API and have the module work in node programs without
-requiring those other programs to use AMD.
-
-## Usage
-
-**1)** Update your package.json to indicate amdefine as a dependency:
-
-```javascript
-    "dependencies": {
-        "amdefine": ">=0.1.0"
-    }
-```
-
-Then run `npm install` to get amdefine into your project.
-
-**2)** At the top of each module that uses define(), place this code:
-
-```javascript
-if (typeof define !== 'function') { var define = require('amdefine')(module) }
-```
-
-**Only use these snippets** when loading amdefine. If you preserve the basic structure,
-with the braces, it will be stripped out when using the [RequireJS optimizer](#optimizer).
-
-You can add spaces, line breaks and even require amdefine with a local path, but
-keep the rest of the structure to get the stripping behavior.
-
-As you may know, because `if` statements in JavaScript don't have their own scope, the var
-declaration in the above snippet is made whether the `if` expression is truthy or not. If
-RequireJS is loaded then the declaration is superfluous because `define` is already already
-declared in the same scope in RequireJS. Fortunately JavaScript handles multiple `var`
-declarations of the same variable in the same scope gracefully.
-
-If you want to deliver amdefine.js with your code rather than specifying it as a dependency
-with npm, then just download the latest release and refer to it using a relative path:
-
-[Latest Version](https://github.com/jrburke/amdefine/raw/latest/amdefine.js)
-
-### amdefine/intercept
-
-Consider this very experimental.
-
-Instead of pasting the piece of text for the amdefine setup of a `define`
-variable in each module you create or consume, you can use `amdefine/intercept`
-instead. It will automatically insert the above snippet in each .js file loaded
-by Node.
-
-**Warning**: you should only use this if you are creating an application that
-is consuming AMD style defined()'d modules that are distributed via npm and want
-to run that code in Node.
-
-For library code where you are not sure if it will be used by others in Node or
-in the browser, then explicitly depending on amdefine and placing the code
-snippet above is suggested path, instead of using `amdefine/intercept`. The
-intercept module affects all .js files loaded in the Node app, and it is
-inconsiderate to modify global state like that unless you are also controlling
-the top level app.
-
-#### Why distribute AMD-style modules via npm?
-
-npm has a lot of weaknesses for front-end use (installed layout is not great,
-should have better support for the `baseUrl + moduleID + '.js' style of loading,
-single file JS installs), but some people want a JS package manager and are
-willing to live with those constraints. If that is you, but still want to author
-in AMD style modules to get dynamic require([]), better direct source usage and
-powerful loader plugin support in the browser, then this tool can help.
-
-#### amdefine/intercept usage
-
-Just require it in your top level app module (for example index.js, server.js):
-
-```javascript
-require('amdefine/intercept');
-```
-
-The module does not return a value, so no need to assign the result to a local
-variable.
-
-Then just require() code as you normally would with Node's require(). Any .js
-loaded after the intercept require will have the amdefine check injected in
-the .js source as it is loaded. It does not modify the source on disk, just
-prepends some content to the text of the module as it is loaded by Node.
-
-#### How amdefine/intercept works
-
-It overrides the `Module._extensions['.js']` in Node to automatically prepend
-the amdefine snippet above. So, it will affect any .js file loaded by your
-app.
-
-## define() usage
-
-It is best if you use the anonymous forms of define() in your module:
-
-```javascript
-define(function (require) {
-    var dependency = require('dependency');
-});
-```
-
-or
-
-```javascript
-define(['dependency'], function (dependency) {
-
-});
-```
-
-## RequireJS optimizer integration. <a name="optimizer"></name>
-
-Version 1.0.3 of the [RequireJS optimizer](http://requirejs.org/docs/optimization.html)
-will have support for stripping the `if (typeof define !== 'function')` check
-mentioned above, so you can include this snippet for code that runs in the
-browser, but avoid taking the cost of the if() statement once the code is
-optimized for deployment.
-
-## Node 0.4 Support
-
-If you want to support Node 0.4, then add `require` as the second parameter to amdefine:
-
-```javascript
-//Only if you want Node 0.4. If using 0.5 or later, use the above snippet.
-if (typeof define !== 'function') { var define = require('amdefine')(module, require) }
-```
-
-## Limitations
-
-### Synchronous vs Asynchronous
-
-amdefine creates a define() function that is callable by your code. It will
-execute and trace dependencies and call the factory function *synchronously*,
-to keep the behavior in line with Node's synchronous dependency tracing.
-
-The exception: calling AMD's callback-style require() from inside a factory
-function. The require callback is called on process.nextTick():
-
-```javascript
-define(function (require) {
-    require(['a'], function(a) {
-        //'a' is loaded synchronously, but
-        //this callback is called on process.nextTick().
-    });
-});
-```
-
-### Loader Plugins
-
-Loader plugins are supported as long as they call their load() callbacks
-synchronously. So ones that do network requests will not work. However plugins
-like [text](http://requirejs.org/docs/api.html#text) can load text files locally.
-
-The plugin API's `load.fromText()` is **not supported** in amdefine, so this means
-transpiler plugins like the [CoffeeScript loader plugin](https://github.com/jrburke/require-cs)
-will not work. This may be fixable, but it is a bit complex, and I do not have
-enough node-fu to figure it out yet. See the source for amdefine.js if you want
-to get an idea of the issues involved.
-
-## Tests
-
-To run the tests, cd to **tests** and run:
-
-```
-node all.js
-node all-intercept.js
-```
-
-## License
-
-New BSD and MIT. Check the LICENSE file for all the details.


[30/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/argparse/lib/help/formatter.js
----------------------------------------------------------------------
diff --git a/node_modules/argparse/lib/help/formatter.js b/node_modules/argparse/lib/help/formatter.js
deleted file mode 100644
index a8e4148..0000000
--- a/node_modules/argparse/lib/help/formatter.js
+++ /dev/null
@@ -1,795 +0,0 @@
-/**
- * class HelpFormatter
- *
- * Formatter for generating usage messages and argument help strings. Only the
- * name of this class is considered a public API. All the methods provided by
- * the class are considered an implementation detail.
- *
- * Do not call in your code, use this class only for inherits your own forvatter
- *
- * ToDo add [additonal formatters][1]
- *
- * [1]:http://docs.python.org/dev/library/argparse.html#formatter-class
- **/
-'use strict';
-
-var sprintf = require('sprintf-js').sprintf;
-
-// Constants
-var c = require('../const');
-
-var $$ = require('../utils');
-
-
-/*:nodoc:* internal
- * new Support(parent, heding)
- * - parent (object): parent section
- * - heading (string): header string
- *
- **/
-function Section(parent, heading) {
-  this._parent = parent;
-  this._heading = heading;
-  this._items = [];
-}
-
-/*:nodoc:* internal
- * Section#addItem(callback) -> Void
- * - callback (array): tuple with function and args
- *
- * Add function for single element
- **/
-Section.prototype.addItem = function (callback) {
-  this._items.push(callback);
-};
-
-/*:nodoc:* internal
- * Section#formatHelp(formatter) -> string
- * - formatter (HelpFormatter): current formatter
- *
- * Form help section string
- *
- **/
-Section.prototype.formatHelp = function (formatter) {
-  var itemHelp, heading;
-
-  // format the indented section
-  if (this._parent) {
-    formatter._indent();
-  }
-
-  itemHelp = this._items.map(function (item) {
-    var obj, func, args;
-
-    obj = formatter;
-    func = item[0];
-    args = item[1];
-    return func.apply(obj, args);
-  });
-  itemHelp = formatter._joinParts(itemHelp);
-
-  if (this._parent) {
-    formatter._dedent();
-  }
-
-  // return nothing if the section was empty
-  if (!itemHelp) {
-    return '';
-  }
-
-  // add the heading if the section was non-empty
-  heading = '';
-  if (this._heading && this._heading !== c.SUPPRESS) {
-    var currentIndent = formatter.currentIndent;
-    heading = $$.repeat(' ', currentIndent) + this._heading + ':' + c.EOL;
-  }
-
-  // join the section-initialize newline, the heading and the help
-  return formatter._joinParts([ c.EOL, heading, itemHelp, c.EOL ]);
-};
-
-/**
- * new HelpFormatter(options)
- *
- * #### Options:
- * - `prog`: program name
- * - `indentIncriment`: indent step, default value 2
- * - `maxHelpPosition`: max help position, default value = 24
- * - `width`: line width
- *
- **/
-var HelpFormatter = module.exports = function HelpFormatter(options) {
-  options = options || {};
-
-  this._prog = options.prog;
-
-  this._maxHelpPosition = options.maxHelpPosition || 24;
-  this._width = (options.width || ((process.env.COLUMNS || 80) - 2));
-
-  this._currentIndent = 0;
-  this._indentIncriment = options.indentIncriment || 2;
-  this._level = 0;
-  this._actionMaxLength = 0;
-
-  this._rootSection = new Section(null);
-  this._currentSection = this._rootSection;
-
-  this._whitespaceMatcher = new RegExp('\\s+', 'g');
-  this._longBreakMatcher = new RegExp(c.EOL + c.EOL + c.EOL + '+', 'g');
-};
-
-HelpFormatter.prototype._indent = function () {
-  this._currentIndent += this._indentIncriment;
-  this._level += 1;
-};
-
-HelpFormatter.prototype._dedent = function () {
-  this._currentIndent -= this._indentIncriment;
-  this._level -= 1;
-  if (this._currentIndent < 0) {
-    throw new Error('Indent decreased below 0.');
-  }
-};
-
-HelpFormatter.prototype._addItem = function (func, args) {
-  this._currentSection.addItem([ func, args ]);
-};
-
-//
-// Message building methods
-//
-
-/**
- * HelpFormatter#startSection(heading) -> Void
- * - heading (string): header string
- *
- * Start new help section
- *
- * See alse [code example][1]
- *
- * ##### Example
- *
- *      formatter.startSection(actionGroup.title);
- *      formatter.addText(actionGroup.description);
- *      formatter.addArguments(actionGroup._groupActions);
- *      formatter.endSection();
- *
- **/
-HelpFormatter.prototype.startSection = function (heading) {
-  this._indent();
-  var section = new Section(this._currentSection, heading);
-  var func = section.formatHelp.bind(section);
-  this._addItem(func, [ this ]);
-  this._currentSection = section;
-};
-
-/**
- * HelpFormatter#endSection -> Void
- *
- * End help section
- *
- * ##### Example
- *
- *      formatter.startSection(actionGroup.title);
- *      formatter.addText(actionGroup.description);
- *      formatter.addArguments(actionGroup._groupActions);
- *      formatter.endSection();
- **/
-HelpFormatter.prototype.endSection = function () {
-  this._currentSection = this._currentSection._parent;
-  this._dedent();
-};
-
-/**
- * HelpFormatter#addText(text) -> Void
- * - text (string): plain text
- *
- * Add plain text into current section
- *
- * ##### Example
- *
- *      formatter.startSection(actionGroup.title);
- *      formatter.addText(actionGroup.description);
- *      formatter.addArguments(actionGroup._groupActions);
- *      formatter.endSection();
- *
- **/
-HelpFormatter.prototype.addText = function (text) {
-  if (text && text !== c.SUPPRESS) {
-    this._addItem(this._formatText, [ text ]);
-  }
-};
-
-/**
- * HelpFormatter#addUsage(usage, actions, groups, prefix) -> Void
- * - usage (string): usage text
- * - actions (array): actions list
- * - groups (array): groups list
- * - prefix (string): usage prefix
- *
- * Add usage data into current section
- *
- * ##### Example
- *
- *      formatter.addUsage(this.usage, this._actions, []);
- *      return formatter.formatHelp();
- *
- **/
-HelpFormatter.prototype.addUsage = function (usage, actions, groups, prefix) {
-  if (usage !== c.SUPPRESS) {
-    this._addItem(this._formatUsage, [ usage, actions, groups, prefix ]);
-  }
-};
-
-/**
- * HelpFormatter#addArgument(action) -> Void
- * - action (object): action
- *
- * Add argument into current section
- *
- * Single variant of [[HelpFormatter#addArguments]]
- **/
-HelpFormatter.prototype.addArgument = function (action) {
-  if (action.help !== c.SUPPRESS) {
-    var self = this;
-
-    // find all invocations
-    var invocations = [ this._formatActionInvocation(action) ];
-    var invocationLength = invocations[0].length;
-
-    var actionLength;
-
-    if (action._getSubactions) {
-      this._indent();
-      action._getSubactions().forEach(function (subaction) {
-
-        var invocationNew = self._formatActionInvocation(subaction);
-        invocations.push(invocationNew);
-        invocationLength = Math.max(invocationLength, invocationNew.length);
-
-      });
-      this._dedent();
-    }
-
-    // update the maximum item length
-    actionLength = invocationLength + this._currentIndent;
-    this._actionMaxLength = Math.max(this._actionMaxLength, actionLength);
-
-    // add the item to the list
-    this._addItem(this._formatAction, [ action ]);
-  }
-};
-
-/**
- * HelpFormatter#addArguments(actions) -> Void
- * - actions (array): actions list
- *
- * Mass add arguments into current section
- *
- * ##### Example
- *
- *      formatter.startSection(actionGroup.title);
- *      formatter.addText(actionGroup.description);
- *      formatter.addArguments(actionGroup._groupActions);
- *      formatter.endSection();
- *
- **/
-HelpFormatter.prototype.addArguments = function (actions) {
-  var self = this;
-  actions.forEach(function (action) {
-    self.addArgument(action);
-  });
-};
-
-//
-// Help-formatting methods
-//
-
-/**
- * HelpFormatter#formatHelp -> string
- *
- * Format help
- *
- * ##### Example
- *
- *      formatter.addText(this.epilog);
- *      return formatter.formatHelp();
- *
- **/
-HelpFormatter.prototype.formatHelp = function () {
-  var help = this._rootSection.formatHelp(this);
-  if (help) {
-    help = help.replace(this._longBreakMatcher, c.EOL + c.EOL);
-    help = $$.trimChars(help, c.EOL) + c.EOL;
-  }
-  return help;
-};
-
-HelpFormatter.prototype._joinParts = function (partStrings) {
-  return partStrings.filter(function (part) {
-    return (part && part !== c.SUPPRESS);
-  }).join('');
-};
-
-HelpFormatter.prototype._formatUsage = function (usage, actions, groups, prefix) {
-  if (!prefix && typeof prefix !== 'string') {
-    prefix = 'usage: ';
-  }
-
-  actions = actions || [];
-  groups = groups || [];
-
-
-  // if usage is specified, use that
-  if (usage) {
-    usage = sprintf(usage, { prog: this._prog });
-
-    // if no optionals or positionals are available, usage is just prog
-  } else if (!usage && actions.length === 0) {
-    usage = this._prog;
-
-    // if optionals and positionals are available, calculate usage
-  } else if (!usage) {
-    var prog = this._prog;
-    var optionals = [];
-    var positionals = [];
-    var actionUsage;
-    var textWidth;
-
-    // split optionals from positionals
-    actions.forEach(function (action) {
-      if (action.isOptional()) {
-        optionals.push(action);
-      } else {
-        positionals.push(action);
-      }
-    });
-
-    // build full usage string
-    actionUsage = this._formatActionsUsage([].concat(optionals, positionals), groups);
-    usage = [ prog, actionUsage ].join(' ');
-
-    // wrap the usage parts if it's too long
-    textWidth = this._width - this._currentIndent;
-    if ((prefix.length + usage.length) > textWidth) {
-
-      // break usage into wrappable parts
-      var regexpPart = new RegExp('\\(.*?\\)+|\\[.*?\\]+|\\S+', 'g');
-      var optionalUsage = this._formatActionsUsage(optionals, groups);
-      var positionalUsage = this._formatActionsUsage(positionals, groups);
-
-
-      var optionalParts = optionalUsage.match(regexpPart);
-      var positionalParts = positionalUsage.match(regexpPart) || [];
-
-      if (optionalParts.join(' ') !== optionalUsage) {
-        throw new Error('assert "optionalParts.join(\' \') === optionalUsage"');
-      }
-      if (positionalParts.join(' ') !== positionalUsage) {
-        throw new Error('assert "positionalParts.join(\' \') === positionalUsage"');
-      }
-
-      // helper for wrapping lines
-      /*eslint-disable func-style*/ // node 0.10 compat
-      var _getLines = function (parts, indent, prefix) {
-        var lines = [];
-        var line = [];
-
-        var lineLength = prefix ? prefix.length - 1 : indent.length - 1;
-
-        parts.forEach(function (part) {
-          if (lineLength + 1 + part.length > textWidth) {
-            lines.push(indent + line.join(' '));
-            line = [];
-            lineLength = indent.length - 1;
-          }
-          line.push(part);
-          lineLength += part.length + 1;
-        });
-
-        if (line) {
-          lines.push(indent + line.join(' '));
-        }
-        if (prefix) {
-          lines[0] = lines[0].substr(indent.length);
-        }
-        return lines;
-      };
-
-      var lines, indent, parts;
-      // if prog is short, follow it with optionals or positionals
-      if (prefix.length + prog.length <= 0.75 * textWidth) {
-        indent = $$.repeat(' ', (prefix.length + prog.length + 1));
-        if (optionalParts) {
-          lines = [].concat(
-            _getLines([ prog ].concat(optionalParts), indent, prefix),
-            _getLines(positionalParts, indent)
-          );
-        } else if (positionalParts) {
-          lines = _getLines([ prog ].concat(positionalParts), indent, prefix);
-        } else {
-          lines = [ prog ];
-        }
-
-        // if prog is long, put it on its own line
-      } else {
-        indent = $$.repeat(' ', prefix.length);
-        parts = optionalParts + positionalParts;
-        lines = _getLines(parts, indent);
-        if (lines.length > 1) {
-          lines = [].concat(
-            _getLines(optionalParts, indent),
-            _getLines(positionalParts, indent)
-          );
-        }
-        lines = [ prog ] + lines;
-      }
-      // join lines into usage
-      usage = lines.join(c.EOL);
-    }
-  }
-
-  // prefix with 'usage:'
-  return prefix + usage + c.EOL + c.EOL;
-};
-
-HelpFormatter.prototype._formatActionsUsage = function (actions, groups) {
-  // find group indices and identify actions in groups
-  var groupActions = [];
-  var inserts = [];
-  var self = this;
-
-  groups.forEach(function (group) {
-    var end;
-    var i;
-
-    var start = actions.indexOf(group._groupActions[0]);
-    if (start >= 0) {
-      end = start + group._groupActions.length;
-
-      //if (actions.slice(start, end) === group._groupActions) {
-      if ($$.arrayEqual(actions.slice(start, end), group._groupActions)) {
-        group._groupActions.forEach(function (action) {
-          groupActions.push(action);
-        });
-
-        if (!group.required) {
-          if (inserts[start]) {
-            inserts[start] += ' [';
-          } else {
-            inserts[start] = '[';
-          }
-          inserts[end] = ']';
-        } else {
-          if (inserts[start]) {
-            inserts[start] += ' (';
-          } else {
-            inserts[start] = '(';
-          }
-          inserts[end] = ')';
-        }
-        for (i = start + 1; i < end; i += 1) {
-          inserts[i] = '|';
-        }
-      }
-    }
-  });
-
-  // collect all actions format strings
-  var parts = [];
-
-  actions.forEach(function (action, actionIndex) {
-    var part;
-    var optionString;
-    var argsDefault;
-    var argsString;
-
-    // suppressed arguments are marked with None
-    // remove | separators for suppressed arguments
-    if (action.help === c.SUPPRESS) {
-      parts.push(null);
-      if (inserts[actionIndex] === '|') {
-        inserts.splice(actionIndex, actionIndex);
-      } else if (inserts[actionIndex + 1] === '|') {
-        inserts.splice(actionIndex + 1, actionIndex + 1);
-      }
-
-      // produce all arg strings
-    } else if (!action.isOptional()) {
-      part = self._formatArgs(action, action.dest);
-
-      // if it's in a group, strip the outer []
-      if (groupActions.indexOf(action) >= 0) {
-        if (part[0] === '[' && part[part.length - 1] === ']') {
-          part = part.slice(1, -1);
-        }
-      }
-      // add the action string to the list
-      parts.push(part);
-
-    // produce the first way to invoke the option in brackets
-    } else {
-      optionString = action.optionStrings[0];
-
-      // if the Optional doesn't take a value, format is: -s or --long
-      if (action.nargs === 0) {
-        part = '' + optionString;
-
-      // if the Optional takes a value, format is: -s ARGS or --long ARGS
-      } else {
-        argsDefault = action.dest.toUpperCase();
-        argsString = self._formatArgs(action, argsDefault);
-        part = optionString + ' ' + argsString;
-      }
-      // make it look optional if it's not required or in a group
-      if (!action.required && groupActions.indexOf(action) < 0) {
-        part = '[' + part + ']';
-      }
-      // add the action string to the list
-      parts.push(part);
-    }
-  });
-
-  // insert things at the necessary indices
-  for (var i = inserts.length - 1; i >= 0; --i) {
-    if (inserts[i] !== null) {
-      parts.splice(i, 0, inserts[i]);
-    }
-  }
-
-  // join all the action items with spaces
-  var text = parts.filter(function (part) {
-    return !!part;
-  }).join(' ');
-
-  // clean up separators for mutually exclusive groups
-  text = text.replace(/([\[(]) /g, '$1'); // remove spaces
-  text = text.replace(/ ([\])])/g, '$1');
-  text = text.replace(/\[ *\]/g, ''); // remove empty groups
-  text = text.replace(/\( *\)/g, '');
-  text = text.replace(/\(([^|]*)\)/g, '$1'); // remove () from single action groups
-
-  text = text.trim();
-
-  // return the text
-  return text;
-};
-
-HelpFormatter.prototype._formatText = function (text) {
-  text = sprintf(text, { prog: this._prog });
-  var textWidth = this._width - this._currentIndent;
-  var indentIncriment = $$.repeat(' ', this._currentIndent);
-  return this._fillText(text, textWidth, indentIncriment) + c.EOL + c.EOL;
-};
-
-HelpFormatter.prototype._formatAction = function (action) {
-  var self = this;
-
-  var helpText;
-  var helpLines;
-  var parts;
-  var indentFirst;
-
-  // determine the required width and the entry label
-  var helpPosition = Math.min(this._actionMaxLength + 2, this._maxHelpPosition);
-  var helpWidth = this._width - helpPosition;
-  var actionWidth = helpPosition - this._currentIndent - 2;
-  var actionHeader = this._formatActionInvocation(action);
-
-  // no help; start on same line and add a final newline
-  if (!action.help) {
-    actionHeader = $$.repeat(' ', this._currentIndent) + actionHeader + c.EOL;
-
-  // short action name; start on the same line and pad two spaces
-  } else if (actionHeader.length <= actionWidth) {
-    actionHeader = $$.repeat(' ', this._currentIndent) +
-        actionHeader +
-        '  ' +
-        $$.repeat(' ', actionWidth - actionHeader.length);
-    indentFirst = 0;
-
-  // long action name; start on the next line
-  } else {
-    actionHeader = $$.repeat(' ', this._currentIndent) + actionHeader + c.EOL;
-    indentFirst = helpPosition;
-  }
-
-  // collect the pieces of the action help
-  parts = [ actionHeader ];
-
-  // if there was help for the action, add lines of help text
-  if (action.help) {
-    helpText = this._expandHelp(action);
-    helpLines = this._splitLines(helpText, helpWidth);
-    parts.push($$.repeat(' ', indentFirst) + helpLines[0] + c.EOL);
-    helpLines.slice(1).forEach(function (line) {
-      parts.push($$.repeat(' ', helpPosition) + line + c.EOL);
-    });
-
-  // or add a newline if the description doesn't end with one
-  } else if (actionHeader.charAt(actionHeader.length - 1) !== c.EOL) {
-    parts.push(c.EOL);
-  }
-  // if there are any sub-actions, add their help as well
-  if (action._getSubactions) {
-    this._indent();
-    action._getSubactions().forEach(function (subaction) {
-      parts.push(self._formatAction(subaction));
-    });
-    this._dedent();
-  }
-  // return a single string
-  return this._joinParts(parts);
-};
-
-HelpFormatter.prototype._formatActionInvocation = function (action) {
-  if (!action.isOptional()) {
-    var format_func = this._metavarFormatter(action, action.dest);
-    var metavars = format_func(1);
-    return metavars[0];
-  }
-
-  var parts = [];
-  var argsDefault;
-  var argsString;
-
-  // if the Optional doesn't take a value, format is: -s, --long
-  if (action.nargs === 0) {
-    parts = parts.concat(action.optionStrings);
-
-  // if the Optional takes a value, format is: -s ARGS, --long ARGS
-  } else {
-    argsDefault = action.dest.toUpperCase();
-    argsString = this._formatArgs(action, argsDefault);
-    action.optionStrings.forEach(function (optionString) {
-      parts.push(optionString + ' ' + argsString);
-    });
-  }
-  return parts.join(', ');
-};
-
-HelpFormatter.prototype._metavarFormatter = function (action, metavarDefault) {
-  var result;
-
-  if (action.metavar || action.metavar === '') {
-    result = action.metavar;
-  } else if (action.choices) {
-    var choices = action.choices;
-
-    if (typeof choices === 'string') {
-      choices = choices.split('').join(', ');
-    } else if (Array.isArray(choices)) {
-      choices = choices.join(',');
-    } else {
-      choices = Object.keys(choices).join(',');
-    }
-    result = '{' + choices + '}';
-  } else {
-    result = metavarDefault;
-  }
-
-  return function (size) {
-    if (Array.isArray(result)) {
-      return result;
-    }
-
-    var metavars = [];
-    for (var i = 0; i < size; i += 1) {
-      metavars.push(result);
-    }
-    return metavars;
-  };
-};
-
-HelpFormatter.prototype._formatArgs = function (action, metavarDefault) {
-  var result;
-  var metavars;
-
-  var buildMetavar = this._metavarFormatter(action, metavarDefault);
-
-  switch (action.nargs) {
-    /*eslint-disable no-undefined*/
-    case undefined:
-    case null:
-      metavars = buildMetavar(1);
-      result = '' + metavars[0];
-      break;
-    case c.OPTIONAL:
-      metavars = buildMetavar(1);
-      result = '[' + metavars[0] + ']';
-      break;
-    case c.ZERO_OR_MORE:
-      metavars = buildMetavar(2);
-      result = '[' + metavars[0] + ' [' + metavars[1] + ' ...]]';
-      break;
-    case c.ONE_OR_MORE:
-      metavars = buildMetavar(2);
-      result = '' + metavars[0] + ' [' + metavars[1] + ' ...]';
-      break;
-    case c.REMAINDER:
-      result = '...';
-      break;
-    case c.PARSER:
-      metavars = buildMetavar(1);
-      result = metavars[0] + ' ...';
-      break;
-    default:
-      metavars = buildMetavar(action.nargs);
-      result = metavars.join(' ');
-  }
-  return result;
-};
-
-HelpFormatter.prototype._expandHelp = function (action) {
-  var params = { prog: this._prog };
-
-  Object.keys(action).forEach(function (actionProperty) {
-    var actionValue = action[actionProperty];
-
-    if (actionValue !== c.SUPPRESS) {
-      params[actionProperty] = actionValue;
-    }
-  });
-
-  if (params.choices) {
-    if (typeof params.choices === 'string') {
-      params.choices = params.choices.split('').join(', ');
-    } else if (Array.isArray(params.choices)) {
-      params.choices = params.choices.join(', ');
-    } else {
-      params.choices = Object.keys(params.choices).join(', ');
-    }
-  }
-
-  return sprintf(this._getHelpString(action), params);
-};
-
-HelpFormatter.prototype._splitLines = function (text, width) {
-  var lines = [];
-  var delimiters = [ ' ', '.', ',', '!', '?' ];
-  var re = new RegExp('[' + delimiters.join('') + '][^' + delimiters.join('') + ']*$');
-
-  text = text.replace(/[\n\|\t]/g, ' ');
-
-  text = text.trim();
-  text = text.replace(this._whitespaceMatcher, ' ');
-
-  // Wraps the single paragraph in text (a string) so every line
-  // is at most width characters long.
-  text.split(c.EOL).forEach(function (line) {
-    if (width >= line.length) {
-      lines.push(line);
-      return;
-    }
-
-    var wrapStart = 0;
-    var wrapEnd = width;
-    var delimiterIndex = 0;
-    while (wrapEnd <= line.length) {
-      if (wrapEnd !== line.length && delimiters.indexOf(line[wrapEnd] < -1)) {
-        delimiterIndex = (re.exec(line.substring(wrapStart, wrapEnd)) || {}).index;
-        wrapEnd = wrapStart + delimiterIndex + 1;
-      }
-      lines.push(line.substring(wrapStart, wrapEnd));
-      wrapStart = wrapEnd;
-      wrapEnd += width;
-    }
-    if (wrapStart < line.length) {
-      lines.push(line.substring(wrapStart, wrapEnd));
-    }
-  });
-
-  return lines;
-};
-
-HelpFormatter.prototype._fillText = function (text, width, indent) {
-  var lines = this._splitLines(text, width);
-  lines = lines.map(function (line) {
-    return indent + line;
-  });
-  return lines.join(c.EOL);
-};
-
-HelpFormatter.prototype._getHelpString = function (action) {
-  return action.help;
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/argparse/lib/namespace.js
----------------------------------------------------------------------
diff --git a/node_modules/argparse/lib/namespace.js b/node_modules/argparse/lib/namespace.js
deleted file mode 100644
index a860de9..0000000
--- a/node_modules/argparse/lib/namespace.js
+++ /dev/null
@@ -1,76 +0,0 @@
-/**
- * class Namespace
- *
- * Simple object for storing attributes. Implements equality by attribute names
- * and values, and provides a simple string representation.
- *
- * See also [original guide][1]
- *
- * [1]:http://docs.python.org/dev/library/argparse.html#the-namespace-object
- **/
-'use strict';
-
-var $$ = require('./utils');
-
-/**
- * new Namespace(options)
- * - options(object): predefined propertis for result object
- *
- **/
-var Namespace = module.exports = function Namespace(options) {
-  $$.extend(this, options);
-};
-
-/**
- * Namespace#isset(key) -> Boolean
- * - key (string|number): property name
- *
- * Tells whenever `namespace` contains given `key` or not.
- **/
-Namespace.prototype.isset = function (key) {
-  return $$.has(this, key);
-};
-
-/**
- * Namespace#set(key, value) -> self
- * -key (string|number|object): propery name
- * -value (mixed): new property value
- *
- * Set the property named key with value.
- * If key object then set all key properties to namespace object
- **/
-Namespace.prototype.set = function (key, value) {
-  if (typeof (key) === 'object') {
-    $$.extend(this, key);
-  } else {
-    this[key] = value;
-  }
-  return this;
-};
-
-/**
- * Namespace#get(key, defaultValue) -> mixed
- * - key (string|number): property name
- * - defaultValue (mixed): default value
- *
- * Return the property key or defaulValue if not set
- **/
-Namespace.prototype.get = function (key, defaultValue) {
-  return !this[key] ? defaultValue : this[key];
-};
-
-/**
- * Namespace#unset(key, defaultValue) -> mixed
- * - key (string|number): property name
- * - defaultValue (mixed): default value
- *
- * Return data[key](and delete it) or defaultValue
- **/
-Namespace.prototype.unset = function (key, defaultValue) {
-  var value = this[key];
-  if (value !== null) {
-    delete this[key];
-    return value;
-  }
-  return defaultValue;
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/argparse/lib/utils.js
----------------------------------------------------------------------
diff --git a/node_modules/argparse/lib/utils.js b/node_modules/argparse/lib/utils.js
deleted file mode 100644
index 4a9cf3e..0000000
--- a/node_modules/argparse/lib/utils.js
+++ /dev/null
@@ -1,57 +0,0 @@
-'use strict';
-
-exports.repeat = function (str, num) {
-  var result = '';
-  for (var i = 0; i < num; i++) { result += str; }
-  return result;
-};
-
-exports.arrayEqual = function (a, b) {
-  if (a.length !== b.length) { return false; }
-  for (var i = 0; i < a.length; i++) {
-    if (a[i] !== b[i]) { return false; }
-  }
-  return true;
-};
-
-exports.trimChars = function (str, chars) {
-  var start = 0;
-  var end = str.length - 1;
-  while (chars.indexOf(str.charAt(start)) >= 0) { start++; }
-  while (chars.indexOf(str.charAt(end)) >= 0) { end--; }
-  return str.slice(start, end + 1);
-};
-
-exports.capitalize = function (str) {
-  return str.charAt(0).toUpperCase() + str.slice(1);
-};
-
-exports.arrayUnion = function () {
-  var result = [];
-  for (var i = 0, values = {}; i < arguments.length; i++) {
-    var arr = arguments[i];
-    for (var j = 0; j < arr.length; j++) {
-      if (!values[arr[j]]) {
-        values[arr[j]] = true;
-        result.push(arr[j]);
-      }
-    }
-  }
-  return result;
-};
-
-function has(obj, key) {
-  return Object.prototype.hasOwnProperty.call(obj, key);
-}
-
-exports.has = has;
-
-exports.extend = function (dest, src) {
-  for (var i in src) {
-    if (has(src, i)) { dest[i] = src[i]; }
-  }
-};
-
-exports.trimEnd = function (str) {
-  return str.replace(/\s+$/g, '');
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/argparse/package.json
----------------------------------------------------------------------
diff --git a/node_modules/argparse/package.json b/node_modules/argparse/package.json
deleted file mode 100644
index 4fe5ff2..0000000
--- a/node_modules/argparse/package.json
+++ /dev/null
@@ -1,106 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "argparse@^1.0.7",
-        "scope": null,
-        "escapedName": "argparse",
-        "name": "argparse",
-        "rawSpec": "^1.0.7",
-        "spec": ">=1.0.7 <2.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/js-yaml"
-    ]
-  ],
-  "_from": "argparse@>=1.0.7 <2.0.0",
-  "_id": "argparse@1.0.9",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/argparse",
-  "_nodeVersion": "6.5.0",
-  "_npmOperationalInternal": {
-    "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/argparse-1.0.9.tgz_1475177461025_0.33920647646300495"
-  },
-  "_npmUser": {
-    "name": "vitaly",
-    "email": "vitaly@rcdesign.ru"
-  },
-  "_npmVersion": "3.10.3",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "argparse@^1.0.7",
-    "scope": null,
-    "escapedName": "argparse",
-    "name": "argparse",
-    "rawSpec": "^1.0.7",
-    "spec": ">=1.0.7 <2.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/js-yaml"
-  ],
-  "_resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
-  "_shasum": "73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86",
-  "_shrinkwrap": null,
-  "_spec": "argparse@^1.0.7",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/js-yaml",
-  "bugs": {
-    "url": "https://github.com/nodeca/argparse/issues"
-  },
-  "contributors": [
-    {
-      "name": "Eugene Shkuropat"
-    },
-    {
-      "name": "Paul Jacobson"
-    }
-  ],
-  "dependencies": {
-    "sprintf-js": "~1.0.2"
-  },
-  "description": "Very powerful CLI arguments parser. Native port of argparse - python's options parsing library",
-  "devDependencies": {
-    "eslint": "^2.13.1",
-    "istanbul": "^0.4.5",
-    "mocha": "^3.1.0",
-    "ndoc": "^5.0.1"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86",
-    "tarball": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz"
-  },
-  "files": [
-    "index.js",
-    "lib/"
-  ],
-  "gitHead": "acb39f2d726b90d2eadf9e6574a938d6250ad248",
-  "homepage": "https://github.com/nodeca/argparse#readme",
-  "keywords": [
-    "cli",
-    "parser",
-    "argparse",
-    "option",
-    "args"
-  ],
-  "license": "MIT",
-  "maintainers": [
-    {
-      "name": "vitaly",
-      "email": "vitaly@rcdesign.ru"
-    }
-  ],
-  "name": "argparse",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/nodeca/argparse.git"
-  },
-  "scripts": {
-    "test": "make test"
-  },
-  "version": "1.0.9"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/arr-diff/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/arr-diff/LICENSE b/node_modules/arr-diff/LICENSE
deleted file mode 100755
index fa30c4c..0000000
--- a/node_modules/arr-diff/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2015, Jon Schlinkert.
-
-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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/arr-diff/README.md
----------------------------------------------------------------------
diff --git a/node_modules/arr-diff/README.md b/node_modules/arr-diff/README.md
deleted file mode 100644
index 7705c6c..0000000
--- a/node_modules/arr-diff/README.md
+++ /dev/null
@@ -1,74 +0,0 @@
-# arr-diff [![NPM version](https://img.shields.io/npm/v/arr-diff.svg)](https://www.npmjs.com/package/arr-diff) [![Build Status](https://img.shields.io/travis/jonschlinkert/base.svg)](https://travis-ci.org/jonschlinkert/base)
-
-> Returns an array with only the unique values from the first array, by excluding all values from additional arrays using strict equality for comparisons.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/)
-
-```sh
-$ npm i arr-diff --save
-```
-Install with [bower](http://bower.io/)
-
-```sh
-$ bower install arr-diff --save
-```
-
-## API
-
-### [diff](index.js#L33)
-
-Return the difference between the first array and additional arrays.
-
-**Params**
-
-* `a` **{Array}**
-* `b` **{Array}**
-* `returns` **{Array}**
-
-**Example**
-
-```js
-var diff = require('arr-diff');
-
-var a = ['a', 'b', 'c', 'd'];
-var b = ['b', 'c'];
-
-console.log(diff(a, b))
-//=> ['a', 'd']
-```
-
-## Related projects
-
-* [arr-flatten](https://www.npmjs.com/package/arr-flatten): Recursively flatten an array or arrays. This is the fastest implementation of array flatten. | [homepage](https://github.com/jonschlinkert/arr-flatten)
-* [array-filter](https://www.npmjs.com/package/array-filter): Array#filter for older browsers. | [homepage](https://github.com/juliangruber/array-filter)
-* [array-intersection](https://www.npmjs.com/package/array-intersection): Return an array with the unique values present in _all_ given arrays using strict equality… [more](https://www.npmjs.com/package/array-intersection) | [homepage](https://github.com/jonschlinkert/array-intersection)
-
-## Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm i -d && npm test
-```
-
-## Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/arr-diff/issues/new).
-
-## Author
-
-**Jon Schlinkert**
-
-+ [github/jonschlinkert](https://github.com/jonschlinkert)
-+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-## License
-
-Copyright © 2015 [Jon Schlinkert](https://github.com/jonschlinkert)
-Released under the MIT license.
-
-***
-
-_This file was generated by [verb](https://github.com/verbose/verb) on Sat Dec 05 2015 23:24:53 GMT-0500 (EST)._

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/arr-diff/index.js
----------------------------------------------------------------------
diff --git a/node_modules/arr-diff/index.js b/node_modules/arr-diff/index.js
deleted file mode 100644
index bc7200d..0000000
--- a/node_modules/arr-diff/index.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/*!
- * arr-diff <https://github.com/jonschlinkert/arr-diff>
- *
- * Copyright (c) 2014 Jon Schlinkert, contributors.
- * Licensed under the MIT License
- */
-
-'use strict';
-
-var flatten = require('arr-flatten');
-var slice = [].slice;
-
-/**
- * Return the difference between the first array and
- * additional arrays.
- *
- * ```js
- * var diff = require('{%= name %}');
- *
- * var a = ['a', 'b', 'c', 'd'];
- * var b = ['b', 'c'];
- *
- * console.log(diff(a, b))
- * //=> ['a', 'd']
- * ```
- *
- * @param  {Array} `a`
- * @param  {Array} `b`
- * @return {Array}
- * @api public
- */
-
-function diff(arr, arrays) {
-  var argsLen = arguments.length;
-  var len = arr.length, i = -1;
-  var res = [], arrays;
-
-  if (argsLen === 1) {
-    return arr;
-  }
-
-  if (argsLen > 2) {
-    arrays = flatten(slice.call(arguments, 1));
-  }
-
-  while (++i < len) {
-    if (!~arrays.indexOf(arr[i])) {
-      res.push(arr[i]);
-    }
-  }
-  return res;
-}
-
-/**
- * Expose `diff`
- */
-
-module.exports = diff;

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/arr-diff/package.json
----------------------------------------------------------------------
diff --git a/node_modules/arr-diff/package.json b/node_modules/arr-diff/package.json
deleted file mode 100644
index 09bd030..0000000
--- a/node_modules/arr-diff/package.json
+++ /dev/null
@@ -1,120 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "arr-diff@^2.0.0",
-        "scope": null,
-        "escapedName": "arr-diff",
-        "name": "arr-diff",
-        "rawSpec": "^2.0.0",
-        "spec": ">=2.0.0 <3.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/micromatch"
-    ]
-  ],
-  "_from": "arr-diff@>=2.0.0 <3.0.0",
-  "_id": "arr-diff@2.0.0",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/arr-diff",
-  "_nodeVersion": "5.0.0",
-  "_npmUser": {
-    "name": "jonschlinkert",
-    "email": "github@sellside.com"
-  },
-  "_npmVersion": "3.3.6",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "arr-diff@^2.0.0",
-    "scope": null,
-    "escapedName": "arr-diff",
-    "name": "arr-diff",
-    "rawSpec": "^2.0.0",
-    "spec": ">=2.0.0 <3.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/micromatch"
-  ],
-  "_resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
-  "_shasum": "8f3b827f955a8bd669697e4a4256ac3ceae356cf",
-  "_shrinkwrap": null,
-  "_spec": "arr-diff@^2.0.0",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/micromatch",
-  "author": {
-    "name": "Jon Schlinkert",
-    "url": "https://github.com/jonschlinkert"
-  },
-  "bugs": {
-    "url": "https://github.com/jonschlinkert/arr-diff/issues"
-  },
-  "dependencies": {
-    "arr-flatten": "^1.0.1"
-  },
-  "description": "Returns an array with only the unique values from the first array, by excluding all values from additional arrays using strict equality for comparisons.",
-  "devDependencies": {
-    "array-differ": "^1.0.0",
-    "array-slice": "^0.2.3",
-    "benchmarked": "^0.1.4",
-    "chalk": "^1.1.1",
-    "mocha": "*",
-    "should": "*"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "8f3b827f955a8bd669697e4a4256ac3ceae356cf",
-    "tarball": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz"
-  },
-  "engines": {
-    "node": ">=0.10.0"
-  },
-  "files": [
-    "index.js"
-  ],
-  "gitHead": "b89f54eb88ca51afd0e0ea6be9a4a63e5ccecf27",
-  "homepage": "https://github.com/jonschlinkert/arr-diff",
-  "keywords": [
-    "arr",
-    "array",
-    "diff",
-    "differ",
-    "difference"
-  ],
-  "license": "MIT",
-  "main": "index.js",
-  "maintainers": [
-    {
-      "name": "doowb",
-      "email": "brian.woodward@gmail.com"
-    },
-    {
-      "name": "jonschlinkert",
-      "email": "github@sellside.com"
-    },
-    {
-      "name": "paulmillr",
-      "email": "paul@paulmillr.com"
-    }
-  ],
-  "name": "arr-diff",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/jonschlinkert/arr-diff.git"
-  },
-  "scripts": {
-    "test": "mocha"
-  },
-  "verb": {
-    "related": {
-      "list": [
-        "arr-flatten",
-        "array-filter",
-        "array-intersection"
-      ]
-    }
-  },
-  "version": "2.0.0"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/arr-flatten/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/arr-flatten/LICENSE b/node_modules/arr-flatten/LICENSE
deleted file mode 100755
index fa30c4c..0000000
--- a/node_modules/arr-flatten/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2015, Jon Schlinkert.
-
-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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/arr-flatten/README.md
----------------------------------------------------------------------
diff --git a/node_modules/arr-flatten/README.md b/node_modules/arr-flatten/README.md
deleted file mode 100755
index bd696e6..0000000
--- a/node_modules/arr-flatten/README.md
+++ /dev/null
@@ -1,73 +0,0 @@
-# arr-flatten [![NPM version](https://badge.fury.io/js/arr-flatten.svg)](http://badge.fury.io/js/arr-flatten)  [![Build Status](https://travis-ci.org/jonschlinkert/arr-flatten.svg)](https://travis-ci.org/jonschlinkert/arr-flatten) 
-
-> Recursively flatten an array or arrays. This is the fastest implementation of array flatten.
-
-Why another flatten utility? I wanted the fastest implementation I could find, with implementation choices that should work for 95% of use cases, but no cruft to cover the other 5%.
-
-## Run benchmarks
-
-```bash
-npm run benchmarks
-```
-
-Benchmark results comparing this library to [array-flatten]:
-
-```bash
-#1: large.js
-  arr-flatten.js x 487,030 ops/sec ±0.67% (92 runs sampled)
-  array-flatten.js x 347,020 ops/sec ±0.57% (98 runs sampled)
-
-#2: medium.js
-  arr-flatten.js x 1,914,516 ops/sec ±0.76% (94 runs sampled)
-  array-flatten.js x 1,391,661 ops/sec ±0.63% (96 runs sampled)
-
-#3: small.js
-  arr-flatten.js x 5,158,980 ops/sec ±0.85% (94 runs sampled)
-  array-flatten.js x 3,683,173 ops/sec ±0.79% (97 runs sampled)
-```
-
-## Run tests
-
-Install dev dependencies:
-
-```bash
-npm i -d && npm test
-```
-
-## Install with [npm](npmjs.org)
-
-```bash
-npm i arr-flatten --save
-```
-### Install with [bower](https://github.com/bower/bower)
-
-```bash
-bower install arr-flatten --save
-```
-
-
-## Usage
-
-```js
-var flatten = require('arr-flatten');
-
-flatten(['a', ['b', ['c']], 'd', ['e']]);
-//=> ['a', 'b', 'c', 'd', 'e']
-```
-
-## Author
-
-**Jon Schlinkert**
- 
-+ [github/jonschlinkert](https://github.com/jonschlinkert)
-+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert) 
-
-## License
-Copyright (c) 2014-2015 Jon Schlinkert  
-Released under the MIT license
-
-***
-
-_This file was generated by [verb-cli](https://github.com/assemble/verb-cli) on March 11, 2015._
-
-[array-flatten]: https://github.com/blakeembrey/array-flatten
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/arr-flatten/index.js
----------------------------------------------------------------------
diff --git a/node_modules/arr-flatten/index.js b/node_modules/arr-flatten/index.js
deleted file mode 100755
index f74e48c..0000000
--- a/node_modules/arr-flatten/index.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/*!
- * arr-flatten <https://github.com/jonschlinkert/arr-flatten>
- *
- * Copyright (c) 2014-2015, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-
-'use strict';
-
-module.exports = function flatten(arr) {
-  return flat(arr, []);
-};
-
-function flat(arr, res) {
-  var len = arr.length;
-  var i = -1;
-
-  while (len--) {
-    var cur = arr[++i];
-    if (Array.isArray(cur)) {
-      flat(cur, res);
-    } else {
-      res.push(cur);
-    }
-  }
-  return res;
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/arr-flatten/package.json
----------------------------------------------------------------------
diff --git a/node_modules/arr-flatten/package.json b/node_modules/arr-flatten/package.json
deleted file mode 100644
index 68a95f7..0000000
--- a/node_modules/arr-flatten/package.json
+++ /dev/null
@@ -1,109 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "arr-flatten@^1.0.1",
-        "scope": null,
-        "escapedName": "arr-flatten",
-        "name": "arr-flatten",
-        "rawSpec": "^1.0.1",
-        "spec": ">=1.0.1 <2.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/arr-diff"
-    ]
-  ],
-  "_from": "arr-flatten@>=1.0.1 <2.0.0",
-  "_id": "arr-flatten@1.0.1",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/arr-flatten",
-  "_nodeVersion": "0.12.0",
-  "_npmUser": {
-    "name": "jonschlinkert",
-    "email": "github@sellside.com"
-  },
-  "_npmVersion": "2.5.1",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "arr-flatten@^1.0.1",
-    "scope": null,
-    "escapedName": "arr-flatten",
-    "name": "arr-flatten",
-    "rawSpec": "^1.0.1",
-    "spec": ">=1.0.1 <2.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/arr-diff"
-  ],
-  "_resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz",
-  "_shasum": "e5ffe54d45e19f32f216e91eb99c8ce892bb604b",
-  "_shrinkwrap": null,
-  "_spec": "arr-flatten@^1.0.1",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/arr-diff",
-  "author": {
-    "name": "Jon Schlinkert",
-    "url": "https://github.com/jonschlinkert"
-  },
-  "bugs": {
-    "url": "https://github.com/jonschlinkert/arr-flatten/issues"
-  },
-  "dependencies": {},
-  "description": "Recursively flatten an array or arrays. This is the fastest implementation of array flatten.",
-  "devDependencies": {
-    "array-flatten": "^1.0.2",
-    "array-slice": "^0.2.2",
-    "benchmarked": "^0.1.3",
-    "chalk": "^0.5.1",
-    "glob": "^4.3.5",
-    "kind-of": "^1.0.0"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "e5ffe54d45e19f32f216e91eb99c8ce892bb604b",
-    "tarball": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz"
-  },
-  "engines": {
-    "node": ">=0.10.0"
-  },
-  "files": [
-    "index.js"
-  ],
-  "gitHead": "7b3706eaa0093d8f5ba65af8ed590b6fcb3fe7cf",
-  "homepage": "https://github.com/jonschlinkert/arr-flatten",
-  "keywords": [
-    "arr",
-    "array",
-    "elements",
-    "flat",
-    "flatten",
-    "nested",
-    "recurse",
-    "recursive",
-    "recursively"
-  ],
-  "license": {
-    "type": "MIT",
-    "url": "https://github.com/jonschlinkert/arr-flatten/blob/master/LICENSE"
-  },
-  "main": "index.js",
-  "maintainers": [
-    {
-      "name": "jonschlinkert",
-      "email": "github@sellside.com"
-    }
-  ],
-  "name": "arr-flatten",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/jonschlinkert/arr-flatten.git"
-  },
-  "scripts": {
-    "benchmarks": "node benchmark",
-    "test": "mocha"
-  },
-  "version": "1.0.1"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/array-unique/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/array-unique/LICENSE b/node_modules/array-unique/LICENSE
deleted file mode 100755
index fa30c4c..0000000
--- a/node_modules/array-unique/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2015, Jon Schlinkert.
-
-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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/array-unique/README.md
----------------------------------------------------------------------
diff --git a/node_modules/array-unique/README.md b/node_modules/array-unique/README.md
deleted file mode 100755
index 2e28774..0000000
--- a/node_modules/array-unique/README.md
+++ /dev/null
@@ -1,51 +0,0 @@
-# array-unique [![NPM version](https://badge.fury.io/js/array-unique.svg)](http://badge.fury.io/js/array-unique)  [![Build Status](https://travis-ci.org/jonschlinkert/array-unique.svg)](https://travis-ci.org/jonschlinkert/array-unique) 
-
-> Return an array free of duplicate values. Fastest ES5 implementation.
-
-## Install with [npm](npmjs.org)
-
-```bash
-npm i array-unique --save
-```
-
-## Usage
-
-```js
-var unique = require('array-unique');
-
-unique(['a', 'b', 'c', 'c']);
-//=> ['a', 'b', 'c']
-```
-
-## Related
-* [arr-diff](https://github.com/jonschlinkert/arr-diff): Returns an array with only the unique values from the first array, by excluding all values from additional arrays using strict equality for comparisons.
-* [arr-union](https://github.com/jonschlinkert/arr-union): Returns an array of unique values using strict equality for comparisons.
-* [arr-flatten](https://github.com/jonschlinkert/arr-flatten): Recursively flatten an array or arrays. This is the fastest implementation of array flatten.
-* [arr-reduce](https://github.com/jonschlinkert/arr-reduce): Fast array reduce that also loops over sparse elements.
-* [arr-map](https://github.com/jonschlinkert/arr-map): Faster, node.js focused alternative to JavaScript's native array map.
-* [arr-pluck](https://github.com/jonschlinkert/arr-pluck): Retrieves the value of a specified property from all elements in the collection.
-
-## Run tests
-Install dev dependencies.
-
-```bash
-npm i -d && npm test
-```
-
-## Contributing
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/array-unique/issues)
-
-## Author
-
-**Jon Schlinkert**
- 
-+ [github/jonschlinkert](https://github.com/jonschlinkert)
-+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert) 
-
-## License
-Copyright (c) 2015 Jon Schlinkert  
-Released under the MIT license
-
-***
-
-_This file was generated by [verb-cli](https://github.com/assemble/verb-cli) on March 24, 2015._
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/array-unique/index.js
----------------------------------------------------------------------
diff --git a/node_modules/array-unique/index.js b/node_modules/array-unique/index.js
deleted file mode 100755
index 7fa75af..0000000
--- a/node_modules/array-unique/index.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/*!
- * array-unique <https://github.com/jonschlinkert/array-unique>
- *
- * Copyright (c) 2014-2015, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-
-'use strict';
-
-module.exports = function unique(arr) {
-  if (!Array.isArray(arr)) {
-    throw new TypeError('array-unique expects an array.');
-  }
-
-  var len = arr.length;
-  var i = -1;
-
-  while (i++ < len) {
-    var j = i + 1;
-
-    for (; j < arr.length; ++j) {
-      if (arr[i] === arr[j]) {
-        arr.splice(j--, 1);
-      }
-    }
-  }
-  return arr;
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/array-unique/package.json
----------------------------------------------------------------------
diff --git a/node_modules/array-unique/package.json b/node_modules/array-unique/package.json
deleted file mode 100644
index 1e48801..0000000
--- a/node_modules/array-unique/package.json
+++ /dev/null
@@ -1,95 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "array-unique@^0.2.1",
-        "scope": null,
-        "escapedName": "array-unique",
-        "name": "array-unique",
-        "rawSpec": "^0.2.1",
-        "spec": ">=0.2.1 <0.3.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/micromatch"
-    ]
-  ],
-  "_from": "array-unique@>=0.2.1 <0.3.0",
-  "_id": "array-unique@0.2.1",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/array-unique",
-  "_nodeVersion": "1.6.2",
-  "_npmUser": {
-    "name": "jonschlinkert",
-    "email": "github@sellside.com"
-  },
-  "_npmVersion": "2.7.1",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "array-unique@^0.2.1",
-    "scope": null,
-    "escapedName": "array-unique",
-    "name": "array-unique",
-    "rawSpec": "^0.2.1",
-    "spec": ">=0.2.1 <0.3.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/micromatch"
-  ],
-  "_resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
-  "_shasum": "a1d97ccafcbc2625cc70fadceb36a50c58b01a53",
-  "_shrinkwrap": null,
-  "_spec": "array-unique@^0.2.1",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/micromatch",
-  "author": {
-    "name": "Jon Schlinkert",
-    "url": "https://github.com/jonschlinkert"
-  },
-  "bugs": {
-    "url": "https://github.com/jonschlinkert/array-unique/issues"
-  },
-  "dependencies": {},
-  "description": "Return an array free of duplicate values. Fastest ES5 implementation.",
-  "devDependencies": {
-    "array-uniq": "^1.0.2",
-    "benchmarked": "^0.1.3",
-    "mocha": "*",
-    "should": "*"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "a1d97ccafcbc2625cc70fadceb36a50c58b01a53",
-    "tarball": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz"
-  },
-  "engines": {
-    "node": ">=0.10.0"
-  },
-  "files": [
-    "index.js"
-  ],
-  "gitHead": "36fde8e586fb7cf880b8b3aa6515df889e64ed85",
-  "homepage": "https://github.com/jonschlinkert/array-unique",
-  "license": {
-    "type": "MIT",
-    "url": "https://github.com/jonschlinkert/array-unique/blob/master/LICENSE"
-  },
-  "main": "index.js",
-  "maintainers": [
-    {
-      "name": "jonschlinkert",
-      "email": "github@sellside.com"
-    }
-  ],
-  "name": "array-unique",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/jonschlinkert/array-unique.git"
-  },
-  "scripts": {
-    "test": "mocha"
-  },
-  "version": "0.2.1"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/arrify/index.js
----------------------------------------------------------------------
diff --git a/node_modules/arrify/index.js b/node_modules/arrify/index.js
deleted file mode 100644
index 2a2fdee..0000000
--- a/node_modules/arrify/index.js
+++ /dev/null
@@ -1,8 +0,0 @@
-'use strict';
-module.exports = function (val) {
-	if (val === null || val === undefined) {
-		return [];
-	}
-
-	return Array.isArray(val) ? val : [val];
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/arrify/license
----------------------------------------------------------------------
diff --git a/node_modules/arrify/license b/node_modules/arrify/license
deleted file mode 100644
index 654d0bf..0000000
--- a/node_modules/arrify/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <si...@gmail.com> (sindresorhus.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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/arrify/package.json
----------------------------------------------------------------------
diff --git a/node_modules/arrify/package.json b/node_modules/arrify/package.json
deleted file mode 100644
index bb80a9c..0000000
--- a/node_modules/arrify/package.json
+++ /dev/null
@@ -1,98 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "arrify@^1.0.0",
-        "scope": null,
-        "escapedName": "arrify",
-        "name": "arrify",
-        "rawSpec": "^1.0.0",
-        "spec": ">=1.0.0 <2.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/anymatch"
-    ]
-  ],
-  "_from": "arrify@>=1.0.0 <2.0.0",
-  "_id": "arrify@1.0.1",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/arrify",
-  "_nodeVersion": "4.2.1",
-  "_npmUser": {
-    "name": "sindresorhus",
-    "email": "sindresorhus@gmail.com"
-  },
-  "_npmVersion": "3.5.2",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "arrify@^1.0.0",
-    "scope": null,
-    "escapedName": "arrify",
-    "name": "arrify",
-    "rawSpec": "^1.0.0",
-    "spec": ">=1.0.0 <2.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/anymatch"
-  ],
-  "_resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
-  "_shasum": "898508da2226f380df904728456849c1501a4b0d",
-  "_shrinkwrap": null,
-  "_spec": "arrify@^1.0.0",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/anymatch",
-  "author": {
-    "name": "Sindre Sorhus",
-    "email": "sindresorhus@gmail.com",
-    "url": "sindresorhus.com"
-  },
-  "bugs": {
-    "url": "https://github.com/sindresorhus/arrify/issues"
-  },
-  "dependencies": {},
-  "description": "Convert a value to an array",
-  "devDependencies": {
-    "ava": "*",
-    "xo": "*"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "898508da2226f380df904728456849c1501a4b0d",
-    "tarball": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz"
-  },
-  "engines": {
-    "node": ">=0.10.0"
-  },
-  "files": [
-    "index.js"
-  ],
-  "gitHead": "087edee1a58d5adaac6cae5a107886121ef43783",
-  "homepage": "https://github.com/sindresorhus/arrify#readme",
-  "keywords": [
-    "array",
-    "arr",
-    "arrify",
-    "arrayify",
-    "convert",
-    "value"
-  ],
-  "license": "MIT",
-  "maintainers": [
-    {
-      "name": "sindresorhus",
-      "email": "sindresorhus@gmail.com"
-    }
-  ],
-  "name": "arrify",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/sindresorhus/arrify.git"
-  },
-  "scripts": {
-    "test": "xo && ava"
-  },
-  "version": "1.0.1"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/arrify/readme.md
----------------------------------------------------------------------
diff --git a/node_modules/arrify/readme.md b/node_modules/arrify/readme.md
deleted file mode 100644
index 183d075..0000000
--- a/node_modules/arrify/readme.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# arrify [![Build Status](https://travis-ci.org/sindresorhus/arrify.svg?branch=master)](https://travis-ci.org/sindresorhus/arrify)
-
-> Convert a value to an array
-
-
-## Install
-
-```
-$ npm install --save arrify
-```
-
-
-## Usage
-
-```js
-const arrify = require('arrify');
-
-arrify('unicorn');
-//=> ['unicorn']
-
-arrify(['unicorn']);
-//=> ['unicorn']
-
-arrify(null);
-//=> []
-
-arrify(undefined);
-//=> []
-```
-
-*Supplying `null` or `undefined` results in an empty array.*
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asap/CHANGES.md
----------------------------------------------------------------------
diff --git a/node_modules/asap/CHANGES.md b/node_modules/asap/CHANGES.md
deleted file mode 100644
index e9ffa46..0000000
--- a/node_modules/asap/CHANGES.md
+++ /dev/null
@@ -1,64 +0,0 @@
-
-## 2.0.3
-
-Version 2.0.3 fixes a bug when adjusting the capacity of the task queue.
-
-## 2.0.1-2.02
-
-Version 2.0.1 fixes a bug in the way redirects were expressed that affected the
-function of Browserify, but which Mr would tolerate.
-
-## 2.0.0
-
-Version 2 of ASAP is a full rewrite with a few salient changes.
-First, the ASAP source is CommonJS only and designed with [Browserify][] and
-[Browserify-compatible][Mr] module loaders in mind.
-
-[Browserify]: https://github.com/substack/node-browserify
-[Mr]: https://github.com/montagejs/mr
-
-The new version has been refactored in two dimensions.
-Support for Node.js and browsers have been separated, using Browserify
-redirects and ASAP has been divided into two modules.
-The "raw" layer depends on the tasks to catch thrown exceptions and unravel
-Node.js domains.
-
-The full implementation of ASAP is loadable as `require("asap")` in both Node.js
-and browsers.
-
-The raw layer that lacks exception handling overhead is loadable as
-`require("asap/raw")`.
-The interface is the same for both layers.
-
-Tasks are no longer required to be functions, but can rather be any object that
-implements `task.call()`.
-With this feature you can recycle task objects to avoid garbage collector churn
-and avoid closures in general.
-
-The implementation has been rigorously documented so that our successors can
-understand the scope of the problem that this module solves and all of its
-nuances, ensuring that the next generation of implementations know what details
-are essential.
-
--   [asap.js](https://github.com/kriskowal/asap/blob/master/asap.js)
--   [raw.js](https://github.com/kriskowal/asap/blob/master/raw.js)
--   [browser-asap.js](https://github.com/kriskowal/asap/blob/master/browser-asap.js)
--   [browser-raw.js](https://github.com/kriskowal/asap/blob/master/browser-raw.js)
-
-The new version has also been rigorously tested across a broad spectrum of
-browsers, in both the window and worker context.
-The following charts capture the browser test results for the most recent
-release.
-The first chart shows test results for ASAP running in the main window context.
-The second chart shows test results for ASAP running in a web worker context.
-Test results are inconclusive (grey) on browsers that do not support web
-workers.
-These data are captured automatically by [Continuous
-Integration][].
-
-![Browser Compatibility](http://kriskowal-asap.s3-website-us-west-2.amazonaws.com/train/integration-2/saucelabs-results-matrix.svg)
-
-![Compatibility in Web Workers](http://kriskowal-asap.s3-website-us-west-2.amazonaws.com/train/integration-2/saucelabs-worker-results-matrix.svg)
-
-[Continuous Integration]: https://github.com/kriskowal/asap/blob/master/CONTRIBUTING.md
-

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asap/LICENSE.md
----------------------------------------------------------------------
diff --git a/node_modules/asap/LICENSE.md b/node_modules/asap/LICENSE.md
deleted file mode 100644
index ba18c61..0000000
--- a/node_modules/asap/LICENSE.md
+++ /dev/null
@@ -1,21 +0,0 @@
-
-Copyright 2009–2014 Contributors. 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.
-

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asap/README.md
----------------------------------------------------------------------
diff --git a/node_modules/asap/README.md b/node_modules/asap/README.md
deleted file mode 100644
index 452fd8c..0000000
--- a/node_modules/asap/README.md
+++ /dev/null
@@ -1,237 +0,0 @@
-# ASAP
-
-[![Build Status](https://travis-ci.org/kriskowal/asap.png?branch=master)](https://travis-ci.org/kriskowal/asap)
-
-Promise and asynchronous observer libraries, as well as hand-rolled callback
-programs and libraries, often need a mechanism to postpone the execution of a
-callback until the next available event.
-(See [Designing API’s for Asynchrony][Zalgo].)
-The `asap` function executes a task **as soon as possible** but not before it
-returns, waiting only for the completion of the current event and previously
-scheduled tasks.
-
-```javascript
-asap(function () {
-    // ...
-});
-```
-
-[Zalgo]: http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony
-
-This CommonJS package provides an `asap` module that exports a function that
-executes a task function *as soon as possible*.
-
-ASAP strives to schedule events to occur before yielding for IO, reflow,
-or redrawing.
-Each event receives an independent stack, with only platform code in parent
-frames and the events run in the order they are scheduled.
-
-ASAP provides a fast event queue that will execute tasks until it is
-empty before yielding to the JavaScript engine's underlying event-loop.
-When a task gets added to a previously empty event queue, ASAP schedules a flush
-event, preferring for that event to occur before the JavaScript engine has an
-opportunity to perform IO tasks or rendering, thus making the first task and
-subsequent tasks semantically indistinguishable.
-ASAP uses a variety of techniques to preserve this invariant on different
-versions of browsers and Node.js.
-
-By design, ASAP prevents input events from being handled until the task
-queue is empty.
-If the process is busy enough, this may cause incoming connection requests to be
-dropped, and may cause existing connections to inform the sender to reduce the
-transmission rate or stall.
-ASAP allows this on the theory that, if there is enough work to do, there is no
-sense in looking for trouble.
-As a consequence, ASAP can interfere with smooth animation.
-If your task should be tied to the rendering loop, consider using
-`requestAnimationFrame` instead.
-A long sequence of tasks can also effect the long running script dialog.
-If this is a problem, you may be able to use ASAP’s cousin `setImmediate` to
-break long processes into shorter intervals and periodically allow the browser
-to breathe.
-`setImmediate` will yield for IO, reflow, and repaint events.
-It also returns a handler and can be canceled.
-For a `setImmediate` shim, consider [YuzuJS setImmediate][setImmediate].
-
-[setImmediate]: https://github.com/YuzuJS/setImmediate
-
-Take care.
-ASAP can sustain infinite recursive calls without warning.
-It will not halt from a stack overflow, and it will not consume unbounded
-memory.
-This is behaviorally equivalent to an infinite loop.
-Just as with infinite loops, you can monitor a Node.js process for this behavior
-with a heart-beat signal.
-As with infinite loops, a very small amount of caution goes a long way to
-avoiding problems.
-
-```javascript
-function loop() {
-    asap(loop);
-}
-loop();
-```
-
-In browsers, if a task throws an exception, it will not interrupt the flushing
-of high-priority tasks.
-The exception will be postponed to a later, low-priority event to avoid
-slow-downs.
-In Node.js, if a task throws an exception, ASAP will resume flushing only if—and
-only after—the error is handled by `domain.on("error")` or
-`process.on("uncaughtException")`.
-
-## Raw ASAP
-
-Checking for exceptions comes at a cost.
-The package also provides an `asap/raw` module that exports the underlying
-implementation which is faster but stalls if a task throws an exception.
-This internal version of the ASAP function does not check for errors.
-If a task does throw an error, it will stall the event queue unless you manually
-call `rawAsap.requestFlush()` before throwing the error, or any time after.
-
-In Node.js, `asap/raw` also runs all tasks outside any domain.
-If you need a task to be bound to your domain, you will have to do it manually.
-
-```js
-if (process.domain) {
-    task = process.domain.bind(task);
-}
-rawAsap(task);
-```
-
-## Tasks
-
-A task may be any object that implements `call()`.
-A function will suffice, but closures tend not to be reusable and can cause
-garbage collector churn.
-Both `asap` and `rawAsap` accept task objects to give you the option of
-recycling task objects or using higher callable object abstractions.
-See the `asap` source for an illustration.
-
-
-## Compatibility
-
-ASAP is tested on Node.js v0.10 and in a broad spectrum of web browsers.
-The following charts capture the browser test results for the most recent
-release.
-The first chart shows test results for ASAP running in the main window context.
-The second chart shows test results for ASAP running in a web worker context.
-Test results are inconclusive (grey) on browsers that do not support web
-workers.
-These data are captured automatically by [Continuous
-Integration][].
-
-[Continuous Integration]: https://github.com/kriskowal/asap/blob/master/CONTRIBUTING.md
-
-![Browser Compatibility](http://kriskowal-asap.s3-website-us-west-2.amazonaws.com/train/integration-2/saucelabs-results-matrix.svg)
-
-![Compatibility in Web Workers](http://kriskowal-asap.s3-website-us-west-2.amazonaws.com/train/integration-2/saucelabs-worker-results-matrix.svg)
-
-## Caveats
-
-When a task is added to an empty event queue, it is not always possible to
-guarantee that the task queue will begin flushing immediately after the current
-event.
-However, once the task queue begins flushing, it will not yield until the queue
-is empty, even if the queue grows while executing tasks.
-
-The following browsers allow the use of [DOM mutation observers][] to access
-the HTML [microtask queue][], and thus begin flushing ASAP's task queue
-immediately at the end of the current event loop turn, before any rendering or
-IO:
-
-[microtask queue]: http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#microtask-queue
-[DOM mutation observers]: http://dom.spec.whatwg.org/#mutation-observers
-
-- Android 4–4.3
-- Chrome 26–34
-- Firefox 14–29
-- Internet Explorer 11
-- iPad Safari 6–7.1
-- iPhone Safari 7–7.1
-- Safari 6–7
-
-In the absense of mutation observers, there are a few browsers, and situations
-like web workers in some of the above browsers,  where [message channels][]
-would be a useful way to avoid falling back to timers.
-Message channels give direct access to the HTML [task queue][], so the ASAP
-task queue would flush after any already queued rendering and IO tasks, but
-without having the minimum delay imposed by timers.
-However, among these browsers, Internet Explorer 10 and Safari do not reliably
-dispatch messages, so they are not worth the trouble to implement.
-
-[message channels]: http://www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html#message-channels
-[task queue]: http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#concept-task
-
-- Internet Explorer 10
-- Safair 5.0-1
-- Opera 11-12
-
-In the absense of mutation observers, these browsers and the following browsers
-all fall back to using `setTimeout` and `setInterval` to ensure that a `flush`
-occurs.
-The implementation uses both and cancels whatever handler loses the race, since
-`setTimeout` tends to occasionally skip tasks in unisolated circumstances.
-Timers generally delay the flushing of ASAP's task queue for four milliseconds.
-
-- Firefox 3–13
-- Internet Explorer 6–10
-- iPad Safari 4.3
-- Lynx 2.8.7
-
-
-## Heritage
-
-ASAP has been factored out of the [Q][] asynchronous promise library.
-It originally had a naïve implementation in terms of `setTimeout`, but
-[Malte Ubl][NonBlocking] provided an insight that `postMessage` might be
-useful for creating a high-priority, no-delay event dispatch hack.
-Since then, Internet Explorer proposed and implemented `setImmediate`.
-Robert Katić began contributing to Q by measuring the performance of
-the internal implementation of `asap`, paying particular attention to
-error recovery.
-Domenic, Robert, and Kris Kowal collectively settled on the current strategy of
-unrolling the high-priority event queue internally regardless of what strategy
-we used to dispatch the potentially lower-priority flush event.
-Domenic went on to make ASAP cooperate with Node.js domains.
-
-[Q]: https://github.com/kriskowal/q
-[NonBlocking]: http://www.nonblocking.io/2011/06/windownexttick.html
-
-For further reading, Nicholas Zakas provided a thorough article on [The
-Case for setImmediate][NCZ].
-
-[NCZ]: http://www.nczonline.net/blog/2013/07/09/the-case-for-setimmediate/
-
-Ember’s RSVP promise implementation later [adopted][RSVP ASAP] the name ASAP but
-further developed the implentation.
-Particularly, The `MessagePort` implementation was abandoned due to interaction
-[problems with Mobile Internet Explorer][IE Problems] in favor of an
-implementation backed on the newer and more reliable DOM `MutationObserver`
-interface.
-These changes were back-ported into this library.
-
-[IE Problems]: https://github.com/cujojs/when/issues/197
-[RSVP ASAP]: https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js
-
-In addition, ASAP factored into `asap` and `asap/raw`, such that `asap` remained
-exception-safe, but `asap/raw` provided a tight kernel that could be used for
-tasks that guaranteed that they would not throw exceptions.
-This core is useful for promise implementations that capture thrown errors in
-rejected promises and do not need a second safety net.
-At the same time, the exception handling in `asap` was factored into separate
-implementations for Node.js and browsers, using the the [Browserify][Browser
-Config] `browser` property in `package.json` to instruct browser module loaders
-and bundlers, including [Browserify][], [Mr][], and [Mop][],  to use the
-browser-only implementation.
-
-[Browser Config]: https://gist.github.com/defunctzombie/4339901
-[Browserify]: https://github.com/substack/node-browserify
-[Mr]: https://github.com/montagejs/mr
-[Mop]: https://github.com/montagejs/mop
-
-## License
-
-Copyright 2009-2014 by Contributors
-MIT License (enclosed)
-

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asap/asap.js
----------------------------------------------------------------------
diff --git a/node_modules/asap/asap.js b/node_modules/asap/asap.js
deleted file mode 100644
index f04fcd5..0000000
--- a/node_modules/asap/asap.js
+++ /dev/null
@@ -1,65 +0,0 @@
-"use strict";
-
-var rawAsap = require("./raw");
-var freeTasks = [];
-
-/**
- * Calls a task as soon as possible after returning, in its own event, with
- * priority over IO events. An exception thrown in a task can be handled by
- * `process.on("uncaughtException") or `domain.on("error")`, but will otherwise
- * crash the process. If the error is handled, all subsequent tasks will
- * resume.
- *
- * @param {{call}} task A callable object, typically a function that takes no
- * arguments.
- */
-module.exports = asap;
-function asap(task) {
-    var rawTask;
-    if (freeTasks.length) {
-        rawTask = freeTasks.pop();
-    } else {
-        rawTask = new RawTask();
-    }
-    rawTask.task = task;
-    rawTask.domain = process.domain;
-    rawAsap(rawTask);
-}
-
-function RawTask() {
-    this.task = null;
-    this.domain = null;
-}
-
-RawTask.prototype.call = function () {
-    if (this.domain) {
-        this.domain.enter();
-    }
-    var threw = true;
-    try {
-        this.task.call();
-        threw = false;
-        // If the task throws an exception (presumably) Node.js restores the
-        // domain stack for the next event.
-        if (this.domain) {
-            this.domain.exit();
-        }
-    } finally {
-        // We use try/finally and a threw flag to avoid messing up stack traces
-        // when we catch and release errors.
-        if (threw) {
-            // In Node.js, uncaught exceptions are considered fatal errors.
-            // Re-throw them to interrupt flushing!
-            // Ensure that flushing continues if an uncaught exception is
-            // suppressed listening process.on("uncaughtException") or
-            // domain.on("error").
-            rawAsap.requestFlush();
-        }
-        // If the task threw an error, we do not want to exit the domain here.
-        // Exiting the domain would prevent the domain from catching the error.
-        this.task = null;
-        this.domain = null;
-        freeTasks.push(this);
-    }
-};
-

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asap/browser-asap.js
----------------------------------------------------------------------
diff --git a/node_modules/asap/browser-asap.js b/node_modules/asap/browser-asap.js
deleted file mode 100644
index 805c982..0000000
--- a/node_modules/asap/browser-asap.js
+++ /dev/null
@@ -1,66 +0,0 @@
-"use strict";
-
-// rawAsap provides everything we need except exception management.
-var rawAsap = require("./raw");
-// RawTasks are recycled to reduce GC churn.
-var freeTasks = [];
-// We queue errors to ensure they are thrown in right order (FIFO).
-// Array-as-queue is good enough here, since we are just dealing with exceptions.
-var pendingErrors = [];
-var requestErrorThrow = rawAsap.makeRequestCallFromTimer(throwFirstError);
-
-function throwFirstError() {
-    if (pendingErrors.length) {
-        throw pendingErrors.shift();
-    }
-}
-
-/**
- * Calls a task as soon as possible after returning, in its own event, with priority
- * over other events like animation, reflow, and repaint. An error thrown from an
- * event will not interrupt, nor even substantially slow down the processing of
- * other events, but will be rather postponed to a lower priority event.
- * @param {{call}} task A callable object, typically a function that takes no
- * arguments.
- */
-module.exports = asap;
-function asap(task) {
-    var rawTask;
-    if (freeTasks.length) {
-        rawTask = freeTasks.pop();
-    } else {
-        rawTask = new RawTask();
-    }
-    rawTask.task = task;
-    rawAsap(rawTask);
-}
-
-// We wrap tasks with recyclable task objects.  A task object implements
-// `call`, just like a function.
-function RawTask() {
-    this.task = null;
-}
-
-// The sole purpose of wrapping the task is to catch the exception and recycle
-// the task object after its single use.
-RawTask.prototype.call = function () {
-    try {
-        this.task.call();
-    } catch (error) {
-        if (asap.onerror) {
-            // This hook exists purely for testing purposes.
-            // Its name will be periodically randomized to break any code that
-            // depends on its existence.
-            asap.onerror(error);
-        } else {
-            // In a web browser, exceptions are not fatal. However, to avoid
-            // slowing down the queue of pending tasks, we rethrow the error in a
-            // lower priority turn.
-            pendingErrors.push(error);
-            requestErrorThrow();
-        }
-    } finally {
-        this.task = null;
-        freeTasks[freeTasks.length] = this;
-    }
-};


[17/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bunyan/CONTRIBUTING.md
----------------------------------------------------------------------
diff --git a/node_modules/bunyan/CONTRIBUTING.md b/node_modules/bunyan/CONTRIBUTING.md
deleted file mode 100644
index 628c7c2..0000000
--- a/node_modules/bunyan/CONTRIBUTING.md
+++ /dev/null
@@ -1,205 +0,0 @@
-# Contributing to node-bunyan
-
-Thanks for using node-bunyan and for considering contributing to it! Or perhaps
-you are just here to get a sniff for what is going on with node-bunyan
-development.
-
-
-## How you can help
-
-If you want to help me here, great! Thank you! Some ideas:
-
-- Do you have experience with and/or recommendations for a good automated
-  testing service? Ideally I'd like support for Mac, Linux, SmartOS, and maybe
-  Windows. Also, support for node.js versions 0.10 up to whatever the current
-  latest is. Are those too tall an order? What's more, Bunyan is meant to work
-  (at least partially) in the browser. Is there a good service for that?
-  Please discuss on [issue #342](https://github.com/trentm/node-bunyan/issues/342).
-
-- Fielding issues labelled with "[Type-Question][Type-Question]", if you are familiar
-  with Bunyan and know how to answer them, would be great.
-
-- If you want to dive into code, but aren't *that* familiar with node-bunyan,
-  then [issues labelled with Experience-Easy][Experience-Easy] are a good
-  place to start.
-
-- [Once I've made a once over
-  triaging](https://github.com/trentm/node-bunyan/issues/335) and consolodating
-  issues and PRs, volunteering for issues in a particular
-  [component](#component) with which you have familiarity would be great.
-
-[Type-Question]: https://github.com/trentm/node-bunyan/issues?q=is%3Aopen+is%3Aissue+label%3AType-Question
-
-
-## Trent's Biased Rules for Code
-
-In the hope that it makes it easier to get PRs into Bunyan, here is my biased
-list of what I typically want. Submitting a PR without all of these is
-*totally fine*! The only side-effect is that it may take longer for me to
-provide feedback on it and merge it. I'll politely request missing pieces.
-
-
-- Please follow existing code style. Contributed code must pass `make check`.
-  (Note: I intended to [change to eslint
-  soon](https://github.com/trentm/node-bunyan/issues/341), so currently `make
-  check` might be a moving target.)
-
-- Any user visible change in behaviour should almost certainly include an
-  update to the docs. Currently the "docs" is the README.md.
-
-- Adding a test case for code changes is **stronly recommended**, else I
-  can't easily promise to not break your fix/feature later. If you don't
-  grok the test suite, please ask. We can use it to form the basis for a
-  "test/README.md".
-
-- Typically a code change should have an associated issue or PR. This allows
-  addition of follow-up issues, discussion, test data, etc. to be associated
-  with the commit. Just using GitHub pull requests makes this easy.
-
-- All but the most trivial code changes should have an addition to the
-  [changelog](./CHANGES.md). The audience for the changelog is *Bunyan users*.
-  However, because rebasing longer-lived PRs against master is a pain
-  with a change to CHANGES.md, please **do not include a CHANGES.md change
-  in your PR. Instead suggest a CHANGES.md addition in a comment on the
-  PR.**
-
-- Good commit messages, please:
-    - The first line should be a succinct summary of the issue or fix. A
-      good candidate is to just cut 'n paste the issue title, if there is one.
-    - If the commit is for a particular issue/PR (see previous rule), please
-      list the issue number in the commit message. E.g. "Fixes #123" or "Related
-      to #234".
-    - The audience for commit messages is *Bunyan developers*.
-
-
-## Pull Request Lifecycle
-
-(Language adapted from
-[terraform](https://github.com/hashicorp/terraform/blob/master/CONTRIBUTING.md).)
-
-- You are welcome to submit your pull request for commentary or review before it
-  is fully completed. Please prefix the title of your pull request with "[WIP]"
-  to indicate this. It's also a good idea to include specific questions or items
-  you'd like feedback on.
-
-- Once you believe your pull request is ready to be merged, you can remove any
-  "[WIP]" prefix from the title and a core team member will review. See
-  Trent's Biased Rules above to help ensure that your contribution will be
-  merged quickly.
-
-- Trent or, if things go well, a node-bunyan maintainer will look over your
-  contribution and either provide comments letting you know if there is anything
-  left to do. Please be patient. Unfortunately, I'm not able to carve out
-  a *lot* of time for Bunyan development and maintenance.
-
-- Once all outstanding comments and checklist items have been addressed, your
-  contribution will be merged. Merged PRs will be included in the next
-  node-bunyan release.
-
-- In some cases, we might decide that a PR should be closed. We'll make sure to
-  provide clear reasoning when this happens.
-
-
-## Issue labels
-
-The point of issue labeling for node-bunyan is to help answer "what should be
-worked on now? what can be left for later?" I don't want issue labelling to
-become a burden for anyone, so (a) don't feel obliged to add them yourself and
-(b) I'm happy to reevaluate their usage.
-
-Bunyan shall have categories of [issue
-labels](https://github.com/trentm/node-bunyan/labels) named "$category-$value".
-An issue should have max *one* label from each set. Users of Google Code's
-dearly departed issue tracker may remember this kind of thing. This is a
-poorman's version of structured issue tracker metadata.
-
-I'm inclined to *not* do priorities right now. *Possibly* we'll use GitHub
-milestones to basically set targets for upcoming releases. But otherwise my
-sense is that for smaller OSS projects, assigning prios will get in the way.
-If people would think it helpful, I'd consider "Difficulty-" or "Experience-"
-categories (a la Rust's "E-" labels) to mark easier and intermediate tasks
-that someone interested but maybe not very familiar with Bunyan might want
-to tackle.
-
-For now, here are the various labels and their purpose:
-
-### Meta
-
-- needstriage: Temporary label to help me do a single triage pass through all
-  current open issues and PRs.
-  See [#335](https://github.com/trentm/node-bunyan/issues/335)
-  where I'm working through this.
-
-### Type
-
-Color: green
-
-- Type-Unknown: If it is still unclear or undecided if an issue is an intended
-  feature (perhaps arguing for better docs or examples to avoid confusion) or a
-  bug, I will use this category.
-- Type-Question: Asking a question on Bunyan usage, about the project, etc.
-- Type-Bug: A bug in Bunyan's behaviour.
-- Type-Improvement: A new feature or other improvement.
-- Type-Doc: Issues with Bunyan's documentation.
-- Type-Task: A project task to be done.
-
-TODO: consider Type-Unknown for the "unclear if bug or feature" tickets.
-
-### Component
-
-Color: blue
-
-- Component-Project: Project meta stuff like testing, linting, build, install,
-  etc.
-- Component-CLI: The `bunyan` command-line tool.
-- Component-Lib: catch-all for other library stuff
-    - Component-LibRotation: The bunyan library's log rotation support.
-    - Component-LibBrowser: Bunyan's handling/support for running in the browser.
-    - Component-LibFlush: A separate component for collecting the tickets related
-      to closing/flushing bunyan streams on process shutdown.
-
-The point of components is to find like issues to help with reference, search
-and resolving them. If no component fits an issue/PR, then don't add a label.
-
-### Resolution
-
-Color: red
-
-- Resolution-WontFix
-- Resolution-Duplicate
-- Resolution-Fixed: Also used to indicate "doc written", "question answered",
-  "feature implemented".
-- Resolution-CannotRepro: After some reasonable attempt by maintainers to
-  reproduce a bug report, I want it to be non-controversial to close it
-  and mark it with this. If given more info by someone able to repro, we
-  can happy re-open issues.
-
-### Experience
-
-Color: yellow
-
-- Experience-Easy: Relatively little experience with node-bunyan should be
-  required to complete this issue.
-- Experience-NeedsTest: Typically added to an issue or PR that needs a test
-  case. Someone familiar enough with node-bunyan's test suite could tackle this.
-- Experience-Hard: At a guess, this is a thorny issue that requires known
-  node-bunyan well, knowing node.js well, requires design review or all of
-  these.
-
-One of the "Experience-\*" labels can optionally be put on an issue or PR to
-indicate what kind of experience a contributor would need with node-bunyan
-(and/or node.js) to complete it. For example, if you're looking for somewhere to
-start, check out the [Experience-Easy][Experience-Easy] tag. This category idea
-is borrowed from [rust's E-\* labels][rust-issue-triage].
-
-[Experience-Easy]: https://github.com/trentm/node-bunyan/issues?q=is%3Aopen+is%3Aissue+label%3AExperience-Easy
-[rust-issue-triage]: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#issue-triage
-
-
-## Acknowledgements
-
-Anything good about this document is thanks to inspiration from
-[rust](https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md) and, more
-recently
-[terraform](https://github.com/hashicorp/terraform/blob/master/CONTRIBUTING.md).
-Anything bad about it, is my fault.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bunyan/LICENSE.txt
----------------------------------------------------------------------
diff --git a/node_modules/bunyan/LICENSE.txt b/node_modules/bunyan/LICENSE.txt
deleted file mode 100644
index ced38b4..0000000
--- a/node_modules/bunyan/LICENSE.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-# This is the MIT license
-
-Copyright 2016 Trent Mick
-Copyright 2016 Joyent Inc.
-
-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.
-

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bunyan/Makefile
----------------------------------------------------------------------
diff --git a/node_modules/bunyan/Makefile b/node_modules/bunyan/Makefile
deleted file mode 100644
index 2eb3fd1..0000000
--- a/node_modules/bunyan/Makefile
+++ /dev/null
@@ -1,149 +0,0 @@
-
-#---- Tools
-
-NODEUNIT := ./node_modules/.bin/nodeunit
-SUDO := sudo
-ifeq ($(shell uname -s),SunOS)
-	# On SunOS (e.g. SmartOS) we expect to run the test suite as the
-	# root user -- necessary to run dtrace. Therefore `pfexec` isn't
-	# necessary.
-	SUDO :=
-endif
-DTRACE_UP_IN_HERE=
-ifeq ($(shell uname -s),SunOS)
-    DTRACE_UP_IN_HERE=1
-endif
-ifeq ($(shell uname -s),Darwin)
-    DTRACE_UP_IN_HERE=1
-endif
-NODEOPT ?= $(HOME)/opt
-
-
-#---- Files
-
-JSSTYLE_FILES := $(shell find lib test tools examples -name "*.js") bin/bunyan
-# All test files *except* dtrace.test.js.
-NON_DTRACE_TEST_FILES := $(shell ls -1 test/*.test.js | grep -v dtrace | xargs)
-
-
-#---- Targets
-
-all $(NODEUNIT):
-	npm install $(NPM_INSTALL_FLAGS)
-
-# Ensure all version-carrying files have the same version.
-.PHONY: versioncheck
-versioncheck:
-	@echo version is: $(shell cat package.json | json version)
-	[[ `cat package.json | json version` == `grep '^## ' CHANGES.md | head -2 | tail -1 | awk '{print $$2}'` ]]
-	[[ `cat package.json | json version` == `grep '^var VERSION' bin/bunyan | awk -F"'" '{print $$2}'` ]]
-	[[ `cat package.json | json version` == `grep '^var VERSION' lib/bunyan.js | awk -F"'" '{print $$2}'` ]]
-	@echo Version check ok.
-
-.PHONY: cutarelease
-cutarelease: check
-	[[ -z `git status --short` ]]  # If this fails, the working dir is dirty.
-	@which json 2>/dev/null 1>/dev/null && \
-	    ver=$(shell json -f package.json version) && \
-	    name=$(shell json -f package.json name) && \
-	    publishedVer=$(shell npm view -j $(shell json -f package.json name)@$(shell json -f package.json version) version 2>/dev/null) && \
-	    if [[ -n "$$publishedVer" ]]; then \
-		echo "error: $$name@$$ver is already published to npm"; \
-		exit 1; \
-	    fi && \
-	    echo "** Are you sure you want to tag and publish $$name@$$ver to npm?" && \
-	    echo "** Enter to continue, Ctrl+C to abort." && \
-	    read
-	ver=$(shell cat package.json | json version) && \
-	    date=$(shell date -u "+%Y-%m-%d") && \
-	    git tag -a "$$ver" -m "version $$ver ($$date)" && \
-	    git push --tags origin && \
-	    npm publish
-
-.PHONY: docs
-docs: toc
-	@[[ `which ronn` ]] || (echo "No 'ronn' on your PATH. Install with 'gem install ronn'" && exit 2)
-	mkdir -p man/man1
-	ronn --style=toc --manual="bunyan manual" --date=$(shell git log -1 --pretty=format:%cd --date=short) --roff --html docs/bunyan.1.ronn
-	python -c 'import sys; h = open("docs/bunyan.1.html").read(); h = h.replace(".mp dt.flush {float:left;width:8ex}", ""); open("docs/bunyan.1.html", "w").write(h)'
-	python -c 'import sys; h = open("docs/bunyan.1.html").read(); h = h.replace("</body>", """<a href="https://github.com/trentm/node-bunyan"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a></body>"""); open("docs/bunyan.1.html", "w").write(h)'
-	@echo "# test with 'man ./docs/bunyan.1' and 'open ./docs/bunyan.1.html'"
-
-# Re-generate the README.md table of contents.
-toc:
-	./node_modules/.bin/markdown-toc -i README.md
-
-
-.PHONY: publish
-publish:
-	mkdir -p tmp
-	[[ -d tmp/bunyan-gh-pages ]] || git clone git@github.com:trentm/node-bunyan.git tmp/bunyan-gh-pages
-	cd tmp/bunyan-gh-pages && git checkout gh-pages && git pull --rebase origin gh-pages
-	cp docs/index.html tmp/bunyan-gh-pages/index.html
-	cp docs/bunyan.1.html tmp/bunyan-gh-pages/bunyan.1.html
-	(cd tmp/bunyan-gh-pages \
-		&& git commit -a -m "publish latest docs" \
-		&& git push origin gh-pages || true)
-
-.PHONY: distclean
-distclean:
-	rm -rf node_modules
-
-
-#---- test
-
-.PHONY: test
-test: $(NODEUNIT)
-	test -z "$(DTRACE_UP_IN_HERE)" || test -n "$(SKIP_DTRACE)" || \
-		(node -e 'require("dtrace-provider").createDTraceProvider("isthisthingon")' && \
-		echo "\nNote: Use 'SKIP_DTRACE=1 make test' to skip parts of the test suite that require root." && \
-		$(SUDO) $(NODEUNIT) test/dtrace.test.js)
-	$(NODEUNIT) $(NON_DTRACE_TEST_FILES)
-
-# Test will all node supported versions (presumes install locations I use on
-# my machine -- "~/opt/node-VER"):
-# Note: 'test4' is last so (if all is well) I end up with a binary
-# dtrace-provider build for my current default node version.
-.PHONY: testall
-testall: test7 test6 test012 test010 test4
-
-.PHONY: test7
-test7:
-	@echo "# Test node 7.x (with node `$(NODEOPT)/node-7/bin/node --version`)"
-	@$(NODEOPT)/node-7/bin/node --version | grep '^v7\.'
-	PATH="$(NODEOPT)/node-7/bin:$(PATH)" make distclean all test
-.PHONY: test6
-test6:
-	@echo "# Test node 6.x (with node `$(NODEOPT)/node-6/bin/node --version`)"
-	@$(NODEOPT)/node-6/bin/node --version | grep '^v6\.'
-	PATH="$(NODEOPT)/node-6/bin:$(PATH)" make distclean all test
-.PHONY: test4
-test4:
-	@echo "# Test node 4.x (with node `$(NODEOPT)/node-4/bin/node --version`)"
-	@$(NODEOPT)/node-4/bin/node --version | grep '^v4\.'
-	PATH="$(NODEOPT)/node-4/bin:$(PATH)" make distclean all test
-.PHONY: test012
-test012:
-	@echo "# Test node 0.12.x (with node `$(NODEOPT)/node-0.12/bin/node --version`)"
-	@$(NODEOPT)/node-0.12/bin/node --version | grep '^v0\.12\.'
-	PATH="$(NODEOPT)/node-0.12/bin:$(PATH)" make distclean all test
-.PHONY: test010
-test010:
-	@echo "# Test node 0.10.x (with node `$(NODEOPT)/node-0.10/bin/node --version`)"
-	@$(NODEOPT)/node-0.10/bin/node --version | grep '^v0\.10\.'
-	PATH="$(NODEOPT)/node-0.10/bin:$(PATH)" make distclean all test
-
-
-#---- check
-
-.PHONY: check-jsstyle
-check-jsstyle: $(JSSTYLE_FILES)
-	./tools/jsstyle -o indent=4,doxygen,unparenthesized-return=0,blank-after-start-comment=0,leading-right-paren-ok=1 $(JSSTYLE_FILES)
-
-.PHONY: check
-check: check-jsstyle versioncheck
-	@echo "Check ok."
-
-.PHONY: prepush
-prepush: check testall
-	@echo "Okay to push."

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bunyan/README.md
----------------------------------------------------------------------
diff --git a/node_modules/bunyan/README.md b/node_modules/bunyan/README.md
deleted file mode 100644
index 1e225ec..0000000
--- a/node_modules/bunyan/README.md
+++ /dev/null
@@ -1,1320 +0,0 @@
-[![npm version](https://img.shields.io/npm/v/bunyan.svg?style=flat)](https://www.npmjs.com/package/bunyan)
-
-Bunyan is **a simple and fast JSON logging library** for node.js services:
-
-```js
-var bunyan = require('bunyan');
-var log = bunyan.createLogger({name: "myapp"});
-log.info("hi");
-```
-
-and **a `bunyan` CLI tool** for nicely viewing those logs:
-
-![bunyan CLI screenshot](https://raw.github.com/trentm/node-bunyan/master/tools/screenshot1.png)
-
-Manifesto: Server logs should be structured. JSON's a good format. Let's do
-that. A log record is one line of `JSON.stringify`'d output. Let's also
-specify some common names for the requisite and common fields for a log
-record (see below).
-
-
-## Table of Contents
-
-<!-- toc -->
-
-- [Current Status](#current-status)
-- [Installation](#installation)
-- [Features](#features)
-- [Introduction](#introduction)
-  * [Constructor API](#constructor-api)
-  * [Log Method API](#log-method-api)
-  * [CLI Usage](#cli-usage)
-  * [Streams Introduction](#streams-introduction)
-  * [log.child](#logchild)
-  * [Serializers](#serializers)
-    + [Standard Serializers](#standard-serializers)
-  * [src](#src)
-- [Levels](#levels)
-  * [Level suggestions](#level-suggestions)
-- [Log Record Fields](#log-record-fields)
-  * [Core fields](#core-fields)
-  * [Recommended/Best Practice Fields](#recommendedbest-practice-fields)
-  * [Other fields to consider](#other-fields-to-consider)
-- [Streams](#streams)
-  * [stream errors](#stream-errors)
-  * [stream type: `stream`](#stream-type-stream)
-  * [stream type: `file`](#stream-type-file)
-  * [stream type: `rotating-file`](#stream-type-rotating-file)
-  * [stream type: `raw`](#stream-type-raw)
-  * [`raw` + RingBuffer Stream](#raw--ringbuffer-stream)
-  * [third-party streams](#third-party-streams)
-- [Runtime log snooping via DTrace](#runtime-log-snooping-via-dtrace)
-  * [DTrace examples](#dtrace-examples)
-- [Runtime environments](#runtime-environments)
-  * [Browserify](#browserify)
-  * [Webpack](#webpack)
-- [Versioning](#versioning)
-- [License](#license)
-- [See Also](#see-also)
-
-<!-- tocstop -->
-
-# Current Status
-
-Solid core functionality is there. Joyent is using this for a number of
-production services. Bunyan supports node 0.10 and greater. Follow
-<a href="https://twitter.com/intent/user?screen_name=trentmick" target="_blank">@trentmick</a>
-for updates to Bunyan.
-
-There is an email discussion list
-[bunyan-logging@googlegroups.com](mailto:bunyan-logging@googlegroups.com),
-also [as a forum in the
-browser](https://groups.google.com/forum/?fromgroups#!forum/bunyan-logging).
-
-
-# Installation
-
-```sh
-npm install bunyan
-```
-
-**Tip**: The `bunyan` CLI tool is written to be compatible (within reason) with
-all versions of Bunyan logs. Therefore you might want to `npm install -g bunyan`
-to get the bunyan CLI on your PATH, then use local bunyan installs for
-node.js library usage of bunyan in your apps.
-
-
-# Features
-
-- elegant [log method API](#log-method-api)
-- extensible [streams](#streams) system for controlling where log records
-  go (to a stream, to a file, [log file rotation](#stream-type-rotating-file),
-  etc.)
-- [`bunyan` CLI](#cli-usage) for pretty-printing and filtering of Bunyan logs
-- simple include of log call source location (file, line, function) with
-  [`src: true`](#src)
-- lightweight specialization of Logger instances with [`log.child`](#logchild)
-- custom rendering of logged objects with ["serializers"](#serializers)
-- [Runtime log snooping via DTrace support](#runtime-log-snooping-via-dtrace)
-- Support for a few [runtime environments](#runtime-environments): Node.js,
-  [Browserify](http://browserify.org/), [Webpack](https://webpack.github.io/), [NW.js](http://nwjs.io/).
-
-
-# Introduction
-
-Like most logging libraries you create a Logger instance and call methods
-named after the logging levels:
-
-```js
-// hi.js
-var bunyan = require('bunyan');
-var log = bunyan.createLogger({name: 'myapp'});
-log.info('hi');
-log.warn({lang: 'fr'}, 'au revoir');
-```
-
-All loggers must provide a "name". This is somewhat akin to the log4j logger
-"name", but Bunyan doesn't do hierarchical logger names.
-
-**Bunyan log records are JSON.** A few fields are added automatically:
-"pid", "hostname", "time" and "v".
-
-```sh
-$ node hi.js
-{"name":"myapp","hostname":"banana.local","pid":40161,"level":30,"msg":"hi","time":"2013-01-04T18:46:23.851Z","v":0}
-{"name":"myapp","hostname":"banana.local","pid":40161,"level":40,"lang":"fr","msg":"au revoir","time":"2013-01-04T18:46:23.853Z","v":0}
-```
-
-
-## Constructor API
-
-```js
-var bunyan = require('bunyan');
-var log = bunyan.createLogger({
-    name: <string>,                     // Required
-    level: <level name or number>,      // Optional, see "Levels" section
-    stream: <node.js stream>,           // Optional, see "Streams" section
-    streams: [<bunyan streams>, ...],   // Optional, see "Streams" section
-    serializers: <serializers mapping>, // Optional, see "Serializers" section
-    src: <boolean>,                     // Optional, see "src" section
-
-    // Any other fields are added to all log records as is.
-    foo: 'bar',
-    ...
-});
-```
-
-
-## Log Method API
-
-The example above shows two different ways to call `log.info(...)`. The
-full API is:
-
-```js
-log.info();     // Returns a boolean: is the "info" level enabled?
-                // This is equivalent to `log.isInfoEnabled()` or
-                // `log.isEnabledFor(INFO)` in log4j.
-
-log.info('hi');                     // Log a simple string message (or number).
-log.info('hi %s', bob, anotherVar); // Uses `util.format` for msg formatting.
-
-log.info({foo: 'bar'}, 'hi');
-                // The first field can optionally be a "fields" object, which
-                // is merged into the log record.
-
-log.info(err);  // Special case to log an `Error` instance to the record.
-                // This adds an "err" field with exception details
-                // (including the stack) and sets "msg" to the exception
-                // message.
-log.info(err, 'more on this: %s', more);
-                // ... or you can specify the "msg".
-
-log.info({foo: 'bar', err: err}, 'some msg about this error');
-                // To pass in an Error *and* other fields, use the `err`
-                // field name for the Error instance.
-```
-
-Note that this implies **you cannot blindly pass any object as the first
-argument to log it** because that object might include fields that collide with
-Bunyan's [core record fields](#core-fields). In other words,
-`log.info(mywidget)` may not yield what you expect. Instead of a string
-representation of `mywidget` that other logging libraries may give you, Bunyan
-will try to JSON-ify your object. It is a Bunyan best practice to always give a
-field name to included objects, e.g.:
-
-```js
-log.info({widget: mywidget}, ...)
-```
-
-This will dove-tail with [Bunyan serializer support](#serializers), discussed
-later.
-
-The same goes for all of Bunyan's log levels: `log.trace`, `log.debug`,
-`log.info`, `log.warn`, `log.error`, and `log.fatal`. See the [levels
-section](#levels) below for details and suggestions.
-
-
-## CLI Usage
-
-Bunyan log output is a stream of JSON objects. This is great for processing,
-but not for reading directly. A **`bunyan` tool** is provided **for
-pretty-printing bunyan logs** and for **filtering** (e.g.
-`| bunyan -c 'this.foo == "bar"'`). Using our example above:
-
-```sh
-$ node hi.js | ./node_modules/.bin/bunyan
-[2013-01-04T19:01:18.241Z]  INFO: myapp/40208 on banana.local: hi
-[2013-01-04T19:01:18.242Z]  WARN: myapp/40208 on banana.local: au revoir (lang=fr)
-```
-
-See the screenshot above for an example of the default coloring of rendered
-log output. That example also shows the nice formatting automatically done for
-some well-known log record fields (e.g. `req` is formatted like an HTTP request,
-`res` like an HTTP response, `err` like an error stack trace).
-
-One interesting feature is **filtering** of log content, which can be useful
-for digging through large log files or for analysis. We can filter only
-records above a certain level:
-
-```sh
-$ node hi.js | bunyan -l warn
-[2013-01-04T19:08:37.182Z]  WARN: myapp/40353 on banana.local: au revoir (lang=fr)
-```
-
-Or filter on the JSON fields in the records (e.g. only showing the French
-records in our contrived example):
-
-```sh
-$ node hi.js | bunyan -c 'this.lang == "fr"'
-[2013-01-04T19:08:26.411Z]  WARN: myapp/40342 on banana.local: au revoir (lang=fr)
-```
-
-See `bunyan --help` for other facilities.
-
-
-## Streams Introduction
-
-By default, log output is to stdout and at the "info" level. Explicitly that
-looks like:
-
-```js
-var log = bunyan.createLogger({
-    name: 'myapp',
-    stream: process.stdout,
-    level: 'info'
-});
-```
-
-That is an abbreviated form for a single stream. **You can define multiple
-streams at different levels**.
-
-```js
-var log = bunyan.createLogger({
-  name: 'myapp',
-  streams: [
-    {
-      level: 'info',
-      stream: process.stdout            // log INFO and above to stdout
-    },
-    {
-      level: 'error',
-      path: '/var/tmp/myapp-error.log'  // log ERROR and above to a file
-    }
-  ]
-});
-```
-
-More on streams in the [Streams section](#streams) below.
-
-## log.child
-
-Bunyan has a concept of a child logger to **specialize a logger for a
-sub-component of your application**, i.e. to create a new logger with
-additional bound fields that will be included in its log records. A child
-logger is created with `log.child(...)`.
-
-In the following example, logging on a "Wuzzle" instance's `this.log` will
-be exactly as on the parent logger with the addition of the `widget_type`
-field:
-
-```js
-var bunyan = require('bunyan');
-var log = bunyan.createLogger({name: 'myapp'});
-
-function Wuzzle(options) {
-    this.log = options.log.child({widget_type: 'wuzzle'});
-    this.log.info('creating a wuzzle')
-}
-Wuzzle.prototype.woos = function () {
-    this.log.warn('This wuzzle is woosey.')
-}
-
-log.info('start');
-var wuzzle = new Wuzzle({log: log});
-wuzzle.woos();
-log.info('done');
-```
-
-Running that looks like (raw):
-
-```sh
-$ node myapp.js
-{"name":"myapp","hostname":"myhost","pid":34572,"level":30,"msg":"start","time":"2013-01-04T07:47:25.814Z","v":0}
-{"name":"myapp","hostname":"myhost","pid":34572,"widget_type":"wuzzle","level":30,"msg":"creating a wuzzle","time":"2013-01-04T07:47:25.815Z","v":0}
-{"name":"myapp","hostname":"myhost","pid":34572,"widget_type":"wuzzle","level":40,"msg":"This wuzzle is woosey.","time":"2013-01-04T07:47:25.815Z","v":0}
-{"name":"myapp","hostname":"myhost","pid":34572,"level":30,"msg":"done","time":"2013-01-04T07:47:25.816Z","v":0}
-```
-
-And with the `bunyan` CLI (using the "short" output mode):
-
-```sh
-$ node myapp.js  | bunyan -o short
-07:46:42.707Z  INFO myapp: start
-07:46:42.709Z  INFO myapp: creating a wuzzle (widget_type=wuzzle)
-07:46:42.709Z  WARN myapp: This wuzzle is woosey. (widget_type=wuzzle)
-07:46:42.709Z  INFO myapp: done
-```
-
-A more practical example is in the
-[node-restify](https://github.com/mcavage/node-restify) web framework.
-Restify uses Bunyan for its logging. One feature of its integration, is that
-if `server.use(restify.requestLogger())` is used, each restify request handler
-includes a `req.log` logger that is:
-
-```js
-log.child({req_id: <unique request id>}, true)
-```
-
-Apps using restify can then use `req.log` and have all such log records
-include the unique request id (as "req\_id"). Handy.
-
-
-## Serializers
-
-Bunyan has a concept of **"serializer" functions to produce a JSON-able object
-from a JavaScript object**, so you can easily do the following:
-
-```js
-log.info({req: <request object>}, 'something about handling this request');
-```
-
-and have the `req` entry in the log record be just a reasonable subset of
-`<request object>` fields (or computed data about those fields).
-
-
-A logger instance can have a `serializers` mapping of log record field name
-("req" in this example) to a serializer function. When creating the log
-record, Bunyan will call the serializer function for fields of that name.
-An example:
-
-```js
-function reqSerializer(req) {
-    return {
-        method: req.method,
-        url: req.url,
-        headers: req.headers
-    };
-}
-var log = bunyan.createLogger({
-    name: 'myapp',
-    serializers: {
-        req: reqSerializer
-    }
-});
-```
-
-
-Typically serializers are added to a logger at creation time via
-`bunyan.createLogger({..., serializers: <serializers>})`. However, serializers
-can be added after creation via `<logger>.addSerializers(...)`, e.g.:
-
-```js
-var log = bunyan.createLogger({name: 'myapp'});
-log.addSerializers({req: reqSerializer});
-```
-
-
-**Note**: Your own serializers should never throw, otherwise you'll get an
-ugly message on stderr from Bunyan (along with the traceback) and the field
-in your log record will be replaced with a short error message.
-
-
-### Standard Serializers
-
-Bunyan includes a small set of "standard serializers", exported as
-`bunyan.stdSerializers`. Their use is completely optional. Example using
-all of them:
-
-```js
-var log = bunyan.createLogger({
-    name: 'myapp',
-    serializers: bunyan.stdSerializers
-});
-```
-
-or particular ones:
-
-```js
-var log = bunyan.createLogger({
-    name: 'myapp',
-    serializers: {err: bunyan.stdSerializers.err}
-});
-```
-
-Standard serializers are:
-
-| Field | Description |
-| ----- | ----------- |
-| err   | Used for serializing JavaScript error objects, including traversing an error's cause chain for error objects with a `.cause()` -- e.g. as from [verror](https://github.com/davepacheco/node-verror). |
-| req   | Common fields from a node.js HTTP request object. |
-| res   | Common fields from a node.js HTTP response object. |
-
-Note that the `req` and `res` serializers intentionally do not include the
-request/response *body*, as that can be prohibitively large. If helpful, the
-[restify framework's audit logger plugin](https://github.com/restify/node-restify/blob/ac13902ad9716dcb20aaa62295403983075b1841/lib/plugins/audit.js#L38-L87)
-has its own req/res serializers that include more information (optionally
-including the body).
-
-
-## src
-
-The **source file, line and function of the log call site** can be added to
-log records by using the `src: true` config option:
-
-```js
-var log = bunyan.createLogger({src: true, ...});
-```
-
-This adds the call source info with the 'src' field, like this:
-
-```js
-{
-  "name": "src-example",
-  "hostname": "banana.local",
-  "pid": 123,
-  "component": "wuzzle",
-  "level": 4,
-  "msg": "This wuzzle is woosey.",
-  "time": "2012-02-06T04:19:35.605Z",
-  "src": {
-    "file": "/Users/trentm/tm/node-bunyan/examples/src.js",
-    "line": 20,
-    "func": "Wuzzle.woos"
-  },
-  "v": 0
-}
-```
-
-**WARNING: Determining the call source info is slow. Never use this option
-in production.**
-
-
-# Levels
-
-The log levels in bunyan are as follows. The level descriptions are best
-practice *opinions* of the author.
-
-- "fatal" (60): The service/app is going to stop or become unusable now.
-  An operator should definitely look into this soon.
-- "error" (50): Fatal for a particular request, but the service/app continues
-  servicing other requests. An operator should look at this soon(ish).
-- "warn" (40): A note on something that should probably be looked at by an
-  operator eventually.
-- "info" (30): Detail on regular operation.
-- "debug" (20): Anything else, i.e. too verbose to be included in "info" level.
-- "trace" (10): Logging from external libraries used by your app or *very*
-  detailed application logging.
-
-Setting a logger instance (or one of its streams) to a particular level implies
-that all log records *at that level and above* are logged. E.g. a logger set to
-level "info" will log records at level info and above (warn, error, fatal).
-
-While using log level *names* is preferred, the actual level values are integers
-internally (10 for "trace", ..., 60 for "fatal"). Constants are defined for
-the levels: `bunyan.TRACE` ... `bunyan.FATAL`. The lowercase level names are
-aliases supported in the API, e.g. `log.level("info")`. There is one exception:
-DTrace integration uses the level names. The fired DTrace probes are named
-'bunyan-$levelName'.
-
-Here is the API for querying and changing levels on an existing logger.
-Recall that a logger instance has an array of output "streams":
-
-```js
-log.level() -> INFO   // gets current level (lowest level of all streams)
-
-log.level(INFO)       // set all streams to level INFO
-log.level("info")     // set all streams to level INFO
-
-log.levels() -> [DEBUG, INFO]   // get array of levels of all streams
-log.levels(0) -> DEBUG          // get level of stream at index 0
-log.levels("foo")               // get level of stream with name "foo"
-
-log.levels(0, INFO)             // set level of stream 0 to INFO
-log.levels(0, "info")           // can use "info" et al aliases
-log.levels("foo", WARN)         // set stream named "foo" to WARN
-```
-
-
-## Level suggestions
-
-Trent's biased suggestions for server apps: Use "debug" sparingly. Information
-that will be useful to debug errors *post mortem* should usually be included in
-"info" messages if it's generally relevant or else with the corresponding
-"error" event. Don't rely on spewing mostly irrelevant debug messages all the
-time and sifting through them when an error occurs.
-
-Trent's biased suggestions for node.js libraries: IMHO, libraries should only
-ever log at `trace`-level. Fine control over log output should be up to the
-app using a library. Having a library that spews log output at higher levels
-gets in the way of a clear story in the *app* logs.
-
-
-# Log Record Fields
-
-This section will describe *rules* for the Bunyan log format: field names,
-field meanings, required fields, etc. However, a Bunyan library doesn't
-strictly enforce all these rules while records are being emitted. For example,
-Bunyan will add a `time` field with the correct format to your log records,
-but you can specify your own. It is the caller's responsibility to specify
-the appropriate format.
-
-The reason for the above leniency is because IMO logging a message should
-never break your app. This leads to this rule of logging: **a thrown
-exception from `log.info(...)` or equivalent (other than for calling with the
-incorrect signature) is always a bug in Bunyan.**
-
-
-A typical Bunyan log record looks like this:
-
-```js
-{"name":"myserver","hostname":"banana.local","pid":123,"req":{"method":"GET","url":"/path?q=1#anchor","headers":{"x-hi":"Mom","connection":"close"}},"level":3,"msg":"start request","time":"2012-02-03T19:02:46.178Z","v":0}
-```
-
-Pretty-printed:
-
-```js
-{
-  "name": "myserver",
-  "hostname": "banana.local",
-  "pid": 123,
-  "req": {
-    "method": "GET",
-    "url": "/path?q=1#anchor",
-    "headers": {
-      "x-hi": "Mom",
-      "connection": "close"
-    },
-    "remoteAddress": "120.0.0.1",
-    "remotePort": 51244
-  },
-  "level": 3,
-  "msg": "start request",
-  "time": "2012-02-03T19:02:57.534Z",
-  "v": 0
-}
-```
-
-## Core fields
-
-- `v`: Required. Integer. Added by Bunyan. Cannot be overridden.
-  This is the Bunyan log format version (`require('bunyan').LOG_VERSION`).
-  The log version is a single integer. `0` is until I release a version
-  "1.0.0" of node-bunyan. Thereafter, starting with `1`, this will be
-  incremented if there is any backward incompatible change to the log record
-  format. Details will be in "CHANGES.md" (the change log).
-- `level`: Required. Integer. Added by Bunyan. Cannot be overridden.
-  See the "Levels" section.
-- `name`: Required. String. Provided at Logger creation.
-  You must specify a name for your logger when creating it. Typically this
-  is the name of the service/app using Bunyan for logging.
-- `hostname`: Required. String. Provided or determined at Logger creation.
-  You can specify your hostname at Logger creation or it will be retrieved
-  vi `os.hostname()`.
-- `pid`: Required. Integer. Filled in automatically at Logger creation.
-- `time`: Required. String. Added by Bunyan. Can be overridden.
-  The date and time of the event in [ISO 8601
-  Extended Format](http://en.wikipedia.org/wiki/ISO_8601) format and in UTC,
-  as from
-  [`Date.toISOString()`](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toISOString).
-- `msg`: Required. String.
-  Every `log.debug(...)` et al call must provide a log message.
-- `src`: Optional. Object giving log call source info. This is added
-  automatically by Bunyan if the "src: true" config option is given to the
-  Logger. Never use in production as this is really slow.
-
-
-Go ahead and add more fields, and nested ones are fine (and recommended) as
-well. This is why we're using JSON. Some suggestions and best practices
-follow (feedback from actual users welcome).
-
-
-## Recommended/Best Practice Fields
-
-- `err`: Object. A caught JS exception. Log that thing with `log.info(err)`
-    to get:
-
-    ```js
-    ...
-    "err": {
-      "message": "boom",
-      "name": "TypeError",
-      "stack": "TypeError: boom\n    at Object.<anonymous> ..."
-    },
-    "msg": "boom",
-    ...
-    ```
-
-    Or use the `bunyan.stdSerializers.err` serializer in your Logger and
-    do this `log.error({err: err}, "oops")`. See "examples/err.js".
-
-- `req_id`: String. A request identifier. Including this field in all logging
-  tied to handling a particular request to your server is strongly suggested.
-  This allows post analysis of logs to easily collate all related logging
-  for a request. This really shines when you have a SOA with multiple services
-  and you carry a single request ID from the top API down through all APIs
-  (as [node-restify](https://github.com/mcavage/node-restify) facilitates
-  with its 'Request-Id' header).
-
-- `req`: An HTTP server request. Bunyan provides `bunyan.stdSerializers.req`
-  to serialize a request with a suggested set of keys. Example:
-
-    ```js
-    {
-      "method": "GET",
-      "url": "/path?q=1#anchor",
-      "headers": {
-        "x-hi": "Mom",
-        "connection": "close"
-      },
-      "remoteAddress": "120.0.0.1",
-      "remotePort": 51244
-    }
-    ```
-
-- `res`: An HTTP server response. Bunyan provides `bunyan.stdSerializers.res`
-  to serialize a response with a suggested set of keys. Example:
-
-    ```js
-    {
-      "statusCode": 200,
-      "header": "HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\nConnection: keep-alive\r\nTransfer-Encoding: chunked\r\n\r\n"
-    }
-    ```
-
-## Other fields to consider
-
-- `req.username`: Authenticated user (or for a 401, the user attempting to
-  auth).
-- Some mechanism to calculate response latency. "restify" users will have
-  a "X-Response-Time" header. A `latency` custom field would be fine.
-- `req.body`: If you know that request bodies are small (common in APIs,
-  for example), then logging the request body is good.
-
-
-# Streams
-
-A "stream" is Bunyan's name for where it outputs log messages (the equivalent
-to a log4j Appender). Ultimately Bunyan uses a
-[Writable Stream](https://nodejs.org/docs/latest/api/all.html#writable_Stream)
-interface, but there are some additional attributes used to create and
-manage the stream. A Bunyan Logger instance has one or more streams.
-In general streams are specified with the "streams" option:
-
-```js
-var bunyan = require('bunyan');
-var log = bunyan.createLogger({
-    name: "foo",
-    streams: [
-        {
-            stream: process.stderr,
-            level: "debug"
-        },
-        ...
-    ]
-});
-```
-
-For convenience, if there is only one stream, it can specified with the
-"stream" and "level" options (internally converted to a `Logger.streams`).
-
-```js
-var log = bunyan.createLogger({
-    name: "foo",
-    stream: process.stderr,
-    level: "debug"
-});
-```
-
-Note that "file" streams do not support this shortcut (partly for historical
-reasons and partly to not make it difficult to add a literal "path" field
-on log records).
-
-If neither "streams" nor "stream" are specified, the default is a stream of
-type "stream" emitting to `process.stdout` at the "info" level.
-
-
-## stream errors
-
-A Bunyan logger instance can be made to re-emit "error" events from its
-streams. Bunyan does so by default for [`type === "file"`
-streams](#stream-type-file), so you can do this:
-
-```js
-var log = bunyan.createLogger({name: 'mylog', streams: [{path: LOG_PATH}]});
-log.on('error', function (err, stream) {
-    // Handle stream write or create error here.
-});
-```
-
-As of bunyan@1.7.0, the `reemitErrorEvents` field can be used when adding a
-stream to control whether "error" events are re-emitted on the Logger. For
-example:
-
-    var EventEmitter = require('events').EventEmitter;
-    var util = require('util');
-
-    function MyFlakyStream() {}
-    util.inherits(MyFlakyStream, EventEmitter);
-
-    MyFlakyStream.prototype.write = function (rec) {
-        this.emit('error', new Error('boom'));
-    }
-
-    var log = bunyan.createLogger({
-        name: 'this-is-flaky',
-        streams: [
-            {
-                type: 'raw',
-                stream: new MyFlakyStream(),
-                reemitErrorEvents: true
-            }
-        ]
-    });
-    log.info('hi there');
-
-The behaviour is as follows:
-
-- `reemitErrorEvents` not specified: `file` streams will re-emit error events
-  on the Logger instance.
-- `reemitErrorEvents: true`: error events will be re-emitted on the Logger
-  for any stream with a `.on()` function -- which includes file streams,
-  process.stdout/stderr, and any object that inherits from EventEmitter.
-- `reemitErrorEvents: false`: error events will not be re-emitted for any
-  streams.
-
-Note: "error" events are **not** related to log records at the "error" level
-as produced by `log.error(...)`. See [the node.js docs on error
-events](https://nodejs.org/api/events.html#events_error_events) for details.
-
-
-## stream type: `stream`
-
-A `type === 'stream'` is a plain ol' node.js [Writable
-Stream](http://nodejs.org/docs/latest/api/all.html#writable_Stream). A
-"stream" (the writable stream) field is required. E.g.: `process.stdout`,
-`process.stderr`.
-
-```js
-var log = bunyan.createLogger({
-    name: 'foo',
-    streams: [{
-        stream: process.stderr
-        // `type: 'stream'` is implied
-    }]
-});
-```
-
-<table>
-<tr>
-<th>Field</th>
-<th>Required?</th>
-<th>Default</th>
-<th>Description</th>
-</tr>
-<tr>
-<td>stream</td>
-<td>Yes</td>
-<td>-</td>
-<td>A "Writable Stream", e.g. a std handle or an open file write stream.</td>
-</tr>
-<tr>
-<td>type</td>
-<td>No</td>
-<td>n/a</td>
-<td>`type == 'stream'` is implied if the `stream` field is given.</td>
-</tr>
-<tr>
-<td>level</td>
-<td>No</td>
-<td>info</td>
-<td>The level to which logging to this stream is enabled. If not
-specified it defaults to "info". If specified this can be one of the
-level strings ("trace", "debug", ...) or constants (`bunyan.TRACE`,
-`bunyan.DEBUG`, ...). This serves as a severity threshold for that stream
-so logs of greater severity will also pass through (i.e. If level="warn",
-error and fatal will also pass through this stream).</td>
-</tr>
-<tr>
-<td>name</td>
-<td>No</td>
-<td>-</td>
-<td>A name for this stream. This may be useful for usage of `log.level(NAME,
-LEVEL)`. See the [Levels section](#levels) for details. A stream "name" isn't
-used for anything else.</td>
-</tr>
-</table>
-
-
-## stream type: `file`
-
-A `type === 'file'` stream requires a "path" field. Bunyan will open this
-file for appending. E.g.:
-
-```js
-var log = bunyan.createLogger({
-    name: 'foo',
-    streams: [{
-        path: '/var/log/foo.log',
-        // `type: 'file'` is implied
-    }]
-});
-```
-
-<table>
-<tr>
-<th>Field</th>
-<th>Required?</th>
-<th>Default</th>
-<th>Description</th>
-</tr>
-<tr>
-<td>path</td>
-<td>Yes</td>
-<td>-</td>
-<td>A file path to which to log.</td>
-</tr>
-<tr>
-<td>type</td>
-<td>No</td>
-<td>n/a</td>
-<td>`type == 'file'` is implied if the `path` field is given.</td>
-</tr>
-<tr>
-<td>level</td>
-<td>No</td>
-<td>info</td>
-<td>The level to which logging to this stream is enabled. If not
-specified it defaults to "info". If specified this can be one of the
-level strings ("trace", "debug", ...) or constants (`bunyan.TRACE`,
-`bunyan.DEBUG`, ...). This serves as a severity threshold for that
-stream so logs of greater severity will also pass through (i.e. If
-level="warn", error and fatal will also pass through this stream).</td>
-</tr>
-<tr>
-<td>name</td>
-<td>No</td>
-<td>-</td>
-<td>A name for this stream. This may be useful for usage of `log.level(NAME,
-LEVEL)`. See the [Levels section](#levels) for details. A stream "name" isn't
-used for anything else.</td>
-</tr>
-</table>
-
-
-## stream type: `rotating-file`
-
-**WARNING on node 0.8 usage:** Users of Bunyan's `rotating-file` should (a) be
-using at least bunyan 0.23.1 (with the fix for [this
-issue](https://github.com/trentm/node-bunyan/pull/97)), and (b) should use at
-least node 0.10 (node 0.8 does not support the `unref()` method on
-`setTimeout(...)` needed for the mentioned fix). The symptom is that process
-termination will hang for up to a full rotation period.
-
-**WARNING on [cluster](http://nodejs.org/docs/latest/api/all.html#all_cluster)
-usage:** Using Bunyan's `rotating-file` stream with node.js's "cluster" module
-can result in unexpected file rotation. You must not have multiple processes
-in the cluster logging to the same file path. In other words, you must have
-a separate log file path for the master and each worker in the cluster.
-Alternatively, consider using a system file rotation facility such as
-`logrotate` on Linux or `logadm` on SmartOS/Illumos. See
-[this comment on issue #117](https://github.com/trentm/node-bunyan/issues/117#issuecomment-44804938)
-for details.
-
-A `type === 'rotating-file'` is a file stream that handles file automatic
-rotation.
-
-```js
-var log = bunyan.createLogger({
-    name: 'foo',
-    streams: [{
-        type: 'rotating-file',
-        path: '/var/log/foo.log',
-        period: '1d',   // daily rotation
-        count: 3        // keep 3 back copies
-    }]
-});
-```
-
-This will rotate '/var/log/foo.log' every day (at midnight) to:
-
-```sh
-/var/log/foo.log.0     # yesterday
-/var/log/foo.log.1     # 1 day ago
-/var/log/foo.log.2     # 2 days ago
-```
-
-*Currently*, there is no support for providing a template for the rotated
-files, or for rotating when the log reaches a threshold size.
-
-<table>
-<tr>
-<th>Field</th>
-<th>Required?</th>
-<th>Default</th>
-<th>Description</th>
-</tr>
-<tr>
-<td>type</td>
-<td>Yes</td>
-<td>-</td>
-<td>"rotating-file"</td>
-</tr>
-<tr>
-<td>path</td>
-<td>Yes</td>
-<td>-</td>
-<td>A file path to which to log. Rotated files will be "$path.0",
-"$path.1", ...</td>
-</tr>
-<tr>
-<td>period</td>
-<td>No</td>
-<td>1d</td>
-<td>The period at which to rotate. This is a string of the format
-"$number$scope" where "$scope" is one of "ms" (milliseconds -- only useful for
-testing), "h" (hours), "d" (days), "w" (weeks), "m" (months), "y" (years). Or
-one of the following names can be used "hourly" (means 1h), "daily" (1d),
-"weekly" (1w), "monthly" (1m), "yearly" (1y). Rotation is done at the start of
-the scope: top of the hour (h), midnight (d), start of Sunday (w), start of the
-1st of the month (m), start of Jan 1st (y).</td>
-</tr>
-<tr>
-<td>count</td>
-<td>No</td>
-<td>10</td>
-<td>The number of rotated files to keep.</td>
-</tr>
-<tr>
-<td>level</td>
-<td>No</td>
-<td>info</td>
-<td>The level at which logging to this stream is enabled. If not
-specified it defaults to "info". If specified this can be one of the
-level strings ("trace", "debug", ...) or constants (`bunyan.TRACE`,
-`bunyan.DEBUG`, ...).</td>
-</tr>
-<tr>
-<td>name</td>
-<td>No</td>
-<td>-</td>
-<td>A name for this stream. This may be useful for usage of `log.level(NAME,
-LEVEL)`. See the [Levels section](#levels) for details. A stream "name" isn't
-used for anything else.</td>
-</tr>
-</table>
-
-
-**Note on log rotation**: Often you may be using external log rotation utilities
-like `logrotate` on Linux or `logadm` on SmartOS/Illumos. In those cases, unless
-your are ensuring "copy and truncate" semantics (via `copytruncate` with
-logrotate or `-c` with logadm) then the fd for your 'file' stream will change.
-You can tell bunyan to reopen the file stream with code like this in your
-app:
-
-```js
-var log = bunyan.createLogger(...);
-...
-process.on('SIGUSR2', function () {
-    log.reopenFileStreams();
-});
-```
-
-where you'd configure your log rotation to send SIGUSR2 (or some other signal)
-to your process. Any other mechanism to signal your app to run
-`log.reopenFileStreams()` would work as well.
-
-
-## stream type: `raw`
-
-- `raw`: Similar to a "stream" writable stream, except that the write method
-  is given raw log record *Object*s instead of a JSON-stringified string.
-  This can be useful for hooking on further processing to all Bunyan logging:
-  pushing to an external service, a RingBuffer (see below), etc.
-
-
-
-## `raw` + RingBuffer Stream
-
-Bunyan comes with a special stream called a RingBuffer which keeps the last N
-records in memory and does *not* write the data anywhere else.  One common
-strategy is to log 'info' and higher to a normal log file but log all records
-(including 'trace') to a ringbuffer that you can access via a debugger, or your
-own HTTP interface, or a post-mortem facility like MDB or node-panic.
-
-To use a RingBuffer:
-
-```js
-/* Create a ring buffer that stores the last 100 records. */
-var bunyan = require('bunyan');
-var ringbuffer = new bunyan.RingBuffer({ limit: 100 });
-var log = bunyan.createLogger({
-    name: 'foo',
-    streams: [
-        {
-            level: 'info',
-            stream: process.stdout
-        },
-        {
-            level: 'trace',
-            type: 'raw',    // use 'raw' to get raw log record objects
-            stream: ringbuffer
-        }
-    ]
-});
-
-log.info('hello world');
-console.log(ringbuffer.records);
-```
-
-This example emits:
-
-```js
-[ { name: 'foo',
-    hostname: '912d2b29',
-    pid: 50346,
-    level: 30,
-    msg: 'hello world',
-    time: '2012-06-19T21:34:19.906Z',
-    v: 0 } ]
-```
-
-## third-party streams
-
-See the [user-maintained list in the Bunyan
-wiki](https://github.com/trentm/node-bunyan/wiki/Awesome-Bunyan).
-
-
-# Runtime log snooping via DTrace
-
-On systems that support DTrace (e.g., illumos derivatives like SmartOS and
-OmniOS, FreeBSD, Mac), Bunyan will create a DTrace provider (`bunyan`) that
-makes available the following probes:
-
-```sh
-log-trace
-log-debug
-log-info
-log-warn
-log-error
-log-fatal
-```
-
-Each of these probes has a single argument: the string that would be
-written to the log.  Note that when a probe is enabled, it will
-fire whenever the corresponding function is called, even if the level of
-the log message is less than that of any stream.
-
-
-## DTrace examples
-
-Trace all log messages coming from any Bunyan module on the system.
-(The `-x strsize=4k` is to raise dtrace's default 256 byte buffer size
-because log messages are longer than typical dtrace probes.)
-
-```sh
-dtrace -x strsize=4k -qn 'bunyan*:::log-*{printf("%d: %s: %s", pid, probefunc, copyinstr(arg0))}'
-```
-
-Trace all log messages coming from the "wuzzle" component:
-
-```sh
-dtrace -x strsize=4k -qn 'bunyan*:::log-*/strstr(this->str = copyinstr(arg0), "\"component\":\"wuzzle\"") != NULL/{printf("%s", this->str)}'
-```
-
-Aggregate debug messages from process 1234, by message:
-
-```sh
-dtrace -x strsize=4k -n 'bunyan1234:::log-debug{@[copyinstr(arg0)] = count()}'
-```
-
-Have the bunyan CLI pretty-print the traced logs:
-
-```sh
-dtrace -x strsize=4k -qn 'bunyan1234:::log-*{printf("%s", copyinstr(arg0))}' | bunyan
-```
-
-A convenience handle has been made for this:
-
-```sh
-bunyan -p 1234
-```
-
-On systems that support the
-[`jstack`](http://dtrace.org/blogs/dap/2012/04/25/profiling-node-js/) action
-via a node.js helper, get a stack backtrace for any debug message that
-includes the string "danger!":
-
-```sh
-dtrace -x strsize=4k -qn 'log-debug/strstr(copyinstr(arg0), "danger!") != NULL/{printf("\n%s", copyinstr(arg0)); jstack()}'
-```
-
-Output of the above might be:
-
-```
-{"name":"foo","hostname":"763bf293-d65c-42d5-872b-4abe25d5c4c7.local","pid":12747,"level":20,"msg":"danger!","time":"2012-10-30T18:28:57.115Z","v":0}
-
-          node`0x87e2010
-          DTraceProviderBindings.node`usdt_fire_probe+0x32
-          DTraceProviderBindings.node`_ZN4node11DTraceProbe5_fireEN2v85LocalINS1_5ValueEEE+0x32d
-          DTraceProviderBindings.node`_ZN4node11DTraceProbe4FireERKN2v89ArgumentsE+0x77
-          << internal code >>
-          (anon) as (anon) at /root/node-bunyan/lib/bunyan.js position 40484
-          << adaptor >>
-          (anon) as doit at /root/my-prog.js position 360
-          (anon) as list.ontimeout at timers.js position 4960
-          << adaptor >>
-          << internal >>
-          << entry >>
-          node`_ZN2v88internalL6InvokeEbNS0_6HandleINS0_10JSFunctionEEENS1_INS0_6ObjectEEEiPS5_Pb+0x101
-          node`_ZN2v88internal9Execution4CallENS0_6HandleINS0_6ObjectEEES4_iPS4_Pbb+0xcb
-          node`_ZN2v88Function4CallENS_6HandleINS_6ObjectEEEiPNS1_INS_5ValueEEE+0xf0
-          node`_ZN4node12MakeCallbackEN2v86HandleINS0_6ObjectEEENS1_INS0_8FunctionEEEiPNS1_INS0_5ValueEEE+0x11f
-          node`_ZN4node12MakeCallbackEN2v86HandleINS0_6ObjectEEENS1_INS0_6StringEEEiPNS1_INS0_5ValueEEE+0x66
-          node`_ZN4node9TimerWrap9OnTimeoutEP10uv_timer_si+0x63
-          node`uv__run_timers+0x66
-          node`uv__run+0x1b
-          node`uv_run+0x17
-          node`_ZN4node5StartEiPPc+0x1d0
-          node`main+0x1b
-          node`_start+0x83
-
-          node`0x87e2010
-          DTraceProviderBindings.node`usdt_fire_probe+0x32
-          DTraceProviderBindings.node`_ZN4node11DTraceProbe5_fireEN2v85LocalINS1_5ValueEEE+0x32d
-          DTraceProviderBindings.node`_ZN4node11DTraceProbe4FireERKN2v89ArgumentsE+0x77
-          << internal code >>
-          (anon) as (anon) at /root/node-bunyan/lib/bunyan.js position 40484
-          << adaptor >>
-          (anon) as doit at /root/my-prog.js position 360
-          (anon) as list.ontimeout at timers.js position 4960
-          << adaptor >>
-          << internal >>
-          << entry >>
-          node`_ZN2v88internalL6InvokeEbNS0_6HandleINS0_10JSFunctionEEENS1_INS0_6ObjectEEEiPS5_Pb+0x101
-          node`_ZN2v88internal9Execution4CallENS0_6HandleINS0_6ObjectEEES4_iPS4_Pbb+0xcb
-          node`_ZN2v88Function4CallENS_6HandleINS_6ObjectEEEiPNS1_INS_5ValueEEE+0xf0
-          node`_ZN4node12MakeCallbackEN2v86HandleINS0_6ObjectEEENS1_INS0_8FunctionEEEiPNS1_INS0_5ValueEEE+0x11f
-          node`_ZN4node12MakeCallbackEN2v86HandleINS0_6ObjectEEENS1_INS0_6StringEEEiPNS1_INS0_5ValueEEE+0x66
-          node`_ZN4node9TimerWrap9OnTimeoutEP10uv_timer_si+0x63
-          node`uv__run_timers+0x66
-          node`uv__run+0x1b
-          node`uv_run+0x17
-          node`_ZN4node5StartEiPPc+0x1d0
-          node`main+0x1b
-          node`_start+0x83
-```
-
-
-# Runtime environments
-
-Node-bunyan supports running in a few runtime environments:
-
-- [Node.js](https://nodejs.org/)
-- [Browserify](http://browserify.org/): See the
-  [Browserify section](#browserify) below.
-- [Webpack](https://webpack.github.io/): See the [Webpack section](#webpack) below.
-- [NW.js](http://nwjs.io/)
-
-Support for other runtime environments is welcome. If you have suggestions,
-fixes, or mentions that node-bunyan already works in some other JavaScript
-runtime, please open an [issue](https://github.com/trentm/node-bunyan/issues/new)
-or a pull request.
-
-The primary target is Node.js. It is the only environment in which I
-regularly test. If you have suggestions for how to automate testing for other
-environments, I'd appreciate feedback on [this automated testing
-issue](https://github.com/trentm/node-bunyan/issues/342).
-
-## Browserify
-
-As the [Browserify](http://browserify.org/) site says it "lets you
-`require('modules')` in the browser by bundling up all of your dependencies."
-It is a build tool to run on your node.js script to bundle up your script and
-all its node.js dependencies into a single file that is runnable in the
-browser via:
-
-```html
-<script src="play.browser.js"></script>
-```
-
-As of version 1.1.0, node-bunyan supports being run via Browserify. The
-default [stream](#streams) when running in the browser is one that emits
-raw log records to `console.log/info/warn/error`.
-
-Here is a quick example showing you how you can get this working for your
-script.
-
-1. Get browserify and bunyan installed in your module:
-
-    ```sh
-    $ npm install browserify bunyan
-    ```
-
-2. An example script using Bunyan, "play.js":
-
-    ```js
-    var bunyan = require('bunyan');
-    var log = bunyan.createLogger({name: 'play', level: 'debug'});
-    log.trace('this one does not emit');
-    log.debug('hi on debug');   // console.log
-    log.info('hi on info');     // console.info
-    log.warn('hi on warn');     // console.warn
-    log.error('hi on error');   // console.error
-    ```
-
-3. Build this into a bundle to run in the browser, "play.browser.js":
-
-    ```sh
-    $ ./node_modules/.bin/browserify play.js -o play.browser.js
-    ```
-
-4. Put that into an HTML file, "play.html":
-
-    ```html
-    <!DOCTYPE html>
-    <html>
-    <head>
-      <meta charset="utf-8">
-      <script src="play.browser.js"></script>
-    </head>
-    <body>
-      <div>hi</div>
-    </body>
-    </html>
-    ```
-
-5. Open that in your browser and open your browser console:
-
-    ```sh
-    $ open play.html
-    ```
-
-Here is what it looks like in Firefox's console: ![Bunyan + Browserify in the
-Firefox console](./docs/img/bunyan.browserify.png)
-
-For some, the raw log records might not be desired. To have a rendered log line
-you'll want to add your own stream, starting with something like this:
-
-```js
-var bunyan = require('./lib/bunyan');
-
-function MyRawStream() {}
-MyRawStream.prototype.write = function (rec) {
-    console.log('[%s] %s: %s',
-        rec.time.toISOString(),
-        bunyan.nameFromLevel[rec.level],
-        rec.msg);
-}
-
-var log = bunyan.createLogger({
-    name: 'play',
-    streams: [
-        {
-            level: 'info',
-            stream: new MyRawStream(),
-            type: 'raw'
-        }
-    ]
-});
-
-log.info('hi on info');
-```
-
-## Webpack
-Webpack can work with the same example Browserify above. To do this, we need to make webpack ignore optional files:
-Create "empty-shim.js":
-```javascript
-// This is an empty shim for things that should be not be included in webpack
-```
-Now tell webpack to use this file for
-[optional dependencies](https://webpack.github.io/docs/configuration.html#resolve-alias)
-in your "webpack.config.js":
-```
-resolve: {
-    // These shims are needed for bunyan
-    alias: {
-        'dtrace-provider': '/path/to/shim/empty_shim.js',
-        fs: '/path/to/shim/empty_shim.js',
-        'safe-json-stringify': '/path/to/shim/empty_shim.js',
-        mv: '/path/to/shim/empty_shim.js',
-        'source-map-support': '/path/to/shim/empty_shim.js'
-    }
-}
-```
-Now webpack builds, ignoring these optional dependencies via shimming in an empty JS file!
-
-# Versioning
-
-All versions are `<major>.<minor>.<patch>` which will be incremented for
-breaking backward compat and major reworks, new features without breaking
-change, and bug fixes, respectively. tl;dr: [Semantic
-versioning](http://semver.org/).
-
-# License
-
-[MIT](./LICENSE.txt).
-
-# See Also
-
-See the [user-maintained list of Bunyan-related software in the Bunyan
-wiki](https://github.com/trentm/node-bunyan/wiki/Awesome-Bunyan).

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bunyan/TODO.md
----------------------------------------------------------------------
diff --git a/node_modules/bunyan/TODO.md b/node_modules/bunyan/TODO.md
deleted file mode 100644
index 0f2f2c5..0000000
--- a/node_modules/bunyan/TODO.md
+++ /dev/null
@@ -1,73 +0,0 @@
-- `bunyan` (without redir) ^C should stop, doesn't since recent change
-- man page for the bunyan CLI (refer to it in the readme)
-- `tail -f`-like support
-- 2.0 (?) with `v: 1` in log records. Fwd/bwd compat in `bunyan` CLI
-
-# docs
-
-- document log.addStream() and log.addSerializers()
-
-
-# someday/maybe
-
-- full-on docs
-- better examples/
-- better coloring
-- look at pino (bunyan style, perf benefits)
-- would be exciting to have bunyan support in http://lnav.org/ if that
-  made sense
-- "template" support for 'rotating-file' stream to get dated rolled files
-- "all" or "off" levels? log4j? logging.py?
-  logging.py has NOTSET === 0. I think that is only needed/used for
-  multi-level hierarchical effective level.
-- buffered writes to increase speed:
-    - I'd start with a tools/timeoutput.js for some numbers to compare
-      before/after. Sustained high output to a file.
-    - perhaps this would be a "buffered: true" option on the stream object
-    - then wrap the "stream" with a local class that handles the buffering
-    - to finish this, need the 'log.close' and `process.on('exit', ...)`
-      work that Trent has started.
-- "canWrite" handling for full streams. Need to buffer a la log4js
-- test file log with logadm rotation: does it handle that?
-- test suite:
-    - test for a cloned logger double-`stream.end()` causing problems.
-      Perhaps the "closeOnExit" for existing streams should be false for
-      clones.
-    - test that a `log.clone(...)` adding a new field matching a serializer
-      works *and* that an existing field in the parent is not *re-serialized*.
-- split out `bunyan` cli to a "bunyan" or "bunyan-reader" or "node-bunyan-reader"
-  as the basis for tools to consume bunyan logs. It can grow indep of node-bunyan
-  for generating the logs.
-  It would take a Bunyan log record object and be expected to emit it.
-
-        node-bunyan-reader
-            .createReadStream(path, [options]) ?
-
-- coloring bug: in less the indented extra info lines only have the first
-  line colored. Do we need the ANSI char on *each* line? That'll be
-  slower.
-- document "well-known" keys from bunyan CLI p.o.v.. Add "client_req".
-- More `bunyan` output formats and filtering features.
-- Think about a bunyan dashboard that supports organizing and viewing logs
-  from multiple hosts and services.
-- doc the restify RequestCaptureStream usage of RingBuffer. Great example.
-- A vim plugin (a la http://vim.cybermirror.org/runtime/autoload/zip.vim ?) to
-  allow browsing (read-only) a bunyan log in rendered form.
-- Some speed comparisons with others to get a feel for Bunyan's speed.
-- what about promoting 'latency' field and making that easier?
-- `log.close` to close streams and shutdown and `this.closed`
-  process.on('exit', log.close)
-  -> 'end' for the name
-- bunyan cli: more layouts (http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/EnhancedPatternLayout.html)
-  Custom log formats (in config file? in '-f' arg) using printf or hogan.js
-  or whatever. Dap wants field width control for lining up. Hogan.js is
-  probably overkill for this.
-- loggly example using raw streams, hook.io?, whatever.
-- serializer support:
-    - restify-server.js example -> restifyReq ? or have `req` detect that.
-      That is nicer for the "use all standard ones". *Does* restify req
-      have anything special?
-    - differential HTTP *client* req/res with *server* req/res.
-- statsd stream? http://codeascraft.etsy.com/2011/02/15/measure-anything-measure-everything/
-  Think about it.
-- web ui. Ideas: http://googlecloudplatform.blogspot.ca/2014/04/a-new-logs-viewer-for-google-cloud.html


[45/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/dist/acorn_loose.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/dist/acorn_loose.js b/node_modules/acorn/dist/acorn_loose.js
deleted file mode 100644
index d18e6aa..0000000
--- a/node_modules/acorn/dist/acorn_loose.js
+++ /dev/null
@@ -1,1300 +0,0 @@
-(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}(g.acorn || (g.acorn = {})).loose = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
-"use strict";
-
-module.exports = typeof acorn != 'undefined' ? acorn : require("./acorn");
-
-},{}],2:[function(_dereq_,module,exports){
-"use strict";
-
-var _state = _dereq_("./state");
-
-var _parseutil = _dereq_("./parseutil");
-
-var _ = _dereq_("..");
-
-var lp = _state.LooseParser.prototype;
-
-lp.checkLVal = function (expr) {
-  if (!expr) return expr;
-  switch (expr.type) {
-    case "Identifier":
-    case "MemberExpression":
-      return expr;
-
-    case "ParenthesizedExpression":
-      expr.expression = this.checkLVal(expr.expression);
-      return expr;
-
-    default:
-      return this.dummyIdent();
-  }
-};
-
-lp.parseExpression = function (noIn) {
-  var start = this.storeCurrentPos();
-  var expr = this.parseMaybeAssign(noIn);
-  if (this.tok.type === _.tokTypes.comma) {
-    var node = this.startNodeAt(start);
-    node.expressions = [expr];
-    while (this.eat(_.tokTypes.comma)) node.expressions.push(this.parseMaybeAssign(noIn));
-    return this.finishNode(node, "SequenceExpression");
-  }
-  return expr;
-};
-
-lp.parseParenExpression = function () {
-  this.pushCx();
-  this.expect(_.tokTypes.parenL);
-  var val = this.parseExpression();
-  this.popCx();
-  this.expect(_.tokTypes.parenR);
-  return val;
-};
-
-lp.parseMaybeAssign = function (noIn) {
-  var start = this.storeCurrentPos();
-  var left = this.parseMaybeConditional(noIn);
-  if (this.tok.type.isAssign) {
-    var node = this.startNodeAt(start);
-    node.operator = this.tok.value;
-    node.left = this.tok.type === _.tokTypes.eq ? this.toAssignable(left) : this.checkLVal(left);
-    this.next();
-    node.right = this.parseMaybeAssign(noIn);
-    return this.finishNode(node, "AssignmentExpression");
-  }
-  return left;
-};
-
-lp.parseMaybeConditional = function (noIn) {
-  var start = this.storeCurrentPos();
-  var expr = this.parseExprOps(noIn);
-  if (this.eat(_.tokTypes.question)) {
-    var node = this.startNodeAt(start);
-    node.test = expr;
-    node.consequent = this.parseMaybeAssign();
-    node.alternate = this.expect(_.tokTypes.colon) ? this.parseMaybeAssign(noIn) : this.dummyIdent();
-    return this.finishNode(node, "ConditionalExpression");
-  }
-  return expr;
-};
-
-lp.parseExprOps = function (noIn) {
-  var start = this.storeCurrentPos();
-  var indent = this.curIndent,
-      line = this.curLineStart;
-  return this.parseExprOp(this.parseMaybeUnary(noIn), start, -1, noIn, indent, line);
-};
-
-lp.parseExprOp = function (left, start, minPrec, noIn, indent, line) {
-  if (this.curLineStart != line && this.curIndent < indent && this.tokenStartsLine()) return left;
-  var prec = this.tok.type.binop;
-  if (prec != null && (!noIn || this.tok.type !== _.tokTypes._in)) {
-    if (prec > minPrec) {
-      var node = this.startNodeAt(start);
-      node.left = left;
-      node.operator = this.tok.value;
-      this.next();
-      if (this.curLineStart != line && this.curIndent < indent && this.tokenStartsLine()) {
-        node.right = this.dummyIdent();
-      } else {
-        var rightStart = this.storeCurrentPos();
-        node.right = this.parseExprOp(this.parseMaybeUnary(noIn), rightStart, prec, noIn, indent, line);
-      }
-      this.finishNode(node, /&&|\|\|/.test(node.operator) ? "LogicalExpression" : "BinaryExpression");
-      return this.parseExprOp(node, start, minPrec, noIn, indent, line);
-    }
-  }
-  return left;
-};
-
-lp.parseMaybeUnary = function (noIn) {
-  if (this.tok.type.prefix) {
-    var node = this.startNode(),
-        update = this.tok.type === _.tokTypes.incDec;
-    node.operator = this.tok.value;
-    node.prefix = true;
-    this.next();
-    node.argument = this.parseMaybeUnary(noIn);
-    if (update) node.argument = this.checkLVal(node.argument);
-    return this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression");
-  } else if (this.tok.type === _.tokTypes.ellipsis) {
-    var node = this.startNode();
-    this.next();
-    node.argument = this.parseMaybeUnary(noIn);
-    return this.finishNode(node, "SpreadElement");
-  }
-  var start = this.storeCurrentPos();
-  var expr = this.parseExprSubscripts();
-  while (this.tok.type.postfix && !this.canInsertSemicolon()) {
-    var node = this.startNodeAt(start);
-    node.operator = this.tok.value;
-    node.prefix = false;
-    node.argument = this.checkLVal(expr);
-    this.next();
-    expr = this.finishNode(node, "UpdateExpression");
-  }
-  return expr;
-};
-
-lp.parseExprSubscripts = function () {
-  var start = this.storeCurrentPos();
-  return this.parseSubscripts(this.parseExprAtom(), start, false, this.curIndent, this.curLineStart);
-};
-
-lp.parseSubscripts = function (base, start, noCalls, startIndent, line) {
-  for (;;) {
-    if (this.curLineStart != line && this.curIndent <= startIndent && this.tokenStartsLine()) {
-      if (this.tok.type == _.tokTypes.dot && this.curIndent == startIndent) --startIndent;else return base;
-    }
-
-    if (this.eat(_.tokTypes.dot)) {
-      var node = this.startNodeAt(start);
-      node.object = base;
-      if (this.curLineStart != line && this.curIndent <= startIndent && this.tokenStartsLine()) node.property = this.dummyIdent();else node.property = this.parsePropertyAccessor() || this.dummyIdent();
-      node.computed = false;
-      base = this.finishNode(node, "MemberExpression");
-    } else if (this.tok.type == _.tokTypes.bracketL) {
-      this.pushCx();
-      this.next();
-      var node = this.startNodeAt(start);
-      node.object = base;
-      node.property = this.parseExpression();
-      node.computed = true;
-      this.popCx();
-      this.expect(_.tokTypes.bracketR);
-      base = this.finishNode(node, "MemberExpression");
-    } else if (!noCalls && this.tok.type == _.tokTypes.parenL) {
-      var node = this.startNodeAt(start);
-      node.callee = base;
-      node.arguments = this.parseExprList(_.tokTypes.parenR);
-      base = this.finishNode(node, "CallExpression");
-    } else if (this.tok.type == _.tokTypes.backQuote) {
-      var node = this.startNodeAt(start);
-      node.tag = base;
-      node.quasi = this.parseTemplate();
-      base = this.finishNode(node, "TaggedTemplateExpression");
-    } else {
-      return base;
-    }
-  }
-};
-
-lp.parseExprAtom = function () {
-  var node = undefined;
-  switch (this.tok.type) {
-    case _.tokTypes._this:
-    case _.tokTypes._super:
-      var type = this.tok.type === _.tokTypes._this ? "ThisExpression" : "Super";
-      node = this.startNode();
-      this.next();
-      return this.finishNode(node, type);
-
-    case _.tokTypes.name:
-      var start = this.storeCurrentPos();
-      var id = this.parseIdent();
-      return this.eat(_.tokTypes.arrow) ? this.parseArrowExpression(this.startNodeAt(start), [id]) : id;
-
-    case _.tokTypes.regexp:
-      node = this.startNode();
-      var val = this.tok.value;
-      node.regex = { pattern: val.pattern, flags: val.flags };
-      node.value = val.value;
-      node.raw = this.input.slice(this.tok.start, this.tok.end);
-      this.next();
-      return this.finishNode(node, "Literal");
-
-    case _.tokTypes.num:case _.tokTypes.string:
-      node = this.startNode();
-      node.value = this.tok.value;
-      node.raw = this.input.slice(this.tok.start, this.tok.end);
-      this.next();
-      return this.finishNode(node, "Literal");
-
-    case _.tokTypes._null:case _.tokTypes._true:case _.tokTypes._false:
-      node = this.startNode();
-      node.value = this.tok.type === _.tokTypes._null ? null : this.tok.type === _.tokTypes._true;
-      node.raw = this.tok.type.keyword;
-      this.next();
-      return this.finishNode(node, "Literal");
-
-    case _.tokTypes.parenL:
-      var parenStart = this.storeCurrentPos();
-      this.next();
-      var inner = this.parseExpression();
-      this.expect(_.tokTypes.parenR);
-      if (this.eat(_.tokTypes.arrow)) {
-        return this.parseArrowExpression(this.startNodeAt(parenStart), inner.expressions || (_parseutil.isDummy(inner) ? [] : [inner]));
-      }
-      if (this.options.preserveParens) {
-        var par = this.startNodeAt(parenStart);
-        par.expression = inner;
-        inner = this.finishNode(par, "ParenthesizedExpression");
-      }
-      return inner;
-
-    case _.tokTypes.bracketL:
-      node = this.startNode();
-      node.elements = this.parseExprList(_.tokTypes.bracketR, true);
-      return this.finishNode(node, "ArrayExpression");
-
-    case _.tokTypes.braceL:
-      return this.parseObj();
-
-    case _.tokTypes._class:
-      return this.parseClass();
-
-    case _.tokTypes._function:
-      node = this.startNode();
-      this.next();
-      return this.parseFunction(node, false);
-
-    case _.tokTypes._new:
-      return this.parseNew();
-
-    case _.tokTypes._yield:
-      node = this.startNode();
-      this.next();
-      if (this.semicolon() || this.canInsertSemicolon() || this.tok.type != _.tokTypes.star && !this.tok.type.startsExpr) {
-        node.delegate = false;
-        node.argument = null;
-      } else {
-        node.delegate = this.eat(_.tokTypes.star);
-        node.argument = this.parseMaybeAssign();
-      }
-      return this.finishNode(node, "YieldExpression");
-
-    case _.tokTypes.backQuote:
-      return this.parseTemplate();
-
-    default:
-      return this.dummyIdent();
-  }
-};
-
-lp.parseNew = function () {
-  var node = this.startNode(),
-      startIndent = this.curIndent,
-      line = this.curLineStart;
-  var meta = this.parseIdent(true);
-  if (this.options.ecmaVersion >= 6 && this.eat(_.tokTypes.dot)) {
-    node.meta = meta;
-    node.property = this.parseIdent(true);
-    return this.finishNode(node, "MetaProperty");
-  }
-  var start = this.storeCurrentPos();
-  node.callee = this.parseSubscripts(this.parseExprAtom(), start, true, startIndent, line);
-  if (this.tok.type == _.tokTypes.parenL) {
-    node.arguments = this.parseExprList(_.tokTypes.parenR);
-  } else {
-    node.arguments = [];
-  }
-  return this.finishNode(node, "NewExpression");
-};
-
-lp.parseTemplateElement = function () {
-  var elem = this.startNode();
-  elem.value = {
-    raw: this.input.slice(this.tok.start, this.tok.end).replace(/\r\n?/g, '\n'),
-    cooked: this.tok.value
-  };
-  this.next();
-  elem.tail = this.tok.type === _.tokTypes.backQuote;
-  return this.finishNode(elem, "TemplateElement");
-};
-
-lp.parseTemplate = function () {
-  var node = this.startNode();
-  this.next();
-  node.expressions = [];
-  var curElt = this.parseTemplateElement();
-  node.quasis = [curElt];
-  while (!curElt.tail) {
-    this.next();
-    node.expressions.push(this.parseExpression());
-    if (this.expect(_.tokTypes.braceR)) {
-      curElt = this.parseTemplateElement();
-    } else {
-      curElt = this.startNode();
-      curElt.value = { cooked: '', raw: '' };
-      curElt.tail = true;
-    }
-    node.quasis.push(curElt);
-  }
-  this.expect(_.tokTypes.backQuote);
-  return this.finishNode(node, "TemplateLiteral");
-};
-
-lp.parseObj = function () {
-  var node = this.startNode();
-  node.properties = [];
-  this.pushCx();
-  var indent = this.curIndent + 1,
-      line = this.curLineStart;
-  this.eat(_.tokTypes.braceL);
-  if (this.curIndent + 1 < indent) {
-    indent = this.curIndent;line = this.curLineStart;
-  }
-  while (!this.closes(_.tokTypes.braceR, indent, line)) {
-    var prop = this.startNode(),
-        isGenerator = undefined,
-        start = undefined;
-    if (this.options.ecmaVersion >= 6) {
-      start = this.storeCurrentPos();
-      prop.method = false;
-      prop.shorthand = false;
-      isGenerator = this.eat(_.tokTypes.star);
-    }
-    this.parsePropertyName(prop);
-    if (_parseutil.isDummy(prop.key)) {
-      if (_parseutil.isDummy(this.parseMaybeAssign())) this.next();this.eat(_.tokTypes.comma);continue;
-    }
-    if (this.eat(_.tokTypes.colon)) {
-      prop.kind = "init";
-      prop.value = this.parseMaybeAssign();
-    } else if (this.options.ecmaVersion >= 6 && (this.tok.type === _.tokTypes.parenL || this.tok.type === _.tokTypes.braceL)) {
-      prop.kind = "init";
-      prop.method = true;
-      prop.value = this.parseMethod(isGenerator);
-    } else if (this.options.ecmaVersion >= 5 && prop.key.type === "Identifier" && !prop.computed && (prop.key.name === "get" || prop.key.name === "set") && (this.tok.type != _.tokTypes.comma && this.tok.type != _.tokTypes.braceR)) {
-      prop.kind = prop.key.name;
-      this.parsePropertyName(prop);
-      prop.value = this.parseMethod(false);
-    } else {
-      prop.kind = "init";
-      if (this.options.ecmaVersion >= 6) {
-        if (this.eat(_.tokTypes.eq)) {
-          var assign = this.startNodeAt(start);
-          assign.operator = "=";
-          assign.left = prop.key;
-          assign.right = this.parseMaybeAssign();
-          prop.value = this.finishNode(assign, "AssignmentExpression");
-        } else {
-          prop.value = prop.key;
-        }
-      } else {
-        prop.value = this.dummyIdent();
-      }
-      prop.shorthand = true;
-    }
-    node.properties.push(this.finishNode(prop, "Property"));
-    this.eat(_.tokTypes.comma);
-  }
-  this.popCx();
-  if (!this.eat(_.tokTypes.braceR)) {
-    // If there is no closing brace, make the node span to the start
-    // of the next token (this is useful for Tern)
-    this.last.end = this.tok.start;
-    if (this.options.locations) this.last.loc.end = this.tok.loc.start;
-  }
-  return this.finishNode(node, "ObjectExpression");
-};
-
-lp.parsePropertyName = function (prop) {
-  if (this.options.ecmaVersion >= 6) {
-    if (this.eat(_.tokTypes.bracketL)) {
-      prop.computed = true;
-      prop.key = this.parseExpression();
-      this.expect(_.tokTypes.bracketR);
-      return;
-    } else {
-      prop.computed = false;
-    }
-  }
-  var key = this.tok.type === _.tokTypes.num || this.tok.type === _.tokTypes.string ? this.parseExprAtom() : this.parseIdent();
-  prop.key = key || this.dummyIdent();
-};
-
-lp.parsePropertyAccessor = function () {
-  if (this.tok.type === _.tokTypes.name || this.tok.type.keyword) return this.parseIdent();
-};
-
-lp.parseIdent = function () {
-  var name = this.tok.type === _.tokTypes.name ? this.tok.value : this.tok.type.keyword;
-  if (!name) return this.dummyIdent();
-  var node = this.startNode();
-  this.next();
-  node.name = name;
-  return this.finishNode(node, "Identifier");
-};
-
-lp.initFunction = function (node) {
-  node.id = null;
-  node.params = [];
-  if (this.options.ecmaVersion >= 6) {
-    node.generator = false;
-    node.expression = false;
-  }
-};
-
-// Convert existing expression atom to assignable pattern
-// if possible.
-
-lp.toAssignable = function (node, binding) {
-  if (!node || node.type == "Identifier" || node.type == "MemberExpression" && !binding) {
-    // Okay
-  } else if (node.type == "ParenthesizedExpression") {
-      node.expression = this.toAssignable(node.expression, binding);
-    } else if (this.options.ecmaVersion < 6) {
-      return this.dummyIdent();
-    } else if (node.type == "ObjectExpression") {
-      node.type = "ObjectPattern";
-      var props = node.properties;
-      for (var i = 0; i < props.length; i++) {
-        props[i].value = this.toAssignable(props[i].value, binding);
-      }
-    } else if (node.type == "ArrayExpression") {
-      node.type = "ArrayPattern";
-      this.toAssignableList(node.elements, binding);
-    } else if (node.type == "SpreadElement") {
-      node.type = "RestElement";
-      node.argument = this.toAssignable(node.argument, binding);
-    } else if (node.type == "AssignmentExpression") {
-      node.type = "AssignmentPattern";
-      delete node.operator;
-    } else {
-      return this.dummyIdent();
-    }
-  return node;
-};
-
-lp.toAssignableList = function (exprList, binding) {
-  for (var i = 0; i < exprList.length; i++) {
-    exprList[i] = this.toAssignable(exprList[i], binding);
-  }return exprList;
-};
-
-lp.parseFunctionParams = function (params) {
-  params = this.parseExprList(_.tokTypes.parenR);
-  return this.toAssignableList(params, true);
-};
-
-lp.parseMethod = function (isGenerator) {
-  var node = this.startNode();
-  this.initFunction(node);
-  node.params = this.parseFunctionParams();
-  node.generator = isGenerator || false;
-  node.expression = this.options.ecmaVersion >= 6 && this.tok.type !== _.tokTypes.braceL;
-  node.body = node.expression ? this.parseMaybeAssign() : this.parseBlock();
-  return this.finishNode(node, "FunctionExpression");
-};
-
-lp.parseArrowExpression = function (node, params) {
-  this.initFunction(node);
-  node.params = this.toAssignableList(params, true);
-  node.expression = this.tok.type !== _.tokTypes.braceL;
-  node.body = node.expression ? this.parseMaybeAssign() : this.parseBlock();
-  return this.finishNode(node, "ArrowFunctionExpression");
-};
-
-lp.parseExprList = function (close, allowEmpty) {
-  this.pushCx();
-  var indent = this.curIndent,
-      line = this.curLineStart,
-      elts = [];
-  this.next(); // Opening bracket
-  while (!this.closes(close, indent + 1, line)) {
-    if (this.eat(_.tokTypes.comma)) {
-      elts.push(allowEmpty ? null : this.dummyIdent());
-      continue;
-    }
-    var elt = this.parseMaybeAssign();
-    if (_parseutil.isDummy(elt)) {
-      if (this.closes(close, indent, line)) break;
-      this.next();
-    } else {
-      elts.push(elt);
-    }
-    this.eat(_.tokTypes.comma);
-  }
-  this.popCx();
-  if (!this.eat(close)) {
-    // If there is no closing brace, make the node span to the start
-    // of the next token (this is useful for Tern)
-    this.last.end = this.tok.start;
-    if (this.options.locations) this.last.loc.end = this.tok.loc.start;
-  }
-  return elts;
-};
-
-},{"..":1,"./parseutil":4,"./state":5}],3:[function(_dereq_,module,exports){
-// Acorn: Loose parser
-//
-// This module provides an alternative parser (`parse_dammit`) that
-// exposes that same interface as `parse`, but will try to parse
-// anything as JavaScript, repairing syntax error the best it can.
-// There are circumstances in which it will raise an error and give
-// up, but they are very rare. The resulting AST will be a mostly
-// valid JavaScript AST (as per the [Mozilla parser API][api], except
-// that:
-//
-// - Return outside functions is allowed
-//
-// - Label consistency (no conflicts, break only to existing labels)
-//   is not enforced.
-//
-// - Bogus Identifier nodes with a name of `"✖"` are inserted whenever
-//   the parser got too confused to return anything meaningful.
-//
-// [api]: https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API
-//
-// The expected use for this is to *first* try `acorn.parse`, and only
-// if that fails switch to `parse_dammit`. The loose parser might
-// parse badly indented code incorrectly, so **don't** use it as
-// your default parser.
-//
-// Quite a lot of acorn.js is duplicated here. The alternative was to
-// add a *lot* of extra cruft to that file, making it less readable
-// and slower. Copying and editing the code allowed me to make
-// invasive changes and simplifications without creating a complicated
-// tangle.
-
-"use strict";
-
-exports.__esModule = true;
-exports.parse_dammit = parse_dammit;
-
-function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj["default"] = obj; return newObj; } }
-
-var _ = _dereq_("..");
-
-var acorn = _interopRequireWildcard(_);
-
-var _state = _dereq_("./state");
-
-_dereq_("./tokenize");
-
-_dereq_("./statement");
-
-_dereq_("./expression");
-
-exports.LooseParser = _state.LooseParser;
-exports.pluginsLoose = _state.pluginsLoose;
-
-acorn.defaultOptions.tabSize = 4;
-
-function parse_dammit(input, options) {
-  var p = new _state.LooseParser(input, options);
-  p.next();
-  return p.parseTopLevel();
-}
-
-acorn.parse_dammit = parse_dammit;
-acorn.LooseParser = _state.LooseParser;
-acorn.pluginsLoose = _state.pluginsLoose;
-
-},{"..":1,"./expression":2,"./state":5,"./statement":6,"./tokenize":7}],4:[function(_dereq_,module,exports){
-"use strict";
-
-exports.__esModule = true;
-exports.isDummy = isDummy;
-
-function isDummy(node) {
-  return node.name == "✖";
-}
-
-},{}],5:[function(_dereq_,module,exports){
-"use strict";
-
-exports.__esModule = true;
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-var _ = _dereq_("..");
-
-// Registered plugins
-var pluginsLoose = {};
-
-exports.pluginsLoose = pluginsLoose;
-
-var LooseParser = (function () {
-  function LooseParser(input, options) {
-    _classCallCheck(this, LooseParser);
-
-    this.toks = _.tokenizer(input, options);
-    this.options = this.toks.options;
-    this.input = this.toks.input;
-    this.tok = this.last = { type: _.tokTypes.eof, start: 0, end: 0 };
-    if (this.options.locations) {
-      var here = this.toks.curPosition();
-      this.tok.loc = new _.SourceLocation(this.toks, here, here);
-    }
-    this.ahead = []; // Tokens ahead
-    this.context = []; // Indentation contexted
-    this.curIndent = 0;
-    this.curLineStart = 0;
-    this.nextLineStart = this.lineEnd(this.curLineStart) + 1;
-    // Load plugins
-    this.options.pluginsLoose = options.pluginsLoose || {};
-    this.loadPlugins(this.options.pluginsLoose);
-  }
-
-  LooseParser.prototype.startNode = function startNode() {
-    return new _.Node(this.toks, this.tok.start, this.options.locations ? this.tok.loc.start : null);
-  };
-
-  LooseParser.prototype.storeCurrentPos = function storeCurrentPos() {
-    return this.options.locations ? [this.tok.start, this.tok.loc.start] : this.tok.start;
-  };
-
-  LooseParser.prototype.startNodeAt = function startNodeAt(pos) {
-    if (this.options.locations) {
-      return new _.Node(this.toks, pos[0], pos[1]);
-    } else {
-      return new _.Node(this.toks, pos);
-    }
-  };
-
-  LooseParser.prototype.finishNode = function finishNode(node, type) {
-    node.type = type;
-    node.end = this.last.end;
-    if (this.options.locations) node.loc.end = this.last.loc.end;
-    if (this.options.ranges) node.range[1] = this.last.end;
-    return node;
-  };
-
-  LooseParser.prototype.dummyNode = function dummyNode(type) {
-    var dummy = this.startNode();
-    dummy.type = type;
-    dummy.end = dummy.start;
-    if (this.options.locations) dummy.loc.end = dummy.loc.start;
-    if (this.options.ranges) dummy.range[1] = dummy.start;
-    this.last = { type: _.tokTypes.name, start: dummy.start, end: dummy.start, loc: dummy.loc };
-    return dummy;
-  };
-
-  LooseParser.prototype.dummyIdent = function dummyIdent() {
-    var dummy = this.dummyNode("Identifier");
-    dummy.name = "✖";
-    return dummy;
-  };
-
-  LooseParser.prototype.dummyString = function dummyString() {
-    var dummy = this.dummyNode("Literal");
-    dummy.value = dummy.raw = "✖";
-    return dummy;
-  };
-
-  LooseParser.prototype.eat = function eat(type) {
-    if (this.tok.type === type) {
-      this.next();
-      return true;
-    } else {
-      return false;
-    }
-  };
-
-  LooseParser.prototype.isContextual = function isContextual(name) {
-    return this.tok.type === _.tokTypes.name && this.tok.value === name;
-  };
-
-  LooseParser.prototype.eatContextual = function eatContextual(name) {
-    return this.tok.value === name && this.eat(_.tokTypes.name);
-  };
-
-  LooseParser.prototype.canInsertSemicolon = function canInsertSemicolon() {
-    return this.tok.type === _.tokTypes.eof || this.tok.type === _.tokTypes.braceR || _.lineBreak.test(this.input.slice(this.last.end, this.tok.start));
-  };
-
-  LooseParser.prototype.semicolon = function semicolon() {
-    return this.eat(_.tokTypes.semi);
-  };
-
-  LooseParser.prototype.expect = function expect(type) {
-    if (this.eat(type)) return true;
-    for (var i = 1; i <= 2; i++) {
-      if (this.lookAhead(i).type == type) {
-        for (var j = 0; j < i; j++) {
-          this.next();
-        }return true;
-      }
-    }
-  };
-
-  LooseParser.prototype.pushCx = function pushCx() {
-    this.context.push(this.curIndent);
-  };
-
-  LooseParser.prototype.popCx = function popCx() {
-    this.curIndent = this.context.pop();
-  };
-
-  LooseParser.prototype.lineEnd = function lineEnd(pos) {
-    while (pos < this.input.length && !_.isNewLine(this.input.charCodeAt(pos))) ++pos;
-    return pos;
-  };
-
-  LooseParser.prototype.indentationAfter = function indentationAfter(pos) {
-    for (var count = 0;; ++pos) {
-      var ch = this.input.charCodeAt(pos);
-      if (ch === 32) ++count;else if (ch === 9) count += this.options.tabSize;else return count;
-    }
-  };
-
-  LooseParser.prototype.closes = function closes(closeTok, indent, line, blockHeuristic) {
-    if (this.tok.type === closeTok || this.tok.type === _.tokTypes.eof) return true;
-    return line != this.curLineStart && this.curIndent < indent && this.tokenStartsLine() && (!blockHeuristic || this.nextLineStart >= this.input.length || this.indentationAfter(this.nextLineStart) < indent);
-  };
-
-  LooseParser.prototype.tokenStartsLine = function tokenStartsLine() {
-    for (var p = this.tok.start - 1; p >= this.curLineStart; --p) {
-      var ch = this.input.charCodeAt(p);
-      if (ch !== 9 && ch !== 32) return false;
-    }
-    return true;
-  };
-
-  LooseParser.prototype.extend = function extend(name, f) {
-    this[name] = f(this[name]);
-  };
-
-  LooseParser.prototype.loadPlugins = function loadPlugins(pluginConfigs) {
-    for (var _name in pluginConfigs) {
-      var plugin = pluginsLoose[_name];
-      if (!plugin) throw new Error("Plugin '" + _name + "' not found");
-      plugin(this, pluginConfigs[_name]);
-    }
-  };
-
-  return LooseParser;
-})();
-
-exports.LooseParser = LooseParser;
-
-},{"..":1}],6:[function(_dereq_,module,exports){
-"use strict";
-
-var _state = _dereq_("./state");
-
-var _parseutil = _dereq_("./parseutil");
-
-var _ = _dereq_("..");
-
-var lp = _state.LooseParser.prototype;
-
-lp.parseTopLevel = function () {
-  var node = this.startNodeAt(this.options.locations ? [0, _.getLineInfo(this.input, 0)] : 0);
-  node.body = [];
-  while (this.tok.type !== _.tokTypes.eof) node.body.push(this.parseStatement());
-  this.last = this.tok;
-  if (this.options.ecmaVersion >= 6) {
-    node.sourceType = this.options.sourceType;
-  }
-  return this.finishNode(node, "Program");
-};
-
-lp.parseStatement = function () {
-  var starttype = this.tok.type,
-      node = this.startNode();
-
-  switch (starttype) {
-    case _.tokTypes._break:case _.tokTypes._continue:
-      this.next();
-      var isBreak = starttype === _.tokTypes._break;
-      if (this.semicolon() || this.canInsertSemicolon()) {
-        node.label = null;
-      } else {
-        node.label = this.tok.type === _.tokTypes.name ? this.parseIdent() : null;
-        this.semicolon();
-      }
-      return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement");
-
-    case _.tokTypes._debugger:
-      this.next();
-      this.semicolon();
-      return this.finishNode(node, "DebuggerStatement");
-
-    case _.tokTypes._do:
-      this.next();
-      node.body = this.parseStatement();
-      node.test = this.eat(_.tokTypes._while) ? this.parseParenExpression() : this.dummyIdent();
-      this.semicolon();
-      return this.finishNode(node, "DoWhileStatement");
-
-    case _.tokTypes._for:
-      this.next();
-      this.pushCx();
-      this.expect(_.tokTypes.parenL);
-      if (this.tok.type === _.tokTypes.semi) return this.parseFor(node, null);
-      if (this.tok.type === _.tokTypes._var || this.tok.type === _.tokTypes._let || this.tok.type === _.tokTypes._const) {
-        var _init = this.parseVar(true);
-        if (_init.declarations.length === 1 && (this.tok.type === _.tokTypes._in || this.isContextual("of"))) {
-          return this.parseForIn(node, _init);
-        }
-        return this.parseFor(node, _init);
-      }
-      var init = this.parseExpression(true);
-      if (this.tok.type === _.tokTypes._in || this.isContextual("of")) return this.parseForIn(node, this.toAssignable(init));
-      return this.parseFor(node, init);
-
-    case _.tokTypes._function:
-      this.next();
-      return this.parseFunction(node, true);
-
-    case _.tokTypes._if:
-      this.next();
-      node.test = this.parseParenExpression();
-      node.consequent = this.parseStatement();
-      node.alternate = this.eat(_.tokTypes._else) ? this.parseStatement() : null;
-      return this.finishNode(node, "IfStatement");
-
-    case _.tokTypes._return:
-      this.next();
-      if (this.eat(_.tokTypes.semi) || this.canInsertSemicolon()) node.argument = null;else {
-        node.argument = this.parseExpression();this.semicolon();
-      }
-      return this.finishNode(node, "ReturnStatement");
-
-    case _.tokTypes._switch:
-      var blockIndent = this.curIndent,
-          line = this.curLineStart;
-      this.next();
-      node.discriminant = this.parseParenExpression();
-      node.cases = [];
-      this.pushCx();
-      this.expect(_.tokTypes.braceL);
-
-      var cur = undefined;
-      while (!this.closes(_.tokTypes.braceR, blockIndent, line, true)) {
-        if (this.tok.type === _.tokTypes._case || this.tok.type === _.tokTypes._default) {
-          var isCase = this.tok.type === _.tokTypes._case;
-          if (cur) this.finishNode(cur, "SwitchCase");
-          node.cases.push(cur = this.startNode());
-          cur.consequent = [];
-          this.next();
-          if (isCase) cur.test = this.parseExpression();else cur.test = null;
-          this.expect(_.tokTypes.colon);
-        } else {
-          if (!cur) {
-            node.cases.push(cur = this.startNode());
-            cur.consequent = [];
-            cur.test = null;
-          }
-          cur.consequent.push(this.parseStatement());
-        }
-      }
-      if (cur) this.finishNode(cur, "SwitchCase");
-      this.popCx();
-      this.eat(_.tokTypes.braceR);
-      return this.finishNode(node, "SwitchStatement");
-
-    case _.tokTypes._throw:
-      this.next();
-      node.argument = this.parseExpression();
-      this.semicolon();
-      return this.finishNode(node, "ThrowStatement");
-
-    case _.tokTypes._try:
-      this.next();
-      node.block = this.parseBlock();
-      node.handler = null;
-      if (this.tok.type === _.tokTypes._catch) {
-        var clause = this.startNode();
-        this.next();
-        this.expect(_.tokTypes.parenL);
-        clause.param = this.toAssignable(this.parseExprAtom(), true);
-        this.expect(_.tokTypes.parenR);
-        clause.body = this.parseBlock();
-        node.handler = this.finishNode(clause, "CatchClause");
-      }
-      node.finalizer = this.eat(_.tokTypes._finally) ? this.parseBlock() : null;
-      if (!node.handler && !node.finalizer) return node.block;
-      return this.finishNode(node, "TryStatement");
-
-    case _.tokTypes._var:
-    case _.tokTypes._let:
-    case _.tokTypes._const:
-      return this.parseVar();
-
-    case _.tokTypes._while:
-      this.next();
-      node.test = this.parseParenExpression();
-      node.body = this.parseStatement();
-      return this.finishNode(node, "WhileStatement");
-
-    case _.tokTypes._with:
-      this.next();
-      node.object = this.parseParenExpression();
-      node.body = this.parseStatement();
-      return this.finishNode(node, "WithStatement");
-
-    case _.tokTypes.braceL:
-      return this.parseBlock();
-
-    case _.tokTypes.semi:
-      this.next();
-      return this.finishNode(node, "EmptyStatement");
-
-    case _.tokTypes._class:
-      return this.parseClass(true);
-
-    case _.tokTypes._import:
-      return this.parseImport();
-
-    case _.tokTypes._export:
-      return this.parseExport();
-
-    default:
-      var expr = this.parseExpression();
-      if (_parseutil.isDummy(expr)) {
-        this.next();
-        if (this.tok.type === _.tokTypes.eof) return this.finishNode(node, "EmptyStatement");
-        return this.parseStatement();
-      } else if (starttype === _.tokTypes.name && expr.type === "Identifier" && this.eat(_.tokTypes.colon)) {
-        node.body = this.parseStatement();
-        node.label = expr;
-        return this.finishNode(node, "LabeledStatement");
-      } else {
-        node.expression = expr;
-        this.semicolon();
-        return this.finishNode(node, "ExpressionStatement");
-      }
-  }
-};
-
-lp.parseBlock = function () {
-  var node = this.startNode();
-  this.pushCx();
-  this.expect(_.tokTypes.braceL);
-  var blockIndent = this.curIndent,
-      line = this.curLineStart;
-  node.body = [];
-  while (!this.closes(_.tokTypes.braceR, blockIndent, line, true)) node.body.push(this.parseStatement());
-  this.popCx();
-  this.eat(_.tokTypes.braceR);
-  return this.finishNode(node, "BlockStatement");
-};
-
-lp.parseFor = function (node, init) {
-  node.init = init;
-  node.test = node.update = null;
-  if (this.eat(_.tokTypes.semi) && this.tok.type !== _.tokTypes.semi) node.test = this.parseExpression();
-  if (this.eat(_.tokTypes.semi) && this.tok.type !== _.tokTypes.parenR) node.update = this.parseExpression();
-  this.popCx();
-  this.expect(_.tokTypes.parenR);
-  node.body = this.parseStatement();
-  return this.finishNode(node, "ForStatement");
-};
-
-lp.parseForIn = function (node, init) {
-  var type = this.tok.type === _.tokTypes._in ? "ForInStatement" : "ForOfStatement";
-  this.next();
-  node.left = init;
-  node.right = this.parseExpression();
-  this.popCx();
-  this.expect(_.tokTypes.parenR);
-  node.body = this.parseStatement();
-  return this.finishNode(node, type);
-};
-
-lp.parseVar = function (noIn) {
-  var node = this.startNode();
-  node.kind = this.tok.type.keyword;
-  this.next();
-  node.declarations = [];
-  do {
-    var decl = this.startNode();
-    decl.id = this.options.ecmaVersion >= 6 ? this.toAssignable(this.parseExprAtom(), true) : this.parseIdent();
-    decl.init = this.eat(_.tokTypes.eq) ? this.parseMaybeAssign(noIn) : null;
-    node.declarations.push(this.finishNode(decl, "VariableDeclarator"));
-  } while (this.eat(_.tokTypes.comma));
-  if (!node.declarations.length) {
-    var decl = this.startNode();
-    decl.id = this.dummyIdent();
-    node.declarations.push(this.finishNode(decl, "VariableDeclarator"));
-  }
-  if (!noIn) this.semicolon();
-  return this.finishNode(node, "VariableDeclaration");
-};
-
-lp.parseClass = function (isStatement) {
-  var node = this.startNode();
-  this.next();
-  if (this.tok.type === _.tokTypes.name) node.id = this.parseIdent();else if (isStatement) node.id = this.dummyIdent();else node.id = null;
-  node.superClass = this.eat(_.tokTypes._extends) ? this.parseExpression() : null;
-  node.body = this.startNode();
-  node.body.body = [];
-  this.pushCx();
-  var indent = this.curIndent + 1,
-      line = this.curLineStart;
-  this.eat(_.tokTypes.braceL);
-  if (this.curIndent + 1 < indent) {
-    indent = this.curIndent;line = this.curLineStart;
-  }
-  while (!this.closes(_.tokTypes.braceR, indent, line)) {
-    if (this.semicolon()) continue;
-    var method = this.startNode(),
-        isGenerator = undefined;
-    if (this.options.ecmaVersion >= 6) {
-      method["static"] = false;
-      isGenerator = this.eat(_.tokTypes.star);
-    }
-    this.parsePropertyName(method);
-    if (_parseutil.isDummy(method.key)) {
-      if (_parseutil.isDummy(this.parseMaybeAssign())) this.next();this.eat(_.tokTypes.comma);continue;
-    }
-    if (method.key.type === "Identifier" && !method.computed && method.key.name === "static" && (this.tok.type != _.tokTypes.parenL && this.tok.type != _.tokTypes.braceL)) {
-      method["static"] = true;
-      isGenerator = this.eat(_.tokTypes.star);
-      this.parsePropertyName(method);
-    } else {
-      method["static"] = false;
-    }
-    if (this.options.ecmaVersion >= 5 && method.key.type === "Identifier" && !method.computed && (method.key.name === "get" || method.key.name === "set") && this.tok.type !== _.tokTypes.parenL && this.tok.type !== _.tokTypes.braceL) {
-      method.kind = method.key.name;
-      this.parsePropertyName(method);
-      method.value = this.parseMethod(false);
-    } else {
-      if (!method.computed && !method["static"] && !isGenerator && (method.key.type === "Identifier" && method.key.name === "constructor" || method.key.type === "Literal" && method.key.value === "constructor")) {
-        method.kind = "constructor";
-      } else {
-        method.kind = "method";
-      }
-      method.value = this.parseMethod(isGenerator);
-    }
-    node.body.body.push(this.finishNode(method, "MethodDefinition"));
-  }
-  this.popCx();
-  if (!this.eat(_.tokTypes.braceR)) {
-    // If there is no closing brace, make the node span to the start
-    // of the next token (this is useful for Tern)
-    this.last.end = this.tok.start;
-    if (this.options.locations) this.last.loc.end = this.tok.loc.start;
-  }
-  this.semicolon();
-  this.finishNode(node.body, "ClassBody");
-  return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression");
-};
-
-lp.parseFunction = function (node, isStatement) {
-  this.initFunction(node);
-  if (this.options.ecmaVersion >= 6) {
-    node.generator = this.eat(_.tokTypes.star);
-  }
-  if (this.tok.type === _.tokTypes.name) node.id = this.parseIdent();else if (isStatement) node.id = this.dummyIdent();
-  node.params = this.parseFunctionParams();
-  node.body = this.parseBlock();
-  return this.finishNode(node, isStatement ? "FunctionDeclaration" : "FunctionExpression");
-};
-
-lp.parseExport = function () {
-  var node = this.startNode();
-  this.next();
-  if (this.eat(_.tokTypes.star)) {
-    node.source = this.eatContextual("from") ? this.parseExprAtom() : null;
-    return this.finishNode(node, "ExportAllDeclaration");
-  }
-  if (this.eat(_.tokTypes._default)) {
-    var expr = this.parseMaybeAssign();
-    if (expr.id) {
-      switch (expr.type) {
-        case "FunctionExpression":
-          expr.type = "FunctionDeclaration";break;
-        case "ClassExpression":
-          expr.type = "ClassDeclaration";break;
-      }
-    }
-    node.declaration = expr;
-    this.semicolon();
-    return this.finishNode(node, "ExportDefaultDeclaration");
-  }
-  if (this.tok.type.keyword) {
-    node.declaration = this.parseStatement();
-    node.specifiers = [];
-    node.source = null;
-  } else {
-    node.declaration = null;
-    node.specifiers = this.parseExportSpecifierList();
-    node.source = this.eatContextual("from") ? this.parseExprAtom() : null;
-    this.semicolon();
-  }
-  return this.finishNode(node, "ExportNamedDeclaration");
-};
-
-lp.parseImport = function () {
-  var node = this.startNode();
-  this.next();
-  if (this.tok.type === _.tokTypes.string) {
-    node.specifiers = [];
-    node.source = this.parseExprAtom();
-    node.kind = '';
-  } else {
-    var elt = undefined;
-    if (this.tok.type === _.tokTypes.name && this.tok.value !== "from") {
-      elt = this.startNode();
-      elt.local = this.parseIdent();
-      this.finishNode(elt, "ImportDefaultSpecifier");
-      this.eat(_.tokTypes.comma);
-    }
-    node.specifiers = this.parseImportSpecifierList();
-    node.source = this.eatContextual("from") && this.tok.type == _.tokTypes.string ? this.parseExprAtom() : this.dummyString();
-    if (elt) node.specifiers.unshift(elt);
-  }
-  this.semicolon();
-  return this.finishNode(node, "ImportDeclaration");
-};
-
-lp.parseImportSpecifierList = function () {
-  var elts = [];
-  if (this.tok.type === _.tokTypes.star) {
-    var elt = this.startNode();
-    this.next();
-    if (this.eatContextual("as")) elt.local = this.parseIdent();
-    elts.push(this.finishNode(elt, "ImportNamespaceSpecifier"));
-  } else {
-    var indent = this.curIndent,
-        line = this.curLineStart,
-        continuedLine = this.nextLineStart;
-    this.pushCx();
-    this.eat(_.tokTypes.braceL);
-    if (this.curLineStart > continuedLine) continuedLine = this.curLineStart;
-    while (!this.closes(_.tokTypes.braceR, indent + (this.curLineStart <= continuedLine ? 1 : 0), line)) {
-      var elt = this.startNode();
-      if (this.eat(_.tokTypes.star)) {
-        elt.local = this.eatContextual("as") ? this.parseIdent() : this.dummyIdent();
-        this.finishNode(elt, "ImportNamespaceSpecifier");
-      } else {
-        if (this.isContextual("from")) break;
-        elt.imported = this.parseIdent();
-        if (_parseutil.isDummy(elt.imported)) break;
-        elt.local = this.eatContextual("as") ? this.parseIdent() : elt.imported;
-        this.finishNode(elt, "ImportSpecifier");
-      }
-      elts.push(elt);
-      this.eat(_.tokTypes.comma);
-    }
-    this.eat(_.tokTypes.braceR);
-    this.popCx();
-  }
-  return elts;
-};
-
-lp.parseExportSpecifierList = function () {
-  var elts = [];
-  var indent = this.curIndent,
-      line = this.curLineStart,
-      continuedLine = this.nextLineStart;
-  this.pushCx();
-  this.eat(_.tokTypes.braceL);
-  if (this.curLineStart > continuedLine) continuedLine = this.curLineStart;
-  while (!this.closes(_.tokTypes.braceR, indent + (this.curLineStart <= continuedLine ? 1 : 0), line)) {
-    if (this.isContextual("from")) break;
-    var elt = this.startNode();
-    elt.local = this.parseIdent();
-    if (_parseutil.isDummy(elt.local)) break;
-    elt.exported = this.eatContextual("as") ? this.parseIdent() : elt.local;
-    this.finishNode(elt, "ExportSpecifier");
-    elts.push(elt);
-    this.eat(_.tokTypes.comma);
-  }
-  this.eat(_.tokTypes.braceR);
-  this.popCx();
-  return elts;
-};
-
-},{"..":1,"./parseutil":4,"./state":5}],7:[function(_dereq_,module,exports){
-"use strict";
-
-var _ = _dereq_("..");
-
-var _state = _dereq_("./state");
-
-var lp = _state.LooseParser.prototype;
-
-function isSpace(ch) {
-  return ch < 14 && ch > 8 || ch === 32 || ch === 160 || _.isNewLine(ch);
-}
-
-lp.next = function () {
-  this.last = this.tok;
-  if (this.ahead.length) this.tok = this.ahead.shift();else this.tok = this.readToken();
-
-  if (this.tok.start >= this.nextLineStart) {
-    while (this.tok.start >= this.nextLineStart) {
-      this.curLineStart = this.nextLineStart;
-      this.nextLineStart = this.lineEnd(this.curLineStart) + 1;
-    }
-    this.curIndent = this.indentationAfter(this.curLineStart);
-  }
-};
-
-lp.readToken = function () {
-  for (;;) {
-    try {
-      this.toks.next();
-      if (this.toks.type === _.tokTypes.dot && this.input.substr(this.toks.end, 1) === "." && this.options.ecmaVersion >= 6) {
-        this.toks.end++;
-        this.toks.type = _.tokTypes.ellipsis;
-      }
-      return new _.Token(this.toks);
-    } catch (e) {
-      if (!(e instanceof SyntaxError)) throw e;
-
-      // Try to skip some text, based on the error message, and then continue
-      var msg = e.message,
-          pos = e.raisedAt,
-          replace = true;
-      if (/unterminated/i.test(msg)) {
-        pos = this.lineEnd(e.pos + 1);
-        if (/string/.test(msg)) {
-          replace = { start: e.pos, end: pos, type: _.tokTypes.string, value: this.input.slice(e.pos + 1, pos) };
-        } else if (/regular expr/i.test(msg)) {
-          var re = this.input.slice(e.pos, pos);
-          try {
-            re = new RegExp(re);
-          } catch (e) {}
-          replace = { start: e.pos, end: pos, type: _.tokTypes.regexp, value: re };
-        } else if (/template/.test(msg)) {
-          replace = { start: e.pos, end: pos,
-            type: _.tokTypes.template,
-            value: this.input.slice(e.pos, pos) };
-        } else {
-          replace = false;
-        }
-      } else if (/invalid (unicode|regexp|number)|expecting unicode|octal literal|is reserved|directly after number|expected number in radix/i.test(msg)) {
-        while (pos < this.input.length && !isSpace(this.input.charCodeAt(pos))) ++pos;
-      } else if (/character escape|expected hexadecimal/i.test(msg)) {
-        while (pos < this.input.length) {
-          var ch = this.input.charCodeAt(pos++);
-          if (ch === 34 || ch === 39 || _.isNewLine(ch)) break;
-        }
-      } else if (/unexpected character/i.test(msg)) {
-        pos++;
-        replace = false;
-      } else if (/regular expression/i.test(msg)) {
-        replace = true;
-      } else {
-        throw e;
-      }
-      this.resetTo(pos);
-      if (replace === true) replace = { start: pos, end: pos, type: _.tokTypes.name, value: "✖" };
-      if (replace) {
-        if (this.options.locations) replace.loc = new _.SourceLocation(this.toks, _.getLineInfo(this.input, replace.start), _.getLineInfo(this.input, replace.end));
-        return replace;
-      }
-    }
-  }
-};
-
-lp.resetTo = function (pos) {
-  this.toks.pos = pos;
-  var ch = this.input.charAt(pos - 1);
-  this.toks.exprAllowed = !ch || /[\[\{\(,;:?\/*=+\-~!|&%^<>]/.test(ch) || /[enwfd]/.test(ch) && /\b(keywords|case|else|return|throw|new|in|(instance|type)of|delete|void)$/.test(this.input.slice(pos - 10, pos));
-
-  if (this.options.locations) {
-    this.toks.curLine = 1;
-    this.toks.lineStart = _.lineBreakG.lastIndex = 0;
-    var match = undefined;
-    while ((match = _.lineBreakG.exec(this.input)) && match.index < pos) {
-      ++this.toks.curLine;
-      this.toks.lineStart = match.index + match[0].length;
-    }
-  }
-};
-
-lp.lookAhead = function (n) {
-  while (n > this.ahead.length) this.ahead.push(this.readToken());
-  return this.ahead[n - 1];
-};
-
-},{"..":1,"./state":5}]},{},[3])(3)
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/dist/walk.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/dist/walk.js b/node_modules/acorn/dist/walk.js
deleted file mode 100644
index 9429e0b..0000000
--- a/node_modules/acorn/dist/walk.js
+++ /dev/null
@@ -1,377 +0,0 @@
-(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}(g.acorn || (g.acorn = {})).walk = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
-// AST walker module for Mozilla Parser API compatible trees
-
-// A simple walk is one where you simply specify callbacks to be
-// called on specific nodes. The last two arguments are optional. A
-// simple use would be
-//
-//     walk.simple(myTree, {
-//         Expression: function(node) { ... }
-//     });
-//
-// to do something with all expressions. All Parser API node types
-// can be used to identify node types, as well as Expression,
-// Statement, and ScopeBody, which denote categories of nodes.
-//
-// The base argument can be used to pass a custom (recursive)
-// walker, and state can be used to give this walked an initial
-// state.
-
-"use strict";
-
-exports.__esModule = true;
-exports.simple = simple;
-exports.ancestor = ancestor;
-exports.recursive = recursive;
-exports.findNodeAt = findNodeAt;
-exports.findNodeAround = findNodeAround;
-exports.findNodeAfter = findNodeAfter;
-exports.findNodeBefore = findNodeBefore;
-exports.make = make;
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-function simple(node, visitors, base, state, override) {
-  if (!base) base = exports.base;(function c(node, st, override) {
-    var type = override || node.type,
-        found = visitors[type];
-    base[type](node, st, c);
-    if (found) found(node, st);
-  })(node, state, override);
-}
-
-// An ancestor walk builds up an array of ancestor nodes (including
-// the current node) and passes them to the callback as the state parameter.
-
-function ancestor(node, visitors, base, state) {
-  if (!base) base = exports.base;
-  if (!state) state = [];(function c(node, st, override) {
-    var type = override || node.type,
-        found = visitors[type];
-    if (node != st[st.length - 1]) {
-      st = st.slice();
-      st.push(node);
-    }
-    base[type](node, st, c);
-    if (found) found(node, st);
-  })(node, state);
-}
-
-// A recursive walk is one where your functions override the default
-// walkers. They can modify and replace the state parameter that's
-// threaded through the walk, and can opt how and whether to walk
-// their child nodes (by calling their third argument on these
-// nodes).
-
-function recursive(node, state, funcs, base, override) {
-  var visitor = funcs ? exports.make(funcs, base) : base;(function c(node, st, override) {
-    visitor[override || node.type](node, st, c);
-  })(node, state, override);
-}
-
-function makeTest(test) {
-  if (typeof test == "string") return function (type) {
-    return type == test;
-  };else if (!test) return function () {
-    return true;
-  };else return test;
-}
-
-var Found = function Found(node, state) {
-  _classCallCheck(this, Found);
-
-  this.node = node;this.state = state;
-}
-
-// Find a node with a given start, end, and type (all are optional,
-// null can be used as wildcard). Returns a {node, state} object, or
-// undefined when it doesn't find a matching node.
-;
-
-function findNodeAt(node, start, end, test, base, state) {
-  test = makeTest(test);
-  if (!base) base = exports.base;
-  try {
-    ;(function c(node, st, override) {
-      var type = override || node.type;
-      if ((start == null || node.start <= start) && (end == null || node.end >= end)) base[type](node, st, c);
-      if ((start == null || node.start == start) && (end == null || node.end == end) && test(type, node)) throw new Found(node, st);
-    })(node, state);
-  } catch (e) {
-    if (e instanceof Found) return e;
-    throw e;
-  }
-}
-
-// Find the innermost node of a given type that contains the given
-// position. Interface similar to findNodeAt.
-
-function findNodeAround(node, pos, test, base, state) {
-  test = makeTest(test);
-  if (!base) base = exports.base;
-  try {
-    ;(function c(node, st, override) {
-      var type = override || node.type;
-      if (node.start > pos || node.end < pos) return;
-      base[type](node, st, c);
-      if (test(type, node)) throw new Found(node, st);
-    })(node, state);
-  } catch (e) {
-    if (e instanceof Found) return e;
-    throw e;
-  }
-}
-
-// Find the outermost matching node after a given position.
-
-function findNodeAfter(node, pos, test, base, state) {
-  test = makeTest(test);
-  if (!base) base = exports.base;
-  try {
-    ;(function c(node, st, override) {
-      if (node.end < pos) return;
-      var type = override || node.type;
-      if (node.start >= pos && test(type, node)) throw new Found(node, st);
-      base[type](node, st, c);
-    })(node, state);
-  } catch (e) {
-    if (e instanceof Found) return e;
-    throw e;
-  }
-}
-
-// Find the outermost matching node before a given position.
-
-function findNodeBefore(node, pos, test, base, state) {
-  test = makeTest(test);
-  if (!base) base = exports.base;
-  var max = undefined;(function c(node, st, override) {
-    if (node.start > pos) return;
-    var type = override || node.type;
-    if (node.end <= pos && (!max || max.node.end < node.end) && test(type, node)) max = new Found(node, st);
-    base[type](node, st, c);
-  })(node, state);
-  return max;
-}
-
-// Used to create a custom walker. Will fill in all missing node
-// type properties with the defaults.
-
-function make(funcs, base) {
-  if (!base) base = exports.base;
-  var visitor = {};
-  for (var type in base) visitor[type] = base[type];
-  for (var type in funcs) visitor[type] = funcs[type];
-  return visitor;
-}
-
-function skipThrough(node, st, c) {
-  c(node, st);
-}
-function ignore(_node, _st, _c) {}
-
-// Node walkers.
-
-var base = {};
-
-exports.base = base;
-base.Program = base.BlockStatement = function (node, st, c) {
-  for (var i = 0; i < node.body.length; ++i) {
-    c(node.body[i], st, "Statement");
-  }
-};
-base.Statement = skipThrough;
-base.EmptyStatement = ignore;
-base.ExpressionStatement = base.ParenthesizedExpression = function (node, st, c) {
-  return c(node.expression, st, "Expression");
-};
-base.IfStatement = function (node, st, c) {
-  c(node.test, st, "Expression");
-  c(node.consequent, st, "Statement");
-  if (node.alternate) c(node.alternate, st, "Statement");
-};
-base.LabeledStatement = function (node, st, c) {
-  return c(node.body, st, "Statement");
-};
-base.BreakStatement = base.ContinueStatement = ignore;
-base.WithStatement = function (node, st, c) {
-  c(node.object, st, "Expression");
-  c(node.body, st, "Statement");
-};
-base.SwitchStatement = function (node, st, c) {
-  c(node.discriminant, st, "Expression");
-  for (var i = 0; i < node.cases.length; ++i) {
-    var cs = node.cases[i];
-    if (cs.test) c(cs.test, st, "Expression");
-    for (var j = 0; j < cs.consequent.length; ++j) {
-      c(cs.consequent[j], st, "Statement");
-    }
-  }
-};
-base.ReturnStatement = base.YieldExpression = function (node, st, c) {
-  if (node.argument) c(node.argument, st, "Expression");
-};
-base.ThrowStatement = base.SpreadElement = function (node, st, c) {
-  return c(node.argument, st, "Expression");
-};
-base.TryStatement = function (node, st, c) {
-  c(node.block, st, "Statement");
-  if (node.handler) {
-    c(node.handler.param, st, "Pattern");
-    c(node.handler.body, st, "ScopeBody");
-  }
-  if (node.finalizer) c(node.finalizer, st, "Statement");
-};
-base.WhileStatement = base.DoWhileStatement = function (node, st, c) {
-  c(node.test, st, "Expression");
-  c(node.body, st, "Statement");
-};
-base.ForStatement = function (node, st, c) {
-  if (node.init) c(node.init, st, "ForInit");
-  if (node.test) c(node.test, st, "Expression");
-  if (node.update) c(node.update, st, "Expression");
-  c(node.body, st, "Statement");
-};
-base.ForInStatement = base.ForOfStatement = function (node, st, c) {
-  c(node.left, st, "ForInit");
-  c(node.right, st, "Expression");
-  c(node.body, st, "Statement");
-};
-base.ForInit = function (node, st, c) {
-  if (node.type == "VariableDeclaration") c(node, st);else c(node, st, "Expression");
-};
-base.DebuggerStatement = ignore;
-
-base.FunctionDeclaration = function (node, st, c) {
-  return c(node, st, "Function");
-};
-base.VariableDeclaration = function (node, st, c) {
-  for (var i = 0; i < node.declarations.length; ++i) {
-    c(node.declarations[i], st);
-  }
-};
-base.VariableDeclarator = function (node, st, c) {
-  c(node.id, st, "Pattern");
-  if (node.init) c(node.init, st, "Expression");
-};
-
-base.Function = function (node, st, c) {
-  if (node.id) c(node.id, st, "Pattern");
-  for (var i = 0; i < node.params.length; i++) {
-    c(node.params[i], st, "Pattern");
-  }c(node.body, st, node.expression ? "ScopeExpression" : "ScopeBody");
-};
-// FIXME drop these node types in next major version
-// (They are awkward, and in ES6 every block can be a scope.)
-base.ScopeBody = function (node, st, c) {
-  return c(node, st, "Statement");
-};
-base.ScopeExpression = function (node, st, c) {
-  return c(node, st, "Expression");
-};
-
-base.Pattern = function (node, st, c) {
-  if (node.type == "Identifier") c(node, st, "VariablePattern");else if (node.type == "MemberExpression") c(node, st, "MemberPattern");else c(node, st);
-};
-base.VariablePattern = ignore;
-base.MemberPattern = skipThrough;
-base.RestElement = function (node, st, c) {
-  return c(node.argument, st, "Pattern");
-};
-base.ArrayPattern = function (node, st, c) {
-  for (var i = 0; i < node.elements.length; ++i) {
-    var elt = node.elements[i];
-    if (elt) c(elt, st, "Pattern");
-  }
-};
-base.ObjectPattern = function (node, st, c) {
-  for (var i = 0; i < node.properties.length; ++i) {
-    c(node.properties[i].value, st, "Pattern");
-  }
-};
-
-base.Expression = skipThrough;
-base.ThisExpression = base.Super = base.MetaProperty = ignore;
-base.ArrayExpression = function (node, st, c) {
-  for (var i = 0; i < node.elements.length; ++i) {
-    var elt = node.elements[i];
-    if (elt) c(elt, st, "Expression");
-  }
-};
-base.ObjectExpression = function (node, st, c) {
-  for (var i = 0; i < node.properties.length; ++i) {
-    c(node.properties[i], st);
-  }
-};
-base.FunctionExpression = base.ArrowFunctionExpression = base.FunctionDeclaration;
-base.SequenceExpression = base.TemplateLiteral = function (node, st, c) {
-  for (var i = 0; i < node.expressions.length; ++i) {
-    c(node.expressions[i], st, "Expression");
-  }
-};
-base.UnaryExpression = base.UpdateExpression = function (node, st, c) {
-  c(node.argument, st, "Expression");
-};
-base.BinaryExpression = base.LogicalExpression = function (node, st, c) {
-  c(node.left, st, "Expression");
-  c(node.right, st, "Expression");
-};
-base.AssignmentExpression = base.AssignmentPattern = function (node, st, c) {
-  c(node.left, st, "Pattern");
-  c(node.right, st, "Expression");
-};
-base.ConditionalExpression = function (node, st, c) {
-  c(node.test, st, "Expression");
-  c(node.consequent, st, "Expression");
-  c(node.alternate, st, "Expression");
-};
-base.NewExpression = base.CallExpression = function (node, st, c) {
-  c(node.callee, st, "Expression");
-  if (node.arguments) for (var i = 0; i < node.arguments.length; ++i) {
-    c(node.arguments[i], st, "Expression");
-  }
-};
-base.MemberExpression = function (node, st, c) {
-  c(node.object, st, "Expression");
-  if (node.computed) c(node.property, st, "Expression");
-};
-base.ExportNamedDeclaration = base.ExportDefaultDeclaration = function (node, st, c) {
-  if (node.declaration) c(node.declaration, st, node.type == "ExportNamedDeclaration" || node.declaration.id ? "Statement" : "Expression");
-  if (node.source) c(node.source, st, "Expression");
-};
-base.ExportAllDeclaration = function (node, st, c) {
-  c(node.source, st, "Expression");
-};
-base.ImportDeclaration = function (node, st, c) {
-  for (var i = 0; i < node.specifiers.length; i++) {
-    c(node.specifiers[i], st);
-  }c(node.source, st, "Expression");
-};
-base.ImportSpecifier = base.ImportDefaultSpecifier = base.ImportNamespaceSpecifier = base.Identifier = base.Literal = ignore;
-
-base.TaggedTemplateExpression = function (node, st, c) {
-  c(node.tag, st, "Expression");
-  c(node.quasi, st);
-};
-base.ClassDeclaration = base.ClassExpression = function (node, st, c) {
-  return c(node, st, "Class");
-};
-base.Class = function (node, st, c) {
-  if (node.id) c(node.id, st, "Pattern");
-  if (node.superClass) c(node.superClass, st, "Expression");
-  for (var i = 0; i < node.body.body.length; i++) {
-    c(node.body.body[i], st);
-  }
-};
-base.MethodDefinition = base.Property = function (node, st, c) {
-  if (node.computed) c(node.key, st, "Expression");
-  c(node.value, st, "Expression");
-};
-base.ComprehensionExpression = function (node, st, c) {
-  for (var i = 0; i < node.blocks.length; i++) {
-    c(node.blocks[i].right, st, "Expression");
-  }c(node.body, st, "Expression");
-};
-
-},{}]},{},[1])(1)
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/package.json
----------------------------------------------------------------------
diff --git a/node_modules/acorn/package.json b/node_modules/acorn/package.json
deleted file mode 100644
index 24bcb04..0000000
--- a/node_modules/acorn/package.json
+++ /dev/null
@@ -1,223 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "acorn@^2.4.0",
-        "scope": null,
-        "escapedName": "acorn",
-        "name": "acorn",
-        "rawSpec": "^2.4.0",
-        "spec": ">=2.4.0 <3.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/jsdom"
-    ]
-  ],
-  "_from": "acorn@>=2.4.0 <3.0.0",
-  "_id": "acorn@2.7.0",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/acorn",
-  "_nodeVersion": "4.2.2",
-  "_npmUser": {
-    "name": "marijn",
-    "email": "marijnh@gmail.com"
-  },
-  "_npmVersion": "2.14.7",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "acorn@^2.4.0",
-    "scope": null,
-    "escapedName": "acorn",
-    "name": "acorn",
-    "rawSpec": "^2.4.0",
-    "spec": ">=2.4.0 <3.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/acorn-globals",
-    "/jsdom"
-  ],
-  "_resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz",
-  "_shasum": "ab6e7d9d886aaca8b085bc3312b79a198433f0e7",
-  "_shrinkwrap": null,
-  "_spec": "acorn@^2.4.0",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/jsdom",
-  "bin": {
-    "acorn": "./bin/acorn"
-  },
-  "bugs": {
-    "url": "https://github.com/ternjs/acorn/issues"
-  },
-  "contributors": [
-    {
-      "name": "List of Acorn contributors. Updated before every release."
-    },
-    {
-      "name": "Adrian Rakovsky"
-    },
-    {
-      "name": "Alistair Braidwood"
-    },
-    {
-      "name": "Andres Suarez"
-    },
-    {
-      "name": "Aparajita Fishman"
-    },
-    {
-      "name": "Arian Stolwijk"
-    },
-    {
-      "name": "Artem Govorov"
-    },
-    {
-      "name": "Brandon Mills"
-    },
-    {
-      "name": "Charles Hughes"
-    },
-    {
-      "name": "Conrad Irwin"
-    },
-    {
-      "name": "David Bonnet"
-    },
-    {
-      "name": "ForbesLindesay"
-    },
-    {
-      "name": "Forbes Lindesay"
-    },
-    {
-      "name": "Gilad Peleg"
-    },
-    {
-      "name": "impinball"
-    },
-    {
-      "name": "Ingvar Stepanyan"
-    },
-    {
-      "name": "Jesse McCarthy"
-    },
-    {
-      "name": "Jiaxing Wang"
-    },
-    {
-      "name": "Joel Kemp"
-    },
-    {
-      "name": "Johannes Herr"
-    },
-    {
-      "name": "Jürg Lehni"
-    },
-    {
-      "name": "keeyipchan"
-    },
-    {
-      "name": "Kevin Kwok"
-    },
-    {
-      "name": "krator"
-    },
-    {
-      "name": "Marijn Haverbeke"
-    },
-    {
-      "name": "Martin Carlberg"
-    },
-    {
-      "name": "Mathias Bynens"
-    },
-    {
-      "name": "Mathieu 'p01' Henri"
-    },
-    {
-      "name": "Max Schaefer"
-    },
-    {
-      "name": "Max Zerzouri"
-    },
-    {
-      "name": "Mihai Bazon"
-    },
-    {
-      "name": "Mike Rennie"
-    },
-    {
-      "name": "Nick Fitzgerald"
-    },
-    {
-      "name": "Oskar Schöldström"
-    },
-    {
-      "name": "Paul Harper"
-    },
-    {
-      "name": "Peter Rust"
-    },
-    {
-      "name": "PlNG"
-    },
-    {
-      "name": "r-e-d"
-    },
-    {
-      "name": "Rich Harris"
-    },
-    {
-      "name": "Sebastian McKenzie"
-    },
-    {
-      "name": "Timothy Gu"
-    },
-    {
-      "name": "zsjforcn"
-    }
-  ],
-  "dependencies": {},
-  "description": "ECMAScript parser",
-  "devDependencies": {
-    "babel-core": "^5.6.15",
-    "babelify": "^6.1.2",
-    "browserify": "^10.2.4",
-    "browserify-derequire": "^0.9.4",
-    "unicode-7.0.0": "~0.1.5"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "ab6e7d9d886aaca8b085bc3312b79a198433f0e7",
-    "tarball": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz"
-  },
-  "engines": {
-    "node": ">=0.4.0"
-  },
-  "gitHead": "1405436064bff087f14af55a763396aa5c0ca148",
-  "homepage": "https://github.com/ternjs/acorn",
-  "license": "MIT",
-  "main": "dist/acorn.js",
-  "maintainers": [
-    {
-      "name": "marijn",
-      "email": "marijnh@gmail.com"
-    },
-    {
-      "name": "rreverser",
-      "email": "me@rreverser.com"
-    }
-  ],
-  "name": "acorn",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/ternjs/acorn.git"
-  },
-  "scripts": {
-    "prepublish": "node bin/build-acorn.js",
-    "test": "node test/run.js"
-  },
-  "version": "2.7.0"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/src/bin/acorn.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/src/bin/acorn.js b/node_modules/acorn/src/bin/acorn.js
deleted file mode 100644
index 71a5dff..0000000
--- a/node_modules/acorn/src/bin/acorn.js
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/usr/bin/env node
-
-import {basename} from "path"
-import {readFileSync as readFile} from "fs"
-import * as acorn from "../dist/acorn.js"
-
-let infile, forceFile, silent = false, compact = false, tokenize = false
-const options = {}
-
-function help(status) {
-  const print = (status == 0) ? console.log : console.error
-  print("usage: " + basename(process.argv[1]) + " [--ecma3|--ecma5|--ecma6]")
-  print("        [--tokenize] [--locations] [---allow-hash-bang] [--compact] [--silent] [--module] [--help] [--] [infile]")
-  process.exit(status)
-}
-
-for (let i = 2; i < process.argv.length; ++i) {
-  const arg = process.argv[i]
-  if ((arg == "-" || arg[0] != "-") && !infile) infile = arg
-  else if (arg == "--" && !infile && i + 2 == process.argv.length) forceFile = infile = process.argv[++i]
-  else if (arg == "--ecma3") options.ecmaVersion = 3
-  else if (arg == "--ecma5") options.ecmaVersion = 5
-  else if (arg == "--ecma6") options.ecmaVersion = 6
-  else if (arg == "--locations") options.locations = true
-  else if (arg == "--allow-hash-bang") options.allowHashBang = true
-  else if (arg == "--silent") silent = true
-  else if (arg == "--compact") compact = true
-  else if (arg == "--help") help(0)
-  else if (arg == "--tokenize") tokenize = true
-  else if (arg == "--module") options.sourceType = 'module'
-  else help(1)
-}
-
-function run(code) {
-  let result
-  if (!tokenize) {
-    try { result = acorn.parse(code, options) }
-    catch(e) { console.error(e.message); process.exit(1) }
-  } else {
-    result = []
-    let tokenizer = acorn.tokenizer(code, options), token
-    while (true) {
-      try { token = tokenizer.getToken() }
-      catch(e) { console.error(e.message); process.exit(1) }
-      result.push(token)
-      if (token.type == acorn.tokTypes.eof) break
-    }
-  }
-  if (!silent) console.log(JSON.stringify(result, null, compact ? null : 2))
-}
-
-if (forceFile || infile && infile != "-") {
-  run(readFile(infile, "utf8"))
-} else {
-  let code = ""
-  process.stdin.resume()
-  process.stdin.on("data", chunk => code += chunk)
-  process.stdin.on("end", () => run(code))
-}


[29/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asap/browser-raw.js
----------------------------------------------------------------------
diff --git a/node_modules/asap/browser-raw.js b/node_modules/asap/browser-raw.js
deleted file mode 100644
index 9cee7e3..0000000
--- a/node_modules/asap/browser-raw.js
+++ /dev/null
@@ -1,223 +0,0 @@
-"use strict";
-
-// Use the fastest means possible to execute a task in its own turn, with
-// priority over other events including IO, animation, reflow, and redraw
-// events in browsers.
-//
-// An exception thrown by a task will permanently interrupt the processing of
-// subsequent tasks. The higher level `asap` function ensures that if an
-// exception is thrown by a task, that the task queue will continue flushing as
-// soon as possible, but if you use `rawAsap` directly, you are responsible to
-// either ensure that no exceptions are thrown from your task, or to manually
-// call `rawAsap.requestFlush` if an exception is thrown.
-module.exports = rawAsap;
-function rawAsap(task) {
-    if (!queue.length) {
-        requestFlush();
-        flushing = true;
-    }
-    // Equivalent to push, but avoids a function call.
-    queue[queue.length] = task;
-}
-
-var queue = [];
-// Once a flush has been requested, no further calls to `requestFlush` are
-// necessary until the next `flush` completes.
-var flushing = false;
-// `requestFlush` is an implementation-specific method that attempts to kick
-// off a `flush` event as quickly as possible. `flush` will attempt to exhaust
-// the event queue before yielding to the browser's own event loop.
-var requestFlush;
-// The position of the next task to execute in the task queue. This is
-// preserved between calls to `flush` so that it can be resumed if
-// a task throws an exception.
-var index = 0;
-// If a task schedules additional tasks recursively, the task queue can grow
-// unbounded. To prevent memory exhaustion, the task queue will periodically
-// truncate already-completed tasks.
-var capacity = 1024;
-
-// The flush function processes all tasks that have been scheduled with
-// `rawAsap` unless and until one of those tasks throws an exception.
-// If a task throws an exception, `flush` ensures that its state will remain
-// consistent and will resume where it left off when called again.
-// However, `flush` does not make any arrangements to be called again if an
-// exception is thrown.
-function flush() {
-    while (index < queue.length) {
-        var currentIndex = index;
-        // Advance the index before calling the task. This ensures that we will
-        // begin flushing on the next task the task throws an error.
-        index = index + 1;
-        queue[currentIndex].call();
-        // Prevent leaking memory for long chains of recursive calls to `asap`.
-        // If we call `asap` within tasks scheduled by `asap`, the queue will
-        // grow, but to avoid an O(n) walk for every task we execute, we don't
-        // shift tasks off the queue after they have been executed.
-        // Instead, we periodically shift 1024 tasks off the queue.
-        if (index > capacity) {
-            // Manually shift all values starting at the index back to the
-            // beginning of the queue.
-            for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {
-                queue[scan] = queue[scan + index];
-            }
-            queue.length -= index;
-            index = 0;
-        }
-    }
-    queue.length = 0;
-    index = 0;
-    flushing = false;
-}
-
-// `requestFlush` is implemented using a strategy based on data collected from
-// every available SauceLabs Selenium web driver worker at time of writing.
-// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593
-
-// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that
-// have WebKitMutationObserver but not un-prefixed MutationObserver.
-// Must use `global` or `self` instead of `window` to work in both frames and web
-// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.
-
-/* globals self */
-var scope = typeof global !== "undefined" ? global : self;
-var BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;
-
-// MutationObservers are desirable because they have high priority and work
-// reliably everywhere they are implemented.
-// They are implemented in all modern browsers.
-//
-// - Android 4-4.3
-// - Chrome 26-34
-// - Firefox 14-29
-// - Internet Explorer 11
-// - iPad Safari 6-7.1
-// - iPhone Safari 7-7.1
-// - Safari 6-7
-if (typeof BrowserMutationObserver === "function") {
-    requestFlush = makeRequestCallFromMutationObserver(flush);
-
-// MessageChannels are desirable because they give direct access to the HTML
-// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera
-// 11-12, and in web workers in many engines.
-// Although message channels yield to any queued rendering and IO tasks, they
-// would be better than imposing the 4ms delay of timers.
-// However, they do not work reliably in Internet Explorer or Safari.
-
-// Internet Explorer 10 is the only browser that has setImmediate but does
-// not have MutationObservers.
-// Although setImmediate yields to the browser's renderer, it would be
-// preferrable to falling back to setTimeout since it does not have
-// the minimum 4ms penalty.
-// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and
-// Desktop to a lesser extent) that renders both setImmediate and
-// MessageChannel useless for the purposes of ASAP.
-// https://github.com/kriskowal/q/issues/396
-
-// Timers are implemented universally.
-// We fall back to timers in workers in most engines, and in foreground
-// contexts in the following browsers.
-// However, note that even this simple case requires nuances to operate in a
-// broad spectrum of browsers.
-//
-// - Firefox 3-13
-// - Internet Explorer 6-9
-// - iPad Safari 4.3
-// - Lynx 2.8.7
-} else {
-    requestFlush = makeRequestCallFromTimer(flush);
-}
-
-// `requestFlush` requests that the high priority event queue be flushed as
-// soon as possible.
-// This is useful to prevent an error thrown in a task from stalling the event
-// queue if the exception handled by Node.js’s
-// `process.on("uncaughtException")` or by a domain.
-rawAsap.requestFlush = requestFlush;
-
-// To request a high priority event, we induce a mutation observer by toggling
-// the text of a text node between "1" and "-1".
-function makeRequestCallFromMutationObserver(callback) {
-    var toggle = 1;
-    var observer = new BrowserMutationObserver(callback);
-    var node = document.createTextNode("");
-    observer.observe(node, {characterData: true});
-    return function requestCall() {
-        toggle = -toggle;
-        node.data = toggle;
-    };
-}
-
-// The message channel technique was discovered by Malte Ubl and was the
-// original foundation for this library.
-// http://www.nonblocking.io/2011/06/windownexttick.html
-
-// Safari 6.0.5 (at least) intermittently fails to create message ports on a
-// page's first load. Thankfully, this version of Safari supports
-// MutationObservers, so we don't need to fall back in that case.
-
-// function makeRequestCallFromMessageChannel(callback) {
-//     var channel = new MessageChannel();
-//     channel.port1.onmessage = callback;
-//     return function requestCall() {
-//         channel.port2.postMessage(0);
-//     };
-// }
-
-// For reasons explained above, we are also unable to use `setImmediate`
-// under any circumstances.
-// Even if we were, there is another bug in Internet Explorer 10.
-// It is not sufficient to assign `setImmediate` to `requestFlush` because
-// `setImmediate` must be called *by name* and therefore must be wrapped in a
-// closure.
-// Never forget.
-
-// function makeRequestCallFromSetImmediate(callback) {
-//     return function requestCall() {
-//         setImmediate(callback);
-//     };
-// }
-
-// Safari 6.0 has a problem where timers will get lost while the user is
-// scrolling. This problem does not impact ASAP because Safari 6.0 supports
-// mutation observers, so that implementation is used instead.
-// However, if we ever elect to use timers in Safari, the prevalent work-around
-// is to add a scroll event listener that calls for a flush.
-
-// `setTimeout` does not call the passed callback if the delay is less than
-// approximately 7 in web workers in Firefox 8 through 18, and sometimes not
-// even then.
-
-function makeRequestCallFromTimer(callback) {
-    return function requestCall() {
-        // We dispatch a timeout with a specified delay of 0 for engines that
-        // can reliably accommodate that request. This will usually be snapped
-        // to a 4 milisecond delay, but once we're flushing, there's no delay
-        // between events.
-        var timeoutHandle = setTimeout(handleTimer, 0);
-        // However, since this timer gets frequently dropped in Firefox
-        // workers, we enlist an interval handle that will try to fire
-        // an event 20 times per second until it succeeds.
-        var intervalHandle = setInterval(handleTimer, 50);
-
-        function handleTimer() {
-            // Whichever timer succeeds will cancel both timers and
-            // execute the callback.
-            clearTimeout(timeoutHandle);
-            clearInterval(intervalHandle);
-            callback();
-        }
-    };
-}
-
-// This is for `asap.js` only.
-// Its name will be periodically randomized to break any code that depends on
-// its existence.
-rawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;
-
-// ASAP was originally a nextTick shim included in Q. This was factored out
-// into this ASAP package. It was later adapted to RSVP which made further
-// amendments. These decisions, particularly to marginalize MessageChannel and
-// to capture the MutationObserver implementation in a closure, were integrated
-// back into ASAP proper.
-// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asap/package.json
----------------------------------------------------------------------
diff --git a/node_modules/asap/package.json b/node_modules/asap/package.json
deleted file mode 100644
index 6d5ce47..0000000
--- a/node_modules/asap/package.json
+++ /dev/null
@@ -1,125 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "asap@^2.0.3",
-        "scope": null,
-        "escapedName": "asap",
-        "name": "asap",
-        "rawSpec": "^2.0.3",
-        "spec": ">=2.0.3 <3.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/nunjucks"
-    ]
-  ],
-  "_from": "asap@>=2.0.3 <3.0.0",
-  "_id": "asap@2.0.5",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/asap",
-  "_nodeVersion": "0.10.32",
-  "_npmOperationalInternal": {
-    "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/asap-2.0.5.tgz_1474846549990_0.794441896257922"
-  },
-  "_npmUser": {
-    "name": "kriskowal",
-    "email": "kris.kowal@cixar.com"
-  },
-  "_npmVersion": "2.14.7",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "asap@^2.0.3",
-    "scope": null,
-    "escapedName": "asap",
-    "name": "asap",
-    "rawSpec": "^2.0.3",
-    "spec": ">=2.0.3 <3.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/nunjucks"
-  ],
-  "_resolved": "https://registry.npmjs.org/asap/-/asap-2.0.5.tgz",
-  "_shasum": "522765b50c3510490e52d7dcfe085ef9ba96958f",
-  "_shrinkwrap": null,
-  "_spec": "asap@^2.0.3",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/nunjucks",
-  "browser": {
-    "./asap": "./browser-asap.js",
-    "./asap.js": "./browser-asap.js",
-    "./raw": "./browser-raw.js",
-    "./raw.js": "./browser-raw.js",
-    "./test/domain.js": "./test/browser-domain.js"
-  },
-  "bugs": {
-    "url": "https://github.com/kriskowal/asap/issues"
-  },
-  "dependencies": {},
-  "description": "High-priority task queue for Node.js and browsers",
-  "devDependencies": {
-    "benchmark": "^1.0.0",
-    "events": "^1.0.1",
-    "jshint": "^2.5.1",
-    "knox": "^0.8.10",
-    "mr": "^2.0.5",
-    "opener": "^1.3.0",
-    "q": "^2.0.3",
-    "q-io": "^2.0.3",
-    "saucelabs": "^0.1.1",
-    "wd": "^0.2.21",
-    "weak-map": "^1.0.5"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "522765b50c3510490e52d7dcfe085ef9ba96958f",
-    "tarball": "https://registry.npmjs.org/asap/-/asap-2.0.5.tgz"
-  },
-  "files": [
-    "raw.js",
-    "asap.js",
-    "browser-raw.js",
-    "browser-asap.js"
-  ],
-  "gitHead": "e7f3d29eed4967ecfcaddbfc9542e2ee12b76227",
-  "homepage": "https://github.com/kriskowal/asap#readme",
-  "keywords": [
-    "event",
-    "task",
-    "queue"
-  ],
-  "license": "MIT",
-  "main": "./asap.js",
-  "maintainers": [
-    {
-      "name": "kriskowal",
-      "email": "kris.kowal@cixar.com"
-    },
-    {
-      "name": "forbeslindesay",
-      "email": "forbes@lindesay.co.uk"
-    }
-  ],
-  "name": "asap",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/kriskowal/asap.git"
-  },
-  "scripts": {
-    "benchmarks": "node benchmarks",
-    "lint": "jshint raw.js asap.js browser-raw.js browser-asap.js $(find scripts -name '*.js' | grep -v gauntlet)",
-    "test": "npm run lint && npm run test-node",
-    "test-browser": "node scripts/publish-bundle.js test/asap-test.js | xargs opener",
-    "test-node": "node test/asap-test.js",
-    "test-publish": "node scripts/publish-bundle.js test/asap-test.js | pbcopy",
-    "test-saucelabs": "node scripts/saucelabs.js test/asap-test.js scripts/saucelabs-spot-configurations.json",
-    "test-saucelabs-all": "node scripts/saucelabs.js test/asap-test.js scripts/saucelabs-all-configurations.json",
-    "test-saucelabs-worker": "node scripts/saucelabs-worker-test.js scripts/saucelabs-spot-configurations.json",
-    "test-saucelabs-worker-all": "node scripts/saucelabs-worker-test.js scripts/saucelabs-all-configurations.json",
-    "test-travis": "npm run lint && npm run test-node && npm run test-saucelabs && npm run test-saucelabs-worker"
-  },
-  "version": "2.0.5"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asap/raw.js
----------------------------------------------------------------------
diff --git a/node_modules/asap/raw.js b/node_modules/asap/raw.js
deleted file mode 100644
index ae3b892..0000000
--- a/node_modules/asap/raw.js
+++ /dev/null
@@ -1,101 +0,0 @@
-"use strict";
-
-var domain; // The domain module is executed on demand
-var hasSetImmediate = typeof setImmediate === "function";
-
-// Use the fastest means possible to execute a task in its own turn, with
-// priority over other events including network IO events in Node.js.
-//
-// An exception thrown by a task will permanently interrupt the processing of
-// subsequent tasks. The higher level `asap` function ensures that if an
-// exception is thrown by a task, that the task queue will continue flushing as
-// soon as possible, but if you use `rawAsap` directly, you are responsible to
-// either ensure that no exceptions are thrown from your task, or to manually
-// call `rawAsap.requestFlush` if an exception is thrown.
-module.exports = rawAsap;
-function rawAsap(task) {
-    if (!queue.length) {
-        requestFlush();
-        flushing = true;
-    }
-    // Avoids a function call
-    queue[queue.length] = task;
-}
-
-var queue = [];
-// Once a flush has been requested, no further calls to `requestFlush` are
-// necessary until the next `flush` completes.
-var flushing = false;
-// The position of the next task to execute in the task queue. This is
-// preserved between calls to `flush` so that it can be resumed if
-// a task throws an exception.
-var index = 0;
-// If a task schedules additional tasks recursively, the task queue can grow
-// unbounded. To prevent memory excaustion, the task queue will periodically
-// truncate already-completed tasks.
-var capacity = 1024;
-
-// The flush function processes all tasks that have been scheduled with
-// `rawAsap` unless and until one of those tasks throws an exception.
-// If a task throws an exception, `flush` ensures that its state will remain
-// consistent and will resume where it left off when called again.
-// However, `flush` does not make any arrangements to be called again if an
-// exception is thrown.
-function flush() {
-    while (index < queue.length) {
-        var currentIndex = index;
-        // Advance the index before calling the task. This ensures that we will
-        // begin flushing on the next task the task throws an error.
-        index = index + 1;
-        queue[currentIndex].call();
-        // Prevent leaking memory for long chains of recursive calls to `asap`.
-        // If we call `asap` within tasks scheduled by `asap`, the queue will
-        // grow, but to avoid an O(n) walk for every task we execute, we don't
-        // shift tasks off the queue after they have been executed.
-        // Instead, we periodically shift 1024 tasks off the queue.
-        if (index > capacity) {
-            // Manually shift all values starting at the index back to the
-            // beginning of the queue.
-            for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {
-                queue[scan] = queue[scan + index];
-            }
-            queue.length -= index;
-            index = 0;
-        }
-    }
-    queue.length = 0;
-    index = 0;
-    flushing = false;
-}
-
-rawAsap.requestFlush = requestFlush;
-function requestFlush() {
-    // Ensure flushing is not bound to any domain.
-    // It is not sufficient to exit the domain, because domains exist on a stack.
-    // To execute code outside of any domain, the following dance is necessary.
-    var parentDomain = process.domain;
-    if (parentDomain) {
-        if (!domain) {
-            // Lazy execute the domain module.
-            // Only employed if the user elects to use domains.
-            domain = require("domain");
-        }
-        domain.active = process.domain = null;
-    }
-
-    // `setImmediate` is slower that `process.nextTick`, but `process.nextTick`
-    // cannot handle recursion.
-    // `requestFlush` will only be called recursively from `asap.js`, to resume
-    // flushing after an error is thrown into a domain.
-    // Conveniently, `setImmediate` was introduced in the same version
-    // `process.nextTick` started throwing recursion errors.
-    if (flushing && hasSetImmediate) {
-        setImmediate(flush);
-    } else {
-        process.nextTick(flush);
-    }
-
-    if (parentDomain) {
-        domain.active = process.domain = parentDomain;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asn1/.npmignore
----------------------------------------------------------------------
diff --git a/node_modules/asn1/.npmignore b/node_modules/asn1/.npmignore
deleted file mode 100644
index eb03e3e..0000000
--- a/node_modules/asn1/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-node_modules
-*.log

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asn1/.travis.yml
----------------------------------------------------------------------
diff --git a/node_modules/asn1/.travis.yml b/node_modules/asn1/.travis.yml
deleted file mode 100644
index 09d3ef3..0000000
--- a/node_modules/asn1/.travis.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-language: node_js
-node_js:
-  - 0.8
-  - 0.10

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asn1/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/asn1/LICENSE b/node_modules/asn1/LICENSE
deleted file mode 100644
index 9b5dcdb..0000000
--- a/node_modules/asn1/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2011 Mark Cavage, 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

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asn1/README.md
----------------------------------------------------------------------
diff --git a/node_modules/asn1/README.md b/node_modules/asn1/README.md
deleted file mode 100644
index 7cebf7a..0000000
--- a/node_modules/asn1/README.md
+++ /dev/null
@@ -1,50 +0,0 @@
-node-asn1 is a library for encoding and decoding ASN.1 datatypes in pure JS.
-Currently BER encoding is supported; at some point I'll likely have to do DER.
-
-## Usage
-
-Mostly, if you're *actually* needing to read and write ASN.1, you probably don't
-need this readme to explain what and why.  If you have no idea what ASN.1 is,
-see this: ftp://ftp.rsa.com/pub/pkcs/ascii/layman.asc
-
-The source is pretty much self-explanatory, and has read/write methods for the
-common types out there.
-
-### Decoding
-
-The following reads an ASN.1 sequence with a boolean.
-
-    var Ber = require('asn1').Ber;
-
-    var reader = new Ber.Reader(new Buffer([0x30, 0x03, 0x01, 0x01, 0xff]));
-
-    reader.readSequence();
-    console.log('Sequence len: ' + reader.length);
-    if (reader.peek() === Ber.Boolean)
-      console.log(reader.readBoolean());
-
-### Encoding
-
-The following generates the same payload as above.
-
-    var Ber = require('asn1').Ber;
-
-    var writer = new Ber.Writer();
-
-    writer.startSequence();
-    writer.writeBoolean(true);
-    writer.endSequence();
-
-    console.log(writer.buffer);
-
-## Installation
-
-    npm install asn1
-
-## License
-
-MIT.
-
-## Bugs
-
-See <https://github.com/mcavage/node-asn1/issues>.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asn1/lib/ber/errors.js
----------------------------------------------------------------------
diff --git a/node_modules/asn1/lib/ber/errors.js b/node_modules/asn1/lib/ber/errors.js
deleted file mode 100644
index ff21d4f..0000000
--- a/node_modules/asn1/lib/ber/errors.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright 2011 Mark Cavage <mc...@gmail.com> All rights reserved.
-
-
-module.exports = {
-
-  newInvalidAsn1Error: function(msg) {
-    var e = new Error();
-    e.name = 'InvalidAsn1Error';
-    e.message = msg || '';
-    return e;
-  }
-
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asn1/lib/ber/index.js
----------------------------------------------------------------------
diff --git a/node_modules/asn1/lib/ber/index.js b/node_modules/asn1/lib/ber/index.js
deleted file mode 100644
index 4fb90ae..0000000
--- a/node_modules/asn1/lib/ber/index.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright 2011 Mark Cavage <mc...@gmail.com> All rights reserved.
-
-var errors = require('./errors');
-var types = require('./types');
-
-var Reader = require('./reader');
-var Writer = require('./writer');
-
-
-///--- Exports
-
-module.exports = {
-
-  Reader: Reader,
-
-  Writer: Writer
-
-};
-
-for (var t in types) {
-  if (types.hasOwnProperty(t))
-    module.exports[t] = types[t];
-}
-for (var e in errors) {
-  if (errors.hasOwnProperty(e))
-    module.exports[e] = errors[e];
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asn1/lib/ber/reader.js
----------------------------------------------------------------------
diff --git a/node_modules/asn1/lib/ber/reader.js b/node_modules/asn1/lib/ber/reader.js
deleted file mode 100644
index 0a00e98..0000000
--- a/node_modules/asn1/lib/ber/reader.js
+++ /dev/null
@@ -1,261 +0,0 @@
-// Copyright 2011 Mark Cavage <mc...@gmail.com> All rights reserved.
-
-var assert = require('assert');
-
-var ASN1 = require('./types');
-var errors = require('./errors');
-
-
-///--- Globals
-
-var newInvalidAsn1Error = errors.newInvalidAsn1Error;
-
-
-
-///--- API
-
-function Reader(data) {
-  if (!data || !Buffer.isBuffer(data))
-    throw new TypeError('data must be a node Buffer');
-
-  this._buf = data;
-  this._size = data.length;
-
-  // These hold the "current" state
-  this._len = 0;
-  this._offset = 0;
-}
-
-Object.defineProperty(Reader.prototype, 'length', {
-  enumerable: true,
-  get: function () { return (this._len); }
-});
-
-Object.defineProperty(Reader.prototype, 'offset', {
-  enumerable: true,
-  get: function () { return (this._offset); }
-});
-
-Object.defineProperty(Reader.prototype, 'remain', {
-  get: function () { return (this._size - this._offset); }
-});
-
-Object.defineProperty(Reader.prototype, 'buffer', {
-  get: function () { return (this._buf.slice(this._offset)); }
-});
-
-
-/**
- * Reads a single byte and advances offset; you can pass in `true` to make this
- * a "peek" operation (i.e., get the byte, but don't advance the offset).
- *
- * @param {Boolean} peek true means don't move offset.
- * @return {Number} the next byte, null if not enough data.
- */
-Reader.prototype.readByte = function(peek) {
-  if (this._size - this._offset < 1)
-    return null;
-
-  var b = this._buf[this._offset] & 0xff;
-
-  if (!peek)
-    this._offset += 1;
-
-  return b;
-};
-
-
-Reader.prototype.peek = function() {
-  return this.readByte(true);
-};
-
-
-/**
- * Reads a (potentially) variable length off the BER buffer.  This call is
- * not really meant to be called directly, as callers have to manipulate
- * the internal buffer afterwards.
- *
- * As a result of this call, you can call `Reader.length`, until the
- * next thing called that does a readLength.
- *
- * @return {Number} the amount of offset to advance the buffer.
- * @throws {InvalidAsn1Error} on bad ASN.1
- */
-Reader.prototype.readLength = function(offset) {
-  if (offset === undefined)
-    offset = this._offset;
-
-  if (offset >= this._size)
-    return null;
-
-  var lenB = this._buf[offset++] & 0xff;
-  if (lenB === null)
-    return null;
-
-  if ((lenB & 0x80) == 0x80) {
-    lenB &= 0x7f;
-
-    if (lenB == 0)
-      throw newInvalidAsn1Error('Indefinite length not supported');
-
-    if (lenB > 4)
-      throw newInvalidAsn1Error('encoding too long');
-
-    if (this._size - offset < lenB)
-      return null;
-
-    this._len = 0;
-    for (var i = 0; i < lenB; i++)
-      this._len = (this._len << 8) + (this._buf[offset++] & 0xff);
-
-  } else {
-    // Wasn't a variable length
-    this._len = lenB;
-  }
-
-  return offset;
-};
-
-
-/**
- * Parses the next sequence in this BER buffer.
- *
- * To get the length of the sequence, call `Reader.length`.
- *
- * @return {Number} the sequence's tag.
- */
-Reader.prototype.readSequence = function(tag) {
-  var seq = this.peek();
-  if (seq === null)
-    return null;
-  if (tag !== undefined && tag !== seq)
-    throw newInvalidAsn1Error('Expected 0x' + tag.toString(16) +
-                              ': got 0x' + seq.toString(16));
-
-  var o = this.readLength(this._offset + 1); // stored in `length`
-  if (o === null)
-    return null;
-
-  this._offset = o;
-  return seq;
-};
-
-
-Reader.prototype.readInt = function() {
-  return this._readTag(ASN1.Integer);
-};
-
-
-Reader.prototype.readBoolean = function() {
-  return (this._readTag(ASN1.Boolean) === 0 ? false : true);
-};
-
-
-Reader.prototype.readEnumeration = function() {
-  return this._readTag(ASN1.Enumeration);
-};
-
-
-Reader.prototype.readString = function(tag, retbuf) {
-  if (!tag)
-    tag = ASN1.OctetString;
-
-  var b = this.peek();
-  if (b === null)
-    return null;
-
-  if (b !== tag)
-    throw newInvalidAsn1Error('Expected 0x' + tag.toString(16) +
-                              ': got 0x' + b.toString(16));
-
-  var o = this.readLength(this._offset + 1); // stored in `length`
-
-  if (o === null)
-    return null;
-
-  if (this.length > this._size - o)
-    return null;
-
-  this._offset = o;
-
-  if (this.length === 0)
-    return retbuf ? new Buffer(0) : '';
-
-  var str = this._buf.slice(this._offset, this._offset + this.length);
-  this._offset += this.length;
-
-  return retbuf ? str : str.toString('utf8');
-};
-
-Reader.prototype.readOID = function(tag) {
-  if (!tag)
-    tag = ASN1.OID;
-
-  var b = this.readString(tag, true);
-  if (b === null)
-    return null;
-
-  var values = [];
-  var value = 0;
-
-  for (var i = 0; i < b.length; i++) {
-    var byte = b[i] & 0xff;
-
-    value <<= 7;
-    value += byte & 0x7f;
-    if ((byte & 0x80) == 0) {
-      values.push(value);
-      value = 0;
-    }
-  }
-
-  value = values.shift();
-  values.unshift(value % 40);
-  values.unshift((value / 40) >> 0);
-
-  return values.join('.');
-};
-
-
-Reader.prototype._readTag = function(tag) {
-  assert.ok(tag !== undefined);
-
-  var b = this.peek();
-
-  if (b === null)
-    return null;
-
-  if (b !== tag)
-    throw newInvalidAsn1Error('Expected 0x' + tag.toString(16) +
-                              ': got 0x' + b.toString(16));
-
-  var o = this.readLength(this._offset + 1); // stored in `length`
-  if (o === null)
-    return null;
-
-  if (this.length > 4)
-    throw newInvalidAsn1Error('Integer too long: ' + this.length);
-
-  if (this.length > this._size - o)
-    return null;
-  this._offset = o;
-
-  var fb = this._buf[this._offset];
-  var value = 0;
-
-  for (var i = 0; i < this.length; i++) {
-    value <<= 8;
-    value |= (this._buf[this._offset++] & 0xff);
-  }
-
-  if ((fb & 0x80) == 0x80 && i !== 4)
-    value -= (1 << (i * 8));
-
-  return value >> 0;
-};
-
-
-
-///--- Exported API
-
-module.exports = Reader;

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asn1/lib/ber/types.js
----------------------------------------------------------------------
diff --git a/node_modules/asn1/lib/ber/types.js b/node_modules/asn1/lib/ber/types.js
deleted file mode 100644
index 8aea000..0000000
--- a/node_modules/asn1/lib/ber/types.js
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2011 Mark Cavage <mc...@gmail.com> All rights reserved.
-
-
-module.exports = {
-  EOC: 0,
-  Boolean: 1,
-  Integer: 2,
-  BitString: 3,
-  OctetString: 4,
-  Null: 5,
-  OID: 6,
-  ObjectDescriptor: 7,
-  External: 8,
-  Real: 9, // float
-  Enumeration: 10,
-  PDV: 11,
-  Utf8String: 12,
-  RelativeOID: 13,
-  Sequence: 16,
-  Set: 17,
-  NumericString: 18,
-  PrintableString: 19,
-  T61String: 20,
-  VideotexString: 21,
-  IA5String: 22,
-  UTCTime: 23,
-  GeneralizedTime: 24,
-  GraphicString: 25,
-  VisibleString: 26,
-  GeneralString: 28,
-  UniversalString: 29,
-  CharacterString: 30,
-  BMPString: 31,
-  Constructor: 32,
-  Context: 128
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asn1/lib/ber/writer.js
----------------------------------------------------------------------
diff --git a/node_modules/asn1/lib/ber/writer.js b/node_modules/asn1/lib/ber/writer.js
deleted file mode 100644
index d9d99af..0000000
--- a/node_modules/asn1/lib/ber/writer.js
+++ /dev/null
@@ -1,316 +0,0 @@
-// Copyright 2011 Mark Cavage <mc...@gmail.com> All rights reserved.
-
-var assert = require('assert');
-var ASN1 = require('./types');
-var errors = require('./errors');
-
-
-///--- Globals
-
-var newInvalidAsn1Error = errors.newInvalidAsn1Error;
-
-var DEFAULT_OPTS = {
-  size: 1024,
-  growthFactor: 8
-};
-
-
-///--- Helpers
-
-function merge(from, to) {
-  assert.ok(from);
-  assert.equal(typeof(from), 'object');
-  assert.ok(to);
-  assert.equal(typeof(to), 'object');
-
-  var keys = Object.getOwnPropertyNames(from);
-  keys.forEach(function(key) {
-    if (to[key])
-      return;
-
-    var value = Object.getOwnPropertyDescriptor(from, key);
-    Object.defineProperty(to, key, value);
-  });
-
-  return to;
-}
-
-
-
-///--- API
-
-function Writer(options) {
-  options = merge(DEFAULT_OPTS, options || {});
-
-  this._buf = new Buffer(options.size || 1024);
-  this._size = this._buf.length;
-  this._offset = 0;
-  this._options = options;
-
-  // A list of offsets in the buffer where we need to insert
-  // sequence tag/len pairs.
-  this._seq = [];
-}
-
-Object.defineProperty(Writer.prototype, 'buffer', {
-  get: function () {
-    if (this._seq.length)
-      throw new InvalidAsn1Error(this._seq.length + ' unended sequence(s)');
-
-    return (this._buf.slice(0, this._offset));
-  }
-});
-
-Writer.prototype.writeByte = function(b) {
-  if (typeof(b) !== 'number')
-    throw new TypeError('argument must be a Number');
-
-  this._ensure(1);
-  this._buf[this._offset++] = b;
-};
-
-
-Writer.prototype.writeInt = function(i, tag) {
-  if (typeof(i) !== 'number')
-    throw new TypeError('argument must be a Number');
-  if (typeof(tag) !== 'number')
-    tag = ASN1.Integer;
-
-  var sz = 4;
-
-  while ((((i & 0xff800000) === 0) || ((i & 0xff800000) === 0xff800000 >> 0)) &&
-         (sz > 1)) {
-    sz--;
-    i <<= 8;
-  }
-
-  if (sz > 4)
-    throw new InvalidAsn1Error('BER ints cannot be > 0xffffffff');
-
-  this._ensure(2 + sz);
-  this._buf[this._offset++] = tag;
-  this._buf[this._offset++] = sz;
-
-  while (sz-- > 0) {
-    this._buf[this._offset++] = ((i & 0xff000000) >>> 24);
-    i <<= 8;
-  }
-
-};
-
-
-Writer.prototype.writeNull = function() {
-  this.writeByte(ASN1.Null);
-  this.writeByte(0x00);
-};
-
-
-Writer.prototype.writeEnumeration = function(i, tag) {
-  if (typeof(i) !== 'number')
-    throw new TypeError('argument must be a Number');
-  if (typeof(tag) !== 'number')
-    tag = ASN1.Enumeration;
-
-  return this.writeInt(i, tag);
-};
-
-
-Writer.prototype.writeBoolean = function(b, tag) {
-  if (typeof(b) !== 'boolean')
-    throw new TypeError('argument must be a Boolean');
-  if (typeof(tag) !== 'number')
-    tag = ASN1.Boolean;
-
-  this._ensure(3);
-  this._buf[this._offset++] = tag;
-  this._buf[this._offset++] = 0x01;
-  this._buf[this._offset++] = b ? 0xff : 0x00;
-};
-
-
-Writer.prototype.writeString = function(s, tag) {
-  if (typeof(s) !== 'string')
-    throw new TypeError('argument must be a string (was: ' + typeof(s) + ')');
-  if (typeof(tag) !== 'number')
-    tag = ASN1.OctetString;
-
-  var len = Buffer.byteLength(s);
-  this.writeByte(tag);
-  this.writeLength(len);
-  if (len) {
-    this._ensure(len);
-    this._buf.write(s, this._offset);
-    this._offset += len;
-  }
-};
-
-
-Writer.prototype.writeBuffer = function(buf, tag) {
-  if (typeof(tag) !== 'number')
-    throw new TypeError('tag must be a number');
-  if (!Buffer.isBuffer(buf))
-    throw new TypeError('argument must be a buffer');
-
-  this.writeByte(tag);
-  this.writeLength(buf.length);
-  this._ensure(buf.length);
-  buf.copy(this._buf, this._offset, 0, buf.length);
-  this._offset += buf.length;
-};
-
-
-Writer.prototype.writeStringArray = function(strings) {
-  if ((!strings instanceof Array))
-    throw new TypeError('argument must be an Array[String]');
-
-  var self = this;
-  strings.forEach(function(s) {
-    self.writeString(s);
-  });
-};
-
-// This is really to solve DER cases, but whatever for now
-Writer.prototype.writeOID = function(s, tag) {
-  if (typeof(s) !== 'string')
-    throw new TypeError('argument must be a string');
-  if (typeof(tag) !== 'number')
-    tag = ASN1.OID;
-
-  if (!/^([0-9]+\.){3,}[0-9]+$/.test(s))
-    throw new Error('argument is not a valid OID string');
-
-  function encodeOctet(bytes, octet) {
-    if (octet < 128) {
-        bytes.push(octet);
-    } else if (octet < 16384) {
-        bytes.push((octet >>> 7) | 0x80);
-        bytes.push(octet & 0x7F);
-    } else if (octet < 2097152) {
-      bytes.push((octet >>> 14) | 0x80);
-      bytes.push(((octet >>> 7) | 0x80) & 0xFF);
-      bytes.push(octet & 0x7F);
-    } else if (octet < 268435456) {
-      bytes.push((octet >>> 21) | 0x80);
-      bytes.push(((octet >>> 14) | 0x80) & 0xFF);
-      bytes.push(((octet >>> 7) | 0x80) & 0xFF);
-      bytes.push(octet & 0x7F);
-    } else {
-      bytes.push(((octet >>> 28) | 0x80) & 0xFF);
-      bytes.push(((octet >>> 21) | 0x80) & 0xFF);
-      bytes.push(((octet >>> 14) | 0x80) & 0xFF);
-      bytes.push(((octet >>> 7) | 0x80) & 0xFF);
-      bytes.push(octet & 0x7F);
-    }
-  }
-
-  var tmp = s.split('.');
-  var bytes = [];
-  bytes.push(parseInt(tmp[0], 10) * 40 + parseInt(tmp[1], 10));
-  tmp.slice(2).forEach(function(b) {
-    encodeOctet(bytes, parseInt(b, 10));
-  });
-
-  var self = this;
-  this._ensure(2 + bytes.length);
-  this.writeByte(tag);
-  this.writeLength(bytes.length);
-  bytes.forEach(function(b) {
-    self.writeByte(b);
-  });
-};
-
-
-Writer.prototype.writeLength = function(len) {
-  if (typeof(len) !== 'number')
-    throw new TypeError('argument must be a Number');
-
-  this._ensure(4);
-
-  if (len <= 0x7f) {
-    this._buf[this._offset++] = len;
-  } else if (len <= 0xff) {
-    this._buf[this._offset++] = 0x81;
-    this._buf[this._offset++] = len;
-  } else if (len <= 0xffff) {
-    this._buf[this._offset++] = 0x82;
-    this._buf[this._offset++] = len >> 8;
-    this._buf[this._offset++] = len;
-  } else if (len <= 0xffffff) {
-    this._buf[this._offset++] = 0x83;
-    this._buf[this._offset++] = len >> 16;
-    this._buf[this._offset++] = len >> 8;
-    this._buf[this._offset++] = len;
-  } else {
-    throw new InvalidAsn1ERror('Length too long (> 4 bytes)');
-  }
-};
-
-Writer.prototype.startSequence = function(tag) {
-  if (typeof(tag) !== 'number')
-    tag = ASN1.Sequence | ASN1.Constructor;
-
-  this.writeByte(tag);
-  this._seq.push(this._offset);
-  this._ensure(3);
-  this._offset += 3;
-};
-
-
-Writer.prototype.endSequence = function() {
-  var seq = this._seq.pop();
-  var start = seq + 3;
-  var len = this._offset - start;
-
-  if (len <= 0x7f) {
-    this._shift(start, len, -2);
-    this._buf[seq] = len;
-  } else if (len <= 0xff) {
-    this._shift(start, len, -1);
-    this._buf[seq] = 0x81;
-    this._buf[seq + 1] = len;
-  } else if (len <= 0xffff) {
-    this._buf[seq] = 0x82;
-    this._buf[seq + 1] = len >> 8;
-    this._buf[seq + 2] = len;
-  } else if (len <= 0xffffff) {
-    this._shift(start, len, 1);
-    this._buf[seq] = 0x83;
-    this._buf[seq + 1] = len >> 16;
-    this._buf[seq + 2] = len >> 8;
-    this._buf[seq + 3] = len;
-  } else {
-    throw new InvalidAsn1Error('Sequence too long');
-  }
-};
-
-
-Writer.prototype._shift = function(start, len, shift) {
-  assert.ok(start !== undefined);
-  assert.ok(len !== undefined);
-  assert.ok(shift);
-
-  this._buf.copy(this._buf, start + shift, start, start + len);
-  this._offset += shift;
-};
-
-Writer.prototype._ensure = function(len) {
-  assert.ok(len);
-
-  if (this._size - this._offset < len) {
-    var sz = this._size * this._options.growthFactor;
-    if (sz - this._offset < len)
-      sz += len;
-
-    var buf = new Buffer(sz);
-
-    this._buf.copy(buf, 0, 0, this._offset);
-    this._buf = buf;
-    this._size = sz;
-  }
-};
-
-
-
-///--- Exported API
-
-module.exports = Writer;

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asn1/lib/index.js
----------------------------------------------------------------------
diff --git a/node_modules/asn1/lib/index.js b/node_modules/asn1/lib/index.js
deleted file mode 100644
index d1766e7..0000000
--- a/node_modules/asn1/lib/index.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2011 Mark Cavage <mc...@gmail.com> All rights reserved.
-
-// If you have no idea what ASN.1 or BER is, see this:
-// ftp://ftp.rsa.com/pub/pkcs/ascii/layman.asc
-
-var Ber = require('./ber/index');
-
-
-
-///--- Exported API
-
-module.exports = {
-
-  Ber: Ber,
-
-  BerReader: Ber.Reader,
-
-  BerWriter: Ber.Writer
-
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asn1/package.json
----------------------------------------------------------------------
diff --git a/node_modules/asn1/package.json b/node_modules/asn1/package.json
deleted file mode 100644
index 375ab79..0000000
--- a/node_modules/asn1/package.json
+++ /dev/null
@@ -1,99 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "asn1@~0.2.3",
-        "scope": null,
-        "escapedName": "asn1",
-        "name": "asn1",
-        "rawSpec": "~0.2.3",
-        "spec": ">=0.2.3 <0.3.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/sshpk"
-    ]
-  ],
-  "_from": "asn1@>=0.2.3 <0.3.0",
-  "_id": "asn1@0.2.3",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/asn1",
-  "_npmUser": {
-    "name": "pfmooney",
-    "email": "patrick.f.mooney@gmail.com"
-  },
-  "_npmVersion": "1.4.28",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "asn1@~0.2.3",
-    "scope": null,
-    "escapedName": "asn1",
-    "name": "asn1",
-    "rawSpec": "~0.2.3",
-    "spec": ">=0.2.3 <0.3.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/sshpk"
-  ],
-  "_resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
-  "_shasum": "dac8787713c9966849fc8180777ebe9c1ddf3b86",
-  "_shrinkwrap": null,
-  "_spec": "asn1@~0.2.3",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/sshpk",
-  "author": {
-    "name": "Mark Cavage",
-    "email": "mcavage@gmail.com"
-  },
-  "bugs": {
-    "url": "https://github.com/mcavage/node-asn1/issues"
-  },
-  "contributors": [
-    {
-      "name": "David Gwynne",
-      "email": "loki@animata.net"
-    },
-    {
-      "name": "Yunong Xiao",
-      "email": "yunong@joyent.com"
-    },
-    {
-      "name": "Alex Wilson",
-      "email": "alex.wilson@joyent.com"
-    }
-  ],
-  "dependencies": {},
-  "description": "Contains parsers and serializers for ASN.1 (currently BER only)",
-  "devDependencies": {
-    "tap": "0.4.8"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "dac8787713c9966849fc8180777ebe9c1ddf3b86",
-    "tarball": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz"
-  },
-  "homepage": "https://github.com/mcavage/node-asn1",
-  "license": "MIT",
-  "main": "lib/index.js",
-  "maintainers": [
-    {
-      "name": "mcavage",
-      "email": "mcavage@gmail.com"
-    },
-    {
-      "name": "pfmooney",
-      "email": "patrick.f.mooney@gmail.com"
-    }
-  ],
-  "name": "asn1",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/mcavage/node-asn1.git"
-  },
-  "scripts": {
-    "test": "tap ./tst"
-  },
-  "version": "0.2.3"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asn1/tst/ber/reader.test.js
----------------------------------------------------------------------
diff --git a/node_modules/asn1/tst/ber/reader.test.js b/node_modules/asn1/tst/ber/reader.test.js
deleted file mode 100644
index 062fd7e..0000000
--- a/node_modules/asn1/tst/ber/reader.test.js
+++ /dev/null
@@ -1,208 +0,0 @@
-// Copyright 2011 Mark Cavage <mc...@gmail.com> All rights reserved.
-
-var test = require('tap').test;
-
-
-
-///--- Globals
-
-var BerReader;
-
-
-
-///--- Tests
-
-test('load library', function(t) {
-  BerReader = require('../../lib/index').BerReader;
-  t.ok(BerReader);
-  try {
-    new BerReader();
-    t.fail('Should have thrown');
-  } catch (e) {
-    t.ok(e instanceof TypeError, 'Should have been a type error');
-  }
-  t.end();
-});
-
-
-test('read byte', function(t) {
-  var reader = new BerReader(new Buffer([0xde]));
-  t.ok(reader);
-  t.equal(reader.readByte(), 0xde, 'wrong value');
-  t.end();
-});
-
-
-test('read 1 byte int', function(t) {
-  var reader = new BerReader(new Buffer([0x02, 0x01, 0x03]));
-  t.ok(reader);
-  t.equal(reader.readInt(), 0x03, 'wrong value');
-  t.equal(reader.length, 0x01, 'wrong length');
-  t.end();
-});
-
-
-test('read 2 byte int', function(t) {
-  var reader = new BerReader(new Buffer([0x02, 0x02, 0x7e, 0xde]));
-  t.ok(reader);
-  t.equal(reader.readInt(), 0x7ede, 'wrong value');
-  t.equal(reader.length, 0x02, 'wrong length');
-  t.end();
-});
-
-
-test('read 3 byte int', function(t) {
-  var reader = new BerReader(new Buffer([0x02, 0x03, 0x7e, 0xde, 0x03]));
-  t.ok(reader);
-  t.equal(reader.readInt(), 0x7ede03, 'wrong value');
-  t.equal(reader.length, 0x03, 'wrong length');
-  t.end();
-});
-
-
-test('read 4 byte int', function(t) {
-  var reader = new BerReader(new Buffer([0x02, 0x04, 0x7e, 0xde, 0x03, 0x01]));
-  t.ok(reader);
-  t.equal(reader.readInt(), 0x7ede0301, 'wrong value');
-  t.equal(reader.length, 0x04, 'wrong length');
-  t.end();
-});
-
-
-test('read 1 byte negative int', function(t) {
-  var reader = new BerReader(new Buffer([0x02, 0x01, 0xdc]));
-  t.ok(reader);
-  t.equal(reader.readInt(), -36, 'wrong value');
-  t.equal(reader.length, 0x01, 'wrong length');
-  t.end();
-});
-
-
-test('read 2 byte negative int', function(t) {
-  var reader = new BerReader(new Buffer([0x02, 0x02, 0xc0, 0x4e]));
-  t.ok(reader);
-  t.equal(reader.readInt(), -16306, 'wrong value');
-  t.equal(reader.length, 0x02, 'wrong length');
-  t.end();
-});
-
-
-test('read 3 byte negative int', function(t) {
-  var reader = new BerReader(new Buffer([0x02, 0x03, 0xff, 0x00, 0x19]));
-  t.ok(reader);
-  t.equal(reader.readInt(), -65511, 'wrong value');
-  t.equal(reader.length, 0x03, 'wrong length');
-  t.end();
-});
-
-
-test('read 4 byte negative int', function(t) {
-  var reader = new BerReader(new Buffer([0x02, 0x04, 0x91, 0x7c, 0x22, 0x1f]));
-  t.ok(reader);
-  t.equal(reader.readInt(), -1854135777, 'wrong value');
-  t.equal(reader.length, 0x04, 'wrong length');
-  t.end();
-});
-
-
-test('read boolean true', function(t) {
-  var reader = new BerReader(new Buffer([0x01, 0x01, 0xff]));
-  t.ok(reader);
-  t.equal(reader.readBoolean(), true, 'wrong value');
-  t.equal(reader.length, 0x01, 'wrong length');
-  t.end();
-});
-
-
-test('read boolean false', function(t) {
-  var reader = new BerReader(new Buffer([0x01, 0x01, 0x00]));
-  t.ok(reader);
-  t.equal(reader.readBoolean(), false, 'wrong value');
-  t.equal(reader.length, 0x01, 'wrong length');
-  t.end();
-});
-
-
-test('read enumeration', function(t) {
-  var reader = new BerReader(new Buffer([0x0a, 0x01, 0x20]));
-  t.ok(reader);
-  t.equal(reader.readEnumeration(), 0x20, 'wrong value');
-  t.equal(reader.length, 0x01, 'wrong length');
-  t.end();
-});
-
-
-test('read string', function(t) {
-  var dn = 'cn=foo,ou=unit,o=test';
-  var buf = new Buffer(dn.length + 2);
-  buf[0] = 0x04;
-  buf[1] = Buffer.byteLength(dn);
-  buf.write(dn, 2);
-  var reader = new BerReader(buf);
-  t.ok(reader);
-  t.equal(reader.readString(), dn, 'wrong value');
-  t.equal(reader.length, dn.length, 'wrong length');
-  t.end();
-});
-
-
-test('read sequence', function(t) {
-  var reader = new BerReader(new Buffer([0x30, 0x03, 0x01, 0x01, 0xff]));
-  t.ok(reader);
-  t.equal(reader.readSequence(), 0x30, 'wrong value');
-  t.equal(reader.length, 0x03, 'wrong length');
-  t.equal(reader.readBoolean(), true, 'wrong value');
-  t.equal(reader.length, 0x01, 'wrong length');
-  t.end();
-});
-
-
-test('anonymous LDAPv3 bind', function(t) {
-  var BIND = new Buffer(14);
-  BIND[0] = 0x30;  // Sequence
-  BIND[1] = 12;    // len
-  BIND[2] = 0x02;  // ASN.1 Integer
-  BIND[3] = 1;     // len
-  BIND[4] = 0x04;  // msgid (make up 4)
-  BIND[5] = 0x60;  // Bind Request
-  BIND[6] = 7;     // len
-  BIND[7] = 0x02;  // ASN.1 Integer
-  BIND[8] = 1;     // len
-  BIND[9] = 0x03;  // v3
-  BIND[10] = 0x04; // String (bind dn)
-  BIND[11] = 0;    // len
-  BIND[12] = 0x80; // ContextSpecific (choice)
-  BIND[13] = 0;    // simple bind
-
-  // Start testing ^^
-  var ber = new BerReader(BIND);
-  t.equal(ber.readSequence(), 48, 'Not an ASN.1 Sequence');
-  t.equal(ber.length, 12, 'Message length should be 12');
-  t.equal(ber.readInt(), 4, 'Message id should have been 4');
-  t.equal(ber.readSequence(), 96, 'Bind Request should have been 96');
-  t.equal(ber.length, 7, 'Bind length should have been 7');
-  t.equal(ber.readInt(), 3, 'LDAP version should have been 3');
-  t.equal(ber.readString(), '', 'Bind DN should have been empty');
-  t.equal(ber.length, 0, 'string length should have been 0');
-  t.equal(ber.readByte(), 0x80, 'Should have been ContextSpecific (choice)');
-  t.equal(ber.readByte(), 0, 'Should have been simple bind');
-  t.equal(null, ber.readByte(), 'Should be out of data');
-  t.end();
-});
-
-
-test('long string', function(t) {
-  var buf = new Buffer(256);
-  var o;
-  var s =
-    '2;649;CN=Red Hat CS 71GA Demo,O=Red Hat CS 71GA Demo,C=US;' +
-    'CN=RHCS Agent - admin01,UID=admin01,O=redhat,C=US [1] This is ' +
-    'Teena Vradmin\'s description.';
-  buf[0] = 0x04;
-  buf[1] = 0x81;
-  buf[2] = 0x94;
-  buf.write(s, 3);
-  var ber = new BerReader(buf.slice(0, 3 + s.length));
-  t.equal(ber.readString(), s);
-  t.end();
-});

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/asn1/tst/ber/writer.test.js
----------------------------------------------------------------------
diff --git a/node_modules/asn1/tst/ber/writer.test.js b/node_modules/asn1/tst/ber/writer.test.js
deleted file mode 100644
index d87cb7b..0000000
--- a/node_modules/asn1/tst/ber/writer.test.js
+++ /dev/null
@@ -1,370 +0,0 @@
-// Copyright 2011 Mark Cavage <mc...@gmail.com> All rights reserved.
-
-var test = require('tap').test;
-var sys = require('sys');
-
-///--- Globals
-
-var BerWriter;
-
-var BerReader;
-
-
-///--- Tests
-
-test('load library', function(t) {
-  BerWriter = require('../../lib/index').BerWriter;
-  t.ok(BerWriter);
-  t.ok(new BerWriter());
-  t.end();
-});
-
-
-test('write byte', function(t) {
-  var writer = new BerWriter();
-
-  writer.writeByte(0xC2);
-  var ber = writer.buffer;
-
-  t.ok(ber);
-  t.equal(ber.length, 1, 'Wrong length');
-  t.equal(ber[0], 0xC2, 'value wrong');
-
-  t.end();
-});
-
-
-test('write 1 byte int', function(t) {
-  var writer = new BerWriter();
-
-  writer.writeInt(0x7f);
-  var ber = writer.buffer;
-
-  t.ok(ber);
-  t.equal(ber.length, 3, 'Wrong length for an int: ' + ber.length);
-  t.equal(ber[0], 0x02, 'ASN.1 tag wrong (2) -> ' + ber[0]);
-  t.equal(ber[1], 0x01, 'length wrong(1) -> ' + ber[1]);
-  t.equal(ber[2], 0x7f, 'value wrong(3) -> ' + ber[2]);
-
-  t.end();
-});
-
-
-test('write 2 byte int', function(t) {
-  var writer = new BerWriter();
-
-  writer.writeInt(0x7ffe);
-  var ber = writer.buffer;
-
-  t.ok(ber);
-  t.equal(ber.length, 4, 'Wrong length for an int');
-  t.equal(ber[0], 0x02, 'ASN.1 tag wrong');
-  t.equal(ber[1], 0x02, 'length wrong');
-  t.equal(ber[2], 0x7f, 'value wrong (byte 1)');
-  t.equal(ber[3], 0xfe, 'value wrong (byte 2)');
-
-  t.end();
-});
-
-
-test('write 3 byte int', function(t) {
-  var writer = new BerWriter();
-
-  writer.writeInt(0x7ffffe);
-  var ber = writer.buffer;
-
-  t.ok(ber);
-  t.equal(ber.length, 5, 'Wrong length for an int');
-  t.equal(ber[0], 0x02, 'ASN.1 tag wrong');
-  t.equal(ber[1], 0x03, 'length wrong');
-  t.equal(ber[2], 0x7f, 'value wrong (byte 1)');
-  t.equal(ber[3], 0xff, 'value wrong (byte 2)');
-  t.equal(ber[4], 0xfe, 'value wrong (byte 3)');
-
-  t.end();
-});
-
-
-test('write 4 byte int', function(t) {
-  var writer = new BerWriter();
-
-  writer.writeInt(0x7ffffffe);
-  var ber = writer.buffer;
-
-  t.ok(ber);
-
-  t.equal(ber.length, 6, 'Wrong length for an int');
-  t.equal(ber[0], 0x02, 'ASN.1 tag wrong');
-  t.equal(ber[1], 0x04, 'length wrong');
-  t.equal(ber[2], 0x7f, 'value wrong (byte 1)');
-  t.equal(ber[3], 0xff, 'value wrong (byte 2)');
-  t.equal(ber[4], 0xff, 'value wrong (byte 3)');
-  t.equal(ber[5], 0xfe, 'value wrong (byte 4)');
-
-  t.end();
-});
-
-
-test('write 1 byte negative int', function(t) {
-  var writer = new BerWriter();
-
-  writer.writeInt(-128);
-  var ber = writer.buffer;
-
-  t.ok(ber);
-
-  t.equal(ber.length, 3, 'Wrong length for an int');
-  t.equal(ber[0], 0x02, 'ASN.1 tag wrong');
-  t.equal(ber[1], 0x01, 'length wrong');
-  t.equal(ber[2], 0x80, 'value wrong (byte 1)');
-
-  t.end();
-});
-
-
-test('write 2 byte negative int', function(t) {
-  var writer = new BerWriter();
-
-  writer.writeInt(-22400);
-  var ber = writer.buffer;
-
-  t.ok(ber);
-
-  t.equal(ber.length, 4, 'Wrong length for an int');
-  t.equal(ber[0], 0x02, 'ASN.1 tag wrong');
-  t.equal(ber[1], 0x02, 'length wrong');
-  t.equal(ber[2], 0xa8, 'value wrong (byte 1)');
-  t.equal(ber[3], 0x80, 'value wrong (byte 2)');
-
-  t.end();
-});
-
-
-test('write 3 byte negative int', function(t) {
-  var writer = new BerWriter();
-
-  writer.writeInt(-481653);
-  var ber = writer.buffer;
-
-  t.ok(ber);
-
-  t.equal(ber.length, 5, 'Wrong length for an int');
-  t.equal(ber[0], 0x02, 'ASN.1 tag wrong');
-  t.equal(ber[1], 0x03, 'length wrong');
-  t.equal(ber[2], 0xf8, 'value wrong (byte 1)');
-  t.equal(ber[3], 0xa6, 'value wrong (byte 2)');
-  t.equal(ber[4], 0x8b, 'value wrong (byte 3)');
-
-  t.end();
-});
-
-
-test('write 4 byte negative int', function(t) {
-  var writer = new BerWriter();
-
-  writer.writeInt(-1522904131);
-  var ber = writer.buffer;
-
-  t.ok(ber);
-
-  t.equal(ber.length, 6, 'Wrong length for an int');
-  t.equal(ber[0], 0x02, 'ASN.1 tag wrong');
-  t.equal(ber[1], 0x04, 'length wrong');
-  t.equal(ber[2], 0xa5, 'value wrong (byte 1)');
-  t.equal(ber[3], 0x3a, 'value wrong (byte 2)');
-  t.equal(ber[4], 0x53, 'value wrong (byte 3)');
-  t.equal(ber[5], 0xbd, 'value wrong (byte 4)');
-
-  t.end();
-});
-
-
-test('write boolean', function(t) {
-  var writer = new BerWriter();
-
-  writer.writeBoolean(true);
-  writer.writeBoolean(false);
-  var ber = writer.buffer;
-
-  t.ok(ber);
-  t.equal(ber.length, 6, 'Wrong length');
-  t.equal(ber[0], 0x01, 'tag wrong');
-  t.equal(ber[1], 0x01, 'length wrong');
-  t.equal(ber[2], 0xff, 'value wrong');
-  t.equal(ber[3], 0x01, 'tag wrong');
-  t.equal(ber[4], 0x01, 'length wrong');
-  t.equal(ber[5], 0x00, 'value wrong');
-
-  t.end();
-});
-
-
-test('write string', function(t) {
-  var writer = new BerWriter();
-  writer.writeString('hello world');
-  var ber = writer.buffer;
-
-  t.ok(ber);
-  t.equal(ber.length, 13, 'wrong length');
-  t.equal(ber[0], 0x04, 'wrong tag');
-  t.equal(ber[1], 11, 'wrong length');
-  t.equal(ber.slice(2).toString('utf8'), 'hello world', 'wrong value');
-
-  t.end();
-});
-
-test('write buffer', function(t) {
-  var writer = new BerWriter();
-  // write some stuff to start with
-  writer.writeString('hello world');
-  var ber = writer.buffer;
-  var buf = new Buffer([0x04, 0x0b, 0x30, 0x09, 0x02, 0x01, 0x0f, 0x01, 0x01,
-     0xff, 0x01, 0x01, 0xff]);
-  writer.writeBuffer(buf.slice(2, buf.length), 0x04);
-  ber = writer.buffer;
-
-  t.ok(ber);
-  t.equal(ber.length, 26, 'wrong length');
-  t.equal(ber[0], 0x04, 'wrong tag');
-  t.equal(ber[1], 11, 'wrong length');
-  t.equal(ber.slice(2, 13).toString('utf8'), 'hello world', 'wrong value');
-  t.equal(ber[13], buf[0], 'wrong tag');
-  t.equal(ber[14], buf[1], 'wrong length');
-  for (var i = 13, j = 0; i < ber.length && j < buf.length; i++, j++) {
-    t.equal(ber[i], buf[j], 'buffer contents not identical');
-  }
-  t.end();
-});
-
-test('write string array', function(t) {
-  var writer = new BerWriter();
-  writer.writeStringArray(['hello world', 'fubar!']);
-  var ber = writer.buffer;
-
-  t.ok(ber);
-
-  t.equal(ber.length, 21, 'wrong length');
-  t.equal(ber[0], 0x04, 'wrong tag');
-  t.equal(ber[1], 11, 'wrong length');
-  t.equal(ber.slice(2, 13).toString('utf8'), 'hello world', 'wrong value');
-
-  t.equal(ber[13], 0x04, 'wrong tag');
-  t.equal(ber[14], 6, 'wrong length');
-  t.equal(ber.slice(15).toString('utf8'), 'fubar!', 'wrong value');
-
-  t.end();
-});
-
-
-test('resize internal buffer', function(t) {
-  var writer = new BerWriter({size: 2});
-  writer.writeString('hello world');
-  var ber = writer.buffer;
-
-  t.ok(ber);
-  t.equal(ber.length, 13, 'wrong length');
-  t.equal(ber[0], 0x04, 'wrong tag');
-  t.equal(ber[1], 11, 'wrong length');
-  t.equal(ber.slice(2).toString('utf8'), 'hello world', 'wrong value');
-
-  t.end();
-});
-
-
-test('sequence', function(t) {
-  var writer = new BerWriter({size: 25});
-  writer.startSequence();
-  writer.writeString('hello world');
-  writer.endSequence();
-  var ber = writer.buffer;
-
-  t.ok(ber);
-  console.log(ber);
-  t.equal(ber.length, 15, 'wrong length');
-  t.equal(ber[0], 0x30, 'wrong tag');
-  t.equal(ber[1], 13, 'wrong length');
-  t.equal(ber[2], 0x04, 'wrong tag');
-  t.equal(ber[3], 11, 'wrong length');
-  t.equal(ber.slice(4).toString('utf8'), 'hello world', 'wrong value');
-
-  t.end();
-});
-
-
-test('nested sequence', function(t) {
-  var writer = new BerWriter({size: 25});
-  writer.startSequence();
-  writer.writeString('hello world');
-  writer.startSequence();
-  writer.writeString('hello world');
-  writer.endSequence();
-  writer.endSequence();
-  var ber = writer.buffer;
-
-  t.ok(ber);
-  t.equal(ber.length, 30, 'wrong length');
-  t.equal(ber[0], 0x30, 'wrong tag');
-  t.equal(ber[1], 28, 'wrong length');
-  t.equal(ber[2], 0x04, 'wrong tag');
-  t.equal(ber[3], 11, 'wrong length');
-  t.equal(ber.slice(4, 15).toString('utf8'), 'hello world', 'wrong value');
-  t.equal(ber[15], 0x30, 'wrong tag');
-  t.equal(ber[16], 13, 'wrong length');
-  t.equal(ber[17], 0x04, 'wrong tag');
-  t.equal(ber[18], 11, 'wrong length');
-  t.equal(ber.slice(19, 30).toString('utf8'), 'hello world', 'wrong value');
-
-  t.end();
-});
-
-
-test('LDAP bind message', function(t) {
-  var dn = 'cn=foo,ou=unit,o=test';
-  var writer = new BerWriter();
-  writer.startSequence();
-  writer.writeInt(3);             // msgid = 3
-  writer.startSequence(0x60);     // ldap bind
-  writer.writeInt(3);             // ldap v3
-  writer.writeString(dn);
-  writer.writeByte(0x80);
-  writer.writeByte(0x00);
-  writer.endSequence();
-  writer.endSequence();
-  var ber = writer.buffer;
-
-  t.ok(ber);
-  t.equal(ber.length, 35, 'wrong length (buffer)');
-  t.equal(ber[0], 0x30, 'wrong tag');
-  t.equal(ber[1], 33, 'wrong length');
-  t.equal(ber[2], 0x02, 'wrong tag');
-  t.equal(ber[3], 1, 'wrong length');
-  t.equal(ber[4], 0x03, 'wrong value');
-  t.equal(ber[5], 0x60, 'wrong tag');
-  t.equal(ber[6], 28, 'wrong length');
-  t.equal(ber[7], 0x02, 'wrong tag');
-  t.equal(ber[8], 1, 'wrong length');
-  t.equal(ber[9], 0x03, 'wrong value');
-  t.equal(ber[10], 0x04, 'wrong tag');
-  t.equal(ber[11], dn.length, 'wrong length');
-  t.equal(ber.slice(12, 33).toString('utf8'), dn, 'wrong value');
-  t.equal(ber[33], 0x80, 'wrong tag');
-  t.equal(ber[34], 0x00, 'wrong len');
-
-  t.end();
-});
-
-
-test('Write OID', function(t) {
-  var oid = '1.2.840.113549.1.1.1';
-  var writer = new BerWriter();
-  writer.writeOID(oid);
-
-  var ber = writer.buffer;
-  t.ok(ber);
-  console.log(require('util').inspect(ber));
-  console.log(require('util').inspect(new Buffer([0x06, 0x09, 0x2a, 0x86,
-                                                  0x48, 0x86, 0xf7, 0x0d,
-                                                  0x01, 0x01, 0x01])));
-
-  t.end();
-});

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/assert-plus/AUTHORS
----------------------------------------------------------------------
diff --git a/node_modules/assert-plus/AUTHORS b/node_modules/assert-plus/AUTHORS
deleted file mode 100644
index 1923524..0000000
--- a/node_modules/assert-plus/AUTHORS
+++ /dev/null
@@ -1,6 +0,0 @@
-Dave Eddy <da...@daveeddy.com>
-Fred Kuo <fr...@joyent.com>
-Lars-Magnus Skog <ra...@riseup.net>
-Mark Cavage <mc...@gmail.com>
-Patrick Mooney <pm...@pfmooney.com>
-Rob Gulewich <ro...@joyent.com>

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/assert-plus/CHANGES.md
----------------------------------------------------------------------
diff --git a/node_modules/assert-plus/CHANGES.md b/node_modules/assert-plus/CHANGES.md
deleted file mode 100644
index d249d9b..0000000
--- a/node_modules/assert-plus/CHANGES.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# assert-plus Changelog
-
-## 0.2.0
-
-- Fix `assert.object(null)` so it throws
-- Fix optional/arrayOf exports for non-type-of asserts
-- Add optiona/arrayOf exports for Stream/Date/Regex/uuid
-- Add basic unit test coverage

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/assert-plus/README.md
----------------------------------------------------------------------
diff --git a/node_modules/assert-plus/README.md b/node_modules/assert-plus/README.md
deleted file mode 100644
index 0b39593..0000000
--- a/node_modules/assert-plus/README.md
+++ /dev/null
@@ -1,155 +0,0 @@
-# assert-plus
-
-This library is a super small wrapper over node's assert module that has two
-things: (1) the ability to disable assertions with the environment variable
-NODE\_NDEBUG, and (2) some API wrappers for argument testing.  Like
-`assert.string(myArg, 'myArg')`.  As a simple example, most of my code looks
-like this:
-
-```javascript
-    var assert = require('assert-plus');
-
-    function fooAccount(options, callback) {
-        assert.object(options, 'options');
-        assert.number(options.id, 'options.id');
-        assert.bool(options.isManager, 'options.isManager');
-        assert.string(options.name, 'options.name');
-        assert.arrayOfString(options.email, 'options.email');
-        assert.func(callback, 'callback');
-
-        // Do stuff
-        callback(null, {});
-    }
-```
-
-# API
-
-All methods that *aren't* part of node's core assert API are simply assumed to
-take an argument, and then a string 'name' that's not a message; `AssertionError`
-will be thrown if the assertion fails with a message like:
-
-    AssertionError: foo (string) is required
-    at test (/home/mark/work/foo/foo.js:3:9)
-    at Object.<anonymous> (/home/mark/work/foo/foo.js:15:1)
-    at Module._compile (module.js:446:26)
-    at Object..js (module.js:464:10)
-    at Module.load (module.js:353:31)
-    at Function._load (module.js:311:12)
-    at Array.0 (module.js:484:10)
-    at EventEmitter._tickCallback (node.js:190:38)
-
-from:
-
-```javascript
-    function test(foo) {
-        assert.string(foo, 'foo');
-    }
-```
-
-There you go.  You can check that arrays are of a homogeneous type with `Arrayof$Type`:
-
-```javascript
-    function test(foo) {
-        assert.arrayOfString(foo, 'foo');
-    }
-```
-
-You can assert IFF an argument is not `undefined` (i.e., an optional arg):
-
-```javascript
-    assert.optionalString(foo, 'foo');
-```
-
-Lastly, you can opt-out of assertion checking altogether by setting the
-environment variable `NODE_NDEBUG=1`.  This is pseudo-useful if you have
-lots of assertions, and don't want to pay `typeof ()` taxes to v8 in
-production.  Be advised:  The standard functions re-exported from `assert` are
-also disabled in assert-plus if NDEBUG is specified.  Using them directly from
-the `assert` module avoids this behavior.
-
-The complete list of APIs is:
-
-* assert.array
-* assert.bool
-* assert.buffer
-* assert.func
-* assert.number
-* assert.object
-* assert.string
-* assert.stream
-* assert.date
-* assert.regex
-* assert.uuid
-* assert.arrayOfArray
-* assert.arrayOfBool
-* assert.arrayOfBuffer
-* assert.arrayOfFunc
-* assert.arrayOfNumber
-* assert.arrayOfObject
-* assert.arrayOfString
-* assert.arrayOfStream
-* assert.arrayOfDate
-* assert.arrayOfUuid
-* assert.optionalArray
-* assert.optionalBool
-* assert.optionalBuffer
-* assert.optionalFunc
-* assert.optionalNumber
-* assert.optionalObject
-* assert.optionalString
-* assert.optionalStream
-* assert.optionalDate
-* assert.optionalUuid
-* assert.optionalArrayOfArray
-* assert.optionalArrayOfBool
-* assert.optionalArrayOfBuffer
-* assert.optionalArrayOfFunc
-* assert.optionalArrayOfNumber
-* assert.optionalArrayOfObject
-* assert.optionalArrayOfString
-* assert.optionalArrayOfStream
-* assert.optionalArrayOfDate
-* assert.optionalArrayOfUuid
-* assert.AssertionError
-* assert.fail
-* assert.ok
-* assert.equal
-* assert.notEqual
-* assert.deepEqual
-* assert.notDeepEqual
-* assert.strictEqual
-* assert.notStrictEqual
-* assert.throws
-* assert.doesNotThrow
-* assert.ifError
-
-# Installation
-
-    npm install assert-plus
-
-## License
-
-The MIT License (MIT)
-Copyright (c) 2012 Mark Cavage
-
-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.
-
-## Bugs
-
-See <https://github.com/mcavage/node-assert-plus/issues>.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/assert-plus/assert.js
----------------------------------------------------------------------
diff --git a/node_modules/assert-plus/assert.js b/node_modules/assert-plus/assert.js
deleted file mode 100644
index 6bce4d8..0000000
--- a/node_modules/assert-plus/assert.js
+++ /dev/null
@@ -1,206 +0,0 @@
-// Copyright (c) 2012, Mark Cavage. All rights reserved.
-// Copyright 2015 Joyent, Inc.
-
-var assert = require('assert');
-var Stream = require('stream').Stream;
-var util = require('util');
-
-
-///--- Globals
-
-/* JSSTYLED */
-var UUID_REGEXP = /^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/;
-
-
-///--- Internal
-
-function _capitalize(str) {
-    return (str.charAt(0).toUpperCase() + str.slice(1));
-}
-
-function _toss(name, expected, oper, arg, actual) {
-    throw new assert.AssertionError({
-        message: util.format('%s (%s) is required', name, expected),
-        actual: (actual === undefined) ? typeof (arg) : actual(arg),
-        expected: expected,
-        operator: oper || '===',
-        stackStartFunction: _toss.caller
-    });
-}
-
-function _getClass(arg) {
-    return (Object.prototype.toString.call(arg).slice(8, -1));
-}
-
-function noop() {
-    // Why even bother with asserts?
-}
-
-
-///--- Exports
-
-var types = {
-    bool: {
-        check: function (arg) { return typeof (arg) === 'boolean'; }
-    },
-    func: {
-        check: function (arg) { return typeof (arg) === 'function'; }
-    },
-    string: {
-        check: function (arg) { return typeof (arg) === 'string'; }
-    },
-    object: {
-        check: function (arg) {
-            return typeof (arg) === 'object' && arg !== null;
-        }
-    },
-    number: {
-        check: function (arg) {
-            return typeof (arg) === 'number' && !isNaN(arg) && isFinite(arg);
-        }
-    },
-    buffer: {
-        check: function (arg) { return Buffer.isBuffer(arg); },
-        operator: 'Buffer.isBuffer'
-    },
-    array: {
-        check: function (arg) { return Array.isArray(arg); },
-        operator: 'Array.isArray'
-    },
-    stream: {
-        check: function (arg) { return arg instanceof Stream; },
-        operator: 'instanceof',
-        actual: _getClass
-    },
-    date: {
-        check: function (arg) { return arg instanceof Date; },
-        operator: 'instanceof',
-        actual: _getClass
-    },
-    regexp: {
-        check: function (arg) { return arg instanceof RegExp; },
-        operator: 'instanceof',
-        actual: _getClass
-    },
-    uuid: {
-        check: function (arg) {
-            return typeof (arg) === 'string' && UUID_REGEXP.test(arg);
-        },
-        operator: 'isUUID'
-    }
-};
-
-function _setExports(ndebug) {
-    var keys = Object.keys(types);
-    var out;
-
-    /* re-export standard assert */
-    if (process.env.NODE_NDEBUG) {
-        out = noop;
-    } else {
-        out = function (arg, msg) {
-            if (!arg) {
-                _toss(msg, 'true', arg);
-            }
-        };
-    }
-
-    /* standard checks */
-    keys.forEach(function (k) {
-        if (ndebug) {
-            out[k] = noop;
-            return;
-        }
-        var type = types[k];
-        out[k] = function (arg, msg) {
-            if (!type.check(arg)) {
-                _toss(msg, k, type.operator, arg, type.actual);
-            }
-        };
-    });
-
-    /* optional checks */
-    keys.forEach(function (k) {
-        var name = 'optional' + _capitalize(k);
-        if (ndebug) {
-            out[name] = noop;
-            return;
-        }
-        var type = types[k];
-        out[name] = function (arg, msg) {
-            if (arg === undefined || arg === null) {
-                return;
-            }
-            if (!type.check(arg)) {
-                _toss(msg, k, type.operator, arg, type.actual);
-            }
-        };
-    });
-
-    /* arrayOf checks */
-    keys.forEach(function (k) {
-        var name = 'arrayOf' + _capitalize(k);
-        if (ndebug) {
-            out[name] = noop;
-            return;
-        }
-        var type = types[k];
-        var expected = '[' + k + ']';
-        out[name] = function (arg, msg) {
-            if (!Array.isArray(arg)) {
-                _toss(msg, expected, type.operator, arg, type.actual);
-            }
-            var i;
-            for (i = 0; i < arg.length; i++) {
-                if (!type.check(arg[i])) {
-                    _toss(msg, expected, type.operator, arg, type.actual);
-                }
-            }
-        };
-    });
-
-    /* optionalArrayOf checks */
-    keys.forEach(function (k) {
-        var name = 'optionalArrayOf' + _capitalize(k);
-        if (ndebug) {
-            out[name] = noop;
-            return;
-        }
-        var type = types[k];
-        var expected = '[' + k + ']';
-        out[name] = function (arg, msg) {
-            if (arg === undefined || arg === null) {
-                return;
-            }
-            if (!Array.isArray(arg)) {
-                _toss(msg, expected, type.operator, arg, type.actual);
-            }
-            var i;
-            for (i = 0; i < arg.length; i++) {
-                if (!type.check(arg[i])) {
-                    _toss(msg, expected, type.operator, arg, type.actual);
-                }
-            }
-        };
-    });
-
-    /* re-export built-in assertions */
-    Object.keys(assert).forEach(function (k) {
-        if (k === 'AssertionError') {
-            out[k] = assert[k];
-            return;
-        }
-        if (ndebug) {
-            out[k] = noop;
-            return;
-        }
-        out[k] = assert[k];
-    });
-
-    /* export ourselves (for unit tests _only_) */
-    out._setExports = _setExports;
-
-    return out;
-}
-
-module.exports = _setExports(process.env.NODE_NDEBUG);

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/assert-plus/package.json
----------------------------------------------------------------------
diff --git a/node_modules/assert-plus/package.json b/node_modules/assert-plus/package.json
deleted file mode 100644
index ca31c12..0000000
--- a/node_modules/assert-plus/package.json
+++ /dev/null
@@ -1,116 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "assert-plus@^0.2.0",
-        "scope": null,
-        "escapedName": "assert-plus",
-        "name": "assert-plus",
-        "rawSpec": "^0.2.0",
-        "spec": ">=0.2.0 <0.3.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/http-signature"
-    ]
-  ],
-  "_from": "assert-plus@>=0.2.0 <0.3.0",
-  "_id": "assert-plus@0.2.0",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/assert-plus",
-  "_nodeVersion": "0.10.36",
-  "_npmUser": {
-    "name": "pfmooney",
-    "email": "patrick.f.mooney@gmail.com"
-  },
-  "_npmVersion": "3.3.8",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "assert-plus@^0.2.0",
-    "scope": null,
-    "escapedName": "assert-plus",
-    "name": "assert-plus",
-    "rawSpec": "^0.2.0",
-    "spec": ">=0.2.0 <0.3.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/http-signature"
-  ],
-  "_resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
-  "_shasum": "d74e1b87e7affc0db8aadb7021f3fe48101ab234",
-  "_shrinkwrap": null,
-  "_spec": "assert-plus@^0.2.0",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/http-signature",
-  "author": {
-    "name": "Mark Cavage",
-    "email": "mcavage@gmail.com"
-  },
-  "bugs": {
-    "url": "https://github.com/mcavage/node-assert-plus/issues"
-  },
-  "contributors": [
-    {
-      "name": "Dave Eddy",
-      "email": "dave@daveeddy.com"
-    },
-    {
-      "name": "Fred Kuo",
-      "email": "fred.kuo@joyent.com"
-    },
-    {
-      "name": "Lars-Magnus Skog",
-      "email": "ralphtheninja@riseup.net"
-    },
-    {
-      "name": "Mark Cavage",
-      "email": "mcavage@gmail.com"
-    },
-    {
-      "name": "Patrick Mooney",
-      "email": "pmooney@pfmooney.com"
-    },
-    {
-      "name": "Rob Gulewich",
-      "email": "robert.gulewich@joyent.com"
-    }
-  ],
-  "dependencies": {},
-  "description": "Extra assertions on top of node's assert module",
-  "devDependencies": {
-    "faucet": "0.0.1",
-    "tape": "4.2.2"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "d74e1b87e7affc0db8aadb7021f3fe48101ab234",
-    "tarball": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz"
-  },
-  "engines": {
-    "node": ">=0.8"
-  },
-  "homepage": "https://github.com/mcavage/node-assert-plus#readme",
-  "license": "MIT",
-  "main": "./assert.js",
-  "maintainers": [
-    {
-      "name": "mcavage",
-      "email": "mcavage@gmail.com"
-    },
-    {
-      "name": "pfmooney",
-      "email": "patrick.f.mooney@gmail.com"
-    }
-  ],
-  "name": "assert-plus",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/mcavage/node-assert-plus.git"
-  },
-  "scripts": {
-    "test": "tape tests/*.js | ./node_modules/.bin/faucet"
-  },
-  "version": "0.2.0"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/async-each/.npmignore
----------------------------------------------------------------------
diff --git a/node_modules/async-each/.npmignore b/node_modules/async-each/.npmignore
deleted file mode 100644
index 3887b2b..0000000
--- a/node_modules/async-each/.npmignore
+++ /dev/null
@@ -1,3 +0,0 @@
-bower.json
-component.json
-CHANGELOG.md

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/async-each/CHANGELOG.md
----------------------------------------------------------------------
diff --git a/node_modules/async-each/CHANGELOG.md b/node_modules/async-each/CHANGELOG.md
deleted file mode 100644
index bee2548..0000000
--- a/node_modules/async-each/CHANGELOG.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# async-each 1.0.0 (26 November 2015)
-* Bumped version to 1.0.0 (no functional changes)
-
-# async-each 0.1.6 (5 November 2014)
-* Add license to package.json
-
-# async-each 0.1.5 (22 October 2014)
-* Clean up package.json to fix npm warning about `repo`
-
-# async-each 0.1.4 (12 November 2013)
-* Fixed AMD definition.
-
-# async-each 0.1.3 (25 July 2013)
-* Fixed double wrapping of errors.
-
-# async-each 0.1.2 (7 July 2013)
-* Fixed behaviour on empty arrays.
-
-# async-each 0.1.1 (14 June 2013)
-* Wrapped function in closure, enabled strict mode.
-
-# async-each 0.1.0 (14 June 2013)
-* Initial release.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/async-each/README.md
----------------------------------------------------------------------
diff --git a/node_modules/async-each/README.md b/node_modules/async-each/README.md
deleted file mode 100644
index a79cbd7..0000000
--- a/node_modules/async-each/README.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# async-each
-
-No-bullshit, ultra-simple, 35-lines-of-code async parallel forEach function for JavaScript.
-
-We don't need junky 30K async libs. Really.
-
-For browsers and node.js.
-
-## Installation
-* Just include async-each before your scripts.
-* `npm install async-each` if you’re using node.js.
-* `bower install async-each` if you’re using [Bower](http://bower.io).
-
-## Usage
-
-* `each(array, iterator, callback);` — `Array`, `Function`, `(optional) Function`
-* `iterator(item, next)` receives current item and a callback that will mark the item as done. `next` callback receives optional `error, transformedItem` arguments.
-* `callback(error, transformedArray)` optionally receives first error and transformed result `Array`.
-
-Node.js:
-
-```javascript
-var each = require('async-each');
-each(['a.js', 'b.js', 'c.js'], fs.readFile, function(error, contents) {
-  if (error) console.error(error);
-  console.log('Contents for a, b and c:', contents);
-});
-```
-
-Browser:
-
-```javascript
-window.asyncEach(list, fn, callback);
-```
-
-## License
-
-[The MIT License](https://raw.githubusercontent.com/paulmillr/mit/master/README.md)

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/async-each/index.js
----------------------------------------------------------------------
diff --git a/node_modules/async-each/index.js b/node_modules/async-each/index.js
deleted file mode 100644
index 1c51c95..0000000
--- a/node_modules/async-each/index.js
+++ /dev/null
@@ -1,38 +0,0 @@
-// async-each MIT license (by Paul Miller from http://paulmillr.com).
-(function(globals) {
-  'use strict';
-  var each = function(items, next, callback) {
-    if (!Array.isArray(items)) throw new TypeError('each() expects array as first argument');
-    if (typeof next !== 'function') throw new TypeError('each() expects function as second argument');
-    if (typeof callback !== 'function') callback = Function.prototype; // no-op
-
-    if (items.length === 0) return callback(undefined, items);
-
-    var transformed = new Array(items.length);
-    var count = 0;
-    var returned = false;
-
-    items.forEach(function(item, index) {
-      next(item, function(error, transformedItem) {
-        if (returned) return;
-        if (error) {
-          returned = true;
-          return callback(error);
-        }
-        transformed[index] = transformedItem;
-        count += 1;
-        if (count === items.length) return callback(undefined, transformed);
-      });
-    });
-  };
-
-  if (typeof define !== 'undefined' && define.amd) {
-    define([], function() {
-      return each;
-    }); // RequireJS
-  } else if (typeof module !== 'undefined' && module.exports) {
-    module.exports = each; // CommonJS
-  } else {
-    globals.asyncEach = each; // <script>
-  }
-})(this);

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/async-each/package.json
----------------------------------------------------------------------
diff --git a/node_modules/async-each/package.json b/node_modules/async-each/package.json
deleted file mode 100644
index 4747ae4..0000000
--- a/node_modules/async-each/package.json
+++ /dev/null
@@ -1,102 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "async-each@^1.0.0",
-        "scope": null,
-        "escapedName": "async-each",
-        "name": "async-each",
-        "rawSpec": "^1.0.0",
-        "spec": ">=1.0.0 <2.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/chokidar"
-    ]
-  ],
-  "_from": "async-each@>=1.0.0 <2.0.0",
-  "_id": "async-each@1.0.1",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/async-each",
-  "_nodeVersion": "6.3.0",
-  "_npmOperationalInternal": {
-    "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/async-each-1.0.1.tgz_1472080935649_0.032988218357786536"
-  },
-  "_npmUser": {
-    "name": "paulmillr",
-    "email": "paul@paulmillr.com"
-  },
-  "_npmVersion": "3.10.3",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "async-each@^1.0.0",
-    "scope": null,
-    "escapedName": "async-each",
-    "name": "async-each",
-    "rawSpec": "^1.0.0",
-    "spec": ">=1.0.0 <2.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/chokidar"
-  ],
-  "_resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
-  "_shasum": "19d386a1d9edc6e7c1c85d388aedbcc56d33602d",
-  "_shrinkwrap": null,
-  "_spec": "async-each@^1.0.0",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/chokidar",
-  "author": {
-    "name": "Paul Miller",
-    "url": "http://paulmillr.com/"
-  },
-  "bugs": {
-    "url": "https://github.com/paulmillr/async-each/issues"
-  },
-  "dependencies": {},
-  "description": "No-bullshit, ultra-simple, 35-lines-of-code async parallel forEach / map function for JavaScript.",
-  "devDependencies": {},
-  "directories": {},
-  "dist": {
-    "shasum": "19d386a1d9edc6e7c1c85d388aedbcc56d33602d",
-    "tarball": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz"
-  },
-  "gitHead": "f2342d85633d0dc1034a49387ca01c08c1189823",
-  "homepage": "https://github.com/paulmillr/async-each/",
-  "keywords": [
-    "async",
-    "forEach",
-    "each",
-    "map",
-    "asynchronous",
-    "iteration",
-    "iterate",
-    "loop",
-    "parallel",
-    "concurrent",
-    "array",
-    "flow",
-    "control flow"
-  ],
-  "license": "MIT",
-  "main": "index.js",
-  "maintainers": [
-    {
-      "name": "paulmillr",
-      "email": "paul@paulmillr.com"
-    },
-    {
-      "name": "es128",
-      "email": "elan.shanker+npm@gmail.com"
-    }
-  ],
-  "name": "async-each",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/paulmillr/async-each.git"
-  },
-  "scripts": {},
-  "version": "1.0.1"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/async/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/async/LICENSE b/node_modules/async/LICENSE
deleted file mode 100644
index b7f9d50..0000000
--- a/node_modules/async/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2010 Caolan McMahon
-
-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.


[13/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/cheerio/lib/api/attributes.js
----------------------------------------------------------------------
diff --git a/node_modules/cheerio/lib/api/attributes.js b/node_modules/cheerio/lib/api/attributes.js
deleted file mode 100644
index a4947bd..0000000
--- a/node_modules/cheerio/lib/api/attributes.js
+++ /dev/null
@@ -1,482 +0,0 @@
-var _ = require('lodash'),
-  $ = require('../static'),
-  utils = require('../utils'),
-  isTag = utils.isTag,
-  domEach = utils.domEach,
-  hasOwn = Object.prototype.hasOwnProperty,
-  camelCase = utils.camelCase,
-  cssCase = utils.cssCase,
-  rspace = /\s+/,
-  dataAttrPrefix = 'data-',
-
-  // Lookup table for coercing string data-* attributes to their corresponding
-  // JavaScript primitives
-  primitives = {
-    null: null,
-    true: true,
-    false: false
-  },
-
-  // Attributes that are booleans
-  rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
-  // Matches strings that look like JSON objects or arrays
-  rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/;
-
-
-var getAttr = function(elem, name) {
-  if (!elem || !isTag(elem)) return;
-
-  if (!elem.attribs) {
-    elem.attribs = {};
-  }
-
-  // Return the entire attribs object if no attribute specified
-  if (!name) {
-    return elem.attribs;
-  }
-
-  if (hasOwn.call(elem.attribs, name)) {
-    // Get the (decoded) attribute
-    return rboolean.test(name) ? name : elem.attribs[name];
-  }
-
-  // Mimic the DOM and return text content as value for `option's`
-  if (elem.name === 'option' && name === 'value') {
-    return $.text(elem.children);
-  }
-};
-
-var setAttr = function(el, name, value) {
-
-  if (value === null) {
-    removeAttribute(el, name);
-  } else {
-    el.attribs[name] = value+'';
-  }
-};
-
-exports.attr = function(name, value) {
-  // Set the value (with attr map support)
-  if (typeof name === 'object' || value !== undefined) {
-    if (typeof value === 'function') {
-      return domEach(this, function(i, el) {
-        setAttr(el, name, value.call(el, i, el.attribs[name]));
-      });
-    }
-    return domEach(this, function(i, el) {
-      if (!isTag(el)) return;
-
-      if (typeof name === 'object') {
-        _.each(name, function(value, name) {
-          setAttr(el, name, value);
-        });
-      } else {
-        setAttr(el, name, value);
-      }
-    });
-  }
-
-  return getAttr(this[0], name);
-};
-
-var getProp = function (el, name) {
-  return el.hasOwnProperty(name)
-      ? el[name]
-      : rboolean.test(name)
-          ? getAttr(el, name) !== undefined
-          : getAttr(el, name);
-};
-
-var setProp = function (el, name, value) {
-  el[name] = rboolean.test(name) ? !!value : value;
-};
-
-exports.prop = function (name, value) {
-  var i = 0,
-      property;
-
-  if (typeof name === 'string' && value === undefined) {
-
-    switch (name) {
-      case 'style':
-        property = this.css();
-
-        _.each(property, function (v, p) {
-          property[i++] = p;
-        });
-
-        property.length = i;
-
-        break;
-      case 'tagName':
-      case 'nodeName':
-        property = this[0].name.toUpperCase();
-        break;
-      default:
-        property = getProp(this[0], name);
-    }
-
-    return property;
-  }
-
-  if (typeof name === 'object' || value !== undefined) {
-
-    if (typeof value === 'function') {
-      return domEach(this, function(i, el) {
-        setProp(el, name, value.call(el, i, getProp(el, name)));
-      });
-    }
-
-    return domEach(this, function(i, el) {
-      if (!isTag(el)) return;
-
-      if (typeof name === 'object') {
-
-        _.each(name, function(val, name) {
-          setProp(el, name, val);
-        });
-
-      } else {
-        setProp(el, name, value);
-      }
-    });
-
-  }
-};
-
-var setData = function(el, name, value) {
-  if (!el.data) {
-    el.data = {};
-  }
-
-  if (typeof name === 'object') return _.extend(el.data, name);
-  if (typeof name === 'string' && value !== undefined) {
-    el.data[name] = value;
-  } else if (typeof name === 'object') {
-    _.exend(el.data, name);
-  }
-};
-
-// Read the specified attribute from the equivalent HTML5 `data-*` attribute,
-// and (if present) cache the value in the node's internal data store. If no
-// attribute name is specified, read *all* HTML5 `data-*` attributes in this
-// manner.
-var readData = function(el, name) {
-  var readAll = arguments.length === 1;
-  var domNames, domName, jsNames, jsName, value, idx, length;
-
-  if (readAll) {
-    domNames = Object.keys(el.attribs).filter(function(attrName) {
-      return attrName.slice(0, dataAttrPrefix.length) === dataAttrPrefix;
-    });
-    jsNames = domNames.map(function(domName) {
-      return camelCase(domName.slice(dataAttrPrefix.length));
-    });
-  } else {
-    domNames = [dataAttrPrefix + cssCase(name)];
-    jsNames = [name];
-  }
-
-  for (idx = 0, length = domNames.length; idx < length; ++idx) {
-    domName = domNames[idx];
-    jsName = jsNames[idx];
-    if (hasOwn.call(el.attribs, domName)) {
-      value = el.attribs[domName];
-
-      if (hasOwn.call(primitives, value)) {
-        value = primitives[value];
-      } else if (value === String(Number(value))) {
-        value = Number(value);
-      } else if (rbrace.test(value)) {
-        try {
-          value = JSON.parse(value);
-        } catch(e){ }
-      }
-
-      el.data[jsName] = value;
-    }
-  }
-
-  return readAll ? el.data : value;
-};
-
-exports.data = function(name, value) {
-  var elem = this[0];
-
-  if (!elem || !isTag(elem)) return;
-
-  if (!elem.data) {
-    elem.data = {};
-  }
-
-  // Return the entire data object if no data specified
-  if (!name) {
-    return readData(elem);
-  }
-
-  // Set the value (with attr map support)
-  if (typeof name === 'object' || value !== undefined) {
-    domEach(this, function(i, el) {
-      setData(el, name, value);
-    });
-    return this;
-  } else if (hasOwn.call(elem.data, name)) {
-    return elem.data[name];
-  }
-
-  return readData(elem, name);
-};
-
-/**
- * Get the value of an element
- */
-
-exports.val = function(value) {
-  var querying = arguments.length === 0,
-      element = this[0];
-
-  if(!element) return;
-
-  switch (element.name) {
-    case 'textarea':
-      return this.text(value);
-    case 'input':
-      switch (this.attr('type')) {
-        case 'radio':
-          if (querying) {
-            return this.attr('value');
-          } else {
-            this.attr('value', value);
-            return this;
-          }
-          break;
-        default:
-          return this.attr('value', value);
-      }
-      return;
-    case 'select':
-      var option = this.find('option:selected'),
-          returnValue;
-      if (option === undefined) return undefined;
-      if (!querying) {
-        if (!this.attr().hasOwnProperty('multiple') && typeof value == 'object') {
-          return this;
-        }
-        if (typeof value != 'object') {
-          value = [value];
-        }
-        this.find('option').removeAttr('selected');
-        for (var i = 0; i < value.length; i++) {
-          this.find('option[value="' + value[i] + '"]').attr('selected', '');
-        }
-        return this;
-      }
-      returnValue = option.attr('value');
-      if (this.attr().hasOwnProperty('multiple')) {
-        returnValue = [];
-        domEach(option, function(i, el) {
-          returnValue.push(getAttr(el, 'value'));
-        });
-      }
-      return returnValue;
-    case 'option':
-      if (!querying) {
-        this.attr('value', value);
-        return this;
-      }
-      return this.attr('value');
-  }
-};
-
-/**
- * Remove an attribute
- */
-
-var removeAttribute = function(elem, name) {
-  if (!elem.attribs || !hasOwn.call(elem.attribs, name))
-    return;
-
-  delete elem.attribs[name];
-};
-
-
-exports.removeAttr = function(name) {
-  domEach(this, function(i, elem) {
-    removeAttribute(elem, name);
-  });
-
-  return this;
-};
-
-exports.hasClass = function(className) {
-  return _.some(this, function(elem) {
-    var attrs = elem.attribs,
-        clazz = attrs && attrs['class'],
-        idx = -1,
-        end;
-
-    if (clazz) {
-      while ((idx = clazz.indexOf(className, idx+1)) > -1) {
-        end = idx + className.length;
-
-        if ((idx === 0 || rspace.test(clazz[idx-1]))
-            && (end === clazz.length || rspace.test(clazz[end]))) {
-          return true;
-        }
-      }
-    }
-  });
-};
-
-exports.addClass = function(value) {
-  // Support functions
-  if (typeof value === 'function') {
-    return domEach(this, function(i, el) {
-      var className = el.attribs['class'] || '';
-      exports.addClass.call([el], value.call(el, i, className));
-    });
-  }
-
-  // Return if no value or not a string or function
-  if (!value || typeof value !== 'string') return this;
-
-  var classNames = value.split(rspace),
-      numElements = this.length;
-
-
-  for (var i = 0; i < numElements; i++) {
-    // If selected element isn't a tag, move on
-    if (!isTag(this[i])) continue;
-
-    // If we don't already have classes
-    var className = getAttr(this[i], 'class'),
-        numClasses,
-        setClass;
-
-    if (!className) {
-      setAttr(this[i], 'class', classNames.join(' ').trim());
-    } else {
-      setClass = ' ' + className + ' ';
-      numClasses = classNames.length;
-
-      // Check if class already exists
-      for (var j = 0; j < numClasses; j++) {
-        var appendClass = classNames[j] + ' ';
-        if (setClass.indexOf(' ' + appendClass) < 0)
-          setClass += appendClass;
-      }
-
-      setAttr(this[i], 'class', setClass.trim());
-    }
-  }
-
-  return this;
-};
-
-var splitClass = function(className) {
-  return className ? className.trim().split(rspace) : [];
-};
-
-exports.removeClass = function(value) {
-  var classes,
-      numClasses,
-      removeAll;
-
-  // Handle if value is a function
-  if (typeof value === 'function') {
-    return domEach(this, function(i, el) {
-      exports.removeClass.call(
-        [el], value.call(el, i, el.attribs['class'] || '')
-      );
-    });
-  }
-
-  classes = splitClass(value);
-  numClasses = classes.length;
-  removeAll = arguments.length === 0;
-
-  return domEach(this, function(i, el) {
-    if (!isTag(el)) return;
-
-    if (removeAll) {
-      // Short circuit the remove all case as this is the nice one
-      el.attribs.class = '';
-    } else {
-      var elClasses = splitClass(el.attribs.class),
-          index,
-          changed;
-
-      for (var j = 0; j < numClasses; j++) {
-        index = elClasses.indexOf(classes[j]);
-
-        if (index >= 0) {
-          elClasses.splice(index, 1);
-          changed = true;
-
-          // We have to do another pass to ensure that there are not duplicate
-          // classes listed
-          j--;
-        }
-      }
-      if (changed) {
-        el.attribs.class = elClasses.join(' ');
-      }
-    }
-  });
-};
-
-exports.toggleClass = function(value, stateVal) {
-  // Support functions
-  if (typeof value === 'function') {
-    return domEach(this, function(i, el) {
-      exports.toggleClass.call(
-        [el],
-        value.call(el, i, el.attribs['class'] || '', stateVal),
-        stateVal
-      );
-    });
-  }
-
-  // Return if no value or not a string or function
-  if (!value || typeof value !== 'string') return this;
-
-  var classNames = value.split(rspace),
-    numClasses = classNames.length,
-    state = typeof stateVal === 'boolean' ? stateVal ? 1 : -1 : 0,
-    numElements = this.length,
-    elementClasses,
-    index;
-
-  for (var i = 0; i < numElements; i++) {
-    // If selected element isn't a tag, move on
-    if (!isTag(this[i])) continue;
-
-    elementClasses = splitClass(this[i].attribs.class);
-
-    // Check if class already exists
-    for (var j = 0; j < numClasses; j++) {
-      // Check if the class name is currently defined
-      index = elementClasses.indexOf(classNames[j]);
-
-      // Add if stateValue === true or we are toggling and there is no value
-      if (state >= 0 && index < 0) {
-        elementClasses.push(classNames[j]);
-      } else if (state <= 0 && index >= 0) {
-        // Otherwise remove but only if the item exists
-        elementClasses.splice(index, 1);
-      }
-    }
-
-    this[i].attribs.class = elementClasses.join(' ');
-  }
-
-  return this;
-};
-
-exports.is = function (selector) {
-  if (selector) {
-    return this.filter(selector).length > 0;
-  }
-  return false;
-};
-

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/cheerio/lib/api/css.js
----------------------------------------------------------------------
diff --git a/node_modules/cheerio/lib/api/css.js b/node_modules/cheerio/lib/api/css.js
deleted file mode 100644
index bfbdcda..0000000
--- a/node_modules/cheerio/lib/api/css.js
+++ /dev/null
@@ -1,118 +0,0 @@
-var _ = require('lodash'),
-    domEach = require('../utils').domEach;
-var toString = Object.prototype.toString;
-
-/**
- * Set / Get css.
- *
- * @param {String|Object} prop
- * @param {String} val
- * @return {self}
- * @api public
- */
-
-exports.css = function(prop, val) {
-  if (arguments.length === 2 ||
-    // When `prop` is a "plain" object
-    (toString.call(prop) === '[object Object]')) {
-    return domEach(this, function(idx, el) {
-      setCss(el, prop, val, idx);
-    });
-  } else {
-    return getCss(this[0], prop);
-  }
-};
-
-/**
- * Set styles of all elements.
- *
- * @param {String|Object} prop
- * @param {String} val
- * @param {Number} idx - optional index within the selection
- * @return {self}
- * @api private
- */
-
-function setCss(el, prop, val, idx) {
-  if ('string' == typeof prop) {
-    var styles = getCss(el);
-    if (typeof val === 'function') {
-      val = val.call(el, idx, styles[prop]);
-    }
-
-    if (val === '') {
-      delete styles[prop];
-    } else if (val != null) {
-      styles[prop] = val;
-    }
-
-    el.attribs.style = stringify(styles);
-  } else if ('object' == typeof prop) {
-    Object.keys(prop).forEach(function(k){
-      setCss(el, k, prop[k]);
-    });
-  }
-}
-
-/**
- * Get parsed styles of the first element.
- *
- * @param {String} prop
- * @return {Object}
- * @api private
- */
-
-function getCss(el, prop) {
-  var styles = parse(el.attribs.style);
-  if (typeof prop === 'string') {
-    return styles[prop];
-  } else if (Array.isArray(prop)) {
-    return _.pick(styles, prop);
-  } else {
-    return styles;
-  }
-}
-
-/**
- * Stringify `obj` to styles.
- *
- * @param {Object} obj
- * @return {Object}
- * @api private
- */
-
-function stringify(obj) {
-  return Object.keys(obj || {})
-    .reduce(function(str, prop){
-      return str += ''
-        + (str ? ' ' : '')
-        + prop
-        + ': '
-        + obj[prop]
-        + ';';
-    }, '');
-}
-
-/**
- * Parse `styles`.
- *
- * @param {String} styles
- * @return {Object}
- * @api private
- */
-
-function parse(styles) {
-  styles = (styles || '').trim();
-
-  if (!styles) return {};
-
-  return styles
-    .split(';')
-    .reduce(function(obj, str){
-      var n = str.indexOf(':');
-      // skip if there is no :, or if it is the first/last character
-      if (n < 1 || n === str.length-1) return obj;
-      obj[str.slice(0,n).trim()] = str.slice(n+1).trim();
-      return obj;
-    }, {});
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/cheerio/lib/api/forms.js
----------------------------------------------------------------------
diff --git a/node_modules/cheerio/lib/api/forms.js b/node_modules/cheerio/lib/api/forms.js
deleted file mode 100644
index 9e335c9..0000000
--- a/node_modules/cheerio/lib/api/forms.js
+++ /dev/null
@@ -1,49 +0,0 @@
-// https://github.com/jquery/jquery/blob/2.1.3/src/manipulation/var/rcheckableType.js
-// https://github.com/jquery/jquery/blob/2.1.3/src/serialize.js
-var _ = require('lodash'),
-    submittableSelector = 'input,select,textarea,keygen',
-    rCRLF = /\r?\n/g;
-
-exports.serializeArray = function() {
-  // Resolve all form elements from either forms or collections of form elements
-  var Cheerio = this.constructor;
-  return this.map(function() {
-      var elem = this;
-      var $elem = Cheerio(elem);
-      if (elem.name === 'form') {
-        return $elem.find(submittableSelector).toArray();
-      } else {
-        return $elem.filter(submittableSelector).toArray();
-      }
-    }).filter(
-        // Verify elements have a name (`attr.name`) and are not disabled (`:disabled`)
-        '[name!=""]:not(:disabled)'
-        // and cannot be clicked (`[type=submit]`) or are used in `x-www-form-urlencoded` (`[type=file]`)
-        + ':not(:submit, :button, :image, :reset, :file)'
-        // and are either checked/don't have a checkable state
-        + ':matches([checked], :not(:checkbox, :radio))'
-    // Convert each of the elements to its value(s)
-    ).map(function(i, elem) {
-      var $elem = Cheerio(elem);
-      var name = $elem.attr('name');
-      var val = $elem.val();
-
-      // If there is no value set (e.g. `undefined`, `null`), then return nothing
-      if (val == null) {
-        return null;
-      } else {
-        // If we have an array of values (e.g. `<select multiple>`), return an array of key/value pairs
-        if (Array.isArray(val)) {
-          return _.map(val, function(val) {
-            // We trim replace any line endings (e.g. `\r` or `\r\n` with `\r\n`) to guarantee consistency across platforms
-            //   These can occur inside of `<textarea>'s`
-            return {name: name, value: val.replace( rCRLF, '\r\n' )};
-          });
-        // Otherwise (e.g. `<input type="text">`, return only one key/value pair
-        } else {
-          return {name: name, value: val.replace( rCRLF, '\r\n' )};
-        }
-      }
-    // Convert our result to an array
-    }).get();
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/cheerio/lib/api/manipulation.js
----------------------------------------------------------------------
diff --git a/node_modules/cheerio/lib/api/manipulation.js b/node_modules/cheerio/lib/api/manipulation.js
deleted file mode 100644
index 932b5da..0000000
--- a/node_modules/cheerio/lib/api/manipulation.js
+++ /dev/null
@@ -1,421 +0,0 @@
-var _ = require('lodash'),
-    parse = require('../parse'),
-    $ = require('../static'),
-    updateDOM = parse.update,
-    evaluate = parse.evaluate,
-    utils = require('../utils'),
-    domEach = utils.domEach,
-    cloneDom = utils.cloneDom,
-    isHtml = utils.isHtml,
-    slice = Array.prototype.slice;
-
-// Create an array of nodes, recursing into arrays and parsing strings if
-// necessary
-exports._makeDomArray = function makeDomArray(elem, clone) {
-  if (elem == null) {
-    return [];
-  } else if (elem.cheerio) {
-    return clone ? cloneDom(elem.get(), elem.options) : elem.get();
-  } else if (Array.isArray(elem)) {
-    return _.flatten(elem.map(function(el) {
-      return this._makeDomArray(el, clone);
-    }, this));
-  } else if (typeof elem === 'string') {
-    return evaluate(elem, this.options);
-  } else {
-    return clone ? cloneDom([elem]) : [elem];
-  }
-};
-
-var _insert = function(concatenator) {
-  return function() {
-    var elems = slice.call(arguments),
-        lastIdx = this.length - 1;
-
-    return domEach(this, function(i, el) {
-      var dom, domSrc;
-
-      if (typeof elems[0] === 'function') {
-        domSrc = elems[0].call(el, i, $.html(el.children));
-      } else {
-        domSrc = elems;
-      }
-
-      dom = this._makeDomArray(domSrc, i < lastIdx);
-      concatenator(dom, el.children, el);
-    });
-  };
-};
-
-/*
- * Modify an array in-place, removing some number of elements and adding new
- * elements directly following them.
- *
- * @param {Array} array Target array to splice.
- * @param {Number} spliceIdx Index at which to begin changing the array.
- * @param {Number} spliceCount Number of elements to remove from the array.
- * @param {Array} newElems Elements to insert into the array.
- *
- * @api private
- */
-var uniqueSplice = function(array, spliceIdx, spliceCount, newElems, parent) {
-  var spliceArgs = [spliceIdx, spliceCount].concat(newElems),
-      prev = array[spliceIdx - 1] || null,
-      next = array[spliceIdx] || null;
-  var idx, len, prevIdx, node, oldParent;
-
-  // Before splicing in new elements, ensure they do not already appear in the
-  // current array.
-  for (idx = 0, len = newElems.length; idx < len; ++idx) {
-    node = newElems[idx];
-    oldParent = node.parent || node.root;
-    prevIdx = oldParent && oldParent.children.indexOf(newElems[idx]);
-
-    if (oldParent && prevIdx > -1) {
-      oldParent.children.splice(prevIdx, 1);
-      if (parent === oldParent && spliceIdx > prevIdx) {
-        spliceArgs[0]--;
-      }
-    }
-
-    node.root = null;
-    node.parent = parent;
-
-    if (node.prev) {
-      node.prev.next = node.next || null;
-    }
-
-    if (node.next) {
-      node.next.prev = node.prev || null;
-    }
-
-    node.prev = newElems[idx - 1] || prev;
-    node.next = newElems[idx + 1] || next;
-  }
-
-  if (prev) {
-    prev.next = newElems[0];
-  }
-  if (next) {
-    next.prev = newElems[newElems.length - 1];
-  }
-  return array.splice.apply(array, spliceArgs);
-};
-
-exports.appendTo = function(target) {
-  if (!target.cheerio) {
-    target = this.constructor.call(this.constructor, target, null, this._originalRoot);
-  }
-
-  target.append(this);
-
-  return this;
-};
-
-exports.prependTo = function(target) {
-  if (!target.cheerio) {
-    target = this.constructor.call(this.constructor, target, null, this._originalRoot);
-  }
-
-  target.prepend(this);
-
-  return this;
-};
-
-exports.append = _insert(function(dom, children, parent) {
-  uniqueSplice(children, children.length, 0, dom, parent);
-});
-
-exports.prepend = _insert(function(dom, children, parent) {
-  uniqueSplice(children, 0, 0, dom, parent);
-});
-
-exports.wrap = function(wrapper) {
-  var wrapperFn = typeof wrapper === 'function' && wrapper,
-      lastIdx = this.length - 1;
-
-  _.forEach(this, _.bind(function(el, i) {
-    var parent = el.parent || el.root,
-        siblings = parent.children,
-        dom, index;
-
-    if (!parent) {
-      return;
-    }
-
-    if (wrapperFn) {
-      wrapper = wrapperFn.call(el, i);
-    }
-
-    if (typeof wrapper === 'string' && !isHtml(wrapper)) {
-      wrapper = this.parents().last().find(wrapper).clone();
-    }
-
-    dom = this._makeDomArray(wrapper, i < lastIdx).slice(0, 1);
-    index = siblings.indexOf(el);
-
-    updateDOM([el], dom[0]);
-    // The previous operation removed the current element from the `siblings`
-    // array, so the `dom` array can be inserted without removing any
-    // additional elements.
-    uniqueSplice(siblings, index, 0, dom, parent);
-  }, this));
-
-  return this;
-};
-
-exports.after = function() {
-  var elems = slice.call(arguments),
-      lastIdx = this.length - 1;
-
-  domEach(this, function(i, el) {
-    var parent = el.parent || el.root;
-    if (!parent) {
-      return;
-    }
-
-    var siblings = parent.children,
-        index = siblings.indexOf(el),
-        domSrc, dom;
-
-    // If not found, move on
-    if (index < 0) return;
-
-    if (typeof elems[0] === 'function') {
-      domSrc = elems[0].call(el, i, $.html(el.children));
-    } else {
-      domSrc = elems;
-    }
-    dom = this._makeDomArray(domSrc, i < lastIdx);
-
-    // Add element after `this` element
-    uniqueSplice(siblings, index + 1, 0, dom, parent);
-  });
-
-  return this;
-};
-
-exports.insertAfter = function(target) {
-  var clones = [],
-      self = this;
-  if (typeof target === 'string') {
-    target = this.constructor.call(this.constructor, target, null, this._originalRoot);
-  }
-  target = this._makeDomArray(target);
-  self.remove();
-  domEach(target, function(i, el) {
-    var clonedSelf = self._makeDomArray(self.clone());
-    var parent = el.parent || el.root;
-    if (!parent) {
-      return;
-    }
-
-    var siblings = parent.children,
-        index = siblings.indexOf(el);
-
-    // If not found, move on
-    if (index < 0) return;
-
-    // Add cloned `this` element(s) after target element
-    uniqueSplice(siblings, index + 1, 0, clonedSelf, parent);
-    clones.push(clonedSelf);
-  });
-  return this.constructor.call(this.constructor, this._makeDomArray(clones));
-};
-
-exports.before = function() {
-  var elems = slice.call(arguments),
-      lastIdx = this.length - 1;
-
-  domEach(this, function(i, el) {
-    var parent = el.parent || el.root;
-    if (!parent) {
-      return;
-    }
-
-    var siblings = parent.children,
-        index = siblings.indexOf(el),
-        domSrc, dom;
-
-    // If not found, move on
-    if (index < 0) return;
-
-    if (typeof elems[0] === 'function') {
-      domSrc = elems[0].call(el, i, $.html(el.children));
-    } else {
-      domSrc = elems;
-    }
-
-    dom = this._makeDomArray(domSrc, i < lastIdx);
-
-    // Add element before `el` element
-    uniqueSplice(siblings, index, 0, dom, parent);
-  });
-
-  return this;
-};
-
-exports.insertBefore = function(target) {
-  var clones = [],
-      self = this;
-  if (typeof target === 'string') {
-    target = this.constructor.call(this.constructor, target, null, this._originalRoot);
-  }
-  target = this._makeDomArray(target);
-  self.remove();
-  domEach(target, function(i, el) {
-    var clonedSelf = self._makeDomArray(self.clone());
-    var parent = el.parent || el.root;
-    if (!parent) {
-      return;
-    }
-
-    var siblings = parent.children,
-        index = siblings.indexOf(el);
-
-    // If not found, move on
-    if (index < 0) return;
-
-    // Add cloned `this` element(s) after target element
-    uniqueSplice(siblings, index, 0, clonedSelf, parent);
-    clones.push(clonedSelf);
-  });
-  return this.constructor.call(this.constructor, this._makeDomArray(clones));
-};
-
-/*
-  remove([selector])
-*/
-exports.remove = function(selector) {
-  var elems = this;
-
-  // Filter if we have selector
-  if (selector)
-    elems = elems.filter(selector);
-
-  domEach(elems, function(i, el) {
-    var parent = el.parent || el.root;
-    if (!parent) {
-      return;
-    }
-
-    var siblings = parent.children,
-        index = siblings.indexOf(el);
-
-    if (index < 0) return;
-
-    siblings.splice(index, 1);
-    if (el.prev) {
-      el.prev.next = el.next;
-    }
-    if (el.next) {
-      el.next.prev = el.prev;
-    }
-    el.prev = el.next = el.parent = el.root = null;
-  });
-
-  return this;
-};
-
-exports.replaceWith = function(content) {
-  var self = this;
-
-  domEach(this, function(i, el) {
-    var parent = el.parent || el.root;
-    if (!parent) {
-      return;
-    }
-
-    var siblings = parent.children,
-        dom = self._makeDomArray(typeof content === 'function' ? content.call(el, i, el) : content),
-        index;
-
-    // In the case that `dom` contains nodes that already exist in other
-    // structures, ensure those nodes are properly removed.
-    updateDOM(dom, null);
-
-    index = siblings.indexOf(el);
-
-    // Completely remove old element
-    uniqueSplice(siblings, index, 1, dom, parent);
-    el.parent = el.prev = el.next = el.root = null;
-  });
-
-  return this;
-};
-
-exports.empty = function() {
-  domEach(this, function(i, el) {
-    _.each(el.children, function(el) {
-      el.next = el.prev = el.parent = null;
-    });
-
-    el.children.length = 0;
-  });
-  return this;
-};
-
-/**
- * Set/Get the HTML
- */
-exports.html = function(str) {
-  if (str === undefined) {
-    if (!this[0] || !this[0].children) return null;
-    return $.html(this[0].children, this.options);
-  }
-
-  var opts = this.options;
-
-  domEach(this, function(i, el) {
-    _.each(el.children, function(el) {
-      el.next = el.prev = el.parent = null;
-    });
-
-    var content = str.cheerio ? str.clone().get() : evaluate('' + str, opts);
-
-    updateDOM(content, el);
-  });
-
-  return this;
-};
-
-exports.toString = function() {
-  return $.html(this, this.options);
-};
-
-exports.text = function(str) {
-  // If `str` is undefined, act as a "getter"
-  if (str === undefined) {
-    return $.text(this);
-  } else if (typeof str === 'function') {
-    // Function support
-    return domEach(this, function(i, el) {
-      var $el = [el];
-      return exports.text.call($el, str.call(el, i, $.text($el)));
-    });
-  }
-
-  // Append text node to each selected elements
-  domEach(this, function(i, el) {
-    _.each(el.children, function(el) {
-      el.next = el.prev = el.parent = null;
-    });
-
-    var elem = {
-      data: '' + str,
-      type: 'text',
-      parent: el,
-      prev: null,
-      next: null,
-      children: []
-    };
-
-    updateDOM(elem, el);
-  });
-
-  return this;
-};
-
-exports.clone = function() {
-  return this._make(cloneDom(this.get(), this.options));
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/cheerio/lib/api/traversing.js
----------------------------------------------------------------------
diff --git a/node_modules/cheerio/lib/api/traversing.js b/node_modules/cheerio/lib/api/traversing.js
deleted file mode 100644
index b08d587..0000000
--- a/node_modules/cheerio/lib/api/traversing.js
+++ /dev/null
@@ -1,423 +0,0 @@
-var _ = require('lodash'),
-    select = require('css-select'),
-    utils = require('../utils'),
-    domEach = utils.domEach,
-    uniqueSort = require('htmlparser2').DomUtils.uniqueSort,
-    isTag = utils.isTag;
-
-exports.find = function(selectorOrHaystack) {
-  var elems = _.reduce(this, function(memo, elem) {
-    return memo.concat(_.filter(elem.children, isTag));
-  }, []);
-  var contains = this.constructor.contains;
-  var haystack;
-
-  if (selectorOrHaystack && typeof selectorOrHaystack !== 'string') {
-    if (selectorOrHaystack.cheerio) {
-      haystack = selectorOrHaystack.get();
-    } else {
-      haystack = [selectorOrHaystack];
-    }
-
-    return this._make(haystack.filter(function(elem) {
-      var idx, len;
-      for (idx = 0, len = this.length; idx < len; ++idx) {
-        if (contains(this[idx], elem)) {
-          return true;
-        }
-      }
-    }, this));
-  }
-
-  var options = {__proto__: this.options, context: this.toArray()};
-
-  return this._make(select(selectorOrHaystack, elems, options));
-};
-
-// Get the parent of each element in the current set of matched elements,
-// optionally filtered by a selector.
-exports.parent = function(selector) {
-  var set = [];
-
-  domEach(this, function(idx, elem) {
-    var parentElem = elem.parent;
-    if (parentElem && set.indexOf(parentElem) < 0) {
-      set.push(parentElem);
-    }
-  });
-
-  if (arguments.length) {
-    set = exports.filter.call(set, selector, this);
-  }
-
-  return this._make(set);
-};
-
-exports.parents = function(selector) {
-  var parentNodes = [];
-
-  // When multiple DOM elements are in the original set, the resulting set will
-  // be in *reverse* order of the original elements as well, with duplicates
-  // removed.
-  this.get().reverse().forEach(function(elem) {
-    traverseParents(this, elem.parent, selector, Infinity)
-      .forEach(function(node) {
-        if (parentNodes.indexOf(node) === -1) {
-          parentNodes.push(node);
-        }
-      }
-    );
-  }, this);
-
-  return this._make(parentNodes);
-};
-
-exports.parentsUntil = function(selector, filter) {
-  var parentNodes = [], untilNode, untilNodes;
-
-  if (typeof selector === 'string') {
-    untilNode = select(selector, this.parents().toArray(), this.options)[0];
-  } else if (selector && selector.cheerio) {
-    untilNodes = selector.toArray();
-  } else if (selector) {
-    untilNode = selector;
-  }
-
-  // When multiple DOM elements are in the original set, the resulting set will
-  // be in *reverse* order of the original elements as well, with duplicates
-  // removed.
-
-  this.toArray().reverse().forEach(function(elem) {
-    while ((elem = elem.parent)) {
-      if ((untilNode && elem !== untilNode) ||
-        (untilNodes && untilNodes.indexOf(elem) === -1) ||
-        (!untilNode && !untilNodes)) {
-        if (isTag(elem) && parentNodes.indexOf(elem) === -1) { parentNodes.push(elem); }
-      } else {
-        break;
-      }
-    }
-  }, this);
-
-  return this._make(filter ? select(filter, parentNodes, this.options) : parentNodes);
-};
-
-// For each element in the set, get the first element that matches the selector
-// by testing the element itself and traversing up through its ancestors in the
-// DOM tree.
-exports.closest = function(selector) {
-  var set = [];
-
-  if (!selector) {
-    return this._make(set);
-  }
-
-  domEach(this, function(idx, elem) {
-    var closestElem = traverseParents(this, elem, selector, 1)[0];
-
-    // Do not add duplicate elements to the set
-    if (closestElem && set.indexOf(closestElem) < 0) {
-      set.push(closestElem);
-    }
-  }.bind(this));
-
-  return this._make(set);
-};
-
-exports.next = function(selector) {
-  if (!this[0]) { return this; }
-  var elems = [];
-
-  _.forEach(this, function(elem) {
-    while ((elem = elem.next)) {
-      if (isTag(elem)) {
-        elems.push(elem);
-        return;
-      }
-    }
-  });
-
-  return selector ?
-    exports.filter.call(elems, selector, this) :
-    this._make(elems);
-};
-
-exports.nextAll = function(selector) {
-  if (!this[0]) { return this; }
-  var elems = [];
-
-  _.forEach(this, function(elem) {
-    while ((elem = elem.next)) {
-      if (isTag(elem) && elems.indexOf(elem) === -1) {
-        elems.push(elem);
-      }
-    }
-  });
-
-  return selector ?
-    exports.filter.call(elems, selector, this) :
-    this._make(elems);
-};
-
-exports.nextUntil = function(selector, filterSelector) {
-  if (!this[0]) { return this; }
-  var elems = [], untilNode, untilNodes;
-
-  if (typeof selector === 'string') {
-    untilNode = select(selector, this.nextAll().get(), this.options)[0];
-  } else if (selector && selector.cheerio) {
-    untilNodes = selector.get();
-  } else if (selector) {
-    untilNode = selector;
-  }
-
-  _.forEach(this, function(elem) {
-    while ((elem = elem.next)) {
-      if ((untilNode && elem !== untilNode) ||
-        (untilNodes && untilNodes.indexOf(elem) === -1) ||
-        (!untilNode && !untilNodes)) {
-        if (isTag(elem) && elems.indexOf(elem) === -1) {
-          elems.push(elem);
-        }
-      } else {
-        break;
-      }
-    }
-  });
-
-  return filterSelector ?
-    exports.filter.call(elems, filterSelector, this) :
-    this._make(elems);
-};
-
-exports.prev = function(selector) {
-  if (!this[0]) { return this; }
-  var elems = [];
-
-  _.forEach(this, function(elem) {
-    while ((elem = elem.prev)) {
-      if (isTag(elem)) {
-        elems.push(elem);
-        return;
-      }
-    }
-  });
-
-  return selector ?
-    exports.filter.call(elems, selector, this) :
-    this._make(elems);
-};
-
-exports.prevAll = function(selector) {
-  if (!this[0]) { return this; }
-  var elems = [];
-
-  _.forEach(this, function(elem) {
-    while ((elem = elem.prev)) {
-      if (isTag(elem) && elems.indexOf(elem) === -1) {
-        elems.push(elem);
-      }
-    }
-  });
-
-  return selector ?
-    exports.filter.call(elems, selector, this) :
-    this._make(elems);
-};
-
-exports.prevUntil = function(selector, filterSelector) {
-  if (!this[0]) { return this; }
-  var elems = [], untilNode, untilNodes;
-
-  if (typeof selector === 'string') {
-    untilNode = select(selector, this.prevAll().get(), this.options)[0];
-  } else if (selector && selector.cheerio) {
-    untilNodes = selector.get();
-  } else if (selector) {
-    untilNode = selector;
-  }
-
-  _.forEach(this, function(elem) {
-    while ((elem = elem.prev)) {
-      if ((untilNode && elem !== untilNode) ||
-        (untilNodes && untilNodes.indexOf(elem) === -1) ||
-        (!untilNode && !untilNodes)) {
-        if (isTag(elem) && elems.indexOf(elem) === -1) {
-          elems.push(elem);
-        }
-      } else {
-        break;
-      }
-    }
-  });
-
-  return filterSelector ?
-    exports.filter.call(elems, filterSelector, this) :
-    this._make(elems);
-};
-
-exports.siblings = function(selector) {
-  var parent = this.parent();
-
-  var elems = _.filter(
-    parent ? parent.children() : this.siblingsAndMe(),
-    _.bind(function(elem) { return isTag(elem) && !this.is(elem); }, this)
-  );
-
-  if (selector !== undefined) {
-    return exports.filter.call(elems, selector, this);
-  } else {
-    return this._make(elems);
-  }
-};
-
-exports.children = function(selector) {
-
-  var elems = _.reduce(this, function(memo, elem) {
-    return memo.concat(_.filter(elem.children, isTag));
-  }, []);
-
-  if (selector === undefined) return this._make(elems);
-
-  return exports.filter.call(elems, selector, this);
-};
-
-exports.contents = function() {
-  return this._make(_.reduce(this, function(all, elem) {
-    all.push.apply(all, elem.children);
-    return all;
-  }, []));
-};
-
-exports.each = function(fn) {
-  var i = 0, len = this.length;
-  while (i < len && fn.call(this[i], i, this[i]) !== false) ++i;
-  return this;
-};
-
-exports.map = function(fn) {
-  return this._make(_.reduce(this, function(memo, el, i) {
-    var val = fn.call(el, i, el);
-    return val == null ? memo : memo.concat(val);
-  }, []));
-};
-
-var makeFilterMethod = function(filterFn) {
-  return function(match, container) {
-    var testFn;
-    container = container || this;
-
-    if (typeof match === 'string') {
-      testFn = select.compile(match, container.options);
-    } else if (typeof match === 'function') {
-      testFn = function(el, i) {
-        return match.call(el, i, el);
-      };
-    } else if (match.cheerio) {
-      testFn = match.is.bind(match);
-    } else {
-      testFn = function(el) {
-        return match === el;
-      };
-    }
-
-    return container._make(filterFn(this, testFn));
-  };
-};
-
-exports.filter = makeFilterMethod(_.filter);
-exports.not = makeFilterMethod(_.reject);
-
-exports.has = function(selectorOrHaystack) {
-  var that = this;
-  return exports.filter.call(this, function() {
-    return that._make(this).find(selectorOrHaystack).length > 0;
-  });
-};
-
-exports.first = function() {
-  return this.length > 1 ? this._make(this[0]) : this;
-};
-
-exports.last = function() {
-  return this.length > 1 ? this._make(this[this.length - 1]) : this;
-};
-
-// Reduce the set of matched elements to the one at the specified index.
-exports.eq = function(i) {
-  i = +i;
-
-  // Use the first identity optimization if possible
-  if (i === 0 && this.length <= 1) return this;
-
-  if (i < 0) i = this.length + i;
-  return this[i] ? this._make(this[i]) : this._make([]);
-};
-
-// Retrieve the DOM elements matched by the jQuery object.
-exports.get = function(i) {
-  if (i == null) {
-    return Array.prototype.slice.call(this);
-  } else {
-    return this[i < 0 ? (this.length + i) : i];
-  }
-};
-
-// Search for a given element from among the matched elements.
-exports.index = function(selectorOrNeedle) {
-  var $haystack, needle;
-
-  if (arguments.length === 0) {
-    $haystack = this.parent().children();
-    needle = this[0];
-  } else if (typeof selectorOrNeedle === 'string') {
-    $haystack = this._make(selectorOrNeedle);
-    needle = this[0];
-  } else {
-    $haystack = this;
-    needle = selectorOrNeedle.cheerio ? selectorOrNeedle[0] : selectorOrNeedle;
-  }
-
-  return $haystack.get().indexOf(needle);
-};
-
-exports.slice = function() {
-  return this._make([].slice.apply(this, arguments));
-};
-
-function traverseParents(self, elem, selector, limit) {
-  var elems = [];
-  while (elem && elems.length < limit) {
-    if (!selector || exports.filter.call([elem], selector, self).length) {
-      elems.push(elem);
-    }
-    elem = elem.parent;
-  }
-  return elems;
-}
-
-// End the most recent filtering operation in the current chain and return the
-// set of matched elements to its previous state.
-exports.end = function() {
-  return this.prevObject || this._make([]);
-};
-
-exports.add = function(other, context) {
-  var selection = this._make(other, context);
-  var contents = uniqueSort(selection.get().concat(this.get()));
-
-  for (var i = 0; i < contents.length; ++i) {
-    selection[i] = contents[i];
-  }
-  selection.length = contents.length;
-
-  return selection;
-};
-
-// Add the previous set of elements on the stack to the current set, optionally
-// filtered by a selector.
-exports.addBack = function(selector) {
-  return this.add(
-    arguments.length ? this.prevObject.filter(selector) : this.prevObject
-  );
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/cheerio/lib/cheerio.js
----------------------------------------------------------------------
diff --git a/node_modules/cheerio/lib/cheerio.js b/node_modules/cheerio/lib/cheerio.js
deleted file mode 100644
index 5b1156a..0000000
--- a/node_modules/cheerio/lib/cheerio.js
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
-  Module dependencies
-*/
-
-var parse = require('./parse'),
-    isHtml = require('./utils').isHtml,
-    _ = require('lodash');
-
-/*
- * The API
- */
-
-var api = [
-  require('./api/attributes'),
-  require('./api/traversing'),
-  require('./api/manipulation'),
-  require('./api/css'),
-  require('./api/forms')
-];
-
-/*
- * Instance of cheerio
- */
-
-var Cheerio = module.exports = function(selector, context, root, options) {
-  if (!(this instanceof Cheerio)) return new Cheerio(selector, context, root, options);
-
-  this.options = _.defaults(options || {}, this.options);
-
-  // $(), $(null), $(undefined), $(false)
-  if (!selector) return this;
-
-  if (root) {
-    if (typeof root === 'string') root = parse(root, this.options);
-    this._root = Cheerio.call(this, root);
-  }
-
-  // $($)
-  if (selector.cheerio) return selector;
-
-  // $(dom)
-  if (isNode(selector))
-    selector = [selector];
-
-  // $([dom])
-  if (Array.isArray(selector)) {
-    _.forEach(selector, _.bind(function(elem, idx) {
-      this[idx] = elem;
-    }, this));
-    this.length = selector.length;
-    return this;
-  }
-
-  // $(<html>)
-  if (typeof selector === 'string' && isHtml(selector)) {
-    return Cheerio.call(this, parse(selector, this.options).children);
-  }
-
-  // If we don't have a context, maybe we have a root, from loading
-  if (!context) {
-    context = this._root;
-  } else if (typeof context === 'string') {
-    if (isHtml(context)) {
-      // $('li', '<ul>...</ul>')
-      context = parse(context, this.options);
-      context = Cheerio.call(this, context);
-    } else {
-      // $('li', 'ul')
-      selector = [context, selector].join(' ');
-      context = this._root;
-    }
-  // $('li', node), $('li', [nodes])
-  } else if (!context.cheerio) {
-    context = Cheerio.call(this, context);
-  }
-
-  // If we still don't have a context, return
-  if (!context) return this;
-
-  // #id, .class, tag
-  return context.find(selector);
-};
-
-/**
- * Mix in `static`
- */
-
-_.extend(Cheerio, require('./static'));
-
-/*
- * Set a signature of the object
- */
-
-Cheerio.prototype.cheerio = '[cheerio object]';
-
-/*
- * Cheerio default options
- */
-
-Cheerio.prototype.options = {
-  withDomLvl1: true,
-  normalizeWhitespace: false,
-  xmlMode: false,
-  decodeEntities: true
-};
-
-/*
- * Make cheerio an array-like object
- */
-
-Cheerio.prototype.length = 0;
-Cheerio.prototype.splice = Array.prototype.splice;
-
-/*
- * Make a cheerio object
- *
- * @api private
- */
-
-Cheerio.prototype._make = function(dom, context) {
-  var cheerio = new this.constructor(dom, context, this._root, this.options);
-  cheerio.prevObject = this;
-  return cheerio;
-};
-
-/**
- * Turn a cheerio object into an array
- */
-
-Cheerio.prototype.toArray = function() {
-  return this.get();
-};
-
-/**
- * Plug in the API
- */
-api.forEach(function(mod) {
-  _.extend(Cheerio.prototype, mod);
-});
-
-var isNode = function(obj) {
-  return obj.name || obj.type === 'text' || obj.type === 'comment';
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/cheerio/lib/parse.js
----------------------------------------------------------------------
diff --git a/node_modules/cheerio/lib/parse.js b/node_modules/cheerio/lib/parse.js
deleted file mode 100644
index b06245d..0000000
--- a/node_modules/cheerio/lib/parse.js
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
-  Module Dependencies
-*/
-var htmlparser = require('htmlparser2');
-
-/*
-  Parser
-*/
-exports = module.exports = function(content, options) {
-  var dom = exports.evaluate(content, options),
-      // Generic root element
-      root = exports.evaluate('<root></root>', options)[0];
-
-  root.type = 'root';
-
-  // Update the dom using the root
-  exports.update(dom, root);
-
-  return root;
-};
-
-exports.evaluate = function(content, options) {
-  // options = options || $.fn.options;
-
-  var dom;
-
-  if (typeof content === 'string' || Buffer.isBuffer(content)) {
-    dom = htmlparser.parseDOM(content, options);
-  } else {
-    dom = content;
-  }
-
-  return dom;
-};
-
-/*
-  Update the dom structure, for one changed layer
-*/
-exports.update = function(arr, parent) {
-  // normalize
-  if (!Array.isArray(arr)) arr = [arr];
-
-  // Update parent
-  if (parent) {
-    parent.children = arr;
-  } else {
-    parent = null;
-  }
-
-  // Update neighbors
-  for (var i = 0; i < arr.length; i++) {
-    var node = arr[i];
-
-    // Cleanly remove existing nodes from their previous structures.
-    var oldParent = node.parent || node.root,
-        oldSiblings = oldParent && oldParent.children;
-    if (oldSiblings && oldSiblings !== arr) {
-      oldSiblings.splice(oldSiblings.indexOf(node), 1);
-      if (node.prev) {
-        node.prev.next = node.next;
-      }
-      if (node.next) {
-        node.next.prev = node.prev;
-      }
-    }
-
-    if (parent) {
-      node.prev = arr[i - 1] || null;
-      node.next = arr[i + 1] || null;
-    } else {
-      node.prev = node.next = null;
-    }
-
-    if (parent && parent.type === 'root') {
-      node.root = parent;
-      node.parent = null;
-    } else {
-      node.root = null;
-      node.parent = parent;
-    }
-  }
-
-  return parent;
-};
-
-// module.exports = $.extend(exports);

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/cheerio/lib/static.js
----------------------------------------------------------------------
diff --git a/node_modules/cheerio/lib/static.js b/node_modules/cheerio/lib/static.js
deleted file mode 100644
index 88f9536..0000000
--- a/node_modules/cheerio/lib/static.js
+++ /dev/null
@@ -1,182 +0,0 @@
-/**
- * Module dependencies
- */
-
-var select = require('css-select'),
-    parse = require('./parse'),
-    serialize = require('dom-serializer'),
-    _ = require('lodash');
-
-/**
- * $.load(str)
- */
-
-exports.load = function(content, options) {
-  var Cheerio = require('./cheerio');
-
-  options = _.defaults(options || {}, Cheerio.prototype.options);
-
-  var root = parse(content, options);
-
-  var initialize = function(selector, context, r, opts) {
-    if (!(this instanceof initialize)) {
-      return new initialize(selector, context, r, opts);
-    }
-    opts = _.defaults(opts || {}, options);
-    return Cheerio.call(this, selector, context, r || root, opts);
-  };
-
-  // Ensure that selections created by the "loaded" `initialize` function are
-  // true Cheerio instances.
-  initialize.prototype = Object.create(Cheerio.prototype);
-  initialize.prototype.constructor = initialize;
-
-  // Mimic jQuery's prototype alias for plugin authors.
-  initialize.fn = initialize.prototype;
-
-  // Keep a reference to the top-level scope so we can chain methods that implicitly 
-  // resolve selectors; e.g. $("<span>").(".bar"), which otherwise loses ._root
-  initialize.prototype._originalRoot = root;
-
-  // Add in the static methods
-  _.merge(initialize, exports);
-
-  // Add in the root
-  initialize._root = root;
-  // store options
-  initialize._options = options;
-
-  return initialize;
-};
-
-/*
-* Helper function
-*/
-
-function render(that, dom, options) {
-  if (!dom) {
-    if (that._root && that._root.children) {
-      dom = that._root.children;
-    } else {
-      return '';
-    }
-  } else if (typeof dom === 'string') {
-    dom = select(dom, that._root, options);
-  }
-
-  return serialize(dom, options);
-}
-
-/**
- * $.html([selector | dom], [options])
- */
-
-exports.html = function(dom, options) {
-  var Cheerio = require('./cheerio');
-
-  // be flexible about parameters, sometimes we call html(),
-  // with options as only parameter
-  // check dom argument for dom element specific properties
-  // assume there is no 'length' or 'type' properties in the options object
-  if (Object.prototype.toString.call(dom) === '[object Object]' && !options && !('length' in dom) && !('type' in dom))
-  {
-    options = dom;
-    dom = undefined;
-  }
-
-  // sometimes $.html() used without preloading html
-  // so fallback non existing options to the default ones
-  options = _.defaults(options || {}, this._options, Cheerio.prototype.options);
-
-  return render(this, dom, options);
-};
-
-/**
- * $.xml([selector | dom])
- */
-
-exports.xml = function(dom) {
-  var options = _.defaults({xmlMode: true}, this._options);
-
-  return render(this, dom, options);
-};
-
-/**
- * $.text(dom)
- */
-
-exports.text = function(elems) {
-  if (!elems) return '';
-
-  var ret = '',
-      len = elems.length,
-      elem;
-
-  for (var i = 0; i < len; i++) {
-    elem = elems[i];
-    if (elem.type === 'text') ret += elem.data;
-    else if (elem.children && elem.type !== 'comment') {
-      ret += exports.text(elem.children);
-    }
-  }
-
-  return ret;
-};
-
-/**
- * $.parseHTML(data [, context ] [, keepScripts ])
- * Parses a string into an array of DOM nodes. The `context` argument has no
- * meaning for Cheerio, but it is maintained for API compatibility with jQuery.
- */
-exports.parseHTML = function(data, context, keepScripts) {
-  var parsed;
-
-  if (!data || typeof data !== 'string') {
-    return null;
-  }
-
-  if (typeof context === 'boolean') {
-    keepScripts = context;
-  }
-
-  parsed = this.load(data);
-  if (!keepScripts) {
-    parsed('script').remove();
-  }
-
-  // The `children` array is used by Cheerio internally to group elements that
-  // share the same parents. When nodes created through `parseHTML` are
-  // inserted into previously-existing DOM structures, they will be removed
-  // from the `children` array. The results of `parseHTML` should remain
-  // constant across these operations, so a shallow copy should be returned.
-  return parsed.root()[0].children.slice();
-};
-
-/**
- * $.root()
- */
-exports.root = function() {
-  return this(this._root);
-};
-
-/**
- * $.contains()
- */
-exports.contains = function(container, contained) {
-
-  // According to the jQuery API, an element does not "contain" itself
-  if (contained === container) {
-    return false;
-  }
-
-  // Step up the descendants, stopping when the root element is reached
-  // (signaled by `.parent` returning a reference to the same object)
-  while (contained && contained !== contained.parent) {
-    contained = contained.parent;
-    if (contained === container) {
-      return true;
-    }
-  }
-
-  return false;
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/cheerio/lib/utils.js
----------------------------------------------------------------------
diff --git a/node_modules/cheerio/lib/utils.js b/node_modules/cheerio/lib/utils.js
deleted file mode 100644
index baa62fc..0000000
--- a/node_modules/cheerio/lib/utils.js
+++ /dev/null
@@ -1,83 +0,0 @@
-var parse = require('./parse'),
-    render = require('dom-serializer');
-
-/**
- * HTML Tags
- */
-
-var tags = { tag: true, script: true, style: true };
-
-/**
- * Check if the DOM element is a tag
- *
- * isTag(type) includes <script> and <style> tags
- */
-
-exports.isTag = function(type) {
-  if (type.type) type = type.type;
-  return tags[type] || false;
-};
-
-/**
- * Convert a string to camel case notation.
- * @param  {String} str String to be converted.
- * @return {String}     String in camel case notation.
- */
-
-exports.camelCase = function(str) {
-  return str.replace(/[_.-](\w|$)/g, function(_, x) {
-    return x.toUpperCase();
-  });
-};
-
-/**
- * Convert a string from camel case to "CSS case", where word boundaries are
- * described by hyphens ("-") and all characters are lower-case.
- * @param  {String} str String to be converted.
- * @return {string}     String in "CSS case".
- */
-exports.cssCase = function(str) {
-  return str.replace(/[A-Z]/g, '-$&').toLowerCase();
-};
-
-/**
- * Iterate over each DOM element without creating intermediary Cheerio instances.
- *
- * This is indented for use internally to avoid otherwise unnecessary memory pressure introduced
- * by _make.
- */
-
-exports.domEach = function(cheerio, fn) {
-  var i = 0, len = cheerio.length;
-  while (i < len && fn.call(cheerio, i, cheerio[i]) !== false) ++i;
-  return cheerio;
-};
-
-/**
- * Create a deep copy of the given DOM structure by first rendering it to a
- * string and then parsing the resultant markup.
- *
- * @argument {Object} dom - The htmlparser2-compliant DOM structure
- * @argument {Object} options - The parsing/rendering options
- */
-exports.cloneDom = function(dom, options) {
-  return parse(render(dom, options), options).children;
-};
-
-/*
- * A simple way to check for HTML strings or ID strings
- */
-
-var quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/;
-
-/*
- * Check if string is HTML
- */
-exports.isHtml = function(str) {
-  // Faster than running regex, if str starts with `<` and ends with `>`, assume it's HTML
-  if (str.charAt(0) === '<' && str.charAt(str.length - 1) === '>' && str.length >= 3) return true;
-
-  // Run the regex
-  var match = quickExpr.exec(str);
-  return !!(match && match[1]);
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/cheerio/package.json
----------------------------------------------------------------------
diff --git a/node_modules/cheerio/package.json b/node_modules/cheerio/package.json
deleted file mode 100644
index 511edae..0000000
--- a/node_modules/cheerio/package.json
+++ /dev/null
@@ -1,126 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "cheerio@^0.20.0",
-        "scope": null,
-        "escapedName": "cheerio",
-        "name": "cheerio",
-        "rawSpec": "^0.20.0",
-        "spec": ">=0.20.0 <0.21.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/hexo"
-    ]
-  ],
-  "_from": "cheerio@>=0.20.0 <0.21.0",
-  "_id": "cheerio@0.20.0",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/cheerio",
-  "_nodeVersion": "5.5.0",
-  "_npmUser": {
-    "name": "feedic",
-    "email": "me@feedic.com"
-  },
-  "_npmVersion": "3.6.0",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "cheerio@^0.20.0",
-    "scope": null,
-    "escapedName": "cheerio",
-    "name": "cheerio",
-    "rawSpec": "^0.20.0",
-    "spec": ">=0.20.0 <0.21.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/hexo"
-  ],
-  "_resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.20.0.tgz",
-  "_shasum": "5c710f2bab95653272842ba01c6ea61b3545ec35",
-  "_shrinkwrap": null,
-  "_spec": "cheerio@^0.20.0",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/hexo",
-  "author": {
-    "name": "Matt Mueller",
-    "email": "mattmuelle@gmail.com",
-    "url": "mat.io"
-  },
-  "bugs": {
-    "url": "https://github.com/cheeriojs/cheerio/issues"
-  },
-  "dependencies": {
-    "css-select": "~1.2.0",
-    "dom-serializer": "~0.1.0",
-    "entities": "~1.1.1",
-    "htmlparser2": "~3.8.1",
-    "jsdom": "^7.0.2",
-    "lodash": "^4.1.0"
-  },
-  "description": "Tiny, fast, and elegant implementation of core jQuery designed specifically for the server",
-  "devDependencies": {
-    "benchmark": "~1.0.0",
-    "coveralls": "~2.10",
-    "expect.js": "~0.3.1",
-    "istanbul": "~0.2",
-    "jshint": "~2.5.1",
-    "mocha": "*",
-    "xyz": "~0.5.0"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "5c710f2bab95653272842ba01c6ea61b3545ec35",
-    "tarball": "https://registry.npmjs.org/cheerio/-/cheerio-0.20.0.tgz"
-  },
-  "engines": {
-    "node": ">= 0.6"
-  },
-  "files": [
-    "index.js",
-    "lib"
-  ],
-  "gitHead": "c3ec1cd7bff41da0033bdc45375d77844f0f81c0",
-  "homepage": "https://github.com/cheeriojs/cheerio#readme",
-  "keywords": [
-    "htmlparser",
-    "jquery",
-    "selector",
-    "scraper",
-    "parser",
-    "html"
-  ],
-  "license": "MIT",
-  "main": "./index.js",
-  "maintainers": [
-    {
-      "name": "mattmueller",
-      "email": "mattmuelle@gmail.com"
-    },
-    {
-      "name": "davidchambers",
-      "email": "dc@davidchambers.me"
-    },
-    {
-      "name": "jugglinmike",
-      "email": "mike@mikepennisi.com"
-    },
-    {
-      "name": "feedic",
-      "email": "me@feedic.com"
-    }
-  ],
-  "name": "cheerio",
-  "optionalDependencies": {
-    "jsdom": "^7.0.2"
-  },
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/cheeriojs/cheerio.git"
-  },
-  "scripts": {
-    "test": "make test"
-  },
-  "version": "0.20.0"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/chokidar/CHANGELOG.md
----------------------------------------------------------------------
diff --git a/node_modules/chokidar/CHANGELOG.md b/node_modules/chokidar/CHANGELOG.md
deleted file mode 100644
index 0874dee..0000000
--- a/node_modules/chokidar/CHANGELOG.md
+++ /dev/null
@@ -1,268 +0,0 @@
-# Chokidar 1.6.0 (Jun 22, 2016)
-* Added ability for force `usePolling` mode by setting `CHOKIDAR_USEPOLLING`
-  env variable
-
-# Chokidar 1.5.2 (Jun 7, 2016)
-* Fix missing `addDir` events when using `cwd` and `alwaysStat` options
-* Fix missing `add` events for files within a renamed directory
-
-# Chokidar 1.5.1 (May 20, 2016)
-* To help prevent exhaustion of FSEvents system limitations, consolidate watch
-  instances to the common parent upon detection of separate watch instances on
-  many siblings
-
-# Chokidar 1.5.0 (May 10, 2016)
-* Make debounce delay setting used with `atomic: true` user-customizable
-* Fixes and improvements to `awaitWriteFinish` features
-
-# Chokidar 1.4.3 (Feb 26, 2016)
-* Update async-each dependency to ^1.0.0
-
-# Chokidar 1.4.2 (Dec 30, 2015)
-* Now correctly emitting `stats` with `awaitWriteFinish` option.
-
-# Chokidar 1.4.1 (Dec 9, 2015)
-* The watcher could now be correctly subclassed with ES6 class syntax.
-
-# Chokidar 1.4.0 (Dec 3, 2015)
-* Add `.getWatched()` method, exposing all file system entries being watched
-* Apply `awaitWriteFinish` methodology to `change` events (in addition to `add`)
-* Fix handling of symlinks within glob paths (#293)
-* Fix `addDir` and `unlinkDir` events under globs (#337, #401)
-* Fix issues with `.unwatch()` (#374, #403)
-
-# Chokidar 1.3.0 (Nov 18, 2015)
-* Improve `awaitWriteFinish` option behavior
-* Fix some `cwd` option behavior on Windows
-* `awaitWriteFinish` and `cwd` are now compatible
-* Fix some race conditions.
-* #379: Recreating deleted directory doesn't trigger event
-* When adding a previously-deleted file, emit 'add', not 'change'
-
-# Chokidar 1.2.0 (Oct 1, 2015)
-* Allow nested arrays of paths to be provided to `.watch()` and `.add()`
-* Add `awaitWriteFinish` option
-
-# Chokidar 1.1.0 (Sep 23, 2015)
-* Dependency updates including fsevents@1.0.0, improving installation
-
-# Chokidar 1.0.6 (Sep 18, 2015)
-* Fix issue with `.unwatch()` method and relative paths
-
-# Chokidar 1.0.5 (Jul 20, 2015)
-* Fix regression with regexes/fns using in `ignored`
-
-# Chokidar 1.0.4 (Jul 15, 2015)
-* Fix bug with `ignored` files/globs while `cwd` option is set
-
-# Chokidar 1.0.3 (Jun 4, 2015)
-* Fix race issue with `alwaysStat` option and removed files
-
-# Chokidar 1.0.2 (May 30, 2015)
-* Fix bug with absolute paths and ENAMETOOLONG error
-
-# Chokidar 1.0.1 (Apr 8, 2015)
-* Fix bug with `.close()` method in `fs.watch` mode with `persistent: false`
-  option
-
-# Chokidar 1.0.0 (Apr 7, 2015)
-* Glob support! Use globs in `watch`, `add`, and `unwatch` methods
-* Comprehensive symlink support
-* New `unwatch` method to turn off watching of previously watched paths
-* More flexible `ignored` option allowing regex, function, glob, or array
-  courtesy of [anymatch](https://github.com/es128/anymatch)
-* New `cwd` option to set base dir from which relative paths are derived
-* New `depth` option for limiting recursion
-* New `alwaysStat` option to ensure
-  [`fs.Stats`](https://nodejs.org/api/fs.html#fs_class_fs_stats) gets passed
-  with every add/change event
-* New `ready` event emitted when initial fs tree scan is done and watcher is
-  ready for changes
-* New `raw` event exposing data and events from the lower-level watch modules
-* New `followSymlinks` option to impact whether symlinks' targets or the symlink
-  files themselves are watched
-* New `atomic` option for normalizing artifacts from text editors that use
-  atomic write methods
-* Ensured watcher's stability with lots of bugfixes.
-
-# Chokidar 0.12.6 (Jan 6, 2015)
-* Fix bug which breaks `persistent: false` mode when change events occur
-
-# Chokidar 0.12.5 (Dec 17, 2014)
-* Fix bug with matching parent path detection for fsevents instance sharing
-* Fix bug with ignored watch path in nodefs modes
-
-# Chokidar 0.12.4 (Dec 14, 2014)
-* Fix bug in `fs.watch` mode that caused watcher to leak into `cwd`
-* Fix bug preventing ready event when there are symlinks to ignored paths
-
-# Chokidar 0.12.3 (Dec 13, 2014)
-* Fix handling of special files such as named pipes and sockets
-
-# Chokidar 0.12.2 (Dec 12, 2014)
-* Fix recursive symlink handling and some other path resolution problems
-
-# Chokidar 0.12.1 (Dec 10, 2014)
-* Fix a case where file symlinks were not followed properly
-
-# Chokidar 0.12.0 (Dec 8, 2014)
-* Symlink support
-  * Add `followSymlinks` option, which defaults to `true`
-* Change default watch mode on Linux to non-polling `fs.watch`
-* Add `atomic` option to normalize events from editors using atomic writes
-  * Particularly Vim and Sublime
-* Add `raw` event which exposes data from the underlying watch method
-
-# Chokidar 0.11.1 (Nov 19, 2014)
-* Fix a bug where an error is thrown when `fs.watch` instantiation fails
-
-# Chokidar 0.11.0 (Nov 16, 2014)
-* Add a `ready` event, which is emitted after initial file scan completes
-* Fix issue with options keys passed in defined as `undefined`
-* Rename some internal `FSWatcher` properties to indicate they're private
-
-# Chokidar 0.10.9 (Nov 15, 2014)
-* Fix some leftover issues from adding watcher reuse
-
-# Chokidar 0.10.8 (Nov 14, 2014)
-* Remove accidentally committed/published `console.log` statement.
-* Sry 'bout that :crying_cat_face:
-
-# Chokidar 0.10.7 (Nov 14, 2014)
-* Apply watcher reuse methodology to `fs.watch` and `fs.watchFile` as well
-
-# Chokidar 0.10.6 (Nov 12, 2014)
-* More efficient creation/reuse of FSEvents instances to avoid system limits
-* Reduce simultaneous FSEvents instances allowed in a process
-* Handle errors thrown by `fs.watch` upon invocation
-
-# Chokidar 0.10.5 (Nov 6, 2014)
-* Limit number of simultaneous FSEvents instances (fall back to other methods)
-* Prevent some cases of EMFILE errors during initialization
-* Fix ignored files emitting events in some fsevents-mode circumstances
-
-# Chokidar 0.10.4 (Nov 5, 2014)
-* Bump fsevents dependency to ~0.3.1
-  * Should resolve build warnings and `npm rebuild` on non-Macs
-
-# Chokidar 0.10.3 (Oct 28, 2014)
-* Fix removed dir emitting as `unlink` instead of `unlinkDir`
-* Fix issues with file changing to dir or vice versa (gh-165)
-* Fix handling of `ignored` option in fsevents mode
-
-# Chokidar 0.10.2 (Oct 23, 2014)
-* Improve individual file watching
-* Fix fsevents keeping process alive when `persistent: false`
-
-# Chokidar 0.10.1 (19 October 2014)
-* Improve handling of text editor atomic writes
-
-# Chokidar 0.10.0 (Oct 18, 2014)
-* Many stability and consistency improvements
-* Resolve many cases of duplicate or wrong events
-* Correct for fsevents inconsistencies
-* Standardize handling of errors and relative paths
-* Fix issues with watching `./`
-
-# Chokidar 0.9.0 (Sep 25, 2014)
-* Updated fsevents to 0.3
-* Update per-system defaults
-* Fix issues with closing chokidar instance
-* Fix duplicate change events on win32
-
-# Chokidar 0.8.2 (Mar 26, 2014)
-* Fixed npm issues related to fsevents dep.
-* Updated fsevents to 0.2.
-
-# Chokidar 0.8.1 (Dec 16, 2013)
-* Optional deps are now truly optional on windows and
-  linux.
-* Rewritten in JS, again.
-* Fixed some FSEvents-related bugs.
-
-# Chokidar 0.8.0 (Nov 29, 2013)
-* Added ultra-fast low-CPU OS X file watching with FSEvents.
-  It is enabled by default.
-* Added `addDir` and `unlinkDir` events.
-* Polling is now disabled by default on all platforms.
-
-# Chokidar 0.7.1 (Nov 18, 2013)
-* `Watcher#close` now also removes all event listeners.
-
-# Chokidar 0.7.0 (Oct 22, 2013)
-* When `options.ignored` is two-argument function, it will
-  also be called after stating the FS, with `stats` argument.
-* `unlink` is no longer emitted on directories.
-
-# Chokidar 0.6.3 (Aug 12, 2013)
-* Added `usePolling` option (default: `true`).
-  When `false`, chokidar will use `fs.watch` as backend.
-  `fs.watch` is much faster, but not like super reliable.
-
-# Chokidar 0.6.2 (Mar 19, 2013)
-* Fixed watching initially empty directories with `ignoreInitial` option.
-
-# Chokidar 0.6.1 (Mar 19, 2013)
-* Added node.js 0.10 support.
-
-# Chokidar 0.6.0 (Mar 10, 2013)
-* File attributes (stat()) are now passed to `add` and `change` events as second
-  arguments.
-* Changed default polling interval for binary files to 300ms.
-
-# Chokidar 0.5.3 (Jan 13, 2013)
-* Removed emitting of `change` events before `unlink`.
-
-# Chokidar 0.5.2 (Jan 13, 2013)
-* Removed postinstall script to prevent various npm bugs.
-
-# Chokidar 0.5.1 (Jan 6, 2013)
-* When starting to watch non-existing paths, chokidar will no longer throw
-  ENOENT error.
-* Fixed bug with absolute path.
-
-# Chokidar 0.5.0 (Dec 9, 2012)
-* Added a bunch of new options:
-    * `ignoreInitial` that allows to ignore initial `add` events.
-    * `ignorePermissionErrors` that allows to ignore ENOENT etc perm errors.
-    * `interval` and `binaryInterval` that allow to change default
-    fs polling intervals.
-
-# Chokidar 0.4.0 (Jul 26, 2012)
-* Added `all` event that receives two args (event name and path) that combines
-  `add`, `change` and `unlink` events.
-* Switched to `fs.watchFile` on node.js 0.8 on windows.
-* Files are now correctly unwatched after unlink.
-
-# Chokidar 0.3.0 (Jun 24, 2012)
-* `unlink` event are no longer emitted for directories, for consistency with
-  `add`.
-
-# Chokidar 0.2.6 (Jun 8, 2012)
-* Prevented creating of duplicate 'add' events.
-
-# Chokidar 0.2.5 (Jun 8, 2012)
-* Fixed a bug when new files in new directories hadn't been added.
-
-# Chokidar 0.2.4 (Jun 7, 2012)
-* Fixed a bug when unlinked files emitted events after unlink.
-
-# Chokidar 0.2.3 (May 12, 2012)
-* Fixed watching of files on windows.
-
-# Chokidar 0.2.2 (May 4, 2012)
-* Fixed watcher signature.
-
-# Chokidar 0.2.1 (May 4, 2012)
-* Fixed invalid API bug when using `watch()`.
-
-# Chokidar 0.2.0 (May 4, 2012)
-* Rewritten in js.
-
-# Chokidar 0.1.1 (Apr 26, 2012)
-* Changed api to `chokidar.watch()`.
-* Fixed compilation on windows.
-
-# Chokidar 0.1.0 (Apr 20, 2012)
-* Initial release, extracted from
-  [Brunch](https://github.com/brunch/brunch/blob/9847a065aea300da99bd0753f90354cde9de1261/src/helpers.coffee#L66)

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/chokidar/README.md
----------------------------------------------------------------------
diff --git a/node_modules/chokidar/README.md b/node_modules/chokidar/README.md
deleted file mode 100644
index bcd005b..0000000
--- a/node_modules/chokidar/README.md
+++ /dev/null
@@ -1,289 +0,0 @@
-# Chokidar [![Mac/Linux Build Status](https://img.shields.io/travis/paulmillr/chokidar/master.svg?label=Mac%20OSX%20%26%20Linux)](https://travis-ci.org/paulmillr/chokidar) [![Windows Build status](https://img.shields.io/appveyor/ci/es128/chokidar/master.svg?label=Windows)](https://ci.appveyor.com/project/es128/chokidar/branch/master) [![Coverage Status](https://coveralls.io/repos/paulmillr/chokidar/badge.svg)](https://coveralls.io/r/paulmillr/chokidar) [![Join the chat at https://gitter.im/paulmillr/chokidar](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/paulmillr/chokidar?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
-
-> A neat wrapper around node.js fs.watch / fs.watchFile / fsevents.
-
-[![NPM](https://nodei.co/npm-dl/chokidar.png)](https://nodei.co/npm/chokidar/)
-[![NPM](https://nodei.co/npm/chokidar.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/chokidar/)
-
-## Why?
-Node.js `fs.watch`:
-
-* Doesn't report filenames on OS X.
-* Doesn't report events at all when using editors like Sublime on OS X.
-* Often reports events twice.
-* Emits most changes as `rename`.
-* Has [a lot of other issues](https://github.com/joyent/node/search?q=fs.watch&type=Issues)
-* Does not provide an easy way to recursively watch file trees.
-
-Node.js `fs.watchFile`:
-
-* Almost as bad at event handling.
-* Also does not provide any recursive watching.
-* Results in high CPU utilization.
-
-Chokidar resolves these problems.
-
-Initially made for [brunch](http://brunch.io) (an ultra-swift web app build tool), it is now used in
-[gulp](https://github.com/gulpjs/gulp/),
-[karma](http://karma-runner.github.io),
-[PM2](https://github.com/Unitech/PM2),
-[browserify](http://browserify.org/),
-[webpack](http://webpack.github.io/),
-[BrowserSync](http://www.browsersync.io/),
-[Microsoft's Visual Studio Code](https://github.com/microsoft/vscode),
-and [many others](https://www.npmjs.org/browse/depended/chokidar/).
-It has proven itself in production environments.
-
-## How?
-Chokidar does still rely on the Node.js core `fs` module, but when using
-`fs.watch` and `fs.watchFile` for watching, it normalizes the events it
-receives, often checking for truth by getting file stats and/or dir contents.
-
-On Mac OS X, chokidar by default uses a native extension exposing the Darwin
-`FSEvents` API. This provides very efficient recursive watching compared with
-implementations like `kqueue` available on most \*nix platforms. Chokidar still
-does have to do some work to normalize the events received that way as well.
-
-On other platforms, the `fs.watch`-based implementation is the default, which
-avoids polling and keeps CPU usage down. Be advised that chokidar will initiate
-watchers recursively for everything within scope of the paths that have been
-specified, so be judicious about not wasting system resources by watching much
-more than needed.
-
-## Getting started
-Install with npm:
-
-    npm install chokidar --save
-
-Then `require` and use it in your code:
-
-```javascript
-var chokidar = require('chokidar');
-
-// One-liner for current directory, ignores .dotfiles
-chokidar.watch('.', {ignored: /[\/\\]\./}).on('all', (event, path) => {
-  console.log(event, path);
-});
-```
-
-```javascript
-// Example of a more typical implementation structure:
-
-// Initialize watcher.
-var watcher = chokidar.watch('file, dir, glob, or array', {
-  ignored: /[\/\\]\./,
-  persistent: true
-});
-
-// Something to use when events are received.
-var log = console.log.bind(console);
-// Add event listeners.
-watcher
-  .on('add', path => log(`File ${path} has been added`))
-  .on('change', path => log(`File ${path} has been changed`))
-  .on('unlink', path => log(`File ${path} has been removed`));
-
-// More possible events.
-watcher
-  .on('addDir', path => log(`Directory ${path} has been added`))
-  .on('unlinkDir', path => log(`Directory ${path} has been removed`))
-  .on('error', error => log(`Watcher error: ${error}`))
-  .on('ready', () => log('Initial scan complete. Ready for changes'))
-  .on('raw', (event, path, details) => {
-    log('Raw event info:', event, path, details);
-  });
-
-// 'add', 'addDir' and 'change' events also receive stat() results as second
-// argument when available: http://nodejs.org/api/fs.html#fs_class_fs_stats
-watcher.on('change', (path, stats) => {
-  if (stats) console.log(`File ${path} changed size to ${stats.size}`);
-});
-
-// Watch new files.
-watcher.add('new-file');
-watcher.add(['new-file-2', 'new-file-3', '**/other-file*']);
-
-// Get list of actual paths being watched on the filesystem
-var watchedPaths = watcher.getWatched();
-
-// Un-watch some files.
-watcher.unwatch('new-file*');
-
-// Stop watching.
-watcher.close();
-
-// Full list of options. See below for descriptions. (do not use this example)
-chokidar.watch('file', {
-  persistent: true,
-
-  ignored: '*.txt',
-  ignoreInitial: false,
-  followSymlinks: true,
-  cwd: '.',
-
-  usePolling: true,
-  interval: 100,
-  binaryInterval: 300,
-  alwaysStat: false,
-  depth: 99,
-  awaitWriteFinish: {
-    stabilityThreshold: 2000,
-    pollInterval: 100
-  },
-
-  ignorePermissionErrors: false,
-  atomic: true // or a custom 'atomicity delay', in milliseconds (default 100)
-});
-
-```
-
-## API
-
-`chokidar.watch(paths, [options])`
-
-* `paths` (string or array of strings). Paths to files, dirs to be watched
-recursively, or glob patterns.
-* `options` (object) Options object as defined below:
-
-#### Persistence
-
-* `persistent` (default: `true`). Indicates whether the process
-should continue to run as long as files are being watched. If set to
-`false` when using `fsevents` to watch, no more events will be emitted
-after `ready`, even if the process continues to run.
-
-#### Path filtering
-
-* `ignored` ([anymatch](https://github.com/es128/anymatch)-compatible definition)
-Defines files/paths to be ignored. The whole relative or absolute path is
-tested, not just filename. If a function with two arguments is provided, it
-gets called twice per path - once with a single argument (the path), second
-time with two arguments (the path and the
-[`fs.Stats`](http://nodejs.org/api/fs.html#fs_class_fs_stats)
-object of that path).
-* `ignoreInitial` (default: `false`). If set to `false` then `add`/`addDir` events are also emitted for matching paths while
-instantiating the watching as chokidar discovers these file paths (before the `ready` event).
-* `followSymlinks` (default: `true`). When `false`, only the
-symlinks themselves will be watched for changes instead of following
-the link references and bubbling events through the link's path.
-* `cwd` (no default). The base directory from which watch `paths` are to be
-derived. Paths emitted with events will be relative to this.
-
-#### Performance
-
-* `usePolling` (default: `false`).
-Whether to use fs.watchFile (backed by polling), or fs.watch. If polling
-leads to high CPU utilization, consider setting this to `false`. It is
-typically necessary to **set this to `true` to successfully watch files over
-a network**, and it may be necessary to successfully watch files in other
-non-standard situations. Setting to `true` explicitly on OS X overrides the
-`useFsEvents` default. You may also set the CHOKIDAR_USEPOLLING env variable
-to true (1) or false (0) in order to override this option.
-* _Polling-specific settings_ (effective when `usePolling: true`)
-  * `interval` (default: `100`). Interval of file system polling.
-  * `binaryInterval` (default: `300`). Interval of file system
-  polling for binary files.
-  ([see list of binary extensions](https://github.com/sindresorhus/binary-extensions/blob/master/binary-extensions.json))
-* `useFsEvents` (default: `true` on OS X). Whether to use the
-`fsevents` watching interface if available. When set to `true` explicitly
-and `fsevents` is available this supercedes the `usePolling` setting. When
-set to `false` on OS X, `usePolling: true` becomes the default.
-* `alwaysStat` (default: `false`). If relying upon the
-[`fs.Stats`](http://nodejs.org/api/fs.html#fs_class_fs_stats)
-object that may get passed with `add`, `addDir`, and `change` events, set
-this to `true` to ensure it is provided even in cases where it wasn't
-already available from the underlying watch events.
-* `depth` (default: `undefined`). If set, limits how many levels of
-subdirectories will be traversed.
-* `awaitWriteFinish` (default: `false`).
-By default, the `add` event will fire when a file first appear on disk, before
-the entire file has been written. Furthermore, in some cases some `change`
-events will be emitted while the file is being written. In some cases,
-especially when watching for large files there will be a need to wait for the
-write operation to finish before responding to a file creation or modification.
-Setting `awaitWriteFinish` to `true` (or a truthy value) will poll file size,
-holding its `add` and `change` events until the size does not change for a
-configurable amount of time. The appropriate duration setting is heavily
-dependent on the OS and hardware. For accurate detection this parameter should
-be relatively high, making file watching much less responsive.
-Use with caution.
-  * *`options.awaitWriteFinish` can be set to an object in order to adjust
-  timing params:*
-  * `awaitWriteFinish.stabilityThreshold` (default: 2000). Amount of time in
-  milliseconds for a file size to remain constant before emitting its event.
-  * `awaitWriteFinish.pollInterval` (default: 100). File size polling interval.
-
-#### Errors
-* `ignorePermissionErrors` (default: `false`). Indicates whether to watch files
-that don't have read permissions if possible. If watching fails due to `EPERM`
-or `EACCES` with this set to `true`, the errors will be suppressed silently.
-* `atomic` (default: `true` if `useFsEvents` and `usePolling` are `false`).
-Automatically filters out artifacts that occur when using editors that use
-"atomic writes" instead of writing directly to the source file. If a file is
-re-added within 100 ms of being deleted, Chokidar emits a `change` event
-rather than `unlink` then `add`. If the default of 100 ms does not work well
-for you, you can override it by setting `atomic` to a custom value, in
-milliseconds.
-
-### Methods & Events
-
-`chokidar.watch()` produces an instance of `FSWatcher`. Methods of `FSWatcher`:
-
-* `.add(path / paths)`: Add files, directories, or glob patterns for tracking.
-Takes an array of strings or just one string.
-* `.on(event, callback)`: Listen for an FS event.
-Available events: `add`, `addDir`, `change`, `unlink`, `unlinkDir`, `ready`,
-`raw`, `error`.
-Additionally `all` is available which gets emitted with the underlying event
-name and path for every event other than `ready`, `raw`, and `error`.
-* `.unwatch(path / paths)`: Stop watching files, directories, or glob patterns.
-Takes an array of strings or just one string.
-* `.close()`: Removes all listeners from watched files.
-* `.getWatched()`: Returns an object representing all the paths on the file
-system being watched by this `FSWatcher` instance. The object's keys are all the
-directories (using absolute paths unless the `cwd` option was used), and the
-values are arrays of the names of the items contained in each directory.
-
-## CLI
-
-If you need a CLI interface for your file watching, check out
-[chokidar-cli](https://github.com/kimmobrunfeldt/chokidar-cli), allowing you to
-execute a command on each change, or get a stdio stream of change events.
-
-## Install Troubleshooting
-
-* `npm WARN optional dep failed, continuing fsevents@n.n.n`
-  * This message is normal part of how `npm` handles optional dependencies and is
-    not indicative of a problem. Even if accompanied by other related error messages,
-    Chokidar should function properly.
-
-* `ERR! stack Error: Python executable "python" is v3.4.1, which is not supported by gyp.`
-  * You should be able to resolve this by installing python 2.7 and running:
-    `npm config set python python2.7`
-
-* `gyp ERR! stack Error: not found: make`
-  * On Mac, install the XCode command-line tools
-
-## License
-
-The MIT License (MIT)
-
-Copyright (c) 2016 Paul Miller (http://paulmillr.com) & Elan Shanker
-
-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.


[04/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/core-js/client/core.min.js.map
----------------------------------------------------------------------
diff --git a/node_modules/core-js/client/core.min.js.map b/node_modules/core-js/client/core.min.js.map
deleted file mode 100644
index fab3069..0000000
--- a/node_modules/core-js/client/core.min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["core.js"],"names":["__e","__g","undefined","modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","IE8_DOM_DEFINE","$","$export","DESCRIPTORS","createDesc","html","cel","has","cof","invoke","fails","anObject","aFunction","isObject","toObject","toIObject","toInteger","toIndex","toLength","IObject","IE_PROTO","createArrayMethod","arrayIndexOf","ObjectProto","Object","prototype","ArrayProto","Array","arraySlice","slice","arrayJoin","join","defineProperty","setDesc","getOwnDescriptor","getDesc","defineProperties","setDescs","factories","get","a","O","P","Attributes","e","TypeError","value","propertyIsEnumerable","Properties","keys","getKeys","length","i","S","F","getOwnPropertyDescriptor","keys1","split","keys2","concat","keysLen1","createDict","iframeDocument","iframe","gt","style","display","appendChild","src","contentWindow","document","open","write","close","createGetKeys","names","object","key","res
 ult","push","Empty","getPrototypeOf","getProto","constructor","getOwnPropertyNames","getNames","create","construct","len","args","n","Function","bind","that","fn","this","partArgs","arguments","bound","begin","end","klass","start","upTo","size","cloned","charAt","separator","isArray","createArrayReduce","isRight","callbackfn","memo","index","methodize","$fn","arg1","forEach","each","map","filter","some","every","reduce","reduceRight","indexOf","lastIndexOf","el","fromIndex","Math","min","now","Date","lz","num","toISOString","NaN","isFinite","RangeError","d","y","getUTCFullYear","getUTCMilliseconds","s","abs","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","$Object","isEnum","getSymbols","getOwnPropertySymbols","global","core","hide","redefine","ctx","PROTOTYPE","type","name","source","own","out","exp","IS_FORCED","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","B","target","expProto","W","window","self","version","bitmap","enumerable","configurable","writab
 le","exec","SRC","TO_STRING","$toString","TPL","inspectSource","it","val","safe","hasOwnProperty","String","toString","px","random","b","apply","documentElement","is","createElement","un","defined","ceil","floor","isNaN","max","asc","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","res","f","SPECIES","original","C","arg","store","uid","Symbol","SHARED","IS_INCLUDES","$fails","shared","setToStringTag","wks","keyOf","$names","enumKeys","_create","$Symbol","$JSON","JSON","_stringify","stringify","setter","HIDDEN","SymbolRegistry","AllSymbols","useNative","setSymbolDesc","D","protoDesc","wrap","tag","sym","_k","set","isSymbol","$defineProperty","$defineProperties","l","$create","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","$stringify","replacer","$replacer","$$","buggyJSON","symbolStatics","for","keyFor","useSetter","useSimple","def","TAG","stat","windowNames","getWindowNames","symbols","assign
 ","A","K","k","T","$$len","j","x","setPrototypeOf","check","proto","test","buggy","__proto__","classof","ARG","callee","$freeze","freeze","KEY","$seal","seal","$preventExtensions","preventExtensions","$isFrozen","isFrozen","$isSealed","isSealed","$isExtensible","isExtensible","$getPrototypeOf","$keys","FProto","nameRE","NAME","match","HAS_INSTANCE","FunctionProto","toPrimitive","$trim","trim","NUMBER","$Number","Base","BROKEN_COF","TRIM","toNumber","argument","third","radix","maxCode","first","charCodeAt","code","digits","parseInt","Number","valueOf","spaces","space","non","ltrim","RegExp","rtrim","exporter","string","replace","EPSILON","pow","_isFinite","isInteger","number","isSafeInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","parseFloat","log1p","sqrt","$acosh","acosh","MAX_VALUE","log","LN2","asinh","atanh","sign","cbrt","clz32","LOG2E","cosh","expm1","EPSILON32","MAX32","MIN32","roundTiesToEven","fround","$abs","$sign","Infinity","hypot","value1","value2","div","sum","larg","$i
 mul","imul","UINT16","xn","yn","xl","yl","log10","LN10","log2","sinh","tanh","trunc","fromCharCode","$fromCodePoint","fromCodePoint","raw","callSite","tpl","$at","codePointAt","pos","context","ENDS_WITH","$endsWith","endsWith","searchString","endPosition","search","isRegExp","MATCH","re","INCLUDES","includes","repeat","count","str","STARTS_WITH","$startsWith","startsWith","iterated","_t","_i","point","done","LIBRARY","Iterators","$iterCreate","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Constructor","next","DEFAULT","IS_SET","FORCED","methods","getMethod","kind","values","entries","DEF_VALUES","VALUES_BUG","$native","$default","IteratorPrototype","descriptor","isArrayIter","getIterFn","iter","from","arrayLike","step","iterator","mapfn","mapping","iterFn","ret","getIteratorMethod","SAFE_CLOSING","riter","skipClosing","arr","of","addToUnscopables","Arguments","UNSCOPABLES","copyWithin","to","inc","fill","endPos","$find","forced","find","findIndex","$flags","$RegExp",
 "re1","re2","CORRECT_NEW","piRE","fiU","ignoreCase","multiline","unicode","sticky","flags","regexp","SYMBOL","REPLACE","$replace","searchValue","replaceValue","SEARCH","SPLIT","$split","limit","Wrapper","strictNew","forOf","setProto","same","speciesConstructor","asap","PROMISE","process","isNode","empty","testResolve","sub","promise","resolve","USE_NATIVE","P2","works","then","thenableThenGotten","sameConstructor","getConstructor","isThenable","PromiseCapability","reject","$$resolve","$$reject","perform","error","notify","record","isReject","chain","v","ok","run","reaction","handler","fail","h","setTimeout","console","isUnhandled","emit","onunhandledrejection","reason","_d","$reject","r","$resolve","wrapper","Promise","executor","err","onFulfilled","onRejected","catch","capability","all","iterable","abrupt","remaining","results","alreadyCalled","race","head","last","macrotask","Observer","MutationObserver","WebKitMutationObserver","flush","parent","domain","exit","enter","nextTick",
 "toggle","node","createTextNode","observe","characterData","data","task","defer","channel","port","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","counter","queue","ONREADYSTATECHANGE","listner","event","port2","port1","onmessage","postMessage","addEventListener","importScripts","removeChild","clear","strong","Map","entry","getEntry","redefineAll","$iterDefine","ID","$has","setSpecies","SIZE","fastKey","_f","ADDER","_l","delete","prev","setStrong","$iterDetect","common","IS_WEAK","fixMethod","add","BUGGY_ZERO","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","Set","weak","frozenStore","WEAK","tmp","$WeakMap","WeakMap","method","arrayFind","arrayFindIndex","FrozenStore","findFrozen","splice","WeakSet","_apply","thisArgument","argumentsList","Reflect","Target","newTarget","$args","propertyKey","attributes","deleteProperty","desc","Enumerate","enumerate","receiver","ownKeys","V","existingDescriptor","ownDesc","$includes","at","$pad","padLeft"
 ,"maxLength","fillString","left","stringLength","fillStr","intMaxLength","fillLen","stringFiller","padRight","trimLeft","trimRight","$re","escape","regExp","part","getOwnPropertyDescriptors","$values","isEntries","$entries","toJSON","$task","NL","NodeList","HTC","HTMLCollection","NLProto","HTCProto","ArrayValues","partial","navigator","MSIE","userAgent","time","setInterval","path","pargs","_","holder","Dict","dict","isIterable","init","findKey","isDict","createDictMethod","createDictIter","DictIterator","_a","mapPairs","getIterator","delay","define","mixin","make","&","<",">","\"","'","escapeHTML","&amp;","&lt;","&gt;","&quot;","&apos;","unescapeHTML","enabled","$console","enable","disable","$ctx","$Array","statics","setStatics","amd"],"mappings":"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

<TRUNCATED>


[50/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/db.json
----------------------------------------------------------------------
diff --git a/db.json b/db.json
deleted file mode 100644
index d4b1d64..0000000
--- a/db.json
+++ /dev/null
@@ -1 +0,0 @@
-{"meta":{"version":1,"warehouse":"2.2.0"},"models":{"Asset":[],"Cache":[],"Category":[],"Data":[],"Page":[],"Post":[],"PostAsset":[],"PostCategory":[],"PostTag":[],"Tag":[]}}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/JSONStream
----------------------------------------------------------------------
diff --git a/node_modules/.bin/JSONStream b/node_modules/.bin/JSONStream
deleted file mode 120000
index 4490737..0000000
--- a/node_modules/.bin/JSONStream
+++ /dev/null
@@ -1 +0,0 @@
-../JSONStream/index.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/acorn
----------------------------------------------------------------------
diff --git a/node_modules/.bin/acorn b/node_modules/.bin/acorn
deleted file mode 120000
index cf76760..0000000
--- a/node_modules/.bin/acorn
+++ /dev/null
@@ -1 +0,0 @@
-../acorn/bin/acorn
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/bunyan
----------------------------------------------------------------------
diff --git a/node_modules/.bin/bunyan b/node_modules/.bin/bunyan
deleted file mode 120000
index 3555ac7..0000000
--- a/node_modules/.bin/bunyan
+++ /dev/null
@@ -1 +0,0 @@
-../bunyan/bin/bunyan
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/escodegen
----------------------------------------------------------------------
diff --git a/node_modules/.bin/escodegen b/node_modules/.bin/escodegen
deleted file mode 120000
index 01a7c32..0000000
--- a/node_modules/.bin/escodegen
+++ /dev/null
@@ -1 +0,0 @@
-../escodegen/bin/escodegen.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/esgenerate
----------------------------------------------------------------------
diff --git a/node_modules/.bin/esgenerate b/node_modules/.bin/esgenerate
deleted file mode 120000
index 7d0293e..0000000
--- a/node_modules/.bin/esgenerate
+++ /dev/null
@@ -1 +0,0 @@
-../escodegen/bin/esgenerate.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/esparse
----------------------------------------------------------------------
diff --git a/node_modules/.bin/esparse b/node_modules/.bin/esparse
deleted file mode 120000
index 7423b18..0000000
--- a/node_modules/.bin/esparse
+++ /dev/null
@@ -1 +0,0 @@
-../esprima/bin/esparse.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/esvalidate
----------------------------------------------------------------------
diff --git a/node_modules/.bin/esvalidate b/node_modules/.bin/esvalidate
deleted file mode 120000
index 16069ef..0000000
--- a/node_modules/.bin/esvalidate
+++ /dev/null
@@ -1 +0,0 @@
-../esprima/bin/esvalidate.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/hexo
----------------------------------------------------------------------
diff --git a/node_modules/.bin/hexo b/node_modules/.bin/hexo
deleted file mode 120000
index 3efb5f2..0000000
--- a/node_modules/.bin/hexo
+++ /dev/null
@@ -1 +0,0 @@
-../hexo/bin/hexo
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/js-yaml
----------------------------------------------------------------------
diff --git a/node_modules/.bin/js-yaml b/node_modules/.bin/js-yaml
deleted file mode 120000
index 9dbd010..0000000
--- a/node_modules/.bin/js-yaml
+++ /dev/null
@@ -1 +0,0 @@
-../js-yaml/bin/js-yaml.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/marked
----------------------------------------------------------------------
diff --git a/node_modules/.bin/marked b/node_modules/.bin/marked
deleted file mode 120000
index a8d872e..0000000
--- a/node_modules/.bin/marked
+++ /dev/null
@@ -1 +0,0 @@
-../marked/bin/marked
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/md2html
----------------------------------------------------------------------
diff --git a/node_modules/.bin/md2html b/node_modules/.bin/md2html
deleted file mode 120000
index ebcab9a..0000000
--- a/node_modules/.bin/md2html
+++ /dev/null
@@ -1 +0,0 @@
-../markdown/bin/md2html.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/mime
----------------------------------------------------------------------
diff --git a/node_modules/.bin/mime b/node_modules/.bin/mime
deleted file mode 120000
index fbb7ee0..0000000
--- a/node_modules/.bin/mime
+++ /dev/null
@@ -1 +0,0 @@
-../mime/cli.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/mkdirp
----------------------------------------------------------------------
diff --git a/node_modules/.bin/mkdirp b/node_modules/.bin/mkdirp
deleted file mode 120000
index 017896c..0000000
--- a/node_modules/.bin/mkdirp
+++ /dev/null
@@ -1 +0,0 @@
-../mkdirp/bin/cmd.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/ncp
----------------------------------------------------------------------
diff --git a/node_modules/.bin/ncp b/node_modules/.bin/ncp
deleted file mode 120000
index 1c02648..0000000
--- a/node_modules/.bin/ncp
+++ /dev/null
@@ -1 +0,0 @@
-../ncp/bin/ncp
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/nopt
----------------------------------------------------------------------
diff --git a/node_modules/.bin/nopt b/node_modules/.bin/nopt
deleted file mode 120000
index 6b6566e..0000000
--- a/node_modules/.bin/nopt
+++ /dev/null
@@ -1 +0,0 @@
-../nopt/bin/nopt.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/nunjucks-precompile
----------------------------------------------------------------------
diff --git a/node_modules/.bin/nunjucks-precompile b/node_modules/.bin/nunjucks-precompile
deleted file mode 120000
index 3465a52..0000000
--- a/node_modules/.bin/nunjucks-precompile
+++ /dev/null
@@ -1 +0,0 @@
-../nunjucks/bin/precompile
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/rimraf
----------------------------------------------------------------------
diff --git a/node_modules/.bin/rimraf b/node_modules/.bin/rimraf
deleted file mode 120000
index 4cd49a4..0000000
--- a/node_modules/.bin/rimraf
+++ /dev/null
@@ -1 +0,0 @@
-../rimraf/bin.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/sshpk-conv
----------------------------------------------------------------------
diff --git a/node_modules/.bin/sshpk-conv b/node_modules/.bin/sshpk-conv
deleted file mode 120000
index a2a295c..0000000
--- a/node_modules/.bin/sshpk-conv
+++ /dev/null
@@ -1 +0,0 @@
-../sshpk/bin/sshpk-conv
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/sshpk-sign
----------------------------------------------------------------------
diff --git a/node_modules/.bin/sshpk-sign b/node_modules/.bin/sshpk-sign
deleted file mode 120000
index 766b9b3..0000000
--- a/node_modules/.bin/sshpk-sign
+++ /dev/null
@@ -1 +0,0 @@
-../sshpk/bin/sshpk-sign
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/sshpk-verify
----------------------------------------------------------------------
diff --git a/node_modules/.bin/sshpk-verify b/node_modules/.bin/sshpk-verify
deleted file mode 120000
index bfd7e3a..0000000
--- a/node_modules/.bin/sshpk-verify
+++ /dev/null
@@ -1 +0,0 @@
-../sshpk/bin/sshpk-verify
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/strip-indent
----------------------------------------------------------------------
diff --git a/node_modules/.bin/strip-indent b/node_modules/.bin/strip-indent
deleted file mode 120000
index dddee7e..0000000
--- a/node_modules/.bin/strip-indent
+++ /dev/null
@@ -1 +0,0 @@
-../strip-indent/cli.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/stylus
----------------------------------------------------------------------
diff --git a/node_modules/.bin/stylus b/node_modules/.bin/stylus
deleted file mode 120000
index 4113f9b..0000000
--- a/node_modules/.bin/stylus
+++ /dev/null
@@ -1 +0,0 @@
-../stylus/bin/stylus
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/swig
----------------------------------------------------------------------
diff --git a/node_modules/.bin/swig b/node_modules/.bin/swig
deleted file mode 120000
index b4b1e73..0000000
--- a/node_modules/.bin/swig
+++ /dev/null
@@ -1 +0,0 @@
-../swig/bin/swig.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/to-title-case
----------------------------------------------------------------------
diff --git a/node_modules/.bin/to-title-case b/node_modules/.bin/to-title-case
deleted file mode 120000
index ba47060..0000000
--- a/node_modules/.bin/to-title-case
+++ /dev/null
@@ -1 +0,0 @@
-../titlecase/bin.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/uglifyjs
----------------------------------------------------------------------
diff --git a/node_modules/.bin/uglifyjs b/node_modules/.bin/uglifyjs
deleted file mode 120000
index fef3468..0000000
--- a/node_modules/.bin/uglifyjs
+++ /dev/null
@@ -1 +0,0 @@
-../uglify-js/bin/uglifyjs
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/uuid
----------------------------------------------------------------------
diff --git a/node_modules/.bin/uuid b/node_modules/.bin/uuid
deleted file mode 120000
index b3e45bc..0000000
--- a/node_modules/.bin/uuid
+++ /dev/null
@@ -1 +0,0 @@
-../uuid/bin/uuid
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/which
----------------------------------------------------------------------
diff --git a/node_modules/.bin/which b/node_modules/.bin/which
deleted file mode 120000
index f62471c..0000000
--- a/node_modules/.bin/which
+++ /dev/null
@@ -1 +0,0 @@
-../which/bin/which
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/.bin/window-size
----------------------------------------------------------------------
diff --git a/node_modules/.bin/window-size b/node_modules/.bin/window-size
deleted file mode 120000
index e84c8ec..0000000
--- a/node_modules/.bin/window-size
+++ /dev/null
@@ -1 +0,0 @@
-../window-size/cli.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/.npmignore
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/.npmignore b/node_modules/JSONStream/.npmignore
deleted file mode 100644
index a9a9d58..0000000
--- a/node_modules/JSONStream/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-node_modules/*
-node_modules

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/.travis.yml
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/.travis.yml b/node_modules/JSONStream/.travis.yml
deleted file mode 100644
index 5f30bb5..0000000
--- a/node_modules/JSONStream/.travis.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-language: node_js
-node_js:
-  - 4
-  - 5
-  - 6
-sudo: false
-
-

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/LICENSE.APACHE2
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/LICENSE.APACHE2 b/node_modules/JSONStream/LICENSE.APACHE2
deleted file mode 100644
index 6366c04..0000000
--- a/node_modules/JSONStream/LICENSE.APACHE2
+++ /dev/null
@@ -1,15 +0,0 @@
-Apache License, Version 2.0
-
-Copyright (c) 2011 Dominic Tarr
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/LICENSE.MIT
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/LICENSE.MIT b/node_modules/JSONStream/LICENSE.MIT
deleted file mode 100644
index 6eafbd7..0000000
--- a/node_modules/JSONStream/LICENSE.MIT
+++ /dev/null
@@ -1,24 +0,0 @@
-The MIT License
-
-Copyright (c) 2011 Dominic Tarr
-
-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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/examples/all_docs.js
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/examples/all_docs.js b/node_modules/JSONStream/examples/all_docs.js
deleted file mode 100644
index fa87fe5..0000000
--- a/node_modules/JSONStream/examples/all_docs.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var request = require('request')
-  , JSONStream = require('JSONStream')
-  , es = require('event-stream')
-
-var parser = JSONStream.parse(['rows', true]) //emit parts that match this path (any element of the rows array)
-  , req = request({url: 'http://isaacs.couchone.com/registry/_all_docs'})
-  , logger = es.mapSync(function (data) {  //create a stream that logs to stderr,
-    console.error(data)
-    return data  
-  })
-
-req.pipe(parser)
-parser.pipe(logger)

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/index.js
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/index.js b/node_modules/JSONStream/index.js
deleted file mode 100755
index 6d68a19..0000000
--- a/node_modules/JSONStream/index.js
+++ /dev/null
@@ -1,253 +0,0 @@
-#! /usr/bin/env node
-
-'use strict'
-
-var Parser = require('jsonparse')
-  , through = require('through')
-
-/*
-
-  the value of this.stack that creationix's jsonparse has is weird.
-
-  it makes this code ugly, but his problem is way harder that mine,
-  so i'll forgive him.
-
-*/
-
-exports.parse = function (path, map) {
-  var header, footer
-  var parser = new Parser()
-  var stream = through(function (chunk) {
-    if('string' === typeof chunk)
-      chunk = new Buffer(chunk)
-    parser.write(chunk)
-  },
-  function (data) {
-    if(data)
-      stream.write(data)
-    if (header)
-        stream.emit('header', header)
-    if (footer)
-      stream.emit('footer', footer)
-    stream.queue(null)
-  })
-
-  if('string' === typeof path)
-    path = path.split('.').map(function (e) {
-      if (e === '$*')
-        return {emitKey: true}
-      else if (e === '*')
-        return true
-      else if (e === '') // '..'.split('.') returns an empty string
-        return {recurse: true}
-      else
-        return e
-    })
-
-
-  var count = 0, _key
-  if(!path || !path.length)
-    path = null
-
-  parser.onValue = function (value) {
-    if (!this.root)
-      stream.root = value
-
-    if(! path) return
-
-    var i = 0 // iterates on path
-    var j  = 0 // iterates on stack
-    var emitKey = false;
-    var emitPath = false;
-    while (i < path.length) {
-      var key = path[i]
-      var c
-      j++
-
-      if (key && !key.recurse) {
-        c = (j === this.stack.length) ? this : this.stack[j]
-        if (!c) return
-        if (! check(key, c.key)) {
-          setHeaderFooter(c.key, value)
-          return
-        }
-        emitKey = !!key.emitKey;
-        emitPath = !!key.emitPath;
-        i++
-      } else {
-        i++
-        var nextKey = path[i]
-        if (! nextKey) return
-        while (true) {
-          c = (j === this.stack.length) ? this : this.stack[j]
-          if (!c) return
-          if (check(nextKey, c.key)) {
-            i++;
-            if (!Object.isFrozen(this.stack[j]))
-              this.stack[j].value = null
-            break
-          } else {
-            setHeaderFooter(c.key, value)
-          }
-          j++
-        }
-      }
-
-    }
-
-    // emit header
-    if (header) {
-      stream.emit('header', header);
-      header = false;
-    }
-    if (j !== this.stack.length) return
-
-    count ++
-    var actualPath = this.stack.slice(1).map(function(element) { return element.key }).concat([this.key])
-    var data = this.value[this.key]
-    if(null != data)
-      if(null != (data = map ? map(data, actualPath) : data)) {
-        if (emitKey || emitPath) {
-          data = { value: data };
-          if (emitKey)
-            data["key"] = this.key;
-          if (emitPath)
-            data["path"] = actualPath;
-        }
-
-        stream.queue(data)
-      }
-    delete this.value[this.key]
-    for(var k in this.stack)
-      if (!Object.isFrozen(this.stack[k]))
-        this.stack[k].value = null
-  }
-  parser._onToken = parser.onToken;
-
-  parser.onToken = function (token, value) {
-    parser._onToken(token, value);
-    if (this.stack.length === 0) {
-      if (stream.root) {
-        if(!path)
-          stream.queue(stream.root)
-        count = 0;
-        stream.root = null;
-      }
-    }
-  }
-
-  parser.onError = function (err) {
-    if(err.message.indexOf("at position") > -1)
-      err.message = "Invalid JSON (" + err.message + ")";
-    stream.emit('error', err)
-  }
-
-  return stream
-
-  function setHeaderFooter(key, value) {
-    // header has not been emitted yet
-    if (header !== false) {
-      header = header || {}
-      header[key] = value
-    }
-
-    // footer has not been emitted yet but header has
-    if (footer !== false && header === false) {
-      footer = footer || {}
-      footer[key] = value
-    }
-  }
-}
-
-function check (x, y) {
-  if ('string' === typeof x)
-    return y == x
-  else if (x && 'function' === typeof x.exec)
-    return x.exec(y)
-  else if ('boolean' === typeof x || 'object' === typeof x)
-    return x
-  else if ('function' === typeof x)
-    return x(y)
-  return false
-}
-
-exports.stringify = function (op, sep, cl, indent) {
-  indent = indent || 0
-  if (op === false){
-    op = ''
-    sep = '\n'
-    cl = ''
-  } else if (op == null) {
-
-    op = '[\n'
-    sep = '\n,\n'
-    cl = '\n]\n'
-
-  }
-
-  //else, what ever you like
-
-  var stream
-    , first = true
-    , anyData = false
-  stream = through(function (data) {
-    anyData = true
-    try {
-      var json = JSON.stringify(data, null, indent)
-    } catch (err) {
-      return stream.emit('error', err)
-    }
-    if(first) { first = false ; stream.queue(op + json)}
-    else stream.queue(sep + json)
-  },
-  function (data) {
-    if(!anyData)
-      stream.queue(op)
-    stream.queue(cl)
-    stream.queue(null)
-  })
-
-  return stream
-}
-
-exports.stringifyObject = function (op, sep, cl, indent) {
-  indent = indent || 0
-  if (op === false){
-    op = ''
-    sep = '\n'
-    cl = ''
-  } else if (op == null) {
-
-    op = '{\n'
-    sep = '\n,\n'
-    cl = '\n}\n'
-
-  }
-
-  //else, what ever you like
-
-  var first = true
-  var anyData = false
-  var stream = through(function (data) {
-    anyData = true
-    var json = JSON.stringify(data[0]) + ':' + JSON.stringify(data[1], null, indent)
-    if(first) { first = false ; this.queue(op + json)}
-    else this.queue(sep + json)
-  },
-  function (data) {
-    if(!anyData) this.queue(op)
-    this.queue(cl)
-
-    this.queue(null)
-  })
-
-  return stream
-}
-
-if(!module.parent && process.title !== 'browser') {
-  process.stdin
-    .pipe(exports.parse(process.argv[2]))
-    .pipe(exports.stringify('[', ',\n', ']\n', 2))
-    .pipe(process.stdout)
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/package.json
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/package.json b/node_modules/JSONStream/package.json
deleted file mode 100644
index 3071ea3..0000000
--- a/node_modules/JSONStream/package.json
+++ /dev/null
@@ -1,113 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "JSONStream@^1.0.7",
-        "scope": null,
-        "escapedName": "JSONStream",
-        "name": "JSONStream",
-        "rawSpec": "^1.0.7",
-        "spec": ">=1.0.7 <2.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/warehouse"
-    ]
-  ],
-  "_from": "JSONStream@>=1.0.7 <2.0.0",
-  "_id": "JSONStream@1.3.1",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/JSONStream",
-  "_nodeVersion": "6.9.4",
-  "_npmOperationalInternal": {
-    "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/JSONStream-1.3.1.tgz_1487992062630_0.4616028449963778"
-  },
-  "_npmUser": {
-    "name": "dominictarr",
-    "email": "dominic.tarr@gmail.com"
-  },
-  "_npmVersion": "3.10.10",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "JSONStream@^1.0.7",
-    "scope": null,
-    "escapedName": "JSONStream",
-    "name": "JSONStream",
-    "rawSpec": "^1.0.7",
-    "spec": ">=1.0.7 <2.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/warehouse"
-  ],
-  "_resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz",
-  "_shasum": "707f761e01dae9e16f1bcf93703b78c70966579a",
-  "_shrinkwrap": null,
-  "_spec": "JSONStream@^1.0.7",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/warehouse",
-  "author": {
-    "name": "Dominic Tarr",
-    "email": "dominic.tarr@gmail.com",
-    "url": "http://bit.ly/dominictarr"
-  },
-  "bin": {
-    "JSONStream": "./index.js"
-  },
-  "bugs": {
-    "url": "https://github.com/dominictarr/JSONStream/issues"
-  },
-  "dependencies": {
-    "jsonparse": "^1.2.0",
-    "through": ">=2.2.7 <3"
-  },
-  "description": "rawStream.pipe(JSONStream.parse()).pipe(streamOfObjects)",
-  "devDependencies": {
-    "assertions": "~2.2.2",
-    "event-stream": "~0.7.0",
-    "it-is": "~1",
-    "render": "~0.1.1",
-    "tape": "~2.12.3",
-    "trees": "~0.0.3"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "707f761e01dae9e16f1bcf93703b78c70966579a",
-    "tarball": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz"
-  },
-  "engines": {
-    "node": "*"
-  },
-  "gitHead": "71ab5610d272bb47e64957e2191df6662ee64a90",
-  "homepage": "http://github.com/dominictarr/JSONStream",
-  "keywords": [
-    "json",
-    "stream",
-    "streaming",
-    "parser",
-    "async",
-    "parsing"
-  ],
-  "license": "(MIT OR Apache-2.0)",
-  "maintainers": [
-    {
-      "name": "dominictarr",
-      "email": "dominic.tarr@gmail.com"
-    },
-    {
-      "name": "doowb",
-      "email": "brian.woodward@gmail.com"
-    }
-  ],
-  "name": "JSONStream",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/dominictarr/JSONStream.git"
-  },
-  "scripts": {
-    "test": "set -e; for t in test/*.js; do echo '***' $t '***'; node $t; done"
-  },
-  "version": "1.3.1"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/readme.markdown
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/readme.markdown b/node_modules/JSONStream/readme.markdown
deleted file mode 100644
index 422c3df..0000000
--- a/node_modules/JSONStream/readme.markdown
+++ /dev/null
@@ -1,207 +0,0 @@
-# JSONStream
-
-streaming JSON.parse and stringify
-
-![](https://secure.travis-ci.org/dominictarr/JSONStream.png?branch=master)
-
-## install
-```npm install JSONStream```
-
-## example
-
-``` js
-
-var request = require('request')
-  , JSONStream = require('JSONStream')
-  , es = require('event-stream')
-
-request({url: 'http://isaacs.couchone.com/registry/_all_docs'})
-  .pipe(JSONStream.parse('rows.*'))
-  .pipe(es.mapSync(function (data) {
-    console.error(data)
-    return data
-  }))
-```
-
-## JSONStream.parse(path)
-
-parse stream of values that match a path
-
-``` js
-  JSONStream.parse('rows.*.doc')
-```
-
-The `..` operator is the recursive descent operator from [JSONPath](http://goessner.net/articles/JsonPath/), which will match a child at any depth (see examples below).
-
-If your keys have keys that include `.` or `*` etc, use an array instead.
-`['row', true, /^doc/]`.
-
-If you use an array, `RegExp`s, booleans, and/or functions. The `..` operator is also available in array representation, using `{recurse: true}`.
-any object that matches the path will be emitted as 'data' (and `pipe`d down stream)
-
-If `path` is empty or null, no 'data' events are emitted.
-
-If you want to have keys emitted, you can prefix your `*` operator with `$`: `obj.$*` - in this case the data passed to the stream is an object with a `key` holding the key and a `value` property holding the data.
-
-### Examples
-
-query a couchdb view:
-
-``` bash
-curl -sS localhost:5984/tests/_all_docs&include_docs=true
-```
-you will get something like this:
-
-``` js
-{"total_rows":129,"offset":0,"rows":[
-  { "id":"change1_0.6995461115147918"
-  , "key":"change1_0.6995461115147918"
-  , "value":{"rev":"1-e240bae28c7bb3667f02760f6398d508"}
-  , "doc":{
-      "_id":  "change1_0.6995461115147918"
-    , "_rev": "1-e240bae28c7bb3667f02760f6398d508","hello":1}
-  },
-  { "id":"change2_0.6995461115147918"
-  , "key":"change2_0.6995461115147918"
-  , "value":{"rev":"1-13677d36b98c0c075145bb8975105153"}
-  , "doc":{
-      "_id":"change2_0.6995461115147918"
-    , "_rev":"1-13677d36b98c0c075145bb8975105153"
-    , "hello":2
-    }
-  },
-]}
-
-```
-
-we are probably most interested in the `rows.*.doc`
-
-create a `Stream` that parses the documents from the feed like this:
-
-``` js
-var stream = JSONStream.parse(['rows', true, 'doc']) //rows, ANYTHING, doc
-
-stream.on('data', function(data) {
-  console.log('received:', data);
-});
-//emits anything from _before_ the first match
-stream.on('header', function (data) {
-  console.log('header:', data) // => {"total_rows":129,"offset":0}
-})
-
-```
-awesome!
-
-In case you wanted the contents the doc emitted:
-
-``` js
-var stream = JSONStream.parse(['rows', true, 'doc', {emitKey: true}]) //rows, ANYTHING, doc, items in docs with keys
-
-stream.on('data', function(data) {
-  console.log('key:', data.key);
-  console.log('value:', data.value);
-});
-
-```
-
-You can also emit the path:
-
-``` js
-var stream = JSONStream.parse(['rows', true, 'doc', {emitPath: true}]) //rows, ANYTHING, doc, items in docs with keys
-
-stream.on('data', function(data) {
-  console.log('path:', data.path);
-  console.log('value:', data.value);
-});
-
-```
-
-### recursive patterns (..)
-
-`JSONStream.parse('docs..value')` 
-(or `JSONStream.parse(['docs', {recurse: true}, 'value'])` using an array)
-will emit every `value` object that is a child, grand-child, etc. of the 
-`docs` object. In this example, it will match exactly 5 times at various depth
-levels, emitting 0, 1, 2, 3 and 4 as results.
-
-```js
-{
-  "total": 5,
-  "docs": [
-    {
-      "key": {
-        "value": 0,
-        "some": "property"
-      }
-    },
-    {"value": 1},
-    {"value": 2},
-    {"blbl": [{}, {"a":0, "b":1, "value":3}, 10]},
-    {"value": 4}
-  ]
-}
-```
-
-## JSONStream.parse(pattern, map)
-
-provide a function that can be used to map or filter
-the json output. `map` is passed the value at that node of the pattern,
-if `map` return non-nullish (anything but `null` or `undefined`)
-that value will be emitted in the stream. If it returns a nullish value,
-nothing will be emitted.
-
-`JSONStream` also emits `'header'` and `'footer'` events,
-the `'header'` event contains anything in the output that was before
-the first match, and the `'footer'`, is anything after the last match.
-
-## JSONStream.stringify(open, sep, close)
-
-Create a writable stream.
-
-you may pass in custom `open`, `close`, and `seperator` strings.
-But, by default, `JSONStream.stringify()` will create an array,
-(with default options `open='[\n', sep='\n,\n', close='\n]\n'`)
-
-If you call `JSONStream.stringify(false)`
-the elements will only be seperated by a newline.
-
-If you only write one item this will be valid JSON.
-
-If you write many items,
-you can use a `RegExp` to split it into valid chunks.
-
-## JSONStream.stringifyObject(open, sep, close)
-
-Very much like `JSONStream.stringify`,
-but creates a writable stream for objects instead of arrays.
-
-Accordingly, `open='{\n', sep='\n,\n', close='\n}\n'`.
-
-When you `.write()` to the stream you must supply an array with `[ key, data ]`
-as the first argument.
-
-## unix tool
-
-query npm to see all the modules that browserify has ever depended on.
-
-``` bash
-curl https://registry.npmjs.org/browserify | JSONStream 'versions.*.dependencies'
-```
-
-## numbers
-
-numbers will be emitted as numbers.
-huge numbers that cannot be represented in memory as javascript numbers will be emitted as strings.
-cf https://github.com/creationix/jsonparse/commit/044b268f01c4b8f97fb936fc85d3bcfba179e5bb for details.
-
-## Acknowlegements
-
-this module depends on https://github.com/creationix/jsonparse
-by Tim Caswell
-and also thanks to Florent Jaby for teaching me about parsing with:
-https://github.com/Floby/node-json-streams
-
-## license
-
-Dual-licensed under the MIT License or the Apache License, version 2.0
-

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/test/bool.js
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/test/bool.js b/node_modules/JSONStream/test/bool.js
deleted file mode 100644
index 6c386d6..0000000
--- a/node_modules/JSONStream/test/bool.js
+++ /dev/null
@@ -1,41 +0,0 @@
-
-var fs = require ('fs')
-  , join = require('path').join
-  , file = join(__dirname, 'fixtures','all_npm.json')
-  , JSONStream = require('../')
-  , it = require('it-is').style('colour')
-
-  function randomObj () {
-    return (
-      Math.random () < 0.4
-      ? {hello: 'eonuhckmqjk',
-          whatever: 236515,
-          lies: true,
-          nothing: [null],
-//          stuff: [Math.random(),Math.random(),Math.random()]
-        } 
-      : ['AOREC', 'reoubaor', {ouec: 62642}, [[[], {}, 53]]]
-    )
-  }
-
-var expected =  []
-  , stringify = JSONStream.stringify()
-  , es = require('event-stream')
-  , stringified = ''
-  , called = 0
-  , count = 10
-  , ended = false
-  
-while (count --)
-  expected.push(randomObj())
-
-  es.connect(
-    es.readArray(expected),
-    stringify,
-    JSONStream.parse([true]),
-    es.writeArray(function (err, lines) {
-    
-      it(lines).has(expected)
-      console.error('PASSED')
-    })
-  )

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/test/browser.js
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/test/browser.js b/node_modules/JSONStream/test/browser.js
deleted file mode 100644
index 3c28d49..0000000
--- a/node_modules/JSONStream/test/browser.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var test = require('tape')
-var JSONStream = require('../')
-var testData = '{"rows":[{"hello":"world"}, {"foo": "bar"}]}'
-
-test('basic parsing', function (t) {
-  t.plan(2)
-  var parsed = JSONStream.parse("rows.*")
-  var parsedKeys = {}
-  parsed.on('data', function(match) {
-    parsedKeys[Object.keys(match)[0]] = true
-  })
-  parsed.on('end', function() {
-    t.equal(!!parsedKeys['hello'], true)
-    t.equal(!!parsedKeys['foo'], true)
-  })
-  parsed.write(testData)
-  parsed.end()
-})
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/test/destroy_missing.js
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/test/destroy_missing.js b/node_modules/JSONStream/test/destroy_missing.js
deleted file mode 100644
index 315fdc8..0000000
--- a/node_modules/JSONStream/test/destroy_missing.js
+++ /dev/null
@@ -1,27 +0,0 @@
-var fs = require ('fs');
-var net = require('net');
-var join = require('path').join;
-var file = join(__dirname, 'fixtures','all_npm.json');
-var JSONStream = require('../');
-
-
-var server = net.createServer(function(client) {
-    var parser = JSONStream.parse([]);
-    parser.on('end', function() {
-        console.log('close')
-        console.error('PASSED');
-        server.close();
-    });
-    client.pipe(parser);
-    var n = 4
-    client.on('data', function () {
-      if(--n) return
-      client.end();
-    })
-});
-server.listen(9999);
-
-
-var client = net.connect({ port : 9999 }, function() {
-    fs.createReadStream(file).pipe(client).on('data', console.log) //.resume();
-});

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/test/disabled/doubledot1.js
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/test/disabled/doubledot1.js b/node_modules/JSONStream/test/disabled/doubledot1.js
deleted file mode 100644
index 78149b9..0000000
--- a/node_modules/JSONStream/test/disabled/doubledot1.js
+++ /dev/null
@@ -1,29 +0,0 @@
-var fs = require ('fs')
-  , join = require('path').join
-  , file = join(__dirname, 'fixtures','all_npm.json')
-  , JSONStream = require('../')
-  , it = require('it-is')
-
-var expected = JSON.parse(fs.readFileSync(file))
-  , parser = JSONStream.parse('rows..rev')
-  , called = 0
-  , ended = false
-  , parsed = []
-
-fs.createReadStream(file).pipe(parser)
-  
-parser.on('data', function (data) {
-  called ++
-  parsed.push(data)
-})
-
-parser.on('end', function () {
-  ended = true
-})
-
-process.on('exit', function () {
-  it(called).equal(expected.rows.length)
-  for (var i = 0 ; i < expected.rows.length ; i++)
-    it(parsed[i]).deepEqual(expected.rows[i].value.rev)
-  console.error('PASSED')
-})

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/test/disabled/doubledot2.js
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/test/disabled/doubledot2.js b/node_modules/JSONStream/test/disabled/doubledot2.js
deleted file mode 100644
index f99d881..0000000
--- a/node_modules/JSONStream/test/disabled/doubledot2.js
+++ /dev/null
@@ -1,29 +0,0 @@
- var fs = require ('fs')
-   , join = require('path').join
-   , file = join(__dirname, 'fixtures','depth.json')
-   , JSONStream = require('../')
-   , it = require('it-is')
-
- var expected = JSON.parse(fs.readFileSync(file))
-   , parser = JSONStream.parse(['docs', {recurse: true}, 'value'])
-   , called = 0
-   , ended = false
-   , parsed = []
-
- fs.createReadStream(file).pipe(parser)
-  
- parser.on('data', function (data) {
-   called ++
-   parsed.push(data)
- })
-
- parser.on('end', function () {
-   ended = true
- })
-
- process.on('exit', function () {
-   it(called).equal(5)
-   for (var i = 0 ; i < 5 ; i++)
-     it(parsed[i]).deepEqual(i)
-   console.error('PASSED')
- })

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/test/empty.js
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/test/empty.js b/node_modules/JSONStream/test/empty.js
deleted file mode 100644
index 19e888c..0000000
--- a/node_modules/JSONStream/test/empty.js
+++ /dev/null
@@ -1,44 +0,0 @@
-var JSONStream = require('../')
-  , stream = require('stream')
-  , it = require('it-is')
-
-var output = [ [], [] ]
-
-var parser1 = JSONStream.parse(['docs', /./])
-parser1.on('data', function(data) {
-  output[0].push(data)
-})
-
-var parser2 = JSONStream.parse(['docs', /./])
-parser2.on('data', function(data) {
-  output[1].push(data)
-})
-
-var pending = 2
-function onend () {
-  if (--pending > 0) return
-  it(output).deepEqual([
-    [], [{hello: 'world'}]
-  ])
-  console.error('PASSED')
-}
-parser1.on('end', onend)
-parser2.on('end', onend)
-
-function makeReadableStream() {
-  var readStream = new stream.Stream()
-  readStream.readable = true
-  readStream.write = function (data) { this.emit('data', data) }
-  readStream.end = function (data) { this.emit('end') }
-  return readStream
-}
-
-var emptyArray = makeReadableStream()
-emptyArray.pipe(parser1)
-emptyArray.write('{"docs":[]}')
-emptyArray.end()
-
-var objectArray = makeReadableStream()
-objectArray.pipe(parser2)
-objectArray.write('{"docs":[{"hello":"world"}]}')
-objectArray.end()

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/test/error_contents.js
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/test/error_contents.js b/node_modules/JSONStream/test/error_contents.js
deleted file mode 100644
index 13c27ae..0000000
--- a/node_modules/JSONStream/test/error_contents.js
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-var fs = require ('fs')
-  , join = require('path').join
-  , file = join(__dirname, 'fixtures','error.json')
-  , JSONStream = require('../')
-  , it = require('it-is')
-
-var expected = JSON.parse(fs.readFileSync(file))
-  , parser = JSONStream.parse(['rows'])
-  , called = 0
-  , headerCalled = 0
-  , footerCalled = 0
-  , ended = false
-  , parsed = []
-
-fs.createReadStream(file).pipe(parser)
-
-parser.on('header', function (data) {
-  headerCalled ++
-  it(data).deepEqual({
-    error: 'error_code',
-    message: 'this is an error message'
-  })
-})
-
-parser.on('footer', function (data) {
-  footerCalled ++
-})
-
-parser.on('data', function (data) {
-  called ++
-  parsed.push(data)
-})
-
-parser.on('end', function () {
-  ended = true
-})
-
-process.on('exit', function () {
-  it(called).equal(0)
-  it(headerCalled).equal(1)
-  it(footerCalled).equal(0)
-  console.error('PASSED')
-})



[44/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/src/expression.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/src/expression.js b/node_modules/acorn/src/expression.js
deleted file mode 100644
index 5f5b8a3..0000000
--- a/node_modules/acorn/src/expression.js
+++ /dev/null
@@ -1,707 +0,0 @@
-// A recursive descent parser operates by defining functions for all
-// syntactic elements, and recursively calling those, each function
-// advancing the input stream and returning an AST node. Precedence
-// of constructs (for example, the fact that `!x[1]` means `!(x[1])`
-// instead of `(!x)[1]` is handled by the fact that the parser
-// function that parses unary prefix operators is called first, and
-// in turn calls the function that parses `[]` subscripts — that
-// way, it'll receive the node for `x[1]` already parsed, and wraps
-// *that* in the unary operator node.
-//
-// Acorn uses an [operator precedence parser][opp] to handle binary
-// operator precedence, because it is much more compact than using
-// the technique outlined above, which uses different, nesting
-// functions to specify precedence, for all of the ten binary
-// precedence levels that JavaScript defines.
-//
-// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser
-
-import {types as tt} from "./tokentype"
-import {Parser} from "./state"
-
-const pp = Parser.prototype
-
-// Check if property name clashes with already added.
-// Object/class getters and setters are not allowed to clash —
-// either with each other or with an init property — and in
-// strict mode, init properties are also not allowed to be repeated.
-
-pp.checkPropClash = function(prop, propHash) {
-  if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand))
-    return
-  let {key} = prop, name
-  switch (key.type) {
-  case "Identifier": name = key.name; break
-  case "Literal": name = String(key.value); break
-  default: return
-  }
-  let {kind} = prop
-  if (this.options.ecmaVersion >= 6) {
-    if (name === "__proto__" && kind === "init") {
-      if (propHash.proto) this.raise(key.start, "Redefinition of __proto__ property");
-      propHash.proto = true
-    }
-    return
-  }
-  name = "$" + name
-  let other = propHash[name]
-  if (other) {
-    let isGetSet = kind !== "init"
-    if ((this.strict || isGetSet) && other[kind] || !(isGetSet ^ other.init))
-      this.raise(key.start, "Redefinition of property")
-  } else {
-    other = propHash[name] = {
-      init: false,
-      get: false,
-      set: false
-    }
-  }
-  other[kind] = true
-}
-
-// ### Expression parsing
-
-// These nest, from the most general expression type at the top to
-// 'atomic', nondivisible expression types at the bottom. Most of
-// the functions will simply let the function(s) below them parse,
-// and, *if* the syntactic construct they handle is present, wrap
-// the AST node that the inner parser gave them in another node.
-
-// Parse a full expression. The optional arguments are used to
-// forbid the `in` operator (in for loops initalization expressions)
-// and provide reference for storing '=' operator inside shorthand
-// property assignment in contexts where both object expression
-// and object pattern might appear (so it's possible to raise
-// delayed syntax error at correct position).
-
-pp.parseExpression = function(noIn, refDestructuringErrors) {
-  let startPos = this.start, startLoc = this.startLoc
-  let expr = this.parseMaybeAssign(noIn, refDestructuringErrors)
-  if (this.type === tt.comma) {
-    let node = this.startNodeAt(startPos, startLoc)
-    node.expressions = [expr]
-    while (this.eat(tt.comma)) node.expressions.push(this.parseMaybeAssign(noIn, refDestructuringErrors))
-    return this.finishNode(node, "SequenceExpression")
-  }
-  return expr
-}
-
-// Parse an assignment expression. This includes applications of
-// operators like `+=`.
-
-pp.parseMaybeAssign = function(noIn, refDestructuringErrors, afterLeftParse) {
-  if (this.type == tt._yield && this.inGenerator) return this.parseYield()
-
-  let validateDestructuring = false
-  if (!refDestructuringErrors) {
-    refDestructuringErrors = {shorthandAssign: 0, trailingComma: 0}
-    validateDestructuring = true
-  }
-  let startPos = this.start, startLoc = this.startLoc
-  if (this.type == tt.parenL || this.type == tt.name)
-    this.potentialArrowAt = this.start
-  let left = this.parseMaybeConditional(noIn, refDestructuringErrors)
-  if (afterLeftParse) left = afterLeftParse.call(this, left, startPos, startLoc)
-  if (this.type.isAssign) {
-    if (validateDestructuring) this.checkPatternErrors(refDestructuringErrors, true)
-    let node = this.startNodeAt(startPos, startLoc)
-    node.operator = this.value
-    node.left = this.type === tt.eq ? this.toAssignable(left) : left
-    refDestructuringErrors.shorthandAssign = 0 // reset because shorthand default was used correctly
-    this.checkLVal(left)
-    this.next()
-    node.right = this.parseMaybeAssign(noIn)
-    return this.finishNode(node, "AssignmentExpression")
-  } else {
-    if (validateDestructuring) this.checkExpressionErrors(refDestructuringErrors, true)
-  }
-  return left
-}
-
-// Parse a ternary conditional (`?:`) operator.
-
-pp.parseMaybeConditional = function(noIn, refDestructuringErrors) {
-  let startPos = this.start, startLoc = this.startLoc
-  let expr = this.parseExprOps(noIn, refDestructuringErrors)
-  if (this.checkExpressionErrors(refDestructuringErrors)) return expr
-  if (this.eat(tt.question)) {
-    let node = this.startNodeAt(startPos, startLoc)
-    node.test = expr
-    node.consequent = this.parseMaybeAssign()
-    this.expect(tt.colon)
-    node.alternate = this.parseMaybeAssign(noIn)
-    return this.finishNode(node, "ConditionalExpression")
-  }
-  return expr
-}
-
-// Start the precedence parser.
-
-pp.parseExprOps = function(noIn, refDestructuringErrors) {
-  let startPos = this.start, startLoc = this.startLoc
-  let expr = this.parseMaybeUnary(refDestructuringErrors)
-  if (this.checkExpressionErrors(refDestructuringErrors)) return expr
-  return this.parseExprOp(expr, startPos, startLoc, -1, noIn)
-}
-
-// Parse binary operators with the operator precedence parsing
-// algorithm. `left` is the left-hand side of the operator.
-// `minPrec` provides context that allows the function to stop and
-// defer further parser to one of its callers when it encounters an
-// operator that has a lower precedence than the set it is parsing.
-
-pp.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, noIn) {
-  let prec = this.type.binop
-  if (prec != null && (!noIn || this.type !== tt._in)) {
-    if (prec > minPrec) {
-      let node = this.startNodeAt(leftStartPos, leftStartLoc)
-      node.left = left
-      node.operator = this.value
-      let op = this.type
-      this.next()
-      let startPos = this.start, startLoc = this.startLoc
-      node.right = this.parseExprOp(this.parseMaybeUnary(), startPos, startLoc, prec, noIn)
-      this.finishNode(node, (op === tt.logicalOR || op === tt.logicalAND) ? "LogicalExpression" : "BinaryExpression")
-      return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, noIn)
-    }
-  }
-  return left
-}
-
-// Parse unary operators, both prefix and postfix.
-
-pp.parseMaybeUnary = function(refDestructuringErrors) {
-  if (this.type.prefix) {
-    let node = this.startNode(), update = this.type === tt.incDec
-    node.operator = this.value
-    node.prefix = true
-    this.next()
-    node.argument = this.parseMaybeUnary()
-    this.checkExpressionErrors(refDestructuringErrors, true)
-    if (update) this.checkLVal(node.argument)
-    else if (this.strict && node.operator === "delete" &&
-             node.argument.type === "Identifier")
-      this.raise(node.start, "Deleting local variable in strict mode")
-    return this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression")
-  }
-  let startPos = this.start, startLoc = this.startLoc
-  let expr = this.parseExprSubscripts(refDestructuringErrors)
-  if (this.checkExpressionErrors(refDestructuringErrors)) return expr
-  while (this.type.postfix && !this.canInsertSemicolon()) {
-    let node = this.startNodeAt(startPos, startLoc)
-    node.operator = this.value
-    node.prefix = false
-    node.argument = expr
-    this.checkLVal(expr)
-    this.next()
-    expr = this.finishNode(node, "UpdateExpression")
-  }
-  return expr
-}
-
-// Parse call, dot, and `[]`-subscript expressions.
-
-pp.parseExprSubscripts = function(refDestructuringErrors) {
-  let startPos = this.start, startLoc = this.startLoc
-  let expr = this.parseExprAtom(refDestructuringErrors)
-  let skipArrowSubscripts = expr.type === "ArrowFunctionExpression" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== ")";
-  if (this.checkExpressionErrors(refDestructuringErrors) || skipArrowSubscripts) return expr
-  return this.parseSubscripts(expr, startPos, startLoc)
-}
-
-pp.parseSubscripts = function(base, startPos, startLoc, noCalls) {
-  for (;;) {
-    if (this.eat(tt.dot)) {
-      let node = this.startNodeAt(startPos, startLoc)
-      node.object = base
-      node.property = this.parseIdent(true)
-      node.computed = false
-      base = this.finishNode(node, "MemberExpression")
-    } else if (this.eat(tt.bracketL)) {
-      let node = this.startNodeAt(startPos, startLoc)
-      node.object = base
-      node.property = this.parseExpression()
-      node.computed = true
-      this.expect(tt.bracketR)
-      base = this.finishNode(node, "MemberExpression")
-    } else if (!noCalls && this.eat(tt.parenL)) {
-      let node = this.startNodeAt(startPos, startLoc)
-      node.callee = base
-      node.arguments = this.parseExprList(tt.parenR, false)
-      base = this.finishNode(node, "CallExpression")
-    } else if (this.type === tt.backQuote) {
-      let node = this.startNodeAt(startPos, startLoc)
-      node.tag = base
-      node.quasi = this.parseTemplate()
-      base = this.finishNode(node, "TaggedTemplateExpression")
-    } else {
-      return base
-    }
-  }
-}
-
-// Parse an atomic expression — either a single token that is an
-// expression, an expression started by a keyword like `function` or
-// `new`, or an expression wrapped in punctuation like `()`, `[]`,
-// or `{}`.
-
-pp.parseExprAtom = function(refDestructuringErrors) {
-  let node, canBeArrow = this.potentialArrowAt == this.start
-  switch (this.type) {
-  case tt._super:
-    if (!this.inFunction)
-      this.raise(this.start, "'super' outside of function or class")
-  case tt._this:
-    let type = this.type === tt._this ? "ThisExpression" : "Super"
-    node = this.startNode()
-    this.next()
-    return this.finishNode(node, type)
-
-  case tt._yield:
-    if (this.inGenerator) this.unexpected()
-
-  case tt.name:
-    let startPos = this.start, startLoc = this.startLoc
-    let id = this.parseIdent(this.type !== tt.name)
-    if (canBeArrow && !this.canInsertSemicolon() && this.eat(tt.arrow))
-      return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id])
-    return id
-
-  case tt.regexp:
-    let value = this.value
-    node = this.parseLiteral(value.value)
-    node.regex = {pattern: value.pattern, flags: value.flags}
-    return node
-
-  case tt.num: case tt.string:
-    return this.parseLiteral(this.value)
-
-  case tt._null: case tt._true: case tt._false:
-    node = this.startNode()
-    node.value = this.type === tt._null ? null : this.type === tt._true
-    node.raw = this.type.keyword
-    this.next()
-    return this.finishNode(node, "Literal")
-
-  case tt.parenL:
-    return this.parseParenAndDistinguishExpression(canBeArrow)
-
-  case tt.bracketL:
-    node = this.startNode()
-    this.next()
-    // check whether this is array comprehension or regular array
-    if (this.options.ecmaVersion >= 7 && this.type === tt._for) {
-      return this.parseComprehension(node, false)
-    }
-    node.elements = this.parseExprList(tt.bracketR, true, true, refDestructuringErrors)
-    return this.finishNode(node, "ArrayExpression")
-
-  case tt.braceL:
-    return this.parseObj(false, refDestructuringErrors)
-
-  case tt._function:
-    node = this.startNode()
-    this.next()
-    return this.parseFunction(node, false)
-
-  case tt._class:
-    return this.parseClass(this.startNode(), false)
-
-  case tt._new:
-    return this.parseNew()
-
-  case tt.backQuote:
-    return this.parseTemplate()
-
-  default:
-    this.unexpected()
-  }
-}
-
-pp.parseLiteral = function(value) {
-  let node = this.startNode()
-  node.value = value
-  node.raw = this.input.slice(this.start, this.end)
-  this.next()
-  return this.finishNode(node, "Literal")
-}
-
-pp.parseParenExpression = function() {
-  this.expect(tt.parenL)
-  let val = this.parseExpression()
-  this.expect(tt.parenR)
-  return val
-}
-
-pp.parseParenAndDistinguishExpression = function(canBeArrow) {
-  let startPos = this.start, startLoc = this.startLoc, val
-  if (this.options.ecmaVersion >= 6) {
-    this.next()
-
-    if (this.options.ecmaVersion >= 7 && this.type === tt._for) {
-      return this.parseComprehension(this.startNodeAt(startPos, startLoc), true)
-    }
-
-    let innerStartPos = this.start, innerStartLoc = this.startLoc
-    let exprList = [], first = true
-    let refDestructuringErrors = {shorthandAssign: 0, trailingComma: 0}, spreadStart, innerParenStart
-    while (this.type !== tt.parenR) {
-      first ? first = false : this.expect(tt.comma)
-      if (this.type === tt.ellipsis) {
-        spreadStart = this.start
-        exprList.push(this.parseParenItem(this.parseRest()))
-        break
-      } else {
-        if (this.type === tt.parenL && !innerParenStart) {
-          innerParenStart = this.start
-        }
-        exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem))
-      }
-    }
-    let innerEndPos = this.start, innerEndLoc = this.startLoc
-    this.expect(tt.parenR)
-
-    if (canBeArrow && !this.canInsertSemicolon() && this.eat(tt.arrow)) {
-      this.checkPatternErrors(refDestructuringErrors, true)
-      if (innerParenStart) this.unexpected(innerParenStart)
-      return this.parseParenArrowList(startPos, startLoc, exprList)
-    }
-
-    if (!exprList.length) this.unexpected(this.lastTokStart)
-    if (spreadStart) this.unexpected(spreadStart)
-    this.checkExpressionErrors(refDestructuringErrors, true)
-
-    if (exprList.length > 1) {
-      val = this.startNodeAt(innerStartPos, innerStartLoc)
-      val.expressions = exprList
-      this.finishNodeAt(val, "SequenceExpression", innerEndPos, innerEndLoc)
-    } else {
-      val = exprList[0]
-    }
-  } else {
-    val = this.parseParenExpression()
-  }
-
-  if (this.options.preserveParens) {
-    let par = this.startNodeAt(startPos, startLoc)
-    par.expression = val
-    return this.finishNode(par, "ParenthesizedExpression")
-  } else {
-    return val
-  }
-}
-
-pp.parseParenItem = function(item) {
-  return item
-}
-
-pp.parseParenArrowList = function(startPos, startLoc, exprList) {
-  return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList)
-}
-
-// New's precedence is slightly tricky. It must allow its argument to
-// be a `[]` or dot subscript expression, but not a call — at least,
-// not without wrapping it in parentheses. Thus, it uses the noCalls
-// argument to parseSubscripts to prevent it from consuming the
-// argument list.
-
-const empty = []
-
-pp.parseNew = function() {
-  let node = this.startNode()
-  let meta = this.parseIdent(true)
-  if (this.options.ecmaVersion >= 6 && this.eat(tt.dot)) {
-    node.meta = meta
-    node.property = this.parseIdent(true)
-    if (node.property.name !== "target")
-      this.raise(node.property.start, "The only valid meta property for new is new.target")
-    if (!this.inFunction)
-      this.raise(node.start, "new.target can only be used in functions")
-    return this.finishNode(node, "MetaProperty")
-  }
-  let startPos = this.start, startLoc = this.startLoc
-  node.callee = this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true)
-  if (this.eat(tt.parenL)) node.arguments = this.parseExprList(tt.parenR, false)
-  else node.arguments = empty
-  return this.finishNode(node, "NewExpression")
-}
-
-// Parse template expression.
-
-pp.parseTemplateElement = function() {
-  let elem = this.startNode()
-  elem.value = {
-    raw: this.input.slice(this.start, this.end).replace(/\r\n?/g, '\n'),
-    cooked: this.value
-  }
-  this.next()
-  elem.tail = this.type === tt.backQuote
-  return this.finishNode(elem, "TemplateElement")
-}
-
-pp.parseTemplate = function() {
-  let node = this.startNode()
-  this.next()
-  node.expressions = []
-  let curElt = this.parseTemplateElement()
-  node.quasis = [curElt]
-  while (!curElt.tail) {
-    this.expect(tt.dollarBraceL)
-    node.expressions.push(this.parseExpression())
-    this.expect(tt.braceR)
-    node.quasis.push(curElt = this.parseTemplateElement())
-  }
-  this.next()
-  return this.finishNode(node, "TemplateLiteral")
-}
-
-// Parse an object literal or binding pattern.
-
-pp.parseObj = function(isPattern, refDestructuringErrors) {
-  let node = this.startNode(), first = true, propHash = {}
-  node.properties = []
-  this.next()
-  while (!this.eat(tt.braceR)) {
-    if (!first) {
-      this.expect(tt.comma)
-      if (this.afterTrailingComma(tt.braceR)) break
-    } else first = false
-
-    let prop = this.startNode(), isGenerator, startPos, startLoc
-    if (this.options.ecmaVersion >= 6) {
-      prop.method = false
-      prop.shorthand = false
-      if (isPattern || refDestructuringErrors) {
-        startPos = this.start
-        startLoc = this.startLoc
-      }
-      if (!isPattern)
-        isGenerator = this.eat(tt.star)
-    }
-    this.parsePropertyName(prop)
-    this.parsePropertyValue(prop, isPattern, isGenerator, startPos, startLoc, refDestructuringErrors)
-    this.checkPropClash(prop, propHash)
-    node.properties.push(this.finishNode(prop, "Property"))
-  }
-  return this.finishNode(node, isPattern ? "ObjectPattern" : "ObjectExpression")
-}
-
-pp.parsePropertyValue = function(prop, isPattern, isGenerator, startPos, startLoc, refDestructuringErrors) {
-  if (this.eat(tt.colon)) {
-      prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors)
-      prop.kind = "init"
-    } else if (this.options.ecmaVersion >= 6 && this.type === tt.parenL) {
-      if (isPattern) this.unexpected()
-      prop.kind = "init"
-      prop.method = true
-      prop.value = this.parseMethod(isGenerator)
-    } else if (this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" &&
-               (prop.key.name === "get" || prop.key.name === "set") &&
-               (this.type != tt.comma && this.type != tt.braceR)) {
-      if (isGenerator || isPattern) this.unexpected()
-      prop.kind = prop.key.name
-      this.parsePropertyName(prop)
-      prop.value = this.parseMethod(false)
-      let paramCount = prop.kind === "get" ? 0 : 1
-      if (prop.value.params.length !== paramCount) {
-        let start = prop.value.start
-        if (prop.kind === "get")
-          this.raise(start, "getter should have no params");
-        else
-          this.raise(start, "setter should have exactly one param")
-      }
-      if (prop.kind === "set" && prop.value.params[0].type === "RestElement")
-        this.raise(prop.value.params[0].start, "Setter cannot use rest params")
-    } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === "Identifier") {
-      prop.kind = "init"
-      if (isPattern) {
-        if (this.keywords.test(prop.key.name) ||
-            (this.strict ? this.reservedWordsStrictBind : this.reservedWords).test(prop.key.name))
-          this.raise(prop.key.start, "Binding " + prop.key.name)
-        prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key)
-      } else if (this.type === tt.eq && refDestructuringErrors) {
-        if (!refDestructuringErrors.shorthandAssign)
-          refDestructuringErrors.shorthandAssign = this.start
-        prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key)
-      } else {
-        prop.value = prop.key
-      }
-      prop.shorthand = true
-    } else this.unexpected()
-}
-
-pp.parsePropertyName = function(prop) {
-  if (this.options.ecmaVersion >= 6) {
-    if (this.eat(tt.bracketL)) {
-      prop.computed = true
-      prop.key = this.parseMaybeAssign()
-      this.expect(tt.bracketR)
-      return prop.key
-    } else {
-      prop.computed = false
-    }
-  }
-  return prop.key = (this.type === tt.num || this.type === tt.string) ? this.parseExprAtom() : this.parseIdent(true)
-}
-
-// Initialize empty function node.
-
-pp.initFunction = function(node) {
-  node.id = null
-  if (this.options.ecmaVersion >= 6) {
-    node.generator = false
-    node.expression = false
-  }
-}
-
-// Parse object or class method.
-
-pp.parseMethod = function(isGenerator) {
-  let node = this.startNode()
-  this.initFunction(node)
-  this.expect(tt.parenL)
-  node.params = this.parseBindingList(tt.parenR, false, false)
-  if (this.options.ecmaVersion >= 6)
-    node.generator = isGenerator
-  this.parseFunctionBody(node, false)
-  return this.finishNode(node, "FunctionExpression")
-}
-
-// Parse arrow function expression with given parameters.
-
-pp.parseArrowExpression = function(node, params) {
-  this.initFunction(node)
-  node.params = this.toAssignableList(params, true)
-  this.parseFunctionBody(node, true)
-  return this.finishNode(node, "ArrowFunctionExpression")
-}
-
-// Parse function body and check parameters.
-
-pp.parseFunctionBody = function(node, isArrowFunction) {
-  let isExpression = isArrowFunction && this.type !== tt.braceL
-
-  if (isExpression) {
-    node.body = this.parseMaybeAssign()
-    node.expression = true
-  } else {
-    // Start a new scope with regard to labels and the `inFunction`
-    // flag (restore them to their old value afterwards).
-    let oldInFunc = this.inFunction, oldInGen = this.inGenerator, oldLabels = this.labels
-    this.inFunction = true; this.inGenerator = node.generator; this.labels = []
-    node.body = this.parseBlock(true)
-    node.expression = false
-    this.inFunction = oldInFunc; this.inGenerator = oldInGen; this.labels = oldLabels
-  }
-
-  // If this is a strict mode function, verify that argument names
-  // are not repeated, and it does not try to bind the words `eval`
-  // or `arguments`.
-  if (this.strict || !isExpression && node.body.body.length && this.isUseStrict(node.body.body[0])) {
-    let oldStrict = this.strict
-    this.strict = true
-    if (node.id)
-      this.checkLVal(node.id, true)
-    this.checkParams(node);
-    this.strict = oldStrict
-  } else if (isArrowFunction) {
-    this.checkParams(node);
-  }
-}
-
-// Checks function params for various disallowed patterns such as using "eval"
-// or "arguments" and duplicate parameters.
-
-pp.checkParams = function(node) {
-    let nameHash = {};
-    for (let i = 0; i < node.params.length; i++)
-      this.checkLVal(node.params[i], true, nameHash)
-};
-
-// Parses a comma-separated list of expressions, and returns them as
-// an array. `close` is the token type that ends the list, and
-// `allowEmpty` can be turned on to allow subsequent commas with
-// nothing in between them to be parsed as `null` (which is needed
-// for array literals).
-
-pp.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) {
-  let elts = [], first = true
-  while (!this.eat(close)) {
-    if (!first) {
-      this.expect(tt.comma)
-      if (this.type === close && refDestructuringErrors && !refDestructuringErrors.trailingComma) {
-        refDestructuringErrors.trailingComma = this.lastTokStart
-      }
-      if (allowTrailingComma && this.afterTrailingComma(close)) break
-    } else first = false
-
-    let elt
-    if (allowEmpty && this.type === tt.comma)
-      elt = null
-    else if (this.type === tt.ellipsis)
-      elt = this.parseSpread(refDestructuringErrors)
-    else
-      elt = this.parseMaybeAssign(false, refDestructuringErrors)
-    elts.push(elt)
-  }
-  return elts
-}
-
-// Parse the next token as an identifier. If `liberal` is true (used
-// when parsing properties), it will also convert keywords into
-// identifiers.
-
-pp.parseIdent = function(liberal) {
-  let node = this.startNode()
-  if (liberal && this.options.allowReserved == "never") liberal = false
-  if (this.type === tt.name) {
-    if (!liberal && (this.strict ? this.reservedWordsStrict : this.reservedWords).test(this.value) &&
-        (this.options.ecmaVersion >= 6 ||
-         this.input.slice(this.start, this.end).indexOf("\\") == -1))
-      this.raise(this.start, "The keyword '" + this.value + "' is reserved")
-    node.name = this.value
-  } else if (liberal && this.type.keyword) {
-    node.name = this.type.keyword
-  } else {
-    this.unexpected()
-  }
-  this.next()
-  return this.finishNode(node, "Identifier")
-}
-
-// Parses yield expression inside generator.
-
-pp.parseYield = function() {
-  let node = this.startNode()
-  this.next()
-  if (this.type == tt.semi || this.canInsertSemicolon() || (this.type != tt.star && !this.type.startsExpr)) {
-    node.delegate = false
-    node.argument = null
-  } else {
-    node.delegate = this.eat(tt.star)
-    node.argument = this.parseMaybeAssign()
-  }
-  return this.finishNode(node, "YieldExpression")
-}
-
-// Parses array and generator comprehensions.
-
-pp.parseComprehension = function(node, isGenerator) {
-  node.blocks = []
-  while (this.type === tt._for) {
-    let block = this.startNode()
-    this.next()
-    this.expect(tt.parenL)
-    block.left = this.parseBindingAtom()
-    this.checkLVal(block.left, true)
-    this.expectContextual("of")
-    block.right = this.parseExpression()
-    this.expect(tt.parenR)
-    node.blocks.push(this.finishNode(block, "ComprehensionBlock"))
-  }
-  node.filter = this.eat(tt._if) ? this.parseParenExpression() : null
-  node.body = this.parseExpression()
-  this.expect(isGenerator ? tt.parenR : tt.bracketR)
-  node.generator = isGenerator
-  return this.finishNode(node, "ComprehensionExpression")
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/src/identifier.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/src/identifier.js b/node_modules/acorn/src/identifier.js
deleted file mode 100644
index 59ead43..0000000
--- a/node_modules/acorn/src/identifier.js
+++ /dev/null
@@ -1,90 +0,0 @@
-// This is a trick taken from Esprima. It turns out that, on
-// non-Chrome browsers, to check whether a string is in a set, a
-// predicate containing a big ugly `switch` statement is faster than
-// a regular expression, and on Chrome the two are about on par.
-// This function uses `eval` (non-lexical) to produce such a
-// predicate from a space-separated string of words.
-//
-// It starts by sorting the words by length.
-
-// Reserved word lists for various dialects of the language
-
-export const reservedWords = {
-  3: "abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",
-  5: "class enum extends super const export import",
-  6: "enum",
-  strict: "implements interface let package private protected public static yield",
-  strictBind: "eval arguments"
-}
-
-// And the keywords
-
-var ecma5AndLessKeywords = "break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this"
-
-export const keywords = {
-  5: ecma5AndLessKeywords,
-  6: ecma5AndLessKeywords + " let const class extends export import yield super"
-}
-
-// ## Character categories
-
-// Big ugly regular expressions that match characters in the
-// whitespace, identifier, and identifier-start categories. These
-// are only applied when a character is found to actually have a
-// code point above 128.
-// Generated by `bin/generate-identifier-regex.js`.
-
-let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0-\u08b2\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f
 -\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u
 1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d8
 0-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua7ad\ua7b0\ua7b1\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab5f\uab64\uab65\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\
 ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"
-let nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e4-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0
 ce2\u0ce3\u0ce6-\u0cef\u0d01-\u0d03\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19b0-\u19c0\u19c8\u19c9\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2-\u1cf4\u1
 cf8\u1cf9\u1dc0-\u1df5\u1dfc-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c4\ua8d0-\ua8d9\ua8e0-\ua8f1\ua900-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2d\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"
-
-const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]")
-const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]")
-
-nonASCIIidentifierStartChars = nonASCIIidentifierChars = null
-
-// These are a run-length and offset encoded representation of the
-// >0xffff code points that are a valid part of identifiers. The
-// offset starts at 0x10000, and each pair of numbers represents an
-// offset to the next range, and then a size of the range. They were
-// generated by tools/generate-identifier-regex.js
-var astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,17,26,6,37,11,29,3,35,5,7,2,4,43,157,99,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,98,21,11,25,71,55,7,1,65,0,16,3,2,2,2,26,45,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,955,52,76,44,33,24,27,35,42,34,4,0,13,47,15,3,22,0,38,17,2,24,133,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,32,4,287,47,21,1,2,0,185,46,82,47,21,0,60,42,502,63,32,0,449,56,1288,920,104,110,2962,1070,13266,568,8,30,114,29,19,47,17,3,32,20,6,18,881,68,12,0,67,12,16481,1,3071,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,1340,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,16355,541]
-var astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,1306,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,52,0,13,2,49,13,16,9,83,11,168,11,6,9,8,2,57,0,2,6,3,1,3,2,10,0,11,1,3,6,4,4,316,19,13,9,214,6,3,8,112,16,16,9,82,12,9,9,535,9,20855,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,4305,6,792618,239]
-
-// This has a complexity linear to the value of the code. The
-// assumption is that looking up astral identifier characters is
-// rare.
-function isInAstralSet(code, set) {
-  let pos = 0x10000
-  for (let i = 0; i < set.length; i += 2) {
-    pos += set[i]
-    if (pos > code) return false
-    pos += set[i + 1]
-    if (pos >= code) return true
-  }
-}
-
-// Test whether a given character code starts an identifier.
-
-export function isIdentifierStart(code, astral) {
-  if (code < 65) return code === 36
-  if (code < 91) return true
-  if (code < 97) return code === 95
-  if (code < 123) return true
-  if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))
-  if (astral === false) return false
-  return isInAstralSet(code, astralIdentifierStartCodes)
-}
-
-// Test whether a given character is part of an identifier.
-
-export function isIdentifierChar(code, astral) {
-  if (code < 48) return code === 36
-  if (code < 58) return true
-  if (code < 65) return false
-  if (code < 91) return true
-  if (code < 97) return code === 95
-  if (code < 123) return true
-  if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code))
-  if (astral === false) return false
-  return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes)
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/src/index.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/src/index.js b/node_modules/acorn/src/index.js
deleted file mode 100644
index 8215f1b..0000000
--- a/node_modules/acorn/src/index.js
+++ /dev/null
@@ -1,67 +0,0 @@
-// Acorn is a tiny, fast JavaScript parser written in JavaScript.
-//
-// Acorn was written by Marijn Haverbeke, Ingvar Stepanyan, and
-// various contributors and released under an MIT license.
-//
-// Git repositories for Acorn are available at
-//
-//     http://marijnhaverbeke.nl/git/acorn
-//     https://github.com/ternjs/acorn.git
-//
-// Please use the [github bug tracker][ghbt] to report issues.
-//
-// [ghbt]: https://github.com/ternjs/acorn/issues
-//
-// This file defines the main parser interface. The library also comes
-// with a [error-tolerant parser][dammit] and an
-// [abstract syntax tree walker][walk], defined in other files.
-//
-// [dammit]: acorn_loose.js
-// [walk]: util/walk.js
-
-import {Parser} from "./state"
-import "./parseutil"
-import "./statement"
-import "./lval"
-import "./expression"
-import "./location"
-
-export {Parser, plugins} from "./state"
-export {defaultOptions} from "./options"
-export {Position, SourceLocation, getLineInfo} from "./locutil"
-export {Node} from "./node"
-export {TokenType, types as tokTypes} from "./tokentype"
-export {TokContext, types as tokContexts} from "./tokencontext"
-export {isIdentifierChar, isIdentifierStart} from "./identifier"
-export {Token} from "./tokenize"
-export {isNewLine, lineBreak, lineBreakG} from "./whitespace"
-
-export const version = "2.7.0"
-
-// The main exported interface (under `self.acorn` when in the
-// browser) is a `parse` function that takes a code string and
-// returns an abstract syntax tree as specified by [Mozilla parser
-// API][api].
-//
-// [api]: https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API
-
-export function parse(input, options) {
-  return new Parser(options, input).parse()
-}
-
-// This function tries to parse a single expression at a given
-// offset in a string. Useful for parsing mixed-language formats
-// that embed JavaScript expressions.
-
-export function parseExpressionAt(input, pos, options) {
-  let p = new Parser(options, input, pos)
-  p.nextToken()
-  return p.parseExpression()
-}
-
-// Acorn is organized as a tokenizer and a recursive-descent parser.
-// The `tokenizer` export provides an interface to the tokenizer.
-
-export function tokenizer(input, options) {
-  return new Parser(options, input)
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/src/location.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/src/location.js b/node_modules/acorn/src/location.js
deleted file mode 100644
index 4625dc3..0000000
--- a/node_modules/acorn/src/location.js
+++ /dev/null
@@ -1,24 +0,0 @@
-import {Parser} from "./state"
-import {Position, getLineInfo} from "./locutil"
-
-const pp = Parser.prototype
-
-// This function is used to raise exceptions on parse errors. It
-// takes an offset integer (into the current `input`) to indicate
-// the location of the error, attaches the position to the end
-// of the error message, and then raises a `SyntaxError` with that
-// message.
-
-pp.raise = function(pos, message) {
-  let loc = getLineInfo(this.input, pos)
-  message += " (" + loc.line + ":" + loc.column + ")"
-  let err = new SyntaxError(message)
-  err.pos = pos; err.loc = loc; err.raisedAt = this.pos
-  throw err
-}
-
-pp.curPosition = function() {
-  if (this.options.locations) {
-    return new Position(this.curLine, this.pos - this.lineStart)
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/src/locutil.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/src/locutil.js b/node_modules/acorn/src/locutil.js
deleted file mode 100644
index 5a9465e..0000000
--- a/node_modules/acorn/src/locutil.js
+++ /dev/null
@@ -1,42 +0,0 @@
-import {lineBreakG} from "./whitespace"
-
-// These are used when `options.locations` is on, for the
-// `startLoc` and `endLoc` properties.
-
-export class Position {
-  constructor(line, col) {
-    this.line = line
-    this.column = col
-  }
-
-  offset(n) {
-    return new Position(this.line, this.column + n)
-  }
-}
-
-export class SourceLocation {
-  constructor(p, start, end) {
-    this.start = start
-    this.end = end
-    if (p.sourceFile !== null) this.source = p.sourceFile
-  }
-}
-
-// The `getLineInfo` function is mostly useful when the
-// `locations` option is off (for performance reasons) and you
-// want to find the line/column position for a given character
-// offset. `input` should be the code string that the offset refers
-// into.
-
-export function getLineInfo(input, offset) {
-  for (let line = 1, cur = 0;;) {
-    lineBreakG.lastIndex = cur
-    let match = lineBreakG.exec(input)
-    if (match && match.index < offset) {
-      ++line
-      cur = match.index + match[0].length
-    } else {
-      return new Position(line, offset - cur)
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/src/loose/acorn_loose.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/src/loose/acorn_loose.js b/node_modules/acorn/src/loose/acorn_loose.js
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/src/loose/expression.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/src/loose/expression.js b/node_modules/acorn/src/loose/expression.js
deleted file mode 100644
index f3712c0..0000000
--- a/node_modules/acorn/src/loose/expression.js
+++ /dev/null
@@ -1,501 +0,0 @@
-import {LooseParser} from "./state"
-import {isDummy} from "./parseutil"
-import {tokTypes as tt} from ".."
-
-const lp = LooseParser.prototype
-
-lp.checkLVal = function(expr) {
-  if (!expr) return expr
-  switch (expr.type) {
-  case "Identifier":
-  case "MemberExpression":
-    return expr
-
-  case "ParenthesizedExpression":
-    expr.expression = this.checkLVal(expr.expression)
-    return expr
-
-  default:
-    return this.dummyIdent()
-  }
-}
-
-lp.parseExpression = function(noIn) {
-  let start = this.storeCurrentPos()
-  let expr = this.parseMaybeAssign(noIn)
-  if (this.tok.type === tt.comma) {
-    let node = this.startNodeAt(start)
-    node.expressions = [expr]
-    while (this.eat(tt.comma)) node.expressions.push(this.parseMaybeAssign(noIn))
-    return this.finishNode(node, "SequenceExpression")
-  }
-  return expr
-}
-
-lp.parseParenExpression = function() {
-  this.pushCx()
-  this.expect(tt.parenL)
-  let val = this.parseExpression()
-  this.popCx()
-  this.expect(tt.parenR)
-  return val
-}
-
-lp.parseMaybeAssign = function(noIn) {
-  let start = this.storeCurrentPos()
-  let left = this.parseMaybeConditional(noIn)
-  if (this.tok.type.isAssign) {
-    let node = this.startNodeAt(start)
-    node.operator = this.tok.value
-    node.left = this.tok.type === tt.eq ? this.toAssignable(left) : this.checkLVal(left)
-    this.next()
-    node.right = this.parseMaybeAssign(noIn)
-    return this.finishNode(node, "AssignmentExpression")
-  }
-  return left
-}
-
-lp.parseMaybeConditional = function(noIn) {
-  let start = this.storeCurrentPos()
-  let expr = this.parseExprOps(noIn)
-  if (this.eat(tt.question)) {
-    let node = this.startNodeAt(start)
-    node.test = expr
-    node.consequent = this.parseMaybeAssign()
-    node.alternate = this.expect(tt.colon) ? this.parseMaybeAssign(noIn) : this.dummyIdent()
-    return this.finishNode(node, "ConditionalExpression")
-  }
-  return expr
-}
-
-lp.parseExprOps = function(noIn) {
-  let start = this.storeCurrentPos()
-  let indent = this.curIndent, line = this.curLineStart
-  return this.parseExprOp(this.parseMaybeUnary(noIn), start, -1, noIn, indent, line)
-}
-
-lp.parseExprOp = function(left, start, minPrec, noIn, indent, line) {
-  if (this.curLineStart != line && this.curIndent < indent && this.tokenStartsLine()) return left
-  let prec = this.tok.type.binop
-  if (prec != null && (!noIn || this.tok.type !== tt._in)) {
-    if (prec > minPrec) {
-      let node = this.startNodeAt(start)
-      node.left = left
-      node.operator = this.tok.value
-      this.next()
-      if (this.curLineStart != line && this.curIndent < indent && this.tokenStartsLine()) {
-        node.right = this.dummyIdent()
-      } else {
-        let rightStart = this.storeCurrentPos()
-        node.right = this.parseExprOp(this.parseMaybeUnary(noIn), rightStart, prec, noIn, indent, line)
-      }
-      this.finishNode(node, /&&|\|\|/.test(node.operator) ? "LogicalExpression" : "BinaryExpression")
-      return this.parseExprOp(node, start, minPrec, noIn, indent, line)
-    }
-  }
-  return left
-}
-
-lp.parseMaybeUnary = function(noIn) {
-  if (this.tok.type.prefix) {
-    let node = this.startNode(), update = this.tok.type === tt.incDec
-    node.operator = this.tok.value
-    node.prefix = true
-    this.next()
-    node.argument = this.parseMaybeUnary(noIn)
-    if (update) node.argument = this.checkLVal(node.argument)
-    return this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression")
-  } else if (this.tok.type === tt.ellipsis) {
-    let node = this.startNode()
-    this.next()
-    node.argument = this.parseMaybeUnary(noIn)
-    return this.finishNode(node, "SpreadElement")
-  }
-  let start = this.storeCurrentPos()
-  let expr = this.parseExprSubscripts()
-  while (this.tok.type.postfix && !this.canInsertSemicolon()) {
-    let node = this.startNodeAt(start)
-    node.operator = this.tok.value
-    node.prefix = false
-    node.argument = this.checkLVal(expr)
-    this.next()
-    expr = this.finishNode(node, "UpdateExpression")
-  }
-  return expr
-}
-
-lp.parseExprSubscripts = function() {
-  let start = this.storeCurrentPos()
-  return this.parseSubscripts(this.parseExprAtom(), start, false, this.curIndent, this.curLineStart)
-}
-
-lp.parseSubscripts = function(base, start, noCalls, startIndent, line) {
-  for (;;) {
-    if (this.curLineStart != line && this.curIndent <= startIndent && this.tokenStartsLine()) {
-      if (this.tok.type == tt.dot && this.curIndent == startIndent)
-        --startIndent
-      else
-        return base
-    }
-
-    if (this.eat(tt.dot)) {
-      let node = this.startNodeAt(start)
-      node.object = base
-      if (this.curLineStart != line && this.curIndent <= startIndent && this.tokenStartsLine())
-        node.property = this.dummyIdent()
-      else
-        node.property = this.parsePropertyAccessor() || this.dummyIdent()
-      node.computed = false
-      base = this.finishNode(node, "MemberExpression")
-    } else if (this.tok.type == tt.bracketL) {
-      this.pushCx()
-      this.next()
-      let node = this.startNodeAt(start)
-      node.object = base
-      node.property = this.parseExpression()
-      node.computed = true
-      this.popCx()
-      this.expect(tt.bracketR)
-      base = this.finishNode(node, "MemberExpression")
-    } else if (!noCalls && this.tok.type == tt.parenL) {
-      let node = this.startNodeAt(start)
-      node.callee = base
-      node.arguments = this.parseExprList(tt.parenR)
-      base = this.finishNode(node, "CallExpression")
-    } else if (this.tok.type == tt.backQuote) {
-      let node = this.startNodeAt(start)
-      node.tag = base
-      node.quasi = this.parseTemplate()
-      base = this.finishNode(node, "TaggedTemplateExpression")
-    } else {
-      return base
-    }
-  }
-}
-
-lp.parseExprAtom = function() {
-  let node
-  switch (this.tok.type) {
-  case tt._this:
-  case tt._super:
-    let type = this.tok.type === tt._this ? "ThisExpression" : "Super"
-    node = this.startNode()
-    this.next()
-    return this.finishNode(node, type)
-
-  case tt.name:
-    let start = this.storeCurrentPos()
-    let id = this.parseIdent()
-    return this.eat(tt.arrow) ? this.parseArrowExpression(this.startNodeAt(start), [id]) : id
-
-  case tt.regexp:
-    node = this.startNode()
-    let val = this.tok.value
-    node.regex = {pattern: val.pattern, flags: val.flags}
-    node.value = val.value
-    node.raw = this.input.slice(this.tok.start, this.tok.end)
-    this.next()
-    return this.finishNode(node, "Literal")
-
-  case tt.num: case tt.string:
-    node = this.startNode()
-    node.value = this.tok.value
-    node.raw = this.input.slice(this.tok.start, this.tok.end)
-    this.next()
-    return this.finishNode(node, "Literal")
-
-  case tt._null: case tt._true: case tt._false:
-    node = this.startNode()
-    node.value = this.tok.type === tt._null ? null : this.tok.type === tt._true
-    node.raw = this.tok.type.keyword
-    this.next()
-    return this.finishNode(node, "Literal")
-
-  case tt.parenL:
-    let parenStart = this.storeCurrentPos()
-    this.next()
-    let inner = this.parseExpression()
-    this.expect(tt.parenR)
-    if (this.eat(tt.arrow)) {
-      return this.parseArrowExpression(this.startNodeAt(parenStart), inner.expressions || (isDummy(inner) ? [] : [inner]))
-    }
-    if (this.options.preserveParens) {
-      let par = this.startNodeAt(parenStart)
-      par.expression = inner
-      inner = this.finishNode(par, "ParenthesizedExpression")
-    }
-    return inner
-
-  case tt.bracketL:
-    node = this.startNode()
-    node.elements = this.parseExprList(tt.bracketR, true)
-    return this.finishNode(node, "ArrayExpression")
-
-  case tt.braceL:
-    return this.parseObj()
-
-  case tt._class:
-    return this.parseClass()
-
-  case tt._function:
-    node = this.startNode()
-    this.next()
-    return this.parseFunction(node, false)
-
-  case tt._new:
-    return this.parseNew()
-
-  case tt._yield:
-    node = this.startNode()
-    this.next()
-    if (this.semicolon() || this.canInsertSemicolon() || (this.tok.type != tt.star && !this.tok.type.startsExpr)) {
-      node.delegate = false
-      node.argument = null
-    } else {
-      node.delegate = this.eat(tt.star)
-      node.argument = this.parseMaybeAssign()
-    }
-    return this.finishNode(node, "YieldExpression")
-
-  case tt.backQuote:
-    return this.parseTemplate()
-
-  default:
-    return this.dummyIdent()
-  }
-}
-
-lp.parseNew = function() {
-  let node = this.startNode(), startIndent = this.curIndent, line = this.curLineStart
-  let meta = this.parseIdent(true)
-  if (this.options.ecmaVersion >= 6 && this.eat(tt.dot)) {
-    node.meta = meta
-    node.property = this.parseIdent(true)
-    return this.finishNode(node, "MetaProperty")
-  }
-  let start = this.storeCurrentPos()
-  node.callee = this.parseSubscripts(this.parseExprAtom(), start, true, startIndent, line)
-  if (this.tok.type == tt.parenL) {
-    node.arguments = this.parseExprList(tt.parenR)
-  } else {
-    node.arguments = []
-  }
-  return this.finishNode(node, "NewExpression")
-}
-
-lp.parseTemplateElement = function() {
-  let elem = this.startNode()
-  elem.value = {
-    raw: this.input.slice(this.tok.start, this.tok.end).replace(/\r\n?/g, '\n'),
-    cooked: this.tok.value
-  }
-  this.next()
-  elem.tail = this.tok.type === tt.backQuote
-  return this.finishNode(elem, "TemplateElement")
-}
-
-lp.parseTemplate = function() {
-  let node = this.startNode()
-  this.next()
-  node.expressions = []
-  let curElt = this.parseTemplateElement()
-  node.quasis = [curElt]
-  while (!curElt.tail) {
-    this.next()
-    node.expressions.push(this.parseExpression())
-    if (this.expect(tt.braceR)) {
-      curElt = this.parseTemplateElement()
-    } else {
-      curElt = this.startNode()
-      curElt.value = {cooked: '', raw: ''}
-      curElt.tail = true
-    }
-    node.quasis.push(curElt)
-  }
-  this.expect(tt.backQuote)
-  return this.finishNode(node, "TemplateLiteral")
-}
-
-lp.parseObj = function() {
-  let node = this.startNode()
-  node.properties = []
-  this.pushCx()
-  let indent = this.curIndent + 1, line = this.curLineStart
-  this.eat(tt.braceL)
-  if (this.curIndent + 1 < indent) { indent = this.curIndent; line = this.curLineStart }
-  while (!this.closes(tt.braceR, indent, line)) {
-    let prop = this.startNode(), isGenerator, start
-    if (this.options.ecmaVersion >= 6) {
-      start = this.storeCurrentPos()
-      prop.method = false
-      prop.shorthand = false
-      isGenerator = this.eat(tt.star)
-    }
-    this.parsePropertyName(prop)
-    if (isDummy(prop.key)) { if (isDummy(this.parseMaybeAssign())) this.next(); this.eat(tt.comma); continue }
-    if (this.eat(tt.colon)) {
-      prop.kind = "init"
-      prop.value = this.parseMaybeAssign()
-    } else if (this.options.ecmaVersion >= 6 && (this.tok.type === tt.parenL || this.tok.type === tt.braceL)) {
-      prop.kind = "init"
-      prop.method = true
-      prop.value = this.parseMethod(isGenerator)
-    } else if (this.options.ecmaVersion >= 5 && prop.key.type === "Identifier" &&
-               !prop.computed && (prop.key.name === "get" || prop.key.name === "set") &&
-               (this.tok.type != tt.comma && this.tok.type != tt.braceR)) {
-      prop.kind = prop.key.name
-      this.parsePropertyName(prop)
-      prop.value = this.parseMethod(false)
-    } else {
-      prop.kind = "init"
-      if (this.options.ecmaVersion >= 6) {
-        if (this.eat(tt.eq)) {
-          let assign = this.startNodeAt(start)
-          assign.operator = "="
-          assign.left = prop.key
-          assign.right = this.parseMaybeAssign()
-          prop.value = this.finishNode(assign, "AssignmentExpression")
-        } else {
-          prop.value = prop.key
-        }
-      } else {
-        prop.value = this.dummyIdent()
-      }
-      prop.shorthand = true
-    }
-    node.properties.push(this.finishNode(prop, "Property"))
-    this.eat(tt.comma)
-  }
-  this.popCx()
-  if (!this.eat(tt.braceR)) {
-    // If there is no closing brace, make the node span to the start
-    // of the next token (this is useful for Tern)
-    this.last.end = this.tok.start
-    if (this.options.locations) this.last.loc.end = this.tok.loc.start
-  }
-  return this.finishNode(node, "ObjectExpression")
-}
-
-lp.parsePropertyName = function(prop) {
-  if (this.options.ecmaVersion >= 6) {
-    if (this.eat(tt.bracketL)) {
-      prop.computed = true
-      prop.key = this.parseExpression()
-      this.expect(tt.bracketR)
-      return
-    } else {
-      prop.computed = false
-    }
-  }
-  let key = (this.tok.type === tt.num || this.tok.type === tt.string) ? this.parseExprAtom() : this.parseIdent()
-  prop.key = key || this.dummyIdent()
-}
-
-lp.parsePropertyAccessor = function() {
-  if (this.tok.type === tt.name || this.tok.type.keyword) return this.parseIdent()
-}
-
-lp.parseIdent = function() {
-  let name = this.tok.type === tt.name ? this.tok.value : this.tok.type.keyword
-  if (!name) return this.dummyIdent()
-  let node = this.startNode()
-  this.next()
-  node.name = name
-  return this.finishNode(node, "Identifier")
-}
-
-lp.initFunction = function(node) {
-  node.id = null
-  node.params = []
-  if (this.options.ecmaVersion >= 6) {
-    node.generator = false
-    node.expression = false
-  }
-}
-
-// Convert existing expression atom to assignable pattern
-// if possible.
-
-lp.toAssignable = function(node, binding) {
-  if (!node || node.type == "Identifier" || (node.type == "MemberExpression" && !binding)) {
-    // Okay
-  } else if (node.type == "ParenthesizedExpression") {
-    node.expression = this.toAssignable(node.expression, binding)
-  } else if (this.options.ecmaVersion < 6) {
-    return this.dummyIdent()
-  } else if (node.type == "ObjectExpression") {
-    node.type = "ObjectPattern"
-    let props = node.properties
-    for (let i = 0; i < props.length; i++)
-      props[i].value = this.toAssignable(props[i].value, binding)
-  } else if (node.type == "ArrayExpression") {
-    node.type = "ArrayPattern"
-    this.toAssignableList(node.elements, binding)
-  } else if (node.type == "SpreadElement") {
-    node.type = "RestElement"
-    node.argument = this.toAssignable(node.argument, binding)
-  } else if (node.type == "AssignmentExpression") {
-    node.type = "AssignmentPattern"
-    delete node.operator
-  } else {
-    return this.dummyIdent()
-  }
-  return node
-}
-
-lp.toAssignableList = function(exprList, binding) {
-  for (let i = 0; i < exprList.length; i++)
-    exprList[i] = this.toAssignable(exprList[i], binding)
-  return exprList
-}
-
-lp.parseFunctionParams = function(params) {
-  params = this.parseExprList(tt.parenR)
-  return this.toAssignableList(params, true)
-}
-
-lp.parseMethod = function(isGenerator) {
-  let node = this.startNode()
-  this.initFunction(node)
-  node.params = this.parseFunctionParams()
-  node.generator = isGenerator || false
-  node.expression = this.options.ecmaVersion >= 6 && this.tok.type !== tt.braceL
-  node.body = node.expression ? this.parseMaybeAssign() : this.parseBlock()
-  return this.finishNode(node, "FunctionExpression")
-}
-
-lp.parseArrowExpression = function(node, params) {
-  this.initFunction(node)
-  node.params = this.toAssignableList(params, true)
-  node.expression = this.tok.type !== tt.braceL
-  node.body = node.expression ? this.parseMaybeAssign() : this.parseBlock()
-  return this.finishNode(node, "ArrowFunctionExpression")
-}
-
-lp.parseExprList = function(close, allowEmpty) {
-  this.pushCx()
-  let indent = this.curIndent, line = this.curLineStart, elts = []
-  this.next(); // Opening bracket
-  while (!this.closes(close, indent + 1, line)) {
-    if (this.eat(tt.comma)) {
-      elts.push(allowEmpty ? null : this.dummyIdent())
-      continue
-    }
-    let elt = this.parseMaybeAssign()
-    if (isDummy(elt)) {
-      if (this.closes(close, indent, line)) break
-      this.next()
-    } else {
-      elts.push(elt)
-    }
-    this.eat(tt.comma)
-  }
-  this.popCx()
-  if (!this.eat(close)) {
-    // If there is no closing brace, make the node span to the start
-    // of the next token (this is useful for Tern)
-    this.last.end = this.tok.start
-    if (this.options.locations) this.last.loc.end = this.tok.loc.start
-  }
-  return elts
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/src/loose/index.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/src/loose/index.js b/node_modules/acorn/src/loose/index.js
deleted file mode 100644
index 7b3fad1..0000000
--- a/node_modules/acorn/src/loose/index.js
+++ /dev/null
@@ -1,50 +0,0 @@
-// Acorn: Loose parser
-//
-// This module provides an alternative parser (`parse_dammit`) that
-// exposes that same interface as `parse`, but will try to parse
-// anything as JavaScript, repairing syntax error the best it can.
-// There are circumstances in which it will raise an error and give
-// up, but they are very rare. The resulting AST will be a mostly
-// valid JavaScript AST (as per the [Mozilla parser API][api], except
-// that:
-//
-// - Return outside functions is allowed
-//
-// - Label consistency (no conflicts, break only to existing labels)
-//   is not enforced.
-//
-// - Bogus Identifier nodes with a name of `"✖"` are inserted whenever
-//   the parser got too confused to return anything meaningful.
-//
-// [api]: https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API
-//
-// The expected use for this is to *first* try `acorn.parse`, and only
-// if that fails switch to `parse_dammit`. The loose parser might
-// parse badly indented code incorrectly, so **don't** use it as
-// your default parser.
-//
-// Quite a lot of acorn.js is duplicated here. The alternative was to
-// add a *lot* of extra cruft to that file, making it less readable
-// and slower. Copying and editing the code allowed me to make
-// invasive changes and simplifications without creating a complicated
-// tangle.
-
-import * as acorn from ".."
-import {LooseParser, pluginsLoose} from "./state"
-import "./tokenize"
-import "./statement"
-import "./expression"
-
-export {LooseParser, pluginsLoose} from "./state"
-
-acorn.defaultOptions.tabSize = 4
-
-export function parse_dammit(input, options) {
-  let p = new LooseParser(input, options)
-  p.next()
-  return p.parseTopLevel()
-}
-
-acorn.parse_dammit = parse_dammit
-acorn.LooseParser = LooseParser
-acorn.pluginsLoose = pluginsLoose

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/src/loose/parseutil.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/src/loose/parseutil.js b/node_modules/acorn/src/loose/parseutil.js
deleted file mode 100644
index c5ee096..0000000
--- a/node_modules/acorn/src/loose/parseutil.js
+++ /dev/null
@@ -1 +0,0 @@
-export function isDummy(node) { return node.name == "✖" }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/src/loose/state.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/src/loose/state.js b/node_modules/acorn/src/loose/state.js
deleted file mode 100644
index de33831..0000000
--- a/node_modules/acorn/src/loose/state.js
+++ /dev/null
@@ -1,160 +0,0 @@
-import {tokenizer, SourceLocation, tokTypes as tt, Node, lineBreak, isNewLine} from ".."
-
-// Registered plugins
-export const pluginsLoose = {}
-
-export class LooseParser {
-  constructor(input, options) {
-    this.toks = tokenizer(input, options)
-    this.options = this.toks.options
-    this.input = this.toks.input
-    this.tok = this.last = {type: tt.eof, start: 0, end: 0}
-    if (this.options.locations) {
-      let here = this.toks.curPosition()
-      this.tok.loc = new SourceLocation(this.toks, here, here)
-    }
-    this.ahead = []; // Tokens ahead
-    this.context = []; // Indentation contexted
-    this.curIndent = 0
-    this.curLineStart = 0
-    this.nextLineStart = this.lineEnd(this.curLineStart) + 1
-    // Load plugins
-    this.options.pluginsLoose = options.pluginsLoose || {}
-    this.loadPlugins(this.options.pluginsLoose)
-  }
-
-  startNode() {
-    return new Node(this.toks, this.tok.start, this.options.locations ? this.tok.loc.start : null)
-  }
-
-  storeCurrentPos() {
-    return this.options.locations ? [this.tok.start, this.tok.loc.start] : this.tok.start
-  }
-
-  startNodeAt(pos) {
-    if (this.options.locations) {
-      return new Node(this.toks, pos[0], pos[1])
-    } else {
-      return new Node(this.toks, pos)
-    }
-  }
-
-  finishNode(node, type) {
-    node.type = type
-    node.end = this.last.end
-    if (this.options.locations)
-      node.loc.end = this.last.loc.end
-    if (this.options.ranges)
-      node.range[1] = this.last.end
-    return node
-  }
-
-  dummyNode(type) {
-    let dummy = this.startNode()
-    dummy.type = type
-    dummy.end = dummy.start
-    if (this.options.locations)
-      dummy.loc.end = dummy.loc.start
-    if (this.options.ranges)
-      dummy.range[1] = dummy.start
-    this.last = {type: tt.name, start: dummy.start, end: dummy.start, loc: dummy.loc}
-    return dummy
-  }
-
-  dummyIdent() {
-    let dummy = this.dummyNode("Identifier")
-    dummy.name = "✖"
-    return dummy
-  }
-
-  dummyString() {
-    let dummy = this.dummyNode("Literal")
-    dummy.value = dummy.raw = "✖"
-    return dummy
-  }
-
-  eat(type) {
-    if (this.tok.type === type) {
-      this.next()
-      return true
-    } else {
-      return false
-    }
-  }
-
-  isContextual(name) {
-    return this.tok.type === tt.name && this.tok.value === name
-  }
-
-  eatContextual(name) {
-    return this.tok.value === name && this.eat(tt.name)
-  }
-
-  canInsertSemicolon() {
-    return this.tok.type === tt.eof || this.tok.type === tt.braceR ||
-      lineBreak.test(this.input.slice(this.last.end, this.tok.start))
-  }
-
-  semicolon() {
-    return this.eat(tt.semi)
-  }
-
-  expect(type) {
-    if (this.eat(type)) return true
-    for (let i = 1; i <= 2; i++) {
-      if (this.lookAhead(i).type == type) {
-        for (let j = 0; j < i; j++) this.next()
-        return true
-      }
-    }
-  }
-
-  pushCx() {
-    this.context.push(this.curIndent)
-  }
-
-  popCx() {
-    this.curIndent = this.context.pop()
-  }
-
-  lineEnd(pos) {
-    while (pos < this.input.length && !isNewLine(this.input.charCodeAt(pos))) ++pos
-    return pos
-  }
-
-  indentationAfter(pos) {
-    for (let count = 0;; ++pos) {
-      let ch = this.input.charCodeAt(pos)
-      if (ch === 32) ++count
-      else if (ch === 9) count += this.options.tabSize
-      else return count
-    }
-  }
-
-  closes(closeTok, indent, line, blockHeuristic) {
-    if (this.tok.type === closeTok || this.tok.type === tt.eof) return true
-    return line != this.curLineStart && this.curIndent < indent && this.tokenStartsLine() &&
-      (!blockHeuristic || this.nextLineStart >= this.input.length ||
-       this.indentationAfter(this.nextLineStart) < indent)
-  }
-
-  tokenStartsLine() {
-    for (let p = this.tok.start - 1; p >= this.curLineStart; --p) {
-      let ch = this.input.charCodeAt(p)
-      if (ch !== 9 && ch !== 32) return false
-    }
-    return true
-  }
-
-  extend(name, f) {
-    this[name] = f(this[name])
-  }
-
-  loadPlugins(pluginConfigs) {
-    for (let name in pluginConfigs) {
-      let plugin = pluginsLoose[name]
-      if (!plugin) throw new Error("Plugin '" + name + "' not found")
-      plugin(this, pluginConfigs[name])
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/src/loose/statement.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/src/loose/statement.js b/node_modules/acorn/src/loose/statement.js
deleted file mode 100644
index cffec9e..0000000
--- a/node_modules/acorn/src/loose/statement.js
+++ /dev/null
@@ -1,420 +0,0 @@
-import {LooseParser} from "./state"
-import {isDummy} from "./parseutil"
-import {getLineInfo, tokTypes as tt} from ".."
-
-const lp = LooseParser.prototype
-
-lp.parseTopLevel = function() {
-  let node = this.startNodeAt(this.options.locations ? [0, getLineInfo(this.input, 0)] : 0)
-  node.body = []
-  while (this.tok.type !== tt.eof) node.body.push(this.parseStatement())
-  this.last = this.tok
-  if (this.options.ecmaVersion >= 6) {
-    node.sourceType = this.options.sourceType
-  }
-  return this.finishNode(node, "Program")
-}
-
-lp.parseStatement = function() {
-  let starttype = this.tok.type, node = this.startNode()
-
-  switch (starttype) {
-  case tt._break: case tt._continue:
-    this.next()
-    let isBreak = starttype === tt._break
-    if (this.semicolon() || this.canInsertSemicolon()) {
-      node.label = null
-    } else {
-      node.label = this.tok.type === tt.name ? this.parseIdent() : null
-      this.semicolon()
-    }
-    return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement")
-
-  case tt._debugger:
-    this.next()
-    this.semicolon()
-    return this.finishNode(node, "DebuggerStatement")
-
-  case tt._do:
-    this.next()
-    node.body = this.parseStatement()
-    node.test = this.eat(tt._while) ? this.parseParenExpression() : this.dummyIdent()
-    this.semicolon()
-    return this.finishNode(node, "DoWhileStatement")
-
-  case tt._for:
-    this.next()
-    this.pushCx()
-    this.expect(tt.parenL)
-    if (this.tok.type === tt.semi) return this.parseFor(node, null)
-    if (this.tok.type === tt._var || this.tok.type === tt._let || this.tok.type === tt._const) {
-      let init = this.parseVar(true)
-      if (init.declarations.length === 1 && (this.tok.type === tt._in || this.isContextual("of"))) {
-        return this.parseForIn(node, init)
-      }
-      return this.parseFor(node, init)
-    }
-    let init = this.parseExpression(true)
-    if (this.tok.type === tt._in || this.isContextual("of"))
-      return this.parseForIn(node, this.toAssignable(init))
-    return this.parseFor(node, init)
-
-  case tt._function:
-    this.next()
-    return this.parseFunction(node, true)
-
-  case tt._if:
-    this.next()
-    node.test = this.parseParenExpression()
-    node.consequent = this.parseStatement()
-    node.alternate = this.eat(tt._else) ? this.parseStatement() : null
-    return this.finishNode(node, "IfStatement")
-
-  case tt._return:
-    this.next()
-    if (this.eat(tt.semi) || this.canInsertSemicolon()) node.argument = null
-    else { node.argument = this.parseExpression(); this.semicolon() }
-    return this.finishNode(node, "ReturnStatement")
-
-  case tt._switch:
-    let blockIndent = this.curIndent, line = this.curLineStart
-    this.next()
-    node.discriminant = this.parseParenExpression()
-    node.cases = []
-    this.pushCx()
-    this.expect(tt.braceL)
-
-    let cur
-    while (!this.closes(tt.braceR, blockIndent, line, true)) {
-      if (this.tok.type === tt._case || this.tok.type === tt._default) {
-        let isCase = this.tok.type === tt._case
-        if (cur) this.finishNode(cur, "SwitchCase")
-        node.cases.push(cur = this.startNode())
-        cur.consequent = []
-        this.next()
-        if (isCase) cur.test = this.parseExpression()
-        else cur.test = null
-        this.expect(tt.colon)
-      } else {
-        if (!cur) {
-          node.cases.push(cur = this.startNode())
-          cur.consequent = []
-          cur.test = null
-        }
-        cur.consequent.push(this.parseStatement())
-      }
-    }
-    if (cur) this.finishNode(cur, "SwitchCase")
-    this.popCx()
-    this.eat(tt.braceR)
-    return this.finishNode(node, "SwitchStatement")
-
-  case tt._throw:
-    this.next()
-    node.argument = this.parseExpression()
-    this.semicolon()
-    return this.finishNode(node, "ThrowStatement")
-
-  case tt._try:
-    this.next()
-    node.block = this.parseBlock()
-    node.handler = null
-    if (this.tok.type === tt._catch) {
-      let clause = this.startNode()
-      this.next()
-      this.expect(tt.parenL)
-      clause.param = this.toAssignable(this.parseExprAtom(), true)
-      this.expect(tt.parenR)
-      clause.body = this.parseBlock()
-      node.handler = this.finishNode(clause, "CatchClause")
-    }
-    node.finalizer = this.eat(tt._finally) ? this.parseBlock() : null
-    if (!node.handler && !node.finalizer) return node.block
-    return this.finishNode(node, "TryStatement")
-
-  case tt._var:
-  case tt._let:
-  case tt._const:
-    return this.parseVar()
-
-  case tt._while:
-    this.next()
-    node.test = this.parseParenExpression()
-    node.body = this.parseStatement()
-    return this.finishNode(node, "WhileStatement")
-
-  case tt._with:
-    this.next()
-    node.object = this.parseParenExpression()
-    node.body = this.parseStatement()
-    return this.finishNode(node, "WithStatement")
-
-  case tt.braceL:
-    return this.parseBlock()
-
-  case tt.semi:
-    this.next()
-    return this.finishNode(node, "EmptyStatement")
-
-  case tt._class:
-    return this.parseClass(true)
-
-  case tt._import:
-    return this.parseImport()
-
-  case tt._export:
-    return this.parseExport()
-
-  default:
-    let expr = this.parseExpression()
-    if (isDummy(expr)) {
-      this.next()
-      if (this.tok.type === tt.eof) return this.finishNode(node, "EmptyStatement")
-      return this.parseStatement()
-    } else if (starttype === tt.name && expr.type === "Identifier" && this.eat(tt.colon)) {
-      node.body = this.parseStatement()
-      node.label = expr
-      return this.finishNode(node, "LabeledStatement")
-    } else {
-      node.expression = expr
-      this.semicolon()
-      return this.finishNode(node, "ExpressionStatement")
-    }
-  }
-}
-
-lp.parseBlock = function() {
-  let node = this.startNode()
-  this.pushCx()
-  this.expect(tt.braceL)
-  let blockIndent = this.curIndent, line = this.curLineStart
-  node.body = []
-  while (!this.closes(tt.braceR, blockIndent, line, true))
-    node.body.push(this.parseStatement())
-  this.popCx()
-  this.eat(tt.braceR)
-  return this.finishNode(node, "BlockStatement")
-}
-
-lp.parseFor = function(node, init) {
-  node.init = init
-  node.test = node.update = null
-  if (this.eat(tt.semi) && this.tok.type !== tt.semi) node.test = this.parseExpression()
-  if (this.eat(tt.semi) && this.tok.type !== tt.parenR) node.update = this.parseExpression()
-  this.popCx()
-  this.expect(tt.parenR)
-  node.body = this.parseStatement()
-  return this.finishNode(node, "ForStatement")
-}
-
-lp.parseForIn = function(node, init) {
-  let type = this.tok.type === tt._in ? "ForInStatement" : "ForOfStatement"
-  this.next()
-  node.left = init
-  node.right = this.parseExpression()
-  this.popCx()
-  this.expect(tt.parenR)
-  node.body = this.parseStatement()
-  return this.finishNode(node, type)
-}
-
-lp.parseVar = function(noIn) {
-  let node = this.startNode()
-  node.kind = this.tok.type.keyword
-  this.next()
-  node.declarations = []
-  do {
-    let decl = this.startNode()
-    decl.id = this.options.ecmaVersion >= 6 ? this.toAssignable(this.parseExprAtom(), true) : this.parseIdent()
-    decl.init = this.eat(tt.eq) ? this.parseMaybeAssign(noIn) : null
-    node.declarations.push(this.finishNode(decl, "VariableDeclarator"))
-  } while (this.eat(tt.comma))
-  if (!node.declarations.length) {
-    let decl = this.startNode()
-    decl.id = this.dummyIdent()
-    node.declarations.push(this.finishNode(decl, "VariableDeclarator"))
-  }
-  if (!noIn) this.semicolon()
-  return this.finishNode(node, "VariableDeclaration")
-}
-
-lp.parseClass = function(isStatement) {
-  let node = this.startNode()
-  this.next()
-  if (this.tok.type === tt.name) node.id = this.parseIdent()
-  else if (isStatement) node.id = this.dummyIdent()
-  else node.id = null
-  node.superClass = this.eat(tt._extends) ? this.parseExpression() : null
-  node.body = this.startNode()
-  node.body.body = []
-  this.pushCx()
-  let indent = this.curIndent + 1, line = this.curLineStart
-  this.eat(tt.braceL)
-  if (this.curIndent + 1 < indent) { indent = this.curIndent; line = this.curLineStart }
-  while (!this.closes(tt.braceR, indent, line)) {
-    if (this.semicolon()) continue
-    let method = this.startNode(), isGenerator
-    if (this.options.ecmaVersion >= 6) {
-      method.static = false
-      isGenerator = this.eat(tt.star)
-    }
-    this.parsePropertyName(method)
-    if (isDummy(method.key)) { if (isDummy(this.parseMaybeAssign())) this.next(); this.eat(tt.comma); continue }
-    if (method.key.type === "Identifier" && !method.computed && method.key.name === "static" &&
-        (this.tok.type != tt.parenL && this.tok.type != tt.braceL)) {
-      method.static = true
-      isGenerator = this.eat(tt.star)
-      this.parsePropertyName(method)
-    } else {
-      method.static = false
-    }
-    if (this.options.ecmaVersion >= 5 && method.key.type === "Identifier" &&
-        !method.computed && (method.key.name === "get" || method.key.name === "set") &&
-        this.tok.type !== tt.parenL && this.tok.type !== tt.braceL) {
-      method.kind = method.key.name
-      this.parsePropertyName(method)
-      method.value = this.parseMethod(false)
-    } else {
-      if (!method.computed && !method.static && !isGenerator && (
-        method.key.type === "Identifier" && method.key.name === "constructor" ||
-          method.key.type === "Literal" && method.key.value === "constructor")) {
-        method.kind = "constructor"
-      } else {
-        method.kind =  "method"
-      }
-      method.value = this.parseMethod(isGenerator)
-    }
-    node.body.body.push(this.finishNode(method, "MethodDefinition"))
-  }
-  this.popCx()
-  if (!this.eat(tt.braceR)) {
-    // If there is no closing brace, make the node span to the start
-    // of the next token (this is useful for Tern)
-    this.last.end = this.tok.start
-    if (this.options.locations) this.last.loc.end = this.tok.loc.start
-  }
-  this.semicolon()
-  this.finishNode(node.body, "ClassBody")
-  return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression")
-}
-
-lp.parseFunction = function(node, isStatement) {
-  this.initFunction(node)
-  if (this.options.ecmaVersion >= 6) {
-    node.generator = this.eat(tt.star)
-  }
-  if (this.tok.type === tt.name) node.id = this.parseIdent()
-  else if (isStatement) node.id = this.dummyIdent()
-  node.params = this.parseFunctionParams()
-  node.body = this.parseBlock()
-  return this.finishNode(node, isStatement ? "FunctionDeclaration" : "FunctionExpression")
-}
-
-lp.parseExport = function() {
-  let node = this.startNode()
-  this.next()
-  if (this.eat(tt.star)) {
-    node.source = this.eatContextual("from") ? this.parseExprAtom() : null
-    return this.finishNode(node, "ExportAllDeclaration")
-  }
-  if (this.eat(tt._default)) {
-    let expr = this.parseMaybeAssign()
-    if (expr.id) {
-      switch (expr.type) {
-      case "FunctionExpression": expr.type = "FunctionDeclaration"; break
-      case "ClassExpression": expr.type = "ClassDeclaration"; break
-      }
-    }
-    node.declaration = expr
-    this.semicolon()
-    return this.finishNode(node, "ExportDefaultDeclaration")
-  }
-  if (this.tok.type.keyword) {
-    node.declaration = this.parseStatement()
-    node.specifiers = []
-    node.source = null
-  } else {
-    node.declaration = null
-    node.specifiers = this.parseExportSpecifierList()
-    node.source = this.eatContextual("from") ? this.parseExprAtom() : null
-    this.semicolon()
-  }
-  return this.finishNode(node, "ExportNamedDeclaration")
-}
-
-lp.parseImport = function() {
-  let node = this.startNode()
-  this.next()
-  if (this.tok.type === tt.string) {
-    node.specifiers = []
-    node.source = this.parseExprAtom()
-    node.kind = ''
-  } else {
-    let elt
-    if (this.tok.type === tt.name && this.tok.value !== "from") {
-      elt = this.startNode()
-      elt.local = this.parseIdent()
-      this.finishNode(elt, "ImportDefaultSpecifier")
-      this.eat(tt.comma)
-    }
-    node.specifiers = this.parseImportSpecifierList()
-    node.source = this.eatContextual("from") && this.tok.type == tt.string ? this.parseExprAtom() : this.dummyString()
-    if (elt) node.specifiers.unshift(elt)
-  }
-  this.semicolon()
-  return this.finishNode(node, "ImportDeclaration")
-}
-
-lp.parseImportSpecifierList = function() {
-  let elts = []
-  if (this.tok.type === tt.star) {
-    let elt = this.startNode()
-    this.next()
-    if (this.eatContextual("as")) elt.local = this.parseIdent()
-    elts.push(this.finishNode(elt, "ImportNamespaceSpecifier"))
-  } else {
-    let indent = this.curIndent, line = this.curLineStart, continuedLine = this.nextLineStart
-    this.pushCx()
-    this.eat(tt.braceL)
-    if (this.curLineStart > continuedLine) continuedLine = this.curLineStart
-    while (!this.closes(tt.braceR, indent + (this.curLineStart <= continuedLine ? 1 : 0), line)) {
-      let elt = this.startNode()
-      if (this.eat(tt.star)) {
-        elt.local = this.eatContextual("as") ? this.parseIdent() : this.dummyIdent()
-        this.finishNode(elt, "ImportNamespaceSpecifier")
-      } else {
-        if (this.isContextual("from")) break
-        elt.imported = this.parseIdent()
-        if (isDummy(elt.imported)) break
-        elt.local = this.eatContextual("as") ? this.parseIdent() : elt.imported
-        this.finishNode(elt, "ImportSpecifier")
-      }
-      elts.push(elt)
-      this.eat(tt.comma)
-    }
-    this.eat(tt.braceR)
-    this.popCx()
-  }
-  return elts
-}
-
-lp.parseExportSpecifierList = function() {
-  let elts = []
-  let indent = this.curIndent, line = this.curLineStart, continuedLine = this.nextLineStart
-  this.pushCx()
-  this.eat(tt.braceL)
-  if (this.curLineStart > continuedLine) continuedLine = this.curLineStart
-  while (!this.closes(tt.braceR, indent + (this.curLineStart <= continuedLine ? 1 : 0), line)) {
-    if (this.isContextual("from")) break
-    let elt = this.startNode()
-    elt.local = this.parseIdent()
-    if (isDummy(elt.local)) break
-    elt.exported = this.eatContextual("as") ? this.parseIdent() : elt.local
-    this.finishNode(elt, "ExportSpecifier")
-    elts.push(elt)
-    this.eat(tt.comma)
-  }
-  this.eat(tt.braceR)
-  this.popCx()
-  return elts
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/src/loose/tokenize.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/src/loose/tokenize.js b/node_modules/acorn/src/loose/tokenize.js
deleted file mode 100644
index c20db22..0000000
--- a/node_modules/acorn/src/loose/tokenize.js
+++ /dev/null
@@ -1,108 +0,0 @@
-import {tokTypes as tt, Token, isNewLine, SourceLocation, getLineInfo, lineBreakG} from ".."
-import {LooseParser} from "./state"
-
-const lp = LooseParser.prototype
-
-function isSpace(ch) {
-  return (ch < 14 && ch > 8) || ch === 32 || ch === 160 || isNewLine(ch)
-}
-
-lp.next = function() {
-  this.last = this.tok
-  if (this.ahead.length)
-    this.tok = this.ahead.shift()
-  else
-    this.tok = this.readToken()
-
-  if (this.tok.start >= this.nextLineStart) {
-    while (this.tok.start >= this.nextLineStart) {
-      this.curLineStart = this.nextLineStart
-      this.nextLineStart = this.lineEnd(this.curLineStart) + 1
-    }
-    this.curIndent = this.indentationAfter(this.curLineStart)
-  }
-}
-
-lp.readToken = function() {
-  for (;;) {
-    try {
-      this.toks.next()
-      if (this.toks.type === tt.dot &&
-          this.input.substr(this.toks.end, 1) === "." &&
-          this.options.ecmaVersion >= 6) {
-        this.toks.end++
-        this.toks.type = tt.ellipsis
-      }
-      return new Token(this.toks)
-    } catch(e) {
-      if (!(e instanceof SyntaxError)) throw e
-
-      // Try to skip some text, based on the error message, and then continue
-      let msg = e.message, pos = e.raisedAt, replace = true
-      if (/unterminated/i.test(msg)) {
-        pos = this.lineEnd(e.pos + 1)
-        if (/string/.test(msg)) {
-          replace = {start: e.pos, end: pos, type: tt.string, value: this.input.slice(e.pos + 1, pos)}
-        } else if (/regular expr/i.test(msg)) {
-          let re = this.input.slice(e.pos, pos)
-          try { re = new RegExp(re) } catch(e) {}
-          replace = {start: e.pos, end: pos, type: tt.regexp, value: re}
-        } else if (/template/.test(msg)) {
-          replace = {start: e.pos, end: pos,
-                     type: tt.template,
-                     value: this.input.slice(e.pos, pos)}
-        } else {
-          replace = false
-        }
-      } else if (/invalid (unicode|regexp|number)|expecting unicode|octal literal|is reserved|directly after number|expected number in radix/i.test(msg)) {
-        while (pos < this.input.length && !isSpace(this.input.charCodeAt(pos))) ++pos
-      } else if (/character escape|expected hexadecimal/i.test(msg)) {
-        while (pos < this.input.length) {
-          let ch = this.input.charCodeAt(pos++)
-          if (ch === 34 || ch === 39 || isNewLine(ch)) break
-        }
-      } else if (/unexpected character/i.test(msg)) {
-        pos++
-        replace = false
-      } else if (/regular expression/i.test(msg)) {
-        replace = true
-      } else {
-        throw e
-      }
-      this.resetTo(pos)
-      if (replace === true) replace = {start: pos, end: pos, type: tt.name, value: "✖"}
-      if (replace) {
-        if (this.options.locations)
-          replace.loc = new SourceLocation(
-            this.toks,
-            getLineInfo(this.input, replace.start),
-            getLineInfo(this.input, replace.end))
-        return replace
-      }
-    }
-  }
-}
-
-lp.resetTo = function(pos) {
-  this.toks.pos = pos
-  let ch = this.input.charAt(pos - 1)
-  this.toks.exprAllowed = !ch || /[\[\{\(,;:?\/*=+\-~!|&%^<>]/.test(ch) ||
-    /[enwfd]/.test(ch) &&
-    /\b(keywords|case|else|return|throw|new|in|(instance|type)of|delete|void)$/.test(this.input.slice(pos - 10, pos))
-
-  if (this.options.locations) {
-    this.toks.curLine = 1
-    this.toks.lineStart = lineBreakG.lastIndex = 0
-    let match
-    while ((match = lineBreakG.exec(this.input)) && match.index < pos) {
-      ++this.toks.curLine
-      this.toks.lineStart = match.index + match[0].length
-    }
-  }
-}
-
-lp.lookAhead = function(n) {
-  while (n > this.ahead.length)
-    this.ahead.push(this.readToken())
-  return this.ahead[n - 1]
-}


[47/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/README.md
----------------------------------------------------------------------
diff --git a/node_modules/acorn/README.md b/node_modules/acorn/README.md
deleted file mode 100644
index acd39a8..0000000
--- a/node_modules/acorn/README.md
+++ /dev/null
@@ -1,396 +0,0 @@
-# Acorn
-
-[![Build Status](https://travis-ci.org/ternjs/acorn.svg?branch=master)](https://travis-ci.org/ternjs/acorn)
-[![NPM version](https://img.shields.io/npm/v/acorn.svg)](https://www.npmjs.com/package/acorn)  
-[Author funding status: ![maintainer happiness](https://marijnhaverbeke.nl/fund/status_s.png?force)](https://marijnhaverbeke.nl/fund/)
-
-A tiny, fast JavaScript parser, written completely in JavaScript.
-
-## Community
-
-Acorn is open source software released under an
-[MIT license](https://github.com/ternjs/acorn/blob/master/LICENSE).
-
-You are welcome to
-[report bugs](https://github.com/ternjs/acorn/issues) or create pull
-requests on [github](https://github.com/ternjs/acorn). For questions
-and discussion, please use the
-[Tern discussion forum](https://discuss.ternjs.net).
-
-## Installation
-
-The easiest way to install acorn is with [`npm`][npm].
-
-[npm]: https://www.npmjs.com/
-
-```sh
-npm install acorn
-```
-
-Alternately, download the source.
-
-```sh
-git clone https://github.com/ternjs/acorn.git
-```
-
-## Components
-
-When run in a CommonJS (node.js) or AMD environment, exported values
-appear in the interfaces exposed by the individual files, as usual.
-When loaded in the browser (Acorn works in any JS-enabled browser more
-recent than IE5) without any kind of module management, a single
-global object `acorn` will be defined, and all the exported properties
-will be added to that.
-
-### Main parser
-
-This is implemented in `dist/acorn.js`, and is what you get when you
-`require("acorn")` in node.js.
-
-**parse**`(input, options)` is used to parse a JavaScript program.
-The `input` parameter is a string, `options` can be undefined or an
-object setting some of the options listed below. The return value will
-be an abstract syntax tree object as specified by the
-[ESTree spec][estree].
-
-When  encountering   a  syntax   error,  the   parser  will   raise  a
-`SyntaxError` object with a meaningful  message. The error object will
-have a `pos` property that indicates the character offset at which the
-error occurred,  and a `loc`  object that contains a  `{line, column}`
-object referring to that same position.
-
-[estree]: https://github.com/estree/estree
-
-- **ecmaVersion**: Indicates the ECMAScript version to parse. Must be
-  either 3, 5, or 6. This influences support for strict mode, the set
-  of reserved words, and support for new syntax features. Default is 5.
-
-- **sourceType**: Indicate the mode the code should be parsed in. Can be
-  either `"script"` or `"module"`.
-
-- **onInsertedSemicolon**: If given a callback, that callback will be
-  called whenever a missing semicolon is inserted by the parser. The
-  callback will be given the character offset of the point where the
-  semicolon is inserted as argument, and if `locations` is on, also a
-  `{line, column}` object representing this position.
-
-- **onTrailingComma**: Like `onInsertedSemicolon`, but for trailing
-  commas.
-
-- **allowReserved**: If `false`, using a reserved word will generate
-  an error. Defaults to `true` for `ecmaVersion` 3, `false` for higher
-  versions. When given the value `"never"`, reserved words and
-  keywords can also not be used as property names (as in Internet
-  Explorer's old parser).
-
-- **allowReturnOutsideFunction**: By default, a return statement at
-  the top level raises an error. Set this to `true` to accept such
-  code.
-
-- **allowImportExportEverywhere**: By default, `import` and `export`
-  declarations can only appear at a program's top level. Setting this
-  option to `true` allows them anywhere where a statement is allowed.
-
-- **allowHashBang**: When this is enabled (off by default), if the
-  code starts with the characters `#!` (as in a shellscript), the
-  first line will be treated as a comment.
-
-- **locations**: When `true`, each node has a `loc` object attached
-  with `start` and `end` subobjects, each of which contains the
-  one-based line and zero-based column numbers in `{line, column}`
-  form. Default is `false`.
-
-- **onToken**: If a function is passed for this option, each found
-  token will be passed in same format as tokens returned from
-  `tokenizer().getToken()`.
-
-  If array is passed, each found token is pushed to it.
-
-  Note that you are not allowed to call the parser from the
-  callback—that will corrupt its internal state.
-
-- **onComment**: If a function is passed for this option, whenever a
-  comment is encountered the function will be called with the
-  following parameters:
-
-  - `block`: `true` if the comment is a block comment, false if it
-    is a line comment.
-  - `text`: The content of the comment.
-  - `start`: Character offset of the start of the comment.
-  - `end`: Character offset of the end of the comment.
-
-  When the `locations` options is on, the `{line, column}` locations
-  of the comment’s start and end are passed as two additional
-  parameters.
-
-  If array is passed for this option, each found comment is pushed
-  to it as object in Esprima format:
-
-  ```javascript
-  {
-    "type": "Line" | "Block",
-    "value": "comment text",
-    "start": Number,
-    "end": Number,
-    // If `locations` option is on:
-    "loc": {
-      "start": {line: Number, column: Number}
-      "end": {line: Number, column: Number}
-    },
-    // If `ranges` option is on:
-    "range": [Number, Number]
-  }
-  ```
-
-  Note that you are not allowed to call the parser from the
-  callback—that will corrupt its internal state.
-
-- **ranges**: Nodes have their start and end characters offsets
-  recorded in `start` and `end` properties (directly on the node,
-  rather than the `loc` object, which holds line/column data. To also
-  add a [semi-standardized][range] `range` property holding a
-  `[start, end]` array with the same numbers, set the `ranges` option
-  to `true`.
-
-- **program**: It is possible to parse multiple files into a single
-  AST by passing the tree produced by parsing the first file as the
-  `program` option in subsequent parses. This will add the toplevel
-  forms of the parsed file to the "Program" (top) node of an existing
-  parse tree.
-
-- **sourceFile**: When the `locations` option is `true`, you can pass
-  this option to add a `source` attribute in every node’s `loc`
-  object. Note that the contents of this option are not examined or
-  processed in any way; you are free to use whatever format you
-  choose.
-
-- **directSourceFile**: Like `sourceFile`, but a `sourceFile` property
-  will be added directly to the nodes, rather than the `loc` object.
-
-- **preserveParens**: If this option is `true`, parenthesized expressions
-  are represented by (non-standard) `ParenthesizedExpression` nodes
-  that have a single `expression` property containing the expression
-  inside parentheses.
-
-[range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678
-
-**parseExpressionAt**`(input, offset, options)` will parse a single
-expression in a string, and return its AST. It will not complain if
-there is more of the string left after the expression.
-
-**getLineInfo**`(input, offset)` can be used to get a `{line,
-column}` object for a given program string and character offset.
-
-**tokenizer**`(input, options)` returns an object with a `getToken`
-method that can be called repeatedly to get the next token, a `{start,
-end, type, value}` object (with added `loc` property when the
-`locations` option is enabled and `range` property when the `ranges`
-option is enabled). When the token's type is `tokTypes.eof`, you
-should stop calling the method, since it will keep returning that same
-token forever.
-
-In ES6 environment, returned result can be used as any other
-protocol-compliant iterable:
-
-```javascript
-for (let token of acorn.tokenizer(str)) {
-  // iterate over the tokens
-}
-
-// transform code to array of tokens:
-var tokens = [...acorn.tokenizer(str)];
-```
-
-**tokTypes** holds an object mapping names to the token type objects
-that end up in the `type` properties of tokens.
-
-#### Note on using with [Escodegen][escodegen]
-
-Escodegen supports generating comments from AST, attached in
-Esprima-specific format. In order to simulate same format in
-Acorn, consider following example:
-
-```javascript
-var comments = [], tokens = [];
-
-var ast = acorn.parse('var x = 42; // answer', {
-	// collect ranges for each node
-	ranges: true,
-	// collect comments in Esprima's format
-	onComment: comments,
-	// collect token ranges
-	onToken: tokens
-});
-
-// attach comments using collected information
-escodegen.attachComments(ast, comments, tokens);
-
-// generate code
-console.log(escodegen.generate(ast, {comment: true}));
-// > 'var x = 42;    // answer'
-```
-
-[escodegen]: https://github.com/estools/escodegen
-
-### dist/acorn_loose.js ###
-
-This file implements an error-tolerant parser. It exposes a single
-function. The loose parser is accessible in node.js via `require("acorn/dist/acorn_loose")`.
-
-**parse_dammit**`(input, options)` takes the same arguments and
-returns the same syntax tree as the `parse` function in `acorn.js`,
-but never raises an error, and will do its best to parse syntactically
-invalid code in as meaningful a way as it can. It'll insert identifier
-nodes with name `"✖"` as placeholders in places where it can't make
-sense of the input. Depends on `acorn.js`, because it uses the same
-tokenizer.
-
-### dist/walk.js ###
-
-Implements an abstract syntax tree walker. Will store its interface in
-`acorn.walk` when loaded without a module system.
-
-**simple**`(node, visitors, base, state)` does a 'simple' walk over
-a tree. `node` should be the AST node to walk, and `visitors` an
-object with properties whose names correspond to node types in the
-[ESTree spec][estree]. The properties should contain functions
-that will be called with the node object and, if applicable the state
-at that point. The last two arguments are optional. `base` is a walker
-algorithm, and `state` is a start state. The default walker will
-simply visit all statements and expressions and not produce a
-meaningful state. (An example of a use of state is to track scope at
-each point in the tree.)
-
-**ancestor**`(node, visitors, base, state)` does a 'simple' walk over
-a tree, building up an array of ancestor nodes (including the current node)
-and passing the array to callbacks in the `state` parameter.
-
-**recursive**`(node, state, functions, base)` does a 'recursive'
-walk, where the walker functions are responsible for continuing the
-walk on the child nodes of their target node. `state` is the start
-state, and `functions` should contain an object that maps node types
-to walker functions. Such functions are called with `(node, state, c)`
-arguments, and can cause the walk to continue on a sub-node by calling
-the `c` argument on it with `(node, state)` arguments. The optional
-`base` argument provides the fallback walker functions for node types
-that aren't handled in the `functions` object. If not given, the
-default walkers will be used.
-
-**make**`(functions, base)` builds a new walker object by using the
-walker functions in `functions` and filling in the missing ones by
-taking defaults from `base`.
-
-**findNodeAt**`(node, start, end, test, base, state)` tries to
-locate a node in a tree at the given start and/or end offsets, which
-satisfies the predicate `test`. `start` and `end` can be either `null`
-(as wildcard) or a number. `test` may be a string (indicating a node
-type) or a function that takes `(nodeType, node)` arguments and
-returns a boolean indicating whether this node is interesting. `base`
-and `state` are optional, and can be used to specify a custom walker.
-Nodes are tested from inner to outer, so if two nodes match the
-boundaries, the inner one will be preferred.
-
-**findNodeAround**`(node, pos, test, base, state)` is a lot like
-`findNodeAt`, but will match any node that exists 'around' (spanning)
-the given position.
-
-**findNodeAfter**`(node, pos, test, base, state)` is similar to
-`findNodeAround`, but will match all nodes *after* the given position
-(testing outer nodes before inner nodes).
-
-## Command line interface
-
-The `bin/acorn` utility can be used to parse a file from the command
-line. It accepts as arguments its input file and the following
-options:
-
-- `--ecma3|--ecma5|--ecma6`: Sets the ECMAScript version to parse. Default is
-  version 5.
-
-- `--module`: Sets the parsing mode to `"module"`. Is set to `"script"` otherwise.
-
-- `--locations`: Attaches a "loc" object to each node with "start" and
-  "end" subobjects, each of which contains the one-based line and
-  zero-based column numbers in `{line, column}` form.
-
-- `--allow-hash-bang`: If the code starts with the characters #! (as in a shellscript), the first line will be treated as a comment.
-
-- `--compact`: No whitespace is used in the AST output.
-
-- `--silent`: Do not output the AST, just return the exit status.
-
-- `--help`: Print the usage information and quit.
-
-The utility spits out the syntax tree as JSON data.
-
-## Build system
-
-Acorn is written in ECMAScript 6, as a set of small modules, in the
-project's `src` directory, and compiled down to bigger ECMAScript 3
-files in `dist` using [Browserify](http://browserify.org) and
-[Babel](http://babeljs.io/). If you are already using Babel, you can
-consider including the modules directly.
-
-The command-line test runner (`npm test`) uses the ES6 modules. The
-browser-based test page (`test/index.html`) uses the compiled modules.
-The `bin/build-acorn.js` script builds the latter from the former.
-
-If you are working on Acorn, you'll probably want to try the code out
-directly, without an intermediate build step. In your scripts, you can
-register the Babel require shim like this:
-
-    require("babel-core/register")
-
-That will allow you to directly `require` the ES6 modules.
-
-## Plugins
-
-Acorn is designed support allow plugins which, within reasonable
-bounds, redefine the way the parser works. Plugins can add new token
-types and new tokenizer contexts (if necessary), and extend methods in
-the parser object. This is not a clean, elegant API—using it requires
-an understanding of Acorn's internals, and plugins are likely to break
-whenever those internals are significantly changed. But still, it is
-_possible_, in this way, to create parsers for JavaScript dialects
-without forking all of Acorn. And in principle it is even possible to
-combine such plugins, so that if you have, for example, a plugin for
-parsing types and a plugin for parsing JSX-style XML literals, you
-could load them both and parse code with both JSX tags and types.
-
-A plugin should register itself by adding a property to
-`acorn.plugins`, which holds a function. Calling `acorn.parse`, a
-`plugins` option can be passed, holding an object mapping plugin names
-to configuration values (or just `true` for plugins that don't take
-options). After the parser object has been created, the initialization
-functions for the chosen plugins are called with `(parser,
-configValue)` arguments. They are expected to use the `parser.extend`
-method to extend parser methods. For example, the `readToken` method
-could be extended like this:
-
-```javascript
-parser.extend("readToken", function(nextMethod) {
-  return function(code) {
-    console.log("Reading a token!")
-    return nextMethod.call(this, code)
-  }
-})
-```
-
-The `nextMethod` argument passed to `extend`'s second argument is the
-previous value of this method, and should usually be called through to
-whenever the extended method does not handle the call itself.
-
-Similarly, the loose parser allows plugins to register themselves via
-`acorn.pluginsLoose`.  The extension mechanism is the same as for the
-normal parser:
-
-```javascript
-looseParser.extend("readToken", function(nextMethod) {
-  return function() {
-    console.log("Reading a token in the loose parser!")
-    return nextMethod.call(this)
-  }
-})
-```
-
-There is a proof-of-concept JSX plugin in the [`acorn-jsx`](https://github.com/RReverser/acorn-jsx) project.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/bin/acorn
----------------------------------------------------------------------
diff --git a/node_modules/acorn/bin/acorn b/node_modules/acorn/bin/acorn
deleted file mode 100755
index db07909..0000000
--- a/node_modules/acorn/bin/acorn
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/usr/bin/env node
-"use strict";
-
-function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj["default"] = obj; return newObj; } }
-
-var _path = require("path");
-
-var _fs = require("fs");
-
-var _distAcornJs = require("../dist/acorn.js");
-
-var acorn = _interopRequireWildcard(_distAcornJs);
-
-var infile = undefined,
-    forceFile = undefined,
-    silent = false,
-    compact = false,
-    tokenize = false;
-var options = {};
-
-function help(status) {
-  var print = status == 0 ? console.log : console.error;
-  print("usage: " + (0, _path.basename)(process.argv[1]) + " [--ecma3|--ecma5|--ecma6]");
-  print("        [--tokenize] [--locations] [---allow-hash-bang] [--compact] [--silent] [--module] [--help] [--] [infile]");
-  process.exit(status);
-}
-
-for (var i = 2; i < process.argv.length; ++i) {
-  var arg = process.argv[i];
-  if ((arg == "-" || arg[0] != "-") && !infile) infile = arg;else if (arg == "--" && !infile && i + 2 == process.argv.length) forceFile = infile = process.argv[++i];else if (arg == "--ecma3") options.ecmaVersion = 3;else if (arg == "--ecma5") options.ecmaVersion = 5;else if (arg == "--ecma6") options.ecmaVersion = 6;else if (arg == "--locations") options.locations = true;else if (arg == "--allow-hash-bang") options.allowHashBang = true;else if (arg == "--silent") silent = true;else if (arg == "--compact") compact = true;else if (arg == "--help") help(0);else if (arg == "--tokenize") tokenize = true;else if (arg == "--module") options.sourceType = 'module';else help(1);
-}
-
-function run(code) {
-  var result = undefined;
-  if (!tokenize) {
-    try {
-      result = acorn.parse(code, options);
-    } catch (e) {
-      console.error(e.message);process.exit(1);
-    }
-  } else {
-    result = [];
-    var tokenizer = acorn.tokenizer(code, options),
-        token = undefined;
-    while (true) {
-      try {
-        token = tokenizer.getToken();
-      } catch (e) {
-        console.error(e.message);process.exit(1);
-      }
-      result.push(token);
-      if (token.type == acorn.tokTypes.eof) break;
-    }
-  }
-  if (!silent) console.log(JSON.stringify(result, null, compact ? null : 2));
-}
-
-if (forceFile || infile && infile != "-") {
-  run((0, _fs.readFileSync)(infile, "utf8"));
-} else {
-  (function () {
-    var code = "";
-    process.stdin.resume();
-    process.stdin.on("data", function (chunk) {
-      return code += chunk;
-    });
-    process.stdin.on("end", function () {
-      return run(code);
-    });
-  })();
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/bin/build-acorn.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/bin/build-acorn.js b/node_modules/acorn/bin/build-acorn.js
deleted file mode 100644
index 71f2cf9..0000000
--- a/node_modules/acorn/bin/build-acorn.js
+++ /dev/null
@@ -1,82 +0,0 @@
-var fs = require("fs"), path = require("path")
-var stream = require("stream")
-
-var browserify = require("browserify")
-var babel = require('babel-core')
-var babelify = require("babelify").configure({loose: "all"})
-
-process.chdir(path.resolve(__dirname, ".."))
-
-browserify({standalone: "acorn"})
-  .plugin(require('browserify-derequire'))
-  .transform(babelify)
-  .require("./src/index.js", {entry: true})
-  .bundle()
-  .on("error", function (err) { console.log("Error: " + err.message) })
-  .pipe(fs.createWriteStream("dist/acorn.js"))
-
-var ACORN_PLACEHOLDER = "this_function_call_should_be_replaced_with_a_call_to_load_acorn()";
-function acornShimPrepare(file) {
-  var tr = new stream.Transform
-  if (file == path.resolve(__dirname, "../src/index.js")) {
-    var sent = false
-    tr._transform = function(chunk, _, callback) {
-      if (!sent) {
-        sent = true
-        callback(null, ACORN_PLACEHOLDER);
-      } else {
-        callback()
-      }
-    }
-  } else {
-    tr._transform = function(chunk, _, callback) { callback(null, chunk) }
-  }
-  return tr
-}
-function acornShimComplete() {
-  var tr = new stream.Transform
-  var buffer = "";
-  tr._transform = function(chunk, _, callback) {
-    buffer += chunk.toString("utf8");
-    callback();
-  };
-  tr._flush = function (callback) {
-    tr.push(buffer.replace(ACORN_PLACEHOLDER, "module.exports = typeof acorn != 'undefined' ? acorn : require(\"./acorn\")"));
-    callback(null);
-  };
-  return tr;
-}
-
-browserify({standalone: "acorn.loose"})
-  .plugin(require('browserify-derequire'))
-  .transform(acornShimPrepare)
-  .transform(babelify)
-  .require("./src/loose/index.js", {entry: true})
-  .bundle()
-  .on("error", function (err) { console.log("Error: " + err.message) })
-  .pipe(acornShimComplete())
-  .pipe(fs.createWriteStream("dist/acorn_loose.js"))
-
-browserify({standalone: "acorn.walk"})
-  .plugin(require('browserify-derequire'))
-  .transform(acornShimPrepare)
-  .transform(babelify)
-  .require("./src/walk/index.js", {entry: true})
-  .bundle()
-  .on("error", function (err) { console.log("Error: " + err.message) })
-  .pipe(acornShimComplete())
-  .pipe(fs.createWriteStream("dist/walk.js"))
-
-babel.transformFile("./src/bin/acorn.js", function (err, result) {
-  if (err) return console.log("Error: " + err.message)
-  fs.writeFile("bin/acorn", result.code, function (err) {
-    if (err) return console.log("Error: " + err.message)
-
-    // Make bin/acorn executable
-    if (process.platform === 'win32')
-      return
-    var stat = fs.statSync("bin/acorn")
-    var newPerm = stat.mode | parseInt('111', 8)
-    fs.chmodSync("bin/acorn", newPerm)
-  })
-})

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/bin/generate-identifier-regex.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/bin/generate-identifier-regex.js b/node_modules/acorn/bin/generate-identifier-regex.js
deleted file mode 100644
index 0d7c50f..0000000
--- a/node_modules/acorn/bin/generate-identifier-regex.js
+++ /dev/null
@@ -1,47 +0,0 @@
-// Note: run `npm install unicode-7.0.0` first.
-
-// Which Unicode version should be used?
-var version = '7.0.0';
-
-var start = require('unicode-' + version + '/properties/ID_Start/code-points')
-    .filter(function(ch) { return ch > 127; });
-var cont = [0x200c, 0x200d].concat(require('unicode-' + version + '/properties/ID_Continue/code-points')
-    .filter(function(ch) { return ch > 127 && start.indexOf(ch) == -1; }));
-
-function pad(str, width) {
-  while (str.length < width) str = "0" + str;
-  return str;
-}
-
-function esc(code) {
-  var hex = code.toString(16);
-  if (hex.length <= 2) return "\\x" + pad(hex, 2);
-  else return "\\u" + pad(hex, 4);
-}
-
-function generate(chars) {
-  var astral = [], re = "";
-  for (var i = 0, at = 0x10000; i < chars.length; i++) {
-    var from = chars[i], to = from;
-    while (i < chars.length - 1 && chars[i + 1] == to + 1) {
-      i++;
-      to++;
-    }
-    if (to <= 0xffff) {
-      if (from == to) re += esc(from);
-      else if (from + 1 == to) re += esc(from) + esc(to);
-      else re += esc(from) + "-" + esc(to);
-    } else {
-      astral.push(from - at, to - from);
-      at = to;
-    }
-  }
-  return {nonASCII: re, astral: astral};
-}
-
-var startData = generate(start), contData = generate(cont);
-
-console.log("  var nonASCIIidentifierStartChars = \"" + startData.nonASCII + "\";");
-console.log("  var nonASCIIidentifierChars = \"" + contData.nonASCII + "\";");
-console.log("  var astralIdentifierStartCodes = " + JSON.stringify(startData.astral) + ";");
-console.log("  var astralIdentifierCodes = " + JSON.stringify(contData.astral) + ";");

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/bin/update_authors.sh
----------------------------------------------------------------------
diff --git a/node_modules/acorn/bin/update_authors.sh b/node_modules/acorn/bin/update_authors.sh
deleted file mode 100755
index 466c8db..0000000
--- a/node_modules/acorn/bin/update_authors.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-# Combine existing list of authors with everyone known in git, sort, add header.
-tail --lines=+3 AUTHORS > AUTHORS.tmp
-git log --format='%aN' | grep -v abraidwood >> AUTHORS.tmp
-echo -e "List of Acorn contributors. Updated before every release.\n" > AUTHORS
-sort -u AUTHORS.tmp >> AUTHORS
-rm -f AUTHORS.tmp

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/dist/.keep
----------------------------------------------------------------------
diff --git a/node_modules/acorn/dist/.keep b/node_modules/acorn/dist/.keep
deleted file mode 100644
index e69de29..0000000


[12/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/chokidar/index.js
----------------------------------------------------------------------
diff --git a/node_modules/chokidar/index.js b/node_modules/chokidar/index.js
deleted file mode 100644
index e23a643..0000000
--- a/node_modules/chokidar/index.js
+++ /dev/null
@@ -1,711 +0,0 @@
-'use strict';
-var EventEmitter = require('events').EventEmitter;
-var fs = require('fs');
-var sysPath = require('path');
-var asyncEach = require('async-each');
-var anymatch = require('anymatch');
-var globParent = require('glob-parent');
-var isGlob = require('is-glob');
-var isAbsolute = require('path-is-absolute');
-var inherits = require('inherits');
-
-var NodeFsHandler = require('./lib/nodefs-handler');
-var FsEventsHandler = require('./lib/fsevents-handler');
-
-var arrify = function(value) {
-  if (value == null) return [];
-  return Array.isArray(value) ? value : [value];
-};
-
-var flatten = function(list, result) {
-  if (result == null) result = [];
-  list.forEach(function(item) {
-    if (Array.isArray(item)) {
-      flatten(item, result);
-    } else {
-      result.push(item);
-    }
-  });
-  return result;
-};
-
-// Little isString util for use in Array#every.
-var isString = function(thing) {
-  return typeof thing === 'string';
-};
-
-// Public: Main class.
-// Watches files & directories for changes.
-//
-// * _opts - object, chokidar options hash
-//
-// Emitted events:
-// `add`, `addDir`, `change`, `unlink`, `unlinkDir`, `all`, `error`
-//
-// Examples
-//
-//  var watcher = new FSWatcher()
-//    .add(directories)
-//    .on('add', path => console.log('File', path, 'was added'))
-//    .on('change', path => console.log('File', path, 'was changed'))
-//    .on('unlink', path => console.log('File', path, 'was removed'))
-//    .on('all', (event, path) => console.log(path, ' emitted ', event))
-//
-function FSWatcher(_opts) {
-  EventEmitter.call(this);
-  var opts = {};
-  // in case _opts that is passed in is a frozen object
-  if (_opts) for (var opt in _opts) opts[opt] = _opts[opt];
-  this._watched = Object.create(null);
-  this._closers = Object.create(null);
-  this._ignoredPaths = Object.create(null);
-  Object.defineProperty(this, '_globIgnored', {
-    get: function() { return Object.keys(this._ignoredPaths); }
-  });
-  this.closed = false;
-  this._throttled = Object.create(null);
-  this._symlinkPaths = Object.create(null);
-
-  function undef(key) {
-    return opts[key] === undefined;
-  }
-
-  // Set up default options.
-  if (undef('persistent')) opts.persistent = true;
-  if (undef('ignoreInitial')) opts.ignoreInitial = false;
-  if (undef('ignorePermissionErrors')) opts.ignorePermissionErrors = false;
-  if (undef('interval')) opts.interval = 100;
-  if (undef('binaryInterval')) opts.binaryInterval = 300;
-  this.enableBinaryInterval = opts.binaryInterval !== opts.interval;
-
-  // Enable fsevents on OS X when polling isn't explicitly enabled.
-  if (undef('useFsEvents')) opts.useFsEvents = !opts.usePolling;
-
-  // If we can't use fsevents, ensure the options reflect it's disabled.
-  if (!FsEventsHandler.canUse()) opts.useFsEvents = false;
-
-  // Use polling on Mac if not using fsevents.
-  // Other platforms use non-polling fs.watch.
-  if (undef('usePolling') && !opts.useFsEvents) {
-    opts.usePolling = process.platform === 'darwin';
-  }
-
-  // Global override (useful for end-developers that need to force polling for all
-  // instances of chokidar, regardless of usage/dependency depth)
-  var envPoll = process.env.CHOKIDAR_USEPOLLING;
-  if (envPoll !== undefined) {
-    var envLower = envPoll.toLowerCase();
-
-    if (envLower === 'false' || envLower === '0') {
-      opts.usePolling = false;
-    } else if (envLower === 'true' || envLower === '1') {
-      opts.usePolling = true;
-    } else {
-      opts.usePolling = !!envLower
-    }
-  }
-
-  // Editor atomic write normalization enabled by default with fs.watch
-  if (undef('atomic')) opts.atomic = !opts.usePolling && !opts.useFsEvents;
-  if (opts.atomic) this._pendingUnlinks = Object.create(null);
-
-  if (undef('followSymlinks')) opts.followSymlinks = true;
-
-  if (undef('awaitWriteFinish')) opts.awaitWriteFinish = false;
-  if (opts.awaitWriteFinish === true) opts.awaitWriteFinish = {};
-  var awf = opts.awaitWriteFinish;
-  if (awf) {
-    if (!awf.stabilityThreshold) awf.stabilityThreshold = 2000;
-    if (!awf.pollInterval) awf.pollInterval = 100;
-
-    this._pendingWrites = Object.create(null);
-  }
-  if (opts.ignored) opts.ignored = arrify(opts.ignored);
-
-  this._isntIgnored = function(path, stat) {
-    return !this._isIgnored(path, stat);
-  }.bind(this);
-
-  var readyCalls = 0;
-  this._emitReady = function() {
-    if (++readyCalls >= this._readyCount) {
-      this._emitReady = Function.prototype;
-      this._readyEmitted = true;
-      // use process.nextTick to allow time for listener to be bound
-      process.nextTick(this.emit.bind(this, 'ready'));
-    }
-  }.bind(this);
-
-  this.options = opts;
-
-  // You’re frozen when your heart’s not open.
-  Object.freeze(opts);
-}
-
-inherits(FSWatcher, EventEmitter);
-
-// Common helpers
-// --------------
-
-// Private method: Normalize and emit events
-//
-// * event     - string, type of event
-// * path      - string, file or directory path
-// * val[1..3] - arguments to be passed with event
-//
-// Returns the error if defined, otherwise the value of the
-// FSWatcher instance's `closed` flag
-FSWatcher.prototype._emit = function(event, path, val1, val2, val3) {
-  if (this.options.cwd) path = sysPath.relative(this.options.cwd, path);
-  var args = [event, path];
-  if (val3 !== undefined) args.push(val1, val2, val3);
-  else if (val2 !== undefined) args.push(val1, val2);
-  else if (val1 !== undefined) args.push(val1);
-
-  var awf = this.options.awaitWriteFinish;
-  if (awf && this._pendingWrites[path]) {
-    this._pendingWrites[path].lastChange = new Date();
-    return this;
-  }
-
-  if (this.options.atomic) {
-    if (event === 'unlink') {
-      this._pendingUnlinks[path] = args;
-      setTimeout(function() {
-        Object.keys(this._pendingUnlinks).forEach(function(path) {
-          this.emit.apply(this, this._pendingUnlinks[path]);
-          this.emit.apply(this, ['all'].concat(this._pendingUnlinks[path]));
-          delete this._pendingUnlinks[path];
-        }.bind(this));
-      }.bind(this), typeof this.options.atomic === "number"
-        ? this.options.atomic
-        : 100);
-      return this;
-    } else if (event === 'add' && this._pendingUnlinks[path]) {
-      event = args[0] = 'change';
-      delete this._pendingUnlinks[path];
-    }
-  }
-
-  var emitEvent = function() {
-    this.emit.apply(this, args);
-    if (event !== 'error') this.emit.apply(this, ['all'].concat(args));
-  }.bind(this);
-
-  if (awf && (event === 'add' || event === 'change') && this._readyEmitted) {
-    var awfEmit = function(err, stats) {
-      if (err) {
-        event = args[0] = 'error';
-        args[1] = err;
-        emitEvent();
-      } else if (stats) {
-        // if stats doesn't exist the file must have been deleted
-        if (args.length > 2) {
-          args[2] = stats;
-        } else {
-          args.push(stats);
-        }
-        emitEvent();
-      }
-    };
-
-    this._awaitWriteFinish(path, awf.stabilityThreshold, event, awfEmit);
-    return this;
-  }
-
-  if (event === 'change') {
-    if (!this._throttle('change', path, 50)) return this;
-  }
-
-  if (
-    this.options.alwaysStat && val1 === undefined &&
-    (event === 'add' || event === 'addDir' || event === 'change')
-  ) {
-    var fullPath = this.options.cwd ? sysPath.join(this.options.cwd, path) : path;
-    fs.stat(fullPath, function(error, stats) {
-      // Suppress event when fs.stat fails, to avoid sending undefined 'stat'
-      if (error || !stats) return;
-
-      args.push(stats);
-      emitEvent();
-    });
-  } else {
-    emitEvent();
-  }
-
-  return this;
-};
-
-// Private method: Common handler for errors
-//
-// * error  - object, Error instance
-//
-// Returns the error if defined, otherwise the value of the
-// FSWatcher instance's `closed` flag
-FSWatcher.prototype._handleError = function(error) {
-  var code = error && error.code;
-  var ipe = this.options.ignorePermissionErrors;
-  if (error &&
-    code !== 'ENOENT' &&
-    code !== 'ENOTDIR' &&
-    (!ipe || (code !== 'EPERM' && code !== 'EACCES'))
-  ) this.emit('error', error);
-  return error || this.closed;
-};
-
-// Private method: Helper utility for throttling
-//
-// * action  - string, type of action being throttled
-// * path    - string, path being acted upon
-// * timeout - int, duration of time to suppress duplicate actions
-//
-// Returns throttle tracking object or false if action should be suppressed
-FSWatcher.prototype._throttle = function(action, path, timeout) {
-  if (!(action in this._throttled)) {
-    this._throttled[action] = Object.create(null);
-  }
-  var throttled = this._throttled[action];
-  if (path in throttled) return false;
-  function clear() {
-    delete throttled[path];
-    clearTimeout(timeoutObject);
-  }
-  var timeoutObject = setTimeout(clear, timeout);
-  throttled[path] = {timeoutObject: timeoutObject, clear: clear};
-  return throttled[path];
-};
-
-// Private method: Awaits write operation to finish
-//
-// * path    - string, path being acted upon
-// * threshold - int, time in milliseconds a file size must be fixed before
-//                    acknowledgeing write operation is finished
-// * awfEmit - function, to be called when ready for event to be emitted
-// Polls a newly created file for size variations. When files size does not
-// change for 'threshold' milliseconds calls callback.
-FSWatcher.prototype._awaitWriteFinish = function(path, threshold, event, awfEmit) {
-  var timeoutHandler;
-
-  var fullPath = path;
-  if (this.options.cwd && !isAbsolute(path)) {
-    fullPath = sysPath.join(this.options.cwd, path);
-  }
-
-  var now = new Date();
-
-  var awaitWriteFinish = (function (prevStat) {
-    fs.stat(fullPath, function(err, curStat) {
-      if (err) {
-        if (err.code !== 'ENOENT') awfEmit(err);
-        return;
-      }
-
-      var now = new Date();
-
-      if (prevStat && curStat.size != prevStat.size) {
-        this._pendingWrites[path].lastChange = now;
-      }
-
-      if (now - this._pendingWrites[path].lastChange >= threshold) {
-        delete this._pendingWrites[path];
-        awfEmit(null, curStat);
-      } else {
-        timeoutHandler = setTimeout(
-          awaitWriteFinish.bind(this, curStat),
-          this.options.awaitWriteFinish.pollInterval
-        );
-      }
-    }.bind(this));
-  }.bind(this));
-
-  if (!(path in this._pendingWrites)) {
-    this._pendingWrites[path] = {
-      lastChange: now,
-      cancelWait: function() {
-        delete this._pendingWrites[path];
-        clearTimeout(timeoutHandler);
-        return event;
-      }.bind(this)
-    };
-    timeoutHandler = setTimeout(
-      awaitWriteFinish.bind(this),
-      this.options.awaitWriteFinish.pollInterval
-    );
-  }
-};
-
-// Private method: Determines whether user has asked to ignore this path
-//
-// * path  - string, path to file or directory
-// * stats - object, result of fs.stat
-//
-// Returns boolean
-var dotRe = /\..*\.(sw[px])$|\~$|\.subl.*\.tmp/;
-FSWatcher.prototype._isIgnored = function(path, stats) {
-  if (this.options.atomic && dotRe.test(path)) return true;
-
-  if (!this._userIgnored) {
-    var cwd = this.options.cwd;
-    var ignored = this.options.ignored;
-    if (cwd && ignored) {
-      ignored = ignored.map(function (path) {
-        if (typeof path !== 'string') return path;
-        return isAbsolute(path) ? path : sysPath.join(cwd, path);
-      });
-    }
-    var paths = arrify(ignored)
-      .filter(function(path) {
-        return typeof path === 'string' && !isGlob(path);
-      }).map(function(path) {
-        return path + '/**';
-      });
-    this._userIgnored = anymatch(
-      this._globIgnored.concat(ignored).concat(paths)
-    );
-  }
-
-  return this._userIgnored([path, stats]);
-};
-
-// Private method: Provides a set of common helpers and properties relating to
-// symlink and glob handling
-//
-// * path - string, file, directory, or glob pattern being watched
-// * depth - int, at any depth > 0, this isn't a glob
-//
-// Returns object containing helpers for this path
-var replacerRe = /^\.[\/\\]/;
-FSWatcher.prototype._getWatchHelpers = function(path, depth) {
-  path = path.replace(replacerRe, '');
-  var watchPath = depth || !isGlob(path) ? path : globParent(path);
-  var fullWatchPath = sysPath.resolve(watchPath);
-  var hasGlob = watchPath !== path;
-  var globFilter = hasGlob ? anymatch(path) : false;
-  var follow = this.options.followSymlinks;
-  var globSymlink = hasGlob && follow ? null : false;
-
-  var checkGlobSymlink = function(entry) {
-    // only need to resolve once
-    // first entry should always have entry.parentDir === ''
-    if (globSymlink == null) {
-      globSymlink = entry.fullParentDir === fullWatchPath ? false : {
-        realPath: entry.fullParentDir,
-        linkPath: fullWatchPath
-      };
-    }
-
-    if (globSymlink) {
-      return entry.fullPath.replace(globSymlink.realPath, globSymlink.linkPath);
-    }
-
-    return entry.fullPath;
-  };
-
-  var entryPath = function(entry) {
-    return sysPath.join(watchPath,
-      sysPath.relative(watchPath, checkGlobSymlink(entry))
-    );
-  };
-
-  var filterPath = function(entry) {
-    if (entry.stat && entry.stat.isSymbolicLink()) return filterDir(entry);
-    var resolvedPath = entryPath(entry);
-    return (!hasGlob || globFilter(resolvedPath)) &&
-      this._isntIgnored(resolvedPath, entry.stat) &&
-      (this.options.ignorePermissionErrors ||
-        this._hasReadPermissions(entry.stat));
-  }.bind(this);
-
-  var getDirParts = function(path) {
-    if (!hasGlob) return false;
-    var parts = sysPath.relative(watchPath, path).split(/[\/\\]/);
-    return parts;
-  };
-
-  var dirParts = getDirParts(path);
-  if (dirParts && dirParts.length > 1) dirParts.pop();
-  var unmatchedGlob;
-
-  var filterDir = function(entry) {
-    if (hasGlob) {
-      var entryParts = getDirParts(checkGlobSymlink(entry));
-      var globstar = false;
-      unmatchedGlob = !dirParts.every(function(part, i) {
-        if (part === '**') globstar = true;
-        return globstar || !entryParts[i] || anymatch(part, entryParts[i]);
-      });
-    }
-    return !unmatchedGlob && this._isntIgnored(entryPath(entry), entry.stat);
-  }.bind(this);
-
-  return {
-    followSymlinks: follow,
-    statMethod: follow ? 'stat' : 'lstat',
-    path: path,
-    watchPath: watchPath,
-    entryPath: entryPath,
-    hasGlob: hasGlob,
-    globFilter: globFilter,
-    filterPath: filterPath,
-    filterDir: filterDir
-  };
-};
-
-// Directory helpers
-// -----------------
-
-// Private method: Provides directory tracking objects
-//
-// * directory - string, path of the directory
-//
-// Returns the directory's tracking object
-FSWatcher.prototype._getWatchedDir = function(directory) {
-  var dir = sysPath.resolve(directory);
-  var watcherRemove = this._remove.bind(this);
-  if (!(dir in this._watched)) this._watched[dir] = {
-    _items: Object.create(null),
-    add: function(item) {
-      if (item !== '.') this._items[item] = true;
-    },
-    remove: function(item) {
-      delete this._items[item];
-      if (!this.children().length) {
-        fs.readdir(dir, function(err) {
-          if (err) watcherRemove(sysPath.dirname(dir), sysPath.basename(dir));
-        });
-      }
-    },
-    has: function(item) {return item in this._items;},
-    children: function() {return Object.keys(this._items);}
-  };
-  return this._watched[dir];
-};
-
-// File helpers
-// ------------
-
-// Private method: Check for read permissions
-// Based on this answer on SO: http://stackoverflow.com/a/11781404/1358405
-//
-// * stats - object, result of fs.stat
-//
-// Returns boolean
-FSWatcher.prototype._hasReadPermissions = function(stats) {
-  return Boolean(4 & parseInt(((stats && stats.mode) & 0x1ff).toString(8)[0], 10));
-};
-
-// Private method: Handles emitting unlink events for
-// files and directories, and via recursion, for
-// files and directories within directories that are unlinked
-//
-// * directory - string, directory within which the following item is located
-// * item      - string, base path of item/directory
-//
-// Returns nothing
-FSWatcher.prototype._remove = function(directory, item) {
-  // if what is being deleted is a directory, get that directory's paths
-  // for recursive deleting and cleaning of watched object
-  // if it is not a directory, nestedDirectoryChildren will be empty array
-  var path = sysPath.join(directory, item);
-  var fullPath = sysPath.resolve(path);
-  var isDirectory = this._watched[path] || this._watched[fullPath];
-
-  // prevent duplicate handling in case of arriving here nearly simultaneously
-  // via multiple paths (such as _handleFile and _handleDir)
-  if (!this._throttle('remove', path, 100)) return;
-
-  // if the only watched file is removed, watch for its return
-  var watchedDirs = Object.keys(this._watched);
-  if (!isDirectory && !this.options.useFsEvents && watchedDirs.length === 1) {
-    this.add(directory, item, true);
-  }
-
-  // This will create a new entry in the watched object in either case
-  // so we got to do the directory check beforehand
-  var nestedDirectoryChildren = this._getWatchedDir(path).children();
-
-  // Recursively remove children directories / files.
-  nestedDirectoryChildren.forEach(function(nestedItem) {
-    this._remove(path, nestedItem);
-  }, this);
-
-  // Check if item was on the watched list and remove it
-  var parent = this._getWatchedDir(directory);
-  var wasTracked = parent.has(item);
-  parent.remove(item);
-
-  // If we wait for this file to be fully written, cancel the wait.
-  var relPath = path;
-  if (this.options.cwd) relPath = sysPath.relative(this.options.cwd, path);
-  if (this.options.awaitWriteFinish && this._pendingWrites[relPath]) {
-    var event = this._pendingWrites[relPath].cancelWait();
-    if (event === 'add') return;
-  }
-
-  // The Entry will either be a directory that just got removed
-  // or a bogus entry to a file, in either case we have to remove it
-  delete this._watched[path];
-  delete this._watched[fullPath];
-  var eventName = isDirectory ? 'unlinkDir' : 'unlink';
-  if (wasTracked && !this._isIgnored(path)) this._emit(eventName, path);
-
-  // Avoid conflicts if we later create another file with the same name
-  if (!this.options.useFsEvents) {
-    this._closePath(path);
-  }
-};
-
-FSWatcher.prototype._closePath = function(path) {
-  if (!this._closers[path]) return;
-  this._closers[path]();
-  delete this._closers[path];
-  this._getWatchedDir(sysPath.dirname(path)).remove(sysPath.basename(path));
-}
-
-// Public method: Adds paths to be watched on an existing FSWatcher instance
-
-// * paths     - string or array of strings, file/directory paths and/or globs
-// * _origAdd  - private boolean, for handling non-existent paths to be watched
-// * _internal - private boolean, indicates a non-user add
-
-// Returns an instance of FSWatcher for chaining.
-FSWatcher.prototype.add = function(paths, _origAdd, _internal) {
-  var cwd = this.options.cwd;
-  this.closed = false;
-  paths = flatten(arrify(paths));
-
-  if (!paths.every(isString)) {
-    throw new TypeError('Non-string provided as watch path: ' + paths);
-  }
-
-  if (cwd) paths = paths.map(function(path) {
-    if (isAbsolute(path)) {
-      return path;
-    } else if (path[0] === '!') {
-      return '!' + sysPath.join(cwd, path.substring(1));
-    } else {
-      return sysPath.join(cwd, path);
-    }
-  });
-
-  // set aside negated glob strings
-  paths = paths.filter(function(path) {
-    if (path[0] === '!') {
-      this._ignoredPaths[path.substring(1)] = true;
-    } else {
-      // if a path is being added that was previously ignored, stop ignoring it
-      delete this._ignoredPaths[path];
-      delete this._ignoredPaths[path + '/**'];
-
-      // reset the cached userIgnored anymatch fn
-      // to make ignoredPaths changes effective
-      this._userIgnored = null;
-
-      return true;
-    }
-  }, this);
-
-  if (this.options.useFsEvents && FsEventsHandler.canUse()) {
-    if (!this._readyCount) this._readyCount = paths.length;
-    if (this.options.persistent) this._readyCount *= 2;
-    paths.forEach(this._addToFsEvents, this);
-  } else {
-    if (!this._readyCount) this._readyCount = 0;
-    this._readyCount += paths.length;
-    asyncEach(paths, function(path, next) {
-      this._addToNodeFs(path, !_internal, 0, 0, _origAdd, function(err, res) {
-        if (res) this._emitReady();
-        next(err, res);
-      }.bind(this));
-    }.bind(this), function(error, results) {
-      results.forEach(function(item) {
-        if (!item) return;
-        this.add(sysPath.dirname(item), sysPath.basename(_origAdd || item));
-      }, this);
-    }.bind(this));
-  }
-
-  return this;
-};
-
-// Public method: Close watchers or start ignoring events from specified paths.
-
-// * paths     - string or array of strings, file/directory paths and/or globs
-
-// Returns instance of FSWatcher for chaining.
-FSWatcher.prototype.unwatch = function(paths) {
-  if (this.closed) return this;
-  paths = flatten(arrify(paths));
-
-  paths.forEach(function(path) {
-    // convert to absolute path unless relative path already matches
-    if (!isAbsolute(path) && !this._closers[path]) {
-      if (this.options.cwd) path = sysPath.join(this.options.cwd, path);
-      path = sysPath.resolve(path);
-    }
-
-    this._closePath(path);
-
-    this._ignoredPaths[path] = true;
-    if (path in this._watched) {
-      this._ignoredPaths[path + '/**'] = true;
-    }
-
-    // reset the cached userIgnored anymatch fn
-    // to make ignoredPaths changes effective
-    this._userIgnored = null;
-  }, this);
-
-  return this;
-};
-
-// Public method: Close watchers and remove all listeners from watched paths.
-
-// Returns instance of FSWatcher for chaining.
-FSWatcher.prototype.close = function() {
-  if (this.closed) return this;
-
-  this.closed = true;
-  Object.keys(this._closers).forEach(function(watchPath) {
-    this._closers[watchPath]();
-    delete this._closers[watchPath];
-  }, this);
-  this._watched = Object.create(null);
-
-  this.removeAllListeners();
-  return this;
-};
-
-// Public method: Expose list of watched paths
-
-// Returns object w/ dir paths as keys and arrays of contained paths as values.
-FSWatcher.prototype.getWatched = function() {
-  var watchList = {};
-  Object.keys(this._watched).forEach(function(dir) {
-    var key = this.options.cwd ? sysPath.relative(this.options.cwd, dir) : dir;
-    watchList[key || '.'] = Object.keys(this._watched[dir]._items).sort();
-  }.bind(this));
-  return watchList;
-};
-
-// Attach watch handler prototype methods
-function importHandler(handler) {
-  Object.keys(handler.prototype).forEach(function(method) {
-    FSWatcher.prototype[method] = handler.prototype[method];
-  });
-}
-importHandler(NodeFsHandler);
-if (FsEventsHandler.canUse()) importHandler(FsEventsHandler);
-
-// Export FSWatcher class
-exports.FSWatcher = FSWatcher;
-
-// Public function: Instantiates watcher with paths to be tracked.
-
-// * paths     - string or array of strings, file/directory paths and/or globs
-// * options   - object, chokidar options
-
-// Returns an instance of FSWatcher for chaining.
-exports.watch = function(paths, options) {
-  return new FSWatcher(options).add(paths);
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/chokidar/lib/fsevents-handler.js
----------------------------------------------------------------------
diff --git a/node_modules/chokidar/lib/fsevents-handler.js b/node_modules/chokidar/lib/fsevents-handler.js
deleted file mode 100644
index dbf6ade..0000000
--- a/node_modules/chokidar/lib/fsevents-handler.js
+++ /dev/null
@@ -1,396 +0,0 @@
-'use strict';
-
-var fs = require('fs');
-var sysPath = require('path');
-var readdirp = require('readdirp');
-var fsevents;
-try { fsevents = require('fsevents'); } catch (error) {}
-
-// fsevents instance helper functions
-
-// object to hold per-process fsevents instances
-// (may be shared across chokidar FSWatcher instances)
-var FSEventsWatchers = Object.create(null);
-
-// Threshold of duplicate path prefixes at which to start
-// consolidating going forward
-var consolidateThreshhold = 10;
-
-// Private function: Instantiates the fsevents interface
-
-// * path       - string, path to be watched
-// * callback   - function, called when fsevents is bound and ready
-
-// Returns new fsevents instance
-function createFSEventsInstance(path, callback) {
-  return (new fsevents(path)).on('fsevent', callback).start();
-}
-
-// Private function: Instantiates the fsevents interface or binds listeners
-// to an existing one covering the same file tree
-
-// * path       - string, path to be watched
-// * realPath   - string, real path (in case of symlinks)
-// * listener   - function, called when fsevents emits events
-// * rawEmitter - function, passes data to listeners of the 'raw' event
-
-// Returns close function
-function setFSEventsListener(path, realPath, listener, rawEmitter) {
-  var watchPath = sysPath.extname(path) ? sysPath.dirname(path) : path;
-  var watchContainer;
-  var parentPath = sysPath.dirname(watchPath);
-
-  // If we've accumulated a substantial number of paths that
-  // could have been consolidated by watching one directory
-  // above the current one, create a watcher on the parent
-  // path instead, so that we do consolidate going forward.
-  if (couldConsolidate(parentPath)) {
-    watchPath = parentPath;
-  }
-
-  var resolvedPath = sysPath.resolve(path);
-  var hasSymlink = resolvedPath !== realPath;
-  function filteredListener(fullPath, flags, info) {
-    if (hasSymlink) fullPath = fullPath.replace(realPath, resolvedPath);
-    if (
-      fullPath === resolvedPath ||
-      !fullPath.indexOf(resolvedPath + sysPath.sep)
-    ) listener(fullPath, flags, info);
-  }
-
-  // check if there is already a watcher on a parent path
-  // modifies `watchPath` to the parent path when it finds a match
-  function watchedParent() {
-    return Object.keys(FSEventsWatchers).some(function(watchedPath) {
-      // condition is met when indexOf returns 0
-      if (!realPath.indexOf(sysPath.resolve(watchedPath) + sysPath.sep)) {
-        watchPath = watchedPath;
-        return true;
-      }
-    });
-  }
-
-  if (watchPath in FSEventsWatchers || watchedParent()) {
-    watchContainer = FSEventsWatchers[watchPath];
-    watchContainer.listeners.push(filteredListener);
-  } else {
-    watchContainer = FSEventsWatchers[watchPath] = {
-      listeners: [filteredListener],
-      rawEmitters: [rawEmitter],
-      watcher: createFSEventsInstance(watchPath, function(fullPath, flags) {
-        var info = fsevents.getInfo(fullPath, flags);
-        watchContainer.listeners.forEach(function(listener) {
-          listener(fullPath, flags, info);
-        });
-        watchContainer.rawEmitters.forEach(function(emitter) {
-          emitter(info.event, fullPath, info);
-        });
-      })
-    };
-  }
-  var listenerIndex = watchContainer.listeners.length - 1;
-
-  // removes this instance's listeners and closes the underlying fsevents
-  // instance if there are no more listeners left
-  return function close() {
-    delete watchContainer.listeners[listenerIndex];
-    delete watchContainer.rawEmitters[listenerIndex];
-    if (!Object.keys(watchContainer.listeners).length) {
-      watchContainer.watcher.stop();
-      delete FSEventsWatchers[watchPath];
-    }
-  };
-}
-
-// Decide whether or not we should start a new higher-level
-// parent watcher
-function couldConsolidate(path) {
-  var keys = Object.keys(FSEventsWatchers);
-  var count = 0;
-
-  for (var i = 0, len = keys.length; i < len; ++i) {
-    var watchPath = keys[i];
-    if (watchPath.indexOf(path) === 0) {
-      count++;
-      if (count >= consolidateThreshhold) {
-        return true;
-      }
-    }
-  }
-
-  return false;
-}
-
-// returns boolean indicating whether fsevents can be used
-function canUse() {
-  return fsevents && Object.keys(FSEventsWatchers).length < 128;
-}
-
-// determines subdirectory traversal levels from root to path
-function depth(path, root) {
-  var i = 0;
-  while (!path.indexOf(root) && (path = sysPath.dirname(path)) !== root) i++;
-  return i;
-}
-
-// fake constructor for attaching fsevents-specific prototype methods that
-// will be copied to FSWatcher's prototype
-function FsEventsHandler() {}
-
-// Private method: Handle symlinks encountered during directory scan
-
-// * watchPath  - string, file/dir path to be watched with fsevents
-// * realPath   - string, real path (in case of symlinks)
-// * transform  - function, path transformer
-// * globFilter - function, path filter in case a glob pattern was provided
-
-// Returns close function for the watcher instance
-FsEventsHandler.prototype._watchWithFsEvents =
-function(watchPath, realPath, transform, globFilter) {
-  if (this._isIgnored(watchPath)) return;
-  var watchCallback = function(fullPath, flags, info) {
-    if (
-      this.options.depth !== undefined &&
-      depth(fullPath, realPath) > this.options.depth
-    ) return;
-    var path = transform(sysPath.join(
-      watchPath, sysPath.relative(watchPath, fullPath)
-    ));
-    if (globFilter && !globFilter(path)) return;
-    // ensure directories are tracked
-    var parent = sysPath.dirname(path);
-    var item = sysPath.basename(path);
-    var watchedDir = this._getWatchedDir(
-      info.type === 'directory' ? path : parent
-    );
-    var checkIgnored = function(stats) {
-      if (this._isIgnored(path, stats)) {
-        this._ignoredPaths[path] = true;
-        if (stats && stats.isDirectory()) {
-          this._ignoredPaths[path + '/**/*'] = true;
-        }
-        return true;
-      } else {
-        delete this._ignoredPaths[path];
-        delete this._ignoredPaths[path + '/**/*'];
-      }
-    }.bind(this);
-
-    var handleEvent = function(event) {
-      if (checkIgnored()) return;
-
-      if (event === 'unlink') {
-        // suppress unlink events on never before seen files
-        if (info.type === 'directory' || watchedDir.has(item)) {
-          this._remove(parent, item);
-        }
-      } else {
-        if (event === 'add') {
-          // track new directories
-          if (info.type === 'directory') this._getWatchedDir(path);
-
-          if (info.type === 'symlink' && this.options.followSymlinks) {
-            // push symlinks back to the top of the stack to get handled
-            var curDepth = this.options.depth === undefined ?
-              undefined : depth(fullPath, realPath) + 1;
-            return this._addToFsEvents(path, false, true, curDepth);
-          } else {
-            // track new paths
-            // (other than symlinks being followed, which will be tracked soon)
-            this._getWatchedDir(parent).add(item);
-          }
-        }
-        var eventName = info.type === 'directory' ? event + 'Dir' : event;
-        this._emit(eventName, path);
-        if (eventName === 'addDir') this._addToFsEvents(path, false, true);
-      }
-    }.bind(this);
-
-    function addOrChange() {
-      handleEvent(watchedDir.has(item) ? 'change' : 'add');
-    }
-    function checkFd() {
-      fs.open(path, 'r', function(error, fd) {
-        if (fd) fs.close(fd);
-        error && error.code !== 'EACCES' ?
-          handleEvent('unlink') : addOrChange();
-      });
-    }
-    // correct for wrong events emitted
-    var wrongEventFlags = [
-      69888, 70400, 71424, 72704, 73472, 131328, 131840, 262912
-    ];
-    if (wrongEventFlags.indexOf(flags) !== -1 || info.event === 'unknown') {
-      if (typeof this.options.ignored === 'function') {
-        fs.stat(path, function(error, stats) {
-          if (checkIgnored(stats)) return;
-          stats ? addOrChange() : handleEvent('unlink');
-        });
-      } else {
-        checkFd();
-      }
-    } else {
-      switch (info.event) {
-      case 'created':
-      case 'modified':
-        return addOrChange();
-      case 'deleted':
-      case 'moved':
-        return checkFd();
-      }
-    }
-  }.bind(this);
-
-  var closer = setFSEventsListener(
-    watchPath,
-    realPath,
-    watchCallback,
-    this.emit.bind(this, 'raw')
-  );
-
-  this._emitReady();
-  return closer;
-};
-
-// Private method: Handle symlinks encountered during directory scan
-
-// * linkPath   - string, path to symlink
-// * fullPath   - string, absolute path to the symlink
-// * transform  - function, pre-existing path transformer
-// * curDepth   - int, level of subdirectories traversed to where symlink is
-
-// Returns nothing
-FsEventsHandler.prototype._handleFsEventsSymlink =
-function(linkPath, fullPath, transform, curDepth) {
-  // don't follow the same symlink more than once
-  if (this._symlinkPaths[fullPath]) return;
-  else this._symlinkPaths[fullPath] = true;
-
-  this._readyCount++;
-
-  fs.realpath(linkPath, function(error, linkTarget) {
-    if (this._handleError(error) || this._isIgnored(linkTarget)) {
-      return this._emitReady();
-    }
-
-    this._readyCount++;
-
-    // add the linkTarget for watching with a wrapper for transform
-    // that causes emitted paths to incorporate the link's path
-    this._addToFsEvents(linkTarget || linkPath, function(path) {
-      var dotSlash = '.' + sysPath.sep;
-      var aliasedPath = linkPath;
-      if (linkTarget && linkTarget !== dotSlash) {
-        aliasedPath = path.replace(linkTarget, linkPath);
-      } else if (path !== dotSlash) {
-        aliasedPath = sysPath.join(linkPath, path);
-      }
-      return transform(aliasedPath);
-    }, false, curDepth);
-  }.bind(this));
-};
-
-// Private method: Handle added path with fsevents
-
-// * path       - string, file/directory path or glob pattern
-// * transform  - function, converts working path to what the user expects
-// * forceAdd   - boolean, ensure add is emitted
-// * priorDepth - int, level of subdirectories already traversed
-
-// Returns nothing
-FsEventsHandler.prototype._addToFsEvents =
-function(path, transform, forceAdd, priorDepth) {
-
-  // applies transform if provided, otherwise returns same value
-  var processPath = typeof transform === 'function' ?
-    transform : function(val) { return val; };
-
-  var emitAdd = function(newPath, stats) {
-    var pp = processPath(newPath);
-    var isDir = stats.isDirectory();
-    var dirObj = this._getWatchedDir(sysPath.dirname(pp));
-    var base = sysPath.basename(pp);
-
-    // ensure empty dirs get tracked
-    if (isDir) this._getWatchedDir(pp);
-
-    if (dirObj.has(base)) return;
-    dirObj.add(base);
-
-    if (!this.options.ignoreInitial || forceAdd === true) {
-      this._emit(isDir ? 'addDir' : 'add', pp, stats);
-    }
-  }.bind(this);
-
-  var wh = this._getWatchHelpers(path);
-
-  // evaluate what is at the path we're being asked to watch
-  fs[wh.statMethod](wh.watchPath, function(error, stats) {
-    if (this._handleError(error) || this._isIgnored(wh.watchPath, stats)) {
-      this._emitReady();
-      return this._emitReady();
-    }
-
-    if (stats.isDirectory()) {
-      // emit addDir unless this is a glob parent
-      if (!wh.globFilter) emitAdd(processPath(path), stats);
-
-      // don't recurse further if it would exceed depth setting
-      if (priorDepth && priorDepth > this.options.depth) return;
-
-      // scan the contents of the dir
-      readdirp({
-        root: wh.watchPath,
-        entryType: 'all',
-        fileFilter: wh.filterPath,
-        directoryFilter: wh.filterDir,
-        lstat: true,
-        depth: this.options.depth - (priorDepth || 0)
-      }).on('data', function(entry) {
-        // need to check filterPath on dirs b/c filterDir is less restrictive
-        if (entry.stat.isDirectory() && !wh.filterPath(entry)) return;
-
-        var joinedPath = sysPath.join(wh.watchPath, entry.path);
-        var fullPath = entry.fullPath;
-
-        if (wh.followSymlinks && entry.stat.isSymbolicLink()) {
-          // preserve the current depth here since it can't be derived from
-          // real paths past the symlink
-          var curDepth = this.options.depth === undefined ?
-            undefined : depth(joinedPath, sysPath.resolve(wh.watchPath)) + 1;
-
-          this._handleFsEventsSymlink(joinedPath, fullPath, processPath, curDepth);
-        } else {
-          emitAdd(joinedPath, entry.stat);
-        }
-      }.bind(this)).on('error', function() {
-        // Ignore readdirp errors
-      }).on('end', this._emitReady);
-    } else {
-      emitAdd(wh.watchPath, stats);
-      this._emitReady();
-    }
-  }.bind(this));
-
-  if (this.options.persistent && forceAdd !== true) {
-    var initWatch = function(error, realPath) {
-      var closer = this._watchWithFsEvents(
-        wh.watchPath,
-        sysPath.resolve(realPath || wh.watchPath),
-        processPath,
-        wh.globFilter
-      );
-      if (closer) this._closers[path] = closer;
-    }.bind(this);
-
-    if (typeof transform === 'function') {
-      // realpath has already been resolved
-      initWatch();
-    } else {
-      fs.realpath(wh.watchPath, initWatch);
-    }
-  }
-};
-
-module.exports = FsEventsHandler;
-module.exports.canUse = canUse;

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/chokidar/lib/nodefs-handler.js
----------------------------------------------------------------------
diff --git a/node_modules/chokidar/lib/nodefs-handler.js b/node_modules/chokidar/lib/nodefs-handler.js
deleted file mode 100644
index 9d05b6f..0000000
--- a/node_modules/chokidar/lib/nodefs-handler.js
+++ /dev/null
@@ -1,481 +0,0 @@
-'use strict';
-
-var fs = require('fs');
-var sysPath = require('path');
-var readdirp = require('readdirp');
-var isBinaryPath = require('is-binary-path');
-
-// fs.watch helpers
-
-// object to hold per-process fs.watch instances
-// (may be shared across chokidar FSWatcher instances)
-var FsWatchInstances = Object.create(null);
-
-// Private function: Instantiates the fs.watch interface
-
-// * path       - string, path to be watched
-// * options    - object, options to be passed to fs.watch
-// * listener   - function, main event handler
-// * errHandler - function, handler which emits info about errors
-// * emitRaw    - function, handler which emits raw event data
-
-// Returns new fsevents instance
-function createFsWatchInstance(path, options, listener, errHandler, emitRaw) {
-  var handleEvent = function(rawEvent, evPath) {
-    listener(path);
-    emitRaw(rawEvent, evPath, {watchedPath: path});
-
-    // emit based on events occuring for files from a directory's watcher in
-    // case the file's watcher misses it (and rely on throttling to de-dupe)
-    if (evPath && path !== evPath) {
-      fsWatchBroadcast(
-        sysPath.resolve(path, evPath), 'listeners', sysPath.join(path, evPath)
-      );
-    }
-  };
-  try {
-    return fs.watch(path, options, handleEvent);
-  } catch (error) {
-    errHandler(error);
-  }
-}
-
-// Private function: Helper for passing fs.watch event data to a
-// collection of listeners
-
-// * fullPath   - string, absolute path bound to the fs.watch instance
-// * type       - string, listener type
-// * val[1..3]  - arguments to be passed to listeners
-
-// Returns nothing
-function fsWatchBroadcast(fullPath, type, val1, val2, val3) {
-  if (!FsWatchInstances[fullPath]) return;
-  FsWatchInstances[fullPath][type].forEach(function(listener) {
-    listener(val1, val2, val3);
-  });
-}
-
-// Private function: Instantiates the fs.watch interface or binds listeners
-// to an existing one covering the same file system entry
-
-// * path       - string, path to be watched
-// * fullPath   - string, absolute path
-// * options    - object, options to be passed to fs.watch
-// * handlers   - object, container for event listener functions
-
-// Returns close function
-function setFsWatchListener(path, fullPath, options, handlers) {
-  var listener = handlers.listener;
-  var errHandler = handlers.errHandler;
-  var rawEmitter = handlers.rawEmitter;
-  var container = FsWatchInstances[fullPath];
-  var watcher;
-  if (!options.persistent) {
-    watcher = createFsWatchInstance(
-      path, options, listener, errHandler, rawEmitter
-    );
-    return watcher.close.bind(watcher);
-  }
-  if (!container) {
-    watcher = createFsWatchInstance(
-      path,
-      options,
-      fsWatchBroadcast.bind(null, fullPath, 'listeners'),
-      errHandler, // no need to use broadcast here
-      fsWatchBroadcast.bind(null, fullPath, 'rawEmitters')
-    );
-    if (!watcher) return;
-    var broadcastErr = fsWatchBroadcast.bind(null, fullPath, 'errHandlers');
-    watcher.on('error', function(error) {
-      // Workaround for https://github.com/joyent/node/issues/4337
-      if (process.platform === 'win32' && error.code === 'EPERM') {
-        fs.open(path, 'r', function(err, fd) {
-          if (fd) fs.close(fd);
-          if (!err) broadcastErr(error);
-        });
-      } else {
-        broadcastErr(error);
-      }
-    });
-    container = FsWatchInstances[fullPath] = {
-      listeners: [listener],
-      errHandlers: [errHandler],
-      rawEmitters: [rawEmitter],
-      watcher: watcher
-    };
-  } else {
-    container.listeners.push(listener);
-    container.errHandlers.push(errHandler);
-    container.rawEmitters.push(rawEmitter);
-  }
-  var listenerIndex = container.listeners.length - 1;
-
-  // removes this instance's listeners and closes the underlying fs.watch
-  // instance if there are no more listeners left
-  return function close() {
-    delete container.listeners[listenerIndex];
-    delete container.errHandlers[listenerIndex];
-    delete container.rawEmitters[listenerIndex];
-    if (!Object.keys(container.listeners).length) {
-      container.watcher.close();
-      delete FsWatchInstances[fullPath];
-    }
-  };
-}
-
-// fs.watchFile helpers
-
-// object to hold per-process fs.watchFile instances
-// (may be shared across chokidar FSWatcher instances)
-var FsWatchFileInstances = Object.create(null);
-
-// Private function: Instantiates the fs.watchFile interface or binds listeners
-// to an existing one covering the same file system entry
-
-// * path       - string, path to be watched
-// * fullPath   - string, absolute path
-// * options    - object, options to be passed to fs.watchFile
-// * handlers   - object, container for event listener functions
-
-// Returns close function
-function setFsWatchFileListener(path, fullPath, options, handlers) {
-  var listener = handlers.listener;
-  var rawEmitter = handlers.rawEmitter;
-  var container = FsWatchFileInstances[fullPath];
-  var listeners = [];
-  var rawEmitters = [];
-  if (
-    container && (
-      container.options.persistent < options.persistent ||
-      container.options.interval > options.interval
-    )
-  ) {
-    // "Upgrade" the watcher to persistence or a quicker interval.
-    // This creates some unlikely edge case issues if the user mixes
-    // settings in a very weird way, but solving for those cases
-    // doesn't seem worthwhile for the added complexity.
-    listeners = container.listeners;
-    rawEmitters = container.rawEmitters;
-    fs.unwatchFile(fullPath);
-    container = false;
-  }
-  if (!container) {
-    listeners.push(listener);
-    rawEmitters.push(rawEmitter);
-    container = FsWatchFileInstances[fullPath] = {
-      listeners: listeners,
-      rawEmitters: rawEmitters,
-      options: options,
-      watcher: fs.watchFile(fullPath, options, function(curr, prev) {
-        container.rawEmitters.forEach(function(rawEmitter) {
-          rawEmitter('change', fullPath, {curr: curr, prev: prev});
-        });
-        var currmtime = curr.mtime.getTime();
-        if (curr.size !== prev.size || currmtime > prev.mtime.getTime() || currmtime === 0) {
-          container.listeners.forEach(function(listener) {
-            listener(path, curr);
-          });
-        }
-      })
-    };
-  } else {
-    container.listeners.push(listener);
-    container.rawEmitters.push(rawEmitter);
-  }
-  var listenerIndex = container.listeners.length - 1;
-
-  // removes this instance's listeners and closes the underlying fs.watchFile
-  // instance if there are no more listeners left
-  return function close() {
-    delete container.listeners[listenerIndex];
-    delete container.rawEmitters[listenerIndex];
-    if (!Object.keys(container.listeners).length) {
-      fs.unwatchFile(fullPath);
-      delete FsWatchFileInstances[fullPath];
-    }
-  };
-}
-
-// fake constructor for attaching nodefs-specific prototype methods that
-// will be copied to FSWatcher's prototype
-function NodeFsHandler() {}
-
-// Private method: Watch file for changes with fs.watchFile or fs.watch.
-
-// * path     - string, path to file or directory.
-// * listener - function, to be executed on fs change.
-
-// Returns close function for the watcher instance
-NodeFsHandler.prototype._watchWithNodeFs =
-function(path, listener) {
-  var directory = sysPath.dirname(path);
-  var basename = sysPath.basename(path);
-  var parent = this._getWatchedDir(directory);
-  parent.add(basename);
-  var absolutePath = sysPath.resolve(path);
-  var options = {persistent: this.options.persistent};
-  if (!listener) listener = Function.prototype; // empty function
-
-  var closer;
-  if (this.options.usePolling) {
-    options.interval = this.enableBinaryInterval && isBinaryPath(basename) ?
-      this.options.binaryInterval : this.options.interval;
-    closer = setFsWatchFileListener(path, absolutePath, options, {
-      listener: listener,
-      rawEmitter: this.emit.bind(this, 'raw')
-    });
-  } else {
-    closer = setFsWatchListener(path, absolutePath, options, {
-      listener: listener,
-      errHandler: this._handleError.bind(this),
-      rawEmitter: this.emit.bind(this, 'raw')
-    });
-  }
-  return closer;
-};
-
-// Private method: Watch a file and emit add event if warranted
-
-// * file       - string, the file's path
-// * stats      - object, result of fs.stat
-// * initialAdd - boolean, was the file added at watch instantiation?
-// * callback   - function, called when done processing as a newly seen file
-
-// Returns close function for the watcher instance
-NodeFsHandler.prototype._handleFile =
-function(file, stats, initialAdd, callback) {
-  var dirname = sysPath.dirname(file);
-  var basename = sysPath.basename(file);
-  var parent = this._getWatchedDir(dirname);
-
-  // if the file is already being watched, do nothing
-  if (parent.has(basename)) return callback();
-
-  // kick off the watcher
-  var closer = this._watchWithNodeFs(file, function(path, newStats) {
-    if (!this._throttle('watch', file, 5)) return;
-    if (!newStats || newStats && newStats.mtime.getTime() === 0) {
-      fs.stat(file, function(error, newStats) {
-        // Fix issues where mtime is null but file is still present
-        if (error) {
-          this._remove(dirname, basename);
-        } else {
-          this._emit('change', file, newStats);
-        }
-      }.bind(this));
-    // add is about to be emitted if file not already tracked in parent
-    } else if (parent.has(basename)) {
-      this._emit('change', file, newStats);
-    }
-  }.bind(this));
-
-  // emit an add event if we're supposed to
-  if (!(initialAdd && this.options.ignoreInitial)) {
-    if (!this._throttle('add', file, 0)) return;
-    this._emit('add', file, stats);
-  }
-
-  if (callback) callback();
-  return closer;
-};
-
-// Private method: Handle symlinks encountered while reading a dir
-
-// * entry      - object, entry object returned by readdirp
-// * directory  - string, path of the directory being read
-// * path       - string, path of this item
-// * item       - string, basename of this item
-
-// Returns true if no more processing is needed for this entry.
-NodeFsHandler.prototype._handleSymlink =
-function(entry, directory, path, item) {
-  var full = entry.fullPath;
-  var dir = this._getWatchedDir(directory);
-
-  if (!this.options.followSymlinks) {
-    // watch symlink directly (don't follow) and detect changes
-    this._readyCount++;
-    fs.realpath(path, function(error, linkPath) {
-      if (dir.has(item)) {
-        if (this._symlinkPaths[full] !== linkPath) {
-          this._symlinkPaths[full] = linkPath;
-          this._emit('change', path, entry.stat);
-        }
-      } else {
-        dir.add(item);
-        this._symlinkPaths[full] = linkPath;
-        this._emit('add', path, entry.stat);
-      }
-      this._emitReady();
-    }.bind(this));
-    return true;
-  }
-
-  // don't follow the same symlink more than once
-  if (this._symlinkPaths[full]) return true;
-  else this._symlinkPaths[full] = true;
-};
-
-// Private method: Read directory to add / remove files from `@watched` list
-// and re-read it on change.
-
-// * dir        - string, fs path.
-// * stats      - object, result of fs.stat
-// * initialAdd - boolean, was the file added at watch instantiation?
-// * depth      - int, depth relative to user-supplied path
-// * target     - string, child path actually targeted for watch
-// * wh         - object, common watch helpers for this path
-// * callback   - function, called when dir scan is complete
-
-// Returns close function for the watcher instance
-NodeFsHandler.prototype._handleDir =
-function(dir, stats, initialAdd, depth, target, wh, callback) {
-  var parentDir = this._getWatchedDir(sysPath.dirname(dir));
-  var tracked = parentDir.has(sysPath.basename(dir));
-  if (!(initialAdd && this.options.ignoreInitial) && !target && !tracked) {
-    if (!wh.hasGlob || wh.globFilter(dir)) this._emit('addDir', dir, stats);
-  }
-
-  // ensure dir is tracked (harmless if redundant)
-  parentDir.add(sysPath.basename(dir));
-  this._getWatchedDir(dir);
-
-  var read = function(directory, initialAdd, done) {
-    // Normalize the directory name on Windows
-    directory = sysPath.join(directory, '');
-
-    if (!wh.hasGlob) {
-      var throttler = this._throttle('readdir', directory, 1000);
-      if (!throttler) return;
-    }
-
-    var previous = this._getWatchedDir(wh.path);
-    var current = [];
-
-    readdirp({
-      root: directory,
-      entryType: 'all',
-      fileFilter: wh.filterPath,
-      directoryFilter: wh.filterDir,
-      depth: 0,
-      lstat: true
-    }).on('data', function(entry) {
-      var item = entry.path;
-      var path = sysPath.join(directory, item);
-      current.push(item);
-
-      if (entry.stat.isSymbolicLink() &&
-        this._handleSymlink(entry, directory, path, item)) return;
-
-      // Files that present in current directory snapshot
-      // but absent in previous are added to watch list and
-      // emit `add` event.
-      if (item === target || !target && !previous.has(item)) {
-        this._readyCount++;
-
-        // ensure relativeness of path is preserved in case of watcher reuse
-        path = sysPath.join(dir, sysPath.relative(dir, path));
-
-        this._addToNodeFs(path, initialAdd, wh, depth + 1);
-      }
-    }.bind(this)).on('end', function() {
-      if (throttler) throttler.clear();
-      if (done) done();
-
-      // Files that absent in current directory snapshot
-      // but present in previous emit `remove` event
-      // and are removed from @watched[directory].
-      previous.children().filter(function(item) {
-        return item !== directory &&
-          current.indexOf(item) === -1 &&
-          // in case of intersecting globs;
-          // a path may have been filtered out of this readdir, but
-          // shouldn't be removed because it matches a different glob
-          (!wh.hasGlob || wh.filterPath({
-            fullPath: sysPath.resolve(directory, item)
-          }));
-      }).forEach(function(item) {
-        this._remove(directory, item);
-      }, this);
-    }.bind(this)).on('error', this._handleError.bind(this));
-  }.bind(this);
-
-  var closer;
-
-  if (this.options.depth == null || depth <= this.options.depth) {
-    if (!target) read(dir, initialAdd, callback);
-    closer = this._watchWithNodeFs(dir, function(dirPath, stats) {
-      // if current directory is removed, do nothing
-      if (stats && stats.mtime.getTime() === 0) return;
-
-      read(dirPath, false);
-    });
-  } else {
-    callback();
-  }
-  return closer;
-};
-
-// Private method: Handle added file, directory, or glob pattern.
-// Delegates call to _handleFile / _handleDir after checks.
-
-// * path       - string, path to file or directory.
-// * initialAdd - boolean, was the file added at watch instantiation?
-// * depth      - int, depth relative to user-supplied path
-// * target     - string, child path actually targeted for watch
-// * callback   - function, indicates whether the path was found or not
-
-// Returns nothing
-NodeFsHandler.prototype._addToNodeFs =
-function(path, initialAdd, priorWh, depth, target, callback) {
-  if (!callback) callback = Function.prototype;
-  var ready = this._emitReady;
-  if (this._isIgnored(path) || this.closed) {
-    ready();
-    return callback(null, false);
-  }
-
-  var wh = this._getWatchHelpers(path, depth);
-  if (!wh.hasGlob && priorWh) {
-    wh.hasGlob = priorWh.hasGlob;
-    wh.globFilter = priorWh.globFilter;
-    wh.filterPath = priorWh.filterPath;
-    wh.filterDir = priorWh.filterDir;
-  }
-
-  // evaluate what is at the path we're being asked to watch
-  fs[wh.statMethod](wh.watchPath, function(error, stats) {
-    if (this._handleError(error)) return callback(null, path);
-    if (this._isIgnored(wh.watchPath, stats)) {
-      ready();
-      return callback(null, false);
-    }
-
-    var initDir = function(dir, target) {
-      return this._handleDir(dir, stats, initialAdd, depth, target, wh, ready);
-    }.bind(this);
-
-    var closer;
-    if (stats.isDirectory()) {
-      closer = initDir(wh.watchPath, target);
-    } else if (stats.isSymbolicLink()) {
-      var parent = sysPath.dirname(wh.watchPath);
-      this._getWatchedDir(parent).add(wh.watchPath);
-      this._emit('add', wh.watchPath, stats);
-      closer = initDir(parent, path);
-
-      // preserve this symlink's target path
-      fs.realpath(path, function(error, targetPath) {
-        this._symlinkPaths[sysPath.resolve(path)] = targetPath;
-        ready();
-      }.bind(this));
-    } else {
-      closer = this._handleFile(wh.watchPath, stats, initialAdd, ready);
-    }
-
-    if (closer) this._closers[path] = closer;
-    callback(null, false);
-  }.bind(this));
-};
-
-module.exports = NodeFsHandler;

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/chokidar/package.json
----------------------------------------------------------------------
diff --git a/node_modules/chokidar/package.json b/node_modules/chokidar/package.json
deleted file mode 100644
index 93873f2..0000000
--- a/node_modules/chokidar/package.json
+++ /dev/null
@@ -1,124 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "chokidar@^1.5.2",
-        "scope": null,
-        "escapedName": "chokidar",
-        "name": "chokidar",
-        "rawSpec": "^1.5.2",
-        "spec": ">=1.5.2 <2.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/hexo-fs"
-    ]
-  ],
-  "_from": "chokidar@>=1.5.2 <2.0.0",
-  "_id": "chokidar@1.6.1",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/chokidar",
-  "_nodeVersion": "6.6.0",
-  "_npmOperationalInternal": {
-    "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/chokidar-1.6.1.tgz_1476470196311_0.5785318606067449"
-  },
-  "_npmUser": {
-    "name": "paulmillr",
-    "email": "paul@paulmillr.com"
-  },
-  "_npmVersion": "3.10.7",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "chokidar@^1.5.2",
-    "scope": null,
-    "escapedName": "chokidar",
-    "name": "chokidar",
-    "rawSpec": "^1.5.2",
-    "spec": ">=1.5.2 <2.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/hexo-fs",
-    "/nunjucks"
-  ],
-  "_resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.6.1.tgz",
-  "_shasum": "2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2",
-  "_shrinkwrap": null,
-  "_spec": "chokidar@^1.5.2",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/hexo-fs",
-  "author": {
-    "name": "Paul Miller",
-    "url": "http://paulmillr.com"
-  },
-  "bugs": {
-    "url": "http://github.com/paulmillr/chokidar/issues"
-  },
-  "dependencies": {
-    "anymatch": "^1.3.0",
-    "async-each": "^1.0.0",
-    "fsevents": "^1.0.0",
-    "glob-parent": "^2.0.0",
-    "inherits": "^2.0.1",
-    "is-binary-path": "^1.0.0",
-    "is-glob": "^2.0.0",
-    "path-is-absolute": "^1.0.0",
-    "readdirp": "^2.0.0"
-  },
-  "description": "A neat wrapper around node.js fs.watch / fs.watchFile / fsevents.",
-  "devDependencies": {
-    "chai": "^3.2.0",
-    "coveralls": "^2.11.2",
-    "graceful-fs": "4.1.4",
-    "istanbul": "^0.3.20",
-    "mocha": "^2.0.0",
-    "rimraf": "^2.4.3",
-    "sinon": "^1.10.3",
-    "sinon-chai": "^2.6.0"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2",
-    "tarball": "https://registry.npmjs.org/chokidar/-/chokidar-1.6.1.tgz"
-  },
-  "files": [
-    "index.js",
-    "lib/"
-  ],
-  "gitHead": "c08145c5368fac6441773e621da9db215cc0d3b2",
-  "homepage": "https://github.com/paulmillr/chokidar",
-  "keywords": [
-    "fs",
-    "watch",
-    "watchFile",
-    "watcher",
-    "watching",
-    "file",
-    "fsevents"
-  ],
-  "license": "MIT",
-  "maintainers": [
-    {
-      "name": "paulmillr",
-      "email": "paul@paulmillr.com"
-    },
-    {
-      "name": "es128",
-      "email": "elan.shanker+npm@gmail.com"
-    }
-  ],
-  "name": "chokidar",
-  "optionalDependencies": {
-    "fsevents": "^1.0.0"
-  },
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/paulmillr/chokidar.git"
-  },
-  "scripts": {
-    "ci-test": "istanbul cover _mocha && cat ./coverage/lcov.info | coveralls",
-    "test": "istanbul test node_modules/mocha/bin/_mocha"
-  },
-  "version": "1.6.1"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/cliui/CHANGELOG.md
----------------------------------------------------------------------
diff --git a/node_modules/cliui/CHANGELOG.md b/node_modules/cliui/CHANGELOG.md
deleted file mode 100644
index ef6a35e..0000000
--- a/node_modules/cliui/CHANGELOG.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
-
-<a name="3.2.0"></a>
-# [3.2.0](https://github.com/yargs/cliui/compare/v3.1.2...v3.2.0) (2016-04-11)
-
-
-### Bug Fixes
-
-* reduces tarball size ([acc6c33](https://github.com/yargs/cliui/commit/acc6c33))
-
-### Features
-
-* adds standard-version for release management ([ff84e32](https://github.com/yargs/cliui/commit/ff84e32))

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/cliui/LICENSE.txt
----------------------------------------------------------------------
diff --git a/node_modules/cliui/LICENSE.txt b/node_modules/cliui/LICENSE.txt
deleted file mode 100644
index c7e2747..0000000
--- a/node_modules/cliui/LICENSE.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright (c) 2015, Contributors
-
-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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/cliui/README.md
----------------------------------------------------------------------
diff --git a/node_modules/cliui/README.md b/node_modules/cliui/README.md
deleted file mode 100644
index 028392c..0000000
--- a/node_modules/cliui/README.md
+++ /dev/null
@@ -1,110 +0,0 @@
-# cliui
-
-[![Build Status](https://travis-ci.org/yargs/cliui.svg)](https://travis-ci.org/yargs/cliui)
-[![Coverage Status](https://coveralls.io/repos/yargs/cliui/badge.svg?branch=)](https://coveralls.io/r/yargs/cliui?branch=)
-[![NPM version](https://img.shields.io/npm/v/cliui.svg)](https://www.npmjs.com/package/cliui)
-[![Standard Version](https://img.shields.io/badge/release-standard%20version-brightgreen.svg)](https://github.com/conventional-changelog/standard-version)
-
-easily create complex multi-column command-line-interfaces.
-
-## Example
-
-```js
-var ui = require('cliui')({
-  width: 80
-})
-
-ui.div('Usage: $0 [command] [options]')
-
-ui.div({
-  text: 'Options:',
-  padding: [2, 0, 2, 0]
-})
-
-ui.div(
-  {
-    text: "-f, --file",
-    width: 20,
-    padding: [0, 4, 0, 4]
-  },
-  {
-    text: "the file to load." +
-      chalk.green("(if this description is long it wraps).")
-    ,
-    width: 20
-  },
-  {
-    text: chalk.red("[required]"),
-    align: 'right'
-  }
-)
-
-console.log(ui.toString())
-```
-
-<img width="500" src="screenshot.png">
-
-## Layout DSL
-
-cliui exposes a simple layout DSL:
-
-If you create a single `ui.row`, passing a string rather than an
-object:
-
-* `\n`: characters will be interpreted as new rows.
-* `\t`: characters will be interpreted as new columns.
-* `\s`: characters will be interpreted as padding.
-
-**as an example...**
-
-```js
-var ui = require('./')({
-  width: 60
-})
-
-ui.div(
-  'Usage: node ./bin/foo.js\n' +
-  '  <regex>\t  provide a regex\n' +
-  '  <glob>\t  provide a glob\t [required]'
-)
-
-console.log(ui.toString())
-```
-
-**will output:**
-
-```shell
-Usage: node ./bin/foo.js
-  <regex>  provide a regex
-  <glob>   provide a glob          [required]
-```
-
-## Methods
-
-```js
-cliui = require('cliui')
-```
-
-### cliui({width: integer})
-
-Specify the maximum width of the UI being generated.
-
-### cliui({wrap: boolean})
-
-Enable or disable the wrapping of text in a column.
-
-### cliui.div(column, column, column)
-
-Create a row with any number of columns, a column
-can either be a string, or an object with the following
-options:
-
-* **width:** the width of a column.
-* **align:** alignment, `right` or `center`.
-* **padding:** `[top, right, bottom, left]`.
-* **border:** should a border be placed around the div?
-
-### cliui.span(column, column, column)
-
-Similar to `div`, except the next row will be appended without
-a new line being created.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/cliui/index.js
----------------------------------------------------------------------
diff --git a/node_modules/cliui/index.js b/node_modules/cliui/index.js
deleted file mode 100644
index e501e78..0000000
--- a/node_modules/cliui/index.js
+++ /dev/null
@@ -1,316 +0,0 @@
-var stringWidth = require('string-width')
-var stripAnsi = require('strip-ansi')
-var wrap = require('wrap-ansi')
-var align = {
-  right: alignRight,
-  center: alignCenter
-}
-var top = 0
-var right = 1
-var bottom = 2
-var left = 3
-
-function UI (opts) {
-  this.width = opts.width
-  this.wrap = opts.wrap
-  this.rows = []
-}
-
-UI.prototype.span = function () {
-  var cols = this.div.apply(this, arguments)
-  cols.span = true
-}
-
-UI.prototype.div = function () {
-  if (arguments.length === 0) this.div('')
-  if (this.wrap && this._shouldApplyLayoutDSL.apply(this, arguments)) {
-    return this._applyLayoutDSL(arguments[0])
-  }
-
-  var cols = []
-
-  for (var i = 0, arg; (arg = arguments[i]) !== undefined; i++) {
-    if (typeof arg === 'string') cols.push(this._colFromString(arg))
-    else cols.push(arg)
-  }
-
-  this.rows.push(cols)
-  return cols
-}
-
-UI.prototype._shouldApplyLayoutDSL = function () {
-  return arguments.length === 1 && typeof arguments[0] === 'string' &&
-    /[\t\n]/.test(arguments[0])
-}
-
-UI.prototype._applyLayoutDSL = function (str) {
-  var _this = this
-  var rows = str.split('\n')
-  var leftColumnWidth = 0
-
-  // simple heuristic for layout, make sure the
-  // second column lines up along the left-hand.
-  // don't allow the first column to take up more
-  // than 50% of the screen.
-  rows.forEach(function (row) {
-    var columns = row.split('\t')
-    if (columns.length > 1 && stringWidth(columns[0]) > leftColumnWidth) {
-      leftColumnWidth = Math.min(
-        Math.floor(_this.width * 0.5),
-        stringWidth(columns[0])
-      )
-    }
-  })
-
-  // generate a table:
-  //  replacing ' ' with padding calculations.
-  //  using the algorithmically generated width.
-  rows.forEach(function (row) {
-    var columns = row.split('\t')
-    _this.div.apply(_this, columns.map(function (r, i) {
-      return {
-        text: r.trim(),
-        padding: _this._measurePadding(r),
-        width: (i === 0 && columns.length > 1) ? leftColumnWidth : undefined
-      }
-    }))
-  })
-
-  return this.rows[this.rows.length - 1]
-}
-
-UI.prototype._colFromString = function (str) {
-  return {
-    text: str,
-    padding: this._measurePadding(str)
-  }
-}
-
-UI.prototype._measurePadding = function (str) {
-  // measure padding without ansi escape codes
-  var noAnsi = stripAnsi(str)
-  return [0, noAnsi.match(/\s*$/)[0].length, 0, noAnsi.match(/^\s*/)[0].length]
-}
-
-UI.prototype.toString = function () {
-  var _this = this
-  var lines = []
-
-  _this.rows.forEach(function (row, i) {
-    _this.rowToString(row, lines)
-  })
-
-  // don't display any lines with the
-  // hidden flag set.
-  lines = lines.filter(function (line) {
-    return !line.hidden
-  })
-
-  return lines.map(function (line) {
-    return line.text
-  }).join('\n')
-}
-
-UI.prototype.rowToString = function (row, lines) {
-  var _this = this
-  var padding
-  var rrows = this._rasterize(row)
-  var str = ''
-  var ts
-  var width
-  var wrapWidth
-
-  rrows.forEach(function (rrow, r) {
-    str = ''
-    rrow.forEach(function (col, c) {
-      ts = '' // temporary string used during alignment/padding.
-      width = row[c].width // the width with padding.
-      wrapWidth = _this._negatePadding(row[c]) // the width without padding.
-
-      ts += col
-
-      for (var i = 0; i < wrapWidth - stringWidth(col); i++) {
-        ts += ' '
-      }
-
-      // align the string within its column.
-      if (row[c].align && row[c].align !== 'left' && _this.wrap) {
-        ts = align[row[c].align](ts, wrapWidth)
-        if (stringWidth(ts) < wrapWidth) ts += new Array(width - stringWidth(ts)).join(' ')
-      }
-
-      // apply border and padding to string.
-      padding = row[c].padding || [0, 0, 0, 0]
-      if (padding[left]) str += new Array(padding[left] + 1).join(' ')
-      str += addBorder(row[c], ts, '| ')
-      str += ts
-      str += addBorder(row[c], ts, ' |')
-      if (padding[right]) str += new Array(padding[right] + 1).join(' ')
-
-      // if prior row is span, try to render the
-      // current row on the prior line.
-      if (r === 0 && lines.length > 0) {
-        str = _this._renderInline(str, lines[lines.length - 1])
-      }
-    })
-
-    // remove trailing whitespace.
-    lines.push({
-      text: str.replace(/ +$/, ''),
-      span: row.span
-    })
-  })
-
-  return lines
-}
-
-function addBorder (col, ts, style) {
-  if (col.border) {
-    if (/[.']-+[.']/.test(ts)) return ''
-    else if (ts.trim().length) return style
-    else return '  '
-  }
-  return ''
-}
-
-// if the full 'source' can render in
-// the target line, do so.
-UI.prototype._renderInline = function (source, previousLine) {
-  var leadingWhitespace = source.match(/^ */)[0].length
-  var target = previousLine.text
-  var targetTextWidth = stringWidth(target.trimRight())
-
-  if (!previousLine.span) return source
-
-  // if we're not applying wrapping logic,
-  // just always append to the span.
-  if (!this.wrap) {
-    previousLine.hidden = true
-    return target + source
-  }
-
-  if (leadingWhitespace < targetTextWidth) return source
-
-  previousLine.hidden = true
-
-  return target.trimRight() + new Array(leadingWhitespace - targetTextWidth + 1).join(' ') + source.trimLeft()
-}
-
-UI.prototype._rasterize = function (row) {
-  var _this = this
-  var i
-  var rrow
-  var rrows = []
-  var widths = this._columnWidths(row)
-  var wrapped
-
-  // word wrap all columns, and create
-  // a data-structure that is easy to rasterize.
-  row.forEach(function (col, c) {
-    // leave room for left and right padding.
-    col.width = widths[c]
-    if (_this.wrap) wrapped = wrap(col.text, _this._negatePadding(col), {hard: true}).split('\n')
-    else wrapped = col.text.split('\n')
-
-    if (col.border) {
-      wrapped.unshift('.' + new Array(_this._negatePadding(col) + 3).join('-') + '.')
-      wrapped.push("'" + new Array(_this._negatePadding(col) + 3).join('-') + "'")
-    }
-
-    // add top and bottom padding.
-    if (col.padding) {
-      for (i = 0; i < (col.padding[top] || 0); i++) wrapped.unshift('')
-      for (i = 0; i < (col.padding[bottom] || 0); i++) wrapped.push('')
-    }
-
-    wrapped.forEach(function (str, r) {
-      if (!rrows[r]) rrows.push([])
-
-      rrow = rrows[r]
-
-      for (var i = 0; i < c; i++) {
-        if (rrow[i] === undefined) rrow.push('')
-      }
-      rrow.push(str)
-    })
-  })
-
-  return rrows
-}
-
-UI.prototype._negatePadding = function (col) {
-  var wrapWidth = col.width
-  if (col.padding) wrapWidth -= (col.padding[left] || 0) + (col.padding[right] || 0)
-  if (col.border) wrapWidth -= 4
-  return wrapWidth
-}
-
-UI.prototype._columnWidths = function (row) {
-  var _this = this
-  var widths = []
-  var unset = row.length
-  var unsetWidth
-  var remainingWidth = this.width
-
-  // column widths can be set in config.
-  row.forEach(function (col, i) {
-    if (col.width) {
-      unset--
-      widths[i] = col.width
-      remainingWidth -= col.width
-    } else {
-      widths[i] = undefined
-    }
-  })
-
-  // any unset widths should be calculated.
-  if (unset) unsetWidth = Math.floor(remainingWidth / unset)
-  widths.forEach(function (w, i) {
-    if (!_this.wrap) widths[i] = row[i].width || stringWidth(row[i].text)
-    else if (w === undefined) widths[i] = Math.max(unsetWidth, _minWidth(row[i]))
-  })
-
-  return widths
-}
-
-// calculates the minimum width of
-// a column, based on padding preferences.
-function _minWidth (col) {
-  var padding = col.padding || []
-  var minWidth = 1 + (padding[left] || 0) + (padding[right] || 0)
-  if (col.border) minWidth += 4
-  return minWidth
-}
-
-function alignRight (str, width) {
-  str = str.trim()
-  var padding = ''
-  var strWidth = stringWidth(str)
-
-  if (strWidth < width) {
-    padding = new Array(width - strWidth + 1).join(' ')
-  }
-
-  return padding + str
-}
-
-function alignCenter (str, width) {
-  str = str.trim()
-  var padding = ''
-  var strWidth = stringWidth(str.trim())
-
-  if (strWidth < width) {
-    padding = new Array(parseInt((width - strWidth) / 2, 10) + 1).join(' ')
-  }
-
-  return padding + str
-}
-
-module.exports = function (opts) {
-  opts = opts || {}
-
-  return new UI({
-    width: (opts || {}).width || 80,
-    wrap: typeof opts.wrap === 'boolean' ? opts.wrap : true
-  })
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/cliui/package.json
----------------------------------------------------------------------
diff --git a/node_modules/cliui/package.json b/node_modules/cliui/package.json
deleted file mode 100644
index b268adf..0000000
--- a/node_modules/cliui/package.json
+++ /dev/null
@@ -1,132 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "cliui@^3.0.3",
-        "scope": null,
-        "escapedName": "cliui",
-        "name": "cliui",
-        "rawSpec": "^3.0.3",
-        "spec": ">=3.0.3 <4.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/yargs"
-    ]
-  ],
-  "_from": "cliui@>=3.0.3 <4.0.0",
-  "_id": "cliui@3.2.0",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/cliui",
-  "_nodeVersion": "5.1.0",
-  "_npmOperationalInternal": {
-    "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/cliui-3.2.0.tgz_1460342854008_0.8861493801232427"
-  },
-  "_npmUser": {
-    "name": "bcoe",
-    "email": "ben@npmjs.com"
-  },
-  "_npmVersion": "3.3.12",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "cliui@^3.0.3",
-    "scope": null,
-    "escapedName": "cliui",
-    "name": "cliui",
-    "rawSpec": "^3.0.3",
-    "spec": ">=3.0.3 <4.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/yargs"
-  ],
-  "_resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
-  "_shasum": "120601537a916d29940f934da3b48d585a39213d",
-  "_shrinkwrap": null,
-  "_spec": "cliui@^3.0.3",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/yargs",
-  "author": {
-    "name": "Ben Coe",
-    "email": "ben@npmjs.com"
-  },
-  "bugs": {
-    "url": "https://github.com/yargs/cliui/issues"
-  },
-  "config": {
-    "blanket": {
-      "pattern": [
-        "index.js"
-      ],
-      "data-cover-never": [
-        "node_modules",
-        "test"
-      ],
-      "output-reporter": "spec"
-    }
-  },
-  "dependencies": {
-    "string-width": "^1.0.1",
-    "strip-ansi": "^3.0.1",
-    "wrap-ansi": "^2.0.0"
-  },
-  "description": "easily create complex multi-column command-line-interfaces",
-  "devDependencies": {
-    "chai": "^3.5.0",
-    "chalk": "^1.1.2",
-    "coveralls": "^2.11.8",
-    "mocha": "^2.4.5",
-    "nyc": "^6.4.0",
-    "standard": "^6.0.8",
-    "standard-version": "^2.1.2"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "120601537a916d29940f934da3b48d585a39213d",
-    "tarball": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz"
-  },
-  "files": [
-    "index.js"
-  ],
-  "gitHead": "75d62e9dfa77a0e0a9c3ac3b96b02baa294142ce",
-  "homepage": "https://github.com/yargs/cliui#readme",
-  "keywords": [
-    "cli",
-    "command-line",
-    "layout",
-    "design",
-    "console",
-    "wrap",
-    "table"
-  ],
-  "license": "ISC",
-  "main": "index.js",
-  "maintainers": [
-    {
-      "name": "bcoe",
-      "email": "ben@npmjs.com"
-    }
-  ],
-  "name": "cliui",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+ssh://git@github.com/yargs/cliui.git"
-  },
-  "scripts": {
-    "coverage": "nyc --reporter=text-lcov mocha | coveralls",
-    "pretest": "standard",
-    "test": "nyc mocha",
-    "version": "standard-version"
-  },
-  "standard": {
-    "ignore": [
-      "**/example/**"
-    ],
-    "globals": [
-      "it"
-    ]
-  },
-  "version": "3.2.0"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/co/History.md
----------------------------------------------------------------------
diff --git a/node_modules/co/History.md b/node_modules/co/History.md
deleted file mode 100644
index 68fbb15..0000000
--- a/node_modules/co/History.md
+++ /dev/null
@@ -1,172 +0,0 @@
-4.6.0 / 2015-07-09
-==================
-
- * support passing the rest of the arguments to co into the generator
-
- ```js
- function *gen(...args) { }
- co(gen, ...args);
- ```
-
-4.5.0 / 2015-03-17
-==================
-
- * support regular functions (that return promises)
-
-4.4.0 / 2015-02-14
-==================
-
- * refactor `isGeneratorFunction`
- * expose generator function from `co.wrap()`
- * drop support for node < 0.12
-
-4.3.0 / 2015-02-05
-==================
-
- * check for generator functions in a ES5-transpiler-friendly way
-
-4.2.0 / 2015-01-20
-==================
-
- * support comparing generator functions with ES6 transpilers
-
-4.1.0 / 2014-12-26
-==================
-
- * fix memory leak #180
-
-4.0.2 / 2014-12-18
-==================
-
- * always return a global promise implementation
-
-4.0.1 / 2014-11-30
-==================
-
- * friendlier ES6 module exports
-
-4.0.0 / 2014-11-15
-==================
-
- * co now returns a promise and uses promises underneath
- * `co.wrap()` for wrapping generator functions
-
-3.1.0 / 2014-06-30
-==================
-
- * remove `setImmediate()` shim for node 0.8. semi-backwards breaking.
-   Users are expected to shim themselves. Also returns CommonJS browser support.
- * added key order preservation for objects. thanks @greim
- * replace `q` with `bluebird` in benchmarks and tests
-
-3.0.6 / 2014-05-03
-==================
-
- * add `setImmediate()` fallback to `process.nextTick`
- * remove duplicate code in toThunk
- * update thunkify
-
-3.0.5 / 2014-03-17
-==================
-
- * fix object/array test failure which tries to enumerate dates. Closes #98
- * fix final callback error propagation. Closes #92
-
-3.0.4 / 2014-02-17
-==================
-
- * fix toThunk object check regression. Closes #89
-
-3.0.3 / 2014-02-08
-==================
-
- * refactor: arrayToThunk @AutoSponge #88
-
-3.0.2 / 2014-01-01
-==================
-
- * fixed: nil arguments replaced with error fn
-
-3.0.1 / 2013-12-19
-==================
-
- * fixed: callback passed as an argument to generators
-
-3.0.0 / 2013-12-19
-==================
-
- * fixed: callback passed as an argument to generators
- * change: `co(function *(){})` now returns a reusable thunk
- * change: `this` must now be passed through the returned thunk, ex. `co(function *(){}).call(this)`
- * fix "generator already finished" errors
-
-2.3.0 / 2013-11-12
-==================
-
- * add `yield object` support
-
-2.2.0 / 2013-11-05
-==================
-
- * change: make the `isGenerator()` function more generic
-
-2.1.0 / 2013-10-21
-==================
-
- * add passing of arguments into the generator. closes #33.
-
-2.0.0 / 2013-10-14
-==================
-
- * remove callback in favour of thunk-only co(). Closes #30 [breaking change]
- * remove `co.wrap()` [breaking change]
-
-1.5.2 / 2013-09-02
-==================
-
- * fix: preserve receiver with co.wrap()
-
-1.5.1 / 2013-08-11
-==================
-
- * remove setImmediate() usage - ~110% perf increase. Closes #14
-
-0.5.0 / 2013-08-10
-==================
-
- * add receiver propagation support
- * examples: update streams.js example to use `http.get()` and streams2 API
-
-1.4.1 / 2013-07-01
-==================
-
- * fix gen.next(val) for latest v8. Closes #8
-
-1.4.0 / 2013-06-21
-==================
-
- * add promise support to joins
- * add `yield generatorFunction` support
- * add `yield generator` support
- * add nested join support
-
-1.3.0 / 2013-06-10
-==================
-
- * add passing of arguments
-
-1.2.1 / 2013-06-08
-==================
-
- * fix join() of zero thunks
-
-1.2.0 / 2013-06-08
-==================
-
- * add array yielding support. great suggestion by @domenic
-
-1.1.0 / 2013-06-06
-==================
-
- * add promise support
- * change nextTick to setImmediate

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/co/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/co/LICENSE b/node_modules/co/LICENSE
deleted file mode 100644
index 92faba5..0000000
--- a/node_modules/co/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2014 TJ Holowaychuk &lt;tj@vision-media.ca&gt;
-
-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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/co/Readme.md
----------------------------------------------------------------------
diff --git a/node_modules/co/Readme.md b/node_modules/co/Readme.md
deleted file mode 100644
index c1d4882..0000000
--- a/node_modules/co/Readme.md
+++ /dev/null
@@ -1,212 +0,0 @@
-# co
-
-[![Gitter][gitter-image]][gitter-url]
-[![NPM version][npm-image]][npm-url]
-[![Build status][travis-image]][travis-url]
-[![Test coverage][coveralls-image]][coveralls-url]
-[![Downloads][downloads-image]][downloads-url]
-
-  Generator based control flow goodness for nodejs and the browser,
-  using promises, letting you write non-blocking code in a nice-ish way.
-
-## Co v4
-
-  `co@4.0.0` has been released, which now relies on promises.
-  It is a stepping stone towards [ES7 async/await](https://github.com/lukehoban/ecmascript-asyncawait).
-  The primary API change is how `co()` is invoked.
-  Before, `co` returned a "thunk", which you then called with a callback and optional arguments.
-  Now, `co()` returns a promise.
-
-```js
-co(function* () {
-  var result = yield Promise.resolve(true);
-  return result;
-}).then(function (value) {
-  console.log(value);
-}, function (err) {
-  console.error(err.stack);
-});
-```
-
-  If you want to convert a `co`-generator-function into a regular function that returns a promise,
-  you now use `co.wrap(fn*)`.
-
-```js
-var fn = co.wrap(function* (val) {
-  return yield Promise.resolve(val);
-});
-
-fn(true).then(function (val) {
-
-});
-```
-
-## Platform Compatibility
-
-  `co@4+` requires a `Promise` implementation.
-  For versions of node `< 0.11` and for many older browsers,
-  you should/must include your own `Promise` polyfill.
-
-  When using node 0.11.x or greater, you must use the `--harmony-generators`
-  flag or just `--harmony` to get access to generators.
-
-  When using node 0.10.x and lower or browsers without generator support,
-  you must use [gnode](https://github.com/TooTallNate/gnode) and/or [regenerator](http://facebook.github.io/regenerator/).
-
-  io.js is supported out of the box, you can use `co` without flags or polyfills.
-
-## Installation
-
-```
-$ npm install co
-```
-
-## Associated libraries
-
-Any library that returns promises work well with `co`.
-
-- [mz](https://github.com/normalize/mz) - wrap all of node's code libraries as promises.
-
-View the [wiki](https://github.com/visionmedia/co/wiki) for more libraries.
-
-## Examples
-
-```js
-var co = require('co');
-
-co(function *(){
-  // yield any promise
-  var result = yield Promise.resolve(true);
-}).catch(onerror);
-
-co(function *(){
-  // resolve multiple promises in parallel
-  var a = Promise.resolve(1);
-  var b = Promise.resolve(2);
-  var c = Promise.resolve(3);
-  var res = yield [a, b, c];
-  console.log(res);
-  // => [1, 2, 3]
-}).catch(onerror);
-
-// errors can be try/catched
-co(function *(){
-  try {
-    yield Promise.reject(new Error('boom'));
-  } catch (err) {
-    console.error(err.message); // "boom"
- }
-}).catch(onerror);
-
-function onerror(err) {
-  // log any uncaught errors
-  // co will not throw any errors you do not handle!!!
-  // HANDLE ALL YOUR ERRORS!!!
-  console.error(err.stack);
-}
-```
-
-## Yieldables
-
-  The `yieldable` objects currently supported are:
-
-  - promises
-  - thunks (functions)
-  - array (parallel execution)
-  - objects (parallel execution)
-  - generators (delegation)
-  - generator functions (delegation)
-
-Nested `yieldable` objects are supported, meaning you can nest
-promises within objects within arrays, and so on!
-
-### Promises
-
-[Read more on promises!](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)
-
-### Thunks
-
-Thunks are functions that only have a single argument, a callback.
-Thunk support only remains for backwards compatibility and may
-be removed in future versions of `co`.
-
-### Arrays
-
-`yield`ing an array will resolve all the `yieldables` in parallel.
-
-```js
-co(function* () {
-  var res = yield [
-    Promise.resolve(1),
-    Promise.resolve(2),
-    Promise.resolve(3),
-  ];
-  console.log(res); // => [1, 2, 3]
-}).catch(onerror);
-```
-
-### Objects
-
-Just like arrays, objects resolve all `yieldable`s in parallel.
-
-```js
-co(function* () {
-  var res = yield {
-    1: Promise.resolve(1),
-    2: Promise.resolve(2),
-  };
-  console.log(res); // => { 1: 1, 2: 2 }
-}).catch(onerror);
-```
-
-### Generators and Generator Functions
-
-Any generator or generator function you can pass into `co`
-can be yielded as well. This should generally be avoided
-as we should be moving towards spec-compliant `Promise`s instead.
-
-## API
-
-### co(fn*).then( val => )
-
-Returns a promise that resolves a generator, generator function,
-or any function that returns a generator.
-
-```js
-co(function* () {
-  return yield Promise.resolve(true);
-}).then(function (val) {
-  console.log(val);
-}, function (err) {
-  console.error(err.stack);
-});
-```
-
-### var fn = co.wrap(fn*)
-
-Convert a generator into a regular function that returns a `Promise`.
-
-```js
-var fn = co.wrap(function* (val) {
-  return yield Promise.resolve(val);
-});
-
-fn(true).then(function (val) {
-
-});
-```
-
-## License
-
-  MIT
-
-[npm-image]: https://img.shields.io/npm/v/co.svg?style=flat-square
-[npm-url]: https://npmjs.org/package/co
-[travis-image]: https://img.shields.io/travis/tj/co.svg?style=flat-square
-[travis-url]: https://travis-ci.org/tj/co
-[coveralls-image]: https://img.shields.io/coveralls/tj/co.svg?style=flat-square
-[coveralls-url]: https://coveralls.io/r/tj/co
-[downloads-image]: http://img.shields.io/npm/dm/co.svg?style=flat-square
-[downloads-url]: https://npmjs.org/package/co
-[gitter-image]: https://badges.gitter.im/Join%20Chat.svg
-[gitter-url]: https://gitter.im/tj/co?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge


[46/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/dist/acorn.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/dist/acorn.js b/node_modules/acorn/dist/acorn.js
deleted file mode 100644
index 9419f86..0000000
--- a/node_modules/acorn/dist/acorn.js
+++ /dev/null
@@ -1,3340 +0,0 @@
-(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.acorn = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
-// A recursive descent parser operates by defining functions for all
-// syntactic elements, and recursively calling those, each function
-// advancing the input stream and returning an AST node. Precedence
-// of constructs (for example, the fact that `!x[1]` means `!(x[1])`
-// instead of `(!x)[1]` is handled by the fact that the parser
-// function that parses unary prefix operators is called first, and
-// in turn calls the function that parses `[]` subscripts — that
-// way, it'll receive the node for `x[1]` already parsed, and wraps
-// *that* in the unary operator node.
-//
-// Acorn uses an [operator precedence parser][opp] to handle binary
-// operator precedence, because it is much more compact than using
-// the technique outlined above, which uses different, nesting
-// functions to specify precedence, for all of the ten binary
-// precedence levels that JavaScript defines.
-//
-// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser
-
-"use strict";
-
-var _tokentype = _dereq_("./tokentype");
-
-var _state = _dereq_("./state");
-
-var pp = _state.Parser.prototype;
-
-// Check if property name clashes with already added.
-// Object/class getters and setters are not allowed to clash —
-// either with each other or with an init property — and in
-// strict mode, init properties are also not allowed to be repeated.
-
-pp.checkPropClash = function (prop, propHash) {
-  if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand)) return;
-  var key = prop.key;var name = undefined;
-  switch (key.type) {
-    case "Identifier":
-      name = key.name;break;
-    case "Literal":
-      name = String(key.value);break;
-    default:
-      return;
-  }
-  var kind = prop.kind;
-
-  if (this.options.ecmaVersion >= 6) {
-    if (name === "__proto__" && kind === "init") {
-      if (propHash.proto) this.raise(key.start, "Redefinition of __proto__ property");
-      propHash.proto = true;
-    }
-    return;
-  }
-  name = "$" + name;
-  var other = propHash[name];
-  if (other) {
-    var isGetSet = kind !== "init";
-    if ((this.strict || isGetSet) && other[kind] || !(isGetSet ^ other.init)) this.raise(key.start, "Redefinition of property");
-  } else {
-    other = propHash[name] = {
-      init: false,
-      get: false,
-      set: false
-    };
-  }
-  other[kind] = true;
-};
-
-// ### Expression parsing
-
-// These nest, from the most general expression type at the top to
-// 'atomic', nondivisible expression types at the bottom. Most of
-// the functions will simply let the function(s) below them parse,
-// and, *if* the syntactic construct they handle is present, wrap
-// the AST node that the inner parser gave them in another node.
-
-// Parse a full expression. The optional arguments are used to
-// forbid the `in` operator (in for loops initalization expressions)
-// and provide reference for storing '=' operator inside shorthand
-// property assignment in contexts where both object expression
-// and object pattern might appear (so it's possible to raise
-// delayed syntax error at correct position).
-
-pp.parseExpression = function (noIn, refDestructuringErrors) {
-  var startPos = this.start,
-      startLoc = this.startLoc;
-  var expr = this.parseMaybeAssign(noIn, refDestructuringErrors);
-  if (this.type === _tokentype.types.comma) {
-    var node = this.startNodeAt(startPos, startLoc);
-    node.expressions = [expr];
-    while (this.eat(_tokentype.types.comma)) node.expressions.push(this.parseMaybeAssign(noIn, refDestructuringErrors));
-    return this.finishNode(node, "SequenceExpression");
-  }
-  return expr;
-};
-
-// Parse an assignment expression. This includes applications of
-// operators like `+=`.
-
-pp.parseMaybeAssign = function (noIn, refDestructuringErrors, afterLeftParse) {
-  if (this.type == _tokentype.types._yield && this.inGenerator) return this.parseYield();
-
-  var validateDestructuring = false;
-  if (!refDestructuringErrors) {
-    refDestructuringErrors = { shorthandAssign: 0, trailingComma: 0 };
-    validateDestructuring = true;
-  }
-  var startPos = this.start,
-      startLoc = this.startLoc;
-  if (this.type == _tokentype.types.parenL || this.type == _tokentype.types.name) this.potentialArrowAt = this.start;
-  var left = this.parseMaybeConditional(noIn, refDestructuringErrors);
-  if (afterLeftParse) left = afterLeftParse.call(this, left, startPos, startLoc);
-  if (this.type.isAssign) {
-    if (validateDestructuring) this.checkPatternErrors(refDestructuringErrors, true);
-    var node = this.startNodeAt(startPos, startLoc);
-    node.operator = this.value;
-    node.left = this.type === _tokentype.types.eq ? this.toAssignable(left) : left;
-    refDestructuringErrors.shorthandAssign = 0; // reset because shorthand default was used correctly
-    this.checkLVal(left);
-    this.next();
-    node.right = this.parseMaybeAssign(noIn);
-    return this.finishNode(node, "AssignmentExpression");
-  } else {
-    if (validateDestructuring) this.checkExpressionErrors(refDestructuringErrors, true);
-  }
-  return left;
-};
-
-// Parse a ternary conditional (`?:`) operator.
-
-pp.parseMaybeConditional = function (noIn, refDestructuringErrors) {
-  var startPos = this.start,
-      startLoc = this.startLoc;
-  var expr = this.parseExprOps(noIn, refDestructuringErrors);
-  if (this.checkExpressionErrors(refDestructuringErrors)) return expr;
-  if (this.eat(_tokentype.types.question)) {
-    var node = this.startNodeAt(startPos, startLoc);
-    node.test = expr;
-    node.consequent = this.parseMaybeAssign();
-    this.expect(_tokentype.types.colon);
-    node.alternate = this.parseMaybeAssign(noIn);
-    return this.finishNode(node, "ConditionalExpression");
-  }
-  return expr;
-};
-
-// Start the precedence parser.
-
-pp.parseExprOps = function (noIn, refDestructuringErrors) {
-  var startPos = this.start,
-      startLoc = this.startLoc;
-  var expr = this.parseMaybeUnary(refDestructuringErrors);
-  if (this.checkExpressionErrors(refDestructuringErrors)) return expr;
-  return this.parseExprOp(expr, startPos, startLoc, -1, noIn);
-};
-
-// Parse binary operators with the operator precedence parsing
-// algorithm. `left` is the left-hand side of the operator.
-// `minPrec` provides context that allows the function to stop and
-// defer further parser to one of its callers when it encounters an
-// operator that has a lower precedence than the set it is parsing.
-
-pp.parseExprOp = function (left, leftStartPos, leftStartLoc, minPrec, noIn) {
-  var prec = this.type.binop;
-  if (prec != null && (!noIn || this.type !== _tokentype.types._in)) {
-    if (prec > minPrec) {
-      var node = this.startNodeAt(leftStartPos, leftStartLoc);
-      node.left = left;
-      node.operator = this.value;
-      var op = this.type;
-      this.next();
-      var startPos = this.start,
-          startLoc = this.startLoc;
-      node.right = this.parseExprOp(this.parseMaybeUnary(), startPos, startLoc, prec, noIn);
-      this.finishNode(node, op === _tokentype.types.logicalOR || op === _tokentype.types.logicalAND ? "LogicalExpression" : "BinaryExpression");
-      return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, noIn);
-    }
-  }
-  return left;
-};
-
-// Parse unary operators, both prefix and postfix.
-
-pp.parseMaybeUnary = function (refDestructuringErrors) {
-  if (this.type.prefix) {
-    var node = this.startNode(),
-        update = this.type === _tokentype.types.incDec;
-    node.operator = this.value;
-    node.prefix = true;
-    this.next();
-    node.argument = this.parseMaybeUnary();
-    this.checkExpressionErrors(refDestructuringErrors, true);
-    if (update) this.checkLVal(node.argument);else if (this.strict && node.operator === "delete" && node.argument.type === "Identifier") this.raise(node.start, "Deleting local variable in strict mode");
-    return this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression");
-  }
-  var startPos = this.start,
-      startLoc = this.startLoc;
-  var expr = this.parseExprSubscripts(refDestructuringErrors);
-  if (this.checkExpressionErrors(refDestructuringErrors)) return expr;
-  while (this.type.postfix && !this.canInsertSemicolon()) {
-    var node = this.startNodeAt(startPos, startLoc);
-    node.operator = this.value;
-    node.prefix = false;
-    node.argument = expr;
-    this.checkLVal(expr);
-    this.next();
-    expr = this.finishNode(node, "UpdateExpression");
-  }
-  return expr;
-};
-
-// Parse call, dot, and `[]`-subscript expressions.
-
-pp.parseExprSubscripts = function (refDestructuringErrors) {
-  var startPos = this.start,
-      startLoc = this.startLoc;
-  var expr = this.parseExprAtom(refDestructuringErrors);
-  var skipArrowSubscripts = expr.type === "ArrowFunctionExpression" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== ")";
-  if (this.checkExpressionErrors(refDestructuringErrors) || skipArrowSubscripts) return expr;
-  return this.parseSubscripts(expr, startPos, startLoc);
-};
-
-pp.parseSubscripts = function (base, startPos, startLoc, noCalls) {
-  for (;;) {
-    if (this.eat(_tokentype.types.dot)) {
-      var node = this.startNodeAt(startPos, startLoc);
-      node.object = base;
-      node.property = this.parseIdent(true);
-      node.computed = false;
-      base = this.finishNode(node, "MemberExpression");
-    } else if (this.eat(_tokentype.types.bracketL)) {
-      var node = this.startNodeAt(startPos, startLoc);
-      node.object = base;
-      node.property = this.parseExpression();
-      node.computed = true;
-      this.expect(_tokentype.types.bracketR);
-      base = this.finishNode(node, "MemberExpression");
-    } else if (!noCalls && this.eat(_tokentype.types.parenL)) {
-      var node = this.startNodeAt(startPos, startLoc);
-      node.callee = base;
-      node.arguments = this.parseExprList(_tokentype.types.parenR, false);
-      base = this.finishNode(node, "CallExpression");
-    } else if (this.type === _tokentype.types.backQuote) {
-      var node = this.startNodeAt(startPos, startLoc);
-      node.tag = base;
-      node.quasi = this.parseTemplate();
-      base = this.finishNode(node, "TaggedTemplateExpression");
-    } else {
-      return base;
-    }
-  }
-};
-
-// Parse an atomic expression — either a single token that is an
-// expression, an expression started by a keyword like `function` or
-// `new`, or an expression wrapped in punctuation like `()`, `[]`,
-// or `{}`.
-
-pp.parseExprAtom = function (refDestructuringErrors) {
-  var node = undefined,
-      canBeArrow = this.potentialArrowAt == this.start;
-  switch (this.type) {
-    case _tokentype.types._super:
-      if (!this.inFunction) this.raise(this.start, "'super' outside of function or class");
-    case _tokentype.types._this:
-      var type = this.type === _tokentype.types._this ? "ThisExpression" : "Super";
-      node = this.startNode();
-      this.next();
-      return this.finishNode(node, type);
-
-    case _tokentype.types._yield:
-      if (this.inGenerator) this.unexpected();
-
-    case _tokentype.types.name:
-      var startPos = this.start,
-          startLoc = this.startLoc;
-      var id = this.parseIdent(this.type !== _tokentype.types.name);
-      if (canBeArrow && !this.canInsertSemicolon() && this.eat(_tokentype.types.arrow)) return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id]);
-      return id;
-
-    case _tokentype.types.regexp:
-      var value = this.value;
-      node = this.parseLiteral(value.value);
-      node.regex = { pattern: value.pattern, flags: value.flags };
-      return node;
-
-    case _tokentype.types.num:case _tokentype.types.string:
-      return this.parseLiteral(this.value);
-
-    case _tokentype.types._null:case _tokentype.types._true:case _tokentype.types._false:
-      node = this.startNode();
-      node.value = this.type === _tokentype.types._null ? null : this.type === _tokentype.types._true;
-      node.raw = this.type.keyword;
-      this.next();
-      return this.finishNode(node, "Literal");
-
-    case _tokentype.types.parenL:
-      return this.parseParenAndDistinguishExpression(canBeArrow);
-
-    case _tokentype.types.bracketL:
-      node = this.startNode();
-      this.next();
-      // check whether this is array comprehension or regular array
-      if (this.options.ecmaVersion >= 7 && this.type === _tokentype.types._for) {
-        return this.parseComprehension(node, false);
-      }
-      node.elements = this.parseExprList(_tokentype.types.bracketR, true, true, refDestructuringErrors);
-      return this.finishNode(node, "ArrayExpression");
-
-    case _tokentype.types.braceL:
-      return this.parseObj(false, refDestructuringErrors);
-
-    case _tokentype.types._function:
-      node = this.startNode();
-      this.next();
-      return this.parseFunction(node, false);
-
-    case _tokentype.types._class:
-      return this.parseClass(this.startNode(), false);
-
-    case _tokentype.types._new:
-      return this.parseNew();
-
-    case _tokentype.types.backQuote:
-      return this.parseTemplate();
-
-    default:
-      this.unexpected();
-  }
-};
-
-pp.parseLiteral = function (value) {
-  var node = this.startNode();
-  node.value = value;
-  node.raw = this.input.slice(this.start, this.end);
-  this.next();
-  return this.finishNode(node, "Literal");
-};
-
-pp.parseParenExpression = function () {
-  this.expect(_tokentype.types.parenL);
-  var val = this.parseExpression();
-  this.expect(_tokentype.types.parenR);
-  return val;
-};
-
-pp.parseParenAndDistinguishExpression = function (canBeArrow) {
-  var startPos = this.start,
-      startLoc = this.startLoc,
-      val = undefined;
-  if (this.options.ecmaVersion >= 6) {
-    this.next();
-
-    if (this.options.ecmaVersion >= 7 && this.type === _tokentype.types._for) {
-      return this.parseComprehension(this.startNodeAt(startPos, startLoc), true);
-    }
-
-    var innerStartPos = this.start,
-        innerStartLoc = this.startLoc;
-    var exprList = [],
-        first = true;
-    var refDestructuringErrors = { shorthandAssign: 0, trailingComma: 0 },
-        spreadStart = undefined,
-        innerParenStart = undefined;
-    while (this.type !== _tokentype.types.parenR) {
-      first ? first = false : this.expect(_tokentype.types.comma);
-      if (this.type === _tokentype.types.ellipsis) {
-        spreadStart = this.start;
-        exprList.push(this.parseParenItem(this.parseRest()));
-        break;
-      } else {
-        if (this.type === _tokentype.types.parenL && !innerParenStart) {
-          innerParenStart = this.start;
-        }
-        exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem));
-      }
-    }
-    var innerEndPos = this.start,
-        innerEndLoc = this.startLoc;
-    this.expect(_tokentype.types.parenR);
-
-    if (canBeArrow && !this.canInsertSemicolon() && this.eat(_tokentype.types.arrow)) {
-      this.checkPatternErrors(refDestructuringErrors, true);
-      if (innerParenStart) this.unexpected(innerParenStart);
-      return this.parseParenArrowList(startPos, startLoc, exprList);
-    }
-
-    if (!exprList.length) this.unexpected(this.lastTokStart);
-    if (spreadStart) this.unexpected(spreadStart);
-    this.checkExpressionErrors(refDestructuringErrors, true);
-
-    if (exprList.length > 1) {
-      val = this.startNodeAt(innerStartPos, innerStartLoc);
-      val.expressions = exprList;
-      this.finishNodeAt(val, "SequenceExpression", innerEndPos, innerEndLoc);
-    } else {
-      val = exprList[0];
-    }
-  } else {
-    val = this.parseParenExpression();
-  }
-
-  if (this.options.preserveParens) {
-    var par = this.startNodeAt(startPos, startLoc);
-    par.expression = val;
-    return this.finishNode(par, "ParenthesizedExpression");
-  } else {
-    return val;
-  }
-};
-
-pp.parseParenItem = function (item) {
-  return item;
-};
-
-pp.parseParenArrowList = function (startPos, startLoc, exprList) {
-  return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList);
-};
-
-// New's precedence is slightly tricky. It must allow its argument to
-// be a `[]` or dot subscript expression, but not a call — at least,
-// not without wrapping it in parentheses. Thus, it uses the noCalls
-// argument to parseSubscripts to prevent it from consuming the
-// argument list.
-
-var empty = [];
-
-pp.parseNew = function () {
-  var node = this.startNode();
-  var meta = this.parseIdent(true);
-  if (this.options.ecmaVersion >= 6 && this.eat(_tokentype.types.dot)) {
-    node.meta = meta;
-    node.property = this.parseIdent(true);
-    if (node.property.name !== "target") this.raise(node.property.start, "The only valid meta property for new is new.target");
-    if (!this.inFunction) this.raise(node.start, "new.target can only be used in functions");
-    return this.finishNode(node, "MetaProperty");
-  }
-  var startPos = this.start,
-      startLoc = this.startLoc;
-  node.callee = this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true);
-  if (this.eat(_tokentype.types.parenL)) node.arguments = this.parseExprList(_tokentype.types.parenR, false);else node.arguments = empty;
-  return this.finishNode(node, "NewExpression");
-};
-
-// Parse template expression.
-
-pp.parseTemplateElement = function () {
-  var elem = this.startNode();
-  elem.value = {
-    raw: this.input.slice(this.start, this.end).replace(/\r\n?/g, '\n'),
-    cooked: this.value
-  };
-  this.next();
-  elem.tail = this.type === _tokentype.types.backQuote;
-  return this.finishNode(elem, "TemplateElement");
-};
-
-pp.parseTemplate = function () {
-  var node = this.startNode();
-  this.next();
-  node.expressions = [];
-  var curElt = this.parseTemplateElement();
-  node.quasis = [curElt];
-  while (!curElt.tail) {
-    this.expect(_tokentype.types.dollarBraceL);
-    node.expressions.push(this.parseExpression());
-    this.expect(_tokentype.types.braceR);
-    node.quasis.push(curElt = this.parseTemplateElement());
-  }
-  this.next();
-  return this.finishNode(node, "TemplateLiteral");
-};
-
-// Parse an object literal or binding pattern.
-
-pp.parseObj = function (isPattern, refDestructuringErrors) {
-  var node = this.startNode(),
-      first = true,
-      propHash = {};
-  node.properties = [];
-  this.next();
-  while (!this.eat(_tokentype.types.braceR)) {
-    if (!first) {
-      this.expect(_tokentype.types.comma);
-      if (this.afterTrailingComma(_tokentype.types.braceR)) break;
-    } else first = false;
-
-    var prop = this.startNode(),
-        isGenerator = undefined,
-        startPos = undefined,
-        startLoc = undefined;
-    if (this.options.ecmaVersion >= 6) {
-      prop.method = false;
-      prop.shorthand = false;
-      if (isPattern || refDestructuringErrors) {
-        startPos = this.start;
-        startLoc = this.startLoc;
-      }
-      if (!isPattern) isGenerator = this.eat(_tokentype.types.star);
-    }
-    this.parsePropertyName(prop);
-    this.parsePropertyValue(prop, isPattern, isGenerator, startPos, startLoc, refDestructuringErrors);
-    this.checkPropClash(prop, propHash);
-    node.properties.push(this.finishNode(prop, "Property"));
-  }
-  return this.finishNode(node, isPattern ? "ObjectPattern" : "ObjectExpression");
-};
-
-pp.parsePropertyValue = function (prop, isPattern, isGenerator, startPos, startLoc, refDestructuringErrors) {
-  if (this.eat(_tokentype.types.colon)) {
-    prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors);
-    prop.kind = "init";
-  } else if (this.options.ecmaVersion >= 6 && this.type === _tokentype.types.parenL) {
-    if (isPattern) this.unexpected();
-    prop.kind = "init";
-    prop.method = true;
-    prop.value = this.parseMethod(isGenerator);
-  } else if (this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" && (prop.key.name === "get" || prop.key.name === "set") && (this.type != _tokentype.types.comma && this.type != _tokentype.types.braceR)) {
-    if (isGenerator || isPattern) this.unexpected();
-    prop.kind = prop.key.name;
-    this.parsePropertyName(prop);
-    prop.value = this.parseMethod(false);
-    var paramCount = prop.kind === "get" ? 0 : 1;
-    if (prop.value.params.length !== paramCount) {
-      var start = prop.value.start;
-      if (prop.kind === "get") this.raise(start, "getter should have no params");else this.raise(start, "setter should have exactly one param");
-    }
-    if (prop.kind === "set" && prop.value.params[0].type === "RestElement") this.raise(prop.value.params[0].start, "Setter cannot use rest params");
-  } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === "Identifier") {
-    prop.kind = "init";
-    if (isPattern) {
-      if (this.keywords.test(prop.key.name) || (this.strict ? this.reservedWordsStrictBind : this.reservedWords).test(prop.key.name)) this.raise(prop.key.start, "Binding " + prop.key.name);
-      prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key);
-    } else if (this.type === _tokentype.types.eq && refDestructuringErrors) {
-      if (!refDestructuringErrors.shorthandAssign) refDestructuringErrors.shorthandAssign = this.start;
-      prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key);
-    } else {
-      prop.value = prop.key;
-    }
-    prop.shorthand = true;
-  } else this.unexpected();
-};
-
-pp.parsePropertyName = function (prop) {
-  if (this.options.ecmaVersion >= 6) {
-    if (this.eat(_tokentype.types.bracketL)) {
-      prop.computed = true;
-      prop.key = this.parseMaybeAssign();
-      this.expect(_tokentype.types.bracketR);
-      return prop.key;
-    } else {
-      prop.computed = false;
-    }
-  }
-  return prop.key = this.type === _tokentype.types.num || this.type === _tokentype.types.string ? this.parseExprAtom() : this.parseIdent(true);
-};
-
-// Initialize empty function node.
-
-pp.initFunction = function (node) {
-  node.id = null;
-  if (this.options.ecmaVersion >= 6) {
-    node.generator = false;
-    node.expression = false;
-  }
-};
-
-// Parse object or class method.
-
-pp.parseMethod = function (isGenerator) {
-  var node = this.startNode();
-  this.initFunction(node);
-  this.expect(_tokentype.types.parenL);
-  node.params = this.parseBindingList(_tokentype.types.parenR, false, false);
-  if (this.options.ecmaVersion >= 6) node.generator = isGenerator;
-  this.parseFunctionBody(node, false);
-  return this.finishNode(node, "FunctionExpression");
-};
-
-// Parse arrow function expression with given parameters.
-
-pp.parseArrowExpression = function (node, params) {
-  this.initFunction(node);
-  node.params = this.toAssignableList(params, true);
-  this.parseFunctionBody(node, true);
-  return this.finishNode(node, "ArrowFunctionExpression");
-};
-
-// Parse function body and check parameters.
-
-pp.parseFunctionBody = function (node, isArrowFunction) {
-  var isExpression = isArrowFunction && this.type !== _tokentype.types.braceL;
-
-  if (isExpression) {
-    node.body = this.parseMaybeAssign();
-    node.expression = true;
-  } else {
-    // Start a new scope with regard to labels and the `inFunction`
-    // flag (restore them to their old value afterwards).
-    var oldInFunc = this.inFunction,
-        oldInGen = this.inGenerator,
-        oldLabels = this.labels;
-    this.inFunction = true;this.inGenerator = node.generator;this.labels = [];
-    node.body = this.parseBlock(true);
-    node.expression = false;
-    this.inFunction = oldInFunc;this.inGenerator = oldInGen;this.labels = oldLabels;
-  }
-
-  // If this is a strict mode function, verify that argument names
-  // are not repeated, and it does not try to bind the words `eval`
-  // or `arguments`.
-  if (this.strict || !isExpression && node.body.body.length && this.isUseStrict(node.body.body[0])) {
-    var oldStrict = this.strict;
-    this.strict = true;
-    if (node.id) this.checkLVal(node.id, true);
-    this.checkParams(node);
-    this.strict = oldStrict;
-  } else if (isArrowFunction) {
-    this.checkParams(node);
-  }
-};
-
-// Checks function params for various disallowed patterns such as using "eval"
-// or "arguments" and duplicate parameters.
-
-pp.checkParams = function (node) {
-  var nameHash = {};
-  for (var i = 0; i < node.params.length; i++) {
-    this.checkLVal(node.params[i], true, nameHash);
-  }
-};
-
-// Parses a comma-separated list of expressions, and returns them as
-// an array. `close` is the token type that ends the list, and
-// `allowEmpty` can be turned on to allow subsequent commas with
-// nothing in between them to be parsed as `null` (which is needed
-// for array literals).
-
-pp.parseExprList = function (close, allowTrailingComma, allowEmpty, refDestructuringErrors) {
-  var elts = [],
-      first = true;
-  while (!this.eat(close)) {
-    if (!first) {
-      this.expect(_tokentype.types.comma);
-      if (this.type === close && refDestructuringErrors && !refDestructuringErrors.trailingComma) {
-        refDestructuringErrors.trailingComma = this.lastTokStart;
-      }
-      if (allowTrailingComma && this.afterTrailingComma(close)) break;
-    } else first = false;
-
-    var elt = undefined;
-    if (allowEmpty && this.type === _tokentype.types.comma) elt = null;else if (this.type === _tokentype.types.ellipsis) elt = this.parseSpread(refDestructuringErrors);else elt = this.parseMaybeAssign(false, refDestructuringErrors);
-    elts.push(elt);
-  }
-  return elts;
-};
-
-// Parse the next token as an identifier. If `liberal` is true (used
-// when parsing properties), it will also convert keywords into
-// identifiers.
-
-pp.parseIdent = function (liberal) {
-  var node = this.startNode();
-  if (liberal && this.options.allowReserved == "never") liberal = false;
-  if (this.type === _tokentype.types.name) {
-    if (!liberal && (this.strict ? this.reservedWordsStrict : this.reservedWords).test(this.value) && (this.options.ecmaVersion >= 6 || this.input.slice(this.start, this.end).indexOf("\\") == -1)) this.raise(this.start, "The keyword '" + this.value + "' is reserved");
-    node.name = this.value;
-  } else if (liberal && this.type.keyword) {
-    node.name = this.type.keyword;
-  } else {
-    this.unexpected();
-  }
-  this.next();
-  return this.finishNode(node, "Identifier");
-};
-
-// Parses yield expression inside generator.
-
-pp.parseYield = function () {
-  var node = this.startNode();
-  this.next();
-  if (this.type == _tokentype.types.semi || this.canInsertSemicolon() || this.type != _tokentype.types.star && !this.type.startsExpr) {
-    node.delegate = false;
-    node.argument = null;
-  } else {
-    node.delegate = this.eat(_tokentype.types.star);
-    node.argument = this.parseMaybeAssign();
-  }
-  return this.finishNode(node, "YieldExpression");
-};
-
-// Parses array and generator comprehensions.
-
-pp.parseComprehension = function (node, isGenerator) {
-  node.blocks = [];
-  while (this.type === _tokentype.types._for) {
-    var block = this.startNode();
-    this.next();
-    this.expect(_tokentype.types.parenL);
-    block.left = this.parseBindingAtom();
-    this.checkLVal(block.left, true);
-    this.expectContextual("of");
-    block.right = this.parseExpression();
-    this.expect(_tokentype.types.parenR);
-    node.blocks.push(this.finishNode(block, "ComprehensionBlock"));
-  }
-  node.filter = this.eat(_tokentype.types._if) ? this.parseParenExpression() : null;
-  node.body = this.parseExpression();
-  this.expect(isGenerator ? _tokentype.types.parenR : _tokentype.types.bracketR);
-  node.generator = isGenerator;
-  return this.finishNode(node, "ComprehensionExpression");
-};
-
-},{"./state":10,"./tokentype":14}],2:[function(_dereq_,module,exports){
-// This is a trick taken from Esprima. It turns out that, on
-// non-Chrome browsers, to check whether a string is in a set, a
-// predicate containing a big ugly `switch` statement is faster than
-// a regular expression, and on Chrome the two are about on par.
-// This function uses `eval` (non-lexical) to produce such a
-// predicate from a space-separated string of words.
-//
-// It starts by sorting the words by length.
-
-// Reserved word lists for various dialects of the language
-
-"use strict";
-
-exports.__esModule = true;
-exports.isIdentifierStart = isIdentifierStart;
-exports.isIdentifierChar = isIdentifierChar;
-var reservedWords = {
-  3: "abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",
-  5: "class enum extends super const export import",
-  6: "enum",
-  strict: "implements interface let package private protected public static yield",
-  strictBind: "eval arguments"
-};
-
-exports.reservedWords = reservedWords;
-// And the keywords
-
-var ecma5AndLessKeywords = "break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this";
-
-var keywords = {
-  5: ecma5AndLessKeywords,
-  6: ecma5AndLessKeywords + " let const class extends export import yield super"
-};
-
-exports.keywords = keywords;
-// ## Character categories
-
-// Big ugly regular expressions that match characters in the
-// whitespace, identifier, and identifier-start categories. These
-// are only applied when a character is found to actually have a
-// code point above 128.
-// Generated by `bin/generate-identifier-regex.js`.
-
-var nonASCIIidentifierStartChars = "ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠ-ࢲऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-
 ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞭꞰꞱꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-�
 ��ꬨ-ꬮꬰ-ꭚꭜ-ꭟꭤꭥꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ";
-var nonASCIIidentifierChars = "‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࣤ-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఃా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഁ-ഃാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ංඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ູົຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠐-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏ᦰ-ᧀᧈᧉ᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-
 ᱉᱐-᱙᳐-᳔᳒-᳨᳭ᳲ-᳴᳸᳹᷀-᷵᷼-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-꣄꣐-꣙꣠-꣱꤀-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︭︳︴﹍-﹏0-9_";
-
-var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
-var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
-
-nonASCIIidentifierStartChars = nonASCIIidentifierChars = null;
-
-// These are a run-length and offset encoded representation of the
-// >0xffff code points that are a valid part of identifiers. The
-// offset starts at 0x10000, and each pair of numbers represents an
-// offset to the next range, and then a size of the range. They were
-// generated by tools/generate-identifier-regex.js
-var astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 17, 26, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 99, 39, 9, 51, 157, 310, 10, 21, 11, 7, 153, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 98, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 26, 45, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 955, 52, 76, 44, 33, 24, 27, 35, 42, 34, 4, 0, 13, 47, 15, 3, 22, 0, 38, 17, 2, 24, 133, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 32, 4, 287, 47, 21, 1, 2, 0, 185, 46, 82, 47, 21, 0, 60, 42, 502, 63, 32, 0, 449, 56, 1288, 920, 104, 110, 2962, 1070, 13266, 568, 8, 30, 114, 29, 19, 47, 17, 3, 32, 20, 6, 18, 881, 68, 12, 0, 67, 12, 16481, 1, 3071, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 4149, 196, 1340, 3, 2, 26, 2,
  1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42710, 42, 4148, 12, 221, 16355, 541];
-var astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 1306, 2, 54, 14, 32, 9, 16, 3, 46, 10, 54, 9, 7, 2, 37, 13, 2, 9, 52, 0, 13, 2, 49, 13, 16, 9, 83, 11, 168, 11, 6, 9, 8, 2, 57, 0, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 316, 19, 13, 9, 214, 6, 3, 8, 112, 16, 16, 9, 82, 12, 9, 9, 535, 9, 20855, 9, 135, 4, 60, 6, 26, 9, 1016, 45, 17, 3, 19723, 1, 5319, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 4305, 6, 792618, 239];
-
-// This has a complexity linear to the value of the code. The
-// assumption is that looking up astral identifier characters is
-// rare.
-function isInAstralSet(code, set) {
-  var pos = 0x10000;
-  for (var i = 0; i < set.length; i += 2) {
-    pos += set[i];
-    if (pos > code) return false;
-    pos += set[i + 1];
-    if (pos >= code) return true;
-  }
-}
-
-// Test whether a given character code starts an identifier.
-
-function isIdentifierStart(code, astral) {
-  if (code < 65) return code === 36;
-  if (code < 91) return true;
-  if (code < 97) return code === 95;
-  if (code < 123) return true;
-  if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code));
-  if (astral === false) return false;
-  return isInAstralSet(code, astralIdentifierStartCodes);
-}
-
-// Test whether a given character is part of an identifier.
-
-function isIdentifierChar(code, astral) {
-  if (code < 48) return code === 36;
-  if (code < 58) return true;
-  if (code < 65) return false;
-  if (code < 91) return true;
-  if (code < 97) return code === 95;
-  if (code < 123) return true;
-  if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));
-  if (astral === false) return false;
-  return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes);
-}
-
-},{}],3:[function(_dereq_,module,exports){
-// Acorn is a tiny, fast JavaScript parser written in JavaScript.
-//
-// Acorn was written by Marijn Haverbeke, Ingvar Stepanyan, and
-// various contributors and released under an MIT license.
-//
-// Git repositories for Acorn are available at
-//
-//     http://marijnhaverbeke.nl/git/acorn
-//     https://github.com/ternjs/acorn.git
-//
-// Please use the [github bug tracker][ghbt] to report issues.
-//
-// [ghbt]: https://github.com/ternjs/acorn/issues
-//
-// This file defines the main parser interface. The library also comes
-// with a [error-tolerant parser][dammit] and an
-// [abstract syntax tree walker][walk], defined in other files.
-//
-// [dammit]: acorn_loose.js
-// [walk]: util/walk.js
-
-"use strict";
-
-exports.__esModule = true;
-exports.parse = parse;
-exports.parseExpressionAt = parseExpressionAt;
-exports.tokenizer = tokenizer;
-
-var _state = _dereq_("./state");
-
-_dereq_("./parseutil");
-
-_dereq_("./statement");
-
-_dereq_("./lval");
-
-_dereq_("./expression");
-
-_dereq_("./location");
-
-exports.Parser = _state.Parser;
-exports.plugins = _state.plugins;
-
-var _options = _dereq_("./options");
-
-exports.defaultOptions = _options.defaultOptions;
-
-var _locutil = _dereq_("./locutil");
-
-exports.Position = _locutil.Position;
-exports.SourceLocation = _locutil.SourceLocation;
-exports.getLineInfo = _locutil.getLineInfo;
-
-var _node = _dereq_("./node");
-
-exports.Node = _node.Node;
-
-var _tokentype = _dereq_("./tokentype");
-
-exports.TokenType = _tokentype.TokenType;
-exports.tokTypes = _tokentype.types;
-
-var _tokencontext = _dereq_("./tokencontext");
-
-exports.TokContext = _tokencontext.TokContext;
-exports.tokContexts = _tokencontext.types;
-
-var _identifier = _dereq_("./identifier");
-
-exports.isIdentifierChar = _identifier.isIdentifierChar;
-exports.isIdentifierStart = _identifier.isIdentifierStart;
-
-var _tokenize = _dereq_("./tokenize");
-
-exports.Token = _tokenize.Token;
-
-var _whitespace = _dereq_("./whitespace");
-
-exports.isNewLine = _whitespace.isNewLine;
-exports.lineBreak = _whitespace.lineBreak;
-exports.lineBreakG = _whitespace.lineBreakG;
-var version = "2.7.0";
-
-exports.version = version;
-// The main exported interface (under `self.acorn` when in the
-// browser) is a `parse` function that takes a code string and
-// returns an abstract syntax tree as specified by [Mozilla parser
-// API][api].
-//
-// [api]: https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API
-
-function parse(input, options) {
-  return new _state.Parser(options, input).parse();
-}
-
-// This function tries to parse a single expression at a given
-// offset in a string. Useful for parsing mixed-language formats
-// that embed JavaScript expressions.
-
-function parseExpressionAt(input, pos, options) {
-  var p = new _state.Parser(options, input, pos);
-  p.nextToken();
-  return p.parseExpression();
-}
-
-// Acorn is organized as a tokenizer and a recursive-descent parser.
-// The `tokenizer` export provides an interface to the tokenizer.
-
-function tokenizer(input, options) {
-  return new _state.Parser(options, input);
-}
-
-},{"./expression":1,"./identifier":2,"./location":4,"./locutil":5,"./lval":6,"./node":7,"./options":8,"./parseutil":9,"./state":10,"./statement":11,"./tokencontext":12,"./tokenize":13,"./tokentype":14,"./whitespace":16}],4:[function(_dereq_,module,exports){
-"use strict";
-
-var _state = _dereq_("./state");
-
-var _locutil = _dereq_("./locutil");
-
-var pp = _state.Parser.prototype;
-
-// This function is used to raise exceptions on parse errors. It
-// takes an offset integer (into the current `input`) to indicate
-// the location of the error, attaches the position to the end
-// of the error message, and then raises a `SyntaxError` with that
-// message.
-
-pp.raise = function (pos, message) {
-  var loc = _locutil.getLineInfo(this.input, pos);
-  message += " (" + loc.line + ":" + loc.column + ")";
-  var err = new SyntaxError(message);
-  err.pos = pos;err.loc = loc;err.raisedAt = this.pos;
-  throw err;
-};
-
-pp.curPosition = function () {
-  if (this.options.locations) {
-    return new _locutil.Position(this.curLine, this.pos - this.lineStart);
-  }
-};
-
-},{"./locutil":5,"./state":10}],5:[function(_dereq_,module,exports){
-"use strict";
-
-exports.__esModule = true;
-exports.getLineInfo = getLineInfo;
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-var _whitespace = _dereq_("./whitespace");
-
-// These are used when `options.locations` is on, for the
-// `startLoc` and `endLoc` properties.
-
-var Position = (function () {
-  function Position(line, col) {
-    _classCallCheck(this, Position);
-
-    this.line = line;
-    this.column = col;
-  }
-
-  Position.prototype.offset = function offset(n) {
-    return new Position(this.line, this.column + n);
-  };
-
-  return Position;
-})();
-
-exports.Position = Position;
-
-var SourceLocation = function SourceLocation(p, start, end) {
-  _classCallCheck(this, SourceLocation);
-
-  this.start = start;
-  this.end = end;
-  if (p.sourceFile !== null) this.source = p.sourceFile;
-}
-
-// The `getLineInfo` function is mostly useful when the
-// `locations` option is off (for performance reasons) and you
-// want to find the line/column position for a given character
-// offset. `input` should be the code string that the offset refers
-// into.
-
-;
-
-exports.SourceLocation = SourceLocation;
-
-function getLineInfo(input, offset) {
-  for (var line = 1, cur = 0;;) {
-    _whitespace.lineBreakG.lastIndex = cur;
-    var match = _whitespace.lineBreakG.exec(input);
-    if (match && match.index < offset) {
-      ++line;
-      cur = match.index + match[0].length;
-    } else {
-      return new Position(line, offset - cur);
-    }
-  }
-}
-
-},{"./whitespace":16}],6:[function(_dereq_,module,exports){
-"use strict";
-
-var _tokentype = _dereq_("./tokentype");
-
-var _state = _dereq_("./state");
-
-var _util = _dereq_("./util");
-
-var pp = _state.Parser.prototype;
-
-// Convert existing expression atom to assignable pattern
-// if possible.
-
-pp.toAssignable = function (node, isBinding) {
-  if (this.options.ecmaVersion >= 6 && node) {
-    switch (node.type) {
-      case "Identifier":
-      case "ObjectPattern":
-      case "ArrayPattern":
-        break;
-
-      case "ObjectExpression":
-        node.type = "ObjectPattern";
-        for (var i = 0; i < node.properties.length; i++) {
-          var prop = node.properties[i];
-          if (prop.kind !== "init") this.raise(prop.key.start, "Object pattern can't contain getter or setter");
-          this.toAssignable(prop.value, isBinding);
-        }
-        break;
-
-      case "ArrayExpression":
-        node.type = "ArrayPattern";
-        this.toAssignableList(node.elements, isBinding);
-        break;
-
-      case "AssignmentExpression":
-        if (node.operator === "=") {
-          node.type = "AssignmentPattern";
-          delete node.operator;
-          // falls through to AssignmentPattern
-        } else {
-            this.raise(node.left.end, "Only '=' operator can be used for specifying default value.");
-            break;
-          }
-
-      case "AssignmentPattern":
-        if (node.right.type === "YieldExpression") this.raise(node.right.start, "Yield expression cannot be a default value");
-        break;
-
-      case "ParenthesizedExpression":
-        node.expression = this.toAssignable(node.expression, isBinding);
-        break;
-
-      case "MemberExpression":
-        if (!isBinding) break;
-
-      default:
-        this.raise(node.start, "Assigning to rvalue");
-    }
-  }
-  return node;
-};
-
-// Convert list of expression atoms to binding list.
-
-pp.toAssignableList = function (exprList, isBinding) {
-  var end = exprList.length;
-  if (end) {
-    var last = exprList[end - 1];
-    if (last && last.type == "RestElement") {
-      --end;
-    } else if (last && last.type == "SpreadElement") {
-      last.type = "RestElement";
-      var arg = last.argument;
-      this.toAssignable(arg, isBinding);
-      if (arg.type !== "Identifier" && arg.type !== "MemberExpression" && arg.type !== "ArrayPattern") this.unexpected(arg.start);
-      --end;
-    }
-
-    if (isBinding && last.type === "RestElement" && last.argument.type !== "Identifier") this.unexpected(last.argument.start);
-  }
-  for (var i = 0; i < end; i++) {
-    var elt = exprList[i];
-    if (elt) this.toAssignable(elt, isBinding);
-  }
-  return exprList;
-};
-
-// Parses spread element.
-
-pp.parseSpread = function (refDestructuringErrors) {
-  var node = this.startNode();
-  this.next();
-  node.argument = this.parseMaybeAssign(refDestructuringErrors);
-  return this.finishNode(node, "SpreadElement");
-};
-
-pp.parseRest = function (allowNonIdent) {
-  var node = this.startNode();
-  this.next();
-
-  // RestElement inside of a function parameter must be an identifier
-  if (allowNonIdent) node.argument = this.type === _tokentype.types.name ? this.parseIdent() : this.unexpected();else node.argument = this.type === _tokentype.types.name || this.type === _tokentype.types.bracketL ? this.parseBindingAtom() : this.unexpected();
-
-  return this.finishNode(node, "RestElement");
-};
-
-// Parses lvalue (assignable) atom.
-
-pp.parseBindingAtom = function () {
-  if (this.options.ecmaVersion < 6) return this.parseIdent();
-  switch (this.type) {
-    case _tokentype.types.name:
-      return this.parseIdent();
-
-    case _tokentype.types.bracketL:
-      var node = this.startNode();
-      this.next();
-      node.elements = this.parseBindingList(_tokentype.types.bracketR, true, true);
-      return this.finishNode(node, "ArrayPattern");
-
-    case _tokentype.types.braceL:
-      return this.parseObj(true);
-
-    default:
-      this.unexpected();
-  }
-};
-
-pp.parseBindingList = function (close, allowEmpty, allowTrailingComma, allowNonIdent) {
-  var elts = [],
-      first = true;
-  while (!this.eat(close)) {
-    if (first) first = false;else this.expect(_tokentype.types.comma);
-    if (allowEmpty && this.type === _tokentype.types.comma) {
-      elts.push(null);
-    } else if (allowTrailingComma && this.afterTrailingComma(close)) {
-      break;
-    } else if (this.type === _tokentype.types.ellipsis) {
-      var rest = this.parseRest(allowNonIdent);
-      this.parseBindingListItem(rest);
-      elts.push(rest);
-      this.expect(close);
-      break;
-    } else {
-      var elem = this.parseMaybeDefault(this.start, this.startLoc);
-      this.parseBindingListItem(elem);
-      elts.push(elem);
-    }
-  }
-  return elts;
-};
-
-pp.parseBindingListItem = function (param) {
-  return param;
-};
-
-// Parses assignment pattern around given atom if possible.
-
-pp.parseMaybeDefault = function (startPos, startLoc, left) {
-  left = left || this.parseBindingAtom();
-  if (this.options.ecmaVersion < 6 || !this.eat(_tokentype.types.eq)) return left;
-  var node = this.startNodeAt(startPos, startLoc);
-  node.left = left;
-  node.right = this.parseMaybeAssign();
-  return this.finishNode(node, "AssignmentPattern");
-};
-
-// Verify that a node is an lval — something that can be assigned
-// to.
-
-pp.checkLVal = function (expr, isBinding, checkClashes) {
-  switch (expr.type) {
-    case "Identifier":
-      if (this.strict && this.reservedWordsStrictBind.test(expr.name)) this.raise(expr.start, (isBinding ? "Binding " : "Assigning to ") + expr.name + " in strict mode");
-      if (checkClashes) {
-        if (_util.has(checkClashes, expr.name)) this.raise(expr.start, "Argument name clash");
-        checkClashes[expr.name] = true;
-      }
-      break;
-
-    case "MemberExpression":
-      if (isBinding) this.raise(expr.start, (isBinding ? "Binding" : "Assigning to") + " member expression");
-      break;
-
-    case "ObjectPattern":
-      for (var i = 0; i < expr.properties.length; i++) {
-        this.checkLVal(expr.properties[i].value, isBinding, checkClashes);
-      }break;
-
-    case "ArrayPattern":
-      for (var i = 0; i < expr.elements.length; i++) {
-        var elem = expr.elements[i];
-        if (elem) this.checkLVal(elem, isBinding, checkClashes);
-      }
-      break;
-
-    case "AssignmentPattern":
-      this.checkLVal(expr.left, isBinding, checkClashes);
-      break;
-
-    case "RestElement":
-      this.checkLVal(expr.argument, isBinding, checkClashes);
-      break;
-
-    case "ParenthesizedExpression":
-      this.checkLVal(expr.expression, isBinding, checkClashes);
-      break;
-
-    default:
-      this.raise(expr.start, (isBinding ? "Binding" : "Assigning to") + " rvalue");
-  }
-};
-
-},{"./state":10,"./tokentype":14,"./util":15}],7:[function(_dereq_,module,exports){
-"use strict";
-
-exports.__esModule = true;
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-var _state = _dereq_("./state");
-
-var _locutil = _dereq_("./locutil");
-
-var Node = function Node(parser, pos, loc) {
-  _classCallCheck(this, Node);
-
-  this.type = "";
-  this.start = pos;
-  this.end = 0;
-  if (parser.options.locations) this.loc = new _locutil.SourceLocation(parser, loc);
-  if (parser.options.directSourceFile) this.sourceFile = parser.options.directSourceFile;
-  if (parser.options.ranges) this.range = [pos, 0];
-}
-
-// Start an AST node, attaching a start offset.
-
-;
-
-exports.Node = Node;
-var pp = _state.Parser.prototype;
-
-pp.startNode = function () {
-  return new Node(this, this.start, this.startLoc);
-};
-
-pp.startNodeAt = function (pos, loc) {
-  return new Node(this, pos, loc);
-};
-
-// Finish an AST node, adding `type` and `end` properties.
-
-function finishNodeAt(node, type, pos, loc) {
-  node.type = type;
-  node.end = pos;
-  if (this.options.locations) node.loc.end = loc;
-  if (this.options.ranges) node.range[1] = pos;
-  return node;
-}
-
-pp.finishNode = function (node, type) {
-  return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc);
-};
-
-// Finish node at given position
-
-pp.finishNodeAt = function (node, type, pos, loc) {
-  return finishNodeAt.call(this, node, type, pos, loc);
-};
-
-},{"./locutil":5,"./state":10}],8:[function(_dereq_,module,exports){
-"use strict";
-
-exports.__esModule = true;
-exports.getOptions = getOptions;
-
-var _util = _dereq_("./util");
-
-var _locutil = _dereq_("./locutil");
-
-// A second optional argument can be given to further configure
-// the parser process. These options are recognized:
-
-var defaultOptions = {
-  // `ecmaVersion` indicates the ECMAScript version to parse. Must
-  // be either 3, or 5, or 6. This influences support for strict
-  // mode, the set of reserved words, support for getters and
-  // setters and other features.
-  ecmaVersion: 5,
-  // Source type ("script" or "module") for different semantics
-  sourceType: "script",
-  // `onInsertedSemicolon` can be a callback that will be called
-  // when a semicolon is automatically inserted. It will be passed
-  // th position of the comma as an offset, and if `locations` is
-  // enabled, it is given the location as a `{line, column}` object
-  // as second argument.
-  onInsertedSemicolon: null,
-  // `onTrailingComma` is similar to `onInsertedSemicolon`, but for
-  // trailing commas.
-  onTrailingComma: null,
-  // By default, reserved words are only enforced if ecmaVersion >= 5.
-  // Set `allowReserved` to a boolean value to explicitly turn this on
-  // an off. When this option has the value "never", reserved words
-  // and keywords can also not be used as property names.
-  allowReserved: null,
-  // When enabled, a return at the top level is not considered an
-  // error.
-  allowReturnOutsideFunction: false,
-  // When enabled, import/export statements are not constrained to
-  // appearing at the top of the program.
-  allowImportExportEverywhere: false,
-  // When enabled, hashbang directive in the beginning of file
-  // is allowed and treated as a line comment.
-  allowHashBang: false,
-  // When `locations` is on, `loc` properties holding objects with
-  // `start` and `end` properties in `{line, column}` form (with
-  // line being 1-based and column 0-based) will be attached to the
-  // nodes.
-  locations: false,
-  // A function can be passed as `onToken` option, which will
-  // cause Acorn to call that function with object in the same
-  // format as tokens returned from `tokenizer().getToken()`. Note
-  // that you are not allowed to call the parser from the
-  // callback—that will corrupt its internal state.
-  onToken: null,
-  // A function can be passed as `onComment` option, which will
-  // cause Acorn to call that function with `(block, text, start,
-  // end)` parameters whenever a comment is skipped. `block` is a
-  // boolean indicating whether this is a block (`/* */`) comment,
-  // `text` is the content of the comment, and `start` and `end` are
-  // character offsets that denote the start and end of the comment.
-  // When the `locations` option is on, two more parameters are
-  // passed, the full `{line, column}` locations of the start and
-  // end of the comments. Note that you are not allowed to call the
-  // parser from the callback—that will corrupt its internal state.
-  onComment: null,
-  // Nodes have their start and end characters offsets recorded in
-  // `start` and `end` properties (directly on the node, rather than
-  // the `loc` object, which holds line/column data. To also add a
-  // [semi-standardized][range] `range` property holding a `[start,
-  // end]` array with the same numbers, set the `ranges` option to
-  // `true`.
-  //
-  // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678
-  ranges: false,
-  // It is possible to parse multiple files into a single AST by
-  // passing the tree produced by parsing the first file as
-  // `program` option in subsequent parses. This will add the
-  // toplevel forms of the parsed file to the `Program` (top) node
-  // of an existing parse tree.
-  program: null,
-  // When `locations` is on, you can pass this to record the source
-  // file in every node's `loc` object.
-  sourceFile: null,
-  // This value, if given, is stored in every node, whether
-  // `locations` is on or off.
-  directSourceFile: null,
-  // When enabled, parenthesized expressions are represented by
-  // (non-standard) ParenthesizedExpression nodes
-  preserveParens: false,
-  plugins: {}
-};
-
-exports.defaultOptions = defaultOptions;
-// Interpret and default an options object
-
-function getOptions(opts) {
-  var options = {};
-  for (var opt in defaultOptions) {
-    options[opt] = opts && _util.has(opts, opt) ? opts[opt] : defaultOptions[opt];
-  }if (options.allowReserved == null) options.allowReserved = options.ecmaVersion < 5;
-
-  if (_util.isArray(options.onToken)) {
-    (function () {
-      var tokens = options.onToken;
-      options.onToken = function (token) {
-        return tokens.push(token);
-      };
-    })();
-  }
-  if (_util.isArray(options.onComment)) options.onComment = pushComment(options, options.onComment);
-
-  return options;
-}
-
-function pushComment(options, array) {
-  return function (block, text, start, end, startLoc, endLoc) {
-    var comment = {
-      type: block ? 'Block' : 'Line',
-      value: text,
-      start: start,
-      end: end
-    };
-    if (options.locations) comment.loc = new _locutil.SourceLocation(this, startLoc, endLoc);
-    if (options.ranges) comment.range = [start, end];
-    array.push(comment);
-  };
-}
-
-},{"./locutil":5,"./util":15}],9:[function(_dereq_,module,exports){
-"use strict";
-
-var _tokentype = _dereq_("./tokentype");
-
-var _state = _dereq_("./state");
-
-var _whitespace = _dereq_("./whitespace");
-
-var pp = _state.Parser.prototype;
-
-// ## Parser utilities
-
-// Test whether a statement node is the string literal `"use strict"`.
-
-pp.isUseStrict = function (stmt) {
-  return this.options.ecmaVersion >= 5 && stmt.type === "ExpressionStatement" && stmt.expression.type === "Literal" && stmt.expression.raw.slice(1, -1) === "use strict";
-};
-
-// Predicate that tests whether the next token is of the given
-// type, and if yes, consumes it as a side effect.
-
-pp.eat = function (type) {
-  if (this.type === type) {
-    this.next();
-    return true;
-  } else {
-    return false;
-  }
-};
-
-// Tests whether parsed token is a contextual keyword.
-
-pp.isContextual = function (name) {
-  return this.type === _tokentype.types.name && this.value === name;
-};
-
-// Consumes contextual keyword if possible.
-
-pp.eatContextual = function (name) {
-  return this.value === name && this.eat(_tokentype.types.name);
-};
-
-// Asserts that following token is given contextual keyword.
-
-pp.expectContextual = function (name) {
-  if (!this.eatContextual(name)) this.unexpected();
-};
-
-// Test whether a semicolon can be inserted at the current position.
-
-pp.canInsertSemicolon = function () {
-  return this.type === _tokentype.types.eof || this.type === _tokentype.types.braceR || _whitespace.lineBreak.test(this.input.slice(this.lastTokEnd, this.start));
-};
-
-pp.insertSemicolon = function () {
-  if (this.canInsertSemicolon()) {
-    if (this.options.onInsertedSemicolon) this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc);
-    return true;
-  }
-};
-
-// Consume a semicolon, or, failing that, see if we are allowed to
-// pretend that there is a semicolon at this position.
-
-pp.semicolon = function () {
-  if (!this.eat(_tokentype.types.semi) && !this.insertSemicolon()) this.unexpected();
-};
-
-pp.afterTrailingComma = function (tokType) {
-  if (this.type == tokType) {
-    if (this.options.onTrailingComma) this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc);
-    this.next();
-    return true;
-  }
-};
-
-// Expect a token of a given type. If found, consume it, otherwise,
-// raise an unexpected token error.
-
-pp.expect = function (type) {
-  this.eat(type) || this.unexpected();
-};
-
-// Raise an unexpected token error.
-
-pp.unexpected = function (pos) {
-  this.raise(pos != null ? pos : this.start, "Unexpected token");
-};
-
-pp.checkPatternErrors = function (refDestructuringErrors, andThrow) {
-  var pos = refDestructuringErrors && refDestructuringErrors.trailingComma;
-  if (!andThrow) return !!pos;
-  if (pos) this.raise(pos, "Trailing comma is not permitted in destructuring patterns");
-};
-
-pp.checkExpressionErrors = function (refDestructuringErrors, andThrow) {
-  var pos = refDestructuringErrors && refDestructuringErrors.shorthandAssign;
-  if (!andThrow) return !!pos;
-  if (pos) this.raise(pos, "Shorthand property assignments are valid only in destructuring patterns");
-};
-
-},{"./state":10,"./tokentype":14,"./whitespace":16}],10:[function(_dereq_,module,exports){
-"use strict";
-
-exports.__esModule = true;
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-var _identifier = _dereq_("./identifier");
-
-var _tokentype = _dereq_("./tokentype");
-
-var _whitespace = _dereq_("./whitespace");
-
-var _options = _dereq_("./options");
-
-// Registered plugins
-var plugins = {};
-
-exports.plugins = plugins;
-function keywordRegexp(words) {
-  return new RegExp("^(" + words.replace(/ /g, "|") + ")$");
-}
-
-var Parser = (function () {
-  function Parser(options, input, startPos) {
-    _classCallCheck(this, Parser);
-
-    this.options = options = _options.getOptions(options);
-    this.sourceFile = options.sourceFile;
-    this.keywords = keywordRegexp(_identifier.keywords[options.ecmaVersion >= 6 ? 6 : 5]);
-    var reserved = options.allowReserved ? "" : _identifier.reservedWords[options.ecmaVersion] + (options.sourceType == "module" ? " await" : "");
-    this.reservedWords = keywordRegexp(reserved);
-    var reservedStrict = (reserved ? reserved + " " : "") + _identifier.reservedWords.strict;
-    this.reservedWordsStrict = keywordRegexp(reservedStrict);
-    this.reservedWordsStrictBind = keywordRegexp(reservedStrict + " " + _identifier.reservedWords.strictBind);
-    this.input = String(input);
-
-    // Used to signal to callers of `readWord1` whether the word
-    // contained any escape sequences. This is needed because words with
-    // escape sequences must not be interpreted as keywords.
-    this.containsEsc = false;
-
-    // Load plugins
-    this.loadPlugins(options.plugins);
-
-    // Set up token state
-
-    // The current position of the tokenizer in the input.
-    if (startPos) {
-      this.pos = startPos;
-      this.lineStart = Math.max(0, this.input.lastIndexOf("\n", startPos));
-      this.curLine = this.input.slice(0, this.lineStart).split(_whitespace.lineBreak).length;
-    } else {
-      this.pos = this.lineStart = 0;
-      this.curLine = 1;
-    }
-
-    // Properties of the current token:
-    // Its type
-    this.type = _tokentype.types.eof;
-    // For tokens that include more information than their type, the value
-    this.value = null;
-    // Its start and end offset
-    this.start = this.end = this.pos;
-    // And, if locations are used, the {line, column} object
-    // corresponding to those offsets
-    this.startLoc = this.endLoc = this.curPosition();
-
-    // Position information for the previous token
-    this.lastTokEndLoc = this.lastTokStartLoc = null;
-    this.lastTokStart = this.lastTokEnd = this.pos;
-
-    // The context stack is used to superficially track syntactic
-    // context to predict whether a regular expression is allowed in a
-    // given position.
-    this.context = this.initialContext();
-    this.exprAllowed = true;
-
-    // Figure out if it's a module code.
-    this.strict = this.inModule = options.sourceType === "module";
-
-    // Used to signify the start of a potential arrow function
-    this.potentialArrowAt = -1;
-
-    // Flags to track whether we are in a function, a generator.
-    this.inFunction = this.inGenerator = false;
-    // Labels in scope.
-    this.labels = [];
-
-    // If enabled, skip leading hashbang line.
-    if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === '#!') this.skipLineComment(2);
-  }
-
-  // DEPRECATED Kept for backwards compatibility until 3.0 in case a plugin uses them
-
-  Parser.prototype.isKeyword = function isKeyword(word) {
-    return this.keywords.test(word);
-  };
-
-  Parser.prototype.isReservedWord = function isReservedWord(word) {
-    return this.reservedWords.test(word);
-  };
-
-  Parser.prototype.extend = function extend(name, f) {
-    this[name] = f(this[name]);
-  };
-
-  Parser.prototype.loadPlugins = function loadPlugins(pluginConfigs) {
-    for (var _name in pluginConfigs) {
-      var plugin = plugins[_name];
-      if (!plugin) throw new Error("Plugin '" + _name + "' not found");
-      plugin(this, pluginConfigs[_name]);
-    }
-  };
-
-  Parser.prototype.parse = function parse() {
-    var node = this.options.program || this.startNode();
-    this.nextToken();
-    return this.parseTopLevel(node);
-  };
-
-  return Parser;
-})();
-
-exports.Parser = Parser;
-
-},{"./identifier":2,"./options":8,"./tokentype":14,"./whitespace":16}],11:[function(_dereq_,module,exports){
-"use strict";
-
-var _tokentype = _dereq_("./tokentype");
-
-var _state = _dereq_("./state");
-
-var _whitespace = _dereq_("./whitespace");
-
-var pp = _state.Parser.prototype;
-
-// ### Statement parsing
-
-// Parse a program. Initializes the parser, reads any number of
-// statements, and wraps them in a Program node.  Optionally takes a
-// `program` argument.  If present, the statements will be appended
-// to its body instead of creating a new node.
-
-pp.parseTopLevel = function (node) {
-  var first = true;
-  if (!node.body) node.body = [];
-  while (this.type !== _tokentype.types.eof) {
-    var stmt = this.parseStatement(true, true);
-    node.body.push(stmt);
-    if (first) {
-      if (this.isUseStrict(stmt)) this.setStrict(true);
-      first = false;
-    }
-  }
-  this.next();
-  if (this.options.ecmaVersion >= 6) {
-    node.sourceType = this.options.sourceType;
-  }
-  return this.finishNode(node, "Program");
-};
-
-var loopLabel = { kind: "loop" },
-    switchLabel = { kind: "switch" };
-
-// Parse a single statement.
-//
-// If expecting a statement and finding a slash operator, parse a
-// regular expression literal. This is to handle cases like
-// `if (foo) /blah/.exec(foo)`, where looking at the previous token
-// does not help.
-
-pp.parseStatement = function (declaration, topLevel) {
-  var starttype = this.type,
-      node = this.startNode();
-
-  // Most types of statements are recognized by the keyword they
-  // start with. Many are trivial to parse, some require a bit of
-  // complexity.
-
-  switch (starttype) {
-    case _tokentype.types._break:case _tokentype.types._continue:
-      return this.parseBreakContinueStatement(node, starttype.keyword);
-    case _tokentype.types._debugger:
-      return this.parseDebuggerStatement(node);
-    case _tokentype.types._do:
-      return this.parseDoStatement(node);
-    case _tokentype.types._for:
-      return this.parseForStatement(node);
-    case _tokentype.types._function:
-      if (!declaration && this.options.ecmaVersion >= 6) this.unexpected();
-      return this.parseFunctionStatement(node);
-    case _tokentype.types._class:
-      if (!declaration) this.unexpected();
-      return this.parseClass(node, true);
-    case _tokentype.types._if:
-      return this.parseIfStatement(node);
-    case _tokentype.types._return:
-      return this.parseReturnStatement(node);
-    case _tokentype.types._switch:
-      return this.parseSwitchStatement(node);
-    case _tokentype.types._throw:
-      return this.parseThrowStatement(node);
-    case _tokentype.types._try:
-      return this.parseTryStatement(node);
-    case _tokentype.types._let:case _tokentype.types._const:
-      if (!declaration) this.unexpected(); // NOTE: falls through to _var
-    case _tokentype.types._var:
-      return this.parseVarStatement(node, starttype);
-    case _tokentype.types._while:
-      return this.parseWhileStatement(node);
-    case _tokentype.types._with:
-      return this.parseWithStatement(node);
-    case _tokentype.types.braceL:
-      return this.parseBlock();
-    case _tokentype.types.semi:
-      return this.parseEmptyStatement(node);
-    case _tokentype.types._export:
-    case _tokentype.types._import:
-      if (!this.options.allowImportExportEverywhere) {
-        if (!topLevel) this.raise(this.start, "'import' and 'export' may only appear at the top level");
-        if (!this.inModule) this.raise(this.start, "'import' and 'export' may appear only with 'sourceType: module'");
-      }
-      return starttype === _tokentype.types._import ? this.parseImport(node) : this.parseExport(node);
-
-    // If the statement does not start with a statement keyword or a
-    // brace, it's an ExpressionStatement or LabeledStatement. We
-    // simply start parsing an expression, and afterwards, if the
-    // next token is a colon and the expression was a simple
-    // Identifier node, we switch to interpreting it as a label.
-    default:
-      var maybeName = this.value,
-          expr = this.parseExpression();
-      if (starttype === _tokentype.types.name && expr.type === "Identifier" && this.eat(_tokentype.types.colon)) return this.parseLabeledStatement(node, maybeName, expr);else return this.parseExpressionStatement(node, expr);
-  }
-};
-
-pp.parseBreakContinueStatement = function (node, keyword) {
-  var isBreak = keyword == "break";
-  this.next();
-  if (this.eat(_tokentype.types.semi) || this.insertSemicolon()) node.label = null;else if (this.type !== _tokentype.types.name) this.unexpected();else {
-    node.label = this.parseIdent();
-    this.semicolon();
-  }
-
-  // Verify that there is an actual destination to break or
-  // continue to.
-  for (var i = 0; i < this.labels.length; ++i) {
-    var lab = this.labels[i];
-    if (node.label == null || lab.name === node.label.name) {
-      if (lab.kind != null && (isBreak || lab.kind === "loop")) break;
-      if (node.label && isBreak) break;
-    }
-  }
-  if (i === this.labels.length) this.raise(node.start, "Unsyntactic " + keyword);
-  return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement");
-};
-
-pp.parseDebuggerStatement = function (node) {
-  this.next();
-  this.semicolon();
-  return this.finishNode(node, "DebuggerStatement");
-};
-
-pp.parseDoStatement = function (node) {
-  this.next();
-  this.labels.push(loopLabel);
-  node.body = this.parseStatement(false);
-  this.labels.pop();
-  this.expect(_tokentype.types._while);
-  node.test = this.parseParenExpression();
-  if (this.options.ecmaVersion >= 6) this.eat(_tokentype.types.semi);else this.semicolon();
-  return this.finishNode(node, "DoWhileStatement");
-};
-
-// Disambiguating between a `for` and a `for`/`in` or `for`/`of`
-// loop is non-trivial. Basically, we have to parse the init `var`
-// statement or expression, disallowing the `in` operator (see
-// the second parameter to `parseExpression`), and then check
-// whether the next token is `in` or `of`. When there is no init
-// part (semicolon immediately after the opening parenthesis), it
-// is a regular `for` loop.
-
-pp.parseForStatement = function (node) {
-  this.next();
-  this.labels.push(loopLabel);
-  this.expect(_tokentype.types.parenL);
-  if (this.type === _tokentype.types.semi) return this.parseFor(node, null);
-  if (this.type === _tokentype.types._var || this.type === _tokentype.types._let || this.type === _tokentype.types._const) {
-    var _init = this.startNode(),
-        varKind = this.type;
-    this.next();
-    this.parseVar(_init, true, varKind);
-    this.finishNode(_init, "VariableDeclaration");
-    if ((this.type === _tokentype.types._in || this.options.ecmaVersion >= 6 && this.isContextual("of")) && _init.declarations.length === 1 && !(varKind !== _tokentype.types._var && _init.declarations[0].init)) return this.parseForIn(node, _init);
-    return this.parseFor(node, _init);
-  }
-  var refDestructuringErrors = { shorthandAssign: 0, trailingComma: 0 };
-  var init = this.parseExpression(true, refDestructuringErrors);
-  if (this.type === _tokentype.types._in || this.options.ecmaVersion >= 6 && this.isContextual("of")) {
-    this.checkPatternErrors(refDestructuringErrors, true);
-    this.toAssignable(init);
-    this.checkLVal(init);
-    return this.parseForIn(node, init);
-  } else {
-    this.checkExpressionErrors(refDestructuringErrors, true);
-  }
-  return this.parseFor(node, init);
-};
-
-pp.parseFunctionStatement = function (node) {
-  this.next();
-  return this.parseFunction(node, true);
-};
-
-pp.parseIfStatement = function (node) {
-  this.next();
-  node.test = this.parseParenExpression();
-  node.consequent = this.parseStatement(false);
-  node.alternate = this.eat(_tokentype.types._else) ? this.parseStatement(false) : null;
-  return this.finishNode(node, "IfStatement");
-};
-
-pp.parseReturnStatement = function (node) {
-  if (!this.inFunction && !this.options.allowReturnOutsideFunction) this.raise(this.start, "'return' outside of function");
-  this.next();
-
-  // In `return` (and `break`/`continue`), the keywords with
-  // optional arguments, we eagerly look for a semicolon or the
-  // possibility to insert one.
-
-  if (this.eat(_tokentype.types.semi) || this.insertSemicolon()) node.argument = null;else {
-    node.argument = this.parseExpression();this.semicolon();
-  }
-  return this.finishNode(node, "ReturnStatement");
-};
-
-pp.parseSwitchStatement = function (node) {
-  this.next();
-  node.discriminant = this.parseParenExpression();
-  node.cases = [];
-  this.expect(_tokentype.types.braceL);
-  this.labels.push(switchLabel);
-
-  // Statements under must be grouped (by label) in SwitchCase
-  // nodes. `cur` is used to keep the node that we are currently
-  // adding statements to.
-
-  for (var cur, sawDefault = false; this.type != _tokentype.types.braceR;) {
-    if (this.type === _tokentype.types._case || this.type === _tokentype.types._default) {
-      var isCase = this.type === _tokentype.types._case;
-      if (cur) this.finishNode(cur, "SwitchCase");
-      node.cases.push(cur = this.startNode());
-      cur.consequent = [];
-      this.next();
-      if (isCase) {
-        cur.test = this.parseExpression();
-      } else {
-        if (sawDefault) this.raise(this.lastTokStart, "Multiple default clauses");
-        sawDefault = true;
-        cur.test = null;
-      }
-      this.expect(_tokentype.types.colon);
-    } else {
-      if (!cur) this.unexpected();
-      cur.consequent.push(this.parseStatement(true));
-    }
-  }
-  if (cur) this.finishNode(cur, "SwitchCase");
-  this.next(); // Closing brace
-  this.labels.pop();
-  return this.finishNode(node, "SwitchStatement");
-};
-
-pp.parseThrowStatement = function (node) {
-  this.next();
-  if (_whitespace.lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) this.raise(this.lastTokEnd, "Illegal newline after throw");
-  node.argument = this.parseExpression();
-  this.semicolon();
-  return this.finishNode(node, "ThrowStatement");
-};
-
-// Reused empty array added for node fields that are always empty.
-
-var empty = [];
-
-pp.parseTryStatement = function (node) {
-  this.next();
-  node.block = this.parseBlock();
-  node.handler = null;
-  if (this.type === _tokentype.types._catch) {
-    var clause = this.startNode();
-    this.next();
-    this.expect(_tokentype.types.parenL);
-    clause.param = this.parseBindingAtom();
-    this.checkLVal(clause.param, true);
-    this.expect(_tokentype.types.parenR);
-    clause.body = this.parseBlock();
-    node.handler = this.finishNode(clause, "CatchClause");
-  }
-  node.finalizer = this.eat(_tokentype.types._finally) ? this.parseBlock() : null;
-  if (!node.handler && !node.finalizer) this.raise(node.start, "Missing catch or finally clause");
-  return this.finishNode(node, "TryStatement");
-};
-
-pp.parseVarStatement = function (node, kind) {
-  this.next();
-  this.parseVar(node, false, kind);
-  this.semicolon();
-  return this.finishNode(node, "VariableDeclaration");
-};
-
-pp.parseWhileStatement = function (node) {
-  this.next();
-  node.test = this.parseParenExpression();
-  this.labels.push(loopLabel);
-  node.body = this.parseStatement(false);
-  this.labels.pop();
-  return this.finishNode(node, "WhileStatement");
-};
-
-pp.parseWithStatement = function (node) {
-  if (this.strict) this.raise(this.start, "'with' in strict mode");
-  this.next();
-  node.object = this.parseParenExpression();
-  node.body = this.parseStatement(false);
-  return this.finishNode(node, "WithStatement");
-};
-
-pp.parseEmptyStatement = function (node) {
-  this.next();
-  return this.finishNode(node, "EmptyStatement");
-};
-
-pp.parseLabeledStatement = function (node, maybeName, expr) {
-  for (var i = 0; i < this.labels.length; ++i) {
-    if (this.labels[i].name === maybeName) this.raise(expr.start, "Label '" + maybeName + "' is already declared");
-  }var kind = this.type.isLoop ? "loop" : this.type === _tokentype.types._switch ? "switch" : null;
-  for (var i = this.labels.length - 1; i >= 0; i--) {
-    var label = this.labels[i];
-    if (label.statementStart == node.start) {
-      label.statementStart = this.start;
-      label.kind = kind;
-    } else break;
-  }
-  this.labels.push({ name: maybeName, kind: kind, statementStart: this.start });
-  node.body = this.parseStatement(true);
-  this.labels.pop();
-  node.label = expr;
-  return this.finishNode(node, "LabeledStatement");
-};
-
-pp.parseExpressionStatement = function (node, expr) {
-  node.expression = expr;
-  this.semicolon();
-  return this.finishNode(node, "ExpressionStatement");
-};
-
-// Parse a semicolon-enclosed block of statements, handling `"use
-// strict"` declarations when `allowStrict` is true (used for
-// function bodies).
-
-pp.parseBlock = function (allowStrict) {
-  var node = this.startNode(),
-      first = true,
-      oldStrict = undefined;
-  node.body = [];
-  this.expect(_tokentype.types.braceL);
-  while (!this.eat(_tokentype.types.braceR)) {
-    var stmt = this.parseStatement(true);
-    node.body.push(stmt);
-    if (first && allowStrict && this.isUseStrict(stmt)) {
-      oldStrict = this.strict;
-      this.setStrict(this.strict = true);
-    }
-    first = false;
-  }
-  if (oldStrict === false) this.setStrict(false);
-  return this.finishNode(node, "BlockStatement");
-};
-
-// Parse a regular `for` loop. The disambiguation code in
-// `parseStatement` will already have parsed the init statement or
-// expression.
-
-pp.parseFor = function (node, init) {
-  node.init = init;
-  this.expect(_tokentype.types.semi);
-  node.test = this.type === _tokentype.types.semi ? null : this.parseExpression();
-  this.expect(_tokentype.types.semi);
-  node.update = this.type === _tokentype.types.parenR ? null : this.parseExpression();
-  this.expect(_tokentype.types.parenR);
-  node.body = this.parseStatement(false);
-  this.labels.pop();
-  return this.finishNode(node, "ForStatement");
-};
-
-// Parse a `for`/`in` and `for`/`of` loop, which are almost
-// same from parser's perspective.
-
-pp.parseForIn = function (node, init) {
-  var type = this.type === _tokentype.types._in ? "ForInStatement" : "ForOfStatement";
-  this.next();
-  node.left = init;
-  node.right = this.parseExpression();
-  this.expect(_tokentype.types.parenR);
-  node.body = this.parseStatement(false);
-  this.labels.pop();
-  return this.finishNode(node, type);
-};
-
-// Parse a list of variable declarations.
-
-pp.parseVar = function (node, isFor, kind) {
-  node.declarations = [];
-  node.kind = kind.keyword;
-  for (;;) {
-    var decl = this.startNode();
-    this.parseVarId(decl);
-    if (this.eat(_tokentype.types.eq)) {
-      decl.init = this.parseMaybeAssign(isFor);
-    } else if (kind === _tokentype.types._const && !(this.type === _tokentype.types._in || this.options.ecmaVersion >= 6 && this.isContextual("of"))) {
-      this.unexpected();
-    } else if (decl.id.type != "Identifier" && !(isFor && (this.type === _tokentype.types._in || this.isContextual("of")))) {
-      this.raise(this.lastTokEnd, "Complex binding patterns require an initialization value");
-    } else {
-      decl.init = null;
-    }
-    node.declarations.push(this.finishNode(decl, "VariableDeclarator"));
-    if (!this.eat(_tokentype.types.comma)) break;
-  }
-  return node;
-};
-
-pp.parseVarId = function (decl) {
-  decl.id = this.parseBindingAtom();
-  this.checkLVal(decl.id, true);
-};
-
-// Parse a function declaration or literal (depending on the
-// `isStatement` parameter).
-
-pp.parseFunction = function (node, isStatement, allowExpressionBody) {
-  this.initFunction(node);
-  if (this.options.ecmaVersion >= 6) node.generator = this.eat(_tokentype.types.star);
-  if (isStatement || this.type === _tokentype.types.name) node.id = this.parseIdent();
-  this.parseFunctionParams(node);
-  this.parseFunctionBody(node, allowExpressionBody);
-  return this.finishNode(node, isStatement ? "FunctionDeclaration" : "FunctionExpression");
-};
-
-pp.parseFunctionParams = function (node) {
-  this.expect(_tokentype.types.parenL);
-  node.params = this.parseBindingList(_tokentype.types.parenR, false, false, true);
-};
-
-// Parse a class declaration or literal (depending on the
-// `isStatement` parameter).
-
-pp.parseClass = function (node, isStatement) {
-  this.next();
-  this.parseClassId(node, isStatement);
-  this.parseClassSuper(node);
-  var classBody = this.startNode();
-  var hadConstructor = false;
-  classBody.body = [];
-  this.expect(_tokentype.types.braceL);
-  while (!this.eat(_tokentype.types.braceR)) {
-    if (this.eat(_tokentype.types.semi)) continue;
-    var method = this.startNode();
-    var isGenerator = this.eat(_tokentype.types.star);
-    var isMaybeStatic = this.type === _tokentype.types.name && this.value === "static";
-    this.parsePropertyName(method);
-    method["static"] = isMaybeStatic && this.type !== _tokentype.types.parenL;
-    if (method["static"]) {
-      if (isGenerator) this.unexpected();
-      isGenerator = this.eat(_tokentype.types.star);
-      this.parsePropertyName(method);
-    }
-    method.kind = "method";
-    var isGetSet = false;
-    if (!method.computed) {
-      var key = method.key;
-
-      if (!isGenerator && key.type === "Identifier" && this.type !== _tokentype.types.parenL && (key.name === "get" || key.name === "set")) {
-        isGetSet = true;
-        method.kind = key.name;
-        key = this.parsePropertyName(method);
-      }
-      if (!method["static"] && (key.type === "Identifier" && key.name === "constructor" || key.type === "Literal" && key.value === "constructor")) {
-        if (hadConstructor) this.raise(key.start, "Duplicate constructor in the same class");
-        if (isGetSet) this.raise(key.start, "Constructor can't have get/set modifier");
-        if (isGenerator) this.raise(key.start, "Constructor can't be a generator");
-        method.kind = "constructor";
-        hadConstructor = true;
-      }
-    }
-    this.parseClassMethod(classBody, method, isGenerator);
-    if (isGetSet) {
-      var paramCount = method.kind === "get" ? 0 : 1;
-      if (method.value.params.length !== paramCount) {
-        var start = method.value.start;
-        if (method.kind === "get") this.raise(start, "getter should have no params");else this.raise(start, "setter should have exactly one param");
-      }
-      if (method.kind === "set" && method.value.params[0].type === "RestElement") this.raise(method.value.params[0].start, "Setter cannot use rest params");
-    }
-  }
-  node.body = this.finishNode(classBody, "ClassBody");
-  return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression");
-};
-
-pp.parseClassMethod = function (classBody, method, isGenerator) {
-  method.value = this.parseMethod(isGenerator);
-  classBody.body.push(this.finishNode(method, "MethodDefinition"));
-};
-
-pp.parseClassId = function (node, isStatement) {
-  node.id = this.type === _tokentype.types.name ? this.parseIdent() : isStatement ? this.unexpected() : null;
-};
-
-pp.parseClassSuper = function (node) {
-  node.superClass = this.eat(_tokentype.types._extends) ? this.parseExprSubscripts() : null;
-};
-
-// Parses module export declaration.
-
-pp.parseExport = function (node) {
-  this.next();
-  // export * from '...'
-  if (this.eat(_tokentype.types.star)) {
-    this.expectContextual("from");
-    node.source = this.type === _tokentype.types.string ? this.parseExprAtom() : this.unexpected();
-    this.semicolon();
-    return this.finishNode(node, "ExportAllDeclaration");
-  }
-  if (this.eat(_tokentype.types._default)) {
-    // export default ...
-    var expr = this.parseMaybeAssign();
-    var needsSemi = true;
-    if (expr.type == "FunctionExpression" || expr.type == "ClassExpression") {
-      needsSemi = false;
-      if (expr.id) {
-        expr.type = expr.type == "FunctionExpression" ? "FunctionDeclaration" : "ClassDeclaration";
-      }
-    }
-    node.declaration = expr;
-    if (needsSemi) this.semicolon();
-    return this.finishNode(node, "ExportDefaultDeclaration");
-  }
-  // export var|const|let|function|class ...
-  if (this.shouldParseExportStatement()) {
-    node.declaration = this.parseStatement(true);
-    node.specifiers = [];
-    node.source = null;
-  } else {
-    // export { x, y as z } [from '...']
-    node.declaration = null;
-    node.specifiers = this.parseExportSpecifiers();
-    if (this.eatContextual("from")) {
-      node.source = this.type === _tokentype.types.string ? this.parseExprAtom() : this.unexpected();
-    } else {
-      // check for keywords used as local names
-      for (var i = 0; i < node.specifiers.length; i++) {
-        if (this.keywords.test(node.specifiers[i].local.name) || this.reservedWords.test(node.specifiers[i].local.name)) {
-          this.unexpected(node.specifiers[i].local.start);
-        }
-      }
-
-      node.source = null;
-    }
-    this.semicolon();
-  }
-  return this.finishNode(node, "ExportNamedDeclaration");
-};
-
-pp.shouldParseExportStatement = function () {
-  return this.type.keyword;
-};
-
-// Parses a comma-separated list of module exports.
-
-pp.parseExportSpecifiers = function () {
-  var nodes = [],
-      first = true;
-  // export { x, y as z } [from '...']
-  this.expect(_tokentype.types.braceL);
-  while (!this.eat(_tokentype.types.braceR)) {
-    if (!first) {
-      this.expect(_tokentype.types.comma);
-      if (this.afterTrailingComma(_tokentype.types.braceR)) break;
-    } else first = false;
-
-    var node = this.startNode();
-    node.local = this.parseIdent(this.type === _tokentype.types._default);
-    node.exported = this.eatContextual("as") ? this.parseIdent(true) : node.local;
-    nodes.push(this.finishNode(node, "ExportSpecifier"));
-  }
-  return nodes;
-};
-
-// Parses import declaration.
-
-pp.parseImport = function (node) {
-  this.next();
-  // import '...'
-  if (this.type === _tokentype.types.string) {
-    node.specifiers = empty;
-    node.source = this.parseExprAtom();
-  } else {
-    node.specifiers = this.parseImportSpecifiers();
-    this.expectContextual("from");
-    node.source = this.type === _tokentype.types.string ? this.parseExprAtom() : this.unexpected();
-  }
-  this.semicolon();
-  return this.finishNode(node, "ImportDeclaration");
-};
-
-// Parses a comma-separated list of module imports.
-
-pp.parseImportSpecifiers = function () {
-  var nodes = [],
-      first = true;
-  if (this.type === _tokentype.types.name) {
-    // import defaultObj, { x, y as z } from '...'
-    var node = this.startNode();
-    node.local = this.parseIdent();
-    this.checkLVal(node.local, true);
-    nodes.push(this.finishNode(node, "ImportDefaultSpecifier"));
-    if (!this.eat(_tokentype.types.comma)) return nodes;
-  }
-  if (this.type === _tokentype.types.star) {
-    var node = this.startNode();
-    this.next();
-    this.expectContextual("as");
-    node.local = this.parseIdent();
-    this.checkLVal(node.local, true);
-    nodes.push(this.finishNode(node, "ImportNamespaceSpecifier"));
-    return nodes;
-  }
-  this.expect(_tokentype.types.braceL);
-  while (!this.eat(_tokentype.types.braceR)) {
-    if (!first) {
-      this.expect(_tokentype.types.comma);
-      if (this.afterTrailingComma(_tokentype.types.braceR)) break;
-    } else first = false;
-
-    var node = this.startNode();
-    node.imported = this.parseIdent(true);
-    if (this.eatContextual("as")) {
-      node.local = this.parseIdent();
-    } else {
-      node.local = node.imported;
-      if (this.isKeyword(node.local.name)) this.unexpected(node.local.start);
-      if (this.reservedWordsStrict.test(node.local.name)) this.raise(node.local.start, "The keyword '" + node.local.name + "' is reserved");
-    }
-    this.checkLVal(node.local, true);
-    nodes.push(this.finishNode(node, "ImportSpecifier"));
-  }
-  return nodes;
-};
-
-},{"./state":10,"./tokentype":14,"./whitespace":16}],12:[function(_dereq_,module,exports){
-// The algorithm used to determine whether a regexp can appear at a
-// given point in the program is loosely based on sweet.js' approach.
-// See https://github.com/mozilla/sweet.js/wiki/design
-
-"use strict";
-
-exports.__esModule = true;
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-var _state = _dereq_("./state");
-
-var _tokentype = _dereq_("./tokentype");
-
-var _whitespace = _dereq_("./whitespace");
-
-var TokContext = function TokContext(token, isExpr, preserveSpace, override) {
-  _classCallCheck(this, TokContext);
-
-  this.token = token;
-  this.isExpr = !!isExpr;
-  this.preserveSpace = !!preserveSpace;
-  this.override = override;
-};
-
-exports.TokContext = TokContext;
-var types = {
-  b_stat: new TokContext("{", false),
-  b_expr: new TokContext("{", true),
-  b_tmpl: new TokContext("${", true),
-  p_stat: new TokContext("(", false),
-  p_expr: new TokContext("(", true),
-  q_tmpl: new TokContext("`", true, true, function (p) {
-    return p.readTmplToken();
-  }),
-  f_expr: new TokContext("function", true)
-};
-
-exports.types = types;
-var pp = _state.Parser.prototype;
-
-pp.initialContext = function () {
-  return [types.b_stat];
-};
-
-pp.braceIsBlock = function (prevType) {
-  if (prevType === _tokentype.types.colon) {
-    var _parent = this.curContext();
-    if (_parent === types.b_stat || _parent === types.b_expr) return !_parent.isExpr;
-  }
-  if (prevType === _tokentype.types._return) return _whitespace.lineBreak.test(this.input.slice(this.lastTokEnd, this.start));
-  if (prevType === _tokentype.types._else || prevType === _tokentype.types.semi || prevType === _tokentype.types.eof || prevType === _tokentype.types.parenR) return true;
-  if (prevType == _tokentype.types.br

<TRUNCATED>


[11/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/co/index.js
----------------------------------------------------------------------
diff --git a/node_modules/co/index.js b/node_modules/co/index.js
deleted file mode 100644
index 87ba8ba..0000000
--- a/node_modules/co/index.js
+++ /dev/null
@@ -1,237 +0,0 @@
-
-/**
- * slice() reference.
- */
-
-var slice = Array.prototype.slice;
-
-/**
- * Expose `co`.
- */
-
-module.exports = co['default'] = co.co = co;
-
-/**
- * Wrap the given generator `fn` into a
- * function that returns a promise.
- * This is a separate function so that
- * every `co()` call doesn't create a new,
- * unnecessary closure.
- *
- * @param {GeneratorFunction} fn
- * @return {Function}
- * @api public
- */
-
-co.wrap = function (fn) {
-  createPromise.__generatorFunction__ = fn;
-  return createPromise;
-  function createPromise() {
-    return co.call(this, fn.apply(this, arguments));
-  }
-};
-
-/**
- * Execute the generator function or a generator
- * and return a promise.
- *
- * @param {Function} fn
- * @return {Promise}
- * @api public
- */
-
-function co(gen) {
-  var ctx = this;
-  var args = slice.call(arguments, 1)
-
-  // we wrap everything in a promise to avoid promise chaining,
-  // which leads to memory leak errors.
-  // see https://github.com/tj/co/issues/180
-  return new Promise(function(resolve, reject) {
-    if (typeof gen === 'function') gen = gen.apply(ctx, args);
-    if (!gen || typeof gen.next !== 'function') return resolve(gen);
-
-    onFulfilled();
-
-    /**
-     * @param {Mixed} res
-     * @return {Promise}
-     * @api private
-     */
-
-    function onFulfilled(res) {
-      var ret;
-      try {
-        ret = gen.next(res);
-      } catch (e) {
-        return reject(e);
-      }
-      next(ret);
-    }
-
-    /**
-     * @param {Error} err
-     * @return {Promise}
-     * @api private
-     */
-
-    function onRejected(err) {
-      var ret;
-      try {
-        ret = gen.throw(err);
-      } catch (e) {
-        return reject(e);
-      }
-      next(ret);
-    }
-
-    /**
-     * Get the next value in the generator,
-     * return a promise.
-     *
-     * @param {Object} ret
-     * @return {Promise}
-     * @api private
-     */
-
-    function next(ret) {
-      if (ret.done) return resolve(ret.value);
-      var value = toPromise.call(ctx, ret.value);
-      if (value && isPromise(value)) return value.then(onFulfilled, onRejected);
-      return onRejected(new TypeError('You may only yield a function, promise, generator, array, or object, '
-        + 'but the following object was passed: "' + String(ret.value) + '"'));
-    }
-  });
-}
-
-/**
- * Convert a `yield`ed value into a promise.
- *
- * @param {Mixed} obj
- * @return {Promise}
- * @api private
- */
-
-function toPromise(obj) {
-  if (!obj) return obj;
-  if (isPromise(obj)) return obj;
-  if (isGeneratorFunction(obj) || isGenerator(obj)) return co.call(this, obj);
-  if ('function' == typeof obj) return thunkToPromise.call(this, obj);
-  if (Array.isArray(obj)) return arrayToPromise.call(this, obj);
-  if (isObject(obj)) return objectToPromise.call(this, obj);
-  return obj;
-}
-
-/**
- * Convert a thunk to a promise.
- *
- * @param {Function}
- * @return {Promise}
- * @api private
- */
-
-function thunkToPromise(fn) {
-  var ctx = this;
-  return new Promise(function (resolve, reject) {
-    fn.call(ctx, function (err, res) {
-      if (err) return reject(err);
-      if (arguments.length > 2) res = slice.call(arguments, 1);
-      resolve(res);
-    });
-  });
-}
-
-/**
- * Convert an array of "yieldables" to a promise.
- * Uses `Promise.all()` internally.
- *
- * @param {Array} obj
- * @return {Promise}
- * @api private
- */
-
-function arrayToPromise(obj) {
-  return Promise.all(obj.map(toPromise, this));
-}
-
-/**
- * Convert an object of "yieldables" to a promise.
- * Uses `Promise.all()` internally.
- *
- * @param {Object} obj
- * @return {Promise}
- * @api private
- */
-
-function objectToPromise(obj){
-  var results = new obj.constructor();
-  var keys = Object.keys(obj);
-  var promises = [];
-  for (var i = 0; i < keys.length; i++) {
-    var key = keys[i];
-    var promise = toPromise.call(this, obj[key]);
-    if (promise && isPromise(promise)) defer(promise, key);
-    else results[key] = obj[key];
-  }
-  return Promise.all(promises).then(function () {
-    return results;
-  });
-
-  function defer(promise, key) {
-    // predefine the key in the result
-    results[key] = undefined;
-    promises.push(promise.then(function (res) {
-      results[key] = res;
-    }));
-  }
-}
-
-/**
- * Check if `obj` is a promise.
- *
- * @param {Object} obj
- * @return {Boolean}
- * @api private
- */
-
-function isPromise(obj) {
-  return 'function' == typeof obj.then;
-}
-
-/**
- * Check if `obj` is a generator.
- *
- * @param {Mixed} obj
- * @return {Boolean}
- * @api private
- */
-
-function isGenerator(obj) {
-  return 'function' == typeof obj.next && 'function' == typeof obj.throw;
-}
-
-/**
- * Check if `obj` is a generator function.
- *
- * @param {Mixed} obj
- * @return {Boolean}
- * @api private
- */
-function isGeneratorFunction(obj) {
-  var constructor = obj.constructor;
-  if (!constructor) return false;
-  if ('GeneratorFunction' === constructor.name || 'GeneratorFunction' === constructor.displayName) return true;
-  return isGenerator(constructor.prototype);
-}
-
-/**
- * Check for plain object.
- *
- * @param {Mixed} val
- * @return {Boolean}
- * @api private
- */
-
-function isObject(val) {
-  return Object == val.constructor;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/co/package.json
----------------------------------------------------------------------
diff --git a/node_modules/co/package.json b/node_modules/co/package.json
deleted file mode 100644
index f02994d..0000000
--- a/node_modules/co/package.json
+++ /dev/null
@@ -1,107 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "co@^4.6.0",
-        "scope": null,
-        "escapedName": "co",
-        "name": "co",
-        "rawSpec": "^4.6.0",
-        "spec": ">=4.6.0 <5.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/ajv"
-    ]
-  ],
-  "_from": "co@>=4.6.0 <5.0.0",
-  "_id": "co@4.6.0",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/co",
-  "_nodeVersion": "2.3.3",
-  "_npmUser": {
-    "name": "jongleberry",
-    "email": "jonathanrichardong@gmail.com"
-  },
-  "_npmVersion": "2.11.3",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "co@^4.6.0",
-    "scope": null,
-    "escapedName": "co",
-    "name": "co",
-    "rawSpec": "^4.6.0",
-    "spec": ">=4.6.0 <5.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/ajv"
-  ],
-  "_resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
-  "_shasum": "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184",
-  "_shrinkwrap": null,
-  "_spec": "co@^4.6.0",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/ajv",
-  "bugs": {
-    "url": "https://github.com/tj/co/issues"
-  },
-  "dependencies": {},
-  "description": "generator async control flow goodness",
-  "devDependencies": {
-    "browserify": "^10.0.0",
-    "istanbul-harmony": "0",
-    "mocha": "^2.0.0",
-    "mz": "^1.0.2"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184",
-    "tarball": "https://registry.npmjs.org/co/-/co-4.6.0.tgz"
-  },
-  "engines": {
-    "iojs": ">= 1.0.0",
-    "node": ">= 0.12.0"
-  },
-  "files": [
-    "index.js"
-  ],
-  "gitHead": "b54d18f8f472ad1314800e786993c4169a5ff9f8",
-  "homepage": "https://github.com/tj/co#readme",
-  "keywords": [
-    "async",
-    "flow",
-    "generator",
-    "coro",
-    "coroutine"
-  ],
-  "license": "MIT",
-  "maintainers": [
-    {
-      "name": "tjholowaychuk",
-      "email": "tj@vision-media.ca"
-    },
-    {
-      "name": "jonathanong",
-      "email": "jonathanrichardong@gmail.com"
-    },
-    {
-      "name": "jongleberry",
-      "email": "jonathanrichardong@gmail.com"
-    }
-  ],
-  "name": "co",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/tj/co.git"
-  },
-  "scripts": {
-    "browserify": "browserify index.js -o ./co-browser.js -s co",
-    "prepublish": "npm run browserify",
-    "test": "mocha --harmony",
-    "test-cov": "node --harmony node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- --reporter dot",
-    "test-travis": "node --harmony node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha --report lcovonly -- --reporter dot"
-  },
-  "version": "4.6.0"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/code-point-at/index.js
----------------------------------------------------------------------
diff --git a/node_modules/code-point-at/index.js b/node_modules/code-point-at/index.js
deleted file mode 100644
index 0432fe6..0000000
--- a/node_modules/code-point-at/index.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/* eslint-disable babel/new-cap, xo/throw-new-error */
-'use strict';
-module.exports = function (str, pos) {
-	if (str === null || str === undefined) {
-		throw TypeError();
-	}
-
-	str = String(str);
-
-	var size = str.length;
-	var i = pos ? Number(pos) : 0;
-
-	if (Number.isNaN(i)) {
-		i = 0;
-	}
-
-	if (i < 0 || i >= size) {
-		return undefined;
-	}
-
-	var first = str.charCodeAt(i);
-
-	if (first >= 0xD800 && first <= 0xDBFF && size > i + 1) {
-		var second = str.charCodeAt(i + 1);
-
-		if (second >= 0xDC00 && second <= 0xDFFF) {
-			return ((first - 0xD800) * 0x400) + second - 0xDC00 + 0x10000;
-		}
-	}
-
-	return first;
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/code-point-at/license
----------------------------------------------------------------------
diff --git a/node_modules/code-point-at/license b/node_modules/code-point-at/license
deleted file mode 100644
index 654d0bf..0000000
--- a/node_modules/code-point-at/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <si...@gmail.com> (sindresorhus.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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/code-point-at/package.json
----------------------------------------------------------------------
diff --git a/node_modules/code-point-at/package.json b/node_modules/code-point-at/package.json
deleted file mode 100644
index 5508429..0000000
--- a/node_modules/code-point-at/package.json
+++ /dev/null
@@ -1,107 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "code-point-at@^1.0.0",
-        "scope": null,
-        "escapedName": "code-point-at",
-        "name": "code-point-at",
-        "rawSpec": "^1.0.0",
-        "spec": ">=1.0.0 <2.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/string-width"
-    ]
-  ],
-  "_from": "code-point-at@>=1.0.0 <2.0.0",
-  "_id": "code-point-at@1.1.0",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/code-point-at",
-  "_nodeVersion": "4.6.1",
-  "_npmOperationalInternal": {
-    "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/code-point-at-1.1.0.tgz_1478169780337_0.8445875702891499"
-  },
-  "_npmUser": {
-    "name": "sindresorhus",
-    "email": "sindresorhus@gmail.com"
-  },
-  "_npmVersion": "2.15.9",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "code-point-at@^1.0.0",
-    "scope": null,
-    "escapedName": "code-point-at",
-    "name": "code-point-at",
-    "rawSpec": "^1.0.0",
-    "spec": ">=1.0.0 <2.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/string-width"
-  ],
-  "_resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
-  "_shasum": "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77",
-  "_shrinkwrap": null,
-  "_spec": "code-point-at@^1.0.0",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/string-width",
-  "author": {
-    "name": "Sindre Sorhus",
-    "email": "sindresorhus@gmail.com",
-    "url": "sindresorhus.com"
-  },
-  "bugs": {
-    "url": "https://github.com/sindresorhus/code-point-at/issues"
-  },
-  "dependencies": {},
-  "description": "ES2015 `String#codePointAt()` ponyfill",
-  "devDependencies": {
-    "ava": "*",
-    "xo": "^0.16.0"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77",
-    "tarball": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz"
-  },
-  "engines": {
-    "node": ">=0.10.0"
-  },
-  "files": [
-    "index.js"
-  ],
-  "gitHead": "f8f21c8df2d40248fef1b36ca9076e59c0c34791",
-  "homepage": "https://github.com/sindresorhus/code-point-at#readme",
-  "keywords": [
-    "es2015",
-    "ponyfill",
-    "polyfill",
-    "shim",
-    "string",
-    "str",
-    "code",
-    "point",
-    "at",
-    "codepoint",
-    "unicode"
-  ],
-  "license": "MIT",
-  "maintainers": [
-    {
-      "name": "sindresorhus",
-      "email": "sindresorhus@gmail.com"
-    }
-  ],
-  "name": "code-point-at",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/sindresorhus/code-point-at.git"
-  },
-  "scripts": {
-    "test": "xo && ava"
-  },
-  "version": "1.1.0"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/code-point-at/readme.md
----------------------------------------------------------------------
diff --git a/node_modules/code-point-at/readme.md b/node_modules/code-point-at/readme.md
deleted file mode 100644
index 4c97730..0000000
--- a/node_modules/code-point-at/readme.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# code-point-at [![Build Status](https://travis-ci.org/sindresorhus/code-point-at.svg?branch=master)](https://travis-ci.org/sindresorhus/code-point-at)
-
-> ES2015 [`String#codePointAt()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/codePointAt) [ponyfill](https://ponyfill.com)
-
-
-## Install
-
-```
-$ npm install --save code-point-at
-```
-
-
-## Usage
-
-```js
-var codePointAt = require('code-point-at');
-
-codePointAt('🐴');
-//=> 128052
-
-codePointAt('abc', 2);
-//=> 99
-```
-
-## API
-
-### codePointAt(input, [position])
-
-
-## License
-
-MIT © [Sindre Sorhus](https://sindresorhus.com)

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/combined-stream/License
----------------------------------------------------------------------
diff --git a/node_modules/combined-stream/License b/node_modules/combined-stream/License
deleted file mode 100644
index 4804b7a..0000000
--- a/node_modules/combined-stream/License
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2011 Debuggable Limited <fe...@debuggable.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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/combined-stream/Readme.md
----------------------------------------------------------------------
diff --git a/node_modules/combined-stream/Readme.md b/node_modules/combined-stream/Readme.md
deleted file mode 100644
index 3a9e025..0000000
--- a/node_modules/combined-stream/Readme.md
+++ /dev/null
@@ -1,138 +0,0 @@
-# combined-stream
-
-A stream that emits multiple other streams one after another.
-
-**NB** Currently `combined-stream` works with streams vesrion 1 only. There is ongoing effort to switch this library to streams version 2. Any help is welcome. :) Meanwhile you can explore other libraries that provide streams2 support with more or less compatability with `combined-stream`.
-
-- [combined-stream2](https://www.npmjs.com/package/combined-stream2): A drop-in streams2-compatible replacement for the combined-stream module.
-
-- [multistream](https://www.npmjs.com/package/multistream): A stream that emits multiple other streams one after another.
-
-## Installation
-
-``` bash
-npm install combined-stream
-```
-
-## Usage
-
-Here is a simple example that shows how you can use combined-stream to combine
-two files into one:
-
-``` javascript
-var CombinedStream = require('combined-stream');
-var fs = require('fs');
-
-var combinedStream = CombinedStream.create();
-combinedStream.append(fs.createReadStream('file1.txt'));
-combinedStream.append(fs.createReadStream('file2.txt'));
-
-combinedStream.pipe(fs.createWriteStream('combined.txt'));
-```
-
-While the example above works great, it will pause all source streams until
-they are needed. If you don't want that to happen, you can set `pauseStreams`
-to `false`:
-
-``` javascript
-var CombinedStream = require('combined-stream');
-var fs = require('fs');
-
-var combinedStream = CombinedStream.create({pauseStreams: false});
-combinedStream.append(fs.createReadStream('file1.txt'));
-combinedStream.append(fs.createReadStream('file2.txt'));
-
-combinedStream.pipe(fs.createWriteStream('combined.txt'));
-```
-
-However, what if you don't have all the source streams yet, or you don't want
-to allocate the resources (file descriptors, memory, etc.) for them right away?
-Well, in that case you can simply provide a callback that supplies the stream
-by calling a `next()` function:
-
-``` javascript
-var CombinedStream = require('combined-stream');
-var fs = require('fs');
-
-var combinedStream = CombinedStream.create();
-combinedStream.append(function(next) {
-  next(fs.createReadStream('file1.txt'));
-});
-combinedStream.append(function(next) {
-  next(fs.createReadStream('file2.txt'));
-});
-
-combinedStream.pipe(fs.createWriteStream('combined.txt'));
-```
-
-## API
-
-### CombinedStream.create([options])
-
-Returns a new combined stream object. Available options are:
-
-* `maxDataSize`
-* `pauseStreams`
-
-The effect of those options is described below.
-
-### combinedStream.pauseStreams = `true`
-
-Whether to apply back pressure to the underlaying streams. If set to `false`,
-the underlaying streams will never be paused. If set to `true`, the
-underlaying streams will be paused right after being appended, as well as when
-`delayedStream.pipe()` wants to throttle.
-
-### combinedStream.maxDataSize = `2 * 1024 * 1024`
-
-The maximum amount of bytes (or characters) to buffer for all source streams.
-If this value is exceeded, `combinedStream` emits an `'error'` event.
-
-### combinedStream.dataSize = `0`
-
-The amount of bytes (or characters) currently buffered by `combinedStream`.
-
-### combinedStream.append(stream)
-
-Appends the given `stream` to the combinedStream object. If `pauseStreams` is
-set to `true, this stream will also be paused right away.
-
-`streams` can also be a function that takes one parameter called `next`. `next`
-is a function that must be invoked in order to provide the `next` stream, see
-example above.
-
-Regardless of how the `stream` is appended, combined-stream always attaches an
-`'error'` listener to it, so you don't have to do that manually.
-
-Special case: `stream` can also be a String or Buffer.
-
-### combinedStream.write(data)
-
-You should not call this, `combinedStream` takes care of piping the appended
-streams into itself for you.
-
-### combinedStream.resume()
-
-Causes `combinedStream` to start drain the streams it manages. The function is
-idempotent, and also emits a `'resume'` event each time which usually goes to
-the stream that is currently being drained.
-
-### combinedStream.pause();
-
-If `combinedStream.pauseStreams` is set to `false`, this does nothing.
-Otherwise a `'pause'` event is emitted, this goes to the stream that is
-currently being drained, so you can use it to apply back pressure.
-
-### combinedStream.end();
-
-Sets `combinedStream.writable` to false, emits an `'end'` event, and removes
-all streams from the queue.
-
-### combinedStream.destroy();
-
-Same as `combinedStream.end()`, except it emits a `'close'` event instead of
-`'end'`.
-
-## License
-
-combined-stream is licensed under the MIT license.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/combined-stream/lib/combined_stream.js
----------------------------------------------------------------------
diff --git a/node_modules/combined-stream/lib/combined_stream.js b/node_modules/combined-stream/lib/combined_stream.js
deleted file mode 100644
index 6b5c21b..0000000
--- a/node_modules/combined-stream/lib/combined_stream.js
+++ /dev/null
@@ -1,188 +0,0 @@
-var util = require('util');
-var Stream = require('stream').Stream;
-var DelayedStream = require('delayed-stream');
-
-module.exports = CombinedStream;
-function CombinedStream() {
-  this.writable = false;
-  this.readable = true;
-  this.dataSize = 0;
-  this.maxDataSize = 2 * 1024 * 1024;
-  this.pauseStreams = true;
-
-  this._released = false;
-  this._streams = [];
-  this._currentStream = null;
-}
-util.inherits(CombinedStream, Stream);
-
-CombinedStream.create = function(options) {
-  var combinedStream = new this();
-
-  options = options || {};
-  for (var option in options) {
-    combinedStream[option] = options[option];
-  }
-
-  return combinedStream;
-};
-
-CombinedStream.isStreamLike = function(stream) {
-  return (typeof stream !== 'function')
-    && (typeof stream !== 'string')
-    && (typeof stream !== 'boolean')
-    && (typeof stream !== 'number')
-    && (!Buffer.isBuffer(stream));
-};
-
-CombinedStream.prototype.append = function(stream) {
-  var isStreamLike = CombinedStream.isStreamLike(stream);
-
-  if (isStreamLike) {
-    if (!(stream instanceof DelayedStream)) {
-      var newStream = DelayedStream.create(stream, {
-        maxDataSize: Infinity,
-        pauseStream: this.pauseStreams,
-      });
-      stream.on('data', this._checkDataSize.bind(this));
-      stream = newStream;
-    }
-
-    this._handleErrors(stream);
-
-    if (this.pauseStreams) {
-      stream.pause();
-    }
-  }
-
-  this._streams.push(stream);
-  return this;
-};
-
-CombinedStream.prototype.pipe = function(dest, options) {
-  Stream.prototype.pipe.call(this, dest, options);
-  this.resume();
-  return dest;
-};
-
-CombinedStream.prototype._getNext = function() {
-  this._currentStream = null;
-  var stream = this._streams.shift();
-
-
-  if (typeof stream == 'undefined') {
-    this.end();
-    return;
-  }
-
-  if (typeof stream !== 'function') {
-    this._pipeNext(stream);
-    return;
-  }
-
-  var getStream = stream;
-  getStream(function(stream) {
-    var isStreamLike = CombinedStream.isStreamLike(stream);
-    if (isStreamLike) {
-      stream.on('data', this._checkDataSize.bind(this));
-      this._handleErrors(stream);
-    }
-
-    this._pipeNext(stream);
-  }.bind(this));
-};
-
-CombinedStream.prototype._pipeNext = function(stream) {
-  this._currentStream = stream;
-
-  var isStreamLike = CombinedStream.isStreamLike(stream);
-  if (isStreamLike) {
-    stream.on('end', this._getNext.bind(this));
-    stream.pipe(this, {end: false});
-    return;
-  }
-
-  var value = stream;
-  this.write(value);
-  this._getNext();
-};
-
-CombinedStream.prototype._handleErrors = function(stream) {
-  var self = this;
-  stream.on('error', function(err) {
-    self._emitError(err);
-  });
-};
-
-CombinedStream.prototype.write = function(data) {
-  this.emit('data', data);
-};
-
-CombinedStream.prototype.pause = function() {
-  if (!this.pauseStreams) {
-    return;
-  }
-
-  if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause();
-  this.emit('pause');
-};
-
-CombinedStream.prototype.resume = function() {
-  if (!this._released) {
-    this._released = true;
-    this.writable = true;
-    this._getNext();
-  }
-
-  if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume();
-  this.emit('resume');
-};
-
-CombinedStream.prototype.end = function() {
-  this._reset();
-  this.emit('end');
-};
-
-CombinedStream.prototype.destroy = function() {
-  this._reset();
-  this.emit('close');
-};
-
-CombinedStream.prototype._reset = function() {
-  this.writable = false;
-  this._streams = [];
-  this._currentStream = null;
-};
-
-CombinedStream.prototype._checkDataSize = function() {
-  this._updateDataSize();
-  if (this.dataSize <= this.maxDataSize) {
-    return;
-  }
-
-  var message =
-    'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.';
-  this._emitError(new Error(message));
-};
-
-CombinedStream.prototype._updateDataSize = function() {
-  this.dataSize = 0;
-
-  var self = this;
-  this._streams.forEach(function(stream) {
-    if (!stream.dataSize) {
-      return;
-    }
-
-    self.dataSize += stream.dataSize;
-  });
-
-  if (this._currentStream && this._currentStream.dataSize) {
-    this.dataSize += this._currentStream.dataSize;
-  }
-};
-
-CombinedStream.prototype._emitError = function(err) {
-  this._reset();
-  this.emit('error', err);
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/combined-stream/package.json
----------------------------------------------------------------------
diff --git a/node_modules/combined-stream/package.json b/node_modules/combined-stream/package.json
deleted file mode 100644
index 68dcf80..0000000
--- a/node_modules/combined-stream/package.json
+++ /dev/null
@@ -1,102 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "combined-stream@~1.0.5",
-        "scope": null,
-        "escapedName": "combined-stream",
-        "name": "combined-stream",
-        "rawSpec": "~1.0.5",
-        "spec": ">=1.0.5 <1.1.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/request"
-    ]
-  ],
-  "_from": "combined-stream@>=1.0.5 <1.1.0",
-  "_id": "combined-stream@1.0.5",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/combined-stream",
-  "_nodeVersion": "0.12.4",
-  "_npmUser": {
-    "name": "alexindigo",
-    "email": "iam@alexindigo.com"
-  },
-  "_npmVersion": "2.10.1",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "combined-stream@~1.0.5",
-    "scope": null,
-    "escapedName": "combined-stream",
-    "name": "combined-stream",
-    "rawSpec": "~1.0.5",
-    "spec": ">=1.0.5 <1.1.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/form-data",
-    "/request"
-  ],
-  "_resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
-  "_shasum": "938370a57b4a51dea2c77c15d5c5fdf895164009",
-  "_shrinkwrap": null,
-  "_spec": "combined-stream@~1.0.5",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/request",
-  "author": {
-    "name": "Felix Geisendörfer",
-    "email": "felix@debuggable.com",
-    "url": "http://debuggable.com/"
-  },
-  "bugs": {
-    "url": "https://github.com/felixge/node-combined-stream/issues"
-  },
-  "dependencies": {
-    "delayed-stream": "~1.0.0"
-  },
-  "description": "A stream that emits multiple other streams one after another.",
-  "devDependencies": {
-    "far": "~0.0.7"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "938370a57b4a51dea2c77c15d5c5fdf895164009",
-    "tarball": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz"
-  },
-  "engines": {
-    "node": ">= 0.8"
-  },
-  "gitHead": "cfc7b815d090a109bcedb5bb0f6713148d55a6b7",
-  "homepage": "https://github.com/felixge/node-combined-stream",
-  "license": "MIT",
-  "main": "./lib/combined_stream",
-  "maintainers": [
-    {
-      "name": "felixge",
-      "email": "felix@debuggable.com"
-    },
-    {
-      "name": "celer",
-      "email": "dtyree77@gmail.com"
-    },
-    {
-      "name": "alexindigo",
-      "email": "iam@alexindigo.com"
-    },
-    {
-      "name": "apechimp",
-      "email": "apeherder@gmail.com"
-    }
-  ],
-  "name": "combined-stream",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/felixge/node-combined-stream.git"
-  },
-  "scripts": {
-    "test": "node test/run.js"
-  },
-  "version": "1.0.5"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/compressible/HISTORY.md
----------------------------------------------------------------------
diff --git a/node_modules/compressible/HISTORY.md b/node_modules/compressible/HISTORY.md
deleted file mode 100644
index 6896784..0000000
--- a/node_modules/compressible/HISTORY.md
+++ /dev/null
@@ -1,62 +0,0 @@
-2.0.9 / 2016-10-31
-==================
-
-  * Fix regex fallback to not override `compressible: false` in db
-  * deps: mime-db@'>= 1.24.0 < 2'
-
-2.0.8 / 2016-05-12
-==================
-
-  * deps: mime-db@'>= 1.23.0 < 2'
-
-2.0.7 / 2016-01-18
-==================
-
-  * deps: mime-db@'>= 1.21.0 < 2'
-
-2.0.6 / 2015-09-29
-==================
-
-  * deps: mime-db@'>= 1.19.0 < 2'
-
-2.0.5 / 2015-07-30
-==================
-
-  * deps: mime-db@'>= 1.16.0 < 2'
-
-2.0.4 / 2015-07-01
-==================
-
-  * deps: mime-db@'>= 1.14.0 < 2'
-  * perf: enable strict mode
-
-2.0.3 / 2015-06-08
-==================
-
-  * Fix regex fallback to work if type exists, but is undefined
-  * perf: hoist regex declaration
-  * perf: use regex to extract mime
-  * deps: mime-db@'>= 1.13.0 < 2'
-
-2.0.2 / 2015-01-31
-==================
-
-  * deps: mime-db@'>= 1.1.2 < 2'
-
-2.0.1 / 2014-09-28
-==================
-
-  * deps: mime-db@1.x
-    - Add new mime types
-    - Add additional compressible
-    - Update charsets
-
-
-2.0.0 / 2014-09-02
-==================
-
-  * use mime-db
-  * remove .get()
-  * specifications are now private
-  * regex is now private
-  * stricter regex

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/compressible/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/compressible/LICENSE b/node_modules/compressible/LICENSE
deleted file mode 100644
index ce00b3f..0000000
--- a/node_modules/compressible/LICENSE
+++ /dev/null
@@ -1,24 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2013 Jonathan Ong <me...@jongleberry.com>
-Copyright (c) 2014 Jeremiah Senkpiel <fi...@rocketmail.com>
-Copyright (c) 2015 Douglas Christopher Wilson <do...@somethingdoug.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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/compressible/README.md
----------------------------------------------------------------------
diff --git a/node_modules/compressible/README.md b/node_modules/compressible/README.md
deleted file mode 100644
index 6d8699d..0000000
--- a/node_modules/compressible/README.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# compressible
-
-[![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]
-
-Compressible `Content-Type` / `mime` checking.
-
-## Installation
-
-```bash
-$ npm install compressible
-```
-
-## API
-
-```js
-var compressible = require('compressible')
-```
-
-### compressible(type)
-
-Checks if the given `Content-Type` is compressible. The `type` argument is expected
-to be a value MIME type or `Content-Type` string, though no validation is performed.
-
-The MIME is looked up in the [`mime-db`](https://www.npmjs.com/package/mime-db) and
-if there is compressible information in the database entry, that is returned. Otherwise,
-this module will fallback to `true` for the following types:
-
-  * `text/*`
-  * `*/*+json`
-  * `*/*+text`
-  * `*/*+xml`
-
-If this module is not sure if a type is specifically compressible or specifically
-uncompressible, `undefined` is returned.
-
-```js
-compressible('text/html') // => true
-compressible('image/png') // => false
-```
-
-## License
-
-[MIT](LICENSE)
-
-[npm-image]: https://img.shields.io/npm/v/compressible.svg
-[npm-url]: https://npmjs.org/package/compressible
-[node-version-image]: https://img.shields.io/node/v/compressible.svg
-[node-version-url]: https://nodejs.org/en/download/
-[travis-image]: https://img.shields.io/travis/jshttp/compressible/master.svg
-[travis-url]: https://travis-ci.org/jshttp/compressible
-[coveralls-image]: https://img.shields.io/coveralls/jshttp/compressible/master.svg
-[coveralls-url]: https://coveralls.io/r/jshttp/compressible?branch=master
-[downloads-image]: https://img.shields.io/npm/dm/compressible.svg
-[downloads-url]: https://npmjs.org/package/compressible

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/compressible/index.js
----------------------------------------------------------------------
diff --git a/node_modules/compressible/index.js b/node_modules/compressible/index.js
deleted file mode 100644
index bf14ad7..0000000
--- a/node_modules/compressible/index.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/*!
- * compressible
- * Copyright(c) 2013 Jonathan Ong
- * Copyright(c) 2014 Jeremiah Senkpiel
- * Copyright(c) 2015 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-'use strict'
-
-/**
- * Module dependencies.
- * @private
- */
-
-var db = require('mime-db')
-
-/**
- * Module variables.
- * @private
- */
-
-var compressibleTypeRegExp = /^text\/|\+json$|\+text$|\+xml$/i
-var extractTypeRegExp = /^\s*([^;\s]*)(?:;|\s|$)/
-
-/**
- * Module exports.
- * @public
- */
-
-module.exports = compressible
-
-/**
- * Checks if a type is compressible.
- *
- * @param {string} type
- * @return {Boolean} compressible
- * @public
- */
-
-function compressible (type) {
-  if (!type || typeof type !== 'string') {
-    return false
-  }
-
-  // strip parameters
-  var match = extractTypeRegExp.exec(type)
-  var mime = match && match[1].toLowerCase()
-  var data = db[mime]
-
-  // return database information
-  if (data && data.compressible !== undefined) {
-    return data.compressible
-  }
-
-  // fallback to regexp or unknown
-  return compressibleTypeRegExp.test(mime) || undefined
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/compressible/package.json
----------------------------------------------------------------------
diff --git a/node_modules/compressible/package.json b/node_modules/compressible/package.json
deleted file mode 100644
index c00304c..0000000
--- a/node_modules/compressible/package.json
+++ /dev/null
@@ -1,146 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "compressible@~2.0.8",
-        "scope": null,
-        "escapedName": "compressible",
-        "name": "compressible",
-        "rawSpec": "~2.0.8",
-        "spec": ">=2.0.8 <2.1.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/compression"
-    ]
-  ],
-  "_from": "compressible@>=2.0.8 <2.1.0",
-  "_id": "compressible@2.0.9",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/compressible",
-  "_npmOperationalInternal": {
-    "host": "packages-18-east.internal.npmjs.com",
-    "tmp": "tmp/compressible-2.0.9.tgz_1477956262136_0.9366124230436981"
-  },
-  "_npmUser": {
-    "name": "dougwilson",
-    "email": "doug@somethingdoug.com"
-  },
-  "_npmVersion": "1.4.28",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "compressible@~2.0.8",
-    "scope": null,
-    "escapedName": "compressible",
-    "name": "compressible",
-    "rawSpec": "~2.0.8",
-    "spec": ">=2.0.8 <2.1.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/compression"
-  ],
-  "_resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.9.tgz",
-  "_shasum": "6daab4e2b599c2770dd9e21e7a891b1c5a755425",
-  "_shrinkwrap": null,
-  "_spec": "compressible@~2.0.8",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/compression",
-  "bugs": {
-    "url": "https://github.com/jshttp/compressible/issues"
-  },
-  "contributors": [
-    {
-      "name": "Douglas Christopher Wilson",
-      "email": "doug@somethingdoug.com"
-    },
-    {
-      "name": "Jonathan Ong",
-      "email": "me@jongleberry.com",
-      "url": "http://jongleberry.com"
-    },
-    {
-      "name": "Jeremiah Senkpiel",
-      "email": "fishrock123@rocketmail.com",
-      "url": "https://searchbeam.jit.su"
-    }
-  ],
-  "dependencies": {
-    "mime-db": ">= 1.24.0 < 2"
-  },
-  "description": "Compressible Content-Type / mime checking",
-  "devDependencies": {
-    "eslint": "3.9.1",
-    "eslint-config-standard": "6.2.1",
-    "eslint-plugin-promise": "3.3.0",
-    "eslint-plugin-standard": "2.0.1",
-    "istanbul": "0.4.5",
-    "mocha": "~1.21.5"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "6daab4e2b599c2770dd9e21e7a891b1c5a755425",
-    "tarball": "https://registry.npmjs.org/compressible/-/compressible-2.0.9.tgz"
-  },
-  "engines": {
-    "node": ">= 0.6"
-  },
-  "files": [
-    "HISTORY.md",
-    "LICENSE",
-    "README.md",
-    "index.js"
-  ],
-  "gitHead": "9e750e00d459f01b9a16df504f87ad829bf2a518",
-  "homepage": "https://github.com/jshttp/compressible",
-  "keywords": [
-    "compress",
-    "gzip",
-    "mime",
-    "content-type"
-  ],
-  "license": "MIT",
-  "maintainers": [
-    {
-      "name": "defunctzombie",
-      "email": "shtylman@gmail.com"
-    },
-    {
-      "name": "dougwilson",
-      "email": "doug@somethingdoug.com"
-    },
-    {
-      "name": "federomero",
-      "email": "federomero@gmail.com"
-    },
-    {
-      "name": "fishrock123",
-      "email": "fishrock123@rocketmail.com"
-    },
-    {
-      "name": "jongleberry",
-      "email": "jonathanrichardong@gmail.com"
-    },
-    {
-      "name": "mscdex",
-      "email": "mscdex@mscdex.net"
-    },
-    {
-      "name": "tjholowaychuk",
-      "email": "tj@vision-media.ca"
-    }
-  ],
-  "name": "compressible",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/jshttp/compressible.git"
-  },
-  "scripts": {
-    "lint": "eslint .",
-    "test": "mocha --reporter spec --bail --check-leaks test/",
-    "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 dot --check-leaks"
-  },
-  "version": "2.0.9"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/compression/HISTORY.md
----------------------------------------------------------------------
diff --git a/node_modules/compression/HISTORY.md b/node_modules/compression/HISTORY.md
deleted file mode 100644
index 663f0de..0000000
--- a/node_modules/compression/HISTORY.md
+++ /dev/null
@@ -1,251 +0,0 @@
-1.6.2 / 2016-05-12
-==================
-
-  * deps: accepts@~1.3.3
-    - deps: mime-types@~2.1.11
-    - deps: negotiator@0.6.1
-  * deps: bytes@2.3.0
-    - Drop partial bytes on all parsed units
-    - Fix parsing byte string that looks like hex
-    - perf: hoist regular expressions
-  * deps: compressible@~2.0.8
-    - deps: mime-db@'>= 1.23.0 < 2'
-
-1.6.1 / 2016-01-19
-==================
-
-  * deps: bytes@2.2.0
-  * deps: compressible@~2.0.7
-    - deps: mime-db@'>= 1.21.0 < 2'
-  * deps: accepts@~1.3.1
-    - deps: mime-types@~2.1.9
-
-1.6.0 / 2015-09-29
-==================
-
-  * Skip compression when response has `Cache-Control: no-transform`
-  * deps: accepts@~1.3.0
-    - deps: mime-types@~2.1.7
-    - deps: negotiator@0.6.0
-  * deps: compressible@~2.0.6
-    - deps: mime-db@'>= 1.19.0 < 2'
-  * deps: on-headers@~1.0.1
-    - perf: enable strict mode
-  * deps: vary@~1.1.0
-    - Only accept valid field names in the `field` argument
-
-1.5.2 / 2015-07-30
-==================
-
-  * deps: accepts@~1.2.12
-    - deps: mime-types@~2.1.4
-  * deps: compressible@~2.0.5
-    - deps: mime-db@'>= 1.16.0 < 2'
-  * deps: vary@~1.0.1
-    - Fix setting empty header from empty `field`
-    - perf: enable strict mode
-    - perf: remove argument reassignments
-
-1.5.1 / 2015-07-05
-==================
-
-  * deps: accepts@~1.2.10
-    - deps: mime-types@~2.1.2
-  * deps: compressible@~2.0.4
-    - deps: mime-db@'>= 1.14.0 < 2'
-    - perf: enable strict mode
-
-1.5.0 / 2015-06-09
-==================
-
-  * Fix return value from `.end` and `.write` after end
-  * Improve detection of zero-length body without `Content-Length`
-  * deps: accepts@~1.2.9
-    - deps: mime-types@~2.1.1
-    - perf: avoid argument reassignment & argument slice
-    - perf: avoid negotiator recursive construction
-    - perf: enable strict mode
-    - perf: remove unnecessary bitwise operator
-  * deps: bytes@2.1.0
-    - Slight optimizations
-    - Units no longer case sensitive when parsing
-  * deps: compressible@~2.0.3
-    - Fix regex fallback to work if type exists, but is undefined
-    - deps: mime-db@'>= 1.13.0 < 2'
-    - perf: hoist regex declaration
-    - perf: use regex to extract mime
-  * perf: enable strict mode
-  * perf: remove flush reassignment
-  * perf: simplify threshold detection
-
-1.4.4 / 2015-05-11
-==================
-
-  * deps: accepts@~1.2.7
-    - deps: mime-types@~2.0.11
-    - deps: negotiator@0.5.3
-  * deps: debug@~2.2.0
-    - deps: ms@0.7.1
-
-1.4.3 / 2015-03-14
-==================
-
-  * deps: accepts@~1.2.5
-    - deps: mime-types@~2.0.10
-  * deps: debug@~2.1.3
-    - Fix high intensity foreground color for bold
-    - deps: ms@0.7.0
-
-1.4.2 / 2015-03-11
-==================
-
-  * Fix error when code calls `res.end(str, encoding)`
-    - Specific to Node.js 0.8
-  * deps: debug@~2.1.2
-    - deps: ms@0.7.0
-
-1.4.1 / 2015-02-15
-==================
-
-  * deps: accepts@~1.2.4
-    - deps: mime-types@~2.0.9
-    - deps: negotiator@0.5.1
-
-1.4.0 / 2015-02-01
-==================
-
-  * Prefer `gzip` over `deflate` on the server
-    - Not all clients agree on what "deflate" coding means
-
-1.3.1 / 2015-01-31
-==================
-
-  * deps: accepts@~1.2.3
-    - deps: mime-types@~2.0.8
-  * deps: compressible@~2.0.2
-    - deps: mime-db@'>= 1.1.2 < 2'
-
-1.3.0 / 2014-12-30
-==================
-
-  * Export the default `filter` function for wrapping
-  * deps: accepts@~1.2.2
-    - deps: mime-types@~2.0.7
-    - deps: negotiator@0.5.0
-  * deps: debug@~2.1.1
-
-1.2.2 / 2014-12-10
-==================
-
-  * Fix `.end` to only proxy to `.end`
-    - Fixes an issue with Node.js 0.11.14
-  * deps: accepts@~1.1.4
-    - deps: mime-types@~2.0.4
-
-1.2.1 / 2014-11-23
-==================
-
-  * deps: accepts@~1.1.3
-    - deps: mime-types@~2.0.3
-
-1.2.0 / 2014-10-16
-==================
-
-  * deps: debug@~2.1.0
-    - Implement `DEBUG_FD` env variable support
-
-1.1.2 / 2014-10-15
-==================
-
-  * deps: accepts@~1.1.2
-    - Fix error when media type has invalid parameter
-    - deps: negotiator@0.4.9
-
-1.1.1 / 2014-10-12
-==================
-
-  * deps: accepts@~1.1.1
-    - deps: mime-types@~2.0.2
-    - deps: negotiator@0.4.8
-  * deps: compressible@~2.0.1
-    - deps: mime-db@1.x
-
-1.1.0 / 2014-09-07
-==================
-
-  * deps: accepts@~1.1.0
-  * deps: compressible@~2.0.0
-  * deps: debug@~2.0.0
-
-1.0.11 / 2014-08-10
-===================
-
-  * deps: on-headers@~1.0.0
-  * deps: vary@~1.0.0
-
-1.0.10 / 2014-08-05
-===================
-
-  * deps: compressible@~1.1.1
-    - Fix upper-case Content-Type characters prevent compression
-
-1.0.9 / 2014-07-20
-==================
-
-  * Add `debug` messages
-  * deps: accepts@~1.0.7
-    - deps: negotiator@0.4.7
-
-1.0.8 / 2014-06-20
-==================
-
-  * deps: accepts@~1.0.5
-    - use `mime-types`
-
-1.0.7 / 2014-06-11
-==================
-
- * use vary module for better `Vary` behavior
- * deps: accepts@1.0.3
- * deps: compressible@1.1.0
-
-1.0.6 / 2014-06-03
-==================
-
- * fix regression when negotiation fails
-
-1.0.5 / 2014-06-03
-==================
-
- * fix listeners for delayed stream creation
-   - fixes regression for certain `stream.pipe(res)` situations
-
-1.0.4 / 2014-06-03
-==================
-
- * fix adding `Vary` when value stored as array
- * fix back-pressure behavior
- * fix length check for `res.end`
-
-1.0.3 / 2014-05-29
-==================
-
- * use `accepts` for negotiation
- * use `on-headers` to handle header checking
- * deps: bytes@1.0.0
-
-1.0.2 / 2014-04-29
-==================
-
- * only version compatible with node.js 0.8
- * support headers given to `res.writeHead`
- * deps: bytes@0.3.0
- * deps: negotiator@0.4.3
-
-1.0.1 / 2014-03-08
-==================
-
- * bump negotiator
- * use compressible
- * use .headersSent (drops 0.8 support)
- * handle identity;q=0 case

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/compression/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/compression/LICENSE b/node_modules/compression/LICENSE
deleted file mode 100644
index 386b7b6..0000000
--- a/node_modules/compression/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2014 Jonathan Ong <me...@jongleberry.com>
-Copyright (c) 2014-2015 Douglas Christopher Wilson <do...@somethingdoug.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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/compression/README.md
----------------------------------------------------------------------
diff --git a/node_modules/compression/README.md b/node_modules/compression/README.md
deleted file mode 100644
index a5d599d..0000000
--- a/node_modules/compression/README.md
+++ /dev/null
@@ -1,233 +0,0 @@
-# compression
-
-[![NPM Version][npm-image]][npm-url]
-[![NPM Downloads][downloads-image]][downloads-url]
-[![Build Status][travis-image]][travis-url]
-[![Test Coverage][coveralls-image]][coveralls-url]
-[![Gratipay][gratipay-image]][gratipay-url]
-
-Node.js compression middleware.
-
-The following compression codings are supported:
-
-  - deflate
-  - gzip
-
-## Install
-
-```bash
-$ npm install compression
-```
-
-## API
-
-```js
-var compression = require('compression')
-```
-
-### compression([options])
-
-Returns the compression middleware using the given `options`. The middleware
-will attempt to compress response bodies for all request that traverse through
-the middleware, based on the given `options`.
-
-This middleware will never compress responses that include a `Cache-Control`
-header with the [`no-transform` directive](https://tools.ietf.org/html/rfc7234#section-5.2.2.4),
-as compressing will transform the body.
-
-#### Options
-
-`compression()` accepts these properties in the options object. In addition to
-those listed below, [zlib](http://nodejs.org/api/zlib.html) options may be
-passed in to the options object.
-
-##### chunkSize
-
-The default value is `zlib.Z_DEFAULT_CHUNK`, or `16384`.
-
-See [Node.js documentation](http://nodejs.org/api/zlib.html#zlib_memory_usage_tuning)
-regarding the usage.
-
-##### filter
-
-A function to decide if the response should be considered for compression.
-This function is called as `filter(req, res)` and is expected to return
-`true` to consider the response for compression, or `false` to not compress
-the response.
-
-The default filter function uses the [compressible](https://www.npmjs.com/package/compressible)
-module to determine if `res.getHeader('Content-Type')` is compressible.
-
-##### level
-
-The level of zlib compression to apply to responses. A higher level will result
-in better compression, but will take longer to complete. A lower level will
-result in less compression, but will be much faster.
-
-This is an integer in the range of `0` (no compression) to `9` (maximum
-compression). The special value `-1` can be used to mean the "default
-compression level", which is a default compromise between speed and
-compression (currently equivalent to level 6).
-
-  - `-1` Default compression level (also `zlib.Z_DEFAULT_COMPRESSION`).
-  - `0` No compression (also `zlib.Z_NO_COMPRESSION`).
-  - `1` Fastest compression (also `zlib.Z_BEST_SPEED`).
-  - `2`
-  - `3`
-  - `4`
-  - `5`
-  - `6` (currently what `zlib.Z_DEFAULT_COMPRESSION` points to).
-  - `7`
-  - `8`
-  - `9` Best compression (also `zlib.Z_BEST_COMPRESSION`).
-
-The default value is `zlib.Z_DEFAULT_COMPRESSION`, or `-1`.
-
-**Note** in the list above, `zlib` is from `zlib = require('zlib')`.
-
-##### memLevel
-
-This specifies how much memory should be allocated for the internal compression
-state and is an integer in the range of `1` (minimum level) and `9` (maximum
-level).
-
-The default value is `zlib.Z_DEFAULT_MEMLEVEL`, or `8`.
-
-See [Node.js documentation](http://nodejs.org/api/zlib.html#zlib_memory_usage_tuning)
-regarding the usage.
-
-##### strategy
-
-This is used to tune the compression algorithm. This value only affects the
-compression ratio, not the correctness of the compressed output, even if it
-is not set appropriately.
-
-  - `zlib.Z_DEFAULT_STRATEGY` Use for normal data.
-  - `zlib.Z_FILTERED` Use for data produced by a filter (or predictor).
-    Filtered data consists mostly of small values with a somewhat random
-    distribution. In this case, the compression algorithm is tuned to
-    compress them better. The effect is to force more Huffman coding and less
-    string matching; it is somewhat intermediate between `zlib.Z_DEFAULT_STRATEGY`
-    and `zlib.Z_HUFFMAN_ONLY`.
-  - `zlib.Z_FIXED` Use to prevent the use of dynamic Huffman codes, allowing
-    for a simpler decoder for special applications.
-  - `zlib.Z_HUFFMAN_ONLY` Use to force Huffman encoding only (no string match).
-  - `zlib.Z_RLE` Use to limit match distances to one (run-length encoding).
-    This is designed to be almost as fast as `zlib.Z_HUFFMAN_ONLY`, but give
-    better compression for PNG image data.
-
-**Note** in the list above, `zlib` is from `zlib = require('zlib')`.
-
-##### threshold
-
-The byte threshold for the response body size before compression is considered
-for the response, defaults to `1kb`. This is a number of bytes, any string
-accepted by the [bytes](https://www.npmjs.com/package/bytes) module, or `false`.
-
-**Note** this is only an advisory setting; if the response size cannot be determined
-at the time the response headers are written, then it is assumed the response is
-_over_ the threshold. To guarantee the response size can be determined, be sure
-set a `Content-Length` response header.
-
-##### windowBits
-
-The default value is `zlib.Z_DEFAULT_WINDOWBITS`, or `15`.
-
-See [Node.js documentation](http://nodejs.org/api/zlib.html#zlib_memory_usage_tuning)
-regarding the usage.
-
-#### .filter
-
-The default `filter` function. This is used to construct a custom filter
-function that is an extension of the default function.
-
-```js
-app.use(compression({filter: shouldCompress}))
-
-function shouldCompress(req, res) {
-  if (req.headers['x-no-compression']) {
-    // don't compress responses with this request header
-    return false
-  }
-
-  // fallback to standard filter function
-  return compression.filter(req, res)
-}
-```
-
-### res.flush
-
-This module adds a `res.flush()` method to force the partially-compressed
-response to be flushed to the client.
-
-## Examples
-
-### express/connect
-
-When using this module with express or connect, simply `app.use` the module as
-high as you like. Requests that pass through the middleware will be compressed.
-
-```js
-var compression = require('compression')
-var express = require('express')
-
-var app = express()
-
-// compress all requests
-app.use(compression())
-
-// add all routes
-```
-
-### Server-Sent Events
-
-Because of the nature of compression this module does not work out of the box
-with server-sent events. To compress content, a window of the output needs to
-be buffered up in order to get good compression. Typically when using server-sent
-events, there are certain block of data that need to reach the client.
-
-You can achieve this by calling `res.flush()` when you need the data written to
-actually make it to the client.
-
-```js
-var compression = require('compression')
-var express     = require('express')
-
-var app = express()
-
-// compress responses
-app.use(compression())
-
-// server-sent event stream
-app.get('/events', function (req, res) {
-  res.setHeader('Content-Type', 'text/event-stream')
-  res.setHeader('Cache-Control', 'no-cache')
-
-  // send a ping approx every 2 seconds
-  var timer = setInterval(function () {
-    res.write('data: ping\n\n')
-
-    // !!! this is the important part
-    res.flush()
-  }, 2000)
-
-  res.on('close', function () {
-    clearInterval(timer)
-  })
-})
-```
-
-## License
-
-[MIT](LICENSE)
-
-[npm-image]: https://img.shields.io/npm/v/compression.svg
-[npm-url]: https://npmjs.org/package/compression
-[travis-image]: https://img.shields.io/travis/expressjs/compression/master.svg
-[travis-url]: https://travis-ci.org/expressjs/compression
-[coveralls-image]: https://img.shields.io/coveralls/expressjs/compression/master.svg
-[coveralls-url]: https://coveralls.io/r/expressjs/compression?branch=master
-[downloads-image]: https://img.shields.io/npm/dm/compression.svg
-[downloads-url]: https://npmjs.org/package/compression
-[gratipay-image]: https://img.shields.io/gratipay/dougwilson.svg
-[gratipay-url]: https://www.gratipay.com/dougwilson/

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/compression/index.js
----------------------------------------------------------------------
diff --git a/node_modules/compression/index.js b/node_modules/compression/index.js
deleted file mode 100644
index c0e801e..0000000
--- a/node_modules/compression/index.js
+++ /dev/null
@@ -1,276 +0,0 @@
-/*!
- * compression
- * Copyright(c) 2010 Sencha Inc.
- * Copyright(c) 2011 TJ Holowaychuk
- * Copyright(c) 2014 Jonathan Ong
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-'use strict'
-
-/**
- * Module dependencies.
- * @private
- */
-
-var accepts = require('accepts')
-var bytes = require('bytes')
-var compressible = require('compressible')
-var debug = require('debug')('compression')
-var onHeaders = require('on-headers')
-var vary = require('vary')
-var zlib = require('zlib')
-
-/**
- * Module exports.
- */
-
-module.exports = compression
-module.exports.filter = shouldCompress
-
-/**
- * Module variables.
- * @private
- */
-
-var cacheControlNoTransformRegExp = /(?:^|,)\s*?no-transform\s*?(?:,|$)/
-
-/**
- * Compress response data with gzip / deflate.
- *
- * @param {Object} [options]
- * @return {Function} middleware
- * @public
- */
-
-function compression (options) {
-  var opts = options || {}
-
-  // options
-  var filter = opts.filter || shouldCompress
-  var threshold = bytes.parse(opts.threshold)
-
-  if (threshold == null) {
-    threshold = 1024
-  }
-
-  return function compression (req, res, next) {
-    var ended = false
-    var length
-    var listeners = []
-    var stream
-
-    var _end = res.end
-    var _on = res.on
-    var _write = res.write
-
-    // flush
-    res.flush = function flush () {
-      if (stream) {
-        stream.flush()
-      }
-    }
-
-    // proxy
-
-    res.write = function write (chunk, encoding) {
-      if (ended) {
-        return false
-      }
-
-      if (!this._header) {
-        this._implicitHeader()
-      }
-
-      return stream
-        ? stream.write(new Buffer(chunk, encoding))
-        : _write.call(this, chunk, encoding)
-    }
-
-    res.end = function end (chunk, encoding) {
-      if (ended) {
-        return false
-      }
-
-      if (!this._header) {
-        // estimate the length
-        if (!this.getHeader('Content-Length')) {
-          length = chunkLength(chunk, encoding)
-        }
-
-        this._implicitHeader()
-      }
-
-      if (!stream) {
-        return _end.call(this, chunk, encoding)
-      }
-
-      // mark ended
-      ended = true
-
-      // write Buffer for Node.js 0.8
-      return chunk
-        ? stream.end(new Buffer(chunk, encoding))
-        : stream.end()
-    }
-
-    res.on = function on (type, listener) {
-      if (!listeners || type !== 'drain') {
-        return _on.call(this, type, listener)
-      }
-
-      if (stream) {
-        return stream.on(type, listener)
-      }
-
-      // buffer listeners for future stream
-      listeners.push([type, listener])
-
-      return this
-    }
-
-    function nocompress (msg) {
-      debug('no compression: %s', msg)
-      addListeners(res, _on, listeners)
-      listeners = null
-    }
-
-    onHeaders(res, function onResponseHeaders () {
-      // determine if request is filtered
-      if (!filter(req, res)) {
-        nocompress('filtered')
-        return
-      }
-
-      // determine if the entity should be transformed
-      if (!shouldTransform(req, res)) {
-        nocompress('no transform')
-        return
-      }
-
-      // vary
-      vary(res, 'Accept-Encoding')
-
-      // content-length below threshold
-      if (Number(res.getHeader('Content-Length')) < threshold || length < threshold) {
-        nocompress('size below threshold')
-        return
-      }
-
-      var encoding = res.getHeader('Content-Encoding') || 'identity'
-
-      // already encoded
-      if (encoding !== 'identity') {
-        nocompress('already encoded')
-        return
-      }
-
-      // head
-      if (req.method === 'HEAD') {
-        nocompress('HEAD request')
-        return
-      }
-
-      // compression method
-      var accept = accepts(req)
-      var method = accept.encoding(['gzip', 'deflate', 'identity'])
-
-      // we really don't prefer deflate
-      if (method === 'deflate' && accept.encoding(['gzip'])) {
-        method = accept.encoding(['gzip', 'identity'])
-      }
-
-      // negotiation failed
-      if (!method || method === 'identity') {
-        nocompress('not acceptable')
-        return
-      }
-
-      // compression stream
-      debug('%s compression', method)
-      stream = method === 'gzip'
-        ? zlib.createGzip(opts)
-        : zlib.createDeflate(opts)
-
-      // add buffered listeners to stream
-      addListeners(stream, stream.on, listeners)
-
-      // header fields
-      res.setHeader('Content-Encoding', method)
-      res.removeHeader('Content-Length')
-
-      // compression
-      stream.on('data', function onStreamData (chunk) {
-        if (_write.call(res, chunk) === false) {
-          stream.pause()
-        }
-      })
-
-      stream.on('end', function onStreamEnd () {
-        _end.call(res)
-      })
-
-      _on.call(res, 'drain', function onResponseDrain () {
-        stream.resume()
-      })
-    })
-
-    next()
-  }
-}
-
-/**
- * Add bufferred listeners to stream
- * @private
- */
-
-function addListeners (stream, on, listeners) {
-  for (var i = 0; i < listeners.length; i++) {
-    on.apply(stream, listeners[i])
-  }
-}
-
-/**
- * Get the length of a given chunk
- */
-
-function chunkLength (chunk, encoding) {
-  if (!chunk) {
-    return 0
-  }
-
-  return !Buffer.isBuffer(chunk)
-    ? Buffer.byteLength(chunk, encoding)
-    : chunk.length
-}
-
-/**
- * Default filter function.
- * @private
- */
-
-function shouldCompress (req, res) {
-  var type = res.getHeader('Content-Type')
-
-  if (type === undefined || !compressible(type)) {
-    debug('%s not compressible', type)
-    return false
-  }
-
-  return true
-}
-
-/**
- * Determine if the entity should be transformed.
- * @private
- */
-
-function shouldTransform (req, res) {
-  var cacheControl = res.getHeader('Cache-Control')
-
-  // Don't compress for Cache-Control: no-transform
-  // https://tools.ietf.org/html/rfc7234#section-5.2.2.4
-  return !cacheControl ||
-    !cacheControlNoTransformRegExp.test(cacheControl)
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/compression/node_modules/debug/.jshintrc
----------------------------------------------------------------------
diff --git a/node_modules/compression/node_modules/debug/.jshintrc b/node_modules/compression/node_modules/debug/.jshintrc
deleted file mode 100644
index 299877f..0000000
--- a/node_modules/compression/node_modules/debug/.jshintrc
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-  "laxbreak": true
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/compression/node_modules/debug/.npmignore
----------------------------------------------------------------------
diff --git a/node_modules/compression/node_modules/debug/.npmignore b/node_modules/compression/node_modules/debug/.npmignore
deleted file mode 100644
index 7e6163d..0000000
--- a/node_modules/compression/node_modules/debug/.npmignore
+++ /dev/null
@@ -1,6 +0,0 @@
-support
-test
-examples
-example
-*.sock
-dist

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/compression/node_modules/debug/History.md
----------------------------------------------------------------------
diff --git a/node_modules/compression/node_modules/debug/History.md b/node_modules/compression/node_modules/debug/History.md
deleted file mode 100644
index 854c971..0000000
--- a/node_modules/compression/node_modules/debug/History.md
+++ /dev/null
@@ -1,195 +0,0 @@
-
-2.2.0 / 2015-05-09
-==================
-
-  * package: update "ms" to v0.7.1 (#202, @dougwilson)
-  * README: add logging to file example (#193, @DanielOchoa)
-  * README: fixed a typo (#191, @amir-s)
-  * browser: expose `storage` (#190, @stephenmathieson)
-  * Makefile: add a `distclean` target (#189, @stephenmathieson)
-
-2.1.3 / 2015-03-13
-==================
-
-  * Updated stdout/stderr example (#186)
-  * Updated example/stdout.js to match debug current behaviour
-  * Renamed example/stderr.js to stdout.js
-  * Update Readme.md (#184)
-  * replace high intensity foreground color for bold (#182, #183)
-
-2.1.2 / 2015-03-01
-==================
-
-  * dist: recompile
-  * update "ms" to v0.7.0
-  * package: update "browserify" to v9.0.3
-  * component: fix "ms.js" repo location
-  * changed bower package name
-  * updated documentation about using debug in a browser
-  * fix: security error on safari (#167, #168, @yields)
-
-2.1.1 / 2014-12-29
-==================
-
-  * browser: use `typeof` to check for `console` existence
-  * browser: check for `console.log` truthiness (fix IE 8/9)
-  * browser: add support for Chrome apps
-  * Readme: added Windows usage remarks
-  * Add `bower.json` to properly support bower install
-
-2.1.0 / 2014-10-15
-==================
-
-  * node: implement `DEBUG_FD` env variable support
-  * package: update "browserify" to v6.1.0
-  * package: add "license" field to package.json (#135, @panuhorsmalahti)
-
-2.0.0 / 2014-09-01
-==================
-
-  * package: update "browserify" to v5.11.0
-  * node: use stderr rather than stdout for logging (#29, @stephenmathieson)
-
-1.0.4 / 2014-07-15
-==================
-
-  * dist: recompile
-  * example: remove `console.info()` log usage
-  * example: add "Content-Type" UTF-8 header to browser example
-  * browser: place %c marker after the space character
-  * browser: reset the "content" color via `color: inherit`
-  * browser: add colors support for Firefox >= v31
-  * debug: prefer an instance `log()` function over the global one (#119)
-  * Readme: update documentation about styled console logs for FF v31 (#116, @wryk)
-
-1.0.3 / 2014-07-09
-==================
-
-  * Add support for multiple wildcards in namespaces (#122, @seegno)
-  * browser: fix lint
-
-1.0.2 / 2014-06-10
-==================
-
-  * browser: update color palette (#113, @gscottolson)
-  * common: make console logging function configurable (#108, @timoxley)
-  * node: fix %o colors on old node <= 0.8.x
-  * Makefile: find node path using shell/which (#109, @timoxley)
-
-1.0.1 / 2014-06-06
-==================
-
-  * browser: use `removeItem()` to clear localStorage
-  * browser, node: don't set DEBUG if namespaces is undefined (#107, @leedm777)
-  * package: add "contributors" section
-  * node: fix comment typo
-  * README: list authors
-
-1.0.0 / 2014-06-04
-==================
-
-  * make ms diff be global, not be scope
-  * debug: ignore empty strings in enable()
-  * node: make DEBUG_COLORS able to disable coloring
-  * *: export the `colors` array
-  * npmignore: don't publish the `dist` dir
-  * Makefile: refactor to use browserify
-  * package: add "browserify" as a dev dependency
-  * Readme: add Web Inspector Colors section
-  * node: reset terminal color for the debug content
-  * node: map "%o" to `util.inspect()`
-  * browser: map "%j" to `JSON.stringify()`
-  * debug: add custom "formatters"
-  * debug: use "ms" module for humanizing the diff
-  * Readme: add "bash" syntax highlighting
-  * browser: add Firebug color support
-  * browser: add colors for WebKit browsers
-  * node: apply log to `console`
-  * rewrite: abstract common logic for Node & browsers
-  * add .jshintrc file
-
-0.8.1 / 2014-04-14
-==================
-
-  * package: re-add the "component" section
-
-0.8.0 / 2014-03-30
-==================
-
-  * add `enable()` method for nodejs. Closes #27
-  * change from stderr to stdout
-  * remove unnecessary index.js file
-
-0.7.4 / 2013-11-13
-==================
-
-  * remove "browserify" key from package.json (fixes something in browserify)
-
-0.7.3 / 2013-10-30
-==================
-
-  * fix: catch localStorage security error when cookies are blocked (Chrome)
-  * add debug(err) support. Closes #46
-  * add .browser prop to package.json. Closes #42
-
-0.7.2 / 2013-02-06
-==================
-
-  * fix package.json
-  * fix: Mobile Safari (private mode) is broken with debug
-  * fix: Use unicode to send escape character to shell instead of octal to work with strict mode javascript
-
-0.7.1 / 2013-02-05
-==================
-
-  * add repository URL to package.json
-  * add DEBUG_COLORED to force colored output
-  * add browserify support
-  * fix component. Closes #24
-
-0.7.0 / 2012-05-04
-==================
-
-  * Added .component to package.json
-  * Added debug.component.js build
-
-0.6.0 / 2012-03-16
-==================
-
-  * Added support for "-" prefix in DEBUG [Vinay Pulim]
-  * Added `.enabled` flag to the node version [TooTallNate]
-
-0.5.0 / 2012-02-02
-==================
-
-  * Added: humanize diffs. Closes #8
-  * Added `debug.disable()` to the CS variant
-  * Removed padding. Closes #10
-  * Fixed: persist client-side variant again. Closes #9
-
-0.4.0 / 2012-02-01
-==================
-
-  * Added browser variant support for older browsers [TooTallNate]
-  * Added `debug.enable('project:*')` to browser variant [TooTallNate]
-  * Added padding to diff (moved it to the right)
-
-0.3.0 / 2012-01-26
-==================
-
-  * Added millisecond diff when isatty, otherwise UTC string
-
-0.2.0 / 2012-01-22
-==================
-
-  * Added wildcard support
-
-0.1.0 / 2011-12-02
-==================
-
-  * Added: remove colors unless stderr isatty [TooTallNate]
-
-0.0.1 / 2010-01-03
-==================
-
-  * Initial release

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/compression/node_modules/debug/Makefile
----------------------------------------------------------------------
diff --git a/node_modules/compression/node_modules/debug/Makefile b/node_modules/compression/node_modules/debug/Makefile
deleted file mode 100644
index 5cf4a59..0000000
--- a/node_modules/compression/node_modules/debug/Makefile
+++ /dev/null
@@ -1,36 +0,0 @@
-
-# get Makefile directory name: http://stackoverflow.com/a/5982798/376773
-THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
-THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd)
-
-# BIN directory
-BIN := $(THIS_DIR)/node_modules/.bin
-
-# applications
-NODE ?= $(shell which node)
-NPM ?= $(NODE) $(shell which npm)
-BROWSERIFY ?= $(NODE) $(BIN)/browserify
-
-all: dist/debug.js
-
-install: node_modules
-
-clean:
-	@rm -rf dist
-
-dist:
-	@mkdir -p $@
-
-dist/debug.js: node_modules browser.js debug.js dist
-	@$(BROWSERIFY) \
-		--standalone debug \
-		. > $@
-
-distclean: clean
-	@rm -rf node_modules
-
-node_modules: package.json
-	@NODE_ENV= $(NPM) install
-	@touch node_modules
-
-.PHONY: all install clean distclean

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/compression/node_modules/debug/Readme.md
----------------------------------------------------------------------
diff --git a/node_modules/compression/node_modules/debug/Readme.md b/node_modules/compression/node_modules/debug/Readme.md
deleted file mode 100644
index b4f45e3..0000000
--- a/node_modules/compression/node_modules/debug/Readme.md
+++ /dev/null
@@ -1,188 +0,0 @@
-# debug
-
-  tiny node.js debugging utility modelled after node core's debugging technique.
-
-## Installation
-
-```bash
-$ npm install debug
-```
-
-## Usage
-
- With `debug` you simply invoke the exported function to generate your debug function, passing it a name which will determine if a noop function is returned, or a decorated `console.error`, so all of the `console` format string goodies you're used to work fine. A unique color is selected per-function for visibility.
-
-Example _app.js_:
-
-```js
-var debug = require('debug')('http')
-  , http = require('http')
-  , name = 'My App';
-
-// fake app
-
-debug('booting %s', name);
-
-http.createServer(function(req, res){
-  debug(req.method + ' ' + req.url);
-  res.end('hello\n');
-}).listen(3000, function(){
-  debug('listening');
-});
-
-// fake worker of some kind
-
-require('./worker');
-```
-
-Example _worker.js_:
-
-```js
-var debug = require('debug')('worker');
-
-setInterval(function(){
-  debug('doing some work');
-}, 1000);
-```
-
- The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples:
-
-  ![debug http and worker](http://f.cl.ly/items/18471z1H402O24072r1J/Screenshot.png)
-
-  ![debug worker](http://f.cl.ly/items/1X413v1a3M0d3C2c1E0i/Screenshot.png)
-
-#### Windows note
-
- On Windows the environment variable is set using the `set` command.
-
- ```cmd
- set DEBUG=*,-not_this
- ```
-
-Then, run the program to be debugged as usual.
-
-## Millisecond diff
-
-  When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls.
-
-  ![](http://f.cl.ly/items/2i3h1d3t121M2Z1A3Q0N/Screenshot.png)
-
-  When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below:
-
-  ![](http://f.cl.ly/items/112H3i0e0o0P0a2Q2r11/Screenshot.png)
-
-## Conventions
-
- If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser".
-
-## Wildcards
-
-  The `*` character may be used as a wildcard. Suppose for example your library has debuggers named "connect:bodyParser", "connect:compress", "connect:session", instead of listing all three with `DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`.
-
-  You can also exclude specific debuggers by prefixing them with a "-" character.  For example, `DEBUG=*,-connect:*` would include all debuggers except those starting with "connect:".
-
-## Browser support
-
-  Debug works in the browser as well, currently persisted by `localStorage`. Consider the situation shown below where you have `worker:a` and `worker:b`, and wish to debug both. Somewhere in the code on your page, include:
-
-```js
-window.myDebug = require("debug");
-```
-
-  ("debug" is a global object in the browser so we give this object a different name.) When your page is open in the browser, type the following in the console:
-
-```js
-myDebug.enable("worker:*")
-```
-
-  Refresh the page. Debug output will continue to be sent to the console until it is disabled by typing `myDebug.disable()` in the console.
-
-```js
-a = debug('worker:a');
-b = debug('worker:b');
-
-setInterval(function(){
-  a('doing some work');
-}, 1000);
-
-setInterval(function(){
-  b('doing some work');
-}, 1200);
-```
-
-#### Web Inspector Colors
-
-  Colors are also enabled on "Web Inspectors" that understand the `%c` formatting
-  option. These are WebKit web inspectors, Firefox ([since version
-  31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/))
-  and the Firebug plugin for Firefox (any version).
-
-  Colored output looks something like:
-
-  ![](https://cloud.githubusercontent.com/assets/71256/3139768/b98c5fd8-e8ef-11e3-862a-f7253b6f47c6.png)
-
-### stderr vs stdout
-
-You can set an alternative logging method per-namespace by overriding the `log` method on a per-namespace or globally:
-
-Example _stdout.js_:
-
-```js
-var debug = require('debug');
-var error = debug('app:error');
-
-// by default stderr is used
-error('goes to stderr!');
-
-var log = debug('app:log');
-// set this namespace to log via console.log
-log.log = console.log.bind(console); // don't forget to bind to console!
-log('goes to stdout');
-error('still goes to stderr!');
-
-// set all output to go via console.info
-// overrides all per-namespace log settings
-debug.log = console.info.bind(console);
-error('now goes to stdout via console.info');
-log('still goes to stdout, but via console.info now');
-```
-
-### Save debug output to a file
-
-You can save all debug statements to a file by piping them.
-
-Example:
-
-```bash
-$ DEBUG_FD=3 node your-app.js 3> whatever.log
-```
-
-## Authors
-
- - TJ Holowaychuk
- - Nathan Rajlich
-
-## License
-
-(The MIT License)
-
-Copyright (c) 2014 TJ Holowaychuk &lt;tj@vision-media.ca&gt;
-
-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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/compression/node_modules/debug/bower.json
----------------------------------------------------------------------
diff --git a/node_modules/compression/node_modules/debug/bower.json b/node_modules/compression/node_modules/debug/bower.json
deleted file mode 100644
index 6af573f..0000000
--- a/node_modules/compression/node_modules/debug/bower.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
-  "name": "visionmedia-debug",
-  "main": "dist/debug.js",
-  "version": "2.2.0",
-  "homepage": "https://github.com/visionmedia/debug",
-  "authors": [
-    "TJ Holowaychuk <tj...@vision-media.ca>"
-  ],
-  "description": "visionmedia-debug",
-  "moduleType": [
-    "amd",
-    "es6",
-    "globals",
-    "node"
-  ],
-  "keywords": [
-    "visionmedia",
-    "debug"
-  ],
-  "license": "MIT",
-  "ignore": [
-    "**/.*",
-    "node_modules",
-    "bower_components",
-    "test",
-    "tests"
-  ]
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/compression/node_modules/debug/browser.js
----------------------------------------------------------------------
diff --git a/node_modules/compression/node_modules/debug/browser.js b/node_modules/compression/node_modules/debug/browser.js
deleted file mode 100644
index 7c76452..0000000
--- a/node_modules/compression/node_modules/debug/browser.js
+++ /dev/null
@@ -1,168 +0,0 @@
-
-/**
- * This is the web browser implementation of `debug()`.
- *
- * Expose `debug()` as the module.
- */
-
-exports = module.exports = require('./debug');
-exports.log = log;
-exports.formatArgs = formatArgs;
-exports.save = save;
-exports.load = load;
-exports.useColors = useColors;
-exports.storage = 'undefined' != typeof chrome
-               && 'undefined' != typeof chrome.storage
-                  ? chrome.storage.local
-                  : localstorage();
-
-/**
- * Colors.
- */
-
-exports.colors = [
-  'lightseagreen',
-  'forestgreen',
-  'goldenrod',
-  'dodgerblue',
-  'darkorchid',
-  'crimson'
-];
-
-/**
- * Currently only WebKit-based Web Inspectors, Firefox >= v31,
- * and the Firebug extension (any Firefox version) are known
- * to support "%c" CSS customizations.
- *
- * TODO: add a `localStorage` variable to explicitly enable/disable colors
- */
-
-function useColors() {
-  // is webkit? http://stackoverflow.com/a/16459606/376773
-  return ('WebkitAppearance' in document.documentElement.style) ||
-    // is firebug? http://stackoverflow.com/a/398120/376773
-    (window.console && (console.firebug || (console.exception && console.table))) ||
-    // is firefox >= v31?
-    // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
-    (navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31);
-}
-
-/**
- * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
- */
-
-exports.formatters.j = function(v) {
-  return JSON.stringify(v);
-};
-
-
-/**
- * Colorize log arguments if enabled.
- *
- * @api public
- */
-
-function formatArgs() {
-  var args = arguments;
-  var useColors = this.useColors;
-
-  args[0] = (useColors ? '%c' : '')
-    + this.namespace
-    + (useColors ? ' %c' : ' ')
-    + args[0]
-    + (useColors ? '%c ' : ' ')
-    + '+' + exports.humanize(this.diff);
-
-  if (!useColors) return args;
-
-  var c = 'color: ' + this.color;
-  args = [args[0], c, 'color: inherit'].concat(Array.prototype.slice.call(args, 1));
-
-  // the final "%c" is somewhat tricky, because there could be other
-  // arguments passed either before or after the %c, so we need to
-  // figure out the correct index to insert the CSS into
-  var index = 0;
-  var lastC = 0;
-  args[0].replace(/%[a-z%]/g, function(match) {
-    if ('%%' === match) return;
-    index++;
-    if ('%c' === match) {
-      // we only are interested in the *last* %c
-      // (the user may have provided their own)
-      lastC = index;
-    }
-  });
-
-  args.splice(lastC, 0, c);
-  return args;
-}
-
-/**
- * Invokes `console.log()` when available.
- * No-op when `console.log` is not a "function".
- *
- * @api public
- */
-
-function log() {
-  // this hackery is required for IE8/9, where
-  // the `console.log` function doesn't have 'apply'
-  return 'object' === typeof console
-    && console.log
-    && Function.prototype.apply.call(console.log, console, arguments);
-}
-
-/**
- * Save `namespaces`.
- *
- * @param {String} namespaces
- * @api private
- */
-
-function save(namespaces) {
-  try {
-    if (null == namespaces) {
-      exports.storage.removeItem('debug');
-    } else {
-      exports.storage.debug = namespaces;
-    }
-  } catch(e) {}
-}
-
-/**
- * Load `namespaces`.
- *
- * @return {String} returns the previously persisted debug modes
- * @api private
- */
-
-function load() {
-  var r;
-  try {
-    r = exports.storage.debug;
-  } catch(e) {}
-  return r;
-}
-
-/**
- * Enable namespaces listed in `localStorage.debug` initially.
- */
-
-exports.enable(load());
-
-/**
- * Localstorage attempts to return the localstorage.
- *
- * This is necessary because safari throws
- * when a user disables cookies/localstorage
- * and you attempt to access it.
- *
- * @return {LocalStorage}
- * @api private
- */
-
-function localstorage(){
-  try {
-    return window.localStorage;
-  } catch (e) {}
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/compression/node_modules/debug/component.json
----------------------------------------------------------------------
diff --git a/node_modules/compression/node_modules/debug/component.json b/node_modules/compression/node_modules/debug/component.json
deleted file mode 100644
index ca10637..0000000
--- a/node_modules/compression/node_modules/debug/component.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-  "name": "debug",
-  "repo": "visionmedia/debug",
-  "description": "small debugging utility",
-  "version": "2.2.0",
-  "keywords": [
-    "debug",
-    "log",
-    "debugger"
-  ],
-  "main": "browser.js",
-  "scripts": [
-    "browser.js",
-    "debug.js"
-  ],
-  "dependencies": {
-    "rauchg/ms.js": "0.7.1"
-  }
-}


[49/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/JSONStream/test/fixtures/all_npm.json
----------------------------------------------------------------------
diff --git a/node_modules/JSONStream/test/fixtures/all_npm.json b/node_modules/JSONStream/test/fixtures/all_npm.json
deleted file mode 100644
index 6303ea2..0000000
--- a/node_modules/JSONStream/test/fixtures/all_npm.json
+++ /dev/null
@@ -1,4030 +0,0 @@
-{"total_rows":4028,"offset":0,"rows":[
-{"id":"","key":"","value":{"rev":"1-2f11e026763c10730d8b19ba5dce7565"}},
-{"id":"3scale","key":"3scale","value":{"rev":"3-db3d574bf0ecdfdf627afeaa21b4bdaa"}},
-{"id":"7digital-api","key":"7digital-api","value":{"rev":"20-21d11832780e2368aabc946598a41dd5"}},
-{"id":"AMD","key":"AMD","value":{"rev":"7-3b4305a9c786ab4c5ce611e7f0de0aca"}},
-{"id":"AriesNode","key":"AriesNode","value":{"rev":"3-9d88392bca6582c5c54784927dbfdee6"}},
-{"id":"Array.prototype.forEachAsync","key":"Array.prototype.forEachAsync","value":{"rev":"3-85696441ba6bef77cc1e7de7b073110e"}},
-{"id":"Babel","key":"Babel","value":{"rev":"5-9d8370c6ac6fd9cd3d530f26a9379814"}},
-{"id":"Blaggie-System","key":"Blaggie-System","value":{"rev":"3-47782b1e5cbfa425170192799510e148"}},
-{"id":"Blob","key":"Blob","value":{"rev":"3-cf5fb5d69da4dd00bc4f2be8870ca698"}},
-{"id":"BlobBuilder","key":"BlobBuilder","value":{"rev":"3-eb977ff1713a915384fac994f9d8fa7c"}},
-{"id":"Buffer","key":"Buffer","value":{"rev":"3-549594b58e83d6d07bb219e73de558e5"}},
-{"id":"CLI-UI","key":"CLI-UI","value":{"rev":"5-5912625f27b4bdfb4d3eed16726c48a8"}},
-{"id":"CLoader","key":"CLoader","value":{"rev":"1-ad3c317ddf3497e73ab41cb1ddbc6ba8"}},
-{"id":"CM1","key":"CM1","value":{"rev":"15-a325a2dc28bc6967a1a14beed86f3b80"}},
-{"id":"CONFIGURATOR","key":"CONFIGURATOR","value":{"rev":"3-c76bf9282a75cc4d3fb349e831ccb8a5"}},
-{"id":"Cashew","key":"Cashew","value":{"rev":"7-6a74dc51dbecc47d2c15bfb7d056a20f"}},
-{"id":"Class","key":"Class","value":{"rev":"5-958c6365f76a60a8b3dafbbd9730ac7e"}},
-{"id":"ClassLoader","key":"ClassLoader","value":{"rev":"3-27fe8faa8a1d60d639f87af52826ed47"}},
-{"id":"ClearSilver","key":"ClearSilver","value":{"rev":"3-f3e54eb9ce64fc6a090186e61f15ed0b"}},
-{"id":"Couch-cleaner","key":"Couch-cleaner","value":{"rev":"3-fc77270917d967a4e2e8637cfa9f0fe0"}},
-{"id":"CouchCover","key":"CouchCover","value":{"rev":"15-3b2d87d314f57272a5c27c42bbb3eaf9"}},
-{"id":"DOM-js","key":"DOM-js","value":{"rev":"8-748cdc96566a7b65bbd0b12be2eeb386"}},
-{"id":"DOMBuilder","key":"DOMBuilder","value":{"rev":"19-41a518f2ce16fabc0241535ccd967300"}},
-{"id":"DateZ","key":"DateZ","value":{"rev":"15-69d8115a9bd521e614eaad3cf2611264"}},
-{"id":"Dateselect","key":"Dateselect","value":{"rev":"3-6511567a876d8fe15724bbc7f247214c"}},
-{"id":"Deferred","key":"Deferred","value":{"rev":"3-c61dfc4a0d1bd3e9f35c7182f161f1f2"}},
-{"id":"DeskSet","key":"DeskSet","value":{"rev":"5-359bf760718898ff3591eb366e336cf9"}},
-{"id":"Estro","key":"Estro","value":{"rev":"11-97192e2d0327469bb30f814963db6dff"}},
-{"id":"EventProxy.js","key":"EventProxy.js","value":{"rev":"5-106696b56c6959cec4bfd37f406ee60a"}},
-{"id":"EventServer","key":"EventServer","value":{"rev":"3-59d174119435e99e2affe0c4ba7caae0"}},
-{"id":"Expressive","key":"Expressive","value":{"rev":"3-7eae0ea010eb9014b28108e814918eac"}},
-{"id":"F","key":"F","value":{"rev":"12-91a3db69527b46cf43e36b7ec64a4336"}},
-{"id":"Faker","key":"Faker","value":{"rev":"9-77951c352cb6f9a0b824be620a8fa40d"}},
-{"id":"FastLegS","key":"FastLegS","value":{"rev":"27-4399791981235021a36c94bb9e9b52b5"}},
-{"id":"Fayer","key":"Fayer","value":{"rev":"7-7e4974ff2716329375f9711bcabef701"}},
-{"id":"File","key":"File","value":{"rev":"3-45e353a984038bc48248dfc32b18f9a8"}},
-{"id":"FileError","key":"FileError","value":{"rev":"3-bb4b03a2548e3c229e2c7e92242946c3"}},
-{"id":"FileList","key":"FileList","value":{"rev":"3-ec4a3fc91794ef7fdd3fe88b19cec7b0"}},
-{"id":"FileReader","key":"FileReader","value":{"rev":"7-e81b58a2d8a765ae4781b41bbfadb4cb"}},
-{"id":"FileSaver","key":"FileSaver","value":{"rev":"3-476dcb3f63f4d10feee08d41a8128cb8"}},
-{"id":"FileWriter","key":"FileWriter","value":{"rev":"3-f2fcdbc4938de480cce2e8e8416a93dd"}},
-{"id":"FileWriterSync","key":"FileWriterSync","value":{"rev":"3-9494c3fe7a1230238f37a724ec10895b"}},
-{"id":"FormData","key":"FormData","value":{"rev":"3-8872d717575f7090107a96d81583f6fe"}},
-{"id":"Frenchpress","key":"Frenchpress","value":{"rev":"3-6d916fc15b9e77535771578f96c47c52"}},
-{"id":"FreshDocs","key":"FreshDocs","value":{"rev":"5-f1f3e76c85267faf21d06d911cc6c203"}},
-{"id":"Google_Plus_API","key":"Google_Plus_API","value":{"rev":"3-3302bc9846726d996a45daee3dc5922c"}},
-{"id":"Gord","key":"Gord","value":{"rev":"11-32fddef1453773ac7270ba0e7c83f727"}},
-{"id":"Graph","key":"Graph","value":{"rev":"7-c346edea4f90e3e18d50a62473868cf4"}},
-{"id":"GridFS","key":"GridFS","value":{"rev":"27-4fc649aaa007fddec4947bdb7111560f"}},
-{"id":"Haraka","key":"Haraka","value":{"rev":"39-ee8f890521c1579b3cc779c8ebe03480"}},
-{"id":"Index","key":"Index","value":{"rev":"29-d8f4881c1544bf51dea1927e87ebb3f3"}},
-{"id":"JS-Entities","key":"JS-Entities","value":{"rev":"7-905636d8b46f273210233b60063d079b"}},
-{"id":"JSLint-commonJS","key":"JSLint-commonJS","value":{"rev":"3-759a81f82af7055e85ee89c9707c9609"}},
-{"id":"JSON","key":"JSON","value":{"rev":"3-7966a79067c34fb5de2e62c796f67341"}},
-{"id":"JSONPath","key":"JSONPath","value":{"rev":"7-58789d57ae366a5b0ae4b36837f15d59"}},
-{"id":"JSONSelect","key":"JSONSelect","value":{"rev":"9-5b0730da91eeb52e8f54da516367dc0f"}},
-{"id":"JSONloops","key":"JSONloops","value":{"rev":"3-3d4a1f8bfcfd778ab7def54155324331"}},
-{"id":"JSPP","key":"JSPP","value":{"rev":"7-af09a2bb193b3ff44775e8fbb7d4f522"}},
-{"id":"JSV","key":"JSV","value":{"rev":"3-41a7af86909046111be8ee9b56b077c8"}},
-{"id":"Jody","key":"Jody","value":{"rev":"43-70c1cf40e93cd8ce53249e5295d6b159"}},
-{"id":"Journaling-Hash","key":"Journaling-Hash","value":{"rev":"3-ac676eecb40a4dff301c671fa4bb6be9"}},
-{"id":"Kahana","key":"Kahana","value":{"rev":"33-1cb7e291ae02cee4e8105509571223f5"}},
-{"id":"LazyBoy","key":"LazyBoy","value":{"rev":"13-20a8894e3a957f184f5ae2a3e709551c"}},
-{"id":"Lingo","key":"Lingo","value":{"rev":"9-1af9a6df616e601f09c8cec07ccad1ae"}},
-{"id":"Loggy","key":"Loggy","value":{"rev":"33-e115c25163ab468314eedbe497d1c51e"}},
-{"id":"MeCab","key":"MeCab","value":{"rev":"4-2687176c7b878930e812a534976a6988"}},
-{"id":"Mercury","key":"Mercury","value":{"rev":"3-09a6bff1332ed829bd2c37bfec244a41"}},
-{"id":"Mu","key":"Mu","value":{"rev":"7-28e6ab82c402c3a75fe0f79dea846b97"}},
-{"id":"N","key":"N","value":{"rev":"7-e265046b5bdd299b2cad1584083ce2d5"}},
-{"id":"NORRIS","key":"NORRIS","value":{"rev":"3-4b5b23b09118582c44414f8d480619e6"}},
-{"id":"NetOS","key":"NetOS","value":{"rev":"3-3f943f87a24c11e6dd8c265469914e80"}},
-{"id":"NewBase60","key":"NewBase60","value":{"rev":"3-fd84758db79870e82917d358c6673f32"}},
-{"id":"NoCR","key":"NoCR","value":{"rev":"3-8f6cddd528f2d6045e3dda6006fb6948"}},
-{"id":"NodObjC","key":"NodObjC","value":{"rev":"15-ea6ab2df532c90fcefe5a428950bfdbb"}},
-{"id":"Node-JavaScript-Preprocessor","key":"Node-JavaScript-Preprocessor","value":{"rev":"13-4662b5ad742caaa467ec5d6c8e77b1e5"}},
-{"id":"NodeInterval","key":"NodeInterval","value":{"rev":"3-dc3446db2e0cd5be29a3c07942dba66d"}},
-{"id":"NodeSSH","key":"NodeSSH","value":{"rev":"3-45530fae5a69c44a6dd92357910f4212"}},
-{"id":"Nonsense","key":"Nonsense","value":{"rev":"3-9d86191475bc76dc3dd496d4dfe5d94e"}},
-{"id":"NormAndVal","key":"NormAndVal","value":{"rev":"9-d3b3d6ffd046292f4733aa5f3eb7be61"}},
-{"id":"Olive","key":"Olive","value":{"rev":"5-67f3057f09cae5104f09472db1d215aa"}},
-{"id":"OnCollect","key":"OnCollect","value":{"rev":"16-6dbe3afd04f123dda87bb1e21cdfd776"}},
-{"id":"PJsonCouch","key":"PJsonCouch","value":{"rev":"3-be9588f49d85094c36288eb63f8236b3"}},
-{"id":"PMInject","key":"PMInject","value":{"rev":"5-da518047d8273dbf3b3c05ea25e77836"}},
-{"id":"PanPG","key":"PanPG","value":{"rev":"13-beb54225a6b1be4c157434c28adca016"}},
-{"id":"PerfDriver","key":"PerfDriver","value":{"rev":"2-b448fb2f407f341b8df7032f29e4920f"}},
-{"id":"PostgresClient","key":"PostgresClient","value":{"rev":"8-2baec6847f8ad7dcf24b7d61a4034163"}},
-{"id":"QuickWeb","key":"QuickWeb","value":{"rev":"13-d388df9c484021ecd75bc9650d659a67"}},
-{"id":"R.js","key":"R.js","value":{"rev":"3-3f154b95ec6fc744f95a29750f16667e"}},
-{"id":"R2","key":"R2","value":{"rev":"11-f5ccff6f108f6b928caafb62b80d1056"}},
-{"id":"Reston","key":"Reston","value":{"rev":"5-9d234010f32f593edafc04620f3cf2bd"}},
-{"id":"Sardines","key":"Sardines","value":{"rev":"5-d7d3d2269420e21c2c62b86ff5a0021e"}},
-{"id":"SessionWebSocket","key":"SessionWebSocket","value":{"rev":"8-d9fc9beaf90057aefeb701addd7fc845"}},
-{"id":"Sheet","key":"Sheet","value":{"rev":"8-c827c713564e4ae5a17988ffea520d0d"}},
-{"id":"Spec_My_Node","key":"Spec_My_Node","value":{"rev":"8-fa58408e9d9736d9c6fa8daf5d632106"}},
-{"id":"Spot","key":"Spot","value":{"rev":"3-6b6c2131451fed28fb57c924c4fa44cc"}},
-{"id":"Sslac","key":"Sslac","value":{"rev":"3-70a2215cc7505729254aa6fa1d9a25d9"}},
-{"id":"StaticServer","key":"StaticServer","value":{"rev":"3-6f5433177ef4d76a52f01c093117a532"}},
-{"id":"StringScanner","key":"StringScanner","value":{"rev":"3-e85d0646c25ec477c1c45538712d3a38"}},
-{"id":"Structr","key":"Structr","value":{"rev":"3-449720001801cff5831c2cc0e0f1fcf8"}},
-{"id":"Templ8","key":"Templ8","value":{"rev":"11-4e6edb250bc250df20b2d557ca7f6589"}},
-{"id":"Template","key":"Template","value":{"rev":"6-1f055c73524d2b7e82eb6c225bd4b8e0"}},
-{"id":"Thimble","key":"Thimble","value":{"rev":"3-8499b261206f2f2e9acf92d8a4e54afb"}},
-{"id":"Toji","key":"Toji","value":{"rev":"96-511e171ad9f32a9264c2cdf01accacfb"}},
-{"id":"TwigJS","key":"TwigJS","value":{"rev":"3-1aaefc6d6895d7d4824174d410a747b9"}},
-{"id":"UkGeoTool","key":"UkGeoTool","value":{"rev":"5-e84291128e12f66cebb972a60c1d710f"}},
-{"id":"Vector","key":"Vector","value":{"rev":"3-bf5dc97abe7cf1057260b70638175a96"}},
-{"id":"_design/app","key":"_design/app","value":{"rev":"421-b1661d854599a58d0904d68aa44d8b63"}},
-{"id":"_design/ui","key":"_design/ui","value":{"rev":"78-db00aeb91a59a326e38e2bef7f1126cf"}},
-{"id":"aaronblohowiak-plugify-js","key":"aaronblohowiak-plugify-js","value":{"rev":"3-0272c269eacd0c86bfc1711566922577"}},
-{"id":"aaronblohowiak-uglify-js","key":"aaronblohowiak-uglify-js","value":{"rev":"3-77844a6def6ec428d75caa0846c95502"}},
-{"id":"aasm-js","key":"aasm-js","value":{"rev":"3-01a48108d55909575440d9e0ef114f37"}},
-{"id":"abbrev","key":"abbrev","value":{"rev":"16-e17a2b6c7360955b950edf2cb2ef1602"}},
-{"id":"abhispeak","key":"abhispeak","value":{"rev":"5-9889431f68ec10212db3be91796608e2"}},
-{"id":"ace","key":"ace","value":{"rev":"3-e8d267de6c17ebaa82c2869aff983c74"}},
-{"id":"acl","key":"acl","value":{"rev":"13-87c131a1801dc50840a177be73ce1c37"}},
-{"id":"active-client","key":"active-client","value":{"rev":"5-0ca16ae2e48a3ba9de2f6830a8c2d3a0"}},
-{"id":"activenode-monitor","key":"activenode-monitor","value":{"rev":"9-2634fa446379c39475d0ce4183fb92f2"}},
-{"id":"activeobject","key":"activeobject","value":{"rev":"43-6d73e28412612aaee37771e3ab292c3d"}},
-{"id":"actor","key":"actor","value":{"rev":"3-f6b84acd7d2e689b860e3142a18cd460"}},
-{"id":"actors","key":"actors","value":{"rev":"3-6df913bbe5b99968a2e71ae4ef07b2d2"}},
-{"id":"addTimeout","key":"addTimeout","value":{"rev":"15-e5170f0597fe8cf5ed0b54b7e6f2cde1"}},
-{"id":"addressable","key":"addressable","value":{"rev":"27-0c74fde458d92e4b93a29317da15bb3c"}},
-{"id":"aejs","key":"aejs","value":{"rev":"7-4928e2ce6151067cd6c585c0ba3e0bc3"}},
-{"id":"aenoa-supervisor","key":"aenoa-supervisor","value":{"rev":"7-6d399675981e76cfdfb9144bc2f7fb6d"}},
-{"id":"after","key":"after","value":{"rev":"9-baee7683ff54182cf7544cc05b0a4ad7"}},
-{"id":"ahr","key":"ahr","value":{"rev":"27-4ed272c516f3f2f9310e4f0ef28254e9"}},
-{"id":"ahr.browser","key":"ahr.browser","value":{"rev":"3-f7226aab4a1a3ab5f77379f92aae87f9"}},
-{"id":"ahr.browser.jsonp","key":"ahr.browser.jsonp","value":{"rev":"3-abed17143cf5e3c451c3d7da457e6f5b"}},
-{"id":"ahr.browser.request","key":"ahr.browser.request","value":{"rev":"7-fafd7b079d0415f388b64a20509a270b"}},
-{"id":"ahr.node","key":"ahr.node","value":{"rev":"17-f487a4a9896bd3876a11f9dfa1c639a7"}},
-{"id":"ahr.options","key":"ahr.options","value":{"rev":"13-904a4cea763a4455f7b2ae0abba18b8d"}},
-{"id":"ahr.utils","key":"ahr.utils","value":{"rev":"3-5f7b4104ea280d1fd36370c8f3356ead"}},
-{"id":"ahr2","key":"ahr2","value":{"rev":"87-ddf57f3ee158dcd23b2df330e2883a1d"}},
-{"id":"ain","key":"ain","value":{"rev":"7-d840736668fb36e9be3c26a68c5cd411"}},
-{"id":"ain-tcp","key":"ain-tcp","value":{"rev":"11-d18a1780bced8981d1d9dbd262ac4045"}},
-{"id":"ain2","key":"ain2","value":{"rev":"5-0b67879174f5f0a06448c7c737d98b5e"}},
-{"id":"airbrake","key":"airbrake","value":{"rev":"33-4bb9f822162e0c930c31b7f961938dc9"}},
-{"id":"ajaxrunner","key":"ajaxrunner","value":{"rev":"2-17e6a5de4f0339f4e6ce0b7681d0ba0c"}},
-{"id":"ajs","key":"ajs","value":{"rev":"13-063a29dec829fdaf4ca63d622137d1c6"}},
-{"id":"ajs-xgettext","key":"ajs-xgettext","value":{"rev":"3-cd4bbcc1c9d87fa7119d3bbbca99b793"}},
-{"id":"akismet","key":"akismet","value":{"rev":"13-a144e15dd6c2b13177572e80a526edd1"}},
-{"id":"alfred","key":"alfred","value":{"rev":"45-9a69041b18d2587c016b1b1deccdb2ce"}},
-{"id":"alfred-bcrypt","key":"alfred-bcrypt","value":{"rev":"11-7ed10ef318e5515d1ef7c040818ddb22"}},
-{"id":"algorithm","key":"algorithm","value":{"rev":"3-9ec0b38298cc15b0f295152de8763358"}},
-{"id":"algorithm-js","key":"algorithm-js","value":{"rev":"9-dd7496b7ec2e3b23cc7bb182ae3aac6d"}},
-{"id":"alists","key":"alists","value":{"rev":"5-22cc13c86d84081a826ac79a0ae5cda3"}},
-{"id":"altshift","key":"altshift","value":{"rev":"53-1c51d8657f271f390503a6fe988d09db"}},
-{"id":"amazon-ses","key":"amazon-ses","value":{"rev":"5-c175d60de2232a5664666a80832269e5"}},
-{"id":"ambrosia","key":"ambrosia","value":{"rev":"3-8c648ec7393cf842838c20e2c5d9bce4"}},
-{"id":"amd","key":"amd","value":{"rev":"3-d78c4df97a577af598a7def2a38379fa"}},
-{"id":"amionline","key":"amionline","value":{"rev":"3-a62887a632523700402b0f4ebb896812"}},
-{"id":"amo-version-reduce","key":"amo-version-reduce","value":{"rev":"3-05f6956269e5e921ca3486d3d6ea74b0"}},
-{"id":"amqp","key":"amqp","value":{"rev":"17-ee62d2b8248f8eb13f3369422d66df26"}},
-{"id":"amqpsnoop","key":"amqpsnoop","value":{"rev":"3-36a1c45647bcfb2f56cf68dbc24b0426"}},
-{"id":"ams","key":"ams","value":{"rev":"40-1c0cc53ad942d2fd23c89618263befc8"}},
-{"id":"amulet","key":"amulet","value":{"rev":"7-d1ed71811e45652799982e4f2e9ffb36"}},
-{"id":"anachronism","key":"anachronism","value":{"rev":"11-468bdb40f9a5aa146bae3c1c6253d0e1"}},
-{"id":"analytics","key":"analytics","value":{"rev":"3-a143ccdd863b5f7dbee4d2f7732390b3"}},
-{"id":"ann","key":"ann","value":{"rev":"9-41f00594d6216c439f05f7116a697cac"}},
-{"id":"ansi-color","key":"ansi-color","value":{"rev":"6-d6f02b32525c1909d5134afa20f470de"}},
-{"id":"ansi-font","key":"ansi-font","value":{"rev":"3-b039661ad9b6aa7baf34741b449c4420"}},
-{"id":"ant","key":"ant","value":{"rev":"3-35a64e0b7f6eb63a90c32971694b0d93"}},
-{"id":"anvil.js","key":"anvil.js","value":{"rev":"19-290c82075f0a9ad764cdf6dc5c558e0f"}},
-{"id":"aop","key":"aop","value":{"rev":"7-5963506c9e7912aa56fda065c56fd472"}},
-{"id":"ap","key":"ap","value":{"rev":"3-f525b5b490a1ada4452f46307bf92d08"}},
-{"id":"apac","key":"apac","value":{"rev":"12-945d0313a84797b4c3df19da4bec14d4"}},
-{"id":"aparser","key":"aparser","value":{"rev":"5-cb35cfc9184ace6642413dad97e49dca"}},
-{"id":"api-easy","key":"api-easy","value":{"rev":"15-2ab5eefef1377ff217cb020e80343d65"}},
-{"id":"api.js","key":"api.js","value":{"rev":"5-a14b8112fbda17022c80356a010de59a"}},
-{"id":"api_request","key":"api_request","value":{"rev":"3-8531e71f5cf2f3f811684269132d72d4"}},
-{"id":"apimaker","key":"apimaker","value":{"rev":"3-bdbd4a2ebf5b67276d89ea73eaa20025"}},
-{"id":"apn","key":"apn","value":{"rev":"30-0513d27341f587b39db54300c380921f"}},
-{"id":"app","key":"app","value":{"rev":"3-d349ddb47167f60c03d259649569e002"}},
-{"id":"app.js","key":"app.js","value":{"rev":"3-bff3646634daccfd964b4bbe510acb25"}},
-{"id":"append","key":"append","value":{"rev":"7-53e2f4ab2a69dc0c5e92f10a154998b6"}},
-{"id":"applescript","key":"applescript","value":{"rev":"10-ef5ab30ccd660dc71fb89e173f30994a"}},
-{"id":"appzone","key":"appzone","value":{"rev":"21-fb27e24d460677fe9c7eda0d9fb1fead"}},
-{"id":"apricot","key":"apricot","value":{"rev":"14-b55361574a0715f78afc76ddf6125845"}},
-{"id":"arcane","key":"arcane","value":{"rev":"3-f846c96e890ed6150d4271c93cc05a24"}},
-{"id":"archetype","key":"archetype","value":{"rev":"3-441336def3b7aade89c8c1c19a84f56d"}},
-{"id":"ardrone","key":"ardrone","value":{"rev":"8-540e95b796da734366a89bb06dc430c5"}},
-{"id":"ardrone-web","key":"ardrone-web","value":{"rev":"3-8a53cc85a95be20cd44921347e82bbe4"}},
-{"id":"arduino","key":"arduino","value":{"rev":"3-22f6359c47412d086d50dc7f1a994139"}},
-{"id":"argon","key":"argon","value":{"rev":"3-ba12426ce67fac01273310cb3909b855"}},
-{"id":"argparse","key":"argparse","value":{"rev":"8-5e841e38cca6cfc3fe1d1f507a7f47ee"}},
-{"id":"argparser","key":"argparser","value":{"rev":"19-b8793bfc005dd84e1213ee53ae56206d"}},
-{"id":"argsparser","key":"argsparser","value":{"rev":"26-d31eca2f41546172763af629fc50631f"}},
-{"id":"argtype","key":"argtype","value":{"rev":"10-96a7d23e571d56cf598472115bcac571"}},
-{"id":"arguments","key":"arguments","value":{"rev":"7-767de2797f41702690bef5928ec7c6e9"}},
-{"id":"armory","key":"armory","value":{"rev":"41-ea0f7bd0868c11fc9986fa708e11e071"}},
-{"id":"armrest","key":"armrest","value":{"rev":"3-bbe40b6320b6328211be33425bed20c8"}},
-{"id":"arnold","key":"arnold","value":{"rev":"3-4896fc8d02b8623f47a024f0dbfa44bf"}},
-{"id":"arouter","key":"arouter","value":{"rev":"7-55cab1f7128df54f27be94039a8d8dc5"}},
-{"id":"array-promise","key":"array-promise","value":{"rev":"3-e2184561ee65de64c2dfeb57955c758f"}},
-{"id":"arrayemitter","key":"arrayemitter","value":{"rev":"3-d64c917ac1095bfcbf173dac88d3d148"}},
-{"id":"asEvented","key":"asEvented","value":{"rev":"3-2ad3693b49d4d9dc9a11c669033a356e"}},
-{"id":"asciimo","key":"asciimo","value":{"rev":"12-50130f5ac2ef4d95df190be2c8ede893"}},
-{"id":"asereje","key":"asereje","value":{"rev":"15-84853499f89a87109ddf47ba692323ba"}},
-{"id":"ash","key":"ash","value":{"rev":"6-3697a3aee708bece8a08c7e0d1010476"}},
-{"id":"ask","key":"ask","value":{"rev":"3-321bbc3837d749b5d97bff251693a825"}},
-{"id":"asn1","key":"asn1","value":{"rev":"13-e681a814a4a1439a22b19e141b45006f"}},
-{"id":"aspsms","key":"aspsms","value":{"rev":"9-7b82d722bdac29a4da8c88b642ad64f2"}},
-{"id":"assert","key":"assert","value":{"rev":"3-85480762f5cb0be2cb85f80918257189"}},
-{"id":"assertions","key":"assertions","value":{"rev":"9-d797d4c09aa994556c7d5fdb4e86fe1b"}},
-{"id":"assertn","key":"assertn","value":{"rev":"6-080a4fb5d2700a6850d56b58c6f6ee9e"}},
-{"id":"assertvanish","key":"assertvanish","value":{"rev":"13-3b0b555ff77c1bfc2fe2642d50879648"}},
-{"id":"asset","key":"asset","value":{"rev":"33-cb70b68e0e05e9c9a18b3d89f1bb43fc"}},
-{"id":"assetgraph","key":"assetgraph","value":{"rev":"82-7853d644e64741b46fdd29a997ec4852"}},
-{"id":"assetgraph-builder","key":"assetgraph-builder","value":{"rev":"61-1ed98d95f3589050037851edde760a01"}},
-{"id":"assetgraph-sprite","key":"assetgraph-sprite","value":{"rev":"15-351b5fd9e50a3dda8580d014383423e0"}},
-{"id":"assets-expander","key":"assets-expander","value":{"rev":"11-f9e1197b773d0031dd015f1d871b87c6"}},
-{"id":"assets-packager","key":"assets-packager","value":{"rev":"13-51f7d2d57ed35be6aff2cc2aa2fa74db"}},
-{"id":"assoc","key":"assoc","value":{"rev":"9-07098388f501da16bf6afe6c9babefd5"}},
-{"id":"ast-inlining","key":"ast-inlining","value":{"rev":"5-02e7e2c3a06ed81ddc61980f778ac413"}},
-{"id":"ast-transformer","key":"ast-transformer","value":{"rev":"5-b4020bb763b8839afa8d3ac0d54a6f26"}},
-{"id":"astar","key":"astar","value":{"rev":"3-3df8c56c64c3863ef0650c0c74e2801b"}},
-{"id":"aster","key":"aster","value":{"rev":"7-b187c1270d3924f5ee04044e579d2df9"}},
-{"id":"asterisk-manager","key":"asterisk-manager","value":{"rev":"3-7fbf4294dafee04cc17cca4692c09c33"}},
-{"id":"astrolin","key":"astrolin","value":{"rev":"3-30ac515a2388e7dc22b25c15346f6d7e"}},
-{"id":"asyn","key":"asyn","value":{"rev":"3-51996b0197c21e85858559045c1481b7"}},
-{"id":"async","key":"async","value":{"rev":"26-73aea795f46345a7e65d89ec75dff2f1"}},
-{"id":"async-array","key":"async-array","value":{"rev":"17-3ef5faff03333aa5b2a733ef36118066"}},
-{"id":"async-chain","key":"async-chain","value":{"rev":"9-10ec3e50b01567390d55973494e36d43"}},
-{"id":"async-ejs","key":"async-ejs","value":{"rev":"19-6f0e6e0eeb3cdb4c816ea427d8288d7d"}},
-{"id":"async-fs","key":"async-fs","value":{"rev":"3-b96906283d345604f784dfcdbeb21a63"}},
-{"id":"async-it","key":"async-it","value":{"rev":"7-6aed4439df25989cfa040fa4b5dd4ff2"}},
-{"id":"async-json","key":"async-json","value":{"rev":"5-589d5b6665d00c5bffb99bb142cac5d0"}},
-{"id":"async-memoizer","key":"async-memoizer","value":{"rev":"9-01d56f4dff95e61a39dab5ebee49d5dc"}},
-{"id":"async-object","key":"async-object","value":{"rev":"21-1bf28b0f8a7d875b54126437f3539f9b"}},
-{"id":"asyncEJS","key":"asyncEJS","value":{"rev":"3-28b1c94255381f23a4d4f52366255937"}},
-{"id":"async_testing","key":"async_testing","value":{"rev":"14-0275d8b608d8644dfe8d68a81fa07e98"}},
-{"id":"asyncevents","key":"asyncevents","value":{"rev":"3-de104847994365dcab5042db2b46fb84"}},
-{"id":"asyncify","key":"asyncify","value":{"rev":"3-3f6deb82ee1c6cb25e83a48fe6379b75"}},
-{"id":"asyncjs","key":"asyncjs","value":{"rev":"27-15903d7351f80ed37cb069aedbfc26cc"}},
-{"id":"asynct","key":"asynct","value":{"rev":"5-6be002b3e005d2d53b80fff32ccbd2ac"}},
-{"id":"at_scheduler","key":"at_scheduler","value":{"rev":"3-5587061c90218d2e99b6e22d5b488b0b"}},
-{"id":"atbar","key":"atbar","value":{"rev":"19-e9e906d4874afd4d8bf2d8349ed46dff"}},
-{"id":"atob","key":"atob","value":{"rev":"3-bc907d10dd2cfc940de586dc090451da"}},
-{"id":"audiolib","key":"audiolib","value":{"rev":"17-cb2f55ff50061081b440f0605cf0450c"}},
-{"id":"audit_couchdb","key":"audit_couchdb","value":{"rev":"24-6e620895b454b345b2aed13db847c237"}},
-{"id":"auditor","key":"auditor","value":{"rev":"11-c4df509d40650c015943dd90315a12c0"}},
-{"id":"authnet_cim","key":"authnet_cim","value":{"rev":"7-f02bbd206ac2b8c05255bcd8171ac1eb"}},
-{"id":"autocomplete","key":"autocomplete","value":{"rev":"3-f2773bca040d5abcd0536dbebe5847bf"}},
-{"id":"autodafe","key":"autodafe","value":{"rev":"7-a75262b53a9dd1a25693adecde7206d7"}},
-{"id":"autolint","key":"autolint","value":{"rev":"7-07f885902d72b52678fcc57aa4b9c592"}},
-{"id":"autoload","key":"autoload","value":{"rev":"5-9247704d9a992a175e3ae49f4af757d0"}},
-{"id":"autoloader","key":"autoloader","value":{"rev":"11-293c20c34d0c81fac5c06b699576b1fe"}},
-{"id":"auton","key":"auton","value":{"rev":"25-4fcb7a62b607b7929b62a9b792afef55"}},
-{"id":"autoreleasepool","key":"autoreleasepool","value":{"rev":"5-5d2798bf74bbec583cc6f19127e3c89e"}},
-{"id":"autorequire","key":"autorequire","value":{"rev":"9-564a46b355532fcec24db0afc99daed5"}},
-{"id":"autotest","key":"autotest","value":{"rev":"7-e319995dd0e1fbd935c14c46b1234f77"}},
-{"id":"awesome","key":"awesome","value":{"rev":"15-4458b746e4722214bd26ea15e453288e"}},
-{"id":"aws","key":"aws","value":{"rev":"14-9a8f0989be29034d3fa5c66c594b649b"}},
-{"id":"aws-js","key":"aws-js","value":{"rev":"6-c61d87b8ad948cd065d2ca222808c209"}},
-{"id":"aws-lib","key":"aws-lib","value":{"rev":"36-9733e215c03d185a860574600a8feb14"}},
-{"id":"aws2js","key":"aws2js","value":{"rev":"35-42498f44a5ae7d4f3c84096b435d0e0b"}},
-{"id":"azure","key":"azure","value":{"rev":"5-2c4e05bd842d3dcfa419f4d2b67121e2"}},
-{"id":"b64","key":"b64","value":{"rev":"3-e5e727a46df4c8aad38acd117d717140"}},
-{"id":"b64url","key":"b64url","value":{"rev":"9-ab3b017f00a53b0078261254704c30ba"}},
-{"id":"ba","key":"ba","value":{"rev":"11-3cec7ec9a566fe95fbeb34271538d60a"}},
-{"id":"babelweb","key":"babelweb","value":{"rev":"11-8e6a2fe00822cec15573cdda48b6d0a0"}},
-{"id":"backbone","key":"backbone","value":{"rev":"37-79b95355f8af59bf9131e14d52b68edc"}},
-{"id":"backbone-browserify","key":"backbone-browserify","value":{"rev":"3-f25dac0b05a7f7aa5dbc0f4a1ad97969"}},
-{"id":"backbone-celtra","key":"backbone-celtra","value":{"rev":"3-775a5ebb25c1cd84723add52774ece84"}},
-{"id":"backbone-couch","key":"backbone-couch","value":{"rev":"8-548327b3cd7ee7a4144c9070377be5f6"}},
-{"id":"backbone-cradle","key":"backbone-cradle","value":{"rev":"3-b9bc220ec48b05eed1d4d77a746b10db"}},
-{"id":"backbone-dirty","key":"backbone-dirty","value":{"rev":"21-fa0f688cc95a85c0fc440733f09243b5"}},
-{"id":"backbone-dnode","key":"backbone-dnode","value":{"rev":"65-3212d3aa3284efb3bc0732bac71b5a2e"}},
-{"id":"backbone-proxy","key":"backbone-proxy","value":{"rev":"3-3602cb984bdd266516a3145663f9a5c6"}},
-{"id":"backbone-redis","key":"backbone-redis","value":{"rev":"9-2e3f6a9e095b00ccec9aa19b3fbc65eb"}},
-{"id":"backbone-rel","key":"backbone-rel","value":{"rev":"5-f9773dc85f1c502e61c163a22d2f74aa"}},
-{"id":"backbone-simpledb","key":"backbone-simpledb","value":{"rev":"5-a815128e1e3593696f666f8b3da36d78"}},
-{"id":"backbone-stash","key":"backbone-stash","value":{"rev":"19-8d3cc5f9ed28f9a56856154e2b4e7f78"}},
-{"id":"backplane","key":"backplane","value":{"rev":"7-f69188dac21e007b09efe1b5b3575087"}},
-{"id":"backport-0.4","key":"backport-0.4","value":{"rev":"11-25e15f01f1ef9e626433a82284bc00d6"}},
-{"id":"backuptweets","key":"backuptweets","value":{"rev":"3-68712682aada41082d3ae36c03c8f899"}},
-{"id":"bake","key":"bake","value":{"rev":"113-ce13508ba2b4f15aa4df06d796aa4573"}},
-{"id":"bal-util","key":"bal-util","value":{"rev":"31-b818725a5af131c89ec66b9fdebf2122"}},
-{"id":"balancer","key":"balancer","value":{"rev":"7-63dcb4327081a8ec4d6c51a21253cb4b"}},
-{"id":"bancroft","key":"bancroft","value":{"rev":"11-8fa3370a4615a0ed4ba411b05c0285f4"}},
-{"id":"bandcamp","key":"bandcamp","value":{"rev":"41-f2fee472d63257fdba9e5fa8ad570ee8"}},
-{"id":"banner","key":"banner","value":{"rev":"19-89a447e2136b2fabddbad84abcd63a27"}},
-{"id":"banzai-docstore-couchdb","key":"banzai-docstore-couchdb","value":{"rev":"5-950c115737d634e2f48ee1c772788321"}},
-{"id":"banzai-redis","key":"banzai-redis","value":{"rev":"3-446f29e0819fd79c810fdfa8ce05bdcf"}},
-{"id":"banzai-statestore-couchdb","key":"banzai-statestore-couchdb","value":{"rev":"5-c965442821741ce6f20e266fe43aea4a"}},
-{"id":"banzai-statestore-mem","key":"banzai-statestore-mem","value":{"rev":"3-a0891a1a2344922d91781c332ed26528"}},
-{"id":"bar","key":"bar","value":{"rev":"7-fbb44a76cb023e6a8941f15576cf190b"}},
-{"id":"barc","key":"barc","value":{"rev":"7-dfe352b410782543d6b1aea292f123eb"}},
-{"id":"barista","key":"barista","value":{"rev":"9-d3f3c776453ba69a81947f34d7cc3cbf"}},
-{"id":"bark","key":"bark","value":{"rev":"20-fc1a94f80cfa199c16aa075e940e06dc"}},
-{"id":"barricane-db","key":"barricane-db","value":{"rev":"3-450947b9a05047fe195f76a69a3144e8"}},
-{"id":"base-converter","key":"base-converter","value":{"rev":"7-1b49b01df111176b89343ad56ac68d5c"}},
-{"id":"base32","key":"base32","value":{"rev":"11-d686c54c9de557681356e74b83d916e8"}},
-{"id":"base64","key":"base64","value":{"rev":"24-bd713c3d7e96fad180263ed7563c595e"}},
-{"id":"bash","key":"bash","value":{"rev":"3-86a1c61babfa47da0ebc14c2f4e59a6a"}},
-{"id":"basic-auth","key":"basic-auth","value":{"rev":"3-472a87af27264ae81bd4394d70792e55"}},
-{"id":"basicFFmpeg","key":"basicFFmpeg","value":{"rev":"15-3e87a41c543bde1e6f7c49d021fda62f"}},
-{"id":"basicauth","key":"basicauth","value":{"rev":"3-15d95a05b6f5e7b6d7261f87c4eb73de"}},
-{"id":"basil-cookie","key":"basil-cookie","value":{"rev":"11-fff96b263f31b9d017e3cf59bf6fb23f"}},
-{"id":"batik","key":"batik","value":{"rev":"7-a19ce28cbbf54649fa225ed5474eff02"}},
-{"id":"batman","key":"batman","value":{"rev":"15-6af5469bf143790cbb4af196824c9e95"}},
-{"id":"batteries","key":"batteries","value":{"rev":"13-656c68fe887f4af3ef1e720e64275f4e"}},
-{"id":"bbcode","key":"bbcode","value":{"rev":"5-e79a8b62125f8a3a1751bf7bd8875f33"}},
-{"id":"bcrypt","key":"bcrypt","value":{"rev":"31-db8496d1239362a97a26f1e5eeb8a733"}},
-{"id":"beaconpush","key":"beaconpush","value":{"rev":"3-956fcd87a6d3f9d5b9775d47e36aa3e5"}},
-{"id":"bean","key":"bean","value":{"rev":"56-151c1558e15016205e65bd515eab9ee0"}},
-{"id":"bean.database.mongo","key":"bean.database.mongo","value":{"rev":"3-ede73166710137cbf570385b7e8f17fe"}},
-{"id":"beandocs","key":"beandocs","value":{"rev":"3-9f7492984c95b69ca1ad30d40223f117"}},
-{"id":"beanpole","key":"beanpole","value":{"rev":"53-565a78a2304405cdc9f4a6b6101160fa"}},
-{"id":"beanprep","key":"beanprep","value":{"rev":"3-bd387f0072514b8e44131671f9aad1b0"}},
-{"id":"beans","key":"beans","value":{"rev":"54-7f6d40a2a5bf228fe3547cce43edaa63"}},
-{"id":"beanstalk_client","key":"beanstalk_client","value":{"rev":"6-13c8c80aa6469b5dcf20d65909289383"}},
-{"id":"beanstalk_worker","key":"beanstalk_worker","value":{"rev":"6-45500991db97ed5a18ea96f3621bf99f"}},
-{"id":"beantest","key":"beantest","value":{"rev":"7-52d8160a0c0420c7d659b2ee10f26644"}},
-{"id":"beatit","key":"beatit","value":{"rev":"7-c0ba5f95b0601dcb628e4820555cc252"}},
-{"id":"beatport","key":"beatport","value":{"rev":"5-3b186b633ceea7f047e1df91e7b683a5"}},
-{"id":"beautifyjs","key":"beautifyjs","value":{"rev":"3-89ce050152aca0727c099060229ddc73"}},
-{"id":"beaver","key":"beaver","value":{"rev":"17-3b56116e8e40205e8efcedefee0319e3"}},
-{"id":"beeline","key":"beeline","value":{"rev":"11-92a4bd9524cc7aec3106efcacff6faed"}},
-{"id":"beet","key":"beet","value":{"rev":"95-3c9d9de63c363319b2201ac83bc0ee7d"}},
-{"id":"begin","key":"begin","value":{"rev":"3-b32a5eb1b9475353b37f90813ed89dce"}},
-{"id":"begin.js","key":"begin.js","value":{"rev":"7-9156869392a448595bf3e5723fcb7b57"}},
-{"id":"bejesus-api","key":"bejesus-api","value":{"rev":"11-6b42f8ffc370c494d01481b64536e91e"}},
-{"id":"bejesus-cli","key":"bejesus-cli","value":{"rev":"31-5fbbfe5ec1f6a0a7a3fafdf69230434a"}},
-{"id":"bem","key":"bem","value":{"rev":"22-c0e0f8d9e92b355246fd15058199b73c"}},
-{"id":"ben","key":"ben","value":{"rev":"3-debe52552a86f1e71895dd5d32add585"}},
-{"id":"bench","key":"bench","value":{"rev":"14-20987e1becf3acd1bd1833b04712c87c"}},
-{"id":"bencher","key":"bencher","value":{"rev":"3-08866a8fdcf180582b43690bbbf21087"}},
-{"id":"benchmark","key":"benchmark","value":{"rev":"219-0669bc24f3f2918d93369bb0d801abf3"}},
-{"id":"bencode","key":"bencode","value":{"rev":"8-7b9eff4c1658fb3a054ebc6f50e6edcd"}},
-{"id":"beseda","key":"beseda","value":{"rev":"49-5cc8c4e9bb3e836de7db58c3adf9a5bb"}},
-{"id":"bf","key":"bf","value":{"rev":"14-d81312e1bf4f7202b801b4343199aa55"}},
-{"id":"biggie-router","key":"biggie-router","value":{"rev":"42-56a546a78d5abd4402183b3d300d563e"}},
-{"id":"bigint","key":"bigint","value":{"rev":"58-02f368567849596219d6a0e87d9bc6b9"}},
-{"id":"bignumber","key":"bignumber","value":{"rev":"3-6e372428992a767e0a991ec3f39b8343"}},
-{"id":"binary","key":"binary","value":{"rev":"47-947aa2f5238a68e34b164ef7e50ece28"}},
-{"id":"binarySearch","key":"binarySearch","value":{"rev":"15-93a3d2f9c2690457023b5ae5f3d00446"}},
-{"id":"bind","key":"bind","value":{"rev":"9-b74d0af83e90a2655e564ab64bf1d27d"}},
-{"id":"binpack","key":"binpack","value":{"rev":"7-3dc67a64e0ef01f3aa59441c5150e04f"}},
-{"id":"bintrees","key":"bintrees","value":{"rev":"12-507fcd92f447f81842cba08cacb425cf"}},
-{"id":"bisection","key":"bisection","value":{"rev":"5-f785ea3bbd8fcc7cd9381d20417b87bb"}},
-{"id":"bison","key":"bison","value":{"rev":"12-e663b2ef96650b3b5a0cc36524e1b94a"}},
-{"id":"bitcoder","key":"bitcoder","value":{"rev":"8-19c957d6b845f4d7ad531951c971e03d"}},
-{"id":"bitcoin","key":"bitcoin","value":{"rev":"13-af88a28c02ab146622743c4c1c32e87b"}},
-{"id":"bitcoin-impl","key":"bitcoin-impl","value":{"rev":"8-99068f1d259e3c75209a6bd08e3e06a2"}},
-{"id":"bitcoin-p2p","key":"bitcoin-p2p","value":{"rev":"25-6df0283eb6e419bc3a1571f17721b100"}},
-{"id":"bitcoinjs-mongoose","key":"bitcoinjs-mongoose","value":{"rev":"3-57e239b31e218693f8cf3cf1cf098437"}},
-{"id":"bitly","key":"bitly","value":{"rev":"8-d6bfac8338e223fe62538954d2e9246a"}},
-{"id":"bitly.node","key":"bitly.node","value":{"rev":"3-15329b7a77633e0dae2c720e592420fb"}},
-{"id":"biwascheme","key":"biwascheme","value":{"rev":"3-37a85eed1bd2d4ee85ef1e100e7ebe8f"}},
-{"id":"black","key":"black","value":{"rev":"3-e07ae2273357da5894f4b7cdf1b20560"}},
-{"id":"black_coffee","key":"black_coffee","value":{"rev":"3-c5c764cf550ad3c831a085509f64cdfb"}},
-{"id":"bleach","key":"bleach","value":{"rev":"5-ef3ab7e761a6903eb70da1550a07e53d"}},
-{"id":"blend","key":"blend","value":{"rev":"16-c5dd075b3ede45f91056b4b768b2bfe8"}},
-{"id":"bless","key":"bless","value":{"rev":"29-1b9bc6f17acd144f51a297e4bdccfe0e"}},
-{"id":"blitz","key":"blitz","value":{"rev":"5-8bf6786f6fd7dbc0570ba21f803f35e6"}},
-{"id":"blo","key":"blo","value":{"rev":"5-9e752ea37438ea026e88a7aa7e7a91ba"}},
-{"id":"blog","key":"blog","value":{"rev":"13-80fc7b11d73e23ca7e518d271d1836ee"}},
-{"id":"blogmate","key":"blogmate","value":{"rev":"11-e503081be9290647c841aa8c04eb6e70"}},
-{"id":"bloodmoney","key":"bloodmoney","value":{"rev":"3-859b0235de3a29bf241323a31f9aa730"}},
-{"id":"bloom","key":"bloom","value":{"rev":"15-c609882b29d61a771d7dbf17f43016ad"}},
-{"id":"blue","key":"blue","value":{"rev":"6-e84221f7286dffbfda6f8abc6306064c"}},
-{"id":"bluemold","key":"bluemold","value":{"rev":"11-f48528b642b5d38d7c02b03622117fa7"}},
-{"id":"bn-lang","key":"bn-lang","value":{"rev":"3-266f186334f69448a940081589e82b04"}},
-{"id":"bn-lang-util","key":"bn-lang-util","value":{"rev":"3-0bc44f1d7d3746120dd835bfb685e229"}},
-{"id":"bn-log","key":"bn-log","value":{"rev":"5-db81a8a978071efd24b45e350e8b8954"}},
-{"id":"bn-template","key":"bn-template","value":{"rev":"3-604e77465ab1dc7e17f3b325089651ec"}},
-{"id":"bn-time","key":"bn-time","value":{"rev":"3-9c33587e783a98e1ccea409cacd5bbfb"}},
-{"id":"bn-unit","key":"bn-unit","value":{"rev":"3-5f35e3fd446241f682231bedcf846c0a"}},
-{"id":"bncode","key":"bncode","value":{"rev":"7-915a1759135a9837954c0ead58bf8e5a"}},
-{"id":"bnf","key":"bnf","value":{"rev":"5-4fe80fcafcc7a263f28b8dc62093bd8d"}},
-{"id":"bob","key":"bob","value":{"rev":"9-9ceeb581263c04793a2231b3726ab22b"}},
-{"id":"bogart","key":"bogart","value":{"rev":"30-70aed6f0827d2bd09963afddcad7a34a"}},
-{"id":"boil","key":"boil","value":{"rev":"3-7ab0fc3b831c591fd15711c27a6f5de0"}},
-{"id":"bolt","key":"bolt","value":{"rev":"3-138dfbdea2ab53ca714ca51494d32610"}},
-{"id":"bones","key":"bones","value":{"rev":"70-c74f0845c167cd755250fc7b4b9b40c2"}},
-{"id":"bones-admin","key":"bones-admin","value":{"rev":"11-2cdfe738d66aacff8569712a279c041d"}},
-{"id":"bones-auth","key":"bones-auth","value":{"rev":"35-2224f95bf3521809ce805ff215d2856c"}},
-{"id":"bones-document","key":"bones-document","value":{"rev":"13-95971fed1f47005c282e0fa60498e31c"}},
-{"id":"bonsai","key":"bonsai","value":{"rev":"3-67eb8935492d4ae9182a7ec74c1f36a6"}},
-{"id":"bonzo","key":"bonzo","value":{"rev":"142-7c5680b0f841c2263f06e96eb5237825"}},
-{"id":"bookbu","key":"bookbu","value":{"rev":"3-d9a104bccc67eae8a5dc6f0f4c3ba5fc"}},
-{"id":"bootstrap","key":"bootstrap","value":{"rev":"17-7a62dbe5e3323beb47165f13265f1a96"}},
-{"id":"borschik","key":"borschik","value":{"rev":"7-2570b5d6555a031394a55ff054797cb9"}},
-{"id":"bots","key":"bots","value":{"rev":"9-df43539c13d2996d9e32dff848615e8a"}},
-{"id":"bounce","key":"bounce","value":{"rev":"8-a3e424b2be1379743e9628c726facaa8"}},
-{"id":"bowser","key":"bowser","value":{"rev":"11-23ecc98edf5fde63fda626bb03da597f"}},
-{"id":"box2d","key":"box2d","value":{"rev":"6-5c920e9829764cbf904b9a59474c1672"}},
-{"id":"box2dnode","key":"box2dnode","value":{"rev":"3-12ffe24dcc1478ea0008c60c4ef7118f"}},
-{"id":"boxcar","key":"boxcar","value":{"rev":"5-a9ba953c547585285559d0e05c16e29e"}},
-{"id":"boxer","key":"boxer","value":{"rev":"8-60c49ff8574d5a47616796ad991463ad"}},
-{"id":"bracket-matcher","key":"bracket-matcher","value":{"rev":"27-a01c946c69665629e212a0f702be1b38"}},
-{"id":"brain","key":"brain","value":{"rev":"24-3aba33914e0f823505c69ef01361681b"}},
-{"id":"brainfuck","key":"brainfuck","value":{"rev":"7-adf33477ffe8640c9fdd6a0f8b349953"}},
-{"id":"brains","key":"brains","value":{"rev":"3-d7e7a95ea742f9b42fefb594c67c726a"}},
-{"id":"braintree","key":"braintree","value":{"rev":"14-eabe1c3e4e7cfd1f521f4bfd337611f7"}},
-{"id":"brazilnut","key":"brazilnut","value":{"rev":"3-4163b5a5598a8905c1283db9d260e5cc"}},
-{"id":"brazln","key":"brazln","value":{"rev":"29-15895bb5b193552826c196efe084caf2"}},
-{"id":"bread","key":"bread","value":{"rev":"9-093c9dd71fffb9a5b1c9eb8ac3e2a9b0"}},
-{"id":"breakfast","key":"breakfast","value":{"rev":"3-231e3046ede5e35e272dfab4a379015d"}},
-{"id":"brequire","key":"brequire","value":{"rev":"18-58b386e08541b222238aa12a13119fd9"}},
-{"id":"bricks","key":"bricks","value":{"rev":"15-f72e6c858c5bceb00cc34a16d52a7b59"}},
-{"id":"bricks-analytics","key":"bricks-analytics","value":{"rev":"3-dc2b6d2157c5039a4c36ceda46761b37"}},
-{"id":"bricks-compress","key":"bricks-compress","value":{"rev":"5-580eeecaa30c210502f42c5e184344a3"}},
-{"id":"bricks-rewrite","key":"bricks-rewrite","value":{"rev":"5-7a141aacaa3fd706b97847c6e8f9830a"}},
-{"id":"brokenbin","key":"brokenbin","value":{"rev":"5-bbc7a1c9628ed9f49b6d23e80c242852"}},
-{"id":"broker","key":"broker","value":{"rev":"9-756a097b948756e4bd7609b6f83a0847"}},
-{"id":"browscap","key":"browscap","value":{"rev":"12-c6fed16796d1ad84913f2617c66f0c7b"}},
-{"id":"browser-require","key":"browser-require","value":{"rev":"27-99f61fb3036ebc643282625649cc674f"}},
-{"id":"browserify","key":"browserify","value":{"rev":"163-c307ee153caf2160e5c32abd58898139"}},
-{"id":"browserjet","key":"browserjet","value":{"rev":"3-a386ab8911c410362eb8fceab5a998fe"}},
-{"id":"brt","key":"brt","value":{"rev":"3-b8452659a92039571ff1f877c8f874c7"}},
-{"id":"brunch","key":"brunch","value":{"rev":"113-64ae44857425c5d860d36f38ab3cf797"}},
-{"id":"brushes.js","key":"brushes.js","value":{"rev":"3-e28bd6597b949d84965a788928738f53"}},
-{"id":"bson","key":"bson","value":{"rev":"50-9d9db515dd9d2a4d873d186f324767a5"}},
-{"id":"btc-ex-api","key":"btc-ex-api","value":{"rev":"3-cabbf284cb01af79ee183d8023106762"}},
-{"id":"btoa","key":"btoa","value":{"rev":"3-b4a124b3650a746b8da9c9f93f386bac"}},
-{"id":"btoa-atob","key":"btoa-atob","value":{"rev":"3-baac60a3f04487333cc0364301220a53"}},
-{"id":"bucket","key":"bucket","value":{"rev":"3-5c2da8f67e29de1c29adbf51ad7d7299"}},
-{"id":"buffalo","key":"buffalo","value":{"rev":"9-6c763d939d775a255c65ba8dcf0d5372"}},
-{"id":"bufferjs","key":"bufferjs","value":{"rev":"13-b6e09e35ec822714d3ec485ac2010272"}},
-{"id":"bufferlib","key":"bufferlib","value":{"rev":"16-d48d96815fc7709d6b7d0a8bfc67f053"}},
-{"id":"bufferlist","key":"bufferlist","value":{"rev":"18-6fcedc10ffbca1afdc866e208d2f906a"}},
-{"id":"buffers","key":"buffers","value":{"rev":"11-3a70ec2da112befdc65b8c02772b8c44"}},
-{"id":"bufferstream","key":"bufferstream","value":{"rev":"82-6f82c5affb3906ebbaa0b116baf73c54"}},
-{"id":"buffertools","key":"buffertools","value":{"rev":"20-68f90e224f81fab81295f9079dc3c0fc"}},
-{"id":"buffoon","key":"buffoon","value":{"rev":"9-1cdc1cbced94691e836d4266eed7c143"}},
-{"id":"builder","key":"builder","value":{"rev":"25-b9679e2aaffec1ac6d59fdd259d9590c"}},
-{"id":"buildr","key":"buildr","value":{"rev":"69-cb3a756903a6322c6f9f4dd1c384a607"}},
-{"id":"bumper","key":"bumper","value":{"rev":"3-1e8d17aa3b29815e4069294cc9ce572c"}},
-{"id":"bundle","key":"bundle","value":{"rev":"39-46fde9cd841bce1fbdd92f6a1235c308"}},
-{"id":"bunker","key":"bunker","value":{"rev":"7-ed993a296fa0b8d3c3a7cd759d6f371e"}},
-{"id":"burari","key":"burari","value":{"rev":"11-08b61073d6ad0ef0c7449a574dc8f54b"}},
-{"id":"burrito","key":"burrito","value":{"rev":"38-3f3b109972720647f5412f3a2478859b"}},
-{"id":"busbuddy","key":"busbuddy","value":{"rev":"5-298ec29f6307351cf7a19bceebe957c7"}},
-{"id":"buster","key":"buster","value":{"rev":"9-870a6e9638806adde2f40105900cd4b3"}},
-{"id":"buster-args","key":"buster-args","value":{"rev":"7-9b189c602e437a505625dbf7fef5dead"}},
-{"id":"buster-assertions","key":"buster-assertions","value":{"rev":"5-fa34a8a5e7cf4dd08c2d02c39de3b563"}},
-{"id":"buster-cli","key":"buster-cli","value":{"rev":"5-b1a85006e41dbf74313253c571e63874"}},
-{"id":"buster-client","key":"buster-client","value":{"rev":"5-340637ec63b54bb01c1313a78db01945"}},
-{"id":"buster-configuration","key":"buster-configuration","value":{"rev":"3-a12e7ff172562b513534fc26be00aaed"}},
-{"id":"buster-core","key":"buster-core","value":{"rev":"5-871df160645e6684111a8fd02ff0eee9"}},
-{"id":"buster-evented-logger","key":"buster-evented-logger","value":{"rev":"5-c46681e6275a76723e3bc834555dbe32"}},
-{"id":"buster-format","key":"buster-format","value":{"rev":"5-e193e90436c7f941739b82adad86bdd8"}},
-{"id":"buster-module-loader","key":"buster-module-loader","value":{"rev":"5-4148b61f8b718e6181aa6054664a7c44"}},
-{"id":"buster-multicast","key":"buster-multicast","value":{"rev":"3-79480b5be761d243b274cb1e77375afc"}},
-{"id":"buster-promise","key":"buster-promise","value":{"rev":"5-b50030957fbd70e65576faa9c541b739"}},
-{"id":"buster-script-loader","key":"buster-script-loader","value":{"rev":"3-85af28b5bc4e647f27514fede19a144e"}},
-{"id":"buster-server","key":"buster-server","value":{"rev":"7-57b8b43047504818322018d2bbfee1f1"}},
-{"id":"buster-static","key":"buster-static","value":{"rev":"3-018c89d1524f7823934087f18dab9047"}},
-{"id":"buster-terminal","key":"buster-terminal","value":{"rev":"5-2c54c30ffa4a2d4b061e4c38e6b9b0e7"}},
-{"id":"buster-test","key":"buster-test","value":{"rev":"5-f7ee9c9f3b379e0ad5aa03d07581ad6f"}},
-{"id":"buster-test-cli","key":"buster-test-cli","value":{"rev":"9-c207974d20e95029cad5fa4c9435d152"}},
-{"id":"buster-user-agent-parser","key":"buster-user-agent-parser","value":{"rev":"5-7883085a203b3047b28ad08361219d1d"}},
-{"id":"buster-util","key":"buster-util","value":{"rev":"3-81977275a9c467ad79bb7e3f2b1caaa8"}},
-{"id":"butler","key":"butler","value":{"rev":"7-c964c4d213da6b0de2492ee57514d0f8"}},
-{"id":"byline","key":"byline","value":{"rev":"9-0b236ed5986c20136c0d581a244d52ac"}},
-{"id":"bz","key":"bz","value":{"rev":"7-d2a463b259c4e09dc9a79ddee9575ca0"}},
-{"id":"c2dm","key":"c2dm","value":{"rev":"11-a1e6a6643506bed3e1443155706aa5fe"}},
-{"id":"cabin","key":"cabin","value":{"rev":"7-df81ef56f0bb085d381c36600496dc57"}},
-{"id":"caboose","key":"caboose","value":{"rev":"49-7226441f91b63fb5c3ac240bd99d142a"}},
-{"id":"caboose-authentication","key":"caboose-authentication","value":{"rev":"3-9c71a9d7315fdea7d5f52fe52ecef118"}},
-{"id":"caboose-model","key":"caboose-model","value":{"rev":"3-967426d5acb8bb70e133f0052075dc1b"}},
-{"id":"cache2file","key":"cache2file","value":{"rev":"17-ac9caec611a38e1752d91f8cc80cfb04"}},
-{"id":"caching","key":"caching","value":{"rev":"11-06041aaaa46b63ed36843685cac63245"}},
-{"id":"calais","key":"calais","value":{"rev":"11-f8ac2064ca45dd5b7db7ea099cd61dfb"}},
-{"id":"calc","key":"calc","value":{"rev":"3-bead9c5b0bee34e44e7c04aa2bf9cd68"}},
-{"id":"calipso","key":"calipso","value":{"rev":"87-b562676045a66a3ec702591c67a9635e"}},
-{"id":"caman","key":"caman","value":{"rev":"15-4b97c73f0ac101c68335de2937483893"}},
-{"id":"camanjs","key":"camanjs","value":{"rev":"3-2856bbdf7a1d454929b4a80b119e3da0"}},
-{"id":"camelot","key":"camelot","value":{"rev":"7-8e257c5213861ecbd229ee737a3a8bb4"}},
-{"id":"campusbooks","key":"campusbooks","value":{"rev":"18-489be33c6ac2d6cbcf93355f2b129389"}},
-{"id":"canvas","key":"canvas","value":{"rev":"78-27dbf5b6e0a25ba5886d485fd897d701"}},
-{"id":"canvasutil","key":"canvasutil","value":{"rev":"7-0b87a370d673886efb7763aaf500b744"}},
-{"id":"capoo","key":"capoo","value":{"rev":"9-136a3ddf489228d5f4b504b1da619447"}},
-{"id":"capsule","key":"capsule","value":{"rev":"19-ad3c9ba0af71a84228e6dd360017f379"}},
-{"id":"capt","key":"capt","value":{"rev":"13-0805d789000fb2e361103a5e62379196"}},
-{"id":"carena","key":"carena","value":{"rev":"10-d38e8c336a0dbb8091514f638b22b96b"}},
-{"id":"carrier","key":"carrier","value":{"rev":"20-b2b4a0560d40eeac617000e9e22a9e9d"}},
-{"id":"cart","key":"cart","value":{"rev":"12-493e79c6fa0b099626e90da79a69f1e5"}},
-{"id":"carto","key":"carto","value":{"rev":"45-8eab07e2fac57396dd62af5805062387"}},
-{"id":"caruso","key":"caruso","value":{"rev":"5-d58e22212b0bcebbab4b42adc68799aa"}},
-{"id":"cas","key":"cas","value":{"rev":"3-82a93160eb9add99bde1599e55d18fd8"}},
-{"id":"cas-auth","key":"cas-auth","value":{"rev":"3-b02f77c198050b99f1df18f637e77c10"}},
-{"id":"cas-client","key":"cas-client","value":{"rev":"3-ca69e32a3053bc680d1dddc57271483b"}},
-{"id":"cashew","key":"cashew","value":{"rev":"7-9e81cde34263adad6949875c4b33ee99"}},
-{"id":"cassandra","key":"cassandra","value":{"rev":"3-8617ef73fdc73d02ecec74d31f98e463"}},
-{"id":"cassandra-client","key":"cassandra-client","value":{"rev":"19-aa1aef5d203be5b0eac678284f1a979f"}},
-{"id":"casset","key":"casset","value":{"rev":"3-2052c7feb5b89c77aaa279c8b50126ce"}},
-{"id":"castaneum","key":"castaneum","value":{"rev":"26-4dc55ba2482cca4230b4bc77ecb5b70d"}},
-{"id":"cat","key":"cat","value":{"rev":"3-75f20119b363b85c1a8433e26b86c943"}},
-{"id":"catchjs","key":"catchjs","value":{"rev":"3-ffda7eff7613de37f629dc7a831ffda1"}},
-{"id":"caterpillar","key":"caterpillar","value":{"rev":"5-bc003e3af33240e67b4c3042f308b7da"}},
-{"id":"causeeffect","key":"causeeffect","value":{"rev":"9-7e4e25bff656170c97cb0cce1b2ab6ca"}},
-{"id":"cayenne","key":"cayenne","value":{"rev":"5-2797f561467b41cc45804e5498917800"}},
-{"id":"ccn4bnode","key":"ccn4bnode","value":{"rev":"17-96f55189e5c98f0fa8200e403a04eb39"}},
-{"id":"ccnq3_config","key":"ccnq3_config","value":{"rev":"21-40345771769a9cadff4af9113b8124c2"}},
-{"id":"ccnq3_logger","key":"ccnq3_logger","value":{"rev":"5-4aa168dc24425938a29cf9ac456158d7"}},
-{"id":"ccnq3_portal","key":"ccnq3_portal","value":{"rev":"17-84e629ec1eaba1722327ccb9dddb05cf"}},
-{"id":"ccnq3_roles","key":"ccnq3_roles","value":{"rev":"43-97de74b08b1af103da8905533a84b749"}},
-{"id":"ccss","key":"ccss","value":{"rev":"11-b9beb506410ea81581ba4c7dfe9b2a7d"}},
-{"id":"cdb","key":"cdb","value":{"rev":"13-d7b6f609f069dc738912b405aac558ab"}},
-{"id":"cdb_changes","key":"cdb_changes","value":{"rev":"13-1dc99b096cb91c276332b651396789e8"}},
-{"id":"celeri","key":"celeri","value":{"rev":"17-b19294619ef6c2056f3bf6641e8945c2"}},
-{"id":"celery","key":"celery","value":{"rev":"5-bdfccd483cf30c4c10c5ec0963de1248"}},
-{"id":"cempl8","key":"cempl8","value":{"rev":"21-bb9547b78a1548fe11dc1d5b816b6da1"}},
-{"id":"cfg","key":"cfg","value":{"rev":"3-85c7651bb8f16b057e60a46946eb95af"}},
-{"id":"cgi","key":"cgi","value":{"rev":"17-7ceac458c7f141d4fbbf05d267a72aa8"}},
-{"id":"chain","key":"chain","value":{"rev":"9-b0f175c5ad0173bcb7e11e58b02a7394"}},
-{"id":"chain-gang","key":"chain-gang","value":{"rev":"22-b0e6841a344b65530ea2a83a038e5aa6"}},
-{"id":"chainer","key":"chainer","value":{"rev":"15-8c6a565035225a1dcca0177e92ccf42d"}},
-{"id":"chainify","key":"chainify","value":{"rev":"3-0926790f18a0016a9943cfb4830e0187"}},
-{"id":"chains","key":"chains","value":{"rev":"5-d9e1ac38056e2638e38d9a7c415929c6"}},
-{"id":"chainsaw","key":"chainsaw","value":{"rev":"24-82e078efbbc59f798d29a0259481012e"}},
-{"id":"changelog","key":"changelog","value":{"rev":"27-317e473de0bf596b273a9dadecea126d"}},
-{"id":"channel-server","key":"channel-server","value":{"rev":"3-3c882f7e61686e8a124b5198c638a18e"}},
-{"id":"channels","key":"channels","value":{"rev":"5-0b532f054886d9094cb98493ee0a7a16"}},
-{"id":"chaos","key":"chaos","value":{"rev":"40-7caa4459d398f5ec30fea91d087f0d71"}},
-{"id":"chard","key":"chard","value":{"rev":"3-f2de35f7a390ea86ac0eb78bf720d0de"}},
-{"id":"charenc","key":"charenc","value":{"rev":"3-092036302311a8f5779b800c98170b5b"}},
-{"id":"chargify","key":"chargify","value":{"rev":"5-e3f29f2816b04c26ca047d345928e2c1"}},
-{"id":"charm","key":"charm","value":{"rev":"13-3e7e7b5babc1efc472e3ce62eec2c0c7"}},
-{"id":"chat-server","key":"chat-server","value":{"rev":"7-c73b785372474e083fb8f3e9690761da"}},
-{"id":"chatroom","key":"chatroom","value":{"rev":"3-f4fa8330b7eb277d11407f968bffb6a2"}},
-{"id":"chatspire","key":"chatspire","value":{"rev":"3-081e167e3f7c1982ab1b7fc3679cb87c"}},
-{"id":"checkip","key":"checkip","value":{"rev":"3-b31d58a160a4a3fe2f14cfbf2217949e"}},
-{"id":"cheddar-getter","key":"cheddar-getter","value":{"rev":"3-d675ec138ea704df127fabab6a52a8dc"}},
-{"id":"chess","key":"chess","value":{"rev":"3-8b15268c8b0fb500dcbc83b259e7fb88"}},
-{"id":"chessathome-worker","key":"chessathome-worker","value":{"rev":"7-cdfd411554c35ba7a52e54f7744bed35"}},
-{"id":"chirkut.js","key":"chirkut.js","value":{"rev":"3-c0e515eee0f719c5261a43e692a3585c"}},
-{"id":"chiron","key":"chiron","value":{"rev":"6-ccb575e432c1c1981fc34b4e27329c85"}},
-{"id":"chopper","key":"chopper","value":{"rev":"5-168681c58c2a50796676dea73dc5398b"}},
-{"id":"choreographer","key":"choreographer","value":{"rev":"14-b0159823becdf0b4552967293968b2a8"}},
-{"id":"chromic","key":"chromic","value":{"rev":"3-c4ca0bb1f951db96c727241092afa9cd"}},
-{"id":"chrono","key":"chrono","value":{"rev":"9-6399d715df1a2f4696f89f2ab5d4d83a"}},
-{"id":"chuck","key":"chuck","value":{"rev":"3-71f2ee071d4b6fb2af3b8b828c51d8ab"}},
-{"id":"chunkedstream","key":"chunkedstream","value":{"rev":"3-b145ed7d1abd94ac44343413e4f823e7"}},
-{"id":"cider","key":"cider","value":{"rev":"10-dc20cd3eac9470e96911dcf75ac6492b"}},
-{"id":"cinch","key":"cinch","value":{"rev":"5-086af7f72caefb57284e4101cbe3c905"}},
-{"id":"cipherpipe","key":"cipherpipe","value":{"rev":"5-0b5590f808415a7297de6d45947d911f"}},
-{"id":"cjson","key":"cjson","value":{"rev":"25-02e3d327b48e77dc0f9e070ce9454ac2"}},
-{"id":"ck","key":"ck","value":{"rev":"3-f482385f5392a49353d8ba5eb9c7afef"}},
-{"id":"ckup","key":"ckup","value":{"rev":"26-90a76ec0cdf951dc2ea6058098407ee2"}},
-{"id":"class","key":"class","value":{"rev":"6-e2805f7d87586a66fb5fd170cf74b3b0"}},
-{"id":"class-42","key":"class-42","value":{"rev":"3-14c988567a2c78a857f15c9661bd6430"}},
-{"id":"class-js","key":"class-js","value":{"rev":"5-792fd04288a651dad87bc47eb91c2042"}},
-{"id":"classify","key":"classify","value":{"rev":"23-35eb336c350446f5ed49069df151dbb7"}},
-{"id":"clean-css","key":"clean-css","value":{"rev":"13-e30ea1007f6c5bb49e07276228b8a960"}},
-{"id":"clearInterval","key":"clearInterval","value":{"rev":"3-a49fa235d3dc14d28a3d15f8db291986"}},
-{"id":"clearTimeout","key":"clearTimeout","value":{"rev":"3-e838bd25adc825112922913c1a35b934"}},
-{"id":"cli","key":"cli","value":{"rev":"65-9e79c37c12d21b9b9114093de0773c54"}},
-{"id":"cli-color","key":"cli-color","value":{"rev":"9-0a8e775e713b1351f6a6648748dd16ec"}},
-{"id":"cli-table","key":"cli-table","value":{"rev":"3-9e447a8bb392fb7d9c534445a650e328"}},
-{"id":"clickatell","key":"clickatell","value":{"rev":"3-31f1a66d08a789976919df0c9280de88"}},
-{"id":"clicktime","key":"clicktime","value":{"rev":"9-697a99f5f704bfebbb454df47c9c472a"}},
-{"id":"clientexpress","key":"clientexpress","value":{"rev":"3-9b07041cd7b0c3967c4625ac74c9b50c"}},
-{"id":"cliff","key":"cliff","value":{"rev":"15-ef9ef25dbad08c0e346388522d94c5c3"}},
-{"id":"clip","key":"clip","value":{"rev":"21-c3936e566feebfe0beddb0bbb686c00d"}},
-{"id":"clock","key":"clock","value":{"rev":"5-19bc51841d41408b4446c0862487dc5e"}},
-{"id":"clog","key":"clog","value":{"rev":"5-1610fe2c0f435d2694a1707ee15cd11e"}},
-{"id":"clone","key":"clone","value":{"rev":"11-099d07f38381b54902c4cf5b93671ed4"}},
-{"id":"closure","key":"closure","value":{"rev":"7-9c2ac6b6ec9f14d12d10bfbfad58ec14"}},
-{"id":"closure-compiler","key":"closure-compiler","value":{"rev":"8-b3d2f9e3287dd33094a35d797d6beaf2"}},
-{"id":"cloud","key":"cloud","value":{"rev":"27-407c7aa77d3d4a6cc903d18b383de8b8"}},
-{"id":"cloud9","key":"cloud9","value":{"rev":"71-4af631e3fa2eb28058cb0d18ef3a6a3e"}},
-{"id":"cloudcontrol","key":"cloudcontrol","value":{"rev":"15-2df57385aa9bd92f7ed81e6892e23696"}},
-{"id":"cloudfiles","key":"cloudfiles","value":{"rev":"30-01f84ebda1d8f151b3e467590329960c"}},
-{"id":"cloudfoundry","key":"cloudfoundry","value":{"rev":"3-66fafd3d6b1353b1699d35e634686ab6"}},
-{"id":"cloudmailin","key":"cloudmailin","value":{"rev":"3-a4e3e4d457f5a18261bb8df145cfb418"}},
-{"id":"cloudnode-cli","key":"cloudnode-cli","value":{"rev":"17-3a80f7855ce618f7aee68bd693ed485b"}},
-{"id":"cloudservers","key":"cloudservers","value":{"rev":"42-6bc34f7e34f84a24078b43a609e96c59"}},
-{"id":"clucene","key":"clucene","value":{"rev":"37-3d613f12a857b8fe22fbf420bcca0dc3"}},
-{"id":"cluster","key":"cluster","value":{"rev":"83-63fb7a468d95502f94ea45208ba0a890"}},
-{"id":"cluster-isolatable","key":"cluster-isolatable","value":{"rev":"5-6af883cea9ab1c90bb126d8b3be2d156"}},
-{"id":"cluster-live","key":"cluster-live","value":{"rev":"7-549d19e9727f460c7de48f93b92e9bb3"}},
-{"id":"cluster-log","key":"cluster-log","value":{"rev":"7-9c47854df8ec911e679743185668a5f7"}},
-{"id":"cluster-loggly","key":"cluster-loggly","value":{"rev":"3-e1f7e331282d7b8317ce55e0fce7f934"}},
-{"id":"cluster-mail","key":"cluster-mail","value":{"rev":"9-dc18c5c1b2b265f3d531b92467b6cc35"}},
-{"id":"cluster-responsetimes","key":"cluster-responsetimes","value":{"rev":"3-c9e16daee15eb84910493264e973275c"}},
-{"id":"cluster-socket.io","key":"cluster-socket.io","value":{"rev":"7-29032f0b42575e9fe183a0af92191132"}},
-{"id":"cluster.exception","key":"cluster.exception","value":{"rev":"3-10856526e2f61e3000d62b12abd750e3"}},
-{"id":"clutch","key":"clutch","value":{"rev":"8-50283f7263c430cdd1d293c033571012"}},
-{"id":"cm1-route","key":"cm1-route","value":{"rev":"13-40e72b5a4277b500c98c966bcd2a8a86"}},
-{"id":"cmd","key":"cmd","value":{"rev":"9-9168fcd96fb1ba9449050162023f3570"}},
-{"id":"cmdopt","key":"cmdopt","value":{"rev":"3-85677533e299bf195e78942929cf9839"}},
-{"id":"cmp","key":"cmp","value":{"rev":"5-b10f873b78eb64e406fe55bd001ae0fa"}},
-{"id":"cmudict","key":"cmudict","value":{"rev":"3-cd028380bba917d5ed2be7a8d3b3b0b7"}},
-{"id":"cnlogger","key":"cnlogger","value":{"rev":"9-dbe7e0e50d25ca5ae939fe999c3c562b"}},
-{"id":"coa","key":"coa","value":{"rev":"11-ff4e634fbebd3f80b9461ebe58b3f64e"}},
-{"id":"cobra","key":"cobra","value":{"rev":"5-a3e0963830d350f4a7e91b438caf9117"}},
-{"id":"cockpit","key":"cockpit","value":{"rev":"3-1757b37245ee990999e4456b9a6b963e"}},
-{"id":"coco","key":"coco","value":{"rev":"104-eabc4d7096295c2156144a7581d89b35"}},
-{"id":"cocos2d","key":"cocos2d","value":{"rev":"19-88a5c75ceb6e7667665c056d174f5f1a"}},
-{"id":"codem-transcode","key":"codem-transcode","value":{"rev":"9-1faa2657d53271ccc44cce27de723e99"}},
-{"id":"codepad","key":"codepad","value":{"rev":"5-094ddce74dc057dc0a4d423d6d2fbc3a"}},
-{"id":"codetube","key":"codetube","value":{"rev":"3-819794145f199330e724864db70da53b"}},
-{"id":"coerce","key":"coerce","value":{"rev":"3-e7d392d497c0b8491b89fcbbd1a5a89f"}},
-{"id":"coffee-conf","key":"coffee-conf","value":{"rev":"3-883bc4767d70810ece2fdf1ccae883de"}},
-{"id":"coffee-css","key":"coffee-css","value":{"rev":"11-66ca197173751389b24945f020f198f9"}},
-{"id":"coffee-echonest","key":"coffee-echonest","value":{"rev":"3-3cd0e2b77103e334eccf6cf4168f39b2"}},
-{"id":"coffee-machine","key":"coffee-machine","value":{"rev":"9-02deb4d27fd5d56002ead122e9bb213e"}},
-{"id":"coffee-new","key":"coffee-new","value":{"rev":"67-0664b0f289030c38d113070fd26f4f71"}},
-{"id":"coffee-resque","key":"coffee-resque","value":{"rev":"22-5b022809317d3a873be900f1a697c5eb"}},
-{"id":"coffee-resque-retry","key":"coffee-resque-retry","value":{"rev":"29-1fb64819a4a21ebb4d774d9d4108e419"}},
-{"id":"coffee-revup","key":"coffee-revup","value":{"rev":"3-23aafa258bcdcf2bb68d143d61383551"}},
-{"id":"coffee-script","key":"coffee-script","value":{"rev":"60-a6c3739655f43953bd86283776586b95"}},
-{"id":"coffee-son","key":"coffee-son","value":{"rev":"3-84a81e7e24c8cb23293940fc1b87adfe"}},
-{"id":"coffee-toaster","key":"coffee-toaster","value":{"rev":"17-d43d7276c08b526c229c78b7d5acd6cc"}},
-{"id":"coffee-watcher","key":"coffee-watcher","value":{"rev":"3-3d861a748f0928c789cbdb8ff62b6091"}},
-{"id":"coffee-world","key":"coffee-world","value":{"rev":"15-46dc320f94fa64c39e183224ec59f47a"}},
-{"id":"coffee4clients","key":"coffee4clients","value":{"rev":"15-58fba7dd10bced0411cfe546b9336145"}},
-{"id":"coffeeapp","key":"coffeeapp","value":{"rev":"48-bece0a26b78afc18cd37d577f90369d9"}},
-{"id":"coffeebot","key":"coffeebot","value":{"rev":"3-a9007053f25a4c13b324f0ac7066803e"}},
-{"id":"coffeedoc","key":"coffeedoc","value":{"rev":"21-a955faafafd10375baf3101ad2c142d0"}},
-{"id":"coffeegrinder","key":"coffeegrinder","value":{"rev":"9-6e725aad7fd39cd38f41c743ef8a7563"}},
-{"id":"coffeekup","key":"coffeekup","value":{"rev":"35-9b1eecdb7b13d3e75cdc7b1045cf910a"}},
-{"id":"coffeemaker","key":"coffeemaker","value":{"rev":"9-4c5e665aa2a5b4efa2b7d077d0a4f9c1"}},
-{"id":"coffeemate","key":"coffeemate","value":{"rev":"71-03d0221fb495f2dc6732009884027b47"}},
-{"id":"coffeepack","key":"coffeepack","value":{"rev":"3-bbf0e27cb4865392164e7ab33f131d58"}},
-{"id":"coffeeq","key":"coffeeq","value":{"rev":"9-4e38e9742a0b9d7b308565729fbfd123"}},
-{"id":"coffeescript-growl","key":"coffeescript-growl","value":{"rev":"7-2bc1f93c4aad5fa8fb4bcfd1b3ecc279"}},
-{"id":"coffeescript-notify","key":"coffeescript-notify","value":{"rev":"3-8aeb31f8e892d3fefa421ff28a1b3de9"}},
-{"id":"collectd","key":"collectd","value":{"rev":"5-3d4c84b0363aa9c078157d82695557a1"}},
-{"id":"collection","key":"collection","value":{"rev":"3-a47e1fe91b9eebb3e75954e350ec2ca3"}},
-{"id":"collection_functions","key":"collection_functions","value":{"rev":"3-7366c721008062373ec924a409415189"}},
-{"id":"collections","key":"collections","value":{"rev":"3-0237a40d08a0da36c2dd01ce73a89bb2"}},
-{"id":"color","key":"color","value":{"rev":"15-4898b2cd9744feb3249ba10828c186f8"}},
-{"id":"color-convert","key":"color-convert","value":{"rev":"7-2ccb47c7f07a47286d9a2f39383d28f0"}},
-{"id":"color-string","key":"color-string","value":{"rev":"5-9a6336f420e001e301a15b88b0103696"}},
-{"id":"colorize","key":"colorize","value":{"rev":"3-ff380385edacc0c46e4c7b5c05302576"}},
-{"id":"colors","key":"colors","value":{"rev":"8-7c7fb9c5af038c978f0868c7706fe145"}},
-{"id":"colour-extractor","key":"colour-extractor","value":{"rev":"3-62e96a84c6adf23f438b5aac76c7b257"}},
-{"id":"coloured","key":"coloured","value":{"rev":"8-c5295f2d5a8fc08e93d180a4e64f8d38"}},
-{"id":"coloured-log","key":"coloured-log","value":{"rev":"14-8627a3625959443acad71e2c23dfc582"}},
-{"id":"comb","key":"comb","value":{"rev":"5-7f201b621ae9a890c7f5a31867eba3e9"}},
-{"id":"combine","key":"combine","value":{"rev":"14-bed33cd4389a2e4bb826a0516c6ae307"}},
-{"id":"combined-stream","key":"combined-stream","value":{"rev":"13-678f560200ac2835b9026e9e2b955cb0"}},
-{"id":"combiner","key":"combiner","value":{"rev":"3-5e7f133c8c14958eaf9e92bd79ae8ee1"}},
-{"id":"combohandler","key":"combohandler","value":{"rev":"7-d7e1a402f0066caa6756a8866de81dd9"}},
-{"id":"combyne","key":"combyne","value":{"rev":"23-05ebee9666a769e32600bc5548d10ce9"}},
-{"id":"comfy","key":"comfy","value":{"rev":"5-8bfe55bc16611dfe51a184b8f3eb31c1"}},
-{"id":"command-parser","key":"command-parser","value":{"rev":"5-8a5c3ed6dfa0fa55cc71b32cf52332fc"}},
-{"id":"commander","key":"commander","value":{"rev":"11-9dd16c00844d464bf66c101a57075401"}},
-{"id":"commando","key":"commando","value":{"rev":"3-e159f1890f3771dfd6e04f4d984f26f3"}},
-{"id":"common","key":"common","value":{"rev":"16-94eafcf104c0c7d1090e668ddcc12a5f"}},
-{"id":"common-exception","key":"common-exception","value":{"rev":"7-bd46358014299da814691c835548ef21"}},
-{"id":"common-node","key":"common-node","value":{"rev":"5-b2c4bef0e7022d5d453661a9c43497a8"}},
-{"id":"common-pool","key":"common-pool","value":{"rev":"5-c495fa945361ba4fdfb2ee8733d791b4"}},
-{"id":"common-utils","key":"common-utils","value":{"rev":"3-e5a047f118fc304281d2bc5e9ab18e62"}},
-{"id":"commondir","key":"commondir","value":{"rev":"3-ea49874d12eeb9adf28ca28989dfb5a9"}},
-{"id":"commonjs","key":"commonjs","value":{"rev":"6-39fcd0de1ec265890cf063effd0672e3"}},
-{"id":"commonjs-utils","key":"commonjs-utils","value":{"rev":"6-c0266a91dbd0a43effb7d30da5d9f35c"}},
-{"id":"commonkv","key":"commonkv","value":{"rev":"3-90b2fe4c79e263b044303706c4d5485a"}},
-{"id":"commons","key":"commons","value":{"rev":"6-0ecb654aa2bd17cf9519f86d354f8a50"}},
-{"id":"complete","key":"complete","value":{"rev":"7-acde8cba7677747d09c3d53ff165754e"}},
-{"id":"complex-search","key":"complex-search","value":{"rev":"5-c80b2c7f049f333bde89435f3de497ca"}},
-{"id":"compose","key":"compose","value":{"rev":"1-cf8a97d6ead3bef056d85daec5d36c70"}},
-{"id":"composer","key":"composer","value":{"rev":"6-1deb43725051f845efd4a7c8e68aa6d6"}},
-{"id":"compress","key":"compress","value":{"rev":"17-f0aacce1356f807b51e083490fb353bd"}},
-{"id":"compress-buffer","key":"compress-buffer","value":{"rev":"12-2886014c7f2541f4ddff9f0f55f4c171"}},
-{"id":"compress-ds","key":"compress-ds","value":{"rev":"5-9e4c6931edf104443353594ef50aa127"}},
-{"id":"compressor","key":"compressor","value":{"rev":"3-ee8ad155a98e1483d899ebcf82d5fb63"}},
-{"id":"concrete","key":"concrete","value":{"rev":"5-bc70bbffb7c6fe9e8c399db578fb3bae"}},
-{"id":"condo","key":"condo","value":{"rev":"9-5f03d58ee7dc29465defa3758f3b138a"}},
-{"id":"conductor","key":"conductor","value":{"rev":"8-1878afadcda7398063de6286c2d2c5c1"}},
-{"id":"conf","key":"conf","value":{"rev":"11-dcf0f6a93827d1b143cb1d0858f2be4a"}},
-{"id":"config","key":"config","value":{"rev":"37-2b741a1e6951a74b7f1de0d0547418a0"}},
-{"id":"config-loader","key":"config-loader","value":{"rev":"3-708cc96d1206de46fb450eb57ca07b0d"}},
-{"id":"configurator","key":"configurator","value":{"rev":"5-b31ad9731741d19f28241f6af5b41fee"}},
-{"id":"confu","key":"confu","value":{"rev":"7-c46f82c4aa9a17db6530b00669461eaf"}},
-{"id":"confy","key":"confy","value":{"rev":"3-893b33743830a0318dc99b1788aa92ee"}},
-{"id":"connect","key":"connect","value":{"rev":"151-8b5617fc6ece6c125b5f628936159bd6"}},
-{"id":"connect-access-control","key":"connect-access-control","value":{"rev":"3-ccf5fb09533d41eb0b564eb1caecf910"}},
-{"id":"connect-airbrake","key":"connect-airbrake","value":{"rev":"5-19db5e5828977540814d09f9eb7f028f"}},
-{"id":"connect-analytics","key":"connect-analytics","value":{"rev":"3-6f71c8b08ed9f5762c1a4425c196fb2a"}},
-{"id":"connect-app-cache","key":"connect-app-cache","value":{"rev":"27-3e69452dfe51cc907f8b188aede1bda8"}},
-{"id":"connect-assetmanager","key":"connect-assetmanager","value":{"rev":"46-f2a8834d2749e0c069cee06244e7501c"}},
-{"id":"connect-assetmanager-handlers","key":"connect-assetmanager-handlers","value":{"rev":"38-8b93821fcf46f20bbad4319fb39302c1"}},
-{"id":"connect-assets","key":"connect-assets","value":{"rev":"33-7ec2940217e29a9514d20cfd49af10f5"}},
-{"id":"connect-auth","key":"connect-auth","value":{"rev":"36-5640e82f3e2773e44ce47b0687436305"}},
-{"id":"connect-cache","key":"connect-cache","value":{"rev":"11-efe1f0ab00c181b1a4dece446ef13a90"}},
-{"id":"connect-coffee","key":"connect-coffee","value":{"rev":"3-3d4ebcfe083c9e5a5d587090f1bb4d65"}},
-{"id":"connect-conneg","key":"connect-conneg","value":{"rev":"3-bc3e04e65cf1f5233a38cc846e9a4a75"}},
-{"id":"connect-cookie-session","key":"connect-cookie-session","value":{"rev":"3-f48ca73aa1ce1111a2c962d219b59c1a"}},
-{"id":"connect-cors","key":"connect-cors","value":{"rev":"10-5bc9e3759671a0157fdc307872d38844"}},
-{"id":"connect-couchdb","key":"connect-couchdb","value":{"rev":"9-9adb6d24c7fb6de58bafe6d06fb4a230"}},
-{"id":"connect-cradle","key":"connect-cradle","value":{"rev":"5-0e5e32e00a9b98eff1ab010173d26ffb"}},
-{"id":"connect-docco","key":"connect-docco","value":{"rev":"9-c8e379f9a89db53f8921895ac4e87ed6"}},
-{"id":"connect-dojo","key":"connect-dojo","value":{"rev":"17-f323c634536b9b948ad9607f4ca0847f"}},
-{"id":"connect-esi","key":"connect-esi","value":{"rev":"45-01de7506d405856586ea77cb14022192"}},
-{"id":"connect-facebook","key":"connect-facebook","value":{"rev":"3-bf77eb01c0476e607b25bc9d93416b7e"}},
-{"id":"connect-force-domain","key":"connect-force-domain","value":{"rev":"5-a65755f93aaea8a21c7ce7dd4734dca0"}},
-{"id":"connect-form","key":"connect-form","value":{"rev":"16-fa786af79f062a05ecdf3e7cf48317e2"}},
-{"id":"connect-geoip","key":"connect-geoip","value":{"rev":"3-d87f93bcac58aa7904886a8fb6c45899"}},
-{"id":"connect-googleapps","key":"connect-googleapps","value":{"rev":"13-49c5c6c6724b21eea9a8eaae2165978d"}},
-{"id":"connect-gzip","key":"connect-gzip","value":{"rev":"7-2e1d4bb887c1ddda278fc8465ee5645b"}},
-{"id":"connect-heroku-redis","key":"connect-heroku-redis","value":{"rev":"13-92da2be67451e5f55f6fbe3672c86dc4"}},
-{"id":"connect-i18n","key":"connect-i18n","value":{"rev":"8-09d47d7c220770fc80d1b6fd87ffcd07"}},
-{"id":"connect-identity","key":"connect-identity","value":{"rev":"8-8eb9e21bbf80045e0243720955d6070f"}},
-{"id":"connect-image-resizer","key":"connect-image-resizer","value":{"rev":"7-5f82563f87145f3cc06086afe3a14a62"}},
-{"id":"connect-index","key":"connect-index","value":{"rev":"3-8b8373334079eb26c8735b39483889a0"}},
-{"id":"connect-jsonp","key":"connect-jsonp","value":{"rev":"16-9e80af455e490710f06039d3c0025840"}},
-{"id":"connect-jsonrpc","key":"connect-jsonrpc","value":{"rev":"6-6556800f0bef6ae5eb10496d751048e7"}},
-{"id":"connect-kyoto","key":"connect-kyoto","value":{"rev":"5-8f6a9e9b24d1a71c786645402f509645"}},
-{"id":"connect-less","key":"connect-less","value":{"rev":"3-461ed9a80b462b978a81d5bcee6f3665"}},
-{"id":"connect-load-balance","key":"connect-load-balance","value":{"rev":"3-e74bff5fb47d1490c05a9cc4339af347"}},
-{"id":"connect-memcached","key":"connect-memcached","value":{"rev":"3-5fc92b7f9fb5bcfb364a27e6f052bcc7"}},
-{"id":"connect-mongo","key":"connect-mongo","value":{"rev":"13-c3869bc7337b2f1ee6b9b3364993f321"}},
-{"id":"connect-mongodb","key":"connect-mongodb","value":{"rev":"30-30cb932839ce16e4e496f5a33fdd720a"}},
-{"id":"connect-mongoose","key":"connect-mongoose","value":{"rev":"3-48a5b329e4cfa885442d43bbd1d0db46"}},
-{"id":"connect-mongoose-session","key":"connect-mongoose-session","value":{"rev":"3-6692b8e1225d5cd6a2daabd61cecb1cd"}},
-{"id":"connect-mysql-session","key":"connect-mysql-session","value":{"rev":"9-930abd0279ef7f447e75c95b3e71be12"}},
-{"id":"connect-no-www","key":"connect-no-www","value":{"rev":"3-33bed7417bc8a5e8efc74ce132c33158"}},
-{"id":"connect-notifo","key":"connect-notifo","value":{"rev":"3-4681f8c5a7dfd35aee9634e809c41804"}},
-{"id":"connect-parameter-router","key":"connect-parameter-router","value":{"rev":"3-f435f06d556c208d43ef05c64bcddceb"}},
-{"id":"connect-pg","key":"connect-pg","value":{"rev":"11-d84c53d8f1c24adfc266e7a031dddf0d"}},
-{"id":"connect-proxy","key":"connect-proxy","value":{"rev":"7-a691ff57a9affeab47c54d17dbe613cb"}},
-{"id":"connect-queryparser","key":"connect-queryparser","value":{"rev":"3-bb35a7f3f75297a63bf942a63b842698"}},
-{"id":"connect-redis","key":"connect-redis","value":{"rev":"40-4faa12962b14da49380de2bb183176f9"}},
-{"id":"connect-restreamer","key":"connect-restreamer","value":{"rev":"3-08e637ca685cc63b2b4f9722c763c105"}},
-{"id":"connect-riak","key":"connect-riak","value":{"rev":"5-3268c29a54e430a3f8adb33570afafdb"}},
-{"id":"connect-rpx","key":"connect-rpx","value":{"rev":"28-acc7bb4200c1d30f359151f0a715162c"}},
-{"id":"connect-security","key":"connect-security","value":{"rev":"16-fecd20f486a8ea4d557119af5b5a2960"}},
-{"id":"connect-select","key":"connect-select","value":{"rev":"5-5ca28ec800419e4cb3e97395a6b96153"}},
-{"id":"connect-session-mongo","key":"connect-session-mongo","value":{"rev":"9-9e6a26dfbb9c13a9d6f4060a1895730a"}},
-{"id":"connect-session-redis-store","key":"connect-session-redis-store","value":{"rev":"8-fecfed6e17476eaada5cfe7740d43893"}},
-{"id":"connect-sessionvoc","key":"connect-sessionvoc","value":{"rev":"13-57b6e6ea2158e3b7136054839662ea3d"}},
-{"id":"connect-spdy","key":"connect-spdy","value":{"rev":"11-f9eefd7303295d77d317cba78d299130"}},
-{"id":"connect-sts","key":"connect-sts","value":{"rev":"9-8e3fd563c04ce14b824fc4da42efb70e"}},
-{"id":"connect-timeout","key":"connect-timeout","value":{"rev":"4-6f5f8d97480c16c7acb05fe82400bbc7"}},
-{"id":"connect-unstable","key":"connect-unstable","value":{"rev":"3-1d3a4edc52f005d8cb4d557485095314"}},
-{"id":"connect-wormhole","key":"connect-wormhole","value":{"rev":"3-f33b15acc686bd9ad0c6df716529009f"}},
-{"id":"connect-xcors","key":"connect-xcors","value":{"rev":"7-f8e1cd6805a8779bbd6bb2c1000649fb"}},
-{"id":"connect_facebook","key":"connect_facebook","value":{"rev":"3-b3001d71f619836a009c53c816ce36ed"}},
-{"id":"connect_json","key":"connect_json","value":{"rev":"3-dd0df74291f80f45b4314d56192c19c5"}},
-{"id":"connectables","key":"connectables","value":{"rev":"3-f6e9f8f13883a523b4ea6035281f541b"}},
-{"id":"conseq","key":"conseq","value":{"rev":"3-890d340704322630e7a724333f394c70"}},
-{"id":"consistent-hashing","key":"consistent-hashing","value":{"rev":"3-fcef5d4479d926560cf1bc900f746f2a"}},
-{"id":"console","key":"console","value":{"rev":"3-1e0449b07c840eeac6b536e2552844f4"}},
-{"id":"console.log","key":"console.log","value":{"rev":"9-d608afe50e732ca453365befcb87bad5"}},
-{"id":"consolemark","key":"consolemark","value":{"rev":"13-320f003fc2c3cec909ab3e9c3bce9743"}},
-{"id":"construct","key":"construct","value":{"rev":"3-75bdc809ee0572172e6acff537af7d9b"}},
-{"id":"context","key":"context","value":{"rev":"3-86b1a6a0f77ef86d4d9ccfff47ceaf6a"}},
-{"id":"contextify","key":"contextify","value":{"rev":"9-547b8019ef66e0d1c84fe00be832e750"}},
-{"id":"contract","key":"contract","value":{"rev":"3-d09e775c2c1e297b6cbbfcd5efbae3c7"}},
-{"id":"contracts","key":"contracts","value":{"rev":"13-3fd75c77e688937734f51cf97f10dd7d"}},
-{"id":"control","key":"control","value":{"rev":"31-7abf0cb81d19761f3ff59917e56ecedf"}},
-{"id":"controljs","key":"controljs","value":{"rev":"3-a8e80f93e389ca07509fa7addd6cb805"}},
-{"id":"convert","key":"convert","value":{"rev":"3-6c962b92274bcbe82b82a30806559d47"}},
-{"id":"conway","key":"conway","value":{"rev":"5-93ce24976e7dd5ba02fe4addb2b44267"}},
-{"id":"cookie","key":"cookie","value":{"rev":"14-946d98bf46e940d13ca485148b1bd609"}},
-{"id":"cookie-sessions","key":"cookie-sessions","value":{"rev":"8-4b399ac8cc4baea15f6c5e7ac94399f0"}},
-{"id":"cookiejar","key":"cookiejar","value":{"rev":"20-220b41a4c2a8f2b7b14aafece7dcc1b5"}},
-{"id":"cookies","key":"cookies","value":{"rev":"15-b3b35c32a99ed79accc724685d131d18"}},
-{"id":"cool","key":"cool","value":{"rev":"3-007d1123eb2dc52cf845d625f7ccf198"}},
-{"id":"coolmonitor","key":"coolmonitor","value":{"rev":"3-69c3779c596527f63e49c5e507dff1e1"}},
-{"id":"coop","key":"coop","value":{"rev":"9-39dee3260858cf8c079f31bdf02cea1d"}},
-{"id":"coordinator","key":"coordinator","value":{"rev":"32-9d92f2033a041d5c40f8e1018d512755"}},
-{"id":"core-utils","key":"core-utils","value":{"rev":"9-98f2412938a67d83e53e76a26b5601e0"}},
-{"id":"cornify","key":"cornify","value":{"rev":"6-6913172d09c52f9e8dc0ea19ec49972c"}},
-{"id":"corpus","key":"corpus","value":{"rev":"3-a357e7779f8d4ec020b755c71dd1e57b"}},
-{"id":"corrector","key":"corrector","value":{"rev":"3-ef3cf99fc59a581aee3590bdb8615269"}},
-{"id":"cosmos","key":"cosmos","value":{"rev":"3-3eb292c59758fb5215f22739fa9531ce"}},
-{"id":"couch-ar","key":"couch-ar","value":{"rev":"25-f106d2965ab74b25b18328ca44ca4a02"}},
-{"id":"couch-cleaner","key":"couch-cleaner","value":{"rev":"15-74e61ef98a770d76be4c7e7571d18381"}},
-{"id":"couch-client","key":"couch-client","value":{"rev":"10-94945ebd3e17f509fcc71fb6c6ef5d35"}},
-{"id":"couch-session","key":"couch-session","value":{"rev":"4-c73dea41ceed26a2a0bde9a9c8ffffc4"}},
-{"id":"couch-sqlite","key":"couch-sqlite","value":{"rev":"3-3e420fe6623542475595aa7e55a4e4bd"}},
-{"id":"couch-stream","key":"couch-stream","value":{"rev":"5-911704fc984bc49acce1e10adefff7ff"}},
-{"id":"couchapp","key":"couchapp","value":{"rev":"16-ded0f4742bb3f5fd42ec8f9c6b21ae8e"}},
-{"id":"couchcmd","key":"couchcmd","value":{"rev":"3-651ea2b435e031481b5d3d968bd3d1eb"}},
-{"id":"couchdb","key":"couchdb","value":{"rev":"12-8abcfd649751226c10edf7cf0508a09f"}},
-{"id":"couchdb-api","key":"couchdb-api","value":{"rev":"23-f2c82f08f52f266df7ac2aa709615244"}},
-{"id":"couchdb-tmp","key":"couchdb-tmp","value":{"rev":"3-9a695fb4ba352f3be2d57c5995718520"}},
-{"id":"couchdev","key":"couchdev","value":{"rev":"3-50a0ca3ed0395dd72de62a1b96619e66"}},
-{"id":"couchlegs","key":"couchlegs","value":{"rev":"5-be78e7922ad4ff86dbe5c17a87fdf4f1"}},
-{"id":"couchtato","key":"couchtato","value":{"rev":"11-15a1ce8de9a8cf1e81d96de6afbb4f45"}},
-{"id":"couchy","key":"couchy","value":{"rev":"13-0a52b2712fb8447f213866612e3ccbf7"}},
-{"id":"courier","key":"courier","value":{"rev":"17-eb94fe01aeaad43805f4bce21d23bcba"}},
-{"id":"coverage","key":"coverage","value":{"rev":"10-a333448996d0b0d420168d1b5748db32"}},
-{"id":"coverage_testing","key":"coverage_testing","value":{"rev":"3-62834678206fae7911401aa86ec1a85e"}},
-{"id":"cqs","key":"cqs","value":{"rev":"6-0dad8b969c70abccc27a146a99399533"}},
-{"id":"crab","key":"crab","value":{"rev":"9-599fc7757f0c9efbe3889f30981ebe93"}},
-{"id":"cradle","key":"cradle","value":{"rev":"60-8fb414b66cb07b4bae59c0316d5c45b4"}},
-{"id":"cradle-fixed","key":"cradle-fixed","value":{"rev":"4-589afffa26fca22244ad2038abb77dc5"}},
-{"id":"cradle-init","key":"cradle-init","value":{"rev":"13-499d63592141f1e200616952bbdea015"}},
-{"id":"crawler","key":"crawler","value":{"rev":"5-ec4a8d77f90d86d17d6d14d631360188"}},
-{"id":"crc","key":"crc","value":{"rev":"3-25ab83f8b1333e6d4e4e5fb286682422"}},
-{"id":"creatary","key":"creatary","value":{"rev":"3-770ad84ecb2e2a3994637d419384740d"}},
-{"id":"createsend","key":"createsend","value":{"rev":"7-19885346e4d7a01ac2e9ad70ea0e822a"}},
-{"id":"creationix","key":"creationix","value":{"rev":"61-7ede1759afbd41e8b4dedc348b72202e"}},
-{"id":"creek","key":"creek","value":{"rev":"33-4f511aa4dd379e04bba7ac333744325e"}},
-{"id":"cron","key":"cron","value":{"rev":"12-8d794edb5f9b7cb6322acaef1c848043"}},
-{"id":"cron2","key":"cron2","value":{"rev":"13-bae2f1b02ffcbb0e77bde6c33b566f80"}},
-{"id":"crontab","key":"crontab","value":{"rev":"36-14d26bf316289fb4841940eee2932f37"}},
-{"id":"crossroads","key":"crossroads","value":{"rev":"7-d73d51cde30f24caad91e6a3c5b420f2"}},
-{"id":"crowdflower","key":"crowdflower","value":{"rev":"3-16c2dfc9fd505f75068f75bd19e3d227"}},
-{"id":"cruvee","key":"cruvee","value":{"rev":"3-979ccf0286b1701e9e7483a10451d975"}},
-{"id":"crypt","key":"crypt","value":{"rev":"3-031b338129bebc3749b42fb3d442fc4b"}},
-{"id":"crypto","key":"crypto","value":{"rev":"3-66a444b64481c85987dd3f22c32e0630"}},
-{"id":"csj","key":"csj","value":{"rev":"3-bc3133c7a0a8827e89aa03897b81d177"}},
-{"id":"cson","key":"cson","value":{"rev":"7-3ac3e1e10572e74e58874cfe3200eb87"}},
-{"id":"csrf-express","key":"csrf-express","value":{"rev":"3-4cc36d88e8ad10b9c2cc8a7318f0abd3"}},
-{"id":"css-crawler","key":"css-crawler","value":{"rev":"13-4739c7bf1decc72d7682b53303f93ec6"}},
-{"id":"css-smasher","key":"css-smasher","value":{"rev":"3-631128f966135c97d648efa3eadf7bfb"}},
-{"id":"css-sourcery","key":"css-sourcery","value":{"rev":"3-571343da3a09af7de473d29ed7dd788b"}},
-{"id":"css2json","key":"css2json","value":{"rev":"5-fb6d84c1da4a9391fa05d782860fe7c4"}},
-{"id":"csskeeper","key":"csskeeper","value":{"rev":"5-ea667a572832ea515b044d4b87ea7d98"}},
-{"id":"csslike","key":"csslike","value":{"rev":"3-6e957cce81f6e790f8562526d907ad94"}},
-{"id":"csslint","key":"csslint","value":{"rev":"19-b1e973274a0a6b8eb81b4d715a249612"}},
-{"id":"cssmin","key":"cssmin","value":{"rev":"10-4bb4280ec56f110c43abe01189f95818"}},
-{"id":"csso","key":"csso","value":{"rev":"17-ccfe2a72d377919b07973bbb1d19b8f2"}},
-{"id":"cssom","key":"cssom","value":{"rev":"3-f96b884b63b4c04bac18b8d9c0a4c4cb"}},
-{"id":"cssp","key":"cssp","value":{"rev":"5-abf69f9ff99b7d0bf2731a5b5da0897c"}},
-{"id":"cssunminifier","key":"cssunminifier","value":{"rev":"3-7bb0c27006af682af92d1969fcb4fa73"}},
-{"id":"cssutils","key":"cssutils","value":{"rev":"3-4759f9db3b8eac0964e36f5229260526"}},
-{"id":"csv","key":"csv","value":{"rev":"21-0420554e9c08e001063cfb0a69a48255"}},
-{"id":"csv2mongo","key":"csv2mongo","value":{"rev":"9-373f11c05e5d1744c3187d9aaeaae0ab"}},
-{"id":"csvutils","key":"csvutils","value":{"rev":"15-84aa82e56b49cd425a059c8f0735a23c"}},
-{"id":"ctrlflow","key":"ctrlflow","value":{"rev":"33-0b817baf6c744dc17b83d5d8ab1ba74e"}},
-{"id":"ctrlflow_tests","key":"ctrlflow_tests","value":{"rev":"3-d9ed35503d27b0736c59669eecb4c4fe"}},
-{"id":"ctype","key":"ctype","value":{"rev":"9-c5cc231475f23a01682d0b1a3b6e49c2"}},
-{"id":"cube","key":"cube","value":{"rev":"5-40320a20d260e082f5c4ca508659b4d1"}},
-{"id":"cucumber","key":"cucumber","value":{"rev":"11-8489af0361b6981cf9001a0403815936"}},
-{"id":"cucumis","key":"cucumis","value":{"rev":"33-6dc38f1161fae3efa2a89c8288b6e040"}},
-{"id":"cucumis-rm","key":"cucumis-rm","value":{"rev":"3-6179249ad15166f8d77eb136b3fa87ca"}},
-{"id":"cupcake","key":"cupcake","value":{"rev":"15-1dd13a85415a366942e7f0a3de06aa2a"}},
-{"id":"curator","key":"curator","value":{"rev":"19-d798ab7fbca11ba0e9c6c40c0a2f9440"}},
-{"id":"curl","key":"curl","value":{"rev":"11-ac7143ac07c64ea169ba7d4e58be232a"}},
-{"id":"curly","key":"curly","value":{"rev":"30-0248a5563b6e96457315ad0cc2fe22c1"}},
-{"id":"curry","key":"curry","value":{"rev":"11-ce13fa80e84eb25d9cf76cf4162a634e"}},
-{"id":"cursory","key":"cursory","value":{"rev":"3-ea2f4b1b47caf38460402d1a565c18b8"}},
-{"id":"d-utils","key":"d-utils","value":{"rev":"37-699ad471caa28183d75c06f0f2aab41c"}},
-{"id":"d3","key":"d3","value":{"rev":"5-4d867844bd7dce21b34cd7283bb9cad4"}},
-{"id":"d3bench","key":"d3bench","value":{"rev":"3-617cc625bfd91c175d037bfcace9c4e9"}},
-{"id":"daemon","key":"daemon","value":{"rev":"11-8654f90bc609ca2c3ec260c7d6b7793e"}},
-{"id":"daemon-tools","key":"daemon-tools","value":{"rev":"18-8197fce2054de67925e6f2c3fa3cd90a"}},
-{"id":"daimyo","key":"daimyo","value":{"rev":"25-531b0b0afdc5ae3d41b4131da40af6cf"}},
-{"id":"daleth","key":"daleth","value":{"rev":"7-4824619205289ba237ef2a4dc1fba1ec"}},
-{"id":"dali","key":"dali","value":{"rev":"9-037c4c76f739ecb537a064c07d3c63e3"}},
-{"id":"damncomma","key":"damncomma","value":{"rev":"3-b1472eada01efb8a12d521e5a248834b"}},
-{"id":"dana","key":"dana","value":{"rev":"3-2a3c0ff58a6d13fedd17e1d192080e59"}},
-{"id":"dandy","key":"dandy","value":{"rev":"9-f4ae43659dd812a010b0333bf8e5a282"}},
-{"id":"dash","key":"dash","value":{"rev":"5-698513f86165f429a5f55320d5a700f0"}},
-{"id":"dash-fu","key":"dash-fu","value":{"rev":"3-848e99a544f9f78f311c7ebfc5a172c4"}},
-{"id":"dashboard","key":"dashboard","value":{"rev":"3-71844d1fc1140b7533f9e57740d2b666"}},
-{"id":"data","key":"data","value":{"rev":"23-b594e2bd1ffef1cda8b7e94dbf15ad5b"}},
-{"id":"data-layer","key":"data-layer","value":{"rev":"9-9205d35cc6eaf1067ee0cec1b421d749"}},
-{"id":"data-page","key":"data-page","value":{"rev":"3-d7a3346a788a0c07132e50585db11c99"}},
-{"id":"data-section","key":"data-section","value":{"rev":"9-d3fff313977667c53cbadb134d993412"}},
-{"id":"data-uuid","key":"data-uuid","value":{"rev":"8-24001fe9f37c4cc7ac01079ee4767363"}},
-{"id":"data-visitor","key":"data-visitor","value":{"rev":"6-7fe5da9d118fab27157dba97050c6487"}},
-{"id":"database-cleaner","key":"database-cleaner","value":{"rev":"19-4bdfc8b324e95e6da9f72e7b7b708b98"}},
-{"id":"datapool","key":"datapool","value":{"rev":"3-f99c93ca812d2f4725bbaea99122832c"}},
-{"id":"datasift","key":"datasift","value":{"rev":"3-6de3ae25c9a99f651101e191595bcf64"}},
-{"id":"date","key":"date","value":{"rev":"9-b334fc6450d093de40a664a4a835cfc4"}},
-{"id":"date-utils","key":"date-utils","value":{"rev":"31-7be8fcf1919564a8fb7223a86a5954ac"}},
-{"id":"dateformat","key":"dateformat","value":{"rev":"11-5b924e1d29056a0ef9b89b9d7984d5c4"}},
-{"id":"dateformatjs","key":"dateformatjs","value":{"rev":"3-4c50a38ecc493535ee2570a838673937"}},
-{"id":"datejs","key":"datejs","value":{"rev":"5-f47e3e6532817f822aa910b59a45717c"}},
-{"id":"dateselect","key":"dateselect","value":{"rev":"3-ce58def02fd8c8feda8c6f2004726f97"}},
-{"id":"datetime","key":"datetime","value":{"rev":"7-14227b0677eb93b8eb519db47f46bf36"}},
-{"id":"db","key":"db","value":{"rev":"3-636e9ea922a85c92bc11aa9691a2e67f"}},
-{"id":"db-drizzle","key":"db-drizzle","value":{"rev":"157-955f74f49ac4236df317e227c08afaa3"}},
-{"id":"db-mysql","key":"db-mysql","value":{"rev":"224-e596a18d9af33ff1fbcf085a9f4f56fd"}},
-{"id":"db-oracle","key":"db-oracle","value":{"rev":"13-a1e2924d87b4badfddeccf6581525b08"}},
-{"id":"dcrypt","key":"dcrypt","value":{"rev":"29-a144a609bef5004781df901440d67b2d"}},
-{"id":"decafscript","key":"decafscript","value":{"rev":"3-f3a239dc7d503c900fc9854603d716e6"}},
-{"id":"decimal","key":"decimal","value":{"rev":"3-614ed56d4d6c5eb7883d8fd215705a12"}},
-{"id":"decimaljson","key":"decimaljson","value":{"rev":"9-7cb23f4b2b1168b1a213f1eefc85fa51"}},
-{"id":"deck","key":"deck","value":{"rev":"7-da422df97f13c7d84e8f3690c1e1ca32"}},
-{"id":"deckard","key":"deckard","value":{"rev":"3-85e0cd76cdd88ff60a617239060d6f46"}},
-{"id":"deckem","key":"deckem","value":{"rev":"9-03ca75ea35960ccd5779b4cfa8cfb9f9"}},
-{"id":"defensio","key":"defensio","value":{"rev":"5-0ad0ae70b4e184626d914cc4005ee34c"}},
-{"id":"defer","key":"defer","value":{"rev":"3-8d003c96f4263a26b7955e251cddbd95"}},
-{"id":"deferrable","key":"deferrable","value":{"rev":"8-3ae57ce4391105962d09ad619d4c4670"}},
-{"id":"deferred","key":"deferred","value":{"rev":"17-9cee7948dbdf7b6dcc00bbdc60041dd0"}},
-{"id":"define","key":"define","value":{"rev":"45-9d422f2ac5ab693f881df85898d68e3a"}},
-{"id":"deflate","key":"deflate","value":{"rev":"10-3ebe2b87e09f4ae51857cae02e1af788"}},
-{"id":"degrees","key":"degrees","value":{"rev":"5-707c57cfa3e589e8059fe9860cc0c10b"}},
-{"id":"deimos","key":"deimos","value":{"rev":"11-6481696be774d14254fe7c427107dc2a"}},
-{"id":"deja","key":"deja","value":{"rev":"47-bde4457402db895aad46198433842668"}},
-{"id":"delayed-stream","key":"delayed-stream","value":{"rev":"13-f6ca393b08582350f78c5c66f183489b"}},
-{"id":"delegator","key":"delegator","value":{"rev":"3-650651749c1df44ef544c919fae74f82"}},
-{"id":"dep-graph","key":"dep-graph","value":{"rev":"3-e404af87822756da52754e2cc5c576b1"}},
-{"id":"dependency-promise","key":"dependency-promise","value":{"rev":"11-1cc2be8465d736ec8f3cc8940ab22823"}},
-{"id":"depends","key":"depends","value":{"rev":"30-adc9604bbd8117592f82eee923d8703e"}},
-{"id":"deploy","key":"deploy","value":{"rev":"3-82020957528bd0bdd675bed9ac4e4cc5"}},
-{"id":"deployjs","key":"deployjs","value":{"rev":"5-a3e99a5ed81d4b1ad44b6477e6a5a985"}},
-{"id":"deputy-client","key":"deputy-client","value":{"rev":"3-31fd224b301ec0f073df7afa790050ec"}},
-{"id":"deputy-server","key":"deputy-server","value":{"rev":"3-0d790cce82aadfd2b8f39a6b056f2792"}},
-{"id":"derby","key":"derby","value":{"rev":"40-b642048a1a639d77ab139160a4da0fd2"}},
-{"id":"des","key":"des","value":{"rev":"24-fcbdc086e657aef356b75433b3e65ab6"}},
-{"id":"descent","key":"descent","value":{"rev":"7-9cc259b25fc688597fc7efaa516d03c6"}},
-{"id":"describe","key":"describe","value":{"rev":"6-788c7f2feaf2e88f4b1179976b273744"}},
-{"id":"deserver","key":"deserver","value":{"rev":"5-da8083694e89b8434123fe7482a3cc7e"}},
-{"id":"detect","key":"detect","value":{"rev":"3-c27f258d39d7905c2b92383809bb5988"}},
-{"id":"detective","key":"detective","value":{"rev":"9-d6cfa0c6389783cdc9c9ffa9e4082c64"}},
-{"id":"dev","key":"dev","value":{"rev":"23-5c2ce4a4f6a4f24d3cff3b7db997d8bc"}},
-{"id":"dev-warnings","key":"dev-warnings","value":{"rev":"5-5a7d7f36d09893df96441be8b09e41d6"}},
-{"id":"dhcpjs","key":"dhcpjs","value":{"rev":"3-1bc01bd612f3ab1fce178c979aa34e43"}},
-{"id":"dht","key":"dht","value":{"rev":"3-40c0b909b6c0e2305e19d10cea1881b0"}},
-{"id":"dht-bencode","key":"dht-bencode","value":{"rev":"5-88a1da8de312a54097507d72a049f0f3"}},
-{"id":"dialect","key":"dialect","value":{"rev":"18-db7928ce4756eea35db1732d4f2ebc88"}},
-{"id":"dialect-http","key":"dialect-http","value":{"rev":"19-23a927d28cb43733dbd05294134a5b8c"}},
-{"id":"dicks","key":"dicks","value":{"rev":"11-ba64897899e336d366ffd4b68cac99f5"}},
-{"id":"diff","key":"diff","value":{"rev":"13-1a88acb0369ab8ae096a2323d65a2811"}},
-{"id":"diff_match_patch","key":"diff_match_patch","value":{"rev":"8-2f6f467e483b23b217a2047e4aded850"}},
-{"id":"diffbot","key":"diffbot","value":{"rev":"3-8cb8e34af89cb477a5da52e3fd9a13f7"}},
-{"id":"digest","key":"digest","value":{"rev":"7-bc6fb9e68c83197381b0d9ac7db16c1c"}},
-{"id":"dir","key":"dir","value":{"rev":"7-574462bb241a39eeffe6c5184d40c57a"}},
-{"id":"dir-watcher","key":"dir-watcher","value":{"rev":"31-1a3ca4d6aa8aa32c619efad5fbfce494"}},
-{"id":"dir2html","key":"dir2html","value":{"rev":"5-b4bfb2916c2d94c85aa75ffa29ad1af4"}},
-{"id":"directive","key":"directive","value":{"rev":"3-3373f02b8762cb1505c8f8cbcc50d3d4"}},
-{"id":"dirsum","key":"dirsum","value":{"rev":"5-8545445faaa41d2225ec7ff226a10750"}},
-{"id":"dirty","key":"dirty","value":{"rev":"13-d636ea0d1ed35560c0bc7272965c1a6f"}},
-{"id":"dirty-uuid","key":"dirty-uuid","value":{"rev":"5-65acdfda886afca65ae52f0ac21ce1b2"}},
-{"id":"discogs","key":"discogs","value":{"rev":"21-839410e6bf3bee1435ff837daaeaf9f8"}},
-{"id":"discount","key":"discount","value":{"rev":"13-a8fb2a8f668ac0a55fffada1ea94a4b7"}},
-{"id":"discovery","key":"discovery","value":{"rev":"3-46f4496224d132e56cbc702df403219d"}},
-{"id":"diskcache","key":"diskcache","value":{"rev":"23-7b14ad41fc199184fb939828e9122099"}},
-{"id":"dispatch","key":"dispatch","value":{"rev":"6-e72cc7b2bcc97faf897ae4e4fa3ec681"}},
-{"id":"distribute.it","key":"distribute.it","value":{"rev":"12-0978757eb25d22117af675806cf6eef2"}},
-{"id":"dive","key":"dive","value":{"rev":"21-9cbd1281c5a3c2dae0cc0407863f3336"}},
-{"id":"diveSync","key":"diveSync","value":{"rev":"3-015ec4803903106bf24cb4f17cedee68"}},
-{"id":"dk-assets","key":"dk-assets","value":{"rev":"3-25d9b6ac727caf1e227e6436af835d03"}},
-{"id":"dk-core","key":"dk-core","value":{"rev":"3-0b6a2f4dfc0484a3908159a897920bae"}},
-{"id":"dk-couchdb","key":"dk-couchdb","value":{"rev":"3-cc9ef511f9ed46be9d7099f10b1ee776"}},
-{"id":"dk-model","key":"dk-model","value":{"rev":"3-3a61006be57d304724c049e4dcf2fc9b"}},
-{"id":"dk-model-couchdb","key":"dk-model-couchdb","value":{"rev":"3-5163def21660db8428e623909bbfcb4d"}},
-{"id":"dk-routes","key":"dk-routes","value":{"rev":"3-4563357f850248d7d0fb37f9bdcb893b"}},
-{"id":"dk-server","key":"dk-server","value":{"rev":"3-9aef13fc5814785c9805b26828e8d114"}},
-{"id":"dk-template","key":"dk-template","value":{"rev":"3-809c94776252441129705fbe1d93e752"}},
-{"id":"dk-transport","key":"dk-transport","value":{"rev":"3-9271da6f86079027535179b743d0d4c3"}},
-{"id":"dk-websockets","key":"dk-websockets","value":{"rev":"3-426b44c04180d6caf7cf765f03fc52c2"}},
-{"id":"dnet-index-proxy","key":"dnet-index-proxy","value":{"rev":"51-1f3cf4f534c154369d5e774a8f599106"}},
-{"id":"dnode","key":"dnode","value":{"rev":"129-68db10c25c23d635dc828aa698d1279e"}},
-{"id":"dnode-ez","key":"dnode-ez","value":{"rev":"17-75877eab5cf3976b8876c49afd2f7e38"}},
-{"id":"dnode-protocol","key":"dnode-protocol","value":{"rev":"23-fb28f8e1180e6aa44fa564e0d55b3d1e"}},
-{"id":"dnode-smoothiecharts","key":"dnode-smoothiecharts","value":{"rev":"3-d1483028e5768527c2786b9ed5d76463"}},
-{"id":"dnode-stack","key":"dnode-stack","value":{"rev":"9-c1ad8ce01282ce4fa72b5993c580e58e"}},
-{"id":"dnode-worker","key":"dnode-worker","value":{"rev":"3-4c73c0d7ed225197fd8fb0555eaf1152"}},
-{"id":"dns-server","key":"dns-server","value":{"rev":"3-4858a1773da514fea68eac6d9d39f69e"}},
-{"id":"dns-srv","key":"dns-srv","value":{"rev":"12-867c769437fa0ad8a83306aa9e2a158e"}},
-{"id":"doc","key":"doc","value":{"rev":"5-2c077b3fd3b6efa4e927b66f1390e4ea"}},
-{"id":"doc.md","key":"doc.md","value":{"rev":"7-8e8e51be4956550388699222b2e039e7"}},
-{"id":"docco","key":"docco","value":{"rev":"18-891bde1584809c3b1f40fef9961b4f28"}},
-{"id":"docdown","key":"docdown","value":{"rev":"5-fcf5be2ab6ceaed76c1980b462359057"}},
-{"id":"docket","key":"docket","value":{"rev":"13-a4969e0fb17af8dba7df178e364161c2"}},
-{"id":"docpad","key":"docpad","value":{"rev":"77-a478ac8c7ac86e304f9213380ea4b550"}},
-{"id":"docs","key":"docs","value":{"rev":"3-6b1fae9738a3327a3a3be826c0981c3a"}},
-{"id":"dojo-node","key":"dojo-node","value":{"rev":"13-e0dc12e9ce8ab3f40b228c2af8c41064"}},
-{"id":"d

<TRUNCATED>

[23/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/browser/bluebird.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/browser/bluebird.js b/node_modules/bluebird/js/browser/bluebird.js
deleted file mode 100644
index 0b823f7..0000000
--- a/node_modules/bluebird/js/browser/bluebird.js
+++ /dev/null
@@ -1,5619 +0,0 @@
-/* @preserve
- * The MIT License (MIT)
- * 
- * Copyright (c) 2013-2017 Petka Antonov
- * 
- * 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.
- * 
- */
-/**
- * bluebird build version 3.5.0
- * Features enabled: core, race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each
-*/
-!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.Promise=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof _dereq_=="function"&&_dereq_;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof _dereq_=="function"&&_dereq_;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
-"use strict";
-module.exports = function(Promise) {
-var SomePromiseArray = Promise._SomePromiseArray;
-function any(promises) {
-    var ret = new SomePromiseArray(promises);
-    var promise = ret.promise();
-    ret.setHowMany(1);
-    ret.setUnwrap();
-    ret.init();
-    return promise;
-}
-
-Promise.any = function (promises) {
-    return any(promises);
-};
-
-Promise.prototype.any = function () {
-    return any(this);
-};
-
-};
-
-},{}],2:[function(_dereq_,module,exports){
-"use strict";
-var firstLineError;
-try {throw new Error(); } catch (e) {firstLineError = e;}
-var schedule = _dereq_("./schedule");
-var Queue = _dereq_("./queue");
-var util = _dereq_("./util");
-
-function Async() {
-    this._customScheduler = false;
-    this._isTickUsed = false;
-    this._lateQueue = new Queue(16);
-    this._normalQueue = new Queue(16);
-    this._haveDrainedQueues = false;
-    this._trampolineEnabled = true;
-    var self = this;
-    this.drainQueues = function () {
-        self._drainQueues();
-    };
-    this._schedule = schedule;
-}
-
-Async.prototype.setScheduler = function(fn) {
-    var prev = this._schedule;
-    this._schedule = fn;
-    this._customScheduler = true;
-    return prev;
-};
-
-Async.prototype.hasCustomScheduler = function() {
-    return this._customScheduler;
-};
-
-Async.prototype.enableTrampoline = function() {
-    this._trampolineEnabled = true;
-};
-
-Async.prototype.disableTrampolineIfNecessary = function() {
-    if (util.hasDevTools) {
-        this._trampolineEnabled = false;
-    }
-};
-
-Async.prototype.haveItemsQueued = function () {
-    return this._isTickUsed || this._haveDrainedQueues;
-};
-
-
-Async.prototype.fatalError = function(e, isNode) {
-    if (isNode) {
-        process.stderr.write("Fatal " + (e instanceof Error ? e.stack : e) +
-            "\n");
-        process.exit(2);
-    } else {
-        this.throwLater(e);
-    }
-};
-
-Async.prototype.throwLater = function(fn, arg) {
-    if (arguments.length === 1) {
-        arg = fn;
-        fn = function () { throw arg; };
-    }
-    if (typeof setTimeout !== "undefined") {
-        setTimeout(function() {
-            fn(arg);
-        }, 0);
-    } else try {
-        this._schedule(function() {
-            fn(arg);
-        });
-    } catch (e) {
-        throw new Error("No async scheduler available\u000a\u000a    See http://goo.gl/MqrFmX\u000a");
-    }
-};
-
-function AsyncInvokeLater(fn, receiver, arg) {
-    this._lateQueue.push(fn, receiver, arg);
-    this._queueTick();
-}
-
-function AsyncInvoke(fn, receiver, arg) {
-    this._normalQueue.push(fn, receiver, arg);
-    this._queueTick();
-}
-
-function AsyncSettlePromises(promise) {
-    this._normalQueue._pushOne(promise);
-    this._queueTick();
-}
-
-if (!util.hasDevTools) {
-    Async.prototype.invokeLater = AsyncInvokeLater;
-    Async.prototype.invoke = AsyncInvoke;
-    Async.prototype.settlePromises = AsyncSettlePromises;
-} else {
-    Async.prototype.invokeLater = function (fn, receiver, arg) {
-        if (this._trampolineEnabled) {
-            AsyncInvokeLater.call(this, fn, receiver, arg);
-        } else {
-            this._schedule(function() {
-                setTimeout(function() {
-                    fn.call(receiver, arg);
-                }, 100);
-            });
-        }
-    };
-
-    Async.prototype.invoke = function (fn, receiver, arg) {
-        if (this._trampolineEnabled) {
-            AsyncInvoke.call(this, fn, receiver, arg);
-        } else {
-            this._schedule(function() {
-                fn.call(receiver, arg);
-            });
-        }
-    };
-
-    Async.prototype.settlePromises = function(promise) {
-        if (this._trampolineEnabled) {
-            AsyncSettlePromises.call(this, promise);
-        } else {
-            this._schedule(function() {
-                promise._settlePromises();
-            });
-        }
-    };
-}
-
-Async.prototype._drainQueue = function(queue) {
-    while (queue.length() > 0) {
-        var fn = queue.shift();
-        if (typeof fn !== "function") {
-            fn._settlePromises();
-            continue;
-        }
-        var receiver = queue.shift();
-        var arg = queue.shift();
-        fn.call(receiver, arg);
-    }
-};
-
-Async.prototype._drainQueues = function () {
-    this._drainQueue(this._normalQueue);
-    this._reset();
-    this._haveDrainedQueues = true;
-    this._drainQueue(this._lateQueue);
-};
-
-Async.prototype._queueTick = function () {
-    if (!this._isTickUsed) {
-        this._isTickUsed = true;
-        this._schedule(this.drainQueues);
-    }
-};
-
-Async.prototype._reset = function () {
-    this._isTickUsed = false;
-};
-
-module.exports = Async;
-module.exports.firstLineError = firstLineError;
-
-},{"./queue":26,"./schedule":29,"./util":36}],3:[function(_dereq_,module,exports){
-"use strict";
-module.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) {
-var calledBind = false;
-var rejectThis = function(_, e) {
-    this._reject(e);
-};
-
-var targetRejected = function(e, context) {
-    context.promiseRejectionQueued = true;
-    context.bindingPromise._then(rejectThis, rejectThis, null, this, e);
-};
-
-var bindingResolved = function(thisArg, context) {
-    if (((this._bitField & 50397184) === 0)) {
-        this._resolveCallback(context.target);
-    }
-};
-
-var bindingRejected = function(e, context) {
-    if (!context.promiseRejectionQueued) this._reject(e);
-};
-
-Promise.prototype.bind = function (thisArg) {
-    if (!calledBind) {
-        calledBind = true;
-        Promise.prototype._propagateFrom = debug.propagateFromFunction();
-        Promise.prototype._boundValue = debug.boundValueFunction();
-    }
-    var maybePromise = tryConvertToPromise(thisArg);
-    var ret = new Promise(INTERNAL);
-    ret._propagateFrom(this, 1);
-    var target = this._target();
-    ret._setBoundTo(maybePromise);
-    if (maybePromise instanceof Promise) {
-        var context = {
-            promiseRejectionQueued: false,
-            promise: ret,
-            target: target,
-            bindingPromise: maybePromise
-        };
-        target._then(INTERNAL, targetRejected, undefined, ret, context);
-        maybePromise._then(
-            bindingResolved, bindingRejected, undefined, ret, context);
-        ret._setOnCancel(maybePromise);
-    } else {
-        ret._resolveCallback(target);
-    }
-    return ret;
-};
-
-Promise.prototype._setBoundTo = function (obj) {
-    if (obj !== undefined) {
-        this._bitField = this._bitField | 2097152;
-        this._boundTo = obj;
-    } else {
-        this._bitField = this._bitField & (~2097152);
-    }
-};
-
-Promise.prototype._isBound = function () {
-    return (this._bitField & 2097152) === 2097152;
-};
-
-Promise.bind = function (thisArg, value) {
-    return Promise.resolve(value).bind(thisArg);
-};
-};
-
-},{}],4:[function(_dereq_,module,exports){
-"use strict";
-var old;
-if (typeof Promise !== "undefined") old = Promise;
-function noConflict() {
-    try { if (Promise === bluebird) Promise = old; }
-    catch (e) {}
-    return bluebird;
-}
-var bluebird = _dereq_("./promise")();
-bluebird.noConflict = noConflict;
-module.exports = bluebird;
-
-},{"./promise":22}],5:[function(_dereq_,module,exports){
-"use strict";
-var cr = Object.create;
-if (cr) {
-    var callerCache = cr(null);
-    var getterCache = cr(null);
-    callerCache[" size"] = getterCache[" size"] = 0;
-}
-
-module.exports = function(Promise) {
-var util = _dereq_("./util");
-var canEvaluate = util.canEvaluate;
-var isIdentifier = util.isIdentifier;
-
-var getMethodCaller;
-var getGetter;
-if (!true) {
-var makeMethodCaller = function (methodName) {
-    return new Function("ensureMethod", "                                    \n\
-        return function(obj) {                                               \n\
-            'use strict'                                                     \n\
-            var len = this.length;                                           \n\
-            ensureMethod(obj, 'methodName');                                 \n\
-            switch(len) {                                                    \n\
-                case 1: return obj.methodName(this[0]);                      \n\
-                case 2: return obj.methodName(this[0], this[1]);             \n\
-                case 3: return obj.methodName(this[0], this[1], this[2]);    \n\
-                case 0: return obj.methodName();                             \n\
-                default:                                                     \n\
-                    return obj.methodName.apply(obj, this);                  \n\
-            }                                                                \n\
-        };                                                                   \n\
-        ".replace(/methodName/g, methodName))(ensureMethod);
-};
-
-var makeGetter = function (propertyName) {
-    return new Function("obj", "                                             \n\
-        'use strict';                                                        \n\
-        return obj.propertyName;                                             \n\
-        ".replace("propertyName", propertyName));
-};
-
-var getCompiled = function(name, compiler, cache) {
-    var ret = cache[name];
-    if (typeof ret !== "function") {
-        if (!isIdentifier(name)) {
-            return null;
-        }
-        ret = compiler(name);
-        cache[name] = ret;
-        cache[" size"]++;
-        if (cache[" size"] > 512) {
-            var keys = Object.keys(cache);
-            for (var i = 0; i < 256; ++i) delete cache[keys[i]];
-            cache[" size"] = keys.length - 256;
-        }
-    }
-    return ret;
-};
-
-getMethodCaller = function(name) {
-    return getCompiled(name, makeMethodCaller, callerCache);
-};
-
-getGetter = function(name) {
-    return getCompiled(name, makeGetter, getterCache);
-};
-}
-
-function ensureMethod(obj, methodName) {
-    var fn;
-    if (obj != null) fn = obj[methodName];
-    if (typeof fn !== "function") {
-        var message = "Object " + util.classString(obj) + " has no method '" +
-            util.toString(methodName) + "'";
-        throw new Promise.TypeError(message);
-    }
-    return fn;
-}
-
-function caller(obj) {
-    var methodName = this.pop();
-    var fn = ensureMethod(obj, methodName);
-    return fn.apply(obj, this);
-}
-Promise.prototype.call = function (methodName) {
-    var args = [].slice.call(arguments, 1);;
-    if (!true) {
-        if (canEvaluate) {
-            var maybeCaller = getMethodCaller(methodName);
-            if (maybeCaller !== null) {
-                return this._then(
-                    maybeCaller, undefined, undefined, args, undefined);
-            }
-        }
-    }
-    args.push(methodName);
-    return this._then(caller, undefined, undefined, args, undefined);
-};
-
-function namedGetter(obj) {
-    return obj[this];
-}
-function indexedGetter(obj) {
-    var index = +this;
-    if (index < 0) index = Math.max(0, index + obj.length);
-    return obj[index];
-}
-Promise.prototype.get = function (propertyName) {
-    var isIndex = (typeof propertyName === "number");
-    var getter;
-    if (!isIndex) {
-        if (canEvaluate) {
-            var maybeGetter = getGetter(propertyName);
-            getter = maybeGetter !== null ? maybeGetter : namedGetter;
-        } else {
-            getter = namedGetter;
-        }
-    } else {
-        getter = indexedGetter;
-    }
-    return this._then(getter, undefined, undefined, propertyName, undefined);
-};
-};
-
-},{"./util":36}],6:[function(_dereq_,module,exports){
-"use strict";
-module.exports = function(Promise, PromiseArray, apiRejection, debug) {
-var util = _dereq_("./util");
-var tryCatch = util.tryCatch;
-var errorObj = util.errorObj;
-var async = Promise._async;
-
-Promise.prototype["break"] = Promise.prototype.cancel = function() {
-    if (!debug.cancellation()) return this._warn("cancellation is disabled");
-
-    var promise = this;
-    var child = promise;
-    while (promise._isCancellable()) {
-        if (!promise._cancelBy(child)) {
-            if (child._isFollowing()) {
-                child._followee().cancel();
-            } else {
-                child._cancelBranched();
-            }
-            break;
-        }
-
-        var parent = promise._cancellationParent;
-        if (parent == null || !parent._isCancellable()) {
-            if (promise._isFollowing()) {
-                promise._followee().cancel();
-            } else {
-                promise._cancelBranched();
-            }
-            break;
-        } else {
-            if (promise._isFollowing()) promise._followee().cancel();
-            promise._setWillBeCancelled();
-            child = promise;
-            promise = parent;
-        }
-    }
-};
-
-Promise.prototype._branchHasCancelled = function() {
-    this._branchesRemainingToCancel--;
-};
-
-Promise.prototype._enoughBranchesHaveCancelled = function() {
-    return this._branchesRemainingToCancel === undefined ||
-           this._branchesRemainingToCancel <= 0;
-};
-
-Promise.prototype._cancelBy = function(canceller) {
-    if (canceller === this) {
-        this._branchesRemainingToCancel = 0;
-        this._invokeOnCancel();
-        return true;
-    } else {
-        this._branchHasCancelled();
-        if (this._enoughBranchesHaveCancelled()) {
-            this._invokeOnCancel();
-            return true;
-        }
-    }
-    return false;
-};
-
-Promise.prototype._cancelBranched = function() {
-    if (this._enoughBranchesHaveCancelled()) {
-        this._cancel();
-    }
-};
-
-Promise.prototype._cancel = function() {
-    if (!this._isCancellable()) return;
-    this._setCancelled();
-    async.invoke(this._cancelPromises, this, undefined);
-};
-
-Promise.prototype._cancelPromises = function() {
-    if (this._length() > 0) this._settlePromises();
-};
-
-Promise.prototype._unsetOnCancel = function() {
-    this._onCancelField = undefined;
-};
-
-Promise.prototype._isCancellable = function() {
-    return this.isPending() && !this._isCancelled();
-};
-
-Promise.prototype.isCancellable = function() {
-    return this.isPending() && !this.isCancelled();
-};
-
-Promise.prototype._doInvokeOnCancel = function(onCancelCallback, internalOnly) {
-    if (util.isArray(onCancelCallback)) {
-        for (var i = 0; i < onCancelCallback.length; ++i) {
-            this._doInvokeOnCancel(onCancelCallback[i], internalOnly);
-        }
-    } else if (onCancelCallback !== undefined) {
-        if (typeof onCancelCallback === "function") {
-            if (!internalOnly) {
-                var e = tryCatch(onCancelCallback).call(this._boundValue());
-                if (e === errorObj) {
-                    this._attachExtraTrace(e.e);
-                    async.throwLater(e.e);
-                }
-            }
-        } else {
-            onCancelCallback._resultCancelled(this);
-        }
-    }
-};
-
-Promise.prototype._invokeOnCancel = function() {
-    var onCancelCallback = this._onCancel();
-    this._unsetOnCancel();
-    async.invoke(this._doInvokeOnCancel, this, onCancelCallback);
-};
-
-Promise.prototype._invokeInternalOnCancel = function() {
-    if (this._isCancellable()) {
-        this._doInvokeOnCancel(this._onCancel(), true);
-        this._unsetOnCancel();
-    }
-};
-
-Promise.prototype._resultCancelled = function() {
-    this.cancel();
-};
-
-};
-
-},{"./util":36}],7:[function(_dereq_,module,exports){
-"use strict";
-module.exports = function(NEXT_FILTER) {
-var util = _dereq_("./util");
-var getKeys = _dereq_("./es5").keys;
-var tryCatch = util.tryCatch;
-var errorObj = util.errorObj;
-
-function catchFilter(instances, cb, promise) {
-    return function(e) {
-        var boundTo = promise._boundValue();
-        predicateLoop: for (var i = 0; i < instances.length; ++i) {
-            var item = instances[i];
-
-            if (item === Error ||
-                (item != null && item.prototype instanceof Error)) {
-                if (e instanceof item) {
-                    return tryCatch(cb).call(boundTo, e);
-                }
-            } else if (typeof item === "function") {
-                var matchesPredicate = tryCatch(item).call(boundTo, e);
-                if (matchesPredicate === errorObj) {
-                    return matchesPredicate;
-                } else if (matchesPredicate) {
-                    return tryCatch(cb).call(boundTo, e);
-                }
-            } else if (util.isObject(e)) {
-                var keys = getKeys(item);
-                for (var j = 0; j < keys.length; ++j) {
-                    var key = keys[j];
-                    if (item[key] != e[key]) {
-                        continue predicateLoop;
-                    }
-                }
-                return tryCatch(cb).call(boundTo, e);
-            }
-        }
-        return NEXT_FILTER;
-    };
-}
-
-return catchFilter;
-};
-
-},{"./es5":13,"./util":36}],8:[function(_dereq_,module,exports){
-"use strict";
-module.exports = function(Promise) {
-var longStackTraces = false;
-var contextStack = [];
-
-Promise.prototype._promiseCreated = function() {};
-Promise.prototype._pushContext = function() {};
-Promise.prototype._popContext = function() {return null;};
-Promise._peekContext = Promise.prototype._peekContext = function() {};
-
-function Context() {
-    this._trace = new Context.CapturedTrace(peekContext());
-}
-Context.prototype._pushContext = function () {
-    if (this._trace !== undefined) {
-        this._trace._promiseCreated = null;
-        contextStack.push(this._trace);
-    }
-};
-
-Context.prototype._popContext = function () {
-    if (this._trace !== undefined) {
-        var trace = contextStack.pop();
-        var ret = trace._promiseCreated;
-        trace._promiseCreated = null;
-        return ret;
-    }
-    return null;
-};
-
-function createContext() {
-    if (longStackTraces) return new Context();
-}
-
-function peekContext() {
-    var lastIndex = contextStack.length - 1;
-    if (lastIndex >= 0) {
-        return contextStack[lastIndex];
-    }
-    return undefined;
-}
-Context.CapturedTrace = null;
-Context.create = createContext;
-Context.deactivateLongStackTraces = function() {};
-Context.activateLongStackTraces = function() {
-    var Promise_pushContext = Promise.prototype._pushContext;
-    var Promise_popContext = Promise.prototype._popContext;
-    var Promise_PeekContext = Promise._peekContext;
-    var Promise_peekContext = Promise.prototype._peekContext;
-    var Promise_promiseCreated = Promise.prototype._promiseCreated;
-    Context.deactivateLongStackTraces = function() {
-        Promise.prototype._pushContext = Promise_pushContext;
-        Promise.prototype._popContext = Promise_popContext;
-        Promise._peekContext = Promise_PeekContext;
-        Promise.prototype._peekContext = Promise_peekContext;
-        Promise.prototype._promiseCreated = Promise_promiseCreated;
-        longStackTraces = false;
-    };
-    longStackTraces = true;
-    Promise.prototype._pushContext = Context.prototype._pushContext;
-    Promise.prototype._popContext = Context.prototype._popContext;
-    Promise._peekContext = Promise.prototype._peekContext = peekContext;
-    Promise.prototype._promiseCreated = function() {
-        var ctx = this._peekContext();
-        if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this;
-    };
-};
-return Context;
-};
-
-},{}],9:[function(_dereq_,module,exports){
-"use strict";
-module.exports = function(Promise, Context) {
-var getDomain = Promise._getDomain;
-var async = Promise._async;
-var Warning = _dereq_("./errors").Warning;
-var util = _dereq_("./util");
-var canAttachTrace = util.canAttachTrace;
-var unhandledRejectionHandled;
-var possiblyUnhandledRejection;
-var bluebirdFramePattern =
-    /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/;
-var nodeFramePattern = /\((?:timers\.js):\d+:\d+\)/;
-var parseLinePattern = /[\/<\(](.+?):(\d+):(\d+)\)?\s*$/;
-var stackFramePattern = null;
-var formatStack = null;
-var indentStackFrames = false;
-var printWarning;
-var debugging = !!(util.env("BLUEBIRD_DEBUG") != 0 &&
-                        (true ||
-                         util.env("BLUEBIRD_DEBUG") ||
-                         util.env("NODE_ENV") === "development"));
-
-var warnings = !!(util.env("BLUEBIRD_WARNINGS") != 0 &&
-    (debugging || util.env("BLUEBIRD_WARNINGS")));
-
-var longStackTraces = !!(util.env("BLUEBIRD_LONG_STACK_TRACES") != 0 &&
-    (debugging || util.env("BLUEBIRD_LONG_STACK_TRACES")));
-
-var wForgottenReturn = util.env("BLUEBIRD_W_FORGOTTEN_RETURN") != 0 &&
-    (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN"));
-
-Promise.prototype.suppressUnhandledRejections = function() {
-    var target = this._target();
-    target._bitField = ((target._bitField & (~1048576)) |
-                      524288);
-};
-
-Promise.prototype._ensurePossibleRejectionHandled = function () {
-    if ((this._bitField & 524288) !== 0) return;
-    this._setRejectionIsUnhandled();
-    async.invokeLater(this._notifyUnhandledRejection, this, undefined);
-};
-
-Promise.prototype._notifyUnhandledRejectionIsHandled = function () {
-    fireRejectionEvent("rejectionHandled",
-                                  unhandledRejectionHandled, undefined, this);
-};
-
-Promise.prototype._setReturnedNonUndefined = function() {
-    this._bitField = this._bitField | 268435456;
-};
-
-Promise.prototype._returnedNonUndefined = function() {
-    return (this._bitField & 268435456) !== 0;
-};
-
-Promise.prototype._notifyUnhandledRejection = function () {
-    if (this._isRejectionUnhandled()) {
-        var reason = this._settledValue();
-        this._setUnhandledRejectionIsNotified();
-        fireRejectionEvent("unhandledRejection",
-                                      possiblyUnhandledRejection, reason, this);
-    }
-};
-
-Promise.prototype._setUnhandledRejectionIsNotified = function () {
-    this._bitField = this._bitField | 262144;
-};
-
-Promise.prototype._unsetUnhandledRejectionIsNotified = function () {
-    this._bitField = this._bitField & (~262144);
-};
-
-Promise.prototype._isUnhandledRejectionNotified = function () {
-    return (this._bitField & 262144) > 0;
-};
-
-Promise.prototype._setRejectionIsUnhandled = function () {
-    this._bitField = this._bitField | 1048576;
-};
-
-Promise.prototype._unsetRejectionIsUnhandled = function () {
-    this._bitField = this._bitField & (~1048576);
-    if (this._isUnhandledRejectionNotified()) {
-        this._unsetUnhandledRejectionIsNotified();
-        this._notifyUnhandledRejectionIsHandled();
-    }
-};
-
-Promise.prototype._isRejectionUnhandled = function () {
-    return (this._bitField & 1048576) > 0;
-};
-
-Promise.prototype._warn = function(message, shouldUseOwnTrace, promise) {
-    return warn(message, shouldUseOwnTrace, promise || this);
-};
-
-Promise.onPossiblyUnhandledRejection = function (fn) {
-    var domain = getDomain();
-    possiblyUnhandledRejection =
-        typeof fn === "function" ? (domain === null ?
-                                            fn : util.domainBind(domain, fn))
-                                 : undefined;
-};
-
-Promise.onUnhandledRejectionHandled = function (fn) {
-    var domain = getDomain();
-    unhandledRejectionHandled =
-        typeof fn === "function" ? (domain === null ?
-                                            fn : util.domainBind(domain, fn))
-                                 : undefined;
-};
-
-var disableLongStackTraces = function() {};
-Promise.longStackTraces = function () {
-    if (async.haveItemsQueued() && !config.longStackTraces) {
-        throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a    See http://goo.gl/MqrFmX\u000a");
-    }
-    if (!config.longStackTraces && longStackTracesIsSupported()) {
-        var Promise_captureStackTrace = Promise.prototype._captureStackTrace;
-        var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace;
-        config.longStackTraces = true;
-        disableLongStackTraces = function() {
-            if (async.haveItemsQueued() && !config.longStackTraces) {
-                throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a    See http://goo.gl/MqrFmX\u000a");
-            }
-            Promise.prototype._captureStackTrace = Promise_captureStackTrace;
-            Promise.prototype._attachExtraTrace = Promise_attachExtraTrace;
-            Context.deactivateLongStackTraces();
-            async.enableTrampoline();
-            config.longStackTraces = false;
-        };
-        Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace;
-        Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace;
-        Context.activateLongStackTraces();
-        async.disableTrampolineIfNecessary();
-    }
-};
-
-Promise.hasLongStackTraces = function () {
-    return config.longStackTraces && longStackTracesIsSupported();
-};
-
-var fireDomEvent = (function() {
-    try {
-        if (typeof CustomEvent === "function") {
-            var event = new CustomEvent("CustomEvent");
-            util.global.dispatchEvent(event);
-            return function(name, event) {
-                var domEvent = new CustomEvent(name.toLowerCase(), {
-                    detail: event,
-                    cancelable: true
-                });
-                return !util.global.dispatchEvent(domEvent);
-            };
-        } else if (typeof Event === "function") {
-            var event = new Event("CustomEvent");
-            util.global.dispatchEvent(event);
-            return function(name, event) {
-                var domEvent = new Event(name.toLowerCase(), {
-                    cancelable: true
-                });
-                domEvent.detail = event;
-                return !util.global.dispatchEvent(domEvent);
-            };
-        } else {
-            var event = document.createEvent("CustomEvent");
-            event.initCustomEvent("testingtheevent", false, true, {});
-            util.global.dispatchEvent(event);
-            return function(name, event) {
-                var domEvent = document.createEvent("CustomEvent");
-                domEvent.initCustomEvent(name.toLowerCase(), false, true,
-                    event);
-                return !util.global.dispatchEvent(domEvent);
-            };
-        }
-    } catch (e) {}
-    return function() {
-        return false;
-    };
-})();
-
-var fireGlobalEvent = (function() {
-    if (util.isNode) {
-        return function() {
-            return process.emit.apply(process, arguments);
-        };
-    } else {
-        if (!util.global) {
-            return function() {
-                return false;
-            };
-        }
-        return function(name) {
-            var methodName = "on" + name.toLowerCase();
-            var method = util.global[methodName];
-            if (!method) return false;
-            method.apply(util.global, [].slice.call(arguments, 1));
-            return true;
-        };
-    }
-})();
-
-function generatePromiseLifecycleEventObject(name, promise) {
-    return {promise: promise};
-}
-
-var eventToObjectGenerator = {
-    promiseCreated: generatePromiseLifecycleEventObject,
-    promiseFulfilled: generatePromiseLifecycleEventObject,
-    promiseRejected: generatePromiseLifecycleEventObject,
-    promiseResolved: generatePromiseLifecycleEventObject,
-    promiseCancelled: generatePromiseLifecycleEventObject,
-    promiseChained: function(name, promise, child) {
-        return {promise: promise, child: child};
-    },
-    warning: function(name, warning) {
-        return {warning: warning};
-    },
-    unhandledRejection: function (name, reason, promise) {
-        return {reason: reason, promise: promise};
-    },
-    rejectionHandled: generatePromiseLifecycleEventObject
-};
-
-var activeFireEvent = function (name) {
-    var globalEventFired = false;
-    try {
-        globalEventFired = fireGlobalEvent.apply(null, arguments);
-    } catch (e) {
-        async.throwLater(e);
-        globalEventFired = true;
-    }
-
-    var domEventFired = false;
-    try {
-        domEventFired = fireDomEvent(name,
-                    eventToObjectGenerator[name].apply(null, arguments));
-    } catch (e) {
-        async.throwLater(e);
-        domEventFired = true;
-    }
-
-    return domEventFired || globalEventFired;
-};
-
-Promise.config = function(opts) {
-    opts = Object(opts);
-    if ("longStackTraces" in opts) {
-        if (opts.longStackTraces) {
-            Promise.longStackTraces();
-        } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) {
-            disableLongStackTraces();
-        }
-    }
-    if ("warnings" in opts) {
-        var warningsOption = opts.warnings;
-        config.warnings = !!warningsOption;
-        wForgottenReturn = config.warnings;
-
-        if (util.isObject(warningsOption)) {
-            if ("wForgottenReturn" in warningsOption) {
-                wForgottenReturn = !!warningsOption.wForgottenReturn;
-            }
-        }
-    }
-    if ("cancellation" in opts && opts.cancellation && !config.cancellation) {
-        if (async.haveItemsQueued()) {
-            throw new Error(
-                "cannot enable cancellation after promises are in use");
-        }
-        Promise.prototype._clearCancellationData =
-            cancellationClearCancellationData;
-        Promise.prototype._propagateFrom = cancellationPropagateFrom;
-        Promise.prototype._onCancel = cancellationOnCancel;
-        Promise.prototype._setOnCancel = cancellationSetOnCancel;
-        Promise.prototype._attachCancellationCallback =
-            cancellationAttachCancellationCallback;
-        Promise.prototype._execute = cancellationExecute;
-        propagateFromFunction = cancellationPropagateFrom;
-        config.cancellation = true;
-    }
-    if ("monitoring" in opts) {
-        if (opts.monitoring && !config.monitoring) {
-            config.monitoring = true;
-            Promise.prototype._fireEvent = activeFireEvent;
-        } else if (!opts.monitoring && config.monitoring) {
-            config.monitoring = false;
-            Promise.prototype._fireEvent = defaultFireEvent;
-        }
-    }
-    return Promise;
-};
-
-function defaultFireEvent() { return false; }
-
-Promise.prototype._fireEvent = defaultFireEvent;
-Promise.prototype._execute = function(executor, resolve, reject) {
-    try {
-        executor(resolve, reject);
-    } catch (e) {
-        return e;
-    }
-};
-Promise.prototype._onCancel = function () {};
-Promise.prototype._setOnCancel = function (handler) { ; };
-Promise.prototype._attachCancellationCallback = function(onCancel) {
-    ;
-};
-Promise.prototype._captureStackTrace = function () {};
-Promise.prototype._attachExtraTrace = function () {};
-Promise.prototype._clearCancellationData = function() {};
-Promise.prototype._propagateFrom = function (parent, flags) {
-    ;
-    ;
-};
-
-function cancellationExecute(executor, resolve, reject) {
-    var promise = this;
-    try {
-        executor(resolve, reject, function(onCancel) {
-            if (typeof onCancel !== "function") {
-                throw new TypeError("onCancel must be a function, got: " +
-                                    util.toString(onCancel));
-            }
-            promise._attachCancellationCallback(onCancel);
-        });
-    } catch (e) {
-        return e;
-    }
-}
-
-function cancellationAttachCancellationCallback(onCancel) {
-    if (!this._isCancellable()) return this;
-
-    var previousOnCancel = this._onCancel();
-    if (previousOnCancel !== undefined) {
-        if (util.isArray(previousOnCancel)) {
-            previousOnCancel.push(onCancel);
-        } else {
-            this._setOnCancel([previousOnCancel, onCancel]);
-        }
-    } else {
-        this._setOnCancel(onCancel);
-    }
-}
-
-function cancellationOnCancel() {
-    return this._onCancelField;
-}
-
-function cancellationSetOnCancel(onCancel) {
-    this._onCancelField = onCancel;
-}
-
-function cancellationClearCancellationData() {
-    this._cancellationParent = undefined;
-    this._onCancelField = undefined;
-}
-
-function cancellationPropagateFrom(parent, flags) {
-    if ((flags & 1) !== 0) {
-        this._cancellationParent = parent;
-        var branchesRemainingToCancel = parent._branchesRemainingToCancel;
-        if (branchesRemainingToCancel === undefined) {
-            branchesRemainingToCancel = 0;
-        }
-        parent._branchesRemainingToCancel = branchesRemainingToCancel + 1;
-    }
-    if ((flags & 2) !== 0 && parent._isBound()) {
-        this._setBoundTo(parent._boundTo);
-    }
-}
-
-function bindingPropagateFrom(parent, flags) {
-    if ((flags & 2) !== 0 && parent._isBound()) {
-        this._setBoundTo(parent._boundTo);
-    }
-}
-var propagateFromFunction = bindingPropagateFrom;
-
-function boundValueFunction() {
-    var ret = this._boundTo;
-    if (ret !== undefined) {
-        if (ret instanceof Promise) {
-            if (ret.isFulfilled()) {
-                return ret.value();
-            } else {
-                return undefined;
-            }
-        }
-    }
-    return ret;
-}
-
-function longStackTracesCaptureStackTrace() {
-    this._trace = new CapturedTrace(this._peekContext());
-}
-
-function longStackTracesAttachExtraTrace(error, ignoreSelf) {
-    if (canAttachTrace(error)) {
-        var trace = this._trace;
-        if (trace !== undefined) {
-            if (ignoreSelf) trace = trace._parent;
-        }
-        if (trace !== undefined) {
-            trace.attachExtraTrace(error);
-        } else if (!error.__stackCleaned__) {
-            var parsed = parseStackAndMessage(error);
-            util.notEnumerableProp(error, "stack",
-                parsed.message + "\n" + parsed.stack.join("\n"));
-            util.notEnumerableProp(error, "__stackCleaned__", true);
-        }
-    }
-}
-
-function checkForgottenReturns(returnValue, promiseCreated, name, promise,
-                               parent) {
-    if (returnValue === undefined && promiseCreated !== null &&
-        wForgottenReturn) {
-        if (parent !== undefined && parent._returnedNonUndefined()) return;
-        if ((promise._bitField & 65535) === 0) return;
-
-        if (name) name = name + " ";
-        var handlerLine = "";
-        var creatorLine = "";
-        if (promiseCreated._trace) {
-            var traceLines = promiseCreated._trace.stack.split("\n");
-            var stack = cleanStack(traceLines);
-            for (var i = stack.length - 1; i >= 0; --i) {
-                var line = stack[i];
-                if (!nodeFramePattern.test(line)) {
-                    var lineMatches = line.match(parseLinePattern);
-                    if (lineMatches) {
-                        handlerLine  = "at " + lineMatches[1] +
-                            ":" + lineMatches[2] + ":" + lineMatches[3] + " ";
-                    }
-                    break;
-                }
-            }
-
-            if (stack.length > 0) {
-                var firstUserLine = stack[0];
-                for (var i = 0; i < traceLines.length; ++i) {
-
-                    if (traceLines[i] === firstUserLine) {
-                        if (i > 0) {
-                            creatorLine = "\n" + traceLines[i - 1];
-                        }
-                        break;
-                    }
-                }
-
-            }
-        }
-        var msg = "a promise was created in a " + name +
-            "handler " + handlerLine + "but was not returned from it, " +
-            "see http://goo.gl/rRqMUw" +
-            creatorLine;
-        promise._warn(msg, true, promiseCreated);
-    }
-}
-
-function deprecated(name, replacement) {
-    var message = name +
-        " is deprecated and will be removed in a future version.";
-    if (replacement) message += " Use " + replacement + " instead.";
-    return warn(message);
-}
-
-function warn(message, shouldUseOwnTrace, promise) {
-    if (!config.warnings) return;
-    var warning = new Warning(message);
-    var ctx;
-    if (shouldUseOwnTrace) {
-        promise._attachExtraTrace(warning);
-    } else if (config.longStackTraces && (ctx = Promise._peekContext())) {
-        ctx.attachExtraTrace(warning);
-    } else {
-        var parsed = parseStackAndMessage(warning);
-        warning.stack = parsed.message + "\n" + parsed.stack.join("\n");
-    }
-
-    if (!activeFireEvent("warning", warning)) {
-        formatAndLogError(warning, "", true);
-    }
-}
-
-function reconstructStack(message, stacks) {
-    for (var i = 0; i < stacks.length - 1; ++i) {
-        stacks[i].push("From previous event:");
-        stacks[i] = stacks[i].join("\n");
-    }
-    if (i < stacks.length) {
-        stacks[i] = stacks[i].join("\n");
-    }
-    return message + "\n" + stacks.join("\n");
-}
-
-function removeDuplicateOrEmptyJumps(stacks) {
-    for (var i = 0; i < stacks.length; ++i) {
-        if (stacks[i].length === 0 ||
-            ((i + 1 < stacks.length) && stacks[i][0] === stacks[i+1][0])) {
-            stacks.splice(i, 1);
-            i--;
-        }
-    }
-}
-
-function removeCommonRoots(stacks) {
-    var current = stacks[0];
-    for (var i = 1; i < stacks.length; ++i) {
-        var prev = stacks[i];
-        var currentLastIndex = current.length - 1;
-        var currentLastLine = current[currentLastIndex];
-        var commonRootMeetPoint = -1;
-
-        for (var j = prev.length - 1; j >= 0; --j) {
-            if (prev[j] === currentLastLine) {
-                commonRootMeetPoint = j;
-                break;
-            }
-        }
-
-        for (var j = commonRootMeetPoint; j >= 0; --j) {
-            var line = prev[j];
-            if (current[currentLastIndex] === line) {
-                current.pop();
-                currentLastIndex--;
-            } else {
-                break;
-            }
-        }
-        current = prev;
-    }
-}
-
-function cleanStack(stack) {
-    var ret = [];
-    for (var i = 0; i < stack.length; ++i) {
-        var line = stack[i];
-        var isTraceLine = "    (No stack trace)" === line ||
-            stackFramePattern.test(line);
-        var isInternalFrame = isTraceLine && shouldIgnore(line);
-        if (isTraceLine && !isInternalFrame) {
-            if (indentStackFrames && line.charAt(0) !== " ") {
-                line = "    " + line;
-            }
-            ret.push(line);
-        }
-    }
-    return ret;
-}
-
-function stackFramesAsArray(error) {
-    var stack = error.stack.replace(/\s+$/g, "").split("\n");
-    for (var i = 0; i < stack.length; ++i) {
-        var line = stack[i];
-        if ("    (No stack trace)" === line || stackFramePattern.test(line)) {
-            break;
-        }
-    }
-    if (i > 0 && error.name != "SyntaxError") {
-        stack = stack.slice(i);
-    }
-    return stack;
-}
-
-function parseStackAndMessage(error) {
-    var stack = error.stack;
-    var message = error.toString();
-    stack = typeof stack === "string" && stack.length > 0
-                ? stackFramesAsArray(error) : ["    (No stack trace)"];
-    return {
-        message: message,
-        stack: error.name == "SyntaxError" ? stack : cleanStack(stack)
-    };
-}
-
-function formatAndLogError(error, title, isSoft) {
-    if (typeof console !== "undefined") {
-        var message;
-        if (util.isObject(error)) {
-            var stack = error.stack;
-            message = title + formatStack(stack, error);
-        } else {
-            message = title + String(error);
-        }
-        if (typeof printWarning === "function") {
-            printWarning(message, isSoft);
-        } else if (typeof console.log === "function" ||
-            typeof console.log === "object") {
-            console.log(message);
-        }
-    }
-}
-
-function fireRejectionEvent(name, localHandler, reason, promise) {
-    var localEventFired = false;
-    try {
-        if (typeof localHandler === "function") {
-            localEventFired = true;
-            if (name === "rejectionHandled") {
-                localHandler(promise);
-            } else {
-                localHandler(reason, promise);
-            }
-        }
-    } catch (e) {
-        async.throwLater(e);
-    }
-
-    if (name === "unhandledRejection") {
-        if (!activeFireEvent(name, reason, promise) && !localEventFired) {
-            formatAndLogError(reason, "Unhandled rejection ");
-        }
-    } else {
-        activeFireEvent(name, promise);
-    }
-}
-
-function formatNonError(obj) {
-    var str;
-    if (typeof obj === "function") {
-        str = "[function " +
-            (obj.name || "anonymous") +
-            "]";
-    } else {
-        str = obj && typeof obj.toString === "function"
-            ? obj.toString() : util.toString(obj);
-        var ruselessToString = /\[object [a-zA-Z0-9$_]+\]/;
-        if (ruselessToString.test(str)) {
-            try {
-                var newStr = JSON.stringify(obj);
-                str = newStr;
-            }
-            catch(e) {
-
-            }
-        }
-        if (str.length === 0) {
-            str = "(empty array)";
-        }
-    }
-    return ("(<" + snip(str) + ">, no stack trace)");
-}
-
-function snip(str) {
-    var maxChars = 41;
-    if (str.length < maxChars) {
-        return str;
-    }
-    return str.substr(0, maxChars - 3) + "...";
-}
-
-function longStackTracesIsSupported() {
-    return typeof captureStackTrace === "function";
-}
-
-var shouldIgnore = function() { return false; };
-var parseLineInfoRegex = /[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;
-function parseLineInfo(line) {
-    var matches = line.match(parseLineInfoRegex);
-    if (matches) {
-        return {
-            fileName: matches[1],
-            line: parseInt(matches[2], 10)
-        };
-    }
-}
-
-function setBounds(firstLineError, lastLineError) {
-    if (!longStackTracesIsSupported()) return;
-    var firstStackLines = firstLineError.stack.split("\n");
-    var lastStackLines = lastLineError.stack.split("\n");
-    var firstIndex = -1;
-    var lastIndex = -1;
-    var firstFileName;
-    var lastFileName;
-    for (var i = 0; i < firstStackLines.length; ++i) {
-        var result = parseLineInfo(firstStackLines[i]);
-        if (result) {
-            firstFileName = result.fileName;
-            firstIndex = result.line;
-            break;
-        }
-    }
-    for (var i = 0; i < lastStackLines.length; ++i) {
-        var result = parseLineInfo(lastStackLines[i]);
-        if (result) {
-            lastFileName = result.fileName;
-            lastIndex = result.line;
-            break;
-        }
-    }
-    if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName ||
-        firstFileName !== lastFileName || firstIndex >= lastIndex) {
-        return;
-    }
-
-    shouldIgnore = function(line) {
-        if (bluebirdFramePattern.test(line)) return true;
-        var info = parseLineInfo(line);
-        if (info) {
-            if (info.fileName === firstFileName &&
-                (firstIndex <= info.line && info.line <= lastIndex)) {
-                return true;
-            }
-        }
-        return false;
-    };
-}
-
-function CapturedTrace(parent) {
-    this._parent = parent;
-    this._promisesCreated = 0;
-    var length = this._length = 1 + (parent === undefined ? 0 : parent._length);
-    captureStackTrace(this, CapturedTrace);
-    if (length > 32) this.uncycle();
-}
-util.inherits(CapturedTrace, Error);
-Context.CapturedTrace = CapturedTrace;
-
-CapturedTrace.prototype.uncycle = function() {
-    var length = this._length;
-    if (length < 2) return;
-    var nodes = [];
-    var stackToIndex = {};
-
-    for (var i = 0, node = this; node !== undefined; ++i) {
-        nodes.push(node);
-        node = node._parent;
-    }
-    length = this._length = i;
-    for (var i = length - 1; i >= 0; --i) {
-        var stack = nodes[i].stack;
-        if (stackToIndex[stack] === undefined) {
-            stackToIndex[stack] = i;
-        }
-    }
-    for (var i = 0; i < length; ++i) {
-        var currentStack = nodes[i].stack;
-        var index = stackToIndex[currentStack];
-        if (index !== undefined && index !== i) {
-            if (index > 0) {
-                nodes[index - 1]._parent = undefined;
-                nodes[index - 1]._length = 1;
-            }
-            nodes[i]._parent = undefined;
-            nodes[i]._length = 1;
-            var cycleEdgeNode = i > 0 ? nodes[i - 1] : this;
-
-            if (index < length - 1) {
-                cycleEdgeNode._parent = nodes[index + 1];
-                cycleEdgeNode._parent.uncycle();
-                cycleEdgeNode._length =
-                    cycleEdgeNode._parent._length + 1;
-            } else {
-                cycleEdgeNode._parent = undefined;
-                cycleEdgeNode._length = 1;
-            }
-            var currentChildLength = cycleEdgeNode._length + 1;
-            for (var j = i - 2; j >= 0; --j) {
-                nodes[j]._length = currentChildLength;
-                currentChildLength++;
-            }
-            return;
-        }
-    }
-};
-
-CapturedTrace.prototype.attachExtraTrace = function(error) {
-    if (error.__stackCleaned__) return;
-    this.uncycle();
-    var parsed = parseStackAndMessage(error);
-    var message = parsed.message;
-    var stacks = [parsed.stack];
-
-    var trace = this;
-    while (trace !== undefined) {
-        stacks.push(cleanStack(trace.stack.split("\n")));
-        trace = trace._parent;
-    }
-    removeCommonRoots(stacks);
-    removeDuplicateOrEmptyJumps(stacks);
-    util.notEnumerableProp(error, "stack", reconstructStack(message, stacks));
-    util.notEnumerableProp(error, "__stackCleaned__", true);
-};
-
-var captureStackTrace = (function stackDetection() {
-    var v8stackFramePattern = /^\s*at\s*/;
-    var v8stackFormatter = function(stack, error) {
-        if (typeof stack === "string") return stack;
-
-        if (error.name !== undefined &&
-            error.message !== undefined) {
-            return error.toString();
-        }
-        return formatNonError(error);
-    };
-
-    if (typeof Error.stackTraceLimit === "number" &&
-        typeof Error.captureStackTrace === "function") {
-        Error.stackTraceLimit += 6;
-        stackFramePattern = v8stackFramePattern;
-        formatStack = v8stackFormatter;
-        var captureStackTrace = Error.captureStackTrace;
-
-        shouldIgnore = function(line) {
-            return bluebirdFramePattern.test(line);
-        };
-        return function(receiver, ignoreUntil) {
-            Error.stackTraceLimit += 6;
-            captureStackTrace(receiver, ignoreUntil);
-            Error.stackTraceLimit -= 6;
-        };
-    }
-    var err = new Error();
-
-    if (typeof err.stack === "string" &&
-        err.stack.split("\n")[0].indexOf("stackDetection@") >= 0) {
-        stackFramePattern = /@/;
-        formatStack = v8stackFormatter;
-        indentStackFrames = true;
-        return function captureStackTrace(o) {
-            o.stack = new Error().stack;
-        };
-    }
-
-    var hasStackAfterThrow;
-    try { throw new Error(); }
-    catch(e) {
-        hasStackAfterThrow = ("stack" in e);
-    }
-    if (!("stack" in err) && hasStackAfterThrow &&
-        typeof Error.stackTraceLimit === "number") {
-        stackFramePattern = v8stackFramePattern;
-        formatStack = v8stackFormatter;
-        return function captureStackTrace(o) {
-            Error.stackTraceLimit += 6;
-            try { throw new Error(); }
-            catch(e) { o.stack = e.stack; }
-            Error.stackTraceLimit -= 6;
-        };
-    }
-
-    formatStack = function(stack, error) {
-        if (typeof stack === "string") return stack;
-
-        if ((typeof error === "object" ||
-            typeof error === "function") &&
-            error.name !== undefined &&
-            error.message !== undefined) {
-            return error.toString();
-        }
-        return formatNonError(error);
-    };
-
-    return null;
-
-})([]);
-
-if (typeof console !== "undefined" && typeof console.warn !== "undefined") {
-    printWarning = function (message) {
-        console.warn(message);
-    };
-    if (util.isNode && process.stderr.isTTY) {
-        printWarning = function(message, isSoft) {
-            var color = isSoft ? "\u001b[33m" : "\u001b[31m";
-            console.warn(color + message + "\u001b[0m\n");
-        };
-    } else if (!util.isNode && typeof (new Error().stack) === "string") {
-        printWarning = function(message, isSoft) {
-            console.warn("%c" + message,
-                        isSoft ? "color: darkorange" : "color: red");
-        };
-    }
-}
-
-var config = {
-    warnings: warnings,
-    longStackTraces: false,
-    cancellation: false,
-    monitoring: false
-};
-
-if (longStackTraces) Promise.longStackTraces();
-
-return {
-    longStackTraces: function() {
-        return config.longStackTraces;
-    },
-    warnings: function() {
-        return config.warnings;
-    },
-    cancellation: function() {
-        return config.cancellation;
-    },
-    monitoring: function() {
-        return config.monitoring;
-    },
-    propagateFromFunction: function() {
-        return propagateFromFunction;
-    },
-    boundValueFunction: function() {
-        return boundValueFunction;
-    },
-    checkForgottenReturns: checkForgottenReturns,
-    setBounds: setBounds,
-    warn: warn,
-    deprecated: deprecated,
-    CapturedTrace: CapturedTrace,
-    fireDomEvent: fireDomEvent,
-    fireGlobalEvent: fireGlobalEvent
-};
-};
-
-},{"./errors":12,"./util":36}],10:[function(_dereq_,module,exports){
-"use strict";
-module.exports = function(Promise) {
-function returner() {
-    return this.value;
-}
-function thrower() {
-    throw this.reason;
-}
-
-Promise.prototype["return"] =
-Promise.prototype.thenReturn = function (value) {
-    if (value instanceof Promise) value.suppressUnhandledRejections();
-    return this._then(
-        returner, undefined, undefined, {value: value}, undefined);
-};
-
-Promise.prototype["throw"] =
-Promise.prototype.thenThrow = function (reason) {
-    return this._then(
-        thrower, undefined, undefined, {reason: reason}, undefined);
-};
-
-Promise.prototype.catchThrow = function (reason) {
-    if (arguments.length <= 1) {
-        return this._then(
-            undefined, thrower, undefined, {reason: reason}, undefined);
-    } else {
-        var _reason = arguments[1];
-        var handler = function() {throw _reason;};
-        return this.caught(reason, handler);
-    }
-};
-
-Promise.prototype.catchReturn = function (value) {
-    if (arguments.length <= 1) {
-        if (value instanceof Promise) value.suppressUnhandledRejections();
-        return this._then(
-            undefined, returner, undefined, {value: value}, undefined);
-    } else {
-        var _value = arguments[1];
-        if (_value instanceof Promise) _value.suppressUnhandledRejections();
-        var handler = function() {return _value;};
-        return this.caught(value, handler);
-    }
-};
-};
-
-},{}],11:[function(_dereq_,module,exports){
-"use strict";
-module.exports = function(Promise, INTERNAL) {
-var PromiseReduce = Promise.reduce;
-var PromiseAll = Promise.all;
-
-function promiseAllThis() {
-    return PromiseAll(this);
-}
-
-function PromiseMapSeries(promises, fn) {
-    return PromiseReduce(promises, fn, INTERNAL, INTERNAL);
-}
-
-Promise.prototype.each = function (fn) {
-    return PromiseReduce(this, fn, INTERNAL, 0)
-              ._then(promiseAllThis, undefined, undefined, this, undefined);
-};
-
-Promise.prototype.mapSeries = function (fn) {
-    return PromiseReduce(this, fn, INTERNAL, INTERNAL);
-};
-
-Promise.each = function (promises, fn) {
-    return PromiseReduce(promises, fn, INTERNAL, 0)
-              ._then(promiseAllThis, undefined, undefined, promises, undefined);
-};
-
-Promise.mapSeries = PromiseMapSeries;
-};
-
-
-},{}],12:[function(_dereq_,module,exports){
-"use strict";
-var es5 = _dereq_("./es5");
-var Objectfreeze = es5.freeze;
-var util = _dereq_("./util");
-var inherits = util.inherits;
-var notEnumerableProp = util.notEnumerableProp;
-
-function subError(nameProperty, defaultMessage) {
-    function SubError(message) {
-        if (!(this instanceof SubError)) return new SubError(message);
-        notEnumerableProp(this, "message",
-            typeof message === "string" ? message : defaultMessage);
-        notEnumerableProp(this, "name", nameProperty);
-        if (Error.captureStackTrace) {
-            Error.captureStackTrace(this, this.constructor);
-        } else {
-            Error.call(this);
-        }
-    }
-    inherits(SubError, Error);
-    return SubError;
-}
-
-var _TypeError, _RangeError;
-var Warning = subError("Warning", "warning");
-var CancellationError = subError("CancellationError", "cancellation error");
-var TimeoutError = subError("TimeoutError", "timeout error");
-var AggregateError = subError("AggregateError", "aggregate error");
-try {
-    _TypeError = TypeError;
-    _RangeError = RangeError;
-} catch(e) {
-    _TypeError = subError("TypeError", "type error");
-    _RangeError = subError("RangeError", "range error");
-}
-
-var methods = ("join pop push shift unshift slice filter forEach some " +
-    "every map indexOf lastIndexOf reduce reduceRight sort reverse").split(" ");
-
-for (var i = 0; i < methods.length; ++i) {
-    if (typeof Array.prototype[methods[i]] === "function") {
-        AggregateError.prototype[methods[i]] = Array.prototype[methods[i]];
-    }
-}
-
-es5.defineProperty(AggregateError.prototype, "length", {
-    value: 0,
-    configurable: false,
-    writable: true,
-    enumerable: true
-});
-AggregateError.prototype["isOperational"] = true;
-var level = 0;
-AggregateError.prototype.toString = function() {
-    var indent = Array(level * 4 + 1).join(" ");
-    var ret = "\n" + indent + "AggregateError of:" + "\n";
-    level++;
-    indent = Array(level * 4 + 1).join(" ");
-    for (var i = 0; i < this.length; ++i) {
-        var str = this[i] === this ? "[Circular AggregateError]" : this[i] + "";
-        var lines = str.split("\n");
-        for (var j = 0; j < lines.length; ++j) {
-            lines[j] = indent + lines[j];
-        }
-        str = lines.join("\n");
-        ret += str + "\n";
-    }
-    level--;
-    return ret;
-};
-
-function OperationalError(message) {
-    if (!(this instanceof OperationalError))
-        return new OperationalError(message);
-    notEnumerableProp(this, "name", "OperationalError");
-    notEnumerableProp(this, "message", message);
-    this.cause = message;
-    this["isOperational"] = true;
-
-    if (message instanceof Error) {
-        notEnumerableProp(this, "message", message.message);
-        notEnumerableProp(this, "stack", message.stack);
-    } else if (Error.captureStackTrace) {
-        Error.captureStackTrace(this, this.constructor);
-    }
-
-}
-inherits(OperationalError, Error);
-
-var errorTypes = Error["__BluebirdErrorTypes__"];
-if (!errorTypes) {
-    errorTypes = Objectfreeze({
-        CancellationError: CancellationError,
-        TimeoutError: TimeoutError,
-        OperationalError: OperationalError,
-        RejectionError: OperationalError,
-        AggregateError: AggregateError
-    });
-    es5.defineProperty(Error, "__BluebirdErrorTypes__", {
-        value: errorTypes,
-        writable: false,
-        enumerable: false,
-        configurable: false
-    });
-}
-
-module.exports = {
-    Error: Error,
-    TypeError: _TypeError,
-    RangeError: _RangeError,
-    CancellationError: errorTypes.CancellationError,
-    OperationalError: errorTypes.OperationalError,
-    TimeoutError: errorTypes.TimeoutError,
-    AggregateError: errorTypes.AggregateError,
-    Warning: Warning
-};
-
-},{"./es5":13,"./util":36}],13:[function(_dereq_,module,exports){
-var isES5 = (function(){
-    "use strict";
-    return this === undefined;
-})();
-
-if (isES5) {
-    module.exports = {
-        freeze: Object.freeze,
-        defineProperty: Object.defineProperty,
-        getDescriptor: Object.getOwnPropertyDescriptor,
-        keys: Object.keys,
-        names: Object.getOwnPropertyNames,
-        getPrototypeOf: Object.getPrototypeOf,
-        isArray: Array.isArray,
-        isES5: isES5,
-        propertyIsWritable: function(obj, prop) {
-            var descriptor = Object.getOwnPropertyDescriptor(obj, prop);
-            return !!(!descriptor || descriptor.writable || descriptor.set);
-        }
-    };
-} else {
-    var has = {}.hasOwnProperty;
-    var str = {}.toString;
-    var proto = {}.constructor.prototype;
-
-    var ObjectKeys = function (o) {
-        var ret = [];
-        for (var key in o) {
-            if (has.call(o, key)) {
-                ret.push(key);
-            }
-        }
-        return ret;
-    };
-
-    var ObjectGetDescriptor = function(o, key) {
-        return {value: o[key]};
-    };
-
-    var ObjectDefineProperty = function (o, key, desc) {
-        o[key] = desc.value;
-        return o;
-    };
-
-    var ObjectFreeze = function (obj) {
-        return obj;
-    };
-
-    var ObjectGetPrototypeOf = function (obj) {
-        try {
-            return Object(obj).constructor.prototype;
-        }
-        catch (e) {
-            return proto;
-        }
-    };
-
-    var ArrayIsArray = function (obj) {
-        try {
-            return str.call(obj) === "[object Array]";
-        }
-        catch(e) {
-            return false;
-        }
-    };
-
-    module.exports = {
-        isArray: ArrayIsArray,
-        keys: ObjectKeys,
-        names: ObjectKeys,
-        defineProperty: ObjectDefineProperty,
-        getDescriptor: ObjectGetDescriptor,
-        freeze: ObjectFreeze,
-        getPrototypeOf: ObjectGetPrototypeOf,
-        isES5: isES5,
-        propertyIsWritable: function() {
-            return true;
-        }
-    };
-}
-
-},{}],14:[function(_dereq_,module,exports){
-"use strict";
-module.exports = function(Promise, INTERNAL) {
-var PromiseMap = Promise.map;
-
-Promise.prototype.filter = function (fn, options) {
-    return PromiseMap(this, fn, options, INTERNAL);
-};
-
-Promise.filter = function (promises, fn, options) {
-    return PromiseMap(promises, fn, options, INTERNAL);
-};
-};
-
-},{}],15:[function(_dereq_,module,exports){
-"use strict";
-module.exports = function(Promise, tryConvertToPromise, NEXT_FILTER) {
-var util = _dereq_("./util");
-var CancellationError = Promise.CancellationError;
-var errorObj = util.errorObj;
-var catchFilter = _dereq_("./catch_filter")(NEXT_FILTER);
-
-function PassThroughHandlerContext(promise, type, handler) {
-    this.promise = promise;
-    this.type = type;
-    this.handler = handler;
-    this.called = false;
-    this.cancelPromise = null;
-}
-
-PassThroughHandlerContext.prototype.isFinallyHandler = function() {
-    return this.type === 0;
-};
-
-function FinallyHandlerCancelReaction(finallyHandler) {
-    this.finallyHandler = finallyHandler;
-}
-
-FinallyHandlerCancelReaction.prototype._resultCancelled = function() {
-    checkCancel(this.finallyHandler);
-};
-
-function checkCancel(ctx, reason) {
-    if (ctx.cancelPromise != null) {
-        if (arguments.length > 1) {
-            ctx.cancelPromise._reject(reason);
-        } else {
-            ctx.cancelPromise._cancel();
-        }
-        ctx.cancelPromise = null;
-        return true;
-    }
-    return false;
-}
-
-function succeed() {
-    return finallyHandler.call(this, this.promise._target()._settledValue());
-}
-function fail(reason) {
-    if (checkCancel(this, reason)) return;
-    errorObj.e = reason;
-    return errorObj;
-}
-function finallyHandler(reasonOrValue) {
-    var promise = this.promise;
-    var handler = this.handler;
-
-    if (!this.called) {
-        this.called = true;
-        var ret = this.isFinallyHandler()
-            ? handler.call(promise._boundValue())
-            : handler.call(promise._boundValue(), reasonOrValue);
-        if (ret === NEXT_FILTER) {
-            return ret;
-        } else if (ret !== undefined) {
-            promise._setReturnedNonUndefined();
-            var maybePromise = tryConvertToPromise(ret, promise);
-            if (maybePromise instanceof Promise) {
-                if (this.cancelPromise != null) {
-                    if (maybePromise._isCancelled()) {
-                        var reason =
-                            new CancellationError("late cancellation observer");
-                        promise._attachExtraTrace(reason);
-                        errorObj.e = reason;
-                        return errorObj;
-                    } else if (maybePromise.isPending()) {
-                        maybePromise._attachCancellationCallback(
-                            new FinallyHandlerCancelReaction(this));
-                    }
-                }
-                return maybePromise._then(
-                    succeed, fail, undefined, this, undefined);
-            }
-        }
-    }
-
-    if (promise.isRejected()) {
-        checkCancel(this);
-        errorObj.e = reasonOrValue;
-        return errorObj;
-    } else {
-        checkCancel(this);
-        return reasonOrValue;
-    }
-}
-
-Promise.prototype._passThrough = function(handler, type, success, fail) {
-    if (typeof handler !== "function") return this.then();
-    return this._then(success,
-                      fail,
-                      undefined,
-                      new PassThroughHandlerContext(this, type, handler),
-                      undefined);
-};
-
-Promise.prototype.lastly =
-Promise.prototype["finally"] = function (handler) {
-    return this._passThrough(handler,
-                             0,
-                             finallyHandler,
-                             finallyHandler);
-};
-
-
-Promise.prototype.tap = function (handler) {
-    return this._passThrough(handler, 1, finallyHandler);
-};
-
-Promise.prototype.tapCatch = function (handlerOrPredicate) {
-    var len = arguments.length;
-    if(len === 1) {
-        return this._passThrough(handlerOrPredicate,
-                                 1,
-                                 undefined,
-                                 finallyHandler);
-    } else {
-         var catchInstances = new Array(len - 1),
-            j = 0, i;
-        for (i = 0; i < len - 1; ++i) {
-            var item = arguments[i];
-            if (util.isObject(item)) {
-                catchInstances[j++] = item;
-            } else {
-                return Promise.reject(new TypeError(
-                    "tapCatch statement predicate: "
-                    + "expecting an object but got " + util.classString(item)
-                ));
-            }
-        }
-        catchInstances.length = j;
-        var handler = arguments[i];
-        return this._passThrough(catchFilter(catchInstances, handler, this),
-                                 1,
-                                 undefined,
-                                 finallyHandler);
-    }
-
-};
-
-return PassThroughHandlerContext;
-};
-
-},{"./catch_filter":7,"./util":36}],16:[function(_dereq_,module,exports){
-"use strict";
-module.exports = function(Promise,
-                          apiRejection,
-                          INTERNAL,
-                          tryConvertToPromise,
-                          Proxyable,
-                          debug) {
-var errors = _dereq_("./errors");
-var TypeError = errors.TypeError;
-var util = _dereq_("./util");
-var errorObj = util.errorObj;
-var tryCatch = util.tryCatch;
-var yieldHandlers = [];
-
-function promiseFromYieldHandler(value, yieldHandlers, traceParent) {
-    for (var i = 0; i < yieldHandlers.length; ++i) {
-        traceParent._pushContext();
-        var result = tryCatch(yieldHandlers[i])(value);
-        traceParent._popContext();
-        if (result === errorObj) {
-            traceParent._pushContext();
-            var ret = Promise.reject(errorObj.e);
-            traceParent._popContext();
-            return ret;
-        }
-        var maybePromise = tryConvertToPromise(result, traceParent);
-        if (maybePromise instanceof Promise) return maybePromise;
-    }
-    return null;
-}
-
-function PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) {
-    if (debug.cancellation()) {
-        var internal = new Promise(INTERNAL);
-        var _finallyPromise = this._finallyPromise = new Promise(INTERNAL);
-        this._promise = internal.lastly(function() {
-            return _finallyPromise;
-        });
-        internal._captureStackTrace();
-        internal._setOnCancel(this);
-    } else {
-        var promise = this._promise = new Promise(INTERNAL);
-        promise._captureStackTrace();
-    }
-    this._stack = stack;
-    this._generatorFunction = generatorFunction;
-    this._receiver = receiver;
-    this._generator = undefined;
-    this._yieldHandlers = typeof yieldHandler === "function"
-        ? [yieldHandler].concat(yieldHandlers)
-        : yieldHandlers;
-    this._yieldedPromise = null;
-    this._cancellationPhase = false;
-}
-util.inherits(PromiseSpawn, Proxyable);
-
-PromiseSpawn.prototype._isResolved = function() {
-    return this._promise === null;
-};
-
-PromiseSpawn.prototype._cleanup = function() {
-    this._promise = this._generator = null;
-    if (debug.cancellation() && this._finallyPromise !== null) {
-        this._finallyPromise._fulfill();
-        this._finallyPromise = null;
-    }
-};
-
-PromiseSpawn.prototype._promiseCancelled = function() {
-    if (this._isResolved()) return;
-    var implementsReturn = typeof this._generator["return"] !== "undefined";
-
-    var result;
-    if (!implementsReturn) {
-        var reason = new Promise.CancellationError(
-            "generator .return() sentinel");
-        Promise.coroutine.returnSentinel = reason;
-        this._promise._attachExtraTrace(reason);
-        this._promise._pushContext();
-        result = tryCatch(this._generator["throw"]).call(this._generator,
-                                                         reason);
-        this._promise._popContext();
-    } else {
-        this._promise._pushContext();
-        result = tryCatch(this._generator["return"]).call(this._generator,
-                                                          undefined);
-        this._promise._popContext();
-    }
-    this._cancellationPhase = true;
-    this._yieldedPromise = null;
-    this._continue(result);
-};
-
-PromiseSpawn.prototype._promiseFulfilled = function(value) {
-    this._yieldedPromise = null;
-    this._promise._pushContext();
-    var result = tryCatch(this._generator.next).call(this._generator, value);
-    this._promise._popContext();
-    this._continue(result);
-};
-
-PromiseSpawn.prototype._promiseRejected = function(reason) {
-    this._yieldedPromise = null;
-    this._promise._attachExtraTrace(reason);
-    this._promise._pushContext();
-    var result = tryCatch(this._generator["throw"])
-        .call(this._generator, reason);
-    this._promise._popContext();
-    this._continue(result);
-};
-
-PromiseSpawn.prototype._resultCancelled = function() {
-    if (this._yieldedPromise instanceof Promise) {
-        var promise = this._yieldedPromise;
-        this._yieldedPromise = null;
-        promise.cancel();
-    }
-};
-
-PromiseSpawn.prototype.promise = function () {
-    return this._promise;
-};
-
-PromiseSpawn.prototype._run = function () {
-    this._generator = this._generatorFunction.call(this._receiver);
-    this._receiver =
-        this._generatorFunction = undefined;
-    this._promiseFulfilled(undefined);
-};
-
-PromiseSpawn.prototype._continue = function (result) {
-    var promise = this._promise;
-    if (result === errorObj) {
-        this._cleanup();
-        if (this._cancellationPhase) {
-            return promise.cancel();
-        } else {
-            return promise._rejectCallback(result.e, false);
-        }
-    }
-
-    var value = result.value;
-    if (result.done === true) {
-        this._cleanup();
-        if (this._cancellationPhase) {
-            return promise.cancel();
-        } else {
-            return promise._resolveCallback(value);
-        }
-    } else {
-        var maybePromise = tryConvertToPromise(value, this._promise);
-        if (!(maybePromise instanceof Promise)) {
-            maybePromise =
-                promiseFromYieldHandler(maybePromise,
-                                        this._yieldHandlers,
-                                        this._promise);
-            if (maybePromise === null) {
-                this._promiseRejected(
-                    new TypeError(
-                        "A value %s was yielded that could not be treated as a promise\u000a\u000a    See http://goo.gl/MqrFmX\u000a\u000a".replace("%s", String(value)) +
-                        "From coroutine:\u000a" +
-                        this._stack.split("\n").slice(1, -7).join("\n")
-                    )
-                );
-                return;
-            }
-        }
-        maybePromise = maybePromise._target();
-        var bitField = maybePromise._bitField;
-        ;
-        if (((bitField & 50397184) === 0)) {
-            this._yieldedPromise = maybePromise;
-            maybePromise._proxy(this, null);
-        } else if (((bitField & 33554432) !== 0)) {
-            Promise._async.invoke(
-                this._promiseFulfilled, this, maybePromise._value()
-            );
-        } else if (((bitField & 16777216) !== 0)) {
-            Promise._async.invoke(
-                this._promiseRejected, this, maybePromise._reason()
-            );
-        } else {
-            this._promiseCancelled();
-        }
-    }
-};
-
-Promise.coroutine = function (generatorFunction, options) {
-    if (typeof generatorFunction !== "function") {
-        throw new TypeError("generatorFunction must be a function\u000a\u000a    See http://goo.gl/MqrFmX\u000a");
-    }
-    var yieldHandler = Object(options).yieldHandler;
-    var PromiseSpawn$ = PromiseSpawn;
-    var stack = new Error().stack;
-    return function () {
-        var generator = generatorFunction.apply(this, arguments);
-        var spawn = new PromiseSpawn$(undefined, undefined, yieldHandler,
-                                      stack);
-        var ret = spawn.promise();
-        spawn._generator = generator;
-        spawn._promiseFulfilled(undefined);
-        return ret;
-    };
-};
-
-Promise.coroutine.addYieldHandler = function(fn) {
-    if (typeof fn !== "function") {
-        throw new TypeError("expecting a function but got " + util.classString(fn));
-    }
-    yieldHandlers.push(fn);
-};
-
-Promise.spawn = function (generatorFunction) {
-    debug.deprecated("Promise.spawn()", "Promise.coroutine()");
-    if (typeof generatorFunction !== "function") {
-        return apiRejection("generatorFunction must be a function\u000a\u000a    See http://goo.gl/MqrFmX\u000a");
-    }
-    var spawn = new PromiseSpawn(generatorFunction, this);
-    var ret = spawn.promise();
-    spawn._run(Promise.spawn);
-    return ret;
-};
-};
-
-},{"./errors":12,"./util":36}],17:[function(_dereq_,module,exports){
-"use strict";
-module.exports =
-function(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async,
-         getDomain) {
-var util = _dereq_("./util");
-var canEvaluate = util.canEvaluate;
-var tryCatch = util.tryCatch;
-var errorObj = util.errorObj;
-var reject;
-
-if (!true) {
-if (canEvaluate) {
-    var thenCallback = function(i) {
-        return new Function("value", "holder", "                             \n\
-            'use strict';                                                    \n\
-            holder.pIndex = value;                                           \n\
-            holder.checkFulfillment(this);                                   \n\
-            ".replace(/Index/g, i));
-    };
-
-    var promiseSetter = function(i) {
-        return new Function("promise", "holder", "                           \n\
-            'use strict';                                                    \n\
-            holder.pIndex = promise;                                         \n\
-            ".replace(/Index/g, i));
-    };
-
-    var generateHolderClass = function(total) {
-        var props = new Array(total);
-        for (var i = 0; i < props.length; ++i) {
-            props[i] = "this.p" + (i+1);
-        }
-        var assignment = props.join(" = ") + " = null;";
-        var cancellationCode= "var promise;\n" + props.map(function(prop) {
-            return "                                                         \n\
-                promise = " + prop + ";                                      \n\
-                if (promise instanceof Promise) {                            \n\
-                    promise.cancel();                                        \n\
-                }                                                            \n\
-            ";
-        }).join("\n");
-        var passedArguments = props.join(", ");
-        var name = "Holder$" + total;
-
-
-        var code = "return function(tryCatch, errorObj, Promise, async) {    \n\
-            'use strict';                                                    \n\
-            function [TheName](fn) {                                         \n\
-                [TheProperties]                                              \n\
-                this.fn = fn;                                                \n\
-                this.asyncNeeded = true;                                     \n\
-                this.now = 0;                                                \n\
-            }                                                                \n\
-                                                                             \n\
-            [TheName].prototype._callFunction = function(promise) {          \n\
-                promise._pushContext();                                      \n\
-                var ret = tryCatch(this.fn)([ThePassedArguments]);           \n\
-                promise._popContext();                                       \n\
-                if (ret === errorObj) {                                      \n\
-                    promise._rejectCallback(ret.e, false);                   \n\
-                } else {                                                     \n\
-                    promise._resolveCallback(ret);                           \n\
-                }                                                            \n\
-            };                                                               \n\
-                                                                             \n\
-            [TheName].prototype.checkFulfillment = function(promise) {       \n\
-                var now = ++this.now;                                        \n\
-                if (now === [TheTotal]) {                                    \n\
-                    if (this.asyncNeeded) {                                  \n\
-                        async.invoke(this._callFunction, this, promise);     \n\
-                    } else {                                                 \n\
-                        this._callFunction(promise);                         \n\
-                    }                                                        \n\
-                                                                             \n\
-                }                                                            \n\
-            };                                                               \n\
-                                                                             \n\
-            [TheName].prototype._resultCancelled = function() {              \n\
-                [CancellationCode]                                           \n\
-            };                                                               \n\
-                                                                             \n\
-            return [TheName];                                                \n\
-        }(tryCatch, errorObj, Promise, async);                               \n\
-        ";
-
-        code = code.replace(/\[TheName\]/g, name)
-            .replace(/\[TheTotal\]/g, total)
-            .replace(/\[ThePassedArguments\]/g, passedArguments)
-            .replace(/\[TheProperties\]/g, assignment)
-            .replace(/\[CancellationCode\]/g, cancellationCode);
-
-        return new Function("tryCatch", "errorObj", "Promise", "async", code)
-                           (tryCatch, errorObj, Promise, async);
-    };
-
-    var holderClasses = [];
-    var thenCallbacks = [];
-    var promiseSetters = [];
-
-    for (var i = 0; i < 8; ++i) {
-        holderClasses.push(generateHolderClass(i + 1));
-        thenCallbacks.push(thenCallback(i + 1));
-        promiseSetters.push(promiseSetter(i + 1));
-    }
-
-    reject = function (reason) {
-        this._reject(reason);
-    };
-}}
-
-Promise.join = function () {
-    var last = arguments.length - 1;
-    var fn;
-    if (last > 0 && typeof arguments[last] === "function") {
-        fn = arguments[last];
-        if (!true) {
-            if (last <= 8 && canEvaluate) {
-                var ret = new Promise(INTERNAL);
-                ret._captureStackTrace();
-                var HolderClass = holderClasses[last - 1];
-                var holder = new HolderClass(fn);
-                var callbacks = thenCallbacks;
-
-                for (var i = 0; i < last; ++i) {
-                    var maybePromise = tryConvertToPromise(arguments[i], ret);
-                    if (maybePromise instanceof Promise) {
-                        maybePromise = maybePromise._target();
-                        var bitField = maybePromise._bitField;
-                        ;
-                        if (((bitField & 50397184) === 0)) {
-                            maybePromise._then(callbacks[i], reject,
-                                               undefined, ret, holder);
-                            promiseSetters[i](maybePromise, holder);
-                            holder.asyncNeeded = false;
-                        } else if (((bitField & 33554432) !== 0)) {
-                            callbacks[i].call(ret,
-                                              maybePromise._value(), holder);
-                        } else if (((bitField & 16777216) !== 0)) {
-                            ret._reject(maybePromise._reason());
-                        } else {
-                            ret._cancel();
-                        }
-                    } else {
-                        callbacks[i].call(ret, maybePromise, holder);
-                    }
-                }
-
-                if (!ret._isFateSealed()) {
-                    if (holder.asyncNeeded) {
-                        var domain = getDomain();
-                        if (domain !== null) {
-                            holder.fn = util.domainBind(domain, holder.fn);
-                        }
-                    }
-                    ret._setAsyncGuaranteed();
-                    ret._setOnCancel(holder);
-                }
-                return ret;
-            }
-        }
-    }
-    var args = [].slice.call(arguments);;
-    if (fn) args.pop();
-    var ret = new PromiseArray(args).promise();
-    return fn !== undefined ? ret.spread(fn) : ret;
-};
-
-};
-
-},{"./util":36}],18:[function(_dereq_,module,exports){
-"use strict";
-module.exports = function(Promise,
-                          PromiseArray,
-                          apiRejection,
-                          tryConvertToPromise,
-                          INTERNAL,
-                          debug) {
-var getDomain = Promise._getDomain;
-var util = _dereq_("./util");
-var tryCatch = util.tryCatch;
-var errorObj = util.errorObj;
-var async = Promise._async;
-
-function MappingPromiseArray(promises, fn, limit, _filter) {
-    this.constructor$(promises);
-    this._promise._captureStackTrace();
-    var domain = getDomain();
-    this._callback = domain === null ? fn : util.domainBind(domain, fn);
-    this._preservedValues = _filter === INTERNAL
-        ? new Array(this.length())
-        : null;
-    this._limit = limit;
-    this._inFlight = 0;
-    this._queue = [];
-    async.invoke(this._asyncInit, this, undefined);
-}
-util.inherits(MappingPromiseArray, PromiseArray);
-
-MappingPromiseArray.prototype._asyncInit = function() {
-    this._init$(undefined, -2);
-};
-
-MappingPromiseArray.prototype._init = function () {};
-
-MappingPromiseArray.prototype._promiseFulfilled = function (value, index) {
-    var values = this._values;
-    var length = this.length();
-    var preservedValues = this._preservedValues;
-    var limit = this._limit;
-
-    if (index < 0) {
-        index = (index * -1) - 1;
-        values[index] = value;
-        if (limit >= 1) {
-            this._inFlight--;
-            this._drainQueue();
-            if (this._isResolved()) return true;
-        }
-    } else {
-        if (limit >= 1 && this._inFlight >= limit) {
-            values[index] = value;
-            this._queue.push(index);
-            return false;
-        }
-        if (preservedValues !== null) preservedValues[index] = value;
-
-        var promise = this._promise;
-        var callback = this._callback;
-        var receiver = promise._boundValue();
-        promise._pushContext();
-        var ret = tryCatch(callback).call(receiver, value, index, length);
-        var promiseCreated = promise._popContext();
-        debug.checkForgottenReturns(
-            ret,
-            promiseCreated,
-            preservedValues !== null ? "Promise.filter" : "Promise.map",
-            promise
-        );
-        if (ret === errorObj) {
-            this._reject(ret.e);
-            return true;
-        }
-
-        var maybePromise = tryConvertToPromise(ret, this._promise);
-        if (maybePromise instanceof Promise) {
-            maybePromise = maybePromise._target();
-            var bitField = maybePromise._bitField;
-            ;
-            if (((bitField & 50397184) === 0)) {
-                if (limit >= 1) this._inFlight++;
-                values[index] = maybePromise;
-                maybePromise._proxy(this, (index + 1) * -1);
-                return false;
-            } else if (((bitField & 33554432) !== 0)) {
-                ret = maybePromise._value();
-            } else if (((bitField & 16777216) !== 0)) {
-                this._reject(maybePromise._reason());
-                return true;
-            } else {
-                this._cancel();
-                return true;
-            }
-        }
-        values[index] = ret;
-    }
-    var totalResolved = ++this._totalResolved;
-    if (totalResolved >= length) {
-        if (preservedValues !== null) {
-            this._filter(values, preservedValues);
-        } else {
-            this._resolve(values);
-        }
-        return true;
-    }
-    return false;
-};
-
-MappingPromiseArray.prototype._drainQueue = function () {
-    var queue = this._queue;
-    var limit = this._limit;
-    var values = this._values;
-    while (queue.length > 0 && this._inFlight < limit) {
-        if (this._isResolved()) return;
-        var index = queue.pop();
-        this._promiseFulfilled(values[index], index);
-    }
-};
-
-MappingPromiseArray.prototype._filter = function (booleans, values) {
-    var len = values.length;
-    var ret = new Array(len);
-    var j = 0;
-    for (var i = 0; i < len; ++i) {
-        if (booleans[i]) ret[j++] = values[i];
-    }
-    ret.length = j;
-    this._resolve(ret);
-};
-
-MappingPromiseArray.prototype.preservedValues = function () {
-    return this._preservedValues;
-};
-
-function map(promises, fn, options, _filter) {
-    if (typeof fn !== "function") {
-        return apiRejection("expecting a function but got " + util.classString(fn));
-    }
-
-    var limit = 0;
-    if (options !== undefined) {
-        if (typeof options === "object" && options !== null) {
-            if (typeof options.concurrency !== "number") {
-                return Promise.reject(
-                    new TypeError("'concurrency' must be a number but it is " +
-                                    util.classString(options.concurrency)));
-            }
-            limit = options.concurrency;
-        } else {
-            return Promise.reject(new TypeError(
-                            "options argument must be an object but it is " +
-                             util.classString(options)));
-        }
-    }
-    limit = typeof limit === "number" &&
-        isFinite(limit) && limit >= 1 ? limit : 0;
-    return new MappingPromiseArray(promises, fn, limit, _filter).promise();
-}
-
-Promise.prototype.map = function (fn, options) {
-    return map(this, fn, options, null);
-};
-
-Promise.map = function (promises, fn, options, _filter) {
-    return map(promises, fn, options, _filter);
-};
-
-
-};
-
-},{"./util":36}],19:[function(_dereq_,module,exports){
-"use strict";
-module.exports =
-function(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) {
-var util = _dereq_("./util");
-var tryCatch = util.tryCatch;
-
-Promise.method = function (fn) {
-    if (typeof fn !== "function") {
-        throw new Promise.TypeError("expecting a function but got " + util.classString(fn));
-    }
-    return function () {
-        var ret = new Promise(INTERNAL);
-        ret._captureStackTrace();
-        ret._pushContext();
-        var value = tryCatch(fn).apply(this, arguments);
-        var promiseCreated = ret._popContext();
-        debug.checkForgottenReturns(
-            value, promiseCreated, "Promise.method", ret);
-        ret._resolveFromSyncValue(value);
-        return ret;
-    };
-};
-
-Promise.attempt = Promise["try"] = function (fn) {
-    if (typeof fn !== "function") {
-        return apiRejection("expecting a function but got " + util.classString(fn));
-    }
-    var ret = new Promise(INTERNAL);
-    ret._captureStackTrace();
-    ret._pushContext();
-    var value;
-    if (arguments.length > 1) {
-        debug.deprecated("calling Pr

<TRUNCATED>


[24/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/browser/bluebird.core.min.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/browser/bluebird.core.min.js b/node_modules/bluebird/js/browser/bluebird.core.min.js
deleted file mode 100644
index cdfb7da..0000000
--- a/node_modules/bluebird/js/browser/bluebird.core.min.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/* @preserve
- * The MIT License (MIT)
- * 
- * Copyright (c) 2013-2017 Petka Antonov
- * 
- * 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.
- * 
- */
-/**
- * bluebird build version 3.5.0
- * Features enabled: core
- * Features disabled: race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each
-*/
-!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.Promise=t()}}(function(){var t,e,n;return function r(t,e,n){function i(a,s){if(!e[a]){if(!t[a]){var c="function"==typeof _dereq_&&_dereq_;if(!s&&c)return c(a,!0);if(o)return o(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var u=e[a]={exports:{}};t[a][0].call(u.exports,function(e){var n=t[a][1][e];return i(n?n:e)},u,u.exports,r,t,e,n)}return e[a].exports}for(var o="function"==typeof _dereq_&&_dereq_,a=0;a<n.length;a++)i(n[a]);return i}({1:[function(t,e,n){"use strict";function r(){this._customScheduler=!1,this._isTickUsed=!1,this._lateQueue=new u(16),this._normalQueue=new u(16),this._haveDrainedQueues=!1,this._trampolineEnabled=!0;var t=this;this.drainQueues=function(){t._drainQueue
 s()},this._schedule=l}function i(t,e,n){this._lateQueue.push(t,e,n),this._queueTick()}function o(t,e,n){this._normalQueue.push(t,e,n),this._queueTick()}function a(t){this._normalQueue._pushOne(t),this._queueTick()}var s;try{throw new Error}catch(c){s=c}var l=t("./schedule"),u=t("./queue"),p=t("./util");r.prototype.setScheduler=function(t){var e=this._schedule;return this._schedule=t,this._customScheduler=!0,e},r.prototype.hasCustomScheduler=function(){return this._customScheduler},r.prototype.enableTrampoline=function(){this._trampolineEnabled=!0},r.prototype.disableTrampolineIfNecessary=function(){p.hasDevTools&&(this._trampolineEnabled=!1)},r.prototype.haveItemsQueued=function(){return this._isTickUsed||this._haveDrainedQueues},r.prototype.fatalError=function(t,e){e?(process.stderr.write("Fatal "+(t instanceof Error?t.stack:t)+"\n"),process.exit(2)):this.throwLater(t)},r.prototype.throwLater=function(t,e){if(1===arguments.length&&(e=t,t=function(){throw e}),"undefined"!=typeof set
 Timeout)setTimeout(function(){t(e)},0);else try{this._schedule(function(){t(e)})}catch(n){throw new Error("No async scheduler available\n\n    See http://goo.gl/MqrFmX\n")}},p.hasDevTools?(r.prototype.invokeLater=function(t,e,n){this._trampolineEnabled?i.call(this,t,e,n):this._schedule(function(){setTimeout(function(){t.call(e,n)},100)})},r.prototype.invoke=function(t,e,n){this._trampolineEnabled?o.call(this,t,e,n):this._schedule(function(){t.call(e,n)})},r.prototype.settlePromises=function(t){this._trampolineEnabled?a.call(this,t):this._schedule(function(){t._settlePromises()})}):(r.prototype.invokeLater=i,r.prototype.invoke=o,r.prototype.settlePromises=a),r.prototype._drainQueue=function(t){for(;t.length()>0;){var e=t.shift();if("function"==typeof e){var n=t.shift(),r=t.shift();e.call(n,r)}else e._settlePromises()}},r.prototype._drainQueues=function(){this._drainQueue(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,this._drainQueue(this._lateQueue)},r.prototype._queueT
 ick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},r.prototype._reset=function(){this._isTickUsed=!1},e.exports=r,e.exports.firstLineError=s},{"./queue":17,"./schedule":18,"./util":21}],2:[function(t,e,n){"use strict";e.exports=function(t,e,n,r){var i=!1,o=function(t,e){this._reject(e)},a=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(o,o,null,this,t)},s=function(t,e){0===(50397184&this._bitField)&&this._resolveCallback(e.target)},c=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(o){i||(i=!0,t.prototype._propagateFrom=r.propagateFromFunction(),t.prototype._boundValue=r.boundValueFunction());var l=n(o),u=new t(e);u._propagateFrom(this,1);var p=this._target();if(u._setBoundTo(l),l instanceof t){var f={promiseRejectionQueued:!1,promise:u,target:p,bindingPromise:l};p._then(e,a,void 0,u,f),l._then(s,c,void 0,u,f),u._setOnCancel(l)}else u._resolveCallback(p);return u},t.prototype._setBoundTo=functio
 n(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152===(2097152&this._bitField)},t.bind=function(e,n){return t.resolve(n).bind(e)}}},{}],3:[function(t,e,n){"use strict";function r(){try{Promise===o&&(Promise=i)}catch(t){}return o}var i;"undefined"!=typeof Promise&&(i=Promise);var o=t("./promise")();o.noConflict=r,e.exports=o},{"./promise":15}],4:[function(t,e,n){"use strict";e.exports=function(e,n,r,i){var o=t("./util"),a=o.tryCatch,s=o.errorObj,c=e._async;e.prototype["break"]=e.prototype.cancel=function(){if(!i.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t._isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var n=t._cancellationParent;if(null==n||!n._isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),t._setWillBeCancel
 led(),e=t,t=n}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),this._enoughBranchesHaveCancelled()?(this._invokeOnCancel(),!0):!1)},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this._isCancellable()&&(this._setCancelled(),c.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel
 =function(t,e){if(o.isArray(t))for(var n=0;n<t.length;++n)this._doInvokeOnCancel(t[n],e);else if(void 0!==t)if("function"==typeof t){if(!e){var r=a(t).call(this._boundValue());r===s&&(this._attachExtraTrace(r.e),c.throwLater(r.e))}}else t._resultCancelled(this)},e.prototype._invokeOnCancel=function(){var t=this._onCancel();this._unsetOnCancel(),c.invoke(this._doInvokeOnCancel,this,t)},e.prototype._invokeInternalOnCancel=function(){this._isCancellable()&&(this._doInvokeOnCancel(this._onCancel(),!0),this._unsetOnCancel())},e.prototype._resultCancelled=function(){this.cancel()}}},{"./util":21}],5:[function(t,e,n){"use strict";e.exports=function(e){function n(t,n,s){return function(c){var l=s._boundValue();t:for(var u=0;u<t.length;++u){var p=t[u];if(p===Error||null!=p&&p.prototype instanceof Error){if(c instanceof p)return o(n).call(l,c)}else if("function"==typeof p){var f=o(p).call(l,c);if(f===a)return f;if(f)return o(n).call(l,c)}else if(r.isObject(c)){for(var h=i(p),_=0;_<h.length;++
 _){var d=h[_];if(p[d]!=c[d])continue t}return o(n).call(l,c)}}return e}}var r=t("./util"),i=t("./es5").keys,o=r.tryCatch,a=r.errorObj;return n}},{"./es5":10,"./util":21}],6:[function(t,e,n){"use strict";e.exports=function(t){function e(){this._trace=new e.CapturedTrace(r())}function n(){return i?new e:void 0}function r(){var t=o.length-1;return t>=0?o[t]:void 0}var i=!1,o=[];return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},e.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,o.push(this._trace))},e.prototype._popContext=function(){if(void 0!==this._trace){var t=o.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},e.CapturedTrace=null,e.create=n,e.deactivateLongStackTraces=function(){},e.activateLongStackTraces=function(){var n=t.prototype._pushContext,o=t.prototype._popContext,a=t._peekCon
 text,s=t.prototype._peekContext,c=t.prototype._promiseCreated;e.deactivateLongStackTraces=function(){t.prototype._pushContext=n,t.prototype._popContext=o,t._peekContext=a,t.prototype._peekContext=s,t.prototype._promiseCreated=c,i=!1},i=!0,t.prototype._pushContext=e.prototype._pushContext,t.prototype._popContext=e.prototype._popContext,t._peekContext=t.prototype._peekContext=r,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},e}},{}],7:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,e){return{promise:e}}function i(){return!1}function o(t,e,n){var r=this;try{t(e,n,function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+I.toString(t));r._attachCancellationCallback(t)})}catch(i){return i}}function a(t){if(!this._isCancellable())return this;var e=this._onCancel();void 0!==e?I.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function s(){return th
 is._onCancelField}function c(t){this._onCancelField=t}function l(){this._cancellationParent=void 0,this._onCancelField=void 0}function u(t,e){if(0!==(1&e)){this._cancellationParent=t;var n=t._branchesRemainingToCancel;void 0===n&&(n=0),t._branchesRemainingToCancel=n+1}0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function p(t,e){0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function f(){var t=this._boundTo;return void 0!==t&&t instanceof e?t.isFulfilled()?t.value():void 0:t}function h(){this._trace=new x(this._peekContext())}function _(t,e){if(H(t)){var n=this._trace;if(void 0!==n&&e&&(n=n._parent),void 0!==n)n.attachExtraTrace(t);else if(!t.__stackCleaned__){var r=E(t);I.notEnumerableProp(t,"stack",r.message+"\n"+r.stack.join("\n")),I.notEnumerableProp(t,"__stackCleaned__",!0)}}}function d(t,e,n,r,i){if(void 0===t&&null!==e&&X){if(void 0!==i&&i._returnedNonUndefined())return;if(0===(65535&r._bitField))return;n&&(n+=" ");var o="",a="";if(e._trace){for(var s=e._trace.
 stack.split("\n"),c=C(s),l=c.length-1;l>=0;--l){var u=c[l];if(!V.test(u)){var p=u.match(Q);p&&(o="at "+p[1]+":"+p[2]+":"+p[3]+" ");break}}if(c.length>0)for(var f=c[0],l=0;l<s.length;++l)if(s[l]===f){l>0&&(a="\n"+s[l-1]);break}}var h="a promise was created in a "+n+"handler "+o+"but was not returned from it, see http://goo.gl/rRqMUw"+a;r._warn(h,!0,e)}}function v(t,e){var n=t+" is deprecated and will be removed in a future version.";return e&&(n+=" Use "+e+" instead."),y(n)}function y(t,n,r){if(ot.warnings){var i,o=new U(t);if(n)r._attachExtraTrace(o);else if(ot.longStackTraces&&(i=e._peekContext()))i.attachExtraTrace(o);else{var a=E(o);o.stack=a.message+"\n"+a.stack.join("\n")}tt("warning",o)||k(o,"",!0)}}function g(t,e){for(var n=0;n<e.length-1;++n)e[n].push("From previous event:"),e[n]=e[n].join("\n");return n<e.length&&(e[n]=e[n].join("\n")),t+"\n"+e.join("\n")}function m(t){for(var e=0;e<t.length;++e)(0===t[e].length||e+1<t.length&&t[e][0]===t[e+1][0])&&(t.splice(e,1),e--)}funct
 ion b(t){for(var e=t[0],n=1;n<t.length;++n){for(var r=t[n],i=e.length-1,o=e[i],a=-1,s=r.length-1;s>=0;--s)if(r[s]===o){a=s;break}for(var s=a;s>=0;--s){var c=r[s];if(e[i]!==c)break;e.pop(),i--}e=r}}function C(t){for(var e=[],n=0;n<t.length;++n){var r=t[n],i="    (No stack trace)"===r||q.test(r),o=i&&nt(r);i&&!o&&(M&&" "!==r.charAt(0)&&(r="    "+r),e.push(r))}return e}function w(t){for(var e=t.stack.replace(/\s+$/g,"").split("\n"),n=0;n<e.length;++n){var r=e[n];if("    (No stack trace)"===r||q.test(r))break}return n>0&&"SyntaxError"!=t.name&&(e=e.slice(n)),e}function E(t){var e=t.stack,n=t.toString();return e="string"==typeof e&&e.length>0?w(t):["    (No stack trace)"],{message:n,stack:"SyntaxError"==t.name?e:C(e)}}function k(t,e,n){if("undefined"!=typeof console){var r;if(I.isObject(t)){var i=t.stack;r=e+G(i,t)}else r=e+String(t);"function"==typeof L?L(r,n):("function"==typeof console.log||"object"==typeof console.log)&&console.log(r)}}function j(t,e,n,r){var i=!1;try{"function"==typ
 eof e&&(i=!0,"rejectionHandled"===t?e(r):e(n,r))}catch(o){B.throwLater(o)}"unhandledRejection"===t?tt(t,n,r)||i||k(n,"Unhandled rejection "):tt(t,r)}function F(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{e=t&&"function"==typeof t.toString?t.toString():I.toString(t);var n=/\[object [a-zA-Z0-9$_]+\]/;if(n.test(e))try{var r=JSON.stringify(t);e=r}catch(i){}0===e.length&&(e="(empty array)")}return"(<"+T(e)+">, no stack trace)"}function T(t){var e=41;return t.length<e?t:t.substr(0,e-3)+"..."}function P(){return"function"==typeof it}function R(t){var e=t.match(rt);return e?{fileName:e[1],line:parseInt(e[2],10)}:void 0}function S(t,e){if(P()){for(var n,r,i=t.stack.split("\n"),o=e.stack.split("\n"),a=-1,s=-1,c=0;c<i.length;++c){var l=R(i[c]);if(l){n=l.fileName,a=l.line;break}}for(var c=0;c<o.length;++c){var l=R(o[c]);if(l){r=l.fileName,s=l.line;break}}0>a||0>s||!n||!r||n!==r||a>=s||(nt=function(t){if(D.test(t))return!0;var e=R(t);return e&&e.fileName===n&&a
 <=e.line&&e.line<=s?!0:!1})}}function x(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);it(this,x),e>32&&this.uncycle()}var O,A,L,N=e._getDomain,B=e._async,U=t("./errors").Warning,I=t("./util"),H=I.canAttachTrace,D=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,V=/\((?:timers\.js):\d+:\d+\)/,Q=/[\/<\(](.+?):(\d+):(\d+)\)?\s*$/,q=null,G=null,M=!1,W=!(0==I.env("BLUEBIRD_DEBUG")||!I.env("BLUEBIRD_DEBUG")&&"development"!==I.env("NODE_ENV")),$=!(0==I.env("BLUEBIRD_WARNINGS")||!W&&!I.env("BLUEBIRD_WARNINGS")),z=!(0==I.env("BLUEBIRD_LONG_STACK_TRACES")||!W&&!I.env("BLUEBIRD_LONG_STACK_TRACES")),X=0!=I.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&($||!!I.env("BLUEBIRD_W_FORGOTTEN_RETURN"));e.prototype.suppressUnhandledRejections=function(){var t=this._target();t._bitField=-1048577&t._bitField|524288},e.prototype._ensurePossibleRejectionHandled=function(){0===(524288&this._bitField)&&(this._setRejectionIsUnhandled(),B.invokeLater(this._notifyUnhandl
 edRejection,this,void 0))},e.prototype._notifyUnhandledRejectionIsHandled=function(){j("rejectionHandled",O,void 0,this)},e.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},e.prototype._returnedNonUndefined=function(){return 0!==(268435456&this._bitField)},e.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var t=this._settledValue();this._setUnhandledRejectionIsNotified(),j("unhandledRejection",A,t,this)}},e.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},e.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},e.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},e.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},e.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledReject
 ionIsNotified(),this._notifyUnhandledRejectionIsHandled())},e.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},e.prototype._warn=function(t,e,n){return y(t,e,n||this)},e.onPossiblyUnhandledRejection=function(t){var e=N();A="function"==typeof t?null===e?t:I.domainBind(e,t):void 0},e.onUnhandledRejectionHandled=function(t){var e=N();O="function"==typeof t?null===e?t:I.domainBind(e,t):void 0};var K=function(){};e.longStackTraces=function(){if(B.haveItemsQueued()&&!ot.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n    See http://goo.gl/MqrFmX\n");if(!ot.longStackTraces&&P()){var t=e.prototype._captureStackTrace,r=e.prototype._attachExtraTrace;ot.longStackTraces=!0,K=function(){if(B.haveItemsQueued()&&!ot.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n    See http://goo.gl/MqrFmX\n");e.prototype._captureStackTrace=t,e.prototype._attachExtraTrace=r,n.deac
 tivateLongStackTraces(),B.enableTrampoline(),ot.longStackTraces=!1},e.prototype._captureStackTrace=h,e.prototype._attachExtraTrace=_,n.activateLongStackTraces(),B.disableTrampolineIfNecessary()}},e.hasLongStackTraces=function(){return ot.longStackTraces&&P()};var J=function(){try{if("function"==typeof CustomEvent){var t=new CustomEvent("CustomEvent");return I.global.dispatchEvent(t),function(t,e){var n=new CustomEvent(t.toLowerCase(),{detail:e,cancelable:!0});return!I.global.dispatchEvent(n)}}if("function"==typeof Event){var t=new Event("CustomEvent");return I.global.dispatchEvent(t),function(t,e){var n=new Event(t.toLowerCase(),{cancelable:!0});return n.detail=e,!I.global.dispatchEvent(n)}}var t=document.createEvent("CustomEvent");return t.initCustomEvent("testingtheevent",!1,!0,{}),I.global.dispatchEvent(t),function(t,e){var n=document.createEvent("CustomEvent");return n.initCustomEvent(t.toLowerCase(),!1,!0,e),!I.global.dispatchEvent(n)}}catch(e){}return function(){return!1}}(),Y
 =function(){return I.isNode?function(){return process.emit.apply(process,arguments)}:I.global?function(t){var e="on"+t.toLowerCase(),n=I.global[e];return n?(n.apply(I.global,[].slice.call(arguments,1)),!0):!1}:function(){return!1}}(),Z={promiseCreated:r,promiseFulfilled:r,promiseRejected:r,promiseResolved:r,promiseCancelled:r,promiseChained:function(t,e,n){return{promise:e,child:n}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,n){return{reason:e,promise:n}},rejectionHandled:r},tt=function(t){var e=!1;try{e=Y.apply(null,arguments)}catch(n){B.throwLater(n),e=!0}var r=!1;try{r=J(t,Z[t].apply(null,arguments))}catch(n){B.throwLater(n),r=!0}return r||e};e.config=function(t){if(t=Object(t),"longStackTraces"in t&&(t.longStackTraces?e.longStackTraces():!t.longStackTraces&&e.hasLongStackTraces()&&K()),"warnings"in t){var n=t.warnings;ot.warnings=!!n,X=ot.warnings,I.isObject(n)&&"wForgottenReturn"in n&&(X=!!n.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&
 !ot.cancellation){if(B.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");e.prototype._clearCancellationData=l,e.prototype._propagateFrom=u,e.prototype._onCancel=s,e.prototype._setOnCancel=c,e.prototype._attachCancellationCallback=a,e.prototype._execute=o,et=u,ot.cancellation=!0}return"monitoring"in t&&(t.monitoring&&!ot.monitoring?(ot.monitoring=!0,e.prototype._fireEvent=tt):!t.monitoring&&ot.monitoring&&(ot.monitoring=!1,e.prototype._fireEvent=i)),e},e.prototype._fireEvent=i,e.prototype._execute=function(t,e,n){try{t(e,n)}catch(r){return r}},e.prototype._onCancel=function(){},e.prototype._setOnCancel=function(t){},e.prototype._attachCancellationCallback=function(t){},e.prototype._captureStackTrace=function(){},e.prototype._attachExtraTrace=function(){},e.prototype._clearCancellationData=function(){},e.prototype._propagateFrom=function(t,e){};var et=p,nt=function(){return!1},rt=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;I.inherits(x,Error),n.Capt
 uredTrace=x,x.prototype.uncycle=function(){var t=this._length;if(!(2>t)){for(var e=[],n={},r=0,i=this;void 0!==i;++r)e.push(i),i=i._parent;t=this._length=r;for(var r=t-1;r>=0;--r){var o=e[r].stack;void 0===n[o]&&(n[o]=r)}for(var r=0;t>r;++r){var a=e[r].stack,s=n[a];if(void 0!==s&&s!==r){s>0&&(e[s-1]._parent=void 0,e[s-1]._length=1),e[r]._parent=void 0,e[r]._length=1;var c=r>0?e[r-1]:this;t-1>s?(c._parent=e[s+1],c._parent.uncycle(),c._length=c._parent._length+1):(c._parent=void 0,c._length=1);for(var l=c._length+1,u=r-2;u>=0;--u)e[u]._length=l,l++;return}}}},x.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=E(t),n=e.message,r=[e.stack],i=this;void 0!==i;)r.push(C(i.stack.split("\n"))),i=i._parent;b(r),m(r),I.notEnumerableProp(t,"stack",g(n,r)),I.notEnumerableProp(t,"__stackCleaned__",!0)}};var it=function(){var t=/^\s*at\s*/,e=function(t,e){return"string"==typeof t?t:void 0!==e.name&&void 0!==e.message?e.toString():F(e)};if("number"==typeof Err
 or.stackTraceLimit&&"function"==typeof Error.captureStackTrace){Error.stackTraceLimit+=6,q=t,G=e;var n=Error.captureStackTrace;return nt=function(t){return D.test(t)},function(t,e){Error.stackTraceLimit+=6,n(t,e),Error.stackTraceLimit-=6}}var r=new Error;if("string"==typeof r.stack&&r.stack.split("\n")[0].indexOf("stackDetection@")>=0)return q=/@/,G=e,M=!0,function(t){t.stack=(new Error).stack};var i;try{throw new Error}catch(o){i="stack"in o}return"stack"in r||!i||"number"!=typeof Error.stackTraceLimit?(G=function(t,e){return"string"==typeof t?t:"object"!=typeof e&&"function"!=typeof e||void 0===e.name||void 0===e.message?F(e):e.toString()},null):(q=t,G=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}([]);"undefined"!=typeof console&&"undefined"!=typeof console.warn&&(L=function(t){console.warn(t)},I.isNode&&process.stderr.isTTY?L=function(t,e){var n=e?"":"";console.warn(n+t+"\n")}:I.isNode||"string"!=type
 of(new Error).stack||(L=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var ot={warnings:$,longStackTraces:!1,cancellation:!1,monitoring:!1};return z&&e.longStackTraces(),{longStackTraces:function(){return ot.longStackTraces},warnings:function(){return ot.warnings},cancellation:function(){return ot.cancellation},monitoring:function(){return ot.monitoring},propagateFromFunction:function(){return et},boundValueFunction:function(){return f},checkForgottenReturns:d,setBounds:S,warn:y,deprecated:v,CapturedTrace:x,fireDomEvent:J,fireGlobalEvent:Y}}},{"./errors":9,"./util":21}],8:[function(t,e,n){"use strict";e.exports=function(t){function e(){return this.value}function n(){throw this.reason}t.prototype["return"]=t.prototype.thenReturn=function(n){return n instanceof t&&n.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:n},void 0)},t.prototype["throw"]=t.prototype.thenThrow=function(t){return this._then(n,void 0,void 0,{reason:t},void 0)},t.prototype
 .catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,n,void 0,{reason:t},void 0);var e=arguments[1],r=function(){throw e};return this.caught(t,r)},t.prototype.catchReturn=function(n){if(arguments.length<=1)return n instanceof t&&n.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:n},void 0);var r=arguments[1];r instanceof t&&r.suppressUnhandledRejections();var i=function(){return r};return this.caught(n,i)}}},{}],9:[function(t,e,n){"use strict";function r(t,e){function n(r){return this instanceof n?(p(this,"message","string"==typeof r?r:e),p(this,"name",t),void(Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this))):new n(r)}return u(n,Error),n}function i(t){return this instanceof i?(p(this,"name","OperationalError"),p(this,"message",t),this.cause=t,this.isOperational=!0,void(t instanceof Error?(p(this,"message",t.message),p(this,"stack",t.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor
 ))):new i(t)}var o,a,s=t("./es5"),c=s.freeze,l=t("./util"),u=l.inherits,p=l.notEnumerableProp,f=r("Warning","warning"),h=r("CancellationError","cancellation error"),_=r("TimeoutError","timeout error"),d=r("AggregateError","aggregate error");try{o=TypeError,a=RangeError}catch(v){o=r("TypeError","type error"),a=r("RangeError","range error")}for(var y="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),g=0;g<y.length;++g)"function"==typeof Array.prototype[y[g]]&&(d.prototype[y[g]]=Array.prototype[y[g]]);s.defineProperty(d.prototype,"length",{value:0,configurable:!1,writable:!0,enumerable:!0}),d.prototype.isOperational=!0;var m=0;d.prototype.toString=function(){var t=Array(4*m+1).join(" "),e="\n"+t+"AggregateError of:\n";m++,t=Array(4*m+1).join(" ");for(var n=0;n<this.length;++n){for(var r=this[n]===this?"[Circular AggregateError]":this[n]+"",i=r.split("\n"),o=0;o<i.length;++o)i[o]=t+i[o];r=i.join("\n"),e+=r+"\
 n"}return m--,e},u(i,Error);var b=Error.__BluebirdErrorTypes__;b||(b=c({CancellationError:h,TimeoutError:_,OperationalError:i,RejectionError:i,AggregateError:d}),s.defineProperty(Error,"__BluebirdErrorTypes__",{value:b,writable:!1,enumerable:!1,configurable:!1})),e.exports={Error:Error,TypeError:o,RangeError:a,CancellationError:b.CancellationError,OperationalError:b.OperationalError,TimeoutError:b.TimeoutError,AggregateError:b.AggregateError,Warning:f}},{"./es5":10,"./util":21}],10:[function(t,e,n){var r=function(){"use strict";return void 0===this}();if(r)e.exports={freeze:Object.freeze,defineProperty:Object.defineProperty,getDescriptor:Object.getOwnPropertyDescriptor,keys:Object.keys,names:Object.getOwnPropertyNames,getPrototypeOf:Object.getPrototypeOf,isArray:Array.isArray,isES5:r,propertyIsWritable:function(t,e){var n=Object.getOwnPropertyDescriptor(t,e);return!(n&&!n.writable&&!n.set)}};else{var i={}.hasOwnProperty,o={}.toString,a={}.constructor.prototype,s=function(t){var e=[]
 ;for(var n in t)i.call(t,n)&&e.push(n);return e},c=function(t,e){return{value:t[e]}},l=function(t,e,n){return t[e]=n.value,t},u=function(t){return t},p=function(t){try{return Object(t).constructor.prototype}catch(e){return a}},f=function(t){try{return"[object Array]"===o.call(t)}catch(e){return!1}};e.exports={isArray:f,keys:s,names:s,defineProperty:l,getDescriptor:c,freeze:u,getPrototypeOf:p,isES5:r,propertyIsWritable:function(){return!0}}}},{}],11:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t,e,n){this.promise=t,this.type=e,this.handler=n,this.called=!1,this.cancelPromise=null}function o(t){this.finallyHandler=t}function a(t,e){return null!=t.cancelPromise?(arguments.length>1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0):!1}function s(){return l.call(this,this.promise._target()._settledValue())}function c(t){return a(this,t)?void 0:(f.e=t,f)}function l(t){var i=this.promise,l=this.handler;if(!this.called){this.called=!0;var u=t
 his.isFinallyHandler()?l.call(i._boundValue()):l.call(i._boundValue(),t);if(u===r)return u;if(void 0!==u){i._setReturnedNonUndefined();var h=n(u,i);if(h instanceof e){if(null!=this.cancelPromise){if(h._isCancelled()){var _=new p("late cancellation observer");return i._attachExtraTrace(_),f.e=_,f}h.isPending()&&h._attachCancellationCallback(new o(this))}return h._then(s,c,void 0,this,void 0)}}}return i.isRejected()?(a(this),f.e=t,f):(a(this),t)}var u=t("./util"),p=e.CancellationError,f=u.errorObj,h=t("./catch_filter")(r);return i.prototype.isFinallyHandler=function(){return 0===this.type},o.prototype._resultCancelled=function(){a(this.finallyHandler)},e.prototype._passThrough=function(t,e,n,r){return"function"!=typeof t?this.then():this._then(n,r,void 0,new i(this,e,t),void 0)},e.prototype.lastly=e.prototype["finally"]=function(t){return this._passThrough(t,0,l,l)},e.prototype.tap=function(t){return this._passThrough(t,1,l)},e.prototype.tapCatch=function(t){var n=arguments.length;if(
 1===n)return this._passThrough(t,1,void 0,l);var r,i=new Array(n-1),o=0;for(r=0;n-1>r;++r){var a=arguments[r];if(!u.isObject(a))return e.reject(new TypeError("tapCatch statement predicate: expecting an object but got "+u.classString(a)));i[o++]=a}i.length=o;var s=arguments[r];return this._passThrough(h(i,s,this),1,void 0,l)},i}},{"./catch_filter":5,"./util":21}],12:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,a){var s=t("./util");s.canEvaluate,s.tryCatch,s.errorObj;e.join=function(){var t,e=arguments.length-1;if(e>0&&"function"==typeof arguments[e]){t=arguments[e];var r}var i=[].slice.call(arguments);t&&i.pop();var r=new n(i).promise();return void 0!==t?r.spread(t):r}}},{"./util":21}],13:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){var a=t("./util"),s=a.tryCatch;e.method=function(t){if("function"!=typeof t)throw new e.TypeError("expecting a function but got "+a.classString(t));return function(){var r=new e(n);r._captureStackTrace(),r._pushContext();var i
 =s(t).apply(this,arguments),a=r._popContext();return o.checkForgottenReturns(i,a,"Promise.method",r),r._resolveFromSyncValue(i),r}},e.attempt=e["try"]=function(t){if("function"!=typeof t)return i("expecting a function but got "+a.classString(t));var r=new e(n);r._captureStackTrace(),r._pushContext();var c;if(arguments.length>1){o.deprecated("calling Promise.try with more than 1 argument");var l=arguments[1],u=arguments[2];c=a.isArray(l)?s(t).apply(u,l):s(t).call(u,l)}else c=s(t)();var p=r._popContext();return o.checkForgottenReturns(c,p,"Promise.try",r),r._resolveFromSyncValue(c),r},e.prototype._resolveFromSyncValue=function(t){t===a.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":21}],14:[function(t,e,n){"use strict";function r(t){return t instanceof Error&&u.getPrototypeOf(t)===Error.prototype}function i(t){var e;if(r(t)){e=new l(t),e.name=t.name,e.message=t.message,e.stack=t.stack;for(var n=u.keys(t),i=0;i<n.length;++i){var o=n[i];p.test(o)||(e[o]=t
 [o])}return e}return a.markAsOriginatingFromRejection(t),t}function o(t,e){return function(n,r){if(null!==t){if(n){var o=i(s(n));t._attachExtraTrace(o),t._reject(o)}else if(e){var a=[].slice.call(arguments,1);t._fulfill(a)}else t._fulfill(r);t=null}}}var a=t("./util"),s=a.maybeWrapAsError,c=t("./errors"),l=c.OperationalError,u=t("./es5"),p=/^(?:name|message|stack|cause)$/;e.exports=o},{"./errors":9,"./es5":10,"./util":21}],15:[function(t,e,n){"use strict";e.exports=function(){function n(){}function r(t,e){if(null==t||t.constructor!==i)throw new g("the promise constructor cannot be invoked directly\n\n    See http://goo.gl/MqrFmX\n");if("function"!=typeof e)throw new g("expecting a function but got "+h.classString(e))}function i(t){t!==b&&r(this,t),this._bitField=0,this._fulfillmentHandler0=void 0,this._rejectionHandler0=void 0,this._promise0=void 0,this._receiver0=void 0,this._resolveFromExecutor(t),this._promiseCreated(),this._fireEvent("promiseCreated",this)}function o(t){this.pro
 mise._resolveCallback(t)}function a(t){this.promise._rejectCallback(t,!1)}function s(t){var e=new i(b);e._fulfillmentHandler0=t,e._rejectionHandler0=t,e._promise0=t,e._receiver0=t}var c,l=function(){return new g("circular promise resolution chain\n\n    See http://goo.gl/MqrFmX\n")},u=function(){return new i.PromiseInspection(this._target())},p=function(t){return i.reject(new g(t))},f={},h=t("./util");c=h.isNode?function(){var t=process.domain;return void 0===t&&(t=null),t}:function(){return null},h.notEnumerableProp(i,"_getDomain",c);var _=t("./es5"),d=t("./async"),v=new d;_.defineProperty(i,"_async",{value:v});var y=t("./errors"),g=i.TypeError=y.TypeError;i.RangeError=y.RangeError;var m=i.CancellationError=y.CancellationError;i.TimeoutError=y.TimeoutError,i.OperationalError=y.OperationalError,i.RejectionError=y.OperationalError,i.AggregateError=y.AggregateError;var b=function(){},C={},w={},E=t("./thenables")(i,b),k=t("./promise_array")(i,b,E,p,n),j=t("./context")(i),F=(j.create,t(
 "./debuggability")(i,j)),T=(F.CapturedTrace,t("./finally")(i,E,w)),P=t("./catch_filter")(w),R=t("./nodeback"),S=h.errorObj,x=h.tryCatch;return i.prototype.toString=function(){return"[object Promise]"},i.prototype.caught=i.prototype["catch"]=function(t){var e=arguments.length;if(e>1){var n,r=new Array(e-1),i=0;for(n=0;e-1>n;++n){var o=arguments[n];if(!h.isObject(o))return p("Catch statement predicate: expecting an object but got "+h.classString(o));r[i++]=o}return r.length=i,t=arguments[n],this.then(void 0,P(r,t,this))}return this.then(void 0,t)},i.prototype.reflect=function(){return this._then(u,u,void 0,this,void 0)},i.prototype.then=function(t,e){if(F.warnings()&&arguments.length>0&&"function"!=typeof t&&"function"!=typeof e){var n=".then() only accepts functions but was passed: "+h.classString(t);arguments.length>1&&(n+=", "+h.classString(e)),this._warn(n)}return this._then(t,e,void 0,void 0,void 0)},i.prototype.done=function(t,e){var n=this._then(t,e,void 0,void 0,void 0);n._set
 IsFinal()},i.prototype.spread=function(t){return"function"!=typeof t?p("expecting a function but got "+h.classString(t)):this.all()._then(t,void 0,void 0,C,void 0);
-},i.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},i.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new k(this).promise()},i.prototype.error=function(t){return this.caught(h.originatesFromRejection,t)},i.getNewLibraryCopy=e.exports,i.is=function(t){return t instanceof i},i.fromNode=i.fromCallback=function(t){var e=new i(b);e._captureStackTrace();var n=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,r=x(t)(R(e,n));return r===S&&e._rejectCallback(r.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},i.all=function(t){return new k(t).promise()},i.cast=function(t){var e=E(t);return e instanceof i||(e=new i(b),e._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},i.resolve=i.fulfilled=i
 .cast,i.reject=i.rejected=function(t){var e=new i(b);return e._captureStackTrace(),e._rejectCallback(t,!0),e},i.setScheduler=function(t){if("function"!=typeof t)throw new g("expecting a function but got "+h.classString(t));return v.setScheduler(t)},i.prototype._then=function(t,e,n,r,o){var a=void 0!==o,s=a?o:new i(b),l=this._target(),u=l._bitField;a||(s._propagateFrom(this,3),s._captureStackTrace(),void 0===r&&0!==(2097152&this._bitField)&&(r=0!==(50397184&u)?this._boundValue():l===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,s));var p=c();if(0!==(50397184&u)){var f,_,d=l._settlePromiseCtx;0!==(33554432&u)?(_=l._rejectionHandler0,f=t):0!==(16777216&u)?(_=l._fulfillmentHandler0,f=e,l._unsetRejectionIsUnhandled()):(d=l._settlePromiseLateCancellationObserver,_=new m("late cancellation observer"),l._attachExtraTrace(_),f=e),v.invoke(d,l,{handler:null===p?f:"function"==typeof f&&h.domainBind(p,f),promise:s,receiver:r,value:_})}else l._addCallbacks(t,e,s,r,p);return s}
 ,i.prototype._length=function(){return 65535&this._bitField},i.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},i.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},i.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},i.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},i.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},i.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},i.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},i.prototype._isFinal=function(){return(4194304&this._bitField)>0},i.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},i.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},i.prototype._se
 tWillBeCancelled=function(){this._bitField=8388608|this._bitField},i.prototype._setAsyncGuaranteed=function(){v.hasCustomScheduler()||(this._bitField=134217728|this._bitField)},i.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];return e===f?void 0:void 0===e&&this._isBound()?this._boundValue():e},i.prototype._promiseAt=function(t){return this[4*t-4+2]},i.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},i.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},i.prototype._boundValue=function(){},i.prototype._migrateCallback0=function(t){var e=(t._bitField,t._fulfillmentHandler0),n=t._rejectionHandler0,r=t._promise0,i=t._receiverAt(0);void 0===i&&(i=f),this._addCallbacks(e,n,r,i,null)},i.prototype._migrateCallbackAt=function(t,e){var n=t._fulfillmentHandlerAt(e),r=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=f),this._addCallbacks(n,r,i,o,null)},i.prototype._addCallbacks=function(t,e,n,r,i){var o=this.
 _length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=n,this._receiver0=r,"function"==typeof t&&(this._fulfillmentHandler0=null===i?t:h.domainBind(i,t)),"function"==typeof e&&(this._rejectionHandler0=null===i?e:h.domainBind(i,e));else{var a=4*o-4;this[a+2]=n,this[a+3]=r,"function"==typeof t&&(this[a+0]=null===i?t:h.domainBind(i,t)),"function"==typeof e&&(this[a+1]=null===i?e:h.domainBind(i,e))}return this._setLength(o+1),o},i.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},i.prototype._resolveCallback=function(t,e){if(0===(117506048&this._bitField)){if(t===this)return this._rejectCallback(l(),!1);var n=E(t,this);if(!(n instanceof i))return this._fulfill(t);e&&this._propagateFrom(n,2);var r=n._target();if(r===this)return void this._reject(l());var o=r._bitField;if(0===(50397184&o)){var a=this._length();a>0&&r._migrateCallback0(this);for(var s=1;a>s;++s)r._migrateCallbackAt(this,s);this._setFollowing(),this._setLength(0),this._setFollowee(r)}e
 lse if(0!==(33554432&o))this._fulfill(r._value());else if(0!==(16777216&o))this._reject(r._reason());else{var c=new m("late cancellation observer");r._attachExtraTrace(c),this._reject(c)}}},i.prototype._rejectCallback=function(t,e,n){var r=h.ensureErrorObject(t),i=r===t;if(!i&&!n&&F.warnings()){var o="a promise was rejected with a non-error: "+h.classString(t);this._warn(o,!0)}this._attachExtraTrace(r,e?i:!1),this._reject(t)},i.prototype._resolveFromExecutor=function(t){if(t!==b){var e=this;this._captureStackTrace(),this._pushContext();var n=!0,r=this._execute(t,function(t){e._resolveCallback(t)},function(t){e._rejectCallback(t,n)});n=!1,this._popContext(),void 0!==r&&e._rejectCallback(r,!0)}},i.prototype._settlePromiseFromHandler=function(t,e,n,r){var i=r._bitField;if(0===(65536&i)){r._pushContext();var o;e===C?n&&"number"==typeof n.length?o=x(t).apply(this._boundValue(),n):(o=S,o.e=new g("cannot .spread() a non-array: "+h.classString(n))):o=x(t).call(e,n);var a=r._popContext();i=r
 ._bitField,0===(65536&i)&&(o===w?r._reject(n):o===S?r._rejectCallback(o.e,!1):(F.checkForgottenReturns(o,a,"",r,this),r._resolveCallback(o)))}},i.prototype._target=function(){for(var t=this;t._isFollowing();)t=t._followee();return t},i.prototype._followee=function(){return this._rejectionHandler0},i.prototype._setFollowee=function(t){this._rejectionHandler0=t},i.prototype._settlePromise=function(t,e,r,o){var a=t instanceof i,s=this._bitField,c=0!==(134217728&s);0!==(65536&s)?(a&&t._invokeInternalOnCancel(),r instanceof T&&r.isFinallyHandler()?(r.cancelPromise=t,x(e).call(r,o)===S&&t._reject(S.e)):e===u?t._fulfill(u.call(r)):r instanceof n?r._promiseCancelled(t):a||t instanceof k?t._cancel():r.cancel()):"function"==typeof e?a?(c&&t._setAsyncGuaranteed(),this._settlePromiseFromHandler(e,r,o,t)):e.call(r,o,t):r instanceof n?r._isResolved()||(0!==(33554432&s)?r._promiseFulfilled(o,t):r._promiseRejected(o,t)):a&&(c&&t._setAsyncGuaranteed(),0!==(33554432&s)?t._fulfill(o):t._reject(o))},i.
 prototype._settlePromiseLateCancellationObserver=function(t){var e=t.handler,n=t.promise,r=t.receiver,o=t.value;"function"==typeof e?n instanceof i?this._settlePromiseFromHandler(e,r,o,n):e.call(r,o,n):n instanceof i&&n._reject(o)},i.prototype._settlePromiseCtx=function(t){this._settlePromise(t.promise,t.handler,t.receiver,t.value)},i.prototype._settlePromise0=function(t,e,n){var r=this._promise0,i=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(r,t,i,e)},i.prototype._clearCallbackDataAtIndex=function(t){var e=4*t-4;this[e+2]=this[e+3]=this[e+0]=this[e+1]=void 0},i.prototype._fulfill=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(t===this){var n=l();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!==(134217728&e)?this._settlePromises():v.settlePromises(this))}},i.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16))return this._setRejected(),this.
 _fulfillmentHandler0=t,this._isFinal()?v.fatalError(t,h.isNode):void((65535&e)>0?v.settlePromises(this):this._ensurePossibleRejectionHandled())},i.prototype._fulfillPromises=function(t,e){for(var n=1;t>n;n++){var r=this._fulfillmentHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._rejectPromises=function(t,e){for(var n=1;t>n;n++){var r=this._rejectionHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._settlePromises=function(){var t=this._bitField,e=65535&t;if(e>0){if(0!==(16842752&t)){var n=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,n,t),this._rejectPromises(e,n)}else{var r=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,r,t),this._fulfillPromises(e,r)}this._setLength(0)}this._clearCancellationData()},i.prototype._settledValue=function(){var t=this._bitField;return 0!=
 =(33554432&t)?this._rejectionHandler0:0!==(16777216&t)?this._fulfillmentHandler0:void 0},i.defer=i.pending=function(){F.deprecated("Promise.defer","new Promise");var t=new i(b);return{promise:t,resolve:o,reject:a}},h.notEnumerableProp(i,"_makeSelfResolutionError",l),t("./method")(i,b,E,p,F),t("./bind")(i,b,E,F),t("./cancel")(i,k,p,F),t("./direct_resolve")(i),t("./synchronous_inspection")(i),t("./join")(i,k,E,b,v,c),i.Promise=i,i.version="3.5.0",h.toFastProperties(i),h.toFastProperties(i.prototype),s({a:1}),s({b:2}),s({c:3}),s(1),s(function(){}),s(void 0),s(!1),s(new i(b)),F.setBounds(d.firstLineError,h.lastLineError),i}},{"./async":1,"./bind":2,"./cancel":4,"./catch_filter":5,"./context":6,"./debuggability":7,"./direct_resolve":8,"./errors":9,"./es5":10,"./finally":11,"./join":12,"./method":13,"./nodeback":14,"./promise_array":16,"./synchronous_inspection":19,"./thenables":20,"./util":21}],16:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){function a(t){switch(t){case-2:
 return[];case-3:return{};case-6:return new Map}}function s(t){var r=this._promise=new e(n);t instanceof e&&r._propagateFrom(t,3),r._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var c=t("./util");c.isArray;return c.inherits(s,o),s.prototype.length=function(){return this._length},s.prototype.promise=function(){return this._promise},s.prototype._init=function l(t,n){var o=r(this._values,this._promise);if(o instanceof e){o=o._target();var s=o._bitField;if(this._values=o,0===(50397184&s))return this._promise._setAsyncGuaranteed(),o._then(l,this._reject,void 0,this,n);if(0===(33554432&s))return 0!==(16777216&s)?this._reject(o._reason()):this._cancel();o=o._value()}if(o=c.asArray(o),null===o){var u=i("expecting an array or an iterable object but got "+c.classString(o)).reason();return void this._promise._rejectCallback(u,!1)}return 0===o.length?void(-5===n?this._resolveEmptyArray():this._resolve(a(n))):void this._iterate(o)},s.prototype._itera
 te=function(t){var n=this.getActualLength(t.length);this._length=n,this._values=this.shouldCopyValues()?new Array(n):this._values;for(var i=this._promise,o=!1,a=null,s=0;n>s;++s){var c=r(t[s],i);c instanceof e?(c=c._target(),a=c._bitField):a=null,o?null!==a&&c.suppressUnhandledRejections():null!==a?0===(50397184&a)?(c._proxy(this,s),this._values[s]=c):o=0!==(33554432&a)?this._promiseFulfilled(c._value(),s):0!==(16777216&a)?this._promiseRejected(c._reason(),s):this._promiseCancelled(s):o=this._promiseFulfilled(c,s)}o||i._setAsyncGuaranteed()},s.prototype._isResolved=function(){return null===this._values},s.prototype._resolve=function(t){this._values=null,this._promise._fulfill(t)},s.prototype._cancel=function(){!this._isResolved()&&this._promise._isCancellable()&&(this._values=null,this._promise._cancel())},s.prototype._reject=function(t){this._values=null,this._promise._rejectCallback(t,!1)},s.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;re
 turn n>=this._length?(this._resolve(this._values),!0):!1},s.prototype._promiseCancelled=function(){return this._cancel(),!0},s.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},s.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var n=0;n<t.length;++n)t[n]instanceof e&&t[n].cancel()}},s.prototype.shouldCopyValues=function(){return!0},s.prototype.getActualLength=function(t){return t},s}},{"./util":21}],17:[function(t,e,n){"use strict";function r(t,e,n,r,i){for(var o=0;i>o;++o)n[o+r]=t[o+e],t[o+e]=void 0}function i(t){this._capacity=t,this._length=0,this._front=0}i.prototype._willBeOverCapacity=function(t){return this._capacity<t},i.prototype._pushOne=function(t){var e=this.length();this._checkCapacity(e+1);var n=this._front+e&this._capacity-1;this[n]=t,this._length=e+1},i.prototype.push=function(t,e,n){var r=this.length()+3;if(this._willBeOverCapacity(r))return th
 is._pushOne(t),this._pushOne(e),void this._pushOne(n);var i=this._front+r-3;this._checkCapacity(r);var o=this._capacity-1;this[i+0&o]=t,this[i+1&o]=e,this[i+2&o]=n,this._length=r},i.prototype.shift=function(){var t=this._front,e=this[t];return this[t]=void 0,this._front=t+1&this._capacity-1,this._length--,e},i.prototype.length=function(){return this._length},i.prototype._checkCapacity=function(t){this._capacity<t&&this._resizeTo(this._capacity<<1)},i.prototype._resizeTo=function(t){var e=this._capacity;this._capacity=t;var n=this._front,i=this._length,o=n+i&e-1;r(this,0,this,e,o)},e.exports=i},{}],18:[function(t,e,n){"use strict";var r,i=t("./util"),o=function(){throw new Error("No async scheduler available\n\n    See http://goo.gl/MqrFmX\n")},a=i.getNativePromise();if(i.isNode&&"undefined"==typeof MutationObserver){var s=global.setImmediate,c=process.nextTick;r=i.isRecentNode?function(t){s.call(global,t)}:function(t){c.call(process,t)}}else if("function"==typeof a&&"function"==type
 of a.resolve){var l=a.resolve();r=function(t){l.then(t)}}else r="undefined"==typeof MutationObserver||"undefined"!=typeof window&&window.navigator&&(window.navigator.standalone||window.cordova)?"undefined"!=typeof setImmediate?function(t){setImmediate(t)}:"undefined"!=typeof setTimeout?function(t){setTimeout(t,0)}:o:function(){var t=document.createElement("div"),e={attributes:!0},n=!1,r=document.createElement("div"),i=new MutationObserver(function(){t.classList.toggle("foo"),n=!1});i.observe(r,e);var o=function(){n||(n=!0,r.classList.toggle("foo"))};return function(n){var r=new MutationObserver(function(){r.disconnect(),n()});r.observe(t,e),o()}}();e.exports=r},{"./util":21}],19:[function(t,e,n){"use strict";e.exports=function(t){function e(t){void 0!==t?(t=t._target(),this._bitField=t._bitField,this._settledValueField=t._isFateSealed()?t._settledValue():void 0):(this._bitField=0,this._settledValueField=void 0)}e.prototype._settledValue=function(){return this._settledValueField};var
  n=e.prototype.value=function(){if(!this.isFulfilled())throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n    See http://goo.gl/MqrFmX\n");return this._settledValue()},r=e.prototype.error=e.prototype.reason=function(){if(!this.isRejected())throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n    See http://goo.gl/MqrFmX\n");return this._settledValue()},i=e.prototype.isFulfilled=function(){return 0!==(33554432&this._bitField)},o=e.prototype.isRejected=function(){return 0!==(16777216&this._bitField)},a=e.prototype.isPending=function(){return 0===(50397184&this._bitField)},s=e.prototype.isResolved=function(){return 0!==(50331648&this._bitField)};e.prototype.isCancelled=function(){return 0!==(8454144&this._bitField)},t.prototype.__isCancelled=function(){return 65536===(65536&this._bitField)},t.prototype._isCancelled=function(){return this._target().__isCancelled()},t.prototype.isCancelled=function(){return 0!==(8454144&this._target()
 ._bitField)},t.prototype.isPending=function(){return a.call(this._target())},t.prototype.isRejected=function(){return o.call(this._target())},t.prototype.isFulfilled=function(){return i.call(this._target())},t.prototype.isResolved=function(){return s.call(this._target())},t.prototype.value=function(){return n.call(this._target())},t.prototype.reason=function(){var t=this._target();return t._unsetRejectionIsUnhandled(),r.call(t)},t.prototype._value=function(){return this._settledValue()},t.prototype._reason=function(){return this._unsetRejectionIsUnhandled(),this._settledValue()},t.PromiseInspection=e}},{}],20:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,r){if(u(t)){if(t instanceof e)return t;var i=o(t);if(i===l){r&&r._pushContext();var c=e.reject(i.e);return r&&r._popContext(),c}if("function"==typeof i){if(a(t)){var c=new e(n);return t._then(c._fulfill,c._reject,void 0,c,null),c}return s(t,i,r)}}return t}function i(t){return t.then}function o(t){try{return i(t)
 }catch(e){return l.e=e,l}}function a(t){try{return p.call(t,"_promise0")}catch(e){return!1}}function s(t,r,i){function o(t){s&&(s._resolveCallback(t),s=null)}function a(t){s&&(s._rejectCallback(t,p,!0),s=null)}var s=new e(n),u=s;i&&i._pushContext(),s._captureStackTrace(),i&&i._popContext();var p=!0,f=c.tryCatch(r).call(t,o,a);return p=!1,s&&f===l&&(s._rejectCallback(f.e,!0,!0),s=null),u}var c=t("./util"),l=c.errorObj,u=c.isObject,p={}.hasOwnProperty;return r}},{"./util":21}],21:[function(t,e,n){"use strict";function r(){try{var t=R;return R=null,t.apply(this,arguments)}catch(e){return P.e=e,P}}function i(t){return R=t,r}function o(t){return null==t||t===!0||t===!1||"string"==typeof t||"number"==typeof t}function a(t){return"function"==typeof t||"object"==typeof t&&null!==t}function s(t){return o(t)?new Error(v(t)):t}function c(t,e){var n,r=t.length,i=new Array(r+1);for(n=0;r>n;++n)i[n]=t[n];return i[n]=e,i}function l(t,e,n){if(!F.isES5)return{}.hasOwnProperty.call(t,e)?t[e]:void 0;v
 ar r=Object.getOwnPropertyDescriptor(t,e);return null!=r?null==r.get&&null==r.set?r.value:n:void 0}function u(t,e,n){if(o(t))return t;var r={value:n,configurable:!0,enumerable:!1,writable:!0};return F.defineProperty(t,e,r),t}function p(t){throw t}function f(t){try{if("function"==typeof t){var e=F.names(t.prototype),n=F.isES5&&e.length>1,r=e.length>0&&!(1===e.length&&"constructor"===e[0]),i=A.test(t+"")&&F.names(t).length>0;if(n||r||i)return!0}return!1}catch(o){return!1}}function h(t){function e(){}e.prototype=t;for(var n=8;n--;)new e;return t}function _(t){return L.test(t)}function d(t,e,n){for(var r=new Array(t),i=0;t>i;++i)r[i]=e+i+n;return r}function v(t){try{return t+""}catch(e){return"[no string representation]"}}function y(t){return null!==t&&"object"==typeof t&&"string"==typeof t.message&&"string"==typeof t.name}function g(t){try{u(t,"isOperational",!0)}catch(e){}}function m(t){return null==t?!1:t instanceof Error.__BluebirdErrorTypes__.OperationalError||t.isOperational===!0}
 function b(t){return y(t)&&F.propertyIsWritable(t,"stack")}function C(t){return{}.toString.call(t)}function w(t,e,n){for(var r=F.names(t),i=0;i<r.length;++i){var o=r[i];if(n(o))try{F.defineProperty(e,o,F.getDescriptor(t,o))}catch(a){}}}function E(t){return H?process.env[t]:void 0}function k(){if("function"==typeof Promise)try{var t=new Promise(function(){});if("[object Promise]"==={}.toString.call(t))return Promise}catch(e){}}function j(t,e){return t.bind(e)}var F=t("./es5"),T="undefined"==typeof navigator,P={e:{}},R,S="undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:void 0!==this?this:null,x=function(t,e){function n(){this.constructor=t,this.constructor$=e;for(var n in e.prototype)r.call(e.prototype,n)&&"$"!==n.charAt(n.length-1)&&(this[n+"$"]=e.prototype[n])}var r={}.hasOwnProperty;return n.prototype=e.prototype,t.prototype=new n,t.prototype},O=function(){var t=[Array.prototype,Object.prototype,Function.prototype],e=function(e){for(
 var n=0;n<t.length;++n)if(t[n]===e)return!0;return!1};if(F.isES5){var n=Object.getOwnPropertyNames;return function(t){for(var r=[],i=Object.create(null);null!=t&&!e(t);){var o;try{o=n(t)}catch(a){return r}for(var s=0;s<o.length;++s){var c=o[s];if(!i[c]){i[c]=!0;var l=Object.getOwnPropertyDescriptor(t,c);null!=l&&null==l.get&&null==l.set&&r.push(c)}}t=F.getPrototypeOf(t)}return r}}var r={}.hasOwnProperty;return function(n){if(e(n))return[];var i=[];t:for(var o in n)if(r.call(n,o))i.push(o);else{for(var a=0;a<t.length;++a)if(r.call(t[a],o))continue t;i.push(o)}return i}}(),A=/this\s*\.\s*\S+\s*=/,L=/^[a-z$_][a-z$_0-9]*$/i,N=function(){return"stack"in new Error?function(t){return b(t)?t:new Error(v(t))}:function(t){if(b(t))return t;try{throw new Error(v(t))}catch(e){return e}}}(),B=function(t){return F.isArray(t)?t:null};if("undefined"!=typeof Symbol&&Symbol.iterator){var U="function"==typeof Array.from?function(t){return Array.from(t)}:function(t){for(var e,n=[],r=t[Symbol.iterator]()
 ;!(e=r.next()).done;)n.push(e.value);return n};B=function(t){return F.isArray(t)?t:null!=t&&"function"==typeof t[Symbol.iterator]?U(t):null}}var I="undefined"!=typeof process&&"[object process]"===C(process).toLowerCase(),H="undefined"!=typeof process&&"undefined"!=typeof process.env,D={isClass:f,isIdentifier:_,inheritedDataKeys:O,getDataPropertyOrDefault:l,thrower:p,isArray:F.isArray,asArray:B,notEnumerableProp:u,isPrimitive:o,isObject:a,isError:y,canEvaluate:T,errorObj:P,tryCatch:i,inherits:x,withAppended:c,maybeWrapAsError:s,toFastProperties:h,filledRange:d,toString:v,canAttachTrace:b,ensureErrorObject:N,originatesFromRejection:m,markAsOriginatingFromRejection:g,classString:C,copyDescriptors:w,hasDevTools:"undefined"!=typeof chrome&&chrome&&"function"==typeof chrome.loadTimes,isNode:I,hasEnvVariables:H,env:E,global:S,getNativePromise:k,domainBind:j};D.isRecentNode=D.isNode&&function(){var t=process.versions.node.split(".").map(Number);return 0===t[0]&&t[1]>10||t[0]>0}(),D.isNode&
 &D.toFastProperties(process);try{throw new Error}catch(V){D.lastLineError=V}e.exports=D},{"./es5":10}]},{},[3])(3)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise);
\ No newline at end of file


[15/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bunyan/lib/bunyan.js
----------------------------------------------------------------------
diff --git a/node_modules/bunyan/lib/bunyan.js b/node_modules/bunyan/lib/bunyan.js
deleted file mode 100644
index ec3bd84..0000000
--- a/node_modules/bunyan/lib/bunyan.js
+++ /dev/null
@@ -1,1627 +0,0 @@
-/**
- * Copyright (c) 2015 Trent Mick.
- * Copyright (c) 2015 Joyent Inc.
- *
- * The bunyan logging library for node.js.
- *
- * -*- mode: js -*-
- * vim: expandtab:ts=4:sw=4
- */
-
-var VERSION = '1.8.8';
-
-/*
- * Bunyan log format version. This becomes the 'v' field on all log records.
- * This will be incremented if there is any backward incompatible change to
- * the log record format. Details will be in 'CHANGES.md' (the change log).
- */
-var LOG_VERSION = 0;
-
-
-var xxx = function xxx(s) {     // internal dev/debug logging
-    var args = ['XX' + 'X: '+s].concat(
-        Array.prototype.slice.call(arguments, 1));
-    console.error.apply(this, args);
-};
-var xxx = function xxx() {};  // comment out to turn on debug logging
-
-
-/*
- * Runtime environment notes:
- *
- * Bunyan is intended to run in a number of runtime environments. Here are
- * some notes on differences for those envs and how the code copes.
- *
- * - node.js: The primary target environment.
- * - NW.js: http://nwjs.io/  An *app* environment that feels like both a
- *   node env -- it has node-like globals (`process`, `global`) and
- *   browser-like globals (`window`, `navigator`). My *understanding* is that
- *   bunyan can operate as if this is vanilla node.js.
- * - browser: Failing the above, we sniff using the `window` global
- *   <https://developer.mozilla.org/en-US/docs/Web/API/Window/window>.
- *      - browserify: http://browserify.org/  A browser-targetting bundler of
- *        node.js deps. The runtime is a browser env, so can't use fs access,
- *        etc. Browserify's build looks for `require(<single-string>)` imports
- *        to bundle. For some imports it won't be able to handle, we "hide"
- *        from browserify with `require('frobshizzle' + '')`.
- * - Other? Please open issues if things are broken.
- */
-var runtimeEnv;
-if (typeof (process) !== 'undefined' && process.versions) {
-    if (process.versions.nw) {
-        runtimeEnv = 'nw';
-    } else if (process.versions.node) {
-        runtimeEnv = 'node';
-    }
-}
-if (!runtimeEnv && typeof (window) !== 'undefined' &&
-    window.window === window) {
-    runtimeEnv = 'browser';
-}
-if (!runtimeEnv) {
-    throw new Error('unknown runtime environment');
-}
-
-
-var os, fs, dtrace;
-if (runtimeEnv === 'browser') {
-    os = {
-        hostname: function () {
-            return window.location.host;
-        }
-    };
-    fs = {};
-    dtrace = null;
-} else {
-    os = require('os');
-    fs = require('fs');
-    try {
-        dtrace = require('dtrace-provider' + '');
-    } catch (e) {
-        dtrace = null;
-    }
-}
-var util = require('util');
-var assert = require('assert');
-var EventEmitter = require('events').EventEmitter;
-var stream = require('stream');
-
-try {
-    var safeJsonStringify = require('safe-json-stringify');
-} catch (e) {
-    safeJsonStringify = null;
-}
-if (process.env.BUNYAN_TEST_NO_SAFE_JSON_STRINGIFY) {
-    safeJsonStringify = null;
-}
-
-// The 'mv' module is required for rotating-file stream support.
-try {
-    var mv = require('mv' + '');
-} catch (e) {
-    mv = null;
-}
-
-try {
-    var sourceMapSupport = require('source-map-support' + '');
-} catch (_) {
-    sourceMapSupport = null;
-}
-
-
-//---- Internal support stuff
-
-/**
- * A shallow copy of an object. Bunyan logging attempts to never cause
- * exceptions, so this function attempts to handle non-objects gracefully.
- */
-function objCopy(obj) {
-    if (obj == null) {  // null or undefined
-        return obj;
-    } else if (Array.isArray(obj)) {
-        return obj.slice();
-    } else if (typeof (obj) === 'object') {
-        var copy = {};
-        Object.keys(obj).forEach(function (k) {
-            copy[k] = obj[k];
-        });
-        return copy;
-    } else {
-        return obj;
-    }
-}
-
-var format = util.format;
-if (!format) {
-    // If node < 0.6, then use its `util.format`:
-    // <https://github.com/joyent/node/blob/master/lib/util.js#L22>:
-    var inspect = util.inspect;
-    var formatRegExp = /%[sdj%]/g;
-    format = function format(f) {
-        if (typeof (f) !== 'string') {
-            var objects = [];
-            for (var i = 0; i < arguments.length; i++) {
-                objects.push(inspect(arguments[i]));
-            }
-            return objects.join(' ');
-        }
-
-        var i = 1;
-        var args = arguments;
-        var len = args.length;
-        var str = String(f).replace(formatRegExp, function (x) {
-            if (i >= len)
-                return x;
-            switch (x) {
-                case '%s': return String(args[i++]);
-                case '%d': return Number(args[i++]);
-                case '%j': return fastAndSafeJsonStringify(args[i++]);
-                case '%%': return '%';
-                default:
-                    return x;
-            }
-        });
-        for (var x = args[i]; i < len; x = args[++i]) {
-            if (x === null || typeof (x) !== 'object') {
-                str += ' ' + x;
-            } else {
-                str += ' ' + inspect(x);
-            }
-        }
-        return str;
-    };
-}
-
-
-/**
- * Gather some caller info 3 stack levels up.
- * See <http://code.google.com/p/v8/wiki/JavaScriptStackTraceApi>.
- */
-function getCaller3Info() {
-    if (this === undefined) {
-        // Cannot access caller info in 'strict' mode.
-        return;
-    }
-    var obj = {};
-    var saveLimit = Error.stackTraceLimit;
-    var savePrepare = Error.prepareStackTrace;
-    Error.stackTraceLimit = 3;
-
-    Error.prepareStackTrace = function (_, stack) {
-        var caller = stack[2];
-        if (sourceMapSupport) {
-            caller = sourceMapSupport.wrapCallSite(caller);
-        }
-        obj.file = caller.getFileName();
-        obj.line = caller.getLineNumber();
-        var func = caller.getFunctionName();
-        if (func)
-            obj.func = func;
-    };
-    Error.captureStackTrace(this, getCaller3Info);
-    this.stack;
-
-    Error.stackTraceLimit = saveLimit;
-    Error.prepareStackTrace = savePrepare;
-    return obj;
-}
-
-
-function _indent(s, indent) {
-    if (!indent) indent = '    ';
-    var lines = s.split(/\r?\n/g);
-    return indent + lines.join('\n' + indent);
-}
-
-
-/**
- * Warn about an bunyan processing error.
- *
- * @param msg {String} Message with which to warn.
- * @param dedupKey {String} Optional. A short string key for this warning to
- *      have its warning only printed once.
- */
-function _warn(msg, dedupKey) {
-    assert.ok(msg);
-    if (dedupKey) {
-        if (_warned[dedupKey]) {
-            return;
-        }
-        _warned[dedupKey] = true;
-    }
-    process.stderr.write(msg + '\n');
-}
-function _haveWarned(dedupKey) {
-    return _warned[dedupKey];
-}
-var _warned = {};
-
-
-function ConsoleRawStream() {}
-ConsoleRawStream.prototype.write = function (rec) {
-    if (rec.level < INFO) {
-        console.log(rec);
-    } else if (rec.level < WARN) {
-        console.info(rec);
-    } else if (rec.level < ERROR) {
-        console.warn(rec);
-    } else {
-        console.error(rec);
-    }
-};
-
-
-//---- Levels
-
-var TRACE = 10;
-var DEBUG = 20;
-var INFO = 30;
-var WARN = 40;
-var ERROR = 50;
-var FATAL = 60;
-
-var levelFromName = {
-    'trace': TRACE,
-    'debug': DEBUG,
-    'info': INFO,
-    'warn': WARN,
-    'error': ERROR,
-    'fatal': FATAL
-};
-var nameFromLevel = {};
-Object.keys(levelFromName).forEach(function (name) {
-    nameFromLevel[levelFromName[name]] = name;
-});
-
-// Dtrace probes.
-var dtp = undefined;
-var probes = dtrace && {};
-
-/**
- * Resolve a level number, name (upper or lowercase) to a level number value.
- *
- * @param nameOrNum {String|Number} A level name (case-insensitive) or positive
- *      integer level.
- * @api public
- */
-function resolveLevel(nameOrNum) {
-    var level;
-    var type = typeof (nameOrNum);
-    if (type === 'string') {
-        level = levelFromName[nameOrNum.toLowerCase()];
-        if (!level) {
-            throw new Error(format('unknown level name: "%s"', nameOrNum));
-        }
-    } else if (type !== 'number') {
-        throw new TypeError(format('cannot resolve level: invalid arg (%s):',
-            type, nameOrNum));
-    } else if (nameOrNum < 0 || Math.floor(nameOrNum) !== nameOrNum) {
-        throw new TypeError(format('level is not a positive integer: %s',
-            nameOrNum));
-    } else {
-        level = nameOrNum;
-    }
-    return level;
-}
-
-
-function isWritable(obj) {
-    if (obj instanceof stream.Writable) {
-        return true;
-    }
-    return typeof (obj.write) === 'function';
-}
-
-
-//---- Logger class
-
-/**
- * Create a Logger instance.
- *
- * @param options {Object} See documentation for full details. At minimum
- *    this must include a 'name' string key. Configuration keys:
- *      - `streams`: specify the logger output streams. This is an array of
- *        objects with these fields:
- *          - `type`: The stream type. See README.md for full details.
- *            Often this is implied by the other fields. Examples are
- *            'file', 'stream' and "raw".
- *          - `level`: Defaults to 'info'.
- *          - `path` or `stream`: The specify the file path or writeable
- *            stream to which log records are written. E.g.
- *            `stream: process.stdout`.
- *          - `closeOnExit` (boolean): Optional. Default is true for a
- *            'file' stream when `path` is given, false otherwise.
- *        See README.md for full details.
- *      - `level`: set the level for a single output stream (cannot be used
- *        with `streams`)
- *      - `stream`: the output stream for a logger with just one, e.g.
- *        `process.stdout` (cannot be used with `streams`)
- *      - `serializers`: object mapping log record field names to
- *        serializing functions. See README.md for details.
- *      - `src`: Boolean (default false). Set true to enable 'src' automatic
- *        field with log call source info.
- *    All other keys are log record fields.
- *
- * An alternative *internal* call signature is used for creating a child:
- *    new Logger(<parent logger>, <child options>[, <child opts are simple>]);
- *
- * @param _childSimple (Boolean) An assertion that the given `_childOptions`
- *    (a) only add fields (no config) and (b) no serialization handling is
- *    required for them. IOW, this is a fast path for frequent child
- *    creation.
- */
-function Logger(options, _childOptions, _childSimple) {
-    xxx('Logger start:', options)
-    if (!(this instanceof Logger)) {
-        return new Logger(options, _childOptions);
-    }
-
-    // Input arg validation.
-    var parent;
-    if (_childOptions !== undefined) {
-        parent = options;
-        options = _childOptions;
-        if (!(parent instanceof Logger)) {
-            throw new TypeError(
-                'invalid Logger creation: do not pass a second arg');
-        }
-    }
-    if (!options) {
-        throw new TypeError('options (object) is required');
-    }
-    if (!parent) {
-        if (!options.name) {
-            throw new TypeError('options.name (string) is required');
-        }
-    } else {
-        if (options.name) {
-            throw new TypeError(
-                'invalid options.name: child cannot set logger name');
-        }
-    }
-    if (options.stream && options.streams) {
-        throw new TypeError('cannot mix "streams" and "stream" options');
-    }
-    if (options.streams && !Array.isArray(options.streams)) {
-        throw new TypeError('invalid options.streams: must be an array')
-    }
-    if (options.serializers && (typeof (options.serializers) !== 'object' ||
-            Array.isArray(options.serializers))) {
-        throw new TypeError('invalid options.serializers: must be an object')
-    }
-
-    EventEmitter.call(this);
-
-    // Fast path for simple child creation.
-    if (parent && _childSimple) {
-        // `_isSimpleChild` is a signal to stream close handling that this child
-        // owns none of its streams.
-        this._isSimpleChild = true;
-
-        this._level = parent._level;
-        this.streams = parent.streams;
-        this.serializers = parent.serializers;
-        this.src = parent.src;
-        var fields = this.fields = {};
-        var parentFieldNames = Object.keys(parent.fields);
-        for (var i = 0; i < parentFieldNames.length; i++) {
-            var name = parentFieldNames[i];
-            fields[name] = parent.fields[name];
-        }
-        var names = Object.keys(options);
-        for (var i = 0; i < names.length; i++) {
-            var name = names[i];
-            fields[name] = options[name];
-        }
-        return;
-    }
-
-    // Start values.
-    var self = this;
-    if (parent) {
-        this._level = parent._level;
-        this.streams = [];
-        for (var i = 0; i < parent.streams.length; i++) {
-            var s = objCopy(parent.streams[i]);
-            s.closeOnExit = false; // Don't own parent stream.
-            this.streams.push(s);
-        }
-        this.serializers = objCopy(parent.serializers);
-        this.src = parent.src;
-        this.fields = objCopy(parent.fields);
-        if (options.level) {
-            this.level(options.level);
-        }
-    } else {
-        this._level = Number.POSITIVE_INFINITY;
-        this.streams = [];
-        this.serializers = null;
-        this.src = false;
-        this.fields = {};
-    }
-
-    if (!dtp && dtrace) {
-        dtp = dtrace.createDTraceProvider('bunyan');
-
-        for (var level in levelFromName) {
-            var probe;
-
-            probes[levelFromName[level]] = probe =
-                dtp.addProbe('log-' + level, 'char *');
-
-            // Explicitly add a reference to dtp to prevent it from being GC'd
-            probe.dtp = dtp;
-        }
-
-        dtp.enable();
-    }
-
-    // Handle *config* options (i.e. options that are not just plain data
-    // for log records).
-    if (options.stream) {
-        self.addStream({
-            type: 'stream',
-            stream: options.stream,
-            closeOnExit: false,
-            level: options.level
-        });
-    } else if (options.streams) {
-        options.streams.forEach(function (s) {
-            self.addStream(s, options.level);
-        });
-    } else if (parent && options.level) {
-        this.level(options.level);
-    } else if (!parent) {
-        if (runtimeEnv === 'browser') {
-            /*
-             * In the browser we'll be emitting to console.log by default.
-             * Any console.log worth its salt these days can nicely render
-             * and introspect objects (e.g. the Firefox and Chrome console)
-             * so let's emit the raw log record. Are there browsers for which
-             * that breaks things?
-             */
-            self.addStream({
-                type: 'raw',
-                stream: new ConsoleRawStream(),
-                closeOnExit: false,
-                level: options.level
-            });
-        } else {
-            self.addStream({
-                type: 'stream',
-                stream: process.stdout,
-                closeOnExit: false,
-                level: options.level
-            });
-        }
-    }
-    if (options.serializers) {
-        self.addSerializers(options.serializers);
-    }
-    if (options.src) {
-        this.src = true;
-    }
-    xxx('Logger: ', self)
-
-    // Fields.
-    // These are the default fields for log records (minus the attributes
-    // removed in this constructor). To allow storing raw log records
-    // (unrendered), `this.fields` must never be mutated. Create a copy for
-    // any changes.
-    var fields = objCopy(options);
-    delete fields.stream;
-    delete fields.level;
-    delete fields.streams;
-    delete fields.serializers;
-    delete fields.src;
-    if (this.serializers) {
-        this._applySerializers(fields);
-    }
-    if (!fields.hostname && !self.fields.hostname) {
-        fields.hostname = os.hostname();
-    }
-    if (!fields.pid) {
-        fields.pid = process.pid;
-    }
-    Object.keys(fields).forEach(function (k) {
-        self.fields[k] = fields[k];
-    });
-}
-
-util.inherits(Logger, EventEmitter);
-
-
-/**
- * Add a stream
- *
- * @param stream {Object}. Object with these fields:
- *    - `type`: The stream type. See README.md for full details.
- *      Often this is implied by the other fields. Examples are
- *      'file', 'stream' and "raw".
- *    - `path` or `stream`: The specify the file path or writeable
- *      stream to which log records are written. E.g.
- *      `stream: process.stdout`.
- *    - `level`: Optional. Falls back to `defaultLevel`.
- *    - `closeOnExit` (boolean): Optional. Default is true for a
- *      'file' stream when `path` is given, false otherwise.
- *    See README.md for full details.
- * @param defaultLevel {Number|String} Optional. A level to use if
- *      `stream.level` is not set. If neither is given, this defaults to INFO.
- */
-Logger.prototype.addStream = function addStream(s, defaultLevel) {
-    var self = this;
-    if (defaultLevel === null || defaultLevel === undefined) {
-        defaultLevel = INFO;
-    }
-
-    s = objCopy(s);
-
-    // Implicit 'type' from other args.
-    if (!s.type) {
-        if (s.stream) {
-            s.type = 'stream';
-        } else if (s.path) {
-            s.type = 'file'
-        }
-    }
-    s.raw = (s.type === 'raw');  // PERF: Allow for faster check in `_emit`.
-
-    if (s.level !== undefined) {
-        s.level = resolveLevel(s.level);
-    } else {
-        s.level = resolveLevel(defaultLevel);
-    }
-    if (s.level < self._level) {
-        self._level = s.level;
-    }
-
-    switch (s.type) {
-    case 'stream':
-        assert.ok(isWritable(s.stream),
-                  '"stream" stream is not writable: ' + util.inspect(s.stream));
-
-        if (!s.closeOnExit) {
-            s.closeOnExit = false;
-        }
-        break;
-    case 'file':
-        if (s.reemitErrorEvents === undefined) {
-            s.reemitErrorEvents = true;
-        }
-        if (!s.stream) {
-            s.stream = fs.createWriteStream(s.path,
-                                            {flags: 'a', encoding: 'utf8'});
-            if (!s.closeOnExit) {
-                s.closeOnExit = true;
-            }
-        } else {
-            if (!s.closeOnExit) {
-                s.closeOnExit = false;
-            }
-        }
-        break;
-    case 'rotating-file':
-        assert.ok(!s.stream,
-                  '"rotating-file" stream should not give a "stream"');
-        assert.ok(s.path);
-        assert.ok(mv, '"rotating-file" stream type is not supported: '
-                      + 'missing "mv" module');
-        s.stream = new RotatingFileStream(s);
-        if (!s.closeOnExit) {
-            s.closeOnExit = true;
-        }
-        break;
-    case 'raw':
-        if (!s.closeOnExit) {
-            s.closeOnExit = false;
-        }
-        break;
-    default:
-        throw new TypeError('unknown stream type "' + s.type + '"');
-    }
-
-    if (s.reemitErrorEvents && typeof (s.stream.on) === 'function') {
-        // TODO: When we have `<logger>.close()`, it should remove event
-        //      listeners to not leak Logger instances.
-        s.stream.on('error', function onStreamError(err) {
-            self.emit('error', err, s);
-        });
-    }
-
-    self.streams.push(s);
-    delete self.haveNonRawStreams;  // reset
-}
-
-
-/**
- * Add serializers
- *
- * @param serializers {Object} Optional. Object mapping log record field names
- *    to serializing functions. See README.md for details.
- */
-Logger.prototype.addSerializers = function addSerializers(serializers) {
-    var self = this;
-
-    if (!self.serializers) {
-        self.serializers = {};
-    }
-    Object.keys(serializers).forEach(function (field) {
-        var serializer = serializers[field];
-        if (typeof (serializer) !== 'function') {
-            throw new TypeError(format(
-                'invalid serializer for "%s" field: must be a function',
-                field));
-        } else {
-            self.serializers[field] = serializer;
-        }
-    });
-}
-
-
-
-/**
- * Create a child logger, typically to add a few log record fields.
- *
- * This can be useful when passing a logger to a sub-component, e.g. a
- * 'wuzzle' component of your service:
- *
- *    var wuzzleLog = log.child({component: 'wuzzle'})
- *    var wuzzle = new Wuzzle({..., log: wuzzleLog})
- *
- * Then log records from the wuzzle code will have the same structure as
- * the app log, *plus the component='wuzzle' field*.
- *
- * @param options {Object} Optional. Set of options to apply to the child.
- *    All of the same options for a new Logger apply here. Notes:
- *      - The parent's streams are inherited and cannot be removed in this
- *        call. Any given `streams` are *added* to the set inherited from
- *        the parent.
- *      - The parent's serializers are inherited, though can effectively be
- *        overwritten by using duplicate keys.
- *      - Can use `level` to set the level of the streams inherited from
- *        the parent. The level for the parent is NOT affected.
- * @param simple {Boolean} Optional. Set to true to assert that `options`
- *    (a) only add fields (no config) and (b) no serialization handling is
- *    required for them. IOW, this is a fast path for frequent child
- *    creation. See 'tools/timechild.js' for numbers.
- */
-Logger.prototype.child = function (options, simple) {
-    return new (this.constructor)(this, options || {}, simple);
-}
-
-
-/**
- * A convenience method to reopen 'file' streams on a logger. This can be
- * useful with external log rotation utilities that move and re-open log files
- * (e.g. logrotate on Linux, logadm on SmartOS/Illumos). Those utilities
- * typically have rotation options to copy-and-truncate the log file, but
- * you may not want to use that. An alternative is to do this in your
- * application:
- *
- *      var log = bunyan.createLogger(...);
- *      ...
- *      process.on('SIGUSR2', function () {
- *          log.reopenFileStreams();
- *      });
- *      ...
- *
- * See <https://github.com/trentm/node-bunyan/issues/104>.
- */
-Logger.prototype.reopenFileStreams = function () {
-    var self = this;
-    self.streams.forEach(function (s) {
-        if (s.type === 'file') {
-            if (s.stream) {
-                // Not sure if typically would want this, or more immediate
-                // `s.stream.destroy()`.
-                s.stream.end();
-                s.stream.destroySoon();
-                delete s.stream;
-            }
-            s.stream = fs.createWriteStream(s.path,
-                {flags: 'a', encoding: 'utf8'});
-            s.stream.on('error', function (err) {
-                self.emit('error', err, s);
-            });
-        }
-    });
-};
-
-
-/* BEGIN JSSTYLED */
-/**
- * Close this logger.
- *
- * This closes streams (that it owns, as per 'endOnClose' attributes on
- * streams), etc. Typically you **don't** need to bother calling this.
-Logger.prototype.close = function () {
-    if (this._closed) {
-        return;
-    }
-    if (!this._isSimpleChild) {
-        self.streams.forEach(function (s) {
-            if (s.endOnClose) {
-                xxx('closing stream s:', s);
-                s.stream.end();
-                s.endOnClose = false;
-            }
-        });
-    }
-    this._closed = true;
-}
- */
-/* END JSSTYLED */
-
-
-/**
- * Get/set the level of all streams on this logger.
- *
- * Get Usage:
- *    // Returns the current log level (lowest level of all its streams).
- *    log.level() -> INFO
- *
- * Set Usage:
- *    log.level(INFO)       // set all streams to level INFO
- *    log.level('info')     // can use 'info' et al aliases
- */
-Logger.prototype.level = function level(value) {
-    if (value === undefined) {
-        return this._level;
-    }
-    var newLevel = resolveLevel(value);
-    var len = this.streams.length;
-    for (var i = 0; i < len; i++) {
-        this.streams[i].level = newLevel;
-    }
-    this._level = newLevel;
-}
-
-
-/**
- * Get/set the level of a particular stream on this logger.
- *
- * Get Usage:
- *    // Returns an array of the levels of each stream.
- *    log.levels() -> [TRACE, INFO]
- *
- *    // Returns a level of the identified stream.
- *    log.levels(0) -> TRACE      // level of stream at index 0
- *    log.levels('foo')           // level of stream with name 'foo'
- *
- * Set Usage:
- *    log.levels(0, INFO)         // set level of stream 0 to INFO
- *    log.levels(0, 'info')       // can use 'info' et al aliases
- *    log.levels('foo', WARN)     // set stream named 'foo' to WARN
- *
- * Stream names: When streams are defined, they can optionally be given
- * a name. For example,
- *       log = new Logger({
- *         streams: [
- *           {
- *             name: 'foo',
- *             path: '/var/log/my-service/foo.log'
- *             level: 'trace'
- *           },
- *         ...
- *
- * @param name {String|Number} The stream index or name.
- * @param value {Number|String} The level value (INFO) or alias ('info').
- *    If not given, this is a 'get' operation.
- * @throws {Error} If there is no stream with the given name.
- */
-Logger.prototype.levels = function levels(name, value) {
-    if (name === undefined) {
-        assert.equal(value, undefined);
-        return this.streams.map(
-            function (s) { return s.level });
-    }
-    var stream;
-    if (typeof (name) === 'number') {
-        stream = this.streams[name];
-        if (stream === undefined) {
-            throw new Error('invalid stream index: ' + name);
-        }
-    } else {
-        var len = this.streams.length;
-        for (var i = 0; i < len; i++) {
-            var s = this.streams[i];
-            if (s.name === name) {
-                stream = s;
-                break;
-            }
-        }
-        if (!stream) {
-            throw new Error(format('no stream with name "%s"', name));
-        }
-    }
-    if (value === undefined) {
-        return stream.level;
-    } else {
-        var newLevel = resolveLevel(value);
-        stream.level = newLevel;
-        if (newLevel < this._level) {
-            this._level = newLevel;
-        }
-    }
-}
-
-
-/**
- * Apply registered serializers to the appropriate keys in the given fields.
- *
- * Pre-condition: This is only called if there is at least one serializer.
- *
- * @param fields (Object) The log record fields.
- * @param excludeFields (Object) Optional mapping of keys to `true` for
- *    keys to NOT apply a serializer.
- */
-Logger.prototype._applySerializers = function (fields, excludeFields) {
-    var self = this;
-
-    xxx('_applySerializers: excludeFields', excludeFields);
-
-    // Check each serializer against these (presuming number of serializers
-    // is typically less than number of fields).
-    Object.keys(this.serializers).forEach(function (name) {
-        if (fields[name] === undefined ||
-            (excludeFields && excludeFields[name]))
-        {
-            return;
-        }
-        xxx('_applySerializers; apply to "%s" key', name)
-        try {
-            fields[name] = self.serializers[name](fields[name]);
-        } catch (err) {
-            _warn(format('bunyan: ERROR: Exception thrown from the "%s" '
-                + 'Bunyan serializer. This should never happen. This is a bug'
-                + 'in that serializer function.\n%s',
-                name, err.stack || err));
-            fields[name] = format('(Error in Bunyan log "%s" serializer '
-                + 'broke field. See stderr for details.)', name);
-        }
-    });
-}
-
-
-/**
- * Emit a log record.
- *
- * @param rec {log record}
- * @param noemit {Boolean} Optional. Set to true to skip emission
- *      and just return the JSON string.
- */
-Logger.prototype._emit = function (rec, noemit) {
-    var i;
-
-    // Lazily determine if this Logger has non-'raw' streams. If there are
-    // any, then we need to stringify the log record.
-    if (this.haveNonRawStreams === undefined) {
-        this.haveNonRawStreams = false;
-        for (i = 0; i < this.streams.length; i++) {
-            if (!this.streams[i].raw) {
-                this.haveNonRawStreams = true;
-                break;
-            }
-        }
-    }
-
-    // Stringify the object (creates a warning str on error).
-    var str;
-    if (noemit || this.haveNonRawStreams) {
-        str = fastAndSafeJsonStringify(rec) + '\n';
-    }
-
-    if (noemit)
-        return str;
-
-    var level = rec.level;
-    for (i = 0; i < this.streams.length; i++) {
-        var s = this.streams[i];
-        if (s.level <= level) {
-            xxx('writing log rec "%s" to "%s" stream (%d <= %d): %j',
-                rec.msg, s.type, s.level, level, rec);
-            s.stream.write(s.raw ? rec : str);
-        }
-    };
-
-    return str;
-}
-
-
-/**
- * Build a record object suitable for emitting from the arguments
- * provided to the a log emitter.
- */
-function mkRecord(log, minLevel, args) {
-    var excludeFields, fields, msgArgs;
-    if (args[0] instanceof Error) {
-        // `log.<level>(err, ...)`
-        fields = {
-            // Use this Logger's err serializer, if defined.
-            err: (log.serializers && log.serializers.err
-                ? log.serializers.err(args[0])
-                : Logger.stdSerializers.err(args[0]))
-        };
-        excludeFields = {err: true};
-        if (args.length === 1) {
-            msgArgs = [fields.err.message];
-        } else {
-            msgArgs = args.slice(1);
-        }
-    } else if (typeof (args[0]) !== 'object' || Array.isArray(args[0])) {
-        // `log.<level>(msg, ...)`
-        fields = null;
-        msgArgs = args.slice();
-    } else if (Buffer.isBuffer(args[0])) {  // `log.<level>(buf, ...)`
-        // Almost certainly an error, show `inspect(buf)`. See bunyan
-        // issue #35.
-        fields = null;
-        msgArgs = args.slice();
-        msgArgs[0] = util.inspect(msgArgs[0]);
-    } else {  // `log.<level>(fields, msg, ...)`
-        fields = args[0];
-        if (fields && args.length === 1 && fields.err &&
-            fields.err instanceof Error)
-        {
-            msgArgs = [fields.err.message];
-        } else {
-            msgArgs = args.slice(1);
-        }
-    }
-
-    // Build up the record object.
-    var rec = objCopy(log.fields);
-    var level = rec.level = minLevel;
-    var recFields = (fields ? objCopy(fields) : null);
-    if (recFields) {
-        if (log.serializers) {
-            log._applySerializers(recFields, excludeFields);
-        }
-        Object.keys(recFields).forEach(function (k) {
-            rec[k] = recFields[k];
-        });
-    }
-    rec.msg = format.apply(log, msgArgs);
-    if (!rec.time) {
-        rec.time = (new Date());
-    }
-    // Get call source info
-    if (log.src && !rec.src) {
-        rec.src = getCaller3Info()
-    }
-    rec.v = LOG_VERSION;
-
-    return rec;
-};
-
-
-/**
- * Build an array that dtrace-provider can use to fire a USDT probe. If we've
- * already built the appropriate string, we use it. Otherwise, build the
- * record object and stringify it.
- */
-function mkProbeArgs(str, log, minLevel, msgArgs) {
-    return [ str || log._emit(mkRecord(log, minLevel, msgArgs), true) ];
-}
-
-
-/**
- * Build a log emitter function for level minLevel. I.e. this is the
- * creator of `log.info`, `log.error`, etc.
- */
-function mkLogEmitter(minLevel) {
-    return function () {
-        var log = this;
-        var str = null;
-        var rec = null;
-
-        if (!this._emit) {
-            /*
-             * Show this invalid Bunyan usage warning *once*.
-             *
-             * See <https://github.com/trentm/node-bunyan/issues/100> for
-             * an example of how this can happen.
-             */
-            var dedupKey = 'unbound';
-            if (!_haveWarned[dedupKey]) {
-                var caller = getCaller3Info();
-                _warn(format('bunyan usage error: %s:%s: attempt to log '
-                    + 'with an unbound log method: `this` is: %s',
-                    caller.file, caller.line, util.inspect(this)),
-                    dedupKey);
-            }
-            return;
-        } else if (arguments.length === 0) {   // `log.<level>()`
-            return (this._level <= minLevel);
-        }
-
-        var msgArgs = new Array(arguments.length);
-        for (var i = 0; i < msgArgs.length; ++i) {
-            msgArgs[i] = arguments[i];
-        }
-
-        if (this._level <= minLevel) {
-            rec = mkRecord(log, minLevel, msgArgs);
-            str = this._emit(rec);
-        }
-
-        if (probes) {
-            probes[minLevel].fire(mkProbeArgs, str, log, minLevel, msgArgs);
-        }
-    }
-}
-
-
-/**
- * The functions below log a record at a specific level.
- *
- * Usages:
- *    log.<level>()  -> boolean is-trace-enabled
- *    log.<level>(<Error> err, [<string> msg, ...])
- *    log.<level>(<string> msg, ...)
- *    log.<level>(<object> fields, <string> msg, ...)
- *
- * where <level> is the lowercase version of the log level. E.g.:
- *
- *    log.info()
- *
- * @params fields {Object} Optional set of additional fields to log.
- * @params msg {String} Log message. This can be followed by additional
- *    arguments that are handled like
- *    [util.format](http://nodejs.org/docs/latest/api/all.html#util.format).
- */
-Logger.prototype.trace = mkLogEmitter(TRACE);
-Logger.prototype.debug = mkLogEmitter(DEBUG);
-Logger.prototype.info = mkLogEmitter(INFO);
-Logger.prototype.warn = mkLogEmitter(WARN);
-Logger.prototype.error = mkLogEmitter(ERROR);
-Logger.prototype.fatal = mkLogEmitter(FATAL);
-
-
-
-//---- Standard serializers
-// A serializer is a function that serializes a JavaScript object to a
-// JSON representation for logging. There is a standard set of presumed
-// interesting objects in node.js-land.
-
-Logger.stdSerializers = {};
-
-// Serialize an HTTP request.
-Logger.stdSerializers.req = function req(req) {
-    if (!req || !req.connection)
-        return req;
-    return {
-        method: req.method,
-        url: req.url,
-        headers: req.headers,
-        remoteAddress: req.connection.remoteAddress,
-        remotePort: req.connection.remotePort
-    };
-    // Trailers: Skipping for speed. If you need trailers in your app, then
-    // make a custom serializer.
-    //if (Object.keys(trailers).length > 0) {
-    //  obj.trailers = req.trailers;
-    //}
-};
-
-// Serialize an HTTP response.
-Logger.stdSerializers.res = function res(res) {
-    if (!res || !res.statusCode)
-        return res;
-    return {
-        statusCode: res.statusCode,
-        header: res._header
-    }
-};
-
-
-/*
- * This function dumps long stack traces for exceptions having a cause()
- * method. The error classes from
- * [verror](https://github.com/davepacheco/node-verror) and
- * [restify v2.0](https://github.com/mcavage/node-restify) are examples.
- *
- * Based on `dumpException` in
- * https://github.com/davepacheco/node-extsprintf/blob/master/lib/extsprintf.js
- */
-function getFullErrorStack(ex)
-{
-    var ret = ex.stack || ex.toString();
-    if (ex.cause && typeof (ex.cause) === 'function') {
-        var cex = ex.cause();
-        if (cex) {
-            ret += '\nCaused by: ' + getFullErrorStack(cex);
-        }
-    }
-    return (ret);
-}
-
-// Serialize an Error object
-// (Core error properties are enumerable in node 0.4, not in 0.6).
-var errSerializer = Logger.stdSerializers.err = function err(err) {
-    if (!err || !err.stack)
-        return err;
-    var obj = {
-        message: err.message,
-        name: err.name,
-        stack: getFullErrorStack(err),
-        code: err.code,
-        signal: err.signal
-    }
-    return obj;
-};
-
-
-// A JSON stringifier that handles cycles safely - tracks seen values in a Set.
-function safeCyclesSet() {
-    var seen = new Set();
-    return function (key, val) {
-        if (!val || typeof (val) !== 'object') {
-            return val;
-        }
-        if (seen.has(val)) {
-            return '[Circular]';
-        }
-        seen.add(val);
-        return val;
-    };
-}
-
-/**
- * A JSON stringifier that handles cycles safely - tracks seen vals in an Array.
- *
- * Note: This approach has performance problems when dealing with large objects,
- * see trentm/node-bunyan#445, but since this is the only option for node 0.10
- * and earlier (as Set was introduced in Node 0.12), it's used as a fallback
- * when Set is not available.
- */
-function safeCyclesArray() {
-    var seen = [];
-    return function (key, val) {
-        if (!val || typeof (val) !== 'object') {
-            return val;
-        }
-        if (seen.indexOf(val) !== -1) {
-            return '[Circular]';
-        }
-        seen.push(val);
-        return val;
-    };
-}
-
-/**
- * A JSON stringifier that handles cycles safely.
- *
- * Usage: JSON.stringify(obj, safeCycles())
- *
- * Choose the best safe cycle function from what is available - see
- * trentm/node-bunyan#445.
- */
-var safeCycles = typeof (Set) !== 'undefined' ? safeCyclesSet : safeCyclesArray;
-
-/**
- * A fast JSON.stringify that handles cycles and getter exceptions (when
- * safeJsonStringify is installed).
- *
- * This function attempts to use the regular JSON.stringify for speed, but on
- * error (e.g. JSON cycle detection exception) it falls back to safe stringify
- * handlers that can deal with cycles and/or getter exceptions.
- */
-function fastAndSafeJsonStringify(rec) {
-    try {
-        return JSON.stringify(rec);
-    } catch (ex) {
-        try {
-            return JSON.stringify(rec, safeCycles());
-        } catch (e) {
-            if (safeJsonStringify) {
-                return safeJsonStringify(rec);
-            } else {
-                var dedupKey = e.stack.split(/\n/g, 3).join('\n');
-                _warn('bunyan: ERROR: Exception in '
-                    + '`JSON.stringify(rec)`. You can install the '
-                    + '"safe-json-stringify" module to have Bunyan fallback '
-                    + 'to safer stringification. Record:\n'
-                    + _indent(format('%s\n%s', util.inspect(rec), e.stack)),
-                    dedupKey);
-                return format('(Exception in JSON.stringify(rec): %j. '
-                    + 'See stderr for details.)', e.message);
-            }
-        }
-    }
-}
-
-
-var RotatingFileStream = null;
-if (mv) {
-
-RotatingFileStream = function RotatingFileStream(options) {
-    this.path = options.path;
-
-    this.count = (options.count == null ? 10 : options.count);
-    assert.equal(typeof (this.count), 'number',
-        format('rotating-file stream "count" is not a number: %j (%s) in %j',
-            this.count, typeof (this.count), this));
-    assert.ok(this.count >= 0,
-        format('rotating-file stream "count" is not >= 0: %j in %j',
-            this.count, this));
-
-    // Parse `options.period`.
-    if (options.period) {
-        // <number><scope> where scope is:
-        //    h   hours (at the start of the hour)
-        //    d   days (at the start of the day, i.e. just after midnight)
-        //    w   weeks (at the start of Sunday)
-        //    m   months (on the first of the month)
-        //    y   years (at the start of Jan 1st)
-        // with special values 'hourly' (1h), 'daily' (1d), "weekly" (1w),
-        // 'monthly' (1m) and 'yearly' (1y)
-        var period = {
-            'hourly': '1h',
-            'daily': '1d',
-            'weekly': '1w',
-            'monthly': '1m',
-            'yearly': '1y'
-        }[options.period] || options.period;
-        var m = /^([1-9][0-9]*)([hdwmy]|ms)$/.exec(period);
-        if (!m) {
-            throw new Error(format('invalid period: "%s"', options.period));
-        }
-        this.periodNum = Number(m[1]);
-        this.periodScope = m[2];
-    } else {
-        this.periodNum = 1;
-        this.periodScope = 'd';
-    }
-
-    var lastModified = null;
-    try {
-        var fileInfo = fs.statSync(this.path);
-        lastModified = fileInfo.mtime.getTime();
-    }
-    catch (err) {
-        // file doesn't exist
-    }
-    var rotateAfterOpen = false;
-    if (lastModified) {
-        var lastRotTime = this._calcRotTime(0);
-        if (lastModified < lastRotTime) {
-            rotateAfterOpen = true;
-        }
-    }
-
-    // TODO: template support for backup files
-    // template: <path to which to rotate>
-    //      default is %P.%n
-    //      '/var/log/archive/foo.log'  -> foo.log.%n
-    //      '/var/log/archive/foo.log.%n'
-    //      codes:
-    //          XXX support strftime codes (per node version of those)
-    //              or whatever module. Pick non-colliding for extra
-    //              codes
-    //          %P      `path` base value
-    //          %n      integer number of rotated log (1,2,3,...)
-    //          %d      datetime in YYYY-MM-DD_HH-MM-SS
-    //                      XXX what should default date format be?
-    //                          prior art? Want to avoid ':' in
-    //                          filenames (illegal on Windows for one).
-
-    this.stream = fs.createWriteStream(this.path,
-        {flags: 'a', encoding: 'utf8'});
-
-    this.rotQueue = [];
-    this.rotating = false;
-    if (rotateAfterOpen) {
-        this._debug('rotateAfterOpen -> call rotate()');
-        this.rotate();
-    } else {
-        this._setupNextRot();
-    }
-}
-
-util.inherits(RotatingFileStream, EventEmitter);
-
-RotatingFileStream.prototype._debug = function () {
-    // Set this to `true` to add debug logging.
-    if (false) {
-        if (arguments.length === 0) {
-            return true;
-        }
-        var args = Array.prototype.slice.call(arguments);
-        args[0] = '[' + (new Date().toISOString()) + ', '
-            + this.path + '] ' + args[0];
-        console.log.apply(this, args);
-    } else {
-        return false;
-    }
-};
-
-RotatingFileStream.prototype._setupNextRot = function () {
-    this.rotAt = this._calcRotTime(1);
-    this._setRotationTimer();
-}
-
-RotatingFileStream.prototype._setRotationTimer = function () {
-    var self = this;
-    var delay = this.rotAt - Date.now();
-    // Cap timeout to Node's max setTimeout, see
-    // <https://github.com/joyent/node/issues/8656>.
-    var TIMEOUT_MAX = 2147483647; // 2^31-1
-    if (delay > TIMEOUT_MAX) {
-        delay = TIMEOUT_MAX;
-    }
-    this.timeout = setTimeout(
-        function () {
-            self._debug('_setRotationTimer timeout -> call rotate()');
-            self.rotate();
-        },
-        delay);
-    if (typeof (this.timeout.unref) === 'function') {
-        this.timeout.unref();
-    }
-}
-
-RotatingFileStream.prototype._calcRotTime =
-function _calcRotTime(periodOffset) {
-    this._debug('_calcRotTime: %s%s', this.periodNum, this.periodScope);
-    var d = new Date();
-
-    this._debug('  now local: %s', d);
-    this._debug('    now utc: %s', d.toISOString());
-    var rotAt;
-    switch (this.periodScope) {
-    case 'ms':
-        // Hidden millisecond period for debugging.
-        if (this.rotAt) {
-            rotAt = this.rotAt + this.periodNum * periodOffset;
-        } else {
-            rotAt = Date.now() + this.periodNum * periodOffset;
-        }
-        break;
-    case 'h':
-        if (this.rotAt) {
-            rotAt = this.rotAt + this.periodNum * 60 * 60 * 1000 * periodOffset;
-        } else {
-            // First time: top of the next hour.
-            rotAt = Date.UTC(d.getUTCFullYear(), d.getUTCMonth(),
-                d.getUTCDate(), d.getUTCHours() + periodOffset);
-        }
-        break;
-    case 'd':
-        if (this.rotAt) {
-            rotAt = this.rotAt + this.periodNum * 24 * 60 * 60 * 1000
-                * periodOffset;
-        } else {
-            // First time: start of tomorrow (i.e. at the coming midnight) UTC.
-            rotAt = Date.UTC(d.getUTCFullYear(), d.getUTCMonth(),
-                d.getUTCDate() + periodOffset);
-        }
-        break;
-    case 'w':
-        // Currently, always on Sunday morning at 00:00:00 (UTC).
-        if (this.rotAt) {
-            rotAt = this.rotAt + this.periodNum * 7 * 24 * 60 * 60 * 1000
-                * periodOffset;
-        } else {
-            // First time: this coming Sunday.
-            var dayOffset = (7 - d.getUTCDay());
-            if (periodOffset < 1) {
-                dayOffset = -d.getUTCDay();
-            }
-            if (periodOffset > 1 || periodOffset < -1) {
-                dayOffset += 7 * periodOffset;
-            }
-            rotAt = Date.UTC(d.getUTCFullYear(), d.getUTCMonth(),
-                d.getUTCDate() + dayOffset);
-        }
-        break;
-    case 'm':
-        if (this.rotAt) {
-            rotAt = Date.UTC(d.getUTCFullYear(),
-                d.getUTCMonth() + this.periodNum * periodOffset, 1);
-        } else {
-            // First time: the start of the next month.
-            rotAt = Date.UTC(d.getUTCFullYear(),
-                d.getUTCMonth() + periodOffset, 1);
-        }
-        break;
-    case 'y':
-        if (this.rotAt) {
-            rotAt = Date.UTC(d.getUTCFullYear() + this.periodNum * periodOffset,
-                0, 1);
-        } else {
-            // First time: the start of the next year.
-            rotAt = Date.UTC(d.getUTCFullYear() + periodOffset, 0, 1);
-        }
-        break;
-    default:
-        assert.fail(format('invalid period scope: "%s"', this.periodScope));
-    }
-
-    if (this._debug()) {
-        this._debug('  **rotAt**: %s (utc: %s)', rotAt,
-            new Date(rotAt).toUTCString());
-        var now = Date.now();
-        this._debug('        now: %s (%sms == %smin == %sh to go)',
-            now,
-            rotAt - now,
-            (rotAt-now)/1000/60,
-            (rotAt-now)/1000/60/60);
-    }
-    return rotAt;
-};
-
-RotatingFileStream.prototype.rotate = function rotate() {
-    // XXX What about shutdown?
-    var self = this;
-
-    // If rotation period is > ~25 days, we have to break into multiple
-    // setTimeout's. See <https://github.com/joyent/node/issues/8656>.
-    if (self.rotAt && self.rotAt > Date.now()) {
-        return self._setRotationTimer();
-    }
-
-    this._debug('rotate');
-    if (self.rotating) {
-        throw new TypeError('cannot start a rotation when already rotating');
-    }
-    self.rotating = true;
-
-    self.stream.end();  // XXX can do moves sync after this? test at high rate
-
-    function del() {
-        var toDel = self.path + '.' + String(n - 1);
-        if (n === 0) {
-            toDel = self.path;
-        }
-        n -= 1;
-        self._debug('  rm %s', toDel);
-        fs.unlink(toDel, function (delErr) {
-            //XXX handle err other than not exists
-            moves();
-        });
-    }
-
-    function moves() {
-        if (self.count === 0 || n < 0) {
-            return finish();
-        }
-        var before = self.path;
-        var after = self.path + '.' + String(n);
-        if (n > 0) {
-            before += '.' + String(n - 1);
-        }
-        n -= 1;
-        fs.exists(before, function (exists) {
-            if (!exists) {
-                moves();
-            } else {
-                self._debug('  mv %s %s', before, after);
-                mv(before, after, function (mvErr) {
-                    if (mvErr) {
-                        self.emit('error', mvErr);
-                        finish(); // XXX finish here?
-                    } else {
-                        moves();
-                    }
-                });
-            }
-        })
-    }
-
-    function finish() {
-        self._debug('  open %s', self.path);
-        self.stream = fs.createWriteStream(self.path,
-            {flags: 'a', encoding: 'utf8'});
-        var q = self.rotQueue, len = q.length;
-        for (var i = 0; i < len; i++) {
-            self.stream.write(q[i]);
-        }
-        self.rotQueue = [];
-        self.rotating = false;
-        self.emit('drain');
-        self._setupNextRot();
-    }
-
-    var n = this.count;
-    del();
-};
-
-RotatingFileStream.prototype.write = function write(s) {
-    if (this.rotating) {
-        this.rotQueue.push(s);
-        return false;
-    } else {
-        return this.stream.write(s);
-    }
-};
-
-RotatingFileStream.prototype.end = function end(s) {
-    this.stream.end();
-};
-
-RotatingFileStream.prototype.destroy = function destroy(s) {
-    this.stream.destroy();
-};
-
-RotatingFileStream.prototype.destroySoon = function destroySoon(s) {
-    this.stream.destroySoon();
-};
-
-} /* if (mv) */
-
-
-
-/**
- * RingBuffer is a Writable Stream that just stores the last N records in
- * memory.
- *
- * @param options {Object}, with the following fields:
- *
- *    - limit: number of records to keep in memory
- */
-function RingBuffer(options) {
-    this.limit = options && options.limit ? options.limit : 100;
-    this.writable = true;
-    this.records = [];
-    EventEmitter.call(this);
-}
-
-util.inherits(RingBuffer, EventEmitter);
-
-RingBuffer.prototype.write = function (record) {
-    if (!this.writable)
-        throw (new Error('RingBuffer has been ended already'));
-
-    this.records.push(record);
-
-    if (this.records.length > this.limit)
-        this.records.shift();
-
-    return (true);
-};
-
-RingBuffer.prototype.end = function () {
-    if (arguments.length > 0)
-        this.write.apply(this, Array.prototype.slice.call(arguments));
-    this.writable = false;
-};
-
-RingBuffer.prototype.destroy = function () {
-    this.writable = false;
-    this.emit('close');
-};
-
-RingBuffer.prototype.destroySoon = function () {
-    this.destroy();
-};
-
-
-//---- Exports
-
-module.exports = Logger;
-
-module.exports.TRACE = TRACE;
-module.exports.DEBUG = DEBUG;
-module.exports.INFO = INFO;
-module.exports.WARN = WARN;
-module.exports.ERROR = ERROR;
-module.exports.FATAL = FATAL;
-module.exports.resolveLevel = resolveLevel;
-module.exports.levelFromName = levelFromName;
-module.exports.nameFromLevel = nameFromLevel;
-
-module.exports.VERSION = VERSION;
-module.exports.LOG_VERSION = LOG_VERSION;
-
-module.exports.createLogger = function createLogger(options) {
-    return new Logger(options);
-};
-
-module.exports.RingBuffer = RingBuffer;
-module.exports.RotatingFileStream = RotatingFileStream;
-
-// Useful for custom `type == 'raw'` streams that may do JSON stringification
-// of log records themselves. Usage:
-//    var str = JSON.stringify(rec, bunyan.safeCycles());
-module.exports.safeCycles = safeCycles;

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bunyan/package.json
----------------------------------------------------------------------
diff --git a/node_modules/bunyan/package.json b/node_modules/bunyan/package.json
deleted file mode 100644
index 291c10a..0000000
--- a/node_modules/bunyan/package.json
+++ /dev/null
@@ -1,281 +0,0 @@
-{
-  "// dtrace-provider": "required for dtrace features",
-  "// moment": "required for local time with CLI",
-  "// mv": "required for RotatingFileStream",
-  "_args": [
-    [
-      {
-        "raw": "bunyan@^1.5.1",
-        "scope": null,
-        "escapedName": "bunyan",
-        "name": "bunyan",
-        "rawSpec": "^1.5.1",
-        "spec": ">=1.5.1 <2.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/hexo-log"
-    ]
-  ],
-  "_from": "bunyan@>=1.5.1 <2.0.0",
-  "_id": "bunyan@1.8.8",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/bunyan",
-  "_nodeVersion": "4.8.0",
-  "_npmOperationalInternal": {
-    "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/bunyan-1.8.8.tgz_1488580834755_0.6311622492503375"
-  },
-  "_npmUser": {
-    "name": "trentm",
-    "email": "trentm@gmail.com"
-  },
-  "_npmVersion": "2.15.11",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "bunyan@^1.5.1",
-    "scope": null,
-    "escapedName": "bunyan",
-    "name": "bunyan",
-    "rawSpec": "^1.5.1",
-    "spec": ">=1.5.1 <2.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/hexo-log"
-  ],
-  "_resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.8.tgz",
-  "_shasum": "6549ed6db088e4d82b7be3bcc6d0697159f6e209",
-  "_shrinkwrap": null,
-  "_spec": "bunyan@^1.5.1",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/hexo-log",
-  "author": {
-    "name": "Trent Mick",
-    "email": "trentm@gmail.com",
-    "url": "http://trentm.com"
-  },
-  "bin": {
-    "bunyan": "./bin/bunyan"
-  },
-  "bugs": {
-    "url": "https://github.com/trentm/node-bunyan/issues"
-  },
-  "contributors": [
-    {
-      "name": "Trent Mick",
-      "url": "http://trentm.com"
-    },
-    {
-      "name": "Mark Cavage",
-      "url": "https://github.com/mcavage"
-    },
-    {
-      "name": "Dave Pacheco",
-      "url": "https://github.com/davepacheco"
-    },
-    {
-      "name": "Michael Hart",
-      "url": "https://github.com/mhart"
-    },
-    {
-      "name": "Isaac Schlueter",
-      "url": "https://github.com/isaacs"
-    },
-    {
-      "name": "Rob Gulewich",
-      "url": "https://github.com/rgulewich"
-    },
-    {
-      "name": "Bryan Cantrill",
-      "url": "https://github.com/bcantrill"
-    },
-    {
-      "name": "Michael Hart",
-      "url": "https://github.com/mhart"
-    },
-    {
-      "name": "Simon Wade",
-      "url": "https://github.com/aexmachina"
-    },
-    {
-      "name": "https://github.com/glenn-murray-bse"
-    },
-    {
-      "name": "Chakrit Wichian",
-      "url": "https://github.com/chakrit"
-    },
-    {
-      "name": "Patrick Mooney",
-      "url": "https://github.com/pfmooney"
-    },
-    {
-      "name": "Johan Nordberg",
-      "url": "https://github.com/jnordberg"
-    },
-    {
-      "name": "https://github.com/timborodin"
-    },
-    {
-      "name": "Ryan Graham",
-      "url": "https://github.com/rmg"
-    },
-    {
-      "name": "Alex Kocharin",
-      "url": "https://github.com/rlidwka"
-    },
-    {
-      "name": "Andrei Neculau",
-      "url": "https://github.com/andreineculau"
-    },
-    {
-      "name": "Mihai Tomescu",
-      "url": "https://github.com/matomesc"
-    },
-    {
-      "name": "Daniel Juhl",
-      "url": "https://github.com/danieljuhl"
-    },
-    {
-      "name": "Chris Barber",
-      "url": "https://github.com/cb1kenobi"
-    },
-    {
-      "name": "Manuel Schneider",
-      "url": "https://github.com/manuelschneider"
-    },
-    {
-      "name": "Martin Gausby",
-      "url": "https://github.com/gausby"
-    },
-    {
-      "name": "Stéphan Kochen",
-      "url": "https://github.com/stephank"
-    },
-    {
-      "name": "Shakeel Mohamed",
-      "url": "https://github.com/shakeelmohamed"
-    },
-    {
-      "name": "Denis Izmaylov",
-      "url": "https://github.com/DenisIzmaylov"
-    },
-    {
-      "name": "Guillermo Grau Panea",
-      "url": "https://github.com/guigrpa"
-    },
-    {
-      "name": "Mark LeMerise",
-      "url": "https://github.com/MarkLeMerise"
-    },
-    {
-      "name": "https://github.com/sometimesalready"
-    },
-    {
-      "name": "Charly Koza",
-      "url": "https://github.com/Cactusbone"
-    },
-    {
-      "name": "Thomas Heymann",
-      "url": "https://github.com/cyberthom"
-    },
-    {
-      "name": "David M. Lee",
-      "url": "https://github.com/leedm777"
-    },
-    {
-      "name": "Marc Udoff",
-      "url": "https://github.com/mlucool"
-    },
-    {
-      "name": "Mark Stosberg",
-      "url": "https://github.com/markstos"
-    },
-    {
-      "name": "Alexander Ray",
-      "url": "https://github.com/aray12"
-    },
-    {
-      "name": "Adam Lynch",
-      "url": "https://github.com/adam-lynch"
-    },
-    {
-      "name": "Michael Nisi",
-      "url": "https://github.com/michaelnisi"
-    },
-    {
-      "name": "Martijn Schrage",
-      "url": "https://github.com/Oblosys"
-    },
-    {
-      "name": "Paul Milham",
-      "url": "https://github.com/domrein"
-    },
-    {
-      "name": "Frankie O'Rourke",
-      "url": "https://github.com/psfrankie"
-    },
-    {
-      "name": "Cody Mello",
-      "url": "https://github.com/melloc"
-    },
-    {
-      "name": "Todd Whiteman",
-      "url": "https://github.com/twhiteman"
-    }
-  ],
-  "dependencies": {
-    "dtrace-provider": "~0.8",
-    "moment": "^2.10.6",
-    "mv": "~2",
-    "safe-json-stringify": "~1"
-  },
-  "description": "a JSON logging library for node.js services",
-  "devDependencies": {
-    "ben": "0.0.0",
-    "markdown-toc": "0.12.x",
-    "nodeunit": "0.9",
-    "vasync": "1.4.3",
-    "verror": "1.3.3"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "6549ed6db088e4d82b7be3bcc6d0697159f6e209",
-    "tarball": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.8.tgz"
-  },
-  "engines": [
-    "node >=0.10.0"
-  ],
-  "gitHead": "741bcaeb5d4a95601bc45a1cffc6c98d172ede69",
-  "homepage": "https://github.com/trentm/node-bunyan#readme",
-  "keywords": [
-    "log",
-    "logging",
-    "log4j",
-    "json",
-    "bunyan"
-  ],
-  "license": "MIT",
-  "main": "./lib/bunyan.js",
-  "maintainers": [
-    {
-      "name": "trentm",
-      "email": "trentm@gmail.com"
-    }
-  ],
-  "name": "bunyan",
-  "optionalDependencies": {
-    "dtrace-provider": "~0.8",
-    "moment": "^2.10.6",
-    "mv": "~2",
-    "safe-json-stringify": "~1"
-  },
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/trentm/node-bunyan.git"
-  },
-  "scripts": {
-    "test": "make test"
-  },
-  "version": "1.8.8"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bytes/History.md
----------------------------------------------------------------------
diff --git a/node_modules/bytes/History.md b/node_modules/bytes/History.md
deleted file mode 100644
index 559e063..0000000
--- a/node_modules/bytes/History.md
+++ /dev/null
@@ -1,65 +0,0 @@
-2.3.0 / 2016-02-15
-==================
-
-  * Drop partial bytes on all parsed units
-  * Fix non-finite numbers to `.format` to return `null`
-  * Fix parsing byte string that looks like hex
-  * perf: hoist regular expressions
-
-2.2.0 / 2015-11-13
-==================
-
-  * add option "decimalPlaces"
-  * add option "fixedDecimals"
-
-2.1.0 / 2015-05-21
-==================
-
-  * add `.format` export
-  * add `.parse` export
-
-2.0.2 / 2015-05-20
-==================
-
-  * remove map recreation
-  * remove unnecessary object construction
-
-2.0.1 / 2015-05-07
-==================
-
-  * fix browserify require
-  * remove node.extend dependency
-
-2.0.0 / 2015-04-12
-==================
-
-  * add option "case"
-  * add option "thousandsSeparator"
-  * return "null" on invalid parse input
-  * support proper round-trip: bytes(bytes(num)) === num
-  * units no longer case sensitive when parsing
-
-1.0.0 / 2014-05-05
-==================
-
- * add negative support. fixes #6
-
-0.3.0 / 2014-03-19
-==================
-
- * added terabyte support
-
-0.2.1 / 2013-04-01
-==================
-
-  * add .component
-
-0.2.0 / 2012-10-28
-==================
-
-  * bytes(200).should.eql('200b')
-
-0.1.0 / 2012-07-04
-==================
-
-  * add bytes to string conversion [yields]

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bytes/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/bytes/LICENSE b/node_modules/bytes/LICENSE
deleted file mode 100644
index 63e95a9..0000000
--- a/node_modules/bytes/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2012-2014 TJ Holowaychuk <tj...@vision-media.ca>
-Copyright (c) 2015 Jed Watson <je...@me.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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bytes/Readme.md
----------------------------------------------------------------------
diff --git a/node_modules/bytes/Readme.md b/node_modules/bytes/Readme.md
deleted file mode 100644
index dd19ff2..0000000
--- a/node_modules/bytes/Readme.md
+++ /dev/null
@@ -1,109 +0,0 @@
-# Bytes utility
-
-[![NPM Version][npm-image]][npm-url]
-[![NPM Downloads][downloads-image]][downloads-url]
-[![Build Status][travis-image]][travis-url]
-
-Utility to parse a string bytes (ex: `1TB`) to bytes (`1099511627776`) and vice-versa.
-
-## Usage
-
-```js
-var bytes = require('bytes');
-```
-
-#### bytes.format(number value, [options]): string|null
-
-Format the given value in bytes into a string. If the value is negative, it is kept as such. If it is a float, it is
- rounded.
-
-**Arguments**
-
-| Name    | Type   | Description        |
-|---------|--------|--------------------|
-| value   | `number` | Value in bytes     |
-| options | `Object` | Conversion options |
-
-**Options**
-
-| Property          | Type   | Description                                                                             |
-|-------------------|--------|-----------------------------------------------------------------------------------------|
-| decimalPlaces | `number`&#124;`null` | Maximum number of decimal places to include in output. Default value to `2`. |
-| fixedDecimals | `boolean`&#124;`null` | Whether to always display the maximum number of decimal places. Default value to `false` |
-| thousandsSeparator | `string`&#124;`null` | Example of values: `' '`, `','` and `.`... Default value to `' '`. |
-
-**Returns**
-
-| Name    | Type        | Description             |
-|---------|-------------|-------------------------|
-| results | `string`&#124;`null` | Return null upon error. String value otherwise. |
-
-**Example**
-
-```js
-bytes(1024);
-// output: '1kB'
-
-bytes(1000);
-// output: '1000B'
-
-bytes(1000, {thousandsSeparator: ' '});
-// output: '1 000B'
-
-bytes(1024 * 1.7, {decimalPlaces: 0});
-// output: '2kB'
-```
-
-#### bytes.parse(string value): number|null
-
-Parse the string value into an integer in bytes. If no unit is given, it is assumed the value is in bytes.
-
-Supported units and abbreviations are as follows and are case-insensitive:
-
-  * "b" for bytes
-  * "kb" for kilobytes
-  * "mb" for megabytes
-  * "gb" for gigabytes
-  * "tb" for terabytes
-
-The units are in powers of two, not ten. This means 1kb = 1024b according to this parser.
-
-**Arguments**
-
-| Name          | Type   | Description        |
-|---------------|--------|--------------------|
-| value   | `string` | String to parse.   |
-
-**Returns**
-
-| Name    | Type        | Description             |
-|---------|-------------|-------------------------|
-| results | `number`&#124;`null` | Return null upon error. Value in bytes otherwise. |
-
-**Example**
-
-```js
-bytes('1kB');
-// output: 1024
-
-bytes('1024');
-// output: 1024
-```
-
-## Installation
-
-```bash
-npm install bytes --save
-component install visionmedia/bytes.js
-```
-
-## License 
-
-[![npm](https://img.shields.io/npm/l/express.svg)](https://github.com/visionmedia/bytes.js/blob/master/LICENSE)
-
-[downloads-image]: https://img.shields.io/npm/dm/bytes.svg
-[downloads-url]: https://npmjs.org/package/bytes
-[npm-image]: https://img.shields.io/npm/v/bytes.svg
-[npm-url]: https://npmjs.org/package/bytes
-[travis-image]: https://img.shields.io/travis/visionmedia/bytes.js/master.svg
-[travis-url]: https://travis-ci.org/visionmedia/bytes.js

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bytes/index.js
----------------------------------------------------------------------
diff --git a/node_modules/bytes/index.js b/node_modules/bytes/index.js
deleted file mode 100644
index f71cca7..0000000
--- a/node_modules/bytes/index.js
+++ /dev/null
@@ -1,154 +0,0 @@
-/*!
- * bytes
- * Copyright(c) 2012-2014 TJ Holowaychuk
- * Copyright(c) 2015 Jed Watson
- * MIT Licensed
- */
-
-'use strict';
-
-/**
- * Module exports.
- * @public
- */
-
-module.exports = bytes;
-module.exports.format = format;
-module.exports.parse = parse;
-
-/**
- * Module variables.
- * @private
- */
-
-var formatThousandsRegExp = /\B(?=(\d{3})+(?!\d))/g;
-
-var formatDecimalsRegExp = /(?:\.0*|(\.[^0]+)0+)$/;
-
-var map = {
-  b:  1,
-  kb: 1 << 10,
-  mb: 1 << 20,
-  gb: 1 << 30,
-  tb: ((1 << 30) * 1024)
-};
-
-// TODO: use is-finite module?
-var numberIsFinite = Number.isFinite || function (v) { return typeof v === 'number' && isFinite(v); };
-
-var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb)$/i;
-
-/**
- * Convert the given value in bytes into a string or parse to string to an integer in bytes.
- *
- * @param {string|number} value
- * @param {{
- *  case: [string],
- *  decimalPlaces: [number]
- *  fixedDecimals: [boolean]
- *  thousandsSeparator: [string]
- *  }} [options] bytes options.
- *
- * @returns {string|number|null}
- */
-
-function bytes(value, options) {
-  if (typeof value === 'string') {
-    return parse(value);
-  }
-
-  if (typeof value === 'number') {
-    return format(value, options);
-  }
-
-  return null;
-}
-
-/**
- * Format the given value in bytes into a string.
- *
- * If the value is negative, it is kept as such. If it is a float,
- * it is rounded.
- *
- * @param {number} value
- * @param {object} [options]
- * @param {number} [options.decimalPlaces=2]
- * @param {number} [options.fixedDecimals=false]
- * @param {string} [options.thousandsSeparator=]
- *
- * @returns {string|null}
- * @public
- */
-
-function format(value, options) {
-  if (!numberIsFinite(value)) {
-    return null;
-  }
-
-  var mag = Math.abs(value);
-  var thousandsSeparator = (options && options.thousandsSeparator) || '';
-  var decimalPlaces = (options && options.decimalPlaces !== undefined) ? options.decimalPlaces : 2;
-  var fixedDecimals = Boolean(options && options.fixedDecimals);
-  var unit = 'B';
-
-  if (mag >= map.tb) {
-    unit = 'TB';
-  } else if (mag >= map.gb) {
-    unit = 'GB';
-  } else if (mag >= map.mb) {
-    unit = 'MB';
-  } else if (mag >= map.kb) {
-    unit = 'kB';
-  }
-
-  var val = value / map[unit.toLowerCase()];
-  var str = val.toFixed(decimalPlaces);
-
-  if (!fixedDecimals) {
-    str = str.replace(formatDecimalsRegExp, '$1');
-  }
-
-  if (thousandsSeparator) {
-    str = str.replace(formatThousandsRegExp, thousandsSeparator);
-  }
-
-  return str + unit;
-}
-
-/**
- * Parse the string value into an integer in bytes.
- *
- * If no unit is given, it is assumed the value is in bytes.
- *
- * @param {number|string} val
- *
- * @returns {number|null}
- * @public
- */
-
-function parse(val) {
-  if (typeof val === 'number' && !isNaN(val)) {
-    return val;
-  }
-
-  if (typeof val !== 'string') {
-    return null;
-  }
-
-  // Test if the string passed is valid
-  var results = parseRegExp.exec(val);
-  var floatValue;
-  var unit = 'b';
-
-  if (!results) {
-    // Nothing could be extracted from the given string
-    floatValue = parseInt(val, 10);
-    unit = 'b'
-  } else {
-    // Retrieve the value and the unit
-    floatValue = parseFloat(results[1]);
-    unit = results[4].toLowerCase();
-  }
-
-  return Math.floor(map[unit] * floatValue);
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bytes/package.json
----------------------------------------------------------------------
diff --git a/node_modules/bytes/package.json b/node_modules/bytes/package.json
deleted file mode 100644
index b53660a..0000000
--- a/node_modules/bytes/package.json
+++ /dev/null
@@ -1,121 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "bytes@2.3.0",
-        "scope": null,
-        "escapedName": "bytes",
-        "name": "bytes",
-        "rawSpec": "2.3.0",
-        "spec": "2.3.0",
-        "type": "version"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/compression"
-    ]
-  ],
-  "_from": "bytes@2.3.0",
-  "_id": "bytes@2.3.0",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/bytes",
-  "_nodeVersion": "4.2.3",
-  "_npmOperationalInternal": {
-    "host": "packages-6-west.internal.npmjs.com",
-    "tmp": "tmp/bytes-2.3.0.tgz_1455595208428_0.5990735022351146"
-  },
-  "_npmUser": {
-    "name": "dougwilson",
-    "email": "doug@somethingdoug.com"
-  },
-  "_npmVersion": "2.14.7",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "bytes@2.3.0",
-    "scope": null,
-    "escapedName": "bytes",
-    "name": "bytes",
-    "rawSpec": "2.3.0",
-    "spec": "2.3.0",
-    "type": "version"
-  },
-  "_requiredBy": [
-    "/compression"
-  ],
-  "_resolved": "https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz",
-  "_shasum": "d5b680a165b6201739acb611542aabc2d8ceb070",
-  "_shrinkwrap": null,
-  "_spec": "bytes@2.3.0",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/compression",
-  "author": {
-    "name": "TJ Holowaychuk",
-    "email": "tj@vision-media.ca",
-    "url": "http://tjholowaychuk.com"
-  },
-  "bugs": {
-    "url": "https://github.com/visionmedia/bytes.js/issues"
-  },
-  "component": {
-    "scripts": {
-      "bytes/index.js": "index.js"
-    }
-  },
-  "contributors": [
-    {
-      "name": "Jed Watson",
-      "email": "jed.watson@me.com"
-    },
-    {
-      "name": "Théo FIDRY",
-      "email": "theo.fidry@gmail.com"
-    }
-  ],
-  "dependencies": {},
-  "description": "Utility to parse a string bytes to bytes and vice-versa",
-  "devDependencies": {
-    "mocha": "1.21.5"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "d5b680a165b6201739acb611542aabc2d8ceb070",
-    "tarball": "https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz"
-  },
-  "files": [
-    "History.md",
-    "LICENSE",
-    "Readme.md",
-    "index.js"
-  ],
-  "gitHead": "c8be41b24b04e04992d5918356d5a4dd35fbf805",
-  "homepage": "https://github.com/visionmedia/bytes.js#readme",
-  "keywords": [
-    "byte",
-    "bytes",
-    "utility",
-    "parse",
-    "parser",
-    "convert",
-    "converter"
-  ],
-  "license": "MIT",
-  "maintainers": [
-    {
-      "name": "dougwilson",
-      "email": "doug@somethingdoug.com"
-    },
-    {
-      "name": "tjholowaychuk",
-      "email": "tj@vision-media.ca"
-    }
-  ],
-  "name": "bytes",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/visionmedia/bytes.js.git"
-  },
-  "scripts": {
-    "test": "mocha --check-leaks --reporter spec"
-  },
-  "version": "2.3.0"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/camel-case/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/camel-case/LICENSE b/node_modules/camel-case/LICENSE
deleted file mode 100644
index 983fbe8..0000000
--- a/node_modules/camel-case/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Blake Embrey (hello@blakeembrey.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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/camel-case/camel-case.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/camel-case/camel-case.d.ts b/node_modules/camel-case/camel-case.d.ts
deleted file mode 100644
index 782ef3b..0000000
--- a/node_modules/camel-case/camel-case.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-declare function camelCase (value: string, locale?: string, mergeNumbers?: boolean): string;
-
-export = camelCase;

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/camel-case/camel-case.js
----------------------------------------------------------------------
diff --git a/node_modules/camel-case/camel-case.js b/node_modules/camel-case/camel-case.js
deleted file mode 100644
index 1be652e..0000000
--- a/node_modules/camel-case/camel-case.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var upperCase = require('upper-case')
-var noCase = require('no-case')
-
-/**
- * Camel case a string.
- *
- * @param  {string} value
- * @param  {string} [locale]
- * @return {string}
- */
-module.exports = function (value, locale, mergeNumbers) {
-  var result = noCase(value, locale)
-
-  // Replace periods between numeric entities with an underscore.
-  if (!mergeNumbers) {
-    result = result.replace(/ (?=\d)/g, '_')
-  }
-
-  // Replace spaces between words with an upper cased character.
-  return result.replace(/ (.)/g, function (m, $1) {
-    return upperCase($1, locale)
-  })
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/camel-case/package.json
----------------------------------------------------------------------
diff --git a/node_modules/camel-case/package.json b/node_modules/camel-case/package.json
deleted file mode 100644
index 36d480d..0000000
--- a/node_modules/camel-case/package.json
+++ /dev/null
@@ -1,117 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "camel-case@^3.0.0",
-        "scope": null,
-        "escapedName": "camel-case",
-        "name": "camel-case",
-        "rawSpec": "^3.0.0",
-        "spec": ">=3.0.0 <4.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/hexo-util"
-    ]
-  ],
-  "_from": "camel-case@>=3.0.0 <4.0.0",
-  "_id": "camel-case@3.0.0",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/camel-case",
-  "_nodeVersion": "6.2.1",
-  "_npmOperationalInternal": {
-    "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/camel-case-3.0.0.tgz_1465692427226_0.6504076849669218"
-  },
-  "_npmUser": {
-    "name": "blakeembrey",
-    "email": "hello@blakeembrey.com"
-  },
-  "_npmVersion": "3.9.3",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "camel-case@^3.0.0",
-    "scope": null,
-    "escapedName": "camel-case",
-    "name": "camel-case",
-    "rawSpec": "^3.0.0",
-    "spec": ">=3.0.0 <4.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/hexo-util"
-  ],
-  "_resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
-  "_shasum": "ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73",
-  "_shrinkwrap": null,
-  "_spec": "camel-case@^3.0.0",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/hexo-util",
-  "author": {
-    "name": "Blake Embrey",
-    "email": "hello@blakeembrey.com",
-    "url": "http://blakeembrey.me"
-  },
-  "bugs": {
-    "url": "https://github.com/blakeembrey/camel-case/issues"
-  },
-  "dependencies": {
-    "no-case": "^2.2.0",
-    "upper-case": "^1.1.1"
-  },
-  "description": "Camel case a string",
-  "devDependencies": {
-    "istanbul": "^0.4.3",
-    "mocha": "^2.2.1",
-    "standard": "^7.1.2"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73",
-    "tarball": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz"
-  },
-  "files": [
-    "camel-case.js",
-    "camel-case.d.ts",
-    "LICENSE"
-  ],
-  "gitHead": "719ebc39a5bf828f794db64bb1a78c8dd8fef133",
-  "homepage": "https://github.com/blakeembrey/camel-case",
-  "keywords": [
-    "camel",
-    "case",
-    "camelcase",
-    "camel-case",
-    "dash",
-    "hyphen",
-    "dot",
-    "underscore",
-    "lodash",
-    "separator",
-    "string",
-    "text",
-    "convert"
-  ],
-  "license": "MIT",
-  "main": "camel-case.js",
-  "maintainers": [
-    {
-      "name": "blakeembrey",
-      "email": "hello@blakeembrey.com"
-    }
-  ],
-  "name": "camel-case",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/blakeembrey/camel-case.git"
-  },
-  "scripts": {
-    "lint": "standard",
-    "test": "npm run lint && npm run test-cov",
-    "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- -R spec --bail",
-    "test-spec": "mocha -- -R spec --bail"
-  },
-  "typings": "camel-case.d.ts",
-  "version": "3.0.0"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/camelcase/index.js
----------------------------------------------------------------------
diff --git a/node_modules/camelcase/index.js b/node_modules/camelcase/index.js
deleted file mode 100644
index 929facb..0000000
--- a/node_modules/camelcase/index.js
+++ /dev/null
@@ -1,56 +0,0 @@
-'use strict';
-
-function preserveCamelCase(str) {
-	var isLastCharLower = false;
-
-	for (var i = 0; i < str.length; i++) {
-		var c = str.charAt(i);
-
-		if (isLastCharLower && (/[a-zA-Z]/).test(c) && c.toUpperCase() === c) {
-			str = str.substr(0, i) + '-' + str.substr(i);
-			isLastCharLower = false;
-			i++;
-		} else {
-			isLastCharLower = (c.toLowerCase() === c);
-		}
-	}
-
-	return str;
-}
-
-module.exports = function () {
-	var str = [].map.call(arguments, function (str) {
-		return str.trim();
-	}).filter(function (str) {
-		return str.length;
-	}).join('-');
-
-	if (!str.length) {
-		return '';
-	}
-
-	if (str.length === 1) {
-		return str;
-	}
-
-	if (!(/[_.\- ]+/).test(str)) {
-		if (str === str.toUpperCase()) {
-			return str.toLowerCase();
-		}
-
-		if (str[0] !== str[0].toLowerCase()) {
-			return str[0].toLowerCase() + str.slice(1);
-		}
-
-		return str;
-	}
-
-	str = preserveCamelCase(str);
-
-	return str
-	.replace(/^[_.\- ]+/, '')
-	.toLowerCase()
-	.replace(/[_.\- ]+(\w|$)/g, function (m, p1) {
-		return p1.toUpperCase();
-	});
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/camelcase/license
----------------------------------------------------------------------
diff --git a/node_modules/camelcase/license b/node_modules/camelcase/license
deleted file mode 100644
index 654d0bf..0000000
--- a/node_modules/camelcase/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <si...@gmail.com> (sindresorhus.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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/camelcase/package.json
----------------------------------------------------------------------
diff --git a/node_modules/camelcase/package.json b/node_modules/camelcase/package.json
deleted file mode 100644
index c332f9b..0000000
--- a/node_modules/camelcase/package.json
+++ /dev/null
@@ -1,108 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "camelcase@^2.0.1",
-        "scope": null,
-        "escapedName": "camelcase",
-        "name": "camelcase",
-        "rawSpec": "^2.0.1",
-        "spec": ">=2.0.1 <3.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/yargs"
-    ]
-  ],
-  "_from": "camelcase@>=2.0.1 <3.0.0",
-  "_id": "camelcase@2.1.1",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/camelcase",
-  "_nodeVersion": "4.3.0",
-  "_npmOperationalInternal": {
-    "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/camelcase-2.1.1.tgz_1457803836074_0.4515206723008305"
-  },
-  "_npmUser": {
-    "name": "sindresorhus",
-    "email": "sindresorhus@gmail.com"
-  },
-  "_npmVersion": "2.14.12",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "camelcase@^2.0.1",
-    "scope": null,
-    "escapedName": "camelcase",
-    "name": "camelcase",
-    "rawSpec": "^2.0.1",
-    "spec": ">=2.0.1 <3.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/yargs"
-  ],
-  "_resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
-  "_shasum": "7c1d16d679a1bbe59ca02cacecfb011e201f5a1f",
-  "_shrinkwrap": null,
-  "_spec": "camelcase@^2.0.1",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/yargs",
-  "author": {
-    "name": "Sindre Sorhus",
-    "email": "sindresorhus@gmail.com",
-    "url": "http://sindresorhus.com"
-  },
-  "bugs": {
-    "url": "https://github.com/sindresorhus/camelcase/issues"
-  },
-  "dependencies": {},
-  "description": "Convert a dash/dot/underscore/space separated string to camelCase: foo-bar → fooBar",
-  "devDependencies": {
-    "ava": "*",
-    "xo": "*"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "7c1d16d679a1bbe59ca02cacecfb011e201f5a1f",
-    "tarball": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz"
-  },
-  "engines": {
-    "node": ">=0.10.0"
-  },
-  "files": [
-    "index.js"
-  ],
-  "gitHead": "35c9c8abce5b9cc9defe534ab25823dc6383180f",
-  "homepage": "https://github.com/sindresorhus/camelcase",
-  "keywords": [
-    "camelcase",
-    "camel-case",
-    "camel",
-    "case",
-    "dash",
-    "hyphen",
-    "dot",
-    "underscore",
-    "separator",
-    "string",
-    "text",
-    "convert"
-  ],
-  "license": "MIT",
-  "maintainers": [
-    {
-      "name": "sindresorhus",
-      "email": "sindresorhus@gmail.com"
-    }
-  ],
-  "name": "camelcase",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/sindresorhus/camelcase.git"
-  },
-  "scripts": {
-    "test": "xo && ava"
-  },
-  "version": "2.1.1"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/camelcase/readme.md
----------------------------------------------------------------------
diff --git a/node_modules/camelcase/readme.md b/node_modules/camelcase/readme.md
deleted file mode 100644
index 080b2a1..0000000
--- a/node_modules/camelcase/readme.md
+++ /dev/null
@@ -1,57 +0,0 @@
-# camelcase [![Build Status](https://travis-ci.org/sindresorhus/camelcase.svg?branch=master)](https://travis-ci.org/sindresorhus/camelcase)
-
-> Convert a dash/dot/underscore/space separated string to camelCase: `foo-bar` → `fooBar`
-
-
-## Install
-
-```
-$ npm install --save camelcase
-```
-
-
-## Usage
-
-```js
-const camelCase = require('camelcase');
-
-camelCase('foo-bar');
-//=> 'fooBar'
-
-camelCase('foo_bar');
-//=> 'fooBar'
-
-camelCase('Foo-Bar');
-//=> 'fooBar'
-
-camelCase('--foo.bar');
-//=> 'fooBar'
-
-camelCase('__foo__bar__');
-//=> 'fooBar'
-
-camelCase('foo bar');
-//=> 'fooBar'
-
-console.log(process.argv[3]);
-//=> '--foo-bar'
-camelCase(process.argv[3]);
-//=> 'fooBar'
-
-camelCase('foo', 'bar');
-//=> 'fooBar'
-
-camelCase('__foo__', '--bar');
-//=> 'fooBar'
-```
-
-
-## Related
-
-- [decamelize](https://github.com/sindresorhus/decamelize) - The inverse of this module
-- [uppercamelcase](https://github.com/SamVerschueren/uppercamelcase) - Like this module, but to PascalCase instead of camelCase
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)


[18/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/braces/README.md
----------------------------------------------------------------------
diff --git a/node_modules/braces/README.md b/node_modules/braces/README.md
deleted file mode 100644
index 52fa756..0000000
--- a/node_modules/braces/README.md
+++ /dev/null
@@ -1,248 +0,0 @@
-# braces [![NPM version](https://img.shields.io/npm/v/braces.svg?style=flat)](https://www.npmjs.com/package/braces) [![NPM downloads](https://img.shields.io/npm/dm/braces.svg?style=flat)](https://npmjs.org/package/braces) [![Build Status](https://img.shields.io/travis/jonschlinkert/braces.svg?style=flat)](https://travis-ci.org/jonschlinkert/braces)
-
-Fastest brace expansion for node.js, with the most complete support for the Bash 4.3 braces specification.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install braces --save
-```
-
-## Features
-
-* Complete support for the braces part of the [Bash 4.3 Brace Expansion](www.gnu.org/software/bash/). Braces passes [all of the relevant unit tests](#bash-4-3-support) from the spec.
-* Expands comma-separated values: `a/{b,c}/d` => `['a/b/d', 'a/c/d']`
-* Expands alphabetical or numerical ranges: `{1..3}` => `['1', '2', '3']`
-* [Very fast](#benchmarks)
-* [Special characters](./patterns.md) can be used to generate interesting patterns.
-
-## Example usage
-
-```js
-var braces = require('braces');
-
-braces('a/{x,y}/c{d}e')
-//=> ['a/x/cde', 'a/y/cde']
-
-braces('a/b/c/{x,y}')
-//=> ['a/b/c/x', 'a/b/c/y']
-
-braces('a/{x,{1..5},y}/c{d}e')
-//=> ['a/x/cde', 'a/1/cde', 'a/y/cde', 'a/2/cde', 'a/3/cde', 'a/4/cde', 'a/5/cde']
-```
-
-### Use case: fixtures
-
-> Use braces to generate test fixtures!
-
-**Example**
-
-```js
-var braces = require('./');
-var path = require('path');
-var fs = require('fs');
-
-braces('blah/{a..z}.js').forEach(function(fp) {
-  if (!fs.existsSync(path.dirname(fp))) {
-    fs.mkdirSync(path.dirname(fp));
-  }
-  fs.writeFileSync(fp, '');
-});
-```
-
-See the [tests](./test/test.js) for more examples and use cases (also see the [bash spec tests](./test/bash-mm-adjusted.js));
-
-### Range expansion
-
-Uses [expand-range](https://github.com/jonschlinkert/expand-range) for range expansion.
-
-```js
-braces('a{1..3}b')
-//=> ['a1b', 'a2b', 'a3b']
-
-braces('a{5..8}b')
-//=> ['a5b', 'a6b', 'a7b', 'a8b']
-
-braces('a{00..05}b')
-//=> ['a00b', 'a01b', 'a02b', 'a03b', 'a04b', 'a05b']
-
-braces('a{01..03}b')
-//=> ['a01b', 'a02b', 'a03b']
-
-braces('a{000..005}b')
-//=> ['a000b', 'a001b', 'a002b', 'a003b', 'a004b', 'a005b']
-
-braces('a{a..e}b')
-//=> ['aab', 'abb', 'acb', 'adb', 'aeb']
-
-braces('a{A..E}b')
-//=> ['aAb', 'aBb', 'aCb', 'aDb', 'aEb']
-```
-
-Pass a function as the last argument to customize range expansions:
-
-```js
-var range = braces('x{a..e}y', function (str, i) {
-  return String.fromCharCode(str) + i;
-});
-
-console.log(range);
-//=> ['xa0y', 'xb1y', 'xc2y', 'xd3y', 'xe4y']
-```
-
-See [expand-range](https://github.com/jonschlinkert/expand-range) for benchmarks, tests and the full list of range expansion features.
-
-## Options
-
-### options.makeRe
-
-Type: `Boolean`
-
-Deafault: `false`
-
-Return a regex-optimal string. If you're using braces to generate regex, this will result in dramatically faster performance.
-
-**Examples**
-
-With the default settings (`{makeRe: false}`):
-
-```js
-braces('{1..5}');
-//=> ['1', '2', '3', '4', '5']
-```
-
-With `{makeRe: true}`:
-
-```js
-braces('{1..5}', {makeRe: true});
-//=> ['[1-5]']
-
-braces('{3..9..3}', {makeRe: true});
-//=> ['(3|6|9)']
-```
-
-### options.bash
-
-Type: `Boolean`
-
-Default: `false`
-
-Enables complete support for the Bash specification. The downside is a 20-25% speed decrease.
-
-**Example**
-
-Using the default setting (`{bash: false}`):
-
-```js
-braces('a{b}c');
-//=> ['abc']
-```
-
-In bash (and minimatch), braces with one item are not expanded. To get the same result with braces, set `{bash: true}`:
-
-```js
-braces('a{b}c', {bash: true});
-//=> ['a{b}c']
-```
-
-### options.nodupes
-
-Type: `Boolean`
-
-Deafault: `true`
-
-Duplicates are removed by default. To keep duplicates, pass `{nodupes: false}` on the options
-
-## Bash 4.3 Support
-
-> Better support for Bash 4.3 than minimatch
-
-This project has comprehensive unit tests, including tests coverted from [Bash 4.3](www.gnu.org/software/bash/). Currently only 8 of 102 unit tests fail, and
-
-## Run benchmarks
-
-Install dev dependencies:
-
-```bash
-npm i -d && npm benchmark
-```
-
-### Latest results
-
-```bash
-#1: escape.js
-  brace-expansion.js x 114,934 ops/sec ±1.24% (93 runs sampled)
-  braces.js x 342,254 ops/sec ±0.84% (90 runs sampled)
-
-#2: exponent.js
-  brace-expansion.js x 12,359 ops/sec ±0.86% (96 runs sampled)
-  braces.js x 20,389 ops/sec ±0.71% (97 runs sampled)
-
-#3: multiple.js
-  brace-expansion.js x 114,469 ops/sec ±1.44% (94 runs sampled)
-  braces.js x 401,621 ops/sec ±0.87% (91 runs sampled)
-
-#4: nested.js
-  brace-expansion.js x 102,769 ops/sec ±1.55% (92 runs sampled)
-  braces.js x 314,088 ops/sec ±0.71% (98 runs sampled)
-
-#5: normal.js
-  brace-expansion.js x 157,577 ops/sec ±1.65% (91 runs sampled)
-  braces.js x 1,115,950 ops/sec ±0.74% (94 runs sampled)
-
-#6: range.js
-  brace-expansion.js x 138,822 ops/sec ±1.71% (91 runs sampled)
-  braces.js x 1,108,353 ops/sec ±0.85% (94 runs sampled)
-```
-
-## Related projects
-
-You might also be interested in these projects:
-
-* [expand-range](https://www.npmjs.com/package/expand-range): Fast, bash-like range expansion. Expand a range of numbers or letters, uppercase or lowercase. See… [more](https://www.npmjs.com/package/expand-range) | [homepage](https://github.com/jonschlinkert/expand-range)
-* [fill-range](https://www.npmjs.com/package/fill-range): Fill in a range of numbers or letters, optionally passing an increment or multiplier to… [more](https://www.npmjs.com/package/fill-range) | [homepage](https://github.com/jonschlinkert/fill-range)
-* [micromatch](https://www.npmjs.com/package/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | [homepage](https://github.com/jonschlinkert/micromatch)
-
-## Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/braces/issues/new).
-
-## Building docs
-
-Generate readme and API documentation with [verb](https://github.com/verbose/verb):
-
-```sh
-$ npm install verb && npm run docs
-```
-
-Or, if [verb](https://github.com/verbose/verb) is installed globally:
-
-```sh
-$ verb
-```
-
-## Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm install -d && npm test
-```
-
-## Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-## License
-
-Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT license](https://github.com/jonschlinkert/braces/blob/master/LICENSE).
-
-***
-
-_This file was generated by [verb](https://github.com/verbose/verb), v0.9.0, on May 21, 2016._
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/braces/index.js
----------------------------------------------------------------------
diff --git a/node_modules/braces/index.js b/node_modules/braces/index.js
deleted file mode 100644
index 3b4c58d..0000000
--- a/node_modules/braces/index.js
+++ /dev/null
@@ -1,399 +0,0 @@
-/*!
- * braces <https://github.com/jonschlinkert/braces>
- *
- * Copyright (c) 2014-2015, Jon Schlinkert.
- * Licensed under the MIT license.
- */
-
-'use strict';
-
-/**
- * Module dependencies
- */
-
-var expand = require('expand-range');
-var repeat = require('repeat-element');
-var tokens = require('preserve');
-
-/**
- * Expose `braces`
- */
-
-module.exports = function(str, options) {
-  if (typeof str !== 'string') {
-    throw new Error('braces expects a string');
-  }
-  return braces(str, options);
-};
-
-/**
- * Expand `{foo,bar}` or `{1..5}` braces in the
- * given `string`.
- *
- * @param  {String} `str`
- * @param  {Array} `arr`
- * @param  {Object} `options`
- * @return {Array}
- */
-
-function braces(str, arr, options) {
-  if (str === '') {
-    return [];
-  }
-
-  if (!Array.isArray(arr)) {
-    options = arr;
-    arr = [];
-  }
-
-  var opts = options || {};
-  arr = arr || [];
-
-  if (typeof opts.nodupes === 'undefined') {
-    opts.nodupes = true;
-  }
-
-  var fn = opts.fn;
-  var es6;
-
-  if (typeof opts === 'function') {
-    fn = opts;
-    opts = {};
-  }
-
-  if (!(patternRe instanceof RegExp)) {
-    patternRe = patternRegex();
-  }
-
-  var matches = str.match(patternRe) || [];
-  var m = matches[0];
-
-  switch(m) {
-    case '\\,':
-      return escapeCommas(str, arr, opts);
-    case '\\.':
-      return escapeDots(str, arr, opts);
-    case '\/.':
-      return escapePaths(str, arr, opts);
-    case ' ':
-      return splitWhitespace(str);
-    case '{,}':
-      return exponential(str, opts, braces);
-    case '{}':
-      return emptyBraces(str, arr, opts);
-    case '\\{':
-    case '\\}':
-      return escapeBraces(str, arr, opts);
-    case '${':
-      if (!/\{[^{]+\{/.test(str)) {
-        return arr.concat(str);
-      } else {
-        es6 = true;
-        str = tokens.before(str, es6Regex());
-      }
-  }
-
-  if (!(braceRe instanceof RegExp)) {
-    braceRe = braceRegex();
-  }
-
-  var match = braceRe.exec(str);
-  if (match == null) {
-    return [str];
-  }
-
-  var outter = match[1];
-  var inner = match[2];
-  if (inner === '') { return [str]; }
-
-  var segs, segsLength;
-
-  if (inner.indexOf('..') !== -1) {
-    segs = expand(inner, opts, fn) || inner.split(',');
-    segsLength = segs.length;
-
-  } else if (inner[0] === '"' || inner[0] === '\'') {
-    return arr.concat(str.split(/['"]/).join(''));
-
-  } else {
-    segs = inner.split(',');
-    if (opts.makeRe) {
-      return braces(str.replace(outter, wrap(segs, '|')), opts);
-    }
-
-    segsLength = segs.length;
-    if (segsLength === 1 && opts.bash) {
-      segs[0] = wrap(segs[0], '\\');
-    }
-  }
-
-  var len = segs.length;
-  var i = 0, val;
-
-  while (len--) {
-    var path = segs[i++];
-
-    if (/(\.[^.\/])/.test(path)) {
-      if (segsLength > 1) {
-        return segs;
-      } else {
-        return [str];
-      }
-    }
-
-    val = splice(str, outter, path);
-
-    if (/\{[^{}]+?\}/.test(val)) {
-      arr = braces(val, arr, opts);
-    } else if (val !== '') {
-      if (opts.nodupes && arr.indexOf(val) !== -1) { continue; }
-      arr.push(es6 ? tokens.after(val) : val);
-    }
-  }
-
-  if (opts.strict) { return filter(arr, filterEmpty); }
-  return arr;
-}
-
-/**
- * Expand exponential ranges
- *
- *   `a{,}{,}` => ['a', 'a', 'a', 'a']
- */
-
-function exponential(str, options, fn) {
-  if (typeof options === 'function') {
-    fn = options;
-    options = null;
-  }
-
-  var opts = options || {};
-  var esc = '__ESC_EXP__';
-  var exp = 0;
-  var res;
-
-  var parts = str.split('{,}');
-  if (opts.nodupes) {
-    return fn(parts.join(''), opts);
-  }
-
-  exp = parts.length - 1;
-  res = fn(parts.join(esc), opts);
-  var len = res.length;
-  var arr = [];
-  var i = 0;
-
-  while (len--) {
-    var ele = res[i++];
-    var idx = ele.indexOf(esc);
-
-    if (idx === -1) {
-      arr.push(ele);
-
-    } else {
-      ele = ele.split('__ESC_EXP__').join('');
-      if (!!ele && opts.nodupes !== false) {
-        arr.push(ele);
-
-      } else {
-        var num = Math.pow(2, exp);
-        arr.push.apply(arr, repeat(ele, num));
-      }
-    }
-  }
-  return arr;
-}
-
-/**
- * Wrap a value with parens, brackets or braces,
- * based on the given character/separator.
- *
- * @param  {String|Array} `val`
- * @param  {String} `ch`
- * @return {String}
- */
-
-function wrap(val, ch) {
-  if (ch === '|') {
-    return '(' + val.join(ch) + ')';
-  }
-  if (ch === ',') {
-    return '{' + val.join(ch) + '}';
-  }
-  if (ch === '-') {
-    return '[' + val.join(ch) + ']';
-  }
-  if (ch === '\\') {
-    return '\\{' + val + '\\}';
-  }
-}
-
-/**
- * Handle empty braces: `{}`
- */
-
-function emptyBraces(str, arr, opts) {
-  return braces(str.split('{}').join('\\{\\}'), arr, opts);
-}
-
-/**
- * Filter out empty-ish values
- */
-
-function filterEmpty(ele) {
-  return !!ele && ele !== '\\';
-}
-
-/**
- * Handle patterns with whitespace
- */
-
-function splitWhitespace(str) {
-  var segs = str.split(' ');
-  var len = segs.length;
-  var res = [];
-  var i = 0;
-
-  while (len--) {
-    res.push.apply(res, braces(segs[i++]));
-  }
-  return res;
-}
-
-/**
- * Handle escaped braces: `\\{foo,bar}`
- */
-
-function escapeBraces(str, arr, opts) {
-  if (!/\{[^{]+\{/.test(str)) {
-    return arr.concat(str.split('\\').join(''));
-  } else {
-    str = str.split('\\{').join('__LT_BRACE__');
-    str = str.split('\\}').join('__RT_BRACE__');
-    return map(braces(str, arr, opts), function(ele) {
-      ele = ele.split('__LT_BRACE__').join('{');
-      return ele.split('__RT_BRACE__').join('}');
-    });
-  }
-}
-
-/**
- * Handle escaped dots: `{1\\.2}`
- */
-
-function escapeDots(str, arr, opts) {
-  if (!/[^\\]\..+\\\./.test(str)) {
-    return arr.concat(str.split('\\').join(''));
-  } else {
-    str = str.split('\\.').join('__ESC_DOT__');
-    return map(braces(str, arr, opts), function(ele) {
-      return ele.split('__ESC_DOT__').join('.');
-    });
-  }
-}
-
-/**
- * Handle escaped dots: `{1\\.2}`
- */
-
-function escapePaths(str, arr, opts) {
-  str = str.split('\/.').join('__ESC_PATH__');
-  return map(braces(str, arr, opts), function(ele) {
-    return ele.split('__ESC_PATH__').join('\/.');
-  });
-}
-
-/**
- * Handle escaped commas: `{a\\,b}`
- */
-
-function escapeCommas(str, arr, opts) {
-  if (!/\w,/.test(str)) {
-    return arr.concat(str.split('\\').join(''));
-  } else {
-    str = str.split('\\,').join('__ESC_COMMA__');
-    return map(braces(str, arr, opts), function(ele) {
-      return ele.split('__ESC_COMMA__').join(',');
-    });
-  }
-}
-
-/**
- * Regex for common patterns
- */
-
-function patternRegex() {
-  return /\${|( (?=[{,}])|(?=[{,}]) )|{}|{,}|\\,(?=.*[{}])|\/\.(?=.*[{}])|\\\.(?={)|\\{|\\}/;
-}
-
-/**
- * Braces regex.
- */
-
-function braceRegex() {
-  return /.*(\\?\{([^}]+)\})/;
-}
-
-/**
- * es6 delimiter regex.
- */
-
-function es6Regex() {
-  return /\$\{([^}]+)\}/;
-}
-
-var braceRe;
-var patternRe;
-
-/**
- * Faster alternative to `String.replace()` when the
- * index of the token to be replaces can't be supplied
- */
-
-function splice(str, token, replacement) {
-  var i = str.indexOf(token);
-  return str.substr(0, i) + replacement
-    + str.substr(i + token.length);
-}
-
-/**
- * Fast array map
- */
-
-function map(arr, fn) {
-  if (arr == null) {
-    return [];
-  }
-
-  var len = arr.length;
-  var res = new Array(len);
-  var i = -1;
-
-  while (++i < len) {
-    res[i] = fn(arr[i], i, arr);
-  }
-
-  return res;
-}
-
-/**
- * Fast array filter
- */
-
-function filter(arr, cb) {
-  if (arr == null) return [];
-  if (typeof cb !== 'function') {
-    throw new TypeError('braces: filter expects a callback function.');
-  }
-
-  var len = arr.length;
-  var res = arr.slice();
-  var i = 0;
-
-  while (len--) {
-    if (!cb(arr[len], i++)) {
-      res.splice(len, 1);
-    }
-  }
-  return res;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/braces/package.json
----------------------------------------------------------------------
diff --git a/node_modules/braces/package.json b/node_modules/braces/package.json
deleted file mode 100644
index 0e89e25..0000000
--- a/node_modules/braces/package.json
+++ /dev/null
@@ -1,158 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "braces@^1.8.2",
-        "scope": null,
-        "escapedName": "braces",
-        "name": "braces",
-        "rawSpec": "^1.8.2",
-        "spec": ">=1.8.2 <2.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/micromatch"
-    ]
-  ],
-  "_from": "braces@>=1.8.2 <2.0.0",
-  "_id": "braces@1.8.5",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/braces",
-  "_nodeVersion": "5.5.0",
-  "_npmOperationalInternal": {
-    "host": "packages-16-east.internal.npmjs.com",
-    "tmp": "tmp/braces-1.8.5.tgz_1463843581552_0.5618140168953687"
-  },
-  "_npmUser": {
-    "name": "jonschlinkert",
-    "email": "github@sellside.com"
-  },
-  "_npmVersion": "3.6.0",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "braces@^1.8.2",
-    "scope": null,
-    "escapedName": "braces",
-    "name": "braces",
-    "rawSpec": "^1.8.2",
-    "spec": ">=1.8.2 <2.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/micromatch"
-  ],
-  "_resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
-  "_shasum": "ba77962e12dff969d6b76711e914b737857bf6a7",
-  "_shrinkwrap": null,
-  "_spec": "braces@^1.8.2",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/micromatch",
-  "author": {
-    "name": "Jon Schlinkert",
-    "url": "https://github.com/jonschlinkert"
-  },
-  "bugs": {
-    "url": "https://github.com/jonschlinkert/braces/issues"
-  },
-  "dependencies": {
-    "expand-range": "^1.8.1",
-    "preserve": "^0.2.0",
-    "repeat-element": "^1.1.2"
-  },
-  "description": "Fastest brace expansion for node.js, with the most complete support for the Bash 4.3 braces specification.",
-  "devDependencies": {
-    "benchmarked": "^0.1.5",
-    "brace-expansion": "^1.1.3",
-    "chalk": "^1.1.3",
-    "gulp-format-md": "^0.1.8",
-    "minimatch": "^3.0.0",
-    "minimist": "^1.2.0",
-    "mocha": "^2.4.5",
-    "should": "^8.3.1"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "ba77962e12dff969d6b76711e914b737857bf6a7",
-    "tarball": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz"
-  },
-  "engines": {
-    "node": ">=0.10.0"
-  },
-  "files": [
-    "index.js"
-  ],
-  "gitHead": "24874614ebeda1c5405180f1f6c9f374bcf384ce",
-  "homepage": "https://github.com/jonschlinkert/braces",
-  "keywords": [
-    "alpha",
-    "alphabetical",
-    "bash",
-    "brace",
-    "expand",
-    "expansion",
-    "filepath",
-    "fill",
-    "fs",
-    "glob",
-    "globbing",
-    "letter",
-    "match",
-    "matches",
-    "matching",
-    "number",
-    "numerical",
-    "path",
-    "range",
-    "ranges",
-    "sh"
-  ],
-  "license": "MIT",
-  "main": "index.js",
-  "maintainers": [
-    {
-      "name": "jonschlinkert",
-      "email": "github@sellside.com"
-    },
-    {
-      "name": "es128",
-      "email": "elan.shanker+npm@gmail.com"
-    },
-    {
-      "name": "doowb",
-      "email": "brian.woodward@gmail.com"
-    }
-  ],
-  "name": "braces",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/jonschlinkert/braces.git"
-  },
-  "scripts": {
-    "test": "mocha"
-  },
-  "verb": {
-    "plugins": [
-      "gulp-format-md"
-    ],
-    "reflinks": [
-      "verb"
-    ],
-    "toc": false,
-    "layout": "default",
-    "lint": {
-      "reflinks": true
-    },
-    "tasks": [
-      "readme"
-    ],
-    "related": {
-      "list": [
-        "micromatch",
-        "expand-range",
-        "fill-range"
-      ]
-    }
-  },
-  "version": "1.8.5"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/browser-fingerprint/.npmignore
----------------------------------------------------------------------
diff --git a/node_modules/browser-fingerprint/.npmignore b/node_modules/browser-fingerprint/.npmignore
deleted file mode 100644
index 93f1361..0000000
--- a/node_modules/browser-fingerprint/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-node_modules
-npm-debug.log

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/browser-fingerprint/README.md
----------------------------------------------------------------------
diff --git a/node_modules/browser-fingerprint/README.md b/node_modules/browser-fingerprint/README.md
deleted file mode 100644
index fcf925a..0000000
--- a/node_modules/browser-fingerprint/README.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# browser-fingerprint
-
-> Generate a fingerprint for a browser
-
-Original concept taken from [cuid](https://github.com/ericelliott/cuid).
-
-Fingerprint is based on a hash of mimeTypes count + userAgent string length + global properties count.
-
-## Install
-
-```
-npm install browser-fingerprint
-```
-
-## Use
-
-```
-var fingerprint = require('browser-fingerprint')()
-```
-
----
-
-MIT © Kevin Lanni

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/browser-fingerprint/dist/index.js
----------------------------------------------------------------------
diff --git a/node_modules/browser-fingerprint/dist/index.js b/node_modules/browser-fingerprint/dist/index.js
deleted file mode 100644
index 4657dc1..0000000
--- a/node_modules/browser-fingerprint/dist/index.js
+++ /dev/null
@@ -1,30 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, '__esModule', {
-  value: true
-});
-var pad = function pad(str, size) {
-  return ('000000000' + str).slice(-size);
-};
-
-var count = (function () {
-  var count = 0;
-  var window = window || global;
-
-  for (var i in window) {
-    count++;
-  }
-
-  return count;
-})();
-
-var globalCount = function globalCount() {
-  return count;
-};
-
-exports['default'] = function () {
-  return pad((navigator.mimeTypes.length + navigator.userAgent.length).toString(36) + globalCount().toString(36), 4);
-};
-
-module.exports = exports['default'];
-

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/browser-fingerprint/index.js
----------------------------------------------------------------------
diff --git a/node_modules/browser-fingerprint/index.js b/node_modules/browser-fingerprint/index.js
deleted file mode 100644
index 5ed340e..0000000
--- a/node_modules/browser-fingerprint/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict'
-
-let pad = (str, size) => ('000000000' + str).slice(-size)
-
-let count = (() => {
-  let count = 0
-  let window = window || global
-
-  for (let i in window) {
-    count++
-  }
-
-  return count;
-}())
-
-let globalCount = () => count
-
-export default () => pad(
-  (navigator.mimeTypes.length + navigator.userAgent.length).toString(36) +
-    globalCount().toString(36),
-  4
-)

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/browser-fingerprint/package.json
----------------------------------------------------------------------
diff --git a/node_modules/browser-fingerprint/package.json b/node_modules/browser-fingerprint/package.json
deleted file mode 100644
index adb5c5e..0000000
--- a/node_modules/browser-fingerprint/package.json
+++ /dev/null
@@ -1,86 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "browser-fingerprint@0.0.1",
-        "scope": null,
-        "escapedName": "browser-fingerprint",
-        "name": "browser-fingerprint",
-        "rawSpec": "0.0.1",
-        "spec": "0.0.1",
-        "type": "version"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/cuid"
-    ]
-  ],
-  "_from": "browser-fingerprint@0.0.1",
-  "_id": "browser-fingerprint@0.0.1",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/browser-fingerprint",
-  "_nodeVersion": "0.12.4",
-  "_npmUser": {
-    "name": "therealklanni",
-    "email": "therealklanni@gmail.com"
-  },
-  "_npmVersion": "3.1.0",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "browser-fingerprint@0.0.1",
-    "scope": null,
-    "escapedName": "browser-fingerprint",
-    "name": "browser-fingerprint",
-    "rawSpec": "0.0.1",
-    "spec": "0.0.1",
-    "type": "version"
-  },
-  "_requiredBy": [
-    "/cuid"
-  ],
-  "_resolved": "https://registry.npmjs.org/browser-fingerprint/-/browser-fingerprint-0.0.1.tgz",
-  "_shasum": "8df3cdca25bf7d5b3542d61545d730053fce604a",
-  "_shrinkwrap": null,
-  "_spec": "browser-fingerprint@0.0.1",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/cuid",
-  "author": {
-    "name": "Kevin Lanni",
-    "email": "therealklanni@gmail.com"
-  },
-  "dependencies": {},
-  "description": "Generate a fingerprint of a browser",
-  "devDependencies": {
-    "babel": "^5.6.14",
-    "rimraf": "^2.4.1",
-    "standard": "^4.5.2",
-    "tape": "^4.0.0"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "8df3cdca25bf7d5b3542d61545d730053fce604a",
-    "tarball": "https://registry.npmjs.org/browser-fingerprint/-/browser-fingerprint-0.0.1.tgz"
-  },
-  "gitHead": "044c22173c908c238ba4f02de05ce71931bf02f5",
-  "keywords": [
-    "browser",
-    "fingerprint"
-  ],
-  "license": "MIT",
-  "main": "dist/index.js",
-  "maintainers": [
-    {
-      "name": "therealklanni",
-      "email": "therealklanni@gmail.com"
-    }
-  ],
-  "name": "browser-fingerprint",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "scripts": {
-    "build": "npm run clean && mkdir dist && babel index.js > dist/index.js",
-    "clean": "rimraf dist",
-    "lint": "standard index.js",
-    "preversion": "npm run build && git add dist",
-    "test": "babel-node test.js"
-  },
-  "version": "0.0.1"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/browser-fingerprint/test.js
----------------------------------------------------------------------
diff --git a/node_modules/browser-fingerprint/test.js b/node_modules/browser-fingerprint/test.js
deleted file mode 100644
index 7115424..0000000
--- a/node_modules/browser-fingerprint/test.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict'
-
-  var collision = false;
-
-import fingerprint from './index.js'
-
-let test = require('tape')
-
-let ver = `Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3`
-let platform = `AppleWebKit/537.36 (KHTML, like Gecko)`
-let ext = `Chrome/43.0.2357.130 Safari/537.36`
-
-global.navigator = {
-  mimeTypes: new Array(8),
-  userAgent: `${ver} ${platform} ${ext}`
-}
-
-test('cuid()', (t) => {
-  t.plan(2)
-  t.equal(typeof fingerprint(), 'string', 'fingerprint() should return a string');
-  t.equal(fingerprint(), fingerprint(), 'fingerprints should match');
-})

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/buffer-shims/index.js
----------------------------------------------------------------------
diff --git a/node_modules/buffer-shims/index.js b/node_modules/buffer-shims/index.js
deleted file mode 100644
index 1cab4c0..0000000
--- a/node_modules/buffer-shims/index.js
+++ /dev/null
@@ -1,108 +0,0 @@
-'use strict';
-
-var buffer = require('buffer');
-var Buffer = buffer.Buffer;
-var SlowBuffer = buffer.SlowBuffer;
-var MAX_LEN = buffer.kMaxLength || 2147483647;
-exports.alloc = function alloc(size, fill, encoding) {
-  if (typeof Buffer.alloc === 'function') {
-    return Buffer.alloc(size, fill, encoding);
-  }
-  if (typeof encoding === 'number') {
-    throw new TypeError('encoding must not be number');
-  }
-  if (typeof size !== 'number') {
-    throw new TypeError('size must be a number');
-  }
-  if (size > MAX_LEN) {
-    throw new RangeError('size is too large');
-  }
-  var enc = encoding;
-  var _fill = fill;
-  if (_fill === undefined) {
-    enc = undefined;
-    _fill = 0;
-  }
-  var buf = new Buffer(size);
-  if (typeof _fill === 'string') {
-    var fillBuf = new Buffer(_fill, enc);
-    var flen = fillBuf.length;
-    var i = -1;
-    while (++i < size) {
-      buf[i] = fillBuf[i % flen];
-    }
-  } else {
-    buf.fill(_fill);
-  }
-  return buf;
-}
-exports.allocUnsafe = function allocUnsafe(size) {
-  if (typeof Buffer.allocUnsafe === 'function') {
-    return Buffer.allocUnsafe(size);
-  }
-  if (typeof size !== 'number') {
-    throw new TypeError('size must be a number');
-  }
-  if (size > MAX_LEN) {
-    throw new RangeError('size is too large');
-  }
-  return new Buffer(size);
-}
-exports.from = function from(value, encodingOrOffset, length) {
-  if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
-    return Buffer.from(value, encodingOrOffset, length);
-  }
-  if (typeof value === 'number') {
-    throw new TypeError('"value" argument must not be a number');
-  }
-  if (typeof value === 'string') {
-    return new Buffer(value, encodingOrOffset);
-  }
-  if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
-    var offset = encodingOrOffset;
-    if (arguments.length === 1) {
-      return new Buffer(value);
-    }
-    if (typeof offset === 'undefined') {
-      offset = 0;
-    }
-    var len = length;
-    if (typeof len === 'undefined') {
-      len = value.byteLength - offset;
-    }
-    if (offset >= value.byteLength) {
-      throw new RangeError('\'offset\' is out of bounds');
-    }
-    if (len > value.byteLength - offset) {
-      throw new RangeError('\'length\' is out of bounds');
-    }
-    return new Buffer(value.slice(offset, offset + len));
-  }
-  if (Buffer.isBuffer(value)) {
-    var out = new Buffer(value.length);
-    value.copy(out, 0, 0, value.length);
-    return out;
-  }
-  if (value) {
-    if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
-      return new Buffer(value);
-    }
-    if (value.type === 'Buffer' && Array.isArray(value.data)) {
-      return new Buffer(value.data);
-    }
-  }
-
-  throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
-}
-exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
-  if (typeof Buffer.allocUnsafeSlow === 'function') {
-    return Buffer.allocUnsafeSlow(size);
-  }
-  if (typeof size !== 'number') {
-    throw new TypeError('size must be a number');
-  }
-  if (size >= MAX_LEN) {
-    throw new RangeError('size is too large');
-  }
-  return new SlowBuffer(size);
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/buffer-shims/license.md
----------------------------------------------------------------------
diff --git a/node_modules/buffer-shims/license.md b/node_modules/buffer-shims/license.md
deleted file mode 100644
index 01cfaef..0000000
--- a/node_modules/buffer-shims/license.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright (c) 2016 Calvin Metcalf
-
-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.**

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/buffer-shims/package.json
----------------------------------------------------------------------
diff --git a/node_modules/buffer-shims/package.json b/node_modules/buffer-shims/package.json
deleted file mode 100644
index fa917c5..0000000
--- a/node_modules/buffer-shims/package.json
+++ /dev/null
@@ -1,86 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "buffer-shims@^1.0.0",
-        "scope": null,
-        "escapedName": "buffer-shims",
-        "name": "buffer-shims",
-        "rawSpec": "^1.0.0",
-        "spec": ">=1.0.0 <2.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/readdirp/node_modules/readable-stream"
-    ]
-  ],
-  "_from": "buffer-shims@>=1.0.0 <2.0.0",
-  "_id": "buffer-shims@1.0.0",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/buffer-shims",
-  "_nodeVersion": "5.11.0",
-  "_npmOperationalInternal": {
-    "host": "packages-16-east.internal.npmjs.com",
-    "tmp": "tmp/buffer-shims-1.0.0.tgz_1462560889323_0.8640750856138766"
-  },
-  "_npmUser": {
-    "name": "cwmma",
-    "email": "calvin.metcalf@gmail.com"
-  },
-  "_npmVersion": "3.8.6",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "buffer-shims@^1.0.0",
-    "scope": null,
-    "escapedName": "buffer-shims",
-    "name": "buffer-shims",
-    "rawSpec": "^1.0.0",
-    "spec": ">=1.0.0 <2.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/readdirp/readable-stream"
-  ],
-  "_resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
-  "_shasum": "9978ce317388c649ad8793028c3477ef044a8b51",
-  "_shrinkwrap": null,
-  "_spec": "buffer-shims@^1.0.0",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/readdirp/node_modules/readable-stream",
-  "bugs": {
-    "url": "https://github.com/calvinmetcalf/buffer-shims/issues"
-  },
-  "dependencies": {},
-  "description": "some shims for node buffers",
-  "devDependencies": {
-    "tape": "^4.5.1"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "9978ce317388c649ad8793028c3477ef044a8b51",
-    "tarball": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz"
-  },
-  "files": [
-    "index.js"
-  ],
-  "gitHead": "ea89b3857ab5b8203957922a84e9a48cf4c47e0a",
-  "homepage": "https://github.com/calvinmetcalf/buffer-shims#readme",
-  "license": "MIT",
-  "main": "index.js",
-  "maintainers": [
-    {
-      "name": "cwmma",
-      "email": "calvin.metcalf@gmail.com"
-    }
-  ],
-  "name": "buffer-shims",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+ssh://git@github.com/calvinmetcalf/buffer-shims.git"
-  },
-  "scripts": {
-    "test": "tape test/*.js"
-  },
-  "version": "1.0.0"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/buffer-shims/readme.md
----------------------------------------------------------------------
diff --git a/node_modules/buffer-shims/readme.md b/node_modules/buffer-shims/readme.md
deleted file mode 100644
index 7ea6475..0000000
--- a/node_modules/buffer-shims/readme.md
+++ /dev/null
@@ -1,21 +0,0 @@
-buffer-shims
-===
-
-functions to make sure the new buffer methods work in older browsers.
-
-```js
-var bufferShim = require('buffer-shims');
-bufferShim.from('foo');
-bufferShim.alloc(9, 'cafeface', 'hex');
-bufferShim.allocUnsafe(15);
-bufferShim.allocUnsafeSlow(21);
-```
-
-should just use the original  in newer nodes and on older nodes uses fallbacks.
-
-Known Issues
-===
-- this does not patch the buffer object, only the constructor stuff
-- it's actually a polyfill
-
-![](https://i.imgur.com/zxII3jJ.gif)

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bunyan/.npmignore
----------------------------------------------------------------------
diff --git a/node_modules/bunyan/.npmignore b/node_modules/bunyan/.npmignore
deleted file mode 100644
index 84d129f..0000000
--- a/node_modules/bunyan/.npmignore
+++ /dev/null
@@ -1,7 +0,0 @@
-/tmp
-/node_modules
-*.log
-/examples
-/test
-/*.tgz
-/tools

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bunyan/AUTHORS
----------------------------------------------------------------------
diff --git a/node_modules/bunyan/AUTHORS b/node_modules/bunyan/AUTHORS
deleted file mode 100644
index 8642d14..0000000
--- a/node_modules/bunyan/AUTHORS
+++ /dev/null
@@ -1,41 +0,0 @@
-Trent Mick (http://trentm.com)
-Mark Cavage (https://github.com/mcavage)
-Dave Pacheco (https://github.com/davepacheco)
-Michael Hart (https://github.com/mhart)
-Isaac Schlueter (https://github.com/isaacs)
-Rob Gulewich (https://github.com/rgulewich)
-Bryan Cantrill (https://github.com/bcantrill)
-Michael Hart (https://github.com/mhart)
-Simon Wade (https://github.com/aexmachina)
-https://github.com/glenn-murray-bse
-Chakrit Wichian (https://github.com/chakrit)
-Patrick Mooney (https://github.com/pfmooney)
-Johan Nordberg (https://github.com/jnordberg)
-https://github.com/timborodin
-Ryan Graham (https://github.com/rmg)
-Alex Kocharin (https://github.com/rlidwka)
-Andrei Neculau (https://github.com/andreineculau)
-Mihai Tomescu (https://github.com/matomesc)
-Daniel Juhl (https://github.com/danieljuhl)
-Chris Barber (https://github.com/cb1kenobi)
-Manuel Schneider (https://github.com/manuelschneider)
-Martin Gausby (https://github.com/gausby)
-Stéphan Kochen (https://github.com/stephank)
-Shakeel Mohamed (https://github.com/shakeelmohamed)
-Denis Izmaylov (https://github.com/DenisIzmaylov)
-Guillermo Grau Panea (https://github.com/guigrpa)
-Mark LeMerise (https://github.com/MarkLeMerise)
-https://github.com/sometimesalready
-Charly Koza (https://github.com/Cactusbone)
-Thomas Heymann (https://github.com/cyberthom)
-David M. Lee (https://github.com/leedm777)
-Marc Udoff (https://github.com/mlucool)
-Mark Stosberg (https://github.com/markstos)
-Alexander Ray (https://github.com/aray12)
-Adam Lynch (https://github.com/adam-lynch)
-Michael Nisi (https://github.com/michaelnisi)
-Martijn Schrage (https://github.com/Oblosys)
-Paul Milham (https://github.com/domrein)
-Frankie O'Rourke (https://github.com/psfrankie)
-Cody Mello (https://github.com/melloc)
-Todd Whiteman (https://github.com/twhiteman)

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bunyan/CHANGES.md
----------------------------------------------------------------------
diff --git a/node_modules/bunyan/CHANGES.md b/node_modules/bunyan/CHANGES.md
deleted file mode 100644
index 8f1793f..0000000
--- a/node_modules/bunyan/CHANGES.md
+++ /dev/null
@@ -1,1312 +0,0 @@
-# bunyan Changelog
-
-Known issues:
-
-- [issue #58] Can't install to a dir with spaces. This is [this node-gyp
-  bug](https://github.com/TooTallNate/node-gyp/issues/65).
-
-## not yet released
-
-
-## 1.8.8
-
-- Fix breakage due to a silly last minute "fix 'make check'".
-
-
-## 1.8.7
-
-Note: *Bad release.* Use 1.8.8 or later.
-
-- [issue #484] Fix breakage due to #474 in previous release.
-
-
-## 1.8.6
-
-Note: *Bad release.* Use 1.8.7 or later.
-
-- [issue #474] Bunyan's `safeCycles` is too slow when logging large objects.
-
-
-## 1.8.5
-
-- [issue #401] Improved performance when using disabled log levels.
-
-
-## 1.8.4
-
-- [issue #454] Fix `src` usage with node v7.
-
-
-## 1.8.3
-
-- [issue #450] Fix `log.info(null)` crash that resulted from #426 in v1.8.2.
-
-
-## 1.8.2
-
-- [issue #449] Bump dtrace-provider dep to 0.7.0 to help avoid deprecation
-  warnings with node v6 in some cases.
-- [issue #426] Ensure `log.info({err: err})` results in a "msg" value, just
-  like `log.info(err)`.
-
-
-## 1.8.1
-
-- [pull #386] Fix bad bug in rotation that could cause a crash with
-  error message "cannot start a rotation when already rotating"
-  (by Frankie O'Rourke). The bug was introduced in 1.8.0.
-
-
-## 1.8.0
-
-Note: *Bad release.* An addition in this release broke 'rotating-file' usage.
-Use 1.8.1 or later.
-
-- [issue #370] Fix `bunyan -p ...` (i.e. DTrace integration) on node
-  4.x and 5.x.
-- [issue #329, pull #330] Update the 'rotating-file' stream to do a file
-  rotation on initialization if the mtime on the file path indicates the
-  last rotation time was missed -- i.e. if the app wasn't running at the
-  time. (by Paul Milham.)
-
-
-## 1.7.1
-
-- [issue #332, pull #355] Ensure stream for type='stream' stream is a writable
-  stream. (By Michael Nisi.)
-
-- [issue #344] Fix "rotating-file" Bunyan streams to not miss rotations when configured
-  for a period greater than approximately 25 days. Before this there was an issue
-  where periods greater than node.js's maximum `setTimeout` length would fail to rotate.
-  (By Martijn Schrage.)
-
-- [issue #234, pull #345] Improve `bunyan` CLI rendering of "res" field
-  HTTP responses to not show two blank lines for an empty body.
-  (By Michael Nisi.)
-
-
-## 1.7.0
-
-- [pull #311, #302, #310] Improve the runtime environment detection to fix
-  running under [NW.js](http://nwjs.io/). Contributions by Adam Lynch, Jeremy
-  Ruppel, and Aleksey Timchenko.
-
-- [pull #318] Add `reemitErrorEvents` optional boolean for streams added to a
-  Bunyan logger to control whether an "error" event on the stream will be
-  re-emitted on the `Logger` instance.
-
-        var log = bunyan.createLogger({
-            name: 'foo',
-            streams: [
-                {
-                    type: 'raw',
-                    stream: new MyCustomStream(),
-                    reemitErrorEvents: true
-                }
-            ]
-        });
-
-  Before this change, "error" events were re-emitted on [`file`
-  streams](https://github.com/trentm/node-bunyan#stream-type-file) only. The new
-  behaviour is as follows:
-
-    - `reemitErrorEvents` not specified: `file` streams will re-emit error events
-      on the Logger instance.
-    - `reemitErrorEvents: true`: error events will be re-emitted on the Logger
-      for any stream with a `.on()` function -- which includes file streams,
-      process.stdout/stderr, and any object that inherits from EventEmitter.
-    - `reemitErrorEvents: false`: error events will not be re-emitted for any
-      streams.
-
-  Dev Note: Bunyan `Logger` objects don't currently have a `.close()` method
-  in which registered error event handlers can be *un*registered. That means
-  that a (presumably rare) situation where code adds dozens of Bunyan Logger
-  streams to, e.g. process.stdout, and with `reemitErrorEvents: true`, could
-  result in leaking Logger objects.
-
-  Original work for allowing "error" re-emitting on non-file streams is
-  by Marc Udoff in pull #318.
-
-
-## 1.6.0
-
-- [pull #304, issue #245] Use [Moment.js][momentjs.com] library to handle
-  `bunyan` CLI time formatting in some cases, especially to fix display of
-  local time. It is now required for local time formatting (i.e. `bunyan -L`
-  or `bunyan --time local`). (By David M. Lee.)
-
-- [pull #252] Fix errant `client_res={}` in `bunyan` CLI rendering, and avoid
-  extra newlines in `client_req` rendering in some cases. (By Thomas Heymann.)
-
-- [pull #291, issue #303] Fix `LOG.child(...)` to *not* override the "hostname"
-  field of the parent. A use case is when one manually sets "hostname" to
-  something other than `os.hostname()`. (By github.com/Cactusbone.)
-
-- [issue #325] Allow one to set `level: 0` in `createLogger` to turn on
-  logging for all levels. (Adapted from #336 by github.com/sometimesalready.)
-
-- Add guards (to `resolveLevel`) so that all "level" values are validated.
-  Before this, a bogus level like "foo" or -12 or `['some', 'array']` would
-  silently be accepted -- with undefined results.
-
-- Doc updates for #340 and #305.
-
-- Update `make test` to test against node 5, 4, 0.12 and 0.10.
-
-
-## 1.5.1
-
-- [issue #296] Fix `src: true`, which was broken in v1.5.0.
-
-
-## 1.5.0
-
-Note: *Bad release.* The addition of `'use strict';` broke Bunyan's `src: true`
-feature. Use 1.5.1 instead.
-
-- [pull #236, issue #231, issue #223] Fix strict mode in the browser.
-- [pull #282, issue #213] Fixes bunyan to work with webpack. By Denis Izmaylov.
-- [pull #294] Update to dtrace-provider 0.6 to fix with node 4.0 and io.js 3.0.
-- Dropped support for 0.8 (can't install deps easily anymore for running
-  test suite). Bump to a recent iojs version for testing.
-
-
-## 1.4.0
-
-(Bumping minor ver b/c I'm wary of dtrace-provider changes. :)
-
-- [issue #258, pull #259] Update to dtrace-provider 0.5 to fix
-  install and tests on recent io.js versions.
-- safe-json-stringify@1.0.3 changed output, breaking some tests. Fix those.
-
-
-## 1.3.6
-
-- [issue #244] Make `bunyan` defensive on `res.header=null`.
-
-
-## 1.3.5
-
-- [issue #233] Make `bunyan` defensive on res.header as a boolean.
-- [issue #242] Make `bunyan` defensive on err.stack not being a string.
-
-
-## 1.3.4
-
-- Allow `log.child(...)` to work even if the logger is a *sub-class*
-  of Bunyan's Logger class.
-- [issue #219] Hide 'source-map-support' require from browserify.
-- [issue #218] Reset `haveNonRawStreams` on `<logger>.addStream`.
-
-
-## 1.3.3
-
-- [pull #127] Update to dtrace-provider 0.4.0, which gives io.js 1.x support
-  for dtrace-y parts of Bunyan.
-
-
-## 1.3.2
-
-- [pull #182] Fallback to using the optional 'safe-json-stringify' module
-  if `JSON.stringify` throws -- possibly with an enumerable property
-  getter than throws. By Martin Gausby.
-
-
-## 1.3.1
-
-- Export `bunyan.RotatingFileStream` which is needed if one wants to
-  customize it. E.g. see issue #194.
-
-- [pull #122] Source Map support for caller line position for [the "src"
-  field](https://github.com/trentm/node-bunyan#src). This could be interesting
-  for [CoffeeScript](http://coffeescript.org/documentation/docs/sourcemap.html)
-  users of Bunyan. By Manuel Schneider.
-
-- [issue #164] Ensure a top-level `level` given in `bunyan.createLogger`
-  is *used* for given `streams`. For example, ensure that the following
-  results in the stream having a DEBUG level:
-
-        var log = bunyan.createLogger({
-            name: 'foo',
-            level: 'debug',
-            streams: [
-                {
-                    path: '/var/tmp/foo.log'
-                }
-            ]
-        });
-
-  This was broken in the 1.0.1 release. Between that release and 1.3.0
-  the "/var/tmp/foo.log" stream would be at the INFO level (Bunyan's
-  default level).
-
-
-## 1.3.0
-
-- [issue #103] `bunyan -L` (or `bunyan --time local`) to show local time.
-  Bunyan log records store `time` in UTC time. Sometimes it is convenient
-  to display in local time.
-
-- [issue #205] Fix the "The Bunyan CLI crashed!" checking to properly warn of
-  the common failure case when `-c CONDITION` is being used.
-
-
-## 1.2.4
-
-- [issue #210] Export `bunyan.nameFromLevel` and `bunyan.levelFromName`. It can
-  be a pain for custom streams to have to reproduce that.
-
-- [issue #100] Gracefully handle the case of an unbound
-  `Logger.{info,debug,...}` being used for logging, e.g.:
-
-        myEmittingThing.on('data', log.info)
-
-  Before this change, bunyan would throw. Now it emits a warning to stderr
-  *once*, and then silently ignores those log attempts, e.g.:
-
-        bunyan usage error: /Users/trentm/tm/node-bunyan/foo.js:12: attempt to log with an unbound log method: `this` is: { _events: { data: [Function] } }
-
-
-## 1.2.3
-
-- [issue #184] Fix log rotation for rotation periods > ~25 days. Before this
-  change, a rotation period longer than this could hit [the maximum setTimeout
-  delay in node.js](https://github.com/joyent/node/issues/8656). By Daniel Juhl.
-
-
-## 1.2.2
-
-- Drop the guard that a bunyan Logger level must be between TRACE (10)
-  and FATAL (60), inclusive. This allows a trick of setting the level
-  to `FATAL + 1` to turn logging off. While the standard named log levels are
-  the golden path, then intention was not to get in the way of using
-  other level numbers.
-
-
-## 1.2.1
-
-- [issue #178, #181] Get at least dtrace-provider 0.3.1 for
-  optionalDependencies to get a fix for install with decoupled npm (e.g. with
-  homebrew's node and npm).
-
-
-## 1.2.0
-
-- [issue #157] Restore dtrace-provider as a dependency (in
-  "optionalDependencies").
-
-  Dtrace-provider version 0.3.0 add build sugar that should eliminate the
-  problems from older versions:
-  The build is not attempted on Linux and Windows. The build spew is
-  *not* emitted by default (use `V=1 npm install` to see it); instead a
-  short warning is emitted if the build fails.
-
-  Also, importantly, the new dtrace-provider fixes working with node
-  v0.11/0.12.
-
-
-## 1.1.3
-
-- [issue #165] Include extra `err` fields in `bunyan` CLI output. Before
-  this change only the fields part of the typical node.js error stack
-  (err.stack, err.message, err.name) would be emitted, even though
-  the Bunyan *library* would typically include err.code and err.signal
-  in the raw JSON log record.
-
-
-## 1.1.2
-
-- Fix a breakage in `log.info(err)` on a logger with no serializers.
-
-
-## 1.1.1
-
-Note: *Bad release.* It breaks `log.info(err)` on a logger with no serializers.
-Use version 1.1.2.
-
-- [pull #168] Fix handling of `log.info(err)` to use the `log` Logger's `err`
-  serializer if it has one, instead of always using the core Bunyan err
-  serializer. (By Mihai Tomescu.)
-
-
-## 1.1.0
-
-- [issue #162] Preliminary support for [browserify](http://browserify.org/).
-  See [the section in the README](../README.md#browserify).
-
-
-## 1.0.1
-
-- [issues #105, #138, #151] Export `<Logger>.addStream(...)` and
-  `<Logger>.addSerializers(...)` to be able to add them after Logger creation.
-  Thanks @andreineculau!
-
-- [issue #159] Fix bad handling in construtor guard intending to allow
-  creation without "new": `var log = Logger(...)`. Thanks @rmg!
-
-- [issue #156] Smaller install size via .npmignore file.
-
-- [issue #126, #161] Ignore SIGINT (Ctrl+C) when processing stdin. `...| bunyan`
-  should expect the preceding process in the pipeline to handle SIGINT. While
-  it is doing so, `bunyan` should continue to process any remaining output.
-  Thanks @timborodin and @jnordberg!
-
-- [issue #160] Stop using ANSI 'grey' in `bunyan` CLI output, because of the
-  problems that causes with Solarized Dark themes (see
-  <https://github.com/altercation/solarized/issues/220>).
-
-
-## 1.0.0
-
-- [issue #87] **Backward incompatible change to `-c CODE`** improving
-  performance by over 10x (good!), with a backward incompatible change to
-  semantics (unfortunate), and adding some sugar (good!).
-
-  The `-c CODE` implementation was changed to use a JS function for processing
-  rather than `vm.runInNewContext`. The latter was specatularly slow, so
-  won't be missed. Unfortunately this does mean a few semantic differences in
-  the `CODE`, the most noticeable of which is that **`this` is required to
-  access the object fields:**
-
-        # Bad. Works with bunyan 0.x but not 1.x.
-        $ bunyan -c 'pid === 123' foo.log
-        ...
-
-        # Good. Works with all versions of bunyan
-        $ bunyan -c 'this.pid === 123' foo.log
-        ...
-
-  The old behaviour of `-c` can be restored with the `BUNYAN_EXEC=vm`
-  environment variable:
-
-        $ BUNYAN_EXEC=vm bunyan -c 'pid === 123' foo.log
-        ...
-
-  Some sugar was also added: the TRACE, DEBUG, ... constants are defined, so
-  one can:
-
-        $ bunyan -c 'this.level >= ERROR && this.component === "http"' foo.log
-        ...
-
-  And example of the speed improvement on a 10 MiB log example:
-
-        $ time BUNYAN_EXEC=vm bunyan -c 'this.level === ERROR' big.log | cat >slow
-
-        real    0m6.349s
-        user    0m6.292s
-        sys    0m0.110s
-
-        $ time bunyan -c 'this.level === ERROR' big.log | cat >fast
-
-        real    0m0.333s
-        user    0m0.303s
-        sys    0m0.028s
-
-  The change was courtesy Patrick Mooney (https://github.com/pfmooney). Thanks!
-
-- Add `bunyan -0 ...` shortcut for `bunyan -o bunyan ...`.
-
-- [issue #135] **Backward incompatible.** Drop dtrace-provider even from
-  `optionalDependencies`. Dtrace-provider has proven a consistent barrier to
-  installing bunyan, because it is a binary dep. Even as an *optional* dep it
-  still caused confusion and install noise.
-
-  Users of Bunyan on dtrace-y platforms (SmartOS, Mac, Illumos, Solaris) will
-  need to manually `npm install dtrace-provider` themselves to get [Bunyan's
-  dtrace support](https://github.com/trentm/node-bunyan#runtime-log-snooping-via-dtrace)
-  to work. If not installed, bunyan should stub it out properly.
-
-
-
-## 0.23.1
-
-- [pull #125, pull #97, issue #73] Unref rotating-file timeout which was
-  preventing processes from exiting (by https://github.com/chakrit and
-  https://github.com/glenn-murray-bse). Note: this only fixes the issue
-  for node 0.10 and above.
-
-
-## 0.23.0
-
-- [issue #139] Fix `bunyan` crash on a log record with `res.header` that is an
-  object. A side effect of this improvement is that a record with `res.statusCode`
-  but no header info will render a response block, for example:
-
-        [2012-08-08T10:25:47.637Z]  INFO: my-service/12859 on my-host: some message (...)
-            ...
-            --
-            HTTP/1.1 200 OK
-            --
-            ...
-
-- [pull #42] Fix `bunyan` crash on a log record with `req.headers` that is a *string*
-  (by https://github.com/aexmachina).
-
-- Drop node 0.6 support. I can't effectively `npm install` with a node 0.6
-  anymore.
-
-- [issue #85] Ensure logging a non-object/non-string doesn't throw (by
-  https://github.com/mhart). This changes fixes:
-
-        log.info(<bool>)     # TypeError: Object.keys called on non-object
-        log.info(<function>) # "msg":"" (instead of wanted "msg":"[Function]")
-        log.info(<array>)    # "msg":"" (instead of wanted "msg":util.format(<array>))
-
-
-## 0.22.3
-
-- Republish the same code to npm.
-
-
-## 0.22.2
-
-Note: Bad release. The published package in the npm registry got corrupted. Use 0.22.3 or later.
-
-- [issue #131] Allow `log.info(<number>)` and, most importantly, don't crash on that.
-
-- Update 'mv' optional dep to latest.
-
-
-## 0.22.1
-
-- [issue #111] Fix a crash when attempting to use `bunyan -p` on a platform without
-  dtrace.
-
-- [issue #101] Fix a crash in `bunyan` rendering a record with unexpected "res.headers".
-
-
-## 0.22.0
-
-- [issue #104] `log.reopenFileStreams()` convenience method to be used with external log
-  rotation.
-
-
-## 0.21.4
-
-- [issue #96] Fix `bunyan` to default to paging (with `less`) by default in node 0.10.0.
-  The intention has always been to default to paging for node >=0.8.
-
-
-## 0.21.3
-
-- [issue #90] Fix `bunyan -p '*'` breakage in version 0.21.2.
-
-
-## 0.21.2
-
-**Note: Bad release. The switchrate change below broke `bunyan -p '*'` usage
-(see issue #90). Use 0.21.3 or later.**
-
-- [issue #88] Should be able to efficiently combine "-l" with "-p *".
-
-- Avoid DTrace buffer filling up, e.g. like this:
-
-        $ bunyan -p 42241 > /tmp/all.log
-        dtrace: error on enabled probe ID 3 (ID 75795: bunyan42241:mod-87ea640:log-trace:log-trace): out of scratch space in action #1 at DIF offset 12
-        dtrace: error on enabled probe ID 3 (ID 75795: bunyan42241:mod-87ea640:log-trace:log-trace): out of scratch space in action #1 at DIF offset 12
-        dtrace: 138 drops on CPU 4
-        ...
-
-  From Bryan: "the DTrace buffer is filling up because the string size is so
-  large... by increasing the switchrate, you're increasing the rate at
-  which that buffer is emptied."
-
-
-## 0.21.1
-
-- [pull #83] Support rendering 'client_res' key in bunyan CLI (by
-  github.com/mcavage).
-
-
-## 0.21.0
-
-- 'make check' clean, 4-space indenting. No functional change here, just
-  lots of code change.
-- [issue #80, #82] Drop assert that broke using 'rotating-file' with
-  a default `period` (by github.com/ricardograca).
-
-
-## 0.20.0
-
-- [Slight backward incompatibility] Fix serializer bug introduced in 0.18.3
-  (see below) to only apply serializers to log records when appropriate.
-
-  This also makes a semantic change to custom serializers. Before this change
-  a serializer function was called for a log record key when that value was
-  truth-y. The semantic change is to call the serializer function as long
-  as the value is not `undefined`. That means that a serializer function
-  should handle falsey values such as `false` and `null`.
-
-- Update to latest 'mv' dep (required for rotating-file support) to support
-  node v0.10.0.
-
-
-## 0.19.0
-
-**WARNING**: This release includes a bug introduced in bunyan 0.18.3 (see
-below). Please upgrade to bunyan 0.20.0.
-
-- [Slight backward incompatibility] Change the default error serialization
-  (a.k.a. `bunyan.stdSerializers.err`) to *not* serialize all additional
-  attributes of the given error object. This is an open door to unsafe logging
-  and logging should always be safe. With this change, error serialization
-  will log these attributes: message, name, stack, code, signal. The latter
-  two are added because some core node APIs include those fields (e.g.
-  `child_process.exec`).
-
-  Concrete examples where this has hurt have been the "domain" change
-  necessitating 0.18.3 and a case where
-  [node-restify](https://github.com/mcavage/node-restify) uses an error object
-  as the response object. When logging the `err` and `res` in the same log
-  statement (common for restify audit logging), the `res.body` would be JSON
-  stringified as '[Circular]' as it had already been emitted for the `err` key.
-  This results in a WTF with the bunyan CLI because the `err.body` is not
-  rendered.
-
-  If you need the old behaviour back you will need to do this:
-
-        var bunyan = require('bunyan');
-        var errSkips = {
-            // Skip domain keys. `domain` especially can have huge objects that can
-            // OOM your app when trying to JSON.stringify.
-            domain: true,
-            domain_emitter: true,
-            domain_bound: true,
-            domain_thrown: true
-        };
-        bunyan.stdSerializers.err = function err(err) {
-           if (!err || !err.stack)
-               return err;
-           var obj = {
-               message: err.message,
-               name: err.name,
-               stack: getFullErrorStack(err)
-           }
-           Object.keys(err).forEach(function (k) {
-               if (err[k] !== undefined && !errSkips[k]) {
-                   obj[k] = err[k];
-               }
-           });
-           return obj;
-         };
-
-- "long" and "bunyan" output formats for the CLI. `bunyan -o long` is the default
-  format, the same as before, just called "long" now instead of the cheesy "paul"
-  name. The "bunyan" output format is the same as "json-0", just with a more
-  convenient name.
-
-
-## 0.18.3
-
-**WARNING**: This release introduced a bug such that all serializers are
-applied to all log records even if the log record did not contain the key
-for that serializer. If a logger serializer function does not handle
-being given `undefined`, then you'll get warnings like this on stderr:
-
-    bunyan: ERROR: This should never happen. This is a bug in <https://github.com/trentm/node-bunyan> or in this application. Exception from "foo" Logger serializer: Error: ...
-        at Object.bunyan.createLogger.serializers.foo (.../myapp.js:20:15)
-        at Logger._applySerializers (.../lib/bunyan.js:644:46)
-        at Array.forEach (native)
-        at Logger._applySerializers (.../lib/bunyan.js:640:33)
-        ...
-
-and the following junk in written log records:
-
-    "foo":"(Error in Bunyan log "foo" serializer broke field. See stderr for details.)"
-
-Please upgrade to bunyan 0.20.0.
-
-
-- Change the `bunyan.stdSerializers.err` serializer for errors to *exclude*
-  [the "domain*" keys](http://nodejs.org/docs/latest/api/all.html#all_additions_to_error_objects).
-  `err.domain` will include its assigned members which can arbitrarily large
-  objects that are not intended for logging.
-
-- Make the "dtrace-provider" dependency optional. I hate to do this, but
-  installing bunyan on Windows is made very difficult with this as a required
-  dep.  Even though "dtrace-provider" stubs out for non-dtrace-y platforms,
-  without a compiler and Python around, node-gyp just falls over.
-
-
-## 0.18.2
-
-- [pull #67] Remove debugging prints in rotating-file support.
-  (by github.com/chad3814).
-- Update to dtrace-provider@0.2.7.
-
-
-## 0.18.1
-
-- Get the `bunyan` CLI to **not** automatically page (i.e. pipe to `less`)
-  if stdin isn't a TTY, or if following dtrace probe output (via `-p PID`),
-  or if not given log file arguments.
-
-
-## 0.18.0
-
-- Automatic paging support in the `bunyan` CLI (similar to `git log` et al).
-  IOW, `bunyan` will open your pager (by default `less`) and pipe rendered
-  log output through it. A main benefit of this is getting colored logs with
-  a pager without the pain. Before you had to explicit use `--color` to tell
-  bunyan to color output when the output was not a TTY:
-
-        bunyan foo.log --color | less -R        # before
-        bunyan foo.log                          # now
-
-  Disable with the `--no-pager` option or the `BUNYAN_NO_PAGER=1` environment
-  variable.
-
-  Limitations: Only supported for node >=0.8. Windows is not supported (at
-  least not yet).
-
-- Switch test suite to nodeunit (still using a node-tap'ish API via
-  a helper).
-
-
-## 0.17.0
-
-- [issue #33] Log rotation support:
-
-        var bunyan = require('bunyan');
-        var log = bunyan.createLogger({
-            name: 'myapp',
-            streams: [{
-                type: 'rotating-file',
-                path: '/var/log/myapp.log',
-                count: 7,
-                period: 'daily'
-            }]
-        });
-
-
-- Tweak to CLI default pretty output: don't special case "latency" field.
-  The special casing was perhaps nice, but less self-explanatory.
-  Before:
-
-        [2012-12-27T21:17:38.218Z]  INFO: audit/45769 on myserver: handled: 200 (15ms, audit=true, bar=baz)
-          GET /foo
-          ...
-
-  After:
-
-        [2012-12-27T21:17:38.218Z]  INFO: audit/45769 on myserver: handled: 200 (audit=true, bar=baz, latency=15)
-          GET /foo
-          ...
-
-- *Exit* CLI on EPIPE, otherwise we sit there useless processing a huge log
-  file with, e.g.  `bunyan huge.log | head`.
-
-
-## 0.16.8
-
-- Guards on `-c CONDITION` usage to attempt to be more user friendly.
-  Bogus JS code will result in this:
-
-        $ bunyan portal.log -c 'this.req.username==boo@foo'
-        bunyan: error: illegal CONDITION code: SyntaxError: Unexpected token ILLEGAL
-          CONDITION script:
-            Object.prototype.TRACE = 10;
-            Object.prototype.DEBUG = 20;
-            Object.prototype.INFO = 30;
-            Object.prototype.WARN = 40;
-            Object.prototype.ERROR = 50;
-            Object.prototype.FATAL = 60;
-            this.req.username==boo@foo
-          Error:
-            SyntaxError: Unexpected token ILLEGAL
-                at new Script (vm.js:32:12)
-                at Function.Script.createScript (vm.js:48:10)
-                at parseArgv (/Users/trentm/tm/node-bunyan-0.x/bin/bunyan:465:27)
-                at main (/Users/trentm/tm/node-bunyan-0.x/bin/bunyan:1252:16)
-                at Object.<anonymous> (/Users/trentm/tm/node-bunyan-0.x/bin/bunyan:1330:3)
-                at Module._compile (module.js:449:26)
-                at Object.Module._extensions..js (module.js:467:10)
-                at Module.load (module.js:356:32)
-                at Function.Module._load (module.js:312:12)
-                at Module.runMain (module.js:492:10)
-
-  And all CONDITION scripts will be run against a minimal valid Bunyan
-  log record to ensure they properly guard against undefined values
-  (at least as much as can reasonably be checked). For example:
-
-        $ bunyan portal.log -c 'this.req.username=="bob"'
-        bunyan: error: CONDITION code cannot safely filter a minimal Bunyan log record
-          CONDITION script:
-            Object.prototype.TRACE = 10;
-            Object.prototype.DEBUG = 20;
-            Object.prototype.INFO = 30;
-            Object.prototype.WARN = 40;
-            Object.prototype.ERROR = 50;
-            Object.prototype.FATAL = 60;
-            this.req.username=="bob"
-          Minimal Bunyan log record:
-            {
-              "v": 0,
-              "level": 30,
-              "name": "name",
-              "hostname": "hostname",
-              "pid": 123,
-              "time": 1355514346206,
-              "msg": "msg"
-            }
-          Filter error:
-            TypeError: Cannot read property 'username' of undefined
-                at bunyan-condition-0:7:9
-                at Script.Object.keys.forEach.(anonymous function) [as runInNewContext] (vm.js:41:22)
-                at parseArgv (/Users/trentm/tm/node-bunyan-0.x/bin/bunyan:477:18)
-                at main (/Users/trentm/tm/node-bunyan-0.x/bin/bunyan:1252:16)
-                at Object.<anonymous> (/Users/trentm/tm/node-bunyan-0.x/bin/bunyan:1330:3)
-                at Module._compile (module.js:449:26)
-                at Object.Module._extensions..js (module.js:467:10)
-                at Module.load (module.js:356:32)
-                at Function.Module._load (module.js:312:12)
-                at Module.runMain (module.js:492:10)
-
-  A proper way to do that condition would be:
-
-        $ bunyan portal.log -c 'this.req && this.req.username=="bob"'
-
-
-
-## 0.16.7
-
-- [issue #59] Clear a possibly interrupted ANSI color code on signal
-  termination.
-
-
-## 0.16.6
-
-- [issue #56] Support `bunyan -p NAME` to dtrace all PIDs matching 'NAME' in
-  their command and args (using `ps -A -o pid,command | grep NAME` or, on SunOS
-  `pgrep -lf NAME`). E.g.:
-
-        bunyan -p myappname
-
-  This is useful for usage of node's [cluster
-  module](http://nodejs.org/docs/latest/api/all.html#all_cluster) where you'll
-  have multiple worker processes.
-
-
-## 0.16.5
-
-- Allow `bunyan -p '*'` to capture bunyan dtrace probes from **all** processes.
-- issue #55: Add support for `BUNYAN_NO_COLOR` environment variable to
-  turn off all output coloring. This is still overridden by the `--color`
-  and `--no-color` options.
-
-
-## 0.16.4
-
-- issue #54: Ensure (again, see 0.16.2) that stderr from the dtrace child
-  process (when using `bunyan -p PID`) gets through. There had been a race
-  between exiting bunyan and the flushing of the dtrace process' stderr.
-
-
-## 0.16.3
-
-- Drop 'trentm-dtrace-provider' fork dep now that
-  <https://github.com/chrisa/node-dtrace-provider/pull/24> has been resolved.
-  Back to dtrace-provider.
-
-
-## 0.16.2
-
-- Ensure that stderr from the dtrace child process (when using `bunyan -p PID`)
-  gets through. The `pipe` usage wasn't working on SmartOS. This is important
-  to show the user if they need to 'sudo'.
-
-
-## 0.16.1
-
-- Ensure that a possible dtrace child process (with using `bunyan -p PID`) is
-  terminated on signal termination of the bunyan CLI (at least for SIGINT,
-  SIGQUIT, SIGTERM, SIGHUP).
-
-
-## 0.16.0
-
-- Add `bunyan -p PID` support. This is a convenience wrapper that effectively
-  calls:
-
-        dtrace -x strsize=4k -qn 'bunyan$PID:::log-*{printf("%s", copyinstr(arg0))}' | bunyan
-
-
-## 0.15.0
-
-- issue #48: Dtrace support! The elevator pitch is you can watch all logging
-  from all Bunyan-using process with something like this:
-
-        dtrace -x strsize=4k -qn 'bunyan*:::log-*{printf("%d: %s: %s", pid, probefunc, copyinstr(arg0))}'
-
-  And this can include log levels *below* what the service is actually configured
-  to log. E.g. if the service is only logging at INFO level and you need to see
-  DEBUG log messages, with this you can. Obviously this only works on dtrace-y
-  platforms: Illumos derivatives of SunOS (e.g. SmartOS, OmniOS), Mac, FreeBSD.
-
-  Or get the bunyan CLI to render logs nicely:
-
-        dtrace -x strsize=4k -qn 'bunyan*:::log-*{printf("%s", copyinstr(arg0))}' | bunyan
-
-  See <https://github.com/trentm/node-bunyan#dtrace-support> for details. By
-  Bryan Cantrill.
-
-
-## 0.14.6
-
-- Export `bunyan.safeCycles()`. This may be useful for custom `type == "raw"`
-  streams that may do JSON stringification of log records themselves. Usage:
-
-        var str = JSON.stringify(rec, bunyan.safeCycles());
-
-- [issue #49] Allow a `log.child()` to specify the level of inherited streams.
-  For example:
-
-        # Before
-        var childLog = log.child({...});
-        childLog.level('debug');
-
-        # After
-        var childLog = log.child({..., level: 'debug'});
-
-- Improve the Bunyan CLI crash message to make it easier to provide relevant
-  details in a bug report.
-
-
-## 0.14.5
-
-- Fix a bug in the long-stack-trace error serialization added in 0.14.4. The
-  symptom:
-
-        bunyan@0.14.4: .../node_modules/bunyan/lib/bunyan.js:1002
-          var ret = ex.stack || ex.toString();
-                      ^
-        TypeError: Cannot read property 'stack' of undefined
-            at getFullErrorStack (.../node_modules/bunyan/lib/bunyan.js:1002:15)
-            ...
-
-
-## 0.14.4
-
-- **Bad release. Use 0.14.5 instead.**
-- Improve error serialization to walk the chain of `.cause()` errors
-  from the likes of `WError` or `VError` error classes from
-  [verror](https://github.com/davepacheco/node-verror) and
-  [restify v2.0](https://github.com/mcavage/node-restify). Example:
-
-        [2012-10-11T00:30:21.871Z] ERROR: imgapi/99612 on 0525989e-2086-4270-b960-41dd661ebd7d: my-message
-            ValidationFailedError: my-message; caused by TypeError: cause-error-message
-                at Server.apiPing (/opt/smartdc/imgapi/lib/app.js:45:23)
-                at next (/opt/smartdc/imgapi/node_modules/restify/lib/server.js:550:50)
-                at Server.setupReq (/opt/smartdc/imgapi/lib/app.js:178:9)
-                at next (/opt/smartdc/imgapi/node_modules/restify/lib/server.js:550:50)
-                at Server.parseBody (/opt/smartdc/imgapi/node_modules/restify/lib/plugins/body_parser.js:15:33)
-                at next (/opt/smartdc/imgapi/node_modules/restify/lib/server.js:550:50)
-                at Server.parseQueryString (/opt/smartdc/imgapi/node_modules/restify/lib/plugins/query.js:40:25)
-                at next (/opt/smartdc/imgapi/node_modules/restify/lib/server.js:550:50)
-                at Server._run (/opt/smartdc/imgapi/node_modules/restify/lib/server.js:579:17)
-                at Server._handle.log.trace.req (/opt/smartdc/imgapi/node_modules/restify/lib/server.js:480:38)
-            Caused by: TypeError: cause-error-message
-                at Server.apiPing (/opt/smartdc/imgapi/lib/app.js:40:25)
-                at next (/opt/smartdc/imgapi/node_modules/restify/lib/server.js:550:50)
-                at Server.setupReq (/opt/smartdc/imgapi/lib/app.js:178:9)
-                at next (/opt/smartdc/imgapi/node_modules/restify/lib/server.js:550:50)
-                at Server.parseBody (/opt/smartdc/imgapi/node_modules/restify/lib/plugins/body_parser.js:15:33)
-                at next (/opt/smartdc/imgapi/node_modules/restify/lib/server.js:550:50)
-                at Server.parseQueryString (/opt/smartdc/imgapi/node_modules/restify/lib/plugins/query.js:40:25)
-                at next (/opt/smartdc/imgapi/node_modules/restify/lib/server.js:550:50)
-                at Server._run (/opt/smartdc/imgapi/node_modules/restify/lib/server.js:579:17)
-                at Server._handle.log.trace.req (/opt/smartdc/imgapi/node_modules/restify/lib/server.js:480:38)
-
-
-## 0.14.2
-
-- [issue #45] Fix bunyan CLI (default output mode) to not crash on a 'res'
-  field that isn't a response object, but a string.
-
-
-## 0.14.1
-
-- [issue #44] Fix the default `bunyan` CLI output of a `res.body` that is an
-  object instead of a string. See issue#38 for the same with `req.body`.
-
-
-## 0.14.0
-
-- [pull #41] Safe `JSON.stringify`ing of emitted log records to avoid blowing
-  up on circular objects (by Isaac Schlueter).
-
-
-## 0.13.5
-
-- [issue #39] Fix a bug with `client_req` handling in the default output
-  of the `bunyan` CLI.
-
-
-## 0.13.4
-
-- [issue #38] Fix the default `bunyan` CLI output of a `req.body` that is an
-  object instead of a string.
-
-
-## 0.13.3
-
-- Export `bunyan.resolveLevel(NAME-OR-NUM)` to resolve a level name or number
-  to its log level number value:
-
-        > bunyan.resolveLevel('INFO')
-        30
-        > bunyan.resolveLevel('debug')
-        20
-
-  A side-effect of this change is that the uppercase level name is now allowed
-  in the logger constructor.
-
-
-## 0.13.2
-
-- [issue #35] Ensure that an accidental `log.info(BUFFER)`, where BUFFER is
-  a node.js Buffer object, doesn't blow up.
-
-
-## 0.13.1
-
-- [issue #34] Ensure `req.body`, `res.body` and other request/response fields
-  are emitted by the `bunyan` CLI (mostly by Rob Gulewich).
-
-
-
-## 0.13.0
-
-- [issue #31] Re-instate defines for the (uppercase) log level names (TRACE,
-  DEBUG, etc.) in `bunyan -c "..."` filtering condition code. E.g.:
-
-        $ ... | bunyan -c 'level >= ERROR'
-
-
-## 0.12.0
-
-- [pull #32] `bunyan -o short` for more concise output (by Dave Pacheco). E.g.:
-
-        22:56:52.856Z  INFO myservice: My message
-
-  instead of:
-
-        [2012-02-08T22:56:52.856Z]  INFO: myservice/123 on example.com: My message
-
-
-## 0.11.3
-
-- Add '--strict' option to `bunyan` CLI to suppress all but legal Bunyan JSON
-  log lines. By default non-JSON, and non-Bunyan lines are passed through.
-
-
-## 0.11.2
-
-- [issue #30] Robust handling of 'req' field without a 'headers' subfield
-  in `bunyan` CLI.
-- [issue #31] Pull the TRACE, DEBUG, et al defines from `bunyan -c "..."`
-  filtering code. This was added in v0.11.1, but has a significant adverse
-  affect.
-
-
-## 0.11.1
-
-- **Bad release. The TRACE et al names are bleeding into the log records
-  when using '-c'.**
-- Add defines for the (uppercase) log level names (TRACE, DEBUG, etc.) in
-  `bunyan -c "..."` filtering condition code. E.g.:
-
-        $ ... | bunyan -c 'level >= ERROR'
-
-
-## 0.11.0
-
-- [pull #29] Add -l/--level for level filtering, and -c/--condition for
-  arbitrary conditional filtering (by github.com/isaacs):
-
-        $ ... | bunyan -l error   # filter out log records below error
-        $ ... | bunyan -l 50      # numeric value works too
-        $ ... | bunyan -c 'level===50'              # equiv with -c filtering
-        $ ... | bunyan -c 'pid===123'               # filter on any field
-        $ ... | bunyan -c 'pid===123' -c '_audit'   # multiple filters
-
-
-## 0.10.0
-
-- [pull #24] Support for gzip'ed log files in the bunyan CLI (by
-  github.com/mhart):
-
-        $ bunyan foo.log.gz
-        ...
-
-
-## 0.9.0
-
-- [pull #16] Bullet proof the `bunyan.stdSerializers` (by github.com/rlidwka).
-
-- [pull #15] The `bunyan` CLI will now chronologically merge multiple log
-  streams when it is given multiple file arguments. (by github.com/davepacheco)
-
-        $ bunyan foo.log bar.log
-        ... merged log records ...
-
-- [pull #15] A new `bunyan.RingBuffer` stream class that is useful for
-  keeping the last N log messages in memory. This can be a fast way to keep
-  recent, and thus hopefully relevant, log messages. (by @dapsays,
-  github.com/davepacheco)
-
-  Potential uses: Live debugging if a running process could inspect those
-  messages. One could dump recent log messages at a finer log level than is
-  typically logged on
-  [`uncaughtException`](http://nodejs.org/docs/latest/api/all.html#all_event_uncaughtexception).
-
-        var ringbuffer = new bunyan.RingBuffer({ limit: 100 });
-        var log = new bunyan({
-            name: 'foo',
-            streams: [{
-                type: 'raw',
-                stream: ringbuffer,
-                level: 'debug'
-            }]
-        });
-
-        log.info('hello world');
-        console.log(ringbuffer.records);
-
-- Add support for "raw" streams. This is a logging stream that is given
-  raw log record objects instead of a JSON-stringified string.
-
-        function Collector() {
-            this.records = [];
-        }
-        Collector.prototype.write = function (rec) {
-            this.records.push(rec);
-        }
-        var log = new Logger({
-            name: 'mylog',
-            streams: [{
-                type: 'raw',
-                stream: new Collector()
-            }]
-        });
-
-  See "examples/raw-stream.js". I expect raw streams to be useful for
-  piping Bunyan logging to separate services (e.g. <http://www.loggly.com/>,
-  <https://github.com/etsy/statsd>) or to separate in-process handling.
-
-- Add test/corpus/*.log files (accidentally excluded) so the test suite
-  actually works(!).
-
-
-## 0.8.0
-
-- [pull #21] Bunyan loggers now re-emit `fs.createWriteStream` error events.
-  By github.com/EvanOxfeld. See "examples/handle-fs-error.js" and
-  "test/error-event.js" for details.
-
-        var log = new Logger({name: 'mylog', streams: [{path: FILENAME}]});
-        log.on('error', function (err, stream) {
-            // Handle error writing to or creating FILENAME.
-        });
-
-- jsstyle'ing (via `make check`)
-
-
-## 0.7.0
-
-- [issue #12] Add `bunyan.createLogger(OPTIONS)` form, as is more typical in
-  node.js APIs.  This'll eventually become the preferred form.
-
-
-## 0.6.9
-
-- Change `bunyan` CLI default output to color "src" info red. Before the "src"
-  information was uncolored. The "src" info is the filename, line number and
-  function name resulting from using `src: true` in `Logger` creation. I.e.,
-  the `(/Users/trentm/tm/node-bunyan/examples/hi.js:10)` in:
-
-        [2012-04-10T22:28:58.237Z]  INFO: myapp/39339 on banana.local (/Users/trentm/tm/node-bunyan/examples/hi.js:10): hi
-
-- Tweak `bunyan` CLI default output to still show an "err" field if it doesn't
-  have a "stack" attribute.
-
-
-## 0.6.8
-
-- Fix bad bug in `log.child({...}, true);` where the added child fields **would
-  be added to the parent's fields**. This bug only existed for the "fast child"
-  path (that second `true` argument). A side-effect of fixing this is that
-  the "fast child" path is only 5 times as fast as the regular `log.child`,
-  instead of 10 times faster.
-
-
-## 0.6.7
-
-- [issue #6] Fix bleeding 'type' var to global namespace. (Thanks Mike!)
-
-
-## 0.6.6
-
-- Add support to the `bunyan` CLI taking log file path args, `bunyan foo.log`,
-  in addition to the usual `cat foo.log | bunyan`.
-- Improve reliability of the default output formatting of the `bunyan` CLI.
-  Before it could blow up processing log records missing some expected
-  fields.
-
-
-## 0.6.5
-
-- ANSI coloring output from `bunyan` CLI tool (for the default output mode/style).
-  Also add the '--color' option to force coloring if the output stream is not
-  a TTY, e.g. `cat my.log | bunyan --color | less -R`. Use `--no-color` to
-  disable coloring, e.g. if your terminal doesn't support ANSI codes.
-- Add 'level' field to log record before custom fields for that record. This
-  just means that the raw record JSON will show the 'level' field earlier,
-  which is a bit nicer for raw reading.
-
-
-## 0.6.4
-
-- [issue #5] Fix `log.info() -> boolean` to work properly. Previous all were
-  returning false. Ditto all trace/debug/.../fatal methods.
-
-
-## 0.6.3
-
-- Allow an optional `msg` and arguments to the `log.info(<Error> err)` logging
-  form. For example, before:
-
-        log.debug(my_error_instance)            // good
-        log.debug(my_error_instance, "boom!")   // wasn't allowed
-
-  Now the latter is allowed if you want to expliciting set the log msg. Of course
-  this applies to all the `log.{trace|debug|info...}()` methods.
-
-- `bunyan` cli output: clarify extra fields with quoting if empty or have
-  spaces. E.g. 'cmd' and 'stderr' in the following:
-
-        [2012-02-12T00:30:43.736Z] INFO: mo-docs/43194 on banana.local: buildDocs results (req_id=185edca2-2886-43dc-911c-fe41c09ec0f5, route=PutDocset, error=null, stderr="", cmd="make docs")
-
-
-## 0.6.2
-
-- Fix/guard against unintended inclusion of some files in npm published package
-  due to <https://github.com/isaacs/npm/issues/2144>
-
-
-## 0.6.1
-
-- Internal: starting jsstyle usage.
-- Internal: add .npmignore. Previous packages had reams of bunyan crud in them.
-
-
-## 0.6.0
-
-- Add 'pid' automatic log record field.
-
-
-## 0.5.3
-
-- Add 'client_req' (HTTP client request) standard formatting in `bunyan` CLI
-  default output.
-- Improve `bunyan` CLI default output to include *all* log record keys. Unknown keys
-  are either included in the first line parenthetical (if short) or in the indented
-  subsequent block (if long or multiline).
-
-
-## 0.5.2
-
-- [issue #3] More type checking of `new Logger(...)` and `log.child(...)`
-  options.
-- Start a test suite.
-
-
-## 0.5.1
-
-- [issue #2] Add guard on `JSON.stringify`ing of log records before emission.
-  This will prevent `log.info` et al throwing on record fields that cannot be
-  represented as JSON. An error will be printed on stderr and a clipped log
-  record emitted with a 'bunyanMsg' key including error details. E.g.:
-
-        bunyan: ERROR: could not stringify log record from /Users/trentm/tm/node-bunyan/examples/unstringifyable.js:12: TypeError: Converting circular structure to JSON
-        {
-          "name": "foo",
-          "hostname": "banana.local",
-          "bunyanMsg": "bunyan: ERROR: could not stringify log record from /Users/trentm/tm/node-bunyan/examples/unstringifyable.js:12: TypeError: Converting circular structure to JSON",
-        ...
-
-  Some timing shows this does effect log speed:
-
-        $ node tools/timeguard.js     # before
-        Time try/catch-guard on JSON.stringify:
-         - log.info:  0.07365ms per iteration
-        $ node tools/timeguard.js     # after
-        Time try/catch-guard on JSON.stringify:
-         - log.info:  0.07368ms per iteration
-
-
-## 0.5.0
-
-- Use 10/20/... instead of 1/2/... for level constant values. Ostensibly this
-  allows for intermediary levels from the defined "trace/debug/..." set.
-  However, that is discouraged. I'd need a strong user argument to add
-  support for easily using alternative levels. Consider using a separate
-  JSON field instead.
-- s/service/name/ for Logger name field. "service" is unnecessarily tied
-  to usage for a service. No need to differ from log4j Logger "name".
-- Add `log.level(...)` and `log.levels(...)` API for changing logger stream
-  levels.
-- Add `TRACE|DEBUG|INFO|WARN|ERROR|FATAL` level constants to exports.
-- Add `log.info(err)` special case for logging an `Error` instance. For
-  example `log.info(new TypeError("boom")` will produce:
-
-        ...
-        "err": {
-          "message": "boom",
-          "name": "TypeError",
-          "stack": "TypeError: boom\n    at Object.<anonymous> ..."
-        },
-        "msg": "boom",
-        ...
-
-
-## 0.4.0
-
-- Add `new Logger({src: true})` config option to have a 'src' attribute be
-  automatically added to log records with the log call source info. Example:
-
-        "src": {
-          "file": "/Users/trentm/tm/node-bunyan/examples/src.js",
-          "line": 20,
-          "func": "Wuzzle.woos"
-        },
-
-
-## 0.3.0
-
-- `log.child(options[, simple])` Added `simple` boolean arg. Set `true` to
-  assert that options only add fields (no config changes). Results in a 10x
-  speed increase in child creation. See "tools/timechild.js". On my Mac,
-  "fast child" creation takes about 0.001ms. IOW, if your app is dishing
-  10,000 req/s, then creating a log child for each request will take
-  about 1% of the request time.
-- `log.clone` -> `log.child` to better reflect the relationship: streams and
-  serializers are inherited. Streams can't be removed as part of the child
-  creation. The child doesn't own the parent's streams (so can't close them).
-- Clean up Logger creation. The goal here was to ensure `log.child` usage
-  is fast. TODO: measure that.
-- Add `Logger.stdSerializers.err` serializer which is necessary to get good
-  Error object logging with node 0.6 (where core Error object properties
-  are non-enumerable).
-
-
-## 0.2.0
-
-- Spec'ing core/recommended log record fields.
-- Add `LOG_VERSION` to exports.
-- Improvements to request/response serializations.
-
-
-## 0.1.0
-
-First release.


[06/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/core-js/client/core.js
----------------------------------------------------------------------
diff --git a/node_modules/core-js/client/core.js b/node_modules/core-js/client/core.js
deleted file mode 100644
index b9bac6c..0000000
--- a/node_modules/core-js/client/core.js
+++ /dev/null
@@ -1,4910 +0,0 @@
-/**
- * core-js 1.2.7
- * https://github.com/zloirock/core-js
- * License: http://rock.mit-license.org
- * © 2016 Denis Pushkarev
- */
-!function(__e, __g, undefined){
-'use strict';
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId])
-/******/ 			return installedModules[moduleId].exports;
-
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			exports: {},
-/******/ 			id: moduleId,
-/******/ 			loaded: false
-/******/ 		};
-
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-
-/******/ 		// Flag the module as loaded
-/******/ 		module.loaded = true;
-
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-
-
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ function(module, exports, __webpack_require__) {
-
-	__webpack_require__(1);
-	__webpack_require__(34);
-	__webpack_require__(40);
-	__webpack_require__(42);
-	__webpack_require__(44);
-	__webpack_require__(46);
-	__webpack_require__(48);
-	__webpack_require__(50);
-	__webpack_require__(51);
-	__webpack_require__(52);
-	__webpack_require__(53);
-	__webpack_require__(54);
-	__webpack_require__(55);
-	__webpack_require__(56);
-	__webpack_require__(57);
-	__webpack_require__(58);
-	__webpack_require__(59);
-	__webpack_require__(60);
-	__webpack_require__(61);
-	__webpack_require__(64);
-	__webpack_require__(65);
-	__webpack_require__(66);
-	__webpack_require__(68);
-	__webpack_require__(69);
-	__webpack_require__(70);
-	__webpack_require__(71);
-	__webpack_require__(72);
-	__webpack_require__(73);
-	__webpack_require__(74);
-	__webpack_require__(76);
-	__webpack_require__(77);
-	__webpack_require__(78);
-	__webpack_require__(80);
-	__webpack_require__(81);
-	__webpack_require__(82);
-	__webpack_require__(84);
-	__webpack_require__(85);
-	__webpack_require__(86);
-	__webpack_require__(87);
-	__webpack_require__(88);
-	__webpack_require__(89);
-	__webpack_require__(90);
-	__webpack_require__(91);
-	__webpack_require__(92);
-	__webpack_require__(93);
-	__webpack_require__(94);
-	__webpack_require__(95);
-	__webpack_require__(96);
-	__webpack_require__(97);
-	__webpack_require__(99);
-	__webpack_require__(103);
-	__webpack_require__(104);
-	__webpack_require__(106);
-	__webpack_require__(107);
-	__webpack_require__(111);
-	__webpack_require__(116);
-	__webpack_require__(117);
-	__webpack_require__(120);
-	__webpack_require__(122);
-	__webpack_require__(124);
-	__webpack_require__(126);
-	__webpack_require__(127);
-	__webpack_require__(128);
-	__webpack_require__(130);
-	__webpack_require__(131);
-	__webpack_require__(133);
-	__webpack_require__(134);
-	__webpack_require__(135);
-	__webpack_require__(136);
-	__webpack_require__(143);
-	__webpack_require__(146);
-	__webpack_require__(147);
-	__webpack_require__(149);
-	__webpack_require__(150);
-	__webpack_require__(151);
-	__webpack_require__(152);
-	__webpack_require__(153);
-	__webpack_require__(154);
-	__webpack_require__(155);
-	__webpack_require__(156);
-	__webpack_require__(157);
-	__webpack_require__(158);
-	__webpack_require__(159);
-	__webpack_require__(160);
-	__webpack_require__(162);
-	__webpack_require__(163);
-	__webpack_require__(164);
-	__webpack_require__(165);
-	__webpack_require__(166);
-	__webpack_require__(167);
-	__webpack_require__(169);
-	__webpack_require__(170);
-	__webpack_require__(171);
-	__webpack_require__(172);
-	__webpack_require__(174);
-	__webpack_require__(175);
-	__webpack_require__(177);
-	__webpack_require__(178);
-	__webpack_require__(180);
-	__webpack_require__(181);
-	__webpack_require__(182);
-	__webpack_require__(183);
-	__webpack_require__(186);
-	__webpack_require__(114);
-	__webpack_require__(188);
-	__webpack_require__(187);
-	__webpack_require__(189);
-	__webpack_require__(190);
-	__webpack_require__(191);
-	__webpack_require__(192);
-	__webpack_require__(193);
-	__webpack_require__(195);
-	__webpack_require__(196);
-	__webpack_require__(197);
-	__webpack_require__(198);
-	__webpack_require__(199);
-	module.exports = __webpack_require__(200);
-
-
-/***/ },
-/* 1 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	var $                 = __webpack_require__(2)
-	  , $export           = __webpack_require__(3)
-	  , DESCRIPTORS       = __webpack_require__(8)
-	  , createDesc        = __webpack_require__(7)
-	  , html              = __webpack_require__(14)
-	  , cel               = __webpack_require__(15)
-	  , has               = __webpack_require__(17)
-	  , cof               = __webpack_require__(18)
-	  , invoke            = __webpack_require__(19)
-	  , fails             = __webpack_require__(9)
-	  , anObject          = __webpack_require__(20)
-	  , aFunction         = __webpack_require__(13)
-	  , isObject          = __webpack_require__(16)
-	  , toObject          = __webpack_require__(21)
-	  , toIObject         = __webpack_require__(23)
-	  , toInteger         = __webpack_require__(25)
-	  , toIndex           = __webpack_require__(26)
-	  , toLength          = __webpack_require__(27)
-	  , IObject           = __webpack_require__(24)
-	  , IE_PROTO          = __webpack_require__(11)('__proto__')
-	  , createArrayMethod = __webpack_require__(28)
-	  , arrayIndexOf      = __webpack_require__(33)(false)
-	  , ObjectProto       = Object.prototype
-	  , ArrayProto        = Array.prototype
-	  , arraySlice        = ArrayProto.slice
-	  , arrayJoin         = ArrayProto.join
-	  , defineProperty    = $.setDesc
-	  , getOwnDescriptor  = $.getDesc
-	  , defineProperties  = $.setDescs
-	  , factories         = {}
-	  , IE8_DOM_DEFINE;
-
-	if(!DESCRIPTORS){
-	  IE8_DOM_DEFINE = !fails(function(){
-	    return defineProperty(cel('div'), 'a', {get: function(){ return 7; }}).a != 7;
-	  });
-	  $.setDesc = function(O, P, Attributes){
-	    if(IE8_DOM_DEFINE)try {
-	      return defineProperty(O, P, Attributes);
-	    } catch(e){ /* empty */ }
-	    if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
-	    if('value' in Attributes)anObject(O)[P] = Attributes.value;
-	    return O;
-	  };
-	  $.getDesc = function(O, P){
-	    if(IE8_DOM_DEFINE)try {
-	      return getOwnDescriptor(O, P);
-	    } catch(e){ /* empty */ }
-	    if(has(O, P))return createDesc(!ObjectProto.propertyIsEnumerable.call(O, P), O[P]);
-	  };
-	  $.setDescs = defineProperties = function(O, Properties){
-	    anObject(O);
-	    var keys   = $.getKeys(Properties)
-	      , length = keys.length
-	      , i = 0
-	      , P;
-	    while(length > i)$.setDesc(O, P = keys[i++], Properties[P]);
-	    return O;
-	  };
-	}
-	$export($export.S + $export.F * !DESCRIPTORS, 'Object', {
-	  // 19.1.2.6 / 15.2.3.3 Object.getOwnPropertyDescriptor(O, P)
-	  getOwnPropertyDescriptor: $.getDesc,
-	  // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
-	  defineProperty: $.setDesc,
-	  // 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)
-	  defineProperties: defineProperties
-	});
-
-	  // IE 8- don't enum bug keys
-	var keys1 = ('constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,' +
-	            'toLocaleString,toString,valueOf').split(',')
-	  // Additional keys for getOwnPropertyNames
-	  , keys2 = keys1.concat('length', 'prototype')
-	  , keysLen1 = keys1.length;
-
-	// Create object with `null` prototype: use iframe Object with cleared prototype
-	var createDict = function(){
-	  // Thrash, waste and sodomy: IE GC bug
-	  var iframe = cel('iframe')
-	    , i      = keysLen1
-	    , gt     = '>'
-	    , iframeDocument;
-	  iframe.style.display = 'none';
-	  html.appendChild(iframe);
-	  iframe.src = 'javascript:'; // eslint-disable-line no-script-url
-	  // createDict = iframe.contentWindow.Object;
-	  // html.removeChild(iframe);
-	  iframeDocument = iframe.contentWindow.document;
-	  iframeDocument.open();
-	  iframeDocument.write('<script>document.F=Object</script' + gt);
-	  iframeDocument.close();
-	  createDict = iframeDocument.F;
-	  while(i--)delete createDict.prototype[keys1[i]];
-	  return createDict();
-	};
-	var createGetKeys = function(names, length){
-	  return function(object){
-	    var O      = toIObject(object)
-	      , i      = 0
-	      , result = []
-	      , key;
-	    for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);
-	    // Don't enum bug & hidden keys
-	    while(length > i)if(has(O, key = names[i++])){
-	      ~arrayIndexOf(result, key) || result.push(key);
-	    }
-	    return result;
-	  };
-	};
-	var Empty = function(){};
-	$export($export.S, 'Object', {
-	  // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
-	  getPrototypeOf: $.getProto = $.getProto || function(O){
-	    O = toObject(O);
-	    if(has(O, IE_PROTO))return O[IE_PROTO];
-	    if(typeof O.constructor == 'function' && O instanceof O.constructor){
-	      return O.constructor.prototype;
-	    } return O instanceof Object ? ObjectProto : null;
-	  },
-	  // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
-	  getOwnPropertyNames: $.getNames = $.getNames || createGetKeys(keys2, keys2.length, true),
-	  // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
-	  create: $.create = $.create || function(O, /*?*/Properties){
-	    var result;
-	    if(O !== null){
-	      Empty.prototype = anObject(O);
-	      result = new Empty();
-	      Empty.prototype = null;
-	      // add "__proto__" for Object.getPrototypeOf shim
-	      result[IE_PROTO] = O;
-	    } else result = createDict();
-	    return Properties === undefined ? result : defineProperties(result, Properties);
-	  },
-	  // 19.1.2.14 / 15.2.3.14 Object.keys(O)
-	  keys: $.getKeys = $.getKeys || createGetKeys(keys1, keysLen1, false)
-	});
-
-	var construct = function(F, len, args){
-	  if(!(len in factories)){
-	    for(var n = [], i = 0; i < len; i++)n[i] = 'a[' + i + ']';
-	    factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
-	  }
-	  return factories[len](F, args);
-	};
-
-	// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)
-	$export($export.P, 'Function', {
-	  bind: function bind(that /*, args... */){
-	    var fn       = aFunction(this)
-	      , partArgs = arraySlice.call(arguments, 1);
-	    var bound = function(/* args... */){
-	      var args = partArgs.concat(arraySlice.call(arguments));
-	      return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
-	    };
-	    if(isObject(fn.prototype))bound.prototype = fn.prototype;
-	    return bound;
-	  }
-	});
-
-	// fallback for not array-like ES3 strings and DOM objects
-	$export($export.P + $export.F * fails(function(){
-	  if(html)arraySlice.call(html);
-	}), 'Array', {
-	  slice: function(begin, end){
-	    var len   = toLength(this.length)
-	      , klass = cof(this);
-	    end = end === undefined ? len : end;
-	    if(klass == 'Array')return arraySlice.call(this, begin, end);
-	    var start  = toIndex(begin, len)
-	      , upTo   = toIndex(end, len)
-	      , size   = toLength(upTo - start)
-	      , cloned = Array(size)
-	      , i      = 0;
-	    for(; i < size; i++)cloned[i] = klass == 'String'
-	      ? this.charAt(start + i)
-	      : this[start + i];
-	    return cloned;
-	  }
-	});
-	$export($export.P + $export.F * (IObject != Object), 'Array', {
-	  join: function join(separator){
-	    return arrayJoin.call(IObject(this), separator === undefined ? ',' : separator);
-	  }
-	});
-
-	// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
-	$export($export.S, 'Array', {isArray: __webpack_require__(30)});
-
-	var createArrayReduce = function(isRight){
-	  return function(callbackfn, memo){
-	    aFunction(callbackfn);
-	    var O      = IObject(this)
-	      , length = toLength(O.length)
-	      , index  = isRight ? length - 1 : 0
-	      , i      = isRight ? -1 : 1;
-	    if(arguments.length < 2)for(;;){
-	      if(index in O){
-	        memo = O[index];
-	        index += i;
-	        break;
-	      }
-	      index += i;
-	      if(isRight ? index < 0 : length <= index){
-	        throw TypeError('Reduce of empty array with no initial value');
-	      }
-	    }
-	    for(;isRight ? index >= 0 : length > index; index += i)if(index in O){
-	      memo = callbackfn(memo, O[index], index, this);
-	    }
-	    return memo;
-	  };
-	};
-
-	var methodize = function($fn){
-	  return function(arg1/*, arg2 = undefined */){
-	    return $fn(this, arg1, arguments[1]);
-	  };
-	};
-
-	$export($export.P, 'Array', {
-	  // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
-	  forEach: $.each = $.each || methodize(createArrayMethod(0)),
-	  // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
-	  map: methodize(createArrayMethod(1)),
-	  // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
-	  filter: methodize(createArrayMethod(2)),
-	  // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])
-	  some: methodize(createArrayMethod(3)),
-	  // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])
-	  every: methodize(createArrayMethod(4)),
-	  // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
-	  reduce: createArrayReduce(false),
-	  // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])
-	  reduceRight: createArrayReduce(true),
-	  // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
-	  indexOf: methodize(arrayIndexOf),
-	  // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])
-	  lastIndexOf: function(el, fromIndex /* = @[*-1] */){
-	    var O      = toIObject(this)
-	      , length = toLength(O.length)
-	      , index  = length - 1;
-	    if(arguments.length > 1)index = Math.min(index, toInteger(fromIndex));
-	    if(index < 0)index = toLength(length + index);
-	    for(;index >= 0; index--)if(index in O)if(O[index] === el)return index;
-	    return -1;
-	  }
-	});
-
-	// 20.3.3.1 / 15.9.4.4 Date.now()
-	$export($export.S, 'Date', {now: function(){ return +new Date; }});
-
-	var lz = function(num){
-	  return num > 9 ? num : '0' + num;
-	};
-
-	// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
-	// PhantomJS / old WebKit has a broken implementations
-	$export($export.P + $export.F * (fails(function(){
-	  return new Date(-5e13 - 1).toISOString() != '0385-07-25T07:06:39.999Z';
-	}) || !fails(function(){
-	  new Date(NaN).toISOString();
-	})), 'Date', {
-	  toISOString: function toISOString(){
-	    if(!isFinite(this))throw RangeError('Invalid time value');
-	    var d = this
-	      , y = d.getUTCFullYear()
-	      , m = d.getUTCMilliseconds()
-	      , s = y < 0 ? '-' : y > 9999 ? '+' : '';
-	    return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +
-	      '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +
-	      'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +
-	      ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';
-	  }
-	});
-
-/***/ },
-/* 2 */
-/***/ function(module, exports) {
-
-	var $Object = Object;
-	module.exports = {
-	  create:     $Object.create,
-	  getProto:   $Object.getPrototypeOf,
-	  isEnum:     {}.propertyIsEnumerable,
-	  getDesc:    $Object.getOwnPropertyDescriptor,
-	  setDesc:    $Object.defineProperty,
-	  setDescs:   $Object.defineProperties,
-	  getKeys:    $Object.keys,
-	  getNames:   $Object.getOwnPropertyNames,
-	  getSymbols: $Object.getOwnPropertySymbols,
-	  each:       [].forEach
-	};
-
-/***/ },
-/* 3 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var global    = __webpack_require__(4)
-	  , core      = __webpack_require__(5)
-	  , hide      = __webpack_require__(6)
-	  , redefine  = __webpack_require__(10)
-	  , ctx       = __webpack_require__(12)
-	  , PROTOTYPE = 'prototype';
-
-	var $export = function(type, name, source){
-	  var IS_FORCED = type & $export.F
-	    , IS_GLOBAL = type & $export.G
-	    , IS_STATIC = type & $export.S
-	    , IS_PROTO  = type & $export.P
-	    , IS_BIND   = type & $export.B
-	    , target    = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]
-	    , exports   = IS_GLOBAL ? core : core[name] || (core[name] = {})
-	    , expProto  = exports[PROTOTYPE] || (exports[PROTOTYPE] = {})
-	    , key, own, out, exp;
-	  if(IS_GLOBAL)source = name;
-	  for(key in source){
-	    // contains in native
-	    own = !IS_FORCED && target && key in target;
-	    // export native or passed
-	    out = (own ? target : source)[key];
-	    // bind timers to global for call from export context
-	    exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
-	    // extend global
-	    if(target && !own)redefine(target, key, out);
-	    // export
-	    if(exports[key] != out)hide(exports, key, exp);
-	    if(IS_PROTO && expProto[key] != out)expProto[key] = out;
-	  }
-	};
-	global.core = core;
-	// type bitmap
-	$export.F = 1;  // forced
-	$export.G = 2;  // global
-	$export.S = 4;  // static
-	$export.P = 8;  // proto
-	$export.B = 16; // bind
-	$export.W = 32; // wrap
-	module.exports = $export;
-
-/***/ },
-/* 4 */
-/***/ function(module, exports) {
-
-	// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
-	var global = module.exports = typeof window != 'undefined' && window.Math == Math
-	  ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
-	if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
-
-/***/ },
-/* 5 */
-/***/ function(module, exports) {
-
-	var core = module.exports = {version: '1.2.6'};
-	if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
-
-/***/ },
-/* 6 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var $          = __webpack_require__(2)
-	  , createDesc = __webpack_require__(7);
-	module.exports = __webpack_require__(8) ? function(object, key, value){
-	  return $.setDesc(object, key, createDesc(1, value));
-	} : function(object, key, value){
-	  object[key] = value;
-	  return object;
-	};
-
-/***/ },
-/* 7 */
-/***/ function(module, exports) {
-
-	module.exports = function(bitmap, value){
-	  return {
-	    enumerable  : !(bitmap & 1),
-	    configurable: !(bitmap & 2),
-	    writable    : !(bitmap & 4),
-	    value       : value
-	  };
-	};
-
-/***/ },
-/* 8 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// Thank's IE8 for his funny defineProperty
-	module.exports = !__webpack_require__(9)(function(){
-	  return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
-	});
-
-/***/ },
-/* 9 */
-/***/ function(module, exports) {
-
-	module.exports = function(exec){
-	  try {
-	    return !!exec();
-	  } catch(e){
-	    return true;
-	  }
-	};
-
-/***/ },
-/* 10 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// add fake Function#toString
-	// for correct work wrapped methods / constructors with methods like LoDash isNative
-	var global    = __webpack_require__(4)
-	  , hide      = __webpack_require__(6)
-	  , SRC       = __webpack_require__(11)('src')
-	  , TO_STRING = 'toString'
-	  , $toString = Function[TO_STRING]
-	  , TPL       = ('' + $toString).split(TO_STRING);
-
-	__webpack_require__(5).inspectSource = function(it){
-	  return $toString.call(it);
-	};
-
-	(module.exports = function(O, key, val, safe){
-	  if(typeof val == 'function'){
-	    val.hasOwnProperty(SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
-	    val.hasOwnProperty('name') || hide(val, 'name', key);
-	  }
-	  if(O === global){
-	    O[key] = val;
-	  } else {
-	    if(!safe)delete O[key];
-	    hide(O, key, val);
-	  }
-	})(Function.prototype, TO_STRING, function toString(){
-	  return typeof this == 'function' && this[SRC] || $toString.call(this);
-	});
-
-/***/ },
-/* 11 */
-/***/ function(module, exports) {
-
-	var id = 0
-	  , px = Math.random();
-	module.exports = function(key){
-	  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
-	};
-
-/***/ },
-/* 12 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// optional / simple context binding
-	var aFunction = __webpack_require__(13);
-	module.exports = function(fn, that, length){
-	  aFunction(fn);
-	  if(that === undefined)return fn;
-	  switch(length){
-	    case 1: return function(a){
-	      return fn.call(that, a);
-	    };
-	    case 2: return function(a, b){
-	      return fn.call(that, a, b);
-	    };
-	    case 3: return function(a, b, c){
-	      return fn.call(that, a, b, c);
-	    };
-	  }
-	  return function(/* ...args */){
-	    return fn.apply(that, arguments);
-	  };
-	};
-
-/***/ },
-/* 13 */
-/***/ function(module, exports) {
-
-	module.exports = function(it){
-	  if(typeof it != 'function')throw TypeError(it + ' is not a function!');
-	  return it;
-	};
-
-/***/ },
-/* 14 */
-/***/ function(module, exports, __webpack_require__) {
-
-	module.exports = __webpack_require__(4).document && document.documentElement;
-
-/***/ },
-/* 15 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var isObject = __webpack_require__(16)
-	  , document = __webpack_require__(4).document
-	  // in old IE typeof document.createElement is 'object'
-	  , is = isObject(document) && isObject(document.createElement);
-	module.exports = function(it){
-	  return is ? document.createElement(it) : {};
-	};
-
-/***/ },
-/* 16 */
-/***/ function(module, exports) {
-
-	module.exports = function(it){
-	  return typeof it === 'object' ? it !== null : typeof it === 'function';
-	};
-
-/***/ },
-/* 17 */
-/***/ function(module, exports) {
-
-	var hasOwnProperty = {}.hasOwnProperty;
-	module.exports = function(it, key){
-	  return hasOwnProperty.call(it, key);
-	};
-
-/***/ },
-/* 18 */
-/***/ function(module, exports) {
-
-	var toString = {}.toString;
-
-	module.exports = function(it){
-	  return toString.call(it).slice(8, -1);
-	};
-
-/***/ },
-/* 19 */
-/***/ function(module, exports) {
-
-	// fast apply, http://jsperf.lnkit.com/fast-apply/5
-	module.exports = function(fn, args, that){
-	  var un = that === undefined;
-	  switch(args.length){
-	    case 0: return un ? fn()
-	                      : fn.call(that);
-	    case 1: return un ? fn(args[0])
-	                      : fn.call(that, args[0]);
-	    case 2: return un ? fn(args[0], args[1])
-	                      : fn.call(that, args[0], args[1]);
-	    case 3: return un ? fn(args[0], args[1], args[2])
-	                      : fn.call(that, args[0], args[1], args[2]);
-	    case 4: return un ? fn(args[0], args[1], args[2], args[3])
-	                      : fn.call(that, args[0], args[1], args[2], args[3]);
-	  } return              fn.apply(that, args);
-	};
-
-/***/ },
-/* 20 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var isObject = __webpack_require__(16);
-	module.exports = function(it){
-	  if(!isObject(it))throw TypeError(it + ' is not an object!');
-	  return it;
-	};
-
-/***/ },
-/* 21 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 7.1.13 ToObject(argument)
-	var defined = __webpack_require__(22);
-	module.exports = function(it){
-	  return Object(defined(it));
-	};
-
-/***/ },
-/* 22 */
-/***/ function(module, exports) {
-
-	// 7.2.1 RequireObjectCoercible(argument)
-	module.exports = function(it){
-	  if(it == undefined)throw TypeError("Can't call method on  " + it);
-	  return it;
-	};
-
-/***/ },
-/* 23 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// to indexed object, toObject with fallback for non-array-like ES3 strings
-	var IObject = __webpack_require__(24)
-	  , defined = __webpack_require__(22);
-	module.exports = function(it){
-	  return IObject(defined(it));
-	};
-
-/***/ },
-/* 24 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// fallback for non-array-like ES3 and non-enumerable old V8 strings
-	var cof = __webpack_require__(18);
-	module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
-	  return cof(it) == 'String' ? it.split('') : Object(it);
-	};
-
-/***/ },
-/* 25 */
-/***/ function(module, exports) {
-
-	// 7.1.4 ToInteger
-	var ceil  = Math.ceil
-	  , floor = Math.floor;
-	module.exports = function(it){
-	  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
-	};
-
-/***/ },
-/* 26 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var toInteger = __webpack_require__(25)
-	  , max       = Math.max
-	  , min       = Math.min;
-	module.exports = function(index, length){
-	  index = toInteger(index);
-	  return index < 0 ? max(index + length, 0) : min(index, length);
-	};
-
-/***/ },
-/* 27 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 7.1.15 ToLength
-	var toInteger = __webpack_require__(25)
-	  , min       = Math.min;
-	module.exports = function(it){
-	  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
-	};
-
-/***/ },
-/* 28 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 0 -> Array#forEach
-	// 1 -> Array#map
-	// 2 -> Array#filter
-	// 3 -> Array#some
-	// 4 -> Array#every
-	// 5 -> Array#find
-	// 6 -> Array#findIndex
-	var ctx      = __webpack_require__(12)
-	  , IObject  = __webpack_require__(24)
-	  , toObject = __webpack_require__(21)
-	  , toLength = __webpack_require__(27)
-	  , asc      = __webpack_require__(29);
-	module.exports = function(TYPE){
-	  var IS_MAP        = TYPE == 1
-	    , IS_FILTER     = TYPE == 2
-	    , IS_SOME       = TYPE == 3
-	    , IS_EVERY      = TYPE == 4
-	    , IS_FIND_INDEX = TYPE == 6
-	    , NO_HOLES      = TYPE == 5 || IS_FIND_INDEX;
-	  return function($this, callbackfn, that){
-	    var O      = toObject($this)
-	      , self   = IObject(O)
-	      , f      = ctx(callbackfn, that, 3)
-	      , length = toLength(self.length)
-	      , index  = 0
-	      , result = IS_MAP ? asc($this, length) : IS_FILTER ? asc($this, 0) : undefined
-	      , val, res;
-	    for(;length > index; index++)if(NO_HOLES || index in self){
-	      val = self[index];
-	      res = f(val, index, O);
-	      if(TYPE){
-	        if(IS_MAP)result[index] = res;            // map
-	        else if(res)switch(TYPE){
-	          case 3: return true;                    // some
-	          case 5: return val;                     // find
-	          case 6: return index;                   // findIndex
-	          case 2: result.push(val);               // filter
-	        } else if(IS_EVERY)return false;          // every
-	      }
-	    }
-	    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
-	  };
-	};
-
-/***/ },
-/* 29 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
-	var isObject = __webpack_require__(16)
-	  , isArray  = __webpack_require__(30)
-	  , SPECIES  = __webpack_require__(31)('species');
-	module.exports = function(original, length){
-	  var C;
-	  if(isArray(original)){
-	    C = original.constructor;
-	    // cross-realm fallback
-	    if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;
-	    if(isObject(C)){
-	      C = C[SPECIES];
-	      if(C === null)C = undefined;
-	    }
-	  } return new (C === undefined ? Array : C)(length);
-	};
-
-/***/ },
-/* 30 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 7.2.2 IsArray(argument)
-	var cof = __webpack_require__(18);
-	module.exports = Array.isArray || function(arg){
-	  return cof(arg) == 'Array';
-	};
-
-/***/ },
-/* 31 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var store  = __webpack_require__(32)('wks')
-	  , uid    = __webpack_require__(11)
-	  , Symbol = __webpack_require__(4).Symbol;
-	module.exports = function(name){
-	  return store[name] || (store[name] =
-	    Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name));
-	};
-
-/***/ },
-/* 32 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var global = __webpack_require__(4)
-	  , SHARED = '__core-js_shared__'
-	  , store  = global[SHARED] || (global[SHARED] = {});
-	module.exports = function(key){
-	  return store[key] || (store[key] = {});
-	};
-
-/***/ },
-/* 33 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// false -> Array#indexOf
-	// true  -> Array#includes
-	var toIObject = __webpack_require__(23)
-	  , toLength  = __webpack_require__(27)
-	  , toIndex   = __webpack_require__(26);
-	module.exports = function(IS_INCLUDES){
-	  return function($this, el, fromIndex){
-	    var O      = toIObject($this)
-	      , length = toLength(O.length)
-	      , index  = toIndex(fromIndex, length)
-	      , value;
-	    // Array#includes uses SameValueZero equality algorithm
-	    if(IS_INCLUDES && el != el)while(length > index){
-	      value = O[index++];
-	      if(value != value)return true;
-	    // Array#toIndex ignores holes, Array#includes - not
-	    } else for(;length > index; index++)if(IS_INCLUDES || index in O){
-	      if(O[index] === el)return IS_INCLUDES || index;
-	    } return !IS_INCLUDES && -1;
-	  };
-	};
-
-/***/ },
-/* 34 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	// ECMAScript 6 symbols shim
-	var $              = __webpack_require__(2)
-	  , global         = __webpack_require__(4)
-	  , has            = __webpack_require__(17)
-	  , DESCRIPTORS    = __webpack_require__(8)
-	  , $export        = __webpack_require__(3)
-	  , redefine       = __webpack_require__(10)
-	  , $fails         = __webpack_require__(9)
-	  , shared         = __webpack_require__(32)
-	  , setToStringTag = __webpack_require__(35)
-	  , uid            = __webpack_require__(11)
-	  , wks            = __webpack_require__(31)
-	  , keyOf          = __webpack_require__(36)
-	  , $names         = __webpack_require__(37)
-	  , enumKeys       = __webpack_require__(38)
-	  , isArray        = __webpack_require__(30)
-	  , anObject       = __webpack_require__(20)
-	  , toIObject      = __webpack_require__(23)
-	  , createDesc     = __webpack_require__(7)
-	  , getDesc        = $.getDesc
-	  , setDesc        = $.setDesc
-	  , _create        = $.create
-	  , getNames       = $names.get
-	  , $Symbol        = global.Symbol
-	  , $JSON          = global.JSON
-	  , _stringify     = $JSON && $JSON.stringify
-	  , setter         = false
-	  , HIDDEN         = wks('_hidden')
-	  , isEnum         = $.isEnum
-	  , SymbolRegistry = shared('symbol-registry')
-	  , AllSymbols     = shared('symbols')
-	  , useNative      = typeof $Symbol == 'function'
-	  , ObjectProto    = Object.prototype;
-
-	// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
-	var setSymbolDesc = DESCRIPTORS && $fails(function(){
-	  return _create(setDesc({}, 'a', {
-	    get: function(){ return setDesc(this, 'a', {value: 7}).a; }
-	  })).a != 7;
-	}) ? function(it, key, D){
-	  var protoDesc = getDesc(ObjectProto, key);
-	  if(protoDesc)delete ObjectProto[key];
-	  setDesc(it, key, D);
-	  if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);
-	} : setDesc;
-
-	var wrap = function(tag){
-	  var sym = AllSymbols[tag] = _create($Symbol.prototype);
-	  sym._k = tag;
-	  DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {
-	    configurable: true,
-	    set: function(value){
-	      if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;
-	      setSymbolDesc(this, tag, createDesc(1, value));
-	    }
-	  });
-	  return sym;
-	};
-
-	var isSymbol = function(it){
-	  return typeof it == 'symbol';
-	};
-
-	var $defineProperty = function defineProperty(it, key, D){
-	  if(D && has(AllSymbols, key)){
-	    if(!D.enumerable){
-	      if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));
-	      it[HIDDEN][key] = true;
-	    } else {
-	      if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;
-	      D = _create(D, {enumerable: createDesc(0, false)});
-	    } return setSymbolDesc(it, key, D);
-	  } return setDesc(it, key, D);
-	};
-	var $defineProperties = function defineProperties(it, P){
-	  anObject(it);
-	  var keys = enumKeys(P = toIObject(P))
-	    , i    = 0
-	    , l = keys.length
-	    , key;
-	  while(l > i)$defineProperty(it, key = keys[i++], P[key]);
-	  return it;
-	};
-	var $create = function create(it, P){
-	  return P === undefined ? _create(it) : $defineProperties(_create(it), P);
-	};
-	var $propertyIsEnumerable = function propertyIsEnumerable(key){
-	  var E = isEnum.call(this, key);
-	  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]
-	    ? E : true;
-	};
-	var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){
-	  var D = getDesc(it = toIObject(it), key);
-	  if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;
-	  return D;
-	};
-	var $getOwnPropertyNames = function getOwnPropertyNames(it){
-	  var names  = getNames(toIObject(it))
-	    , result = []
-	    , i      = 0
-	    , key;
-	  while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);
-	  return result;
-	};
-	var $getOwnPropertySymbols = function getOwnPropertySymbols(it){
-	  var names  = getNames(toIObject(it))
-	    , result = []
-	    , i      = 0
-	    , key;
-	  while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);
-	  return result;
-	};
-	var $stringify = function stringify(it){
-	  if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined
-	  var args = [it]
-	    , i    = 1
-	    , $$   = arguments
-	    , replacer, $replacer;
-	  while($$.length > i)args.push($$[i++]);
-	  replacer = args[1];
-	  if(typeof replacer == 'function')$replacer = replacer;
-	  if($replacer || !isArray(replacer))replacer = function(key, value){
-	    if($replacer)value = $replacer.call(this, key, value);
-	    if(!isSymbol(value))return value;
-	  };
-	  args[1] = replacer;
-	  return _stringify.apply($JSON, args);
-	};
-	var buggyJSON = $fails(function(){
-	  var S = $Symbol();
-	  // MS Edge converts symbol values to JSON as {}
-	  // WebKit converts symbol values to JSON as null
-	  // V8 throws on boxed symbols
-	  return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';
-	});
-
-	// 19.4.1.1 Symbol([description])
-	if(!useNative){
-	  $Symbol = function Symbol(){
-	    if(isSymbol(this))throw TypeError('Symbol is not a constructor');
-	    return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));
-	  };
-	  redefine($Symbol.prototype, 'toString', function toString(){
-	    return this._k;
-	  });
-
-	  isSymbol = function(it){
-	    return it instanceof $Symbol;
-	  };
-
-	  $.create     = $create;
-	  $.isEnum     = $propertyIsEnumerable;
-	  $.getDesc    = $getOwnPropertyDescriptor;
-	  $.setDesc    = $defineProperty;
-	  $.setDescs   = $defineProperties;
-	  $.getNames   = $names.get = $getOwnPropertyNames;
-	  $.getSymbols = $getOwnPropertySymbols;
-
-	  if(DESCRIPTORS && !__webpack_require__(39)){
-	    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
-	  }
-	}
-
-	var symbolStatics = {
-	  // 19.4.2.1 Symbol.for(key)
-	  'for': function(key){
-	    return has(SymbolRegistry, key += '')
-	      ? SymbolRegistry[key]
-	      : SymbolRegistry[key] = $Symbol(key);
-	  },
-	  // 19.4.2.5 Symbol.keyFor(sym)
-	  keyFor: function keyFor(key){
-	    return keyOf(SymbolRegistry, key);
-	  },
-	  useSetter: function(){ setter = true; },
-	  useSimple: function(){ setter = false; }
-	};
-	// 19.4.2.2 Symbol.hasInstance
-	// 19.4.2.3 Symbol.isConcatSpreadable
-	// 19.4.2.4 Symbol.iterator
-	// 19.4.2.6 Symbol.match
-	// 19.4.2.8 Symbol.replace
-	// 19.4.2.9 Symbol.search
-	// 19.4.2.10 Symbol.species
-	// 19.4.2.11 Symbol.split
-	// 19.4.2.12 Symbol.toPrimitive
-	// 19.4.2.13 Symbol.toStringTag
-	// 19.4.2.14 Symbol.unscopables
-	$.each.call((
-	  'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +
-	  'species,split,toPrimitive,toStringTag,unscopables'
-	).split(','), function(it){
-	  var sym = wks(it);
-	  symbolStatics[it] = useNative ? sym : wrap(sym);
-	});
-
-	setter = true;
-
-	$export($export.G + $export.W, {Symbol: $Symbol});
-
-	$export($export.S, 'Symbol', symbolStatics);
-
-	$export($export.S + $export.F * !useNative, 'Object', {
-	  // 19.1.2.2 Object.create(O [, Properties])
-	  create: $create,
-	  // 19.1.2.4 Object.defineProperty(O, P, Attributes)
-	  defineProperty: $defineProperty,
-	  // 19.1.2.3 Object.defineProperties(O, Properties)
-	  defineProperties: $defineProperties,
-	  // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
-	  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
-	  // 19.1.2.7 Object.getOwnPropertyNames(O)
-	  getOwnPropertyNames: $getOwnPropertyNames,
-	  // 19.1.2.8 Object.getOwnPropertySymbols(O)
-	  getOwnPropertySymbols: $getOwnPropertySymbols
-	});
-
-	// 24.3.2 JSON.stringify(value [, replacer [, space]])
-	$JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify});
-
-	// 19.4.3.5 Symbol.prototype[@@toStringTag]
-	setToStringTag($Symbol, 'Symbol');
-	// 20.2.1.9 Math[@@toStringTag]
-	setToStringTag(Math, 'Math', true);
-	// 24.3.3 JSON[@@toStringTag]
-	setToStringTag(global.JSON, 'JSON', true);
-
-/***/ },
-/* 35 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var def = __webpack_require__(2).setDesc
-	  , has = __webpack_require__(17)
-	  , TAG = __webpack_require__(31)('toStringTag');
-
-	module.exports = function(it, tag, stat){
-	  if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});
-	};
-
-/***/ },
-/* 36 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var $         = __webpack_require__(2)
-	  , toIObject = __webpack_require__(23);
-	module.exports = function(object, el){
-	  var O      = toIObject(object)
-	    , keys   = $.getKeys(O)
-	    , length = keys.length
-	    , index  = 0
-	    , key;
-	  while(length > index)if(O[key = keys[index++]] === el)return key;
-	};
-
-/***/ },
-/* 37 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
-	var toIObject = __webpack_require__(23)
-	  , getNames  = __webpack_require__(2).getNames
-	  , toString  = {}.toString;
-
-	var windowNames = typeof window == 'object' && Object.getOwnPropertyNames
-	  ? Object.getOwnPropertyNames(window) : [];
-
-	var getWindowNames = function(it){
-	  try {
-	    return getNames(it);
-	  } catch(e){
-	    return windowNames.slice();
-	  }
-	};
-
-	module.exports.get = function getOwnPropertyNames(it){
-	  if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);
-	  return getNames(toIObject(it));
-	};
-
-/***/ },
-/* 38 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// all enumerable object keys, includes symbols
-	var $ = __webpack_require__(2);
-	module.exports = function(it){
-	  var keys       = $.getKeys(it)
-	    , getSymbols = $.getSymbols;
-	  if(getSymbols){
-	    var symbols = getSymbols(it)
-	      , isEnum  = $.isEnum
-	      , i       = 0
-	      , key;
-	    while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);
-	  }
-	  return keys;
-	};
-
-/***/ },
-/* 39 */
-/***/ function(module, exports) {
-
-	module.exports = false;
-
-/***/ },
-/* 40 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.3.1 Object.assign(target, source)
-	var $export = __webpack_require__(3);
-
-	$export($export.S + $export.F, 'Object', {assign: __webpack_require__(41)});
-
-/***/ },
-/* 41 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.2.1 Object.assign(target, source, ...)
-	var $        = __webpack_require__(2)
-	  , toObject = __webpack_require__(21)
-	  , IObject  = __webpack_require__(24);
-
-	// should work with symbols and should have deterministic property order (V8 bug)
-	module.exports = __webpack_require__(9)(function(){
-	  var a = Object.assign
-	    , A = {}
-	    , B = {}
-	    , S = Symbol()
-	    , K = 'abcdefghijklmnopqrst';
-	  A[S] = 7;
-	  K.split('').forEach(function(k){ B[k] = k; });
-	  return a({}, A)[S] != 7 || Object.keys(a({}, B)).join('') != K;
-	}) ? function assign(target, source){ // eslint-disable-line no-unused-vars
-	  var T     = toObject(target)
-	    , $$    = arguments
-	    , $$len = $$.length
-	    , index = 1
-	    , getKeys    = $.getKeys
-	    , getSymbols = $.getSymbols
-	    , isEnum     = $.isEnum;
-	  while($$len > index){
-	    var S      = IObject($$[index++])
-	      , keys   = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)
-	      , length = keys.length
-	      , j      = 0
-	      , key;
-	    while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];
-	  }
-	  return T;
-	} : Object.assign;
-
-/***/ },
-/* 42 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.3.10 Object.is(value1, value2)
-	var $export = __webpack_require__(3);
-	$export($export.S, 'Object', {is: __webpack_require__(43)});
-
-/***/ },
-/* 43 */
-/***/ function(module, exports) {
-
-	// 7.2.9 SameValue(x, y)
-	module.exports = Object.is || function is(x, y){
-	  return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
-	};
-
-/***/ },
-/* 44 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.3.19 Object.setPrototypeOf(O, proto)
-	var $export = __webpack_require__(3);
-	$export($export.S, 'Object', {setPrototypeOf: __webpack_require__(45).set});
-
-/***/ },
-/* 45 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// Works with __proto__ only. Old v8 can't work with null proto objects.
-	/* eslint-disable no-proto */
-	var getDesc  = __webpack_require__(2).getDesc
-	  , isObject = __webpack_require__(16)
-	  , anObject = __webpack_require__(20);
-	var check = function(O, proto){
-	  anObject(O);
-	  if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!");
-	};
-	module.exports = {
-	  set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
-	    function(test, buggy, set){
-	      try {
-	        set = __webpack_require__(12)(Function.call, getDesc(Object.prototype, '__proto__').set, 2);
-	        set(test, []);
-	        buggy = !(test instanceof Array);
-	      } catch(e){ buggy = true; }
-	      return function setPrototypeOf(O, proto){
-	        check(O, proto);
-	        if(buggy)O.__proto__ = proto;
-	        else set(O, proto);
-	        return O;
-	      };
-	    }({}, false) : undefined),
-	  check: check
-	};
-
-/***/ },
-/* 46 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	// 19.1.3.6 Object.prototype.toString()
-	var classof = __webpack_require__(47)
-	  , test    = {};
-	test[__webpack_require__(31)('toStringTag')] = 'z';
-	if(test + '' != '[object z]'){
-	  __webpack_require__(10)(Object.prototype, 'toString', function toString(){
-	    return '[object ' + classof(this) + ']';
-	  }, true);
-	}
-
-/***/ },
-/* 47 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// getting tag from 19.1.3.6 Object.prototype.toString()
-	var cof = __webpack_require__(18)
-	  , TAG = __webpack_require__(31)('toStringTag')
-	  // ES3 wrong here
-	  , ARG = cof(function(){ return arguments; }()) == 'Arguments';
-
-	module.exports = function(it){
-	  var O, T, B;
-	  return it === undefined ? 'Undefined' : it === null ? 'Null'
-	    // @@toStringTag case
-	    : typeof (T = (O = Object(it))[TAG]) == 'string' ? T
-	    // builtinTag case
-	    : ARG ? cof(O)
-	    // ES3 arguments fallback
-	    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
-	};
-
-/***/ },
-/* 48 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.2.5 Object.freeze(O)
-	var isObject = __webpack_require__(16);
-
-	__webpack_require__(49)('freeze', function($freeze){
-	  return function freeze(it){
-	    return $freeze && isObject(it) ? $freeze(it) : it;
-	  };
-	});
-
-/***/ },
-/* 49 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// most Object methods by ES6 should accept primitives
-	var $export = __webpack_require__(3)
-	  , core    = __webpack_require__(5)
-	  , fails   = __webpack_require__(9);
-	module.exports = function(KEY, exec){
-	  var fn  = (core.Object || {})[KEY] || Object[KEY]
-	    , exp = {};
-	  exp[KEY] = exec(fn);
-	  $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);
-	};
-
-/***/ },
-/* 50 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.2.17 Object.seal(O)
-	var isObject = __webpack_require__(16);
-
-	__webpack_require__(49)('seal', function($seal){
-	  return function seal(it){
-	    return $seal && isObject(it) ? $seal(it) : it;
-	  };
-	});
-
-/***/ },
-/* 51 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.2.15 Object.preventExtensions(O)
-	var isObject = __webpack_require__(16);
-
-	__webpack_require__(49)('preventExtensions', function($preventExtensions){
-	  return function preventExtensions(it){
-	    return $preventExtensions && isObject(it) ? $preventExtensions(it) : it;
-	  };
-	});
-
-/***/ },
-/* 52 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.2.12 Object.isFrozen(O)
-	var isObject = __webpack_require__(16);
-
-	__webpack_require__(49)('isFrozen', function($isFrozen){
-	  return function isFrozen(it){
-	    return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;
-	  };
-	});
-
-/***/ },
-/* 53 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.2.13 Object.isSealed(O)
-	var isObject = __webpack_require__(16);
-
-	__webpack_require__(49)('isSealed', function($isSealed){
-	  return function isSealed(it){
-	    return isObject(it) ? $isSealed ? $isSealed(it) : false : true;
-	  };
-	});
-
-/***/ },
-/* 54 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.2.11 Object.isExtensible(O)
-	var isObject = __webpack_require__(16);
-
-	__webpack_require__(49)('isExtensible', function($isExtensible){
-	  return function isExtensible(it){
-	    return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;
-	  };
-	});
-
-/***/ },
-/* 55 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
-	var toIObject = __webpack_require__(23);
-
-	__webpack_require__(49)('getOwnPropertyDescriptor', function($getOwnPropertyDescriptor){
-	  return function getOwnPropertyDescriptor(it, key){
-	    return $getOwnPropertyDescriptor(toIObject(it), key);
-	  };
-	});
-
-/***/ },
-/* 56 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.2.9 Object.getPrototypeOf(O)
-	var toObject = __webpack_require__(21);
-
-	__webpack_require__(49)('getPrototypeOf', function($getPrototypeOf){
-	  return function getPrototypeOf(it){
-	    return $getPrototypeOf(toObject(it));
-	  };
-	});
-
-/***/ },
-/* 57 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.2.14 Object.keys(O)
-	var toObject = __webpack_require__(21);
-
-	__webpack_require__(49)('keys', function($keys){
-	  return function keys(it){
-	    return $keys(toObject(it));
-	  };
-	});
-
-/***/ },
-/* 58 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.2.7 Object.getOwnPropertyNames(O)
-	__webpack_require__(49)('getOwnPropertyNames', function(){
-	  return __webpack_require__(37).get;
-	});
-
-/***/ },
-/* 59 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var setDesc    = __webpack_require__(2).setDesc
-	  , createDesc = __webpack_require__(7)
-	  , has        = __webpack_require__(17)
-	  , FProto     = Function.prototype
-	  , nameRE     = /^\s*function ([^ (]*)/
-	  , NAME       = 'name';
-	// 19.2.4.2 name
-	NAME in FProto || __webpack_require__(8) && setDesc(FProto, NAME, {
-	  configurable: true,
-	  get: function(){
-	    var match = ('' + this).match(nameRE)
-	      , name  = match ? match[1] : '';
-	    has(this, NAME) || setDesc(this, NAME, createDesc(5, name));
-	    return name;
-	  }
-	});
-
-/***/ },
-/* 60 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	var $             = __webpack_require__(2)
-	  , isObject      = __webpack_require__(16)
-	  , HAS_INSTANCE  = __webpack_require__(31)('hasInstance')
-	  , FunctionProto = Function.prototype;
-	// 19.2.3.6 Function.prototype[@@hasInstance](V)
-	if(!(HAS_INSTANCE in FunctionProto))$.setDesc(FunctionProto, HAS_INSTANCE, {value: function(O){
-	  if(typeof this != 'function' || !isObject(O))return false;
-	  if(!isObject(this.prototype))return O instanceof this;
-	  // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
-	  while(O = $.getProto(O))if(this.prototype === O)return true;
-	  return false;
-	}});
-
-/***/ },
-/* 61 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	var $           = __webpack_require__(2)
-	  , global      = __webpack_require__(4)
-	  , has         = __webpack_require__(17)
-	  , cof         = __webpack_require__(18)
-	  , toPrimitive = __webpack_require__(62)
-	  , fails       = __webpack_require__(9)
-	  , $trim       = __webpack_require__(63).trim
-	  , NUMBER      = 'Number'
-	  , $Number     = global[NUMBER]
-	  , Base        = $Number
-	  , proto       = $Number.prototype
-	  // Opera ~12 has broken Object#toString
-	  , BROKEN_COF  = cof($.create(proto)) == NUMBER
-	  , TRIM        = 'trim' in String.prototype;
-
-	// 7.1.3 ToNumber(argument)
-	var toNumber = function(argument){
-	  var it = toPrimitive(argument, false);
-	  if(typeof it == 'string' && it.length > 2){
-	    it = TRIM ? it.trim() : $trim(it, 3);
-	    var first = it.charCodeAt(0)
-	      , third, radix, maxCode;
-	    if(first === 43 || first === 45){
-	      third = it.charCodeAt(2);
-	      if(third === 88 || third === 120)return NaN; // Number('+0x1') should be NaN, old V8 fix
-	    } else if(first === 48){
-	      switch(it.charCodeAt(1)){
-	        case 66 : case 98  : radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i
-	        case 79 : case 111 : radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i
-	        default : return +it;
-	      }
-	      for(var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++){
-	        code = digits.charCodeAt(i);
-	        // parseInt parses a string to a first unavailable symbol
-	        // but ToNumber should return NaN if a string contains unavailable symbols
-	        if(code < 48 || code > maxCode)return NaN;
-	      } return parseInt(digits, radix);
-	    }
-	  } return +it;
-	};
-
-	if(!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')){
-	  $Number = function Number(value){
-	    var it = arguments.length < 1 ? 0 : value
-	      , that = this;
-	    return that instanceof $Number
-	      // check on 1..constructor(foo) case
-	      && (BROKEN_COF ? fails(function(){ proto.valueOf.call(that); }) : cof(that) != NUMBER)
-	        ? new Base(toNumber(it)) : toNumber(it);
-	  };
-	  $.each.call(__webpack_require__(8) ? $.getNames(Base) : (
-	    // ES3:
-	    'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +
-	    // ES6 (in case, if modules with ES6 Number statics required before):
-	    'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +
-	    'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'
-	  ).split(','), function(key){
-	    if(has(Base, key) && !has($Number, key)){
-	      $.setDesc($Number, key, $.getDesc(Base, key));
-	    }
-	  });
-	  $Number.prototype = proto;
-	  proto.constructor = $Number;
-	  __webpack_require__(10)(global, NUMBER, $Number);
-	}
-
-/***/ },
-/* 62 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 7.1.1 ToPrimitive(input [, PreferredType])
-	var isObject = __webpack_require__(16);
-	// instead of the ES6 spec version, we didn't implement @@toPrimitive case
-	// and the second argument - flag - preferred type is a string
-	module.exports = function(it, S){
-	  if(!isObject(it))return it;
-	  var fn, val;
-	  if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
-	  if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
-	  if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
-	  throw TypeError("Can't convert object to primitive value");
-	};
-
-/***/ },
-/* 63 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var $export = __webpack_require__(3)
-	  , defined = __webpack_require__(22)
-	  , fails   = __webpack_require__(9)
-	  , spaces  = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
-	      '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'
-	  , space   = '[' + spaces + ']'
-	  , non     = '\u200b\u0085'
-	  , ltrim   = RegExp('^' + space + space + '*')
-	  , rtrim   = RegExp(space + space + '*$');
-
-	var exporter = function(KEY, exec){
-	  var exp  = {};
-	  exp[KEY] = exec(trim);
-	  $export($export.P + $export.F * fails(function(){
-	    return !!spaces[KEY]() || non[KEY]() != non;
-	  }), 'String', exp);
-	};
-
-	// 1 -> String#trimLeft
-	// 2 -> String#trimRight
-	// 3 -> String#trim
-	var trim = exporter.trim = function(string, TYPE){
-	  string = String(defined(string));
-	  if(TYPE & 1)string = string.replace(ltrim, '');
-	  if(TYPE & 2)string = string.replace(rtrim, '');
-	  return string;
-	};
-
-	module.exports = exporter;
-
-/***/ },
-/* 64 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.1.2.1 Number.EPSILON
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Number', {EPSILON: Math.pow(2, -52)});
-
-/***/ },
-/* 65 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.1.2.2 Number.isFinite(number)
-	var $export   = __webpack_require__(3)
-	  , _isFinite = __webpack_require__(4).isFinite;
-
-	$export($export.S, 'Number', {
-	  isFinite: function isFinite(it){
-	    return typeof it == 'number' && _isFinite(it);
-	  }
-	});
-
-/***/ },
-/* 66 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.1.2.3 Number.isInteger(number)
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Number', {isInteger: __webpack_require__(67)});
-
-/***/ },
-/* 67 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.1.2.3 Number.isInteger(number)
-	var isObject = __webpack_require__(16)
-	  , floor    = Math.floor;
-	module.exports = function isInteger(it){
-	  return !isObject(it) && isFinite(it) && floor(it) === it;
-	};
-
-/***/ },
-/* 68 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.1.2.4 Number.isNaN(number)
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Number', {
-	  isNaN: function isNaN(number){
-	    return number != number;
-	  }
-	});
-
-/***/ },
-/* 69 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.1.2.5 Number.isSafeInteger(number)
-	var $export   = __webpack_require__(3)
-	  , isInteger = __webpack_require__(67)
-	  , abs       = Math.abs;
-
-	$export($export.S, 'Number', {
-	  isSafeInteger: function isSafeInteger(number){
-	    return isInteger(number) && abs(number) <= 0x1fffffffffffff;
-	  }
-	});
-
-/***/ },
-/* 70 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.1.2.6 Number.MAX_SAFE_INTEGER
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Number', {MAX_SAFE_INTEGER: 0x1fffffffffffff});
-
-/***/ },
-/* 71 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.1.2.10 Number.MIN_SAFE_INTEGER
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Number', {MIN_SAFE_INTEGER: -0x1fffffffffffff});
-
-/***/ },
-/* 72 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.1.2.12 Number.parseFloat(string)
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Number', {parseFloat: parseFloat});
-
-/***/ },
-/* 73 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.1.2.13 Number.parseInt(string, radix)
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Number', {parseInt: parseInt});
-
-/***/ },
-/* 74 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.3 Math.acosh(x)
-	var $export = __webpack_require__(3)
-	  , log1p   = __webpack_require__(75)
-	  , sqrt    = Math.sqrt
-	  , $acosh  = Math.acosh;
-
-	// V8 bug https://code.google.com/p/v8/issues/detail?id=3509
-	$export($export.S + $export.F * !($acosh && Math.floor($acosh(Number.MAX_VALUE)) == 710), 'Math', {
-	  acosh: function acosh(x){
-	    return (x = +x) < 1 ? NaN : x > 94906265.62425156
-	      ? Math.log(x) + Math.LN2
-	      : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));
-	  }
-	});
-
-/***/ },
-/* 75 */
-/***/ function(module, exports) {
-
-	// 20.2.2.20 Math.log1p(x)
-	module.exports = Math.log1p || function log1p(x){
-	  return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);
-	};
-
-/***/ },
-/* 76 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.5 Math.asinh(x)
-	var $export = __webpack_require__(3);
-
-	function asinh(x){
-	  return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));
-	}
-
-	$export($export.S, 'Math', {asinh: asinh});
-
-/***/ },
-/* 77 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.7 Math.atanh(x)
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Math', {
-	  atanh: function atanh(x){
-	    return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;
-	  }
-	});
-
-/***/ },
-/* 78 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.9 Math.cbrt(x)
-	var $export = __webpack_require__(3)
-	  , sign    = __webpack_require__(79);
-
-	$export($export.S, 'Math', {
-	  cbrt: function cbrt(x){
-	    return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);
-	  }
-	});
-
-/***/ },
-/* 79 */
-/***/ function(module, exports) {
-
-	// 20.2.2.28 Math.sign(x)
-	module.exports = Math.sign || function sign(x){
-	  return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;
-	};
-
-/***/ },
-/* 80 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.11 Math.clz32(x)
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Math', {
-	  clz32: function clz32(x){
-	    return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;
-	  }
-	});
-
-/***/ },
-/* 81 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.12 Math.cosh(x)
-	var $export = __webpack_require__(3)
-	  , exp     = Math.exp;
-
-	$export($export.S, 'Math', {
-	  cosh: function cosh(x){
-	    return (exp(x = +x) + exp(-x)) / 2;
-	  }
-	});
-
-/***/ },
-/* 82 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.14 Math.expm1(x)
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Math', {expm1: __webpack_require__(83)});
-
-/***/ },
-/* 83 */
-/***/ function(module, exports) {
-
-	// 20.2.2.14 Math.expm1(x)
-	module.exports = Math.expm1 || function expm1(x){
-	  return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;
-	};
-
-/***/ },
-/* 84 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.16 Math.fround(x)
-	var $export   = __webpack_require__(3)
-	  , sign      = __webpack_require__(79)
-	  , pow       = Math.pow
-	  , EPSILON   = pow(2, -52)
-	  , EPSILON32 = pow(2, -23)
-	  , MAX32     = pow(2, 127) * (2 - EPSILON32)
-	  , MIN32     = pow(2, -126);
-
-	var roundTiesToEven = function(n){
-	  return n + 1 / EPSILON - 1 / EPSILON;
-	};
-
-
-	$export($export.S, 'Math', {
-	  fround: function fround(x){
-	    var $abs  = Math.abs(x)
-	      , $sign = sign(x)
-	      , a, result;
-	    if($abs < MIN32)return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;
-	    a = (1 + EPSILON32 / EPSILON) * $abs;
-	    result = a - (a - $abs);
-	    if(result > MAX32 || result != result)return $sign * Infinity;
-	    return $sign * result;
-	  }
-	});
-
-/***/ },
-/* 85 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])
-	var $export = __webpack_require__(3)
-	  , abs     = Math.abs;
-
-	$export($export.S, 'Math', {
-	  hypot: function hypot(value1, value2){ // eslint-disable-line no-unused-vars
-	    var sum   = 0
-	      , i     = 0
-	      , $$    = arguments
-	      , $$len = $$.length
-	      , larg  = 0
-	      , arg, div;
-	    while(i < $$len){
-	      arg = abs($$[i++]);
-	      if(larg < arg){
-	        div  = larg / arg;
-	        sum  = sum * div * div + 1;
-	        larg = arg;
-	      } else if(arg > 0){
-	        div  = arg / larg;
-	        sum += div * div;
-	      } else sum += arg;
-	    }
-	    return larg === Infinity ? Infinity : larg * Math.sqrt(sum);
-	  }
-	});
-
-/***/ },
-/* 86 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.18 Math.imul(x, y)
-	var $export = __webpack_require__(3)
-	  , $imul   = Math.imul;
-
-	// some WebKit versions fails with big numbers, some has wrong arity
-	$export($export.S + $export.F * __webpack_require__(9)(function(){
-	  return $imul(0xffffffff, 5) != -5 || $imul.length != 2;
-	}), 'Math', {
-	  imul: function imul(x, y){
-	    var UINT16 = 0xffff
-	      , xn = +x
-	      , yn = +y
-	      , xl = UINT16 & xn
-	      , yl = UINT16 & yn;
-	    return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);
-	  }
-	});
-
-/***/ },
-/* 87 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.21 Math.log10(x)
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Math', {
-	  log10: function log10(x){
-	    return Math.log(x) / Math.LN10;
-	  }
-	});
-
-/***/ },
-/* 88 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.20 Math.log1p(x)
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Math', {log1p: __webpack_require__(75)});
-
-/***/ },
-/* 89 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.22 Math.log2(x)
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Math', {
-	  log2: function log2(x){
-	    return Math.log(x) / Math.LN2;
-	  }
-	});
-
-/***/ },
-/* 90 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.28 Math.sign(x)
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Math', {sign: __webpack_require__(79)});
-
-/***/ },
-/* 91 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.30 Math.sinh(x)
-	var $export = __webpack_require__(3)
-	  , expm1   = __webpack_require__(83)
-	  , exp     = Math.exp;
-
-	// V8 near Chromium 38 has a problem with very small numbers
-	$export($export.S + $export.F * __webpack_require__(9)(function(){
-	  return !Math.sinh(-2e-17) != -2e-17;
-	}), 'Math', {
-	  sinh: function sinh(x){
-	    return Math.abs(x = +x) < 1
-	      ? (expm1(x) - expm1(-x)) / 2
-	      : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);
-	  }
-	});
-
-/***/ },
-/* 92 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.33 Math.tanh(x)
-	var $export = __webpack_require__(3)
-	  , expm1   = __webpack_require__(83)
-	  , exp     = Math.exp;
-
-	$export($export.S, 'Math', {
-	  tanh: function tanh(x){
-	    var a = expm1(x = +x)
-	      , b = expm1(-x);
-	    return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));
-	  }
-	});
-
-/***/ },
-/* 93 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 20.2.2.34 Math.trunc(x)
-	var $export = __webpack_require__(3);
-
-	$export($export.S, 'Math', {
-	  trunc: function trunc(it){
-	    return (it > 0 ? Math.floor : Math.ceil)(it);
-	  }
-	});
-
-/***/ },
-/* 94 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var $export        = __webpack_require__(3)
-	  , toIndex        = __webpack_require__(26)
-	  , fromCharCode   = String.fromCharCode
-	  , $fromCodePoint = String.fromCodePoint;
-
-	// length should be 1, old FF problem
-	$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {
-	  // 21.1.2.2 String.fromCodePoint(...codePoints)
-	  fromCodePoint: function fromCodePoint(x){ // eslint-disable-line no-unused-vars
-	    var res   = []
-	      , $$    = arguments
-	      , $$len = $$.length
-	      , i     = 0
-	      , code;
-	    while($$len > i){
-	      code = +$$[i++];
-	      if(toIndex(code, 0x10ffff) !== code)throw RangeError(code + ' is not a valid code point');
-	      res.push(code < 0x10000
-	        ? fromCharCode(code)
-	        : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)
-	      );
-	    } return res.join('');
-	  }
-	});
-
-/***/ },
-/* 95 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var $export   = __webpack_require__(3)
-	  , toIObject = __webpack_require__(23)
-	  , toLength  = __webpack_require__(27);
-
-	$export($export.S, 'String', {
-	  // 21.1.2.4 String.raw(callSite, ...substitutions)
-	  raw: function raw(callSite){
-	    var tpl   = toIObject(callSite.raw)
-	      , len   = toLength(tpl.length)
-	      , $$    = arguments
-	      , $$len = $$.length
-	      , res   = []
-	      , i     = 0;
-	    while(len > i){
-	      res.push(String(tpl[i++]));
-	      if(i < $$len)res.push(String($$[i]));
-	    } return res.join('');
-	  }
-	});
-
-/***/ },
-/* 96 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	// 21.1.3.25 String.prototype.trim()
-	__webpack_require__(63)('trim', function($trim){
-	  return function trim(){
-	    return $trim(this, 3);
-	  };
-	});
-
-/***/ },
-/* 97 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	var $export = __webpack_require__(3)
-	  , $at     = __webpack_require__(98)(false);
-	$export($export.P, 'String', {
-	  // 21.1.3.3 String.prototype.codePointAt(pos)
-	  codePointAt: function codePointAt(pos){
-	    return $at(this, pos);
-	  }
-	});
-
-/***/ },
-/* 98 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var toInteger = __webpack_require__(25)
-	  , defined   = __webpack_require__(22);
-	// true  -> String#at
-	// false -> String#codePointAt
-	module.exports = function(TO_STRING){
-	  return function(that, pos){
-	    var s = String(defined(that))
-	      , i = toInteger(pos)
-	      , l = s.length
-	      , a, b;
-	    if(i < 0 || i >= l)return TO_STRING ? '' : undefined;
-	    a = s.charCodeAt(i);
-	    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
-	      ? TO_STRING ? s.charAt(i) : a
-	      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
-	  };
-	};
-
-/***/ },
-/* 99 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])
-	'use strict';
-	var $export   = __webpack_require__(3)
-	  , toLength  = __webpack_require__(27)
-	  , context   = __webpack_require__(100)
-	  , ENDS_WITH = 'endsWith'
-	  , $endsWith = ''[ENDS_WITH];
-
-	$export($export.P + $export.F * __webpack_require__(102)(ENDS_WITH), 'String', {
-	  endsWith: function endsWith(searchString /*, endPosition = @length */){
-	    var that = context(this, searchString, ENDS_WITH)
-	      , $$   = arguments
-	      , endPosition = $$.length > 1 ? $$[1] : undefined
-	      , len    = toLength(that.length)
-	      , end    = endPosition === undefined ? len : Math.min(toLength(endPosition), len)
-	      , search = String(searchString);
-	    return $endsWith
-	      ? $endsWith.call(that, search, end)
-	      : that.slice(end - search.length, end) === search;
-	  }
-	});
-
-/***/ },
-/* 100 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// helper for String#{startsWith, endsWith, includes}
-	var isRegExp = __webpack_require__(101)
-	  , defined  = __webpack_require__(22);
-
-	module.exports = function(that, searchString, NAME){
-	  if(isRegExp(searchString))throw TypeError('String#' + NAME + " doesn't accept regex!");
-	  return String(defined(that));
-	};
-
-/***/ },
-/* 101 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 7.2.8 IsRegExp(argument)
-	var isObject = __webpack_require__(16)
-	  , cof      = __webpack_require__(18)
-	  , MATCH    = __webpack_require__(31)('match');
-	module.exports = function(it){
-	  var isRegExp;
-	  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
-	};
-
-/***/ },
-/* 102 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var MATCH = __webpack_require__(31)('match');
-	module.exports = function(KEY){
-	  var re = /./;
-	  try {
-	    '/./'[KEY](re);
-	  } catch(e){
-	    try {
-	      re[MATCH] = false;
-	      return !'/./'[KEY](re);
-	    } catch(f){ /* empty */ }
-	  } return true;
-	};
-
-/***/ },
-/* 103 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 21.1.3.7 String.prototype.includes(searchString, position = 0)
-	'use strict';
-	var $export  = __webpack_require__(3)
-	  , context  = __webpack_require__(100)
-	  , INCLUDES = 'includes';
-
-	$export($export.P + $export.F * __webpack_require__(102)(INCLUDES), 'String', {
-	  includes: function includes(searchString /*, position = 0 */){
-	    return !!~context(this, searchString, INCLUDES)
-	      .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
-	  }
-	});
-
-/***/ },
-/* 104 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var $export = __webpack_require__(3);
-
-	$export($export.P, 'String', {
-	  // 21.1.3.13 String.prototype.repeat(count)
-	  repeat: __webpack_require__(105)
-	});
-
-/***/ },
-/* 105 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	var toInteger = __webpack_require__(25)
-	  , defined   = __webpack_require__(22);
-
-	module.exports = function repeat(count){
-	  var str = String(defined(this))
-	    , res = ''
-	    , n   = toInteger(count);
-	  if(n < 0 || n == Infinity)throw RangeError("Count can't be negative");
-	  for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str;
-	  return res;
-	};
-
-/***/ },
-/* 106 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 21.1.3.18 String.prototype.startsWith(searchString [, position ])
-	'use strict';
-	var $export     = __webpack_require__(3)
-	  , toLength    = __webpack_require__(27)
-	  , context     = __webpack_require__(100)
-	  , STARTS_WITH = 'startsWith'
-	  , $startsWith = ''[STARTS_WITH];
-
-	$export($export.P + $export.F * __webpack_require__(102)(STARTS_WITH), 'String', {
-	  startsWith: function startsWith(searchString /*, position = 0 */){
-	    var that   = context(this, searchString, STARTS_WITH)
-	      , $$     = arguments
-	      , index  = toLength(Math.min($$.length > 1 ? $$[1] : undefined, that.length))
-	      , search = String(searchString);
-	    return $startsWith
-	      ? $startsWith.call(that, search, index)
-	      : that.slice(index, index + search.length) === search;
-	  }
-	});
-
-/***/ },
-/* 107 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	var $at  = __webpack_require__(98)(true);
-
-	// 21.1.3.27 String.prototype[@@iterator]()
-	__webpack_require__(108)(String, 'String', function(iterated){
-	  this._t = String(iterated); // target
-	  this._i = 0;                // next index
-	// 21.1.5.2.1 %StringIteratorPrototype%.next()
-	}, function(){
-	  var O     = this._t
-	    , index = this._i
-	    , point;
-	  if(index >= O.length)return {value: undefined, done: true};
-	  point = $at(O, index);
-	  this._i += point.length;
-	  return {value: point, done: false};
-	});
-
-/***/ },
-/* 108 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	var LIBRARY        = __webpack_require__(39)
-	  , $export        = __webpack_require__(3)
-	  , redefine       = __webpack_require__(10)
-	  , hide           = __webpack_require__(6)
-	  , has            = __webpack_require__(17)
-	  , Iterators      = __webpack_require__(109)
-	  , $iterCreate    = __webpack_require__(110)
-	  , setToStringTag = __webpack_require__(35)
-	  , getProto       = __webpack_require__(2).getProto
-	  , ITERATOR       = __webpack_require__(31)('iterator')
-	  , BUGGY          = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`
-	  , FF_ITERATOR    = '@@iterator'
-	  , KEYS           = 'keys'
-	  , VALUES         = 'values';
-
-	var returnThis = function(){ return this; };
-
-	module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){
-	  $iterCreate(Constructor, NAME, next);
-	  var getMethod = function(kind){
-	    if(!BUGGY && kind in proto)return proto[kind];
-	    switch(kind){
-	      case KEYS: return function keys(){ return new Constructor(this, kind); };
-	      case VALUES: return function values(){ return new Constructor(this, kind); };
-	    } return function entries(){ return new Constructor(this, kind); };
-	  };
-	  var TAG        = NAME + ' Iterator'
-	    , DEF_VALUES = DEFAULT == VALUES
-	    , VALUES_BUG = false
-	    , proto      = Base.prototype
-	    , $native    = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]
-	    , $default   = $native || getMethod(DEFAULT)
-	    , methods, key;
-	  // Fix native
-	  if($native){
-	    var IteratorPrototype = getProto($default.call(new Base));
-	    // Set @@toStringTag to native iterators
-	    setToStringTag(IteratorPrototype, TAG, true);
-	    // FF fix
-	    if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);
-	    // fix Array#{values, @@iterator}.name in V8 / FF
-	    if(DEF_VALUES && $native.name !== VALUES){
-	      VALUES_BUG = true;
-	      $default = function values(){ return $native.call(this); };
-	    }
-	  }
-	  // Define iterator
-	  if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){
-	    hide(proto, ITERATOR, $default);
-	  }
-	  // Plug for library
-	  Iterators[NAME] = $default;
-	  Iterators[TAG]  = returnThis;
-	  if(DEFAULT){
-	    methods = {
-	      values:  DEF_VALUES  ? $default : getMethod(VALUES),
-	      keys:    IS_SET      ? $default : getMethod(KEYS),
-	      entries: !DEF_VALUES ? $default : getMethod('entries')
-	    };
-	    if(FORCED)for(key in methods){
-	      if(!(key in proto))redefine(proto, key, methods[key]);
-	    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
-	  }
-	  return methods;
-	};
-
-/***/ },
-/* 109 */
-/***/ function(module, exports) {
-
-	module.exports = {};
-
-/***/ },
-/* 110 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	var $              = __webpack_require__(2)
-	  , descriptor     = __webpack_require__(7)
-	  , setToStringTag = __webpack_require__(35)
-	  , IteratorPrototype = {};
-
-	// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
-	__webpack_require__(6)(IteratorPrototype, __webpack_require__(31)('iterator'), function(){ return this; });
-
-	module.exports = function(Constructor, NAME, next){
-	  Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});
-	  setToStringTag(Constructor, NAME + ' Iterator');
-	};
-
-/***/ },
-/* 111 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	var ctx         = __webpack_require__(12)
-	  , $export     = __webpack_require__(3)
-	  , toObject    = __webpack_require__(21)
-	  , call        = __webpack_require__(112)
-	  , isArrayIter = __webpack_require__(113)
-	  , toLength    = __webpack_require__(27)
-	  , getIterFn   = __webpack_require__(114);
-	$export($export.S + $export.F * !__webpack_require__(115)(function(iter){ Array.from(iter); }), 'Array', {
-	  // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
-	  from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){
-	    var O       = toObject(arrayLike)
-	      , C       = typeof this == 'function' ? this : Array
-	      , $$      = arguments
-	      , $$len   = $$.length
-	      , mapfn   = $$len > 1 ? $$[1] : undefined
-	      , mapping = mapfn !== undefined
-	      , index   = 0
-	      , iterFn  = getIterFn(O)
-	      , length, result, step, iterator;
-	    if(mapping)mapfn = ctx(mapfn, $$len > 2 ? $$[2] : undefined, 2);
-	    // if object isn't iterable or it's array with default iterator - use simple case
-	    if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){
-	      for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){
-	        result[index] = mapping ? call(iterator, mapfn, [step.value, index], true) : step.value;
-	      }
-	    } else {
-	      length = toLength(O.length);
-	      for(result = new C(length); length > index; index++){
-	        result[index] = mapping ? mapfn(O[index], index) : O[index];
-	      }
-	    }
-	    result.length = index;
-	    return result;
-	  }
-	});
-
-
-/***/ },
-/* 112 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// call something on iterator step with safe closing on error
-	var anObject = __webpack_require__(20);
-	module.exports = function(iterator, fn, value, entries){
-	  try {
-	    return entries ? fn(anObject(value)[0], value[1]) : fn(value);
-	  // 7.4.6 IteratorClose(iterator, completion)
-	  } catch(e){
-	    var ret = iterator['return'];
-	    if(ret !== undefined)anObject(ret.call(iterator));
-	    throw e;
-	  }
-	};
-
-/***/ },
-/* 113 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// check on default Array iterator
-	var Iterators  = __webpack_require__(109)
-	  , ITERATOR   = __webpack_require__(31)('iterator')
-	  , ArrayProto = Array.prototype;
-
-	module.exports = function(it){
-	  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
-	};
-
-/***/ },
-/* 114 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var classof   = __webpack_require__(47)
-	  , ITERATOR  = __webpack_require__(31)('iterator')
-	  , Iterators = __webpack_require__(109);
-	module.exports = __webpack_require__(5).getIteratorMethod = function(it){
-	  if(it != undefined)return it[ITERATOR]
-	    || it['@@iterator']
-	    || Iterators[classof(it)];
-	};
-
-/***/ },
-/* 115 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var ITERATOR     = __webpack_require__(31)('iterator')
-	  , SAFE_CLOSING = false;
-
-	try {
-	  var riter = [7][ITERATOR]();
-	  riter['return'] = function(){ SAFE_CLOSING = true; };
-	  Array.from(riter, function(){ throw 2; });
-	} catch(e){ /* empty */ }
-
-	module.exports = function(exec, skipClosing){
-	  if(!skipClosing && !SAFE_CLOSING)return false;
-	  var safe = false;
-	  try {
-	    var arr  = [7]
-	      , iter = arr[ITERATOR]();
-	    iter.next = function(){ return {done: safe = true}; };
-	    arr[ITERATOR] = function(){ return iter; };
-	    exec(arr);
-	  } catch(e){ /* empty */ }
-	  return safe;
-	};
-
-/***/ },
-/* 116 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	var $export = __webpack_require__(3);
-
-	// WebKit Array.of isn't generic
-	$export($export.S + $export.F * __webpack_require__(9)(function(){
-	  function F(){}
-	  return !(Array.of.call(F) instanceof F);
-	}), 'Array', {
-	  // 22.1.2.3 Array.of( ...items)
-	  of: function of(/* ...args */){
-	    var index  = 0
-	      , $$     = arguments
-	      , $$len  = $$.length
-	      , result = new (typeof this == 'function' ? this : Array)($$len);
-	    while($$len > index)result[index] = $$[index++];
-	    result.length = $$len;
-	    return result;
-	  }
-	});
-
-/***/ },
-/* 117 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	var addToUnscopables = __webpack_require__(118)
-	  , step             = __webpack_require__(119)
-	  , Iterators        = __webpack_require__(109)
-	  , toIObject        = __webpack_require__(23);
-
-	// 22.1.3.4 Array.prototype.entries()
-	// 22.1.3.13 Array.prototype.keys()
-	// 22.1.3.29 Array.prototype.values()
-	// 22.1.3.30 Array.prototype[@@iterator]()
-	module.exports = __webpack_require__(108)(Array, 'Array', function(iterated, kind){
-	  this._t = toIObject(iterated); // target
-	  this._i = 0;                   // next index
-	  this._k = kind;                // kind
-	// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
-	}, function(){
-	  var O     = this._t
-	    , kind  = this._k
-	    , index = this._i++;
-	  if(!O || index >= O.length){
-	    this._t = undefined;
-	    return step(1);
-	  }
-	  if(kind == 'keys'  )return step(0, index);
-	  if(kind == 'values')return step(0, O[index]);
-	  return step(0, [index, O[index]]);
-	}, 'values');
-
-	// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
-	Iterators.Arguments = Iterators.Array;
-
-	addToUnscopables('keys');
-	addToUnscopables('values');
-	addToUnscopables('entries');
-
-/***/ },
-/* 118 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 22.1.3.31 Array.prototype[@@unscopables]
-	var UNSCOPABLES = __webpack_require__(31)('unscopables')
-	  , ArrayProto  = Array.prototype;
-	if(ArrayProto[UNSCOPABLES] == undefined)__webpack_require__(6)(ArrayProto, UNSCOPABLES, {});
-	module.exports = function(key){
-	  ArrayProto[UNSCOPABLES][key] = true;
-	};
-
-/***/ },
-/* 119 */
-/***/ function(module, exports) {
-
-	module.exports = function(done, value){
-	  return {value: value, done: !!done};
-	};
-
-/***/ },
-/* 120 */
-/***/ function(module, exports, __webpack_require__) {
-
-	__webpack_require__(121)('Array');
-
-/***/ },
-/* 121 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	var global      = __webpack_require__(4)
-	  , $           = __webpack_require__(2)
-	  , DESCRIPTORS = __webpack_require__(8)
-	  , SPECIES     = __webpack_require__(31)('species');
-
-	module.exports = function(KEY){
-	  var C = global[KEY];
-	  if(DESCRIPTORS && C && !C[SPECIES])$.setDesc(C, SPECIES, {
-	    configurable: true,
-	    get: function(){ return this; }
-	  });
-	};
-
-/***/ },
-/* 122 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
-	var $export = __webpack_require__(3);
-
-	$export($export.P, 'Array', {copyWithin: __webpack_require__(123)});
-
-	__webpack_require__(118)('copyWithin');
-
-/***/ },
-/* 123 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
-	'use strict';
-	var toObject = __webpack_require__(21)
-	  , toIndex  = __webpack_require__(26)
-	  , toLength = __webpack_require__(27);
-
-	module.exports = [].copyWithin || function copyWithin(target/*= 0*/, start/*= 0, end = @length*/){
-	  var O     = toObject(this)
-	    , len   = toLength(O.length)
-	    , to    = toIndex(target, len)
-	    , from  = toIndex(start, len)
-	    , $$    = arguments
-	    , end   = $$.length > 2 ? $$[2] : undefined
-	    , count = Math.min((end === undefined ? len : toIndex(end, len)) - from, len - to)
-	    , inc   = 1;
-	  if(from < to && to < from + count){
-	    inc  = -1;
-	    from += count - 1;
-	    to   += count - 1;
-	  }
-	  while(count-- > 0){
-	    if(from in O)O[to] = O[from];
-	    else delete O[to];
-	    to   += inc;
-	    from += inc;
-	  } return O;
-	};
-
-/***/ },
-/* 124 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
-	var $export = __webpack_require__(3);
-
-	$export($export.P, 'Array', {fill: __webpack_require__(125)});
-
-	__webpack_require__(118)('fill');
-
-/***/ },
-/* 125 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
-	'use strict';
-	var toObject = __webpack_require__(21)
-	  , toIndex  = __webpack_require__(26)
-	  , toLength = __webpack_require__(27);
-	module.exports = [].fill || function fill(value /*, start = 0, end = @length */){
-	  var O      = toObject(this)
-	    , length = toLength(O.length)
-	    , $$     = arguments
-	    , $$len  = $$.length
-	    , index  = toIndex($$len > 1 ? $$[1] : undefined, length)
-	    , end    = $$len > 2 ? $$[2] : undefined
-	    , endPos = end === undefined ? length : toIndex(end, length);
-	  while(endPos > index)O[index++] = value;
-	  return O;
-	};
-
-/***/ },
-/* 126 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
-	var $export = __webpack_require__(3)
-	  , $find   = __webpack_require__(28)(5)
-	  , KEY     = 'find'
-	  , forced  = true;
-	// Shouldn't skip holes
-	if(KEY in [])Array(1)[KEY](function(){ forced = false; });
-	$export($export.P + $export.F * forced, 'Array', {
-	  find: function find(callbackfn/*, that = undefined */){
-	    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
-	  }
-	});
-	__webpack_require__(118)(KEY);
-
-/***/ },
-/* 127 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)
-	var $export = __webpack_require__(3)
-	  , $find   = __webpack_require__(28)(6)
-	  , KEY     = 'findIndex'
-	  , forced  = true;
-	// Shouldn't skip holes
-	if(KEY in [])Array(1)[KEY](function(){ forced = false; });
-	$export($export.P + $export.F * forced, 'Array', {
-	  findIndex: function findIndex(callbackfn/*, that = undefined */){
-	    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
-	  }
-	});
-	__webpack_require__(118)(KEY);
-
-/***/ },
-/* 128 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var $        = __webpack_require__(2)
-	  , global   = __webpack_require__(4)
-	  , isRegExp = __webpack_require__(101)
-	  , $flags   = __webpack_require__(129)
-	  , $RegExp  = global.RegExp
-	  , Base     = $RegExp
-	  , proto    = $RegExp.prototype
-	  , re1      = /a/g
-	  , re2      = /a/g
-	  // "new" creates a new object, old webkit buggy here
-	  , CORRECT_NEW = new $RegExp(re1) !== re1;
-
-	if(__webpack_require__(8) && (!CORRECT_NEW || __webpack_require__(9)(function(){
-	  re2[__webpack_require__(31)('match')] = false;
-	  // RegExp constructor can alter flags and IsRegExp works correct with @@match
-	  return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';
-	}))){
-	  $RegExp = function RegExp(p, f){
-	    var piRE = isRegExp(p)
-	      , fiU  = f === undefined;
-	    return !(this instanceof $RegExp) && piRE && p.constructor === $RegExp && fiU ? p
-	      : CORRECT_NEW
-	        ? new Base(piRE && !fiU ? p.source : p, f)
-	        : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f);
-	  };
-	  $.each.call($.getNames(Base), function(key){
-	    key in $RegExp || $.setDesc($RegExp, key, {
-	      configurable: true,
-	      get: function(){ return Base[key]; },
-	      set: function(it){ Base[key] = it; }
-	    });
-	  });
-	  proto.constructor = $RegExp;
-	  $RegExp.prototype = proto;
-	  __webpack_require__(10)(global, 'RegExp', $RegExp);
-	}
-
-	__webpack_require__(121)('RegExp');
-
-/***/ },
-/* 129 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	// 21.2.5.3 get RegExp.prototype.flags
-	var anObject = __webpack_require__(20);
-	module.exports = function(){
-	  var that   = anObject(this)
-	    , result = '';
-	  if(that.global)     result += 'g';
-	  if(that.ignoreCase) result += 'i';
-	  if(that.multiline)  result += 'm';
-	  if(that.unicode)    result += 'u';
-	  if(that.sticky)     result += 'y';
-	  return result;
-	};
-
-/***/ },
-/* 130 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 21.2.5.3 get RegExp.prototype.flags()
-	var $ = __webpack_require__(2);
-	if(__webpack_require__(8) && /./g.flags != 'g')$.setDesc(RegExp.prototype, 'flags', {
-	  configurable: true,
-	  get: __webpack_require__(129)
-	});
-
-/***/ },
-/* 131 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// @@match logic
-	__webpack_require__(132)('match', 1, function(defined, MATCH){
-	  // 21.1.3.11 String.prototype.match(regexp)
-	  return function match(regexp){
-	    'use strict';
-	    var O  = defined(this)
-	      , fn = regexp == undefined ? undefined : regexp[MATCH];
-	    return fn !== undefined ? fn.call(regexp, O

<TRUNCATED>


[31/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/argparse/lib/action/subparsers.js
----------------------------------------------------------------------
diff --git a/node_modules/argparse/lib/action/subparsers.js b/node_modules/argparse/lib/action/subparsers.js
deleted file mode 100644
index 99dfedd..0000000
--- a/node_modules/argparse/lib/action/subparsers.js
+++ /dev/null
@@ -1,149 +0,0 @@
-/** internal
- * class ActionSubparsers
- *
- * Support the creation of such sub-commands with the addSubparsers()
- *
- * This class inherited from [[Action]]
- **/
-'use strict';
-
-var util    = require('util');
-var format  = require('util').format;
-
-
-var Action = require('../action');
-
-// Constants
-var c = require('../const');
-
-// Errors
-var argumentErrorHelper = require('../argument/error');
-
-
-/*:nodoc:*
- * new ChoicesPseudoAction(name, help)
- *
- * Create pseudo action for correct help text
- *
- **/
-function ChoicesPseudoAction(name, help) {
-  var options = {
-    optionStrings: [],
-    dest: name,
-    help: help
-  };
-
-  Action.call(this, options);
-}
-
-util.inherits(ChoicesPseudoAction, Action);
-
-/**
- * new ActionSubparsers(options)
- * - options (object): options hash see [[Action.new]]
- *
- **/
-function ActionSubparsers(options) {
-  options = options || {};
-  options.dest = options.dest || c.SUPPRESS;
-  options.nargs = c.PARSER;
-
-  this.debug = (options.debug === true);
-
-  this._progPrefix = options.prog;
-  this._parserClass = options.parserClass;
-  this._nameParserMap = {};
-  this._choicesActions = [];
-
-  options.choices = this._nameParserMap;
-  Action.call(this, options);
-}
-
-util.inherits(ActionSubparsers, Action);
-
-/*:nodoc:*
- * ActionSubparsers#addParser(name, options) -> ArgumentParser
- * - name (string): sub-command name
- * - options (object): see [[ArgumentParser.new]]
- *
- *  Note:
- *  addParser supports an additional aliases option,
- *  which allows multiple strings to refer to the same subparser.
- *  This example, like svn, aliases co as a shorthand for checkout
- *
- **/
-ActionSubparsers.prototype.addParser = function (name, options) {
-  var parser;
-
-  var self = this;
-
-  options = options || {};
-
-  options.debug = (this.debug === true);
-
-  // set program from the existing prefix
-  if (!options.prog) {
-    options.prog = this._progPrefix + ' ' + name;
-  }
-
-  var aliases = options.aliases || [];
-
-  // create a pseudo-action to hold the choice help
-  if (!!options.help || typeof options.help === 'string') {
-    var help = options.help;
-    delete options.help;
-
-    var choiceAction = new ChoicesPseudoAction(name, help);
-    this._choicesActions.push(choiceAction);
-  }
-
-  // create the parser and add it to the map
-  parser = new this._parserClass(options);
-  this._nameParserMap[name] = parser;
-
-  // make parser available under aliases also
-  aliases.forEach(function (alias) {
-    self._nameParserMap[alias] = parser;
-  });
-
-  return parser;
-};
-
-ActionSubparsers.prototype._getSubactions = function () {
-  return this._choicesActions;
-};
-
-/*:nodoc:*
- * ActionSubparsers#call(parser, namespace, values, optionString) -> Void
- * - parser (ArgumentParser): current parser
- * - namespace (Namespace): namespace for output data
- * - values (Array): parsed values
- * - optionString (Array): input option string(not parsed)
- *
- * Call the action. Parse input aguments
- **/
-ActionSubparsers.prototype.call = function (parser, namespace, values) {
-  var parserName = values[0];
-  var argStrings = values.slice(1);
-
-  // set the parser name if requested
-  if (this.dest !== c.SUPPRESS) {
-    namespace[this.dest] = parserName;
-  }
-
-  // select the parser
-  if (this._nameParserMap[parserName]) {
-    parser = this._nameParserMap[parserName];
-  } else {
-    throw argumentErrorHelper(format(
-      'Unknown parser "%s" (choices: [%s]).',
-        parserName,
-        Object.keys(this._nameParserMap).join(', ')
-    ));
-  }
-
-  // parse all the remaining options into the namespace
-  parser.parseArgs(argStrings, namespace);
-};
-
-module.exports = ActionSubparsers;

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/argparse/lib/action/version.js
----------------------------------------------------------------------
diff --git a/node_modules/argparse/lib/action/version.js b/node_modules/argparse/lib/action/version.js
deleted file mode 100644
index 8053328..0000000
--- a/node_modules/argparse/lib/action/version.js
+++ /dev/null
@@ -1,47 +0,0 @@
-/*:nodoc:*
- * class ActionVersion
- *
- * Support action for printing program version
- * This class inherited from [[Action]]
- **/
-'use strict';
-
-var util = require('util');
-
-var Action = require('../action');
-
-//
-// Constants
-//
-var c = require('../const');
-
-/*:nodoc:*
- * new ActionVersion(options)
- * - options (object): options hash see [[Action.new]]
- *
- **/
-var ActionVersion = module.exports = function ActionVersion(options) {
-  options = options || {};
-  options.defaultValue = (options.defaultValue ? options.defaultValue : c.SUPPRESS);
-  options.dest = (options.dest || c.SUPPRESS);
-  options.nargs = 0;
-  this.version = options.version;
-  Action.call(this, options);
-};
-util.inherits(ActionVersion, Action);
-
-/*:nodoc:*
- * ActionVersion#call(parser, namespace, values, optionString) -> Void
- * - parser (ArgumentParser): current parser
- * - namespace (Namespace): namespace for output data
- * - values (Array): parsed values
- * - optionString (Array): input option string(not parsed)
- *
- * Print version and exit
- **/
-ActionVersion.prototype.call = function (parser) {
-  var version = this.version || parser.version;
-  var formatter = parser._getFormatter();
-  formatter.addText(version);
-  parser.exit(0, formatter.formatHelp());
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/argparse/lib/action_container.js
----------------------------------------------------------------------
diff --git a/node_modules/argparse/lib/action_container.js b/node_modules/argparse/lib/action_container.js
deleted file mode 100644
index 6f1237b..0000000
--- a/node_modules/argparse/lib/action_container.js
+++ /dev/null
@@ -1,482 +0,0 @@
-/** internal
- * class ActionContainer
- *
- * Action container. Parent for [[ArgumentParser]] and [[ArgumentGroup]]
- **/
-
-'use strict';
-
-var format = require('util').format;
-
-// Constants
-var c = require('./const');
-
-var $$ = require('./utils');
-
-//Actions
-var ActionHelp = require('./action/help');
-var ActionAppend = require('./action/append');
-var ActionAppendConstant = require('./action/append/constant');
-var ActionCount = require('./action/count');
-var ActionStore = require('./action/store');
-var ActionStoreConstant = require('./action/store/constant');
-var ActionStoreTrue = require('./action/store/true');
-var ActionStoreFalse = require('./action/store/false');
-var ActionVersion = require('./action/version');
-var ActionSubparsers = require('./action/subparsers');
-
-// Errors
-var argumentErrorHelper = require('./argument/error');
-
-/**
- * new ActionContainer(options)
- *
- * Action container. Parent for [[ArgumentParser]] and [[ArgumentGroup]]
- *
- * ##### Options:
- *
- * - `description` -- A description of what the program does
- * - `prefixChars`  -- Characters that prefix optional arguments
- * - `argumentDefault`  -- The default value for all arguments
- * - `conflictHandler` -- The conflict handler to use for duplicate arguments
- **/
-var ActionContainer = module.exports = function ActionContainer(options) {
-  options = options || {};
-
-  this.description = options.description;
-  this.argumentDefault = options.argumentDefault;
-  this.prefixChars = options.prefixChars || '';
-  this.conflictHandler = options.conflictHandler;
-
-  // set up registries
-  this._registries = {};
-
-  // register actions
-  this.register('action', null, ActionStore);
-  this.register('action', 'store', ActionStore);
-  this.register('action', 'storeConst', ActionStoreConstant);
-  this.register('action', 'storeTrue', ActionStoreTrue);
-  this.register('action', 'storeFalse', ActionStoreFalse);
-  this.register('action', 'append', ActionAppend);
-  this.register('action', 'appendConst', ActionAppendConstant);
-  this.register('action', 'count', ActionCount);
-  this.register('action', 'help', ActionHelp);
-  this.register('action', 'version', ActionVersion);
-  this.register('action', 'parsers', ActionSubparsers);
-
-  // raise an exception if the conflict handler is invalid
-  this._getHandler();
-
-  // action storage
-  this._actions = [];
-  this._optionStringActions = {};
-
-  // groups
-  this._actionGroups = [];
-  this._mutuallyExclusiveGroups = [];
-
-  // defaults storage
-  this._defaults = {};
-
-  // determines whether an "option" looks like a negative number
-  // -1, -1.5 -5e+4
-  this._regexpNegativeNumber = new RegExp('^[-]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?$');
-
-  // whether or not there are any optionals that look like negative
-  // numbers -- uses a list so it can be shared and edited
-  this._hasNegativeNumberOptionals = [];
-};
-
-// Groups must be required, then ActionContainer already defined
-var ArgumentGroup = require('./argument/group');
-var MutuallyExclusiveGroup = require('./argument/exclusive');
-
-//
-// Registration methods
-//
-
-/**
- * ActionContainer#register(registryName, value, object) -> Void
- * - registryName (String) : object type action|type
- * - value (string) : keyword
- * - object (Object|Function) : handler
- *
- *  Register handlers
- **/
-ActionContainer.prototype.register = function (registryName, value, object) {
-  this._registries[registryName] = this._registries[registryName] || {};
-  this._registries[registryName][value] = object;
-};
-
-ActionContainer.prototype._registryGet = function (registryName, value, defaultValue) {
-  if (arguments.length < 3) {
-    defaultValue = null;
-  }
-  return this._registries[registryName][value] || defaultValue;
-};
-
-//
-// Namespace default accessor methods
-//
-
-/**
- * ActionContainer#setDefaults(options) -> Void
- * - options (object):hash of options see [[Action.new]]
- *
- * Set defaults
- **/
-ActionContainer.prototype.setDefaults = function (options) {
-  options = options || {};
-  for (var property in options) {
-    if ($$.has(options, property)) {
-      this._defaults[property] = options[property];
-    }
-  }
-
-  // if these defaults match any existing arguments, replace the previous
-  // default on the object with the new one
-  this._actions.forEach(function (action) {
-    if ($$.has(options, action.dest)) {
-      action.defaultValue = options[action.dest];
-    }
-  });
-};
-
-/**
- * ActionContainer#getDefault(dest) -> Mixed
- * - dest (string): action destination
- *
- * Return action default value
- **/
-ActionContainer.prototype.getDefault = function (dest) {
-  var result = $$.has(this._defaults, dest) ? this._defaults[dest] : null;
-
-  this._actions.forEach(function (action) {
-    if (action.dest === dest && $$.has(action, 'defaultValue')) {
-      result = action.defaultValue;
-    }
-  });
-
-  return result;
-};
-//
-// Adding argument actions
-//
-
-/**
- * ActionContainer#addArgument(args, options) -> Object
- * - args (String|Array): argument key, or array of argument keys
- * - options (Object): action objects see [[Action.new]]
- *
- * #### Examples
- * - addArgument([ '-f', '--foo' ], { action: 'store', defaultValue: 1, ... })
- * - addArgument([ 'bar' ], { action: 'store', nargs: 1, ... })
- * - addArgument('--baz', { action: 'store', nargs: 1, ... })
- **/
-ActionContainer.prototype.addArgument = function (args, options) {
-  args = args;
-  options = options || {};
-
-  if (typeof args === 'string') {
-    args = [ args ];
-  }
-  if (!Array.isArray(args)) {
-    throw new TypeError('addArgument first argument should be a string or an array');
-  }
-  if (typeof options !== 'object' || Array.isArray(options)) {
-    throw new TypeError('addArgument second argument should be a hash');
-  }
-
-  // if no positional args are supplied or only one is supplied and
-  // it doesn't look like an option string, parse a positional argument
-  if (!args || args.length === 1 && this.prefixChars.indexOf(args[0][0]) < 0) {
-    if (args && !!options.dest) {
-      throw new Error('dest supplied twice for positional argument');
-    }
-    options = this._getPositional(args, options);
-
-    // otherwise, we're adding an optional argument
-  } else {
-    options = this._getOptional(args, options);
-  }
-
-  // if no default was supplied, use the parser-level default
-  if (typeof options.defaultValue === 'undefined') {
-    var dest = options.dest;
-    if ($$.has(this._defaults, dest)) {
-      options.defaultValue = this._defaults[dest];
-    } else if (typeof this.argumentDefault !== 'undefined') {
-      options.defaultValue = this.argumentDefault;
-    }
-  }
-
-  // create the action object, and add it to the parser
-  var ActionClass = this._popActionClass(options);
-  if (typeof ActionClass !== 'function') {
-    throw new Error(format('Unknown action "%s".', ActionClass));
-  }
-  var action = new ActionClass(options);
-
-  // throw an error if the action type is not callable
-  var typeFunction = this._registryGet('type', action.type, action.type);
-  if (typeof typeFunction !== 'function') {
-    throw new Error(format('"%s" is not callable', typeFunction));
-  }
-
-  return this._addAction(action);
-};
-
-/**
- * ActionContainer#addArgumentGroup(options) -> ArgumentGroup
- * - options (Object): hash of options see [[ArgumentGroup.new]]
- *
- * Create new arguments groups
- **/
-ActionContainer.prototype.addArgumentGroup = function (options) {
-  var group = new ArgumentGroup(this, options);
-  this._actionGroups.push(group);
-  return group;
-};
-
-/**
- * ActionContainer#addMutuallyExclusiveGroup(options) -> ArgumentGroup
- * - options (Object): {required: false}
- *
- * Create new mutual exclusive groups
- **/
-ActionContainer.prototype.addMutuallyExclusiveGroup = function (options) {
-  var group = new MutuallyExclusiveGroup(this, options);
-  this._mutuallyExclusiveGroups.push(group);
-  return group;
-};
-
-ActionContainer.prototype._addAction = function (action) {
-  var self = this;
-
-  // resolve any conflicts
-  this._checkConflict(action);
-
-  // add to actions list
-  this._actions.push(action);
-  action.container = this;
-
-  // index the action by any option strings it has
-  action.optionStrings.forEach(function (optionString) {
-    self._optionStringActions[optionString] = action;
-  });
-
-  // set the flag if any option strings look like negative numbers
-  action.optionStrings.forEach(function (optionString) {
-    if (optionString.match(self._regexpNegativeNumber)) {
-      if (!self._hasNegativeNumberOptionals.some(Boolean)) {
-        self._hasNegativeNumberOptionals.push(true);
-      }
-    }
-  });
-
-  // return the created action
-  return action;
-};
-
-ActionContainer.prototype._removeAction = function (action) {
-  var actionIndex = this._actions.indexOf(action);
-  if (actionIndex >= 0) {
-    this._actions.splice(actionIndex, 1);
-  }
-};
-
-ActionContainer.prototype._addContainerActions = function (container) {
-  // collect groups by titles
-  var titleGroupMap = {};
-  this._actionGroups.forEach(function (group) {
-    if (titleGroupMap[group.title]) {
-      throw new Error(format('Cannot merge actions - two groups are named "%s".', group.title));
-    }
-    titleGroupMap[group.title] = group;
-  });
-
-  // map each action to its group
-  var groupMap = {};
-  function actionHash(action) {
-    // unique (hopefully?) string suitable as dictionary key
-    return action.getName();
-  }
-  container._actionGroups.forEach(function (group) {
-    // if a group with the title exists, use that, otherwise
-    // create a new group matching the container's group
-    if (!titleGroupMap[group.title]) {
-      titleGroupMap[group.title] = this.addArgumentGroup({
-        title: group.title,
-        description: group.description
-      });
-    }
-
-    // map the actions to their new group
-    group._groupActions.forEach(function (action) {
-      groupMap[actionHash(action)] = titleGroupMap[group.title];
-    });
-  }, this);
-
-  // add container's mutually exclusive groups
-  // NOTE: if add_mutually_exclusive_group ever gains title= and
-  // description= then this code will need to be expanded as above
-  var mutexGroup;
-  container._mutuallyExclusiveGroups.forEach(function (group) {
-    mutexGroup = this.addMutuallyExclusiveGroup({
-      required: group.required
-    });
-    // map the actions to their new mutex group
-    group._groupActions.forEach(function (action) {
-      groupMap[actionHash(action)] = mutexGroup;
-    });
-  }, this);  // forEach takes a 'this' argument
-
-  // add all actions to this container or their group
-  container._actions.forEach(function (action) {
-    var key = actionHash(action);
-    if (groupMap[key]) {
-      groupMap[key]._addAction(action);
-    } else {
-      this._addAction(action);
-    }
-  });
-};
-
-ActionContainer.prototype._getPositional = function (dest, options) {
-  if (Array.isArray(dest)) {
-    dest = dest[0];
-  }
-  // make sure required is not specified
-  if (options.required) {
-    throw new Error('"required" is an invalid argument for positionals.');
-  }
-
-  // mark positional arguments as required if at least one is
-  // always required
-  if (options.nargs !== c.OPTIONAL && options.nargs !== c.ZERO_OR_MORE) {
-    options.required = true;
-  }
-  if (options.nargs === c.ZERO_OR_MORE && typeof options.defaultValue === 'undefined') {
-    options.required = true;
-  }
-
-  // return the keyword arguments with no option strings
-  options.dest = dest;
-  options.optionStrings = [];
-  return options;
-};
-
-ActionContainer.prototype._getOptional = function (args, options) {
-  var prefixChars = this.prefixChars;
-  var optionStrings = [];
-  var optionStringsLong = [];
-
-  // determine short and long option strings
-  args.forEach(function (optionString) {
-    // error on strings that don't start with an appropriate prefix
-    if (prefixChars.indexOf(optionString[0]) < 0) {
-      throw new Error(format('Invalid option string "%s": must start with a "%s".',
-        optionString,
-        prefixChars
-      ));
-    }
-
-    // strings starting with two prefix characters are long options
-    optionStrings.push(optionString);
-    if (optionString.length > 1 && prefixChars.indexOf(optionString[1]) >= 0) {
-      optionStringsLong.push(optionString);
-    }
-  });
-
-  // infer dest, '--foo-bar' -> 'foo_bar' and '-x' -> 'x'
-  var dest = options.dest || null;
-  delete options.dest;
-
-  if (!dest) {
-    var optionStringDest = optionStringsLong.length ? optionStringsLong[0] : optionStrings[0];
-    dest = $$.trimChars(optionStringDest, this.prefixChars);
-
-    if (dest.length === 0) {
-      throw new Error(
-        format('dest= is required for options like "%s"', optionStrings.join(', '))
-      );
-    }
-    dest = dest.replace(/-/g, '_');
-  }
-
-  // return the updated keyword arguments
-  options.dest = dest;
-  options.optionStrings = optionStrings;
-
-  return options;
-};
-
-ActionContainer.prototype._popActionClass = function (options, defaultValue) {
-  defaultValue = defaultValue || null;
-
-  var action = (options.action || defaultValue);
-  delete options.action;
-
-  var actionClass = this._registryGet('action', action, action);
-  return actionClass;
-};
-
-ActionContainer.prototype._getHandler = function () {
-  var handlerString = this.conflictHandler;
-  var handlerFuncName = '_handleConflict' + $$.capitalize(handlerString);
-  var func = this[handlerFuncName];
-  if (typeof func === 'undefined') {
-    var msg = 'invalid conflict resolution value: ' + handlerString;
-    throw new Error(msg);
-  } else {
-    return func;
-  }
-};
-
-ActionContainer.prototype._checkConflict = function (action) {
-  var optionStringActions = this._optionStringActions;
-  var conflictOptionals = [];
-
-  // find all options that conflict with this option
-  // collect pairs, the string, and an existing action that it conflicts with
-  action.optionStrings.forEach(function (optionString) {
-    var conflOptional = optionStringActions[optionString];
-    if (typeof conflOptional !== 'undefined') {
-      conflictOptionals.push([ optionString, conflOptional ]);
-    }
-  });
-
-  if (conflictOptionals.length > 0) {
-    var conflictHandler = this._getHandler();
-    conflictHandler.call(this, action, conflictOptionals);
-  }
-};
-
-ActionContainer.prototype._handleConflictError = function (action, conflOptionals) {
-  var conflicts = conflOptionals.map(function (pair) { return pair[0]; });
-  conflicts = conflicts.join(', ');
-  throw argumentErrorHelper(
-    action,
-    format('Conflicting option string(s): %s', conflicts)
-  );
-};
-
-ActionContainer.prototype._handleConflictResolve = function (action, conflOptionals) {
-  // remove all conflicting options
-  var self = this;
-  conflOptionals.forEach(function (pair) {
-    var optionString = pair[0];
-    var conflictingAction = pair[1];
-    // remove the conflicting option string
-    var i = conflictingAction.optionStrings.indexOf(optionString);
-    if (i >= 0) {
-      conflictingAction.optionStrings.splice(i, 1);
-    }
-    delete self._optionStringActions[optionString];
-    // if the option now has no option string, remove it from the
-    // container holding it
-    if (conflictingAction.optionStrings.length === 0) {
-      conflictingAction.container._removeAction(conflictingAction);
-    }
-  });
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/argparse/lib/argparse.js
----------------------------------------------------------------------
diff --git a/node_modules/argparse/lib/argparse.js b/node_modules/argparse/lib/argparse.js
deleted file mode 100644
index f2a2c51..0000000
--- a/node_modules/argparse/lib/argparse.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-
-module.exports.ArgumentParser = require('./argument_parser.js');
-module.exports.Namespace = require('./namespace');
-module.exports.Action = require('./action');
-module.exports.HelpFormatter = require('./help/formatter.js');
-module.exports.Const = require('./const.js');
-
-module.exports.ArgumentDefaultsHelpFormatter =
-  require('./help/added_formatters.js').ArgumentDefaultsHelpFormatter;
-module.exports.RawDescriptionHelpFormatter =
-  require('./help/added_formatters.js').RawDescriptionHelpFormatter;
-module.exports.RawTextHelpFormatter =
-  require('./help/added_formatters.js').RawTextHelpFormatter;

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/argparse/lib/argument/error.js
----------------------------------------------------------------------
diff --git a/node_modules/argparse/lib/argument/error.js b/node_modules/argparse/lib/argument/error.js
deleted file mode 100644
index c8a02a0..0000000
--- a/node_modules/argparse/lib/argument/error.js
+++ /dev/null
@@ -1,50 +0,0 @@
-'use strict';
-
-
-var format  = require('util').format;
-
-
-var ERR_CODE = 'ARGError';
-
-/*:nodoc:*
- * argumentError(argument, message) -> TypeError
- * - argument (Object): action with broken argument
- * - message (String): error message
- *
- * Error format helper. An error from creating or using an argument
- * (optional or positional). The string value of this exception
- * is the message, augmented with information
- * about the argument that caused it.
- *
- * #####Example
- *
- *      var argumentErrorHelper = require('./argument/error');
- *      if (conflictOptionals.length > 0) {
- *        throw argumentErrorHelper(
- *          action,
- *          format('Conflicting option string(s): %s', conflictOptionals.join(', '))
- *        );
- *      }
- *
- **/
-module.exports = function (argument, message) {
-  var argumentName = null;
-  var errMessage;
-  var err;
-
-  if (argument.getName) {
-    argumentName = argument.getName();
-  } else {
-    argumentName = '' + argument;
-  }
-
-  if (!argumentName) {
-    errMessage = message;
-  } else {
-    errMessage = format('argument "%s": %s', argumentName, message);
-  }
-
-  err = new TypeError(errMessage);
-  err.code = ERR_CODE;
-  return err;
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/argparse/lib/argument/exclusive.js
----------------------------------------------------------------------
diff --git a/node_modules/argparse/lib/argument/exclusive.js b/node_modules/argparse/lib/argument/exclusive.js
deleted file mode 100644
index 8287e00..0000000
--- a/node_modules/argparse/lib/argument/exclusive.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/** internal
- * class MutuallyExclusiveGroup
- *
- * Group arguments.
- * By default, ArgumentParser groups command-line arguments
- * into “positional arguments” and “optional arguments”
- * when displaying help messages. When there is a better
- * conceptual grouping of arguments than this default one,
- * appropriate groups can be created using the addArgumentGroup() method
- *
- * This class inherited from [[ArgumentContainer]]
- **/
-'use strict';
-
-var util = require('util');
-
-var ArgumentGroup = require('./group');
-
-/**
- * new MutuallyExclusiveGroup(container, options)
- * - container (object): main container
- * - options (object): options.required -> true/false
- *
- * `required` could be an argument itself, but making it a property of
- * the options argument is more consistent with the JS adaptation of the Python)
- **/
-var MutuallyExclusiveGroup = module.exports = function MutuallyExclusiveGroup(container, options) {
-  var required;
-  options = options || {};
-  required = options.required || false;
-  ArgumentGroup.call(this, container);
-  this.required = required;
-
-};
-util.inherits(MutuallyExclusiveGroup, ArgumentGroup);
-
-
-MutuallyExclusiveGroup.prototype._addAction = function (action) {
-  var msg;
-  if (action.required) {
-    msg = 'mutually exclusive arguments must be optional';
-    throw new Error(msg);
-  }
-  action = this._container._addAction(action);
-  this._groupActions.push(action);
-  return action;
-};
-
-
-MutuallyExclusiveGroup.prototype._removeAction = function (action) {
-  this._container._removeAction(action);
-  this._groupActions.remove(action);
-};
-

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/argparse/lib/argument/group.js
----------------------------------------------------------------------
diff --git a/node_modules/argparse/lib/argument/group.js b/node_modules/argparse/lib/argument/group.js
deleted file mode 100644
index 58b271f..0000000
--- a/node_modules/argparse/lib/argument/group.js
+++ /dev/null
@@ -1,75 +0,0 @@
-/** internal
- * class ArgumentGroup
- *
- * Group arguments.
- * By default, ArgumentParser groups command-line arguments
- * into “positional arguments” and “optional arguments”
- * when displaying help messages. When there is a better
- * conceptual grouping of arguments than this default one,
- * appropriate groups can be created using the addArgumentGroup() method
- *
- * This class inherited from [[ArgumentContainer]]
- **/
-'use strict';
-
-var util = require('util');
-
-var ActionContainer = require('../action_container');
-
-
-/**
- * new ArgumentGroup(container, options)
- * - container (object): main container
- * - options (object): hash of group options
- *
- * #### options
- * - **prefixChars**  group name prefix
- * - **argumentDefault**  default argument value
- * - **title**  group title
- * - **description** group description
- *
- **/
-var ArgumentGroup = module.exports = function ArgumentGroup(container, options) {
-
-  options = options || {};
-
-  // add any missing keyword arguments by checking the container
-  options.conflictHandler = (options.conflictHandler || container.conflictHandler);
-  options.prefixChars = (options.prefixChars || container.prefixChars);
-  options.argumentDefault = (options.argumentDefault || container.argumentDefault);
-
-  ActionContainer.call(this, options);
-
-  // group attributes
-  this.title = options.title;
-  this._groupActions = [];
-
-  // share most attributes with the container
-  this._container = container;
-  this._registries = container._registries;
-  this._actions = container._actions;
-  this._optionStringActions = container._optionStringActions;
-  this._defaults = container._defaults;
-  this._hasNegativeNumberOptionals = container._hasNegativeNumberOptionals;
-  this._mutuallyExclusiveGroups = container._mutuallyExclusiveGroups;
-};
-util.inherits(ArgumentGroup, ActionContainer);
-
-
-ArgumentGroup.prototype._addAction = function (action) {
-  // Parent add action
-  action = ActionContainer.prototype._addAction.call(this, action);
-  this._groupActions.push(action);
-  return action;
-};
-
-
-ArgumentGroup.prototype._removeAction = function (action) {
-  // Parent remove action
-  ActionContainer.prototype._removeAction.call(this, action);
-  var actionIndex = this._groupActions.indexOf(action);
-  if (actionIndex >= 0) {
-    this._groupActions.splice(actionIndex, 1);
-  }
-};
-

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/argparse/lib/argument_parser.js
----------------------------------------------------------------------
diff --git a/node_modules/argparse/lib/argument_parser.js b/node_modules/argparse/lib/argument_parser.js
deleted file mode 100644
index bd9a59a..0000000
--- a/node_modules/argparse/lib/argument_parser.js
+++ /dev/null
@@ -1,1161 +0,0 @@
-/**
- * class ArgumentParser
- *
- * Object for parsing command line strings into js objects.
- *
- * Inherited from [[ActionContainer]]
- **/
-'use strict';
-
-var util    = require('util');
-var format  = require('util').format;
-var Path    = require('path');
-var sprintf = require('sprintf-js').sprintf;
-
-// Constants
-var c = require('./const');
-
-var $$ = require('./utils');
-
-var ActionContainer = require('./action_container');
-
-// Errors
-var argumentErrorHelper = require('./argument/error');
-
-var HelpFormatter = require('./help/formatter');
-
-var Namespace = require('./namespace');
-
-
-/**
- * new ArgumentParser(options)
- *
- * Create a new ArgumentParser object.
- *
- * ##### Options:
- * - `prog`  The name of the program (default: Path.basename(process.argv[1]))
- * - `usage`  A usage message (default: auto-generated from arguments)
- * - `description`  A description of what the program does
- * - `epilog`  Text following the argument descriptions
- * - `parents`  Parsers whose arguments should be copied into this one
- * - `formatterClass`  HelpFormatter class for printing help messages
- * - `prefixChars`  Characters that prefix optional arguments
- * - `fromfilePrefixChars` Characters that prefix files containing additional arguments
- * - `argumentDefault`  The default value for all arguments
- * - `addHelp`  Add a -h/-help option
- * - `conflictHandler`  Specifies how to handle conflicting argument names
- * - `debug`  Enable debug mode. Argument errors throw exception in
- *   debug mode and process.exit in normal. Used for development and
- *   testing (default: false)
- *
- * See also [original guide][1]
- *
- * [1]:http://docs.python.org/dev/library/argparse.html#argumentparser-objects
- **/
-function ArgumentParser(options) {
-  if (!(this instanceof ArgumentParser)) {
-    return new ArgumentParser(options);
-  }
-  var self = this;
-  options = options || {};
-
-  options.description = (options.description || null);
-  options.argumentDefault = (options.argumentDefault || null);
-  options.prefixChars = (options.prefixChars || '-');
-  options.conflictHandler = (options.conflictHandler || 'error');
-  ActionContainer.call(this, options);
-
-  options.addHelp = typeof options.addHelp === 'undefined' || !!options.addHelp;
-  options.parents = options.parents || [];
-  // default program name
-  options.prog = (options.prog || Path.basename(process.argv[1]));
-  this.prog = options.prog;
-  this.usage = options.usage;
-  this.epilog = options.epilog;
-  this.version = options.version;
-
-  this.debug = (options.debug === true);
-
-  this.formatterClass = (options.formatterClass || HelpFormatter);
-  this.fromfilePrefixChars = options.fromfilePrefixChars || null;
-  this._positionals = this.addArgumentGroup({ title: 'Positional arguments' });
-  this._optionals = this.addArgumentGroup({ title: 'Optional arguments' });
-  this._subparsers = null;
-
-  // register types
-  function FUNCTION_IDENTITY(o) {
-    return o;
-  }
-  this.register('type', 'auto', FUNCTION_IDENTITY);
-  this.register('type', null, FUNCTION_IDENTITY);
-  this.register('type', 'int', function (x) {
-    var result = parseInt(x, 10);
-    if (isNaN(result)) {
-      throw new Error(x + ' is not a valid integer.');
-    }
-    return result;
-  });
-  this.register('type', 'float', function (x) {
-    var result = parseFloat(x);
-    if (isNaN(result)) {
-      throw new Error(x + ' is not a valid float.');
-    }
-    return result;
-  });
-  this.register('type', 'string', function (x) {
-    return '' + x;
-  });
-
-  // add help and version arguments if necessary
-  var defaultPrefix = (this.prefixChars.indexOf('-') > -1) ? '-' : this.prefixChars[0];
-  if (options.addHelp) {
-    this.addArgument(
-      [ defaultPrefix + 'h', defaultPrefix + defaultPrefix + 'help' ],
-      {
-        action: 'help',
-        defaultValue: c.SUPPRESS,
-        help: 'Show this help message and exit.'
-      }
-    );
-  }
-  if (typeof this.version !== 'undefined') {
-    this.addArgument(
-      [ defaultPrefix + 'v', defaultPrefix + defaultPrefix + 'version' ],
-      {
-        action: 'version',
-        version: this.version,
-        defaultValue: c.SUPPRESS,
-        help: "Show program's version number and exit."
-      }
-    );
-  }
-
-  // add parent arguments and defaults
-  options.parents.forEach(function (parent) {
-    self._addContainerActions(parent);
-    if (typeof parent._defaults !== 'undefined') {
-      for (var defaultKey in parent._defaults) {
-        if (parent._defaults.hasOwnProperty(defaultKey)) {
-          self._defaults[defaultKey] = parent._defaults[defaultKey];
-        }
-      }
-    }
-  });
-}
-
-util.inherits(ArgumentParser, ActionContainer);
-
-/**
- * ArgumentParser#addSubparsers(options) -> [[ActionSubparsers]]
- * - options (object): hash of options see [[ActionSubparsers.new]]
- *
- * See also [subcommands][1]
- *
- * [1]:http://docs.python.org/dev/library/argparse.html#sub-commands
- **/
-ArgumentParser.prototype.addSubparsers = function (options) {
-  if (this._subparsers) {
-    this.error('Cannot have multiple subparser arguments.');
-  }
-
-  options = options || {};
-  options.debug = (this.debug === true);
-  options.optionStrings = [];
-  options.parserClass = (options.parserClass || ArgumentParser);
-
-
-  if (!!options.title || !!options.description) {
-
-    this._subparsers = this.addArgumentGroup({
-      title: (options.title || 'subcommands'),
-      description: options.description
-    });
-    delete options.title;
-    delete options.description;
-
-  } else {
-    this._subparsers = this._positionals;
-  }
-
-  // prog defaults to the usage message of this parser, skipping
-  // optional arguments and with no "usage:" prefix
-  if (!options.prog) {
-    var formatter = this._getFormatter();
-    var positionals = this._getPositionalActions();
-    var groups = this._mutuallyExclusiveGroups;
-    formatter.addUsage(this.usage, positionals, groups, '');
-    options.prog = formatter.formatHelp().trim();
-  }
-
-  // create the parsers action and add it to the positionals list
-  var ParsersClass = this._popActionClass(options, 'parsers');
-  var action = new ParsersClass(options);
-  this._subparsers._addAction(action);
-
-  // return the created parsers action
-  return action;
-};
-
-ArgumentParser.prototype._addAction = function (action) {
-  if (action.isOptional()) {
-    this._optionals._addAction(action);
-  } else {
-    this._positionals._addAction(action);
-  }
-  return action;
-};
-
-ArgumentParser.prototype._getOptionalActions = function () {
-  return this._actions.filter(function (action) {
-    return action.isOptional();
-  });
-};
-
-ArgumentParser.prototype._getPositionalActions = function () {
-  return this._actions.filter(function (action) {
-    return action.isPositional();
-  });
-};
-
-
-/**
- * ArgumentParser#parseArgs(args, namespace) -> Namespace|Object
- * - args (array): input elements
- * - namespace (Namespace|Object): result object
- *
- * Parsed args and throws error if some arguments are not recognized
- *
- * See also [original guide][1]
- *
- * [1]:http://docs.python.org/dev/library/argparse.html#the-parse-args-method
- **/
-ArgumentParser.prototype.parseArgs = function (args, namespace) {
-  var argv;
-  var result = this.parseKnownArgs(args, namespace);
-
-  args = result[0];
-  argv = result[1];
-  if (argv && argv.length > 0) {
-    this.error(
-      format('Unrecognized arguments: %s.', argv.join(' '))
-    );
-  }
-  return args;
-};
-
-/**
- * ArgumentParser#parseKnownArgs(args, namespace) -> array
- * - args (array): input options
- * - namespace (Namespace|Object): result object
- *
- * Parse known arguments and return tuple of result object
- * and unknown args
- *
- * See also [original guide][1]
- *
- * [1]:http://docs.python.org/dev/library/argparse.html#partial-parsing
- **/
-ArgumentParser.prototype.parseKnownArgs = function (args, namespace) {
-  var self = this;
-
-  // args default to the system args
-  args = args || process.argv.slice(2);
-
-  // default Namespace built from parser defaults
-  namespace = namespace || new Namespace();
-
-  self._actions.forEach(function (action) {
-    if (action.dest !== c.SUPPRESS) {
-      if (!$$.has(namespace, action.dest)) {
-        if (action.defaultValue !== c.SUPPRESS) {
-          var defaultValue = action.defaultValue;
-          if (typeof action.defaultValue === 'string') {
-            defaultValue = self._getValue(action, defaultValue);
-          }
-          namespace[action.dest] = defaultValue;
-        }
-      }
-    }
-  });
-
-  Object.keys(self._defaults).forEach(function (dest) {
-    namespace[dest] = self._defaults[dest];
-  });
-
-  // parse the arguments and exit if there are any errors
-  try {
-    var res = this._parseKnownArgs(args, namespace);
-
-    namespace = res[0];
-    args = res[1];
-    if ($$.has(namespace, c._UNRECOGNIZED_ARGS_ATTR)) {
-      args = $$.arrayUnion(args, namespace[c._UNRECOGNIZED_ARGS_ATTR]);
-      delete namespace[c._UNRECOGNIZED_ARGS_ATTR];
-    }
-    return [ namespace, args ];
-  } catch (e) {
-    this.error(e);
-  }
-};
-
-ArgumentParser.prototype._parseKnownArgs = function (argStrings, namespace) {
-  var self = this;
-
-  var extras = [];
-
-  // replace arg strings that are file references
-  if (this.fromfilePrefixChars !== null) {
-    argStrings = this._readArgsFromFiles(argStrings);
-  }
-  // map all mutually exclusive arguments to the other arguments
-  // they can't occur with
-  // Python has 'conflicts = action_conflicts.setdefault(mutex_action, [])'
-  // though I can't conceive of a way in which an action could be a member
-  // of two different mutually exclusive groups.
-
-  function actionHash(action) {
-    // some sort of hashable key for this action
-    // action itself cannot be a key in actionConflicts
-    // I think getName() (join of optionStrings) is unique enough
-    return action.getName();
-  }
-
-  var conflicts, key;
-  var actionConflicts = {};
-
-  this._mutuallyExclusiveGroups.forEach(function (mutexGroup) {
-    mutexGroup._groupActions.forEach(function (mutexAction, i, groupActions) {
-      key = actionHash(mutexAction);
-      if (!$$.has(actionConflicts, key)) {
-        actionConflicts[key] = [];
-      }
-      conflicts = actionConflicts[key];
-      conflicts.push.apply(conflicts, groupActions.slice(0, i));
-      conflicts.push.apply(conflicts, groupActions.slice(i + 1));
-    });
-  });
-
-  // find all option indices, and determine the arg_string_pattern
-  // which has an 'O' if there is an option at an index,
-  // an 'A' if there is an argument, or a '-' if there is a '--'
-  var optionStringIndices = {};
-
-  var argStringPatternParts = [];
-
-  argStrings.forEach(function (argString, argStringIndex) {
-    if (argString === '--') {
-      argStringPatternParts.push('-');
-      while (argStringIndex < argStrings.length) {
-        argStringPatternParts.push('A');
-        argStringIndex++;
-      }
-    } else {
-      // otherwise, add the arg to the arg strings
-      // and note the index if it was an option
-      var pattern;
-      var optionTuple = self._parseOptional(argString);
-      if (!optionTuple) {
-        pattern = 'A';
-      } else {
-        optionStringIndices[argStringIndex] = optionTuple;
-        pattern = 'O';
-      }
-      argStringPatternParts.push(pattern);
-    }
-  });
-  var argStringsPattern = argStringPatternParts.join('');
-
-  var seenActions = [];
-  var seenNonDefaultActions = [];
-
-
-  function takeAction(action, argumentStrings, optionString) {
-    seenActions.push(action);
-    var argumentValues = self._getValues(action, argumentStrings);
-
-    // error if this argument is not allowed with other previously
-    // seen arguments, assuming that actions that use the default
-    // value don't really count as "present"
-    if (argumentValues !== action.defaultValue) {
-      seenNonDefaultActions.push(action);
-      if (actionConflicts[actionHash(action)]) {
-        actionConflicts[actionHash(action)].forEach(function (actionConflict) {
-          if (seenNonDefaultActions.indexOf(actionConflict) >= 0) {
-            throw argumentErrorHelper(
-              action,
-              format('Not allowed with argument "%s".', actionConflict.getName())
-            );
-          }
-        });
-      }
-    }
-
-    if (argumentValues !== c.SUPPRESS) {
-      action.call(self, namespace, argumentValues, optionString);
-    }
-  }
-
-  function consumeOptional(startIndex) {
-    // get the optional identified at this index
-    var optionTuple = optionStringIndices[startIndex];
-    var action = optionTuple[0];
-    var optionString = optionTuple[1];
-    var explicitArg = optionTuple[2];
-
-    // identify additional optionals in the same arg string
-    // (e.g. -xyz is the same as -x -y -z if no args are required)
-    var actionTuples = [];
-
-    var args, argCount, start, stop;
-
-    for (;;) {
-      if (!action) {
-        extras.push(argStrings[startIndex]);
-        return startIndex + 1;
-      }
-      if (explicitArg) {
-        argCount = self._matchArgument(action, 'A');
-
-        // if the action is a single-dash option and takes no
-        // arguments, try to parse more single-dash options out
-        // of the tail of the option string
-        var chars = self.prefixChars;
-        if (argCount === 0 && chars.indexOf(optionString[1]) < 0) {
-          actionTuples.push([ action, [], optionString ]);
-          optionString = optionString[0] + explicitArg[0];
-          var newExplicitArg = explicitArg.slice(1) || null;
-          var optionalsMap = self._optionStringActions;
-
-          if (Object.keys(optionalsMap).indexOf(optionString) >= 0) {
-            action = optionalsMap[optionString];
-            explicitArg = newExplicitArg;
-          } else {
-            throw argumentErrorHelper(action, sprintf('ignored explicit argument %r', explicitArg));
-          }
-        } else if (argCount === 1) {
-          // if the action expect exactly one argument, we've
-          // successfully matched the option; exit the loop
-          stop = startIndex + 1;
-          args = [ explicitArg ];
-          actionTuples.push([ action, args, optionString ]);
-          break;
-        } else {
-          // error if a double-dash option did not use the
-          // explicit argument
-          throw argumentErrorHelper(action, sprintf('ignored explicit argument %r', explicitArg));
-        }
-      } else {
-        // if there is no explicit argument, try to match the
-        // optional's string arguments with the following strings
-        // if successful, exit the loop
-
-        start = startIndex + 1;
-        var selectedPatterns = argStringsPattern.substr(start);
-
-        argCount = self._matchArgument(action, selectedPatterns);
-        stop = start + argCount;
-
-
-        args = argStrings.slice(start, stop);
-
-        actionTuples.push([ action, args, optionString ]);
-        break;
-      }
-
-    }
-
-    // add the Optional to the list and return the index at which
-    // the Optional's string args stopped
-    if (actionTuples.length < 1) {
-      throw new Error('length should be > 0');
-    }
-    for (var i = 0; i < actionTuples.length; i++) {
-      takeAction.apply(self, actionTuples[i]);
-    }
-    return stop;
-  }
-
-  // the list of Positionals left to be parsed; this is modified
-  // by consume_positionals()
-  var positionals = self._getPositionalActions();
-
-  function consumePositionals(startIndex) {
-    // match as many Positionals as possible
-    var selectedPattern = argStringsPattern.substr(startIndex);
-    var argCounts = self._matchArgumentsPartial(positionals, selectedPattern);
-
-    // slice off the appropriate arg strings for each Positional
-    // and add the Positional and its args to the list
-    for (var i = 0; i < positionals.length; i++) {
-      var action = positionals[i];
-      var argCount = argCounts[i];
-      if (typeof argCount === 'undefined') {
-        continue;
-      }
-      var args = argStrings.slice(startIndex, startIndex + argCount);
-
-      startIndex += argCount;
-      takeAction(action, args);
-    }
-
-    // slice off the Positionals that we just parsed and return the
-    // index at which the Positionals' string args stopped
-    positionals = positionals.slice(argCounts.length);
-    return startIndex;
-  }
-
-  // consume Positionals and Optionals alternately, until we have
-  // passed the last option string
-  var startIndex = 0;
-  var position;
-
-  var maxOptionStringIndex = -1;
-
-  Object.keys(optionStringIndices).forEach(function (position) {
-    maxOptionStringIndex = Math.max(maxOptionStringIndex, parseInt(position, 10));
-  });
-
-  var positionalsEndIndex, nextOptionStringIndex;
-
-  while (startIndex <= maxOptionStringIndex) {
-    // consume any Positionals preceding the next option
-    nextOptionStringIndex = null;
-    for (position in optionStringIndices) {
-      if (!optionStringIndices.hasOwnProperty(position)) { continue; }
-
-      position = parseInt(position, 10);
-      if (position >= startIndex) {
-        if (nextOptionStringIndex !== null) {
-          nextOptionStringIndex = Math.min(nextOptionStringIndex, position);
-        } else {
-          nextOptionStringIndex = position;
-        }
-      }
-    }
-
-    if (startIndex !== nextOptionStringIndex) {
-      positionalsEndIndex = consumePositionals(startIndex);
-      // only try to parse the next optional if we didn't consume
-      // the option string during the positionals parsing
-      if (positionalsEndIndex > startIndex) {
-        startIndex = positionalsEndIndex;
-        continue;
-      } else {
-        startIndex = positionalsEndIndex;
-      }
-    }
-
-    // if we consumed all the positionals we could and we're not
-    // at the index of an option string, there were extra arguments
-    if (!optionStringIndices[startIndex]) {
-      var strings = argStrings.slice(startIndex, nextOptionStringIndex);
-      extras = extras.concat(strings);
-      startIndex = nextOptionStringIndex;
-    }
-    // consume the next optional and any arguments for it
-    startIndex = consumeOptional(startIndex);
-  }
-
-  // consume any positionals following the last Optional
-  var stopIndex = consumePositionals(startIndex);
-
-  // if we didn't consume all the argument strings, there were extras
-  extras = extras.concat(argStrings.slice(stopIndex));
-
-  // if we didn't use all the Positional objects, there were too few
-  // arg strings supplied.
-  if (positionals.length > 0) {
-    self.error('too few arguments');
-  }
-
-  // make sure all required actions were present
-  self._actions.forEach(function (action) {
-    if (action.required) {
-      if (seenActions.indexOf(action) < 0) {
-        self.error(format('Argument "%s" is required', action.getName()));
-      }
-    }
-  });
-
-  // make sure all required groups have one option present
-  var actionUsed = false;
-  self._mutuallyExclusiveGroups.forEach(function (group) {
-    if (group.required) {
-      actionUsed = group._groupActions.some(function (action) {
-        return seenNonDefaultActions.indexOf(action) !== -1;
-      });
-
-      // if no actions were used, report the error
-      if (!actionUsed) {
-        var names = [];
-        group._groupActions.forEach(function (action) {
-          if (action.help !== c.SUPPRESS) {
-            names.push(action.getName());
-          }
-        });
-        names = names.join(' ');
-        var msg = 'one of the arguments ' + names + ' is required';
-        self.error(msg);
-      }
-    }
-  });
-
-  // return the updated namespace and the extra arguments
-  return [ namespace, extras ];
-};
-
-ArgumentParser.prototype._readArgsFromFiles = function (argStrings) {
-  // expand arguments referencing files
-  var self = this;
-  var fs = require('fs');
-  var newArgStrings = [];
-  argStrings.forEach(function (argString) {
-    if (self.fromfilePrefixChars.indexOf(argString[0]) < 0) {
-      // for regular arguments, just add them back into the list
-      newArgStrings.push(argString);
-    } else {
-      // replace arguments referencing files with the file content
-      try {
-        var argstrs = [];
-        var filename = argString.slice(1);
-        var content = fs.readFileSync(filename, 'utf8');
-        content = content.trim().split('\n');
-        content.forEach(function (argLine) {
-          self.convertArgLineToArgs(argLine).forEach(function (arg) {
-            argstrs.push(arg);
-          });
-          argstrs = self._readArgsFromFiles(argstrs);
-        });
-        newArgStrings.push.apply(newArgStrings, argstrs);
-      } catch (error) {
-        return self.error(error.message);
-      }
-    }
-  });
-  return newArgStrings;
-};
-
-ArgumentParser.prototype.convertArgLineToArgs = function (argLine) {
-  return [ argLine ];
-};
-
-ArgumentParser.prototype._matchArgument = function (action, regexpArgStrings) {
-
-  // match the pattern for this action to the arg strings
-  var regexpNargs = new RegExp('^' + this._getNargsPattern(action));
-  var matches = regexpArgStrings.match(regexpNargs);
-  var message;
-
-  // throw an exception if we weren't able to find a match
-  if (!matches) {
-    switch (action.nargs) {
-      /*eslint-disable no-undefined*/
-      case undefined:
-      case null:
-        message = 'Expected one argument.';
-        break;
-      case c.OPTIONAL:
-        message = 'Expected at most one argument.';
-        break;
-      case c.ONE_OR_MORE:
-        message = 'Expected at least one argument.';
-        break;
-      default:
-        message = 'Expected %s argument(s)';
-    }
-
-    throw argumentErrorHelper(
-      action,
-      format(message, action.nargs)
-    );
-  }
-  // return the number of arguments matched
-  return matches[1].length;
-};
-
-ArgumentParser.prototype._matchArgumentsPartial = function (actions, regexpArgStrings) {
-  // progressively shorten the actions list by slicing off the
-  // final actions until we find a match
-  var self = this;
-  var result = [];
-  var actionSlice, pattern, matches;
-  var i, j;
-
-  function getLength(string) {
-    return string.length;
-  }
-
-  for (i = actions.length; i > 0; i--) {
-    pattern = '';
-    actionSlice = actions.slice(0, i);
-    for (j = 0; j < actionSlice.length; j++) {
-      pattern += self._getNargsPattern(actionSlice[j]);
-    }
-
-    pattern = new RegExp('^' + pattern);
-    matches = regexpArgStrings.match(pattern);
-
-    if (matches && matches.length > 0) {
-      // need only groups
-      matches = matches.splice(1);
-      result = result.concat(matches.map(getLength));
-      break;
-    }
-  }
-
-  // return the list of arg string counts
-  return result;
-};
-
-ArgumentParser.prototype._parseOptional = function (argString) {
-  var action, optionString, argExplicit, optionTuples;
-
-  // if it's an empty string, it was meant to be a positional
-  if (!argString) {
-    return null;
-  }
-
-  // if it doesn't start with a prefix, it was meant to be positional
-  if (this.prefixChars.indexOf(argString[0]) < 0) {
-    return null;
-  }
-
-  // if the option string is present in the parser, return the action
-  if (this._optionStringActions[argString]) {
-    return [ this._optionStringActions[argString], argString, null ];
-  }
-
-  // if it's just a single character, it was meant to be positional
-  if (argString.length === 1) {
-    return null;
-  }
-
-  // if the option string before the "=" is present, return the action
-  if (argString.indexOf('=') >= 0) {
-    optionString = argString.split('=', 1)[0];
-    argExplicit = argString.slice(optionString.length + 1);
-
-    if (this._optionStringActions[optionString]) {
-      action = this._optionStringActions[optionString];
-      return [ action, optionString, argExplicit ];
-    }
-  }
-
-  // search through all possible prefixes of the option string
-  // and all actions in the parser for possible interpretations
-  optionTuples = this._getOptionTuples(argString);
-
-  // if multiple actions match, the option string was ambiguous
-  if (optionTuples.length > 1) {
-    var optionStrings = optionTuples.map(function (optionTuple) {
-      return optionTuple[1];
-    });
-    this.error(format(
-          'Ambiguous option: "%s" could match %s.',
-          argString, optionStrings.join(', ')
-    ));
-  // if exactly one action matched, this segmentation is good,
-  // so return the parsed action
-  } else if (optionTuples.length === 1) {
-    return optionTuples[0];
-  }
-
-  // if it was not found as an option, but it looks like a negative
-  // number, it was meant to be positional
-  // unless there are negative-number-like options
-  if (argString.match(this._regexpNegativeNumber)) {
-    if (!this._hasNegativeNumberOptionals.some(Boolean)) {
-      return null;
-    }
-  }
-  // if it contains a space, it was meant to be a positional
-  if (argString.search(' ') >= 0) {
-    return null;
-  }
-
-  // it was meant to be an optional but there is no such option
-  // in this parser (though it might be a valid option in a subparser)
-  return [ null, argString, null ];
-};
-
-ArgumentParser.prototype._getOptionTuples = function (optionString) {
-  var result = [];
-  var chars = this.prefixChars;
-  var optionPrefix;
-  var argExplicit;
-  var action;
-  var actionOptionString;
-
-  // option strings starting with two prefix characters are only split at
-  // the '='
-  if (chars.indexOf(optionString[0]) >= 0 && chars.indexOf(optionString[1]) >= 0) {
-    if (optionString.indexOf('=') >= 0) {
-      var optionStringSplit = optionString.split('=', 1);
-
-      optionPrefix = optionStringSplit[0];
-      argExplicit = optionStringSplit[1];
-    } else {
-      optionPrefix = optionString;
-      argExplicit = null;
-    }
-
-    for (actionOptionString in this._optionStringActions) {
-      if (actionOptionString.substr(0, optionPrefix.length) === optionPrefix) {
-        action = this._optionStringActions[actionOptionString];
-        result.push([ action, actionOptionString, argExplicit ]);
-      }
-    }
-
-  // single character options can be concatenated with their arguments
-  // but multiple character options always have to have their argument
-  // separate
-  } else if (chars.indexOf(optionString[0]) >= 0 && chars.indexOf(optionString[1]) < 0) {
-    optionPrefix = optionString;
-    argExplicit = null;
-    var optionPrefixShort = optionString.substr(0, 2);
-    var argExplicitShort = optionString.substr(2);
-
-    for (actionOptionString in this._optionStringActions) {
-      if (!$$.has(this._optionStringActions, actionOptionString)) continue;
-
-      action = this._optionStringActions[actionOptionString];
-      if (actionOptionString === optionPrefixShort) {
-        result.push([ action, actionOptionString, argExplicitShort ]);
-      } else if (actionOptionString.substr(0, optionPrefix.length) === optionPrefix) {
-        result.push([ action, actionOptionString, argExplicit ]);
-      }
-    }
-
-  // shouldn't ever get here
-  } else {
-    throw new Error(format('Unexpected option string: %s.', optionString));
-  }
-  // return the collected option tuples
-  return result;
-};
-
-ArgumentParser.prototype._getNargsPattern = function (action) {
-  // in all examples below, we have to allow for '--' args
-  // which are represented as '-' in the pattern
-  var regexpNargs;
-
-  switch (action.nargs) {
-    // the default (null) is assumed to be a single argument
-    case undefined:
-    case null:
-      regexpNargs = '(-*A-*)';
-      break;
-    // allow zero or more arguments
-    case c.OPTIONAL:
-      regexpNargs = '(-*A?-*)';
-      break;
-    // allow zero or more arguments
-    case c.ZERO_OR_MORE:
-      regexpNargs = '(-*[A-]*)';
-      break;
-    // allow one or more arguments
-    case c.ONE_OR_MORE:
-      regexpNargs = '(-*A[A-]*)';
-      break;
-    // allow any number of options or arguments
-    case c.REMAINDER:
-      regexpNargs = '([-AO]*)';
-      break;
-    // allow one argument followed by any number of options or arguments
-    case c.PARSER:
-      regexpNargs = '(-*A[-AO]*)';
-      break;
-    // all others should be integers
-    default:
-      regexpNargs = '(-*' + $$.repeat('-*A', action.nargs) + '-*)';
-  }
-
-  // if this is an optional action, -- is not allowed
-  if (action.isOptional()) {
-    regexpNargs = regexpNargs.replace(/-\*/g, '');
-    regexpNargs = regexpNargs.replace(/-/g, '');
-  }
-
-  // return the pattern
-  return regexpNargs;
-};
-
-//
-// Value conversion methods
-//
-
-ArgumentParser.prototype._getValues = function (action, argStrings) {
-  var self = this;
-
-  // for everything but PARSER args, strip out '--'
-  if (action.nargs !== c.PARSER && action.nargs !== c.REMAINDER) {
-    argStrings = argStrings.filter(function (arrayElement) {
-      return arrayElement !== '--';
-    });
-  }
-
-  var value, argString;
-
-  // optional argument produces a default when not present
-  if (argStrings.length === 0 && action.nargs === c.OPTIONAL) {
-
-    value = (action.isOptional()) ? action.constant : action.defaultValue;
-
-    if (typeof (value) === 'string') {
-      value = this._getValue(action, value);
-      this._checkValue(action, value);
-    }
-
-  // when nargs='*' on a positional, if there were no command-line
-  // args, use the default if it is anything other than None
-  } else if (argStrings.length === 0 && action.nargs === c.ZERO_OR_MORE &&
-    action.optionStrings.length === 0) {
-
-    value = (action.defaultValue || argStrings);
-    this._checkValue(action, value);
-
-  // single argument or optional argument produces a single value
-  } else if (argStrings.length === 1 &&
-        (!action.nargs || action.nargs === c.OPTIONAL)) {
-
-    argString = argStrings[0];
-    value = this._getValue(action, argString);
-    this._checkValue(action, value);
-
-  // REMAINDER arguments convert all values, checking none
-  } else if (action.nargs === c.REMAINDER) {
-    value = argStrings.map(function (v) {
-      return self._getValue(action, v);
-    });
-
-  // PARSER arguments convert all values, but check only the first
-  } else if (action.nargs === c.PARSER) {
-    value = argStrings.map(function (v) {
-      return self._getValue(action, v);
-    });
-    this._checkValue(action, value[0]);
-
-  // all other types of nargs produce a list
-  } else {
-    value = argStrings.map(function (v) {
-      return self._getValue(action, v);
-    });
-    value.forEach(function (v) {
-      self._checkValue(action, v);
-    });
-  }
-
-  // return the converted value
-  return value;
-};
-
-ArgumentParser.prototype._getValue = function (action, argString) {
-  var result;
-
-  var typeFunction = this._registryGet('type', action.type, action.type);
-  if (typeof typeFunction !== 'function') {
-    var message = format('%s is not callable', typeFunction);
-    throw argumentErrorHelper(action, message);
-  }
-
-  // convert the value to the appropriate type
-  try {
-    result = typeFunction(argString);
-
-    // ArgumentTypeErrors indicate errors
-    // If action.type is not a registered string, it is a function
-    // Try to deduce its name for inclusion in the error message
-    // Failing that, include the error message it raised.
-  } catch (e) {
-    var name = null;
-    if (typeof action.type === 'string') {
-      name = action.type;
-    } else {
-      name = action.type.name || action.type.displayName || '<function>';
-    }
-    var msg = format('Invalid %s value: %s', name, argString);
-    if (name === '<function>') { msg += '\n' + e.message; }
-    throw argumentErrorHelper(action, msg);
-  }
-  // return the converted value
-  return result;
-};
-
-ArgumentParser.prototype._checkValue = function (action, value) {
-  // converted value must be one of the choices (if specified)
-  var choices = action.choices;
-  if (choices) {
-    // choise for argument can by array or string
-    if ((typeof choices === 'string' || Array.isArray(choices)) &&
-        choices.indexOf(value) !== -1) {
-      return;
-    }
-    // choise for subparsers can by only hash
-    if (typeof choices === 'object' && !Array.isArray(choices) && choices[value]) {
-      return;
-    }
-
-    if (typeof choices === 'string') {
-      choices = choices.split('').join(', ');
-    } else if (Array.isArray(choices)) {
-      choices =  choices.join(', ');
-    } else {
-      choices =  Object.keys(choices).join(', ');
-    }
-    var message = format('Invalid choice: %s (choose from [%s])', value, choices);
-    throw argumentErrorHelper(action, message);
-  }
-};
-
-//
-// Help formatting methods
-//
-
-/**
- * ArgumentParser#formatUsage -> string
- *
- * Return usage string
- *
- * See also [original guide][1]
- *
- * [1]:http://docs.python.org/dev/library/argparse.html#printing-help
- **/
-ArgumentParser.prototype.formatUsage = function () {
-  var formatter = this._getFormatter();
-  formatter.addUsage(this.usage, this._actions, this._mutuallyExclusiveGroups);
-  return formatter.formatHelp();
-};
-
-/**
- * ArgumentParser#formatHelp -> string
- *
- * Return help
- *
- * See also [original guide][1]
- *
- * [1]:http://docs.python.org/dev/library/argparse.html#printing-help
- **/
-ArgumentParser.prototype.formatHelp = function () {
-  var formatter = this._getFormatter();
-
-  // usage
-  formatter.addUsage(this.usage, this._actions, this._mutuallyExclusiveGroups);
-
-  // description
-  formatter.addText(this.description);
-
-  // positionals, optionals and user-defined groups
-  this._actionGroups.forEach(function (actionGroup) {
-    formatter.startSection(actionGroup.title);
-    formatter.addText(actionGroup.description);
-    formatter.addArguments(actionGroup._groupActions);
-    formatter.endSection();
-  });
-
-  // epilog
-  formatter.addText(this.epilog);
-
-  // determine help from format above
-  return formatter.formatHelp();
-};
-
-ArgumentParser.prototype._getFormatter = function () {
-  var FormatterClass = this.formatterClass;
-  var formatter = new FormatterClass({ prog: this.prog });
-  return formatter;
-};
-
-//
-//  Print functions
-//
-
-/**
- * ArgumentParser#printUsage() -> Void
- *
- * Print usage
- *
- * See also [original guide][1]
- *
- * [1]:http://docs.python.org/dev/library/argparse.html#printing-help
- **/
-ArgumentParser.prototype.printUsage = function () {
-  this._printMessage(this.formatUsage());
-};
-
-/**
- * ArgumentParser#printHelp() -> Void
- *
- * Print help
- *
- * See also [original guide][1]
- *
- * [1]:http://docs.python.org/dev/library/argparse.html#printing-help
- **/
-ArgumentParser.prototype.printHelp = function () {
-  this._printMessage(this.formatHelp());
-};
-
-ArgumentParser.prototype._printMessage = function (message, stream) {
-  if (!stream) {
-    stream = process.stdout;
-  }
-  if (message) {
-    stream.write('' + message);
-  }
-};
-
-//
-//  Exit functions
-//
-
-/**
- * ArgumentParser#exit(status=0, message) -> Void
- * - status (int): exit status
- * - message (string): message
- *
- * Print message in stderr/stdout and exit program
- **/
-ArgumentParser.prototype.exit = function (status, message) {
-  if (message) {
-    if (status === 0) {
-      this._printMessage(message);
-    } else {
-      this._printMessage(message, process.stderr);
-    }
-  }
-
-  process.exit(status);
-};
-
-/**
- * ArgumentParser#error(message) -> Void
- * - err (Error|string): message
- *
- * Error method Prints a usage message incorporating the message to stderr and
- * exits. If you override this in a subclass,
- * it should not return -- it should
- * either exit or throw an exception.
- *
- **/
-ArgumentParser.prototype.error = function (err) {
-  var message;
-  if (err instanceof Error) {
-    if (this.debug === true) {
-      throw err;
-    }
-    message = err.message;
-  } else {
-    message = err;
-  }
-  var msg = format('%s: error: %s', this.prog, message) + c.EOL;
-
-  if (this.debug === true) {
-    throw new Error(msg);
-  }
-
-  this.printUsage(process.stderr);
-
-  return this.exit(2, msg);
-};
-
-module.exports = ArgumentParser;

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/argparse/lib/const.js
----------------------------------------------------------------------
diff --git a/node_modules/argparse/lib/const.js b/node_modules/argparse/lib/const.js
deleted file mode 100644
index b1fd4ce..0000000
--- a/node_modules/argparse/lib/const.js
+++ /dev/null
@@ -1,21 +0,0 @@
-//
-// Constants
-//
-
-'use strict';
-
-module.exports.EOL = '\n';
-
-module.exports.SUPPRESS = '==SUPPRESS==';
-
-module.exports.OPTIONAL = '?';
-
-module.exports.ZERO_OR_MORE = '*';
-
-module.exports.ONE_OR_MORE = '+';
-
-module.exports.PARSER = 'A...';
-
-module.exports.REMAINDER = '...';
-
-module.exports._UNRECOGNIZED_ARGS_ATTR = '_unrecognized_args';

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/argparse/lib/help/added_formatters.js
----------------------------------------------------------------------
diff --git a/node_modules/argparse/lib/help/added_formatters.js b/node_modules/argparse/lib/help/added_formatters.js
deleted file mode 100644
index f8e4299..0000000
--- a/node_modules/argparse/lib/help/added_formatters.js
+++ /dev/null
@@ -1,87 +0,0 @@
-'use strict';
-
-var util    = require('util');
-
-// Constants
-var c = require('../const');
-
-var $$ = require('../utils');
-var HelpFormatter = require('./formatter.js');
-
-/**
- * new RawDescriptionHelpFormatter(options)
- * new ArgumentParser({formatterClass: argparse.RawDescriptionHelpFormatter, ...})
- *
- * Help message formatter which adds default values to argument help.
- *
- * Only the name of this class is considered a public API. All the methods
- * provided by the class are considered an implementation detail.
- **/
-
-function ArgumentDefaultsHelpFormatter(options) {
-  HelpFormatter.call(this, options);
-}
-
-util.inherits(ArgumentDefaultsHelpFormatter, HelpFormatter);
-
-ArgumentDefaultsHelpFormatter.prototype._getHelpString = function (action) {
-  var help = action.help;
-  if (action.help.indexOf('%(defaultValue)s') === -1) {
-    if (action.defaultValue !== c.SUPPRESS) {
-      var defaulting_nargs = [ c.OPTIONAL, c.ZERO_OR_MORE ];
-      if (action.isOptional() || (defaulting_nargs.indexOf(action.nargs) >= 0)) {
-        help += ' (default: %(defaultValue)s)';
-      }
-    }
-  }
-  return help;
-};
-
-module.exports.ArgumentDefaultsHelpFormatter = ArgumentDefaultsHelpFormatter;
-
-/**
- * new RawDescriptionHelpFormatter(options)
- * new ArgumentParser({formatterClass: argparse.RawDescriptionHelpFormatter, ...})
- *
- * Help message formatter which retains any formatting in descriptions.
- *
- * Only the name of this class is considered a public API. All the methods
- * provided by the class are considered an implementation detail.
- **/
-
-function RawDescriptionHelpFormatter(options) {
-  HelpFormatter.call(this, options);
-}
-
-util.inherits(RawDescriptionHelpFormatter, HelpFormatter);
-
-RawDescriptionHelpFormatter.prototype._fillText = function (text, width, indent) {
-  var lines = text.split('\n');
-  lines = lines.map(function (line) {
-    return $$.trimEnd(indent + line);
-  });
-  return lines.join('\n');
-};
-module.exports.RawDescriptionHelpFormatter = RawDescriptionHelpFormatter;
-
-/**
- * new RawTextHelpFormatter(options)
- * new ArgumentParser({formatterClass: argparse.RawTextHelpFormatter, ...})
- *
- * Help message formatter which retains formatting of all help text.
- *
- * Only the name of this class is considered a public API. All the methods
- * provided by the class are considered an implementation detail.
- **/
-
-function RawTextHelpFormatter(options) {
-  RawDescriptionHelpFormatter.call(this, options);
-}
-
-util.inherits(RawTextHelpFormatter, RawDescriptionHelpFormatter);
-
-RawTextHelpFormatter.prototype._splitLines = function (text) {
-  return text.split('\n');
-};
-
-module.exports.RawTextHelpFormatter = RawTextHelpFormatter;


[20/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/nodeback.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/nodeback.js b/node_modules/bluebird/js/release/nodeback.js
deleted file mode 100644
index 71e69eb..0000000
--- a/node_modules/bluebird/js/release/nodeback.js
+++ /dev/null
@@ -1,51 +0,0 @@
-"use strict";
-var util = require("./util");
-var maybeWrapAsError = util.maybeWrapAsError;
-var errors = require("./errors");
-var OperationalError = errors.OperationalError;
-var es5 = require("./es5");
-
-function isUntypedError(obj) {
-    return obj instanceof Error &&
-        es5.getPrototypeOf(obj) === Error.prototype;
-}
-
-var rErrorKey = /^(?:name|message|stack|cause)$/;
-function wrapAsOperationalError(obj) {
-    var ret;
-    if (isUntypedError(obj)) {
-        ret = new OperationalError(obj);
-        ret.name = obj.name;
-        ret.message = obj.message;
-        ret.stack = obj.stack;
-        var keys = es5.keys(obj);
-        for (var i = 0; i < keys.length; ++i) {
-            var key = keys[i];
-            if (!rErrorKey.test(key)) {
-                ret[key] = obj[key];
-            }
-        }
-        return ret;
-    }
-    util.markAsOriginatingFromRejection(obj);
-    return obj;
-}
-
-function nodebackForPromise(promise, multiArgs) {
-    return function(err, value) {
-        if (promise === null) return;
-        if (err) {
-            var wrapped = wrapAsOperationalError(maybeWrapAsError(err));
-            promise._attachExtraTrace(wrapped);
-            promise._reject(wrapped);
-        } else if (!multiArgs) {
-            promise._fulfill(value);
-        } else {
-            var $_len = arguments.length;var args = new Array(Math.max($_len - 1, 0)); for(var $_i = 1; $_i < $_len; ++$_i) {args[$_i - 1] = arguments[$_i];};
-            promise._fulfill(args);
-        }
-        promise = null;
-    };
-}
-
-module.exports = nodebackForPromise;

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/nodeify.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/nodeify.js b/node_modules/bluebird/js/release/nodeify.js
deleted file mode 100644
index ce2b190..0000000
--- a/node_modules/bluebird/js/release/nodeify.js
+++ /dev/null
@@ -1,58 +0,0 @@
-"use strict";
-module.exports = function(Promise) {
-var util = require("./util");
-var async = Promise._async;
-var tryCatch = util.tryCatch;
-var errorObj = util.errorObj;
-
-function spreadAdapter(val, nodeback) {
-    var promise = this;
-    if (!util.isArray(val)) return successAdapter.call(promise, val, nodeback);
-    var ret =
-        tryCatch(nodeback).apply(promise._boundValue(), [null].concat(val));
-    if (ret === errorObj) {
-        async.throwLater(ret.e);
-    }
-}
-
-function successAdapter(val, nodeback) {
-    var promise = this;
-    var receiver = promise._boundValue();
-    var ret = val === undefined
-        ? tryCatch(nodeback).call(receiver, null)
-        : tryCatch(nodeback).call(receiver, null, val);
-    if (ret === errorObj) {
-        async.throwLater(ret.e);
-    }
-}
-function errorAdapter(reason, nodeback) {
-    var promise = this;
-    if (!reason) {
-        var newReason = new Error(reason + "");
-        newReason.cause = reason;
-        reason = newReason;
-    }
-    var ret = tryCatch(nodeback).call(promise._boundValue(), reason);
-    if (ret === errorObj) {
-        async.throwLater(ret.e);
-    }
-}
-
-Promise.prototype.asCallback = Promise.prototype.nodeify = function (nodeback,
-                                                                     options) {
-    if (typeof nodeback == "function") {
-        var adapter = successAdapter;
-        if (options !== undefined && Object(options).spread) {
-            adapter = spreadAdapter;
-        }
-        this._then(
-            adapter,
-            errorAdapter,
-            undefined,
-            this,
-            nodeback
-        );
-    }
-    return this;
-};
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/promise.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/promise.js b/node_modules/bluebird/js/release/promise.js
deleted file mode 100644
index 99d20f9..0000000
--- a/node_modules/bluebird/js/release/promise.js
+++ /dev/null
@@ -1,775 +0,0 @@
-"use strict";
-module.exports = function() {
-var makeSelfResolutionError = function () {
-    return new TypeError("circular promise resolution chain\u000a\u000a    See http://goo.gl/MqrFmX\u000a");
-};
-var reflectHandler = function() {
-    return new Promise.PromiseInspection(this._target());
-};
-var apiRejection = function(msg) {
-    return Promise.reject(new TypeError(msg));
-};
-function Proxyable() {}
-var UNDEFINED_BINDING = {};
-var util = require("./util");
-
-var getDomain;
-if (util.isNode) {
-    getDomain = function() {
-        var ret = process.domain;
-        if (ret === undefined) ret = null;
-        return ret;
-    };
-} else {
-    getDomain = function() {
-        return null;
-    };
-}
-util.notEnumerableProp(Promise, "_getDomain", getDomain);
-
-var es5 = require("./es5");
-var Async = require("./async");
-var async = new Async();
-es5.defineProperty(Promise, "_async", {value: async});
-var errors = require("./errors");
-var TypeError = Promise.TypeError = errors.TypeError;
-Promise.RangeError = errors.RangeError;
-var CancellationError = Promise.CancellationError = errors.CancellationError;
-Promise.TimeoutError = errors.TimeoutError;
-Promise.OperationalError = errors.OperationalError;
-Promise.RejectionError = errors.OperationalError;
-Promise.AggregateError = errors.AggregateError;
-var INTERNAL = function(){};
-var APPLY = {};
-var NEXT_FILTER = {};
-var tryConvertToPromise = require("./thenables")(Promise, INTERNAL);
-var PromiseArray =
-    require("./promise_array")(Promise, INTERNAL,
-                               tryConvertToPromise, apiRejection, Proxyable);
-var Context = require("./context")(Promise);
- /*jshint unused:false*/
-var createContext = Context.create;
-var debug = require("./debuggability")(Promise, Context);
-var CapturedTrace = debug.CapturedTrace;
-var PassThroughHandlerContext =
-    require("./finally")(Promise, tryConvertToPromise, NEXT_FILTER);
-var catchFilter = require("./catch_filter")(NEXT_FILTER);
-var nodebackForPromise = require("./nodeback");
-var errorObj = util.errorObj;
-var tryCatch = util.tryCatch;
-function check(self, executor) {
-    if (self == null || self.constructor !== Promise) {
-        throw new TypeError("the promise constructor cannot be invoked directly\u000a\u000a    See http://goo.gl/MqrFmX\u000a");
-    }
-    if (typeof executor !== "function") {
-        throw new TypeError("expecting a function but got " + util.classString(executor));
-    }
-
-}
-
-function Promise(executor) {
-    if (executor !== INTERNAL) {
-        check(this, executor);
-    }
-    this._bitField = 0;
-    this._fulfillmentHandler0 = undefined;
-    this._rejectionHandler0 = undefined;
-    this._promise0 = undefined;
-    this._receiver0 = undefined;
-    this._resolveFromExecutor(executor);
-    this._promiseCreated();
-    this._fireEvent("promiseCreated", this);
-}
-
-Promise.prototype.toString = function () {
-    return "[object Promise]";
-};
-
-Promise.prototype.caught = Promise.prototype["catch"] = function (fn) {
-    var len = arguments.length;
-    if (len > 1) {
-        var catchInstances = new Array(len - 1),
-            j = 0, i;
-        for (i = 0; i < len - 1; ++i) {
-            var item = arguments[i];
-            if (util.isObject(item)) {
-                catchInstances[j++] = item;
-            } else {
-                return apiRejection("Catch statement predicate: " +
-                    "expecting an object but got " + util.classString(item));
-            }
-        }
-        catchInstances.length = j;
-        fn = arguments[i];
-        return this.then(undefined, catchFilter(catchInstances, fn, this));
-    }
-    return this.then(undefined, fn);
-};
-
-Promise.prototype.reflect = function () {
-    return this._then(reflectHandler,
-        reflectHandler, undefined, this, undefined);
-};
-
-Promise.prototype.then = function (didFulfill, didReject) {
-    if (debug.warnings() && arguments.length > 0 &&
-        typeof didFulfill !== "function" &&
-        typeof didReject !== "function") {
-        var msg = ".then() only accepts functions but was passed: " +
-                util.classString(didFulfill);
-        if (arguments.length > 1) {
-            msg += ", " + util.classString(didReject);
-        }
-        this._warn(msg);
-    }
-    return this._then(didFulfill, didReject, undefined, undefined, undefined);
-};
-
-Promise.prototype.done = function (didFulfill, didReject) {
-    var promise =
-        this._then(didFulfill, didReject, undefined, undefined, undefined);
-    promise._setIsFinal();
-};
-
-Promise.prototype.spread = function (fn) {
-    if (typeof fn !== "function") {
-        return apiRejection("expecting a function but got " + util.classString(fn));
-    }
-    return this.all()._then(fn, undefined, undefined, APPLY, undefined);
-};
-
-Promise.prototype.toJSON = function () {
-    var ret = {
-        isFulfilled: false,
-        isRejected: false,
-        fulfillmentValue: undefined,
-        rejectionReason: undefined
-    };
-    if (this.isFulfilled()) {
-        ret.fulfillmentValue = this.value();
-        ret.isFulfilled = true;
-    } else if (this.isRejected()) {
-        ret.rejectionReason = this.reason();
-        ret.isRejected = true;
-    }
-    return ret;
-};
-
-Promise.prototype.all = function () {
-    if (arguments.length > 0) {
-        this._warn(".all() was passed arguments but it does not take any");
-    }
-    return new PromiseArray(this).promise();
-};
-
-Promise.prototype.error = function (fn) {
-    return this.caught(util.originatesFromRejection, fn);
-};
-
-Promise.getNewLibraryCopy = module.exports;
-
-Promise.is = function (val) {
-    return val instanceof Promise;
-};
-
-Promise.fromNode = Promise.fromCallback = function(fn) {
-    var ret = new Promise(INTERNAL);
-    ret._captureStackTrace();
-    var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs
-                                         : false;
-    var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs));
-    if (result === errorObj) {
-        ret._rejectCallback(result.e, true);
-    }
-    if (!ret._isFateSealed()) ret._setAsyncGuaranteed();
-    return ret;
-};
-
-Promise.all = function (promises) {
-    return new PromiseArray(promises).promise();
-};
-
-Promise.cast = function (obj) {
-    var ret = tryConvertToPromise(obj);
-    if (!(ret instanceof Promise)) {
-        ret = new Promise(INTERNAL);
-        ret._captureStackTrace();
-        ret._setFulfilled();
-        ret._rejectionHandler0 = obj;
-    }
-    return ret;
-};
-
-Promise.resolve = Promise.fulfilled = Promise.cast;
-
-Promise.reject = Promise.rejected = function (reason) {
-    var ret = new Promise(INTERNAL);
-    ret._captureStackTrace();
-    ret._rejectCallback(reason, true);
-    return ret;
-};
-
-Promise.setScheduler = function(fn) {
-    if (typeof fn !== "function") {
-        throw new TypeError("expecting a function but got " + util.classString(fn));
-    }
-    return async.setScheduler(fn);
-};
-
-Promise.prototype._then = function (
-    didFulfill,
-    didReject,
-    _,    receiver,
-    internalData
-) {
-    var haveInternalData = internalData !== undefined;
-    var promise = haveInternalData ? internalData : new Promise(INTERNAL);
-    var target = this._target();
-    var bitField = target._bitField;
-
-    if (!haveInternalData) {
-        promise._propagateFrom(this, 3);
-        promise._captureStackTrace();
-        if (receiver === undefined &&
-            ((this._bitField & 2097152) !== 0)) {
-            if (!((bitField & 50397184) === 0)) {
-                receiver = this._boundValue();
-            } else {
-                receiver = target === this ? undefined : this._boundTo;
-            }
-        }
-        this._fireEvent("promiseChained", this, promise);
-    }
-
-    var domain = getDomain();
-    if (!((bitField & 50397184) === 0)) {
-        var handler, value, settler = target._settlePromiseCtx;
-        if (((bitField & 33554432) !== 0)) {
-            value = target._rejectionHandler0;
-            handler = didFulfill;
-        } else if (((bitField & 16777216) !== 0)) {
-            value = target._fulfillmentHandler0;
-            handler = didReject;
-            target._unsetRejectionIsUnhandled();
-        } else {
-            settler = target._settlePromiseLateCancellationObserver;
-            value = new CancellationError("late cancellation observer");
-            target._attachExtraTrace(value);
-            handler = didReject;
-        }
-
-        async.invoke(settler, target, {
-            handler: domain === null ? handler
-                : (typeof handler === "function" &&
-                    util.domainBind(domain, handler)),
-            promise: promise,
-            receiver: receiver,
-            value: value
-        });
-    } else {
-        target._addCallbacks(didFulfill, didReject, promise, receiver, domain);
-    }
-
-    return promise;
-};
-
-Promise.prototype._length = function () {
-    return this._bitField & 65535;
-};
-
-Promise.prototype._isFateSealed = function () {
-    return (this._bitField & 117506048) !== 0;
-};
-
-Promise.prototype._isFollowing = function () {
-    return (this._bitField & 67108864) === 67108864;
-};
-
-Promise.prototype._setLength = function (len) {
-    this._bitField = (this._bitField & -65536) |
-        (len & 65535);
-};
-
-Promise.prototype._setFulfilled = function () {
-    this._bitField = this._bitField | 33554432;
-    this._fireEvent("promiseFulfilled", this);
-};
-
-Promise.prototype._setRejected = function () {
-    this._bitField = this._bitField | 16777216;
-    this._fireEvent("promiseRejected", this);
-};
-
-Promise.prototype._setFollowing = function () {
-    this._bitField = this._bitField | 67108864;
-    this._fireEvent("promiseResolved", this);
-};
-
-Promise.prototype._setIsFinal = function () {
-    this._bitField = this._bitField | 4194304;
-};
-
-Promise.prototype._isFinal = function () {
-    return (this._bitField & 4194304) > 0;
-};
-
-Promise.prototype._unsetCancelled = function() {
-    this._bitField = this._bitField & (~65536);
-};
-
-Promise.prototype._setCancelled = function() {
-    this._bitField = this._bitField | 65536;
-    this._fireEvent("promiseCancelled", this);
-};
-
-Promise.prototype._setWillBeCancelled = function() {
-    this._bitField = this._bitField | 8388608;
-};
-
-Promise.prototype._setAsyncGuaranteed = function() {
-    if (async.hasCustomScheduler()) return;
-    this._bitField = this._bitField | 134217728;
-};
-
-Promise.prototype._receiverAt = function (index) {
-    var ret = index === 0 ? this._receiver0 : this[
-            index * 4 - 4 + 3];
-    if (ret === UNDEFINED_BINDING) {
-        return undefined;
-    } else if (ret === undefined && this._isBound()) {
-        return this._boundValue();
-    }
-    return ret;
-};
-
-Promise.prototype._promiseAt = function (index) {
-    return this[
-            index * 4 - 4 + 2];
-};
-
-Promise.prototype._fulfillmentHandlerAt = function (index) {
-    return this[
-            index * 4 - 4 + 0];
-};
-
-Promise.prototype._rejectionHandlerAt = function (index) {
-    return this[
-            index * 4 - 4 + 1];
-};
-
-Promise.prototype._boundValue = function() {};
-
-Promise.prototype._migrateCallback0 = function (follower) {
-    var bitField = follower._bitField;
-    var fulfill = follower._fulfillmentHandler0;
-    var reject = follower._rejectionHandler0;
-    var promise = follower._promise0;
-    var receiver = follower._receiverAt(0);
-    if (receiver === undefined) receiver = UNDEFINED_BINDING;
-    this._addCallbacks(fulfill, reject, promise, receiver, null);
-};
-
-Promise.prototype._migrateCallbackAt = function (follower, index) {
-    var fulfill = follower._fulfillmentHandlerAt(index);
-    var reject = follower._rejectionHandlerAt(index);
-    var promise = follower._promiseAt(index);
-    var receiver = follower._receiverAt(index);
-    if (receiver === undefined) receiver = UNDEFINED_BINDING;
-    this._addCallbacks(fulfill, reject, promise, receiver, null);
-};
-
-Promise.prototype._addCallbacks = function (
-    fulfill,
-    reject,
-    promise,
-    receiver,
-    domain
-) {
-    var index = this._length();
-
-    if (index >= 65535 - 4) {
-        index = 0;
-        this._setLength(0);
-    }
-
-    if (index === 0) {
-        this._promise0 = promise;
-        this._receiver0 = receiver;
-        if (typeof fulfill === "function") {
-            this._fulfillmentHandler0 =
-                domain === null ? fulfill : util.domainBind(domain, fulfill);
-        }
-        if (typeof reject === "function") {
-            this._rejectionHandler0 =
-                domain === null ? reject : util.domainBind(domain, reject);
-        }
-    } else {
-        var base = index * 4 - 4;
-        this[base + 2] = promise;
-        this[base + 3] = receiver;
-        if (typeof fulfill === "function") {
-            this[base + 0] =
-                domain === null ? fulfill : util.domainBind(domain, fulfill);
-        }
-        if (typeof reject === "function") {
-            this[base + 1] =
-                domain === null ? reject : util.domainBind(domain, reject);
-        }
-    }
-    this._setLength(index + 1);
-    return index;
-};
-
-Promise.prototype._proxy = function (proxyable, arg) {
-    this._addCallbacks(undefined, undefined, arg, proxyable, null);
-};
-
-Promise.prototype._resolveCallback = function(value, shouldBind) {
-    if (((this._bitField & 117506048) !== 0)) return;
-    if (value === this)
-        return this._rejectCallback(makeSelfResolutionError(), false);
-    var maybePromise = tryConvertToPromise(value, this);
-    if (!(maybePromise instanceof Promise)) return this._fulfill(value);
-
-    if (shouldBind) this._propagateFrom(maybePromise, 2);
-
-    var promise = maybePromise._target();
-
-    if (promise === this) {
-        this._reject(makeSelfResolutionError());
-        return;
-    }
-
-    var bitField = promise._bitField;
-    if (((bitField & 50397184) === 0)) {
-        var len = this._length();
-        if (len > 0) promise._migrateCallback0(this);
-        for (var i = 1; i < len; ++i) {
-            promise._migrateCallbackAt(this, i);
-        }
-        this._setFollowing();
-        this._setLength(0);
-        this._setFollowee(promise);
-    } else if (((bitField & 33554432) !== 0)) {
-        this._fulfill(promise._value());
-    } else if (((bitField & 16777216) !== 0)) {
-        this._reject(promise._reason());
-    } else {
-        var reason = new CancellationError("late cancellation observer");
-        promise._attachExtraTrace(reason);
-        this._reject(reason);
-    }
-};
-
-Promise.prototype._rejectCallback =
-function(reason, synchronous, ignoreNonErrorWarnings) {
-    var trace = util.ensureErrorObject(reason);
-    var hasStack = trace === reason;
-    if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) {
-        var message = "a promise was rejected with a non-error: " +
-            util.classString(reason);
-        this._warn(message, true);
-    }
-    this._attachExtraTrace(trace, synchronous ? hasStack : false);
-    this._reject(reason);
-};
-
-Promise.prototype._resolveFromExecutor = function (executor) {
-    if (executor === INTERNAL) return;
-    var promise = this;
-    this._captureStackTrace();
-    this._pushContext();
-    var synchronous = true;
-    var r = this._execute(executor, function(value) {
-        promise._resolveCallback(value);
-    }, function (reason) {
-        promise._rejectCallback(reason, synchronous);
-    });
-    synchronous = false;
-    this._popContext();
-
-    if (r !== undefined) {
-        promise._rejectCallback(r, true);
-    }
-};
-
-Promise.prototype._settlePromiseFromHandler = function (
-    handler, receiver, value, promise
-) {
-    var bitField = promise._bitField;
-    if (((bitField & 65536) !== 0)) return;
-    promise._pushContext();
-    var x;
-    if (receiver === APPLY) {
-        if (!value || typeof value.length !== "number") {
-            x = errorObj;
-            x.e = new TypeError("cannot .spread() a non-array: " +
-                                    util.classString(value));
-        } else {
-            x = tryCatch(handler).apply(this._boundValue(), value);
-        }
-    } else {
-        x = tryCatch(handler).call(receiver, value);
-    }
-    var promiseCreated = promise._popContext();
-    bitField = promise._bitField;
-    if (((bitField & 65536) !== 0)) return;
-
-    if (x === NEXT_FILTER) {
-        promise._reject(value);
-    } else if (x === errorObj) {
-        promise._rejectCallback(x.e, false);
-    } else {
-        debug.checkForgottenReturns(x, promiseCreated, "",  promise, this);
-        promise._resolveCallback(x);
-    }
-};
-
-Promise.prototype._target = function() {
-    var ret = this;
-    while (ret._isFollowing()) ret = ret._followee();
-    return ret;
-};
-
-Promise.prototype._followee = function() {
-    return this._rejectionHandler0;
-};
-
-Promise.prototype._setFollowee = function(promise) {
-    this._rejectionHandler0 = promise;
-};
-
-Promise.prototype._settlePromise = function(promise, handler, receiver, value) {
-    var isPromise = promise instanceof Promise;
-    var bitField = this._bitField;
-    var asyncGuaranteed = ((bitField & 134217728) !== 0);
-    if (((bitField & 65536) !== 0)) {
-        if (isPromise) promise._invokeInternalOnCancel();
-
-        if (receiver instanceof PassThroughHandlerContext &&
-            receiver.isFinallyHandler()) {
-            receiver.cancelPromise = promise;
-            if (tryCatch(handler).call(receiver, value) === errorObj) {
-                promise._reject(errorObj.e);
-            }
-        } else if (handler === reflectHandler) {
-            promise._fulfill(reflectHandler.call(receiver));
-        } else if (receiver instanceof Proxyable) {
-            receiver._promiseCancelled(promise);
-        } else if (isPromise || promise instanceof PromiseArray) {
-            promise._cancel();
-        } else {
-            receiver.cancel();
-        }
-    } else if (typeof handler === "function") {
-        if (!isPromise) {
-            handler.call(receiver, value, promise);
-        } else {
-            if (asyncGuaranteed) promise._setAsyncGuaranteed();
-            this._settlePromiseFromHandler(handler, receiver, value, promise);
-        }
-    } else if (receiver instanceof Proxyable) {
-        if (!receiver._isResolved()) {
-            if (((bitField & 33554432) !== 0)) {
-                receiver._promiseFulfilled(value, promise);
-            } else {
-                receiver._promiseRejected(value, promise);
-            }
-        }
-    } else if (isPromise) {
-        if (asyncGuaranteed) promise._setAsyncGuaranteed();
-        if (((bitField & 33554432) !== 0)) {
-            promise._fulfill(value);
-        } else {
-            promise._reject(value);
-        }
-    }
-};
-
-Promise.prototype._settlePromiseLateCancellationObserver = function(ctx) {
-    var handler = ctx.handler;
-    var promise = ctx.promise;
-    var receiver = ctx.receiver;
-    var value = ctx.value;
-    if (typeof handler === "function") {
-        if (!(promise instanceof Promise)) {
-            handler.call(receiver, value, promise);
-        } else {
-            this._settlePromiseFromHandler(handler, receiver, value, promise);
-        }
-    } else if (promise instanceof Promise) {
-        promise._reject(value);
-    }
-};
-
-Promise.prototype._settlePromiseCtx = function(ctx) {
-    this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value);
-};
-
-Promise.prototype._settlePromise0 = function(handler, value, bitField) {
-    var promise = this._promise0;
-    var receiver = this._receiverAt(0);
-    this._promise0 = undefined;
-    this._receiver0 = undefined;
-    this._settlePromise(promise, handler, receiver, value);
-};
-
-Promise.prototype._clearCallbackDataAtIndex = function(index) {
-    var base = index * 4 - 4;
-    this[base + 2] =
-    this[base + 3] =
-    this[base + 0] =
-    this[base + 1] = undefined;
-};
-
-Promise.prototype._fulfill = function (value) {
-    var bitField = this._bitField;
-    if (((bitField & 117506048) >>> 16)) return;
-    if (value === this) {
-        var err = makeSelfResolutionError();
-        this._attachExtraTrace(err);
-        return this._reject(err);
-    }
-    this._setFulfilled();
-    this._rejectionHandler0 = value;
-
-    if ((bitField & 65535) > 0) {
-        if (((bitField & 134217728) !== 0)) {
-            this._settlePromises();
-        } else {
-            async.settlePromises(this);
-        }
-    }
-};
-
-Promise.prototype._reject = function (reason) {
-    var bitField = this._bitField;
-    if (((bitField & 117506048) >>> 16)) return;
-    this._setRejected();
-    this._fulfillmentHandler0 = reason;
-
-    if (this._isFinal()) {
-        return async.fatalError(reason, util.isNode);
-    }
-
-    if ((bitField & 65535) > 0) {
-        async.settlePromises(this);
-    } else {
-        this._ensurePossibleRejectionHandled();
-    }
-};
-
-Promise.prototype._fulfillPromises = function (len, value) {
-    for (var i = 1; i < len; i++) {
-        var handler = this._fulfillmentHandlerAt(i);
-        var promise = this._promiseAt(i);
-        var receiver = this._receiverAt(i);
-        this._clearCallbackDataAtIndex(i);
-        this._settlePromise(promise, handler, receiver, value);
-    }
-};
-
-Promise.prototype._rejectPromises = function (len, reason) {
-    for (var i = 1; i < len; i++) {
-        var handler = this._rejectionHandlerAt(i);
-        var promise = this._promiseAt(i);
-        var receiver = this._receiverAt(i);
-        this._clearCallbackDataAtIndex(i);
-        this._settlePromise(promise, handler, receiver, reason);
-    }
-};
-
-Promise.prototype._settlePromises = function () {
-    var bitField = this._bitField;
-    var len = (bitField & 65535);
-
-    if (len > 0) {
-        if (((bitField & 16842752) !== 0)) {
-            var reason = this._fulfillmentHandler0;
-            this._settlePromise0(this._rejectionHandler0, reason, bitField);
-            this._rejectPromises(len, reason);
-        } else {
-            var value = this._rejectionHandler0;
-            this._settlePromise0(this._fulfillmentHandler0, value, bitField);
-            this._fulfillPromises(len, value);
-        }
-        this._setLength(0);
-    }
-    this._clearCancellationData();
-};
-
-Promise.prototype._settledValue = function() {
-    var bitField = this._bitField;
-    if (((bitField & 33554432) !== 0)) {
-        return this._rejectionHandler0;
-    } else if (((bitField & 16777216) !== 0)) {
-        return this._fulfillmentHandler0;
-    }
-};
-
-function deferResolve(v) {this.promise._resolveCallback(v);}
-function deferReject(v) {this.promise._rejectCallback(v, false);}
-
-Promise.defer = Promise.pending = function() {
-    debug.deprecated("Promise.defer", "new Promise");
-    var promise = new Promise(INTERNAL);
-    return {
-        promise: promise,
-        resolve: deferResolve,
-        reject: deferReject
-    };
-};
-
-util.notEnumerableProp(Promise,
-                       "_makeSelfResolutionError",
-                       makeSelfResolutionError);
-
-require("./method")(Promise, INTERNAL, tryConvertToPromise, apiRejection,
-    debug);
-require("./bind")(Promise, INTERNAL, tryConvertToPromise, debug);
-require("./cancel")(Promise, PromiseArray, apiRejection, debug);
-require("./direct_resolve")(Promise);
-require("./synchronous_inspection")(Promise);
-require("./join")(
-    Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain);
-Promise.Promise = Promise;
-Promise.version = "3.5.0";
-require('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug);
-require('./call_get.js')(Promise);
-require('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug);
-require('./timers.js')(Promise, INTERNAL, debug);
-require('./generators.js')(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug);
-require('./nodeify.js')(Promise);
-require('./promisify.js')(Promise, INTERNAL);
-require('./props.js')(Promise, PromiseArray, tryConvertToPromise, apiRejection);
-require('./race.js')(Promise, INTERNAL, tryConvertToPromise, apiRejection);
-require('./reduce.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug);
-require('./settle.js')(Promise, PromiseArray, debug);
-require('./some.js')(Promise, PromiseArray, apiRejection);
-require('./filter.js')(Promise, INTERNAL);
-require('./each.js')(Promise, INTERNAL);
-require('./any.js')(Promise);
-                                                         
-    util.toFastProperties(Promise);                                          
-    util.toFastProperties(Promise.prototype);                                
-    function fillTypes(value) {                                              
-        var p = new Promise(INTERNAL);                                       
-        p._fulfillmentHandler0 = value;                                      
-        p._rejectionHandler0 = value;                                        
-        p._promise0 = value;                                                 
-        p._receiver0 = value;                                                
-    }                                                                        
-    // Complete slack tracking, opt out of field-type tracking and           
-    // stabilize map                                                         
-    fillTypes({a: 1});                                                       
-    fillTypes({b: 2});                                                       
-    fillTypes({c: 3});                                                       
-    fillTypes(1);                                                            
-    fillTypes(function(){});                                                 
-    fillTypes(undefined);                                                    
-    fillTypes(false);                                                        
-    fillTypes(new Promise(INTERNAL));                                        
-    debug.setBounds(Async.firstLineError, util.lastLineError);               
-    return Promise;                                                          
-
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/promise_array.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/promise_array.js b/node_modules/bluebird/js/release/promise_array.js
deleted file mode 100644
index 0fb303e..0000000
--- a/node_modules/bluebird/js/release/promise_array.js
+++ /dev/null
@@ -1,185 +0,0 @@
-"use strict";
-module.exports = function(Promise, INTERNAL, tryConvertToPromise,
-    apiRejection, Proxyable) {
-var util = require("./util");
-var isArray = util.isArray;
-
-function toResolutionValue(val) {
-    switch(val) {
-    case -2: return [];
-    case -3: return {};
-    case -6: return new Map();
-    }
-}
-
-function PromiseArray(values) {
-    var promise = this._promise = new Promise(INTERNAL);
-    if (values instanceof Promise) {
-        promise._propagateFrom(values, 3);
-    }
-    promise._setOnCancel(this);
-    this._values = values;
-    this._length = 0;
-    this._totalResolved = 0;
-    this._init(undefined, -2);
-}
-util.inherits(PromiseArray, Proxyable);
-
-PromiseArray.prototype.length = function () {
-    return this._length;
-};
-
-PromiseArray.prototype.promise = function () {
-    return this._promise;
-};
-
-PromiseArray.prototype._init = function init(_, resolveValueIfEmpty) {
-    var values = tryConvertToPromise(this._values, this._promise);
-    if (values instanceof Promise) {
-        values = values._target();
-        var bitField = values._bitField;
-        ;
-        this._values = values;
-
-        if (((bitField & 50397184) === 0)) {
-            this._promise._setAsyncGuaranteed();
-            return values._then(
-                init,
-                this._reject,
-                undefined,
-                this,
-                resolveValueIfEmpty
-           );
-        } else if (((bitField & 33554432) !== 0)) {
-            values = values._value();
-        } else if (((bitField & 16777216) !== 0)) {
-            return this._reject(values._reason());
-        } else {
-            return this._cancel();
-        }
-    }
-    values = util.asArray(values);
-    if (values === null) {
-        var err = apiRejection(
-            "expecting an array or an iterable object but got " + util.classString(values)).reason();
-        this._promise._rejectCallback(err, false);
-        return;
-    }
-
-    if (values.length === 0) {
-        if (resolveValueIfEmpty === -5) {
-            this._resolveEmptyArray();
-        }
-        else {
-            this._resolve(toResolutionValue(resolveValueIfEmpty));
-        }
-        return;
-    }
-    this._iterate(values);
-};
-
-PromiseArray.prototype._iterate = function(values) {
-    var len = this.getActualLength(values.length);
-    this._length = len;
-    this._values = this.shouldCopyValues() ? new Array(len) : this._values;
-    var result = this._promise;
-    var isResolved = false;
-    var bitField = null;
-    for (var i = 0; i < len; ++i) {
-        var maybePromise = tryConvertToPromise(values[i], result);
-
-        if (maybePromise instanceof Promise) {
-            maybePromise = maybePromise._target();
-            bitField = maybePromise._bitField;
-        } else {
-            bitField = null;
-        }
-
-        if (isResolved) {
-            if (bitField !== null) {
-                maybePromise.suppressUnhandledRejections();
-            }
-        } else if (bitField !== null) {
-            if (((bitField & 50397184) === 0)) {
-                maybePromise._proxy(this, i);
-                this._values[i] = maybePromise;
-            } else if (((bitField & 33554432) !== 0)) {
-                isResolved = this._promiseFulfilled(maybePromise._value(), i);
-            } else if (((bitField & 16777216) !== 0)) {
-                isResolved = this._promiseRejected(maybePromise._reason(), i);
-            } else {
-                isResolved = this._promiseCancelled(i);
-            }
-        } else {
-            isResolved = this._promiseFulfilled(maybePromise, i);
-        }
-    }
-    if (!isResolved) result._setAsyncGuaranteed();
-};
-
-PromiseArray.prototype._isResolved = function () {
-    return this._values === null;
-};
-
-PromiseArray.prototype._resolve = function (value) {
-    this._values = null;
-    this._promise._fulfill(value);
-};
-
-PromiseArray.prototype._cancel = function() {
-    if (this._isResolved() || !this._promise._isCancellable()) return;
-    this._values = null;
-    this._promise._cancel();
-};
-
-PromiseArray.prototype._reject = function (reason) {
-    this._values = null;
-    this._promise._rejectCallback(reason, false);
-};
-
-PromiseArray.prototype._promiseFulfilled = function (value, index) {
-    this._values[index] = value;
-    var totalResolved = ++this._totalResolved;
-    if (totalResolved >= this._length) {
-        this._resolve(this._values);
-        return true;
-    }
-    return false;
-};
-
-PromiseArray.prototype._promiseCancelled = function() {
-    this._cancel();
-    return true;
-};
-
-PromiseArray.prototype._promiseRejected = function (reason) {
-    this._totalResolved++;
-    this._reject(reason);
-    return true;
-};
-
-PromiseArray.prototype._resultCancelled = function() {
-    if (this._isResolved()) return;
-    var values = this._values;
-    this._cancel();
-    if (values instanceof Promise) {
-        values.cancel();
-    } else {
-        for (var i = 0; i < values.length; ++i) {
-            if (values[i] instanceof Promise) {
-                values[i].cancel();
-            }
-        }
-    }
-};
-
-PromiseArray.prototype.shouldCopyValues = function () {
-    return true;
-};
-
-PromiseArray.prototype.getActualLength = function (len) {
-    return len;
-};
-
-return PromiseArray;
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/promisify.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/promisify.js b/node_modules/bluebird/js/release/promisify.js
deleted file mode 100644
index aa98e5b..0000000
--- a/node_modules/bluebird/js/release/promisify.js
+++ /dev/null
@@ -1,314 +0,0 @@
-"use strict";
-module.exports = function(Promise, INTERNAL) {
-var THIS = {};
-var util = require("./util");
-var nodebackForPromise = require("./nodeback");
-var withAppended = util.withAppended;
-var maybeWrapAsError = util.maybeWrapAsError;
-var canEvaluate = util.canEvaluate;
-var TypeError = require("./errors").TypeError;
-var defaultSuffix = "Async";
-var defaultPromisified = {__isPromisified__: true};
-var noCopyProps = [
-    "arity",    "length",
-    "name",
-    "arguments",
-    "caller",
-    "callee",
-    "prototype",
-    "__isPromisified__"
-];
-var noCopyPropsPattern = new RegExp("^(?:" + noCopyProps.join("|") + ")$");
-
-var defaultFilter = function(name) {
-    return util.isIdentifier(name) &&
-        name.charAt(0) !== "_" &&
-        name !== "constructor";
-};
-
-function propsFilter(key) {
-    return !noCopyPropsPattern.test(key);
-}
-
-function isPromisified(fn) {
-    try {
-        return fn.__isPromisified__ === true;
-    }
-    catch (e) {
-        return false;
-    }
-}
-
-function hasPromisified(obj, key, suffix) {
-    var val = util.getDataPropertyOrDefault(obj, key + suffix,
-                                            defaultPromisified);
-    return val ? isPromisified(val) : false;
-}
-function checkValid(ret, suffix, suffixRegexp) {
-    for (var i = 0; i < ret.length; i += 2) {
-        var key = ret[i];
-        if (suffixRegexp.test(key)) {
-            var keyWithoutAsyncSuffix = key.replace(suffixRegexp, "");
-            for (var j = 0; j < ret.length; j += 2) {
-                if (ret[j] === keyWithoutAsyncSuffix) {
-                    throw new TypeError("Cannot promisify an API that has normal methods with '%s'-suffix\u000a\u000a    See http://goo.gl/MqrFmX\u000a"
-                        .replace("%s", suffix));
-                }
-            }
-        }
-    }
-}
-
-function promisifiableMethods(obj, suffix, suffixRegexp, filter) {
-    var keys = util.inheritedDataKeys(obj);
-    var ret = [];
-    for (var i = 0; i < keys.length; ++i) {
-        var key = keys[i];
-        var value = obj[key];
-        var passesDefaultFilter = filter === defaultFilter
-            ? true : defaultFilter(key, value, obj);
-        if (typeof value === "function" &&
-            !isPromisified(value) &&
-            !hasPromisified(obj, key, suffix) &&
-            filter(key, value, obj, passesDefaultFilter)) {
-            ret.push(key, value);
-        }
-    }
-    checkValid(ret, suffix, suffixRegexp);
-    return ret;
-}
-
-var escapeIdentRegex = function(str) {
-    return str.replace(/([$])/, "\\$");
-};
-
-var makeNodePromisifiedEval;
-if (!false) {
-var switchCaseArgumentOrder = function(likelyArgumentCount) {
-    var ret = [likelyArgumentCount];
-    var min = Math.max(0, likelyArgumentCount - 1 - 3);
-    for(var i = likelyArgumentCount - 1; i >= min; --i) {
-        ret.push(i);
-    }
-    for(var i = likelyArgumentCount + 1; i <= 3; ++i) {
-        ret.push(i);
-    }
-    return ret;
-};
-
-var argumentSequence = function(argumentCount) {
-    return util.filledRange(argumentCount, "_arg", "");
-};
-
-var parameterDeclaration = function(parameterCount) {
-    return util.filledRange(
-        Math.max(parameterCount, 3), "_arg", "");
-};
-
-var parameterCount = function(fn) {
-    if (typeof fn.length === "number") {
-        return Math.max(Math.min(fn.length, 1023 + 1), 0);
-    }
-    return 0;
-};
-
-makeNodePromisifiedEval =
-function(callback, receiver, originalName, fn, _, multiArgs) {
-    var newParameterCount = Math.max(0, parameterCount(fn) - 1);
-    var argumentOrder = switchCaseArgumentOrder(newParameterCount);
-    var shouldProxyThis = typeof callback === "string" || receiver === THIS;
-
-    function generateCallForArgumentCount(count) {
-        var args = argumentSequence(count).join(", ");
-        var comma = count > 0 ? ", " : "";
-        var ret;
-        if (shouldProxyThis) {
-            ret = "ret = callback.call(this, {{args}}, nodeback); break;\n";
-        } else {
-            ret = receiver === undefined
-                ? "ret = callback({{args}}, nodeback); break;\n"
-                : "ret = callback.call(receiver, {{args}}, nodeback); break;\n";
-        }
-        return ret.replace("{{args}}", args).replace(", ", comma);
-    }
-
-    function generateArgumentSwitchCase() {
-        var ret = "";
-        for (var i = 0; i < argumentOrder.length; ++i) {
-            ret += "case " + argumentOrder[i] +":" +
-                generateCallForArgumentCount(argumentOrder[i]);
-        }
-
-        ret += "                                                             \n\
-        default:                                                             \n\
-            var args = new Array(len + 1);                                   \n\
-            var i = 0;                                                       \n\
-            for (var i = 0; i < len; ++i) {                                  \n\
-               args[i] = arguments[i];                                       \n\
-            }                                                                \n\
-            args[i] = nodeback;                                              \n\
-            [CodeForCall]                                                    \n\
-            break;                                                           \n\
-        ".replace("[CodeForCall]", (shouldProxyThis
-                                ? "ret = callback.apply(this, args);\n"
-                                : "ret = callback.apply(receiver, args);\n"));
-        return ret;
-    }
-
-    var getFunctionCode = typeof callback === "string"
-                                ? ("this != null ? this['"+callback+"'] : fn")
-                                : "fn";
-    var body = "'use strict';                                                \n\
-        var ret = function (Parameters) {                                    \n\
-            'use strict';                                                    \n\
-            var len = arguments.length;                                      \n\
-            var promise = new Promise(INTERNAL);                             \n\
-            promise._captureStackTrace();                                    \n\
-            var nodeback = nodebackForPromise(promise, " + multiArgs + ");   \n\
-            var ret;                                                         \n\
-            var callback = tryCatch([GetFunctionCode]);                      \n\
-            switch(len) {                                                    \n\
-                [CodeForSwitchCase]                                          \n\
-            }                                                                \n\
-            if (ret === errorObj) {                                          \n\
-                promise._rejectCallback(maybeWrapAsError(ret.e), true, true);\n\
-            }                                                                \n\
-            if (!promise._isFateSealed()) promise._setAsyncGuaranteed();     \n\
-            return promise;                                                  \n\
-        };                                                                   \n\
-        notEnumerableProp(ret, '__isPromisified__', true);                   \n\
-        return ret;                                                          \n\
-    ".replace("[CodeForSwitchCase]", generateArgumentSwitchCase())
-        .replace("[GetFunctionCode]", getFunctionCode);
-    body = body.replace("Parameters", parameterDeclaration(newParameterCount));
-    return new Function("Promise",
-                        "fn",
-                        "receiver",
-                        "withAppended",
-                        "maybeWrapAsError",
-                        "nodebackForPromise",
-                        "tryCatch",
-                        "errorObj",
-                        "notEnumerableProp",
-                        "INTERNAL",
-                        body)(
-                    Promise,
-                    fn,
-                    receiver,
-                    withAppended,
-                    maybeWrapAsError,
-                    nodebackForPromise,
-                    util.tryCatch,
-                    util.errorObj,
-                    util.notEnumerableProp,
-                    INTERNAL);
-};
-}
-
-function makeNodePromisifiedClosure(callback, receiver, _, fn, __, multiArgs) {
-    var defaultThis = (function() {return this;})();
-    var method = callback;
-    if (typeof method === "string") {
-        callback = fn;
-    }
-    function promisified() {
-        var _receiver = receiver;
-        if (receiver === THIS) _receiver = this;
-        var promise = new Promise(INTERNAL);
-        promise._captureStackTrace();
-        var cb = typeof method === "string" && this !== defaultThis
-            ? this[method] : callback;
-        var fn = nodebackForPromise(promise, multiArgs);
-        try {
-            cb.apply(_receiver, withAppended(arguments, fn));
-        } catch(e) {
-            promise._rejectCallback(maybeWrapAsError(e), true, true);
-        }
-        if (!promise._isFateSealed()) promise._setAsyncGuaranteed();
-        return promise;
-    }
-    util.notEnumerableProp(promisified, "__isPromisified__", true);
-    return promisified;
-}
-
-var makeNodePromisified = canEvaluate
-    ? makeNodePromisifiedEval
-    : makeNodePromisifiedClosure;
-
-function promisifyAll(obj, suffix, filter, promisifier, multiArgs) {
-    var suffixRegexp = new RegExp(escapeIdentRegex(suffix) + "$");
-    var methods =
-        promisifiableMethods(obj, suffix, suffixRegexp, filter);
-
-    for (var i = 0, len = methods.length; i < len; i+= 2) {
-        var key = methods[i];
-        var fn = methods[i+1];
-        var promisifiedKey = key + suffix;
-        if (promisifier === makeNodePromisified) {
-            obj[promisifiedKey] =
-                makeNodePromisified(key, THIS, key, fn, suffix, multiArgs);
-        } else {
-            var promisified = promisifier(fn, function() {
-                return makeNodePromisified(key, THIS, key,
-                                           fn, suffix, multiArgs);
-            });
-            util.notEnumerableProp(promisified, "__isPromisified__", true);
-            obj[promisifiedKey] = promisified;
-        }
-    }
-    util.toFastProperties(obj);
-    return obj;
-}
-
-function promisify(callback, receiver, multiArgs) {
-    return makeNodePromisified(callback, receiver, undefined,
-                                callback, null, multiArgs);
-}
-
-Promise.promisify = function (fn, options) {
-    if (typeof fn !== "function") {
-        throw new TypeError("expecting a function but got " + util.classString(fn));
-    }
-    if (isPromisified(fn)) {
-        return fn;
-    }
-    options = Object(options);
-    var receiver = options.context === undefined ? THIS : options.context;
-    var multiArgs = !!options.multiArgs;
-    var ret = promisify(fn, receiver, multiArgs);
-    util.copyDescriptors(fn, ret, propsFilter);
-    return ret;
-};
-
-Promise.promisifyAll = function (target, options) {
-    if (typeof target !== "function" && typeof target !== "object") {
-        throw new TypeError("the target of promisifyAll must be an object or a function\u000a\u000a    See http://goo.gl/MqrFmX\u000a");
-    }
-    options = Object(options);
-    var multiArgs = !!options.multiArgs;
-    var suffix = options.suffix;
-    if (typeof suffix !== "string") suffix = defaultSuffix;
-    var filter = options.filter;
-    if (typeof filter !== "function") filter = defaultFilter;
-    var promisifier = options.promisifier;
-    if (typeof promisifier !== "function") promisifier = makeNodePromisified;
-
-    if (!util.isIdentifier(suffix)) {
-        throw new RangeError("suffix must be a valid identifier\u000a\u000a    See http://goo.gl/MqrFmX\u000a");
-    }
-
-    var keys = util.inheritedDataKeys(target);
-    for (var i = 0; i < keys.length; ++i) {
-        var value = target[keys[i]];
-        if (keys[i] !== "constructor" &&
-            util.isClass(value)) {
-            promisifyAll(value.prototype, suffix, filter, promisifier,
-                multiArgs);
-            promisifyAll(value, suffix, filter, promisifier, multiArgs);
-        }
-    }
-
-    return promisifyAll(target, suffix, filter, promisifier, multiArgs);
-};
-};
-

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/props.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/props.js b/node_modules/bluebird/js/release/props.js
deleted file mode 100644
index 6a34aaf..0000000
--- a/node_modules/bluebird/js/release/props.js
+++ /dev/null
@@ -1,118 +0,0 @@
-"use strict";
-module.exports = function(
-    Promise, PromiseArray, tryConvertToPromise, apiRejection) {
-var util = require("./util");
-var isObject = util.isObject;
-var es5 = require("./es5");
-var Es6Map;
-if (typeof Map === "function") Es6Map = Map;
-
-var mapToEntries = (function() {
-    var index = 0;
-    var size = 0;
-
-    function extractEntry(value, key) {
-        this[index] = value;
-        this[index + size] = key;
-        index++;
-    }
-
-    return function mapToEntries(map) {
-        size = map.size;
-        index = 0;
-        var ret = new Array(map.size * 2);
-        map.forEach(extractEntry, ret);
-        return ret;
-    };
-})();
-
-var entriesToMap = function(entries) {
-    var ret = new Es6Map();
-    var length = entries.length / 2 | 0;
-    for (var i = 0; i < length; ++i) {
-        var key = entries[length + i];
-        var value = entries[i];
-        ret.set(key, value);
-    }
-    return ret;
-};
-
-function PropertiesPromiseArray(obj) {
-    var isMap = false;
-    var entries;
-    if (Es6Map !== undefined && obj instanceof Es6Map) {
-        entries = mapToEntries(obj);
-        isMap = true;
-    } else {
-        var keys = es5.keys(obj);
-        var len = keys.length;
-        entries = new Array(len * 2);
-        for (var i = 0; i < len; ++i) {
-            var key = keys[i];
-            entries[i] = obj[key];
-            entries[i + len] = key;
-        }
-    }
-    this.constructor$(entries);
-    this._isMap = isMap;
-    this._init$(undefined, isMap ? -6 : -3);
-}
-util.inherits(PropertiesPromiseArray, PromiseArray);
-
-PropertiesPromiseArray.prototype._init = function () {};
-
-PropertiesPromiseArray.prototype._promiseFulfilled = function (value, index) {
-    this._values[index] = value;
-    var totalResolved = ++this._totalResolved;
-    if (totalResolved >= this._length) {
-        var val;
-        if (this._isMap) {
-            val = entriesToMap(this._values);
-        } else {
-            val = {};
-            var keyOffset = this.length();
-            for (var i = 0, len = this.length(); i < len; ++i) {
-                val[this._values[i + keyOffset]] = this._values[i];
-            }
-        }
-        this._resolve(val);
-        return true;
-    }
-    return false;
-};
-
-PropertiesPromiseArray.prototype.shouldCopyValues = function () {
-    return false;
-};
-
-PropertiesPromiseArray.prototype.getActualLength = function (len) {
-    return len >> 1;
-};
-
-function props(promises) {
-    var ret;
-    var castValue = tryConvertToPromise(promises);
-
-    if (!isObject(castValue)) {
-        return apiRejection("cannot await properties of a non-object\u000a\u000a    See http://goo.gl/MqrFmX\u000a");
-    } else if (castValue instanceof Promise) {
-        ret = castValue._then(
-            Promise.props, undefined, undefined, undefined, undefined);
-    } else {
-        ret = new PropertiesPromiseArray(castValue).promise();
-    }
-
-    if (castValue instanceof Promise) {
-        ret._propagateFrom(castValue, 2);
-    }
-    return ret;
-}
-
-Promise.prototype.props = function () {
-    return props(this);
-};
-
-Promise.props = function (promises) {
-    return props(promises);
-};
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/queue.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/queue.js b/node_modules/bluebird/js/release/queue.js
deleted file mode 100644
index ffd36fd..0000000
--- a/node_modules/bluebird/js/release/queue.js
+++ /dev/null
@@ -1,73 +0,0 @@
-"use strict";
-function arrayMove(src, srcIndex, dst, dstIndex, len) {
-    for (var j = 0; j < len; ++j) {
-        dst[j + dstIndex] = src[j + srcIndex];
-        src[j + srcIndex] = void 0;
-    }
-}
-
-function Queue(capacity) {
-    this._capacity = capacity;
-    this._length = 0;
-    this._front = 0;
-}
-
-Queue.prototype._willBeOverCapacity = function (size) {
-    return this._capacity < size;
-};
-
-Queue.prototype._pushOne = function (arg) {
-    var length = this.length();
-    this._checkCapacity(length + 1);
-    var i = (this._front + length) & (this._capacity - 1);
-    this[i] = arg;
-    this._length = length + 1;
-};
-
-Queue.prototype.push = function (fn, receiver, arg) {
-    var length = this.length() + 3;
-    if (this._willBeOverCapacity(length)) {
-        this._pushOne(fn);
-        this._pushOne(receiver);
-        this._pushOne(arg);
-        return;
-    }
-    var j = this._front + length - 3;
-    this._checkCapacity(length);
-    var wrapMask = this._capacity - 1;
-    this[(j + 0) & wrapMask] = fn;
-    this[(j + 1) & wrapMask] = receiver;
-    this[(j + 2) & wrapMask] = arg;
-    this._length = length;
-};
-
-Queue.prototype.shift = function () {
-    var front = this._front,
-        ret = this[front];
-
-    this[front] = undefined;
-    this._front = (front + 1) & (this._capacity - 1);
-    this._length--;
-    return ret;
-};
-
-Queue.prototype.length = function () {
-    return this._length;
-};
-
-Queue.prototype._checkCapacity = function (size) {
-    if (this._capacity < size) {
-        this._resizeTo(this._capacity << 1);
-    }
-};
-
-Queue.prototype._resizeTo = function (capacity) {
-    var oldCapacity = this._capacity;
-    this._capacity = capacity;
-    var front = this._front;
-    var length = this._length;
-    var moveItemsCount = (front + length) & (oldCapacity - 1);
-    arrayMove(this, 0, this, oldCapacity, moveItemsCount);
-};
-
-module.exports = Queue;

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/race.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/race.js b/node_modules/bluebird/js/release/race.js
deleted file mode 100644
index b862f46..0000000
--- a/node_modules/bluebird/js/release/race.js
+++ /dev/null
@@ -1,49 +0,0 @@
-"use strict";
-module.exports = function(
-    Promise, INTERNAL, tryConvertToPromise, apiRejection) {
-var util = require("./util");
-
-var raceLater = function (promise) {
-    return promise.then(function(array) {
-        return race(array, promise);
-    });
-};
-
-function race(promises, parent) {
-    var maybePromise = tryConvertToPromise(promises);
-
-    if (maybePromise instanceof Promise) {
-        return raceLater(maybePromise);
-    } else {
-        promises = util.asArray(promises);
-        if (promises === null)
-            return apiRejection("expecting an array or an iterable object but got " + util.classString(promises));
-    }
-
-    var ret = new Promise(INTERNAL);
-    if (parent !== undefined) {
-        ret._propagateFrom(parent, 3);
-    }
-    var fulfill = ret._fulfill;
-    var reject = ret._reject;
-    for (var i = 0, len = promises.length; i < len; ++i) {
-        var val = promises[i];
-
-        if (val === undefined && !(i in promises)) {
-            continue;
-        }
-
-        Promise.cast(val)._then(fulfill, reject, undefined, ret, null);
-    }
-    return ret;
-}
-
-Promise.race = function (promises) {
-    return race(promises, undefined);
-};
-
-Promise.prototype.race = function () {
-    return race(this, undefined);
-};
-
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/reduce.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/reduce.js b/node_modules/bluebird/js/release/reduce.js
deleted file mode 100644
index 26e2b1a..0000000
--- a/node_modules/bluebird/js/release/reduce.js
+++ /dev/null
@@ -1,172 +0,0 @@
-"use strict";
-module.exports = function(Promise,
-                          PromiseArray,
-                          apiRejection,
-                          tryConvertToPromise,
-                          INTERNAL,
-                          debug) {
-var getDomain = Promise._getDomain;
-var util = require("./util");
-var tryCatch = util.tryCatch;
-
-function ReductionPromiseArray(promises, fn, initialValue, _each) {
-    this.constructor$(promises);
-    var domain = getDomain();
-    this._fn = domain === null ? fn : util.domainBind(domain, fn);
-    if (initialValue !== undefined) {
-        initialValue = Promise.resolve(initialValue);
-        initialValue._attachCancellationCallback(this);
-    }
-    this._initialValue = initialValue;
-    this._currentCancellable = null;
-    if(_each === INTERNAL) {
-        this._eachValues = Array(this._length);
-    } else if (_each === 0) {
-        this._eachValues = null;
-    } else {
-        this._eachValues = undefined;
-    }
-    this._promise._captureStackTrace();
-    this._init$(undefined, -5);
-}
-util.inherits(ReductionPromiseArray, PromiseArray);
-
-ReductionPromiseArray.prototype._gotAccum = function(accum) {
-    if (this._eachValues !== undefined && 
-        this._eachValues !== null && 
-        accum !== INTERNAL) {
-        this._eachValues.push(accum);
-    }
-};
-
-ReductionPromiseArray.prototype._eachComplete = function(value) {
-    if (this._eachValues !== null) {
-        this._eachValues.push(value);
-    }
-    return this._eachValues;
-};
-
-ReductionPromiseArray.prototype._init = function() {};
-
-ReductionPromiseArray.prototype._resolveEmptyArray = function() {
-    this._resolve(this._eachValues !== undefined ? this._eachValues
-                                                 : this._initialValue);
-};
-
-ReductionPromiseArray.prototype.shouldCopyValues = function () {
-    return false;
-};
-
-ReductionPromiseArray.prototype._resolve = function(value) {
-    this._promise._resolveCallback(value);
-    this._values = null;
-};
-
-ReductionPromiseArray.prototype._resultCancelled = function(sender) {
-    if (sender === this._initialValue) return this._cancel();
-    if (this._isResolved()) return;
-    this._resultCancelled$();
-    if (this._currentCancellable instanceof Promise) {
-        this._currentCancellable.cancel();
-    }
-    if (this._initialValue instanceof Promise) {
-        this._initialValue.cancel();
-    }
-};
-
-ReductionPromiseArray.prototype._iterate = function (values) {
-    this._values = values;
-    var value;
-    var i;
-    var length = values.length;
-    if (this._initialValue !== undefined) {
-        value = this._initialValue;
-        i = 0;
-    } else {
-        value = Promise.resolve(values[0]);
-        i = 1;
-    }
-
-    this._currentCancellable = value;
-
-    if (!value.isRejected()) {
-        for (; i < length; ++i) {
-            var ctx = {
-                accum: null,
-                value: values[i],
-                index: i,
-                length: length,
-                array: this
-            };
-            value = value._then(gotAccum, undefined, undefined, ctx, undefined);
-        }
-    }
-
-    if (this._eachValues !== undefined) {
-        value = value
-            ._then(this._eachComplete, undefined, undefined, this, undefined);
-    }
-    value._then(completed, completed, undefined, value, this);
-};
-
-Promise.prototype.reduce = function (fn, initialValue) {
-    return reduce(this, fn, initialValue, null);
-};
-
-Promise.reduce = function (promises, fn, initialValue, _each) {
-    return reduce(promises, fn, initialValue, _each);
-};
-
-function completed(valueOrReason, array) {
-    if (this.isFulfilled()) {
-        array._resolve(valueOrReason);
-    } else {
-        array._reject(valueOrReason);
-    }
-}
-
-function reduce(promises, fn, initialValue, _each) {
-    if (typeof fn !== "function") {
-        return apiRejection("expecting a function but got " + util.classString(fn));
-    }
-    var array = new ReductionPromiseArray(promises, fn, initialValue, _each);
-    return array.promise();
-}
-
-function gotAccum(accum) {
-    this.accum = accum;
-    this.array._gotAccum(accum);
-    var value = tryConvertToPromise(this.value, this.array._promise);
-    if (value instanceof Promise) {
-        this.array._currentCancellable = value;
-        return value._then(gotValue, undefined, undefined, this, undefined);
-    } else {
-        return gotValue.call(this, value);
-    }
-}
-
-function gotValue(value) {
-    var array = this.array;
-    var promise = array._promise;
-    var fn = tryCatch(array._fn);
-    promise._pushContext();
-    var ret;
-    if (array._eachValues !== undefined) {
-        ret = fn.call(promise._boundValue(), value, this.index, this.length);
-    } else {
-        ret = fn.call(promise._boundValue(),
-                              this.accum, value, this.index, this.length);
-    }
-    if (ret instanceof Promise) {
-        array._currentCancellable = ret;
-    }
-    var promiseCreated = promise._popContext();
-    debug.checkForgottenReturns(
-        ret,
-        promiseCreated,
-        array._eachValues !== undefined ? "Promise.each" : "Promise.reduce",
-        promise
-    );
-    return ret;
-}
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/schedule.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/schedule.js b/node_modules/bluebird/js/release/schedule.js
deleted file mode 100644
index f70df9f..0000000
--- a/node_modules/bluebird/js/release/schedule.js
+++ /dev/null
@@ -1,61 +0,0 @@
-"use strict";
-var util = require("./util");
-var schedule;
-var noAsyncScheduler = function() {
-    throw new Error("No async scheduler available\u000a\u000a    See http://goo.gl/MqrFmX\u000a");
-};
-var NativePromise = util.getNativePromise();
-if (util.isNode && typeof MutationObserver === "undefined") {
-    var GlobalSetImmediate = global.setImmediate;
-    var ProcessNextTick = process.nextTick;
-    schedule = util.isRecentNode
-                ? function(fn) { GlobalSetImmediate.call(global, fn); }
-                : function(fn) { ProcessNextTick.call(process, fn); };
-} else if (typeof NativePromise === "function" &&
-           typeof NativePromise.resolve === "function") {
-    var nativePromise = NativePromise.resolve();
-    schedule = function(fn) {
-        nativePromise.then(fn);
-    };
-} else if ((typeof MutationObserver !== "undefined") &&
-          !(typeof window !== "undefined" &&
-            window.navigator &&
-            (window.navigator.standalone || window.cordova))) {
-    schedule = (function() {
-        var div = document.createElement("div");
-        var opts = {attributes: true};
-        var toggleScheduled = false;
-        var div2 = document.createElement("div");
-        var o2 = new MutationObserver(function() {
-            div.classList.toggle("foo");
-            toggleScheduled = false;
-        });
-        o2.observe(div2, opts);
-
-        var scheduleToggle = function() {
-            if (toggleScheduled) return;
-            toggleScheduled = true;
-            div2.classList.toggle("foo");
-        };
-
-        return function schedule(fn) {
-            var o = new MutationObserver(function() {
-                o.disconnect();
-                fn();
-            });
-            o.observe(div, opts);
-            scheduleToggle();
-        };
-    })();
-} else if (typeof setImmediate !== "undefined") {
-    schedule = function (fn) {
-        setImmediate(fn);
-    };
-} else if (typeof setTimeout !== "undefined") {
-    schedule = function (fn) {
-        setTimeout(fn, 0);
-    };
-} else {
-    schedule = noAsyncScheduler;
-}
-module.exports = schedule;

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/settle.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/settle.js b/node_modules/bluebird/js/release/settle.js
deleted file mode 100644
index fade3a1..0000000
--- a/node_modules/bluebird/js/release/settle.js
+++ /dev/null
@@ -1,43 +0,0 @@
-"use strict";
-module.exports =
-    function(Promise, PromiseArray, debug) {
-var PromiseInspection = Promise.PromiseInspection;
-var util = require("./util");
-
-function SettledPromiseArray(values) {
-    this.constructor$(values);
-}
-util.inherits(SettledPromiseArray, PromiseArray);
-
-SettledPromiseArray.prototype._promiseResolved = function (index, inspection) {
-    this._values[index] = inspection;
-    var totalResolved = ++this._totalResolved;
-    if (totalResolved >= this._length) {
-        this._resolve(this._values);
-        return true;
-    }
-    return false;
-};
-
-SettledPromiseArray.prototype._promiseFulfilled = function (value, index) {
-    var ret = new PromiseInspection();
-    ret._bitField = 33554432;
-    ret._settledValueField = value;
-    return this._promiseResolved(index, ret);
-};
-SettledPromiseArray.prototype._promiseRejected = function (reason, index) {
-    var ret = new PromiseInspection();
-    ret._bitField = 16777216;
-    ret._settledValueField = reason;
-    return this._promiseResolved(index, ret);
-};
-
-Promise.settle = function (promises) {
-    debug.deprecated(".settle()", ".reflect()");
-    return new SettledPromiseArray(promises).promise();
-};
-
-Promise.prototype.settle = function () {
-    return Promise.settle(this);
-};
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/some.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/some.js b/node_modules/bluebird/js/release/some.js
deleted file mode 100644
index 400d852..0000000
--- a/node_modules/bluebird/js/release/some.js
+++ /dev/null
@@ -1,148 +0,0 @@
-"use strict";
-module.exports =
-function(Promise, PromiseArray, apiRejection) {
-var util = require("./util");
-var RangeError = require("./errors").RangeError;
-var AggregateError = require("./errors").AggregateError;
-var isArray = util.isArray;
-var CANCELLATION = {};
-
-
-function SomePromiseArray(values) {
-    this.constructor$(values);
-    this._howMany = 0;
-    this._unwrap = false;
-    this._initialized = false;
-}
-util.inherits(SomePromiseArray, PromiseArray);
-
-SomePromiseArray.prototype._init = function () {
-    if (!this._initialized) {
-        return;
-    }
-    if (this._howMany === 0) {
-        this._resolve([]);
-        return;
-    }
-    this._init$(undefined, -5);
-    var isArrayResolved = isArray(this._values);
-    if (!this._isResolved() &&
-        isArrayResolved &&
-        this._howMany > this._canPossiblyFulfill()) {
-        this._reject(this._getRangeError(this.length()));
-    }
-};
-
-SomePromiseArray.prototype.init = function () {
-    this._initialized = true;
-    this._init();
-};
-
-SomePromiseArray.prototype.setUnwrap = function () {
-    this._unwrap = true;
-};
-
-SomePromiseArray.prototype.howMany = function () {
-    return this._howMany;
-};
-
-SomePromiseArray.prototype.setHowMany = function (count) {
-    this._howMany = count;
-};
-
-SomePromiseArray.prototype._promiseFulfilled = function (value) {
-    this._addFulfilled(value);
-    if (this._fulfilled() === this.howMany()) {
-        this._values.length = this.howMany();
-        if (this.howMany() === 1 && this._unwrap) {
-            this._resolve(this._values[0]);
-        } else {
-            this._resolve(this._values);
-        }
-        return true;
-    }
-    return false;
-
-};
-SomePromiseArray.prototype._promiseRejected = function (reason) {
-    this._addRejected(reason);
-    return this._checkOutcome();
-};
-
-SomePromiseArray.prototype._promiseCancelled = function () {
-    if (this._values instanceof Promise || this._values == null) {
-        return this._cancel();
-    }
-    this._addRejected(CANCELLATION);
-    return this._checkOutcome();
-};
-
-SomePromiseArray.prototype._checkOutcome = function() {
-    if (this.howMany() > this._canPossiblyFulfill()) {
-        var e = new AggregateError();
-        for (var i = this.length(); i < this._values.length; ++i) {
-            if (this._values[i] !== CANCELLATION) {
-                e.push(this._values[i]);
-            }
-        }
-        if (e.length > 0) {
-            this._reject(e);
-        } else {
-            this._cancel();
-        }
-        return true;
-    }
-    return false;
-};
-
-SomePromiseArray.prototype._fulfilled = function () {
-    return this._totalResolved;
-};
-
-SomePromiseArray.prototype._rejected = function () {
-    return this._values.length - this.length();
-};
-
-SomePromiseArray.prototype._addRejected = function (reason) {
-    this._values.push(reason);
-};
-
-SomePromiseArray.prototype._addFulfilled = function (value) {
-    this._values[this._totalResolved++] = value;
-};
-
-SomePromiseArray.prototype._canPossiblyFulfill = function () {
-    return this.length() - this._rejected();
-};
-
-SomePromiseArray.prototype._getRangeError = function (count) {
-    var message = "Input array must contain at least " +
-            this._howMany + " items but contains only " + count + " items";
-    return new RangeError(message);
-};
-
-SomePromiseArray.prototype._resolveEmptyArray = function () {
-    this._reject(this._getRangeError(0));
-};
-
-function some(promises, howMany) {
-    if ((howMany | 0) !== howMany || howMany < 0) {
-        return apiRejection("expecting a positive integer\u000a\u000a    See http://goo.gl/MqrFmX\u000a");
-    }
-    var ret = new SomePromiseArray(promises);
-    var promise = ret.promise();
-    ret.setHowMany(howMany);
-    ret.init();
-    return promise;
-}
-
-Promise.some = function (promises, howMany) {
-    return some(promises, howMany);
-};
-
-Promise.prototype.some = function (howMany) {
-    return some(this, howMany);
-};
-
-Promise._SomePromiseArray = SomePromiseArray;
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/synchronous_inspection.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/synchronous_inspection.js b/node_modules/bluebird/js/release/synchronous_inspection.js
deleted file mode 100644
index 9c49d2e..0000000
--- a/node_modules/bluebird/js/release/synchronous_inspection.js
+++ /dev/null
@@ -1,103 +0,0 @@
-"use strict";
-module.exports = function(Promise) {
-function PromiseInspection(promise) {
-    if (promise !== undefined) {
-        promise = promise._target();
-        this._bitField = promise._bitField;
-        this._settledValueField = promise._isFateSealed()
-            ? promise._settledValue() : undefined;
-    }
-    else {
-        this._bitField = 0;
-        this._settledValueField = undefined;
-    }
-}
-
-PromiseInspection.prototype._settledValue = function() {
-    return this._settledValueField;
-};
-
-var value = PromiseInspection.prototype.value = function () {
-    if (!this.isFulfilled()) {
-        throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\u000a\u000a    See http://goo.gl/MqrFmX\u000a");
-    }
-    return this._settledValue();
-};
-
-var reason = PromiseInspection.prototype.error =
-PromiseInspection.prototype.reason = function () {
-    if (!this.isRejected()) {
-        throw new TypeError("cannot get rejection reason of a non-rejected promise\u000a\u000a    See http://goo.gl/MqrFmX\u000a");
-    }
-    return this._settledValue();
-};
-
-var isFulfilled = PromiseInspection.prototype.isFulfilled = function() {
-    return (this._bitField & 33554432) !== 0;
-};
-
-var isRejected = PromiseInspection.prototype.isRejected = function () {
-    return (this._bitField & 16777216) !== 0;
-};
-
-var isPending = PromiseInspection.prototype.isPending = function () {
-    return (this._bitField & 50397184) === 0;
-};
-
-var isResolved = PromiseInspection.prototype.isResolved = function () {
-    return (this._bitField & 50331648) !== 0;
-};
-
-PromiseInspection.prototype.isCancelled = function() {
-    return (this._bitField & 8454144) !== 0;
-};
-
-Promise.prototype.__isCancelled = function() {
-    return (this._bitField & 65536) === 65536;
-};
-
-Promise.prototype._isCancelled = function() {
-    return this._target().__isCancelled();
-};
-
-Promise.prototype.isCancelled = function() {
-    return (this._target()._bitField & 8454144) !== 0;
-};
-
-Promise.prototype.isPending = function() {
-    return isPending.call(this._target());
-};
-
-Promise.prototype.isRejected = function() {
-    return isRejected.call(this._target());
-};
-
-Promise.prototype.isFulfilled = function() {
-    return isFulfilled.call(this._target());
-};
-
-Promise.prototype.isResolved = function() {
-    return isResolved.call(this._target());
-};
-
-Promise.prototype.value = function() {
-    return value.call(this._target());
-};
-
-Promise.prototype.reason = function() {
-    var target = this._target();
-    target._unsetRejectionIsUnhandled();
-    return reason.call(target);
-};
-
-Promise.prototype._value = function() {
-    return this._settledValue();
-};
-
-Promise.prototype._reason = function() {
-    this._unsetRejectionIsUnhandled();
-    return this._settledValue();
-};
-
-Promise.PromiseInspection = PromiseInspection;
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/thenables.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/thenables.js b/node_modules/bluebird/js/release/thenables.js
deleted file mode 100644
index d6ab9aa..0000000
--- a/node_modules/bluebird/js/release/thenables.js
+++ /dev/null
@@ -1,86 +0,0 @@
-"use strict";
-module.exports = function(Promise, INTERNAL) {
-var util = require("./util");
-var errorObj = util.errorObj;
-var isObject = util.isObject;
-
-function tryConvertToPromise(obj, context) {
-    if (isObject(obj)) {
-        if (obj instanceof Promise) return obj;
-        var then = getThen(obj);
-        if (then === errorObj) {
-            if (context) context._pushContext();
-            var ret = Promise.reject(then.e);
-            if (context) context._popContext();
-            return ret;
-        } else if (typeof then === "function") {
-            if (isAnyBluebirdPromise(obj)) {
-                var ret = new Promise(INTERNAL);
-                obj._then(
-                    ret._fulfill,
-                    ret._reject,
-                    undefined,
-                    ret,
-                    null
-                );
-                return ret;
-            }
-            return doThenable(obj, then, context);
-        }
-    }
-    return obj;
-}
-
-function doGetThen(obj) {
-    return obj.then;
-}
-
-function getThen(obj) {
-    try {
-        return doGetThen(obj);
-    } catch (e) {
-        errorObj.e = e;
-        return errorObj;
-    }
-}
-
-var hasProp = {}.hasOwnProperty;
-function isAnyBluebirdPromise(obj) {
-    try {
-        return hasProp.call(obj, "_promise0");
-    } catch (e) {
-        return false;
-    }
-}
-
-function doThenable(x, then, context) {
-    var promise = new Promise(INTERNAL);
-    var ret = promise;
-    if (context) context._pushContext();
-    promise._captureStackTrace();
-    if (context) context._popContext();
-    var synchronous = true;
-    var result = util.tryCatch(then).call(x, resolve, reject);
-    synchronous = false;
-
-    if (promise && result === errorObj) {
-        promise._rejectCallback(result.e, true, true);
-        promise = null;
-    }
-
-    function resolve(value) {
-        if (!promise) return;
-        promise._resolveCallback(value);
-        promise = null;
-    }
-
-    function reject(reason) {
-        if (!promise) return;
-        promise._rejectCallback(reason, synchronous, true);
-        promise = null;
-    }
-    return ret;
-}
-
-return tryConvertToPromise;
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/timers.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/timers.js b/node_modules/bluebird/js/release/timers.js
deleted file mode 100644
index cb8f1f4..0000000
--- a/node_modules/bluebird/js/release/timers.js
+++ /dev/null
@@ -1,93 +0,0 @@
-"use strict";
-module.exports = function(Promise, INTERNAL, debug) {
-var util = require("./util");
-var TimeoutError = Promise.TimeoutError;
-
-function HandleWrapper(handle)  {
-    this.handle = handle;
-}
-
-HandleWrapper.prototype._resultCancelled = function() {
-    clearTimeout(this.handle);
-};
-
-var afterValue = function(value) { return delay(+this).thenReturn(value); };
-var delay = Promise.delay = function (ms, value) {
-    var ret;
-    var handle;
-    if (value !== undefined) {
-        ret = Promise.resolve(value)
-                ._then(afterValue, null, null, ms, undefined);
-        if (debug.cancellation() && value instanceof Promise) {
-            ret._setOnCancel(value);
-        }
-    } else {
-        ret = new Promise(INTERNAL);
-        handle = setTimeout(function() { ret._fulfill(); }, +ms);
-        if (debug.cancellation()) {
-            ret._setOnCancel(new HandleWrapper(handle));
-        }
-        ret._captureStackTrace();
-    }
-    ret._setAsyncGuaranteed();
-    return ret;
-};
-
-Promise.prototype.delay = function (ms) {
-    return delay(ms, this);
-};
-
-var afterTimeout = function (promise, message, parent) {
-    var err;
-    if (typeof message !== "string") {
-        if (message instanceof Error) {
-            err = message;
-        } else {
-            err = new TimeoutError("operation timed out");
-        }
-    } else {
-        err = new TimeoutError(message);
-    }
-    util.markAsOriginatingFromRejection(err);
-    promise._attachExtraTrace(err);
-    promise._reject(err);
-
-    if (parent != null) {
-        parent.cancel();
-    }
-};
-
-function successClear(value) {
-    clearTimeout(this.handle);
-    return value;
-}
-
-function failureClear(reason) {
-    clearTimeout(this.handle);
-    throw reason;
-}
-
-Promise.prototype.timeout = function (ms, message) {
-    ms = +ms;
-    var ret, parent;
-
-    var handleWrapper = new HandleWrapper(setTimeout(function timeoutTimeout() {
-        if (ret.isPending()) {
-            afterTimeout(ret, message, parent);
-        }
-    }, ms));
-
-    if (debug.cancellation()) {
-        parent = this.then();
-        ret = parent._then(successClear, failureClear,
-                            undefined, handleWrapper, undefined);
-        ret._setOnCancel(handleWrapper);
-    } else {
-        ret = this._then(successClear, failureClear,
-                            undefined, handleWrapper, undefined);
-    }
-
-    return ret;
-};
-
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/using.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/using.js b/node_modules/bluebird/js/release/using.js
deleted file mode 100644
index 65de531..0000000
--- a/node_modules/bluebird/js/release/using.js
+++ /dev/null
@@ -1,226 +0,0 @@
-"use strict";
-module.exports = function (Promise, apiRejection, tryConvertToPromise,
-    createContext, INTERNAL, debug) {
-    var util = require("./util");
-    var TypeError = require("./errors").TypeError;
-    var inherits = require("./util").inherits;
-    var errorObj = util.errorObj;
-    var tryCatch = util.tryCatch;
-    var NULL = {};
-
-    function thrower(e) {
-        setTimeout(function(){throw e;}, 0);
-    }
-
-    function castPreservingDisposable(thenable) {
-        var maybePromise = tryConvertToPromise(thenable);
-        if (maybePromise !== thenable &&
-            typeof thenable._isDisposable === "function" &&
-            typeof thenable._getDisposer === "function" &&
-            thenable._isDisposable()) {
-            maybePromise._setDisposable(thenable._getDisposer());
-        }
-        return maybePromise;
-    }
-    function dispose(resources, inspection) {
-        var i = 0;
-        var len = resources.length;
-        var ret = new Promise(INTERNAL);
-        function iterator() {
-            if (i >= len) return ret._fulfill();
-            var maybePromise = castPreservingDisposable(resources[i++]);
-            if (maybePromise instanceof Promise &&
-                maybePromise._isDisposable()) {
-                try {
-                    maybePromise = tryConvertToPromise(
-                        maybePromise._getDisposer().tryDispose(inspection),
-                        resources.promise);
-                } catch (e) {
-                    return thrower(e);
-                }
-                if (maybePromise instanceof Promise) {
-                    return maybePromise._then(iterator, thrower,
-                                              null, null, null);
-                }
-            }
-            iterator();
-        }
-        iterator();
-        return ret;
-    }
-
-    function Disposer(data, promise, context) {
-        this._data = data;
-        this._promise = promise;
-        this._context = context;
-    }
-
-    Disposer.prototype.data = function () {
-        return this._data;
-    };
-
-    Disposer.prototype.promise = function () {
-        return this._promise;
-    };
-
-    Disposer.prototype.resource = function () {
-        if (this.promise().isFulfilled()) {
-            return this.promise().value();
-        }
-        return NULL;
-    };
-
-    Disposer.prototype.tryDispose = function(inspection) {
-        var resource = this.resource();
-        var context = this._context;
-        if (context !== undefined) context._pushContext();
-        var ret = resource !== NULL
-            ? this.doDispose(resource, inspection) : null;
-        if (context !== undefined) context._popContext();
-        this._promise._unsetDisposable();
-        this._data = null;
-        return ret;
-    };
-
-    Disposer.isDisposer = function (d) {
-        return (d != null &&
-                typeof d.resource === "function" &&
-                typeof d.tryDispose === "function");
-    };
-
-    function FunctionDisposer(fn, promise, context) {
-        this.constructor$(fn, promise, context);
-    }
-    inherits(FunctionDisposer, Disposer);
-
-    FunctionDisposer.prototype.doDispose = function (resource, inspection) {
-        var fn = this.data();
-        return fn.call(resource, resource, inspection);
-    };
-
-    function maybeUnwrapDisposer(value) {
-        if (Disposer.isDisposer(value)) {
-            this.resources[this.index]._setDisposable(value);
-            return value.promise();
-        }
-        return value;
-    }
-
-    function ResourceList(length) {
-        this.length = length;
-        this.promise = null;
-        this[length-1] = null;
-    }
-
-    ResourceList.prototype._resultCancelled = function() {
-        var len = this.length;
-        for (var i = 0; i < len; ++i) {
-            var item = this[i];
-            if (item instanceof Promise) {
-                item.cancel();
-            }
-        }
-    };
-
-    Promise.using = function () {
-        var len = arguments.length;
-        if (len < 2) return apiRejection(
-                        "you must pass at least 2 arguments to Promise.using");
-        var fn = arguments[len - 1];
-        if (typeof fn !== "function") {
-            return apiRejection("expecting a function but got " + util.classString(fn));
-        }
-        var input;
-        var spreadArgs = true;
-        if (len === 2 && Array.isArray(arguments[0])) {
-            input = arguments[0];
-            len = input.length;
-            spreadArgs = false;
-        } else {
-            input = arguments;
-            len--;
-        }
-        var resources = new ResourceList(len);
-        for (var i = 0; i < len; ++i) {
-            var resource = input[i];
-            if (Disposer.isDisposer(resource)) {
-                var disposer = resource;
-                resource = resource.promise();
-                resource._setDisposable(disposer);
-            } else {
-                var maybePromise = tryConvertToPromise(resource);
-                if (maybePromise instanceof Promise) {
-                    resource =
-                        maybePromise._then(maybeUnwrapDisposer, null, null, {
-                            resources: resources,
-                            index: i
-                    }, undefined);
-                }
-            }
-            resources[i] = resource;
-        }
-
-        var reflectedResources = new Array(resources.length);
-        for (var i = 0; i < reflectedResources.length; ++i) {
-            reflectedResources[i] = Promise.resolve(resources[i]).reflect();
-        }
-
-        var resultPromise = Promise.all(reflectedResources)
-            .then(function(inspections) {
-                for (var i = 0; i < inspections.length; ++i) {
-                    var inspection = inspections[i];
-                    if (inspection.isRejected()) {
-                        errorObj.e = inspection.error();
-                        return errorObj;
-                    } else if (!inspection.isFulfilled()) {
-                        resultPromise.cancel();
-                        return;
-                    }
-                    inspections[i] = inspection.value();
-                }
-                promise._pushContext();
-
-                fn = tryCatch(fn);
-                var ret = spreadArgs
-                    ? fn.apply(undefined, inspections) : fn(inspections);
-                var promiseCreated = promise._popContext();
-                debug.checkForgottenReturns(
-                    ret, promiseCreated, "Promise.using", promise);
-                return ret;
-            });
-
-        var promise = resultPromise.lastly(function() {
-            var inspection = new Promise.PromiseInspection(resultPromise);
-            return dispose(resources, inspection);
-        });
-        resources.promise = promise;
-        promise._setOnCancel(resources);
-        return promise;
-    };
-
-    Promise.prototype._setDisposable = function (disposer) {
-        this._bitField = this._bitField | 131072;
-        this._disposer = disposer;
-    };
-
-    Promise.prototype._isDisposable = function () {
-        return (this._bitField & 131072) > 0;
-    };
-
-    Promise.prototype._getDisposer = function () {
-        return this._disposer;
-    };
-
-    Promise.prototype._unsetDisposable = function () {
-        this._bitField = this._bitField & (~131072);
-        this._disposer = undefined;
-    };
-
-    Promise.prototype.disposer = function (fn) {
-        if (typeof fn === "function") {
-            return new FunctionDisposer(fn, this, createContext());
-        }
-        throw new TypeError();
-    };
-
-};



[51/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
remove legacy code


Project: http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/commit/ca1c37a7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/tree/ca1c37a7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/diff/ca1c37a7

Branch: refs/heads/master
Commit: ca1c37a79073c9ca54e4cfa0006de142502eb353
Parents: ea6db62
Author: William Guo <gu...@apache.org>
Authored: Wed Sep 12 16:57:36 2018 +0800
Committer: William Guo <gu...@apache.org>
Committed: Wed Sep 12 16:57:36 2018 +0800

----------------------------------------------------------------------
 db.json                                         |      1 -
 node_modules/.bin/JSONStream                    |      1 -
 node_modules/.bin/acorn                         |      1 -
 node_modules/.bin/bunyan                        |      1 -
 node_modules/.bin/escodegen                     |      1 -
 node_modules/.bin/esgenerate                    |      1 -
 node_modules/.bin/esparse                       |      1 -
 node_modules/.bin/esvalidate                    |      1 -
 node_modules/.bin/hexo                          |      1 -
 node_modules/.bin/js-yaml                       |      1 -
 node_modules/.bin/marked                        |      1 -
 node_modules/.bin/md2html                       |      1 -
 node_modules/.bin/mime                          |      1 -
 node_modules/.bin/mkdirp                        |      1 -
 node_modules/.bin/ncp                           |      1 -
 node_modules/.bin/nopt                          |      1 -
 node_modules/.bin/nunjucks-precompile           |      1 -
 node_modules/.bin/rimraf                        |      1 -
 node_modules/.bin/sshpk-conv                    |      1 -
 node_modules/.bin/sshpk-sign                    |      1 -
 node_modules/.bin/sshpk-verify                  |      1 -
 node_modules/.bin/strip-indent                  |      1 -
 node_modules/.bin/stylus                        |      1 -
 node_modules/.bin/swig                          |      1 -
 node_modules/.bin/to-title-case                 |      1 -
 node_modules/.bin/uglifyjs                      |      1 -
 node_modules/.bin/uuid                          |      1 -
 node_modules/.bin/which                         |      1 -
 node_modules/.bin/window-size                   |      1 -
 node_modules/JSONStream/.npmignore              |      2 -
 node_modules/JSONStream/.travis.yml             |      8 -
 node_modules/JSONStream/LICENSE.APACHE2         |     15 -
 node_modules/JSONStream/LICENSE.MIT             |     24 -
 node_modules/JSONStream/examples/all_docs.js    |     13 -
 node_modules/JSONStream/index.js                |    253 -
 node_modules/JSONStream/package.json            |    113 -
 node_modules/JSONStream/readme.markdown         |    207 -
 node_modules/JSONStream/test/bool.js            |     41 -
 node_modules/JSONStream/test/browser.js         |     18 -
 node_modules/JSONStream/test/destroy_missing.js |     27 -
 .../JSONStream/test/disabled/doubledot1.js      |     29 -
 .../JSONStream/test/disabled/doubledot2.js      |     29 -
 node_modules/JSONStream/test/empty.js           |     44 -
 node_modules/JSONStream/test/error_contents.js  |     45 -
 .../JSONStream/test/fixtures/all_npm.json       |   4030 -
 .../JSONStream/test/fixtures/couch_sample.json  |     18 -
 .../JSONStream/test/fixtures/depth.json         |     15 -
 .../JSONStream/test/fixtures/error.json         |      1 -
 .../JSONStream/test/fixtures/header_footer.json |     19 -
 node_modules/JSONStream/test/fn.js              |     39 -
 node_modules/JSONStream/test/gen.js             |    135 -
 node_modules/JSONStream/test/header_footer.js   |     55 -
 node_modules/JSONStream/test/issues.js          |     34 -
 node_modules/JSONStream/test/keys.js            |    105 -
 node_modules/JSONStream/test/map.js             |     40 -
 .../JSONStream/test/multiple_objects.js         |     36 -
 .../JSONStream/test/multiple_objects_error.js   |     29 -
 node_modules/JSONStream/test/null.js            |     28 -
 node_modules/JSONStream/test/parsejson.js       |     25 -
 node_modules/JSONStream/test/stringify.js       |     41 -
 .../JSONStream/test/stringify_object.js         |     47 -
 node_modules/JSONStream/test/test.js            |     35 -
 node_modules/JSONStream/test/test2.js           |     29 -
 node_modules/JSONStream/test/two-ways.js        |     41 -
 node_modules/abab/CHANGELOG.md                  |     11 -
 node_modules/abab/README.md                     |     52 -
 node_modules/abab/index.js                      |      9 -
 node_modules/abab/lib/atob.js                   |    109 -
 node_modules/abab/lib/btoa.js                   |     65 -
 node_modules/abab/package.json                  |    107 -
 node_modules/abbrev/LICENSE                     |     15 -
 node_modules/abbrev/README.md                   |     23 -
 node_modules/abbrev/abbrev.js                   |     61 -
 node_modules/abbrev/package.json                |     95 -
 node_modules/accepts/HISTORY.md                 |    212 -
 node_modules/accepts/LICENSE                    |     23 -
 node_modules/accepts/README.md                  |    135 -
 node_modules/accepts/index.js                   |    231 -
 node_modules/accepts/package.json               |    113 -
 node_modules/acorn-globals/LICENSE              |     19 -
 node_modules/acorn-globals/README.md            |     76 -
 node_modules/acorn-globals/index.js             |    180 -
 node_modules/acorn-globals/package.json         |    101 -
 node_modules/acorn/.editorconfig                |      7 -
 node_modules/acorn/.gitattributes               |      1 -
 node_modules/acorn/.npmignore                   |      3 -
 node_modules/acorn/.tern-project                |      6 -
 node_modules/acorn/.travis.yml                  |      6 -
 node_modules/acorn/AUTHORS                      |     43 -
 node_modules/acorn/LICENSE                      |     19 -
 node_modules/acorn/README.md                    |    396 -
 node_modules/acorn/bin/acorn                    |     71 -
 node_modules/acorn/bin/build-acorn.js           |     82 -
 .../acorn/bin/generate-identifier-regex.js      |     47 -
 node_modules/acorn/bin/update_authors.sh        |      6 -
 node_modules/acorn/dist/.keep                   |      0
 node_modules/acorn/dist/acorn.js                |   3340 -
 node_modules/acorn/dist/acorn_loose.js          |   1300 -
 node_modules/acorn/dist/walk.js                 |    377 -
 node_modules/acorn/package.json                 |    223 -
 node_modules/acorn/src/bin/acorn.js             |     59 -
 node_modules/acorn/src/expression.js            |    707 -
 node_modules/acorn/src/identifier.js            |     90 -
 node_modules/acorn/src/index.js                 |     67 -
 node_modules/acorn/src/location.js              |     24 -
 node_modules/acorn/src/locutil.js               |     42 -
 node_modules/acorn/src/loose/acorn_loose.js     |      0
 node_modules/acorn/src/loose/expression.js      |    501 -
 node_modules/acorn/src/loose/index.js           |     50 -
 node_modules/acorn/src/loose/parseutil.js       |      1 -
 node_modules/acorn/src/loose/state.js           |    160 -
 node_modules/acorn/src/loose/statement.js       |    420 -
 node_modules/acorn/src/loose/tokenize.js        |    108 -
 node_modules/acorn/src/lval.js                  |    215 -
 node_modules/acorn/src/node.js                  |     50 -
 node_modules/acorn/src/options.js               |    121 -
 node_modules/acorn/src/parseutil.js             |    102 -
 node_modules/acorn/src/state.js                 |    104 -
 node_modules/acorn/src/statement.js             |    626 -
 node_modules/acorn/src/tokencontext.js          |    109 -
 node_modules/acorn/src/tokenize.js              |    682 -
 node_modules/acorn/src/tokentype.js             |    147 -
 node_modules/acorn/src/util.js                  |      9 -
 node_modules/acorn/src/walk/index.js            |    340 -
 node_modules/acorn/src/whitespace.js            |     12 -
 node_modules/ajv/.tonic_example.js              |     20 -
 node_modules/ajv/LICENSE                        |     22 -
 node_modules/ajv/README.md                      |   1211 -
 node_modules/ajv/dist/ajv.bundle.js             |   8041 -
 node_modules/ajv/dist/ajv.min.js                |      6 -
 node_modules/ajv/dist/ajv.min.js.map            |      1 -
 node_modules/ajv/dist/nodent.min.js             |      8 -
 node_modules/ajv/dist/regenerator.min.js        |     36 -
 node_modules/ajv/lib/ajv.d.ts                   |    282 -
 node_modules/ajv/lib/ajv.js                     |    420 -
 node_modules/ajv/lib/async.js                   |    218 -
 node_modules/ajv/lib/cache.js                   |     26 -
 node_modules/ajv/lib/compile/_rules.js          |     28 -
 node_modules/ajv/lib/compile/equal.js           |     45 -
 node_modules/ajv/lib/compile/formats.js         |    164 -
 node_modules/ajv/lib/compile/index.js           |    390 -
 node_modules/ajv/lib/compile/resolve.js         |    267 -
 node_modules/ajv/lib/compile/rules.js           |     40 -
 node_modules/ajv/lib/compile/schema_obj.js      |      9 -
 node_modules/ajv/lib/compile/ucs2length.js      |     20 -
 node_modules/ajv/lib/compile/util.js            |    257 -
 .../ajv/lib/compile/validation_error.js         |     14 -
 node_modules/ajv/lib/dot/_limit.jst             |     49 -
 node_modules/ajv/lib/dot/_limitItems.jst        |     10 -
 node_modules/ajv/lib/dot/_limitLength.jst       |     10 -
 node_modules/ajv/lib/dot/_limitProperties.jst   |     10 -
 node_modules/ajv/lib/dot/allOf.jst              |     34 -
 node_modules/ajv/lib/dot/anyOf.jst              |     48 -
 node_modules/ajv/lib/dot/coerce.def             |     61 -
 node_modules/ajv/lib/dot/custom.jst             |    188 -
 node_modules/ajv/lib/dot/defaults.def           |     32 -
 node_modules/ajv/lib/dot/definitions.def        |    182 -
 node_modules/ajv/lib/dot/dependencies.jst       |     69 -
 node_modules/ajv/lib/dot/enum.jst               |     30 -
 node_modules/ajv/lib/dot/errors.def             |    185 -
 node_modules/ajv/lib/dot/format.jst             |    100 -
 node_modules/ajv/lib/dot/items.jst              |    101 -
 node_modules/ajv/lib/dot/missing.def            |     34 -
 node_modules/ajv/lib/dot/multipleOf.jst         |     20 -
 node_modules/ajv/lib/dot/not.jst                |     43 -
 node_modules/ajv/lib/dot/oneOf.jst              |     44 -
 node_modules/ajv/lib/dot/pattern.jst            |     14 -
 node_modules/ajv/lib/dot/properties.jst         |    319 -
 node_modules/ajv/lib/dot/ref.jst                |     86 -
 node_modules/ajv/lib/dot/required.jst           |     96 -
 node_modules/ajv/lib/dot/uniqueItems.jst        |     38 -
 node_modules/ajv/lib/dot/v5/_formatLimit.jst    |    116 -
 node_modules/ajv/lib/dot/v5/constant.jst        |     10 -
 node_modules/ajv/lib/dot/v5/patternRequired.jst |     28 -
 node_modules/ajv/lib/dot/v5/switch.jst          |     73 -
 node_modules/ajv/lib/dot/validate.jst           |    210 -
 node_modules/ajv/lib/dotjs/README.md            |      3 -
 node_modules/ajv/lib/dotjs/_formatLimit.js      |    176 -
 node_modules/ajv/lib/dotjs/_limit.js            |    124 -
 node_modules/ajv/lib/dotjs/_limitItems.js       |     76 -
 node_modules/ajv/lib/dotjs/_limitLength.js      |     81 -
 node_modules/ajv/lib/dotjs/_limitProperties.js  |     76 -
 node_modules/ajv/lib/dotjs/allOf.js             |     43 -
 node_modules/ajv/lib/dotjs/anyOf.js             |     66 -
 node_modules/ajv/lib/dotjs/constant.js          |     53 -
 node_modules/ajv/lib/dotjs/custom.js            |    221 -
 node_modules/ajv/lib/dotjs/dependencies.js      |    148 -
 node_modules/ajv/lib/dotjs/enum.js              |     66 -
 node_modules/ajv/lib/dotjs/format.js            |    139 -
 node_modules/ajv/lib/dotjs/items.js             |    145 -
 node_modules/ajv/lib/dotjs/multipleOf.js        |     77 -
 node_modules/ajv/lib/dotjs/not.js               |     84 -
 node_modules/ajv/lib/dotjs/oneOf.js             |     77 -
 node_modules/ajv/lib/dotjs/pattern.js           |     75 -
 node_modules/ajv/lib/dotjs/patternRequired.js   |     52 -
 node_modules/ajv/lib/dotjs/properties.js        |    446 -
 node_modules/ajv/lib/dotjs/ref.js               |    120 -
 node_modules/ajv/lib/dotjs/required.js          |    250 -
 node_modules/ajv/lib/dotjs/switch.js            |    129 -
 node_modules/ajv/lib/dotjs/uniqueItems.js       |     72 -
 node_modules/ajv/lib/dotjs/validate.js          |    376 -
 node_modules/ajv/lib/keyword.js                 |    129 -
 .../ajv/lib/refs/json-schema-draft-04.json      |    150 -
 node_modules/ajv/lib/refs/json-schema-v5.json   |    328 -
 node_modules/ajv/lib/v5.js                      |     52 -
 node_modules/ajv/package.json                   |    168 -
 node_modules/ajv/scripts/.eslintrc.yml          |      3 -
 node_modules/ajv/scripts/bundle.js              |     54 -
 node_modules/ajv/scripts/compile-dots.js        |     59 -
 node_modules/ajv/scripts/info                   |     10 -
 node_modules/ajv/scripts/prepare-tests          |      9 -
 node_modules/ajv/scripts/travis-gh-pages        |     21 -
 node_modules/amdefine/LICENSE                   |     58 -
 node_modules/amdefine/README.md                 |    171 -
 node_modules/amdefine/amdefine.js               |    301 -
 node_modules/amdefine/intercept.js              |     36 -
 node_modules/amdefine/package.json              |     88 -
 node_modules/ansi-regex/index.js                |      4 -
 node_modules/ansi-regex/license                 |     21 -
 node_modules/ansi-regex/package.json            |    133 -
 node_modules/ansi-regex/readme.md               |     39 -
 node_modules/ansi-styles/index.js               |     65 -
 node_modules/ansi-styles/license                |     21 -
 node_modules/ansi-styles/package.json           |    115 -
 node_modules/ansi-styles/readme.md              |     86 -
 node_modules/anymatch/LICENSE                   |     15 -
 node_modules/anymatch/README.md                 |     91 -
 node_modules/anymatch/index.js                  |     64 -
 node_modules/anymatch/package.json              |    104 -
 node_modules/archy/.travis.yml                  |      4 -
 node_modules/archy/LICENSE                      |     18 -
 node_modules/archy/examples/beep.js             |     24 -
 node_modules/archy/examples/multi_line.js       |     25 -
 node_modules/archy/index.js                     |     35 -
 node_modules/archy/package.json                 |    115 -
 node_modules/archy/readme.markdown              |     88 -
 node_modules/archy/test/beep.js                 |     40 -
 node_modules/archy/test/multi_line.js           |     45 -
 node_modules/archy/test/non_unicode.js          |     40 -
 node_modules/argparse/CHANGELOG.md              |    179 -
 node_modules/argparse/LICENSE                   |     21 -
 node_modules/argparse/README.md                 |    253 -
 node_modules/argparse/index.js                  |      3 -
 node_modules/argparse/lib/action.js             |    146 -
 node_modules/argparse/lib/action/append.js      |     53 -
 .../argparse/lib/action/append/constant.js      |     47 -
 node_modules/argparse/lib/action/count.js       |     40 -
 node_modules/argparse/lib/action/help.js        |     47 -
 node_modules/argparse/lib/action/store.js       |     50 -
 .../argparse/lib/action/store/constant.js       |     43 -
 node_modules/argparse/lib/action/store/false.js |     27 -
 node_modules/argparse/lib/action/store/true.js  |     26 -
 node_modules/argparse/lib/action/subparsers.js  |    149 -
 node_modules/argparse/lib/action/version.js     |     47 -
 node_modules/argparse/lib/action_container.js   |    482 -
 node_modules/argparse/lib/argparse.js           |     14 -
 node_modules/argparse/lib/argument/error.js     |     50 -
 node_modules/argparse/lib/argument/exclusive.js |     54 -
 node_modules/argparse/lib/argument/group.js     |     75 -
 node_modules/argparse/lib/argument_parser.js    |   1161 -
 node_modules/argparse/lib/const.js              |     21 -
 .../argparse/lib/help/added_formatters.js       |     87 -
 node_modules/argparse/lib/help/formatter.js     |    795 -
 node_modules/argparse/lib/namespace.js          |     76 -
 node_modules/argparse/lib/utils.js              |     57 -
 node_modules/argparse/package.json              |    106 -
 node_modules/arr-diff/LICENSE                   |     21 -
 node_modules/arr-diff/README.md                 |     74 -
 node_modules/arr-diff/index.js                  |     58 -
 node_modules/arr-diff/package.json              |    120 -
 node_modules/arr-flatten/LICENSE                |     21 -
 node_modules/arr-flatten/README.md              |     73 -
 node_modules/arr-flatten/index.js               |     27 -
 node_modules/arr-flatten/package.json           |    109 -
 node_modules/array-unique/LICENSE               |     21 -
 node_modules/array-unique/README.md             |     51 -
 node_modules/array-unique/index.js              |     28 -
 node_modules/array-unique/package.json          |     95 -
 node_modules/arrify/index.js                    |      8 -
 node_modules/arrify/license                     |     21 -
 node_modules/arrify/package.json                |     98 -
 node_modules/arrify/readme.md                   |     36 -
 node_modules/asap/CHANGES.md                    |     64 -
 node_modules/asap/LICENSE.md                    |     21 -
 node_modules/asap/README.md                     |    237 -
 node_modules/asap/asap.js                       |     65 -
 node_modules/asap/browser-asap.js               |     66 -
 node_modules/asap/browser-raw.js                |    223 -
 node_modules/asap/package.json                  |    125 -
 node_modules/asap/raw.js                        |    101 -
 node_modules/asn1/.npmignore                    |      2 -
 node_modules/asn1/.travis.yml                   |      4 -
 node_modules/asn1/LICENSE                       |     19 -
 node_modules/asn1/README.md                     |     50 -
 node_modules/asn1/lib/ber/errors.js             |     13 -
 node_modules/asn1/lib/ber/index.js              |     27 -
 node_modules/asn1/lib/ber/reader.js             |    261 -
 node_modules/asn1/lib/ber/types.js              |     36 -
 node_modules/asn1/lib/ber/writer.js             |    316 -
 node_modules/asn1/lib/index.js                  |     20 -
 node_modules/asn1/package.json                  |     99 -
 node_modules/asn1/tst/ber/reader.test.js        |    208 -
 node_modules/asn1/tst/ber/writer.test.js        |    370 -
 node_modules/assert-plus/AUTHORS                |      6 -
 node_modules/assert-plus/CHANGES.md             |      8 -
 node_modules/assert-plus/README.md              |    155 -
 node_modules/assert-plus/assert.js              |    206 -
 node_modules/assert-plus/package.json           |    116 -
 node_modules/async-each/.npmignore              |      3 -
 node_modules/async-each/CHANGELOG.md            |     23 -
 node_modules/async-each/README.md               |     38 -
 node_modules/async-each/index.js                |     38 -
 node_modules/async-each/package.json            |    102 -
 node_modules/async/LICENSE                      |     19 -
 node_modules/async/README.md                    |   1425 -
 node_modules/async/component.json               |     11 -
 node_modules/async/lib/async.js                 |    958 -
 node_modules/async/package.json                 |     95 -
 node_modules/asynckit/LICENSE                   |     21 -
 node_modules/asynckit/README.md                 |    233 -
 node_modules/asynckit/bench.js                  |     76 -
 node_modules/asynckit/index.js                  |      6 -
 node_modules/asynckit/lib/abort.js              |     29 -
 node_modules/asynckit/lib/async.js              |     34 -
 node_modules/asynckit/lib/defer.js              |     26 -
 node_modules/asynckit/lib/iterate.js            |     75 -
 node_modules/asynckit/lib/readable_asynckit.js  |     91 -
 node_modules/asynckit/lib/readable_parallel.js  |     25 -
 node_modules/asynckit/lib/readable_serial.js    |     25 -
 .../asynckit/lib/readable_serial_ordered.js     |     29 -
 node_modules/asynckit/lib/state.js              |     37 -
 node_modules/asynckit/lib/streamify.js          |    141 -
 node_modules/asynckit/lib/terminator.js         |     29 -
 node_modules/asynckit/package.json              |    127 -
 node_modules/asynckit/parallel.js               |     43 -
 node_modules/asynckit/serial.js                 |     17 -
 node_modules/asynckit/serialOrdered.js          |     75 -
 node_modules/asynckit/stream.js                 |     21 -
 node_modules/aws-sign2/LICENSE                  |     55 -
 node_modules/aws-sign2/README.md                |      4 -
 node_modules/aws-sign2/index.js                 |    212 -
 node_modules/aws-sign2/package.json             |     82 -
 node_modules/aws4/.npmignore                    |      4 -
 node_modules/aws4/.tern-port                    |      1 -
 node_modules/aws4/.travis.yml                   |      5 -
 node_modules/aws4/LICENSE                       |     19 -
 node_modules/aws4/README.md                     |    523 -
 node_modules/aws4/aws4.js                       |    332 -
 node_modules/aws4/lru.js                        |     96 -
 node_modules/aws4/package.json                  |    141 -
 node_modules/balanced-match/.npmignore          |      5 -
 node_modules/balanced-match/LICENSE.md          |     21 -
 node_modules/balanced-match/README.md           |     91 -
 node_modules/balanced-match/index.js            |     58 -
 node_modules/balanced-match/package.json        |    111 -
 node_modules/basic-auth/HISTORY.md              |     40 -
 node_modules/basic-auth/LICENSE                 |     24 -
 node_modules/basic-auth/README.md               |    100 -
 node_modules/basic-auth/index.js                |    126 -
 node_modules/basic-auth/package.json            |    116 -
 node_modules/bcrypt-pbkdf/README.md             |     39 -
 node_modules/bcrypt-pbkdf/index.js              |    556 -
 node_modules/bcrypt-pbkdf/package.json          |     85 -
 .../binary-extensions/binary-extensions.json    |    240 -
 node_modules/binary-extensions/license          |     21 -
 node_modules/binary-extensions/package.json     |    117 -
 node_modules/binary-extensions/readme.md        |     33 -
 node_modules/bluebird/LICENSE                   |     21 -
 node_modules/bluebird/README.md                 |     51 -
 node_modules/bluebird/changelog.md              |      1 -
 .../bluebird/js/browser/bluebird.core.js        |   3777 -
 .../bluebird/js/browser/bluebird.core.min.js    |     31 -
 node_modules/bluebird/js/browser/bluebird.js    |   5619 -
 .../bluebird/js/browser/bluebird.min.js         |     31 -
 node_modules/bluebird/js/release/any.js         |     21 -
 node_modules/bluebird/js/release/assert.js      |     55 -
 node_modules/bluebird/js/release/async.js       |    161 -
 node_modules/bluebird/js/release/bind.js        |     67 -
 node_modules/bluebird/js/release/bluebird.js    |     11 -
 node_modules/bluebird/js/release/call_get.js    |    123 -
 node_modules/bluebird/js/release/cancel.js      |    129 -
 .../bluebird/js/release/catch_filter.js         |     42 -
 node_modules/bluebird/js/release/context.js     |     69 -
 .../bluebird/js/release/debuggability.js        |    916 -
 .../bluebird/js/release/direct_resolve.js       |     46 -
 node_modules/bluebird/js/release/each.js        |     30 -
 node_modules/bluebird/js/release/errors.js      |    116 -
 node_modules/bluebird/js/release/es5.js         |     80 -
 node_modules/bluebird/js/release/filter.js      |     12 -
 node_modules/bluebird/js/release/finally.js     |    146 -
 node_modules/bluebird/js/release/generators.js  |    223 -
 node_modules/bluebird/js/release/join.js        |    168 -
 node_modules/bluebird/js/release/map.js         |    168 -
 node_modules/bluebird/js/release/method.js      |     55 -
 node_modules/bluebird/js/release/nodeback.js    |     51 -
 node_modules/bluebird/js/release/nodeify.js     |     58 -
 node_modules/bluebird/js/release/promise.js     |    775 -
 .../bluebird/js/release/promise_array.js        |    185 -
 node_modules/bluebird/js/release/promisify.js   |    314 -
 node_modules/bluebird/js/release/props.js       |    118 -
 node_modules/bluebird/js/release/queue.js       |     73 -
 node_modules/bluebird/js/release/race.js        |     49 -
 node_modules/bluebird/js/release/reduce.js      |    172 -
 node_modules/bluebird/js/release/schedule.js    |     61 -
 node_modules/bluebird/js/release/settle.js      |     43 -
 node_modules/bluebird/js/release/some.js        |    148 -
 .../js/release/synchronous_inspection.js        |    103 -
 node_modules/bluebird/js/release/thenables.js   |     86 -
 node_modules/bluebird/js/release/timers.js      |     93 -
 node_modules/bluebird/js/release/using.js       |    226 -
 node_modules/bluebird/js/release/util.js        |    379 -
 node_modules/bluebird/package.json              |    142 -
 node_modules/boolbase/README.md                 |     10 -
 node_modules/boolbase/index.js                  |      8 -
 node_modules/boolbase/package.json              |     84 -
 node_modules/boom/.npmignore                    |     18 -
 node_modules/boom/.travis.yml                   |      8 -
 node_modules/boom/CONTRIBUTING.md               |      1 -
 node_modules/boom/LICENSE                       |     28 -
 node_modules/boom/README.md                     |    652 -
 node_modules/boom/images/boom.png               |    Bin 29479 -> 0 bytes
 node_modules/boom/lib/index.js                  |    318 -
 node_modules/boom/package.json                  |     99 -
 node_modules/boom/test/index.js                 |    654 -
 node_modules/brace-expansion/README.md          |    122 -
 node_modules/brace-expansion/index.js           |    201 -
 node_modules/brace-expansion/package.json       |    113 -
 node_modules/braces/LICENSE                     |     21 -
 node_modules/braces/README.md                   |    248 -
 node_modules/braces/index.js                    |    399 -
 node_modules/braces/package.json                |    158 -
 node_modules/browser-fingerprint/.npmignore     |      2 -
 node_modules/browser-fingerprint/README.md      |     23 -
 node_modules/browser-fingerprint/dist/index.js  |     30 -
 node_modules/browser-fingerprint/index.js       |     22 -
 node_modules/browser-fingerprint/package.json   |     86 -
 node_modules/browser-fingerprint/test.js        |     22 -
 node_modules/buffer-shims/index.js              |    108 -
 node_modules/buffer-shims/license.md            |     19 -
 node_modules/buffer-shims/package.json          |     86 -
 node_modules/buffer-shims/readme.md             |     21 -
 node_modules/bunyan/.npmignore                  |      7 -
 node_modules/bunyan/AUTHORS                     |     41 -
 node_modules/bunyan/CHANGES.md                  |   1312 -
 node_modules/bunyan/CONTRIBUTING.md             |    205 -
 node_modules/bunyan/LICENSE.txt                 |     24 -
 node_modules/bunyan/Makefile                    |    149 -
 node_modules/bunyan/README.md                   |   1320 -
 node_modules/bunyan/TODO.md                     |     73 -
 node_modules/bunyan/bin/bunyan                  |   1665 -
 node_modules/bunyan/docs/bunyan.1               |    235 -
 node_modules/bunyan/docs/bunyan.1.html          |    281 -
 node_modules/bunyan/docs/bunyan.1.ronn          |    195 -
 .../bunyan/docs/img/bunyan.browserify.png       |    Bin 198704 -> 0 bytes
 node_modules/bunyan/docs/index.html             |      1 -
 node_modules/bunyan/lib/bunyan.js               |   1627 -
 node_modules/bunyan/package.json                |    281 -
 node_modules/bytes/History.md                   |     65 -
 node_modules/bytes/LICENSE                      |     23 -
 node_modules/bytes/Readme.md                    |    109 -
 node_modules/bytes/index.js                     |    154 -
 node_modules/bytes/package.json                 |    121 -
 node_modules/camel-case/LICENSE                 |     21 -
 node_modules/camel-case/camel-case.d.ts         |      3 -
 node_modules/camel-case/camel-case.js           |     23 -
 node_modules/camel-case/package.json            |    117 -
 node_modules/camelcase/index.js                 |     56 -
 node_modules/camelcase/license                  |     21 -
 node_modules/camelcase/package.json             |    108 -
 node_modules/camelcase/readme.md                |     57 -
 node_modules/caseless/LICENSE                   |     28 -
 node_modules/caseless/README.md                 |     45 -
 node_modules/caseless/index.js                  |     67 -
 node_modules/caseless/package.json              |    101 -
 node_modules/caseless/test.js                   |     67 -
 node_modules/chalk/index.js                     |    116 -
 node_modules/chalk/license                      |     21 -
 node_modules/chalk/package.json                 |    143 -
 node_modules/chalk/readme.md                    |    213 -
 node_modules/cheerio/History.md                 |    556 -
 node_modules/cheerio/Readme.md                  |   1011 -
 node_modules/cheerio/index.js                   |     11 -
 node_modules/cheerio/lib/api/attributes.js      |    482 -
 node_modules/cheerio/lib/api/css.js             |    118 -
 node_modules/cheerio/lib/api/forms.js           |     49 -
 node_modules/cheerio/lib/api/manipulation.js    |    421 -
 node_modules/cheerio/lib/api/traversing.js      |    423 -
 node_modules/cheerio/lib/cheerio.js             |    143 -
 node_modules/cheerio/lib/parse.js               |     86 -
 node_modules/cheerio/lib/static.js              |    182 -
 node_modules/cheerio/lib/utils.js               |     83 -
 node_modules/cheerio/package.json               |    126 -
 node_modules/chokidar/CHANGELOG.md              |    268 -
 node_modules/chokidar/README.md                 |    289 -
 node_modules/chokidar/index.js                  |    711 -
 node_modules/chokidar/lib/fsevents-handler.js   |    396 -
 node_modules/chokidar/lib/nodefs-handler.js     |    481 -
 node_modules/chokidar/package.json              |    124 -
 node_modules/cliui/CHANGELOG.md                 |     15 -
 node_modules/cliui/LICENSE.txt                  |     14 -
 node_modules/cliui/README.md                    |    110 -
 node_modules/cliui/index.js                     |    316 -
 node_modules/cliui/package.json                 |    132 -
 node_modules/co/History.md                      |    172 -
 node_modules/co/LICENSE                         |     22 -
 node_modules/co/Readme.md                       |    212 -
 node_modules/co/index.js                        |    237 -
 node_modules/co/package.json                    |    107 -
 node_modules/code-point-at/index.js             |     32 -
 node_modules/code-point-at/license              |     21 -
 node_modules/code-point-at/package.json         |    107 -
 node_modules/code-point-at/readme.md            |     32 -
 node_modules/combined-stream/License            |     19 -
 node_modules/combined-stream/Readme.md          |    138 -
 .../combined-stream/lib/combined_stream.js      |    188 -
 node_modules/combined-stream/package.json       |    102 -
 node_modules/compressible/HISTORY.md            |     62 -
 node_modules/compressible/LICENSE               |     24 -
 node_modules/compressible/README.md             |     58 -
 node_modules/compressible/index.js              |     58 -
 node_modules/compressible/package.json          |    146 -
 node_modules/compression/HISTORY.md             |    251 -
 node_modules/compression/LICENSE                |     23 -
 node_modules/compression/README.md              |    233 -
 node_modules/compression/index.js               |    276 -
 .../compression/node_modules/debug/.jshintrc    |      3 -
 .../compression/node_modules/debug/.npmignore   |      6 -
 .../compression/node_modules/debug/History.md   |    195 -
 .../compression/node_modules/debug/Makefile     |     36 -
 .../compression/node_modules/debug/Readme.md    |    188 -
 .../compression/node_modules/debug/bower.json   |     28 -
 .../compression/node_modules/debug/browser.js   |    168 -
 .../node_modules/debug/component.json           |     19 -
 .../compression/node_modules/debug/debug.js     |    197 -
 .../compression/node_modules/debug/node.js      |    209 -
 .../compression/node_modules/debug/package.json |    107 -
 .../compression/node_modules/ms/.npmignore      |      5 -
 .../compression/node_modules/ms/History.md      |     66 -
 .../compression/node_modules/ms/LICENSE         |     20 -
 .../compression/node_modules/ms/README.md       |     35 -
 .../compression/node_modules/ms/index.js        |    125 -
 .../compression/node_modules/ms/package.json    |     83 -
 node_modules/compression/package.json           |    117 -
 node_modules/concat-map/.travis.yml             |      4 -
 node_modules/concat-map/LICENSE                 |     18 -
 node_modules/concat-map/README.markdown         |     62 -
 node_modules/concat-map/example/map.js          |      6 -
 node_modules/concat-map/index.js                |     13 -
 node_modules/concat-map/package.json            |    118 -
 node_modules/concat-map/test/map.js             |     39 -
 node_modules/connect/HISTORY.md                 |   2443 -
 node_modules/connect/LICENSE                    |     25 -
 node_modules/connect/README.md                  |    289 -
 node_modules/connect/index.js                   |    283 -
 .../connect/node_modules/debug/.coveralls.yml   |      1 -
 .../connect/node_modules/debug/.eslintrc        |     11 -
 .../connect/node_modules/debug/.npmignore       |      8 -
 .../connect/node_modules/debug/.travis.yml      |     14 -
 .../connect/node_modules/debug/CHANGELOG.md     |    316 -
 node_modules/connect/node_modules/debug/LICENSE |     19 -
 .../connect/node_modules/debug/Makefile         |     50 -
 .../connect/node_modules/debug/README.md        |    238 -
 .../connect/node_modules/debug/bower.json       |     29 -
 .../connect/node_modules/debug/component.json   |     19 -
 .../connect/node_modules/debug/karma.conf.js    |     70 -
 node_modules/connect/node_modules/debug/node.js |      1 -
 .../connect/node_modules/debug/package.json     |    125 -
 .../connect/node_modules/debug/src/browser.js   |    182 -
 .../connect/node_modules/debug/src/debug.js     |    202 -
 .../connect/node_modules/debug/src/index.js     |     10 -
 .../connect/node_modules/debug/src/node.js      |    241 -
 node_modules/connect/package.json               |    136 -
 node_modules/core-js/CHANGELOG.md               |    409 -
 node_modules/core-js/Gruntfile.js               |      2 -
 node_modules/core-js/LICENSE                    |     19 -
 node_modules/core-js/bower.json                 |     34 -
 node_modules/core-js/build/Gruntfile.ls         |     84 -
 node_modules/core-js/build/build.ls             |    218 -
 node_modules/core-js/build/config.js            |      8 -
 node_modules/core-js/build/index.js             |     98 -
 node_modules/core-js/client/core.js             |   4910 -
 node_modules/core-js/client/core.min.js         |      9 -
 node_modules/core-js/client/core.min.js.map     |      1 -
 node_modules/core-js/client/library.js          |   4550 -
 node_modules/core-js/client/library.min.js      |      9 -
 node_modules/core-js/client/library.min.js.map  |      1 -
 node_modules/core-js/client/shim.js             |   4551 -
 node_modules/core-js/client/shim.min.js         |      9 -
 node_modules/core-js/client/shim.min.js.map     |      1 -
 node_modules/core-js/core/_.js                  |      2 -
 node_modules/core-js/core/delay.js              |      2 -
 node_modules/core-js/core/dict.js               |      2 -
 node_modules/core-js/core/function.js           |      2 -
 node_modules/core-js/core/index.js              |     15 -
 node_modules/core-js/core/log.js                |      2 -
 node_modules/core-js/core/number.js             |      2 -
 node_modules/core-js/core/object.js             |      5 -
 node_modules/core-js/core/string.js             |      3 -
 node_modules/core-js/es5/index.js               |      9 -
 node_modules/core-js/es6/array.js               |     10 -
 node_modules/core-js/es6/function.js            |      3 -
 node_modules/core-js/es6/index.js               |     87 -
 node_modules/core-js/es6/map.js                 |      5 -
 node_modules/core-js/es6/math.js                |     18 -
 node_modules/core-js/es6/number.js              |     11 -
 node_modules/core-js/es6/object.js              |     17 -
 node_modules/core-js/es6/promise.js             |      5 -
 node_modules/core-js/es6/reflect.js             |     15 -
 node_modules/core-js/es6/regexp.js              |      7 -
 node_modules/core-js/es6/set.js                 |      5 -
 node_modules/core-js/es6/string.js              |     14 -
 node_modules/core-js/es6/symbol.js              |      3 -
 node_modules/core-js/es6/weak-map.js            |      4 -
 node_modules/core-js/es6/weak-set.js            |      4 -
 node_modules/core-js/es7/array.js               |      2 -
 node_modules/core-js/es7/index.js               |     13 -
 node_modules/core-js/es7/map.js                 |      2 -
 node_modules/core-js/es7/object.js              |      4 -
 node_modules/core-js/es7/regexp.js              |      2 -
 node_modules/core-js/es7/set.js                 |      2 -
 node_modules/core-js/es7/string.js              |      6 -
 node_modules/core-js/fn/_.js                    |      2 -
 node_modules/core-js/fn/array/concat.js         |      2 -
 node_modules/core-js/fn/array/copy-within.js    |      2 -
 node_modules/core-js/fn/array/entries.js        |      2 -
 node_modules/core-js/fn/array/every.js          |      2 -
 node_modules/core-js/fn/array/fill.js           |      2 -
 node_modules/core-js/fn/array/filter.js         |      2 -
 node_modules/core-js/fn/array/find-index.js     |      2 -
 node_modules/core-js/fn/array/find.js           |      2 -
 node_modules/core-js/fn/array/for-each.js       |      2 -
 node_modules/core-js/fn/array/from.js           |      3 -
 node_modules/core-js/fn/array/includes.js       |      2 -
 node_modules/core-js/fn/array/index-of.js       |      2 -
 node_modules/core-js/fn/array/index.js          |     12 -
 node_modules/core-js/fn/array/iterator.js       |      2 -
 node_modules/core-js/fn/array/join.js           |      2 -
 node_modules/core-js/fn/array/keys.js           |      2 -
 node_modules/core-js/fn/array/last-index-of.js  |      2 -
 node_modules/core-js/fn/array/map.js            |      2 -
 node_modules/core-js/fn/array/of.js             |      2 -
 node_modules/core-js/fn/array/pop.js            |      2 -
 node_modules/core-js/fn/array/push.js           |      2 -
 node_modules/core-js/fn/array/reduce-right.js   |      2 -
 node_modules/core-js/fn/array/reduce.js         |      2 -
 node_modules/core-js/fn/array/reverse.js        |      2 -
 node_modules/core-js/fn/array/shift.js          |      2 -
 node_modules/core-js/fn/array/slice.js          |      2 -
 node_modules/core-js/fn/array/some.js           |      2 -
 node_modules/core-js/fn/array/sort.js           |      2 -
 node_modules/core-js/fn/array/splice.js         |      2 -
 node_modules/core-js/fn/array/unshift.js        |      2 -
 node_modules/core-js/fn/array/values.js         |      2 -
 node_modules/core-js/fn/clear-immediate.js      |      2 -
 node_modules/core-js/fn/delay.js                |      2 -
 node_modules/core-js/fn/dict.js                 |      2 -
 .../core-js/fn/function/has-instance.js         |      2 -
 node_modules/core-js/fn/function/index.js       |      4 -
 node_modules/core-js/fn/function/name.js        |      1 -
 node_modules/core-js/fn/function/part.js        |      2 -
 node_modules/core-js/fn/get-iterator-method.js  |      3 -
 node_modules/core-js/fn/get-iterator.js         |      3 -
 .../core-js/fn/html-collection/index.js         |      2 -
 .../core-js/fn/html-collection/iterator.js      |      2 -
 node_modules/core-js/fn/is-iterable.js          |      3 -
 node_modules/core-js/fn/json/stringify.js       |      4 -
 node_modules/core-js/fn/log.js                  |      2 -
 node_modules/core-js/fn/map.js                  |      6 -
 node_modules/core-js/fn/math/acosh.js           |      2 -
 node_modules/core-js/fn/math/asinh.js           |      2 -
 node_modules/core-js/fn/math/atanh.js           |      2 -
 node_modules/core-js/fn/math/cbrt.js            |      2 -
 node_modules/core-js/fn/math/clz32.js           |      2 -
 node_modules/core-js/fn/math/cosh.js            |      2 -
 node_modules/core-js/fn/math/expm1.js           |      2 -
 node_modules/core-js/fn/math/fround.js          |      2 -
 node_modules/core-js/fn/math/hypot.js           |      2 -
 node_modules/core-js/fn/math/imul.js            |      2 -
 node_modules/core-js/fn/math/index.js           |     18 -
 node_modules/core-js/fn/math/log10.js           |      2 -
 node_modules/core-js/fn/math/log1p.js           |      2 -
 node_modules/core-js/fn/math/log2.js            |      2 -
 node_modules/core-js/fn/math/sign.js            |      2 -
 node_modules/core-js/fn/math/sinh.js            |      2 -
 node_modules/core-js/fn/math/tanh.js            |      2 -
 node_modules/core-js/fn/math/trunc.js           |      2 -
 node_modules/core-js/fn/node-list/index.js      |      2 -
 node_modules/core-js/fn/node-list/iterator.js   |      2 -
 node_modules/core-js/fn/number/epsilon.js       |      2 -
 node_modules/core-js/fn/number/index.js         |     12 -
 node_modules/core-js/fn/number/is-finite.js     |      2 -
 node_modules/core-js/fn/number/is-integer.js    |      2 -
 node_modules/core-js/fn/number/is-nan.js        |      2 -
 .../core-js/fn/number/is-safe-integer.js        |      2 -
 node_modules/core-js/fn/number/iterator.js      |      5 -
 .../core-js/fn/number/max-safe-integer.js       |      2 -
 .../core-js/fn/number/min-safe-integer.js       |      2 -
 node_modules/core-js/fn/number/parse-float.js   |      2 -
 node_modules/core-js/fn/number/parse-int.js     |      2 -
 node_modules/core-js/fn/object/assign.js        |      2 -
 node_modules/core-js/fn/object/classof.js       |      2 -
 node_modules/core-js/fn/object/create.js        |      4 -
 .../core-js/fn/object/define-properties.js      |      4 -
 .../core-js/fn/object/define-property.js        |      4 -
 node_modules/core-js/fn/object/define.js        |      2 -
 node_modules/core-js/fn/object/entries.js       |      2 -
 node_modules/core-js/fn/object/freeze.js        |      2 -
 .../fn/object/get-own-property-descriptor.js    |      5 -
 .../fn/object/get-own-property-descriptors.js   |      2 -
 .../core-js/fn/object/get-own-property-names.js |      5 -
 .../fn/object/get-own-property-symbols.js       |      2 -
 .../core-js/fn/object/get-prototype-of.js       |      2 -
 node_modules/core-js/fn/object/index.js         |     23 -
 node_modules/core-js/fn/object/is-extensible.js |      2 -
 node_modules/core-js/fn/object/is-frozen.js     |      2 -
 node_modules/core-js/fn/object/is-object.js     |      2 -
 node_modules/core-js/fn/object/is-sealed.js     |      2 -
 node_modules/core-js/fn/object/is.js            |      2 -
 node_modules/core-js/fn/object/keys.js          |      2 -
 node_modules/core-js/fn/object/make.js          |      2 -
 .../core-js/fn/object/prevent-extensions.js     |      2 -
 node_modules/core-js/fn/object/seal.js          |      2 -
 .../core-js/fn/object/set-prototype-of.js       |      2 -
 node_modules/core-js/fn/object/values.js        |      2 -
 node_modules/core-js/fn/promise.js              |      5 -
 node_modules/core-js/fn/reflect/apply.js        |      2 -
 node_modules/core-js/fn/reflect/construct.js    |      2 -
 .../core-js/fn/reflect/define-property.js       |      2 -
 .../core-js/fn/reflect/delete-property.js       |      2 -
 node_modules/core-js/fn/reflect/enumerate.js    |      2 -
 .../fn/reflect/get-own-property-descriptor.js   |      2 -
 .../core-js/fn/reflect/get-prototype-of.js      |      2 -
 node_modules/core-js/fn/reflect/get.js          |      2 -
 node_modules/core-js/fn/reflect/has.js          |      2 -
 node_modules/core-js/fn/reflect/index.js        |     15 -
 .../core-js/fn/reflect/is-extensible.js         |      2 -
 node_modules/core-js/fn/reflect/own-keys.js     |      2 -
 .../core-js/fn/reflect/prevent-extensions.js    |      2 -
 .../core-js/fn/reflect/set-prototype-of.js      |      2 -
 node_modules/core-js/fn/reflect/set.js          |      2 -
 node_modules/core-js/fn/regexp/escape.js        |      2 -
 node_modules/core-js/fn/regexp/index.js         |      8 -
 node_modules/core-js/fn/set-immediate.js        |      2 -
 node_modules/core-js/fn/set-interval.js         |      2 -
 node_modules/core-js/fn/set-timeout.js          |      2 -
 node_modules/core-js/fn/set.js                  |      6 -
 node_modules/core-js/fn/string/at.js            |      2 -
 node_modules/core-js/fn/string/code-point-at.js |      2 -
 node_modules/core-js/fn/string/ends-with.js     |      2 -
 node_modules/core-js/fn/string/escape-html.js   |      2 -
 .../core-js/fn/string/from-code-point.js        |      2 -
 node_modules/core-js/fn/string/includes.js      |      2 -
 node_modules/core-js/fn/string/index.js         |     21 -
 node_modules/core-js/fn/string/iterator.js      |      5 -
 node_modules/core-js/fn/string/pad-left.js      |      2 -
 node_modules/core-js/fn/string/pad-right.js     |      2 -
 node_modules/core-js/fn/string/raw.js           |      2 -
 node_modules/core-js/fn/string/repeat.js        |      2 -
 node_modules/core-js/fn/string/starts-with.js   |      2 -
 node_modules/core-js/fn/string/trim-left.js     |      2 -
 node_modules/core-js/fn/string/trim-right.js    |      2 -
 node_modules/core-js/fn/string/trim.js          |      2 -
 node_modules/core-js/fn/string/unescape-html.js |      2 -
 node_modules/core-js/fn/symbol/for.js           |      2 -
 node_modules/core-js/fn/symbol/has-instance.js  |      1 -
 node_modules/core-js/fn/symbol/index.js         |      3 -
 .../core-js/fn/symbol/is-concat-spreadable.js   |      1 -
 node_modules/core-js/fn/symbol/iterator.js      |      3 -
 node_modules/core-js/fn/symbol/key-for.js       |      2 -
 node_modules/core-js/fn/symbol/match.js         |      2 -
 node_modules/core-js/fn/symbol/replace.js       |      2 -
 node_modules/core-js/fn/symbol/search.js        |      2 -
 node_modules/core-js/fn/symbol/species.js       |      1 -
 node_modules/core-js/fn/symbol/split.js         |      2 -
 node_modules/core-js/fn/symbol/to-primitive.js  |      1 -
 node_modules/core-js/fn/symbol/to-string-tag.js |      2 -
 node_modules/core-js/fn/symbol/unscopables.js   |      1 -
 node_modules/core-js/fn/weak-map.js             |      4 -
 node_modules/core-js/fn/weak-set.js             |      4 -
 node_modules/core-js/index.js                   |     16 -
 node_modules/core-js/js/array.js                |      2 -
 node_modules/core-js/js/index.js                |      2 -
 node_modules/core-js/library/core/_.js          |      2 -
 node_modules/core-js/library/core/delay.js      |      2 -
 node_modules/core-js/library/core/dict.js       |      2 -
 node_modules/core-js/library/core/function.js   |      2 -
 node_modules/core-js/library/core/index.js      |     15 -
 node_modules/core-js/library/core/log.js        |      2 -
 node_modules/core-js/library/core/number.js     |      2 -
 node_modules/core-js/library/core/object.js     |      5 -
 node_modules/core-js/library/core/string.js     |      3 -
 node_modules/core-js/library/es5/index.js       |      9 -
 node_modules/core-js/library/es6/array.js       |     10 -
 node_modules/core-js/library/es6/function.js    |      3 -
 node_modules/core-js/library/es6/index.js       |     87 -
 node_modules/core-js/library/es6/map.js         |      5 -
 node_modules/core-js/library/es6/math.js        |     18 -
 node_modules/core-js/library/es6/number.js      |     11 -
 node_modules/core-js/library/es6/object.js      |     17 -
 node_modules/core-js/library/es6/promise.js     |      5 -
 node_modules/core-js/library/es6/reflect.js     |     15 -
 node_modules/core-js/library/es6/regexp.js      |      7 -
 node_modules/core-js/library/es6/set.js         |      5 -
 node_modules/core-js/library/es6/string.js      |     14 -
 node_modules/core-js/library/es6/symbol.js      |      3 -
 node_modules/core-js/library/es6/weak-map.js    |      4 -
 node_modules/core-js/library/es6/weak-set.js    |      4 -
 node_modules/core-js/library/es7/array.js       |      2 -
 node_modules/core-js/library/es7/index.js       |     13 -
 node_modules/core-js/library/es7/map.js         |      2 -
 node_modules/core-js/library/es7/object.js      |      4 -
 node_modules/core-js/library/es7/regexp.js      |      2 -
 node_modules/core-js/library/es7/set.js         |      2 -
 node_modules/core-js/library/es7/string.js      |      6 -
 node_modules/core-js/library/fn/_.js            |      2 -
 node_modules/core-js/library/fn/array/concat.js |      2 -
 .../core-js/library/fn/array/copy-within.js     |      2 -
 .../core-js/library/fn/array/entries.js         |      2 -
 node_modules/core-js/library/fn/array/every.js  |      2 -
 node_modules/core-js/library/fn/array/fill.js   |      2 -
 node_modules/core-js/library/fn/array/filter.js |      2 -
 .../core-js/library/fn/array/find-index.js      |      2 -
 node_modules/core-js/library/fn/array/find.js   |      2 -
 .../core-js/library/fn/array/for-each.js        |      2 -
 node_modules/core-js/library/fn/array/from.js   |      3 -
 .../core-js/library/fn/array/includes.js        |      2 -
 .../core-js/library/fn/array/index-of.js        |      2 -
 node_modules/core-js/library/fn/array/index.js  |     12 -
 .../core-js/library/fn/array/iterator.js        |      2 -
 node_modules/core-js/library/fn/array/join.js   |      2 -
 node_modules/core-js/library/fn/array/keys.js   |      2 -
 .../core-js/library/fn/array/last-index-of.js   |      2 -
 node_modules/core-js/library/fn/array/map.js    |      2 -
 node_modules/core-js/library/fn/array/of.js     |      2 -
 node_modules/core-js/library/fn/array/pop.js    |      2 -
 node_modules/core-js/library/fn/array/push.js   |      2 -
 .../core-js/library/fn/array/reduce-right.js    |      2 -
 node_modules/core-js/library/fn/array/reduce.js |      2 -
 .../core-js/library/fn/array/reverse.js         |      2 -
 node_modules/core-js/library/fn/array/shift.js  |      2 -
 node_modules/core-js/library/fn/array/slice.js  |      2 -
 node_modules/core-js/library/fn/array/some.js   |      2 -
 node_modules/core-js/library/fn/array/sort.js   |      2 -
 node_modules/core-js/library/fn/array/splice.js |      2 -
 .../core-js/library/fn/array/unshift.js         |      2 -
 node_modules/core-js/library/fn/array/values.js |      2 -
 .../core-js/library/fn/clear-immediate.js       |      2 -
 node_modules/core-js/library/fn/delay.js        |      2 -
 node_modules/core-js/library/fn/dict.js         |      2 -
 .../core-js/library/fn/function/has-instance.js |      2 -
 .../core-js/library/fn/function/index.js        |      4 -
 .../core-js/library/fn/function/name.js         |      1 -
 .../core-js/library/fn/function/part.js         |      2 -
 .../core-js/library/fn/get-iterator-method.js   |      3 -
 node_modules/core-js/library/fn/get-iterator.js |      3 -
 .../core-js/library/fn/html-collection/index.js |      2 -
 .../library/fn/html-collection/iterator.js      |      2 -
 node_modules/core-js/library/fn/is-iterable.js  |      3 -
 .../core-js/library/fn/json/stringify.js        |      4 -
 node_modules/core-js/library/fn/log.js          |      2 -
 node_modules/core-js/library/fn/map.js          |      6 -
 node_modules/core-js/library/fn/math/acosh.js   |      2 -
 node_modules/core-js/library/fn/math/asinh.js   |      2 -
 node_modules/core-js/library/fn/math/atanh.js   |      2 -
 node_modules/core-js/library/fn/math/cbrt.js    |      2 -
 node_modules/core-js/library/fn/math/clz32.js   |      2 -
 node_modules/core-js/library/fn/math/cosh.js    |      2 -
 node_modules/core-js/library/fn/math/expm1.js   |      2 -
 node_modules/core-js/library/fn/math/fround.js  |      2 -
 node_modules/core-js/library/fn/math/hypot.js   |      2 -
 node_modules/core-js/library/fn/math/imul.js    |      2 -
 node_modules/core-js/library/fn/math/index.js   |     18 -
 node_modules/core-js/library/fn/math/log10.js   |      2 -
 node_modules/core-js/library/fn/math/log1p.js   |      2 -
 node_modules/core-js/library/fn/math/log2.js    |      2 -
 node_modules/core-js/library/fn/math/sign.js    |      2 -
 node_modules/core-js/library/fn/math/sinh.js    |      2 -
 node_modules/core-js/library/fn/math/tanh.js    |      2 -
 node_modules/core-js/library/fn/math/trunc.js   |      2 -
 .../core-js/library/fn/node-list/index.js       |      2 -
 .../core-js/library/fn/node-list/iterator.js    |      2 -
 .../core-js/library/fn/number/epsilon.js        |      2 -
 node_modules/core-js/library/fn/number/index.js |     12 -
 .../core-js/library/fn/number/is-finite.js      |      2 -
 .../core-js/library/fn/number/is-integer.js     |      2 -
 .../core-js/library/fn/number/is-nan.js         |      2 -
 .../library/fn/number/is-safe-integer.js        |      2 -
 .../core-js/library/fn/number/iterator.js       |      5 -
 .../library/fn/number/max-safe-integer.js       |      2 -
 .../library/fn/number/min-safe-integer.js       |      2 -
 .../core-js/library/fn/number/parse-float.js    |      2 -
 .../core-js/library/fn/number/parse-int.js      |      2 -
 .../core-js/library/fn/object/assign.js         |      2 -
 .../core-js/library/fn/object/classof.js        |      2 -
 .../core-js/library/fn/object/create.js         |      4 -
 .../library/fn/object/define-properties.js      |      4 -
 .../library/fn/object/define-property.js        |      4 -
 .../core-js/library/fn/object/define.js         |      2 -
 .../core-js/library/fn/object/entries.js        |      2 -
 .../core-js/library/fn/object/freeze.js         |      2 -
 .../fn/object/get-own-property-descriptor.js    |      5 -
 .../fn/object/get-own-property-descriptors.js   |      2 -
 .../library/fn/object/get-own-property-names.js |      5 -
 .../fn/object/get-own-property-symbols.js       |      2 -
 .../library/fn/object/get-prototype-of.js       |      2 -
 node_modules/core-js/library/fn/object/index.js |     23 -
 .../core-js/library/fn/object/is-extensible.js  |      2 -
 .../core-js/library/fn/object/is-frozen.js      |      2 -
 .../core-js/library/fn/object/is-object.js      |      2 -
 .../core-js/library/fn/object/is-sealed.js      |      2 -
 node_modules/core-js/library/fn/object/is.js    |      2 -
 node_modules/core-js/library/fn/object/keys.js  |      2 -
 node_modules/core-js/library/fn/object/make.js  |      2 -
 .../library/fn/object/prevent-extensions.js     |      2 -
 node_modules/core-js/library/fn/object/seal.js  |      2 -
 .../library/fn/object/set-prototype-of.js       |      2 -
 .../core-js/library/fn/object/values.js         |      2 -
 node_modules/core-js/library/fn/promise.js      |      5 -
 .../core-js/library/fn/reflect/apply.js         |      2 -
 .../core-js/library/fn/reflect/construct.js     |      2 -
 .../library/fn/reflect/define-property.js       |      2 -
 .../library/fn/reflect/delete-property.js       |      2 -
 .../core-js/library/fn/reflect/enumerate.js     |      2 -
 .../fn/reflect/get-own-property-descriptor.js   |      2 -
 .../library/fn/reflect/get-prototype-of.js      |      2 -
 node_modules/core-js/library/fn/reflect/get.js  |      2 -
 node_modules/core-js/library/fn/reflect/has.js  |      2 -
 .../core-js/library/fn/reflect/index.js         |     15 -
 .../core-js/library/fn/reflect/is-extensible.js |      2 -
 .../core-js/library/fn/reflect/own-keys.js      |      2 -
 .../library/fn/reflect/prevent-extensions.js    |      2 -
 .../library/fn/reflect/set-prototype-of.js      |      2 -
 node_modules/core-js/library/fn/reflect/set.js  |      2 -
 .../core-js/library/fn/regexp/escape.js         |      2 -
 node_modules/core-js/library/fn/regexp/index.js |      8 -
 .../core-js/library/fn/set-immediate.js         |      2 -
 node_modules/core-js/library/fn/set-interval.js |      2 -
 node_modules/core-js/library/fn/set-timeout.js  |      2 -
 node_modules/core-js/library/fn/set.js          |      6 -
 node_modules/core-js/library/fn/string/at.js    |      2 -
 .../core-js/library/fn/string/code-point-at.js  |      2 -
 .../core-js/library/fn/string/ends-with.js      |      2 -
 .../core-js/library/fn/string/escape-html.js    |      2 -
 .../library/fn/string/from-code-point.js        |      2 -
 .../core-js/library/fn/string/includes.js       |      2 -
 node_modules/core-js/library/fn/string/index.js |     21 -
 .../core-js/library/fn/string/iterator.js       |      5 -
 .../core-js/library/fn/string/pad-left.js       |      2 -
 .../core-js/library/fn/string/pad-right.js      |      2 -
 node_modules/core-js/library/fn/string/raw.js   |      2 -
 .../core-js/library/fn/string/repeat.js         |      2 -
 .../core-js/library/fn/string/starts-with.js    |      2 -
 .../core-js/library/fn/string/trim-left.js      |      2 -
 .../core-js/library/fn/string/trim-right.js     |      2 -
 node_modules/core-js/library/fn/string/trim.js  |      2 -
 .../core-js/library/fn/string/unescape-html.js  |      2 -
 node_modules/core-js/library/fn/symbol/for.js   |      2 -
 .../core-js/library/fn/symbol/has-instance.js   |      1 -
 node_modules/core-js/library/fn/symbol/index.js |      3 -
 .../library/fn/symbol/is-concat-spreadable.js   |      1 -
 .../core-js/library/fn/symbol/iterator.js       |      3 -
 .../core-js/library/fn/symbol/key-for.js        |      2 -
 node_modules/core-js/library/fn/symbol/match.js |      2 -
 .../core-js/library/fn/symbol/replace.js        |      2 -
 .../core-js/library/fn/symbol/search.js         |      2 -
 .../core-js/library/fn/symbol/species.js        |      1 -
 node_modules/core-js/library/fn/symbol/split.js |      2 -
 .../core-js/library/fn/symbol/to-primitive.js   |      1 -
 .../core-js/library/fn/symbol/to-string-tag.js  |      2 -
 .../core-js/library/fn/symbol/unscopables.js    |      1 -
 node_modules/core-js/library/fn/weak-map.js     |      4 -
 node_modules/core-js/library/fn/weak-set.js     |      4 -
 node_modules/core-js/library/index.js           |     16 -
 node_modules/core-js/library/js/array.js        |      2 -
 node_modules/core-js/library/js/index.js        |      2 -
 .../core-js/library/modules/$.a-function.js     |      4 -
 .../library/modules/$.add-to-unscopables.js     |      1 -
 .../core-js/library/modules/$.an-object.js      |      5 -
 .../library/modules/$.array-copy-within.js      |     27 -
 .../core-js/library/modules/$.array-fill.js     |     16 -
 .../core-js/library/modules/$.array-includes.js |     21 -
 .../core-js/library/modules/$.array-methods.js  |     43 -
 .../library/modules/$.array-species-create.js   |     16 -
 .../core-js/library/modules/$.buffer.js         |    288 -
 .../core-js/library/modules/$.classof.js        |     16 -
 node_modules/core-js/library/modules/$.cof.js   |      5 -
 .../library/modules/$.collection-strong.js      |    159 -
 .../library/modules/$.collection-to-json.js     |     11 -
 .../library/modules/$.collection-weak.js        |     86 -
 .../core-js/library/modules/$.collection.js     |     55 -
 node_modules/core-js/library/modules/$.core.js  |      2 -
 node_modules/core-js/library/modules/$.ctx.js   |     20 -
 .../core-js/library/modules/$.defined.js        |      5 -
 .../core-js/library/modules/$.descriptors.js    |      4 -
 .../core-js/library/modules/$.dom-create.js     |      7 -
 .../core-js/library/modules/$.enum-keys.js      |     14 -
 .../core-js/library/modules/$.export.js         |     46 -
 .../library/modules/$.fails-is-regexp.js        |     12 -
 node_modules/core-js/library/modules/$.fails.js |      7 -
 .../core-js/library/modules/$.fix-re-wks.js     |     26 -
 node_modules/core-js/library/modules/$.flags.js |     13 -
 .../core-js/library/modules/$.for-of.js         |     19 -
 .../core-js/library/modules/$.get-names.js      |     20 -
 .../core-js/library/modules/$.global.js         |      4 -
 node_modules/core-js/library/modules/$.has.js   |      4 -
 node_modules/core-js/library/modules/$.hide.js  |      8 -
 node_modules/core-js/library/modules/$.html.js  |      1 -
 .../core-js/library/modules/$.invoke.js         |     16 -
 .../core-js/library/modules/$.iobject.js        |      5 -
 .../core-js/library/modules/$.is-array-iter.js  |      8 -
 .../core-js/library/modules/$.is-array.js       |      5 -
 .../core-js/library/modules/$.is-integer.js     |      6 -
 .../core-js/library/modules/$.is-object.js      |      3 -
 .../core-js/library/modules/$.is-regexp.js      |      8 -
 .../core-js/library/modules/$.iter-call.js      |     12 -
 .../core-js/library/modules/$.iter-create.js    |     13 -
 .../core-js/library/modules/$.iter-define.js    |     66 -
 .../core-js/library/modules/$.iter-detect.js    |     21 -
 .../core-js/library/modules/$.iter-step.js      |      3 -
 .../core-js/library/modules/$.iterators.js      |      1 -
 node_modules/core-js/library/modules/$.js       |     13 -
 node_modules/core-js/library/modules/$.keyof.js |     10 -
 .../core-js/library/modules/$.library.js        |      1 -
 .../core-js/library/modules/$.math-expm1.js     |      4 -
 .../core-js/library/modules/$.math-log1p.js     |      4 -
 .../core-js/library/modules/$.math-sign.js      |      4 -
 .../core-js/library/modules/$.microtask.js      |     64 -
 .../core-js/library/modules/$.object-assign.js  |     33 -
 .../core-js/library/modules/$.object-define.js  |     11 -
 .../core-js/library/modules/$.object-sap.js     |     10 -
 .../library/modules/$.object-to-array.js        |     16 -
 .../core-js/library/modules/$.own-keys.js       |      9 -
 .../core-js/library/modules/$.partial.js        |     24 -
 node_modules/core-js/library/modules/$.path.js  |      1 -
 .../core-js/library/modules/$.property-desc.js  |      8 -
 .../core-js/library/modules/$.redefine-all.js   |      5 -
 .../core-js/library/modules/$.redefine.js       |      1 -
 .../core-js/library/modules/$.replacer.js       |      8 -
 .../core-js/library/modules/$.same-value.js     |      4 -
 .../core-js/library/modules/$.set-proto.js      |     26 -
 .../core-js/library/modules/$.set-species.js    |     13 -
 .../library/modules/$.set-to-string-tag.js      |      7 -
 .../core-js/library/modules/$.shared.js         |      6 -
 .../library/modules/$.species-constructor.js    |      8 -
 .../core-js/library/modules/$.strict-new.js     |      4 -
 .../core-js/library/modules/$.string-at.js      |     17 -
 .../core-js/library/modules/$.string-context.js |      8 -
 .../core-js/library/modules/$.string-pad.js     |     17 -
 .../core-js/library/modules/$.string-repeat.js  |     12 -
 .../core-js/library/modules/$.string-trim.js    |     29 -
 node_modules/core-js/library/modules/$.task.js  |     75 -
 .../core-js/library/modules/$.to-index.js       |      7 -
 .../core-js/library/modules/$.to-integer.js     |      6 -
 .../core-js/library/modules/$.to-iobject.js     |      6 -
 .../core-js/library/modules/$.to-length.js      |      6 -
 .../core-js/library/modules/$.to-object.js      |      5 -
 .../core-js/library/modules/$.to-primitive.js   |     12 -
 .../core-js/library/modules/$.typed-array.js    |    365 -
 node_modules/core-js/library/modules/$.typed.js |     36 -
 node_modules/core-js/library/modules/$.uid.js   |      5 -
 node_modules/core-js/library/modules/$.wks.js   |      7 -
 .../core-js/library/modules/core.delay.js       |     12 -
 .../core-js/library/modules/core.dict.js        |    153 -
 .../library/modules/core.function.part.js       |      7 -
 .../library/modules/core.get-iterator-method.js |      8 -
 .../library/modules/core.get-iterator.js        |      7 -
 .../core-js/library/modules/core.is-iterable.js |      9 -
 .../core-js/library/modules/core.log.js         |     26 -
 .../library/modules/core.number.iterator.js     |      9 -
 .../library/modules/core.object.classof.js      |      3 -
 .../library/modules/core.object.define.js       |      4 -
 .../library/modules/core.object.is-object.js    |      3 -
 .../core-js/library/modules/core.object.make.js |      9 -
 .../library/modules/core.string.escape-html.js  |     11 -
 .../modules/core.string.unescape-html.js        |     11 -
 node_modules/core-js/library/modules/es5.js     |    276 -
 .../library/modules/es6.array.copy-within.js    |      6 -
 .../core-js/library/modules/es6.array.fill.js   |      6 -
 .../library/modules/es6.array.find-index.js     |     14 -
 .../core-js/library/modules/es6.array.find.js   |     14 -
 .../core-js/library/modules/es6.array.from.js   |     36 -
 .../library/modules/es6.array.iterator.js       |     34 -
 .../core-js/library/modules/es6.array.of.js     |     19 -
 .../library/modules/es6.array.species.js        |      1 -
 .../library/modules/es6.date.to-string.js       |      0
 .../modules/es6.function.has-instance.js        |     13 -
 .../library/modules/es6.function.name.js        |      0
 node_modules/core-js/library/modules/es6.map.js |     17 -
 .../core-js/library/modules/es6.math.acosh.js   |     14 -
 .../core-js/library/modules/es6.math.asinh.js   |      8 -
 .../core-js/library/modules/es6.math.atanh.js   |      8 -
 .../core-js/library/modules/es6.math.cbrt.js    |      9 -
 .../core-js/library/modules/es6.math.clz32.js   |      8 -
 .../core-js/library/modules/es6.math.cosh.js    |      9 -
 .../core-js/library/modules/es6.math.expm1.js   |      4 -
 .../core-js/library/modules/es6.math.fround.js  |     26 -
 .../core-js/library/modules/es6.math.hypot.js   |     26 -
 .../core-js/library/modules/es6.math.imul.js    |     17 -
 .../core-js/library/modules/es6.math.log10.js   |      8 -
 .../core-js/library/modules/es6.math.log1p.js   |      4 -
 .../core-js/library/modules/es6.math.log2.js    |      8 -
 .../core-js/library/modules/es6.math.sign.js    |      4 -
 .../core-js/library/modules/es6.math.sinh.js    |     15 -
 .../core-js/library/modules/es6.math.tanh.js    |     12 -
 .../core-js/library/modules/es6.math.trunc.js   |      8 -
 .../library/modules/es6.number.constructor.js   |      0
 .../library/modules/es6.number.epsilon.js       |      4 -
 .../library/modules/es6.number.is-finite.js     |      9 -
 .../library/modules/es6.number.is-integer.js    |      4 -
 .../library/modules/es6.number.is-nan.js        |      8 -
 .../modules/es6.number.is-safe-integer.js       |     10 -
 .../modules/es6.number.max-safe-integer.js      |      4 -
 .../modules/es6.number.min-safe-integer.js      |      4 -
 .../library/modules/es6.number.parse-float.js   |      4 -
 .../library/modules/es6.number.parse-int.js     |      4 -
 .../library/modules/es6.object.assign.js        |      4 -
 .../library/modules/es6.object.freeze.js        |      8 -
 .../es6.object.get-own-property-descriptor.js   |      8 -
 .../es6.object.get-own-property-names.js        |      4 -
 .../modules/es6.object.get-prototype-of.js      |      8 -
 .../library/modules/es6.object.is-extensible.js |      8 -
 .../library/modules/es6.object.is-frozen.js     |      8 -
 .../library/modules/es6.object.is-sealed.js     |      8 -
 .../core-js/library/modules/es6.object.is.js    |      3 -
 .../core-js/library/modules/es6.object.keys.js  |      8 -
 .../modules/es6.object.prevent-extensions.js    |      8 -
 .../core-js/library/modules/es6.object.seal.js  |      8 -
 .../modules/es6.object.set-prototype-of.js      |      3 -
 .../library/modules/es6.object.to-string.js     |      0
 .../core-js/library/modules/es6.promise.js      |    293 -
 .../library/modules/es6.reflect.apply.js        |     10 -
 .../library/modules/es6.reflect.construct.js    |     39 -
 .../modules/es6.reflect.define-property.js      |     19 -
 .../modules/es6.reflect.delete-property.js      |     11 -
 .../library/modules/es6.reflect.enumerate.js    |     26 -
 .../es6.reflect.get-own-property-descriptor.js  |     10 -
 .../modules/es6.reflect.get-prototype-of.js     |     10 -
 .../core-js/library/modules/es6.reflect.get.js  |     20 -
 .../core-js/library/modules/es6.reflect.has.js  |      8 -
 .../modules/es6.reflect.is-extensible.js        |     11 -
 .../library/modules/es6.reflect.own-keys.js     |      4 -
 .../modules/es6.reflect.prevent-extensions.js   |     16 -
 .../modules/es6.reflect.set-prototype-of.js     |     15 -
 .../core-js/library/modules/es6.reflect.set.js  |     29 -
 .../library/modules/es6.regexp.constructor.js   |      1 -
 .../core-js/library/modules/es6.regexp.flags.js |      0
 .../core-js/library/modules/es6.regexp.match.js |      0
 .../library/modules/es6.regexp.replace.js       |      0
 .../library/modules/es6.regexp.search.js        |      0
 .../core-js/library/modules/es6.regexp.split.js |      0
 node_modules/core-js/library/modules/es6.set.js |     12 -
 .../library/modules/es6.string.code-point-at.js |      9 -
 .../library/modules/es6.string.ends-with.js     |     21 -
 .../modules/es6.string.from-code-point.js       |     24 -
 .../library/modules/es6.string.includes.js      |     12 -
 .../library/modules/es6.string.iterator.js      |     17 -
 .../core-js/library/modules/es6.string.raw.js   |     19 -
 .../library/modules/es6.string.repeat.js        |      6 -
 .../library/modules/es6.string.starts-with.js   |     19 -
 .../core-js/library/modules/es6.string.trim.js  |      7 -
 .../core-js/library/modules/es6.symbol.js       |    227 -
 .../library/modules/es6.typed.array-buffer.js   |     43 -
 .../library/modules/es6.typed.data-view.js      |      4 -
 .../library/modules/es6.typed.float32-array.js  |      5 -
 .../library/modules/es6.typed.float64-array.js  |      5 -
 .../library/modules/es6.typed.int16-array.js    |      5 -
 .../library/modules/es6.typed.int32-array.js    |      5 -
 .../library/modules/es6.typed.int8-array.js     |      5 -
 .../library/modules/es6.typed.uint16-array.js   |      5 -
 .../library/modules/es6.typed.uint32-array.js   |      5 -
 .../library/modules/es6.typed.uint8-array.js    |      5 -
 .../modules/es6.typed.uint8-clamped-array.js    |      5 -
 .../core-js/library/modules/es6.weak-map.js     |     43 -
 .../core-js/library/modules/es6.weak-set.js     |     12 -
 .../library/modules/es7.array.includes.js       |     12 -
 .../core-js/library/modules/es7.map.to-json.js  |      4 -
 .../library/modules/es7.object.entries.js       |      9 -
 .../es7.object.get-own-property-descriptors.js  |     23 -
 .../library/modules/es7.object.values.js        |      9 -
 .../library/modules/es7.regexp.escape.js        |      5 -
 .../core-js/library/modules/es7.set.to-json.js  |      4 -
 .../core-js/library/modules/es7.string.at.js    |     10 -
 .../library/modules/es7.string.pad-left.js      |      9 -
 .../library/modules/es7.string.pad-right.js     |      9 -
 .../library/modules/es7.string.trim-left.js     |      7 -
 .../library/modules/es7.string.trim-right.js    |      7 -
 .../core-js/library/modules/js.array.statics.js |     17 -
 .../core-js/library/modules/web.dom.iterable.js |      3 -
 .../core-js/library/modules/web.immediate.js    |      6 -
 .../core-js/library/modules/web.timers.js       |     20 -
 node_modules/core-js/library/shim.js            |    104 -
 node_modules/core-js/library/web/dom.js         |      2 -
 node_modules/core-js/library/web/immediate.js   |      2 -
 node_modules/core-js/library/web/index.js       |      4 -
 node_modules/core-js/library/web/timers.js      |      2 -
 node_modules/core-js/modules/$.a-function.js    |      4 -
 .../core-js/modules/$.add-to-unscopables.js     |      7 -
 node_modules/core-js/modules/$.an-object.js     |      5 -
 .../core-js/modules/$.array-copy-within.js      |     27 -
 node_modules/core-js/modules/$.array-fill.js    |     16 -
 .../core-js/modules/$.array-includes.js         |     21 -
 node_modules/core-js/modules/$.array-methods.js |     43 -
 .../core-js/modules/$.array-species-create.js   |     16 -
 node_modules/core-js/modules/$.buffer.js        |    288 -
 node_modules/core-js/modules/$.classof.js       |     16 -
 node_modules/core-js/modules/$.cof.js           |      5 -
 .../core-js/modules/$.collection-strong.js      |    159 -
 .../core-js/modules/$.collection-to-json.js     |     11 -
 .../core-js/modules/$.collection-weak.js        |     86 -
 node_modules/core-js/modules/$.collection.js    |     79 -
 node_modules/core-js/modules/$.core.js          |      2 -
 node_modules/core-js/modules/$.ctx.js           |     20 -
 node_modules/core-js/modules/$.defined.js       |      5 -
 node_modules/core-js/modules/$.descriptors.js   |      4 -
 node_modules/core-js/modules/$.dom-create.js    |      7 -
 node_modules/core-js/modules/$.enum-keys.js     |     14 -
 node_modules/core-js/modules/$.export.js        |     41 -
 .../core-js/modules/$.fails-is-regexp.js        |     12 -
 node_modules/core-js/modules/$.fails.js         |      7 -
 node_modules/core-js/modules/$.fix-re-wks.js    |     26 -
 node_modules/core-js/modules/$.flags.js         |     13 -
 node_modules/core-js/modules/$.for-of.js        |     19 -
 node_modules/core-js/modules/$.get-names.js     |     20 -
 node_modules/core-js/modules/$.global.js        |      4 -
 node_modules/core-js/modules/$.has.js           |      4 -
 node_modules/core-js/modules/$.hide.js          |      8 -
 node_modules/core-js/modules/$.html.js          |      1 -
 node_modules/core-js/modules/$.invoke.js        |     16 -
 node_modules/core-js/modules/$.iobject.js       |      5 -
 node_modules/core-js/modules/$.is-array-iter.js |      8 -
 node_modules/core-js/modules/$.is-array.js      |      5 -
 node_modules/core-js/modules/$.is-integer.js    |      6 -
 node_modules/core-js/modules/$.is-object.js     |      3 -
 node_modules/core-js/modules/$.is-regexp.js     |      8 -
 node_modules/core-js/modules/$.iter-call.js     |     12 -
 node_modules/core-js/modules/$.iter-create.js   |     13 -
 node_modules/core-js/modules/$.iter-define.js   |     66 -
 node_modules/core-js/modules/$.iter-detect.js   |     21 -
 node_modules/core-js/modules/$.iter-step.js     |      3 -
 node_modules/core-js/modules/$.iterators.js     |      1 -
 node_modules/core-js/modules/$.js               |     13 -
 node_modules/core-js/modules/$.keyof.js         |     10 -
 node_modules/core-js/modules/$.library.js       |      1 -
 node_modules/core-js/modules/$.math-expm1.js    |      4 -
 node_modules/core-js/modules/$.math-log1p.js    |      4 -
 node_modules/core-js/modules/$.math-sign.js     |      4 -
 node_modules/core-js/modules/$.microtask.js     |     64 -
 node_modules/core-js/modules/$.object-assign.js |     33 -
 node_modules/core-js/modules/$.object-define.js |     11 -
 node_modules/core-js/modules/$.object-sap.js    |     10 -
 .../core-js/modules/$.object-to-array.js        |     16 -
 node_modules/core-js/modules/$.own-keys.js      |      9 -
 node_modules/core-js/modules/$.partial.js       |     24 -
 node_modules/core-js/modules/$.path.js          |      1 -
 node_modules/core-js/modules/$.property-desc.js |      8 -
 node_modules/core-js/modules/$.redefine-all.js  |      5 -
 node_modules/core-js/modules/$.redefine.js      |     27 -
 node_modules/core-js/modules/$.replacer.js      |      8 -
 node_modules/core-js/modules/$.same-value.js    |      4 -
 node_modules/core-js/modules/$.set-proto.js     |     26 -
 node_modules/core-js/modules/$.set-species.js   |     13 -
 .../core-js/modules/$.set-to-string-tag.js      |      7 -
 node_modules/core-js/modules/$.shared.js        |      6 -
 .../core-js/modules/$.species-constructor.js    |      8 -
 node_modules/core-js/modules/$.strict-new.js    |      4 -
 node_modules/core-js/modules/$.string-at.js     |     17 -
 .../core-js/modules/$.string-context.js         |      8 -
 node_modules/core-js/modules/$.string-pad.js    |     17 -
 node_modules/core-js/modules/$.string-repeat.js |     12 -
 node_modules/core-js/modules/$.string-trim.js   |     29 -
 node_modules/core-js/modules/$.task.js          |     75 -
 node_modules/core-js/modules/$.to-index.js      |      7 -
 node_modules/core-js/modules/$.to-integer.js    |      6 -
 node_modules/core-js/modules/$.to-iobject.js    |      6 -
 node_modules/core-js/modules/$.to-length.js     |      6 -
 node_modules/core-js/modules/$.to-object.js     |      5 -
 node_modules/core-js/modules/$.to-primitive.js  |     12 -
 node_modules/core-js/modules/$.typed-array.js   |    365 -
 node_modules/core-js/modules/$.typed.js         |     36 -
 node_modules/core-js/modules/$.uid.js           |      5 -
 node_modules/core-js/modules/$.wks.js           |      7 -
 node_modules/core-js/modules/core.delay.js      |     12 -
 node_modules/core-js/modules/core.dict.js       |    153 -
 .../core-js/modules/core.function.part.js       |      7 -
 .../core-js/modules/core.get-iterator-method.js |      8 -
 .../core-js/modules/core.get-iterator.js        |      7 -
 .../core-js/modules/core.is-iterable.js         |      9 -
 node_modules/core-js/modules/core.log.js        |     26 -
 .../core-js/modules/core.number.iterator.js     |      9 -
 .../core-js/modules/core.object.classof.js      |      3 -
 .../core-js/modules/core.object.define.js       |      4 -
 .../core-js/modules/core.object.is-object.js    |      3 -
 .../core-js/modules/core.object.make.js         |      9 -
 .../core-js/modules/core.string.escape-html.js  |     11 -
 .../modules/core.string.unescape-html.js        |     11 -
 node_modules/core-js/modules/es5.js             |    276 -
 .../core-js/modules/es6.array.copy-within.js    |      6 -
 node_modules/core-js/modules/es6.array.fill.js  |      6 -
 .../core-js/modules/es6.array.find-index.js     |     14 -
 node_modules/core-js/modules/es6.array.find.js  |     14 -
 node_modules/core-js/modules/es6.array.from.js  |     36 -
 .../core-js/modules/es6.array.iterator.js       |     34 -
 node_modules/core-js/modules/es6.array.of.js    |     19 -
 .../core-js/modules/es6.array.species.js        |      1 -
 .../core-js/modules/es6.date.to-string.js       |     10 -
 .../modules/es6.function.has-instance.js        |     13 -
 .../core-js/modules/es6.function.name.js        |     16 -
 node_modules/core-js/modules/es6.map.js         |     17 -
 node_modules/core-js/modules/es6.math.acosh.js  |     14 -
 node_modules/core-js/modules/es6.math.asinh.js  |      8 -
 node_modules/core-js/modules/es6.math.atanh.js  |      8 -
 node_modules/core-js/modules/es6.math.cbrt.js   |      9 -
 node_modules/core-js/modules/es6.math.clz32.js  |      8 -
 node_modules/core-js/modules/es6.math.cosh.js   |      9 -
 node_modules/core-js/modules/es6.math.expm1.js  |      4 -
 node_modules/core-js/modules/es6.math.fround.js |     26 -
 node_modules/core-js/modules/es6.math.hypot.js  |     26 -
 node_modules/core-js/modules/es6.math.imul.js   |     17 -
 node_modules/core-js/modules/es6.math.log10.js  |      8 -
 node_modules/core-js/modules/es6.math.log1p.js  |      4 -
 node_modules/core-js/modules/es6.math.log2.js   |      8 -
 node_modules/core-js/modules/es6.math.sign.js   |      4 -
 node_modules/core-js/modules/es6.math.sinh.js   |     15 -
 node_modules/core-js/modules/es6.math.tanh.js   |     12 -
 node_modules/core-js/modules/es6.math.trunc.js  |      8 -
 .../core-js/modules/es6.number.constructor.js   |     66 -
 .../core-js/modules/es6.number.epsilon.js       |      4 -
 .../core-js/modules/es6.number.is-finite.js     |      9 -
 .../core-js/modules/es6.number.is-integer.js    |      4 -
 .../core-js/modules/es6.number.is-nan.js        |      8 -
 .../modules/es6.number.is-safe-integer.js       |     10 -
 .../modules/es6.number.max-safe-integer.js      |      4 -
 .../modules/es6.number.min-safe-integer.js      |      4 -
 .../core-js/modules/es6.number.parse-float.js   |      4 -
 .../core-js/modules/es6.number.parse-int.js     |      4 -
 .../core-js/modules/es6.object.assign.js        |      4 -
 .../core-js/modules/es6.object.freeze.js        |      8 -
 .../es6.object.get-own-property-descriptor.js   |      8 -
 .../es6.object.get-own-property-names.js        |      4 -
 .../modules/es6.object.get-prototype-of.js      |      8 -
 .../core-js/modules/es6.object.is-extensible.js |      8 -
 .../core-js/modules/es6.object.is-frozen.js     |      8 -
 .../core-js/modules/es6.object.is-sealed.js     |      8 -
 node_modules/core-js/modules/es6.object.is.js   |      3 -
 node_modules/core-js/modules/es6.object.keys.js |      8 -
 .../modules/es6.object.prevent-extensions.js    |      8 -
 node_modules/core-js/modules/es6.object.seal.js |      8 -
 .../modules/es6.object.set-prototype-of.js      |      3 -
 .../core-js/modules/es6.object.to-string.js     |     10 -
 node_modules/core-js/modules/es6.promise.js     |    293 -
 .../core-js/modules/es6.reflect.apply.js        |     10 -
 .../core-js/modules/es6.reflect.construct.js    |     39 -
 .../modules/es6.reflect.define-property.js      |     19 -
 .../modules/es6.reflect.delete-property.js      |     11 -
 .../core-js/modules/es6.reflect.enumerate.js    |     26 -
 .../es6.reflect.get-own-property-descriptor.js  |     10 -
 .../modules/es6.reflect.get-prototype-of.js     |     10 -
 node_modules/core-js/modules/es6.reflect.get.js |     20 -
 node_modules/core-js/modules/es6.reflect.has.js |      8 -
 .../modules/es6.reflect.is-extensible.js        |     11 -
 .../core-js/modules/es6.reflect.own-keys.js     |      4 -
 .../modules/es6.reflect.prevent-extensions.js   |     16 -
 .../modules/es6.reflect.set-prototype-of.js     |     15 -
 node_modules/core-js/modules/es6.reflect.set.js |     29 -
 .../core-js/modules/es6.regexp.constructor.js   |     38 -
 .../core-js/modules/es6.regexp.flags.js         |      6 -
 .../core-js/modules/es6.regexp.match.js         |     10 -
 .../core-js/modules/es6.regexp.replace.js       |     12 -
 .../core-js/modules/es6.regexp.search.js        |     10 -
 .../core-js/modules/es6.regexp.split.js         |     12 -
 node_modules/core-js/modules/es6.set.js         |     12 -
 .../core-js/modules/es6.string.code-point-at.js |      9 -
 .../core-js/modules/es6.string.ends-with.js     |     21 -
 .../modules/es6.string.from-code-point.js       |     24 -
 .../core-js/modules/es6.string.includes.js      |     12 -
 .../core-js/modules/es6.string.iterator.js      |     17 -
 node_modules/core-js/modules/es6.string.raw.js  |     19 -
 .../core-js/modules/es6.string.repeat.js        |      6 -
 .../core-js/modules/es6.string.starts-with.js   |     19 -
 node_modules/core-js/modules/es6.string.trim.js |      7 -
 node_modules/core-js/modules/es6.symbol.js      |    227 -
 .../core-js/modules/es6.typed.array-buffer.js   |     43 -
 .../core-js/modules/es6.typed.data-view.js      |      4 -
 .../core-js/modules/es6.typed.float32-array.js  |      5 -
 .../core-js/modules/es6.typed.float64-array.js  |      5 -
 .../core-js/modules/es6.typed.int16-array.js    |      5 -
 .../core-js/modules/es6.typed.int32-array.js    |      5 -
 .../core-js/modules/es6.typed.int8-array.js     |      5 -
 .../core-js/modules/es6.typed.uint16-array.js   |      5 -
 .../core-js/modules/es6.typed.uint32-array.js   |      5 -
 .../core-js/modules/es6.typed.uint8-array.js    |      5 -
 .../modules/es6.typed.uint8-clamped-array.js    |      5 -
 node_modules/core-js/modules/es6.weak-map.js    |     43 -
 node_modules/core-js/modules/es6.weak-set.js    |     12 -
 .../core-js/modules/es7.array.includes.js       |     12 -
 node_modules/core-js/modules/es7.map.to-json.js |      4 -
 .../core-js/modules/es7.object.entries.js       |      9 -
 .../es7.object.get-own-property-descriptors.js  |     23 -
 .../core-js/modules/es7.object.values.js        |      9 -
 .../core-js/modules/es7.regexp.escape.js        |      5 -
 node_modules/core-js/modules/es7.set.to-json.js |      4 -
 node_modules/core-js/modules/es7.string.at.js   |     10 -
 .../core-js/modules/es7.string.pad-left.js      |      9 -
 .../core-js/modules/es7.string.pad-right.js     |      9 -
 .../core-js/modules/es7.string.trim-left.js     |      7 -
 .../core-js/modules/es7.string.trim-right.js    |      7 -
 .../core-js/modules/js.array.statics.js         |     17 -
 .../modules/library/$.add-to-unscopables.js     |      1 -
 .../core-js/modules/library/$.collection.js     |     55 -
 .../core-js/modules/library/$.export.js         |     46 -
 .../core-js/modules/library/$.library.js        |      1 -
 node_modules/core-js/modules/library/$.path.js  |      1 -
 .../core-js/modules/library/$.redefine.js       |      1 -
 .../core-js/modules/library/$.set-species.js    |     13 -
 .../modules/library/es6.date.to-string.js       |      0
 .../modules/library/es6.function.name.js        |      0
 .../modules/library/es6.number.constructor.js   |      0
 .../modules/library/es6.object.to-string.js     |      0
 .../modules/library/es6.regexp.constructor.js   |      1 -
 .../core-js/modules/library/es6.regexp.flags.js |      0
 .../core-js/modules/library/es6.regexp.match.js |      0
 .../modules/library/es6.regexp.replace.js       |      0
 .../modules/library/es6.regexp.search.js        |      0
 .../core-js/modules/library/es6.regexp.split.js |      0
 .../core-js/modules/library/web.dom.iterable.js |      3 -
 .../core-js/modules/web.dom.iterable.js         |     12 -
 node_modules/core-js/modules/web.immediate.js   |      6 -
 node_modules/core-js/modules/web.timers.js      |     20 -
 node_modules/core-js/package.json               |    125 -
 node_modules/core-js/shim.js                    |    104 -
 node_modules/core-js/web/dom.js                 |      2 -
 node_modules/core-js/web/immediate.js           |      2 -
 node_modules/core-js/web/index.js               |      4 -
 node_modules/core-js/web/timers.js              |      2 -
 node_modules/core-util-is/LICENSE               |     19 -
 node_modules/core-util-is/README.md             |      3 -
 node_modules/core-util-is/float.patch           |    604 -
 node_modules/core-util-is/lib/util.js           |    107 -
 node_modules/core-util-is/package.json          |     96 -
 node_modules/core-util-is/test.js               |     68 -
 node_modules/cross-spawn/LICENSE                |     19 -
 node_modules/cross-spawn/README.md              |     71 -
 node_modules/cross-spawn/index.js               |     59 -
 node_modules/cross-spawn/lib/enoent.js          |     73 -
 node_modules/cross-spawn/lib/hasBrokenSpawn.js  |     11 -
 node_modules/cross-spawn/lib/parse.js           |    140 -
 node_modules/cross-spawn/lib/resolveCommand.js  |     31 -
 node_modules/cross-spawn/package.json           |    117 -
 node_modules/cryptiles/.npmignore               |     18 -
 node_modules/cryptiles/.travis.yml              |      8 -
 node_modules/cryptiles/LICENSE                  |     28 -
 node_modules/cryptiles/README.md                |     16 -
 node_modules/cryptiles/lib/index.js             |     68 -
 node_modules/cryptiles/package.json             |     95 -
 node_modules/cryptiles/test/index.js            |    102 -
 node_modules/css-parse/Readme.md                |    142 -
 node_modules/css-parse/index.js                 |    494 -
 node_modules/css-parse/package.json             |     97 -
 node_modules/css-select/LICENSE                 |     11 -
 node_modules/css-select/README.md               |    133 -
 node_modules/css-select/index.js                |     59 -
 node_modules/css-select/lib/attributes.js       |    181 -
 node_modules/css-select/lib/compile.js          |    192 -
 node_modules/css-select/lib/general.js          |     89 -
 node_modules/css-select/lib/procedure.json      |     11 -
 node_modules/css-select/lib/pseudos.js          |    393 -
 node_modules/css-select/lib/sort.js             |     80 -
 node_modules/css-select/package.json            |    125 -
 node_modules/css-what/LICENSE                   |     11 -
 node_modules/css-what/index.js                  |    267 -
 node_modules/css-what/package.json              |    108 -
 node_modules/css-what/readme.md                 |     46 -
 node_modules/cssom/LICENSE.txt                  |     20 -
 node_modules/cssom/README.mdown                 |     69 -
 node_modules/cssom/lib/CSSDocumentRule.js       |     39 -
 node_modules/cssom/lib/CSSFontFaceRule.js       |     36 -
 node_modules/cssom/lib/CSSHostRule.js           |     37 -
 node_modules/cssom/lib/CSSImportRule.js         |    132 -
 node_modules/cssom/lib/CSSKeyframeRule.js       |     37 -
 node_modules/cssom/lib/CSSKeyframesRule.js      |     39 -
 node_modules/cssom/lib/CSSMediaRule.js          |     41 -
 node_modules/cssom/lib/CSSOM.js                 |      3 -
 node_modules/cssom/lib/CSSRule.js               |     43 -
 node_modules/cssom/lib/CSSStyleDeclaration.js   |    148 -
 node_modules/cssom/lib/CSSStyleRule.js          |    190 -
 node_modules/cssom/lib/CSSStyleSheet.js         |     88 -
 node_modules/cssom/lib/CSSValue.js              |     43 -
 node_modules/cssom/lib/CSSValueExpression.js    |    344 -
 node_modules/cssom/lib/MatcherList.js           |     62 -
 node_modules/cssom/lib/MediaList.js             |     61 -
 node_modules/cssom/lib/Parser.js                |    362 -
 node_modules/cssom/lib/StyleSheet.js            |     17 -
 node_modules/cssom/lib/clone.js                 |     76 -
 node_modules/cssom/lib/index.js                 |     10 -
 node_modules/cssom/lib/parse.js                 |    403 -
 node_modules/cssom/lib/snapshot.js              |     76 -
 node_modules/cssom/package.json                 |    101 -
 node_modules/cssstyle/.npmignore                |      1 -
 node_modules/cssstyle/MIT-LICENSE.txt           |     20 -
 node_modules/cssstyle/README.md                 |     27 -
 .../cssstyle/lib/CSSStyleDeclaration.js         |    233 -
 node_modules/cssstyle/lib/parsers.js            |    670 -
 node_modules/cssstyle/lib/properties.js         |   5858 -
 .../lib/properties/alignmentBaseline.js         |     12 -
 node_modules/cssstyle/lib/properties/azimuth.js |     65 -
 .../cssstyle/lib/properties/background.js       |     24 -
 .../lib/properties/backgroundAttachment.js      |     22 -
 .../cssstyle/lib/properties/backgroundClip.js   |     12 -
 .../cssstyle/lib/properties/backgroundColor.js  |     33 -
 .../cssstyle/lib/properties/backgroundImage.js  |     29 -
 .../cssstyle/lib/properties/backgroundOrigin.js |     12 -
 .../lib/properties/backgroundPosition.js        |     56 -
 .../lib/properties/backgroundPositionX.js       |     12 -
 .../lib/properties/backgroundPositionY.js       |     12 -
 .../cssstyle/lib/properties/backgroundRepeat.js |     25 -
 .../lib/properties/backgroundRepeatX.js         |     12 -
 .../lib/properties/backgroundRepeatY.js         |     12 -
 .../cssstyle/lib/properties/backgroundSize.js   |     12 -
 .../cssstyle/lib/properties/baselineShift.js    |     12 -
 node_modules/cssstyle/lib/properties/border.js  |     49 -
 .../cssstyle/lib/properties/borderBottom.js     |     23 -
 .../lib/properties/borderBottomColor.js         |     16 -
 .../lib/properties/borderBottomLeftRadius.js    |     12 -
 .../lib/properties/borderBottomRightRadius.js   |     12 -
 .../lib/properties/borderBottomStyle.js         |     21 -
 .../lib/properties/borderBottomWidth.js         |     16 -
 .../cssstyle/lib/properties/borderCollapse.js   |     25 -
 .../cssstyle/lib/properties/borderColor.js      |     28 -
 .../cssstyle/lib/properties/borderImage.js      |     12 -
 .../lib/properties/borderImageOutset.js         |     12 -
 .../lib/properties/borderImageRepeat.js         |     12 -
 .../cssstyle/lib/properties/borderImageSlice.js |     12 -
 .../lib/properties/borderImageSource.js         |     12 -
 .../cssstyle/lib/properties/borderImageWidth.js |     12 -
 .../cssstyle/lib/properties/borderLeft.js       |     23 -
 .../cssstyle/lib/properties/borderLeftColor.js  |     16 -
 .../cssstyle/lib/properties/borderLeftStyle.js  |     21 -
 .../cssstyle/lib/properties/borderLeftWidth.js  |     16 -
 .../cssstyle/lib/properties/borderRadius.js     |     12 -
 .../cssstyle/lib/properties/borderRight.js      |     23 -
 .../cssstyle/lib/properties/borderRightColor.js |     16 -
 .../cssstyle/lib/properties/borderRightStyle.js |     21 -
 .../cssstyle/lib/properties/borderRightWidth.js |     16 -
 .../cssstyle/lib/properties/borderSpacing.js    |     42 -
 .../cssstyle/lib/properties/borderStyle.js      |     27 -
 .../cssstyle/lib/properties/borderTop.js        |     22 -
 .../cssstyle/lib/properties/borderTopColor.js   |     16 -
 .../lib/properties/borderTopLeftRadius.js       |     12 -
 .../lib/properties/borderTopRightRadius.js      |     12 -
 .../cssstyle/lib/properties/borderTopStyle.js   |     21 -
 .../cssstyle/lib/properties/borderTopWidth.js   |     17 -
 .../cssstyle/lib/properties/borderWidth.js      |     47 -
 node_modules/cssstyle/lib/properties/bottom.js  |     14 -
 .../cssstyle/lib/properties/boxShadow.js        |     12 -
 .../cssstyle/lib/properties/boxSizing.js        |     12 -
 .../cssstyle/lib/properties/captionSide.js      |     12 -
 node_modules/cssstyle/lib/properties/clear.js   |     16 -
 node_modules/cssstyle/lib/properties/clip.js    |     49 -
 node_modules/cssstyle/lib/properties/color.js   |     14 -
 .../lib/properties/colorInterpolation.js        |     12 -
 .../lib/properties/colorInterpolationFilters.js |     12 -
 .../cssstyle/lib/properties/colorProfile.js     |     12 -
 .../cssstyle/lib/properties/colorRendering.js   |     12 -
 node_modules/cssstyle/lib/properties/content.js |     12 -
 .../cssstyle/lib/properties/counterIncrement.js |     12 -
 .../cssstyle/lib/properties/counterReset.js     |     12 -
 .../cssstyle/lib/properties/cssFloat.js         |     12 -
 node_modules/cssstyle/lib/properties/cue.js     |     12 -
 .../cssstyle/lib/properties/cueAfter.js         |     12 -
 .../cssstyle/lib/properties/cueBefore.js        |     12 -
 node_modules/cssstyle/lib/properties/cursor.js  |     12 -
 .../cssstyle/lib/properties/direction.js        |     12 -
 node_modules/cssstyle/lib/properties/display.js |     12 -
 .../cssstyle/lib/properties/dominantBaseline.js |     12 -
 .../cssstyle/lib/properties/elevation.js        |     12 -
 .../cssstyle/lib/properties/emptyCells.js       |     12 -
 .../cssstyle/lib/properties/enableBackground.js |     12 -
 node_modules/cssstyle/lib/properties/fill.js    |     12 -
 .../cssstyle/lib/properties/fillOpacity.js      |     12 -
 .../cssstyle/lib/properties/fillRule.js         |     12 -
 node_modules/cssstyle/lib/properties/filter.js  |     12 -
 .../cssstyle/lib/properties/floodColor.js       |     14 -
 .../cssstyle/lib/properties/floodOpacity.js     |     12 -
 node_modules/cssstyle/lib/properties/font.js    |     40 -
 .../cssstyle/lib/properties/fontFamily.js       |     33 -
 .../cssstyle/lib/properties/fontSize.js         |     25 -
 .../cssstyle/lib/properties/fontSizeAdjust.js   |     12 -
 .../cssstyle/lib/properties/fontStretch.js      |     12 -
 .../cssstyle/lib/properties/fontStyle.js        |     18 -
 .../cssstyle/lib/properties/fontVariant.js      |     18 -
 .../cssstyle/lib/properties/fontWeight.js       |     18 -
 .../properties/glyphOrientationHorizontal.js    |     12 -
 .../lib/properties/glyphOrientationVertical.js  |     12 -
 node_modules/cssstyle/lib/properties/height.js  |     24 -
 .../cssstyle/lib/properties/imageRendering.js   |     12 -
 node_modules/cssstyle/lib/properties/kerning.js |     12 -
 node_modules/cssstyle/lib/properties/left.js    |     14 -
 .../cssstyle/lib/properties/letterSpacing.js    |     12 -
 .../cssstyle/lib/properties/lightingColor.js    |     14 -
 .../cssstyle/lib/properties/lineHeight.js       |     21 -
 .../cssstyle/lib/properties/listStyle.js        |     12 -
 .../cssstyle/lib/properties/listStyleImage.js   |     12 -
 .../lib/properties/listStylePosition.js         |     12 -
 .../cssstyle/lib/properties/listStyleType.js    |     12 -
 node_modules/cssstyle/lib/properties/margin.js  |     59 -
 .../cssstyle/lib/properties/marginBottom.js     |     13 -
 .../cssstyle/lib/properties/marginLeft.js       |     13 -
 .../cssstyle/lib/properties/marginRight.js      |     13 -
 .../cssstyle/lib/properties/marginTop.js        |     13 -
 node_modules/cssstyle/lib/properties/marker.js  |     12 -
 .../cssstyle/lib/properties/markerEnd.js        |     12 -
 .../cssstyle/lib/properties/markerMid.js        |     12 -
 .../cssstyle/lib/properties/markerOffset.js     |     12 -
 .../cssstyle/lib/properties/markerStart.js      |     12 -
 node_modules/cssstyle/lib/properties/marks.js   |     12 -
 node_modules/cssstyle/lib/properties/mask.js    |     12 -
 .../cssstyle/lib/properties/maxHeight.js        |     12 -
 .../cssstyle/lib/properties/maxWidth.js         |     12 -
 .../cssstyle/lib/properties/minHeight.js        |     12 -
 .../cssstyle/lib/properties/minWidth.js         |     12 -
 node_modules/cssstyle/lib/properties/opacity.js |     14 -
 node_modules/cssstyle/lib/properties/orphans.js |     12 -
 node_modules/cssstyle/lib/properties/outline.js |     12 -
 .../cssstyle/lib/properties/outlineColor.js     |     14 -
 .../cssstyle/lib/properties/outlineOffset.js    |     12 -
 .../cssstyle/lib/properties/outlineStyle.js     |     12 -
 .../cssstyle/lib/properties/outlineWidth.js     |     12 -
 .../cssstyle/lib/properties/overflow.js         |     12 -
 .../cssstyle/lib/properties/overflowX.js        |     12 -
 .../cssstyle/lib/properties/overflowY.js        |     12 -
 node_modules/cssstyle/lib/properties/padding.js |     52 -
 .../cssstyle/lib/properties/paddingBottom.js    |     13 -
 .../cssstyle/lib/properties/paddingLeft.js      |     13 -
 .../cssstyle/lib/properties/paddingRight.js     |     13 -
 .../cssstyle/lib/properties/paddingTop.js       |     13 -
 node_modules/cssstyle/lib/properties/page.js    |     12 -
 .../cssstyle/lib/properties/pageBreakAfter.js   |     12 -
 .../cssstyle/lib/properties/pageBreakBefore.js  |     12 -
 .../cssstyle/lib/properties/pageBreakInside.js  |     12 -
 node_modules/cssstyle/lib/properties/pause.js   |     12 -
 .../cssstyle/lib/properties/pauseAfter.js       |     12 -
 .../cssstyle/lib/properties/pauseBefore.js      |     12 -
 node_modules/cssstyle/lib/properties/pitch.js   |     12 -
 .../cssstyle/lib/properties/pitchRange.js       |     12 -
 .../cssstyle/lib/properties/playDuring.js       |     12 -
 .../cssstyle/lib/properties/pointerEvents.js    |     12 -
 .../cssstyle/lib/properties/position.js         |     12 -
 node_modules/cssstyle/lib/properties/quotes.js  |     12 -
 node_modules/cssstyle/lib/properties/resize.js  |     12 -
 .../cssstyle/lib/properties/richness.js         |     12 -
 node_modules/cssstyle/lib/properties/right.js   |     14 -
 .../cssstyle/lib/properties/shapeRendering.js   |     12 -
 node_modules/cssstyle/lib/properties/size.js    |     12 -
 node_modules/cssstyle/lib/properties/speak.js   |     12 -
 .../cssstyle/lib/properties/speakHeader.js      |     12 -
 .../cssstyle/lib/properties/speakNumeral.js     |     12 -
 .../cssstyle/lib/properties/speakPunctuation.js |     12 -
 .../cssstyle/lib/properties/speechRate.js       |     12 -
 node_modules/cssstyle/lib/properties/src.js     |     12 -
 .../cssstyle/lib/properties/stopColor.js        |     14 -
 .../cssstyle/lib/properties/stopOpacity.js      |     12 -
 node_modules/cssstyle/lib/properties/stress.js  |     12 -
 node_modules/cssstyle/lib/properties/stroke.js  |     12 -
 .../cssstyle/lib/properties/strokeDasharray.js  |     12 -
 .../cssstyle/lib/properties/strokeDashoffset.js |     12 -
 .../cssstyle/lib/properties/strokeLinecap.js    |     12 -
 .../cssstyle/lib/properties/strokeLinejoin.js   |     12 -
 .../cssstyle/lib/properties/strokeMiterlimit.js |     12 -
 .../cssstyle/lib/properties/strokeOpacity.js    |     12 -
 .../cssstyle/lib/properties/strokeWidth.js      |     12 -
 .../cssstyle/lib/properties/tableLayout.js      |     12 -
 .../cssstyle/lib/properties/textAlign.js        |     12 -
 .../cssstyle/lib/properties/textAnchor.js       |     12 -
 .../cssstyle/lib/properties/textDecoration.js   |     12 -
 .../cssstyle/lib/properties/textIndent.js       |     12 -
 .../cssstyle/lib/properties/textLineThrough.js  |     12 -
 .../lib/properties/textLineThroughColor.js      |     14 -
 .../lib/properties/textLineThroughMode.js       |     12 -
 .../lib/properties/textLineThroughStyle.js      |     12 -
 .../lib/properties/textLineThroughWidth.js      |     12 -
 .../cssstyle/lib/properties/textOverflow.js     |     12 -
 .../cssstyle/lib/properties/textOverline.js     |     12 -
 .../lib/properties/textOverlineColor.js         |     14 -
 .../cssstyle/lib/properties/textOverlineMode.js |     12 -
 .../lib/properties/textOverlineStyle.js         |     12 -
 .../lib/properties/textOverlineWidth.js         |     12 -
 .../cssstyle/lib/properties/textRendering.js    |     12 -
 .../cssstyle/lib/properties/textShadow.js       |     12 -
 .../cssstyle/lib/properties/textTransform.js    |     12 -
 .../cssstyle/lib/properties/textUnderline.js    |     12 -
 .../lib/properties/textUnderlineColor.js        |     14 -
 .../lib/properties/textUnderlineMode.js         |     12 -
 .../lib/properties/textUnderlineStyle.js        |     12 -
 .../lib/properties/textUnderlineWidth.js        |     12 -
 node_modules/cssstyle/lib/properties/top.js     |     14 -
 .../cssstyle/lib/properties/unicodeBidi.js      |     12 -
 .../cssstyle/lib/properties/unicodeRange.js     |     12 -
 .../cssstyle/lib/properties/vectorEffect.js     |     12 -
 .../cssstyle/lib/properties/verticalAlign.js    |     12 -
 .../cssstyle/lib/properties/visibility.js       |     12 -
 .../cssstyle/lib/properties/voiceFamily.js      |     12 -
 node_modules/cssstyle/lib/properties/volume.js  |     12 -
 .../cssstyle/lib/properties/webkitAnimation.js  |     12 -
 .../lib/properties/webkitAnimationDelay.js      |     12 -
 .../lib/properties/webkitAnimationDirection.js  |     12 -
 .../lib/properties/webkitAnimationDuration.js   |     12 -
 .../lib/properties/webkitAnimationFillMode.js   |     12 -
 .../properties/webkitAnimationIterationCount.js |     12 -
 .../lib/properties/webkitAnimationName.js       |     12 -
 .../lib/properties/webkitAnimationPlayState.js  |     12 -
 .../properties/webkitAnimationTimingFunction.js |     12 -
 .../cssstyle/lib/properties/webkitAppearance.js |     12 -
 .../lib/properties/webkitAspectRatio.js         |     12 -
 .../lib/properties/webkitBackfaceVisibility.js  |     12 -
 .../lib/properties/webkitBackgroundClip.js      |     12 -
 .../lib/properties/webkitBackgroundComposite.js |     12 -
 .../lib/properties/webkitBackgroundOrigin.js    |     12 -
 .../lib/properties/webkitBackgroundSize.js      |     12 -
 .../lib/properties/webkitBorderAfter.js         |     12 -
 .../lib/properties/webkitBorderAfterColor.js    |     14 -
 .../lib/properties/webkitBorderAfterStyle.js    |     12 -
 .../lib/properties/webkitBorderAfterWidth.js    |     12 -
 .../lib/properties/webkitBorderBefore.js        |     12 -
 .../lib/properties/webkitBorderBeforeColor.js   |     14 -
 .../lib/properties/webkitBorderBeforeStyle.js   |     12 -
 .../lib/properties/webkitBorderBeforeWidth.js   |     12 -
 .../cssstyle/lib/properties/webkitBorderEnd.js  |     12 -
 .../lib/properties/webkitBorderEndColor.js      |     14 -
 .../lib/properties/webkitBorderEndStyle.js      |     12 -
 .../lib/properties/webkitBorderEndWidth.js      |     12 -
 .../cssstyle/lib/properties/webkitBorderFit.js  |     12 -
 .../properties/webkitBorderHorizontalSpacing.js |     12 -
 .../lib/properties/webkitBorderImage.js         |     12 -
 .../lib/properties/webkitBorderRadius.js        |     12 -
 .../lib/properties/webkitBorderStart.js         |     12 -
 .../lib/properties/webkitBorderStartColor.js    |     14 -
 .../lib/properties/webkitBorderStartStyle.js    |     12 -
 .../lib/properties/webkitBorderStartWidth.js    |     12 -
 .../properties/webkitBorderVerticalSpacing.js   |     12 -
 .../cssstyle/lib/properties/webkitBoxAlign.js   |     12 -
 .../lib/properties/webkitBoxDirection.js        |     12 -
 .../cssstyle/lib/properties/webkitBoxFlex.js    |     12 -
 .../lib/properties/webkitBoxFlexGroup.js        |     12 -
 .../cssstyle/lib/properties/webkitBoxLines.js   |     12 -
 .../lib/properties/webkitBoxOrdinalGroup.js     |     12 -
 .../cssstyle/lib/properties/webkitBoxOrient.js  |     12 -
 .../cssstyle/lib/properties/webkitBoxPack.js    |     12 -
 .../cssstyle/lib/properties/webkitBoxReflect.js |     12 -
 .../cssstyle/lib/properties/webkitBoxShadow.js  |     12 -
 .../lib/properties/webkitColorCorrection.js     |     12 -
 .../cssstyle/lib/properties/webkitColumnAxis.js |     12 -
 .../lib/properties/webkitColumnBreakAfter.js    |     12 -
 .../lib/properties/webkitColumnBreakBefore.js   |     12 -
 .../lib/properties/webkitColumnBreakInside.js   |     12 -
 .../lib/properties/webkitColumnCount.js         |     12 -
 .../cssstyle/lib/properties/webkitColumnGap.js  |     12 -
 .../cssstyle/lib/properties/webkitColumnRule.js |     12 -
 .../lib/properties/webkitColumnRuleColor.js     |     14 -
 .../lib/properties/webkitColumnRuleStyle.js     |     12 -
 .../lib/properties/webkitColumnRuleWidth.js     |     12 -
 .../cssstyle/lib/properties/webkitColumnSpan.js |     12 -
 .../lib/properties/webkitColumnWidth.js         |     12 -
 .../cssstyle/lib/properties/webkitColumns.js    |     12 -
 .../cssstyle/lib/properties/webkitFilter.js     |     12 -
 .../cssstyle/lib/properties/webkitFlexAlign.js  |     12 -
 .../lib/properties/webkitFlexDirection.js       |     12 -
 .../cssstyle/lib/properties/webkitFlexFlow.js   |     12 -
 .../lib/properties/webkitFlexItemAlign.js       |     12 -
 .../lib/properties/webkitFlexLinePack.js        |     12 -
 .../cssstyle/lib/properties/webkitFlexOrder.js  |     12 -
 .../cssstyle/lib/properties/webkitFlexPack.js   |     12 -
 .../cssstyle/lib/properties/webkitFlexWrap.js   |     12 -
 .../cssstyle/lib/properties/webkitFlowFrom.js   |     12 -
 .../cssstyle/lib/properties/webkitFlowInto.js   |     12 -
 .../lib/properties/webkitFontFeatureSettings.js |     12 -
 .../lib/properties/webkitFontKerning.js         |     12 -
 .../lib/properties/webkitFontSizeDelta.js       |     12 -
 .../lib/properties/webkitFontSmoothing.js       |     12 -
 .../properties/webkitFontVariantLigatures.js    |     12 -
 .../cssstyle/lib/properties/webkitHighlight.js  |     12 -
 .../lib/properties/webkitHyphenateCharacter.js  |     12 -
 .../lib/properties/webkitHyphenateLimitAfter.js |     12 -
 .../properties/webkitHyphenateLimitBefore.js    |     12 -
 .../lib/properties/webkitHyphenateLimitLines.js |     12 -
 .../cssstyle/lib/properties/webkitHyphens.js    |     12 -
 .../cssstyle/lib/properties/webkitLineAlign.js  |     12 -
 .../lib/properties/webkitLineBoxContain.js      |     12 -
 .../cssstyle/lib/properties/webkitLineBreak.js  |     12 -
 .../cssstyle/lib/properties/webkitLineClamp.js  |     12 -
 .../cssstyle/lib/properties/webkitLineGrid.js   |     12 -
 .../cssstyle/lib/properties/webkitLineSnap.js   |     12 -
 .../cssstyle/lib/properties/webkitLocale.js     |     12 -
 .../lib/properties/webkitLogicalHeight.js       |     12 -
 .../lib/properties/webkitLogicalWidth.js        |     12 -
 .../lib/properties/webkitMarginAfter.js         |     12 -
 .../lib/properties/webkitMarginAfterCollapse.js |     12 -
 .../lib/properties/webkitMarginBefore.js        |     12 -
 .../properties/webkitMarginBeforeCollapse.js    |     12 -
 .../properties/webkitMarginBottomCollapse.js    |     12 -
 .../lib/properties/webkitMarginCollapse.js      |     12 -
 .../cssstyle/lib/properties/webkitMarginEnd.js  |     12 -
 .../lib/properties/webkitMarginStart.js         |     12 -
 .../lib/properties/webkitMarginTopCollapse.js   |     12 -
 .../cssstyle/lib/properties/webkitMarquee.js    |     12 -
 .../lib/properties/webkitMarqueeDirection.js    |     12 -
 .../lib/properties/webkitMarqueeIncrement.js    |     12 -
 .../lib/properties/webkitMarqueeRepetition.js   |     12 -
 .../lib/properties/webkitMarqueeSpeed.js        |     12 -
 .../lib/properties/webkitMarqueeStyle.js        |     12 -
 .../cssstyle/lib/properties/webkitMask.js       |     12 -
 .../lib/properties/webkitMaskAttachment.js      |     12 -
 .../lib/properties/webkitMaskBoxImage.js        |     12 -
 .../lib/properties/webkitMaskBoxImageOutset.js  |     12 -
 .../lib/properties/webkitMaskBoxImageRepeat.js  |     12 -
 .../lib/properties/webkitMaskBoxImageSlice.js   |     12 -
 .../lib/properties/webkitMaskBoxImageSource.js  |     12 -
 .../lib/properties/webkitMaskBoxImageWidth.js   |     12 -
 .../cssstyle/lib/properties/webkitMaskClip.js   |     12 -
 .../lib/properties/webkitMaskComposite.js       |     12 -
 .../cssstyle/lib/properties/webkitMaskImage.js  |     12 -
 .../cssstyle/lib/properties/webkitMaskOrigin.js |     12 -
 .../lib/properties/webkitMaskPosition.js        |     12 -
 .../lib/properties/webkitMaskPositionX.js       |     12 -
 .../lib/properties/webkitMaskPositionY.js       |     12 -
 .../cssstyle/lib/properties/webkitMaskRepeat.js |     12 -
 .../lib/properties/webkitMaskRepeatX.js         |     12 -
 .../lib/properties/webkitMaskRepeatY.js         |     12 -
 .../cssstyle/lib/properties/webkitMaskSize.js   |     12 -
 .../webkitMatchNearestMailBlockquoteColor.js    |     14 -
 .../lib/properties/webkitMaxLogicalHeight.js    |     12 -
 .../lib/properties/webkitMaxLogicalWidth.js     |     12 -
 .../lib/properties/webkitMinLogicalHeight.js    |     12 -
 .../lib/properties/webkitMinLogicalWidth.js     |     12 -
 .../cssstyle/lib/properties/webkitNbspMode.js   |     12 -
 .../lib/properties/webkitOverflowScrolling.js   |     12 -
 .../lib/properties/webkitPaddingAfter.js        |     12 -
 .../lib/properties/webkitPaddingBefore.js       |     12 -
 .../cssstyle/lib/properties/webkitPaddingEnd.js |     12 -
 .../lib/properties/webkitPaddingStart.js        |     12 -
 .../lib/properties/webkitPerspective.js         |     12 -
 .../lib/properties/webkitPerspectiveOrigin.js   |     12 -
 .../lib/properties/webkitPerspectiveOriginX.js  |     12 -
 .../lib/properties/webkitPerspectiveOriginY.js  |     12 -
 .../lib/properties/webkitPrintColorAdjust.js    |     12 -
 .../lib/properties/webkitRegionBreakAfter.js    |     12 -
 .../lib/properties/webkitRegionBreakBefore.js   |     12 -
 .../lib/properties/webkitRegionBreakInside.js   |     12 -
 .../lib/properties/webkitRegionOverflow.js      |     12 -
 .../lib/properties/webkitRtlOrdering.js         |     12 -
 .../cssstyle/lib/properties/webkitSvgShadow.js  |     12 -
 .../lib/properties/webkitTapHighlightColor.js   |     14 -
 .../lib/properties/webkitTextCombine.js         |     12 -
 .../properties/webkitTextDecorationsInEffect.js |     12 -
 .../lib/properties/webkitTextEmphasis.js        |     12 -
 .../lib/properties/webkitTextEmphasisColor.js   |     14 -
 .../properties/webkitTextEmphasisPosition.js    |     12 -
 .../lib/properties/webkitTextEmphasisStyle.js   |     12 -
 .../lib/properties/webkitTextFillColor.js       |     14 -
 .../lib/properties/webkitTextOrientation.js     |     12 -
 .../lib/properties/webkitTextSecurity.js        |     12 -
 .../lib/properties/webkitTextSizeAdjust.js      |     12 -
 .../cssstyle/lib/properties/webkitTextStroke.js |     12 -
 .../lib/properties/webkitTextStrokeColor.js     |     14 -
 .../lib/properties/webkitTextStrokeWidth.js     |     12 -
 .../cssstyle/lib/properties/webkitTransform.js  |     12 -
 .../lib/properties/webkitTransformOrigin.js     |     12 -
 .../lib/properties/webkitTransformOriginX.js    |     12 -
 .../lib/properties/webkitTransformOriginY.js    |     12 -
 .../lib/properties/webkitTransformOriginZ.js    |     12 -
 .../lib/properties/webkitTransformStyle.js      |     12 -
 .../cssstyle/lib/properties/webkitTransition.js |     12 -
 .../lib/properties/webkitTransitionDelay.js     |     12 -
 .../lib/properties/webkitTransitionDuration.js  |     12 -
 .../lib/properties/webkitTransitionProperty.js  |     12 -
 .../webkitTransitionTimingFunction.js           |     12 -
 .../cssstyle/lib/properties/webkitUserDrag.js   |     12 -
 .../cssstyle/lib/properties/webkitUserModify.js |     12 -
 .../cssstyle/lib/properties/webkitUserSelect.js |     12 -
 .../cssstyle/lib/properties/webkitWrap.js       |     12 -
 .../cssstyle/lib/properties/webkitWrapFlow.js   |     12 -
 .../cssstyle/lib/properties/webkitWrapMargin.js |     12 -
 .../lib/properties/webkitWrapPadding.js         |     12 -
 .../lib/properties/webkitWrapShapeInside.js     |     12 -
 .../lib/properties/webkitWrapShapeOutside.js    |     12 -
 .../lib/properties/webkitWrapThrough.js         |     12 -
 .../lib/properties/webkitWritingMode.js         |     12 -
 .../cssstyle/lib/properties/whiteSpace.js       |     12 -
 node_modules/cssstyle/lib/properties/widows.js  |     12 -
 node_modules/cssstyle/lib/properties/width.js   |     24 -
 .../cssstyle/lib/properties/wordBreak.js        |     12 -
 .../cssstyle/lib/properties/wordSpacing.js      |     12 -
 .../cssstyle/lib/properties/wordWrap.js         |     12 -
 .../cssstyle/lib/properties/writingMode.js      |     12 -
 node_modules/cssstyle/lib/properties/zIndex.js  |     12 -
 node_modules/cssstyle/lib/properties/zoom.js    |     12 -
 node_modules/cssstyle/package.json              |    110 -
 .../cssstyle/scripts/generate_properties.js     |    302 -
 node_modules/cssstyle/scripts/run_tests.sh      |      4 -
 node_modules/cssstyle/tests/tests.js            |    405 -
 node_modules/cuid/.eslintignore                 |      3 -
 node_modules/cuid/.eslintrc                     |    192 -
 node_modules/cuid/.gitattributes                |      1 -
 node_modules/cuid/.npmignore                    |      4 -
 node_modules/cuid/.travis.yml                   |     13 -
 node_modules/cuid/.zuul.yml                     |     10 -
 node_modules/cuid/CONTRIBUTING.md               |     33 -
 node_modules/cuid/LICENSE                       |      9 -
 node_modules/cuid/README.markdown               |    186 -
 node_modules/cuid/bin/env.sh.example            |      3 -
 node_modules/cuid/build/client-cuid.js          |      1 -
 node_modules/cuid/build/server-cuid.js          |    327 -
 node_modules/cuid/component.json                |     19 -
 node_modules/cuid/dist/browser-cuid.js          |    110 -
 node_modules/cuid/dist/node-cuid.js             |    105 -
 node_modules/cuid/package.json                  |    123 -
 node_modules/cuid/source/client/index.js        |      7 -
 node_modules/cuid/source/index.js               |     61 -
 node_modules/cuid/source/server/index.js        |      7 -
 node_modules/cuid/test/client/index.js          |     46 -
 node_modules/cuid/test/client/launcher.js       |     31 -
 node_modules/cuid/test/client/sauceReporter.js  |     43 -
 node_modules/cuid/test/server/index.js          |     40 -
 node_modules/cuid/webpack.config.js             |     34 -
 node_modules/dashdash/CHANGES.md                |    364 -
 node_modules/dashdash/LICENSE.txt               |     24 -
 node_modules/dashdash/README.md                 |    574 -
 .../dashdash/etc/dashdash.bash_completion.in    |    389 -
 node_modules/dashdash/lib/dashdash.js           |   1055 -
 .../dashdash/node_modules/assert-plus/AUTHORS   |      6 -
 .../node_modules/assert-plus/CHANGES.md         |     14 -
 .../dashdash/node_modules/assert-plus/README.md |    162 -
 .../dashdash/node_modules/assert-plus/assert.js |    211 -
 .../node_modules/assert-plus/package.json       |    116 -
 node_modules/dashdash/package.json              |    126 -
 node_modules/debug/.coveralls.yml               |      1 -
 node_modules/debug/.eslintrc                    |     11 -
 node_modules/debug/.npmignore                   |      8 -
 node_modules/debug/.travis.yml                  |     14 -
 node_modules/debug/CHANGELOG.md                 |    330 -
 node_modules/debug/LICENSE                      |     19 -
 node_modules/debug/Makefile                     |     50 -
 node_modules/debug/README.md                    |    312 -
 node_modules/debug/bower.json                   |     29 -
 node_modules/debug/component.json               |     19 -
 node_modules/debug/karma.conf.js                |     70 -
 node_modules/debug/node.js                      |      1 -
 node_modules/debug/package.json                 |    126 -
 node_modules/debug/src/browser.js               |    185 -
 node_modules/debug/src/debug.js                 |    202 -
 node_modules/debug/src/index.js                 |     10 -
 node_modules/debug/src/node.js                  |    241 -
 node_modules/decamelize/index.js                |     13 -
 node_modules/decamelize/license                 |     21 -
 node_modules/decamelize/package.json            |    108 -
 node_modules/decamelize/readme.md               |     48 -
 node_modules/deep-is/.npmignore                 |      1 -
 node_modules/deep-is/.travis.yml                |      6 -
 node_modules/deep-is/LICENSE                    |     22 -
 node_modules/deep-is/README.markdown            |     70 -
 node_modules/deep-is/example/cmp.js             |     11 -
 node_modules/deep-is/index.js                   |    102 -
 node_modules/deep-is/package.json               |    121 -
 node_modules/deep-is/test/NaN.js                |     16 -
 node_modules/deep-is/test/cmp.js                |     23 -
 node_modules/deep-is/test/neg-vs-pos-0.js       |     15 -
 node_modules/delayed-stream/.npmignore          |      1 -
 node_modules/delayed-stream/License             |     19 -
 node_modules/delayed-stream/Makefile            |      7 -
 node_modules/delayed-stream/Readme.md           |    141 -
 .../delayed-stream/lib/delayed_stream.js        |    107 -
 node_modules/delayed-stream/package.json        |     98 -
 node_modules/depd/History.md                    |     84 -
 node_modules/depd/LICENSE                       |     22 -
 node_modules/depd/Readme.md                     |    281 -
 node_modules/depd/index.js                      |    521 -
 node_modules/depd/lib/browser/index.js          |     79 -
 node_modules/depd/lib/compat/buffer-concat.js   |     35 -
 .../depd/lib/compat/callsite-tostring.js        |    103 -
 .../depd/lib/compat/event-listener-count.js     |     22 -
 node_modules/depd/lib/compat/index.js           |     84 -
 node_modules/depd/package.json                  |    104 -
 node_modules/destroy/LICENSE                    |     22 -
 node_modules/destroy/README.md                  |     60 -
 node_modules/destroy/index.js                   |     75 -
 node_modules/destroy/package.json               |    107 -
 node_modules/dom-serializer/LICENSE             |     11 -
 node_modules/dom-serializer/index.js            |    178 -
 .../node_modules/domelementtype/LICENSE         |     11 -
 .../node_modules/domelementtype/index.js        |     14 -
 .../node_modules/domelementtype/package.json    |     82 -
 .../node_modules/domelementtype/readme.md       |      1 -
 node_modules/dom-serializer/package.json        |    108 -
 node_modules/domelementtype/LICENSE             |     11 -
 node_modules/domelementtype/index.js            |     15 -
 node_modules/domelementtype/package.json        |     84 -
 node_modules/domelementtype/readme.md           |      1 -
 node_modules/domhandler/.travis.yml             |      7 -
 node_modules/domhandler/LICENSE                 |     11 -
 node_modules/domhandler/index.js                |    182 -
 node_modules/domhandler/lib/element.js          |     20 -
 node_modules/domhandler/lib/node.js             |     44 -
 node_modules/domhandler/package.json            |    103 -
 node_modules/domhandler/readme.md               |    105 -
 .../domhandler/test/cases/01-basic.json         |     57 -
 .../domhandler/test/cases/02-single_tag_1.json  |     21 -
 .../domhandler/test/cases/03-single_tag_2.json  |     21 -
 .../test/cases/04-unescaped_in_script.json      |     27 -
 .../test/cases/05-tags_in_comment.json          |     18 -
 .../test/cases/06-comment_in_script.json        |     18 -
 .../test/cases/07-unescaped_in_style.json       |     20 -
 .../test/cases/08-extra_spaces_in_tag.json      |     20 -
 .../test/cases/09-unquoted_attrib.json          |     20 -
 .../test/cases/10-singular_attribute.json       |     15 -
 .../test/cases/11-text_outside_tags.json        |     40 -
 .../domhandler/test/cases/12-text_only.json     |     11 -
 .../test/cases/13-comment_in_text.json          |     19 -
 .../cases/14-comment_in_text_in_script.json     |     18 -
 .../domhandler/test/cases/15-non-verbose.json   |     22 -
 .../test/cases/16-normalize_whitespace.json     |     47 -
 .../domhandler/test/cases/17-xml_namespace.json |     18 -
 .../test/cases/18-enforce_empty_tags.json       |     16 -
 .../test/cases/19-ignore_empty_tags.json        |     20 -
 .../test/cases/20-template_script_tags.json     |     20 -
 .../test/cases/21-conditional_comments.json     |     15 -
 .../test/cases/22-lowercase_tags.json           |     41 -
 .../domhandler/test/cases/23-dom-lvl1.json      |    131 -
 .../test/cases/24-with-start-indices.json       |     85 -
 node_modules/domhandler/test/tests.js           |     60 -
 node_modules/domutils/.npmignore                |      1 -
 node_modules/domutils/LICENSE                   |     11 -
 node_modules/domutils/index.js                  |     14 -
 node_modules/domutils/lib/helpers.js            |    141 -
 node_modules/domutils/lib/legacy.js             |     87 -
 node_modules/domutils/lib/manipulation.js       |     77 -
 node_modules/domutils/lib/querying.js           |     94 -
 node_modules/domutils/lib/stringify.js          |     22 -
 node_modules/domutils/lib/traversal.js          |     24 -
 node_modules/domutils/package.json              |    110 -
 node_modules/domutils/readme.md                 |      1 -
 node_modules/domutils/test/fixture.js           |      6 -
 node_modules/domutils/test/tests/helpers.js     |     89 -
 node_modules/domutils/test/tests/legacy.js      |    119 -
 node_modules/domutils/test/tests/traversal.js   |     17 -
 node_modules/domutils/test/utils.js             |      9 -
 node_modules/dtrace-provider/.gitmodules        |      3 -
 node_modules/dtrace-provider/.npmignore         |      7 -
 node_modules/dtrace-provider/CHANGES.md         |     88 -
 node_modules/dtrace-provider/LICENCE            |     21 -
 node_modules/dtrace-provider/README.md          |    194 -
 node_modules/dtrace-provider/TODO.md            |     13 -
 .../build/DTraceProviderBindings.target.mk      |    179 -
 node_modules/dtrace-provider/build/Makefile     |    347 -
 .../dtrace-provider/build/Release/.deps/..d     |      1 -
 .../.deps/Release/DTraceProviderBindings.node.d |      1 -
 .../DTraceProviderBindings/dtrace_argument.o.d  |     52 -
 .../DTraceProviderBindings/dtrace_probe.o.d     |     52 -
 .../DTraceProviderBindings/dtrace_provider.o.d  |     52 -
 .../.deps/Release/obj.target/libusdt.stamp.d    |      1 -
 .../build/Release/DTraceProviderBindings.node   |    Bin 52448 -> 0 bytes
 .../DTraceProviderBindings/dtrace_argument.o    |    Bin 152448 -> 0 bytes
 .../DTraceProviderBindings/dtrace_probe.o       |    Bin 189656 -> 0 bytes
 .../DTraceProviderBindings/dtrace_provider.o    |    Bin 209492 -> 0 bytes
 .../build/Release/obj.target/libusdt.stamp      |      0
 .../dtrace-provider/build/binding.Makefile      |      6 -
 node_modules/dtrace-provider/build/config.gypi  |    143 -
 node_modules/dtrace-provider/build/gyp-mac-tool |    611 -
 .../dtrace-provider/build/libusdt.target.mk     |     47 -
 node_modules/dtrace-provider/compile.py         |     82 -
 node_modules/dtrace-provider/dtrace-provider.js |     40 -
 node_modules/dtrace-provider/dtrace_argument.cc |     92 -
 node_modules/dtrace-provider/dtrace_probe.cc    |    105 -
 node_modules/dtrace-provider/dtrace_provider.cc |    204 -
 node_modules/dtrace-provider/dtrace_provider.h  |    102 -
 node_modules/dtrace-provider/libusdt-arch.js    |     13 -
 node_modules/dtrace-provider/libusdt-build.sh   |     34 -
 node_modules/dtrace-provider/libusdt/.npmignore |     10 -
 node_modules/dtrace-provider/libusdt/LICENCE    |     21 -
 node_modules/dtrace-provider/libusdt/Makefile   |    156 -
 node_modules/dtrace-provider/libusdt/README.md  |     77 -
 node_modules/dtrace-provider/libusdt/libusdt.a  |    Bin 18544 -> 0 bytes
 node_modules/dtrace-provider/libusdt/test.pl    |    116 -
 .../dtrace-provider/libusdt/test_mem_usage.c    |     77 -
 .../dtrace-provider/libusdt/test_usdt.c         |     87 -
 node_modules/dtrace-provider/libusdt/usdt.c     |    321 -
 node_modules/dtrace-provider/libusdt/usdt.h     |     61 -
 node_modules/dtrace-provider/libusdt/usdt.o     |    Bin 6020 -> 0 bytes
 node_modules/dtrace-provider/libusdt/usdt_dof.c |    126 -
 node_modules/dtrace-provider/libusdt/usdt_dof.o |    Bin 2200 -> 0 bytes
 .../dtrace-provider/libusdt/usdt_dof_file.c     |    290 -
 .../dtrace-provider/libusdt/usdt_dof_file.o     |    Bin 3192 -> 0 bytes
 .../dtrace-provider/libusdt/usdt_dof_sections.c |    180 -
 .../dtrace-provider/libusdt/usdt_dof_sections.o |    Bin 2736 -> 0 bytes
 .../dtrace-provider/libusdt/usdt_internal.h     |    103 -
 .../dtrace-provider/libusdt/usdt_probe.c        |    133 -
 .../dtrace-provider/libusdt/usdt_probe.o        |    Bin 1636 -> 0 bytes
 .../dtrace-provider/libusdt/usdt_tracepoints.o  |    Bin 932 -> 0 bytes
 .../libusdt/usdt_tracepoints_i386.s             |     69 -
 .../libusdt/usdt_tracepoints_x86_64.s           |    123 -
 node_modules/dtrace-provider/package.json       |    109 -
 node_modules/dtrace-provider/scripts/install.js |     68 -
 .../dtrace-provider/test/32probe-char.test.js   |     49 -
 .../dtrace-provider/test/32probe-char_fire.js   |     22 -
 .../dtrace-provider/test/32probe.test.js        |     40 -
 .../dtrace-provider/test/32probe_fire.js        |     21 -
 .../dtrace-provider/test/add-probes.test.js     |     27 -
 .../dtrace-provider/test/add-probes_fire.js     |     14 -
 .../test/args-after-cb-1.test.js                |     21 -
 .../test/args-after-cb-1_fire.js                |     10 -
 .../test/args-after-cb-2.test.js                |     21 -
 .../test/args-after-cb-2_fire.js                |     10 -
 node_modules/dtrace-provider/test/basic.test.js |     21 -
 node_modules/dtrace-provider/test/basic_fire.js |      8 -
 .../dtrace-provider/test/create-destroy.test.js |     23 -
 .../dtrace-provider/test/create-destroy_fire.js |     12 -
 .../dtrace-provider/test/disambiguation.test.js |     23 -
 .../dtrace-provider/test/disambiguation_fire.js |     37 -
 .../dtrace-provider/test/dtrace-test.js         |     30 -
 .../test/enabled-disabled.test.js               |     23 -
 .../test/enabled-disabled_fire.js               |     14 -
 .../dtrace-provider/test/enabledagain.test.js   |     35 -
 .../dtrace-provider/test/enabledagain_fire.js   |      7 -
 .../test/fewer-args-json.test.js                |     21 -
 .../test/fewer-args-json_fire.js                |      8 -
 .../dtrace-provider/test/fewer-args.test.js     |     22 -
 .../dtrace-provider/test/fewer-args_fire.js     |      8 -
 .../dtrace-provider/test/gc-provider.test.js    |     21 -
 .../dtrace-provider/test/gc-provider_fire.js    |     18 -
 node_modules/dtrace-provider/test/gc.js         |     22 -
 node_modules/dtrace-provider/test/gc.test.js    |     20 -
 node_modules/dtrace-provider/test/gc2.js        |     27 -
 node_modules/dtrace-provider/test/gc3.js        |     12 -
 node_modules/dtrace-provider/test/gc_fire.js    |     14 -
 .../dtrace-provider/test/json-args.test.js      |     27 -
 .../dtrace-provider/test/json-args_fire.js      |     12 -
 .../dtrace-provider/test/more-args.test.js      |     21 -
 .../dtrace-provider/test/more-args_fire.js      |      8 -
 .../test/multiple-json-args.test.js             |     25 -
 .../test/multiple-json-args_fire.js             |     11 -
 .../dtrace-provider/test/notenabled.test.js     |     18 -
 node_modules/dtrace-provider/wscript            |     30 -
 node_modules/ecc-jsbn/.npmignore                |     15 -
 node_modules/ecc-jsbn/LICENSE                   |     21 -
 node_modules/ecc-jsbn/README.md                 |      8 -
 node_modules/ecc-jsbn/index.js                  |     57 -
 node_modules/ecc-jsbn/lib/LICENSE-jsbn          |     40 -
 node_modules/ecc-jsbn/lib/ec.js                 |    561 -
 node_modules/ecc-jsbn/lib/sec.js                |    170 -
 node_modules/ecc-jsbn/package.json              |     91 -
 node_modules/ecc-jsbn/test.js                   |     14 -
 node_modules/ee-first/LICENSE                   |     22 -
 node_modules/ee-first/README.md                 |     80 -
 node_modules/ee-first/index.js                  |     95 -
 node_modules/ee-first/package.json              |     99 -
 node_modules/ejs/.gitmodules                    |      0
 node_modules/ejs/.npmignore                     |      4 -
 node_modules/ejs/.travis.yml                    |      7 -
 node_modules/ejs/History.md                     |    148 -
 node_modules/ejs/Makefile                       |     23 -
 node_modules/ejs/Readme.md                      |    188 -
 node_modules/ejs/benchmark.js                   |     14 -
 node_modules/ejs/ejs.js                         |    652 -
 node_modules/ejs/ejs.min.js                     |      1 -
 node_modules/ejs/examples/client.html           |     24 -
 node_modules/ejs/examples/functions.ejs         |      9 -
 node_modules/ejs/examples/functions.js          |     22 -
 node_modules/ejs/examples/list.ejs              |      7 -
 node_modules/ejs/examples/list.js               |     14 -
 node_modules/ejs/index.js                       |      2 -
 node_modules/ejs/lib/ejs.js                     |    362 -
 node_modules/ejs/lib/filters.js                 |    201 -
 node_modules/ejs/lib/utils.js                   |     24 -
 node_modules/ejs/package.json                   |     86 -
 node_modules/ejs/support/compile.js             |    177 -
 node_modules/ejs/test/ejs.js                    |    310 -
 node_modules/ejs/test/fixtures/backslash.ejs    |      1 -
 node_modules/ejs/test/fixtures/backslash.html   |      1 -
 node_modules/ejs/test/fixtures/comments.ejs     |      5 -
 node_modules/ejs/test/fixtures/comments.html    |      4 -
 node_modules/ejs/test/fixtures/double-quote.ejs |      1 -
 .../ejs/test/fixtures/double-quote.html         |      1 -
 node_modules/ejs/test/fixtures/error.ejs        |      5 -
 node_modules/ejs/test/fixtures/error.out        |      8 -
 node_modules/ejs/test/fixtures/fail.ejs         |      1 -
 node_modules/ejs/test/fixtures/include.css.ejs  |      1 -
 node_modules/ejs/test/fixtures/include.css.html |      3 -
 node_modules/ejs/test/fixtures/include.ejs      |      5 -
 node_modules/ejs/test/fixtures/include.html     |      9 -
 .../ejs/test/fixtures/includes/menu-item.ejs    |      1 -
 .../ejs/test/fixtures/includes/menu/item.ejs    |      1 -
 node_modules/ejs/test/fixtures/menu.ejs         |     11 -
 node_modules/ejs/test/fixtures/menu.html        |      3 -
 node_modules/ejs/test/fixtures/messed.ejs       |      1 -
 node_modules/ejs/test/fixtures/messed.html      |      1 -
 node_modules/ejs/test/fixtures/newlines.ejs     |      5 -
 node_modules/ejs/test/fixtures/newlines.html    |      9 -
 node_modules/ejs/test/fixtures/no.newlines.ejs  |      5 -
 node_modules/ejs/test/fixtures/no.newlines.html |      5 -
 node_modules/ejs/test/fixtures/para.ejs         |      1 -
 node_modules/ejs/test/fixtures/pet.ejs          |      1 -
 node_modules/ejs/test/fixtures/single-quote.ejs |      1 -
 .../ejs/test/fixtures/single-quote.html         |      1 -
 node_modules/ejs/test/fixtures/style.css        |      3 -
 node_modules/ejs/test/fixtures/user.ejs         |      1 -
 node_modules/encodeurl/HISTORY.md               |      9 -
 node_modules/encodeurl/LICENSE                  |     22 -
 node_modules/encodeurl/README.md                |    124 -
 node_modules/encodeurl/index.js                 |     60 -
 node_modules/encodeurl/package.json             |    112 -
 node_modules/entities/.travis.yml               |      7 -
 node_modules/entities/LICENSE                   |     11 -
 node_modules/entities/index.js                  |     33 -
 node_modules/entities/lib/decode.js             |     72 -
 node_modules/entities/lib/decode_codepoint.js   |     26 -
 node_modules/entities/lib/encode.js             |     73 -
 node_modules/entities/maps/decode.json          |      1 -
 node_modules/entities/maps/entities.json        |      1 -
 node_modules/entities/maps/legacy.json          |      1 -
 node_modules/entities/maps/xml.json             |      1 -
 node_modules/entities/package.json              |    116 -
 node_modules/entities/readme.md                 |     27 -
 node_modules/entities/test/mocha.opts           |      2 -
 node_modules/entities/test/test.js              |    168 -
 node_modules/escape-html/LICENSE                |     24 -
 node_modules/escape-html/Readme.md              |     43 -
 node_modules/escape-html/index.js               |     78 -
 node_modules/escape-html/package.json           |     94 -
 node_modules/escape-string-regexp/index.js      |     11 -
 node_modules/escape-string-regexp/license       |     21 -
 node_modules/escape-string-regexp/package.json  |    111 -
 node_modules/escape-string-regexp/readme.md     |     27 -
 node_modules/escodegen/LICENSE.BSD              |     19 -
 node_modules/escodegen/LICENSE.source-map       |     27 -
 node_modules/escodegen/README.md                |    116 -
 node_modules/escodegen/bin/escodegen.js         |     77 -
 node_modules/escodegen/bin/esgenerate.js        |     64 -
 node_modules/escodegen/escodegen.js             |   2607 -
 node_modules/escodegen/package.json             |    123 -
 node_modules/esprima/ChangeLog                  |    174 -
 node_modules/esprima/LICENSE.BSD                |     21 -
 node_modules/esprima/README.md                  |     27 -
 node_modules/esprima/bin/esparse.js             |    126 -
 node_modules/esprima/bin/esvalidate.js          |    199 -
 node_modules/esprima/esprima.js                 |   5740 -
 node_modules/esprima/package.json               |    154 -
 node_modules/estraverse/.editorconfig           |     10 -
 node_modules/estraverse/.jshintrc               |     16 -
 node_modules/estraverse/LICENSE.BSD             |     19 -
 node_modules/estraverse/README.md               |    124 -
 node_modules/estraverse/estraverse.js           |    845 -
 node_modules/estraverse/gulpfile.js             |     70 -
 node_modules/estraverse/package.json            |     96 -
 node_modules/esutils/LICENSE.BSD                |     19 -
 node_modules/esutils/README.md                  |    169 -
 node_modules/esutils/lib/ast.js                 |    144 -
 node_modules/esutils/lib/code.js                |    135 -
 node_modules/esutils/lib/keyword.js             |    165 -
 node_modules/esutils/lib/utils.js               |     33 -
 node_modules/esutils/package.json               |    106 -
 node_modules/etag/HISTORY.md                    |     78 -
 node_modules/etag/LICENSE                       |     22 -
 node_modules/etag/README.md                     |    159 -
 node_modules/etag/index.js                      |    132 -
 node_modules/etag/package.json                  |    119 -
 node_modules/expand-brackets/LICENSE            |     21 -
 node_modules/expand-brackets/README.md          |    107 -
 node_modules/expand-brackets/index.js           |    163 -
 node_modules/expand-brackets/package.json       |    137 -
 node_modules/expand-range/LICENSE               |     24 -
 node_modules/expand-range/README.md             |    145 -
 node_modules/expand-range/index.js              |     43 -
 node_modules/expand-range/package.json          |    144 -
 node_modules/extend/.eslintrc                   |    192 -
 node_modules/extend/.jscs.json                  |    104 -
 node_modules/extend/.npmignore                  |      1 -
 node_modules/extend/.travis.yml                 |     44 -
 node_modules/extend/CHANGELOG.md                |     69 -
 node_modules/extend/LICENSE                     |     23 -
 node_modules/extend/README.md                   |     62 -
 node_modules/extend/component.json              |     32 -
 node_modules/extend/index.js                    |     86 -
 node_modules/extend/package.json                |    107 -
 node_modules/extglob/LICENSE                    |     21 -
 node_modules/extglob/README.md                  |     88 -
 node_modules/extglob/index.js                   |    178 -
 node_modules/extglob/package.json               |    117 -
 node_modules/extsprintf/.gitmodules             |      6 -
 node_modules/extsprintf/LICENSE                 |     19 -
 node_modules/extsprintf/Makefile                |     23 -
 node_modules/extsprintf/Makefile.deps           |     39 -
 node_modules/extsprintf/Makefile.targ           |    285 -
 node_modules/extsprintf/README.md               |     39 -
 node_modules/extsprintf/examples/simple.js      |      2 -
 node_modules/extsprintf/jsl.node.conf           |    137 -
 node_modules/extsprintf/lib/extsprintf.js       |    166 -
 node_modules/extsprintf/package.json            |     75 -
 node_modules/fast-levenshtein/LICENSE.md        |     25 -
 node_modules/fast-levenshtein/README.md         |    104 -
 node_modules/fast-levenshtein/levenshtein.js    |    136 -
 node_modules/fast-levenshtein/package.json      |    109 -
 node_modules/filename-regex/README.md           |     51 -
 node_modules/filename-regex/index.js            |     10 -
 node_modules/filename-regex/package.json        |    101 -
 node_modules/fill-range/LICENSE                 |     21 -
 node_modules/fill-range/README.md               |    290 -
 node_modules/fill-range/index.js                |    408 -
 node_modules/fill-range/package.json            |    132 -
 node_modules/finalhandler/HISTORY.md            |    131 -
 node_modules/finalhandler/LICENSE               |     22 -
 node_modules/finalhandler/README.md             |    146 -
 node_modules/finalhandler/index.js              |    299 -
 .../node_modules/debug/.coveralls.yml           |      1 -
 .../finalhandler/node_modules/debug/.eslintrc   |     11 -
 .../finalhandler/node_modules/debug/.npmignore  |      8 -
 .../finalhandler/node_modules/debug/.travis.yml |     14 -
 .../node_modules/debug/CHANGELOG.md             |    316 -
 .../finalhandler/node_modules/debug/LICENSE     |     19 -
 .../finalhandler/node_modules/debug/Makefile    |     50 -
 .../finalhandler/node_modules/debug/README.md   |    238 -
 .../finalhandler/node_modules/debug/bower.json  |     29 -
 .../node_modules/debug/component.json           |     19 -
 .../node_modules/debug/karma.conf.js            |     70 -
 .../finalhandler/node_modules/debug/node.js     |      1 -
 .../node_modules/debug/package.json             |    125 -
 .../node_modules/debug/src/browser.js           |    182 -
 .../node_modules/debug/src/debug.js             |    202 -
 .../node_modules/debug/src/index.js             |     10 -
 .../finalhandler/node_modules/debug/src/node.js |    241 -
 node_modules/finalhandler/package.json          |    115 -
 node_modules/for-in/LICENSE                     |     21 -
 node_modules/for-in/README.md                   |     85 -
 node_modules/for-in/index.js                    |     16 -
 node_modules/for-in/package.json                |    147 -
 node_modules/for-own/LICENSE                    |     21 -
 node_modules/for-own/README.md                  |     85 -
 node_modules/for-own/index.js                   |     19 -
 node_modules/for-own/package.json               |    149 -
 node_modules/forever-agent/LICENSE              |     55 -
 node_modules/forever-agent/README.md            |      4 -
 node_modules/forever-agent/index.js             |    138 -
 node_modules/forever-agent/package.json         |     89 -
 node_modules/form-data/License                  |     19 -
 node_modules/form-data/README.md                |    217 -
 node_modules/form-data/lib/browser.js           |      2 -
 node_modules/form-data/lib/form_data.js         |    440 -
 node_modules/form-data/lib/populate.js          |     10 -
 node_modules/form-data/package.json             |    146 -
 node_modules/fresh/HISTORY.md                   |     58 -
 node_modules/fresh/LICENSE                      |     23 -
 node_modules/fresh/README.md                    |    113 -
 node_modules/fresh/index.js                     |     81 -
 node_modules/fresh/package.json                 |    120 -
 node_modules/fs.realpath/LICENSE                |     43 -
 node_modules/fs.realpath/README.md              |     33 -
 node_modules/fs.realpath/index.js               |     66 -
 node_modules/fs.realpath/old.js                 |    303 -
 node_modules/fs.realpath/package.json           |     95 -
 node_modules/fsevents/.npmignore                |      1 -
 node_modules/fsevents/.travis.yml               |    103 -
 node_modules/fsevents/ISSUE_TEMPLATE.md         |      8 -
 node_modules/fsevents/LICENSE                   |     22 -
 node_modules/fsevents/Readme.md                 |     78 -
 node_modules/fsevents/binding.gyp               |     29 -
 node_modules/fsevents/build/.target.mk          |     49 -
 node_modules/fsevents/build/Makefile            |    352 -
 .../fsevents/build/action_after_build.target.mk |     32 -
 node_modules/fsevents/build/binding.Makefile    |      6 -
 node_modules/fsevents/build/fse.target.mk       |    169 -
 node_modules/fsevents/build/gyp-mac-tool        |    612 -
 node_modules/fsevents/fsevents.cc               |    102 -
 node_modules/fsevents/fsevents.js               |    108 -
 node_modules/fsevents/install.js                |      7 -
 .../Release/node-v11-darwin-x64/fse.node        |    Bin 33384 -> 0 bytes
 .../Release/node-v46-darwin-x64/fse.node        |    Bin 34672 -> 0 bytes
 .../Release/node-v47-darwin-x64/fse.node        |    Bin 34672 -> 0 bytes
 .../Release/node-v48-darwin-x64/fse.node        |    Bin 38192 -> 0 bytes
 .../fsevents/node_modules/.bin/har-validator    |      1 -
 node_modules/fsevents/node_modules/.bin/mkdirp  |      1 -
 .../fsevents/node_modules/.bin/node-pre-gyp     |      1 -
 node_modules/fsevents/node_modules/.bin/nopt    |      1 -
 node_modules/fsevents/node_modules/.bin/rc      |      1 -
 node_modules/fsevents/node_modules/.bin/rimraf  |      1 -
 node_modules/fsevents/node_modules/.bin/semver  |      1 -
 .../fsevents/node_modules/.bin/sshpk-conv       |      1 -
 .../fsevents/node_modules/.bin/sshpk-sign       |      1 -
 .../fsevents/node_modules/.bin/sshpk-verify     |      1 -
 node_modules/fsevents/node_modules/.bin/uuid    |      1 -
 .../fsevents/node_modules/abbrev/LICENSE        |     15 -
 .../fsevents/node_modules/abbrev/README.md      |     23 -
 .../fsevents/node_modules/abbrev/abbrev.js      |     61 -
 .../fsevents/node_modules/abbrev/package.json   |     92 -
 .../fsevents/node_modules/ansi-regex/index.js   |      4 -
 .../fsevents/node_modules/ansi-regex/license    |     21 -
 .../node_modules/ansi-regex/package.json        |    132 -
 .../fsevents/node_modules/ansi-regex/readme.md  |     39 -
 .../fsevents/node_modules/ansi-styles/index.js  |     65 -
 .../fsevents/node_modules/ansi-styles/license   |     21 -
 .../node_modules/ansi-styles/package.json       |    114 -
 .../fsevents/node_modules/ansi-styles/readme.md |     86 -
 .../fsevents/node_modules/aproba/LICENSE        |     14 -
 .../fsevents/node_modules/aproba/README.md      |     89 -
 .../fsevents/node_modules/aproba/index.js       |    103 -
 .../fsevents/node_modules/aproba/package.json   |     96 -
 .../node_modules/are-we-there-yet/.npmignore    |      5 -
 .../node_modules/are-we-there-yet/CHANGES.md    |     19 -
 .../node_modules/are-we-there-yet/LICENSE       |      5 -
 .../node_modules/are-we-there-yet/README.md     |    194 -
 .../node_modules/are-we-there-yet/index.js      |      4 -
 .../node_modules/are-we-there-yet/package.json  |     90 -
 .../are-we-there-yet/test/lib/test-event.js     |     29 -
 .../are-we-there-yet/test/tracker.js            |     57 -
 .../are-we-there-yet/test/trackergroup.js       |     96 -
 .../are-we-there-yet/test/trackerstream.js      |     51 -
 .../are-we-there-yet/tracker-base.js            |     11 -
 .../are-we-there-yet/tracker-group.js           |    107 -
 .../are-we-there-yet/tracker-stream.js          |     35 -
 .../node_modules/are-we-there-yet/tracker.js    |     30 -
 .../fsevents/node_modules/asn1/.npmignore       |      2 -
 .../fsevents/node_modules/asn1/.travis.yml      |      4 -
 node_modules/fsevents/node_modules/asn1/LICENSE |     19 -
 .../fsevents/node_modules/asn1/README.md        |     50 -
 .../node_modules/asn1/lib/ber/errors.js         |     13 -
 .../fsevents/node_modules/asn1/lib/ber/index.js |     27 -
 .../node_modules/asn1/lib/ber/reader.js         |    261 -
 .../fsevents/node_modules/asn1/lib/ber/types.js |     36 -
 .../node_modules/asn1/lib/ber/writer.js         |    316 -
 .../fsevents/node_modules/asn1/lib/index.js     |     20 -
 .../fsevents/node_modules/asn1/package.json     |     98 -
 .../node_modules/asn1/tst/ber/reader.test.js    |    208 -
 .../node_modules/asn1/tst/ber/writer.test.js    |    370 -
 .../fsevents/node_modules/assert-plus/AUTHORS   |      6 -
 .../node_modules/assert-plus/CHANGES.md         |      8 -
 .../fsevents/node_modules/assert-plus/README.md |    155 -
 .../fsevents/node_modules/assert-plus/assert.js |    206 -
 .../node_modules/assert-plus/package.json       |    115 -
 .../fsevents/node_modules/asynckit/LICENSE      |     21 -
 .../fsevents/node_modules/asynckit/README.md    |    233 -
 .../fsevents/node_modules/asynckit/bench.js     |     76 -
 .../fsevents/node_modules/asynckit/index.js     |      6 -
 .../fsevents/node_modules/asynckit/lib/abort.js |     29 -
 .../fsevents/node_modules/asynckit/lib/async.js |     34 -
 .../fsevents/node_modules/asynckit/lib/defer.js |     26 -
 .../node_modules/asynckit/lib/iterate.js        |     75 -
 .../asynckit/lib/readable_asynckit.js           |     91 -
 .../asynckit/lib/readable_parallel.js           |     25 -
 .../asynckit/lib/readable_serial.js             |     25 -
 .../asynckit/lib/readable_serial_ordered.js     |     29 -
 .../fsevents/node_modules/asynckit/lib/state.js |     37 -
 .../node_modules/asynckit/lib/streamify.js      |    141 -
 .../node_modules/asynckit/lib/terminator.js     |     29 -
 .../fsevents/node_modules/asynckit/package.json |    126 -
 .../fsevents/node_modules/asynckit/parallel.js  |     43 -
 .../fsevents/node_modules/asynckit/serial.js    |     17 -
 .../node_modules/asynckit/serialOrdered.js      |     75 -
 .../fsevents/node_modules/asynckit/stream.js    |     21 -
 .../fsevents/node_modules/aws-sign2/LICENSE     |     55 -
 .../fsevents/node_modules/aws-sign2/README.md   |      4 -
 .../fsevents/node_modules/aws-sign2/index.js    |    212 -
 .../node_modules/aws-sign2/package.json         |     81 -
 .../fsevents/node_modules/aws4/.npmignore       |      4 -
 .../fsevents/node_modules/aws4/.tern-port       |      1 -
 .../fsevents/node_modules/aws4/.travis.yml      |      5 -
 node_modules/fsevents/node_modules/aws4/LICENSE |     19 -
 .../fsevents/node_modules/aws4/README.md        |    523 -
 node_modules/fsevents/node_modules/aws4/aws4.js |    332 -
 node_modules/fsevents/node_modules/aws4/lru.js  |     96 -
 .../fsevents/node_modules/aws4/package.json     |    140 -
 .../node_modules/balanced-match/.npmignore      |      5 -
 .../node_modules/balanced-match/LICENSE.md      |     21 -
 .../node_modules/balanced-match/README.md       |     91 -
 .../node_modules/balanced-match/index.js        |     58 -
 .../node_modules/balanced-match/package.json    |    110 -
 .../node_modules/bcrypt-pbkdf/README.md         |     39 -
 .../fsevents/node_modules/bcrypt-pbkdf/index.js |    556 -
 .../node_modules/bcrypt-pbkdf/package.json      |     84 -
 .../fsevents/node_modules/block-stream/LICENCE  |     25 -
 .../fsevents/node_modules/block-stream/LICENSE  |     15 -
 .../node_modules/block-stream/README.md         |     14 -
 .../node_modules/block-stream/block-stream.js   |    209 -
 .../node_modules/block-stream/package.json      |     95 -
 .../fsevents/node_modules/boom/.npmignore       |     18 -
 .../fsevents/node_modules/boom/.travis.yml      |      8 -
 .../fsevents/node_modules/boom/CONTRIBUTING.md  |      1 -
 node_modules/fsevents/node_modules/boom/LICENSE |     28 -
 .../fsevents/node_modules/boom/README.md        |    652 -
 .../fsevents/node_modules/boom/images/boom.png  |    Bin 29479 -> 0 bytes
 .../fsevents/node_modules/boom/lib/index.js     |    318 -
 .../fsevents/node_modules/boom/package.json     |     98 -
 .../fsevents/node_modules/boom/test/index.js    |    654 -
 .../node_modules/brace-expansion/README.md      |    122 -
 .../node_modules/brace-expansion/index.js       |    201 -
 .../node_modules/brace-expansion/package.json   |    112 -
 .../fsevents/node_modules/buffer-shims/index.js |    108 -
 .../node_modules/buffer-shims/license.md        |     19 -
 .../node_modules/buffer-shims/package.json      |     86 -
 .../node_modules/buffer-shims/readme.md         |     21 -
 .../fsevents/node_modules/caseless/LICENSE      |     28 -
 .../fsevents/node_modules/caseless/README.md    |     45 -
 .../fsevents/node_modules/caseless/index.js     |     66 -
 .../fsevents/node_modules/caseless/package.json |     96 -
 .../fsevents/node_modules/caseless/test.js      |     40 -
 .../fsevents/node_modules/chalk/index.js        |    116 -
 .../fsevents/node_modules/chalk/license         |     21 -
 .../fsevents/node_modules/chalk/package.json    |    140 -
 .../fsevents/node_modules/chalk/readme.md       |    213 -
 .../node_modules/code-point-at/index.js         |     32 -
 .../fsevents/node_modules/code-point-at/license |     21 -
 .../node_modules/code-point-at/package.json     |    106 -
 .../node_modules/code-point-at/readme.md        |     32 -
 .../node_modules/combined-stream/License        |     19 -
 .../node_modules/combined-stream/Readme.md      |    138 -
 .../combined-stream/lib/combined_stream.js      |    188 -
 .../node_modules/combined-stream/package.json   |    101 -
 .../fsevents/node_modules/commander/History.md  |    261 -
 .../fsevents/node_modules/commander/LICENSE     |     22 -
 .../fsevents/node_modules/commander/Readme.md   |    351 -
 .../fsevents/node_modules/commander/index.js    |   1110 -
 .../node_modules/commander/package.json         |    104 -
 .../node_modules/concat-map/.travis.yml         |      4 -
 .../fsevents/node_modules/concat-map/LICENSE    |     18 -
 .../node_modules/concat-map/README.markdown     |     62 -
 .../node_modules/concat-map/example/map.js      |      6 -
 .../fsevents/node_modules/concat-map/index.js   |     13 -
 .../node_modules/concat-map/package.json        |    117 -
 .../node_modules/concat-map/test/map.js         |     39 -
 .../console-control-strings/LICENSE             |     13 -
 .../console-control-strings/README.md           |    145 -
 .../console-control-strings/README.md~          |    140 -
 .../console-control-strings/index.js            |    125 -
 .../console-control-strings/package.json        |     96 -
 .../fsevents/node_modules/core-util-is/LICENSE  |     19 -
 .../node_modules/core-util-is/README.md         |      3 -
 .../node_modules/core-util-is/float.patch       |    604 -
 .../node_modules/core-util-is/lib/util.js       |    107 -
 .../node_modules/core-util-is/package.json      |     95 -
 .../fsevents/node_modules/core-util-is/test.js  |     68 -
 .../fsevents/node_modules/cryptiles/.npmignore  |     18 -
 .../fsevents/node_modules/cryptiles/.travis.yml |      8 -
 .../fsevents/node_modules/cryptiles/LICENSE     |     28 -
 .../fsevents/node_modules/cryptiles/README.md   |     16 -
 .../node_modules/cryptiles/lib/index.js         |     68 -
 .../node_modules/cryptiles/package.json         |     94 -
 .../node_modules/cryptiles/test/index.js        |    102 -
 .../fsevents/node_modules/dashdash/CHANGES.md   |    364 -
 .../fsevents/node_modules/dashdash/LICENSE.txt  |     24 -
 .../fsevents/node_modules/dashdash/README.md    |    574 -
 .../dashdash/etc/dashdash.bash_completion.in    |    389 -
 .../node_modules/dashdash/lib/dashdash.js       |   1055 -
 .../dashdash/node_modules/assert-plus/AUTHORS   |      6 -
 .../node_modules/assert-plus/CHANGES.md         |     14 -
 .../dashdash/node_modules/assert-plus/README.md |    162 -
 .../dashdash/node_modules/assert-plus/assert.js |    211 -
 .../node_modules/assert-plus/package.json       |    115 -
 .../fsevents/node_modules/dashdash/package.json |    125 -
 .../fsevents/node_modules/debug/.jshintrc       |      3 -
 .../fsevents/node_modules/debug/.npmignore      |      6 -
 .../fsevents/node_modules/debug/History.md      |    195 -
 .../fsevents/node_modules/debug/Makefile        |     36 -
 .../fsevents/node_modules/debug/Readme.md       |    188 -
 .../fsevents/node_modules/debug/bower.json      |     28 -
 .../fsevents/node_modules/debug/browser.js      |    168 -
 .../fsevents/node_modules/debug/component.json  |     19 -
 .../fsevents/node_modules/debug/debug.js        |    197 -
 .../fsevents/node_modules/debug/node.js         |    209 -
 .../fsevents/node_modules/debug/package.json    |    106 -
 .../node_modules/deep-extend/CHANGELOG.md       |     21 -
 .../fsevents/node_modules/deep-extend/LICENSE   |     20 -
 .../fsevents/node_modules/deep-extend/README.md |     90 -
 .../fsevents/node_modules/deep-extend/index.js  |      1 -
 .../node_modules/deep-extend/lib/deep-extend.js |    144 -
 .../node_modules/deep-extend/package.json       |    120 -
 .../node_modules/delayed-stream/.npmignore      |      1 -
 .../node_modules/delayed-stream/License         |     19 -
 .../node_modules/delayed-stream/Makefile        |      7 -
 .../node_modules/delayed-stream/Readme.md       |    141 -
 .../delayed-stream/lib/delayed_stream.js        |    107 -
 .../node_modules/delayed-stream/package.json    |     97 -
 .../fsevents/node_modules/delegates/.npmignore  |      1 -
 .../fsevents/node_modules/delegates/History.md  |     22 -
 .../fsevents/node_modules/delegates/License     |     20 -
 .../fsevents/node_modules/delegates/Makefile    |      8 -
 .../fsevents/node_modules/delegates/Readme.md   |     94 -
 .../fsevents/node_modules/delegates/index.js    |    121 -
 .../node_modules/delegates/package.json         |     84 -
 .../node_modules/delegates/test/index.js        |     94 -
 .../fsevents/node_modules/ecc-jsbn/.npmignore   |     15 -
 .../fsevents/node_modules/ecc-jsbn/LICENSE      |     21 -
 .../fsevents/node_modules/ecc-jsbn/README.md    |      8 -
 .../fsevents/node_modules/ecc-jsbn/index.js     |     57 -
 .../node_modules/ecc-jsbn/lib/LICENSE-jsbn      |     40 -
 .../fsevents/node_modules/ecc-jsbn/lib/ec.js    |    561 -
 .../fsevents/node_modules/ecc-jsbn/lib/sec.js   |    170 -
 .../fsevents/node_modules/ecc-jsbn/package.json |     90 -
 .../fsevents/node_modules/ecc-jsbn/test.js      |     14 -
 .../node_modules/escape-string-regexp/index.js  |     11 -
 .../node_modules/escape-string-regexp/license   |     21 -
 .../escape-string-regexp/package.json           |    109 -
 .../node_modules/escape-string-regexp/readme.md |     27 -
 .../fsevents/node_modules/extend/.eslintrc      |    192 -
 .../fsevents/node_modules/extend/.jscs.json     |    104 -
 .../fsevents/node_modules/extend/.npmignore     |      1 -
 .../fsevents/node_modules/extend/.travis.yml    |     44 -
 .../fsevents/node_modules/extend/CHANGELOG.md   |     69 -
 .../fsevents/node_modules/extend/LICENSE        |     23 -
 .../fsevents/node_modules/extend/README.md      |     62 -
 .../fsevents/node_modules/extend/component.json |     32 -
 .../fsevents/node_modules/extend/index.js       |     86 -
 .../fsevents/node_modules/extend/package.json   |    106 -
 .../node_modules/extsprintf/.gitmodules         |      6 -
 .../fsevents/node_modules/extsprintf/LICENSE    |     19 -
 .../fsevents/node_modules/extsprintf/Makefile   |     23 -
 .../node_modules/extsprintf/Makefile.deps       |     39 -
 .../node_modules/extsprintf/Makefile.targ       |    285 -
 .../fsevents/node_modules/extsprintf/README.md  |     39 -
 .../node_modules/extsprintf/examples/simple.js  |      2 -
 .../node_modules/extsprintf/jsl.node.conf       |    137 -
 .../node_modules/extsprintf/lib/extsprintf.js   |    166 -
 .../node_modules/extsprintf/package.json        |     74 -
 .../fsevents/node_modules/forever-agent/LICENSE |     55 -
 .../node_modules/forever-agent/README.md        |      4 -
 .../node_modules/forever-agent/index.js         |    138 -
 .../node_modules/forever-agent/package.json     |     88 -
 .../fsevents/node_modules/form-data/License     |     19 -
 .../fsevents/node_modules/form-data/README.md   |    217 -
 .../node_modules/form-data/lib/browser.js       |      2 -
 .../node_modules/form-data/lib/form_data.js     |    440 -
 .../node_modules/form-data/lib/populate.js      |     10 -
 .../node_modules/form-data/package.json         |    145 -
 .../fsevents/node_modules/fs.realpath/LICENSE   |     43 -
 .../fsevents/node_modules/fs.realpath/README.md |     33 -
 .../fsevents/node_modules/fs.realpath/index.js  |     66 -
 .../fsevents/node_modules/fs.realpath/old.js    |    303 -
 .../node_modules/fs.realpath/package.json       |     94 -
 .../node_modules/fstream-ignore/LICENSE         |     15 -
 .../node_modules/fstream-ignore/README.md       |     22 -
 .../node_modules/fstream-ignore/ignore.js       |    275 -
 .../node_modules/fstream-ignore/package.json    |    104 -
 .../fsevents/node_modules/fstream/.npmignore    |      5 -
 .../fsevents/node_modules/fstream/.travis.yml   |      9 -
 .../fsevents/node_modules/fstream/LICENSE       |     15 -
 .../fsevents/node_modules/fstream/README.md     |     76 -
 .../fstream/examples/filter-pipe.js             |    134 -
 .../node_modules/fstream/examples/pipe.js       |    118 -
 .../node_modules/fstream/examples/reader.js     |     68 -
 .../fstream/examples/symlink-write.js           |     27 -
 .../fsevents/node_modules/fstream/fstream.js    |     35 -
 .../node_modules/fstream/lib/abstract.js        |     85 -
 .../node_modules/fstream/lib/collect.js         |     70 -
 .../node_modules/fstream/lib/dir-reader.js      |    252 -
 .../node_modules/fstream/lib/dir-writer.js      |    174 -
 .../node_modules/fstream/lib/file-reader.js     |    150 -
 .../node_modules/fstream/lib/file-writer.js     |    107 -
 .../node_modules/fstream/lib/get-type.js        |     33 -
 .../node_modules/fstream/lib/link-reader.js     |     53 -
 .../node_modules/fstream/lib/link-writer.js     |     95 -
 .../node_modules/fstream/lib/proxy-reader.js    |     95 -
 .../node_modules/fstream/lib/proxy-writer.js    |    111 -
 .../fsevents/node_modules/fstream/lib/reader.js |    255 -
 .../node_modules/fstream/lib/socket-reader.js   |     36 -
 .../fsevents/node_modules/fstream/lib/writer.js |    390 -
 .../fsevents/node_modules/fstream/package.json  |    110 -
 .../fsevents/node_modules/gauge/CHANGELOG.md    |    155 -
 .../fsevents/node_modules/gauge/LICENSE         |     13 -
 .../fsevents/node_modules/gauge/README.md       |    399 -
 .../fsevents/node_modules/gauge/base-theme.js   |     14 -
 .../fsevents/node_modules/gauge/error.js        |     24 -
 .../fsevents/node_modules/gauge/has-color.js    |     12 -
 .../fsevents/node_modules/gauge/index.js        |    233 -
 .../fsevents/node_modules/gauge/package.json    |    126 -
 .../fsevents/node_modules/gauge/plumbing.js     |     47 -
 .../fsevents/node_modules/gauge/process.js      |      3 -
 .../fsevents/node_modules/gauge/progress-bar.js |     35 -
 .../node_modules/gauge/render-template.js       |    181 -
 .../node_modules/gauge/set-immediate.js         |      7 -
 .../fsevents/node_modules/gauge/set-interval.js |      3 -
 .../fsevents/node_modules/gauge/spin.js         |      5 -
 .../node_modules/gauge/template-item.js         |     73 -
 .../fsevents/node_modules/gauge/theme-set.js    |    115 -
 .../fsevents/node_modules/gauge/themes.js       |     54 -
 .../node_modules/gauge/wide-truncate.js         |     25 -
 .../node_modules/generate-function/.npmignore   |      1 -
 .../node_modules/generate-function/.travis.yml  |      3 -
 .../node_modules/generate-function/README.md    |     72 -
 .../node_modules/generate-function/example.js   |     27 -
 .../node_modules/generate-function/index.js     |     61 -
 .../node_modules/generate-function/package.json |     87 -
 .../node_modules/generate-function/test.js      |     33 -
 .../generate-object-property/.npmignore         |      1 -
 .../generate-object-property/.travis.yml        |      3 -
 .../generate-object-property/LICENSE            |     21 -
 .../generate-object-property/README.md          |     19 -
 .../generate-object-property/index.js           |     12 -
 .../generate-object-property/package.json       |     84 -
 .../generate-object-property/test.js            |     12 -
 .../fsevents/node_modules/getpass/.npmignore    |      8 -
 .../fsevents/node_modules/getpass/.travis.yml   |      9 -
 .../fsevents/node_modules/getpass/LICENSE       |     18 -
 .../fsevents/node_modules/getpass/README.md     |     32 -
 .../fsevents/node_modules/getpass/lib/index.js  |    123 -
 .../getpass/node_modules/assert-plus/AUTHORS    |      6 -
 .../getpass/node_modules/assert-plus/CHANGES.md |     14 -
 .../getpass/node_modules/assert-plus/README.md  |    162 -
 .../getpass/node_modules/assert-plus/assert.js  |    211 -
 .../node_modules/assert-plus/package.json       |    115 -
 .../fsevents/node_modules/getpass/package.json  |     90 -
 node_modules/fsevents/node_modules/glob/LICENSE |     15 -
 .../fsevents/node_modules/glob/README.md        |    368 -
 .../fsevents/node_modules/glob/changelog.md     |     67 -
 .../fsevents/node_modules/glob/common.js        |    240 -
 node_modules/fsevents/node_modules/glob/glob.js |    792 -
 .../fsevents/node_modules/glob/package.json     |    111 -
 node_modules/fsevents/node_modules/glob/sync.js |    486 -
 .../fsevents/node_modules/graceful-fs/LICENSE   |     15 -
 .../fsevents/node_modules/graceful-fs/README.md |    133 -
 .../fsevents/node_modules/graceful-fs/fs.js     |     21 -
 .../node_modules/graceful-fs/graceful-fs.js     |    262 -
 .../node_modules/graceful-fs/legacy-streams.js  |    118 -
 .../node_modules/graceful-fs/package.json       |    111 -
 .../node_modules/graceful-fs/polyfills.js       |    330 -
 .../node_modules/graceful-readlink/.npmignore   |      3 -
 .../node_modules/graceful-readlink/.travis.yml  |      5 -
 .../node_modules/graceful-readlink/LICENSE      |     22 -
 .../node_modules/graceful-readlink/README.md    |     17 -
 .../node_modules/graceful-readlink/index.js     |     12 -
 .../node_modules/graceful-readlink/package.json |     83 -
 .../fsevents/node_modules/har-validator/LICENSE |     13 -
 .../node_modules/har-validator/README.md        |    309 -
 .../har-validator/bin/har-validator             |     56 -
 .../node_modules/har-validator/lib/async.js     |     14 -
 .../node_modules/har-validator/lib/error.js     |     10 -
 .../node_modules/har-validator/lib/index.js     |     22 -
 .../node_modules/har-validator/lib/runner.js    |     29 -
 .../har-validator/lib/schemas/cache.json        |     13 -
 .../har-validator/lib/schemas/cacheEntry.json   |     31 -
 .../har-validator/lib/schemas/content.json      |     27 -
 .../har-validator/lib/schemas/cookie.json       |     34 -
 .../har-validator/lib/schemas/creator.json      |     18 -
 .../har-validator/lib/schemas/entry.json        |     51 -
 .../har-validator/lib/schemas/har.json          |     11 -
 .../har-validator/lib/schemas/index.js          |     49 -
 .../har-validator/lib/schemas/log.json          |     34 -
 .../har-validator/lib/schemas/page.json         |     30 -
 .../har-validator/lib/schemas/pageTimings.json  |     16 -
 .../har-validator/lib/schemas/postData.json     |     41 -
 .../har-validator/lib/schemas/record.json       |     18 -
 .../har-validator/lib/schemas/request.json      |     55 -
 .../har-validator/lib/schemas/response.json     |     52 -
 .../har-validator/lib/schemas/timings.json      |     40 -
 .../node_modules/har-validator/package.json     |    120 -
 .../fsevents/node_modules/has-ansi/index.js     |      4 -
 .../fsevents/node_modules/has-ansi/license      |     21 -
 .../fsevents/node_modules/has-ansi/package.json |    118 -
 .../fsevents/node_modules/has-ansi/readme.md    |     36 -
 .../fsevents/node_modules/has-unicode/LICENSE   |     14 -
 .../fsevents/node_modules/has-unicode/README.md |     43 -
 .../fsevents/node_modules/has-unicode/index.js  |     16 -
 .../node_modules/has-unicode/package.json       |     94 -
 .../fsevents/node_modules/hawk/.npmignore       |     20 -
 .../fsevents/node_modules/hawk/.travis.yml      |      5 -
 node_modules/fsevents/node_modules/hawk/LICENSE |     28 -
 .../fsevents/node_modules/hawk/README.md        |    634 -
 .../fsevents/node_modules/hawk/bower.json       |     24 -
 .../fsevents/node_modules/hawk/component.json   |     19 -
 .../fsevents/node_modules/hawk/dist/client.js   |    343 -
 .../fsevents/node_modules/hawk/example/usage.js |     78 -
 .../fsevents/node_modules/hawk/images/hawk.png  |    Bin 6945 -> 0 bytes
 .../fsevents/node_modules/hawk/images/logo.png  |    Bin 71732 -> 0 bytes
 .../fsevents/node_modules/hawk/lib/browser.js   |    637 -
 .../fsevents/node_modules/hawk/lib/client.js    |    369 -
 .../fsevents/node_modules/hawk/lib/crypto.js    |    126 -
 .../fsevents/node_modules/hawk/lib/index.js     |     15 -
 .../fsevents/node_modules/hawk/lib/server.js    |    548 -
 .../fsevents/node_modules/hawk/lib/utils.js     |    184 -
 .../fsevents/node_modules/hawk/package.json     |    101 -
 .../fsevents/node_modules/hawk/test/browser.js  |   1492 -
 .../fsevents/node_modules/hawk/test/client.js   |    440 -
 .../fsevents/node_modules/hawk/test/crypto.js   |     70 -
 .../fsevents/node_modules/hawk/test/index.js    |    378 -
 .../fsevents/node_modules/hawk/test/readme.js   |     95 -
 .../fsevents/node_modules/hawk/test/server.js   |   1329 -
 .../fsevents/node_modules/hawk/test/uri.js      |    838 -
 .../fsevents/node_modules/hawk/test/utils.js    |    149 -
 .../fsevents/node_modules/hoek/.npmignore       |     18 -
 .../fsevents/node_modules/hoek/.travis.yml      |      7 -
 .../fsevents/node_modules/hoek/CONTRIBUTING.md  |      1 -
 node_modules/fsevents/node_modules/hoek/LICENSE |     31 -
 .../fsevents/node_modules/hoek/README.md        |    584 -
 .../fsevents/node_modules/hoek/images/hoek.png  |    Bin 37939 -> 0 bytes
 .../fsevents/node_modules/hoek/lib/escape.js    |    132 -
 .../fsevents/node_modules/hoek/lib/index.js     |    993 -
 .../fsevents/node_modules/hoek/package.json     |     96 -
 .../fsevents/node_modules/hoek/test/escaper.js  |     88 -
 .../fsevents/node_modules/hoek/test/index.js    |   2513 -
 .../node_modules/hoek/test/modules/ignore.txt   |      0
 .../node_modules/hoek/test/modules/test1.js     |      1 -
 .../node_modules/hoek/test/modules/test2.js     |      1 -
 .../node_modules/hoek/test/modules/test3.js     |      1 -
 .../node_modules/http-signature/.dir-locals.el  |      6 -
 .../node_modules/http-signature/.npmignore      |      7 -
 .../node_modules/http-signature/CHANGES.md      |     46 -
 .../node_modules/http-signature/LICENSE         |     18 -
 .../node_modules/http-signature/README.md       |     79 -
 .../node_modules/http-signature/http_signing.md |    363 -
 .../node_modules/http-signature/lib/index.js    |     29 -
 .../node_modules/http-signature/lib/parser.js   |    318 -
 .../node_modules/http-signature/lib/signer.js   |    399 -
 .../node_modules/http-signature/lib/utils.js    |    112 -
 .../node_modules/http-signature/lib/verify.js   |     88 -
 .../node_modules/http-signature/package.json    |    116 -
 .../fsevents/node_modules/inflight/LICENSE      |     15 -
 .../fsevents/node_modules/inflight/README.md    |     37 -
 .../fsevents/node_modules/inflight/inflight.js  |     54 -
 .../fsevents/node_modules/inflight/package.json |    105 -
 .../fsevents/node_modules/inherits/LICENSE      |     16 -
 .../fsevents/node_modules/inherits/README.md    |     42 -
 .../fsevents/node_modules/inherits/inherits.js  |      7 -
 .../node_modules/inherits/inherits_browser.js   |     23 -
 .../fsevents/node_modules/inherits/package.json |    103 -
 node_modules/fsevents/node_modules/ini/LICENSE  |     15 -
 .../fsevents/node_modules/ini/README.md         |    102 -
 node_modules/fsevents/node_modules/ini/ini.js   |    190 -
 .../fsevents/node_modules/ini/package.json      |     89 -
 .../is-fullwidth-code-point/index.js            |     46 -
 .../is-fullwidth-code-point/license             |     21 -
 .../is-fullwidth-code-point/package.json        |    108 -
 .../is-fullwidth-code-point/readme.md           |     39 -
 .../node_modules/is-my-json-valid/.npmignore    |      2 -
 .../node_modules/is-my-json-valid/.travis.yml   |      3 -
 .../node_modules/is-my-json-valid/LICENSE       |     21 -
 .../node_modules/is-my-json-valid/README.md     |    173 -
 .../node_modules/is-my-json-valid/example.js    |     18 -
 .../node_modules/is-my-json-valid/formats.js    |     14 -
 .../node_modules/is-my-json-valid/index.js      |    594 -
 .../node_modules/is-my-json-valid/package.json  |    116 -
 .../node_modules/is-my-json-valid/require.js    |     12 -
 .../is-my-json-valid/test/fixtures/cosmic.js    |     84 -
 .../json-schema-draft4/additionalItems.json     |     82 -
 .../additionalProperties.json                   |     88 -
 .../test/json-schema-draft4/allOf.json          |    112 -
 .../test/json-schema-draft4/anyOf.json          |     68 -
 .../test/json-schema-draft4/bignum.json         |    107 -
 .../test/json-schema-draft4/default.json        |     49 -
 .../test/json-schema-draft4/definitions.json    |     32 -
 .../test/json-schema-draft4/dependencies.json   |    113 -
 .../test/json-schema-draft4/enum.json           |     72 -
 .../test/json-schema-draft4/format.json         |    143 -
 .../test/json-schema-draft4/items.json          |     46 -
 .../test/json-schema-draft4/maxItems.json       |     28 -
 .../test/json-schema-draft4/maxLength.json      |     28 -
 .../test/json-schema-draft4/maxProperties.json  |     28 -
 .../test/json-schema-draft4/maximum.json        |     42 -
 .../test/json-schema-draft4/minItems.json       |     28 -
 .../test/json-schema-draft4/minLength.json      |     28 -
 .../test/json-schema-draft4/minProperties.json  |     28 -
 .../test/json-schema-draft4/minimum.json        |     42 -
 .../test/json-schema-draft4/multipleOf.json     |     96 -
 .../test/json-schema-draft4/not.json            |     96 -
 .../test/json-schema-draft4/nullAndFormat.json  |     18 -
 .../test/json-schema-draft4/nullAndObject.json  |     18 -
 .../test/json-schema-draft4/oneOf.json          |     68 -
 .../test/json-schema-draft4/pattern.json        |     23 -
 .../json-schema-draft4/patternProperties.json   |    110 -
 .../test/json-schema-draft4/properties.json     |     92 -
 .../test/json-schema-draft4/ref.json            |    128 -
 .../test/json-schema-draft4/refRemote.json      |     74 -
 .../test/json-schema-draft4/required.json       |     39 -
 .../test/json-schema-draft4/type.json           |    330 -
 .../test/json-schema-draft4/uniqueItems.json    |     79 -
 .../is-my-json-valid/test/json-schema.js        |     23 -
 .../node_modules/is-my-json-valid/test/misc.js  |    471 -
 .../node_modules/is-property/.npmignore         |     17 -
 .../fsevents/node_modules/is-property/LICENSE   |     22 -
 .../fsevents/node_modules/is-property/README.md |     28 -
 .../node_modules/is-property/is-property.js     |      5 -
 .../node_modules/is-property/package.json       |     92 -
 .../node_modules/is-typedarray/LICENSE.md       |     18 -
 .../node_modules/is-typedarray/README.md        |     16 -
 .../node_modules/is-typedarray/index.js         |     41 -
 .../node_modules/is-typedarray/package.json     |     90 -
 .../fsevents/node_modules/is-typedarray/test.js |     34 -
 .../fsevents/node_modules/isarray/.npmignore    |      1 -
 .../fsevents/node_modules/isarray/.travis.yml   |      4 -
 .../fsevents/node_modules/isarray/Makefile      |      6 -
 .../fsevents/node_modules/isarray/README.md     |     60 -
 .../node_modules/isarray/component.json         |     19 -
 .../fsevents/node_modules/isarray/index.js      |      5 -
 .../fsevents/node_modules/isarray/package.json  |    105 -
 .../fsevents/node_modules/isarray/test.js       |     20 -
 .../fsevents/node_modules/isstream/.jshintrc    |     59 -
 .../fsevents/node_modules/isstream/.npmignore   |      1 -
 .../fsevents/node_modules/isstream/.travis.yml  |     12 -
 .../fsevents/node_modules/isstream/LICENSE.md   |     11 -
 .../fsevents/node_modules/isstream/README.md    |     66 -
 .../fsevents/node_modules/isstream/isstream.js  |     27 -
 .../fsevents/node_modules/isstream/package.json |     93 -
 .../fsevents/node_modules/isstream/test.js      |    168 -
 .../fsevents/node_modules/jodid25519/.npmignore |     11 -
 .../node_modules/jodid25519/.travis.yml         |      7 -
 .../fsevents/node_modules/jodid25519/AUTHORS.md |      3 -
 .../fsevents/node_modules/jodid25519/LICENSE    |     23 -
 .../fsevents/node_modules/jodid25519/README.md  |     51 -
 .../fsevents/node_modules/jodid25519/almond.0   |     42 -
 .../fsevents/node_modules/jodid25519/almond.1   |     13 -
 .../fsevents/node_modules/jodid25519/index.js   |     35 -
 .../fsevents/node_modules/jodid25519/jsdoc.json |     19 -
 .../node_modules/jodid25519/lib/core.js         |    481 -
 .../node_modules/jodid25519/lib/curve255.js     |    221 -
 .../fsevents/node_modules/jodid25519/lib/dh.js  |    111 -
 .../node_modules/jodid25519/lib/eddsa.js        |    573 -
 .../node_modules/jodid25519/lib/utils.js        |    198 -
 .../node_modules/jodid25519/package.json        |    104 -
 .../fsevents/node_modules/jsbn/.npmignore       |      2 -
 node_modules/fsevents/node_modules/jsbn/LICENSE |     40 -
 .../fsevents/node_modules/jsbn/README.md        |    175 -
 .../fsevents/node_modules/jsbn/example.html     |     12 -
 .../fsevents/node_modules/jsbn/example.js       |      3 -
 .../fsevents/node_modules/jsbn/index.js         |   1357 -
 .../fsevents/node_modules/jsbn/package.json     |     91 -
 .../fsevents/node_modules/json-schema/README.md |      5 -
 .../json-schema/draft-00/hyper-schema           |     68 -
 .../node_modules/json-schema/draft-00/json-ref  |     26 -
 .../node_modules/json-schema/draft-00/links     |     33 -
 .../node_modules/json-schema/draft-00/schema    |    155 -
 .../json-schema/draft-01/hyper-schema           |     68 -
 .../node_modules/json-schema/draft-01/json-ref  |     26 -
 .../node_modules/json-schema/draft-01/links     |     33 -
 .../node_modules/json-schema/draft-01/schema    |    155 -
 .../json-schema/draft-02/hyper-schema           |     68 -
 .../node_modules/json-schema/draft-02/json-ref  |     26 -
 .../node_modules/json-schema/draft-02/links     |     35 -
 .../node_modules/json-schema/draft-02/schema    |    166 -
 .../json-schema/draft-03/examples/address       |     20 -
 .../json-schema/draft-03/examples/calendar      |     53 -
 .../json-schema/draft-03/examples/card          |    105 -
 .../json-schema/draft-03/examples/geo           |      8 -
 .../json-schema/draft-03/examples/interfaces    |     23 -
 .../json-schema/draft-03/hyper-schema           |     60 -
 .../node_modules/json-schema/draft-03/json-ref  |     26 -
 .../node_modules/json-schema/draft-03/links     |     35 -
 .../node_modules/json-schema/draft-03/schema    |    174 -
 .../json-schema/draft-04/hyper-schema           |     60 -
 .../node_modules/json-schema/draft-04/links     |     41 -
 .../node_modules/json-schema/draft-04/schema    |    189 -
 .../json-schema/draft-zyp-json-schema-03.xml    |   1120 -
 .../json-schema/draft-zyp-json-schema-04.xml    |   1072 -
 .../node_modules/json-schema/lib/links.js       |     66 -
 .../node_modules/json-schema/lib/validate.js    |    273 -
 .../node_modules/json-schema/package.json       |    100 -
 .../node_modules/json-schema/test/tests.js      |     95 -
 .../node_modules/json-stringify-safe/.npmignore |      1 -
 .../json-stringify-safe/CHANGELOG.md            |     14 -
 .../node_modules/json-stringify-safe/LICENSE    |     15 -
 .../node_modules/json-stringify-safe/Makefile   |     35 -
 .../node_modules/json-stringify-safe/README.md  |     52 -
 .../json-stringify-safe/package.json            |    102 -
 .../json-stringify-safe/stringify.js            |     27 -
 .../json-stringify-safe/test/mocha.opts         |      2 -
 .../json-stringify-safe/test/stringify_test.js  |    246 -
 .../node_modules/jsonpointer/LICENSE.md         |     21 -
 .../fsevents/node_modules/jsonpointer/README.md |     39 -
 .../node_modules/jsonpointer/jsonpointer.js     |     93 -
 .../node_modules/jsonpointer/package.json       |    112 -
 .../fsevents/node_modules/jsprim/CHANGES.md     |     39 -
 .../fsevents/node_modules/jsprim/LICENSE        |     19 -
 .../fsevents/node_modules/jsprim/README.md      |    237 -
 .../fsevents/node_modules/jsprim/lib/jsprim.js  |    488 -
 .../fsevents/node_modules/jsprim/package.json   |     85 -
 .../fsevents/node_modules/mime-db/HISTORY.md    |    391 -
 .../fsevents/node_modules/mime-db/LICENSE       |     22 -
 .../fsevents/node_modules/mime-db/README.md     |     82 -
 .../fsevents/node_modules/mime-db/db.json       |   6751 -
 .../fsevents/node_modules/mime-db/index.js      |     11 -
 .../fsevents/node_modules/mime-db/package.json  |    138 -
 .../fsevents/node_modules/mime-types/HISTORY.md |    216 -
 .../fsevents/node_modules/mime-types/LICENSE    |     23 -
 .../fsevents/node_modules/mime-types/README.md  |    103 -
 .../fsevents/node_modules/mime-types/index.js   |    188 -
 .../node_modules/mime-types/package.json        |    128 -
 .../fsevents/node_modules/minimatch/LICENSE     |     15 -
 .../fsevents/node_modules/minimatch/README.md   |    209 -
 .../node_modules/minimatch/minimatch.js         |    923 -
 .../node_modules/minimatch/package.json         |     98 -
 .../fsevents/node_modules/minimist/.travis.yml  |      4 -
 .../fsevents/node_modules/minimist/LICENSE      |     18 -
 .../node_modules/minimist/example/parse.js      |      2 -
 .../fsevents/node_modules/minimist/index.js     |    187 -
 .../fsevents/node_modules/minimist/package.json |    101 -
 .../node_modules/minimist/readme.markdown       |     73 -
 .../fsevents/node_modules/minimist/test/dash.js |     24 -
 .../node_modules/minimist/test/default_bool.js  |     20 -
 .../node_modules/minimist/test/dotted.js        |     16 -
 .../fsevents/node_modules/minimist/test/long.js |     31 -
 .../node_modules/minimist/test/parse.js         |    318 -
 .../minimist/test/parse_modified.js             |      9 -
 .../node_modules/minimist/test/short.js         |     67 -
 .../node_modules/minimist/test/whitespace.js    |      8 -
 .../fsevents/node_modules/mkdirp/.travis.yml    |      8 -
 .../fsevents/node_modules/mkdirp/LICENSE        |     21 -
 .../fsevents/node_modules/mkdirp/bin/cmd.js     |     33 -
 .../fsevents/node_modules/mkdirp/bin/usage.txt  |     12 -
 .../node_modules/mkdirp/examples/pow.js         |      6 -
 .../fsevents/node_modules/mkdirp/index.js       |     98 -
 .../fsevents/node_modules/mkdirp/package.json   |     94 -
 .../node_modules/mkdirp/readme.markdown         |    100 -
 .../fsevents/node_modules/mkdirp/test/chmod.js  |     41 -
 .../node_modules/mkdirp/test/clobber.js         |     38 -
 .../fsevents/node_modules/mkdirp/test/mkdirp.js |     28 -
 .../node_modules/mkdirp/test/opts_fs.js         |     29 -
 .../node_modules/mkdirp/test/opts_fs_sync.js    |     27 -
 .../fsevents/node_modules/mkdirp/test/perm.js   |     32 -
 .../node_modules/mkdirp/test/perm_sync.js       |     36 -
 .../fsevents/node_modules/mkdirp/test/race.js   |     37 -
 .../fsevents/node_modules/mkdirp/test/rel.js    |     32 -
 .../fsevents/node_modules/mkdirp/test/return.js |     25 -
 .../node_modules/mkdirp/test/return_sync.js     |     24 -
 .../fsevents/node_modules/mkdirp/test/root.js   |     19 -
 .../fsevents/node_modules/mkdirp/test/sync.js   |     32 -
 .../fsevents/node_modules/mkdirp/test/umask.js  |     28 -
 .../node_modules/mkdirp/test/umask_sync.js      |     32 -
 .../fsevents/node_modules/ms/.npmignore         |      5 -
 .../fsevents/node_modules/ms/History.md         |     66 -
 node_modules/fsevents/node_modules/ms/LICENSE   |     20 -
 node_modules/fsevents/node_modules/ms/README.md |     35 -
 node_modules/fsevents/node_modules/ms/index.js  |    125 -
 .../fsevents/node_modules/ms/package.json       |     82 -
 .../node_modules/node-pre-gyp/CHANGELOG.md      |    343 -
 .../fsevents/node_modules/node-pre-gyp/LICENSE  |     27 -
 .../node_modules/node-pre-gyp/README.md         |    574 -
 .../node_modules/node-pre-gyp/appveyor.yml      |     40 -
 .../node_modules/node-pre-gyp/bin/node-pre-gyp  |    131 -
 .../node-pre-gyp/bin/node-pre-gyp.cmd           |      2 -
 .../node_modules/node-pre-gyp/lib/build.js      |     43 -
 .../node_modules/node-pre-gyp/lib/clean.js      |     23 -
 .../node_modules/node-pre-gyp/lib/configure.js  |     48 -
 .../node_modules/node-pre-gyp/lib/info.js       |     40 -
 .../node_modules/node-pre-gyp/lib/install.js    |    239 -
 .../node-pre-gyp/lib/node-pre-gyp.js            |    194 -
 .../node_modules/node-pre-gyp/lib/package.js    |     46 -
 .../node-pre-gyp/lib/pre-binding.js             |     25 -
 .../node_modules/node-pre-gyp/lib/publish.js    |     77 -
 .../node_modules/node-pre-gyp/lib/rebuild.js    |     13 -
 .../node_modules/node-pre-gyp/lib/reinstall.js  |     13 -
 .../node_modules/node-pre-gyp/lib/reveal.js     |     31 -
 .../node_modules/node-pre-gyp/lib/testbinary.js |     73 -
 .../node-pre-gyp/lib/testpackage.js             |     49 -
 .../node_modules/node-pre-gyp/lib/unpublish.js  |     41 -
 .../node-pre-gyp/lib/util/abi_crosswalk.json    |   1414 -
 .../node-pre-gyp/lib/util/compile.js            |     87 -
 .../node-pre-gyp/lib/util/handle_gyp_opts.js    |     94 -
 .../node-pre-gyp/lib/util/nw-pre-gyp/index.html |     26 -
 .../lib/util/nw-pre-gyp/package.json            |      9 -
 .../node-pre-gyp/lib/util/s3_setup.js           |     27 -
 .../node-pre-gyp/lib/util/versioning.js         |    308 -
 .../node_modules/node-pre-gyp/package.json      |    133 -
 .../fsevents/node_modules/nopt/.npmignore       |      1 -
 .../fsevents/node_modules/nopt/.travis.yml      |      9 -
 node_modules/fsevents/node_modules/nopt/LICENSE |     15 -
 .../fsevents/node_modules/nopt/README.md        |    211 -
 .../fsevents/node_modules/nopt/bin/nopt.js      |     54 -
 .../node_modules/nopt/examples/my-program.js    |     30 -
 .../fsevents/node_modules/nopt/lib/nopt.js      |    415 -
 .../fsevents/node_modules/nopt/package.json     |     96 -
 .../fsevents/node_modules/nopt/test/basic.js    |    273 -
 .../fsevents/node_modules/npmlog/CHANGELOG.md   |     45 -
 .../fsevents/node_modules/npmlog/LICENSE        |     15 -
 .../fsevents/node_modules/npmlog/README.md      |    216 -
 .../fsevents/node_modules/npmlog/log.js         |    302 -
 .../fsevents/node_modules/npmlog/package.json   |    108 -
 .../node_modules/number-is-nan/index.js         |      4 -
 .../fsevents/node_modules/number-is-nan/license |     21 -
 .../node_modules/number-is-nan/package.json     |    103 -
 .../node_modules/number-is-nan/readme.md        |     28 -
 .../fsevents/node_modules/oauth-sign/LICENSE    |     55 -
 .../fsevents/node_modules/oauth-sign/README.md  |      4 -
 .../fsevents/node_modules/oauth-sign/index.js   |    136 -
 .../node_modules/oauth-sign/package.json        |     98 -
 .../node_modules/object-assign/index.js         |     90 -
 .../fsevents/node_modules/object-assign/license |     21 -
 .../node_modules/object-assign/package.json     |    118 -
 .../node_modules/object-assign/readme.md        |     61 -
 node_modules/fsevents/node_modules/once/LICENSE |     15 -
 .../fsevents/node_modules/once/README.md        |     79 -
 node_modules/fsevents/node_modules/once/once.js |     42 -
 .../fsevents/node_modules/once/package.json     |    101 -
 .../node_modules/path-is-absolute/index.js      |     20 -
 .../node_modules/path-is-absolute/license       |     21 -
 .../node_modules/path-is-absolute/package.json  |    111 -
 .../node_modules/path-is-absolute/readme.md     |     59 -
 .../node_modules/pinkie-promise/index.js        |      3 -
 .../node_modules/pinkie-promise/license         |     21 -
 .../node_modules/pinkie-promise/package.json    |    102 -
 .../node_modules/pinkie-promise/readme.md       |     28 -
 .../fsevents/node_modules/pinkie/index.js       |    292 -
 .../fsevents/node_modules/pinkie/license        |     21 -
 .../fsevents/node_modules/pinkie/package.json   |    100 -
 .../fsevents/node_modules/pinkie/readme.md      |     83 -
 .../process-nextick-args/.travis.yml            |     12 -
 .../node_modules/process-nextick-args/index.js  |     43 -
 .../process-nextick-args/license.md             |     19 -
 .../process-nextick-args/package.json           |     84 -
 .../node_modules/process-nextick-args/readme.md |     18 -
 .../node_modules/process-nextick-args/test.js   |     24 -
 .../node_modules/punycode/LICENSE-MIT.txt       |     20 -
 .../fsevents/node_modules/punycode/README.md    |    176 -
 .../fsevents/node_modules/punycode/package.json |    127 -
 .../fsevents/node_modules/punycode/punycode.js  |    533 -
 .../fsevents/node_modules/qs/.eslintignore      |      1 -
 node_modules/fsevents/node_modules/qs/.eslintrc |     19 -
 .../fsevents/node_modules/qs/CHANGELOG.md       |    156 -
 node_modules/fsevents/node_modules/qs/LICENSE   |     28 -
 node_modules/fsevents/node_modules/qs/README.md |    431 -
 .../fsevents/node_modules/qs/dist/qs.js         |    587 -
 .../fsevents/node_modules/qs/lib/formats.js     |     18 -
 .../fsevents/node_modules/qs/lib/index.js       |     11 -
 .../fsevents/node_modules/qs/lib/parse.js       |    166 -
 .../fsevents/node_modules/qs/lib/stringify.js   |    200 -
 .../fsevents/node_modules/qs/lib/utils.js       |    180 -
 .../fsevents/node_modules/qs/package.json       |    121 -
 .../fsevents/node_modules/qs/test/.eslintrc     |     10 -
 .../fsevents/node_modules/qs/test/index.js      |      7 -
 .../fsevents/node_modules/qs/test/parse.js      |    484 -
 .../fsevents/node_modules/qs/test/stringify.js  |    538 -
 .../fsevents/node_modules/qs/test/utils.js      |     22 -
 .../fsevents/node_modules/rc/.npmignore         |      3 -
 .../fsevents/node_modules/rc/LICENSE.APACHE2    |     15 -
 .../fsevents/node_modules/rc/LICENSE.BSD        |     26 -
 .../fsevents/node_modules/rc/LICENSE.MIT        |     24 -
 node_modules/fsevents/node_modules/rc/README.md |    149 -
 .../fsevents/node_modules/rc/browser.js         |      7 -
 node_modules/fsevents/node_modules/rc/index.js  |     60 -
 .../fsevents/node_modules/rc/lib/utils.js       |    103 -
 .../rc/node_modules/minimist/.travis.yml        |      8 -
 .../rc/node_modules/minimist/LICENSE            |     18 -
 .../rc/node_modules/minimist/example/parse.js   |      2 -
 .../rc/node_modules/minimist/index.js           |    236 -
 .../rc/node_modules/minimist/package.json       |    105 -
 .../rc/node_modules/minimist/readme.markdown    |     91 -
 .../rc/node_modules/minimist/test/all_bool.js   |     32 -
 .../rc/node_modules/minimist/test/bool.js       |    166 -
 .../rc/node_modules/minimist/test/dash.js       |     31 -
 .../node_modules/minimist/test/default_bool.js  |     35 -
 .../rc/node_modules/minimist/test/dotted.js     |     22 -
 .../rc/node_modules/minimist/test/kv_short.js   |     16 -
 .../rc/node_modules/minimist/test/long.js       |     31 -
 .../rc/node_modules/minimist/test/num.js        |     36 -
 .../rc/node_modules/minimist/test/parse.js      |    197 -
 .../minimist/test/parse_modified.js             |      9 -
 .../rc/node_modules/minimist/test/short.js      |     67 -
 .../rc/node_modules/minimist/test/stop_early.js |     15 -
 .../rc/node_modules/minimist/test/unknown.js    |    102 -
 .../rc/node_modules/minimist/test/whitespace.js |      8 -
 .../fsevents/node_modules/rc/package.json       |    100 -
 .../fsevents/node_modules/rc/test/ini.js        |     16 -
 .../node_modules/rc/test/nested-env-vars.js     |     40 -
 .../fsevents/node_modules/rc/test/test.js       |     59 -
 .../node_modules/readable-stream/.npmignore     |      9 -
 .../node_modules/readable-stream/.travis.yml    |     49 -
 .../node_modules/readable-stream/LICENSE        |     18 -
 .../node_modules/readable-stream/README.md      |     40 -
 .../doc/wg-meetings/2015-01-30.md               |     60 -
 .../node_modules/readable-stream/duplex.js      |      1 -
 .../readable-stream/lib/_stream_duplex.js       |     75 -
 .../readable-stream/lib/_stream_passthrough.js  |     26 -
 .../readable-stream/lib/_stream_readable.js     |    941 -
 .../readable-stream/lib/_stream_transform.js    |    182 -
 .../readable-stream/lib/_stream_writable.js     |    554 -
 .../lib/internal/streams/BufferList.js          |     64 -
 .../node_modules/readable-stream/package.json   |    126 -
 .../node_modules/readable-stream/passthrough.js |      1 -
 .../node_modules/readable-stream/readable.js    |     16 -
 .../node_modules/readable-stream/transform.js   |      1 -
 .../node_modules/readable-stream/writable.js    |      1 -
 .../fsevents/node_modules/request/CHANGELOG.md  |    662 -
 .../fsevents/node_modules/request/LICENSE       |     55 -
 .../fsevents/node_modules/request/README.md     |   1098 -
 .../fsevents/node_modules/request/index.js      |    156 -
 .../fsevents/node_modules/request/lib/auth.js   |    168 -
 .../node_modules/request/lib/cookies.js         |     39 -
 .../node_modules/request/lib/getProxyFromURI.js |     79 -
 .../fsevents/node_modules/request/lib/har.js    |    215 -
 .../node_modules/request/lib/helpers.js         |     65 -
 .../node_modules/request/lib/multipart.js       |    112 -
 .../fsevents/node_modules/request/lib/oauth.js  |    147 -
 .../node_modules/request/lib/querystring.js     |     51 -
 .../node_modules/request/lib/redirect.js        |    157 -
 .../fsevents/node_modules/request/lib/tunnel.js |    176 -
 .../fsevents/node_modules/request/package.json  |    163 -
 .../fsevents/node_modules/request/request.js    |   1475 -
 .../fsevents/node_modules/rimraf/LICENSE        |     15 -
 .../fsevents/node_modules/rimraf/README.md      |    101 -
 .../fsevents/node_modules/rimraf/bin.js         |     40 -
 .../fsevents/node_modules/rimraf/package.json   |    101 -
 .../fsevents/node_modules/rimraf/rimraf.js      |    343 -
 .../fsevents/node_modules/semver/LICENSE        |     15 -
 .../fsevents/node_modules/semver/README.md      |    350 -
 .../fsevents/node_modules/semver/bin/semver     |    133 -
 .../fsevents/node_modules/semver/package.json   |     94 -
 .../fsevents/node_modules/semver/range.bnf      |     16 -
 .../fsevents/node_modules/semver/semver.js      |   1203 -
 .../node_modules/set-blocking/CHANGELOG.md      |     26 -
 .../node_modules/set-blocking/LICENSE.txt       |     14 -
 .../node_modules/set-blocking/README.md         |     31 -
 .../fsevents/node_modules/set-blocking/index.js |      7 -
 .../node_modules/set-blocking/package.json      |    106 -
 .../node_modules/signal-exit/CHANGELOG.md       |     27 -
 .../node_modules/signal-exit/LICENSE.txt        |     16 -
 .../fsevents/node_modules/signal-exit/README.md |     40 -
 .../fsevents/node_modules/signal-exit/index.js  |    157 -
 .../node_modules/signal-exit/package.json       |    106 -
 .../node_modules/signal-exit/signals.js         |     53 -
 .../fsevents/node_modules/sntp/.npmignore       |     18 -
 .../fsevents/node_modules/sntp/.travis.yml      |      5 -
 node_modules/fsevents/node_modules/sntp/LICENSE |     28 -
 .../fsevents/node_modules/sntp/Makefile         |      9 -
 .../fsevents/node_modules/sntp/README.md        |     68 -
 .../node_modules/sntp/examples/offset.js        |     16 -
 .../fsevents/node_modules/sntp/examples/time.js |     25 -
 .../fsevents/node_modules/sntp/index.js         |      1 -
 .../fsevents/node_modules/sntp/lib/index.js     |    412 -
 .../fsevents/node_modules/sntp/package.json     |     98 -
 .../fsevents/node_modules/sntp/test/index.js    |    435 -
 .../fsevents/node_modules/sshpk/.npmignore      |      9 -
 .../fsevents/node_modules/sshpk/.travis.yml     |     11 -
 .../fsevents/node_modules/sshpk/LICENSE         |     18 -
 .../fsevents/node_modules/sshpk/README.md       |    666 -
 .../fsevents/node_modules/sshpk/bin/sshpk-conv  |    201 -
 .../fsevents/node_modules/sshpk/bin/sshpk-sign  |    191 -
 .../node_modules/sshpk/bin/sshpk-verify         |    166 -
 .../fsevents/node_modules/sshpk/lib/algs.js     |    168 -
 .../node_modules/sshpk/lib/certificate.js       |    291 -
 .../fsevents/node_modules/sshpk/lib/dhe.js      |    311 -
 .../node_modules/sshpk/lib/ed-compat.js         |     96 -
 .../fsevents/node_modules/sshpk/lib/errors.js   |     84 -
 .../node_modules/sshpk/lib/fingerprint.js       |    161 -
 .../node_modules/sshpk/lib/formats/auto.js      |     73 -
 .../sshpk/lib/formats/openssh-cert.js           |    289 -
 .../node_modules/sshpk/lib/formats/pem.js       |    186 -
 .../node_modules/sshpk/lib/formats/pkcs1.js     |    320 -
 .../node_modules/sshpk/lib/formats/pkcs8.js     |    505 -
 .../node_modules/sshpk/lib/formats/rfc4253.js   |    146 -
 .../sshpk/lib/formats/ssh-private.js            |    261 -
 .../node_modules/sshpk/lib/formats/ssh.js       |    114 -
 .../node_modules/sshpk/lib/formats/x509-pem.js  |     77 -
 .../node_modules/sshpk/lib/formats/x509.js      |    484 -
 .../fsevents/node_modules/sshpk/lib/identity.js |    277 -
 .../fsevents/node_modules/sshpk/lib/index.js    |     38 -
 .../fsevents/node_modules/sshpk/lib/key.js      |    270 -
 .../node_modules/sshpk/lib/private-key.js       |    231 -
 .../node_modules/sshpk/lib/signature.js         |    245 -
 .../node_modules/sshpk/lib/ssh-buffer.js        |    148 -
 .../fsevents/node_modules/sshpk/lib/utils.js    |    288 -
 .../node_modules/sshpk/man/man1/sshpk-conv.1    |    135 -
 .../node_modules/sshpk/man/man1/sshpk-sign.1    |     81 -
 .../node_modules/sshpk/man/man1/sshpk-verify.1  |     68 -
 .../sshpk/node_modules/assert-plus/AUTHORS      |      6 -
 .../sshpk/node_modules/assert-plus/CHANGES.md   |     14 -
 .../sshpk/node_modules/assert-plus/README.md    |    162 -
 .../sshpk/node_modules/assert-plus/assert.js    |    211 -
 .../sshpk/node_modules/assert-plus/package.json |    115 -
 .../fsevents/node_modules/sshpk/package.json    |    135 -
 .../fsevents/node_modules/string-width/index.js |     37 -
 .../fsevents/node_modules/string-width/license  |     21 -
 .../node_modules/string-width/package.json      |    124 -
 .../node_modules/string-width/readme.md         |     42 -
 .../node_modules/string_decoder/.npmignore      |      2 -
 .../node_modules/string_decoder/LICENSE         |     20 -
 .../node_modules/string_decoder/README.md       |      7 -
 .../node_modules/string_decoder/index.js        |    221 -
 .../node_modules/string_decoder/package.json    |     88 -
 .../node_modules/stringstream/.npmignore        |     15 -
 .../node_modules/stringstream/.travis.yml       |      4 -
 .../node_modules/stringstream/LICENSE.txt       |     22 -
 .../node_modules/stringstream/README.md         |     38 -
 .../node_modules/stringstream/example.js        |     27 -
 .../node_modules/stringstream/package.json      |     85 -
 .../node_modules/stringstream/stringstream.js   |    102 -
 .../fsevents/node_modules/strip-ansi/index.js   |      6 -
 .../fsevents/node_modules/strip-ansi/license    |     21 -
 .../node_modules/strip-ansi/package.json        |    125 -
 .../fsevents/node_modules/strip-ansi/readme.md  |     33 -
 .../node_modules/strip-json-comments/index.js   |     70 -
 .../node_modules/strip-json-comments/license    |     21 -
 .../strip-json-comments/package.json            |    110 -
 .../node_modules/strip-json-comments/readme.md  |     64 -
 .../node_modules/supports-color/index.js        |     50 -
 .../node_modules/supports-color/license         |     21 -
 .../node_modules/supports-color/package.json    |    113 -
 .../node_modules/supports-color/readme.md       |     36 -
 .../fsevents/node_modules/tar-pack/.npmignore   |     14 -
 .../fsevents/node_modules/tar-pack/.travis.yml  |      7 -
 .../fsevents/node_modules/tar-pack/LICENSE      |     23 -
 .../fsevents/node_modules/tar-pack/README.md    |     84 -
 .../fsevents/node_modules/tar-pack/index.js     |    245 -
 .../tar-pack/node_modules/once/LICENSE          |     15 -
 .../tar-pack/node_modules/once/README.md        |     51 -
 .../tar-pack/node_modules/once/once.js          |     21 -
 .../tar-pack/node_modules/once/package.json     |     96 -
 .../node_modules/readable-stream/.npmignore     |      8 -
 .../node_modules/readable-stream/.travis.yml    |     49 -
 .../node_modules/readable-stream/LICENSE        |     18 -
 .../node_modules/readable-stream/README.md      |     36 -
 .../node_modules/readable-stream/doc/stream.md  |   2015 -
 .../doc/wg-meetings/2015-01-30.md               |     60 -
 .../node_modules/readable-stream/duplex.js      |      1 -
 .../readable-stream/lib/_stream_duplex.js       |     75 -
 .../readable-stream/lib/_stream_passthrough.js  |     26 -
 .../readable-stream/lib/_stream_readable.js     |    937 -
 .../readable-stream/lib/_stream_transform.js    |    180 -
 .../readable-stream/lib/_stream_writable.js     |    526 -
 .../lib/internal/streams/BufferList.js          |     64 -
 .../node_modules/readable-stream/package.json   |    125 -
 .../node_modules/readable-stream/passthrough.js |      1 -
 .../node_modules/readable-stream/readable.js    |     16 -
 .../node_modules/readable-stream/transform.js   |      1 -
 .../node_modules/readable-stream/writable.js    |      1 -
 .../fsevents/node_modules/tar-pack/package.json |    109 -
 .../tar-pack/test/fixtures/packed-file.txt      |      1 -
 .../tar-pack/test/fixtures/packed.tar           |    Bin 3584 -> 0 bytes
 .../tar-pack/test/fixtures/packed.tar.gz        |    Bin 152 -> 0 bytes
 .../tar-pack/test/fixtures/to-pack/bar.txt      |      1 -
 .../tar-pack/test/fixtures/to-pack/foo.txt      |      1 -
 .../node_modules/tar-pack/test/index.js         |    109 -
 .../fsevents/node_modules/tar/.npmignore        |      5 -
 .../fsevents/node_modules/tar/.travis.yml       |      4 -
 node_modules/fsevents/node_modules/tar/LICENSE  |     12 -
 .../fsevents/node_modules/tar/README.md         |     50 -
 .../node_modules/tar/examples/extracter.js      |     19 -
 .../node_modules/tar/examples/packer.js         |     24 -
 .../node_modules/tar/examples/reader.js         |     36 -
 .../node_modules/tar/lib/buffer-entry.js        |     30 -
 .../node_modules/tar/lib/entry-writer.js        |    169 -
 .../fsevents/node_modules/tar/lib/entry.js      |    220 -
 .../tar/lib/extended-header-writer.js           |    191 -
 .../node_modules/tar/lib/extended-header.js     |    140 -
 .../fsevents/node_modules/tar/lib/extract.js    |     94 -
 .../tar/lib/global-header-writer.js             |     14 -
 .../fsevents/node_modules/tar/lib/header.js     |    385 -
 .../fsevents/node_modules/tar/lib/pack.js       |    236 -
 .../fsevents/node_modules/tar/lib/parse.js      |    275 -
 .../fsevents/node_modules/tar/package.json      |    103 -
 node_modules/fsevents/node_modules/tar/tar.js   |    173 -
 .../node_modules/tar/test/00-setup-fixtures.js  |     53 -
 .../tar/test/cb-never-called-1.0.1.tgz          |    Bin 4096 -> 0 bytes
 .../node_modules/tar/test/dir-normalization.js  |    177 -
 .../node_modules/tar/test/dir-normalization.tar |    Bin 4608 -> 0 bytes
 .../node_modules/tar/test/error-on-broken.js    |     33 -
 .../node_modules/tar/test/extract-move.js       |    132 -
 .../fsevents/node_modules/tar/test/extract.js   |    367 -
 .../fsevents/node_modules/tar/test/fixtures.tgz |    Bin 19352 -> 0 bytes
 .../fsevents/node_modules/tar/test/header.js    |    183 -
 .../tar/test/pack-no-proprietary.js             |    886 -
 .../fsevents/node_modules/tar/test/pack.js      |    952 -
 .../node_modules/tar/test/parse-discard.js      |     29 -
 .../fsevents/node_modules/tar/test/parse.js     |    359 -
 .../node_modules/tar/test/zz-cleanup.js         |     20 -
 .../fsevents/node_modules/tough-cookie/LICENSE  |     27 -
 .../node_modules/tough-cookie/README.md         |    506 -
 .../node_modules/tough-cookie/lib/cookie.js     |   1336 -
 .../node_modules/tough-cookie/lib/memstore.js   |    170 -
 .../node_modules/tough-cookie/lib/pathMatch.js  |     61 -
 .../tough-cookie/lib/permuteDomain.js           |     56 -
 .../node_modules/tough-cookie/lib/pubsuffix.js  |     98 -
 .../node_modules/tough-cookie/lib/store.js      |     71 -
 .../node_modules/tough-cookie/package.json      |    135 -
 .../fsevents/node_modules/tunnel-agent/LICENSE  |     55 -
 .../node_modules/tunnel-agent/README.md         |      4 -
 .../fsevents/node_modules/tunnel-agent/index.js |    243 -
 .../node_modules/tunnel-agent/package.json      |    100 -
 .../fsevents/node_modules/tweetnacl/.npmignore  |      4 -
 .../fsevents/node_modules/tweetnacl/AUTHORS.md  |     28 -
 .../node_modules/tweetnacl/CHANGELOG.md         |    221 -
 .../fsevents/node_modules/tweetnacl/LICENSE     |     24 -
 .../tweetnacl/PULL_REQUEST_TEMPLATE.md          |     20 -
 .../fsevents/node_modules/tweetnacl/README.md   |    459 -
 .../node_modules/tweetnacl/nacl-fast.js         |   2388 -
 .../node_modules/tweetnacl/nacl-fast.min.js     |      2 -
 .../fsevents/node_modules/tweetnacl/nacl.d.ts   |     98 -
 .../fsevents/node_modules/tweetnacl/nacl.js     |   1175 -
 .../fsevents/node_modules/tweetnacl/nacl.min.js |      1 -
 .../node_modules/tweetnacl/package.json         |    121 -
 .../fsevents/node_modules/uid-number/LICENSE    |     15 -
 .../fsevents/node_modules/uid-number/README.md  |     17 -
 .../node_modules/uid-number/get-uid-gid.js      |     24 -
 .../node_modules/uid-number/package.json        |     82 -
 .../node_modules/uid-number/uid-number.js       |     59 -
 .../node_modules/util-deprecate/History.md      |     16 -
 .../node_modules/util-deprecate/LICENSE         |     24 -
 .../node_modules/util-deprecate/README.md       |     53 -
 .../node_modules/util-deprecate/browser.js      |     67 -
 .../node_modules/util-deprecate/node.js         |      6 -
 .../node_modules/util-deprecate/package.json    |     90 -
 .../fsevents/node_modules/uuid/.npmignore       |      8 -
 .../fsevents/node_modules/uuid/.travis.yml      |      5 -
 node_modules/fsevents/node_modules/uuid/AUTHORS |      5 -
 .../fsevents/node_modules/uuid/HISTORY.md       |     28 -
 .../fsevents/node_modules/uuid/LICENSE.md       |     21 -
 .../fsevents/node_modules/uuid/README.md        |    132 -
 .../fsevents/node_modules/uuid/bin/uuid         |     26 -
 .../fsevents/node_modules/uuid/index.js         |      8 -
 .../node_modules/uuid/lib/bytesToUuid.js        |     23 -
 .../node_modules/uuid/lib/rng-browser.js        |     33 -
 .../fsevents/node_modules/uuid/lib/rng.js       |     10 -
 .../fsevents/node_modules/uuid/package.json     |    122 -
 .../fsevents/node_modules/uuid/test/mocha.opts  |      3 -
 .../fsevents/node_modules/uuid/test/test.js     |     96 -
 node_modules/fsevents/node_modules/uuid/v1.js   |    103 -
 node_modules/fsevents/node_modules/uuid/v4.js   |     29 -
 .../fsevents/node_modules/verror/.gitmodules    |      0
 .../fsevents/node_modules/verror/.npmignore     |      1 -
 .../fsevents/node_modules/verror/LICENSE        |     19 -
 .../fsevents/node_modules/verror/Makefile       |     35 -
 .../fsevents/node_modules/verror/Makefile.targ  |    285 -
 .../fsevents/node_modules/verror/README.md      |    120 -
 .../verror/examples/levels-verror.js            |     36 -
 .../verror/examples/levels-werror.js            |     34 -
 .../node_modules/verror/examples/varargs.js     |      6 -
 .../node_modules/verror/examples/verror.js      |     13 -
 .../node_modules/verror/examples/werror.js      |     14 -
 .../fsevents/node_modules/verror/jsl.node.conf  |    139 -
 .../fsevents/node_modules/verror/lib/verror.js  |    157 -
 .../fsevents/node_modules/verror/package.json   |     78 -
 .../node_modules/verror/tests/tst.inherit.js    |    100 -
 .../node_modules/verror/tests/tst.verror.js     |    156 -
 .../node_modules/verror/tests/tst.werror.js     |    179 -
 .../fsevents/node_modules/wide-align/.npmignore |      5 -
 .../fsevents/node_modules/wide-align/LICENSE    |     14 -
 .../fsevents/node_modules/wide-align/README.md  |     47 -
 .../fsevents/node_modules/wide-align/align.js   |     65 -
 .../node_modules/wide-align/package.json        |     93 -
 .../node_modules/wide-align/test/align.js       |     37 -
 .../fsevents/node_modules/wrappy/LICENSE        |     15 -
 .../fsevents/node_modules/wrappy/README.md      |     36 -
 .../fsevents/node_modules/wrappy/package.json   |     98 -
 .../fsevents/node_modules/wrappy/wrappy.js      |     33 -
 .../fsevents/node_modules/xtend/.jshintrc       |     30 -
 .../fsevents/node_modules/xtend/.npmignore      |      1 -
 .../fsevents/node_modules/xtend/LICENCE         |     19 -
 .../fsevents/node_modules/xtend/Makefile        |      4 -
 .../fsevents/node_modules/xtend/README.md       |     32 -
 .../fsevents/node_modules/xtend/immutable.js    |     19 -
 .../fsevents/node_modules/xtend/mutable.js      |     17 -
 .../fsevents/node_modules/xtend/package.json    |    117 -
 .../fsevents/node_modules/xtend/test.js         |     83 -
 node_modules/fsevents/package.json              |    112 -
 node_modules/fsevents/src/async.cc              |     43 -
 node_modules/fsevents/src/constants.cc          |    110 -
 node_modules/fsevents/src/locking.cc            |     27 -
 node_modules/fsevents/src/methods.cc            |     42 -
 node_modules/fsevents/src/storage.cc            |     27 -
 node_modules/fsevents/src/thread.cc             |     72 -
 node_modules/get-stdin/index.js                 |     49 -
 node_modules/get-stdin/package.json             |     99 -
 node_modules/get-stdin/readme.md                |     44 -
 node_modules/getpass/.npmignore                 |      8 -
 node_modules/getpass/.travis.yml                |      9 -
 node_modules/getpass/LICENSE                    |     18 -
 node_modules/getpass/README.md                  |     32 -
 node_modules/getpass/lib/index.js               |    123 -
 .../getpass/node_modules/assert-plus/AUTHORS    |      6 -
 .../getpass/node_modules/assert-plus/CHANGES.md |     14 -
 .../getpass/node_modules/assert-plus/README.md  |    162 -
 .../getpass/node_modules/assert-plus/assert.js  |    211 -
 .../node_modules/assert-plus/package.json       |    116 -
 node_modules/getpass/package.json               |     91 -
 node_modules/glob-base/LICENSE                  |     21 -
 node_modules/glob-base/README.md                |    158 -
 node_modules/glob-base/index.js                 |     51 -
 node_modules/glob-base/package.json             |    117 -
 node_modules/glob-parent/.npmignore             |      4 -
 node_modules/glob-parent/.travis.yml            |      8 -
 node_modules/glob-parent/LICENSE                |     15 -
 node_modules/glob-parent/README.md              |     43 -
 node_modules/glob-parent/index.js               |     10 -
 node_modules/glob-parent/package.json           |     95 -
 node_modules/glob-parent/test.js                |     28 -
 node_modules/glob/LICENSE                       |     15 -
 node_modules/glob/README.md                     |    359 -
 node_modules/glob/common.js                     |    226 -
 node_modules/glob/glob.js                       |    765 -
 node_modules/glob/package.json                  |    107 -
 node_modules/glob/sync.js                       |    460 -
 node_modules/graceful-fs/LICENSE                |     15 -
 node_modules/graceful-fs/README.md              |    133 -
 node_modules/graceful-fs/fs.js                  |     21 -
 node_modules/graceful-fs/graceful-fs.js         |    262 -
 node_modules/graceful-fs/legacy-streams.js      |    118 -
 node_modules/graceful-fs/package.json           |    114 -
 node_modules/graceful-fs/polyfills.js           |    330 -
 node_modules/har-schema/LICENSE                 |     13 -
 node_modules/har-schema/README.md               |     49 -
 node_modules/har-schema/lib/afterRequest.json   |     29 -
 node_modules/har-schema/lib/beforeRequest.json  |     29 -
 node_modules/har-schema/lib/browser.json        |     19 -
 node_modules/har-schema/lib/cache.json          |     20 -
 node_modules/har-schema/lib/content.json        |     28 -
 node_modules/har-schema/lib/cookie.json         |     35 -
 node_modules/har-schema/lib/creator.json        |     19 -
 node_modules/har-schema/lib/entry.json          |     52 -
 node_modules/har-schema/lib/har.json            |     12 -
 node_modules/har-schema/lib/header.json         |     19 -
 node_modules/har-schema/lib/index.js            |     22 -
 node_modules/har-schema/lib/log.json            |     35 -
 node_modules/har-schema/lib/page.json           |     31 -
 node_modules/har-schema/lib/pageTimings.json    |     17 -
 node_modules/har-schema/lib/postData.json       |     42 -
 node_modules/har-schema/lib/query.json          |     19 -
 node_modules/har-schema/lib/request.json        |     56 -
 node_modules/har-schema/lib/response.json       |     53 -
 node_modules/har-schema/lib/timings.json        |     41 -
 node_modules/har-schema/package.json            |    123 -
 node_modules/har-validator/LICENSE              |     13 -
 node_modules/har-validator/README.md            |     75 -
 node_modules/har-validator/lib/browser/async.js |     96 -
 node_modules/har-validator/lib/browser/error.js |     15 -
 .../har-validator/lib/browser/promise.js        |     93 -
 node_modules/har-validator/lib/node4/async.js   |    136 -
 node_modules/har-validator/lib/node4/error.js   |     22 -
 node_modules/har-validator/lib/node4/promise.js |    132 -
 node_modules/har-validator/lib/node6/async.js   |    133 -
 node_modules/har-validator/lib/node6/error.js   |     22 -
 node_modules/har-validator/lib/node6/promise.js |    130 -
 node_modules/har-validator/lib/node7/async.js   |    133 -
 node_modules/har-validator/lib/node7/error.js   |     22 -
 node_modules/har-validator/lib/node7/promise.js |    130 -
 node_modules/har-validator/package.json         |    137 -
 node_modules/har-validator/src/async.js         |     96 -
 node_modules/har-validator/src/error.js         |     15 -
 node_modules/har-validator/src/promise.js       |     93 -
 node_modules/has-ansi/index.js                  |      4 -
 node_modules/has-ansi/license                   |     21 -
 node_modules/has-ansi/package.json              |    119 -
 node_modules/has-ansi/readme.md                 |     36 -
 node_modules/hawk/.npmignore                    |     20 -
 node_modules/hawk/.travis.yml                   |      5 -
 node_modules/hawk/LICENSE                       |     28 -
 node_modules/hawk/README.md                     |    634 -
 node_modules/hawk/bower.json                    |     24 -
 node_modules/hawk/component.json                |     19 -
 node_modules/hawk/dist/client.js                |    343 -
 node_modules/hawk/example/usage.js              |     78 -
 node_modules/hawk/images/hawk.png               |    Bin 6945 -> 0 bytes
 node_modules/hawk/images/logo.png               |    Bin 71732 -> 0 bytes
 node_modules/hawk/lib/browser.js                |    637 -
 node_modules/hawk/lib/client.js                 |    369 -
 node_modules/hawk/lib/crypto.js                 |    126 -
 node_modules/hawk/lib/index.js                  |     15 -
 node_modules/hawk/lib/server.js                 |    548 -
 node_modules/hawk/lib/utils.js                  |    184 -
 node_modules/hawk/package.json                  |    102 -
 node_modules/hawk/test/browser.js               |   1492 -
 node_modules/hawk/test/client.js                |    440 -
 node_modules/hawk/test/crypto.js                |     70 -
 node_modules/hawk/test/index.js                 |    378 -
 node_modules/hawk/test/readme.js                |     95 -
 node_modules/hawk/test/server.js                |   1329 -
 node_modules/hawk/test/uri.js                   |    838 -
 node_modules/hawk/test/utils.js                 |    149 -
 node_modules/hexo-front-matter/.eslintignore    |      3 -
 node_modules/hexo-front-matter/.eslintrc        |      4 -
 node_modules/hexo-front-matter/.jscsrc          |      4 -
 node_modules/hexo-front-matter/.npmignore       |      5 -
 node_modules/hexo-front-matter/.travis.yml      |     21 -
 node_modules/hexo-front-matter/README.md        |     59 -
 .../hexo-front-matter/lib/front_matter.js       |    200 -
 node_modules/hexo-front-matter/package.json     |    110 -
 node_modules/hexo-fs/.eslintignore              |      3 -
 node_modules/hexo-fs/.eslintrc                  |      4 -
 node_modules/hexo-fs/.jscsrc                    |      4 -
 node_modules/hexo-fs/.npmignore                 |      8 -
 node_modules/hexo-fs/LICENSE                    |      7 -
 node_modules/hexo-fs/README.md                  |    161 -
 node_modules/hexo-fs/lib/fs.js                  |    722 -
 node_modules/hexo-fs/package.json               |    111 -
 .../hexo-generator-archive/.eslintignore        |      3 -
 node_modules/hexo-generator-archive/.eslintrc   |      4 -
 node_modules/hexo-generator-archive/.jscsrc     |      4 -
 node_modules/hexo-generator-archive/.npmignore  |      9 -
 node_modules/hexo-generator-archive/LICENSE     |      7 -
 node_modules/hexo-generator-archive/README.md   |     32 -
 node_modules/hexo-generator-archive/index.js    |     25 -
 .../hexo-generator-archive/lib/generator.js     |    120 -
 .../node_modules/object-assign/index.js         |     26 -
 .../node_modules/object-assign/license          |     21 -
 .../node_modules/object-assign/package.json     |    103 -
 .../node_modules/object-assign/readme.md        |     51 -
 .../hexo-generator-archive/package.json         |    104 -
 node_modules/hexo-generator-category/.npmignore |      9 -
 node_modules/hexo-generator-category/LICENSE    |      7 -
 node_modules/hexo-generator-category/README.md  |     26 -
 node_modules/hexo-generator-category/index.js   |      9 -
 .../hexo-generator-category/lib/generator.js    |     25 -
 .../node_modules/object-assign/index.js         |     26 -
 .../node_modules/object-assign/license          |     21 -
 .../node_modules/object-assign/package.json     |    115 -
 .../node_modules/object-assign/readme.md        |     51 -
 .../hexo-generator-category/package.json        |    107 -
 node_modules/hexo-generator-index/.eslintignore |      3 -
 node_modules/hexo-generator-index/.eslintrc     |     45 -
 node_modules/hexo-generator-index/.jscsrc       |     85 -
 node_modules/hexo-generator-index/.npmignore    |      8 -
 node_modules/hexo-generator-index/LICENSE       |      7 -
 node_modules/hexo-generator-index/README.md     |     28 -
 node_modules/hexo-generator-index/index.js      |     12 -
 .../hexo-generator-index/lib/generator.js       |     18 -
 node_modules/hexo-generator-index/package.json  |    106 -
 node_modules/hexo-generator-tag/.eslintignore   |      3 -
 node_modules/hexo-generator-tag/.eslintrc       |      4 -
 node_modules/hexo-generator-tag/.jscsrc         |      4 -
 node_modules/hexo-generator-tag/.npmignore      |      8 -
 node_modules/hexo-generator-tag/LICENSE         |      7 -
 node_modules/hexo-generator-tag/README.md       |     26 -
 node_modules/hexo-generator-tag/index.js        |     10 -
 .../hexo-generator-tag/lib/generator.js         |     55 -
 node_modules/hexo-generator-tag/package.json    |    108 -
 node_modules/hexo-i18n/.npmignore               |      9 -
 node_modules/hexo-i18n/LICENSE                  |      7 -
 node_modules/hexo-i18n/README.md                |    100 -
 node_modules/hexo-i18n/lib/i18n.js              |    140 -
 node_modules/hexo-i18n/package.json             |    105 -
 node_modules/hexo-log/.eslintignore             |      3 -
 node_modules/hexo-log/.eslintrc                 |      4 -
 node_modules/hexo-log/.jscsrc                   |      4 -
 node_modules/hexo-log/.npmignore                |      8 -
 node_modules/hexo-log/LICENSE                   |      7 -
 node_modules/hexo-log/README.md                 |     34 -
 node_modules/hexo-log/lib/log.js                |    105 -
 node_modules/hexo-log/package.json              |    113 -
 node_modules/hexo-pagination/.npmignore         |      9 -
 node_modules/hexo-pagination/LICENSE            |      7 -
 node_modules/hexo-pagination/README.md          |     57 -
 node_modules/hexo-pagination/lib/pagination.js  |     75 -
 node_modules/hexo-pagination/package.json       |    108 -
 node_modules/hexo-renderer-ejs/.eslintignore    |      3 -
 node_modules/hexo-renderer-ejs/.eslintrc        |      4 -
 node_modules/hexo-renderer-ejs/.jscsrc          |      4 -
 node_modules/hexo-renderer-ejs/.npmignore       |      8 -
 node_modules/hexo-renderer-ejs/LICENSE          |      7 -
 node_modules/hexo-renderer-ejs/README.md        |     13 -
 node_modules/hexo-renderer-ejs/index.js         |      7 -
 node_modules/hexo-renderer-ejs/lib/renderer.js  |     16 -
 node_modules/hexo-renderer-ejs/package.json     |    106 -
 node_modules/hexo-renderer-marked/.eslintignore |      3 -
 node_modules/hexo-renderer-marked/.eslintrc     |      4 -
 node_modules/hexo-renderer-marked/.jscsrc       |      4 -
 node_modules/hexo-renderer-marked/.npmignore    |      9 -
 node_modules/hexo-renderer-marked/LICENSE       |      7 -
 node_modules/hexo-renderer-marked/README.md     |     40 -
 node_modules/hexo-renderer-marked/index.js      |     24 -
 .../hexo-renderer-marked/lib/renderer.js        |     54 -
 node_modules/hexo-renderer-marked/package.json  |    110 -
 node_modules/hexo-renderer-stylus/.eslintignore |      3 -
 node_modules/hexo-renderer-stylus/.eslintrc     |      4 -
 node_modules/hexo-renderer-stylus/.jscsrc       |      4 -
 node_modules/hexo-renderer-stylus/.npmignore    |      8 -
 node_modules/hexo-renderer-stylus/LICENSE       |      7 -
 node_modules/hexo-renderer-stylus/README.md     |     41 -
 node_modules/hexo-renderer-stylus/index.js      |      7 -
 .../hexo-renderer-stylus/lib/renderer.js        |     54 -
 node_modules/hexo-renderer-stylus/package.json  |    112 -
 node_modules/hexo-server/.eslintignore          |      3 -
 node_modules/hexo-server/.eslintrc              |      4 -
 node_modules/hexo-server/.jscsrc                |      4 -
 node_modules/hexo-server/.npmignore             |      9 -
 node_modules/hexo-server/LICENSE                |      7 -
 node_modules/hexo-server/README.md              |     48 -
 node_modules/hexo-server/index.js               |     31 -
 .../hexo-server/lib/middlewares/gzip.js         |     10 -
 .../hexo-server/lib/middlewares/header.js       |     11 -
 .../hexo-server/lib/middlewares/logger.js       |     14 -
 .../hexo-server/lib/middlewares/redirect.js     |     15 -
 .../hexo-server/lib/middlewares/route.js        |     40 -
 .../hexo-server/lib/middlewares/static.js       |      7 -
 node_modules/hexo-server/lib/server.js          |     89 -
 node_modules/hexo-server/package.json           |    120 -
 node_modules/hexo-util/.eslintignore            |      3 -
 node_modules/hexo-util/.eslintrc                |      4 -
 node_modules/hexo-util/.jscsrc                  |      4 -
 node_modules/hexo-util/.npmignore               |     10 -
 node_modules/hexo-util/LICENSE                  |      7 -
 node_modules/hexo-util/README.md                |    246 -
 node_modules/hexo-util/highlight_alias.json     |      1 -
 node_modules/hexo-util/lib/cache_stream.js      |     29 -
 node_modules/hexo-util/lib/camel_case_keys.js   |     50 -
 node_modules/hexo-util/lib/escape_diacritic.js  |    111 -
 node_modules/hexo-util/lib/escape_html.js       |     21 -
 node_modules/hexo-util/lib/escape_regexp.js     |     10 -
 node_modules/hexo-util/lib/hash.js              |     37 -
 node_modules/hexo-util/lib/highlight.js         |    131 -
 node_modules/hexo-util/lib/html_tag.js          |     17 -
 node_modules/hexo-util/lib/index.js             |     20 -
 node_modules/hexo-util/lib/pattern.js           |     74 -
 node_modules/hexo-util/lib/permalink.js         |     60 -
 node_modules/hexo-util/lib/slugize.js           |     37 -
 node_modules/hexo-util/lib/spawn.js             |     72 -
 node_modules/hexo-util/lib/strip_html.js        |      3 -
 node_modules/hexo-util/lib/truncate.js          |     35 -
 node_modules/hexo-util/lib/word_wrap.js         |     25 -
 node_modules/hexo-util/package.json             |    115 -
 .../hexo-util/scripts/build_highlight_alias.js  |     24 -
 node_modules/hexo/.eslintignore                 |      3 -
 node_modules/hexo/.eslintrc                     |      4 -
 node_modules/hexo/.jscsrc                       |      4 -
 node_modules/hexo/.npmignore                    |      8 -
 node_modules/hexo/CONTRIBUTING.md               |     90 -
 node_modules/hexo/LICENSE                       |      7 -
 node_modules/hexo/README.md                     |     57 -
 node_modules/hexo/bin/hexo                      |      5 -
 node_modules/hexo/lib/box/file.js               |     38 -
 node_modules/hexo/lib/box/index.js              |    285 -
 node_modules/hexo/lib/extend/console.js         |     62 -
 node_modules/hexo/lib/extend/deployer.js        |     30 -
 node_modules/hexo/lib/extend/filter.js          |     95 -
 node_modules/hexo/lib/extend/generator.js       |     32 -
 node_modules/hexo/lib/extend/helper.js          |     22 -
 node_modules/hexo/lib/extend/index.js           |     11 -
 node_modules/hexo/lib/extend/migrator.js        |     30 -
 node_modules/hexo/lib/extend/processor.js       |     36 -
 node_modules/hexo/lib/extend/renderer.js        |     63 -
 node_modules/hexo/lib/extend/tag.js             |    188 -
 node_modules/hexo/lib/hexo/default_config.js    |     55 -
 node_modules/hexo/lib/hexo/index.js             |    444 -
 node_modules/hexo/lib/hexo/load_config.js       |     66 -
 node_modules/hexo/lib/hexo/load_database.js     |     24 -
 node_modules/hexo/lib/hexo/load_plugins.js      |     87 -
 node_modules/hexo/lib/hexo/locals.js            |     74 -
 node_modules/hexo/lib/hexo/post.js              |    310 -
 node_modules/hexo/lib/hexo/register_models.js   |     15 -
 node_modules/hexo/lib/hexo/render.js            |    129 -
 node_modules/hexo/lib/hexo/router.js            |    161 -
 node_modules/hexo/lib/hexo/scaffold.js          |     80 -
 node_modules/hexo/lib/hexo/source.js            |     14 -
 node_modules/hexo/lib/hexo/update_package.js    |     34 -
 node_modules/hexo/lib/models/asset.js           |     19 -
 node_modules/hexo/lib/models/cache.js           |     70 -
 node_modules/hexo/lib/models/category.js        |     83 -
 node_modules/hexo/lib/models/data.js            |     12 -
 node_modules/hexo/lib/models/index.js           |     12 -
 node_modules/hexo/lib/models/page.js            |     43 -
 node_modules/hexo/lib/models/post.js            |    216 -
 node_modules/hexo/lib/models/post_asset.js      |     30 -
 node_modules/hexo/lib/models/post_category.js   |     12 -
 node_modules/hexo/lib/models/post_tag.js        |     12 -
 node_modules/hexo/lib/models/tag.js             |     72 -
 node_modules/hexo/lib/models/types/moment.js    |     91 -
 node_modules/hexo/lib/plugins/console/clean.js  |     37 -
 node_modules/hexo/lib/plugins/console/config.js |     93 -
 node_modules/hexo/lib/plugins/console/deploy.js |     63 -
 .../hexo/lib/plugins/console/generate.js        |    199 -
 node_modules/hexo/lib/plugins/console/index.js  |     78 -
 .../hexo/lib/plugins/console/list/category.js   |     30 -
 .../hexo/lib/plugins/console/list/common.js     |     19 -
 .../hexo/lib/plugins/console/list/index.js      |     29 -
 .../hexo/lib/plugins/console/list/page.js       |     30 -
 .../hexo/lib/plugins/console/list/post.js       |     43 -
 .../hexo/lib/plugins/console/list/route.js      |     57 -
 .../hexo/lib/plugins/console/list/tag.js        |     30 -
 .../hexo/lib/plugins/console/migrate.js         |     29 -
 node_modules/hexo/lib/plugins/console/new.js    |     47 -
 .../hexo/lib/plugins/console/publish.js         |     22 -
 node_modules/hexo/lib/plugins/console/render.js |     43 -
 .../plugins/filter/after_post_render/excerpt.js |     21 -
 .../filter/after_post_render/external_link.js   |     39 -
 .../plugins/filter/after_post_render/index.js   |      8 -
 .../lib/plugins/filter/before_exit/index.js     |      7 -
 .../plugins/filter/before_exit/save_database.js |     13 -
 .../lib/plugins/filter/before_generate/index.js |      7 -
 .../filter/before_generate/render_post.js       |     28 -
 .../before_post_render/backtick_code_block.js   |     57 -
 .../plugins/filter/before_post_render/index.js  |      8 -
 .../filter/before_post_render/titlecase.js      |     11 -
 node_modules/hexo/lib/plugins/filter/index.js   |     14 -
 .../hexo/lib/plugins/filter/new_post_path.js    |     99 -
 .../hexo/lib/plugins/filter/post_permalink.js   |     50 -
 .../lib/plugins/filter/template_locals/i18n.js  |     45 -
 .../lib/plugins/filter/template_locals/index.js |      7 -
 .../hexo/lib/plugins/generator/asset.js         |     60 -
 .../hexo/lib/plugins/generator/index.js         |      9 -
 node_modules/hexo/lib/plugins/generator/page.js |     28 -
 node_modules/hexo/lib/plugins/generator/post.js |     34 -
 node_modules/hexo/lib/plugins/helper/css.js     |     23 -
 node_modules/hexo/lib/plugins/helper/date.js    |     71 -
 node_modules/hexo/lib/plugins/helper/debug.js   |     16 -
 .../hexo/lib/plugins/helper/favicon_tag.js      |      7 -
 .../hexo/lib/plugins/helper/feed_tag.js         |     11 -
 node_modules/hexo/lib/plugins/helper/format.js  |     16 -
 .../hexo/lib/plugins/helper/fragment_cache.js   |     12 -
 .../hexo/lib/plugins/helper/gravatar.js         |     23 -
 .../hexo/lib/plugins/helper/image_tag.js        |     27 -
 node_modules/hexo/lib/plugins/helper/index.js   |     77 -
 node_modules/hexo/lib/plugins/helper/is.js      |     83 -
 node_modules/hexo/lib/plugins/helper/js.js      |     23 -
 node_modules/hexo/lib/plugins/helper/link_to.js |     37 -
 .../hexo/lib/plugins/helper/list_archives.js    |    108 -
 .../hexo/lib/plugins/helper/list_categories.js  |    123 -
 .../hexo/lib/plugins/helper/list_posts.js       |     58 -
 .../hexo/lib/plugins/helper/list_tags.js        |     69 -
 node_modules/hexo/lib/plugins/helper/mail_to.js |     46 -
 .../hexo/lib/plugins/helper/markdown.js         |      7 -
 .../hexo/lib/plugins/helper/number_format.js    |     52 -
 .../hexo/lib/plugins/helper/open_graph.js       |    141 -
 .../hexo/lib/plugins/helper/paginator.js        |    109 -
 node_modules/hexo/lib/plugins/helper/partial.js |     44 -
 .../hexo/lib/plugins/helper/relative_url.js     |     32 -
 node_modules/hexo/lib/plugins/helper/render.js  |     10 -
 .../hexo/lib/plugins/helper/search_form.js      |     18 -
 .../hexo/lib/plugins/helper/tagcloud.js         |    386 -
 node_modules/hexo/lib/plugins/helper/toc.js     |     75 -
 node_modules/hexo/lib/plugins/helper/url_for.js |     37 -
 .../hexo/lib/plugins/processor/asset.js         |    130 -
 .../hexo/lib/plugins/processor/common.js        |     62 -
 node_modules/hexo/lib/plugins/processor/data.js |     39 -
 .../hexo/lib/plugins/processor/index.js         |     14 -
 node_modules/hexo/lib/plugins/processor/post.js |    275 -
 node_modules/hexo/lib/plugins/renderer/index.js |     21 -
 node_modules/hexo/lib/plugins/renderer/json.js  |      7 -
 node_modules/hexo/lib/plugins/renderer/plain.js |      7 -
 node_modules/hexo/lib/plugins/renderer/swig.js  |     47 -
 node_modules/hexo/lib/plugins/renderer/yaml.js  |     10 -
 node_modules/hexo/lib/plugins/tag/asset_img.js  |     28 -
 node_modules/hexo/lib/plugins/tag/asset_link.js |     25 -
 node_modules/hexo/lib/plugins/tag/asset_path.js |     23 -
 node_modules/hexo/lib/plugins/tag/blockquote.js |     67 -
 node_modules/hexo/lib/plugins/tag/code.js       |    128 -
 node_modules/hexo/lib/plugins/tag/gist.js       |     17 -
 node_modules/hexo/lib/plugins/tag/iframe.js     |     18 -
 node_modules/hexo/lib/plugins/tag/img.js        |     99 -
 .../hexo/lib/plugins/tag/include_code.js        |     77 -
 node_modules/hexo/lib/plugins/tag/index.js      |     54 -
 node_modules/hexo/lib/plugins/tag/jsfiddle.js   |     20 -
 node_modules/hexo/lib/plugins/tag/link.js       |     61 -
 node_modules/hexo/lib/plugins/tag/post_link.js  |     23 -
 node_modules/hexo/lib/plugins/tag/post_path.js  |     21 -
 node_modules/hexo/lib/plugins/tag/pullquote.js  |     23 -
 node_modules/hexo/lib/plugins/tag/vimeo.js      |     16 -
 node_modules/hexo/lib/plugins/tag/youtube.js    |     16 -
 node_modules/hexo/lib/theme/index.js            |     84 -
 .../hexo/lib/theme/processors/config.js         |     22 -
 node_modules/hexo/lib/theme/processors/i18n.js  |     23 -
 .../hexo/lib/theme/processors/source.js         |     35 -
 node_modules/hexo/lib/theme/processors/view.js  |     18 -
 node_modules/hexo/lib/theme/view.js             |    143 -
 node_modules/hexo/node_modules/.bin/hexo        |      1 -
 .../hexo/node_modules/hexo-cli/.editorconfig    |      9 -
 .../hexo/node_modules/hexo-cli/.eslintignore    |      4 -
 .../hexo/node_modules/hexo-cli/.eslintrc        |      4 -
 .../hexo/node_modules/hexo-cli/.gitmodules      |      3 -
 node_modules/hexo/node_modules/hexo-cli/.jscsrc |      4 -
 .../hexo/node_modules/hexo-cli/.npmignore       |      8 -
 node_modules/hexo/node_modules/hexo-cli/LICENSE |      7 -
 .../hexo/node_modules/hexo-cli/README.md        |     15 -
 .../node_modules/hexo-cli/assets/.gitmodules    |      3 -
 .../node_modules/hexo-cli/assets/.npmignore     |      7 -
 .../node_modules/hexo-cli/assets/_config.yml    |     71 -
 .../node_modules/hexo-cli/assets/package.json   |     19 -
 .../hexo-cli/assets/scaffolds/draft.md          |      4 -
 .../hexo-cli/assets/scaffolds/page.md           |      4 -
 .../hexo-cli/assets/scaffolds/post.md           |      5 -
 .../assets/source/_posts/hello-world.md         |     38 -
 .../hexo-cli/assets/themes/landscape/.npmignore |      3 -
 .../assets/themes/landscape/Gruntfile.js        |     46 -
 .../hexo-cli/assets/themes/landscape/LICENSE    |      7 -
 .../hexo-cli/assets/themes/landscape/README.md  |    111 -
 .../assets/themes/landscape/_config.yml         |     36 -
 .../themes/landscape/languages/default.yml      |     19 -
 .../assets/themes/landscape/languages/fr.yml    |     19 -
 .../assets/themes/landscape/languages/nl.yml    |     20 -
 .../assets/themes/landscape/languages/no.yml    |     19 -
 .../assets/themes/landscape/languages/ru.yml    |     19 -
 .../assets/themes/landscape/languages/zh-CN.yml |     19 -
 .../assets/themes/landscape/languages/zh-TW.yml |     19 -
 .../landscape/layout/_partial/after-footer.ejs  |     24 -
 .../landscape/layout/_partial/archive-post.ejs  |      8 -
 .../landscape/layout/_partial/archive.ejs       |     33 -
 .../landscape/layout/_partial/article.ejs       |     44 -
 .../themes/landscape/layout/_partial/footer.ejs |     11 -
 .../layout/_partial/google-analytics.ejs        |     14 -
 .../themes/landscape/layout/_partial/head.ejs   |     36 -
 .../themes/landscape/layout/_partial/header.ejs |     32 -
 .../landscape/layout/_partial/mobile-nav.ejs    |      5 -
 .../landscape/layout/_partial/post/category.ejs |     10 -
 .../landscape/layout/_partial/post/date.ejs     |      3 -
 .../landscape/layout/_partial/post/gallery.ejs  |     11 -
 .../landscape/layout/_partial/post/nav.ejs      |     22 -
 .../landscape/layout/_partial/post/tag.ejs      |      6 -
 .../landscape/layout/_partial/post/title.ejs    |     15 -
 .../landscape/layout/_partial/sidebar.ejs       |      5 -
 .../themes/landscape/layout/_widget/archive.ejs |      8 -
 .../landscape/layout/_widget/category.ejs       |      8 -
 .../landscape/layout/_widget/recent_posts.ejs   |     14 -
 .../themes/landscape/layout/_widget/tag.ejs     |      8 -
 .../landscape/layout/_widget/tagcloud.ejs       |      8 -
 .../assets/themes/landscape/layout/archive.ejs  |      1 -
 .../assets/themes/landscape/layout/category.ejs |      1 -
 .../assets/themes/landscape/layout/index.ejs    |      1 -
 .../assets/themes/landscape/layout/layout.ejs   |     18 -
 .../assets/themes/landscape/layout/page.ejs     |      1 -
 .../assets/themes/landscape/layout/post.ejs     |      1 -
 .../assets/themes/landscape/layout/tag.ejs      |      1 -
 .../assets/themes/landscape/package.json        |     12 -
 .../assets/themes/landscape/scripts/fancybox.js |     24 -
 .../themes/landscape/source/css/_extend.styl    |     63 -
 .../landscape/source/css/_partial/archive.styl  |     80 -
 .../landscape/source/css/_partial/article.styl  |    357 -
 .../landscape/source/css/_partial/comment.styl  |      9 -
 .../landscape/source/css/_partial/footer.styl   |     14 -
 .../landscape/source/css/_partial/header.styl   |    165 -
 .../source/css/_partial/highlight.styl          |    158 -
 .../landscape/source/css/_partial/mobile.styl   |     19 -
 .../source/css/_partial/sidebar-aside.styl      |     27 -
 .../source/css/_partial/sidebar-bottom.styl     |     27 -
 .../landscape/source/css/_partial/sidebar.styl  |     35 -
 .../themes/landscape/source/css/_util/grid.styl |     38 -
 .../landscape/source/css/_util/mixin.styl       |     31 -
 .../themes/landscape/source/css/_variables.styl |     60 -
 .../landscape/source/css/fonts/FontAwesome.otf  |    Bin 62856 -> 0 bytes
 .../source/css/fonts/fontawesome-webfont.eot    |    Bin 38205 -> 0 bytes
 .../source/css/fonts/fontawesome-webfont.svg    |    414 -
 .../source/css/fonts/fontawesome-webfont.ttf    |    Bin 80652 -> 0 bytes
 .../source/css/fonts/fontawesome-webfont.woff   |    Bin 44432 -> 0 bytes
 .../landscape/source/css/images/banner.jpg      |    Bin 224710 -> 0 bytes
 .../themes/landscape/source/css/style.styl      |     89 -
 .../themes/landscape/source/fancybox/blank.gif  |    Bin 43 -> 0 bytes
 .../source/fancybox/fancybox_loading.gif        |    Bin 6567 -> 0 bytes
 .../source/fancybox/fancybox_loading@2x.gif     |    Bin 13984 -> 0 bytes
 .../source/fancybox/fancybox_overlay.png        |    Bin 1003 -> 0 bytes
 .../source/fancybox/fancybox_sprite.png         |    Bin 1362 -> 0 bytes
 .../source/fancybox/fancybox_sprite@2x.png      |    Bin 6553 -> 0 bytes
 .../fancybox/helpers/fancybox_buttons.png       |    Bin 1080 -> 0 bytes
 .../helpers/jquery.fancybox-buttons.css         |     97 -
 .../fancybox/helpers/jquery.fancybox-buttons.js |    122 -
 .../fancybox/helpers/jquery.fancybox-media.js   |    199 -
 .../fancybox/helpers/jquery.fancybox-thumbs.css |     55 -
 .../fancybox/helpers/jquery.fancybox-thumbs.js  |    165 -
 .../source/fancybox/jquery.fancybox.css         |    273 -
 .../source/fancybox/jquery.fancybox.js          |   2017 -
 .../source/fancybox/jquery.fancybox.pack.js     |     46 -
 .../assets/themes/landscape/source/js/script.js |    137 -
 .../hexo/node_modules/hexo-cli/bin/hexo         |      5 -
 .../node_modules/hexo-cli/completion/README.md  |     25 -
 .../hexo/node_modules/hexo-cli/completion/bash  |     25 -
 .../hexo/node_modules/hexo-cli/completion/fish  |     10 -
 .../hexo/node_modules/hexo-cli/completion/zsh   |     24 -
 .../node_modules/hexo-cli/lib/console/help.js   |    120 -
 .../node_modules/hexo-cli/lib/console/index.js  |     23 -
 .../node_modules/hexo-cli/lib/console/init.js   |     95 -
 .../hexo-cli/lib/console/version.js             |     27 -
 .../hexo/node_modules/hexo-cli/lib/context.js   |     62 -
 .../node_modules/hexo-cli/lib/extend/console.js |     62 -
 .../hexo/node_modules/hexo-cli/lib/find_pkg.js  |     34 -
 .../hexo/node_modules/hexo-cli/lib/goodbye.js   |     14 -
 .../hexo/node_modules/hexo-cli/lib/hexo.js      |    101 -
 .../hexo/node_modules/hexo-cli/package.json     |    126 -
 node_modules/hexo/package.json                  |    151 -
 node_modules/highlight.js/LICENSE               |     24 -
 node_modules/highlight.js/README.md             |    150 -
 node_modules/highlight.js/docs/api.rst          |    120 -
 .../highlight.js/docs/building-testing.rst      |     88 -
 .../highlight.js/docs/css-classes-reference.rst |    430 -
 node_modules/highlight.js/docs/index.rst        |     44 -
 .../highlight.js/docs/language-contribution.rst |     78 -
 .../highlight.js/docs/language-guide.rst        |    264 -
 .../highlight.js/docs/language-requests.rst     |     17 -
 node_modules/highlight.js/docs/line-numbers.rst |     39 -
 node_modules/highlight.js/docs/reference.rst    |    324 -
 .../highlight.js/docs/release-process.rst       |     20 -
 node_modules/highlight.js/docs/style-guide.rst  |    107 -
 node_modules/highlight.js/lib/highlight.js      |    824 -
 node_modules/highlight.js/lib/index.js          |    176 -
 node_modules/highlight.js/lib/languages/1c.js   |     78 -
 node_modules/highlight.js/lib/languages/abnf.js |     70 -
 .../highlight.js/lib/languages/accesslog.js     |     37 -
 .../highlight.js/lib/languages/actionscript.js  |     73 -
 node_modules/highlight.js/lib/languages/ada.js  |    172 -
 .../highlight.js/lib/languages/apache.js        |     45 -
 .../highlight.js/lib/languages/applescript.js   |     85 -
 .../highlight.js/lib/languages/arduino.js       |     99 -
 .../highlight.js/lib/languages/armasm.js        |     91 -
 .../highlight.js/lib/languages/asciidoc.js      |    187 -
 .../highlight.js/lib/languages/aspectj.js       |    143 -
 .../highlight.js/lib/languages/autohotkey.js    |     47 -
 .../highlight.js/lib/languages/autoit.js        |    135 -
 .../highlight.js/lib/languages/avrasm.js        |     61 -
 node_modules/highlight.js/lib/languages/awk.js  |     52 -
 .../highlight.js/lib/languages/axapta.js        |     30 -
 node_modules/highlight.js/lib/languages/bash.js |     74 -
 .../highlight.js/lib/languages/basic.js         |     50 -
 node_modules/highlight.js/lib/languages/bnf.js  |     28 -
 .../highlight.js/lib/languages/brainfuck.js     |     36 -
 node_modules/highlight.js/lib/languages/cal.js  |     79 -
 .../highlight.js/lib/languages/capnproto.js     |     48 -
 .../highlight.js/lib/languages/ceylon.js        |     66 -
 .../highlight.js/lib/languages/clean.js         |     24 -
 .../highlight.js/lib/languages/clojure-repl.js  |     14 -
 .../highlight.js/lib/languages/clojure.js       |     94 -
 .../highlight.js/lib/languages/cmake.js         |     37 -
 .../highlight.js/lib/languages/coffeescript.js  |    145 -
 node_modules/highlight.js/lib/languages/coq.js  |     66 -
 node_modules/highlight.js/lib/languages/cos.js  |    123 -
 node_modules/highlight.js/lib/languages/cpp.js  |    165 -
 .../highlight.js/lib/languages/crmsh.js         |     93 -
 .../highlight.js/lib/languages/crystal.js       |    176 -
 node_modules/highlight.js/lib/languages/cs.js   |    166 -
 node_modules/highlight.js/lib/languages/csp.js  |     21 -
 node_modules/highlight.js/lib/languages/css.js  |    104 -
 node_modules/highlight.js/lib/languages/d.js    |    257 -
 node_modules/highlight.js/lib/languages/dart.js |    100 -
 .../highlight.js/lib/languages/delphi.js        |     68 -
 node_modules/highlight.js/lib/languages/diff.js |     39 -
 .../highlight.js/lib/languages/django.js        |     63 -
 node_modules/highlight.js/lib/languages/dns.js  |     28 -
 .../highlight.js/lib/languages/dockerfile.js    |     21 -
 node_modules/highlight.js/lib/languages/dos.js  |     51 -
 .../highlight.js/lib/languages/dsconfig.js      |     46 -
 node_modules/highlight.js/lib/languages/dts.js  |    123 -
 node_modules/highlight.js/lib/languages/dust.js |     31 -
 node_modules/highlight.js/lib/languages/ebnf.js |     32 -
 .../highlight.js/lib/languages/elixir.js        |     96 -
 node_modules/highlight.js/lib/languages/elm.js  |     82 -
 node_modules/highlight.js/lib/languages/erb.js  |     14 -
 .../highlight.js/lib/languages/erlang-repl.js   |     45 -
 .../highlight.js/lib/languages/erlang.js        |    145 -
 .../highlight.js/lib/languages/excel.js         |     47 -
 node_modules/highlight.js/lib/languages/fix.js  |     28 -
 node_modules/highlight.js/lib/languages/flix.js |     44 -
 .../highlight.js/lib/languages/fortran.js       |     70 -
 .../highlight.js/lib/languages/fsharp.js        |     58 -
 node_modules/highlight.js/lib/languages/gams.js |    153 -
 .../highlight.js/lib/languages/gauss.js         |    223 -
 .../highlight.js/lib/languages/gcode.js         |     66 -
 .../highlight.js/lib/languages/gherkin.js       |     36 -
 node_modules/highlight.js/lib/languages/glsl.js |    116 -
 node_modules/highlight.js/lib/languages/go.js   |     53 -
 node_modules/highlight.js/lib/languages/golo.js |     22 -
 .../highlight.js/lib/languages/gradle.js        |     34 -
 .../highlight.js/lib/languages/groovy.js        |     93 -
 node_modules/highlight.js/lib/languages/haml.js |    106 -
 .../highlight.js/lib/languages/handlebars.js    |     33 -
 .../highlight.js/lib/languages/haskell.js       |    121 -
 node_modules/highlight.js/lib/languages/haxe.js |    111 -
 node_modules/highlight.js/lib/languages/hsp.js  |     45 -
 .../highlight.js/lib/languages/htmlbars.js      |     70 -
 node_modules/highlight.js/lib/languages/http.js |     40 -
 node_modules/highlight.js/lib/languages/hy.js   |    101 -
 .../highlight.js/lib/languages/inform7.js       |     56 -
 node_modules/highlight.js/lib/languages/ini.js  |     65 -
 .../highlight.js/lib/languages/irpf90.js        |     75 -
 node_modules/highlight.js/lib/languages/java.js |    107 -
 .../highlight.js/lib/languages/javascript.js    |    170 -
 node_modules/highlight.js/lib/languages/json.js |     36 -
 .../highlight.js/lib/languages/julia.js         |    177 -
 .../highlight.js/lib/languages/kotlin.js        |    173 -
 .../highlight.js/lib/languages/lasso.js         |    162 -
 node_modules/highlight.js/lib/languages/ldif.js |     22 -
 node_modules/highlight.js/lib/languages/leaf.js |     39 -
 node_modules/highlight.js/lib/languages/less.js |    139 -
 node_modules/highlight.js/lib/languages/lisp.js |    102 -
 .../lib/languages/livecodeserver.js             |    156 -
 .../highlight.js/lib/languages/livescript.js    |    148 -
 node_modules/highlight.js/lib/languages/llvm.js |     88 -
 node_modules/highlight.js/lib/languages/lsl.js  |     82 -
 node_modules/highlight.js/lib/languages/lua.js  |     65 -
 .../highlight.js/lib/languages/makefile.js      |     44 -
 .../highlight.js/lib/languages/markdown.js      |    107 -
 .../highlight.js/lib/languages/mathematica.js   |     57 -
 .../highlight.js/lib/languages/matlab.js        |     87 -
 .../highlight.js/lib/languages/maxima.js        |    405 -
 node_modules/highlight.js/lib/languages/mel.js  |    224 -
 .../highlight.js/lib/languages/mercury.js       |     81 -
 .../highlight.js/lib/languages/mipsasm.js       |     85 -
 .../highlight.js/lib/languages/mizar.js         |     18 -
 .../highlight.js/lib/languages/mojolicious.js   |     24 -
 .../highlight.js/lib/languages/monkey.js        |     74 -
 .../highlight.js/lib/languages/moonscript.js    |    111 -
 node_modules/highlight.js/lib/languages/n1ql.js |     68 -
 .../highlight.js/lib/languages/nginx.js         |     92 -
 .../highlight.js/lib/languages/nimrod.js        |     54 -
 node_modules/highlight.js/lib/languages/nix.js  |     48 -
 node_modules/highlight.js/lib/languages/nsis.js |    105 -
 .../highlight.js/lib/languages/objectivec.js    |     90 -
 .../highlight.js/lib/languages/ocaml.js         |     70 -
 .../highlight.js/lib/languages/openscad.js      |     56 -
 .../highlight.js/lib/languages/oxygene.js       |     69 -
 .../highlight.js/lib/languages/parser3.js       |     47 -
 node_modules/highlight.js/lib/languages/perl.js |    156 -
 node_modules/highlight.js/lib/languages/pf.js   |     51 -
 node_modules/highlight.js/lib/languages/php.js  |    126 -
 node_modules/highlight.js/lib/languages/pony.js |     90 -
 .../highlight.js/lib/languages/powershell.js    |     80 -
 .../highlight.js/lib/languages/processing.js    |     47 -
 .../highlight.js/lib/languages/profile.js       |     29 -
 .../highlight.js/lib/languages/prolog.js        |     87 -
 .../highlight.js/lib/languages/protobuf.js      |     35 -
 .../highlight.js/lib/languages/puppet.js        |    114 -
 .../highlight.js/lib/languages/purebasic.js     |     57 -
 .../highlight.js/lib/languages/python.js        |    115 -
 node_modules/highlight.js/lib/languages/q.js    |     22 -
 node_modules/highlight.js/lib/languages/qml.js  |    168 -
 node_modules/highlight.js/lib/languages/r.js    |     69 -
 node_modules/highlight.js/lib/languages/rib.js  |     26 -
 .../highlight.js/lib/languages/roboconf.js      |     66 -
 node_modules/highlight.js/lib/languages/rsl.js  |     35 -
 node_modules/highlight.js/lib/languages/ruby.js |    175 -
 .../highlight.js/lib/languages/ruleslanguage.js |     60 -
 node_modules/highlight.js/lib/languages/rust.js |    107 -
 .../highlight.js/lib/languages/scala.js         |    114 -
 .../highlight.js/lib/languages/scheme.js        |    143 -
 .../highlight.js/lib/languages/scilab.js        |     53 -
 node_modules/highlight.js/lib/languages/scss.js |     97 -
 .../highlight.js/lib/languages/smali.js         |     55 -
 .../highlight.js/lib/languages/smalltalk.js     |     49 -
 node_modules/highlight.js/lib/languages/sml.js  |     65 -
 node_modules/highlight.js/lib/languages/sqf.js  |    370 -
 node_modules/highlight.js/lib/languages/sql.js  |    159 -
 node_modules/highlight.js/lib/languages/stan.js |     82 -
 .../highlight.js/lib/languages/stata.js         |     37 -
 .../highlight.js/lib/languages/step21.js        |     46 -
 .../highlight.js/lib/languages/stylus.js        |    453 -
 .../highlight.js/lib/languages/subunit.js       |     33 -
 .../highlight.js/lib/languages/swift.js         |    116 -
 .../highlight.js/lib/languages/taggerscript.js  |     43 -
 node_modules/highlight.js/lib/languages/tap.js  |     35 -
 node_modules/highlight.js/lib/languages/tcl.js  |     60 -
 node_modules/highlight.js/lib/languages/tex.js  |     61 -
 .../highlight.js/lib/languages/thrift.js        |     34 -
 node_modules/highlight.js/lib/languages/tp.js   |     83 -
 node_modules/highlight.js/lib/languages/twig.js |     65 -
 .../highlight.js/lib/languages/typescript.js    |    155 -
 node_modules/highlight.js/lib/languages/vala.js |     49 -
 .../highlight.js/lib/languages/vbnet.js         |     55 -
 .../highlight.js/lib/languages/vbscript-html.js |     11 -
 .../highlight.js/lib/languages/vbscript.js      |     38 -
 .../highlight.js/lib/languages/verilog.js       |     98 -
 node_modules/highlight.js/lib/languages/vhdl.js |     60 -
 node_modules/highlight.js/lib/languages/vim.js  |    105 -
 .../highlight.js/lib/languages/x86asm.js        |    135 -
 node_modules/highlight.js/lib/languages/xl.js   |     72 -
 node_modules/highlight.js/lib/languages/xml.js  |    102 -
 .../highlight.js/lib/languages/xquery.js        |     70 -
 node_modules/highlight.js/lib/languages/yaml.js |     87 -
 .../highlight.js/lib/languages/zephir.js        |    106 -
 node_modules/highlight.js/package.json          |   1056 -
 node_modules/highlight.js/styles/agate.css      |    108 -
 .../highlight.js/styles/androidstudio.css       |     66 -
 .../highlight.js/styles/arduino-light.css       |     88 -
 node_modules/highlight.js/styles/arta.css       |     73 -
 node_modules/highlight.js/styles/ascetic.css    |     45 -
 .../highlight.js/styles/atelier-cave-dark.css   |     83 -
 .../highlight.js/styles/atelier-cave-light.css  |     85 -
 .../highlight.js/styles/atelier-dune-dark.css   |     69 -
 .../highlight.js/styles/atelier-dune-light.css  |     69 -
 .../styles/atelier-estuary-dark.css             |     84 -
 .../styles/atelier-estuary-light.css            |     84 -
 .../highlight.js/styles/atelier-forest-dark.css |     69 -
 .../styles/atelier-forest-light.css             |     69 -
 .../highlight.js/styles/atelier-heath-dark.css  |     69 -
 .../highlight.js/styles/atelier-heath-light.css |     69 -
 .../styles/atelier-lakeside-dark.css            |     69 -
 .../styles/atelier-lakeside-light.css           |     69 -
 .../styles/atelier-plateau-dark.css             |     84 -
 .../styles/atelier-plateau-light.css            |     84 -
 .../styles/atelier-savanna-dark.css             |     84 -
 .../styles/atelier-savanna-light.css            |     84 -
 .../styles/atelier-seaside-dark.css             |     69 -
 .../styles/atelier-seaside-light.css            |     69 -
 .../styles/atelier-sulphurpool-dark.css         |     69 -
 .../styles/atelier-sulphurpool-light.css        |     69 -
 .../highlight.js/styles/atom-one-dark.css       |     96 -
 .../highlight.js/styles/atom-one-light.css      |     96 -
 .../highlight.js/styles/brown-paper.css         |     64 -
 .../highlight.js/styles/brown-papersq.png       |    Bin 18198 -> 0 bytes
 .../highlight.js/styles/codepen-embed.css       |     60 -
 .../highlight.js/styles/color-brewer.css        |     71 -
 node_modules/highlight.js/styles/darcula.css    |     77 -
 node_modules/highlight.js/styles/dark.css       |     63 -
 node_modules/highlight.js/styles/darkula.css    |      6 -
 node_modules/highlight.js/styles/default.css    |     99 -
 node_modules/highlight.js/styles/docco.css      |     97 -
 node_modules/highlight.js/styles/dracula.css    |     76 -
 node_modules/highlight.js/styles/far.css        |     71 -
 node_modules/highlight.js/styles/foundation.css |     88 -
 .../highlight.js/styles/github-gist.css         |     71 -
 node_modules/highlight.js/styles/github.css     |     99 -
 node_modules/highlight.js/styles/googlecode.css |     89 -
 node_modules/highlight.js/styles/grayscale.css  |    101 -
 .../highlight.js/styles/gruvbox-dark.css        |    108 -
 .../highlight.js/styles/gruvbox-light.css       |    108 -
 node_modules/highlight.js/styles/hopscotch.css  |     83 -
 node_modules/highlight.js/styles/hybrid.css     |    102 -
 node_modules/highlight.js/styles/idea.css       |     97 -
 node_modules/highlight.js/styles/ir-black.css   |     73 -
 .../highlight.js/styles/kimbie.dark.css         |     74 -
 .../highlight.js/styles/kimbie.light.css        |     74 -
 node_modules/highlight.js/styles/magula.css     |     70 -
 node_modules/highlight.js/styles/mono-blue.css  |     59 -
 .../highlight.js/styles/monokai-sublime.css     |     83 -
 node_modules/highlight.js/styles/monokai.css    |     70 -
 node_modules/highlight.js/styles/obsidian.css   |     88 -
 node_modules/highlight.js/styles/ocean.css      |     74 -
 .../highlight.js/styles/paraiso-dark.css        |     72 -
 .../highlight.js/styles/paraiso-light.css       |     72 -
 node_modules/highlight.js/styles/pojoaque.css   |     83 -
 node_modules/highlight.js/styles/pojoaque.jpg   |    Bin 1186 -> 0 bytes
 node_modules/highlight.js/styles/purebasic.css  |     96 -
 .../highlight.js/styles/qtcreator_dark.css      |     83 -
 .../highlight.js/styles/qtcreator_light.css     |     83 -
 node_modules/highlight.js/styles/railscasts.css |    106 -
 node_modules/highlight.js/styles/rainbow.css    |     85 -
 .../highlight.js/styles/school-book.css         |     72 -
 .../highlight.js/styles/school-book.png         |    Bin 486 -> 0 bytes
 .../highlight.js/styles/solarized-dark.css      |     84 -
 .../highlight.js/styles/solarized-light.css     |     84 -
 node_modules/highlight.js/styles/sunburst.css   |    102 -
 .../highlight.js/styles/tomorrow-night-blue.css |     75 -
 .../styles/tomorrow-night-bright.css            |     74 -
 .../styles/tomorrow-night-eighties.css          |     74 -
 .../highlight.js/styles/tomorrow-night.css      |     75 -
 node_modules/highlight.js/styles/tomorrow.css   |     72 -
 node_modules/highlight.js/styles/vs.css         |     68 -
 node_modules/highlight.js/styles/xcode.css      |     93 -
 node_modules/highlight.js/styles/xt256.css      |     92 -
 node_modules/highlight.js/styles/zenburn.css    |     80 -
 node_modules/hoek/.npmignore                    |     18 -
 node_modules/hoek/.travis.yml                   |      7 -
 node_modules/hoek/CONTRIBUTING.md               |      1 -
 node_modules/hoek/LICENSE                       |     31 -
 node_modules/hoek/README.md                     |    584 -
 node_modules/hoek/images/hoek.png               |    Bin 37939 -> 0 bytes
 node_modules/hoek/lib/escape.js                 |    132 -
 node_modules/hoek/lib/index.js                  |    993 -
 node_modules/hoek/package.json                  |     97 -
 node_modules/hoek/test/escaper.js               |     88 -
 node_modules/hoek/test/index.js                 |   2513 -
 node_modules/hoek/test/modules/ignore.txt       |      0
 node_modules/hoek/test/modules/test1.js         |      1 -
 node_modules/hoek/test/modules/test2.js         |      1 -
 node_modules/hoek/test/modules/test3.js         |      1 -
 node_modules/html-entities/LICENSE              |     19 -
 node_modules/html-entities/README.md            |     61 -
 node_modules/html-entities/index.js             |      6 -
 .../html-entities/lib/html4-entities.js         |    147 -
 .../html-entities/lib/html5-entities.js         |    190 -
 node_modules/html-entities/lib/xml-entities.js  |    155 -
 node_modules/html-entities/package.json         |    117 -
 node_modules/htmlparser2/.gitattributes         |      2 -
 node_modules/htmlparser2/.jscsrc                |     30 -
 node_modules/htmlparser2/.travis.yml            |      8 -
 node_modules/htmlparser2/LICENSE                |     18 -
 node_modules/htmlparser2/README.md              |     91 -
 .../htmlparser2/lib/CollectingHandler.js        |     55 -
 node_modules/htmlparser2/lib/FeedHandler.js     |     95 -
 node_modules/htmlparser2/lib/Parser.js          |    350 -
 node_modules/htmlparser2/lib/ProxyHandler.js    |     27 -
 node_modules/htmlparser2/lib/Stream.js          |     35 -
 node_modules/htmlparser2/lib/Tokenizer.js       |    906 -
 node_modules/htmlparser2/lib/WritableStream.js  |     21 -
 node_modules/htmlparser2/lib/index.js           |     68 -
 .../node_modules/entities/.travis.yml           |      7 -
 .../htmlparser2/node_modules/entities/LICENSE   |     11 -
 .../htmlparser2/node_modules/entities/index.js  |     31 -
 .../node_modules/entities/lib/decode.js         |     72 -
 .../entities/lib/decode_codepoint.js            |     26 -
 .../node_modules/entities/lib/encode.js         |     48 -
 .../node_modules/entities/maps/decode.json      |      1 -
 .../node_modules/entities/maps/entities.json    |      1 -
 .../node_modules/entities/maps/legacy.json      |      1 -
 .../node_modules/entities/maps/xml.json         |      1 -
 .../node_modules/entities/package.json          |    115 -
 .../htmlparser2/node_modules/entities/readme.md |     31 -
 .../node_modules/entities/test/mocha.opts       |      2 -
 .../node_modules/entities/test/test.js          |    150 -
 node_modules/htmlparser2/package.json           |    131 -
 node_modules/htmlparser2/test/01-events.js      |      9 -
 node_modules/htmlparser2/test/02-stream.js      |     23 -
 node_modules/htmlparser2/test/03-feed.js        |     19 -
 .../htmlparser2/test/Documents/Atom_Example.xml |     25 -
 .../htmlparser2/test/Documents/Attributes.html  |     16 -
 .../htmlparser2/test/Documents/Basic.html       |      1 -
 .../htmlparser2/test/Documents/RDF_Example.xml  |     63 -
 .../htmlparser2/test/Documents/RSS_Example.xml  |     48 -
 .../htmlparser2/test/Events/01-simple.json      |     44 -
 .../htmlparser2/test/Events/02-template.json    |     63 -
 .../test/Events/03-lowercase_tags.json          |     46 -
 .../htmlparser2/test/Events/04-cdata.json       |     50 -
 .../test/Events/05-cdata-special.json           |     35 -
 .../htmlparser2/test/Events/06-leading-lt.json  |     16 -
 .../test/Events/07-self-closing.json            |     67 -
 .../test/Events/08-implicit-close-tags.json     |     71 -
 .../htmlparser2/test/Events/09-attributes.json  |     68 -
 .../test/Events/10-crazy-attrib.json            |     52 -
 .../test/Events/11-script_in_script.json        |     54 -
 .../test/Events/12-long-comment-end.json        |     20 -
 .../test/Events/13-long-cdata-end.json          |     22 -
 .../test/Events/14-implicit-open-tags.json      |     27 -
 .../test/Events/15-lt-whitespace.json           |     16 -
 .../test/Events/16-double_attribs.json          |     45 -
 .../test/Events/17-numeric_entities.json        |     16 -
 .../test/Events/18-legacy_entities.json         |     16 -
 .../test/Events/19-named_entities.json          |     16 -
 .../test/Events/20-xml_entities.json            |     16 -
 .../test/Events/21-entity_in_attribute.json     |     38 -
 .../test/Events/22-double_brackets.json         |     41 -
 .../test/Events/23-legacy_entity_fail.json      |     16 -
 .../test/Events/24-special_special.json         |    133 -
 .../test/Events/25-empty_tag_name.json          |     13 -
 .../test/Events/26-not-quite-closed.json        |     35 -
 .../test/Events/27-entities_in_attributes.json  |     62 -
 .../test/Events/28-cdata_in_html.json           |      9 -
 .../test/Events/29-comment_edge-cases.json      |     18 -
 .../test/Events/30-cdata_edge-cases.json        |     22 -
 .../test/Events/31-comment_false-ending.json    |      9 -
 node_modules/htmlparser2/test/Feeds/01-rss.js   |     34 -
 node_modules/htmlparser2/test/Feeds/02-atom.js  |     18 -
 node_modules/htmlparser2/test/Feeds/03-rdf.js   |     20 -
 .../htmlparser2/test/Stream/01-basic.json       |     83 -
 .../htmlparser2/test/Stream/02-RSS.json         |   1093 -
 .../htmlparser2/test/Stream/03-Atom.json        |    678 -
 .../htmlparser2/test/Stream/04-RDF.json         |   1399 -
 .../htmlparser2/test/Stream/05-Attributes.json  |    354 -
 node_modules/htmlparser2/test/api.js            |     75 -
 node_modules/htmlparser2/test/test-helper.js    |     83 -
 node_modules/http-errors/HISTORY.md             |    118 -
 node_modules/http-errors/LICENSE                |     23 -
 node_modules/http-errors/README.md              |    135 -
 node_modules/http-errors/index.js               |    260 -
 node_modules/http-errors/package.json           |    132 -
 node_modules/http-signature/.dir-locals.el      |      6 -
 node_modules/http-signature/.npmignore          |      7 -
 node_modules/http-signature/CHANGES.md          |     46 -
 node_modules/http-signature/LICENSE             |     18 -
 node_modules/http-signature/README.md           |     79 -
 node_modules/http-signature/http_signing.md     |    363 -
 node_modules/http-signature/lib/index.js        |     29 -
 node_modules/http-signature/lib/parser.js       |    318 -
 node_modules/http-signature/lib/signer.js       |    399 -
 node_modules/http-signature/lib/utils.js        |    112 -
 node_modules/http-signature/lib/verify.js       |     88 -
 node_modules/http-signature/package.json        |    117 -
 node_modules/inflight/LICENSE                   |     15 -
 node_modules/inflight/README.md                 |     37 -
 node_modules/inflight/inflight.js               |     54 -
 node_modules/inflight/package.json              |    106 -
 node_modules/inherits/LICENSE                   |     16 -
 node_modules/inherits/README.md                 |     42 -
 node_modules/inherits/inherits.js               |      7 -
 node_modules/inherits/inherits_browser.js       |     23 -
 node_modules/inherits/package.json              |    101 -
 node_modules/invert-kv/index.js                 |     15 -
 node_modules/invert-kv/package.json             |     97 -
 node_modules/invert-kv/readme.md                |     25 -
 node_modules/is-binary-path/index.js            |     12 -
 node_modules/is-binary-path/license             |     21 -
 node_modules/is-binary-path/package.json        |    111 -
 node_modules/is-binary-path/readme.md           |     34 -
 node_modules/is-buffer/.npmignore               |      2 -
 node_modules/is-buffer/LICENSE                  |     21 -
 node_modules/is-buffer/README.md                |     49 -
 node_modules/is-buffer/index.js                 |     21 -
 node_modules/is-buffer/package.json             |    113 -
 node_modules/is-buffer/test/basic.js            |     25 -
 node_modules/is-dotfile/LICENSE                 |     21 -
 node_modules/is-dotfile/README.md               |     74 -
 node_modules/is-dotfile/index.js                |     15 -
 node_modules/is-dotfile/package.json            |    117 -
 node_modules/is-equal-shallow/LICENSE           |     21 -
 node_modules/is-equal-shallow/README.md         |     90 -
 node_modules/is-equal-shallow/index.js          |     27 -
 node_modules/is-equal-shallow/package.json      |    121 -
 node_modules/is-extendable/LICENSE              |     21 -
 node_modules/is-extendable/README.md            |     72 -
 node_modules/is-extendable/index.js             |     13 -
 node_modules/is-extendable/package.json         |    115 -
 node_modules/is-extglob/LICENSE                 |     21 -
 node_modules/is-extglob/README.md               |     75 -
 node_modules/is-extglob/index.js                |     11 -
 node_modules/is-extglob/package.json            |    111 -
 node_modules/is-fullwidth-code-point/index.js   |     46 -
 node_modules/is-fullwidth-code-point/license    |     21 -
 .../is-fullwidth-code-point/package.json        |    109 -
 node_modules/is-fullwidth-code-point/readme.md  |     39 -
 node_modules/is-glob/LICENSE                    |     21 -
 node_modules/is-glob/README.md                  |    105 -
 node_modules/is-glob/index.js                   |     14 -
 node_modules/is-glob/package.json               |    128 -
 node_modules/is-number/LICENSE                  |     21 -
 node_modules/is-number/README.md                |    103 -
 node_modules/is-number/index.js                 |     19 -
 node_modules/is-number/package.json             |    127 -
 node_modules/is-plain-object/LICENSE            |     21 -
 node_modules/is-plain-object/README.md          |     84 -
 node_modules/is-plain-object/index.js           |     37 -
 .../node_modules/isobject/LICENSE               |     21 -
 .../node_modules/isobject/README.md             |     81 -
 .../node_modules/isobject/index.js              |     13 -
 .../node_modules/isobject/package.json          |    110 -
 node_modules/is-plain-object/package.json       |    118 -
 node_modules/is-posix-bracket/LICENSE           |     21 -
 node_modules/is-posix-bracket/README.md         |     88 -
 node_modules/is-posix-bracket/index.js          |     10 -
 node_modules/is-posix-bracket/package.json      |    132 -
 node_modules/is-primitive/LICENSE               |     21 -
 node_modules/is-primitive/README.md             |     57 -
 node_modules/is-primitive/index.js              |     13 -
 node_modules/is-primitive/package.json          |    105 -
 node_modules/is-typedarray/LICENSE.md           |     18 -
 node_modules/is-typedarray/README.md            |     16 -
 node_modules/is-typedarray/index.js             |     41 -
 node_modules/is-typedarray/package.json         |     91 -
 node_modules/is-typedarray/test.js              |     34 -
 node_modules/isarray/README.md                  |     54 -
 node_modules/isarray/build/build.js             |    209 -
 node_modules/isarray/component.json             |     19 -
 node_modules/isarray/index.js                   |      3 -
 node_modules/isarray/package.json               |     87 -
 node_modules/isexe/.npmignore                   |      2 -
 node_modules/isexe/LICENSE                      |     15 -
 node_modules/isexe/README.md                    |     51 -
 node_modules/isexe/access.js                    |     15 -
 node_modules/isexe/index.js                     |     59 -
 node_modules/isexe/mode.js                      |     37 -
 node_modules/isexe/package.json                 |     93 -
 node_modules/isexe/test/basic.js                |    211 -
 node_modules/isexe/windows.js                   |     36 -
 node_modules/isobject/LICENSE                   |     21 -
 node_modules/isobject/README.md                 |    112 -
 node_modules/isobject/index.js                  |     14 -
 .../isobject/node_modules/isarray/.npmignore    |      1 -
 .../isobject/node_modules/isarray/.travis.yml   |      4 -
 .../isobject/node_modules/isarray/Makefile      |      6 -
 .../isobject/node_modules/isarray/README.md     |     60 -
 .../node_modules/isarray/component.json         |     19 -
 .../isobject/node_modules/isarray/index.js      |      5 -
 .../isobject/node_modules/isarray/package.json  |    105 -
 .../isobject/node_modules/isarray/test.js       |     20 -
 node_modules/isobject/package.json              |    138 -
 node_modules/isstream/.jshintrc                 |     59 -
 node_modules/isstream/.npmignore                |      1 -
 node_modules/isstream/.travis.yml               |     12 -
 node_modules/isstream/LICENSE.md                |     11 -
 node_modules/isstream/README.md                 |     66 -
 node_modules/isstream/isstream.js               |     27 -
 node_modules/isstream/package.json              |     94 -
 node_modules/isstream/test.js                   |    168 -
 node_modules/jodid25519/.npmignore              |     11 -
 node_modules/jodid25519/.travis.yml             |      7 -
 node_modules/jodid25519/AUTHORS.md              |      3 -
 node_modules/jodid25519/LICENSE                 |     23 -
 node_modules/jodid25519/README.md               |     51 -
 node_modules/jodid25519/almond.0                |     42 -
 node_modules/jodid25519/almond.1                |     13 -
 node_modules/jodid25519/index.js                |     35 -
 node_modules/jodid25519/jsdoc.json              |     19 -
 node_modules/jodid25519/lib/core.js             |    481 -
 node_modules/jodid25519/lib/curve255.js         |    221 -
 node_modules/jodid25519/lib/dh.js               |    111 -
 node_modules/jodid25519/lib/eddsa.js            |    573 -
 node_modules/jodid25519/lib/utils.js            |    198 -
 node_modules/jodid25519/package.json            |    105 -
 node_modules/js-yaml/CHANGELOG.md               |    431 -
 node_modules/js-yaml/LICENSE                    |     21 -
 node_modules/js-yaml/README.md                  |    312 -
 node_modules/js-yaml/bin/js-yaml.js             |    132 -
 node_modules/js-yaml/dist/js-yaml.js            |   3868 -
 node_modules/js-yaml/dist/js-yaml.min.js        |      3 -
 node_modules/js-yaml/index.js                   |      7 -
 node_modules/js-yaml/lib/js-yaml.js             |     39 -
 node_modules/js-yaml/lib/js-yaml/common.js      |     59 -
 node_modules/js-yaml/lib/js-yaml/dumper.js      |    801 -
 node_modules/js-yaml/lib/js-yaml/exception.js   |     43 -
 node_modules/js-yaml/lib/js-yaml/loader.js      |   1591 -
 node_modules/js-yaml/lib/js-yaml/mark.js        |     76 -
 node_modules/js-yaml/lib/js-yaml/schema.js      |    108 -
 node_modules/js-yaml/lib/js-yaml/schema/core.js |     18 -
 .../js-yaml/lib/js-yaml/schema/default_full.js  |     25 -
 .../js-yaml/lib/js-yaml/schema/default_safe.js  |     28 -
 .../js-yaml/lib/js-yaml/schema/failsafe.js      |     17 -
 node_modules/js-yaml/lib/js-yaml/schema/json.js |     25 -
 node_modules/js-yaml/lib/js-yaml/type.js        |     61 -
 node_modules/js-yaml/lib/js-yaml/type/binary.js |    138 -
 node_modules/js-yaml/lib/js-yaml/type/bool.js   |     35 -
 node_modules/js-yaml/lib/js-yaml/type/float.js  |    111 -
 node_modules/js-yaml/lib/js-yaml/type/int.js    |    168 -
 .../js-yaml/lib/js-yaml/type/js/function.js     |     84 -
 .../js-yaml/lib/js-yaml/type/js/regexp.js       |     60 -
 .../js-yaml/lib/js-yaml/type/js/undefined.js    |     28 -
 node_modules/js-yaml/lib/js-yaml/type/map.js    |      8 -
 node_modules/js-yaml/lib/js-yaml/type/merge.js  |     12 -
 node_modules/js-yaml/lib/js-yaml/type/null.js   |     34 -
 node_modules/js-yaml/lib/js-yaml/type/omap.js   |     44 -
 node_modules/js-yaml/lib/js-yaml/type/pairs.js  |     53 -
 node_modules/js-yaml/lib/js-yaml/type/seq.js    |      8 -
 node_modules/js-yaml/lib/js-yaml/type/set.js    |     29 -
 node_modules/js-yaml/lib/js-yaml/type/str.js    |      8 -
 .../js-yaml/lib/js-yaml/type/timestamp.js       |     88 -
 node_modules/js-yaml/node_modules/.bin/esparse  |      1 -
 .../js-yaml/node_modules/.bin/esvalidate        |      1 -
 .../js-yaml/node_modules/esprima/ChangeLog      |    209 -
 .../js-yaml/node_modules/esprima/LICENSE.BSD    |     21 -
 .../js-yaml/node_modules/esprima/README.md      |     44 -
 .../js-yaml/node_modules/esprima/bin/esparse.js |    139 -
 .../node_modules/esprima/bin/esvalidate.js      |    236 -
 .../node_modules/esprima/dist/esprima.js        |   6401 -
 .../js-yaml/node_modules/esprima/package.json   |    164 -
 node_modules/js-yaml/package.json               |    129 -
 node_modules/jsbn/.npmignore                    |      2 -
 node_modules/jsbn/LICENSE                       |     40 -
 node_modules/jsbn/README.md                     |    175 -
 node_modules/jsbn/example.html                  |     12 -
 node_modules/jsbn/example.js                    |      3 -
 node_modules/jsbn/index.js                      |   1357 -
 node_modules/jsbn/package.json                  |     92 -
 node_modules/jsdom/Changelog.md                 |   1003 -
 node_modules/jsdom/LICENSE.txt                  |     22 -
 node_modules/jsdom/README.md                    |    539 -
 node_modules/jsdom/lib/README.md                |     17 -
 node_modules/jsdom/lib/jsdom.js                 |    403 -
 node_modules/jsdom/lib/jsdom/browser/Window.js  |    424 -
 .../lib/jsdom/browser/default-stylesheet.js     |   1129 -
 .../jsdom/lib/jsdom/browser/documentAdapter.js  |     65 -
 .../jsdom/lib/jsdom/browser/documentfeatures.js |     48 -
 .../jsdom/lib/jsdom/browser/domtohtml.js        |     18 -
 node_modules/jsdom/lib/jsdom/browser/history.js |     92 -
 .../jsdom/lib/jsdom/browser/htmltodom.js        |    299 -
 .../jsdom/lib/jsdom/browser/location.js         |     67 -
 .../jsdom/lib/jsdom/browser/not-implemented.js  |     10 -
 .../jsdom/lib/jsdom/browser/resource-loader.js  |    220 -
 node_modules/jsdom/lib/jsdom/level1/core.js     |    988 -
 node_modules/jsdom/lib/jsdom/level2/core.js     |     39 -
 node_modules/jsdom/lib/jsdom/level2/events.js   |    157 -
 node_modules/jsdom/lib/jsdom/level2/html.js     |   2545 -
 .../lib/jsdom/level2/languages/javascript.js    |     20 -
 node_modules/jsdom/lib/jsdom/level2/style.js    |    198 -
 node_modules/jsdom/lib/jsdom/level3/core.js     |    534 -
 node_modules/jsdom/lib/jsdom/level3/ls.js       |    211 -
 node_modules/jsdom/lib/jsdom/level3/xpath.js    |   1877 -
 .../jsdom/lib/jsdom/living/attributes.js        |    419 -
 .../lib/jsdom/living/attributes/Attr-impl.js    |     82 -
 .../jsdom/lib/jsdom/living/blob-symbols.js      |      7 -
 node_modules/jsdom/lib/jsdom/living/blob.js     |     76 -
 .../jsdom/lib/jsdom/living/character-data.js    |    113 -
 node_modules/jsdom/lib/jsdom/living/comment.js  |     14 -
 .../jsdom/lib/jsdom/living/document-type.js     |     47 -
 node_modules/jsdom/lib/jsdom/living/document.js |    162 -
 .../lib/jsdom/living/dom-implementation.js      |     90 -
 .../jsdom/lib/jsdom/living/dom-token-list.js    |    193 -
 node_modules/jsdom/lib/jsdom/living/element.js  |    215 -
 .../lib/jsdom/living/events/CustomEvent-impl.js |     18 -
 .../lib/jsdom/living/events/ErrorEvent-impl.js  |     11 -
 .../jsdom/lib/jsdom/living/events/Event-impl.js |     87 -
 .../lib/jsdom/living/events/EventTarget-impl.js |    244 -
 .../jsdom/living/events/HashChangeEvent-impl.js |     11 -
 .../jsdom/living/events/KeyboardEvent-impl.js   |     21 -
 .../jsdom/living/events/MessageEvent-impl.js    |     22 -
 .../lib/jsdom/living/events/MouseEvent-impl.js  |     28 -
 .../jsdom/living/events/MutationEvent-impl.js   |     22 -
 .../jsdom/living/events/ProgressEvent-impl.js   |     11 -
 .../lib/jsdom/living/events/TouchEvent-impl.js  |     11 -
 .../lib/jsdom/living/events/UIEvent-impl.js     |     19 -
 .../jsdom/lib/jsdom/living/file-reader.js       |    145 -
 .../jsdom/lib/jsdom/living/file-symbols.js      |      3 -
 node_modules/jsdom/lib/jsdom/living/file.js     |     21 -
 .../jsdom/lib/jsdom/living/filelist-symbols.js  |      3 -
 node_modules/jsdom/lib/jsdom/living/filelist.js |     21 -
 .../jsdom/lib/jsdom/living/form-data-symbols.js |      3 -
 .../jsdom/lib/jsdom/living/form-data.js         |     79 -
 .../jsdom/lib/jsdom/living/generated/.gitkeep   |      0
 .../jsdom/lib/jsdom/living/generated/Attr.js    |    118 -
 .../lib/jsdom/living/generated/CustomEvent.js   |     77 -
 .../jsdom/living/generated/CustomEventInit.js   |     34 -
 .../lib/jsdom/living/generated/ErrorEvent.js    |     92 -
 .../jsdom/living/generated/ErrorEventInit.js    |     56 -
 .../jsdom/lib/jsdom/living/generated/Event.js   |    208 -
 .../lib/jsdom/living/generated/EventInit.js     |     40 -
 .../jsdom/living/generated/EventModifierInit.js |    146 -
 .../lib/jsdom/living/generated/EventTarget.js   |     85 -
 .../living/generated/HTMLTemplateElement.js     |     45 -
 .../jsdom/living/generated/HashChangeEvent.js   |     68 -
 .../living/generated/HashChangeEventInit.js     |     38 -
 .../lib/jsdom/living/generated/KeyboardEvent.js |    220 -
 .../jsdom/living/generated/KeyboardEventInit.js |     90 -
 .../lib/jsdom/living/generated/MessageEvent.js  |    111 -
 .../jsdom/living/generated/MessageEventInit.js  |     56 -
 .../lib/jsdom/living/generated/MouseEvent.js    |    181 -
 .../jsdom/living/generated/MouseEventInit.js    |     82 -
 .../lib/jsdom/living/generated/MutationEvent.js |    125 -
 .../lib/jsdom/living/generated/ProgressEvent.js |     77 -
 .../jsdom/living/generated/ProgressEventInit.js |     50 -
 .../lib/jsdom/living/generated/TouchEvent.js    |     93 -
 .../jsdom/lib/jsdom/living/generated/UIEvent.js |     85 -
 .../lib/jsdom/living/generated/UIEventInit.js   |     42 -
 .../lib/jsdom/living/generated/idl-utils.js     |     20 -
 .../jsdom/lib/jsdom/living/generated/utils.js   |     20 -
 .../jsdom/living/helpers/document-base-url.js   |     43 -
 .../jsdom/living/helpers/internal-constants.js  |     17 -
 .../jsdom/living/helpers/ordered-set-parser.js  |      5 -
 .../helpers/proxied-window-event-handlers.js    |     11 -
 .../living/helpers/runtime-script-errors.js     |     61 -
 .../lib/jsdom/living/helpers/validate-names.js  |     62 -
 .../jsdom/lib/jsdom/living/html-collection.js   |     95 -
 node_modules/jsdom/lib/jsdom/living/index.js    |     39 -
 .../lib/jsdom/living/named-properties-window.js |    137 -
 .../jsdom/lib/jsdom/living/node-filter.js       |     47 -
 .../jsdom/lib/jsdom/living/node-iterator.js     |    229 -
 .../jsdom/lib/jsdom/living/node-list.js         |     83 -
 .../jsdom/lib/jsdom/living/node-type.js         |     16 -
 node_modules/jsdom/lib/jsdom/living/node.js     |    250 -
 .../living/non-document-type-child-node.js      |     29 -
 .../jsdom/lib/jsdom/living/parent-node.js       |     50 -
 .../jsdom/lib/jsdom/living/post-message.js      |     36 -
 .../lib/jsdom/living/processing-instruction.js  |     18 -
 .../jsdom/lib/jsdom/living/selectors.js         |     71 -
 node_modules/jsdom/lib/jsdom/living/text.js     |     43 -
 node_modules/jsdom/lib/jsdom/living/url.js      |      7 -
 .../jsdom/lib/jsdom/living/xhr-sync-worker.js   |     45 -
 .../jsdom/lib/jsdom/living/xhr-utils.js         |    213 -
 .../jsdom/living/xmlhttprequest-event-target.js |     23 -
 .../lib/jsdom/living/xmlhttprequest-symbols.js  |      4 -
 .../lib/jsdom/living/xmlhttprequest-upload.js   |     17 -
 .../jsdom/lib/jsdom/living/xmlhttprequest.js    |    692 -
 .../jsdom/lib/jsdom/named-properties-tracker.js |    156 -
 node_modules/jsdom/lib/jsdom/utils.js           |    292 -
 node_modules/jsdom/lib/jsdom/virtual-console.js |     33 -
 node_modules/jsdom/lib/jsdom/vm-shim.js         |    105 -
 .../jsdom/lib/jsdom/web-idl/DOMException.js     |     41 -
 .../lib/jsdom/web-idl/dom-exception-table.json  |    134 -
 node_modules/jsdom/package.json                 |    136 -
 node_modules/json-schema/README.md              |      5 -
 node_modules/json-schema/draft-00/hyper-schema  |     68 -
 node_modules/json-schema/draft-00/json-ref      |     26 -
 node_modules/json-schema/draft-00/links         |     33 -
 node_modules/json-schema/draft-00/schema        |    155 -
 node_modules/json-schema/draft-01/hyper-schema  |     68 -
 node_modules/json-schema/draft-01/json-ref      |     26 -
 node_modules/json-schema/draft-01/links         |     33 -
 node_modules/json-schema/draft-01/schema        |    155 -
 node_modules/json-schema/draft-02/hyper-schema  |     68 -
 node_modules/json-schema/draft-02/json-ref      |     26 -
 node_modules/json-schema/draft-02/links         |     35 -
 node_modules/json-schema/draft-02/schema        |    166 -
 .../json-schema/draft-03/examples/address       |     20 -
 .../json-schema/draft-03/examples/calendar      |     53 -
 node_modules/json-schema/draft-03/examples/card |    105 -
 node_modules/json-schema/draft-03/examples/geo  |      8 -
 .../json-schema/draft-03/examples/interfaces    |     23 -
 node_modules/json-schema/draft-03/hyper-schema  |     60 -
 node_modules/json-schema/draft-03/json-ref      |     26 -
 node_modules/json-schema/draft-03/links         |     35 -
 node_modules/json-schema/draft-03/schema        |    174 -
 node_modules/json-schema/draft-04/hyper-schema  |     60 -
 node_modules/json-schema/draft-04/links         |     41 -
 node_modules/json-schema/draft-04/schema        |    189 -
 .../json-schema/draft-zyp-json-schema-03.xml    |   1120 -
 .../json-schema/draft-zyp-json-schema-04.xml    |   1072 -
 node_modules/json-schema/lib/links.js           |     66 -
 node_modules/json-schema/lib/validate.js        |    273 -
 node_modules/json-schema/package.json           |    101 -
 node_modules/json-schema/test/tests.js          |     95 -
 node_modules/json-stable-stringify/.npmignore   |      1 -
 node_modules/json-stable-stringify/.travis.yml  |      4 -
 node_modules/json-stable-stringify/LICENSE      |     18 -
 .../json-stable-stringify/example/key_cmp.js    |      7 -
 .../json-stable-stringify/example/nested.js     |      3 -
 .../json-stable-stringify/example/str.js        |      3 -
 .../json-stable-stringify/example/value_cmp.js  |      7 -
 node_modules/json-stable-stringify/index.js     |     84 -
 node_modules/json-stable-stringify/package.json |    110 -
 .../json-stable-stringify/readme.markdown       |    130 -
 node_modules/json-stable-stringify/test/cmp.js  |     11 -
 .../json-stable-stringify/test/nested.js        |     35 -
 .../json-stable-stringify/test/replacer.js      |     74 -
 .../json-stable-stringify/test/space.js         |     59 -
 node_modules/json-stable-stringify/test/str.js  |     32 -
 .../json-stable-stringify/test/to-json.js       |     20 -
 node_modules/json-stringify-safe/.npmignore     |      1 -
 node_modules/json-stringify-safe/CHANGELOG.md   |     14 -
 node_modules/json-stringify-safe/LICENSE        |     15 -
 node_modules/json-stringify-safe/Makefile       |     35 -
 node_modules/json-stringify-safe/README.md      |     52 -
 node_modules/json-stringify-safe/package.json   |    103 -
 node_modules/json-stringify-safe/stringify.js   |     27 -
 .../json-stringify-safe/test/mocha.opts         |      2 -
 .../json-stringify-safe/test/stringify_test.js  |    246 -
 node_modules/jsonify/README.markdown            |     34 -
 node_modules/jsonify/index.js                   |      2 -
 node_modules/jsonify/lib/parse.js               |    273 -
 node_modules/jsonify/lib/stringify.js           |    154 -
 node_modules/jsonify/package.json               |     91 -
 node_modules/jsonify/test/parse.js              |     16 -
 node_modules/jsonify/test/stringify.js          |     15 -
 node_modules/jsonparse/.npmignore               |      1 -
 node_modules/jsonparse/LICENSE                  |     24 -
 node_modules/jsonparse/README.markdown          |     11 -
 node_modules/jsonparse/bench.js                 |     26 -
 node_modules/jsonparse/examples/twitterfeed.js  |     30 -
 node_modules/jsonparse/jsonparse.js             |    400 -
 node_modules/jsonparse/package.json             |     99 -
 node_modules/jsonparse/samplejson/basic.json    |    167 -
 node_modules/jsonparse/samplejson/basic2.json   |    180 -
 node_modules/jsonparse/test/big-token.js        |     24 -
 node_modules/jsonparse/test/boundary.js         |    110 -
 node_modules/jsonparse/test/offset.js           |     67 -
 node_modules/jsonparse/test/primitives.js       |     57 -
 node_modules/jsonparse/test/unvalid.js          |     15 -
 node_modules/jsonparse/test/utf8.js             |     38 -
 node_modules/jsprim/CHANGES.md                  |     43 -
 node_modules/jsprim/LICENSE                     |     19 -
 node_modules/jsprim/README.md                   |    292 -
 node_modules/jsprim/lib/jsprim.js               |    735 -
 .../jsprim/node_modules/assert-plus/AUTHORS     |      6 -
 .../jsprim/node_modules/assert-plus/CHANGES.md  |     14 -
 .../jsprim/node_modules/assert-plus/README.md   |    162 -
 .../jsprim/node_modules/assert-plus/assert.js   |    211 -
 .../node_modules/assert-plus/package.json       |    116 -
 node_modules/jsprim/package.json                |     87 -
 node_modules/kind-of/LICENSE                    |     21 -
 node_modules/kind-of/README.md                  |    258 -
 node_modules/kind-of/index.js                   |    116 -
 node_modules/kind-of/package.json               |    176 -
 node_modules/lcid/index.js                      |     22 -
 node_modules/lcid/lcid.json                     |    203 -
 node_modules/lcid/license                       |     21 -
 node_modules/lcid/package.json                  |    110 -
 node_modules/lcid/readme.md                     |     35 -
 node_modules/levn/LICENSE                       |     22 -
 node_modules/levn/README.md                     |    196 -
 node_modules/levn/lib/cast.js                   |    298 -
 node_modules/levn/lib/coerce.js                 |    285 -
 node_modules/levn/lib/index.js                  |     22 -
 node_modules/levn/lib/parse-string.js           |    113 -
 node_modules/levn/lib/parse.js                  |    102 -
 node_modules/levn/package.json                  |    109 -
 node_modules/lodash/LICENSE                     |     47 -
 node_modules/lodash/README.md                   |     39 -
 node_modules/lodash/_DataView.js                |      7 -
 node_modules/lodash/_Hash.js                    |     32 -
 node_modules/lodash/_LazyWrapper.js             |     28 -
 node_modules/lodash/_ListCache.js               |     32 -
 node_modules/lodash/_LodashWrapper.js           |     22 -
 node_modules/lodash/_Map.js                     |      7 -
 node_modules/lodash/_MapCache.js                |     32 -
 node_modules/lodash/_Promise.js                 |      7 -
 node_modules/lodash/_Set.js                     |      7 -
 node_modules/lodash/_SetCache.js                |     27 -
 node_modules/lodash/_Stack.js                   |     27 -
 node_modules/lodash/_Symbol.js                  |      6 -
 node_modules/lodash/_Uint8Array.js              |      6 -
 node_modules/lodash/_WeakMap.js                 |      7 -
 node_modules/lodash/_addMapEntry.js             |     15 -
 node_modules/lodash/_addSetEntry.js             |     15 -
 node_modules/lodash/_apply.js                   |     21 -
 node_modules/lodash/_arrayAggregator.js         |     22 -
 node_modules/lodash/_arrayEach.js               |     22 -
 node_modules/lodash/_arrayEachRight.js          |     21 -
 node_modules/lodash/_arrayEvery.js              |     23 -
 node_modules/lodash/_arrayFilter.js             |     25 -
 node_modules/lodash/_arrayIncludes.js           |     17 -
 node_modules/lodash/_arrayIncludesWith.js       |     22 -
 node_modules/lodash/_arrayLikeKeys.js           |     49 -
 node_modules/lodash/_arrayMap.js                |     21 -
 node_modules/lodash/_arrayPush.js               |     20 -
 node_modules/lodash/_arrayReduce.js             |     26 -
 node_modules/lodash/_arrayReduceRight.js        |     24 -
 node_modules/lodash/_arraySample.js             |     15 -
 node_modules/lodash/_arraySampleSize.js         |     17 -
 node_modules/lodash/_arrayShuffle.js            |     15 -
 node_modules/lodash/_arraySome.js               |     23 -
 node_modules/lodash/_asciiSize.js               |     12 -
 node_modules/lodash/_asciiToArray.js            |     12 -
 node_modules/lodash/_asciiWords.js              |     15 -
 node_modules/lodash/_assignMergeValue.js        |     20 -
 node_modules/lodash/_assignValue.js             |     28 -
 node_modules/lodash/_assocIndexOf.js            |     21 -
 node_modules/lodash/_baseAggregator.js          |     21 -
 node_modules/lodash/_baseAssign.js              |     17 -
 node_modules/lodash/_baseAssignIn.js            |     17 -
 node_modules/lodash/_baseAssignValue.js         |     25 -
 node_modules/lodash/_baseAt.js                  |     23 -
 node_modules/lodash/_baseClamp.js               |     22 -
 node_modules/lodash/_baseClone.js               |    153 -
 node_modules/lodash/_baseConforms.js            |     18 -
 node_modules/lodash/_baseConformsTo.js          |     27 -
 node_modules/lodash/_baseCreate.js              |     30 -
 node_modules/lodash/_baseDelay.js               |     21 -
 node_modules/lodash/_baseDifference.js          |     67 -
 node_modules/lodash/_baseEach.js                |     14 -
 node_modules/lodash/_baseEachRight.js           |     14 -
 node_modules/lodash/_baseEvery.js               |     21 -
 node_modules/lodash/_baseExtremum.js            |     32 -
 node_modules/lodash/_baseFill.js                |     32 -
 node_modules/lodash/_baseFilter.js              |     21 -
 node_modules/lodash/_baseFindIndex.js           |     24 -
 node_modules/lodash/_baseFindKey.js             |     23 -
 node_modules/lodash/_baseFlatten.js             |     38 -
 node_modules/lodash/_baseFor.js                 |     16 -
 node_modules/lodash/_baseForOwn.js              |     16 -
 node_modules/lodash/_baseForOwnRight.js         |     16 -
 node_modules/lodash/_baseForRight.js            |     15 -
 node_modules/lodash/_baseFunctions.js           |     19 -
 node_modules/lodash/_baseGet.js                 |     24 -
 node_modules/lodash/_baseGetAllKeys.js          |     20 -
 node_modules/lodash/_baseGetTag.js              |     28 -
 node_modules/lodash/_baseGt.js                  |     14 -
 node_modules/lodash/_baseHas.js                 |     19 -
 node_modules/lodash/_baseHasIn.js               |     13 -
 node_modules/lodash/_baseInRange.js             |     18 -
 node_modules/lodash/_baseIndexOf.js             |     20 -
 node_modules/lodash/_baseIndexOfWith.js         |     23 -
 node_modules/lodash/_baseIntersection.js        |     74 -
 node_modules/lodash/_baseInverter.js            |     21 -
 node_modules/lodash/_baseInvoke.js              |     24 -
 node_modules/lodash/_baseIsArguments.js         |     18 -
 node_modules/lodash/_baseIsArrayBuffer.js       |     17 -
 node_modules/lodash/_baseIsDate.js              |     18 -
 node_modules/lodash/_baseIsEqual.js             |     28 -
 node_modules/lodash/_baseIsEqualDeep.js         |     83 -
 node_modules/lodash/_baseIsMap.js               |     18 -
 node_modules/lodash/_baseIsMatch.js             |     62 -
 node_modules/lodash/_baseIsNaN.js               |     12 -
 node_modules/lodash/_baseIsNative.js            |     47 -
 node_modules/lodash/_baseIsRegExp.js            |     18 -
 node_modules/lodash/_baseIsSet.js               |     18 -
 node_modules/lodash/_baseIsTypedArray.js        |     60 -
 node_modules/lodash/_baseIteratee.js            |     31 -
 node_modules/lodash/_baseKeys.js                |     30 -
 node_modules/lodash/_baseKeysIn.js              |     33 -
 node_modules/lodash/_baseLodash.js              |     10 -
 node_modules/lodash/_baseLt.js                  |     14 -
 node_modules/lodash/_baseMap.js                 |     22 -
 node_modules/lodash/_baseMatches.js             |     22 -
 node_modules/lodash/_baseMatchesProperty.js     |     33 -
 node_modules/lodash/_baseMean.js                |     20 -
 node_modules/lodash/_baseMerge.js               |     41 -
 node_modules/lodash/_baseMergeDeep.js           |     93 -
 node_modules/lodash/_baseNth.js                 |     20 -
 node_modules/lodash/_baseOrderBy.js             |     34 -
 node_modules/lodash/_basePick.js                |     19 -
 node_modules/lodash/_basePickBy.js              |     30 -
 node_modules/lodash/_baseProperty.js            |     14 -
 node_modules/lodash/_basePropertyDeep.js        |     16 -
 node_modules/lodash/_basePropertyOf.js          |     14 -
 node_modules/lodash/_basePullAll.js             |     51 -
 node_modules/lodash/_basePullAt.js              |     37 -
 node_modules/lodash/_baseRandom.js              |     18 -
 node_modules/lodash/_baseRange.js               |     28 -
 node_modules/lodash/_baseReduce.js              |     23 -
 node_modules/lodash/_baseRepeat.js              |     35 -
 node_modules/lodash/_baseRest.js                |     17 -
 node_modules/lodash/_baseSample.js              |     15 -
 node_modules/lodash/_baseSampleSize.js          |     18 -
 node_modules/lodash/_baseSet.js                 |     47 -
 node_modules/lodash/_baseSetData.js             |     17 -
 node_modules/lodash/_baseSetToString.js         |     22 -
 node_modules/lodash/_baseShuffle.js             |     15 -
 node_modules/lodash/_baseSlice.js               |     31 -
 node_modules/lodash/_baseSome.js                |     22 -
 node_modules/lodash/_baseSortBy.js              |     21 -
 node_modules/lodash/_baseSortedIndex.js         |     42 -
 node_modules/lodash/_baseSortedIndexBy.js       |     64 -
 node_modules/lodash/_baseSortedUniq.js          |     30 -
 node_modules/lodash/_baseSum.js                 |     24 -
 node_modules/lodash/_baseTimes.js               |     20 -
 node_modules/lodash/_baseToNumber.js            |     24 -
 node_modules/lodash/_baseToPairs.js             |     18 -
 node_modules/lodash/_baseToString.js            |     37 -
 node_modules/lodash/_baseUnary.js               |     14 -
 node_modules/lodash/_baseUniq.js                |     72 -
 node_modules/lodash/_baseUnset.js               |     20 -
 node_modules/lodash/_baseUpdate.js              |     18 -
 node_modules/lodash/_baseValues.js              |     19 -
 node_modules/lodash/_baseWhile.js               |     26 -
 node_modules/lodash/_baseWrapperValue.js        |     25 -
 node_modules/lodash/_baseXor.js                 |     36 -
 node_modules/lodash/_baseZipObject.js           |     23 -
 node_modules/lodash/_cacheHas.js                |     13 -
 node_modules/lodash/_castArrayLikeObject.js     |     14 -
 node_modules/lodash/_castFunction.js            |     14 -
 node_modules/lodash/_castPath.js                |     21 -
 node_modules/lodash/_castRest.js                |     14 -
 node_modules/lodash/_castSlice.js               |     18 -
 node_modules/lodash/_charsEndIndex.js           |     19 -
 node_modules/lodash/_charsStartIndex.js         |     20 -
 node_modules/lodash/_cloneArrayBuffer.js        |     16 -
 node_modules/lodash/_cloneBuffer.js             |     35 -
 node_modules/lodash/_cloneDataView.js           |     16 -
 node_modules/lodash/_cloneMap.js                |     22 -
 node_modules/lodash/_cloneRegExp.js             |     17 -
 node_modules/lodash/_cloneSet.js                |     22 -
 node_modules/lodash/_cloneSymbol.js             |     18 -
 node_modules/lodash/_cloneTypedArray.js         |     16 -
 node_modules/lodash/_compareAscending.js        |     41 -
 node_modules/lodash/_compareMultiple.js         |     44 -
 node_modules/lodash/_composeArgs.js             |     39 -
 node_modules/lodash/_composeArgsRight.js        |     41 -
 node_modules/lodash/_copyArray.js               |     20 -
 node_modules/lodash/_copyObject.js              |     40 -
 node_modules/lodash/_copySymbols.js             |     16 -
 node_modules/lodash/_copySymbolsIn.js           |     16 -
 node_modules/lodash/_coreJsData.js              |      6 -
 node_modules/lodash/_countHolders.js            |     21 -
 node_modules/lodash/_createAggregator.js        |     23 -
 node_modules/lodash/_createAssigner.js          |     37 -
 node_modules/lodash/_createBaseEach.js          |     32 -
 node_modules/lodash/_createBaseFor.js           |     25 -
 node_modules/lodash/_createBind.js              |     28 -
 node_modules/lodash/_createCaseFirst.js         |     33 -
 node_modules/lodash/_createCompounder.js        |     24 -
 node_modules/lodash/_createCtor.js              |     37 -
 node_modules/lodash/_createCurry.js             |     46 -
 node_modules/lodash/_createFind.js              |     25 -
 node_modules/lodash/_createFlow.js              |     78 -
 node_modules/lodash/_createHybrid.js            |     92 -
 node_modules/lodash/_createInverter.js          |     17 -
 node_modules/lodash/_createMathOperation.js     |     38 -
 node_modules/lodash/_createOver.js              |     27 -
 node_modules/lodash/_createPadding.js           |     33 -
 node_modules/lodash/_createPartial.js           |     43 -
 node_modules/lodash/_createRange.js             |     30 -
 node_modules/lodash/_createRecurry.js           |     56 -
 .../lodash/_createRelationalOperation.js        |     20 -
 node_modules/lodash/_createRound.js             |     33 -
 node_modules/lodash/_createSet.js               |     19 -
 node_modules/lodash/_createToPairs.js           |     30 -
 node_modules/lodash/_createWrap.js              |    106 -
 node_modules/lodash/_customDefaultsAssignIn.js  |     29 -
 node_modules/lodash/_customDefaultsMerge.js     |     28 -
 node_modules/lodash/_customOmitClone.js         |     16 -
 node_modules/lodash/_deburrLetter.js            |     71 -
 node_modules/lodash/_defineProperty.js          |     11 -
 node_modules/lodash/_equalArrays.js             |     83 -
 node_modules/lodash/_equalByTag.js              |    112 -
 node_modules/lodash/_equalObjects.js            |     89 -
 node_modules/lodash/_escapeHtmlChar.js          |     21 -
 node_modules/lodash/_escapeStringChar.js        |     22 -
 node_modules/lodash/_flatRest.js                |     16 -
 node_modules/lodash/_freeGlobal.js              |      4 -
 node_modules/lodash/_getAllKeys.js              |     16 -
 node_modules/lodash/_getAllKeysIn.js            |     17 -
 node_modules/lodash/_getData.js                 |     15 -
 node_modules/lodash/_getFuncName.js             |     31 -
 node_modules/lodash/_getHolder.js               |     13 -
 node_modules/lodash/_getMapData.js              |     18 -
 node_modules/lodash/_getMatchData.js            |     24 -
 node_modules/lodash/_getNative.js               |     17 -
 node_modules/lodash/_getPrototype.js            |      6 -
 node_modules/lodash/_getRawTag.js               |     46 -
 node_modules/lodash/_getSymbols.js              |     30 -
 node_modules/lodash/_getSymbolsIn.js            |     25 -
 node_modules/lodash/_getTag.js                  |     58 -
 node_modules/lodash/_getValue.js                |     13 -
 node_modules/lodash/_getView.js                 |     33 -
 node_modules/lodash/_getWrapDetails.js          |     17 -
 node_modules/lodash/_hasPath.js                 |     39 -
 node_modules/lodash/_hasUnicode.js              |     26 -
 node_modules/lodash/_hasUnicodeWord.js          |     15 -
 node_modules/lodash/_hashClear.js               |     15 -
 node_modules/lodash/_hashDelete.js              |     17 -
 node_modules/lodash/_hashGet.js                 |     30 -
 node_modules/lodash/_hashHas.js                 |     23 -
 node_modules/lodash/_hashSet.js                 |     23 -
 node_modules/lodash/_initCloneArray.js          |     26 -
 node_modules/lodash/_initCloneByTag.js          |     80 -
 node_modules/lodash/_initCloneObject.js         |     18 -
 node_modules/lodash/_insertWrapDetails.js       |     23 -
 node_modules/lodash/_isFlattenable.js           |     20 -
 node_modules/lodash/_isIndex.js                 |     22 -
 node_modules/lodash/_isIterateeCall.js          |     30 -
 node_modules/lodash/_isKey.js                   |     29 -
 node_modules/lodash/_isKeyable.js               |     15 -
 node_modules/lodash/_isLaziable.js              |     28 -
 node_modules/lodash/_isMaskable.js              |     14 -
 node_modules/lodash/_isMasked.js                |     20 -
 node_modules/lodash/_isPrototype.js             |     18 -
 node_modules/lodash/_isStrictComparable.js      |     15 -
 node_modules/lodash/_iteratorToArray.js         |     18 -
 node_modules/lodash/_lazyClone.js               |     23 -
 node_modules/lodash/_lazyReverse.js             |     23 -
 node_modules/lodash/_lazyValue.js               |     69 -
 node_modules/lodash/_listCacheClear.js          |     13 -
 node_modules/lodash/_listCacheDelete.js         |     35 -
 node_modules/lodash/_listCacheGet.js            |     19 -
 node_modules/lodash/_listCacheHas.js            |     16 -
 node_modules/lodash/_listCacheSet.js            |     26 -
 node_modules/lodash/_mapCacheClear.js           |     21 -
 node_modules/lodash/_mapCacheDelete.js          |     18 -
 node_modules/lodash/_mapCacheGet.js             |     16 -
 node_modules/lodash/_mapCacheHas.js             |     16 -
 node_modules/lodash/_mapCacheSet.js             |     22 -
 node_modules/lodash/_mapToArray.js              |     18 -
 node_modules/lodash/_matchesStrictComparable.js |     20 -
 node_modules/lodash/_memoizeCapped.js           |     26 -
 node_modules/lodash/_mergeData.js               |     90 -
 node_modules/lodash/_metaMap.js                 |      6 -
 node_modules/lodash/_nativeCreate.js            |      6 -
 node_modules/lodash/_nativeKeys.js              |      6 -
 node_modules/lodash/_nativeKeysIn.js            |     20 -
 node_modules/lodash/_nodeUtil.js                |     22 -
 node_modules/lodash/_objectToString.js          |     22 -
 node_modules/lodash/_overArg.js                 |     15 -
 node_modules/lodash/_overRest.js                |     36 -
 node_modules/lodash/_parent.js                  |     16 -
 node_modules/lodash/_reEscape.js                |      4 -
 node_modules/lodash/_reEvaluate.js              |      4 -
 node_modules/lodash/_reInterpolate.js           |      4 -
 node_modules/lodash/_realNames.js               |      4 -
 node_modules/lodash/_reorder.js                 |     29 -
 node_modules/lodash/_replaceHolders.js          |     29 -
 node_modules/lodash/_root.js                    |      9 -
 node_modules/lodash/_setCacheAdd.js             |     19 -
 node_modules/lodash/_setCacheHas.js             |     14 -
 node_modules/lodash/_setData.js                 |     20 -
 node_modules/lodash/_setToArray.js              |     18 -
 node_modules/lodash/_setToPairs.js              |     18 -
 node_modules/lodash/_setToString.js             |     14 -
 node_modules/lodash/_setWrapToString.js         |     21 -
 node_modules/lodash/_shortOut.js                |     37 -
 node_modules/lodash/_shuffleSelf.js             |     28 -
 node_modules/lodash/_stackClear.js              |     15 -
 node_modules/lodash/_stackDelete.js             |     18 -
 node_modules/lodash/_stackGet.js                |     14 -
 node_modules/lodash/_stackHas.js                |     14 -
 node_modules/lodash/_stackSet.js                |     34 -
 node_modules/lodash/_strictIndexOf.js           |     23 -
 node_modules/lodash/_strictLastIndexOf.js       |     21 -
 node_modules/lodash/_stringSize.js              |     18 -
 node_modules/lodash/_stringToArray.js           |     18 -
 node_modules/lodash/_stringToPath.js            |     28 -
 node_modules/lodash/_toKey.js                   |     21 -
 node_modules/lodash/_toSource.js                |     26 -
 node_modules/lodash/_unescapeHtmlChar.js        |     21 -
 node_modules/lodash/_unicodeSize.js             |     44 -
 node_modules/lodash/_unicodeToArray.js          |     40 -
 node_modules/lodash/_unicodeWords.js            |     69 -
 node_modules/lodash/_updateWrapDetails.js       |     46 -
 node_modules/lodash/_wrapperClone.js            |     23 -
 node_modules/lodash/add.js                      |     22 -
 node_modules/lodash/after.js                    |     42 -
 node_modules/lodash/array.js                    |     67 -
 node_modules/lodash/ary.js                      |     29 -
 node_modules/lodash/assign.js                   |     58 -
 node_modules/lodash/assignIn.js                 |     40 -
 node_modules/lodash/assignInWith.js             |     38 -
 node_modules/lodash/assignWith.js               |     37 -
 node_modules/lodash/at.js                       |     23 -
 node_modules/lodash/attempt.js                  |     35 -
 node_modules/lodash/before.js                   |     40 -
 node_modules/lodash/bind.js                     |     57 -
 node_modules/lodash/bindAll.js                  |     41 -
 node_modules/lodash/bindKey.js                  |     68 -
 node_modules/lodash/camelCase.js                |     29 -
 node_modules/lodash/capitalize.js               |     23 -
 node_modules/lodash/castArray.js                |     44 -
 node_modules/lodash/ceil.js                     |     26 -
 node_modules/lodash/chain.js                    |     38 -
 node_modules/lodash/chunk.js                    |     50 -
 node_modules/lodash/clamp.js                    |     39 -
 node_modules/lodash/clone.js                    |     36 -
 node_modules/lodash/cloneDeep.js                |     29 -
 node_modules/lodash/cloneDeepWith.js            |     40 -
 node_modules/lodash/cloneWith.js                |     42 -
 node_modules/lodash/collection.js               |     30 -
 node_modules/lodash/commit.js                   |     33 -
 node_modules/lodash/compact.js                  |     31 -
 node_modules/lodash/concat.js                   |     43 -
 node_modules/lodash/cond.js                     |     60 -
 node_modules/lodash/conforms.js                 |     35 -
 node_modules/lodash/conformsTo.js               |     32 -
 node_modules/lodash/constant.js                 |     26 -
 node_modules/lodash/core.js                     |   3836 -
 node_modules/lodash/core.min.js                 |     29 -
 node_modules/lodash/countBy.js                  |     40 -
 node_modules/lodash/create.js                   |     43 -
 node_modules/lodash/curry.js                    |     57 -
 node_modules/lodash/curryRight.js               |     54 -
 node_modules/lodash/date.js                     |      3 -
 node_modules/lodash/debounce.js                 |    188 -
 node_modules/lodash/deburr.js                   |     45 -
 node_modules/lodash/defaultTo.js                |     25 -
 node_modules/lodash/defaults.js                 |     32 -
 node_modules/lodash/defaultsDeep.js             |     30 -
 node_modules/lodash/defer.js                    |     26 -
 node_modules/lodash/delay.js                    |     28 -
 node_modules/lodash/difference.js               |     33 -
 node_modules/lodash/differenceBy.js             |     44 -
 node_modules/lodash/differenceWith.js           |     40 -
 node_modules/lodash/divide.js                   |     22 -
 node_modules/lodash/drop.js                     |     38 -
 node_modules/lodash/dropRight.js                |     39 -
 node_modules/lodash/dropRightWhile.js           |     45 -
 node_modules/lodash/dropWhile.js                |     45 -
 node_modules/lodash/each.js                     |      1 -
 node_modules/lodash/eachRight.js                |      1 -
 node_modules/lodash/endsWith.js                 |     43 -
 node_modules/lodash/entries.js                  |      1 -
 node_modules/lodash/entriesIn.js                |      1 -
 node_modules/lodash/eq.js                       |     37 -
 node_modules/lodash/escape.js                   |     43 -
 node_modules/lodash/escapeRegExp.js             |     32 -
 node_modules/lodash/every.js                    |     56 -
 node_modules/lodash/extend.js                   |      1 -
 node_modules/lodash/extendWith.js               |      1 -
 node_modules/lodash/fill.js                     |     45 -
 node_modules/lodash/filter.js                   |     48 -
 node_modules/lodash/find.js                     |     42 -
 node_modules/lodash/findIndex.js                |     55 -
 node_modules/lodash/findKey.js                  |     44 -
 node_modules/lodash/findLast.js                 |     25 -
 node_modules/lodash/findLastIndex.js            |     59 -
 node_modules/lodash/findLastKey.js              |     44 -
 node_modules/lodash/first.js                    |      1 -
 node_modules/lodash/flatMap.js                  |     29 -
 node_modules/lodash/flatMapDeep.js              |     31 -
 node_modules/lodash/flatMapDepth.js             |     31 -
 node_modules/lodash/flatten.js                  |     22 -
 node_modules/lodash/flattenDeep.js              |     25 -
 node_modules/lodash/flattenDepth.js             |     33 -
 node_modules/lodash/flip.js                     |     28 -
 node_modules/lodash/floor.js                    |     26 -
 node_modules/lodash/flow.js                     |     27 -
 node_modules/lodash/flowRight.js                |     26 -
 node_modules/lodash/forEach.js                  |     41 -
 node_modules/lodash/forEachRight.js             |     31 -
 node_modules/lodash/forIn.js                    |     39 -
 node_modules/lodash/forInRight.js               |     37 -
 node_modules/lodash/forOwn.js                   |     36 -
 node_modules/lodash/forOwnRight.js              |     34 -
 node_modules/lodash/fp.js                       |      2 -
 node_modules/lodash/fp/F.js                     |      1 -
 node_modules/lodash/fp/T.js                     |      1 -
 node_modules/lodash/fp/__.js                    |      1 -
 node_modules/lodash/fp/_baseConvert.js          |    568 -
 node_modules/lodash/fp/_convertBrowser.js       |     18 -
 node_modules/lodash/fp/_falseOptions.js         |      7 -
 node_modules/lodash/fp/_mapping.js              |    368 -
 node_modules/lodash/fp/_util.js                 |     14 -
 node_modules/lodash/fp/add.js                   |      5 -
 node_modules/lodash/fp/after.js                 |      5 -
 node_modules/lodash/fp/all.js                   |      1 -
 node_modules/lodash/fp/allPass.js               |      1 -
 node_modules/lodash/fp/always.js                |      1 -
 node_modules/lodash/fp/any.js                   |      1 -
 node_modules/lodash/fp/anyPass.js               |      1 -
 node_modules/lodash/fp/apply.js                 |      1 -
 node_modules/lodash/fp/array.js                 |      2 -
 node_modules/lodash/fp/ary.js                   |      5 -
 node_modules/lodash/fp/assign.js                |      5 -
 node_modules/lodash/fp/assignAll.js             |      5 -
 node_modules/lodash/fp/assignAllWith.js         |      5 -
 node_modules/lodash/fp/assignIn.js              |      5 -
 node_modules/lodash/fp/assignInAll.js           |      5 -
 node_modules/lodash/fp/assignInAllWith.js       |      5 -
 node_modules/lodash/fp/assignInWith.js          |      5 -
 node_modules/lodash/fp/assignWith.js            |      5 -
 node_modules/lodash/fp/assoc.js                 |      1 -
 node_modules/lodash/fp/assocPath.js             |      1 -
 node_modules/lodash/fp/at.js                    |      5 -
 node_modules/lodash/fp/attempt.js               |      5 -
 node_modules/lodash/fp/before.js                |      5 -
 node_modules/lodash/fp/bind.js                  |      5 -
 node_modules/lodash/fp/bindAll.js               |      5 -
 node_modules/lodash/fp/bindKey.js               |      5 -
 node_modules/lodash/fp/camelCase.js             |      5 -
 node_modules/lodash/fp/capitalize.js            |      5 -
 node_modules/lodash/fp/castArray.js             |      5 -
 node_modules/lodash/fp/ceil.js                  |      5 -
 node_modules/lodash/fp/chain.js                 |      5 -
 node_modules/lodash/fp/chunk.js                 |      5 -
 node_modules/lodash/fp/clamp.js                 |      5 -
 node_modules/lodash/fp/clone.js                 |      5 -
 node_modules/lodash/fp/cloneDeep.js             |      5 -
 node_modules/lodash/fp/cloneDeepWith.js         |      5 -
 node_modules/lodash/fp/cloneWith.js             |      5 -
 node_modules/lodash/fp/collection.js            |      2 -
 node_modules/lodash/fp/commit.js                |      5 -
 node_modules/lodash/fp/compact.js               |      5 -
 node_modules/lodash/fp/complement.js            |      1 -
 node_modules/lodash/fp/compose.js               |      1 -
 node_modules/lodash/fp/concat.js                |      5 -
 node_modules/lodash/fp/cond.js                  |      5 -
 node_modules/lodash/fp/conforms.js              |      1 -
 node_modules/lodash/fp/conformsTo.js            |      5 -
 node_modules/lodash/fp/constant.js              |      5 -
 node_modules/lodash/fp/contains.js              |      1 -
 node_modules/lodash/fp/convert.js               |     18 -
 node_modules/lodash/fp/countBy.js               |      5 -
 node_modules/lodash/fp/create.js                |      5 -
 node_modules/lodash/fp/curry.js                 |      5 -
 node_modules/lodash/fp/curryN.js                |      5 -
 node_modules/lodash/fp/curryRight.js            |      5 -
 node_modules/lodash/fp/curryRightN.js           |      5 -
 node_modules/lodash/fp/date.js                  |      2 -
 node_modules/lodash/fp/debounce.js              |      5 -
 node_modules/lodash/fp/deburr.js                |      5 -
 node_modules/lodash/fp/defaultTo.js             |      5 -
 node_modules/lodash/fp/defaults.js              |      5 -
 node_modules/lodash/fp/defaultsAll.js           |      5 -
 node_modules/lodash/fp/defaultsDeep.js          |      5 -
 node_modules/lodash/fp/defaultsDeepAll.js       |      5 -
 node_modules/lodash/fp/defer.js                 |      5 -
 node_modules/lodash/fp/delay.js                 |      5 -
 node_modules/lodash/fp/difference.js            |      5 -
 node_modules/lodash/fp/differenceBy.js          |      5 -
 node_modules/lodash/fp/differenceWith.js        |      5 -
 node_modules/lodash/fp/dissoc.js                |      1 -
 node_modules/lodash/fp/dissocPath.js            |      1 -
 node_modules/lodash/fp/divide.js                |      5 -
 node_modules/lodash/fp/drop.js                  |      5 -
 node_modules/lodash/fp/dropLast.js              |      1 -
 node_modules/lodash/fp/dropLastWhile.js         |      1 -
 node_modules/lodash/fp/dropRight.js             |      5 -
 node_modules/lodash/fp/dropRightWhile.js        |      5 -
 node_modules/lodash/fp/dropWhile.js             |      5 -
 node_modules/lodash/fp/each.js                  |      1 -
 node_modules/lodash/fp/eachRight.js             |      1 -
 node_modules/lodash/fp/endsWith.js              |      5 -
 node_modules/lodash/fp/entries.js               |      1 -
 node_modules/lodash/fp/entriesIn.js             |      1 -
 node_modules/lodash/fp/eq.js                    |      5 -
 node_modules/lodash/fp/equals.js                |      1 -
 node_modules/lodash/fp/escape.js                |      5 -
 node_modules/lodash/fp/escapeRegExp.js          |      5 -
 node_modules/lodash/fp/every.js                 |      5 -
 node_modules/lodash/fp/extend.js                |      1 -
 node_modules/lodash/fp/extendAll.js             |      1 -
 node_modules/lodash/fp/extendAllWith.js         |      1 -
 node_modules/lodash/fp/extendWith.js            |      1 -
 node_modules/lodash/fp/fill.js                  |      5 -
 node_modules/lodash/fp/filter.js                |      5 -
 node_modules/lodash/fp/find.js                  |      5 -
 node_modules/lodash/fp/findFrom.js              |      5 -
 node_modules/lodash/fp/findIndex.js             |      5 -
 node_modules/lodash/fp/findIndexFrom.js         |      5 -
 node_modules/lodash/fp/findKey.js               |      5 -
 node_modules/lodash/fp/findLast.js              |      5 -
 node_modules/lodash/fp/findLastFrom.js          |      5 -
 node_modules/lodash/fp/findLastIndex.js         |      5 -
 node_modules/lodash/fp/findLastIndexFrom.js     |      5 -
 node_modules/lodash/fp/findLastKey.js           |      5 -
 node_modules/lodash/fp/first.js                 |      1 -
 node_modules/lodash/fp/flatMap.js               |      5 -
 node_modules/lodash/fp/flatMapDeep.js           |      5 -
 node_modules/lodash/fp/flatMapDepth.js          |      5 -
 node_modules/lodash/fp/flatten.js               |      5 -
 node_modules/lodash/fp/flattenDeep.js           |      5 -
 node_modules/lodash/fp/flattenDepth.js          |      5 -
 node_modules/lodash/fp/flip.js                  |      5 -
 node_modules/lodash/fp/floor.js                 |      5 -
 node_modules/lodash/fp/flow.js                  |      5 -
 node_modules/lodash/fp/flowRight.js             |      5 -
 node_modules/lodash/fp/forEach.js               |      5 -
 node_modules/lodash/fp/forEachRight.js          |      5 -
 node_modules/lodash/fp/forIn.js                 |      5 -
 node_modules/lodash/fp/forInRight.js            |      5 -
 node_modules/lodash/fp/forOwn.js                |      5 -
 node_modules/lodash/fp/forOwnRight.js           |      5 -
 node_modules/lodash/fp/fromPairs.js             |      5 -
 node_modules/lodash/fp/function.js              |      2 -
 node_modules/lodash/fp/functions.js             |      5 -
 node_modules/lodash/fp/functionsIn.js           |      5 -
 node_modules/lodash/fp/get.js                   |      5 -
 node_modules/lodash/fp/getOr.js                 |      5 -
 node_modules/lodash/fp/groupBy.js               |      5 -
 node_modules/lodash/fp/gt.js                    |      5 -
 node_modules/lodash/fp/gte.js                   |      5 -
 node_modules/lodash/fp/has.js                   |      5 -
 node_modules/lodash/fp/hasIn.js                 |      5 -
 node_modules/lodash/fp/head.js                  |      5 -
 node_modules/lodash/fp/identical.js             |      1 -
 node_modules/lodash/fp/identity.js              |      5 -
 node_modules/lodash/fp/inRange.js               |      5 -
 node_modules/lodash/fp/includes.js              |      5 -
 node_modules/lodash/fp/includesFrom.js          |      5 -
 node_modules/lodash/fp/indexBy.js               |      1 -
 node_modules/lodash/fp/indexOf.js               |      5 -
 node_modules/lodash/fp/indexOfFrom.js           |      5 -
 node_modules/lodash/fp/init.js                  |      1 -
 node_modules/lodash/fp/initial.js               |      5 -
 node_modules/lodash/fp/intersection.js          |      5 -
 node_modules/lodash/fp/intersectionBy.js        |      5 -
 node_modules/lodash/fp/intersectionWith.js      |      5 -
 node_modules/lodash/fp/invert.js                |      5 -
 node_modules/lodash/fp/invertBy.js              |      5 -
 node_modules/lodash/fp/invertObj.js             |      1 -
 node_modules/lodash/fp/invoke.js                |      5 -
 node_modules/lodash/fp/invokeArgs.js            |      5 -
 node_modules/lodash/fp/invokeArgsMap.js         |      5 -
 node_modules/lodash/fp/invokeMap.js             |      5 -
 node_modules/lodash/fp/isArguments.js           |      5 -
 node_modules/lodash/fp/isArray.js               |      5 -
 node_modules/lodash/fp/isArrayBuffer.js         |      5 -
 node_modules/lodash/fp/isArrayLike.js           |      5 -
 node_modules/lodash/fp/isArrayLikeObject.js     |      5 -
 node_modules/lodash/fp/isBoolean.js             |      5 -
 node_modules/lodash/fp/isBuffer.js              |      5 -
 node_modules/lodash/fp/isDate.js                |      5 -
 node_modules/lodash/fp/isElement.js             |      5 -
 node_modules/lodash/fp/isEmpty.js               |      5 -
 node_modules/lodash/fp/isEqual.js               |      5 -
 node_modules/lodash/fp/isEqualWith.js           |      5 -
 node_modules/lodash/fp/isError.js               |      5 -
 node_modules/lodash/fp/isFinite.js              |      5 -
 node_modules/lodash/fp/isFunction.js            |      5 -
 node_modules/lodash/fp/isInteger.js             |      5 -
 node_modules/lodash/fp/isLength.js              |      5 -
 node_modules/lodash/fp/isMap.js                 |      5 -
 node_modules/lodash/fp/isMatch.js               |      5 -
 node_modules/lodash/fp/isMatchWith.js           |      5 -
 node_modules/lodash/fp/isNaN.js                 |      5 -
 node_modules/lodash/fp/isNative.js              |      5 -
 node_modules/lodash/fp/isNil.js                 |      5 -
 node_modules/lodash/fp/isNull.js                |      5 -
 node_modules/lodash/fp/isNumber.js              |      5 -
 node_modules/lodash/fp/isObject.js              |      5 -
 node_modules/lodash/fp/isObjectLike.js          |      5 -
 node_modules/lodash/fp/isPlainObject.js         |      5 -
 node_modules/lodash/fp/isRegExp.js              |      5 -
 node_modules/lodash/fp/isSafeInteger.js         |      5 -
 node_modules/lodash/fp/isSet.js                 |      5 -
 node_modules/lodash/fp/isString.js              |      5 -
 node_modules/lodash/fp/isSymbol.js              |      5 -
 node_modules/lodash/fp/isTypedArray.js          |      5 -
 node_modules/lodash/fp/isUndefined.js           |      5 -
 node_modules/lodash/fp/isWeakMap.js             |      5 -
 node_modules/lodash/fp/isWeakSet.js             |      5 -
 node_modules/lodash/fp/iteratee.js              |      5 -
 node_modules/lodash/fp/join.js                  |      5 -
 node_modules/lodash/fp/juxt.js                  |      1 -
 node_modules/lodash/fp/kebabCase.js             |      5 -
 node_modules/lodash/fp/keyBy.js                 |      5 -
 node_modules/lodash/fp/keys.js                  |      5 -
 node_modules/lodash/fp/keysIn.js                |      5 -
 node_modules/lodash/fp/lang.js                  |      2 -
 node_modules/lodash/fp/last.js                  |      5 -
 node_modules/lodash/fp/lastIndexOf.js           |      5 -
 node_modules/lodash/fp/lastIndexOfFrom.js       |      5 -
 node_modules/lodash/fp/lowerCase.js             |      5 -
 node_modules/lodash/fp/lowerFirst.js            |      5 -
 node_modules/lodash/fp/lt.js                    |      5 -
 node_modules/lodash/fp/lte.js                   |      5 -
 node_modules/lodash/fp/map.js                   |      5 -
 node_modules/lodash/fp/mapKeys.js               |      5 -
 node_modules/lodash/fp/mapValues.js             |      5 -
 node_modules/lodash/fp/matches.js               |      1 -
 node_modules/lodash/fp/matchesProperty.js       |      5 -
 node_modules/lodash/fp/math.js                  |      2 -
 node_modules/lodash/fp/max.js                   |      5 -
 node_modules/lodash/fp/maxBy.js                 |      5 -
 node_modules/lodash/fp/mean.js                  |      5 -
 node_modules/lodash/fp/meanBy.js                |      5 -
 node_modules/lodash/fp/memoize.js               |      5 -
 node_modules/lodash/fp/merge.js                 |      5 -
 node_modules/lodash/fp/mergeAll.js              |      5 -
 node_modules/lodash/fp/mergeAllWith.js          |      5 -
 node_modules/lodash/fp/mergeWith.js             |      5 -
 node_modules/lodash/fp/method.js                |      5 -
 node_modules/lodash/fp/methodOf.js              |      5 -
 node_modules/lodash/fp/min.js                   |      5 -
 node_modules/lodash/fp/minBy.js                 |      5 -
 node_modules/lodash/fp/mixin.js                 |      5 -
 node_modules/lodash/fp/multiply.js              |      5 -
 node_modules/lodash/fp/nAry.js                  |      1 -
 node_modules/lodash/fp/negate.js                |      5 -
 node_modules/lodash/fp/next.js                  |      5 -
 node_modules/lodash/fp/noop.js                  |      5 -
 node_modules/lodash/fp/now.js                   |      5 -
 node_modules/lodash/fp/nth.js                   |      5 -
 node_modules/lodash/fp/nthArg.js                |      5 -
 node_modules/lodash/fp/number.js                |      2 -
 node_modules/lodash/fp/object.js                |      2 -
 node_modules/lodash/fp/omit.js                  |      5 -
 node_modules/lodash/fp/omitAll.js               |      1 -
 node_modules/lodash/fp/omitBy.js                |      5 -
 node_modules/lodash/fp/once.js                  |      5 -
 node_modules/lodash/fp/orderBy.js               |      5 -
 node_modules/lodash/fp/over.js                  |      5 -
 node_modules/lodash/fp/overArgs.js              |      5 -
 node_modules/lodash/fp/overEvery.js             |      5 -
 node_modules/lodash/fp/overSome.js              |      5 -
 node_modules/lodash/fp/pad.js                   |      5 -
 node_modules/lodash/fp/padChars.js              |      5 -
 node_modules/lodash/fp/padCharsEnd.js           |      5 -
 node_modules/lodash/fp/padCharsStart.js         |      5 -
 node_modules/lodash/fp/padEnd.js                |      5 -
 node_modules/lodash/fp/padStart.js              |      5 -
 node_modules/lodash/fp/parseInt.js              |      5 -
 node_modules/lodash/fp/partial.js               |      5 -
 node_modules/lodash/fp/partialRight.js          |      5 -
 node_modules/lodash/fp/partition.js             |      5 -
 node_modules/lodash/fp/path.js                  |      1 -
 node_modules/lodash/fp/pathEq.js                |      1 -
 node_modules/lodash/fp/pathOr.js                |      1 -
 node_modules/lodash/fp/paths.js                 |      1 -
 node_modules/lodash/fp/pick.js                  |      5 -
 node_modules/lodash/fp/pickAll.js               |      1 -
 node_modules/lodash/fp/pickBy.js                |      5 -
 node_modules/lodash/fp/pipe.js                  |      1 -
 node_modules/lodash/fp/placeholder.js           |      6 -
 node_modules/lodash/fp/plant.js                 |      5 -
 node_modules/lodash/fp/pluck.js                 |      1 -
 node_modules/lodash/fp/prop.js                  |      1 -
 node_modules/lodash/fp/propEq.js                |      1 -
 node_modules/lodash/fp/propOr.js                |      1 -
 node_modules/lodash/fp/property.js              |      1 -
 node_modules/lodash/fp/propertyOf.js            |      5 -
 node_modules/lodash/fp/props.js                 |      1 -
 node_modules/lodash/fp/pull.js                  |      5 -
 node_modules/lodash/fp/pullAll.js               |      5 -
 node_modules/lodash/fp/pullAllBy.js             |      5 -
 node_modules/lodash/fp/pullAllWith.js           |      5 -
 node_modules/lodash/fp/pullAt.js                |      5 -
 node_modules/lodash/fp/random.js                |      5 -
 node_modules/lodash/fp/range.js                 |      5 -
 node_modules/lodash/fp/rangeRight.js            |      5 -
 node_modules/lodash/fp/rangeStep.js             |      5 -
 node_modules/lodash/fp/rangeStepRight.js        |      5 -
 node_modules/lodash/fp/rearg.js                 |      5 -
 node_modules/lodash/fp/reduce.js                |      5 -
 node_modules/lodash/fp/reduceRight.js           |      5 -
 node_modules/lodash/fp/reject.js                |      5 -
 node_modules/lodash/fp/remove.js                |      5 -
 node_modules/lodash/fp/repeat.js                |      5 -
 node_modules/lodash/fp/replace.js               |      5 -
 node_modules/lodash/fp/rest.js                  |      5 -
 node_modules/lodash/fp/restFrom.js              |      5 -
 node_modules/lodash/fp/result.js                |      5 -
 node_modules/lodash/fp/reverse.js               |      5 -
 node_modules/lodash/fp/round.js                 |      5 -
 node_modules/lodash/fp/sample.js                |      5 -
 node_modules/lodash/fp/sampleSize.js            |      5 -
 node_modules/lodash/fp/seq.js                   |      2 -
 node_modules/lodash/fp/set.js                   |      5 -
 node_modules/lodash/fp/setWith.js               |      5 -
 node_modules/lodash/fp/shuffle.js               |      5 -
 node_modules/lodash/fp/size.js                  |      5 -
 node_modules/lodash/fp/slice.js                 |      5 -
 node_modules/lodash/fp/snakeCase.js             |      5 -
 node_modules/lodash/fp/some.js                  |      5 -
 node_modules/lodash/fp/sortBy.js                |      5 -
 node_modules/lodash/fp/sortedIndex.js           |      5 -
 node_modules/lodash/fp/sortedIndexBy.js         |      5 -
 node_modules/lodash/fp/sortedIndexOf.js         |      5 -
 node_modules/lodash/fp/sortedLastIndex.js       |      5 -
 node_modules/lodash/fp/sortedLastIndexBy.js     |      5 -
 node_modules/lodash/fp/sortedLastIndexOf.js     |      5 -
 node_modules/lodash/fp/sortedUniq.js            |      5 -
 node_modules/lodash/fp/sortedUniqBy.js          |      5 -
 node_modules/lodash/fp/split.js                 |      5 -
 node_modules/lodash/fp/spread.js                |      5 -
 node_modules/lodash/fp/spreadFrom.js            |      5 -
 node_modules/lodash/fp/startCase.js             |      5 -
 node_modules/lodash/fp/startsWith.js            |      5 -
 node_modules/lodash/fp/string.js                |      2 -
 node_modules/lodash/fp/stubArray.js             |      5 -
 node_modules/lodash/fp/stubFalse.js             |      5 -
 node_modules/lodash/fp/stubObject.js            |      5 -
 node_modules/lodash/fp/stubString.js            |      5 -
 node_modules/lodash/fp/stubTrue.js              |      5 -
 node_modules/lodash/fp/subtract.js              |      5 -
 node_modules/lodash/fp/sum.js                   |      5 -
 node_modules/lodash/fp/sumBy.js                 |      5 -
 node_modules/lodash/fp/symmetricDifference.js   |      1 -
 node_modules/lodash/fp/symmetricDifferenceBy.js |      1 -
 .../lodash/fp/symmetricDifferenceWith.js        |      1 -
 node_modules/lodash/fp/tail.js                  |      5 -
 node_modules/lodash/fp/take.js                  |      5 -
 node_modules/lodash/fp/takeLast.js              |      1 -
 node_modules/lodash/fp/takeLastWhile.js         |      1 -
 node_modules/lodash/fp/takeRight.js             |      5 -
 node_modules/lodash/fp/takeRightWhile.js        |      5 -
 node_modules/lodash/fp/takeWhile.js             |      5 -
 node_modules/lodash/fp/tap.js                   |      5 -
 node_modules/lodash/fp/template.js              |      5 -
 node_modules/lodash/fp/templateSettings.js      |      5 -
 node_modules/lodash/fp/throttle.js              |      5 -
 node_modules/lodash/fp/thru.js                  |      5 -
 node_modules/lodash/fp/times.js                 |      5 -
 node_modules/lodash/fp/toArray.js               |      5 -
 node_modules/lodash/fp/toFinite.js              |      5 -
 node_modules/lodash/fp/toInteger.js             |      5 -
 node_modules/lodash/fp/toIterator.js            |      5 -
 node_modules/lodash/fp/toJSON.js                |      5 -
 node_modules/lodash/fp/toLength.js              |      5 -
 node_modules/lodash/fp/toLower.js               |      5 -
 node_modules/lodash/fp/toNumber.js              |      5 -
 node_modules/lodash/fp/toPairs.js               |      5 -
 node_modules/lodash/fp/toPairsIn.js             |      5 -
 node_modules/lodash/fp/toPath.js                |      5 -
 node_modules/lodash/fp/toPlainObject.js         |      5 -
 node_modules/lodash/fp/toSafeInteger.js         |      5 -
 node_modules/lodash/fp/toString.js              |      5 -
 node_modules/lodash/fp/toUpper.js               |      5 -
 node_modules/lodash/fp/transform.js             |      5 -
 node_modules/lodash/fp/trim.js                  |      5 -
 node_modules/lodash/fp/trimChars.js             |      5 -
 node_modules/lodash/fp/trimCharsEnd.js          |      5 -
 node_modules/lodash/fp/trimCharsStart.js        |      5 -
 node_modules/lodash/fp/trimEnd.js               |      5 -
 node_modules/lodash/fp/trimStart.js             |      5 -
 node_modules/lodash/fp/truncate.js              |      5 -
 node_modules/lodash/fp/unapply.js               |      1 -
 node_modules/lodash/fp/unary.js                 |      5 -
 node_modules/lodash/fp/unescape.js              |      5 -
 node_modules/lodash/fp/union.js                 |      5 -
 node_modules/lodash/fp/unionBy.js               |      5 -
 node_modules/lodash/fp/unionWith.js             |      5 -
 node_modules/lodash/fp/uniq.js                  |      5 -
 node_modules/lodash/fp/uniqBy.js                |      5 -
 node_modules/lodash/fp/uniqWith.js              |      5 -
 node_modules/lodash/fp/uniqueId.js              |      5 -
 node_modules/lodash/fp/unnest.js                |      1 -
 node_modules/lodash/fp/unset.js                 |      5 -
 node_modules/lodash/fp/unzip.js                 |      5 -
 node_modules/lodash/fp/unzipWith.js             |      5 -
 node_modules/lodash/fp/update.js                |      5 -
 node_modules/lodash/fp/updateWith.js            |      5 -
 node_modules/lodash/fp/upperCase.js             |      5 -
 node_modules/lodash/fp/upperFirst.js            |      5 -
 node_modules/lodash/fp/useWith.js               |      1 -
 node_modules/lodash/fp/util.js                  |      2 -
 node_modules/lodash/fp/value.js                 |      5 -
 node_modules/lodash/fp/valueOf.js               |      5 -
 node_modules/lodash/fp/values.js                |      5 -
 node_modules/lodash/fp/valuesIn.js              |      5 -
 node_modules/lodash/fp/where.js                 |      1 -
 node_modules/lodash/fp/whereEq.js               |      1 -
 node_modules/lodash/fp/without.js               |      5 -
 node_modules/lodash/fp/words.js                 |      5 -
 node_modules/lodash/fp/wrap.js                  |      5 -
 node_modules/lodash/fp/wrapperAt.js             |      5 -
 node_modules/lodash/fp/wrapperChain.js          |      5 -
 node_modules/lodash/fp/wrapperLodash.js         |      5 -
 node_modules/lodash/fp/wrapperReverse.js        |      5 -
 node_modules/lodash/fp/wrapperValue.js          |      5 -
 node_modules/lodash/fp/xor.js                   |      5 -
 node_modules/lodash/fp/xorBy.js                 |      5 -
 node_modules/lodash/fp/xorWith.js               |      5 -
 node_modules/lodash/fp/zip.js                   |      5 -
 node_modules/lodash/fp/zipAll.js                |      5 -
 node_modules/lodash/fp/zipObj.js                |      1 -
 node_modules/lodash/fp/zipObject.js             |      5 -
 node_modules/lodash/fp/zipObjectDeep.js         |      5 -
 node_modules/lodash/fp/zipWith.js               |      5 -
 node_modules/lodash/fromPairs.js                |     28 -
 node_modules/lodash/function.js                 |     25 -
 node_modules/lodash/functions.js                |     31 -
 node_modules/lodash/functionsIn.js              |     31 -
 node_modules/lodash/get.js                      |     33 -
 node_modules/lodash/groupBy.js                  |     41 -
 node_modules/lodash/gt.js                       |     29 -
 node_modules/lodash/gte.js                      |     30 -
 node_modules/lodash/has.js                      |     35 -
 node_modules/lodash/hasIn.js                    |     34 -
 node_modules/lodash/head.js                     |     23 -
 node_modules/lodash/identity.js                 |     21 -
 node_modules/lodash/inRange.js                  |     55 -
 node_modules/lodash/includes.js                 |     53 -
 node_modules/lodash/index.js                    |      1 -
 node_modules/lodash/indexOf.js                  |     42 -
 node_modules/lodash/initial.js                  |     22 -
 node_modules/lodash/intersection.js             |     30 -
 node_modules/lodash/intersectionBy.js           |     45 -
 node_modules/lodash/intersectionWith.js         |     41 -
 node_modules/lodash/invert.js                   |     27 -
 node_modules/lodash/invertBy.js                 |     44 -
 node_modules/lodash/invoke.js                   |     24 -
 node_modules/lodash/invokeMap.js                |     41 -
 node_modules/lodash/isArguments.js              |     36 -
 node_modules/lodash/isArray.js                  |     26 -
 node_modules/lodash/isArrayBuffer.js            |     27 -
 node_modules/lodash/isArrayLike.js              |     33 -
 node_modules/lodash/isArrayLikeObject.js        |     33 -
 node_modules/lodash/isBoolean.js                |     29 -
 node_modules/lodash/isBuffer.js                 |     38 -
 node_modules/lodash/isDate.js                   |     27 -
 node_modules/lodash/isElement.js                |     25 -
 node_modules/lodash/isEmpty.js                  |     77 -
 node_modules/lodash/isEqual.js                  |     35 -
 node_modules/lodash/isEqualWith.js              |     41 -
 node_modules/lodash/isError.js                  |     36 -
 node_modules/lodash/isFinite.js                 |     36 -
 node_modules/lodash/isFunction.js               |     37 -
 node_modules/lodash/isInteger.js                |     33 -
 node_modules/lodash/isLength.js                 |     35 -
 node_modules/lodash/isMap.js                    |     27 -
 node_modules/lodash/isMatch.js                  |     36 -
 node_modules/lodash/isMatchWith.js              |     41 -
 node_modules/lodash/isNaN.js                    |     38 -
 node_modules/lodash/isNative.js                 |     40 -
 node_modules/lodash/isNil.js                    |     25 -
 node_modules/lodash/isNull.js                   |     22 -
 node_modules/lodash/isNumber.js                 |     38 -
 node_modules/lodash/isObject.js                 |     31 -
 node_modules/lodash/isObjectLike.js             |     29 -
 node_modules/lodash/isPlainObject.js            |     62 -
 node_modules/lodash/isRegExp.js                 |     27 -
 node_modules/lodash/isSafeInteger.js            |     37 -
 node_modules/lodash/isSet.js                    |     27 -
 node_modules/lodash/isString.js                 |     30 -
 node_modules/lodash/isSymbol.js                 |     29 -
 node_modules/lodash/isTypedArray.js             |     27 -
 node_modules/lodash/isUndefined.js              |     22 -
 node_modules/lodash/isWeakMap.js                |     28 -
 node_modules/lodash/isWeakSet.js                |     28 -
 node_modules/lodash/iteratee.js                 |     53 -
 node_modules/lodash/join.js                     |     26 -
 node_modules/lodash/kebabCase.js                |     28 -
 node_modules/lodash/keyBy.js                    |     36 -
 node_modules/lodash/keys.js                     |     37 -
 node_modules/lodash/keysIn.js                   |     32 -
 node_modules/lodash/lang.js                     |     58 -
 node_modules/lodash/last.js                     |     20 -
 node_modules/lodash/lastIndexOf.js              |     46 -
 node_modules/lodash/lodash.js                   |  17084 ---
 node_modules/lodash/lodash.min.js               |    136 -
 node_modules/lodash/lowerCase.js                |     27 -
 node_modules/lodash/lowerFirst.js               |     22 -
 node_modules/lodash/lt.js                       |     29 -
 node_modules/lodash/lte.js                      |     30 -
 node_modules/lodash/map.js                      |     53 -
 node_modules/lodash/mapKeys.js                  |     36 -
 node_modules/lodash/mapValues.js                |     43 -
 node_modules/lodash/matches.js                  |     39 -
 node_modules/lodash/matchesProperty.js          |     37 -
 node_modules/lodash/math.js                     |     17 -
 node_modules/lodash/max.js                      |     29 -
 node_modules/lodash/maxBy.js                    |     34 -
 node_modules/lodash/mean.js                     |     22 -
 node_modules/lodash/meanBy.js                   |     31 -
 node_modules/lodash/memoize.js                  |     73 -
 node_modules/lodash/merge.js                    |     39 -
 node_modules/lodash/mergeWith.js                |     39 -
 node_modules/lodash/method.js                   |     34 -
 node_modules/lodash/methodOf.js                 |     33 -
 node_modules/lodash/min.js                      |     29 -
 node_modules/lodash/minBy.js                    |     34 -
 node_modules/lodash/mixin.js                    |     74 -
 node_modules/lodash/multiply.js                 |     22 -
 node_modules/lodash/negate.js                   |     40 -
 node_modules/lodash/next.js                     |     35 -
 node_modules/lodash/noop.js                     |     17 -
 node_modules/lodash/now.js                      |     23 -
 node_modules/lodash/nth.js                      |     29 -
 node_modules/lodash/nthArg.js                   |     32 -
 node_modules/lodash/number.js                   |      5 -
 node_modules/lodash/object.js                   |     49 -
 node_modules/lodash/omit.js                     |     57 -
 node_modules/lodash/omitBy.js                   |     29 -
 node_modules/lodash/once.js                     |     25 -
 node_modules/lodash/orderBy.js                  |     47 -
 node_modules/lodash/over.js                     |     24 -
 node_modules/lodash/overArgs.js                 |     61 -
 node_modules/lodash/overEvery.js                |     30 -
 node_modules/lodash/overSome.js                 |     30 -
 node_modules/lodash/package.json                |    109 -
 node_modules/lodash/pad.js                      |     49 -
 node_modules/lodash/padEnd.js                   |     39 -
 node_modules/lodash/padStart.js                 |     39 -
 node_modules/lodash/parseInt.js                 |     43 -
 node_modules/lodash/partial.js                  |     50 -
 node_modules/lodash/partialRight.js             |     49 -
 node_modules/lodash/partition.js                |     43 -
 node_modules/lodash/pick.js                     |     25 -
 node_modules/lodash/pickBy.js                   |     37 -
 node_modules/lodash/plant.js                    |     48 -
 node_modules/lodash/property.js                 |     32 -
 node_modules/lodash/propertyOf.js               |     30 -
 node_modules/lodash/pull.js                     |     29 -
 node_modules/lodash/pullAll.js                  |     29 -
 node_modules/lodash/pullAllBy.js                |     33 -
 node_modules/lodash/pullAllWith.js              |     32 -
 node_modules/lodash/pullAt.js                   |     43 -
 node_modules/lodash/random.js                   |     82 -
 node_modules/lodash/range.js                    |     46 -
 node_modules/lodash/rangeRight.js               |     41 -
 node_modules/lodash/rearg.js                    |     33 -
 node_modules/lodash/reduce.js                   |     51 -
 node_modules/lodash/reduceRight.js              |     36 -
 node_modules/lodash/reject.js                   |     46 -
 node_modules/lodash/remove.js                   |     53 -
 node_modules/lodash/repeat.js                   |     37 -
 node_modules/lodash/replace.js                  |     29 -
 node_modules/lodash/rest.js                     |     40 -
 node_modules/lodash/result.js                   |     56 -
 node_modules/lodash/reverse.js                  |     34 -
 node_modules/lodash/round.js                    |     26 -
 node_modules/lodash/sample.js                   |     24 -
 node_modules/lodash/sampleSize.js               |     37 -
 node_modules/lodash/seq.js                      |     16 -
 node_modules/lodash/set.js                      |     35 -
 node_modules/lodash/setWith.js                  |     32 -
 node_modules/lodash/shuffle.js                  |     25 -
 node_modules/lodash/size.js                     |     46 -
 node_modules/lodash/slice.js                    |     37 -
 node_modules/lodash/snakeCase.js                |     28 -
 node_modules/lodash/some.js                     |     51 -
 node_modules/lodash/sortBy.js                   |     48 -
 node_modules/lodash/sortedIndex.js              |     24 -
 node_modules/lodash/sortedIndexBy.js            |     33 -
 node_modules/lodash/sortedIndexOf.js            |     31 -
 node_modules/lodash/sortedLastIndex.js          |     25 -
 node_modules/lodash/sortedLastIndexBy.js        |     33 -
 node_modules/lodash/sortedLastIndexOf.js        |     31 -
 node_modules/lodash/sortedUniq.js               |     24 -
 node_modules/lodash/sortedUniqBy.js             |     26 -
 node_modules/lodash/split.js                    |     52 -
 node_modules/lodash/spread.js                   |     63 -
 node_modules/lodash/startCase.js                |     29 -
 node_modules/lodash/startsWith.js               |     39 -
 node_modules/lodash/string.js                   |     33 -
 node_modules/lodash/stubArray.js                |     23 -
 node_modules/lodash/stubFalse.js                |     18 -
 node_modules/lodash/stubObject.js               |     23 -
 node_modules/lodash/stubString.js               |     18 -
 node_modules/lodash/stubTrue.js                 |     18 -
 node_modules/lodash/subtract.js                 |     22 -
 node_modules/lodash/sum.js                      |     24 -
 node_modules/lodash/sumBy.js                    |     33 -
 node_modules/lodash/tail.js                     |     22 -
 node_modules/lodash/take.js                     |     37 -
 node_modules/lodash/takeRight.js                |     39 -
 node_modules/lodash/takeRightWhile.js           |     45 -
 node_modules/lodash/takeWhile.js                |     45 -
 node_modules/lodash/tap.js                      |     29 -
 node_modules/lodash/template.js                 |    238 -
 node_modules/lodash/templateSettings.js         |     67 -
 node_modules/lodash/throttle.js                 |     69 -
 node_modules/lodash/thru.js                     |     28 -
 node_modules/lodash/times.js                    |     51 -
 node_modules/lodash/toArray.js                  |     58 -
 node_modules/lodash/toFinite.js                 |     42 -
 node_modules/lodash/toInteger.js                |     36 -
 node_modules/lodash/toIterator.js               |     23 -
 node_modules/lodash/toJSON.js                   |      1 -
 node_modules/lodash/toLength.js                 |     38 -
 node_modules/lodash/toLower.js                  |     28 -
 node_modules/lodash/toNumber.js                 |     66 -
 node_modules/lodash/toPairs.js                  |     30 -
 node_modules/lodash/toPairsIn.js                |     30 -
 node_modules/lodash/toPath.js                   |     33 -
 node_modules/lodash/toPlainObject.js            |     32 -
 node_modules/lodash/toSafeInteger.js            |     37 -
 node_modules/lodash/toString.js                 |     28 -
 node_modules/lodash/toUpper.js                  |     28 -
 node_modules/lodash/transform.js                |     65 -
 node_modules/lodash/trim.js                     |     49 -
 node_modules/lodash/trimEnd.js                  |     43 -
 node_modules/lodash/trimStart.js                |     43 -
 node_modules/lodash/truncate.js                 |    111 -
 node_modules/lodash/unary.js                    |     22 -
 node_modules/lodash/unescape.js                 |     34 -
 node_modules/lodash/union.js                    |     26 -
 node_modules/lodash/unionBy.js                  |     39 -
 node_modules/lodash/unionWith.js                |     34 -
 node_modules/lodash/uniq.js                     |     25 -
 node_modules/lodash/uniqBy.js                   |     31 -
 node_modules/lodash/uniqWith.js                 |     28 -
 node_modules/lodash/uniqueId.js                 |     28 -
 node_modules/lodash/unset.js                    |     34 -
 node_modules/lodash/unzip.js                    |     45 -
 node_modules/lodash/unzipWith.js                |     39 -
 node_modules/lodash/update.js                   |     35 -
 node_modules/lodash/updateWith.js               |     33 -
 node_modules/lodash/upperCase.js                |     27 -
 node_modules/lodash/upperFirst.js               |     22 -
 node_modules/lodash/util.js                     |     34 -
 node_modules/lodash/value.js                    |      1 -
 node_modules/lodash/valueOf.js                  |      1 -
 node_modules/lodash/values.js                   |     34 -
 node_modules/lodash/valuesIn.js                 |     32 -
 node_modules/lodash/without.js                  |     31 -
 node_modules/lodash/words.js                    |     35 -
 node_modules/lodash/wrap.js                     |     30 -
 node_modules/lodash/wrapperAt.js                |     48 -
 node_modules/lodash/wrapperChain.js             |     34 -
 node_modules/lodash/wrapperLodash.js            |    147 -
 node_modules/lodash/wrapperReverse.js           |     44 -
 node_modules/lodash/wrapperValue.js             |     21 -
 node_modules/lodash/xor.js                      |     28 -
 node_modules/lodash/xorBy.js                    |     39 -
 node_modules/lodash/xorWith.js                  |     34 -
 node_modules/lodash/zip.js                      |     22 -
 node_modules/lodash/zipObject.js                |     24 -
 node_modules/lodash/zipObjectDeep.js            |     23 -
 node_modules/lodash/zipWith.js                  |     32 -
 node_modules/lower-case/LICENSE                 |     21 -
 node_modules/lower-case/README.md               |     45 -
 node_modules/lower-case/lower-case.d.ts         |      3 -
 node_modules/lower-case/lower-case.js           |     54 -
 node_modules/lower-case/package.json            |    113 -
 node_modules/lru-cache/LICENSE                  |     15 -
 node_modules/lru-cache/README.md                |    148 -
 node_modules/lru-cache/lib/lru-cache.js         |    469 -
 node_modules/lru-cache/package.json             |    104 -
 node_modules/markdown/.npmignore                |      2 -
 node_modules/markdown/.travis.yml               |      7 -
 node_modules/markdown/Changes.markdown          |     35 -
 node_modules/markdown/README.markdown           |    185 -
 node_modules/markdown/bin/md2html.js            |     52 -
 node_modules/markdown/lib/index.js              |      3 -
 node_modules/markdown/lib/markdown.js           |   1725 -
 .../markdown/markdown-js.sublime-project        |     10 -
 .../markdown/markdown-js.sublime-workspace      |   1993 -
 node_modules/markdown/package.json              |    114 -
 node_modules/markdown/seed.yml                  |      5 -
 node_modules/marked/.npmignore                  |      2 -
 node_modules/marked/.travis.yml                 |      5 -
 node_modules/marked/Gulpfile.js                 |     22 -
 node_modules/marked/LICENSE                     |     19 -
 node_modules/marked/Makefile                    |     12 -
 node_modules/marked/README.md                   |    406 -
 node_modules/marked/bin/marked                  |    187 -
 node_modules/marked/bower.json                  |     24 -
 node_modules/marked/component.json              |     10 -
 node_modules/marked/doc/broken.md               |    426 -
 node_modules/marked/doc/todo.md                 |      2 -
 node_modules/marked/index.js                    |      1 -
 node_modules/marked/lib/marked.js               |   1286 -
 node_modules/marked/man/marked.1                |     91 -
 node_modules/marked/marked.min.js               |      6 -
 node_modules/marked/package.json                |    108 -
 node_modules/micromatch/LICENSE                 |     21 -
 node_modules/micromatch/README.md               |    689 -
 node_modules/micromatch/index.js                |    431 -
 node_modules/micromatch/lib/chars.js            |     67 -
 node_modules/micromatch/lib/expand.js           |    304 -
 node_modules/micromatch/lib/glob.js             |    193 -
 node_modules/micromatch/lib/utils.js            |    149 -
 node_modules/micromatch/package.json            |    189 -
 node_modules/mime-db/HISTORY.md                 |    391 -
 node_modules/mime-db/LICENSE                    |     22 -
 node_modules/mime-db/README.md                  |     82 -
 node_modules/mime-db/db.json                    |   6751 -
 node_modules/mime-db/index.js                   |     11 -
 node_modules/mime-db/package.json               |    139 -
 node_modules/mime-types/HISTORY.md              |    216 -
 node_modules/mime-types/LICENSE                 |     23 -
 node_modules/mime-types/README.md               |    103 -
 node_modules/mime-types/index.js                |    188 -
 node_modules/mime-types/package.json            |    129 -
 node_modules/mime/.npmignore                    |      0
 node_modules/mime/LICENSE                       |     19 -
 node_modules/mime/README.md                     |     90 -
 node_modules/mime/build/build.js                |     11 -
 node_modules/mime/build/test.js                 |     57 -
 node_modules/mime/cli.js                        |      8 -
 node_modules/mime/mime.js                       |    108 -
 node_modules/mime/package.json                  |    108 -
 node_modules/mime/types.json                    |      1 -
 node_modules/minimatch/LICENSE                  |     15 -
 node_modules/minimatch/README.md                |    209 -
 node_modules/minimatch/minimatch.js             |    923 -
 node_modules/minimatch/package.json             |    100 -
 node_modules/minimist/.travis.yml               |      8 -
 node_modules/minimist/LICENSE                   |     18 -
 node_modules/minimist/example/parse.js          |      2 -
 node_modules/minimist/index.js                  |    236 -
 node_modules/minimist/package.json              |    106 -
 node_modules/minimist/readme.markdown           |     91 -
 node_modules/minimist/test/all_bool.js          |     32 -
 node_modules/minimist/test/bool.js              |    166 -
 node_modules/minimist/test/dash.js              |     31 -
 node_modules/minimist/test/default_bool.js      |     35 -
 node_modules/minimist/test/dotted.js            |     22 -
 node_modules/minimist/test/kv_short.js          |     16 -
 node_modules/minimist/test/long.js              |     31 -
 node_modules/minimist/test/num.js               |     36 -
 node_modules/minimist/test/parse.js             |    197 -
 node_modules/minimist/test/parse_modified.js    |      9 -
 node_modules/minimist/test/short.js             |     67 -
 node_modules/minimist/test/stop_early.js        |     15 -
 node_modules/minimist/test/unknown.js           |    102 -
 node_modules/minimist/test/whitespace.js        |      8 -
 node_modules/mkdirp/.travis.yml                 |      8 -
 node_modules/mkdirp/LICENSE                     |     21 -
 node_modules/mkdirp/bin/cmd.js                  |     33 -
 node_modules/mkdirp/bin/usage.txt               |     12 -
 node_modules/mkdirp/examples/pow.js             |      6 -
 node_modules/mkdirp/index.js                    |     98 -
 .../mkdirp/node_modules/minimist/.travis.yml    |      4 -
 .../mkdirp/node_modules/minimist/LICENSE        |     18 -
 .../node_modules/minimist/example/parse.js      |      2 -
 .../mkdirp/node_modules/minimist/index.js       |    187 -
 .../mkdirp/node_modules/minimist/package.json   |    102 -
 .../node_modules/minimist/readme.markdown       |     73 -
 .../mkdirp/node_modules/minimist/test/dash.js   |     24 -
 .../node_modules/minimist/test/default_bool.js  |     20 -
 .../mkdirp/node_modules/minimist/test/dotted.js |     16 -
 .../mkdirp/node_modules/minimist/test/long.js   |     31 -
 .../mkdirp/node_modules/minimist/test/parse.js  |    318 -
 .../minimist/test/parse_modified.js             |      9 -
 .../mkdirp/node_modules/minimist/test/short.js  |     67 -
 .../node_modules/minimist/test/whitespace.js    |      8 -
 node_modules/mkdirp/package.json                |     94 -
 node_modules/mkdirp/readme.markdown             |    100 -
 node_modules/mkdirp/test/chmod.js               |     41 -
 node_modules/mkdirp/test/clobber.js             |     38 -
 node_modules/mkdirp/test/mkdirp.js              |     28 -
 node_modules/mkdirp/test/opts_fs.js             |     29 -
 node_modules/mkdirp/test/opts_fs_sync.js        |     27 -
 node_modules/mkdirp/test/perm.js                |     32 -
 node_modules/mkdirp/test/perm_sync.js           |     36 -
 node_modules/mkdirp/test/race.js                |     37 -
 node_modules/mkdirp/test/rel.js                 |     32 -
 node_modules/mkdirp/test/return.js              |     25 -
 node_modules/mkdirp/test/return_sync.js         |     24 -
 node_modules/mkdirp/test/root.js                |     19 -
 node_modules/mkdirp/test/sync.js                |     32 -
 node_modules/mkdirp/test/umask.js               |     28 -
 node_modules/mkdirp/test/umask_sync.js          |     32 -
 node_modules/moment-timezone/.npmignore         |     19 -
 node_modules/moment-timezone/LICENSE            |     20 -
 node_modules/moment-timezone/README.md          |     36 -
 .../moment-timezone-with-data-2010-2020.js      |   1200 -
 .../moment-timezone-with-data-2010-2020.min.js  |      7 -
 .../builds/moment-timezone-with-data.js         |   1200 -
 .../builds/moment-timezone-with-data.min.js     |      7 -
 .../builds/moment-timezone.min.js               |      6 -
 node_modules/moment-timezone/changelog.md       |    131 -
 node_modules/moment-timezone/composer.json      |     43 -
 .../moment-timezone/data/meta/latest.json       |   5092 -
 .../moment-timezone/data/packed/latest.json     |    599 -
 .../moment-timezone/data/unpacked/latest.json   | 125710 ----------------
 node_modules/moment-timezone/index.js           |      2 -
 .../moment-timezone/moment-timezone-utils.js    |    316 -
 node_modules/moment-timezone/moment-timezone.js |    601 -
 node_modules/moment-timezone/package.json       |    129 -
 node_modules/moment/.npmignore                  |      2 -
 node_modules/moment/CHANGELOG.md                |    535 -
 node_modules/moment/LICENSE                     |     22 -
 node_modules/moment/README.md                   |     58 -
 node_modules/moment/ender.js                    |      1 -
 node_modules/moment/locale/af.js                |     73 -
 node_modules/moment/locale/ar-ma.js             |     60 -
 node_modules/moment/locale/ar-sa.js             |    104 -
 node_modules/moment/locale/ar-tn.js             |     58 -
 node_modules/moment/locale/ar.js                |    137 -
 node_modules/moment/locale/az.js                |    105 -
 node_modules/moment/locale/be.js                |    134 -
 node_modules/moment/locale/bg.js                |     90 -
 node_modules/moment/locale/bn.js                |    119 -
 node_modules/moment/locale/bo.js                |    119 -
 node_modules/moment/locale/br.js                |    108 -
 node_modules/moment/locale/bs.js                |    143 -
 node_modules/moment/locale/ca.js                |     81 -
 node_modules/moment/locale/cs.js                |    171 -
 node_modules/moment/locale/cv.js                |     63 -
 node_modules/moment/locale/cy.js                |     80 -
 node_modules/moment/locale/da.js                |     60 -
 node_modules/moment/locale/de-at.js             |     79 -
 node_modules/moment/locale/de.js                |     78 -
 node_modules/moment/locale/dv.js                |     99 -
 node_modules/moment/locale/el.js                |     98 -
 node_modules/moment/locale/en-au.js             |     66 -
 node_modules/moment/locale/en-ca.js             |     63 -
 node_modules/moment/locale/en-gb.js             |     67 -
 node_modules/moment/locale/en-ie.js             |     67 -
 node_modules/moment/locale/en-nz.js             |     66 -
 node_modules/moment/locale/eo.js                |     73 -
 node_modules/moment/locale/es.js                |     81 -
 node_modules/moment/locale/et.js                |     80 -
 node_modules/moment/locale/eu.js                |     66 -
 node_modules/moment/locale/fa.js                |    106 -
 node_modules/moment/locale/fi.js                |    107 -
 node_modules/moment/locale/fo.js                |     60 -
 node_modules/moment/locale/fr-ca.js             |     60 -
 node_modules/moment/locale/fr-ch.js             |     64 -
 node_modules/moment/locale/fr.js                |     64 -
 node_modules/moment/locale/fy.js                |     73 -
 node_modules/moment/locale/gd.js                |     76 -
 node_modules/moment/locale/gl.js                |     77 -
 node_modules/moment/locale/he.js                |     99 -
 node_modules/moment/locale/hi.js                |    124 -
 node_modules/moment/locale/hr.js                |    145 -
 node_modules/moment/locale/hu.js                |    109 -
 node_modules/moment/locale/hy-am.js             |     95 -
 node_modules/moment/locale/id.js                |     83 -
 node_modules/moment/locale/is.js                |    127 -
 node_modules/moment/locale/it.js                |     70 -
 node_modules/moment/locale/ja.js                |     76 -
 node_modules/moment/locale/jv.js                |     83 -
 node_modules/moment/locale/ka.js                |     89 -
 node_modules/moment/locale/kk.js                |     87 -
 node_modules/moment/locale/km.js                |     58 -
 node_modules/moment/locale/ko.js                |     68 -
 node_modules/moment/locale/ky.js                |     88 -
 node_modules/moment/locale/lb.js                |    136 -
 node_modules/moment/locale/lo.js                |     70 -
 node_modules/moment/locale/lt.js                |    116 -
 node_modules/moment/locale/lv.js                |     97 -
 node_modules/moment/locale/me.js                |    111 -
 node_modules/moment/locale/mk.js                |     90 -
 node_modules/moment/locale/ml.js                |     81 -
 node_modules/moment/locale/mr.js                |    159 -
 node_modules/moment/locale/ms-my.js             |     82 -
 node_modules/moment/locale/ms.js                |     82 -
 node_modules/moment/locale/my.js                |     93 -
 node_modules/moment/locale/nb.js                |     63 -
 node_modules/moment/locale/ne.js                |    123 -
 node_modules/moment/locale/nl.js                |     73 -
 node_modules/moment/locale/nn.js                |     60 -
 node_modules/moment/locale/pa-in.js             |    124 -
 node_modules/moment/locale/pl.js                |    105 -
 node_modules/moment/locale/pt-br.js             |     61 -
 node_modules/moment/locale/pt.js                |     65 -
 node_modules/moment/locale/ro.js                |     75 -
 node_modules/moment/locale/ru.js                |    175 -
 node_modules/moment/locale/se.js                |     61 -
 node_modules/moment/locale/si.js                |     71 -
 node_modules/moment/locale/sk.js                |    150 -
 node_modules/moment/locale/sl.js                |    162 -
 node_modules/moment/locale/sq.js                |     70 -
 node_modules/moment/locale/sr-cyrl.js           |    110 -
 node_modules/moment/locale/sr.js                |    110 -
 node_modules/moment/locale/ss.js                |     89 -
 node_modules/moment/locale/sv.js                |     69 -
 node_modules/moment/locale/sw.js                |     59 -
 node_modules/moment/locale/ta.js                |    129 -
 node_modules/moment/locale/te.js                |     89 -
 node_modules/moment/locale/th.js                |     67 -
 node_modules/moment/locale/tl-ph.js             |     62 -
 node_modules/moment/locale/tlh.js               |    120 -
 node_modules/moment/locale/tr.js                |     90 -
 node_modules/moment/locale/tzl.js               |     91 -
 node_modules/moment/locale/tzm-latn.js          |     58 -
 node_modules/moment/locale/tzm.js               |     58 -
 node_modules/moment/locale/uk.js                |    146 -
 node_modules/moment/locale/uz.js                |     58 -
 node_modules/moment/locale/vi.js                |     79 -
 node_modules/moment/locale/x-pseudo.js          |     68 -
 node_modules/moment/locale/zh-cn.js             |    127 -
 node_modules/moment/locale/zh-tw.js             |    101 -
 node_modules/moment/min/locales.js              |   8021 -
 node_modules/moment/min/locales.min.js          |     73 -
 node_modules/moment/min/moment-with-locales.js  |  12051 --
 .../moment/min/moment-with-locales.min.js       |     76 -
 node_modules/moment/min/moment.min.js           |      7 -
 node_modules/moment/moment.d.ts                 |    512 -
 node_modules/moment/moment.js                   |   4040 -
 node_modules/moment/package.js                  |     11 -
 node_modules/moment/package.json                |    184 -
 .../moment/src/lib/create/check-overflow.js     |     34 -
 .../moment/src/lib/create/date-from-array.js    |     21 -
 .../moment/src/lib/create/from-anything.js      |    101 -
 .../moment/src/lib/create/from-array.js         |    136 -
 .../moment/src/lib/create/from-object.js        |     16 -
 .../src/lib/create/from-string-and-array.js     |     50 -
 .../src/lib/create/from-string-and-format.js    |    107 -
 .../moment/src/lib/create/from-string.js        |    120 -
 node_modules/moment/src/lib/create/local.js     |      5 -
 .../moment/src/lib/create/parsing-flags.js      |     24 -
 node_modules/moment/src/lib/create/utc.js       |      5 -
 node_modules/moment/src/lib/create/valid.js     |     42 -
 node_modules/moment/src/lib/duration/abs.js     |     18 -
 .../moment/src/lib/duration/add-subtract.js     |     21 -
 node_modules/moment/src/lib/duration/as.js      |     55 -
 node_modules/moment/src/lib/duration/bubble.js  |     61 -
 .../moment/src/lib/duration/constructor.js      |     41 -
 node_modules/moment/src/lib/duration/create.js  |    118 -
 .../moment/src/lib/duration/duration.js         |     12 -
 node_modules/moment/src/lib/duration/get.js     |     25 -
 .../moment/src/lib/duration/humanize.js         |     64 -
 .../moment/src/lib/duration/iso-string.js       |     52 -
 .../moment/src/lib/duration/prototype.js        |     48 -
 node_modules/moment/src/lib/format/format.js    |     91 -
 node_modules/moment/src/lib/locale/calendar.js  |     15 -
 .../moment/src/lib/locale/constructor.js        |      5 -
 node_modules/moment/src/lib/locale/en.js        |     15 -
 node_modules/moment/src/lib/locale/formats.js   |     23 -
 node_modules/moment/src/lib/locale/invalid.js   |      5 -
 node_modules/moment/src/lib/locale/lists.js     |     92 -
 node_modules/moment/src/lib/locale/locale.js    |     39 -
 node_modules/moment/src/lib/locale/locales.js   |    164 -
 node_modules/moment/src/lib/locale/ordinal.js   |      7 -
 .../moment/src/lib/locale/pre-post-format.js    |      3 -
 node_modules/moment/src/lib/locale/prototype.js |     87 -
 node_modules/moment/src/lib/locale/relative.js  |     29 -
 node_modules/moment/src/lib/locale/set.js       |     38 -
 .../moment/src/lib/moment/add-subtract.js       |     54 -
 node_modules/moment/src/lib/moment/calendar.js  |     21 -
 node_modules/moment/src/lib/moment/clone.js     |      5 -
 node_modules/moment/src/lib/moment/compare.js   |     59 -
 .../moment/src/lib/moment/constructor.js        |     74 -
 .../moment/src/lib/moment/creation-data.js      |      9 -
 node_modules/moment/src/lib/moment/diff.js      |     62 -
 node_modules/moment/src/lib/moment/format.js    |     32 -
 node_modules/moment/src/lib/moment/from.js      |     17 -
 node_modules/moment/src/lib/moment/get-set.js   |     43 -
 node_modules/moment/src/lib/moment/locale.js    |     34 -
 node_modules/moment/src/lib/moment/min-max.js   |     63 -
 node_modules/moment/src/lib/moment/moment.js    |     28 -
 node_modules/moment/src/lib/moment/now.js       |      3 -
 node_modules/moment/src/lib/moment/prototype.js |    149 -
 .../moment/src/lib/moment/start-end-of.js       |     59 -
 node_modules/moment/src/lib/moment/to-type.js   |     34 -
 node_modules/moment/src/lib/moment/to.js        |     17 -
 node_modules/moment/src/lib/moment/valid.js     |     15 -
 node_modules/moment/src/lib/parse/regex.js      |     54 -
 node_modules/moment/src/lib/parse/token.js      |     32 -
 node_modules/moment/src/lib/units/aliases.js    |     29 -
 node_modules/moment/src/lib/units/constants.js  |      9 -
 .../moment/src/lib/units/day-of-month.js        |     32 -
 .../moment/src/lib/units/day-of-week.js         |    331 -
 .../moment/src/lib/units/day-of-year.js         |     32 -
 node_modules/moment/src/lib/units/hour.js       |    134 -
 .../moment/src/lib/units/millisecond.js         |     64 -
 node_modules/moment/src/lib/units/minute.js     |     24 -
 node_modules/moment/src/lib/units/month.js      |    261 -
 node_modules/moment/src/lib/units/offset.js     |    219 -
 node_modules/moment/src/lib/units/quarter.js    |     27 -
 node_modules/moment/src/lib/units/second.js     |     24 -
 node_modules/moment/src/lib/units/timestamp.js  |     20 -
 node_modules/moment/src/lib/units/timezone.js   |     16 -
 node_modules/moment/src/lib/units/units.js      |     20 -
 .../moment/src/lib/units/week-calendar-utils.js |     65 -
 node_modules/moment/src/lib/units/week-year.js  |    100 -
 node_modules/moment/src/lib/units/week.js       |     61 -
 node_modules/moment/src/lib/units/year.js       |     70 -
 node_modules/moment/src/lib/utils/abs-ceil.js   |      7 -
 node_modules/moment/src/lib/utils/abs-floor.js  |      7 -
 node_modules/moment/src/lib/utils/abs-round.js  |      7 -
 .../moment/src/lib/utils/compare-arrays.js      |     16 -
 node_modules/moment/src/lib/utils/defaults.js   |     10 -
 node_modules/moment/src/lib/utils/deprecate.js  |     40 -
 node_modules/moment/src/lib/utils/extend.js     |     19 -
 .../moment/src/lib/utils/has-own-prop.js        |      3 -
 node_modules/moment/src/lib/utils/hooks.js      |     13 -
 node_modules/moment/src/lib/utils/index-of.js   |     18 -
 node_modules/moment/src/lib/utils/is-array.js   |      3 -
 node_modules/moment/src/lib/utils/is-date.js    |      3 -
 .../moment/src/lib/utils/is-function.js         |      3 -
 node_modules/moment/src/lib/utils/is-object.js  |      3 -
 .../moment/src/lib/utils/is-undefined.js        |      3 -
 node_modules/moment/src/lib/utils/keys.js       |     19 -
 node_modules/moment/src/lib/utils/map.js        |      7 -
 node_modules/moment/src/lib/utils/some.js       |     19 -
 node_modules/moment/src/lib/utils/to-int.js     |     12 -
 node_modules/moment/src/lib/utils/zero-fill.js  |      7 -
 node_modules/moment/src/locale/af.js            |     63 -
 node_modules/moment/src/locale/ar-ma.js         |     51 -
 node_modules/moment/src/locale/ar-sa.js         |     95 -
 node_modules/moment/src/locale/ar-tn.js         |     49 -
 node_modules/moment/src/locale/ar.js            |    128 -
 node_modules/moment/src/locale/az.js            |     96 -
 node_modules/moment/src/locale/be.js            |    125 -
 node_modules/moment/src/locale/bg.js            |     81 -
 node_modules/moment/src/locale/bn.js            |    110 -
 node_modules/moment/src/locale/bo.js            |    110 -
 node_modules/moment/src/locale/br.js            |     99 -
 node_modules/moment/src/locale/bs.js            |    134 -
 node_modules/moment/src/locale/ca.js            |     72 -
 node_modules/moment/src/locale/cs.js            |    162 -
 node_modules/moment/src/locale/cv.js            |     53 -
 node_modules/moment/src/locale/cy.js            |     71 -
 node_modules/moment/src/locale/da.js            |     51 -
 node_modules/moment/src/locale/de-at.js         |     69 -
 node_modules/moment/src/locale/de.js            |     68 -
 node_modules/moment/src/locale/dv.js            |     89 -
 node_modules/moment/src/locale/el.js            |     86 -
 node_modules/moment/src/locale/en-au.js         |     57 -
 node_modules/moment/src/locale/en-ca.js         |     53 -
 node_modules/moment/src/locale/en-gb.js         |     58 -
 node_modules/moment/src/locale/en-ie.js         |     58 -
 node_modules/moment/src/locale/en-nz.js         |     56 -
 node_modules/moment/src/locale/eo.js            |     64 -
 node_modules/moment/src/locale/es.js            |     72 -
 node_modules/moment/src/locale/et.js            |     71 -
 node_modules/moment/src/locale/eu.js            |     57 -
 node_modules/moment/src/locale/fa.js            |     97 -
 node_modules/moment/src/locale/fi.js            |     98 -
 node_modules/moment/src/locale/fo.js            |     51 -
 node_modules/moment/src/locale/fr-ca.js         |     51 -
 node_modules/moment/src/locale/fr-ch.js         |     55 -
 node_modules/moment/src/locale/fr.js            |     55 -
 node_modules/moment/src/locale/fy.js            |     64 -
 node_modules/moment/src/locale/gd.js            |     67 -
 node_modules/moment/src/locale/gl.js            |     68 -
 node_modules/moment/src/locale/he.js            |     90 -
 node_modules/moment/src/locale/hi.js            |    115 -
 node_modules/moment/src/locale/hr.js            |    136 -
 node_modules/moment/src/locale/hu.js            |    100 -
 node_modules/moment/src/locale/hy-am.js         |     86 -
 node_modules/moment/src/locale/id.js            |     74 -
 node_modules/moment/src/locale/is.js            |    118 -
 node_modules/moment/src/locale/it.js            |     61 -
 node_modules/moment/src/locale/ja.js            |     67 -
 node_modules/moment/src/locale/jv.js            |     73 -
 node_modules/moment/src/locale/ka.js            |     80 -
 node_modules/moment/src/locale/kk.js            |     77 -
 node_modules/moment/src/locale/km.js            |     49 -
 node_modules/moment/src/locale/ko.js            |     59 -
 node_modules/moment/src/locale/ky.js            |     78 -
 node_modules/moment/src/locale/lb.js            |    127 -
 node_modules/moment/src/locale/lo.js            |     61 -
 node_modules/moment/src/locale/lt.js            |    107 -
 node_modules/moment/src/locale/lv.js            |     88 -
 node_modules/moment/src/locale/me.js            |    101 -
 node_modules/moment/src/locale/mk.js            |     81 -
 node_modules/moment/src/locale/ml.js            |     72 -
 node_modules/moment/src/locale/mr.js            |    150 -
 node_modules/moment/src/locale/ms-my.js         |     73 -
 node_modules/moment/src/locale/ms.js            |     73 -
 node_modules/moment/src/locale/my.js            |     84 -
 node_modules/moment/src/locale/nb.js            |     54 -
 node_modules/moment/src/locale/ne.js            |    114 -
 node_modules/moment/src/locale/nl.js            |     64 -
 node_modules/moment/src/locale/nn.js            |     51 -
 node_modules/moment/src/locale/pa-in.js         |    115 -
 node_modules/moment/src/locale/pl.js            |     95 -
 node_modules/moment/src/locale/pt-br.js         |     52 -
 node_modules/moment/src/locale/pt.js            |     56 -
 node_modules/moment/src/locale/ro.js            |     66 -
 node_modules/moment/src/locale/ru.js            |    165 -
 node_modules/moment/src/locale/se.js            |     51 -
 node_modules/moment/src/locale/si.js            |     61 -
 node_modules/moment/src/locale/sk.js            |    141 -
 node_modules/moment/src/locale/sl.js            |    152 -
 node_modules/moment/src/locale/sq.js            |     61 -
 node_modules/moment/src/locale/sr-cyrl.js       |    101 -
 node_modules/moment/src/locale/sr.js            |    101 -
 node_modules/moment/src/locale/ss.js            |     80 -
 node_modules/moment/src/locale/sv.js            |     60 -
 node_modules/moment/src/locale/sw.js            |     50 -
 node_modules/moment/src/locale/ta.js            |    120 -
 node_modules/moment/src/locale/te.js            |     79 -
 node_modules/moment/src/locale/th.js            |     58 -
 node_modules/moment/src/locale/tl-ph.js         |     53 -
 node_modules/moment/src/locale/tlh.js           |    110 -
 node_modules/moment/src/locale/tr.js            |     81 -
 node_modules/moment/src/locale/tzl.js           |     82 -
 node_modules/moment/src/locale/tzm-latn.js      |     49 -
 node_modules/moment/src/locale/tzm.js           |     49 -
 node_modules/moment/src/locale/uk.js            |    137 -
 node_modules/moment/src/locale/uz.js            |     49 -
 node_modules/moment/src/locale/vi.js            |     70 -
 node_modules/moment/src/locale/x-pseudo.js      |     58 -
 node_modules/moment/src/locale/zh-cn.js         |    118 -
 node_modules/moment/src/locale/zh-tw.js         |     91 -
 node_modules/moment/src/moment.js               |     75 -
 node_modules/morgan/HISTORY.md                  |    178 -
 node_modules/morgan/LICENSE                     |     23 -
 node_modules/morgan/README.md                   |    380 -
 node_modules/morgan/index.js                    |    508 -
 .../morgan/node_modules/debug/.coveralls.yml    |      1 -
 .../morgan/node_modules/debug/.eslintrc         |     11 -
 .../morgan/node_modules/debug/.npmignore        |      8 -
 .../morgan/node_modules/debug/.travis.yml       |     14 -
 .../morgan/node_modules/debug/CHANGELOG.md      |    316 -
 node_modules/morgan/node_modules/debug/LICENSE  |     19 -
 node_modules/morgan/node_modules/debug/Makefile |     50 -
 .../morgan/node_modules/debug/README.md         |    238 -
 .../morgan/node_modules/debug/bower.json        |     29 -
 .../morgan/node_modules/debug/component.json    |     19 -
 .../morgan/node_modules/debug/karma.conf.js     |     70 -
 node_modules/morgan/node_modules/debug/node.js  |      1 -
 .../morgan/node_modules/debug/package.json      |    125 -
 .../morgan/node_modules/debug/src/browser.js    |    182 -
 .../morgan/node_modules/debug/src/debug.js      |    202 -
 .../morgan/node_modules/debug/src/index.js      |     10 -
 .../morgan/node_modules/debug/src/node.js       |    241 -
 node_modules/morgan/package.json                |    127 -
 node_modules/ms/LICENSE.md                      |     21 -
 node_modules/ms/README.md                       |     52 -
 node_modules/ms/index.js                        |    149 -
 node_modules/ms/package.json                    |    114 -
 node_modules/mv/.npmignore                      |      1 -
 node_modules/mv/.travis.yml                     |      4 -
 node_modules/mv/LICENSE                         |     21 -
 node_modules/mv/README.md                       |     33 -
 node_modules/mv/index.js                        |    105 -
 node_modules/mv/package.json                    |     99 -
 node_modules/mv/test/a-file                     |      1 -
 node_modules/mv/test/a-folder/another-file      |      1 -
 .../mv/test/a-folder/another-folder/file3       |      1 -
 node_modules/mv/test/test.js                    |    151 -
 node_modules/nan/CHANGELOG.md                   |    441 -
 node_modules/nan/LICENSE.md                     |     13 -
 node_modules/nan/README.md                      |    407 -
 node_modules/nan/doc/asyncworker.md             |    103 -
 node_modules/nan/doc/buffers.md                 |     54 -
 node_modules/nan/doc/callback.md                |     56 -
 node_modules/nan/doc/converters.md              |     41 -
 node_modules/nan/doc/errors.md                  |    226 -
 node_modules/nan/doc/maybe_types.md             |    560 -
 node_modules/nan/doc/methods.md                 |    659 -
 node_modules/nan/doc/new.md                     |    147 -
 node_modules/nan/doc/node_misc.md               |     63 -
 node_modules/nan/doc/object_wrappers.md         |    263 -
 node_modules/nan/doc/persistent.md              |    295 -
 node_modules/nan/doc/scopes.md                  |     73 -
 node_modules/nan/doc/script.md                  |     38 -
 node_modules/nan/doc/string_bytes.md            |     62 -
 node_modules/nan/doc/v8_internals.md            |    199 -
 node_modules/nan/doc/v8_misc.md                 |     85 -
 node_modules/nan/include_dirs.js                |      1 -
 node_modules/nan/nan.h                          |   2315 -
 node_modules/nan/nan_callbacks.h                |     88 -
 node_modules/nan/nan_callbacks_12_inl.h         |    512 -
 node_modules/nan/nan_callbacks_pre_12_inl.h     |    520 -
 node_modules/nan/nan_converters.h               |     64 -
 node_modules/nan/nan_converters_43_inl.h        |     48 -
 node_modules/nan/nan_converters_pre_43_inl.h    |     42 -
 node_modules/nan/nan_implementation_12_inl.h    |    399 -
 .../nan/nan_implementation_pre_12_inl.h         |    263 -
 node_modules/nan/nan_maybe_43_inl.h             |    337 -
 node_modules/nan/nan_maybe_pre_43_inl.h         |    305 -
 node_modules/nan/nan_new.h                      |    340 -
 node_modules/nan/nan_object_wrap.h              |    155 -
 node_modules/nan/nan_persistent_12_inl.h        |    132 -
 node_modules/nan/nan_persistent_pre_12_inl.h    |    242 -
 node_modules/nan/nan_private.h                  |     73 -
 node_modules/nan/nan_string_bytes.h             |    305 -
 node_modules/nan/nan_typedarray_contents.h      |     90 -
 node_modules/nan/nan_weak.h                     |    432 -
 node_modules/nan/package.json                   |    132 -
 node_modules/nan/tools/1to2.js                  |    412 -
 node_modules/nan/tools/README.md                |     14 -
 node_modules/nan/tools/package.json             |     19 -
 node_modules/ncp/.npmignore                     |      4 -
 node_modules/ncp/.travis.yml                    |      6 -
 node_modules/ncp/LICENSE.md                     |     21 -
 node_modules/ncp/README.md                      |     63 -
 node_modules/ncp/bin/ncp                        |     48 -
 node_modules/ncp/lib/ncp.js                     |    261 -
 node_modules/ncp/package.json                   |     99 -
 node_modules/ncp/test/modified-files/out/a      |      1 -
 node_modules/ncp/test/modified-files/src/a      |      1 -
 node_modules/ncp/test/ncp.js                    |    197 -
 node_modules/ncp/test/regular-fixtures/src/a    |      1 -
 node_modules/ncp/test/regular-fixtures/src/b    |      1 -
 node_modules/ncp/test/regular-fixtures/src/c    |      0
 node_modules/ncp/test/regular-fixtures/src/d    |      0
 node_modules/ncp/test/regular-fixtures/src/e    |      0
 node_modules/ncp/test/regular-fixtures/src/f    |      0
 .../ncp/test/regular-fixtures/src/sub/a         |      1 -
 .../ncp/test/regular-fixtures/src/sub/b         |      0
 .../ncp/test/symlink-fixtures/src/dir/bar       |      1 -
 node_modules/ncp/test/symlink-fixtures/src/foo  |      1 -
 node_modules/negotiator/HISTORY.md              |     98 -
 node_modules/negotiator/LICENSE                 |     24 -
 node_modules/negotiator/README.md               |    203 -
 node_modules/negotiator/index.js                |    124 -
 node_modules/negotiator/lib/charset.js          |    169 -
 node_modules/negotiator/lib/encoding.js         |    184 -
 node_modules/negotiator/lib/language.js         |    179 -
 node_modules/negotiator/lib/mediaType.js        |    294 -
 node_modules/negotiator/package.json            |    126 -
 node_modules/nib/.editorconfig                  |     12 -
 node_modules/nib/.npmignore                     |      2 -
 node_modules/nib/.travis.yml                    |      7 -
 node_modules/nib/LICENSE                        |     20 -
 node_modules/nib/Readme.md                      |     94 -
 node_modules/nib/docs/README.md                 |    321 -
 node_modules/nib/iconic/demo.html               |     95 -
 node_modules/nib/iconic/iconic.css              |     97 -
 node_modules/nib/iconic/iconic_stroke.eot       |    Bin 30914 -> 0 bytes
 node_modules/nib/iconic/iconic_stroke.otf       |    Bin 44880 -> 0 bytes
 node_modules/nib/iconic/iconic_stroke.svg       |    393 -
 node_modules/nib/iconic/iconic_stroke.ttf       |    Bin 30724 -> 0 bytes
 node_modules/nib/index.styl                     |      1 -
 node_modules/nib/lib/nib.js                     |     68 -
 node_modules/nib/lib/nib/border-radius.styl     |     53 -
 node_modules/nib/lib/nib/border.styl            |     10 -
 node_modules/nib/lib/nib/clearfix.styl          |     28 -
 node_modules/nib/lib/nib/color-image.styl       |      4 -
 node_modules/nib/lib/nib/config.styl            |     11 -
 node_modules/nib/lib/nib/flex.styl              |    196 -
 node_modules/nib/lib/nib/gradients.styl         |     90 -
 node_modules/nib/lib/nib/iconic.styl            |      7 -
 node_modules/nib/lib/nib/image.styl             |     25 -
 node_modules/nib/lib/nib/index.styl             |     15 -
 node_modules/nib/lib/nib/normalize/base.styl    |      8 -
 node_modules/nib/lib/nib/normalize/embed.styl   |      7 -
 node_modules/nib/lib/nib/normalize/forms.styl   |     69 -
 node_modules/nib/lib/nib/normalize/groups.styl  |     17 -
 node_modules/nib/lib/nib/normalize/html5.styl   |     19 -
 node_modules/nib/lib/nib/normalize/index.styl   |     19 -
 node_modules/nib/lib/nib/normalize/links.styl   |      6 -
 node_modules/nib/lib/nib/normalize/tables.styl  |      7 -
 node_modules/nib/lib/nib/normalize/text.styl    |     30 -
 node_modules/nib/lib/nib/overflow.styl          |     20 -
 node_modules/nib/lib/nib/positions.styl         |     66 -
 node_modules/nib/lib/nib/reset.styl             |     78 -
 node_modules/nib/lib/nib/size.styl              |     28 -
 node_modules/nib/lib/nib/text/aliases.styl      |     12 -
 node_modules/nib/lib/nib/text/ellipsis.styl     |      9 -
 node_modules/nib/lib/nib/text/hide-text.styl    |      8 -
 node_modules/nib/lib/nib/text/index.styl        |      5 -
 node_modules/nib/lib/nib/text/replace-text.styl |      9 -
 .../nib/lib/nib/text/shadow-stroke.styl         |      2 -
 node_modules/nib/lib/nib/vendor.styl            |    523 -
 node_modules/nib/lib/nodes/color-image.js       |     83 -
 node_modules/nib/lib/nodes/gradient.js          |    163 -
 node_modules/nib/lib/nodes/vendor-helpers.js    |     79 -
 node_modules/nib/node_modules/.bin/stylus       |      1 -
 node_modules/nib/node_modules/glob/LICENSE      |     15 -
 node_modules/nib/node_modules/glob/README.md    |    365 -
 node_modules/nib/node_modules/glob/changelog.md |     67 -
 node_modules/nib/node_modules/glob/common.js    |    235 -
 node_modules/nib/node_modules/glob/glob.js      |    787 -
 node_modules/nib/node_modules/glob/package.json |    112 -
 node_modules/nib/node_modules/glob/sync.js      |    468 -
 node_modules/nib/node_modules/sax/AUTHORS       |     10 -
 node_modules/nib/node_modules/sax/LICENSE       |     32 -
 .../nib/node_modules/sax/LICENSE-W3C.html       |    188 -
 node_modules/nib/node_modules/sax/README.md     |    216 -
 .../nib/node_modules/sax/component.json         |     12 -
 .../sax/examples/big-not-pretty.xml             |   8002 -
 .../nib/node_modules/sax/examples/example.js    |     29 -
 .../node_modules/sax/examples/get-products.js   |     58 -
 .../node_modules/sax/examples/hello-world.js    |      4 -
 .../node_modules/sax/examples/not-pretty.xml    |      8 -
 .../node_modules/sax/examples/pretty-print.js   |     74 -
 .../nib/node_modules/sax/examples/shopping.xml  |      2 -
 .../nib/node_modules/sax/examples/strict.dtd    |    870 -
 .../nib/node_modules/sax/examples/test.html     |     15 -
 .../nib/node_modules/sax/examples/test.xml      |   1254 -
 node_modules/nib/node_modules/sax/lib/sax.js    |   1355 -
 node_modules/nib/node_modules/sax/package.json  |    118 -
 .../nib/node_modules/sax/test/attribute-name.js |     33 -
 .../node_modules/sax/test/attribute-no-space.js |     75 -
 .../nib/node_modules/sax/test/buffer-overrun.js |     26 -
 node_modules/nib/node_modules/sax/test/case.js  |     50 -
 .../nib/node_modules/sax/test/cdata-chunked.js  |     11 -
 .../node_modules/sax/test/cdata-end-split.js    |     15 -
 .../nib/node_modules/sax/test/cdata-fake-end.js |     28 -
 .../nib/node_modules/sax/test/cdata-multiple.js |     15 -
 node_modules/nib/node_modules/sax/test/cdata.js |     10 -
 .../nib/node_modules/sax/test/cyrillic.js       |      8 -
 .../sax/test/duplicate-attribute.js             |     13 -
 .../node_modules/sax/test/end_empty_stream.js   |      5 -
 .../nib/node_modules/sax/test/entities.js       |     10 -
 .../nib/node_modules/sax/test/entity-mega.js    |     16 -
 node_modules/nib/node_modules/sax/test/flush.js |     13 -
 node_modules/nib/node_modules/sax/test/index.js |     86 -
 .../nib/node_modules/sax/test/issue-23.js       |     43 -
 .../nib/node_modules/sax/test/issue-30.js       |     24 -
 .../nib/node_modules/sax/test/issue-35.js       |     15 -
 .../nib/node_modules/sax/test/issue-47.js       |     12 -
 .../nib/node_modules/sax/test/issue-49.js       |     31 -
 .../nib/node_modules/sax/test/issue-84.js       |     13 -
 .../node_modules/sax/test/parser-position.js    |     28 -
 .../sax/test/script-close-better.js             |     12 -
 .../nib/node_modules/sax/test/script.js         |     12 -
 .../sax/test/self-closing-child-strict.js       |     44 -
 .../node_modules/sax/test/self-closing-child.js |     44 -
 .../node_modules/sax/test/self-closing-tag.js   |     25 -
 .../nib/node_modules/sax/test/stray-ending.js   |     17 -
 .../sax/test/trailing-attribute-no-value.js     |     10 -
 .../sax/test/trailing-non-whitespace.js         |     18 -
 .../nib/node_modules/sax/test/unclosed-root.js  |     11 -
 .../nib/node_modules/sax/test/unquoted.js       |     18 -
 .../nib/node_modules/sax/test/utf8-split.js     |     32 -
 .../node_modules/sax/test/xmlns-as-tag-name.js  |     15 -
 .../nib/node_modules/sax/test/xmlns-issue-41.js |     68 -
 .../node_modules/sax/test/xmlns-rebinding.js    |     63 -
 .../nib/node_modules/sax/test/xmlns-strict.js   |     74 -
 .../sax/test/xmlns-unbound-element.js           |     33 -
 .../nib/node_modules/sax/test/xmlns-unbound.js  |     15 -
 .../sax/test/xmlns-xml-default-ns.js            |     31 -
 .../test/xmlns-xml-default-prefix-attribute.js  |     36 -
 .../sax/test/xmlns-xml-default-prefix.js        |     21 -
 .../sax/test/xmlns-xml-default-redefine.js      |     41 -
 .../nib/node_modules/source-map/.npmignore      |      2 -
 .../nib/node_modules/source-map/.travis.yml     |      4 -
 .../nib/node_modules/source-map/CHANGELOG.md    |    194 -
 .../nib/node_modules/source-map/LICENSE         |     28 -
 .../node_modules/source-map/Makefile.dryice.js  |    166 -
 .../nib/node_modules/source-map/README.md       |    475 -
 .../source-map/build/assert-shim.js             |     56 -
 .../source-map/build/mini-require.js            |    152 -
 .../source-map/build/prefix-source-map.jsm      |     20 -
 .../source-map/build/prefix-utils.jsm           |     18 -
 .../source-map/build/suffix-browser.js          |      8 -
 .../source-map/build/suffix-source-map.jsm      |      6 -
 .../source-map/build/suffix-utils.jsm           |     21 -
 .../source-map/build/test-prefix.js             |      8 -
 .../source-map/build/test-suffix.js             |      3 -
 .../node_modules/source-map/lib/source-map.js   |      8 -
 .../source-map/lib/source-map/array-set.js      |     97 -
 .../source-map/lib/source-map/base64-vlq.js     |    142 -
 .../source-map/lib/source-map/base64.js         |     42 -
 .../source-map/lib/source-map/binary-search.js  |     80 -
 .../source-map/lib/source-map/mapping-list.js   |     86 -
 .../lib/source-map/source-map-consumer.js       |    575 -
 .../lib/source-map/source-map-generator.js      |    400 -
 .../source-map/lib/source-map/source-node.js    |    414 -
 .../source-map/lib/source-map/util.js           |    319 -
 .../nib/node_modules/source-map/package.json    |    220 -
 .../node_modules/source-map/test/run-tests.js   |     62 -
 .../source-map/test/source-map/test-api.js      |     26 -
 .../test/source-map/test-array-set.js           |    104 -
 .../test/source-map/test-base64-vlq.js          |     23 -
 .../source-map/test/source-map/test-base64.js   |     35 -
 .../test/source-map/test-binary-search.js       |     54 -
 .../test/source-map/test-dog-fooding.js         |     84 -
 .../test/source-map/test-source-map-consumer.js |    702 -
 .../source-map/test-source-map-generator.js     |    679 -
 .../test/source-map/test-source-node.js         |    612 -
 .../source-map/test/source-map/test-util.js     |    216 -
 .../source-map/test/source-map/util.js          |    192 -
 node_modules/nib/node_modules/stylus/History.md |   1398 -
 node_modules/nib/node_modules/stylus/LICENSE    |     22 -
 node_modules/nib/node_modules/stylus/Readme.md  |    178 -
 node_modules/nib/node_modules/stylus/bin/stylus |    817 -
 node_modules/nib/node_modules/stylus/index.js   |      4 -
 .../nib/node_modules/stylus/lib/browserify.js   |      2 -
 .../nib/node_modules/stylus/lib/cache/fs.js     |     80 -
 .../nib/node_modules/stylus/lib/cache/index.js  |     25 -
 .../nib/node_modules/stylus/lib/cache/memory.js |    116 -
 .../nib/node_modules/stylus/lib/cache/null.js   |     50 -
 .../nib/node_modules/stylus/lib/colors.js       |    158 -
 .../nib/node_modules/stylus/lib/convert/css.js  |    307 -
 .../nib/node_modules/stylus/lib/errors.js       |     58 -
 .../stylus/lib/functions/add-property.js        |     29 -
 .../node_modules/stylus/lib/functions/adjust.js |     28 -
 .../node_modules/stylus/lib/functions/alpha.js  |     36 -
 .../stylus/lib/functions/base-convert.js        |     26 -
 .../stylus/lib/functions/basename.js            |     15 -
 .../node_modules/stylus/lib/functions/blend.js  |     37 -
 .../node_modules/stylus/lib/functions/blue.js   |     33 -
 .../node_modules/stylus/lib/functions/clone.js  |     14 -
 .../stylus/lib/functions/component.js           |     60 -
 .../stylus/lib/functions/contrast.js            |     75 -
 .../stylus/lib/functions/convert.js             |     15 -
 .../stylus/lib/functions/current-media.js       |     22 -
 .../node_modules/stylus/lib/functions/define.js |     23 -
 .../stylus/lib/functions/dirname.js             |     15 -
 .../node_modules/stylus/lib/functions/error.js  |     15 -
 .../stylus/lib/functions/extname.js             |     15 -
 .../node_modules/stylus/lib/functions/green.js  |     33 -
 .../node_modules/stylus/lib/functions/hsl.js    |     35 -
 .../node_modules/stylus/lib/functions/hsla.js   |     53 -
 .../node_modules/stylus/lib/functions/hue.js    |     34 -
 .../stylus/lib/functions/image-size.js          |     58 -
 .../node_modules/stylus/lib/functions/image.js  |    162 -
 .../node_modules/stylus/lib/functions/index.js  |     69 -
 .../stylus/lib/functions/index.styl             |    297 -
 .../node_modules/stylus/lib/functions/json.js   |    116 -
 .../node_modules/stylus/lib/functions/length.js |     25 -
 .../stylus/lib/functions/lightness.js           |     34 -
 .../stylus/lib/functions/list-separator.js      |     25 -
 .../node_modules/stylus/lib/functions/lookup.js |     17 -
 .../stylus/lib/functions/luminosity.js          |     38 -
 .../node_modules/stylus/lib/functions/match.js  |     43 -
 .../stylus/lib/functions/math-prop.js           |     13 -
 .../node_modules/stylus/lib/functions/math.js   |     17 -
 .../node_modules/stylus/lib/functions/merge.js  |     24 -
 .../stylus/lib/functions/operate.js             |     18 -
 .../stylus/lib/functions/opposite-position.js   |     32 -
 .../nib/node_modules/stylus/lib/functions/p.js  |     18 -
 .../stylus/lib/functions/pathjoin.js            |     16 -
 .../node_modules/stylus/lib/functions/pop.js    |     14 -
 .../stylus/lib/functions/prefix-classes.js      |     22 -
 .../node_modules/stylus/lib/functions/push.js   |     18 -
 .../node_modules/stylus/lib/functions/range.js  |     32 -
 .../node_modules/stylus/lib/functions/red.js    |     33 -
 .../node_modules/stylus/lib/functions/remove.js |     17 -
 .../stylus/lib/functions/replace.js             |     23 -
 .../stylus/lib/functions/resolver.js            |     85 -
 .../node_modules/stylus/lib/functions/rgb.js    |     40 -
 .../node_modules/stylus/lib/functions/rgba.js   |     59 -
 .../nib/node_modules/stylus/lib/functions/s.js  |     37 -
 .../stylus/lib/functions/saturation.js          |     35 -
 .../stylus/lib/functions/selector-exists.js     |     23 -
 .../stylus/lib/functions/selector.js            |     71 -
 .../stylus/lib/functions/selectors.js           |     43 -
 .../node_modules/stylus/lib/functions/shift.js  |     15 -
 .../node_modules/stylus/lib/functions/slice.js  |     28 -
 .../node_modules/stylus/lib/functions/split.js  |     25 -
 .../node_modules/stylus/lib/functions/substr.js |     22 -
 .../node_modules/stylus/lib/functions/tan.js    |     28 -
 .../node_modules/stylus/lib/functions/trace.js  |     12 -
 .../stylus/lib/functions/transparentify.js      |     63 -
 .../node_modules/stylus/lib/functions/type.js   |     30 -
 .../node_modules/stylus/lib/functions/unit.js   |     23 -
 .../stylus/lib/functions/unquote.js             |     23 -
 .../stylus/lib/functions/unshift.js             |     18 -
 .../node_modules/stylus/lib/functions/url.js    |    142 -
 .../node_modules/stylus/lib/functions/use.js    |     74 -
 .../node_modules/stylus/lib/functions/warn.js   |     15 -
 .../nib/node_modules/stylus/lib/lexer.js        |    882 -
 .../nib/node_modules/stylus/lib/middleware.js   |    256 -
 .../node_modules/stylus/lib/nodes/arguments.js  |     92 -
 .../node_modules/stylus/lib/nodes/atblock.js    |     79 -
 .../nib/node_modules/stylus/lib/nodes/atrule.js |    136 -
 .../nib/node_modules/stylus/lib/nodes/binop.js  |     83 -
 .../nib/node_modules/stylus/lib/nodes/block.js  |    127 -
 .../node_modules/stylus/lib/nodes/boolean.js    |    117 -
 .../nib/node_modules/stylus/lib/nodes/call.js   |     85 -
 .../node_modules/stylus/lib/nodes/charset.js    |     58 -
 .../node_modules/stylus/lib/nodes/comment.js    |     64 -
 .../nib/node_modules/stylus/lib/nodes/each.js   |     75 -
 .../node_modules/stylus/lib/nodes/expression.js |    220 -
 .../nib/node_modules/stylus/lib/nodes/extend.js |     69 -
 .../node_modules/stylus/lib/nodes/feature.js    |     84 -
 .../node_modules/stylus/lib/nodes/function.js   |    128 -
 .../nib/node_modules/stylus/lib/nodes/group.js  |    110 -
 .../nib/node_modules/stylus/lib/nodes/hsla.js   |    277 -
 .../nib/node_modules/stylus/lib/nodes/ident.js  |    156 -
 .../nib/node_modules/stylus/lib/nodes/if.js     |     78 -
 .../nib/node_modules/stylus/lib/nodes/import.js |     68 -
 .../nib/node_modules/stylus/lib/nodes/index.js  |     59 -
 .../node_modules/stylus/lib/nodes/keyframes.js  |     81 -
 .../node_modules/stylus/lib/nodes/literal.js    |    112 -
 .../nib/node_modules/stylus/lib/nodes/media.js  |     76 -
 .../nib/node_modules/stylus/lib/nodes/member.js |     82 -
 .../node_modules/stylus/lib/nodes/namespace.js  |     60 -
 .../nib/node_modules/stylus/lib/nodes/node.js   |    250 -
 .../nib/node_modules/stylus/lib/nodes/null.js   |     88 -
 .../nib/node_modules/stylus/lib/nodes/object.js |    213 -
 .../nib/node_modules/stylus/lib/nodes/params.js |     90 -
 .../node_modules/stylus/lib/nodes/property.js   |     96 -
 .../node_modules/stylus/lib/nodes/query-list.js |    108 -
 .../nib/node_modules/stylus/lib/nodes/query.js  |    170 -
 .../nib/node_modules/stylus/lib/nodes/return.js |     63 -
 .../nib/node_modules/stylus/lib/nodes/rgba.js   |    367 -
 .../nib/node_modules/stylus/lib/nodes/root.js   |     96 -
 .../node_modules/stylus/lib/nodes/selector.js   |     94 -
 .../nib/node_modules/stylus/lib/nodes/string.js |    147 -
 .../node_modules/stylus/lib/nodes/supports.js   |     75 -
 .../node_modules/stylus/lib/nodes/ternary.js    |     71 -
 .../node_modules/stylus/lib/nodes/unaryop.js    |     66 -
 .../nib/node_modules/stylus/lib/nodes/unit.js   |    214 -
 .../nib/node_modules/stylus/lib/parser.js       |   2181 -
 .../nib/node_modules/stylus/lib/renderer.js     |    246 -
 .../node_modules/stylus/lib/selector-parser.js  |    258 -
 .../nib/node_modules/stylus/lib/stack/frame.js  |     65 -
 .../nib/node_modules/stylus/lib/stack/index.js  |    135 -
 .../nib/node_modules/stylus/lib/stack/scope.js  |     53 -
 .../nib/node_modules/stylus/lib/stylus.js       |    103 -
 .../nib/node_modules/stylus/lib/token.js        |     53 -
 .../nib/node_modules/stylus/lib/units.js        |     20 -
 .../nib/node_modules/stylus/lib/utils.js        |    526 -
 .../node_modules/stylus/lib/visitor/compiler.js |    567 -
 .../stylus/lib/visitor/deps-resolver.js         |    169 -
 .../stylus/lib/visitor/evaluator.js             |   1610 -
 .../node_modules/stylus/lib/visitor/index.js    |     31 -
 .../stylus/lib/visitor/normalizer.js            |    424 -
 .../stylus/lib/visitor/sourcemapper.js          |    203 -
 .../nib/node_modules/stylus/package.json        |    125 -
 node_modules/nib/package.json                   |    111 -
 node_modules/no-case/LICENSE                    |     21 -
 node_modules/no-case/README.md                  |     49 -
 node_modules/no-case/no-case.d.ts               |      3 -
 node_modules/no-case/no-case.js                 |     40 -
 node_modules/no-case/package.json               |    117 -
 .../no-case/vendor/camel-case-regexp.js         |      1 -
 .../no-case/vendor/camel-case-upper-regexp.js   |      1 -
 node_modules/no-case/vendor/non-word-regexp.js  |      1 -
 node_modules/node-fingerprint/.npmignore        |      2 -
 node_modules/node-fingerprint/README.md         |     23 -
 node_modules/node-fingerprint/dist/index.js     |     27 -
 node_modules/node-fingerprint/index.js          |     17 -
 node_modules/node-fingerprint/package.json      |     85 -
 node_modules/node-fingerprint/test.js           |     11 -
 node_modules/nopt/.npmignore                    |      1 -
 node_modules/nopt/LICENSE                       |     23 -
 node_modules/nopt/README.md                     |    210 -
 node_modules/nopt/bin/nopt.js                   |     51 -
 node_modules/nopt/examples/my-program.js        |     30 -
 node_modules/nopt/lib/nopt.js                   |    612 -
 node_modules/nopt/package.json                  |     88 -
 node_modules/normalize-path/LICENSE             |     21 -
 node_modules/normalize-path/README.md           |     75 -
 node_modules/normalize-path/index.js            |     17 -
 node_modules/normalize-path/package.json        |    127 -
 node_modules/nth-check/.travis.yml              |      5 -
 node_modules/nth-check/README.md                |     51 -
 node_modules/nth-check/compile.js               |     40 -
 node_modules/nth-check/index.js                 |      9 -
 node_modules/nth-check/package.json             |     88 -
 node_modules/nth-check/parse.js                 |     40 -
 node_modules/nth-check/test.js                  |    102 -
 node_modules/number-is-nan/index.js             |      4 -
 node_modules/number-is-nan/license              |     21 -
 node_modules/number-is-nan/package.json         |    104 -
 node_modules/number-is-nan/readme.md            |     28 -
 node_modules/nunjucks/.idea/compiler.xml        |     22 -
 .../.idea/copyright/profiles_settings.xml       |      3 -
 .../nunjucks/.idea/jsLibraryMappings.xml        |      6 -
 .../.idea/libraries/nunjucks_node_modules.xml   |     15 -
 node_modules/nunjucks/.idea/misc.xml            |     37 -
 node_modules/nunjucks/.idea/modules.xml         |      8 -
 node_modules/nunjucks/.idea/nunjucks.iml        |     18 -
 node_modules/nunjucks/.idea/vcs.xml             |      6 -
 node_modules/nunjucks/.idea/workspace.xml       |    992 -
 node_modules/nunjucks/.jshintignore             |     11 -
 node_modules/nunjucks/.jshintrc                 |     31 -
 node_modules/nunjucks/.npmignore                |      5 -
 node_modules/nunjucks/.travis.yml               |      9 -
 node_modules/nunjucks/CHANGELOG.md              |    544 -
 node_modules/nunjucks/CONTRIBUTING.md           |     46 -
 node_modules/nunjucks/LICENSE                   |     26 -
 node_modules/nunjucks/MAINTENANCE.md            |     64 -
 node_modules/nunjucks/README.md                 |     35 -
 node_modules/nunjucks/appveyor.yml              |     32 -
 node_modules/nunjucks/bin/bundle                |      8 -
 node_modules/nunjucks/bin/bundle.js             |     89 -
 node_modules/nunjucks/bin/precompile            |     70 -
 node_modules/nunjucks/bin/precompile.cmd        |      5 -
 node_modules/nunjucks/bower.json                |     18 -
 node_modules/nunjucks/browser/nunjucks-slim.js  |   2699 -
 .../nunjucks/browser/nunjucks-slim.min.js       |      2 -
 node_modules/nunjucks/browser/nunjucks.js       |   6360 -
 node_modules/nunjucks/browser/nunjucks.min.js   |      4 -
 node_modules/nunjucks/contribute.json           |     22 -
 node_modules/nunjucks/index.js                  |     86 -
 node_modules/nunjucks/package.json              |    124 -
 node_modules/nunjucks/src/compiler.js           |   1181 -
 node_modules/nunjucks/src/environment.js        |    590 -
 node_modules/nunjucks/src/filters.js            |    586 -
 node_modules/nunjucks/src/globals.js            |     79 -
 node_modules/nunjucks/src/jinja-compat.js       |    156 -
 node_modules/nunjucks/src/lexer.js              |    520 -
 node_modules/nunjucks/src/lib.js                |    299 -
 node_modules/nunjucks/src/loader.js             |     33 -
 node_modules/nunjucks/src/loaders.js            |      3 -
 node_modules/nunjucks/src/node-loaders.js       |     85 -
 node_modules/nunjucks/src/nodes.js              |    303 -
 node_modules/nunjucks/src/object.js             |     64 -
 node_modules/nunjucks/src/parser.js             |   1285 -
 node_modules/nunjucks/src/precompile-global.js  |     24 -
 node_modules/nunjucks/src/precompile.js         |    139 -
 node_modules/nunjucks/src/precompiled-loader.js |     22 -
 node_modules/nunjucks/src/runtime.js            |    362 -
 node_modules/nunjucks/src/transformer.js        |    239 -
 node_modules/nunjucks/src/web-loaders.js        |     96 -
 node_modules/nwmatcher/LICENSE                  |     22 -
 node_modules/nwmatcher/README.md                |    107 -
 node_modules/nwmatcher/package.json             |    100 -
 .../nwmatcher/src/modules/nwmatcher-cache.js    |    187 -
 .../nwmatcher/src/modules/nwmatcher-jquery.js   |    126 -
 .../nwmatcher/src/modules/nwmatcher-pseudos.js  |    273 -
 .../src/modules/nwmatcher-shortcuts.js          |     35 -
 .../src/modules/nwmatcher-traversal.js          |     90 -
 .../nwmatcher/src/modules/nwmatcher-webforms.js |    104 -
 node_modules/nwmatcher/src/nwmatcher-base.js    |    785 -
 node_modules/nwmatcher/src/nwmatcher-noqsa.js   |    962 -
 node_modules/nwmatcher/src/nwmatcher.js         |   1780 -
 node_modules/oauth-sign/LICENSE                 |     55 -
 node_modules/oauth-sign/README.md               |      4 -
 node_modules/oauth-sign/index.js                |    136 -
 node_modules/oauth-sign/package.json            |     99 -
 node_modules/object-assign/index.js             |     90 -
 node_modules/object-assign/license              |     21 -
 node_modules/object-assign/package.json         |    119 -
 node_modules/object-assign/readme.md            |     61 -
 node_modules/object.omit/LICENSE                |     21 -
 node_modules/object.omit/README.md              |    118 -
 node_modules/object.omit/index.js               |     40 -
 node_modules/object.omit/package.json           |    138 -
 node_modules/on-finished/HISTORY.md             |     88 -
 node_modules/on-finished/LICENSE                |     23 -
 node_modules/on-finished/README.md              |    154 -
 node_modules/on-finished/index.js               |    196 -
 node_modules/on-finished/package.json           |    107 -
 node_modules/on-headers/HISTORY.md              |     16 -
 node_modules/on-headers/LICENSE                 |     22 -
 node_modules/on-headers/README.md               |     76 -
 node_modules/on-headers/index.js                |     93 -
 node_modules/on-headers/package.json            |    105 -
 node_modules/once/LICENSE                       |     15 -
 node_modules/once/README.md                     |     79 -
 node_modules/once/once.js                       |     42 -
 node_modules/once/package.json                  |    102 -
 node_modules/opn/index.js                       |     95 -
 node_modules/opn/license                        |     21 -
 node_modules/opn/package.json                   |    125 -
 node_modules/opn/readme.md                      |     89 -
 node_modules/opn/xdg-open                       |    861 -
 node_modules/optimist/.travis.yml               |      4 -
 node_modules/optimist/LICENSE                   |     21 -
 node_modules/optimist/example/bool.js           |     10 -
 node_modules/optimist/example/boolean_double.js |      7 -
 node_modules/optimist/example/boolean_single.js |      7 -
 node_modules/optimist/example/default_hash.js   |      8 -
 .../optimist/example/default_singles.js         |      7 -
 node_modules/optimist/example/divide.js         |      8 -
 node_modules/optimist/example/line_count.js     |     20 -
 .../optimist/example/line_count_options.js      |     29 -
 .../optimist/example/line_count_wrap.js         |     29 -
 node_modules/optimist/example/nonopt.js         |      4 -
 node_modules/optimist/example/reflect.js        |      2 -
 node_modules/optimist/example/short.js          |      3 -
 node_modules/optimist/example/string.js         |     11 -
 node_modules/optimist/example/usage-options.js  |     19 -
 node_modules/optimist/example/xup.js            |     10 -
 node_modules/optimist/index.js                  |    343 -
 .../optimist/node_modules/minimist/.travis.yml  |      4 -
 .../optimist/node_modules/minimist/LICENSE      |     18 -
 .../node_modules/minimist/example/parse.js      |      2 -
 .../optimist/node_modules/minimist/index.js     |    187 -
 .../optimist/node_modules/minimist/package.json |    102 -
 .../node_modules/minimist/readme.markdown       |     73 -
 .../optimist/node_modules/minimist/test/bool.js |    119 -
 .../optimist/node_modules/minimist/test/dash.js |     24 -
 .../node_modules/minimist/test/default_bool.js  |     20 -
 .../node_modules/minimist/test/dotted.js        |     22 -
 .../optimist/node_modules/minimist/test/long.js |     31 -
 .../optimist/node_modules/minimist/test/num.js  |     36 -
 .../node_modules/minimist/test/parse.js         |    197 -
 .../minimist/test/parse_modified.js             |      9 -
 .../node_modules/minimist/test/short.js         |     67 -
 .../node_modules/minimist/test/whitespace.js    |      8 -
 .../optimist/node_modules/wordwrap/LICENSE      |     18 -
 .../node_modules/wordwrap/README.markdown       |     70 -
 .../node_modules/wordwrap/example/center.js     |     10 -
 .../node_modules/wordwrap/example/meat.js       |      3 -
 .../optimist/node_modules/wordwrap/index.js     |     76 -
 .../optimist/node_modules/wordwrap/package.json |     98 -
 .../node_modules/wordwrap/test/break.js         |     30 -
 .../node_modules/wordwrap/test/idleness.txt     |     63 -
 .../optimist/node_modules/wordwrap/test/wrap.js |     31 -
 node_modules/optimist/package.json              |     98 -
 node_modules/optimist/readme.markdown           |    513 -
 node_modules/optimist/test/_.js                 |     71 -
 node_modules/optimist/test/_/argv.js            |      2 -
 node_modules/optimist/test/_/bin.js             |      3 -
 node_modules/optimist/test/dash.js              |     31 -
 node_modules/optimist/test/parse.js             |    446 -
 node_modules/optimist/test/parse_modified.js    |     14 -
 node_modules/optimist/test/short.js             |     16 -
 node_modules/optimist/test/usage.js             |    292 -
 node_modules/optimist/test/whitespace.js        |      8 -
 node_modules/optionator/CHANGELOG.md            |     52 -
 node_modules/optionator/LICENSE                 |     22 -
 node_modules/optionator/README.md               |    236 -
 node_modules/optionator/lib/help.js             |    247 -
 node_modules/optionator/lib/index.js            |    465 -
 node_modules/optionator/lib/util.js             |     54 -
 node_modules/optionator/package.json            |    110 -
 node_modules/os-homedir/index.js                |     24 -
 node_modules/os-homedir/license                 |     21 -
 node_modules/os-homedir/package.json            |    110 -
 node_modules/os-homedir/readme.md               |     31 -
 node_modules/os-locale/index.js                 |    127 -
 node_modules/os-locale/license                  |     21 -
 node_modules/os-locale/package.json             |    115 -
 node_modules/os-locale/readme.md                |     47 -
 node_modules/parse-glob/LICENSE                 |     21 -
 node_modules/parse-glob/README.md               |    115 -
 node_modules/parse-glob/index.js                |    156 -
 node_modules/parse-glob/package.json            |    125 -
 node_modules/parse5/CHANGELOG.md                |     69 -
 node_modules/parse5/LICENSE                     |     19 -
 node_modules/parse5/README.md                   |    247 -
 node_modules/parse5/docs/build/index.md         |    963 -
 node_modules/parse5/index.js                    |     12 -
 node_modules/parse5/lib/common/doctype.js       |    134 -
 .../parse5/lib/common/foreign_content.js        |    257 -
 node_modules/parse5/lib/common/html.js          |    268 -
 node_modules/parse5/lib/common/unicode.js       |     48 -
 node_modules/parse5/lib/common/utils.js         |     13 -
 node_modules/parse5/lib/jsdom/jsdom_parser.js   |     39 -
 node_modules/parse5/lib/jsdom/parsing_unit.js   |     53 -
 .../parse5/lib/serialization/serializer.js      |    178 -
 .../parse5/lib/simple_api/simple_api_parser.js  |    107 -
 .../parse5/lib/simple_api/tokenizer_proxy.js    |    122 -
 .../lib/tokenization/location_info_mixin.js     |     80 -
 .../lib/tokenization/named_entity_trie.js       |      6 -
 .../parse5/lib/tokenization/preprocessor.js     |    115 -
 .../parse5/lib/tokenization/tokenizer.js        |   2317 -
 .../parse5/lib/tree_adapters/default.js         |    200 -
 .../parse5/lib/tree_adapters/htmlparser2.js     |    317 -
 .../formatting_element_list.js                  |    167 -
 .../tree_construction/location_info_mixin.js    |    197 -
 .../lib/tree_construction/open_element_stack.js |    379 -
 .../parse5/lib/tree_construction/parser.js      |   2827 -
 node_modules/parse5/package.json                |    126 -
 node_modules/parseurl/HISTORY.md                |     47 -
 node_modules/parseurl/LICENSE                   |     24 -
 node_modules/parseurl/README.md                 |    120 -
 node_modules/parseurl/index.js                  |    138 -
 node_modules/parseurl/package.json              |    126 -
 node_modules/path-is-absolute/index.js          |     20 -
 node_modules/path-is-absolute/license           |     21 -
 node_modules/path-is-absolute/package.json      |    113 -
 node_modules/path-is-absolute/readme.md         |     59 -
 node_modules/performance-now/.npmignore         |      1 -
 node_modules/performance-now/.tm_properties     |      7 -
 node_modules/performance-now/.travis.yml        |      4 -
 node_modules/performance-now/Makefile           |     25 -
 node_modules/performance-now/README.md          |     30 -
 .../performance-now/lib/performance-now.js      |     32 -
 node_modules/performance-now/license.txt        |      7 -
 node_modules/performance-now/package.json       |     86 -
 .../performance-now/src/performance-now.coffee  |     15 -
 node_modules/performance-now/test/mocha.opts    |      3 -
 .../performance-now/test/performance-now.coffee |     38 -
 node_modules/pinkie-promise/index.js            |      3 -
 node_modules/pinkie-promise/license             |     21 -
 node_modules/pinkie-promise/package.json        |    103 -
 node_modules/pinkie-promise/readme.md           |     28 -
 node_modules/pinkie/index.js                    |    292 -
 node_modules/pinkie/license                     |     21 -
 node_modules/pinkie/package.json                |    101 -
 node_modules/pinkie/readme.md                   |     83 -
 node_modules/prelude-ls/CHANGELOG.md            |     99 -
 node_modules/prelude-ls/LICENSE                 |     22 -
 node_modules/prelude-ls/README.md               |     15 -
 node_modules/prelude-ls/lib/Func.js             |     65 -
 node_modules/prelude-ls/lib/List.js             |    686 -
 node_modules/prelude-ls/lib/Num.js              |    130 -
 node_modules/prelude-ls/lib/Obj.js              |    154 -
 node_modules/prelude-ls/lib/Str.js              |     92 -
 node_modules/prelude-ls/lib/index.js            |    178 -
 node_modules/prelude-ls/package.json            |    117 -
 node_modules/preserve/.gitattributes            |     14 -
 node_modules/preserve/.jshintrc                 |     24 -
 node_modules/preserve/.npmignore                |     53 -
 node_modules/preserve/.travis.yml               |      3 -
 node_modules/preserve/.verb.md                  |     59 -
 node_modules/preserve/LICENSE                   |     24 -
 node_modules/preserve/README.md                 |     90 -
 node_modules/preserve/index.js                  |     54 -
 node_modules/preserve/package.json              |    105 -
 node_modules/preserve/test.js                   |     48 -
 node_modules/pretty-hrtime/.jshintignore        |      1 -
 node_modules/pretty-hrtime/.npmignore           |     10 -
 node_modules/pretty-hrtime/LICENSE              |     20 -
 node_modules/pretty-hrtime/README.md            |     57 -
 node_modules/pretty-hrtime/index.js             |     80 -
 node_modules/pretty-hrtime/package.json         |     96 -
 node_modules/process-nextick-args/.travis.yml   |     12 -
 node_modules/process-nextick-args/index.js      |     43 -
 node_modules/process-nextick-args/license.md    |     19 -
 node_modules/process-nextick-args/package.json  |     84 -
 node_modules/process-nextick-args/readme.md     |     18 -
 node_modules/process-nextick-args/test.js       |     24 -
 node_modules/pseudomap/LICENSE                  |     15 -
 node_modules/pseudomap/README.md                |     60 -
 node_modules/pseudomap/map.js                   |      9 -
 node_modules/pseudomap/package.json             |     86 -
 node_modules/pseudomap/pseudomap.js             |    113 -
 node_modules/pseudomap/test/basic.js            |     86 -
 node_modules/punycode/LICENSE-MIT.txt           |     20 -
 node_modules/punycode/README.md                 |    176 -
 node_modules/punycode/package.json              |    128 -
 node_modules/punycode/punycode.js               |    533 -
 node_modules/qs/.eslintignore                   |      1 -
 node_modules/qs/.eslintrc                       |     18 -
 node_modules/qs/.jscs.json                      |    176 -
 node_modules/qs/CHANGELOG.md                    |    175 -
 node_modules/qs/LICENSE                         |     28 -
 node_modules/qs/README.md                       |    440 -
 node_modules/qs/dist/qs.js                      |    597 -
 node_modules/qs/lib/formats.js                  |     18 -
 node_modules/qs/lib/index.js                    |     11 -
 node_modules/qs/lib/parse.js                    |    167 -
 node_modules/qs/lib/stringify.js                |    207 -
 node_modules/qs/lib/utils.js                    |    182 -
 node_modules/qs/package.json                    |    122 -
 node_modules/qs/test/.eslintrc                  |     11 -
 node_modules/qs/test/index.js                   |      7 -
 node_modules/qs/test/parse.js                   |    519 -
 node_modules/qs/test/stringify.js               |    567 -
 node_modules/qs/test/utils.js                   |     22 -
 node_modules/randomatic/LICENSE                 |     21 -
 node_modules/randomatic/README.md               |    152 -
 node_modules/randomatic/index.js                |     83 -
 node_modules/randomatic/package.json            |    142 -
 node_modules/range-parser/HISTORY.md            |     51 -
 node_modules/range-parser/LICENSE               |     23 -
 node_modules/range-parser/README.md             |     75 -
 node_modules/range-parser/index.js              |    158 -
 node_modules/range-parser/package.json          |    134 -
 node_modules/readable-stream/.npmignore         |      5 -
 node_modules/readable-stream/LICENSE            |     18 -
 node_modules/readable-stream/README.md          |     15 -
 node_modules/readable-stream/duplex.js          |      1 -
 node_modules/readable-stream/float.patch        |    923 -
 .../readable-stream/lib/_stream_duplex.js       |     89 -
 .../readable-stream/lib/_stream_passthrough.js  |     46 -
 .../readable-stream/lib/_stream_readable.js     |    951 -
 .../readable-stream/lib/_stream_transform.js    |    209 -
 .../readable-stream/lib/_stream_writable.js     |    477 -
 node_modules/readable-stream/package.json       |    113 -
 node_modules/readable-stream/passthrough.js     |      1 -
 node_modules/readable-stream/readable.js        |     10 -
 node_modules/readable-stream/transform.js       |      1 -
 node_modules/readable-stream/writable.js        |      1 -
 node_modules/readdirp/.npmignore                |     15 -
 node_modules/readdirp/.travis.yml               |      6 -
 node_modules/readdirp/LICENSE                   |     20 -
 node_modules/readdirp/README.md                 |    233 -
 node_modules/readdirp/examples/Readme.md        |     37 -
 node_modules/readdirp/examples/callback-api.js  |     10 -
 node_modules/readdirp/examples/grep.js          |     71 -
 node_modules/readdirp/examples/package.json     |      9 -
 .../readdirp/examples/stream-api-pipe.js        |     19 -
 node_modules/readdirp/examples/stream-api.js    |     15 -
 .../readdirp/node_modules/isarray/.npmignore    |      1 -
 .../readdirp/node_modules/isarray/.travis.yml   |      4 -
 .../readdirp/node_modules/isarray/Makefile      |      6 -
 .../readdirp/node_modules/isarray/README.md     |     60 -
 .../node_modules/isarray/component.json         |     19 -
 .../readdirp/node_modules/isarray/index.js      |      5 -
 .../readdirp/node_modules/isarray/package.json  |    105 -
 .../readdirp/node_modules/isarray/test.js       |     20 -
 .../node_modules/readable-stream/.npmignore     |      9 -
 .../node_modules/readable-stream/.travis.yml    |     49 -
 .../readable-stream/CONTRIBUTING.md             |     38 -
 .../node_modules/readable-stream/GOVERNANCE.md  |    136 -
 .../node_modules/readable-stream/LICENSE        |     47 -
 .../node_modules/readable-stream/README.md      |     57 -
 .../doc/wg-meetings/2015-01-30.md               |     60 -
 .../node_modules/readable-stream/duplex.js      |      1 -
 .../readable-stream/lib/_stream_duplex.js       |     75 -
 .../readable-stream/lib/_stream_passthrough.js  |     26 -
 .../readable-stream/lib/_stream_readable.js     |    941 -
 .../readable-stream/lib/_stream_transform.js    |    182 -
 .../readable-stream/lib/_stream_writable.js     |    551 -
 .../lib/internal/streams/BufferList.js          |     64 -
 .../node_modules/readable-stream/package.json   |    134 -
 .../node_modules/readable-stream/passthrough.js |      1 -
 .../node_modules/readable-stream/readable.js    |     16 -
 .../node_modules/readable-stream/transform.js   |      1 -
 .../node_modules/readable-stream/writable.js    |      1 -
 node_modules/readdirp/package.json              |    122 -
 node_modules/readdirp/readdirp.js               |    300 -
 node_modules/readdirp/stream-api.js             |     99 -
 .../test/bed/root_dir1/root_dir1_file1.ext1     |      0
 .../test/bed/root_dir1/root_dir1_file2.ext2     |      0
 .../test/bed/root_dir1/root_dir1_file3.ext3     |      0
 .../root1_dir1_subdir1_file1.ext1               |      0
 .../test/bed/root_dir2/root_dir2_file1.ext1     |      0
 .../test/bed/root_dir2/root_dir2_file2.ext2     |      0
 node_modules/readdirp/test/bed/root_file1.ext1  |      0
 node_modules/readdirp/test/bed/root_file2.ext2  |      0
 node_modules/readdirp/test/bed/root_file3.ext3  |      0
 node_modules/readdirp/test/readdirp-stream.js   |    338 -
 node_modules/readdirp/test/readdirp.js          |    289 -
 node_modules/regex-cache/LICENSE                |     21 -
 node_modules/regex-cache/README.md              |    160 -
 node_modules/regex-cache/index.js               |     69 -
 node_modules/regex-cache/package.json           |    132 -
 node_modules/repeat-element/LICENSE             |     21 -
 node_modules/repeat-element/README.md           |     71 -
 node_modules/repeat-element/index.js            |     18 -
 node_modules/repeat-element/package.json        |    103 -
 node_modules/repeat-string/LICENSE              |     21 -
 node_modules/repeat-string/README.md            |    136 -
 node_modules/repeat-string/index.js             |     70 -
 node_modules/repeat-string/package.json         |    169 -
 node_modules/request/CHANGELOG.md               |    674 -
 node_modules/request/LICENSE                    |     55 -
 node_modules/request/README.md                  |   1115 -
 node_modules/request/index.js                   |    156 -
 node_modules/request/lib/auth.js                |    168 -
 node_modules/request/lib/cookies.js             |     39 -
 node_modules/request/lib/getProxyFromURI.js     |     79 -
 node_modules/request/lib/har.js                 |    215 -
 node_modules/request/lib/helpers.js             |     66 -
 node_modules/request/lib/multipart.js           |    113 -
 node_modules/request/lib/oauth.js               |    148 -
 node_modules/request/lib/querystring.js         |     51 -
 node_modules/request/lib/redirect.js            |    157 -
 node_modules/request/lib/tunnel.js              |    176 -
 node_modules/request/package.json               |    166 -
 node_modules/request/request.js                 |   1565 -
 node_modules/rimraf/LICENSE                     |     15 -
 node_modules/rimraf/README.md                   |     43 -
 node_modules/rimraf/bin.js                      |     40 -
 node_modules/rimraf/package.json                |     96 -
 node_modules/rimraf/rimraf.js                   |    333 -
 node_modules/safe-buffer/.travis.yml            |      7 -
 node_modules/safe-buffer/LICENSE                |     21 -
 node_modules/safe-buffer/README.md              |    581 -
 node_modules/safe-buffer/browser.js             |      1 -
 node_modules/safe-buffer/index.js               |     58 -
 node_modules/safe-buffer/package.json           |    105 -
 node_modules/safe-buffer/test.js                |     99 -
 node_modules/safe-json-stringify/.npmignore     |      1 -
 node_modules/safe-json-stringify/.travis.yml    |      6 -
 node_modules/safe-json-stringify/README.md      |     99 -
 node_modules/safe-json-stringify/index.js       |     59 -
 node_modules/safe-json-stringify/package.json   |    124 -
 node_modules/sax/LICENSE                        |     41 -
 node_modules/sax/README.md                      |    225 -
 node_modules/sax/lib/sax.js                     |   1581 -
 node_modules/sax/package.json                   |    133 -
 node_modules/send/HISTORY.md                    |    396 -
 node_modules/send/LICENSE                       |     23 -
 node_modules/send/README.md                     |    301 -
 node_modules/send/index.js                      |   1074 -
 .../send/node_modules/debug/.coveralls.yml      |      1 -
 node_modules/send/node_modules/debug/.eslintrc  |     11 -
 node_modules/send/node_modules/debug/.npmignore |      8 -
 .../send/node_modules/debug/.travis.yml         |     14 -
 .../send/node_modules/debug/CHANGELOG.md        |    316 -
 node_modules/send/node_modules/debug/LICENSE    |     19 -
 node_modules/send/node_modules/debug/Makefile   |     50 -
 node_modules/send/node_modules/debug/README.md  |    238 -
 node_modules/send/node_modules/debug/bower.json |     29 -
 .../send/node_modules/debug/component.json      |     19 -
 .../send/node_modules/debug/karma.conf.js       |     70 -
 node_modules/send/node_modules/debug/node.js    |      1 -
 .../send/node_modules/debug/package.json        |    125 -
 .../send/node_modules/debug/src/browser.js      |    182 -
 .../send/node_modules/debug/src/debug.js        |    202 -
 .../send/node_modules/debug/src/index.js        |     10 -
 .../send/node_modules/debug/src/node.js         |    241 -
 node_modules/send/package.json                  |    141 -
 node_modules/serve-static/HISTORY.md            |    365 -
 node_modules/serve-static/LICENSE               |     25 -
 node_modules/serve-static/README.md             |    253 -
 node_modules/serve-static/index.js              |    209 -
 node_modules/serve-static/package.json          |    109 -
 node_modules/set-immediate-shim/index.js        |      7 -
 node_modules/set-immediate-shim/package.json    |     98 -
 node_modules/set-immediate-shim/readme.md       |     31 -
 node_modules/setprototypeof/LICENSE             |     13 -
 node_modules/setprototypeof/README.md           |     21 -
 node_modules/setprototypeof/index.js            |     15 -
 node_modules/setprototypeof/package.json        |     89 -
 node_modules/sigmund/LICENSE                    |     15 -
 node_modules/sigmund/README.md                  |     53 -
 node_modules/sigmund/bench.js                   |    283 -
 node_modules/sigmund/package.json               |     94 -
 node_modules/sigmund/sigmund.js                 |     39 -
 node_modules/sigmund/test/basic.js              |     24 -
 node_modules/sntp/.npmignore                    |     18 -
 node_modules/sntp/.travis.yml                   |      5 -
 node_modules/sntp/LICENSE                       |     28 -
 node_modules/sntp/Makefile                      |      9 -
 node_modules/sntp/README.md                     |     68 -
 node_modules/sntp/examples/offset.js            |     16 -
 node_modules/sntp/examples/time.js              |     25 -
 node_modules/sntp/index.js                      |      1 -
 node_modules/sntp/lib/index.js                  |    412 -
 node_modules/sntp/package.json                  |     99 -
 node_modules/sntp/test/index.js                 |    435 -
 node_modules/source-map/.npmignore              |      2 -
 node_modules/source-map/.travis.yml             |      4 -
 node_modules/source-map/CHANGELOG.md            |    201 -
 node_modules/source-map/LICENSE                 |     28 -
 node_modules/source-map/Makefile.dryice.js      |    166 -
 node_modules/source-map/README.md               |    479 -
 node_modules/source-map/build/assert-shim.js    |     56 -
 node_modules/source-map/build/mini-require.js   |    152 -
 .../source-map/build/prefix-source-map.jsm      |     20 -
 node_modules/source-map/build/prefix-utils.jsm  |     18 -
 node_modules/source-map/build/suffix-browser.js |      8 -
 .../source-map/build/suffix-source-map.jsm      |      6 -
 node_modules/source-map/build/suffix-utils.jsm  |     21 -
 node_modules/source-map/build/test-prefix.js    |      8 -
 node_modules/source-map/build/test-suffix.js    |      3 -
 node_modules/source-map/lib/source-map.js       |      8 -
 .../source-map/lib/source-map/array-set.js      |     97 -
 .../source-map/lib/source-map/base64-vlq.js     |    142 -
 .../source-map/lib/source-map/base64.js         |     42 -
 .../lib/source-map/basic-source-map-consumer.js |    420 -
 .../source-map/lib/source-map/binary-search.js  |     80 -
 .../source-map/indexed-source-map-consumer.js   |    303 -
 .../source-map/lib/source-map/mapping-list.js   |     86 -
 .../lib/source-map/source-map-consumer.js       |    222 -
 .../lib/source-map/source-map-generator.js      |    400 -
 .../source-map/lib/source-map/source-node.js    |    414 -
 node_modules/source-map/lib/source-map/util.js  |    319 -
 node_modules/source-map/package.json            |    224 -
 node_modules/source-map/test/run-tests.js       |     62 -
 .../source-map/test/source-map/test-api.js      |     26 -
 .../test/source-map/test-array-set.js           |    104 -
 .../test/source-map/test-base64-vlq.js          |     23 -
 .../source-map/test/source-map/test-base64.js   |     35 -
 .../test/source-map/test-binary-search.js       |     54 -
 .../test/source-map/test-dog-fooding.js         |     84 -
 .../test/source-map/test-source-map-consumer.js |    874 -
 .../source-map/test-source-map-generator.js     |    679 -
 .../test/source-map/test-source-node.js         |    612 -
 .../source-map/test/source-map/test-util.js     |    216 -
 node_modules/source-map/test/source-map/util.js |    299 -
 node_modules/sprintf-js/.npmignore              |      1 -
 node_modules/sprintf-js/LICENSE                 |     24 -
 node_modules/sprintf-js/README.md               |     88 -
 node_modules/sprintf-js/bower.json              |     14 -
 node_modules/sprintf-js/demo/angular.html       |     20 -
 .../sprintf-js/dist/angular-sprintf.min.js      |      4 -
 .../sprintf-js/dist/angular-sprintf.min.js.map  |      1 -
 .../sprintf-js/dist/angular-sprintf.min.map     |      1 -
 node_modules/sprintf-js/dist/sprintf.min.js     |      4 -
 node_modules/sprintf-js/dist/sprintf.min.js.map |      1 -
 node_modules/sprintf-js/dist/sprintf.min.map    |      1 -
 node_modules/sprintf-js/gruntfile.js            |     36 -
 node_modules/sprintf-js/package.json            |     88 -
 node_modules/sprintf-js/src/angular-sprintf.js  |     18 -
 node_modules/sprintf-js/src/sprintf.js          |    208 -
 node_modules/sprintf-js/test/test.js            |     82 -
 node_modules/sshpk/.npmignore                   |      9 -
 node_modules/sshpk/.travis.yml                  |     11 -
 node_modules/sshpk/LICENSE                      |     18 -
 node_modules/sshpk/README.md                    |    685 -
 node_modules/sshpk/bin/sshpk-conv               |    201 -
 node_modules/sshpk/bin/sshpk-sign               |    191 -
 node_modules/sshpk/bin/sshpk-verify             |    166 -
 node_modules/sshpk/lib/algs.js                  |    168 -
 node_modules/sshpk/lib/certificate.js           |    377 -
 node_modules/sshpk/lib/dhe.js                   |    311 -
 node_modules/sshpk/lib/ed-compat.js             |     96 -
 node_modules/sshpk/lib/errors.js                |     84 -
 node_modules/sshpk/lib/fingerprint.js           |    161 -
 node_modules/sshpk/lib/formats/auto.js          |     73 -
 node_modules/sshpk/lib/formats/openssh-cert.js  |    289 -
 node_modules/sshpk/lib/formats/pem.js           |    186 -
 node_modules/sshpk/lib/formats/pkcs1.js         |    320 -
 node_modules/sshpk/lib/formats/pkcs8.js         |    505 -
 node_modules/sshpk/lib/formats/rfc4253.js       |    146 -
 node_modules/sshpk/lib/formats/ssh-private.js   |    261 -
 node_modules/sshpk/lib/formats/ssh.js           |    114 -
 node_modules/sshpk/lib/formats/x509-pem.js      |     77 -
 node_modules/sshpk/lib/formats/x509.js          |    699 -
 node_modules/sshpk/lib/identity.js              |    277 -
 node_modules/sshpk/lib/index.js                 |     38 -
 node_modules/sshpk/lib/key.js                   |    270 -
 node_modules/sshpk/lib/private-key.js           |    231 -
 node_modules/sshpk/lib/signature.js             |    245 -
 node_modules/sshpk/lib/ssh-buffer.js            |    148 -
 node_modules/sshpk/lib/utils.js                 |    288 -
 node_modules/sshpk/man/man1/sshpk-conv.1        |    135 -
 node_modules/sshpk/man/man1/sshpk-sign.1        |     81 -
 node_modules/sshpk/man/man1/sshpk-verify.1      |     68 -
 .../sshpk/node_modules/assert-plus/AUTHORS      |      6 -
 .../sshpk/node_modules/assert-plus/CHANGES.md   |     14 -
 .../sshpk/node_modules/assert-plus/README.md    |    162 -
 .../sshpk/node_modules/assert-plus/assert.js    |    211 -
 .../sshpk/node_modules/assert-plus/package.json |    116 -
 node_modules/sshpk/package.json                 |    136 -
 node_modules/statuses/HISTORY.md                |     55 -
 node_modules/statuses/LICENSE                   |     23 -
 node_modules/statuses/README.md                 |    103 -
 node_modules/statuses/codes.json                |     65 -
 node_modules/statuses/index.js                  |    110 -
 node_modules/statuses/package.json              |    141 -
 node_modules/string-width/index.js              |     37 -
 node_modules/string-width/license               |     21 -
 node_modules/string-width/package.json          |    126 -
 node_modules/string-width/readme.md             |     42 -
 node_modules/string_decoder/.npmignore          |      2 -
 node_modules/string_decoder/LICENSE             |     20 -
 node_modules/string_decoder/README.md           |      7 -
 node_modules/string_decoder/index.js            |    221 -
 node_modules/string_decoder/package.json        |     89 -
 node_modules/stringstream/.npmignore            |     15 -
 node_modules/stringstream/.travis.yml           |      4 -
 node_modules/stringstream/LICENSE.txt           |     22 -
 node_modules/stringstream/README.md             |     38 -
 node_modules/stringstream/example.js            |     27 -
 node_modules/stringstream/package.json          |     86 -
 node_modules/stringstream/stringstream.js       |    102 -
 node_modules/strip-ansi/index.js                |      6 -
 node_modules/strip-ansi/license                 |     21 -
 node_modules/strip-ansi/package.json            |    127 -
 node_modules/strip-ansi/readme.md               |     33 -
 node_modules/strip-indent/cli.js                |     49 -
 node_modules/strip-indent/index.js              |     16 -
 node_modules/strip-indent/license               |     21 -
 node_modules/strip-indent/package.json          |    110 -
 node_modules/strip-indent/readme.md             |     61 -
 node_modules/striptags/.npmignore               |      2 -
 node_modules/striptags/.travis.yml              |      7 -
 node_modules/striptags/LICENSE                  |     21 -
 node_modules/striptags/README.md                |     75 -
 node_modules/striptags/bower.json               |     24 -
 node_modules/striptags/package.json             |    107 -
 node_modules/striptags/striptags.js             |    258 -
 node_modules/striptags/test/striptags-test.js   |    140 -
 node_modules/stylus/Code_of_Conduct.md          |     50 -
 node_modules/stylus/Contributing.md             |    139 -
 node_modules/stylus/History.md                  |   1349 -
 node_modules/stylus/LICENSE                     |     22 -
 node_modules/stylus/Readme.md                   |    171 -
 node_modules/stylus/bin/stylus                  |    810 -
 node_modules/stylus/index.js                    |      4 -
 node_modules/stylus/lib/browserify.js           |      2 -
 node_modules/stylus/lib/cache/fs.js             |     80 -
 node_modules/stylus/lib/cache/index.js          |     25 -
 node_modules/stylus/lib/cache/memory.js         |    116 -
 node_modules/stylus/lib/cache/null.js           |     50 -
 node_modules/stylus/lib/colors.js               |    158 -
 node_modules/stylus/lib/convert/css.js          |    307 -
 node_modules/stylus/lib/errors.js               |     58 -
 .../stylus/lib/functions/add-property.js        |     29 -
 node_modules/stylus/lib/functions/adjust.js     |     28 -
 node_modules/stylus/lib/functions/alpha.js      |     36 -
 .../stylus/lib/functions/base-convert.js        |     26 -
 node_modules/stylus/lib/functions/basename.js   |     15 -
 node_modules/stylus/lib/functions/blend.js      |     37 -
 node_modules/stylus/lib/functions/blue.js       |     33 -
 node_modules/stylus/lib/functions/clone.js      |     14 -
 node_modules/stylus/lib/functions/component.js  |     60 -
 node_modules/stylus/lib/functions/contrast.js   |     75 -
 node_modules/stylus/lib/functions/convert.js    |     15 -
 .../stylus/lib/functions/current-media.js       |     20 -
 node_modules/stylus/lib/functions/define.js     |     19 -
 node_modules/stylus/lib/functions/dirname.js    |     15 -
 node_modules/stylus/lib/functions/error.js      |     15 -
 node_modules/stylus/lib/functions/extname.js    |     15 -
 node_modules/stylus/lib/functions/green.js      |     33 -
 node_modules/stylus/lib/functions/hsl.js        |     35 -
 node_modules/stylus/lib/functions/hsla.js       |     53 -
 node_modules/stylus/lib/functions/hue.js        |     34 -
 node_modules/stylus/lib/functions/image-size.js |     58 -
 node_modules/stylus/lib/functions/image.js      |    162 -
 node_modules/stylus/lib/functions/index.js      |     68 -
 node_modules/stylus/lib/functions/index.styl    |    286 -
 node_modules/stylus/lib/functions/json.js       |    116 -
 node_modules/stylus/lib/functions/length.js     |     25 -
 node_modules/stylus/lib/functions/lightness.js  |     34 -
 .../stylus/lib/functions/list-separator.js      |     25 -
 node_modules/stylus/lib/functions/lookup.js     |     17 -
 node_modules/stylus/lib/functions/luminosity.js |     38 -
 node_modules/stylus/lib/functions/match.js      |     29 -
 node_modules/stylus/lib/functions/math-prop.js  |     13 -
 node_modules/stylus/lib/functions/math.js       |     17 -
 node_modules/stylus/lib/functions/merge.js      |     24 -
 node_modules/stylus/lib/functions/operate.js    |     18 -
 .../stylus/lib/functions/opposite-position.js   |     32 -
 node_modules/stylus/lib/functions/p.js          |     18 -
 node_modules/stylus/lib/functions/pathjoin.js   |     16 -
 node_modules/stylus/lib/functions/pop.js        |     14 -
 .../stylus/lib/functions/prefix-classes.js      |     22 -
 node_modules/stylus/lib/functions/push.js       |     18 -
 node_modules/stylus/lib/functions/range.js      |     32 -
 node_modules/stylus/lib/functions/red.js        |     33 -
 node_modules/stylus/lib/functions/remove.js     |     17 -
 node_modules/stylus/lib/functions/replace.js    |     23 -
 node_modules/stylus/lib/functions/resolver.js   |     85 -
 node_modules/stylus/lib/functions/rgb.js        |     40 -
 node_modules/stylus/lib/functions/rgba.js       |     59 -
 node_modules/stylus/lib/functions/s.js          |     37 -
 node_modules/stylus/lib/functions/saturation.js |     35 -
 .../stylus/lib/functions/selector-exists.js     |     23 -
 node_modules/stylus/lib/functions/selector.js   |     71 -
 node_modules/stylus/lib/functions/selectors.js  |     43 -
 node_modules/stylus/lib/functions/shift.js      |     15 -
 node_modules/stylus/lib/functions/split.js      |     25 -
 node_modules/stylus/lib/functions/substr.js     |     22 -
 node_modules/stylus/lib/functions/tan.js        |     28 -
 node_modules/stylus/lib/functions/trace.js      |     12 -
 .../stylus/lib/functions/transparentify.js      |     63 -
 node_modules/stylus/lib/functions/type.js       |     30 -
 node_modules/stylus/lib/functions/unit.js       |     23 -
 node_modules/stylus/lib/functions/unquote.js    |     23 -
 node_modules/stylus/lib/functions/unshift.js    |     18 -
 node_modules/stylus/lib/functions/url.js        |    116 -
 node_modules/stylus/lib/functions/use.js        |     74 -
 node_modules/stylus/lib/functions/warn.js       |     15 -
 node_modules/stylus/lib/lexer.js                |    882 -
 node_modules/stylus/lib/middleware.js           |    256 -
 node_modules/stylus/lib/nodes/arguments.js      |     92 -
 node_modules/stylus/lib/nodes/atblock.js        |     79 -
 node_modules/stylus/lib/nodes/atrule.js         |    136 -
 node_modules/stylus/lib/nodes/binop.js          |     83 -
 node_modules/stylus/lib/nodes/block.js          |    127 -
 node_modules/stylus/lib/nodes/boolean.js        |    117 -
 node_modules/stylus/lib/nodes/call.js           |     85 -
 node_modules/stylus/lib/nodes/charset.js        |     58 -
 node_modules/stylus/lib/nodes/comment.js        |     64 -
 node_modules/stylus/lib/nodes/each.js           |     75 -
 node_modules/stylus/lib/nodes/expression.js     |    220 -
 node_modules/stylus/lib/nodes/extend.js         |     69 -
 node_modules/stylus/lib/nodes/feature.js        |     84 -
 node_modules/stylus/lib/nodes/function.js       |    128 -
 node_modules/stylus/lib/nodes/group.js          |    110 -
 node_modules/stylus/lib/nodes/hsla.js           |    277 -
 node_modules/stylus/lib/nodes/ident.js          |    156 -
 node_modules/stylus/lib/nodes/if.js             |     78 -
 node_modules/stylus/lib/nodes/import.js         |     68 -
 node_modules/stylus/lib/nodes/index.js          |     59 -
 node_modules/stylus/lib/nodes/keyframes.js      |     81 -
 node_modules/stylus/lib/nodes/literal.js        |    112 -
 node_modules/stylus/lib/nodes/media.js          |     76 -
 node_modules/stylus/lib/nodes/member.js         |     82 -
 node_modules/stylus/lib/nodes/namespace.js      |     60 -
 node_modules/stylus/lib/nodes/node.js           |    250 -
 node_modules/stylus/lib/nodes/null.js           |     88 -
 node_modules/stylus/lib/nodes/object.js         |    213 -
 node_modules/stylus/lib/nodes/params.js         |     90 -
 node_modules/stylus/lib/nodes/property.js       |     96 -
 node_modules/stylus/lib/nodes/query-list.js     |    108 -
 node_modules/stylus/lib/nodes/query.js          |    170 -
 node_modules/stylus/lib/nodes/return.js         |     63 -
 node_modules/stylus/lib/nodes/rgba.js           |    367 -
 node_modules/stylus/lib/nodes/root.js           |     96 -
 node_modules/stylus/lib/nodes/selector.js       |     94 -
 node_modules/stylus/lib/nodes/string.js         |    147 -
 node_modules/stylus/lib/nodes/supports.js       |     75 -
 node_modules/stylus/lib/nodes/ternary.js        |     71 -
 node_modules/stylus/lib/nodes/unaryop.js        |     66 -
 node_modules/stylus/lib/nodes/unit.js           |    214 -
 node_modules/stylus/lib/parser.js               |   2180 -
 node_modules/stylus/lib/renderer.js             |    245 -
 node_modules/stylus/lib/selector-parser.js      |    241 -
 node_modules/stylus/lib/stack/frame.js          |     65 -
 node_modules/stylus/lib/stack/index.js          |    135 -
 node_modules/stylus/lib/stack/scope.js          |     53 -
 node_modules/stylus/lib/stylus.js               |    103 -
 node_modules/stylus/lib/token.js                |     53 -
 node_modules/stylus/lib/units.js                |     20 -
 node_modules/stylus/lib/utils.js                |    526 -
 node_modules/stylus/lib/visitor/compiler.js     |    568 -
 .../stylus/lib/visitor/deps-resolver.js         |    169 -
 node_modules/stylus/lib/visitor/evaluator.js    |   1596 -
 node_modules/stylus/lib/visitor/index.js        |     31 -
 node_modules/stylus/lib/visitor/normalizer.js   |    424 -
 node_modules/stylus/lib/visitor/sourcemapper.js |    202 -
 .../stylus/node_modules/glob/.npmignore         |      2 -
 .../stylus/node_modules/glob/.travis.yml        |      3 -
 node_modules/stylus/node_modules/glob/LICENSE   |     27 -
 node_modules/stylus/node_modules/glob/README.md |    250 -
 .../stylus/node_modules/glob/examples/g.js      |      9 -
 .../node_modules/glob/examples/usr-local.js     |      9 -
 node_modules/stylus/node_modules/glob/glob.js   |    728 -
 .../stylus/node_modules/glob/package.json       |     92 -
 .../stylus/node_modules/glob/test/00-setup.js   |    176 -
 .../node_modules/glob/test/bash-comparison.js   |     63 -
 .../node_modules/glob/test/bash-results.json    |    351 -
 .../stylus/node_modules/glob/test/cwd-test.js   |     55 -
 .../node_modules/glob/test/globstar-match.js    |     19 -
 .../stylus/node_modules/glob/test/mark.js       |    118 -
 .../glob/test/new-glob-optional-options.js      |     10 -
 .../node_modules/glob/test/nocase-nomagic.js    |    113 -
 .../node_modules/glob/test/pause-resume.js      |     73 -
 .../node_modules/glob/test/readme-issue.js      |     36 -
 .../node_modules/glob/test/root-nomount.js      |     39 -
 .../stylus/node_modules/glob/test/root.js       |     46 -
 .../stylus/node_modules/glob/test/stat.js       |     32 -
 .../stylus/node_modules/glob/test/zz-cleanup.js |     11 -
 .../stylus/node_modules/lru-cache/.npmignore    |      1 -
 .../stylus/node_modules/lru-cache/.travis.yml   |      8 -
 .../stylus/node_modules/lru-cache/CONTRIBUTORS  |     14 -
 .../stylus/node_modules/lru-cache/LICENSE       |     15 -
 .../stylus/node_modules/lru-cache/README.md     |    137 -
 .../node_modules/lru-cache/lib/lru-cache.js     |    334 -
 .../stylus/node_modules/lru-cache/package.json  |     93 -
 .../stylus/node_modules/lru-cache/test/basic.js |    396 -
 .../node_modules/lru-cache/test/foreach.js      |    120 -
 .../node_modules/lru-cache/test/memory-leak.js  |     51 -
 .../node_modules/lru-cache/test/serialize.js    |    216 -
 .../stylus/node_modules/minimatch/.npmignore    |      1 -
 .../stylus/node_modules/minimatch/LICENSE       |     23 -
 .../stylus/node_modules/minimatch/README.md     |    218 -
 .../stylus/node_modules/minimatch/minimatch.js  |   1061 -
 .../stylus/node_modules/minimatch/package.json  |     92 -
 .../stylus/node_modules/minimatch/test/basic.js |    399 -
 .../node_modules/minimatch/test/brace-expand.js |     33 -
 .../node_modules/minimatch/test/caching.js      |     14 -
 .../node_modules/minimatch/test/defaults.js     |    274 -
 .../test/extglob-ending-with-state-char.js      |      8 -
 node_modules/stylus/node_modules/sax/AUTHORS    |     10 -
 node_modules/stylus/node_modules/sax/LICENSE    |     32 -
 .../stylus/node_modules/sax/LICENSE-W3C.html    |    188 -
 node_modules/stylus/node_modules/sax/README.md  |    216 -
 .../stylus/node_modules/sax/component.json      |     12 -
 .../sax/examples/big-not-pretty.xml             |   8002 -
 .../stylus/node_modules/sax/examples/example.js |     29 -
 .../node_modules/sax/examples/get-products.js   |     58 -
 .../node_modules/sax/examples/hello-world.js    |      4 -
 .../node_modules/sax/examples/not-pretty.xml    |      8 -
 .../node_modules/sax/examples/pretty-print.js   |     74 -
 .../node_modules/sax/examples/shopping.xml      |      2 -
 .../stylus/node_modules/sax/examples/strict.dtd |    870 -
 .../stylus/node_modules/sax/examples/test.html  |     15 -
 .../stylus/node_modules/sax/examples/test.xml   |   1254 -
 node_modules/stylus/node_modules/sax/lib/sax.js |   1355 -
 .../stylus/node_modules/sax/package.json        |    130 -
 .../node_modules/sax/test/attribute-name.js     |     33 -
 .../node_modules/sax/test/attribute-no-space.js |     75 -
 .../node_modules/sax/test/buffer-overrun.js     |     26 -
 .../stylus/node_modules/sax/test/case.js        |     50 -
 .../node_modules/sax/test/cdata-chunked.js      |     11 -
 .../node_modules/sax/test/cdata-end-split.js    |     15 -
 .../node_modules/sax/test/cdata-fake-end.js     |     28 -
 .../node_modules/sax/test/cdata-multiple.js     |     15 -
 .../stylus/node_modules/sax/test/cdata.js       |     10 -
 .../stylus/node_modules/sax/test/cyrillic.js    |      8 -
 .../sax/test/duplicate-attribute.js             |     13 -
 .../node_modules/sax/test/end_empty_stream.js   |      5 -
 .../stylus/node_modules/sax/test/entities.js    |     10 -
 .../stylus/node_modules/sax/test/entity-mega.js |     16 -
 .../stylus/node_modules/sax/test/flush.js       |     13 -
 .../stylus/node_modules/sax/test/index.js       |     86 -
 .../stylus/node_modules/sax/test/issue-23.js    |     43 -
 .../stylus/node_modules/sax/test/issue-30.js    |     24 -
 .../stylus/node_modules/sax/test/issue-35.js    |     15 -
 .../stylus/node_modules/sax/test/issue-47.js    |     12 -
 .../stylus/node_modules/sax/test/issue-49.js    |     31 -
 .../stylus/node_modules/sax/test/issue-84.js    |     13 -
 .../node_modules/sax/test/parser-position.js    |     28 -
 .../sax/test/script-close-better.js             |     12 -
 .../stylus/node_modules/sax/test/script.js      |     12 -
 .../sax/test/self-closing-child-strict.js       |     44 -
 .../node_modules/sax/test/self-closing-child.js |     44 -
 .../node_modules/sax/test/self-closing-tag.js   |     25 -
 .../node_modules/sax/test/stray-ending.js       |     17 -
 .../sax/test/trailing-attribute-no-value.js     |     10 -
 .../sax/test/trailing-non-whitespace.js         |     18 -
 .../node_modules/sax/test/unclosed-root.js      |     11 -
 .../stylus/node_modules/sax/test/unquoted.js    |     18 -
 .../stylus/node_modules/sax/test/utf8-split.js  |     32 -
 .../node_modules/sax/test/xmlns-as-tag-name.js  |     15 -
 .../node_modules/sax/test/xmlns-issue-41.js     |     68 -
 .../node_modules/sax/test/xmlns-rebinding.js    |     63 -
 .../node_modules/sax/test/xmlns-strict.js       |     74 -
 .../sax/test/xmlns-unbound-element.js           |     33 -
 .../node_modules/sax/test/xmlns-unbound.js      |     15 -
 .../sax/test/xmlns-xml-default-ns.js            |     31 -
 .../test/xmlns-xml-default-prefix-attribute.js  |     36 -
 .../sax/test/xmlns-xml-default-prefix.js        |     21 -
 .../sax/test/xmlns-xml-default-redefine.js      |     41 -
 .../stylus/node_modules/source-map/.npmignore   |      2 -
 .../stylus/node_modules/source-map/.travis.yml  |      4 -
 .../stylus/node_modules/source-map/CHANGELOG.md |    194 -
 .../stylus/node_modules/source-map/LICENSE      |     28 -
 .../node_modules/source-map/Makefile.dryice.js  |    166 -
 .../stylus/node_modules/source-map/README.md    |    475 -
 .../source-map/build/assert-shim.js             |     56 -
 .../source-map/build/mini-require.js            |    152 -
 .../source-map/build/prefix-source-map.jsm      |     20 -
 .../source-map/build/prefix-utils.jsm           |     18 -
 .../source-map/build/suffix-browser.js          |      8 -
 .../source-map/build/suffix-source-map.jsm      |      6 -
 .../source-map/build/suffix-utils.jsm           |     21 -
 .../source-map/build/test-prefix.js             |      8 -
 .../source-map/build/test-suffix.js             |      3 -
 .../node_modules/source-map/lib/source-map.js   |      8 -
 .../source-map/lib/source-map/array-set.js      |     97 -
 .../source-map/lib/source-map/base64-vlq.js     |    142 -
 .../source-map/lib/source-map/base64.js         |     42 -
 .../source-map/lib/source-map/binary-search.js  |     80 -
 .../source-map/lib/source-map/mapping-list.js   |     86 -
 .../lib/source-map/source-map-consumer.js       |    575 -
 .../lib/source-map/source-map-generator.js      |    400 -
 .../source-map/lib/source-map/source-node.js    |    414 -
 .../source-map/lib/source-map/util.js           |    319 -
 .../stylus/node_modules/source-map/package.json |    232 -
 .../node_modules/source-map/test/run-tests.js   |     62 -
 .../source-map/test/source-map/test-api.js      |     26 -
 .../test/source-map/test-array-set.js           |    104 -
 .../test/source-map/test-base64-vlq.js          |     23 -
 .../source-map/test/source-map/test-base64.js   |     35 -
 .../test/source-map/test-binary-search.js       |     54 -
 .../test/source-map/test-dog-fooding.js         |     84 -
 .../test/source-map/test-source-map-consumer.js |    702 -
 .../source-map/test-source-map-generator.js     |    679 -
 .../test/source-map/test-source-node.js         |    612 -
 .../source-map/test/source-map/test-util.js     |    216 -
 .../source-map/test/source-map/util.js          |    192 -
 node_modules/stylus/package.json                |    125 -
 node_modules/supports-color/index.js            |     50 -
 node_modules/supports-color/license             |     21 -
 node_modules/supports-color/package.json        |    114 -
 node_modules/supports-color/readme.md           |     36 -
 node_modules/swig-extras/.npmignore             |      5 -
 node_modules/swig-extras/LICENSE                |      7 -
 node_modules/swig-extras/README.md              |     53 -
 node_modules/swig-extras/index.js               |     57 -
 node_modules/swig-extras/lib/filters/batch.js   |     62 -
 node_modules/swig-extras/lib/filters/groupby.js |     44 -
 node_modules/swig-extras/lib/filters/index.js   |      8 -
 .../swig-extras/lib/filters/markdown.js         |     17 -
 node_modules/swig-extras/lib/filters/nl2br.js   |     29 -
 node_modules/swig-extras/lib/filters/pluck.js   |     30 -
 node_modules/swig-extras/lib/filters/split.js   |     18 -
 node_modules/swig-extras/lib/filters/trim.js    |     27 -
 .../swig-extras/lib/filters/truncate.js         |     31 -
 node_modules/swig-extras/lib/tags/case.js       |     19 -
 node_modules/swig-extras/lib/tags/index.js      |      3 -
 node_modules/swig-extras/lib/tags/markdown.js   |     25 -
 node_modules/swig-extras/lib/tags/switch.js     |     21 -
 node_modules/swig-extras/lib/utils.js           |    180 -
 node_modules/swig-extras/package.json           |     93 -
 node_modules/swig/.npmignore                    |     10 -
 node_modules/swig/HISTORY.md                    |    498 -
 node_modules/swig/LICENSE                       |      7 -
 node_modules/swig/README.md                     |     88 -
 node_modules/swig/bin/swig.js                   |    161 -
 node_modules/swig/dist/swig.js                  |   5006 -
 node_modules/swig/dist/swig.js.map              |      1 -
 node_modules/swig/dist/swig.min.js              |      5 -
 node_modules/swig/index.js                      |      1 -
 node_modules/swig/lib/dateformatter.js          |    198 -
 node_modules/swig/lib/filters.js                |    630 -
 node_modules/swig/lib/lexer.js                  |    306 -
 node_modules/swig/lib/loaders/filesystem.js     |     59 -
 node_modules/swig/lib/loaders/index.js          |     53 -
 node_modules/swig/lib/loaders/memory.js         |     63 -
 node_modules/swig/lib/parser.js                 |    744 -
 node_modules/swig/lib/swig.js                   |    740 -
 node_modules/swig/lib/tags/autoescape.js        |     37 -
 node_modules/swig/lib/tags/block.js             |     25 -
 node_modules/swig/lib/tags/else.js              |     25 -
 node_modules/swig/lib/tags/elseif.js            |     28 -
 node_modules/swig/lib/tags/extends.js           |     19 -
 node_modules/swig/lib/tags/filter.js            |     68 -
 node_modules/swig/lib/tags/for.js               |    130 -
 node_modules/swig/lib/tags/if.js                |     86 -
 node_modules/swig/lib/tags/import.js            |     91 -
 node_modules/swig/lib/tags/include.js           |    100 -
 node_modules/swig/lib/tags/index.js             |     16 -
 node_modules/swig/lib/tags/macro.js             |     79 -
 node_modules/swig/lib/tags/parent.js            |     51 -
 node_modules/swig/lib/tags/raw.js               |     23 -
 node_modules/swig/lib/tags/set.js               |    109 -
 node_modules/swig/lib/tags/spaceless.js         |     42 -
 node_modules/swig/lib/utils.js                  |    184 -
 node_modules/swig/package.json                  |    115 -
 node_modules/symbol-tree/LICENSE                |     21 -
 node_modules/symbol-tree/README.md              |    543 -
 node_modules/symbol-tree/lib/SymbolTree.js      |    836 -
 node_modules/symbol-tree/lib/SymbolTreeNode.js  |     54 -
 node_modules/symbol-tree/lib/TreeIterator.js    |     69 -
 node_modules/symbol-tree/lib/TreePosition.js    |     11 -
 node_modules/symbol-tree/package.json           |    113 -
 node_modules/text-table/.travis.yml             |      4 -
 node_modules/text-table/LICENSE                 |     18 -
 node_modules/text-table/example/align.js        |      8 -
 node_modules/text-table/example/center.js       |      8 -
 node_modules/text-table/example/dotalign.js     |      9 -
 node_modules/text-table/example/doubledot.js    |     11 -
 node_modules/text-table/example/table.js        |      6 -
 node_modules/text-table/index.js                |     86 -
 node_modules/text-table/package.json            |    105 -
 node_modules/text-table/readme.markdown         |    134 -
 node_modules/text-table/test/align.js           |     18 -
 node_modules/text-table/test/ansi-colors.js     |     32 -
 node_modules/text-table/test/center.js          |     18 -
 node_modules/text-table/test/dotalign.js        |     20 -
 node_modules/text-table/test/doubledot.js       |     24 -
 node_modules/text-table/test/table.js           |     14 -
 node_modules/through/.travis.yml                |      5 -
 node_modules/through/LICENSE.APACHE2            |     15 -
 node_modules/through/LICENSE.MIT                |     24 -
 node_modules/through/index.js                   |    108 -
 node_modules/through/package.json               |    101 -
 node_modules/through/readme.markdown            |     64 -
 node_modules/through/test/async.js              |     28 -
 node_modules/through/test/auto-destroy.js       |     30 -
 node_modules/through/test/buffering.js          |     71 -
 node_modules/through/test/end.js                |     45 -
 node_modules/through/test/index.js              |    133 -
 node_modules/tildify/index.js                   |      9 -
 node_modules/tildify/license                    |     21 -
 node_modules/tildify/package.json               |    110 -
 node_modules/tildify/readme.md                  |     30 -
 node_modules/titlecase/LICENCE.md               |     21 -
 node_modules/titlecase/README.md                |     77 -
 node_modules/titlecase/articles.js              |      1 -
 node_modules/titlecase/bin.js                   |      8 -
 node_modules/titlecase/conjunctions.js          |     11 -
 node_modules/titlecase/package.json             |     93 -
 node_modules/titlecase/prepositions.js          |    109 -
 node_modules/titlecase/test/index.html          |     29 -
 node_modules/titlecase/test/tests.json          |    154 -
 node_modules/titlecase/to-title-case.js         |     50 -
 node_modules/tough-cookie/LICENSE               |     27 -
 node_modules/tough-cookie/README.md             |    506 -
 node_modules/tough-cookie/lib/cookie.js         |   1336 -
 node_modules/tough-cookie/lib/memstore.js       |    170 -
 node_modules/tough-cookie/lib/pathMatch.js      |     61 -
 node_modules/tough-cookie/lib/permuteDomain.js  |     56 -
 node_modules/tough-cookie/lib/pubsuffix.js      |     98 -
 node_modules/tough-cookie/lib/store.js          |     71 -
 node_modules/tough-cookie/package.json          |    137 -
 node_modules/tr46/.npmignore                    |      4 -
 node_modules/tr46/index.js                      |    193 -
 node_modules/tr46/lib/.gitkeep                  |      0
 node_modules/tr46/lib/mappingTable.json         |      1 -
 node_modules/tr46/package.json                  |     92 -
 node_modules/tunnel-agent/LICENSE               |     55 -
 node_modules/tunnel-agent/README.md             |      4 -
 node_modules/tunnel-agent/index.js              |    244 -
 node_modules/tunnel-agent/package.json          |    103 -
 node_modules/tweetnacl/.npmignore               |      4 -
 node_modules/tweetnacl/AUTHORS.md               |     28 -
 node_modules/tweetnacl/CHANGELOG.md             |    221 -
 node_modules/tweetnacl/LICENSE                  |     24 -
 node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md |     20 -
 node_modules/tweetnacl/README.md                |    459 -
 node_modules/tweetnacl/nacl-fast.js             |   2388 -
 node_modules/tweetnacl/nacl-fast.min.js         |      2 -
 node_modules/tweetnacl/nacl.d.ts                |     98 -
 node_modules/tweetnacl/nacl.js                  |   1175 -
 node_modules/tweetnacl/nacl.min.js              |      1 -
 node_modules/tweetnacl/package.json             |    122 -
 node_modules/type-check/LICENSE                 |     22 -
 node_modules/type-check/README.md               |    210 -
 node_modules/type-check/lib/check.js            |    126 -
 node_modules/type-check/lib/index.js            |     16 -
 node_modules/type-check/lib/parse-type.js       |    196 -
 node_modules/type-check/package.json            |    103 -
 node_modules/uglify-js/LICENSE                  |     29 -
 node_modules/uglify-js/README.md                |    784 -
 node_modules/uglify-js/bin/extract-props.js     |     77 -
 node_modules/uglify-js/bin/uglifyjs             |    560 -
 node_modules/uglify-js/lib/ast.js               |    995 -
 node_modules/uglify-js/lib/compress.js          |   2515 -
 node_modules/uglify-js/lib/mozilla-ast.js       |    507 -
 node_modules/uglify-js/lib/output.js            |   1326 -
 node_modules/uglify-js/lib/parse.js             |   1486 -
 node_modules/uglify-js/lib/propmangle.js        |    221 -
 node_modules/uglify-js/lib/scope.js             |    601 -
 node_modules/uglify-js/lib/sourcemap.js         |     92 -
 node_modules/uglify-js/lib/transform.js         |    218 -
 node_modules/uglify-js/lib/utils.js             |    310 -
 .../uglify-js/node_modules/camelcase/index.js   |     27 -
 .../uglify-js/node_modules/camelcase/license    |     21 -
 .../node_modules/camelcase/package.json         |    103 -
 .../uglify-js/node_modules/camelcase/readme.md  |     56 -
 .../node_modules/source-map/.npmignore          |      2 -
 .../node_modules/source-map/.tern-port          |      1 -
 .../node_modules/source-map/.travis.yml         |      4 -
 .../node_modules/source-map/CHANGELOG.md        |    137 -
 .../uglify-js/node_modules/source-map/LICENSE   |     28 -
 .../node_modules/source-map/Makefile.dryice.js  |    166 -
 .../uglify-js/node_modules/source-map/README.md |    446 -
 .../source-map/build/assert-shim.js             |     56 -
 .../source-map/build/mini-require.js            |    152 -
 .../source-map/build/prefix-source-map.jsm      |     20 -
 .../source-map/build/prefix-utils.jsm           |     18 -
 .../source-map/build/suffix-browser.js          |      8 -
 .../source-map/build/suffix-source-map.jsm      |      6 -
 .../source-map/build/suffix-utils.jsm           |     21 -
 .../source-map/build/test-prefix.js             |      8 -
 .../source-map/build/test-suffix.js             |      3 -
 .../node_modules/source-map/lib/source-map.js   |      8 -
 .../source-map/lib/source-map/array-set.js      |     97 -
 .../source-map/lib/source-map/base64-vlq.js     |    144 -
 .../source-map/lib/source-map/base64.js         |     42 -
 .../source-map/lib/source-map/binary-search.js  |     81 -
 .../lib/source-map/source-map-consumer.js       |    478 -
 .../lib/source-map/source-map-generator.js      |    400 -
 .../source-map/lib/source-map/source-node.js    |    400 -
 .../source-map/lib/source-map/util.js           |    302 -
 .../node_modules/source-map/package.json        |    188 -
 .../node_modules/source-map/test/run-tests.js   |     62 -
 .../source-map/test/source-map/test-api.js      |     26 -
 .../test/source-map/test-array-set.js           |    104 -
 .../test/source-map/test-base64-vlq.js          |     24 -
 .../source-map/test/source-map/test-base64.js   |     35 -
 .../test/source-map/test-binary-search.js       |     54 -
 .../test/source-map/test-dog-fooding.js         |     84 -
 .../test/source-map/test-source-map-consumer.js |    475 -
 .../source-map/test-source-map-generator.js     |    549 -
 .../test/source-map/test-source-node.js         |    487 -
 .../source-map/test/source-map/test-util.js     |    127 -
 .../source-map/test/source-map/util.js          |    161 -
 .../node_modules/window-size/LICENSE-MIT        |     22 -
 .../node_modules/window-size/README.md          |     26 -
 .../uglify-js/node_modules/window-size/index.js |     33 -
 .../node_modules/window-size/package.json       |     90 -
 .../uglify-js/node_modules/wordwrap/.npmignore  |      1 -
 .../node_modules/wordwrap/README.markdown       |     70 -
 .../node_modules/wordwrap/example/center.js     |     10 -
 .../node_modules/wordwrap/example/meat.js       |      3 -
 .../uglify-js/node_modules/wordwrap/index.js    |     76 -
 .../node_modules/wordwrap/package.json          |     95 -
 .../node_modules/wordwrap/test/break.js         |     30 -
 .../node_modules/wordwrap/test/idleness.txt     |     63 -
 .../node_modules/wordwrap/test/wrap.js          |     31 -
 .../uglify-js/node_modules/yargs/LICENSE        |     21 -
 .../uglify-js/node_modules/yargs/README.md      |    901 -
 .../node_modules/yargs/completion.sh.hbs        |     22 -
 .../uglify-js/node_modules/yargs/index.js       |    489 -
 .../node_modules/yargs/lib/completion.js        |     71 -
 .../uglify-js/node_modules/yargs/lib/parser.js  |    407 -
 .../uglify-js/node_modules/yargs/lib/usage.js   |    372 -
 .../node_modules/yargs/lib/validation.js        |    193 -
 .../uglify-js/node_modules/yargs/package.json   |    155 -
 node_modules/uglify-js/package.json             |    119 -
 node_modules/uglify-js/tools/domprops.json      |   5603 -
 node_modules/uglify-js/tools/node.js            |    253 -
 node_modules/uglify-js/tools/props.html         |     61 -
 node_modules/uglify-to-browserify/.npmignore    |     14 -
 node_modules/uglify-to-browserify/.travis.yml   |      3 -
 node_modules/uglify-to-browserify/LICENSE       |     19 -
 node_modules/uglify-to-browserify/README.md     |     15 -
 node_modules/uglify-to-browserify/index.js      |     49 -
 node_modules/uglify-to-browserify/package.json  |     81 -
 node_modules/uglify-to-browserify/test/index.js |     22 -
 node_modules/unpipe/HISTORY.md                  |      4 -
 node_modules/unpipe/LICENSE                     |     22 -
 node_modules/unpipe/README.md                   |     43 -
 node_modules/unpipe/index.js                    |     69 -
 node_modules/unpipe/package.json                |     94 -
 node_modules/upper-case/LICENSE                 |     21 -
 node_modules/upper-case/README.md               |     45 -
 node_modules/upper-case/package.json            |    109 -
 node_modules/upper-case/upper-case.d.ts         |      3 -
 node_modules/upper-case/upper-case.js           |     50 -
 node_modules/util-deprecate/History.md          |     16 -
 node_modules/util-deprecate/LICENSE             |     24 -
 node_modules/util-deprecate/README.md           |     53 -
 node_modules/util-deprecate/browser.js          |     67 -
 node_modules/util-deprecate/node.js             |      6 -
 node_modules/util-deprecate/package.json        |     90 -
 node_modules/utils-merge/.travis.yml            |      6 -
 node_modules/utils-merge/LICENSE                |     20 -
 node_modules/utils-merge/README.md              |     34 -
 node_modules/utils-merge/index.js               |     23 -
 node_modules/utils-merge/package.json           |     95 -
 node_modules/uuid/.npmignore                    |      8 -
 node_modules/uuid/.travis.yml                   |      5 -
 node_modules/uuid/AUTHORS                       |      5 -
 node_modules/uuid/HISTORY.md                    |     28 -
 node_modules/uuid/LICENSE.md                    |     21 -
 node_modules/uuid/README.md                     |    132 -
 node_modules/uuid/bin/uuid                      |     26 -
 node_modules/uuid/index.js                      |      8 -
 node_modules/uuid/lib/bytesToUuid.js            |     23 -
 node_modules/uuid/lib/rng-browser.js            |     33 -
 node_modules/uuid/lib/rng.js                    |     10 -
 node_modules/uuid/package.json                  |    123 -
 node_modules/uuid/test/mocha.opts               |      3 -
 node_modules/uuid/test/test.js                  |     96 -
 node_modules/uuid/v1.js                         |    103 -
 node_modules/uuid/v4.js                         |     29 -
 node_modules/vary/HISTORY.md                    |     29 -
 node_modules/vary/LICENSE                       |     22 -
 node_modules/vary/README.md                     |     91 -
 node_modules/vary/index.js                      |    124 -
 node_modules/vary/package.json                  |    107 -
 node_modules/verror/.gitmodules                 |      0
 node_modules/verror/.npmignore                  |      1 -
 node_modules/verror/LICENSE                     |     19 -
 node_modules/verror/Makefile                    |     35 -
 node_modules/verror/Makefile.targ               |    285 -
 node_modules/verror/README.md                   |    120 -
 node_modules/verror/examples/levels-verror.js   |     36 -
 node_modules/verror/examples/levels-werror.js   |     34 -
 node_modules/verror/examples/varargs.js         |      6 -
 node_modules/verror/examples/verror.js          |     13 -
 node_modules/verror/examples/werror.js          |     14 -
 node_modules/verror/jsl.node.conf               |    139 -
 node_modules/verror/lib/verror.js               |    157 -
 node_modules/verror/package.json                |     79 -
 node_modules/verror/tests/tst.inherit.js        |    100 -
 node_modules/verror/tests/tst.verror.js         |    156 -
 node_modules/verror/tests/tst.werror.js         |    179 -
 node_modules/warehouse/.eslintignore            |      4 -
 node_modules/warehouse/.eslintrc                |     45 -
 node_modules/warehouse/.jscsrc                  |     85 -
 node_modules/warehouse/.jsdoc.json              |     21 -
 node_modules/warehouse/.npmignore               |      9 -
 node_modules/warehouse/.travis/deploy.sh        |     23 -
 node_modules/warehouse/.travis/ssh_config       |      5 -
 node_modules/warehouse/.travis/ssh_key.enc      |    Bin 1680 -> 0 bytes
 node_modules/warehouse/LICENSE                  |      7 -
 node_modules/warehouse/README.md                |     35 -
 node_modules/warehouse/lib/database.js          |    162 -
 node_modules/warehouse/lib/document.js          |    109 -
 node_modules/warehouse/lib/error.js             |     33 -
 node_modules/warehouse/lib/error/population.js  |     22 -
 node_modules/warehouse/lib/error/validation.js  |     22 -
 node_modules/warehouse/lib/model.js             |   1005 -
 node_modules/warehouse/lib/mutex.js             |     30 -
 node_modules/warehouse/lib/query.js             |    408 -
 node_modules/warehouse/lib/schema.js            |    724 -
 node_modules/warehouse/lib/schematype.js        |    303 -
 node_modules/warehouse/lib/types/array.js       |    387 -
 node_modules/warehouse/lib/types/boolean.js     |     77 -
 node_modules/warehouse/lib/types/buffer.js      |    137 -
 node_modules/warehouse/lib/types/cuid.js        |     54 -
 node_modules/warehouse/lib/types/date.js        |    168 -
 node_modules/warehouse/lib/types/enum.js        |     48 -
 node_modules/warehouse/lib/types/index.js       |     14 -
 node_modules/warehouse/lib/types/integer.js     |     53 -
 node_modules/warehouse/lib/types/number.js      |    139 -
 node_modules/warehouse/lib/types/object.js      |     27 -
 node_modules/warehouse/lib/types/string.js      |    114 -
 node_modules/warehouse/lib/types/virtual.js     |     90 -
 node_modules/warehouse/lib/util.js              |    177 -
 node_modules/warehouse/package.json             |    114 -
 node_modules/webidl-conversions/LICENSE.md      |     12 -
 node_modules/webidl-conversions/README.md       |     53 -
 node_modules/webidl-conversions/lib/index.js    |    183 -
 node_modules/webidl-conversions/package.json    |     96 -
 node_modules/whatwg-url-compat/.npmignore       |     10 -
 node_modules/whatwg-url-compat/LICENSE.txt      |     21 -
 node_modules/whatwg-url-compat/README.md        |      7 -
 node_modules/whatwg-url-compat/jsconfig.json    |      5 -
 node_modules/whatwg-url-compat/lib/url.js       |   1374 -
 node_modules/whatwg-url-compat/package.json     |     92 -
 node_modules/which/CHANGELOG.md                 |    130 -
 node_modules/which/LICENSE                      |     15 -
 node_modules/which/README.md                    |     48 -
 node_modules/which/bin/which                    |     52 -
 node_modules/which/package.json                 |    101 -
 node_modules/which/which.js                     |    132 -
 node_modules/window-size/LICENSE                |     21 -
 node_modules/window-size/README.md              |     45 -
 node_modules/window-size/cli.js                 |     30 -
 node_modules/window-size/index.js               |     32 -
 node_modules/window-size/package.json           |    118 -
 node_modules/wordwrap/LICENSE                   |     18 -
 node_modules/wordwrap/README.markdown           |     70 -
 node_modules/wordwrap/example/center.js         |     10 -
 node_modules/wordwrap/example/meat.js           |      3 -
 node_modules/wordwrap/index.js                  |     76 -
 node_modules/wordwrap/package.json              |     95 -
 node_modules/wordwrap/test/break.js             |     32 -
 node_modules/wordwrap/test/idleness.txt         |     63 -
 node_modules/wordwrap/test/wrap.js              |     33 -
 node_modules/wrap-ansi/index.js                 |    168 -
 node_modules/wrap-ansi/license                  |     21 -
 node_modules/wrap-ansi/package.json             |    142 -
 node_modules/wrap-ansi/readme.md                |     73 -
 node_modules/wrappy/LICENSE                     |     15 -
 node_modules/wrappy/README.md                   |     36 -
 node_modules/wrappy/package.json                |     98 -
 node_modules/wrappy/wrappy.js                   |     33 -
 node_modules/xml-name-validator/LICENSE.txt     |     19 -
 node_modules/xml-name-validator/README.md       |     36 -
 .../xml-name-validator/lib/generated-parser.js  |    504 -
 .../xml-name-validator/lib/grammar.pegjs        |     35 -
 .../lib/xml-name-validator.js                   |     17 -
 node_modules/xml-name-validator/package.json    |     98 -
 node_modules/y18n/LICENSE                       |     13 -
 node_modules/y18n/README.md                     |     91 -
 node_modules/y18n/index.js                      |    172 -
 node_modules/y18n/package.json                  |    106 -
 node_modules/yallist/LICENSE                    |     15 -
 node_modules/yallist/README.md                  |    204 -
 node_modules/yallist/iterator.js                |      7 -
 node_modules/yallist/package.json               |     97 -
 node_modules/yallist/yallist.js                 |    370 -
 node_modules/yargs/CHANGELOG.md                 |    508 -
 node_modules/yargs/LICENSE                      |     21 -
 node_modules/yargs/README.md                    |   1243 -
 node_modules/yargs/completion.sh.hbs            |     28 -
 node_modules/yargs/index.js                     |    665 -
 node_modules/yargs/lib/completion.js            |     91 -
 node_modules/yargs/lib/parser.js                |    520 -
 node_modules/yargs/lib/tokenize-arg-string.js   |     32 -
 node_modules/yargs/lib/usage.js                 |    383 -
 node_modules/yargs/lib/validation.js            |    249 -
 node_modules/yargs/locales/de.json              |     36 -
 node_modules/yargs/locales/en.json              |     36 -
 node_modules/yargs/locales/es.json              |     36 -
 node_modules/yargs/locales/fr.json              |     36 -
 node_modules/yargs/locales/id.json              |     37 -
 node_modules/yargs/locales/ja.json              |     36 -
 node_modules/yargs/locales/ko.json              |     36 -
 node_modules/yargs/locales/nb.json              |     36 -
 node_modules/yargs/locales/pirate.json          |     12 -
 node_modules/yargs/locales/pl.json              |     36 -
 node_modules/yargs/locales/pt.json              |     36 -
 node_modules/yargs/locales/pt_BR.json           |     36 -
 node_modules/yargs/locales/tr.json              |     36 -
 node_modules/yargs/locales/zh.json              |     36 -
 node_modules/yargs/package.json                 |    175 -
 package.json                                    |     20 -
 readme.md                                       |     34 -
 scaffolds/draft.md                              |      4 -
 scaffolds/page.md                               |      4 -
 scaffolds/post.md                               |      5 -
 source/_posts/community.md                      |     95 -
 source/_posts/home.md                           |     86 -
 source/_posts/plan.md                           |     78 -
 source/_posts/release.md                        |     77 -
 source/_posts/security.md                       |      9 -
 source/_posts/userstory.md                      |     65 -
 source/images/Business_Process.png              |    Bin 33482 -> 0 bytes
 source/images/arch.png                          |    Bin 307285 -> 0 bytes
 source/images/egg-logo.png                      |    Bin 44623 -> 0 bytes
 source/images/techstack.png                     |    Bin 127993 -> 0 bytes
 themes/landscape/.gitignore                     |      3 -
 themes/landscape/Gruntfile.js                   |     46 -
 themes/landscape/LICENSE                        |      7 -
 themes/landscape/README.md                      |    111 -
 themes/landscape/_config.yml                    |     37 -
 themes/landscape/languages/default.yml          |     19 -
 themes/landscape/languages/fr.yml               |     19 -
 themes/landscape/languages/nl.yml               |     20 -
 themes/landscape/languages/no.yml               |     19 -
 themes/landscape/languages/ru.yml               |     19 -
 themes/landscape/languages/zh-CN.yml            |     19 -
 themes/landscape/languages/zh-TW.yml            |     19 -
 .../landscape/layout/_partial/after-footer.ejs  |     24 -
 .../landscape/layout/_partial/archive-post.ejs  |      8 -
 themes/landscape/layout/_partial/archive.ejs    |     33 -
 themes/landscape/layout/_partial/article.ejs    |     44 -
 themes/landscape/layout/_partial/footer.ejs     |     11 -
 .../layout/_partial/google-analytics.ejs        |     14 -
 themes/landscape/layout/_partial/head.ejs       |     36 -
 themes/landscape/layout/_partial/header.ejs     |     32 -
 themes/landscape/layout/_partial/mobile-nav.ejs |      5 -
 .../landscape/layout/_partial/post/category.ejs |     10 -
 themes/landscape/layout/_partial/post/date.ejs  |      3 -
 .../landscape/layout/_partial/post/gallery.ejs  |     11 -
 themes/landscape/layout/_partial/post/nav.ejs   |     22 -
 themes/landscape/layout/_partial/post/tag.ejs   |      6 -
 themes/landscape/layout/_partial/post/title.ejs |     15 -
 themes/landscape/layout/_partial/sidebar.ejs    |      5 -
 themes/landscape/layout/_widget/archive.ejs     |      8 -
 themes/landscape/layout/_widget/category.ejs    |      8 -
 themes/landscape/layout/_widget/logo.ejs        |      5 -
 .../landscape/layout/_widget/recent_posts.ejs   |     14 -
 themes/landscape/layout/_widget/tag.ejs         |      8 -
 themes/landscape/layout/_widget/tagcloud.ejs    |      8 -
 themes/landscape/layout/archive.ejs             |      1 -
 themes/landscape/layout/category.ejs            |      1 -
 themes/landscape/layout/index.ejs               |      1 -
 themes/landscape/layout/layout.ejs              |     18 -
 themes/landscape/layout/page.ejs                |      1 -
 themes/landscape/layout/post.ejs                |      1 -
 themes/landscape/layout/tag.ejs                 |      1 -
 themes/landscape/package.json                   |     12 -
 themes/landscape/scripts/fancybox.js            |     24 -
 themes/landscape/source/css/_extend.styl        |     63 -
 .../landscape/source/css/_partial/archive.styl  |     80 -
 .../landscape/source/css/_partial/article.styl  |    357 -
 .../landscape/source/css/_partial/comment.styl  |      9 -
 .../landscape/source/css/_partial/footer.styl   |     14 -
 .../landscape/source/css/_partial/header.styl   |    166 -
 .../source/css/_partial/highlight.styl          |    158 -
 .../landscape/source/css/_partial/mobile.styl   |     19 -
 .../source/css/_partial/sidebar-aside.styl      |     28 -
 .../source/css/_partial/sidebar-bottom.styl     |     27 -
 .../landscape/source/css/_partial/sidebar.styl  |     35 -
 themes/landscape/source/css/_util/grid.styl     |     38 -
 themes/landscape/source/css/_util/mixin.styl    |     31 -
 themes/landscape/source/css/_variables.styl     |     60 -
 .../landscape/source/css/fonts/FontAwesome.otf  |    Bin 62856 -> 0 bytes
 .../source/css/fonts/fontawesome-webfont.eot    |    Bin 38205 -> 0 bytes
 .../source/css/fonts/fontawesome-webfont.svg    |    414 -
 .../source/css/fonts/fontawesome-webfont.ttf    |    Bin 80652 -> 0 bytes
 .../source/css/fonts/fontawesome-webfont.woff   |    Bin 44432 -> 0 bytes
 themes/landscape/source/css/images/banner.jpg   |    Bin 224710 -> 0 bytes
 themes/landscape/source/css/style.styl          |     89 -
 themes/landscape/source/fancybox/blank.gif      |    Bin 43 -> 0 bytes
 .../source/fancybox/fancybox_loading.gif        |    Bin 6567 -> 0 bytes
 .../source/fancybox/fancybox_loading@2x.gif     |    Bin 13984 -> 0 bytes
 .../source/fancybox/fancybox_overlay.png        |    Bin 1003 -> 0 bytes
 .../source/fancybox/fancybox_sprite.png         |    Bin 1362 -> 0 bytes
 .../source/fancybox/fancybox_sprite@2x.png      |    Bin 6553 -> 0 bytes
 .../fancybox/helpers/fancybox_buttons.png       |    Bin 1080 -> 0 bytes
 .../helpers/jquery.fancybox-buttons.css         |     97 -
 .../fancybox/helpers/jquery.fancybox-buttons.js |    122 -
 .../fancybox/helpers/jquery.fancybox-media.js   |    199 -
 .../fancybox/helpers/jquery.fancybox-thumbs.css |     55 -
 .../fancybox/helpers/jquery.fancybox-thumbs.js  |    165 -
 .../source/fancybox/jquery.fancybox.css         |    273 -
 .../source/fancybox/jquery.fancybox.js          |   2017 -
 .../source/fancybox/jquery.fancybox.pack.js     |     46 -
 themes/landscape/source/js/script.js            |    137 -
 8043 files changed, 962769 deletions(-)
----------------------------------------------------------------------




[37/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/dist/regenerator.min.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/dist/regenerator.min.js b/node_modules/ajv/dist/regenerator.min.js
deleted file mode 100644
index 83b02b9..0000000
--- a/node_modules/ajv/dist/regenerator.min.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/* regenerator 0.9.5: Source transformer enabling ECMAScript 6 generator functions (yield) in JavaScript-of-today (ES5) */
-require=function e(t,n,r){function i(s,o){if(!n[s]){if(!t[s]){var u="function"==typeof require&&require;if(!o&&u)return u(s,!0);if(a)return a(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[s]={exports:{}};t[s][0].call(c.exports,function(e){var n=t[s][1][e];return i(n?n:e)},c,c.exports,e,t,n,r)}return n[s].exports}for(var a="function"==typeof require&&require,s=0;s<r.length;s++)i(r[s]);return i}({1:[function(e,t,n){},{}],2:[function(e,t,n){function r(e,t){return h.isUndefined(t)?""+t:h.isNumber(t)&&!isFinite(t)?t.toString():h.isFunction(t)||h.isRegExp(t)?t.toString():t}function i(e,t){return h.isString(e)?e.length<t?e:e.slice(0,t):e}function a(e){return i(JSON.stringify(e.actual,r),128)+" "+e.operator+" "+i(JSON.stringify(e.expected,r),128)}function s(e,t,n,r,i){throw new m.AssertionError({message:n,actual:e,expected:t,operator:r,stackStartFunction:i})}function o(e,t){e||s(e,!0,t,"==",m.ok)}function u(e,t){if(e===t)return!0;if(h.isBuffer
 (e)&&h.isBuffer(t)){if(e.length!=t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}return h.isDate(e)&&h.isDate(t)?e.getTime()===t.getTime():h.isRegExp(e)&&h.isRegExp(t)?e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.lastIndex===t.lastIndex&&e.ignoreCase===t.ignoreCase:h.isObject(e)||h.isObject(t)?c(e,t):e==t}function l(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function c(e,t){if(h.isNullOrUndefined(e)||h.isNullOrUndefined(t))return!1;if(e.prototype!==t.prototype)return!1;if(h.isPrimitive(e)||h.isPrimitive(t))return e===t;var n=l(e),r=l(t);if(n&&!r||!n&&r)return!1;if(n)return e=d.call(e),t=d.call(t),u(e,t);var i,a,s=b(e),o=b(t);if(s.length!=o.length)return!1;for(s.sort(),o.sort(),a=s.length-1;a>=0;a--)if(s[a]!=o[a])return!1;for(a=s.length-1;a>=0;a--)if(i=s[a],!u(e[i],t[i]))return!1;return!0}function p(e,t){return!(!e||!t)&&("[object RegExp]"==Object.prototype.toString.call(t)?t.test(e):e instanceof t||t.call(
 {},e)===!0)}function f(e,t,n,r){var i;h.isString(n)&&(r=n,n=null);try{t()}catch(e){i=e}if(r=(n&&n.name?" ("+n.name+").":".")+(r?" "+r:"."),e&&!i&&s(i,n,"Missing expected exception"+r),!e&&p(i,n)&&s(i,n,"Got unwanted exception"+r),e&&i&&n&&!p(i,n)||!e&&i)throw i}var h=e("util/"),d=Array.prototype.slice,y=Object.prototype.hasOwnProperty,m=t.exports=o;m.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=a(this),this.generatedMessage=!0);var t=e.stackStartFunction||s;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var n=new Error;if(n.stack){var r=n.stack,i=t.name,o=r.indexOf("\n"+i);if(o>=0){var u=r.indexOf("\n",o+1);r=r.substring(u+1)}this.stack=r}}},h.inherits(m.AssertionError,Error),m.fail=s,m.ok=o,m.equal=function(e,t,n){e!=t&&s(e,t,n,"==",m.equal)},m.notEqual=function(e,t,n){e==t&&s(e,t,n,"!=",m.notEqual)},m.deepEqual=f
 unction(e,t,n){u(e,t)||s(e,t,n,"deepEqual",m.deepEqual)},m.notDeepEqual=function(e,t,n){u(e,t)&&s(e,t,n,"notDeepEqual",m.notDeepEqual)},m.strictEqual=function(e,t,n){e!==t&&s(e,t,n,"===",m.strictEqual)},m.notStrictEqual=function(e,t,n){e===t&&s(e,t,n,"!==",m.notStrictEqual)},m.throws=function(e,t,n){f.apply(this,[!0].concat(d.call(arguments)))},m.doesNotThrow=function(e,t){f.apply(this,[!1].concat(d.call(arguments)))},m.ifError=function(e){if(e)throw e};var b=Object.keys||function(e){var t=[];for(var n in e)y.call(e,n)&&t.push(n);return t}},{"util/":35}],3:[function(e,t,n){arguments[4][1][0].apply(n,arguments)},{dup:1}],4:[function(e,t,n){(function(t){"use strict";function r(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}function i(){return s.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(e,t){if(i()<t)throw new RangeError(
 "Invalid typed array length");return s.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t),e.__proto__=s.prototype):(null===e&&(e=new s(t)),e.length=t),e}function s(e,t,n){if(!(s.TYPED_ARRAY_SUPPORT||this instanceof s))return new s(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return c(this,e)}return o(this,e,t,n)}function o(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?h(e,t,n,r):"string"==typeof t?p(e,t,n):d(e,t)}function u(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function l(e,t,n,r){return u(t),t<=0?a(e,t):void 0!==n?"string"==typeof r?a(e,t).fill(n,r):a(e,t).fill(n):a(e,t)}function c(e,t){if(u(t),e=a(e,t<0?0:0|y(t)),!s.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function p(e
 ,t,n){if("string"==typeof n&&""!==n||(n="utf8"),!s.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|b(t,n);e=a(e,r);var i=e.write(t,n);return i!==r&&(e=e.slice(0,i)),e}function f(e,t){var n=t.length<0?0:0|y(t.length);e=a(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function h(e,t,n,r){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");return t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r),s.TYPED_ARRAY_SUPPORT?(e=t,e.__proto__=s.prototype):e=f(e,t),e}function d(e,t){if(s.isBuffer(t)){var n=0|y(t.length);return e=a(e,n),0===e.length?e:(t.copy(e,0,0,n),e)}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||H(t.length)?a(e,0):f(e,t);if("Buffer"===t.type&&Z(t.data))return f(e,t.data)}throw new TypeError("First argument mu
 st be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function y(e){if(e>=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|e}function m(e){return+e!=e&&(e=0),s.alloc(+e)}function b(e,t){if(s.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return X(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return z(e).length;default:if(r)return X(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if(n>>>=0,t>>>=0,n<=t)return"";for(e||(e="
 utf8");;)switch(e){case"hex":return B(this,t,n);case"utf8":case"utf-8":return F(this,t,n);case"ascii":return P(this,t,n);case"latin1":case"binary":return j(this,t,n);case"base64":return k(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function v(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function x(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=s.from(t,r)),s.isBuffer(t))return 0===t.length?-1:_(e,t,n,r,i);if("number"==typeof t)return t&=255,s.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):_(e,[t],n,r,i);throw new TypeError("val must be st
 ring, number or Buffer")}function _(e,t,n,r,i){function a(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}var s=1,o=e.length,u=t.length;if(void 0!==r&&(r=String(r).toLowerCase(),"ucs2"===r||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;s=2,o/=2,u/=2,n/=2}var l;if(i){var c=-1;for(l=n;l<o;l++)if(a(e,l)===a(t,c===-1?0:l-c)){if(c===-1&&(c=l),l-c+1===u)return c*s}else c!==-1&&(l-=l-c),c=-1}else for(n+u>o&&(n=o-u),l=n;l>=0;l--){for(var p=!0,f=0;f<u;f++)if(a(e,l+f)!==a(t,f)){p=!1;break}if(p)return l}return-1}function E(e,t,n,r){n=Number(n)||0;var i=e.length-n;r?(r=Number(r),r>i&&(r=i)):r=i;var a=t.length;if(a%2!==0)throw new TypeError("Invalid hex string");r>a/2&&(r=a/2);for(var s=0;s<r;++s){var o=parseInt(t.substr(2*s,2),16);if(isNaN(o))return s;e[n+s]=o}return s}function A(e,t,n,r){return Y(X(t,e.length-n),e,n,r)}function D(e,t,n,r){return Y(J(t),e,n,r)}function C(e,t,n,r){return D(e,t,n,r)}function S(e,t,n,r){return Y(z(t),e,n,r)}function w(e,t,n,r){return Y
 (W(t,e.length-n),e,n,r)}function k(e,t,n){return 0===t&&n===e.length?$.fromByteArray(e):$.fromByteArray(e.slice(t,n))}function F(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i<n;){var a=e[i],s=null,o=a>239?4:a>223?3:a>191?2:1;if(i+o<=n){var u,l,c,p;switch(o){case 1:a<128&&(s=a);break;case 2:u=e[i+1],128===(192&u)&&(p=(31&a)<<6|63&u,p>127&&(s=p));break;case 3:u=e[i+1],l=e[i+2],128===(192&u)&&128===(192&l)&&(p=(15&a)<<12|(63&u)<<6|63&l,p>2047&&(p<55296||p>57343)&&(s=p));break;case 4:u=e[i+1],l=e[i+2],c=e[i+3],128===(192&u)&&128===(192&l)&&128===(192&c)&&(p=(15&a)<<18|(63&u)<<12|(63&l)<<6|63&c,p>65535&&p<1114112&&(s=p))}}null===s?(s=65533,o=1):s>65535&&(s-=65536,r.push(s>>>10&1023|55296),s=56320|1023&s),r.push(s),i+=o}return T(r)}function T(e){var t=e.length;if(t<=ee)return String.fromCharCode.apply(String,e);for(var n="",r=0;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=ee));return n}function P(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode
 (127&e[i]);return r}function j(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function B(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var i="",a=t;a<n;++a)i+=K(e[a]);return i}function O(e,t,n){for(var r=e.slice(t,n),i="",a=0;a<r.length;a+=2)i+=String.fromCharCode(r[a]+256*r[a+1]);return i}function I(e,t,n){if(e%1!==0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function N(e,t,n,r,i,a){if(!s.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<a)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function L(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,a=Math.min(e.length-n,2);i<a;++i)e[n+i]=(t&255<<8*(r?i:1-i))>>>8*(r?i:1-i)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,a=Math.min(e.length-n,4);i<a;++i)e[n+i]=t>>>8*(r?i:3-i)&255}function 
 R(e,t,n,r,i,a){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function U(e,t,n,r,i){return i||R(e,t,n,4,3.4028234663852886e38,-3.4028234663852886e38),Q.write(e,t,n,r,23,4),n+4}function V(e,t,n,r,i){return i||R(e,t,n,8,1.7976931348623157e308,-1.7976931348623157e308),Q.write(e,t,n,r,52,8),n+8}function G(e){if(e=q(e).replace(te,""),e.length<2)return"";for(;e.length%4!==0;)e+="=";return e}function q(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function K(e){return e<16?"0"+e.toString(16):e.toString(16)}function X(e,t){t=t||1/0;for(var n,r=e.length,i=null,a=[],s=0;s<r;++s){if(n=e.charCodeAt(s),n>55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(s+1===r){(t-=3)>-1&&a.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&a.push(239,191,189),i=n;continue}n=(i-55296<<10|n-56320)+65536}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;a.push(n)}else if(n<2048){if(
 (t-=2)<0)break;a.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;a.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return a}function J(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}function W(e,t){for(var n,r,i,a=[],s=0;s<e.length&&!((t-=2)<0);++s)n=e.charCodeAt(s),r=n>>8,i=n%256,a.push(i),a.push(r);return a}function z(e){return $.toByteArray(G(e))}function Y(e,t,n,r){for(var i=0;i<r&&!(i+n>=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function H(e){return e!==e}var $=e("base64-js"),Q=e("ieee754"),Z=e("isarray");n.Buffer=s,n.SlowBuffer=m,n.INSPECT_MAX_BYTES=50,s.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:r(),n.kMaxLength=i(),s.poolSize=8192,s._augment=function(e){return e.__proto__=s.prototype,e},s.from=function(e,t,n){return o(null,e,t,n)},s.TYPED_ARRAY_SUPPORT&&(s.prototype.__proto__=Uint8Array.
 prototype,s.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&s[Symbol.species]===s&&Object.defineProperty(s,Symbol.species,{value:null,configurable:!0})),s.alloc=function(e,t,n){return l(null,e,t,n)},s.allocUnsafe=function(e){return c(null,e)},s.allocUnsafeSlow=function(e){return c(null,e)},s.isBuffer=function(e){return!(null==e||!e._isBuffer)},s.compare=function(e,t){if(!s.isBuffer(e)||!s.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,i=0,a=Math.min(n,r);i<a;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0},s.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(e,t){if(!Z(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return s.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.le
 ngth;++n)t+=e[n].length;var r=s.allocUnsafe(t),i=0;for(n=0;n<e.length;++n){var a=e[n];if(!s.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(r,i),i+=a.length}return r},s.byteLength=b,s.prototype._isBuffer=!0,s.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)v(this,t,t+1);return this},s.prototype.swap32=function(){var e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)v(this,t,t+3),v(this,t+1,t+2);return this},s.prototype.swap64=function(){var e=this.length;if(e%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)v(this,t,t+7),v(this,t+1,t+6),v(this,t+2,t+5),v(this,t+3,t+4);return this},s.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?F(this,0,e):g.apply(this,arguments)},s.prototype.equals=function(e){if(!s.isBuff
 er(e))throw new TypeError("Argument must be a Buffer");return this===e||0===s.compare(this,e)},s.prototype.inspect=function(){var e="",t=n.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),"<Buffer "+e+">"},s.prototype.compare=function(e,t,n,r,i){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,r>>>=0,i>>>=0,this===e)return 0;for(var a=i-r,o=n-t,u=Math.min(a,o),l=this.slice(r,i),c=e.slice(t,n),p=0;p<u;++p)if(l[p]!==c[p]){a=l[p],o=c[p];break}return a<o?-1:o<a?1:0},s.prototype.includes=function(e,t,n){return this.indexOf(e,t,n)!==-1},s.prototype.indexOf=function(e,t,n){return x(this,e,t,n,!0)},s.prototype.lastIndexOf=function(e,t,n){return x(this,e,t,n
 ,!1)},s.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var a=!1;;)switch(r){case"hex":return E(this,e,t,n);case"utf8":case"utf-8":return A(this,e,t,n);case"ascii":return D(this,e,t,n);case"latin1":case"binary":return C(this,e,t,n);case"base64":return S(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return w(this,e,t,n);default:if(a)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),a=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var ee=4096;s.prototype.slice=function
 (e,t){var n=this.length;e=~~e,t=void 0===t?n:~~t,e<0?(e+=n,e<0&&(e=0)):e>n&&(e=n),t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),t<e&&(t=e);var r;if(s.TYPED_ARRAY_SUPPORT)r=this.subarray(e,t),r.__proto__=s.prototype;else{var i=t-e;r=new s(i,void 0);for(var a=0;a<i;++a)r[a]=this[a+e]}return r},s.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var r=this[e],i=1,a=0;++a<t&&(i*=256);)r+=this[e+a]*i;return r},s.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var r=this[e+--t],i=1;t>0&&(i*=256);)r+=this[e+--t]*i;return r},s.prototype.readUInt8=function(e,t){return t||I(e,1,this.length),this[e]},s.prototype.readUInt16LE=function(e,t){return t||I(e,2,this.length),this[e]|this[e+1]<<8},s.prototype.readUInt16BE=function(e,t){return t||I(e,2,this.length),this[e]<<8|this[e+1]},s.prototype.readUInt32LE=function(e,t){return t||I(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},s.prototype.readUInt32BE=function(e,t){return t||I(e,4,this.
 length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},s.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var r=this[e],i=1,a=0;++a<t&&(i*=256);)r+=this[e+a]*i;return i*=128,r>=i&&(r-=Math.pow(2,8*t)),r},s.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var r=t,i=1,a=this[e+--r];r>0&&(i*=256);)a+=this[e+--r]*i;return i*=128,a>=i&&(a-=Math.pow(2,8*t)),a},s.prototype.readInt8=function(e,t){return t||I(e,1,this.length),128&this[e]?(255-this[e]+1)*-1:this[e]},s.prototype.readInt16LE=function(e,t){t||I(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},s.prototype.readInt16BE=function(e,t){t||I(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},s.prototype.readInt32LE=function(e,t){return t||I(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},s.prototype.readInt32BE=function(e,t){return t||I(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},s.prototyp
 e.readFloatLE=function(e,t){return t||I(e,4,this.length),Q.read(this,e,!0,23,4)},s.prototype.readFloatBE=function(e,t){return t||I(e,4,this.length),Q.read(this,e,!1,23,4)},s.prototype.readDoubleLE=function(e,t){return t||I(e,8,this.length),Q.read(this,e,!0,52,8)},s.prototype.readDoubleBE=function(e,t){return t||I(e,8,this.length),Q.read(this,e,!1,52,8)},s.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t|=0,n|=0,!r){N(this,e,t,n,Math.pow(2,8*n)-1,0)}var i=1,a=0;for(this[t]=255&e;++a<n&&(i*=256);)this[t+a]=e/i&255;return t+n},s.prototype.writeUIntBE=function(e,t,n,r){if(e=+e,t|=0,n|=0,!r){N(this,e,t,n,Math.pow(2,8*n)-1,0)}var i=n-1,a=1;for(this[t+i]=255&e;--i>=0&&(a*=256);)this[t+i]=e/a&255;return t+n},s.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,1,255,0),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},s.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,
 t,!0),t+2},s.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},s.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},s.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},s.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);N(this,e,t,n,i-1,-i)}var a=0,s=1,o=0;for(this[t]=255&e;++a<n&&(s*=256);)e<0&&0===o&&0!==this[t+a-1]&&(o=1),this[t+a]=(e/s>>0)-o&255;return t+n},s.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);N(this,e,t,n,i-1,-i)}var a=n-1,s=1,o=0;for(this[t+a]=255&e;--a>=0&&(s*=256);)e<0&&0===o&&0!==this[t+a+1]&&(o=1),this[t+a]=(e/s
 >>0)-o&255;return t+n},s.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,1,127,-128),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},s.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},s.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},s.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,2147483647,-2147483648),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},s.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},s.prototype.writeFloatLE=function(e,t,n){return U(this,e
 ,t,!0,n)},s.prototype.writeFloatBE=function(e,t,n){return U(this,e,t,!1,n)},s.prototype.writeDoubleLE=function(e,t,n){return V(this,e,t,!0,n)},s.prototype.writeDoubleBE=function(e,t,n){return V(this,e,t,!1,n)},s.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var i,a=r-n;if(this===e&&n<t&&t<r)for(i=a-1;i>=0;--i)e[i+t]=this[i+n];else if(a<1e3||!s.TYPED_ARRAY_SUPPORT)for(i=0;i<a;++i)e[i+t]=this[i+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+a),t);return a},s.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1
 ===e.length){var i=e.charCodeAt(0);i<256&&(e=i)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!s.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0);var a;if("number"==typeof e)for(a=t;a<n;++a)this[a]=e;else{var o=s.isBuffer(e)?e:X(new s(e,r).toString()),u=o.length;for(a=0;a<n-t;++a)this[a+t]=o[a%u]}return this};var te=/[^+\/0-9A-Za-z-_]/g}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"base64-js":5,ieee754:6,isarray:7}],5:[function(e,t,n){"use strict";function r(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function i(e){return 3*e.length/4-r(e)}function a(e){var t,n,i,a,s,o,u=e.length;s=r
 (e),o=new p(3*u/4-s),i=s>0?u-4:u;var l=0;for(t=0,n=0;t<i;t+=4,n+=3)a=c[e.charCodeAt(t)]<<18|c[e.charCodeAt(t+1)]<<12|c[e.charCodeAt(t+2)]<<6|c[e.charCodeAt(t+3)],o[l++]=a>>16&255,o[l++]=a>>8&255,o[l++]=255&a;return 2===s?(a=c[e.charCodeAt(t)]<<2|c[e.charCodeAt(t+1)]>>4,o[l++]=255&a):1===s&&(a=c[e.charCodeAt(t)]<<10|c[e.charCodeAt(t+1)]<<4|c[e.charCodeAt(t+2)]>>2,o[l++]=a>>8&255,o[l++]=255&a),o}function s(e){return l[e>>18&63]+l[e>>12&63]+l[e>>6&63]+l[63&e]}function o(e,t,n){for(var r,i=[],a=t;a<n;a+=3)r=(e[a]<<16)+(e[a+1]<<8)+e[a+2],i.push(s(r));return i.join("")}function u(e){for(var t,n=e.length,r=n%3,i="",a=[],s=16383,u=0,c=n-r;u<c;u+=s)a.push(o(e,u,u+s>c?c:u+s));return 1===r?(t=e[n-1],i+=l[t>>2],i+=l[t<<4&63],i+="=="):2===r&&(t=(e[n-2]<<8)+e[n-1],i+=l[t>>10],i+=l[t>>4&63],i+=l[t<<2&63],i+="="),a.push(i),a.join("")}n.byteLength=i,n.toByteArray=a,n.fromByteArray=u;for(var l=[],c=[],p="undefined"!=typeof Uint8Array?Uint8Array:Array,f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstu
 vwxyz0123456789+/",h=0,d=f.length;h<d;++h)l[h]=f[h],c[f.charCodeAt(h)]=h;c["-".charCodeAt(0)]=62,c["_".charCodeAt(0)]=63},{}],6:[function(e,t,n){n.read=function(e,t,n,r,i){var a,s,o=8*i-r-1,u=(1<<o)-1,l=u>>1,c=-7,p=n?i-1:0,f=n?-1:1,h=e[t+p];for(p+=f,a=h&(1<<-c)-1,h>>=-c,c+=o;c>0;a=256*a+e[t+p],p+=f,c-=8);for(s=a&(1<<-c)-1,a>>=-c,c+=r;c>0;s=256*s+e[t+p],p+=f,c-=8);if(0===a)a=1-l;else{if(a===u)return s?NaN:(h?-1:1)*(1/0);s+=Math.pow(2,r),a-=l}return(h?-1:1)*s*Math.pow(2,a-r)},n.write=function(e,t,n,r,i,a){var s,o,u,l=8*a-i-1,c=(1<<l)-1,p=c>>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:a-1,d=r?1:-1,y=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(o=isNaN(t)?1:0,s=c):(s=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-s))<1&&(s--,u*=2),t+=s+p>=1?f/u:f*Math.pow(2,1-p),t*u>=2&&(s++,u/=2),s+p>=c?(o=0,s=c):s+p>=1?(o=(t*u-1)*Math.pow(2,i),s+=p):(o=t*Math.pow(2,p-1)*Math.pow(2,i),s=0));i>=8;e[n+h]=255&o,h+=d,o/=256,i-=8);for(s=s<<i|o,l+=i;l>0;e[n+h]=255&s,h+=d,s/=256,l-=8);
 e[n+h-d]|=128*y}},{}],7:[function(e,t,n){var r={}.toString;t.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},{}],8:[function(e,t,n){function r(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function i(e){return"function"==typeof e}function a(e){return"number"==typeof e}function s(e){return"object"==typeof e&&null!==e}function o(e){return void 0===e}t.exports=r,r.EventEmitter=r,r.prototype._events=void 0,r.prototype._maxListeners=void 0,r.defaultMaxListeners=10,r.prototype.setMaxListeners=function(e){if(!a(e)||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},r.prototype.emit=function(e){var t,n,r,a,u,l;if(this._events||(this._events={}),"error"===e&&(!this._events.error||s(this._events.error)&&!this._events.error.length)){if(t=arguments[1],t instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}if(n=this._events[e],o(n))return!1;if
 (i(n))switch(arguments.length){case 1:n.call(this);break;case 2:n.call(this,arguments[1]);break;case 3:n.call(this,arguments[1],arguments[2]);break;default:a=Array.prototype.slice.call(arguments,1),n.apply(this,a)}else if(s(n))for(a=Array.prototype.slice.call(arguments,1),l=n.slice(),r=l.length,u=0;u<r;u++)l[u].apply(this,a);return!0},r.prototype.addListener=function(e,t){var n;if(!i(t))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,i(t.listener)?t.listener:t),this._events[e]?s(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t,s(this._events[e])&&!this._events[e].warned&&(n=o(this._maxListeners)?r.defaultMaxListeners:this._maxListeners,n&&n>0&&this._events[e].length>n&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._event
 s[e].length),"function"==typeof console.trace&&console.trace())),this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(e,t){function n(){this.removeListener(e,n),r||(r=!0,t.apply(this,arguments))}if(!i(t))throw TypeError("listener must be a function");var r=!1;return n.listener=t,this.on(e,n),this},r.prototype.removeListener=function(e,t){var n,r,a,o;if(!i(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(n=this._events[e],a=n.length,r=-1,n===t||i(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(s(n)){for(o=a;o-- >0;)if(n[o]===t||n[o].listener&&n[o].listener===t){r=o;break}if(r<0)return this;1===n.length?(n.length=0,delete this._events[e]):n.splice(r,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},r.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===
 arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(n=this._events[e],i(n))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},r.prototype.listeners=function(e){return this._events&&this._events[e]?i(this._events[e])?[this._events[e]]:this._events[e].slice():[]},r.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(i(t))return 1;if(t)return t.length}return 0},r.listenerCount=function(e,t){return e.listenerCount(t)}},{}],9:[function(e,t,n){"function"==typeof Object.create?t.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototyp
 e=new n,e.prototype.constructor=e}},{}],10:[function(e,t,n){function r(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function i(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&r(e.slice(0,0))}t.exports=function(e){return null!=e&&(r(e)||i(e)||!!e._isBuffer)}},{}],11:[function(e,t,n){n.endianness=function(){return"LE"},n.hostname=function(){return"undefined"!=typeof location?location.hostname:""},n.loadavg=function(){return[]},n.uptime=function(){return 0},n.freemem=function(){return Number.MAX_VALUE},n.totalmem=function(){return Number.MAX_VALUE},n.cpus=function(){return[]},n.type=function(){return"Browser"},n.release=function(){return"undefined"!=typeof navigator?navigator.appVersion:""},n.networkInterfaces=n.getNetworkInterfaces=function(){return{}},n.arch=function(){return"javascript"},n.platform=function(){return"browser"},n.tmpdir=n.tmpDir=function(){return"/tmp"},n.EOL="\n"},{}],12:[function(e,t,n){(functi
 on(e){function t(e,t){for(var n=0,r=e.length-1;r>=0;r--){var i=e[r];"."===i?e.splice(r,1):".."===i?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function r(e,t){if(e.filter)return e.filter(t);for(var n=[],r=0;r<e.length;r++)t(e[r],r,e)&&n.push(e[r]);return n}var i=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,a=function(e){return i.exec(e).slice(1)};n.resolve=function(){for(var n="",i=!1,a=arguments.length-1;a>=-1&&!i;a--){var s=a>=0?arguments[a]:e.cwd();if("string"!=typeof s)throw new TypeError("Arguments to path.resolve must be strings");s&&(n=s+"/"+n,i="/"===s.charAt(0))}return n=t(r(n.split("/"),function(e){return!!e}),!i).join("/"),(i?"/":"")+n||"."},n.normalize=function(e){var i=n.isAbsolute(e),a="/"===s(e,-1);return e=t(r(e.split("/"),function(e){return!!e}),!i).join("/"),e||i||(e="."),e&&a&&(e+="/"),(i?"/":"")+e},n.isAbsolute=function(e){return"/"===e.charAt(0)},n.join=function(){var e=Array.prototype.slice.call(argumen
 ts,0);return n.normalize(r(e,function(e,t){
-if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},n.relative=function(e,t){function r(e){for(var t=0;t<e.length&&""===e[t];t++);for(var n=e.length-1;n>=0&&""===e[n];n--);return t>n?[]:e.slice(t,n-t+1)}e=n.resolve(e).substr(1),t=n.resolve(t).substr(1);for(var i=r(e.split("/")),a=r(t.split("/")),s=Math.min(i.length,a.length),o=s,u=0;u<s;u++)if(i[u]!==a[u]){o=u;break}for(var l=[],u=o;u<i.length;u++)l.push("..");return l=l.concat(a.slice(o)),l.join("/")},n.sep="/",n.delimiter=":",n.dirname=function(e){var t=a(e),n=t[0],r=t[1];return n||r?(r&&(r=r.substr(0,r.length-1)),n+r):"."},n.basename=function(e,t){var n=a(e)[2];return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},n.extname=function(e){return a(e)[3]};var s="b"==="ab".substr(-1)?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return t<0&&(t=e.length+t),e.substr(t,n)}}).call(this,e("_process"))},{_process:13}],13:[function(e,t,n){function r(){throw ne
 w Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function a(e){if(p===setTimeout)return setTimeout(e,0);if((p===r||!p)&&setTimeout)return p=setTimeout,setTimeout(e,0);try{return p(e,0)}catch(t){try{return p.call(null,e,0)}catch(t){return p.call(this,e,0)}}}function s(e){if(f===clearTimeout)return clearTimeout(e);if((f===i||!f)&&clearTimeout)return f=clearTimeout,clearTimeout(e);try{return f(e)}catch(t){try{return f.call(null,e)}catch(t){return f.call(this,e)}}}function o(){m&&d&&(m=!1,d.length?y=d.concat(y):b=-1,y.length&&u())}function u(){if(!m){var e=a(o);m=!0;for(var t=y.length;t;){for(d=y,y=[];++b<t;)d&&d[b].run();b=-1,t=y.length}d=null,m=!1,s(e)}}function l(e,t){this.fun=e,this.array=t}function c(){}var p,f,h=t.exports={};!function(){try{p="function"==typeof setTimeout?setTimeout:r}catch(e){p=r}try{f="function"==typeof clearTimeout?clearTimeout:i}catch(e){f=i}}();var d,y=[],m=!1,b=-1;h.nextTick=function(e){var t=new Ar
 ray(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];y.push(new l(e,t)),1!==y.length||m||a(u)},l.prototype.run=function(){this.fun.apply(null,this.array)},h.title="browser",h.browser=!0,h.env={},h.argv=[],h.version="",h.versions={},h.on=c,h.addListener=c,h.once=c,h.off=c,h.removeListener=c,h.removeAllListeners=c,h.emit=c,h.binding=function(e){throw new Error("process.binding is not supported")},h.cwd=function(){return"/"},h.chdir=function(e){throw new Error("process.chdir is not supported")},h.umask=function(){return 0}},{}],14:[function(e,t,n){t.exports=e("./lib/_stream_duplex.js")},{"./lib/_stream_duplex.js":15}],15:[function(e,t,n){"use strict";function r(e){if(!(this instanceof r))return new r(e);l.call(this,e),c.call(this,e),e&&e.readable===!1&&(this.readable=!1),e&&e.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,e&&e.allowHalfOpen===!1&&(this.allowHalfOpen=!1),this.once("end",i)}function i(){this.allowHalfOpen||this._wr
 itableState.ended||o(a,this)}function a(e){e.end()}var s=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};t.exports=r;var o=e("process-nextick-args"),u=e("core-util-is");u.inherits=e("inherits");var l=e("./_stream_readable"),c=e("./_stream_writable");u.inherits(r,l);for(var p=s(c.prototype),f=0;f<p.length;f++){var h=p[f];r.prototype[h]||(r.prototype[h]=c.prototype[h])}},{"./_stream_readable":17,"./_stream_writable":19,"core-util-is":22,inherits:9,"process-nextick-args":24}],16:[function(e,t,n){"use strict";function r(e){if(!(this instanceof r))return new r(e);i.call(this,e)}t.exports=r;var i=e("./_stream_transform"),a=e("core-util-is");a.inherits=e("inherits"),a.inherits(r,i),r.prototype._transform=function(e,t,n){n(null,e)}},{"./_stream_transform":18,"core-util-is":22,inherits:9}],17:[function(e,t,n){(function(n){"use strict";function r(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?P(e._events[t])?e._events[
 t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}function i(t,n){F=F||e("./_stream_duplex"),t=t||{},this.objectMode=!!t.objectMode,n instanceof F&&(this.objectMode=this.objectMode||!!t.readableObjectMode);var r=t.highWaterMark,i=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:i,this.highWaterMark=~~this.highWaterMark,this.buffer=new U,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(R||(R=e("string_decoder/").StringDecoder),this.decoder=new R(t.encoding),this.encoding=t.encoding)}function a(t){if(F=F||e("./_stream_duplex"),!(this instanceof a))return new a(t);this._readableState=new i(t,this),this.readable=!0,t&&"function"==typeof t.read&&(this._read=t.
 read),j.call(this)}function s(e,t,n,r,i){var a=c(t,n);if(a)e.emit("error",a);else if(null===n)t.reading=!1,p(e,t);else if(t.objectMode||n&&n.length>0)if(t.ended&&!i){var s=new Error("stream.push() after EOF");e.emit("error",s)}else if(t.endEmitted&&i){var u=new Error("stream.unshift() after end event");e.emit("error",u)}else{var l;!t.decoder||i||r||(n=t.decoder.write(n),l=!t.objectMode&&0===n.length),i||(t.reading=!1),l||(t.flowing&&0===t.length&&!t.sync?(e.emit("data",n),e.read(0)):(t.length+=t.objectMode?1:n.length,i?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&f(e))),d(e,t)}else i||(t.reading=!1);return o(t)}function o(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||0===e.length)}function u(e){return e>=V?e=V:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function l(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=u(e)),e<=t.length?e:t.ended?t
 .length:(t.needReadable=!0,0))}function c(e,t){var n=null;return O.isBuffer(t)||"string"==typeof t||null===t||void 0===t||e.objectMode||(n=new TypeError("Invalid non-string/buffer chunk")),n}function p(e,t){if(!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,f(e)}}function f(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(M("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?T(h,e):h(e))}function h(e){M("emit readable"),e.emit("readable"),x(e)}function d(e,t){t.readingMore||(t.readingMore=!0,T(y,e,t))}function y(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(M("maybeReadMore read 0"),e.read(0),n!==t.length);)n=t.length;t.readingMore=!1}function m(e){return function(){var t=e._readableState;M("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&B(e,"data")&&(t.flowing=!0,x(e))}}function b(e){M("readable nexttick read 0"),e.read(0)}fun
 ction g(e,t){t.resumeScheduled||(t.resumeScheduled=!0,T(v,e,t))}function v(e,t){t.reading||(M("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),x(e),t.flowing&&!t.reading&&e.read(0)}function x(e){var t=e._readableState;for(M("flow",t.flowing);t.flowing&&null!==e.read(););}function _(e,t){if(0===t.length)return null;var n;return t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=E(e,t.buffer,t.decoder),n}function E(e,t,n){var r;return e<t.head.data.length?(r=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):r=e===t.head.data.length?t.shift():n?A(e,t):D(e,t),r}function A(e,t){var n=t.head,r=1,i=n.data;for(e-=i.length;n=n.next;){var a=n.data,s=e>a.length?a.length:e;if(i+=s===a.length?a:a.slice(0,e),e-=s,0===e){s===a.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=a.slice(s));break}++r}return t.length-=r,i}function D
 (e,t){var n=I.allocUnsafe(e),r=t.head,i=1;for(r.data.copy(n),e-=r.data.length;r=r.next;){var a=r.data,s=e>a.length?a.length:e;if(a.copy(n,n.length-e,0,s),e-=s,0===e){s===a.length?(++i,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=a.slice(s));break}++i}return t.length-=i,n}function C(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,T(S,t,e))}function S(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function w(e,t){for(var n=0,r=e.length;n<r;n++)t(e[n],n)}function k(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}t.exports=a;var F,T=e("process-nextick-args"),P=e("isarray");a.ReadableState=i;var j,B=(e("events").EventEmitter,function(e,t){return e.listeners(t).length});!function(){try{j=e("stream")}catch(e){}finally{j||(j=e("events").EventEmitter)}}();var O=e("buffer").Buffer,I=e("buffer-shims"),N=e("core-util-is");N.inherits=e("inherits");var L=e
 ("util"),M=void 0;M=L&&L.debuglog?L.debuglog("stream"):function(){};var R,U=e("./internal/streams/BufferList");N.inherits(a,j),a.prototype.push=function(e,t){var n=this._readableState;return n.objectMode||"string"!=typeof e||(t=t||n.defaultEncoding,t!==n.encoding&&(e=I.from(e,t),t="")),s(this,n,e,t,!1)},a.prototype.unshift=function(e){return s(this,this._readableState,e,"",!0)},a.prototype.isPaused=function(){return this._readableState.flowing===!1},a.prototype.setEncoding=function(t){return R||(R=e("string_decoder/").StringDecoder),this._readableState.decoder=new R(t),this._readableState.encoding=t,this};var V=8388608;a.prototype.read=function(e){M("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return M("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?C(this):f(this),null;if(e=l(e,t),0===e&&t.ended)return 0===t.length&&C(this),null;var r=t.needReadable;M("need readable
 ",r),(0===t.length||t.length-e<t.highWaterMark)&&(r=!0,M("length less than watermark",r)),t.ended||t.reading?(r=!1,M("reading or ended",r)):r&&(M("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=l(n,t)));var i;return i=e>0?_(e,t):null,null===i?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&C(this)),null!==i&&this.emit("data",i),i},a.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},a.prototype.pipe=function(e,t){function i(e){M("onunpipe"),e===f&&s()}function a(){M("onend"),e.end()}function s(){M("cleanup"),e.removeListener("close",l),e.removeListener("finish",c),e.removeListener("drain",b),e.removeListener("error",u),e.removeListener("unpipe",i),f.removeListener("end",a),f.removeListener("end",s),f.removeListener("data",o),g=!0,!h.awaitDrain||e._writableState&&!e._writableState.needDrain||b()}function o(t){M("ondata"),v=!1,!1!
 ==e.write(t)||v||((1===h.pipesCount&&h.pipes===e||h.pipesCount>1&&k(h.pipes,e)!==-1)&&!g&&(M("false write response, pause",f._readableState.awaitDrain),f._readableState.awaitDrain++,v=!0),f.pause())}function u(t){M("onerror",t),p(),e.removeListener("error",u),0===B(e,"error")&&e.emit("error",t)}function l(){e.removeListener("finish",c),p()}function c(){M("onfinish"),e.removeListener("close",l),p()}function p(){M("unpipe"),f.unpipe(e)}var f=this,h=this._readableState;switch(h.pipesCount){case 0:h.pipes=e;break;case 1:h.pipes=[h.pipes,e];break;default:h.pipes.push(e)}h.pipesCount+=1,M("pipe count=%d opts=%j",h.pipesCount,t);var d=(!t||t.end!==!1)&&e!==n.stdout&&e!==n.stderr,y=d?a:s;h.endEmitted?T(y):f.once("end",y),e.on("unpipe",i);var b=m(f);e.on("drain",b);var g=!1,v=!1;return f.on("data",o),r(e,"error",u),e.once("close",l),e.once("finish",c),e.emit("pipe",f),h.flowing||(M("pipe resume"),f.resume()),e},a.prototype.unpipe=function(e){var t=this._readableState;if(0===t.pipesCount)retu
 rn this;if(1===t.pipesCount)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this),this);if(!e){var n=t.pipes,r=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i<r;i++)n[i].emit("unpipe",this);return this}var a=k(t.pipes,e);return a===-1?this:(t.pipes.splice(a,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this),this)},a.prototype.on=function(e,t){var n=j.prototype.on.call(this,e,t);if("data"===e)this._readableState.flowing!==!1&&this.resume();else if("readable"===e){var r=this._readableState;r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.emittedReadable=!1,r.reading?r.length&&f(this,r):T(b,this))}return n},a.prototype.addListener=a.prototype.on,a.prototype.resume=function(){var e=this._readableState;return e.flowing||(M("resume"),e.flowing=!0,g(this,e)),this},a.prototype.pause=function(){return M("call pause flowing=%j",this._readableState.flowing),!1!==th
 is._readableState.flowing&&(M("pause"),this._readableState.flowing=!1,this.emit("pause")),this},a.prototype.wrap=function(e){var t=this._readableState,n=!1,r=this;e.on("end",function(){if(M("wrapped end"),t.decoder&&!t.ended){var e=t.decoder.end();e&&e.length&&r.push(e)}r.push(null)}),e.on("data",function(i){if(M("wrapped data"),t.decoder&&(i=t.decoder.write(i)),(!t.objectMode||null!==i&&void 0!==i)&&(t.objectMode||i&&i.length)){r.push(i)||(n=!0,e.pause())}});for(var i in e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));return w(["error","close","destroy","pause","resume"],function(t){e.on(t,r.emit.bind(r,t))}),r._read=function(t){M("wrapped _read",t),n&&(n=!1,e.resume())},r},a._fromList=_}).call(this,e("_process"))},{"./_stream_duplex":15,"./internal/streams/BufferList":20,_process:13,buffer:4,"buffer-shims":21,"core-util-is":22,events:8,inherits:9,isarray:23,"process-nextick-args":24,"string_decoder/":31,util:
 3}],18:[function(e,t,n){"use strict";function r(e){this.afterTransform=function(t,n){return i(e,t,n)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null,this.writeencoding=null}function i(e,t,n){var r=e._transformState;r.transforming=!1;var i=r.writecb;if(!i)return e.emit("error",new Error("no writecb in Transform class"));r.writechunk=null,r.writecb=null,null!==n&&void 0!==n&&e.push(n),i(t);var a=e._readableState;a.reading=!1,(a.needReadable||a.length<a.highWaterMark)&&e._read(a.highWaterMark)}function a(e){if(!(this instanceof a))return new a(e);o.call(this,e),this._transformState=new r(this);var t=this;this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.once("prefinish",function(){"function"==typeof this._flush?this._flush(function(e,n){s(t,e,n)}):s(t)})}function s(e,t,n){if(t)return e.emit("error",t);null!==n&&void 0
 !==n&&e.push(n);var r=e._writableState,i=e._transformState;if(r.length)throw new Error("Calling transform done when ws.length != 0");if(i.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}t.exports=a;var o=e("./_stream_duplex"),u=e("core-util-is");u.inherits=e("inherits"),u.inherits(a,o),a.prototype.push=function(e,t){return this._transformState.needTransform=!1,o.prototype.push.call(this,e,t)},a.prototype._transform=function(e,t,n){throw new Error("_transform() is not implemented")},a.prototype._write=function(e,t,n){var r=this._transformState;if(r.writecb=n,r.writechunk=e,r.writeencoding=t,!r.transforming){var i=this._readableState;(r.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},a.prototype._read=function(e){var t=this._transformState;null!==t.writechunk&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0}},{"./_s
 tream_duplex":15,"core-util-is":22,inherits:9}],19:[function(e,t,n){(function(n){"use strict";function r(){}function i(e,t,n){this.chunk=e,this.encoding=t,this.callback=n,this.next=null}function a(t,n){A=A||e("./_stream_duplex"),t=t||{},this.objectMode=!!t.objectMode,n instanceof A&&(this.objectMode=this.objectMode||!!t.writableObjectMode);var r=t.highWaterMark,i=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:i,this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1;var a=t.decodeStrings===!1;this.decodeStrings=!a,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){d(n,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new E(this)}function s(t){if(A=A||e("./_stream_duplex"),!(P
 .call(s,this)||this instanceof A))return new s(t);this._writableState=new a(t,this),this.writable=!0,t&&("function"==typeof t.write&&(this._write=t.write),"function"==typeof t.writev&&(this._writev=t.writev)),w.call(this)}function o(e,t){var n=new Error("write after end");e.emit("error",n),D(t,n)}function u(e,t,n,r){var i=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):F.isBuffer(n)||"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),D(r,a),i=!1),i}function l(e,t,n){return e.objectMode||e.decodeStrings===!1||"string"!=typeof t||(t=T.from(t,n)),t}function c(e,t,n,r,a){n=l(t,n,r),F.isBuffer(n)&&(r="buffer");var s=t.objectMode?1:n.length;t.length+=s;var o=t.length<t.highWaterMark;if(o||(t.needDrain=!0),t.writing||t.corked){var u=t.lastBufferedRequest;t.lastBufferedRequest=new i(n,r,a),u?u.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else p
 (e,t,!1,s,n,r,a);return o}function p(e,t,n,r,i,a,s){t.writelen=r,t.writecb=s,t.writing=!0,t.sync=!0,n?e._writev(i,t.onwrite):e._write(i,a,t.onwrite),t.sync=!1}function f(e,t,n,r,i){--t.pendingcb,n?D(i,r):i(r),e._writableState.errorEmitted=!0,e.emit("error",r)}function h(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}function d(e,t){var n=e._writableState,r=n.sync,i=n.writecb;if(h(n),t)f(e,n,r,t,i);else{var a=g(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||b(e,n),r?C(y,e,n,a,i):y(e,n,a,i)}}function y(e,t,n,r){n||m(e,t),t.pendingcb--,r(),x(e,t)}function m(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}function b(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,i=new Array(r),a=t.corkedRequestsFree;a.entry=n;for(var s=0;n;)i[s]=n,n=n.next,s+=1;p(e,t,!0,t.length,i,"",a.finish),t.pendingcb++,t.lastBufferedRequest=null,a.next?(t.corkedRequestsFree=a.next,a.next=null):t.corkedRequestsFree=
 new E(t)}else{for(;n;){var o=n.chunk,u=n.encoding,l=n.callback;if(p(e,t,!1,t.objectMode?1:o.length,o,u,l),n=n.next,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequestCount=0,t.bufferedRequest=n,t.bufferProcessing=!1}function g(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function v(e,t){t.prefinished||(t.prefinished=!0,e.emit("prefinish"))}function x(e,t){var n=g(t);return n&&(0===t.pendingcb?(v(e,t),t.finished=!0,e.emit("finish")):v(e,t)),n}function _(e,t,n){t.ending=!0,x(e,t),n&&(t.finished?D(n):e.once("finish",n)),t.ended=!0,e.writable=!1}function E(e){var t=this;this.next=null,this.entry=null,this.finish=function(n){var r=t.entry;for(t.entry=null;r;){var i=r.callback;e.pendingcb--,i(n),r=r.next}e.corkedRequestsFree?e.corkedRequestsFree.next=t:e.corkedRequestsFree=t}}t.exports=s;var A,D=e("process-nextick-args"),C=!n.browser&&["v0.10","v0.9."].indexOf(n.version.slice(0,5))>-1?setImmediate:D;s.WritableState=a;var S=e("cor
 e-util-is");S.inherits=e("inherits");var w,k={deprecate:e("util-deprecate")};!function(){try{w=e("stream")}catch(e){}finally{w||(w=e("events").EventEmitter)}}();var F=e("buffer").Buffer,T=e("buffer-shims");S.inherits(s,w),a.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(a.prototype,"buffer",{get:k.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.")})}catch(e){}}();var P;"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(P=Function.prototype[Symbol.hasInstance],Object.defineProperty(s,Symbol.hasInstance,{value:function(e){return!!P.call(this,e)||e&&e._writableState instanceof a}})):P=function(e){return e instanceof this},s.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},s.prototype.write=function(e,t,n){var i=this._writableState,a=!1;r
 eturn"function"==typeof t&&(n=t,t=null),F.isBuffer(e)?t="buffer":t||(t=i.defaultEncoding),"function"!=typeof n&&(n=r),i.ended?o(this,n):u(this,i,e,n)&&(i.pendingcb++,a=c(this,i,e,t,n)),a},s.prototype.cork=function(){this._writableState.corked++},s.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||b(this,e))},s.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},s.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},s.prototype._writev=null,s.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!==e&&void 0!==e&&this.write(e,t),r.c
 orked&&(r.corked=1,this.uncork()),r.ending||r.finished||_(this,r,n)}}).call(this,e("_process"))},{"./_stream_duplex":15,_process:13,buffer:4,"buffer-shims":21,"core-util-is":22,events:8,inherits:9,"process-nextick-args":24,"util-deprecate":25}],20:[function(e,t,n){"use strict";function r(){this.head=null,this.tail=null,this.length=0}var i=(e("buffer").Buffer,e("buffer-shims"));t.exports=r,r.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},r.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},r.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},r.prototype.clear=function(){this.head=this.tail=null,this.length=0},r.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n},r.prototyp
 e.concat=function(e){if(0===this.length)return i.alloc(0);if(1===this.length)return this.head.data;for(var t=i.allocUnsafe(e>>>0),n=this.head,r=0;n;)n.data.copy(t,r),r+=n.data.length,n=n.next;return t}},{buffer:4,"buffer-shims":21}],21:[function(e,t,n){(function(t){"use strict";var r=e("buffer"),i=r.Buffer,a=r.SlowBuffer,s=r.kMaxLength||2147483647;n.alloc=function(e,t,n){if("function"==typeof i.alloc)return i.alloc(e,t,n);if("number"==typeof n)throw new TypeError("encoding must not be number");if("number"!=typeof e)throw new TypeError("size must be a number");if(e>s)throw new RangeError("size is too large");var r=n,a=t;void 0===a&&(r=void 0,a=0);var o=new i(e);if("string"==typeof a)for(var u=new i(a,r),l=u.length,c=-1;++c<e;)o[c]=u[c%l];else o.fill(a);return o},n.allocUnsafe=function(e){if("function"==typeof i.allocUnsafe)return i.allocUnsafe(e);if("number"!=typeof e)throw new TypeError("size must be a number");if(e>s)throw new RangeError("size is too large");return new i(e)},n.from
 =function(e,n,r){if("function"==typeof i.from&&(!t.Uint8Array||Uint8Array.from!==i.from))return i.from(e,n,r);if("number"==typeof e)throw new TypeError('"value" argument must not be a number');if("string"==typeof e)return new i(e,n);if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer){var a=n;if(1===arguments.length)return new i(e);void 0===a&&(a=0);var s=r;if(void 0===s&&(s=e.byteLength-a),a>=e.byteLength)throw new RangeError("'offset' is out of bounds");if(s>e.byteLength-a)throw new RangeError("'length' is out of bounds");return new i(e.slice(a,a+s))}if(i.isBuffer(e)){var o=new i(e.length);return e.copy(o,0,0,e.length),o}if(e){if(Array.isArray(e)||"undefined"!=typeof ArrayBuffer&&e.buffer instanceof ArrayBuffer||"length"in e)return new i(e);if("Buffer"===e.type&&Array.isArray(e.data))return new i(e.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")},n.allocUnsafeSlow=function(e){if("function"==typeof i.allocUnsa
 feSlow)return i.allocUnsafeSlow(e);if("number"!=typeof e)throw new TypeError("size must be a number");if(e>=s)throw new RangeError("size is too large");return new a(e)}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{buffer:4}],22:[function(e,t,n){(function(e){function t(e){return Array.isArray?Array.isArray(e):"[object Array]"===m(e)}function r(e){return"boolean"==typeof e}function i(e){return null===e}function a(e){return null==e}function s(e){return"number"==typeof e}function o(e){return"string"==typeof e}function u(e){return"symbol"==typeof e}function l(e){return void 0===e}function c(e){return"[object RegExp]"===m(e)}function p(e){return"object"==typeof e&&null!==e}function f(e){return"[object Date]"===m(e)}function h(e){return"[object Error]"===m(e)||e instanceof Error}function d(e){return"function"==typeof e}function y(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==
 typeof e||void 0===e}function m(e){return Object.prototype.toString.call(e)}n.isArray=t,n.isBoolean=r,n.isNull=i,n.isNullOrUndefined=a,n.isNumber=s,n.isString=o,n.isSymbol=u,n.isUndefined=l,n.isRegExp=c,n.isObject=p,n.isDate=f,n.isError=h,n.isFunction=d,n.isPrimitive=y,n.isBuffer=e.isBuffer}).call(this,{isBuffer:e("../../../../insert-module-globals/node_modules/is-buffer/index.js")})},{"../../../../insert-module-globals/node_modules/is-buffer/index.js":10}],23:[function(e,t,n){arguments[4][7][0].apply(n,arguments)},{dup:7}],24:[function(e,t,n){(function(e){"use strict";function n(t,n,r,i){if("function"!=typeof t)throw new TypeError('"callback" argument must be a function');var a,s,o=arguments.length;switch(o){case 0:case 1:return e.nextTick(t);case 2:return e.nextTick(function(){t.call(null,n)});case 3:return e.nextTick(function(){t.call(null,n,r)});case 4:return e.nextTick(function(){t.call(null,n,r,i)});default:for(a=new Array(o-1),s=0;s<a.length;)a[s++]=arguments[s];return e.next
 Tick(function(){t.apply(null,a)})}}!e.version||0===e.version.indexOf("v0.")||0===e.version.indexOf("v1.")&&0!==e.version.indexOf("v1.8.")?t.exports=n:t.exports=e.nextTick}).call(this,e("_process"))},{_process:13}],25:[function(e,t,n){(function(e){function n(e,t){function n(){if(!i){if(r("throwDeprecation"))throw new Error(t);r("traceDeprecation")?console.trace(t):console.warn(t),i=!0}return e.apply(this,arguments)}if(r("noDeprecation"))return e;var i=!1;return n}function r(t){try{if(!e.localStorage)return!1}catch(e){return!1}var n=e.localStorage[t];return null!=n&&"true"===String(n).toLowerCase()}t.exports=n}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],26:[function(e,t,n){t.exports=e("./lib/_stream_passthrough.js")},{"./lib/_stream_passthrough.js":16}],27:[function(e,t,n){(function(r){var i=function(){try{return e("stream")}catch(e){}}();n=t.exports=e("./lib/_stream_readable.js"),n.Stream=i||n,n.Readable=n,n.W
 ritable=e("./lib/_stream_writable.js"),n.Duplex=e("./lib/_stream_duplex.js"),n.Transform=e("./lib/_stream_transform.js"),n.PassThrough=e("./lib/_stream_passthrough.js"),!r.browser&&"disable"===r.env.READABLE_STREAM&&i&&(t.exports=i)}).call(this,e("_process"))},{"./lib/_stream_duplex.js":15,"./lib/_stream_passthrough.js":16,"./lib/_stream_readable.js":17,"./lib/_stream_transform.js":18,"./lib/_stream_writable.js":19,_process:13}],28:[function(e,t,n){t.exports=e("./lib/_stream_transform.js")},{"./lib/_stream_transform.js":18}],29:[function(e,t,n){t.exports=e("./lib/_stream_writable.js")},{"./lib/_stream_writable.js":19}],30:[function(e,t,n){function r(){i.call(this)}t.exports=r;var i=e("events").EventEmitter;e("inherits")(r,i),r.Readable=e("readable-stream/readable.js"),r.Writable=e("readable-stream/writable.js"),r.Duplex=e("readable-stream/duplex.js"),r.Transform=e("readable-stream/transform.js"),r.PassThrough=e("readable-stream/passthrough.js"),r.Stream=r,r.prototype.pipe=function(e
 ,t){function n(t){e.writable&&!1===e.write(t)&&l.pause&&l.pause()}function r(){l.readable&&l.resume&&l.resume()}function a(){c||(c=!0,e.end())}function s(){c||(c=!0,"function"==typeof e.destroy&&e.destroy())}function o(e){if(u(),0===i.listenerCount(this,"error"))throw e}function u(){l.removeListener("data",n),e.removeListener("drain",r),l.removeListener("end",a),l.removeListener("close",s),l.removeListener("error",o),e.removeListener("error",o),l.removeListener("end",u),l.removeListener("close",u),e.removeListener("close",u)}var l=this;l.on("data",n),e.on("drain",r),e._isStdio||t&&t.end===!1||(l.on("end",a),l.on("close",s));var c=!1;return l.on("error",o),e.on("error",o),l.on("end",u),l.on("close",u),e.on("close",u),e.emit("pipe",l),e}},{events:8,inherits:9,"readable-stream/duplex.js":14,"readable-stream/passthrough.js":26,"readable-stream/readable.js":27,"readable-stream/transform.js":28,"readable-stream/writable.js":29}],31:[function(e,t,n){function r(e){if(e&&!u(e))throw new Erro
 r("Unknown encoding: "+e)}function i(e){return e.toString(this.encoding)}function a(e){this.charReceived=e.length%2,this.charLength=this.charReceived?2:0}function s(e){this.charReceived=e.length%3,this.charLength=this.charReceived?3:0}var o=e("buffer").Buffer,u=o.isEncoding||function(e){switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}},l=n.StringDecoder=function(e){switch(this.encoding=(e||"utf8").toLowerCase().replace(/[-_]/,""),r(e),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=a;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=s;break;default:return void(this.write=i)}this.charBuffer=new o(6),this.charReceived=0,this.charLength=0};l.prototype.write=function(e){for(var t="";this.charLength;){var n=e.length>=this.charLength-this.charReceived?this.charL
 ength-this.charReceived:e.length;if(e.copy(this.charBuffer,this.charReceived,0,n),this.charReceived+=n,this.charReceived<this.charLength)return"";e=e.slice(n,e.length),t=this.charBuffer.slice(0,this.charLength).toString(this.encoding);var r=t.charCodeAt(t.length-1);if(!(r>=55296&&r<=56319)){if(this.charReceived=this.charLength=0,0===e.length)return t;break}this.charLength+=this.surrogateSize,t=""}this.detectIncompleteChar(e);var i=e.length;this.charLength&&(e.copy(this.charBuffer,0,e.length-this.charReceived,i),i-=this.charReceived),t+=e.toString(this.encoding,0,i);var i=t.length-1,r=t.charCodeAt(i);if(r>=55296&&r<=56319){var a=this.surrogateSize;return this.charLength+=a,this.charReceived+=a,this.charBuffer.copy(this.charBuffer,a,0,a),e.copy(this.charBuffer,0,0,a),t.substring(0,i)}return t},l.prototype.detectIncompleteChar=function(e){for(var t=e.length>=3?3:e.length;t>0;t--){var n=e[e.length-t];if(1==t&&n>>5==6){this.charLength=2;break}if(t<=2&&n>>4==14){this.charLength=3;break}if
 (t<=3&&n>>3==30){this.charLength=4;break}}this.charReceived=t},l.prototype.end=function(e){
-var t="";if(e&&e.length&&(t=this.write(e)),this.charReceived){var n=this.charReceived,r=this.charBuffer,i=this.encoding;t+=r.slice(0,n).toString(i)}return t}},{buffer:4}],32:[function(e,t,n){function r(){throw new Error("tty.ReadStream is not implemented")}function i(){throw new Error("tty.ReadStream is not implemented")}n.isatty=function(){return!1},n.ReadStream=r,n.WriteStream=i},{}],33:[function(e,t,n){arguments[4][9][0].apply(n,arguments)},{dup:9}],34:[function(e,t,n){t.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},{}],35:[function(e,t,n){(function(t,r){function i(e,t){var r={seen:[],stylize:s};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),y(t)?r.showHidden=t:t&&n._extend(r,t),_(r.showHidden)&&(r.showHidden=!1),_(r.depth)&&(r.depth=2),_(r.colors)&&(r.colors=!1),_(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=a),u(r,e,r.depth)}
 function a(e,t){var n=i.styles[t];return n?"["+i.colors[n][0]+"m"+e+"["+i.colors[n][1]+"m":e}function s(e,t){return e}function o(e){var t={};return e.forEach(function(e,n){t[e]=!0}),t}function u(e,t,r){if(e.customInspect&&t&&S(t.inspect)&&t.inspect!==n.inspect&&(!t.constructor||t.constructor.prototype!==t)){var i=t.inspect(r,e);return v(i)||(i=u(e,i,r)),i}var a=l(e,t);if(a)return a;var s=Object.keys(t),y=o(s);if(e.showHidden&&(s=Object.getOwnPropertyNames(t)),C(t)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return c(t);if(0===s.length){if(S(t)){var m=t.name?": "+t.name:"";return e.stylize("[Function"+m+"]","special")}if(E(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(D(t))return e.stylize(Date.prototype.toString.call(t),"date");if(C(t))return c(t)}var b="",g=!1,x=["{","}"];if(d(t)&&(g=!0,x=["[","]"]),S(t)){b=" [Function"+(t.name?": "+t.name:"")+"]"}if(E(t)&&(b=" "+RegExp.prototype.toString.call(t)),D(t)&&(b=" "+Date.prototype.toUTCString.call(t)),C
 (t)&&(b=" "+c(t)),0===s.length&&(!g||0==t.length))return x[0]+b+x[1];if(r<0)return E(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special");e.seen.push(t);var _;return _=g?p(e,t,r,y,s):s.map(function(n){return f(e,t,r,y,n,g)}),e.seen.pop(),h(_,b,x)}function l(e,t){if(_(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return g(t)?e.stylize(""+t,"number"):y(t)?e.stylize(""+t,"boolean"):m(t)?e.stylize("null","null"):void 0}function c(e){return"["+Error.prototype.toString.call(e)+"]"}function p(e,t,n,r,i){for(var a=[],s=0,o=t.length;s<o;++s)P(t,String(s))?a.push(f(e,t,n,r,String(s),!0)):a.push("");return i.forEach(function(i){i.match(/^\d+$/)||a.push(f(e,t,n,r,i,!0))}),a}function f(e,t,n,r,i,a){var s,o,l;if(l=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]},l.get?o=l.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Gette
 r]","special"):l.set&&(o=e.stylize("[Setter]","special")),P(r,i)||(s="["+i+"]"),o||(e.seen.indexOf(l.value)<0?(o=m(n)?u(e,l.value,null):u(e,l.value,n-1),o.indexOf("\n")>-1&&(o=a?o.split("\n").map(function(e){return"  "+e}).join("\n").substr(2):"\n"+o.split("\n").map(function(e){return"   "+e}).join("\n"))):o=e.stylize("[Circular]","special")),_(s)){if(a&&i.match(/^\d+$/))return o;s=JSON.stringify(""+i),s.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+o}function h(e,t,n){var r=0;return e.reduce(function(e,t){return r++,t.indexOf("\n")>=0&&r++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n  ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}function d(e){return Array.isArray(e)}function y(e){return"boolean"==typeof e}function m(e){return null===e}function b(e){return null==e}function g(e){return"number
 "==typeof e}function v(e){return"string"==typeof e}function x(e){return"symbol"==typeof e}function _(e){return void 0===e}function E(e){return A(e)&&"[object RegExp]"===k(e)}function A(e){return"object"==typeof e&&null!==e}function D(e){return A(e)&&"[object Date]"===k(e)}function C(e){return A(e)&&("[object Error]"===k(e)||e instanceof Error)}function S(e){return"function"==typeof e}function w(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e}function k(e){return Object.prototype.toString.call(e)}function F(e){return e<10?"0"+e.toString(10):e.toString(10)}function T(){var e=new Date,t=[F(e.getHours()),F(e.getMinutes()),F(e.getSeconds())].join(":");return[e.getDate(),I[e.getMonth()],t].join(" ")}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var j=/%[sdj%]/g;n.format=function(e){if(!v(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(i(arguments[n]));return t.join(" ")}for(var n=1,r=arguments,a=r.length
 ,s=String(e).replace(j,function(e){if("%%"===e)return"%";if(n>=a)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}}),o=r[n];n<a;o=r[++n])s+=m(o)||!A(o)?" "+o:" "+i(o);return s},n.deprecate=function(e,i){function a(){if(!s){if(t.throwDeprecation)throw new Error(i);t.traceDeprecation?console.trace(i):console.error(i),s=!0}return e.apply(this,arguments)}if(_(r.process))return function(){return n.deprecate(e,i).apply(this,arguments)};if(t.noDeprecation===!0)return e;var s=!1;return a};var B,O={};n.debuglog=function(e){if(_(B)&&(B=t.env.NODE_DEBUG||""),e=e.toUpperCase(),!O[e])if(new RegExp("\\b"+e+"\\b","i").test(B)){var r=t.pid;O[e]=function(){var t=n.format.apply(n,arguments);console.error("%s %d: %s",e,r,t)}}else O[e]=function(){};return O[e]},n.inspect=i,i.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue
 :[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},i.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},n.isArray=d,n.isBoolean=y,n.isNull=m,n.isNullOrUndefined=b,n.isNumber=g,n.isString=v,n.isSymbol=x,n.isUndefined=_,n.isRegExp=E,n.isObject=A,n.isDate=D,n.isError=C,n.isFunction=S,n.isPrimitive=w,n.isBuffer=e("./support/isBuffer");var I=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];n.log=function(){console.log("%s - %s",T(),n.format.apply(n,arguments))},n.inherits=e("inherits"),n._extend=function(e,t){if(!t||!A(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e}}).call(this,e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":34,_process:13,inherits:33}],36:[function(e,t,n){var r=(e("assert"),e("recast").types),i=r.namedTypes,a=r.builders,
 s=Object.prototype.hasOwnProperty;n.defaults=function(e){for(var t,n=arguments.length,r=1;r<n;++r)if(t=arguments[r])for(var i in t)s.call(t,i)&&!s.call(e,i)&&(e[i]=t[i]);return e},n.runtimeProperty=function(e){return a.memberExpression(a.identifier("regeneratorRuntime"),a.identifier(e),!1)},n.isReference=function(e,t){var n=e.value;if(!i.Identifier.check(n))return!1;if(t&&n.name!==t)return!1;var r=e.parent.value;switch(r.type){case"VariableDeclarator":return"init"===e.name;case"MemberExpression":return"object"===e.name||r.computed&&"property"===e.name;case"FunctionExpression":case"FunctionDeclaration":case"ArrowFunctionExpression":return"id"!==e.name&&("params"!==e.parentPath.name||r.params!==e.parentPath.value||r.params[e.name]!==n);case"ClassDeclaration":case"ClassExpression":return"id"!==e.name;case"CatchClause":return"param"!==e.name;case"Property":case"MethodDefinition":return"key"!==e.name;case"ImportSpecifier":case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":case"L
 abeledStatement":return!1;default:return!0}}},{assert:2,recast:539}],37:[function(e,t,n){function r(t){s.Program.assert(t);var n=e("..").runtime.path,r=fs.readFileSync(n,"utf8"),a=i.parse(r,{sourceFileName:n}).program.body,o=t.body;o.unshift.apply(o,a)}var i=e("recast"),a=i.types,s=a.namedTypes,o=e("./util.js");n.transform=function(t,n){return n=o.defaults(n||{},{includeRuntime:!1}),t=e("babel-core").transformFromAst(t,null,{presets:[e("regenerator-preset")],code:!1,ast:!0}).ast,n.includeRuntime===!0&&r(s.File.check(t)?t.program:t),t}},{"..":"regenerator","./util.js":36,"babel-core":38,recast:539,"regenerator-preset":572}],38:[function(e,t,n){t.exports=e("./lib/api/node.js")},{"./lib/api/node.js":39}],39:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e){throw new Error("The ("+e+") Babel 
 5 plugin is being run with Babel 6.")}function s(e,t,n){(0,d.default)(t)&&(n=t,t={}),t.filename=e,m.default.readFile(e,function(e,r){var i=void 0;if(!e)try{i=T(r,t)}catch(t){e=t}e?n(e):n(null,i)})}function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.filename=e,T(m.default.readFileSync(e,"utf8"),t)}n.__esModule=!0,n.transformFromAst=n.transform=n.analyse=n.Pipeline=n.OptionManager=n.traverse=n.types=n.messages=n.util=n.version=n.template=n.buildExternalHelpers=n.options=n.File=void 0;var u=e("../transformation/file");Object.defineProperty(n,"File",{enumerable:!0,get:function(){return i(u).default}});var l=e("../transformation/file/options/config");Object.defineProperty(n,"options",{enumerable:!0,get:function(){return i(l).default}});var c=e("../tools/build-external-helpers");Object.defineProperty(n,"buildExternalHelpers",{enumerable:!0,get:function(){return i(c).default}});var p=e("babel-template");Object.defineProperty(n,"template",{enumerable:!0,ge
 t:function(){return i(p).default}});var f=e("../../package");Object.defineProperty(n,"version",{enumerable:!0,get:function(){return f.version}}),n.Plugin=a,n.transformFile=s,n.transformFileSync=o;var h=e("lodash/isFunction"),d=i(h),y=e("fs"),m=i(y),b=e("../util"),g=r(b),v=e("babel-messages"),x=r(v),_=e("babel-types"),E=r(_),A=e("babel-traverse"),D=i(A),C=e("../transformation/file/options/option-manager"),S=i(C),w=e("../transformation/pipeline"),k=i(w);n.util=g,n.messages=x,n.types=E,n.traverse=D.default,n.OptionManager=S.default,n.Pipeline=k.default;var F=new k.default,T=(n.analyse=F.analyse.bind(F),n.transform=F.transform.bind(F));n.transformFromAst=F.transformFromAst.bind(F)},{"../../package":528,"../tools/build-external-helpers":44,"../transformation/file":45,"../transformation/file/options/config":49,"../transformation/file/options/option-manager":51,"../transformation/pipeline":56,"../util":59,"babel-messages":99,"babel-template":225,"babel-traverse":229,"babel-types":265,fs:1,
 "lodash/isFunction":480}],40:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var i=e("babel-runtime/core-js/get-iterator"),a=r(i);n.default=function(e,t){if(e&&t)return(0,o.default)(e,t,function(e,t){if(t&&Array.isArray(e)){for(var n=t.slice(0),r=e,i=Array.isArray(r),s=0,r=i?r:(0,a.default)(r);;){var o;if(i){if(s>=r.length)break;o=r[s++]}else{if(s=r.next(),s.done)break;o=s.value}var u=o;n.indexOf(u)<0&&n.push(u)}return n}})};var s=e("lodash/mergeWith"),o=r(s);t.exports=n.default},{"babel-runtime/core-js/get-iterator":100,"lodash/mergeWith":495}],41:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}n.__esModule=!0,n.default=function(e,t,n){if(e){if("Program"===e.type)return a.file(e,t||[],n||[]);if("File"===e.type)return e}throw new Error("Not a valid ast?")};var i=e("babel-types"),a=r(i);t.exports=n.defa
 ult},{"babel-types":265}],42:[function(e,t,n){(function(r){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var a=e("babel-runtime/helpers/typeof"),s=i(a);n.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.cwd();if("object"===(void 0===u.default?"undefined":(0,s.default)(u.default)))return null;var n=p[t];if(!n){n=new u.default;var i=c.default.join(t,".babelrc");n.id=i,n.filename=i,n.paths=u.default._nodeModulePaths(t),p[t]=n}try{return u.default._resolveFilename(e,n)}catch(e){return null}};var o=e("module"),u=i(o),l=e("path"),c=i(l),p={};t.exports=n.default}).call(this,e("_process"))},{_process:13,"babel-runtime/helpers/typeof":118,module:1,path:12}],43:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var i=e("babel-runtime/core-js/map"),a=r(i),s=e("babel-runtime/helpers/classCallCheck"),o=r(s),u=e("babel-runtime/helpers/possibleConstructorReturn"),l=r(u),c=e("babel-runt
 ime/helpers/inherits"),p=r(c),f=function(e){function t(){(0,o.default)(this,t);var n=(0,l.default)(this,e.call(this));return n.dynamicData={},n}return(0,p.default)(t,e),t.prototype.setDynamic=function(e,t){this.dynamicData[e]=t},t.prototype.get=function(t){if(this.has(t))return e.prototype.get.call(this,t);if(Object.prototype.hasOwnProperty.call(this.dynamicData,t)){var n=this.dynamicData[t]();return this.set(t,n),n}},t}(a.default);n.default=f,t.exports=n.default},{"babel-runtime/core-js/map":102,"babel-runtime/helpers/classCallCheck":114,"babel-runtime/helpers/inherits":115,"babel-runtime/helpers/possibleConstructorReturn":117}],44:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function a(e,t){var n=[],r=x.functionExpression(null,[x.identifier("global")],x.blockStatement(n)),i=x.program([x.expressi
 onStatement(x.callExpression(r,[c.get("selfGlobal")]))]);return n.push(x.variableDeclaration("var",[x.variableDeclarator(e,x.assignmentExpression("=",x.memberExpression(x.identifier("global"),e),x.objectExpression([])))])),t(n),i}function s(e,t){var n=[];return n.push(x.variableDeclaration("var",[x.variableDeclarator(e,x.identifier("global"))])),t(n),x.program([_({FACTORY_PARAMETERS:x.identifier("global"),BROWSER_ARGUMENTS:x.assignmentExpression("=",x.memberExpression(x.identifier("root"),e),x.objectExpression([])),COMMON_ARGUMENTS:x.identifier("exports"),AMD_ARGUMENTS:x.arrayExpression([x.stringLiteral("exports")]),FACTORY_BODY:n,UMD_ROOT:x.identifier("this")})])}function o(e,t){var n=[];return n.push(x.variableDeclaration("var",[x.variableDeclarator(e,x.objectExpression([]))])),t(n),n.push(x.expressionStatement(e)),x.program(n)}function u(e,t,n){(0,g.default)(c.list,function(r){if(!(n&&n.indexOf(r)<0)){var i=x.identifier(r);e.push(x.expressionStatement(x.assignmentExpression("=",x
 .memberExpression(t,i),c.get(r))))}})}n.__esModule=!0,n.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"global",n=x.identifier("babelHelpers"),r=function(t){return u(t,n,e)},i=void 0,l={global:a,umd:s,var:o}[t];if(!l)throw new Error(d.get("unsupportedOutputType",t));return i=l(n,r),(0,f.default)(i).code};var l=e("babel-helpers"),c=i(l),p=e("babel-generator"),f=r(p),h=e("babel-messages"),d=i(h),y=e("babel-template"),m=r(y),b=e("lodash/each"),g=r(b),v=e("babel-types"),x=i(v),_=(0,m.default)('\n  (function (root, factory) {\n    if (typeof define === "function" && define.amd) {\n      define(AMD_ARGUMENTS, factory);\n    } else if (typeof exports === "object") {\n      factory(COMMON_ARGUMENTS);\n    } else {\n      factory(BROWSER_ARGUMENTS);\n    }\n  })(UMD_ROOT, function (FACTORY_PARAMETERS) {\n    FACTORY_BODY\n  });\n');t.exports=n.default},{"babel-generator":85,"babel-helpers":98,"babel-messages":99,"babel-template":225,"babel-types":265,"lodash
 /each":461}],45:[function(e,t,n){(function(t){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0,n.File=void 0;var a=e("babel-runtime/helpers/typeof"),s=i(a),o=e("babel-runtime/core-js/get-iterator"),u=i(o),l=e("babel-runtime/core-js/object/create"),c=i(l),p=e("babel-runtime/core-js/object/assign"),f=i(p),h=e("babel-runtime/helpers/classCallCheck"),d=i(h),y=e("babel-runtime/helpers/possibleConstructorReturn"),m=i(y),b=e("babel-runtime/helpers/inherits"),g=i(b),v=e("babel-helpers"),x=i(v),_=e("./metadata"),E=r(_),A=e("convert-source-map"),D=i(A),C=e("./options/option-manager"),S=i(C),w=e("../plugin-pass"),k=i(w),F=e("babel-traverse"),T=i(F),P=e("source-map"),j=i(P),B=e("babel-generator"),O=i(B),I=e("babel-code-frame"),N=i(I),L=e("lodash/defaults"),M=i(L),R=e("./logger"),U=i(R),V=e("../../store"),G=i(V),q=
 e("babylon"),K=e("../../util"),X=r(K),J=e("path"),W=i(J),z=e("babel-types"),Y=r(z),H=e("../../helpers/resolve"),$=i(H),Q=e("../internal-plugins/block-hoist"),Z=i(Q),ee=e("../internal-plugins/shadow-functions"),te=i(ee),ne=/^#!.*/,re=[[Z.default],[te.default]],ie={enter:function(e,t){var n=e.node.loc;n&&(t.loc=n,e.stop())}},ae=function(n){function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1];(0,d.default)(this,r);var i=(0,m.default)(this,n.call(this));return i.pipeline=t,i.log=new U.default(i,e.filename||"unknown"),i.opts=i.initOptions(e),i.parserOpts={sourceType:i.opts.sourceType,sourceFileName:i.opts.filename,plugins:[]},i.pluginVisitors=[],i.pluginPasses=[],i.buildPluginsForOptions(i.opts),i.opts.passPerPreset&&(i.perPresetOpts=[],i.opts.presets.forEach(function(e){var t=(0,f.default)((0,c.default)(i.opts),e);i.perPresetOpts.push(t),i.buildPluginsForOptions(t)})),i.metadata={usedHelpers:[],marked:[],modules:{imports:[],exports:{exported:[],spe
 cifiers:[]}}},i.dynamicImportTypes={},i.dynamicImportIds={},i.dynamicImports=[],i.declarations={},i.usedHelpers={},i.path=null,i.ast={},i.code="",i.shebang="",i.hub=new F.Hub(i),i}return(0,g.default)(r,n),r.prototype.getMetadata=function(){for(var e=!1,t=this.ast.program.body,n=Array.isArray(t),r=0,t=n?t:(0,u.default)(t);;){var i;if(n){if(r>=t.length)break;i=t[r++]}else{if(r=t.next(),r.done)break;i=r.value}var a=i;if(Y.isModuleDeclaration(a)){e=!0;break}}e&&this.path.traverse(E,this)},r.prototype.initOptions=function(e){e=new S.default(this.log,this.pipeline).init(e),e.inputSourceMap&&(e.sourceMaps=!0),e.moduleId&&(e.moduleIds=!0),e.basename=W.default.basename(e.filename,W.default.extname(e.filename)),e.ignore=X.arrayify(e.ignore,X.regexify),e.only&&(e.only=X.arrayify(e.only,X.regexify)),(0,M.default)(e,{moduleRoot:e.sourceRoot}),(0,M.default)(e,{sourceRoot:e.moduleRoot}),(0,M.default)(e,{filenameRelative:e.filename});var t=W.default.basename(e.filenameRelative);return(0,M.default)(
 e,{sourceFileName:t,sourceMapTarget:t}),e},r.prototype.buildPluginsForOptions=function(e){if(Array.isArray(e.plugins)){for(var t=e.plugins.concat(re),n=[],r=[],i=t,a=Array.isArray(i),s=0,i=a?i:(0,u.default)(i);;){var o;if(a){if(s>=i.length)break;o=i[s++]}else{if(s=i.next(),s.done)break;o=s.value}var l=o,c=l[0],p=l[1];n.push(c.visitor),r.push(new k.default(this,c,p)),c.manipulateOptions&&c.manipulateOptions(e,this.parserOpts,this)}this.pluginVisitors.push(n),this.pluginPasses.push(r)}},r.prototype.getModuleName=function(){var e=this.opts;if(!e.moduleIds)return null;if(null!=e.moduleId&&!e.getModuleId)return e.moduleId;var t=e.filenameRelative,n="";if(null!=e.moduleRoot&&(n=e.moduleRoot+"/"),!e.filenameRelative)return n+e.filename.replace(/^\//,"");if(null!=e.sourceRoot){var r=new RegExp("^"+e.sourceRoot+"/?");t=t.replace(r,"")}return t=t.replace(/\.(\w*?)$/,""),n+=t,n=n.replace(/\\/g,"/"),e.getModuleId?e.getModuleId(n)||n:n},r.prototype.resolveModuleSource=function e(t){var e=this.op
 ts.resolveModuleSource;return e&&(t=e(t,this.opts.filename)),t},r.prototype.addImport=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t,r=e+":"+t,i=this.dynamicImportIds[r];if(!i){e=this.resolveModuleSource(e),i=this.dynamicImportIds[r]=this.scope.generateUidIdentifier(n);var a=[];"*"===t?a.push(Y.importNamespaceSpecifier(i)):"default"===t?a.push(Y.importDefaultSpecifier(i)):a.push(Y.importSpecifier(i,Y.identifier(t)));var s=Y.importDeclaration(a,Y.stringLiteral(e));s._blockHoist=3,this.path.unshiftContainer("body",s)}return i},r.prototype.addHelper=function(e){var t=this.declarations[e];if(t)return t;this.usedHelpers[e]||(this.metadata.usedHelpers.push(e),this.usedHelpers[e]=!0);var n=this.get("helperGenerator"),r=this.get("helpersNamespace");if(n){var i=n(e);if(i)return i}else if(r)return Y.memberExpression(r,Y.identifier(e));var a=(0,x.default)(e),s=this.declarations[e]=this.scope.generateUidIdentifier(e);return Y.isFunctionExpression(a)&&!a.id?(a.body.
 _compact=!0,a._generated=!0,a.id=s,a.type="FunctionDeclaration",this.path.unshiftContainer("body",a)):(a._compact=!0,this.scope.push({id:s,init:a,unique:!0})),s},r.prototype.addTemplateObject=function(e,t,n){var r=n.elements.map(function(e){return e.value}),i=e+"_"+n.elements.length+"_"+r.join(","),a=this.declarations[i];if(a)return a;var s=this.declarations[i]=this.scope.generateUidIdentifier("templateObject"),o=this.addHelper(e),u=Y.callExpression(o,[t,n]);return u._compact=!0,this.scope.push({id:s,init:u,_blockHoist:1.9}),s},r.prototype.buildCodeFrameError=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:SyntaxError,r=e&&(e.loc||e._loc),i=new n(t);return r?i.loc=r.start:((0,T.default)(e,ie,this.scope,i),i.message+=" (This is an error on an internal node. Probably an internal error",i.loc&&(i.message+=". Location has been estimated."),i.message+=")"),i},r.prototype.mergeSourceMap=function(e){var t=this.opts.inputSourceMap;if(!t)return e;var n=function(){v
 ar n=new j.default.SourceMapConsumer(t),r=new j.default.SourceMapConsumer(e),i=new j.default.SourceMapGenerator({file:n.file,sourceRoot:n.sourceRoot}),a=r.sources[0];n.eachMapping(function(e){var t=r.generatedPositionFor({line:e.generatedLine,column:e.generatedColumn,source:a});null!=t.column&&i.addMapping({source:e.source,original:null==e.source?null:{line:e.originalLine,column:e.originalColumn},generated:t})});var s=i.toJSON();return t.mappings=s.mappings,{v:t}}();return"object"===(void 0===n?"undefined":(0,s.default)(n))?n.v:void 0},r.prototype.parse=function(n){var r=q.parse,i=this.opts.parserOpts;if(i&&(i=(0,f.default)({},this.parserOpts,i),i.parser)){if("string"==typeof i.parser){var a=W.default.dirname(this.opts.filename)||t.cwd(),s=(0,$.default)(i.parser,a);if(!s)throw new Error("Couldn't find parser "+i.parser+' with "parse" method relative to directory '+a);r=e(s).parse}else r=i.parser;i.parser={parse:function(e){return(0,q.parse)(e,i)}}}this.log.debug("Parse start");var o
 =r(n,i||this.parserOpts);return this.log.debug("Parse stop"),o},r.prototype._addAst=function(e){this.path=F.NodePath.get({hub:this.hub,parentPath:null,parent:e,container:e,key:"program"}).setContext(),this.scope=this.path.scope,this.ast=e,this.getMetadata()},r.prototype.addAst=function(e){this.log.debug("Start set AST"),this._addAst(e),this.log.debug("End set AST")},r.prototype.transform=function(){for(var e=0;e<this.pluginPasses.length;e++){var t=this.pluginPasses[e];this.call("pre",t),this.log.debug("Start transform traverse");var n=T.default.visitors.merge(this.pluginVisitors[e],t,this.opts.wrapPluginVisitorMethod);(0,T.default)(this.ast,n,this.scope),this.log.debug("End transform traverse"),this.call("post",t)}return this.generate()},r.prototype.wrap=function(e,n){e+="";try{return this.shouldIgnore()?this.makeResult({code:e,ignored:!0}):n()}catch(n){if(n._babel)throw n;n._babel=!0;var r=n.message=this.opts.filename+": "+n.message,i=n.loc;if(i&&(n.codeFrame=(0,N.default)(e,i.line
 ,i.column+1,this.opts),r+="\n"+n.codeFrame),t.browser&&(n.message=r),n.stack){var a=n.stack.replace(n.message,r);n.stack=a}throw n}},r.prototype.addCode=function(e){e=(e||"")+"",e=this.parseInputSourceMap(e),this.code=e},r.prototype.parseCode=function(){this.parseShebang();var e=this.parse(this.code);this.addAst(e)},r.prototype.shouldIgnore=function(){var e=this.opts;return X.shouldIgnore(e.filename,e.ignore,e.only)},r.prototype.call=function(e,t){for(var n=t,r=Array.isArray(n),i=0,n=r?n:(0,u.default)(n);;){var a;if(r){if(i>=n.length)break;a=n[i++]}else{if(i=n.next(),i.done)break;a=i.value}var s=a,o=s.plugin,l=o[e];l&&l.call(s,this)}},r.prototype.parseInputSourceMap=function(e){var t=this.opts;if(t.inputSourceMap!==!1){var n=D.default.fromSource(e);n&&(t.inputSourceMap=n.toObject(),e=D.default.removeComments(e))}return e},r.prototype.parseShebang=function(){var e=ne.exec(this.code);e&&(this.shebang=e[0],this.code=this.code.replace(ne,""))},r.prototype.makeResult=function(e){var t=e.
 code,n=e.map,r=e.ast,i=e.ignored,a={metadata:null,options:this.opts,ignored:!!i,c

<TRUNCATED>


[42/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/acorn/src/whitespace.js
----------------------------------------------------------------------
diff --git a/node_modules/acorn/src/whitespace.js b/node_modules/acorn/src/whitespace.js
deleted file mode 100644
index 1f4404a..0000000
--- a/node_modules/acorn/src/whitespace.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Matches a whole line break (where CRLF is considered a single
-// line break). Used to count lines.
-
-export const lineBreak = /\r\n?|\n|\u2028|\u2029/
-export const lineBreakG = new RegExp(lineBreak.source, "g")
-
-export function isNewLine(code) {
-  return code === 10 || code === 13 || code === 0x2028 || code == 0x2029
-}
-
-export const nonASCIIwhitespace = /[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/
-

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/.tonic_example.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/.tonic_example.js b/node_modules/ajv/.tonic_example.js
deleted file mode 100644
index 0c3cc86..0000000
--- a/node_modules/ajv/.tonic_example.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var Ajv = require('ajv');
-var ajv = Ajv({allErrors: true});
-
-var schema = {
-  "properties": {
-    "foo": { "type": "string" },
-    "bar": { "type": "number", "maximum": 3 }
-  }
-};
-
-var validate = ajv.compile(schema);
-
-test({"foo": "abc", "bar": 2});
-test({"foo": 2, "bar": 4});
-
-function test(data) {
-  var valid = validate(data);
-  if (valid) console.log('Valid!');
-  else console.log('Invalid: ' + ajv.errorsText(validate.errors));
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/ajv/LICENSE b/node_modules/ajv/LICENSE
deleted file mode 100644
index 8105396..0000000
--- a/node_modules/ajv/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015 Evgeny Poberezkin
-
-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.
-

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/README.md
----------------------------------------------------------------------
diff --git a/node_modules/ajv/README.md b/node_modules/ajv/README.md
deleted file mode 100644
index 23b07e8..0000000
--- a/node_modules/ajv/README.md
+++ /dev/null
@@ -1,1211 +0,0 @@
-# Ajv: Another JSON Schema Validator
-
-The fastest JSON Schema validator for node.js and browser. Supports [v5 proposals](https://github.com/json-schema/json-schema/wiki/v5-Proposals).
-
-
-[![Build Status](https://travis-ci.org/epoberezkin/ajv.svg?branch=master)](https://travis-ci.org/epoberezkin/ajv)
-[![npm version](https://badge.fury.io/js/ajv.svg)](https://www.npmjs.com/package/ajv)
-[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)
-[![Code Climate](https://codeclimate.com/github/epoberezkin/ajv/badges/gpa.svg)](https://codeclimate.com/github/epoberezkin/ajv)
-[![Coverage Status](https://coveralls.io/repos/epoberezkin/ajv/badge.svg?branch=master&service=github)](https://coveralls.io/github/epoberezkin/ajv?branch=master)
-[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)
-
-
-__Please note__: You can start using NEW beta version [5.0.3](https://github.com/epoberezkin/ajv/releases/tag/5.0.3-beta.0) (see [migration guide from 4.x.x](https://github.com/epoberezkin/ajv/releases/tag/5.0.1-beta.0)) with the support of JSON-Schema draft-06 (not officially published yet): `npm install ajv@^5.0.3-beta`.
-
-Also see [docs](https://github.com/epoberezkin/ajv/tree/5.0.3-beta.0) for 5.0.3.
-
-
-## Contents
-
-- [Performance](#performance)
-- [Features](#features)
-- [Getting started](#getting-started)
-- [Frequently Asked Questions](https://github.com/epoberezkin/ajv/blob/master/FAQ.md)
-- [Using in browser](#using-in-browser)
-- [Command line interface](#command-line-interface)
-- Validation
-  - [Keywords](#validation-keywords)
-  - [Formats](#formats)
-  - [$data reference](#data-reference)
-  - NEW: [$merge and $patch keywords](#merge-and-patch-keywords)
-  - [Defining custom keywords](#defining-custom-keywords)
-  - [Asynchronous schema compilation](#asynchronous-compilation)
-  - [Asynchronous validation](#asynchronous-validation)
-- Modifying data during validation
-  - [Filtering data](#filtering-data)
-  - [Assigning defaults](#assigning-defaults)
-  - [Coercing data types](#coercing-data-types)
-- API
-  - [Methods](#api)
-  - [Options](#options)
-  - [Validation errors](#validation-errors)
-- [Related packages](#related-packages)
-- [Packages using Ajv](#some-packages-using-ajv)
-- [Tests, Contributing, History, License](#tests)
-
-
-## Performance
-
-Ajv generates code using [doT templates](https://github.com/olado/doT) to turn JSON schemas into super-fast validation functions that are efficient for v8 optimization.
-
-Currently Ajv is the fastest and the most standard compliant validator according to these benchmarks:
-
-- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place
-- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster
-- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html)
-- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html)
-
-
-Performace of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark):
-
-[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:%7Cajv%7Cis-my-json-valid%7Cjsen%7Cschemasaurus%7Cthemis%7Cz-schema%7Cjsck%7Cjsonschema%7Cskeemas%7Ctv4%7Cjayschema&chd=t:100,68,61,22.8,17.6,6.6,2.7,0.9,0.7,0.4,0.1)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance)
-
-
-## Features
-
-- Ajv implements full [JSON Schema draft 4](http://json-schema.org/) standard:
-  - all validation keywords (see [JSON-Schema validation keywords](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md))
-  - full support of remote refs (remote schemas have to be added with `addSchema` or compiled to be available)
-  - support of circular references between schemas
-  - correct string lengths for strings with unicode pairs (can be turned off)
-  - [formats](#formats) defined by JSON Schema draft 4 standard and custom formats (can be turned off)
-  - [validates schemas against meta-schema](#api-validateschema)
-- supports [browsers](#using-in-browser) and nodejs 0.10-6.x
-- [asynchronous loading](#asynchronous-compilation) of referenced schemas during compilation
-- "All errors" validation mode with [option allErrors](#options)
-- [error messages with parameters](#validation-errors) describing error reasons to allow creating custom error messages
-- i18n error messages support with [ajv-i18n](https://github.com/epoberezkin/ajv-i18n) package
-- [filtering data](#filtering-data) from additional properties
-- [assigning defaults](#assigning-defaults) to missing properties and items
-- [coercing data](#coercing-data-types) to the types specified in `type` keywords
-- [custom keywords](#defining-custom-keywords)
-- keywords `switch`, `constant`, `contains`, `patternGroups`, `patternRequired`, `formatMaximum` / `formatMinimum` and `formatExclusiveMaximum` / `formatExclusiveMinimum` from [JSON-schema v5 proposals](https://github.com/json-schema/json-schema/wiki/v5-Proposals) with [option v5](#options)
-- [v5 meta-schema](https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-v5.json#) for schemas using v5 keywords
-- [v5 $data reference](#data-reference) to use values from the validated data as values for the schema keywords
-- [asynchronous validation](#asynchronous-validation) of custom formats and keywords
-
-Currently Ajv is the only validator that passes all the tests from [JSON Schema Test Suite](https://github.com/json-schema/JSON-Schema-Test-Suite) (according to [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark), apart from the test that requires that `1.0` is not an integer that is impossible to satisfy in JavaScript).
-
-
-## Install
-
-```
-npm install ajv
-```
-
-To install a stable beta version [5.0.3](https://github.com/epoberezkin/ajv/releases/tag/5.0.3-beta.0) (see [migration guide from 4.x.x](https://github.com/epoberezkin/ajv/releases/tag/5.0.1-beta.0)):
-
-```
-npm install ajv@^5.0.3-beta
-```
-
-
-## <a name="usage"></a>Getting started
-
-Try it in the node REPL: https://tonicdev.com/npm/ajv
-
-
-The fastest validation call:
-
-```javascript
-var Ajv = require('ajv');
-var ajv = new Ajv(); // options can be passed, e.g. {allErrors: true}
-var validate = ajv.compile(schema);
-var valid = validate(data);
-if (!valid) console.log(validate.errors);
-```
-
-or with less code
-
-```javascript
-// ...
-var valid = ajv.validate(schema, data);
-if (!valid) console.log(ajv.errors);
-// ...
-```
-
-or
-
-```javascript
-// ...
-ajv.addSchema(schema, 'mySchema');
-var valid = ajv.validate('mySchema', data);
-if (!valid) console.log(ajv.errorsText());
-// ...
-```
-
-See [API](#api) and [Options](#options) for more details.
-
-Ajv compiles schemas to functions and caches them in all cases (using schema stringified with [json-stable-stringify](https://github.com/substack/json-stable-stringify) as a key), so that the next time the same schema is used (not necessarily the same object instance) it won't be compiled again.
-
-The best performance is achieved when using compiled functions returned by `compile` or `getSchema` methods (there is no additional function call).
-
-__Please note__: every time validation function or `ajv.validate` are called `errors` property is overwritten. You need to copy `errors` array reference to another variable if you want to use it later (e.g., in the callback). See [Validation errors](#validation-errors)
-
-
-## Using in browser
-
-You can require Ajv directly from the code you browserify - in this case Ajv will be a part of your bundle.
-
-If you need to use Ajv in several bundles you can create a separate UMD bundle using `npm run bundle` script (thanks to [siddo420](https://github.com/siddo420)).
-
-Then you need to load Ajv in the browser:
-```html
-<script src="ajv.min.js"></script>
-```
-
-This bundle can be used with different module systems or creates global `Ajv` if no module system is found.
-
-The browser bundle is available on [cdnjs](https://cdnjs.com/libraries/ajv).
-
-Ajv is tested with these browsers:
-
-[![Sauce Test Status](https://saucelabs.com/browser-matrix/epoberezkin.svg)](https://saucelabs.com/u/epoberezkin)
-
-__Please note__: some frameworks, e.g. Dojo, may redifine global require in such way that is not compatible with CommonJS module format. In such case Ajv bundle has to be loaded before the framework and then you can use global Ajv (see issue [#234](https://github.com/epoberezkin/ajv/issues/234)).
-
-
-## Command line interface
-
-CLI is available as a separate npm package [ajv-cli](https://github.com/jessedc/ajv-cli). It supports:
-
-- compiling JSON-schemas to test their validity
-- BETA: generating standalone module exporting a validation function to be used without Ajv (using [ajv-pack](https://github.com/epoberezkin/ajv-pack))
-- validating data file(s) against JSON-schema
-- testing expected validity of data against JSON-schema
-- referenced schemas
-- custom meta-schemas
-- files in JSON and JavaScript format
-- all Ajv options
-- reporting changes in data after validation in [JSON-patch](https://tools.ietf.org/html/rfc6902) format
-
-
-## Validation keywords
-
-Ajv supports all validation keywords from draft 4 of JSON-schema standard:
-
-- [type](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#type)
-- [for numbers](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#keywords-for-numbers) - maximum, minimum, exclusiveMaximum, exclusiveMinimum, multipleOf
-- [for strings](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#keywords-for-strings) - maxLength, minLength, pattern, format
-- [for arrays](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#keywords-for-arrays) - maxItems, minItems, uniqueItems, items, additionalItems
-- [for objects](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#keywords-for-objects) - maxProperties, minproperties, required, properties, patternProperties, additionalProperties, dependencies
-- [compound keywords](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#keywords-for-all-types) - enum, not, oneOf, anyOf, allOf
-
-With option `v5: true` Ajv also supports all validation keywords and [$data reference](#data-reference) from [v5 proposals](https://github.com/json-schema/json-schema/wiki/v5-Proposals) for JSON-schema standard:
-
-- [switch](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#switch-v5-proposal) - conditional validation with a sequence of if/then clauses
-- [contains](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#contains-v5-proposal) - check that array contains a valid item
-- [constant](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#constant-v5-proposal) - check that data is equal to some value
-- [patternGroups](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#patterngroups-v5-proposal) - a more powerful alternative to patternProperties
-- [patternRequired](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#patternrequired-v5-proposal) - like `required` but with patterns that some property should match.
-- [formatMaximum, formatMinimum, formatExclusiveMaximum, formatExclusiveMinimum](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#formatmaximum--formatminimum-and-exclusiveformatmaximum--exclusiveformatminimum-v5-proposal) - setting limits for date, time, etc.
-
-See [JSON-Schema validation keywords](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md) for more details.
-
-
-## Formats
-
-The following formats are supported for string validation with "format" keyword:
-
-- _date_: full-date according to [RFC3339](http://tools.ietf.org/html/rfc3339#section-5.6).
-- _time_: time with optional time-zone.
-- _date-time_: date-time from the same source (time-zone is mandatory). `date`, `time` and `date-time` validate ranges in `full` mode and only regexp in `fast` mode (see [options](#options)).
-- _uri_: full uri with optional protocol.
-- _email_: email address.
-- _hostname_: host name acording to [RFC1034](http://tools.ietf.org/html/rfc1034#section-3.5).
-- _ipv4_: IP address v4.
-- _ipv6_: IP address v6.
-- _regex_: tests whether a string is a valid regular expression by passing it to RegExp constructor.
-- _uuid_: Universally Unique IDentifier according to [RFC4122](http://tools.ietf.org/html/rfc4122).
-- _json-pointer_: JSON-pointer according to [RFC6901](https://tools.ietf.org/html/rfc6901).
-- _relative-json-pointer_: relative JSON-pointer according to [this draft](http://tools.ietf.org/html/draft-luff-relative-json-pointer-00).
-
-There are two modes of format validation: `fast` and `full`. This mode affects formats `date`, `time`, `date-time`, `uri`, `email`, and `hostname`. See [Options](#options) for details.
-
-You can add additional formats and replace any of the formats above using [addFormat](#api-addformat) method.
-
-The option `unknownFormats` allows to change the behaviour in case an unknown format is encountered - Ajv can either ignore them (default now) or fail schema compilation (will be the default in 5.0.0).
-
-You can find patterns used for format validation and the sources that were used in [formats.js](https://github.com/epoberezkin/ajv/blob/master/lib/compile/formats.js).
-
-
-## $data reference
-
-With `v5` option you can use values from the validated data as the values for the schema keywords. See [v5 proposal](https://github.com/json-schema/json-schema/wiki/$data-(v5-proposal)) for more information about how it works.
-
-`$data` reference is supported in the keywords: constant, enum, format, maximum/minimum, exclusiveMaximum / exclusiveMinimum, maxLength / minLength, maxItems / minItems, maxProperties / minProperties, formatMaximum / formatMinimum, formatExclusiveMaximum / formatExclusiveMinimum, multipleOf, pattern, required, uniqueItems.
-
-The value of "$data" should be a [JSON-pointer](https://tools.ietf.org/html/rfc6901) to the data (the root is always the top level data object, even if the $data reference is inside a referenced subschema) or a [relative JSON-pointer](http://tools.ietf.org/html/draft-luff-relative-json-pointer-00) (it is relative to the current point in data; if the $data reference is inside a referenced subschema it cannot point to the data outside of the root level for this subschema).
-
-Examples.
-
-This schema requires that the value in property `smaller` is less or equal than the value in the property larger:
-
-```javascript
-var schema = {
-  "properties": {
-    "smaller": {
-      "type": "number",
-      "maximum": { "$data": "1/larger" }
-    },
-    "larger": { "type": "number" }
-  }
-};
-
-var validData = {
-  smaller: 5,
-  larger: 7
-};
-```
-
-This schema requires that the properties have the same format as their field names:
-
-```javascript
-var schema = {
-  "additionalProperties": {
-    "type": "string",
-    "format": { "$data": "0#" }
-  }
-};
-
-var validData = {
-  'date-time': '1963-06-19T08:30:06.283185Z',
-  email: 'joe.bloggs@example.com'
-}
-```
-
-`$data` reference is resolved safely - it won't throw even if some property is undefined. If `$data` resolves to `undefined` the validation succeeds (with the exclusion of `constant` keyword). If `$data` resolves to incorrect type (e.g. not "number" for maximum keyword) the validation fails.
-
-
-## $merge and $patch keywords
-
-With v5 option and the package [ajv-merge-patch](https://github.com/epoberezkin/ajv-merge-patch) you can use the keywords `$merge` and `$patch` that allow extending JSON-schemas with patches using formats [JSON Merge Patch (RFC 7396)](https://tools.ietf.org/html/rfc7396) and [JSON Patch (RFC 6902)](https://tools.ietf.org/html/rfc6902).
-
-To add keywords `$merge` and `$patch` to Ajv instance use this code:
-
-```javascript
-require('ajv-merge-patch')(ajv);
-```
-
-Examples.
-
-Using `$merge`:
-
-```json
-{
-  "$merge": {
-    "source": {
-      "type": "object",
-      "properties": { "p": { "type": "string" } },
-      "additionalProperties": false
-    },
-    "with": {
-      "properties": { "q": { "type": "number" } }
-    }
-  }
-}
-```
-
-Using `$patch`:
-
-```json
-{
-  "$patch": {
-    "source": {
-      "type": "object",
-      "properties": { "p": { "type": "string" } },
-      "additionalProperties": false
-    },
-    "with": [
-      { "op": "add", "path": "/properties/q", "value": { "type": "number" } }
-    ]
-  }
-}
-```
-
-The schemas above are equivalent to this schema:
-
-```json
-{
-  "type": "object",
-  "properties": {
-    "p": { "type": "string" },
-    "q": { "type": "number" }
-  },
-  "additionalProperties": false
-}
-```
-
-The properties `source` and `with` in the keywords `$merge` and `$patch` can use absolute or relative `$ref` to point to other schemas previously added to the Ajv instance or to the fragments of the current schema.
-
-See the package [ajv-merge-patch](https://github.com/epoberezkin/ajv-merge-patch) for more information.
-
-
-## Defining custom keywords
-
-The advantages of using custom keywords are:
-
-- allow creating validation scenarios that cannot be expressed using JSON-Schema
-- simplify your schemas
-- help bringing a bigger part of the validation logic to your schemas
-- make your schemas more expressive, less verbose and closer to your application domain
-- implement custom data processors that modify your data (`modifying` option MUST be used in keyword definition) and/or create side effects while the data is being validated
-
-If a keyword is used only for side-effects and its validation result is pre-defined, use option `valid: true/false` in keyword definition to simplify both generated code (no error handling in case of `valid: true`) and your keyword functions (no need to return any validation result).
-
-The concerns you have to be aware of when extending JSON-schema standard with custom keywords are the portability and understanding of your schemas. You will have to support these custom keywords on other platforms and to properly document these keywords so that everybody can understand them in your schemas.
-
-You can define custom keywords with [addKeyword](#api-addkeyword) method. Keywords are defined on the `ajv` instance level - new instances will not have previously defined keywords.
-
-Ajv allows defining keywords with:
-- validation function
-- compilation function
-- macro function
-- inline compilation function that should return code (as string) that will be inlined in the currently compiled schema.
-
-Example. `range` and `exclusiveRange` keywords using compiled schema:
-
-```javascript
-ajv.addKeyword('range', { type: 'number', compile: function (sch, parentSchema) {
-  var min = sch[0];
-  var max = sch[1];
-
-  return parentSchema.exclusiveRange === true
-          ? function (data) { return data > min && data < max; }
-          : function (data) { return data >= min && data <= max; }
-} });
-
-var schema = { "range": [2, 4], "exclusiveRange": true };
-var validate = ajv.compile(schema);
-console.log(validate(2.01)); // true
-console.log(validate(3.99)); // true
-console.log(validate(2)); // false
-console.log(validate(4)); // false
-```
-
-Several custom keywords (typeof, instanceof, range and propertyNames) are defined in [ajv-keywords](https://github.com/epoberezkin/ajv-keywords) package - they can be used for your schemas and as a starting point for your own custom keywords.
-
-See [Defining custom keywords](https://github.com/epoberezkin/ajv/blob/master/CUSTOM.md) for more details.
-
-
-## Asynchronous compilation
-
-During asynchronous compilation remote references are loaded using supplied function. See `compileAsync` method and `loadSchema` [option](#options).
-
-Example:
-
-```javascript
-var ajv = new Ajv({ loadSchema: loadSchema });
-
-ajv.compileAsync(schema, function (err, validate) {
-	if (err) return;
-	var valid = validate(data);
-});
-
-function loadSchema(uri, callback) {
-	request.json(uri, function(err, res, body) {
-		if (err || res.statusCode >= 400)
-			callback(err || new Error('Loading error: ' + res.statusCode));
-		else
-			callback(null, body);
-	});
-}
-```
-
-__Please note__: [Option](#options) `missingRefs` should NOT be set to `"ignore"` or `"fail"` for asynchronous compilation to work.
-
-
-## Asynchronous validation
-
-Example in node REPL: https://tonicdev.com/esp/ajv-asynchronous-validation
-
-You can define custom formats and keywords that perform validation asyncronously by accessing database or some service. You should add `async: true` in the keyword or format defnition (see [addFormat](#api-addformat), [addKeyword](#api-addkeyword) and [Defining custom keywords](#defining-custom-keywords)).
-
-If your schema uses asynchronous formats/keywords or refers to some schema that contains them it should have `"$async": true` keyword so that Ajv can compile it correctly. If asynchronous format/keyword or reference to asynchronous schema is used in the schema without `$async` keyword Ajv will throw an exception during schema compilation.
-
-__Please note__: all asynchronous subschemas that are referenced from the current or other schemas should have `"$async": true` keyword as well, otherwise the schema compilation will fail.
-
-Validation function for an asynchronous custom format/keyword should return a promise that resolves to `true` or `false` (or rejects with `new Ajv.ValidationError(errors)` if you want to return custom errors from the keyword function). Ajv compiles asynchronous schemas to either [generator function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function*) (default) that can be optionally transpiled with [regenerator](https://github.com/facebook/regenerator) or to [es7 async function](http://tc39.github.io/ecmascript-asyncawait/) that can be transpiled with [nodent](https://github.com/MatAtBread/nodent) or with regenerator as well. You can also supply any other transpiler as a function. See [Options](#options).
-
-The compiled validation function has `$async: true` property (if the schema is asynchronous), so you can differentiate these functions if you are using both syncronous and asynchronous schemas.
-
-If you are using generators, the compiled validation function can be either wrapped with [co](https://github.com/tj/co) (default) or returned as generator function, that can be used directly, e.g. in [koa](http://koajs.com/) 1.0. `co` is a small library, it is included in Ajv (both as npm dependency and in the browser bundle).
-
-Generator functions are currently supported in Chrome, Firefox and node.js (0.11+); if you are using Ajv in other browsers or in older versions of node.js you should use one of available transpiling options. All provided async modes use global Promise class. If your platform does not have Promise you should use a polyfill that defines it.
-
-Validation result will be a promise that resolves to `true` or rejects with an exception `Ajv.ValidationError` that has the array of validation errors in `errors` property.
-
-
-Example:
-
-```javascript
-/**
- * without "async" and "transpile" options (or with option {async: true})
- * Ajv will choose the first supported/installed option in this order:
- * 1. native generator function wrapped with co
- * 2. es7 async functions transpiled with nodent
- * 3. es7 async functions transpiled with regenerator
- */
-
-var ajv = new Ajv;
-
-ajv.addKeyword('idExists', {
-  async: true,
-  type: 'number',
-  validate: checkIdExists
-});
-
-
-function checkIdExists(schema, data) {
-  return knex(schema.table)
-  .select('id')
-  .where('id', data)
-  .then(function (rows) {
-    return !!rows.length; // true if record is found
-  });
-}
-
-var schema = {
-  "$async": true,
-  "properties": {
-    "userId": {
-      "type": "integer",
-      "idExists": { "table": "users" }
-    },
-    "postId": {
-      "type": "integer",
-      "idExists": { "table": "posts" }
-    }
-  }
-};
-
-var validate = ajv.compile(schema);
-
-validate({ userId: 1, postId: 19 }))
-.then(function (valid) {
-  // "valid" is always true here
-  console.log('Data is valid');
-})
-.catch(function (err) {
-  if (!(err instanceof Ajv.ValidationError)) throw err;
-  // data is invalid
-  console.log('Validation errors:', err.errors);
-});
-
-```
-
-### Using transpilers with asyncronous validation functions.
-
-To use a transpiler you should separately install it (or load its bundle in the browser).
-
-Ajv npm package includes minified browser bundles of regenerator and nodent in dist folder.
-
-
-#### Using nodent
-
-```javascript
-var ajv = new Ajv({ /* async: 'es7', */ transpile: 'nodent' });
-var validate = ajv.compile(schema); // transpiled es7 async function
-validate(data).then(successFunc).catch(errorFunc);
-```
-
-`npm install nodent` or use `nodent.min.js` from dist folder of npm package.
-
-
-#### Using regenerator
-
-```javascript
-var ajv = new Ajv({ /* async: 'es7', */ transpile: 'regenerator' });
-var validate = ajv.compile(schema); // transpiled es7 async function
-validate(data).then(successFunc).catch(errorFunc);
-```
-
-`npm install regenerator` or use `regenerator.min.js` from dist folder of npm package.
-
-
-#### Using other transpilers
-
-```javascript
-var ajv = new Ajv({ async: 'es7', transpile: transpileFunc });
-var validate = ajv.compile(schema); // transpiled es7 async function
-validate(data).then(successFunc).catch(errorFunc);
-```
-
-See [Options](#options).
-
-
-#### Comparison of async modes
-
-|mode|transpile<br>speed*|run-time<br>speed*|bundle<br>size|
-|---|:-:|:-:|:-:|
-|generators<br>(native)|-|1.0|-|
-|es7.nodent|1.35|1.1|183Kb|
-|es7.regenerator|1.0|2.7|322Kb|
-|regenerator|1.0|3.2|322Kb|
-
-\* Relative performance in node v.4, smaller is better.
-
-[nodent](https://github.com/MatAtBread/nodent) has several advantages:
-
-- much smaller browser bundle than regenerator
-- almost the same performance of generated code as native generators in nodejs and the latest Chrome
-- much better performace than native generators in other browsers
-- works in IE 9 (regenerator does not)
-
-[regenerator](https://github.com/facebook/regenerator) is a more widely adopted alternative.
-
-
-## Filtering data
-
-With [option `removeAdditional`](#options) (added by [andyscott](https://github.com/andyscott)) you can filter data during the validation.
-
-This option modifies original data.
-
-Example:
-
-```javascript
-var ajv = new Ajv({ removeAdditional: true });
-var schema = {
-  "additionalProperties": false,
-  "properties": {
-    "foo": { "type": "number" },
-    "bar": {
-      "additionalProperties": { "type": "number" },
-      "properties": {
-        "baz": { "type": "string" }
-      }
-    }
-  }
-}
-
-var data = {
-  "foo": 0,
-  "additional1": 1, // will be removed; `additionalProperties` == false
-  "bar": {
-    "baz": "abc",
-    "additional2": 2 // will NOT be removed; `additionalProperties` != false
-  },
-}
-
-var validate = ajv.compile(schema);
-
-console.log(validate(data)); // true
-console.log(data); // { "foo": 0, "bar": { "baz": "abc", "additional2": 2 }
-```
-
-If `removeAdditional` option in the example above were `"all"` then both `additional1` and `additional2` properties would have been removed.
-
-If the option were `"failing"` then property `additional1` would have been removed regardless of its value and property `additional2` would have been removed only if its value were failing the schema in the inner `additionalProperties` (so in the example above it would have stayed because it passes the schema, but any non-number would have been removed).
-
-__Please note__: If you use `removeAdditional` option with `additionalProperties` keyword inside `anyOf`/`oneOf` keywords your validation can fail with this schema, for example:
-
-```JSON
-{
-  "type": "object",
-  "oneOf": [
-    {
-      "properties": {
-        "foo": { "type": "string" }
-      },
-      "required": [ "foo" ],
-      "additionalProperties": false
-    },
-    {
-      "properties": {
-        "bar": { "type": "integer" }
-      },
-      "required": [ "bar" ],
-      "additionalProperties": false
-    }
-  ]
-}
-```
-
-The intention of the schema above is to allow objects with either the string property "foo" or the integer property "bar", but not with both and not with any other properties.
-
-With the option `removeAdditional: true` the validation will pass for the object `{ "foo": "abc"}` but will fail for the object `{"bar": 1}`. It happens because while the first subschema in `oneOf` is validated, the property `bar` is removed because it is an additional property according to the standard (because it is not included in `properties` keyword in the same schema).
-
-While this behaviour is unexpected (issues [#129](https://github.com/epoberezkin/ajv/issues/129), [#134](https://github.com/epoberezkin/ajv/issues/134)), it is correct. To have the expected behaviour (both objects are allowed and additional properties are removed) the schema has to be refactored in this way:
-
-```JSON
-{
-  "type": "object",
-  "properties": {
-    "foo": { "type": "string" },
-    "bar": { "type": "integer" }
-  },
-  "additionalProperties": false,
-  "oneOf": [
-    { "required": [ "foo" ] },
-    { "required": [ "bar" ] }
-  ]
-}
-```
-
-The schema above is also more efficient - it will compile into a faster function.
-
-
-## Assigning defaults
-
-With [option `useDefaults`](#options) Ajv will assign values from `default` keyword in the schemas of `properties` and `items` (when it is the array of schemas) to the missing properties and items.
-
-This option modifies original data.
-
-__Please note__: by default the default value is inserted in the generated validation code as a literal (starting from v4.0), so the value inserted in the data will be the deep clone of the default in the schema.
-
-If you need to insert the default value in the data by reference pass the option `useDefaults: "shared"`.
-
-Inserting defaults by reference can be faster (in case you have an object in `default`) and it allows to have dynamic values in defaults, e.g. timestamp, without recompiling the schema. The side effect is that modifying the default value in any validated data instance will change the default in the schema and in other validated data instances. See example 3 below.
-
-
-Example 1 (`default` in `properties`):
-
-```javascript
-var ajv = new Ajv({ useDefaults: true });
-var schema = {
-  "type": "object",
-  "properties": {
-    "foo": { "type": "number" },
-    "bar": { "type": "string", "default": "baz" }
-  },
-  "required": [ "foo", "bar" ]
-};
-
-var data = { "foo": 1 };
-
-var validate = ajv.compile(schema);
-
-console.log(validate(data)); // true
-console.log(data); // { "foo": 1, "bar": "baz" }
-```
-
-Example 2 (`default` in `items`):
-
-```javascript
-var schema = {
-  "type": "array",
-  "items": [
-    { "type": "number" },
-    { "type": "string", "default": "foo" }
-  ]
-}
-
-var data = [ 1 ];
-
-var validate = ajv.compile(schema);
-
-console.log(validate(data)); // true
-console.log(data); // [ 1, "foo" ]
-```
-
-Example 3 (inserting "defaults" by reference):
-
-```javascript
-var ajv = new Ajv({ useDefaults: 'shared' });
-
-var schema = {
-  properties: {
-    foo: {
-      default: { bar: 1 }
-    }
-  }
-}
-
-var validate = ajv.compile(schema);
-
-var data = {};
-console.log(validate(data)); // true
-console.log(data); // { foo: { bar: 1 } }
-
-data.foo.bar = 2;
-
-var data2 = {};
-console.log(validate(data2)); // true
-console.log(data2); // { foo: { bar: 2 } }
-```
-
-`default` keywords in other cases are ignored:
-
-- not in `properties` or `items` subschemas
-- in schemas inside `anyOf`, `oneOf` and `not` (see [#42](https://github.com/epoberezkin/ajv/issues/42))
-- in `if` subschema of v5 `switch` keyword
-- in schemas generated by custom macro keywords
-
-
-## Coercing data types
-
-When you are validating user inputs all your data properties are usually strings. The option `coerceTypes` allows you to have your data types coerced to the types specified in your schema `type` keywords, both to pass the validation and to use the correctly typed data afterwards.
-
-This option modifies original data.
-
-__Please note__: if you pass a scalar value to the validating function its type will be coerced and it will pass the validation, but the value of the variable you pass won't be updated because scalars are passed by value.
-
-
-Example 1:
-
-```javascript
-var ajv = new Ajv({ coerceTypes: true });
-var schema = {
-  "type": "object",
-  "properties": {
-    "foo": { "type": "number" },
-    "bar": { "type": "boolean" }
-  },
-  "required": [ "foo", "bar" ]
-};
-
-var data = { "foo": "1", "bar": "false" };
-
-var validate = ajv.compile(schema);
-
-console.log(validate(data)); // true
-console.log(data); // { "foo": 1, "bar": false }
-```
-
-Example 2 (array coercions):
-
-```javascript
-var ajv = new Ajv({ coerceTypes: 'array' });
-var schema = {
-  "properties": {
-    "foo": { "type": "array", "items": { "type": "number" } },
-    "bar": { "type": "boolean" }
-  }
-};
-
-var data = { "foo": "1", "bar": ["false"] };
-
-var validate = ajv.compile(schema);
-
-console.log(validate(data)); // true
-console.log(data); // { "foo": [1], "bar": false }
-```
-
-The coercion rules, as you can see from the example, are different from JavaScript both to validate user input as expected and to have the coercion reversible (to correctly validate cases where different types are defined in subschemas of "anyOf" and other compound keywords).
-
-See [Coercion rules](https://github.com/epoberezkin/ajv/blob/master/COERCION.md) for details.
-
-
-## API
-
-##### new Ajv(Object options) -&gt; Object
-
-Create Ajv instance.
-
-All the instance methods below are bound to the instance, so they can be used without the instance.
-
-
-##### .compile(Object schema) -&gt; Function&lt;Object data&gt;
-
-Generate validating function and cache the compiled schema for future use.
-
-Validating function returns boolean and has properties `errors` with the errors from the last validation (`null` if there were no errors) and `schema` with the reference to the original schema.
-
-Unless the option `validateSchema` is false, the schema will be validated against meta-schema and if schema is invalid the error will be thrown. See [options](#options).
-
-
-##### .compileAsync(Object schema, Function callback)
-
-Asyncronous version of `compile` method that loads missing remote schemas using asynchronous function in `options.loadSchema`. Callback will always be called with 2 parameters: error (or null) and validating function. Error will be not null in the following cases:
-
-- missing schema can't be loaded (`loadSchema` calls callback with error).
-- the schema containing missing reference is loaded, but the reference cannot be resolved.
-- schema (or some referenced schema) is invalid.
-
-The function compiles schema and loads the first missing schema multiple times, until all missing schemas are loaded.
-
-See example in [Asynchronous compilation](#asynchronous-compilation).
-
-
-##### .validate(Object schema|String key|String ref, data) -&gt; Boolean
-
-Validate data using passed schema (it will be compiled and cached).
-
-Instead of the schema you can use the key that was previously passed to `addSchema`, the schema id if it was present in the schema or any previously resolved reference.
-
-Validation errors will be available in the `errors` property of Ajv instance (`null` if there were no errors).
-
-__Please note__: every time this method is called the errors are overwritten so you need to copy them to another variable if you want to use them later.
-
-If the schema is asynchronous (has `$async` keyword on the top level) this method returns a Promise. See [Asynchronous validation](#asynchronous-validation).
-
-
-##### .addSchema(Array&lt;Object&gt;|Object schema [, String key])
-
-Add schema(s) to validator instance. This method does not compile schemas (but it still validates them). Because of that dependencies can be added in any order and circular dependencies are supported. It also prevents unnecessary compilation of schemas that are containers for other schemas but not used as a whole.
-
-Array of schemas can be passed (schemas should have ids), the second parameter will be ignored.
-
-Key can be passed that can be used to reference the schema and will be used as the schema id if there is no id inside the schema. If the key is not passed, the schema id will be used as the key.
-
-
-Once the schema is added, it (and all the references inside it) can be referenced in other schemas and used to validate data.
-
-Although `addSchema` does not compile schemas, explicit compilation is not required - the schema will be compiled when it is used first time.
-
-By default the schema is validated against meta-schema before it is added, and if the schema does not pass validation the exception is thrown. This behaviour is controlled by `validateSchema` option.
-
-
-##### .addMetaSchema(Array&lt;Object&gt;|Object schema [, String key])
-
-Adds meta schema(s) that can be used to validate other schemas. That function should be used instead of `addSchema` because there may be instance options that would compile a meta schema incorrectly (at the moment it is `removeAdditional` option).
-
-There is no need to explicitly add draft 4 meta schema (http://json-schema.org/draft-04/schema and http://json-schema.org/schema) - it is added by default, unless option `meta` is set to `false`. You only need to use it if you have a changed meta-schema that you want to use to validate your schemas. See `validateSchema`.
-
-With option `v5: true` [meta-schema that includes v5 keywords](https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-v5.json) also added.
-
-
-##### <a name="api-validateschema"></a>.validateSchema(Object schema) -&gt; Boolean
-
-Validates schema. This method should be used to validate schemas rather than `validate` due to the inconsistency of `uri` format in JSON-Schema standard.
-
-By default this method is called automatically when the schema is added, so you rarely need to use it directly.
-
-If schema doesn't have `$schema` property it is validated against draft 4 meta-schema (option `meta` should not be false) or against [v5 meta-schema](https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-v5.json#) if option `v5` is true.
-
-If schema has `$schema` property then the schema with this id (that should be previously added) is used to validate passed schema.
-
-Errors will be available at `ajv.errors`.
-
-
-##### .getSchema(String key) -&gt; Function&lt;Object data&gt;
-
-Retrieve compiled schema previously added with `addSchema` by the key passed to `addSchema` or by its full reference (id). Returned validating function has `schema` property with the reference to the original schema.
-
-
-##### .removeSchema([Object schema|String key|String ref|RegExp pattern])
-
-Remove added/cached schema. Even if schema is referenced by other schemas it can be safely removed as dependent schemas have local references.
-
-Schema can be removed using:
-- key passed to `addSchema`
-- it's full reference (id)
-- RegExp that should match schema id or key (meta-schemas won't be removed)
-- actual schema object that will be stable-stringified to remove schema from cache
-
-If no parameter is passed all schemas but meta-schemas will be removed and the cache will be cleared.
-
-
-##### <a name="api-addformat"></a>.addFormat(String name, String|RegExp|Function|Object format)
-
-Add custom format to validate strings. It can also be used to replace pre-defined formats for Ajv instance.
-
-Strings are converted to RegExp.
-
-Function should return validation result as `true` or `false`.
-
-If object is passed it should have properties `validate`, `compare` and `async`:
-
-- _validate_: a string, RegExp or a function as described above.
-- _compare_: an optional comparison function that accepts two strings and compares them according to the format meaning. This function is used with keywords `formatMaximum`/`formatMinimum` (from [v5 proposals](https://github.com/json-schema/json-schema/wiki/v5-Proposals) - `v5` option should be used). It should return `1` if the first value is bigger than the second value, `-1` if it is smaller and `0` if it is equal.
-- _async_: an optional `true` value if `validate` is an asynchronous function; in this case it should return a promise that resolves with a value `true` or `false`.
-
-Custom formats can be also added via `formats` option.
-
-
-##### <a name="api-addkeyword"></a>.addKeyword(String keyword, Object definition)
-
-Add custom validation keyword to Ajv instance.
-
-Keyword should be different from all standard JSON schema keywords and different from previously defined keywords. There is no way to redefine keywords or to remove keyword definition from the instance.
-
-Keyword must start with a letter, `_` or `$`, and may continue with letters, numbers, `_`, `$`, or `-`.
-It is recommended to use an application-specific prefix for keywords to avoid current and future name collisions.
-
-Example Keywords:
-- `"xyz-example"`: valid, and uses prefix for the xyz project to avoid name collisions.
-- `"example"`: valid, but not recommended as it could collide with future versions of JSON schema etc.
-- `"3-example"`: invalid as numbers are not allowed to be the first character in a keyword
-
-Keyword definition is an object with the following properties:
-
-- _type_: optional string or array of strings with data type(s) that the keyword applies to. If not present, the keyword will apply to all types.
-- _validate_: validating function
-- _compile_: compiling function
-- _macro_: macro function
-- _inline_: compiling function that returns code (as string)
-- _schema_: an optional `false` value used with "validate" keyword to not pass schema
-- _metaSchema_: an optional meta-schema for keyword schema
-- _modifying_: `true` MUST be passed if keyword modifies data
-- _valid_: pass `true`/`false` to pre-define validation result, the result returned from validation function will be ignored. This option cannot be used with macro keywords.
-- _$data_: an optional `true` value to support [$data reference](#data-reference) as the value of custom keyword. The reference will be resolved at validation time. If the keyword has meta-schema it would be extended to allow $data and it will be used to validate the resolved value. Supporting $data reference requires that keyword has validating function (as the only option or in addition to compile, macro or inline function).
-- _async_: an optional `true` value if the validation function is asynchronous (whether it is compiled or passed in _validate_ property); in this case it should return a promise that resolves with a value `true` or `false`. This option is ignored in case of "macro" and "inline" keywords.
-- _errors_: an optional boolean indicating whether keyword returns errors. If this property is not set Ajv will determine if the errors were set in case of failed validation.
-
-_compile_, _macro_ and _inline_ are mutually exclusive, only one should be used at a time. _validate_ can be used separately or in addition to them to support $data reference.
-
-__Please note__: If the keyword is validating data type that is different from the type(s) in its definition, the validation function will not be called (and expanded macro will not be used), so there is no need to check for data type inside validation function or inside schema returned by macro function (unless you want to enforce a specific type and for some reason do not want to use a separate `type` keyword for that). In the same way as standard keywords work, if the keyword does not apply to the data type being validated, the validation of this keyword will succeed.
-
-See [Defining custom keywords](#defining-custom-keywords) for more details.
-
-
-##### .getKeyword(String keyword) -&gt; Object|Boolean
-
-Returns custom keyword definition, `true` for pre-defined keywords and `false` if the keyword is unknown.
-
-
-##### .removeKeyword(String keyword)
-
-Removes custom or pre-defined keyword so you can redefine them.
-
-While this method can be used to extend pre-defined keywords, it can also be used to completely change their meaning - it may lead to unexpected results.
-
-__Please note__: schemas compiled before the keyword is removed will continue to work without changes. To recompile schemas use `removeSchema` method and compile them again.
-
-
-##### .errorsText([Array&lt;Object&gt; errors [, Object options]]) -&gt; String
-
-Returns the text with all errors in a String.
-
-Options can have properties `separator` (string used to separate errors, ", " by default) and `dataVar` (the variable name that dataPaths are prefixed with, "data" by default).
-
-
-## Options
-
-Defaults:
-
-```javascript
-{
-  // validation and reporting options:
-  v5:               false,
-  allErrors:        false,
-  verbose:          false,
-  jsonPointers:     false,
-  uniqueItems:      true,
-  unicode:          true,
-  format:           'fast',
-  formats:          {},
-  unknownFormats:   'ignore',
-  schemas:          {},
-  // referenced schema options:
-  missingRefs:      true,
-  extendRefs:       true,
-  loadSchema:       undefined, // function(uri, cb) { /* ... */ cb(err, schema); },
-  // options to modify validated data:
-  removeAdditional: false,
-  useDefaults:      false,
-  coerceTypes:      false,
-  // asynchronous validation options:
-  async:            undefined,
-  transpile:        undefined,
-  // advanced options:
-  meta:             true,
-  validateSchema:   true,
-  addUsedSchema:    true,
-  inlineRefs:       true,
-  passContext:      false,
-  loopRequired:     Infinity,
-  ownProperties:    false,
-  multipleOfPrecision: false,
-  errorDataPath:    'object',
-  sourceCode:       true,
-  messages:         true,
-  beautify:         false,
-  cache:            new Cache
-}
-```
-
-##### Validation and reporting options
-
-- _v5_: add keywords `switch`, `constant`, `contains`, `patternGroups`, `patternRequired`, `formatMaximum` / `formatMinimum` and `formatExclusiveMaximum` / `formatExclusiveMinimum` from [JSON-schema v5 proposals](https://github.com/json-schema/json-schema/wiki/v5-Proposals). With this option added schemas without `$schema` property are validated against [v5 meta-schema](https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-v5.json#). `false` by default.
-- _allErrors_: check all rules collecting all errors. Default is to return after the first error.
-- _verbose_: include the reference to the part of the schema (`schema` and `parentSchema`) and validated data in errors (false by default).
-- _jsonPointers_: set `dataPath` propery of errors using [JSON Pointers](https://tools.ietf.org/html/rfc6901) instead of JavaScript property access notation.
-- _uniqueItems_: validate `uniqueItems` keyword (true by default).
-- _unicode_: calculate correct length of strings with unicode pairs (true by default). Pass `false` to use `.length` of strings that is faster, but gives "incorrect" lengths of strings with unicode pairs - each unicode pair is counted as two characters.
-- _format_: formats validation mode ('fast' by default). Pass 'full' for more correct and slow validation or `false` not to validate formats at all. E.g., 25:00:00 and 2015/14/33 will be invalid time and date in 'full' mode but it will be valid in 'fast' mode.
-- _formats_: an object with custom formats. Keys and values will be passed to `addFormat` method.
-- _unknownFormats_: handling of unknown formats. Option values:
-  - `true` (will be default in 5.0.0) - if the unknown format is encountered the exception is thrown during schema compilation. If `format` keyword value is [v5 $data reference](#data-reference) and it is unknown the validation will fail.
-  - `[String]` - an array of unknown format names that will be ignored. This option can be used to allow usage of third party schemas with format(s) for which you don't have definitions, but still fail if some other unknown format is used. If `format` keyword value is [v5 $data reference](#data-reference) and it is not in this array the validation will fail.
-  - `"ignore"` (default now) - to log warning during schema compilation and always pass validation. This option is not recommended, as it allows to mistype format name. This behaviour is required by JSON-schema specification.
-- _schemas_: an array or object of schemas that will be added to the instance. If the order is important, pass array. In this case schemas must have IDs in them. Otherwise the object can be passed - `addSchema(value, key)` will be called for each schema in this object.
-
-
-##### Referenced schema options
-
-- _missingRefs_: handling of missing referenced schemas. Option values:
-  - `true` (default) - if the reference cannot be resolved during compilation the exception is thrown. The thrown error has properties `missingRef` (with hash fragment) and `missingSchema` (without it). Both properties are resolved relative to the current base id (usually schema id, unless it was substituted).
-  - `"ignore"` - to log error during compilation and always pass validation.
-  - `"fail"` - to log error and successfully compile schema but fail validation if this rule is checked.
-- _extendRefs_: validation of other keywords when `$ref` is present in the schema. Option values:
-  - `true` (default) - validate all keywords in the schemas with `$ref`.
-  - `"ignore"` - when `$ref` is used other keywords are ignored (as per [JSON Reference](https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03#section-3) standard). A warning will be logged during the schema compilation.
-  - `"fail"` - if other validation keywords are used together with `$ref` the exception will be throw when the schema is compiled.
-- _loadSchema_: asynchronous function that will be used to load remote schemas when the method `compileAsync` is used and some reference is missing (option `missingRefs` should NOT be 'fail' or 'ignore'). This function should accept 2 parameters: remote schema uri and node-style callback. See example in [Asynchronous compilation](#asynchronous-compilation).
-
-
-##### Options to modify validated data
-
-- _removeAdditional_: remove additional properties - see example in [Filtering data](#filtering-data). This option is not used if schema is added with `addMetaSchema` method. Option values:
-  - `false` (default) - not to remove additional properties
-  - `"all"` - all additional properties are removed, regardless of `additionalProperties` keyword in schema (and no validation is made for them).
-  - `true` - only additional properties with `additionalProperties` keyword equal to `false` are removed.
-  - `"failing"` - additional properties that fail schema validation will be removed (where `additionalProperties` keyword is `false` or schema).
-- _useDefaults_: replace missing properties and items with the values from corresponding `default` keywords. Default behaviour is to ignore `default` keywords. This option is not used if schema is added with `addMetaSchema` method. See examples in [Assigning defaults](#assigning-defaults). Option values:
-  - `false` (default) - do not use defaults
-  - `true` - insert defaults by value (safer and slower, object literal is used).
-  - `"shared"` - insert defaults by reference (faster). If the default is an object, it will be shared by all instances of validated data. If you modify the inserted default in the validated data, it will be modified in the schema as well.
-- _coerceTypes_: change data type of data to match `type` keyword. See the example in [Coercing data types](#coercing-data-types) and [coercion rules](https://github.com/epoberezkin/ajv/blob/master/COERCION.md). Option values:
-  - `false` (default) - no type coercion.
-  - `true` - coerce scalar data types.
-  - `"array"` - in addition to coercions between scalar types, coerce scalar data to an array with one element and vice versa (as required by the schema).
-
-
-##### Asynchronous validation options
-
-- _async_: determines how Ajv compiles asynchronous schemas (see [Asynchronous validation](#asynchronous-validation)) to functions. Option values:
-  - `"*"` / `"co*"` - compile to generator function ("co*" - wrapped with `co.wrap`). If generators are not supported and you don't provide `transpile` option, the exception will be thrown when Ajv instance is created.
-  - `"es7"` - compile to es7 async function. Unless your platform supports them you need to provide `transpile` option. Currently only MS Edge 13 with flag supports es7 async functions according to [compatibility table](http://kangax.github.io/compat-table/es7/)).
-  - `true` - if transpile option is not passed Ajv will choose the first supported/installed async/transpile modes in this order: "co*" (native generator with co.wrap), "es7"/"nodent", "co*"/"regenerator" during the creation of the Ajv instance. If none of the options is available the exception will be thrown.
-  - `undefined`- Ajv will choose the first available async mode in the same way as with `true` option but when the first asynchronous schema is compiled.
-- _transpile_: determines whether Ajv transpiles compiled asynchronous validation function. Option values:
-  - `"nodent"` - transpile with [nodent](https://github.com/MatAtBread/nodent). If nodent is not installed, the exception will be thrown. nodent can only transpile es7 async functions; it will enforce this mode.
-  - `"regenerator"` - transpile with [regenerator](https://github.com/facebook/regenerator). If regenerator is not installed, the exception will be thrown.
-  - a function - this function should accept the code of validation function as a string and return transpiled code. This option allows you to use any other transpiler you prefer.
-
-
-##### Advanced options
-
-- _meta_: add [meta-schema](http://json-schema.org/documentation.html) so it can be used by other schemas (true by default). With option `v5: true` [v5 meta-schema](https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-v5.json#) will be added as well. If an object is passed, it will be used as the default meta-schema for schemas that have no `$schema` keyword. This default meta-schema MUST have `$schema` keyword.
-- _validateSchema_: validate added/compiled schemas against meta-schema (true by default). `$schema` property in the schema can either be http://json-schema.org/schema or http://json-schema.org/draft-04/schema or absent (draft-4 meta-schema will be used) or can be a reference to the schema previously added with `addMetaSchema` method. Option values:
-  - `true` (default) -  if the validation fails, throw the exception.
-  - `"log"` - if the validation fails, log error.
-  - `false` - skip schema validation.
-- _addUsedSchema_: by default methods `compile` and `validate` add schemas to the instance if they have `id` property that doesn't start with "#". If `id` is present and it is not unique the exception will be thrown. Set this option to `false` to skip adding schemas to the instance and the `id` uniqueness check when these methods are used. This option does not affect `addSchema` method.
-- _inlineRefs_: Affects compilation of referenced schemas. Option values:
-  - `true` (default) - the referenced schemas that don't have refs in them are inlined, regardless of their size - that substantially improves performance at the cost of the bigger size of compiled schema functions.
-  - `false` - to not inline referenced schemas (they will be compiled as separate functions).
-  - integer number - to limit the maximum number of keywords of the schema that will be inlined.
-- _passContext_: pass validation context to custom keyword functions. If this option is `true` and you pass some context to the compiled validation function with `validate.call(context, data)`, the `context` will be available as `this` in your custom keywords. By default `this` is Ajv instance.
-- _loopRequired_: by default `required` keyword is compiled into a single expression (or a sequence of statements in `allErrors` mode). In case of a very large number of properties in this keyword it may result in a very big validation function. Pass integer to set the number of properties above which `required` keyword will be validated in a loop - smaller validation function size but also worse performance.
-- _ownProperties_: by default ajv iterates over all enumerable object properties; when this option is `true` only own enumerable object properties (i.e. found directly on the object rather than on its prototype) are iterated. Contributed by @mbroadst.
-- _multipleOfPrecision_: by default `multipleOf` keyword is validated by comparing the result of division with parseInt() of that result. It works for dividers that are bigger than 1. For small dividers such as 0.01 the result of the division is usually not integer (even when it should be integer, see issue [#84](https://github.com/epoberezkin/ajv/issues/84)). If you need to use fractional dividers set this option to some positive integer N to have `multipleOf` validated using this formula: `Math.abs(Math.round(division) - division) < 1e-N` (it is slower but allows for float arithmetics deviations).
-- _errorDataPath_: set `dataPath` to point to 'object' (default) or to 'property' when validating keywords `required`, `additionalProperties` and `dependencies`.
-- _sourceCode_: add `sourceCode` property to validating function (for debugging; this code can be different from the result of toString call).
-- _messages_: Include human-readable messages in errors. `true` by default. `false` can be passed when custom messages are used (e.g. with [ajv-i18n](https://github.com/epoberezkin/ajv-i18n)).
-- _beautify_: format the generated function with [js-beautify](https://github.com/beautify-web/js-beautify) (the validating function is generated without line-breaks). `npm install js-beautify` to use this option. `true` or js-beautify options can be passed.
-- _cache_: an optional instance of cache to store compiled schemas using stable-stringified schema as a key. For example, set-associative cache [sacjs](https://github.com/epoberezkin/sacjs) can be used. If not passed then a simple hash is used which is good enough for the common use case (a limited number of statically defined schemas). Cache should have methods `put(key, value)`, `get(key)`, `del(key)` and `clear()`.
-
-
-## Validation errors
-
-In case of validation failure Ajv assigns the array of errors to `.errors` property of validation function (or to `.errors` property of Ajv instance in case `validate` or `validateSchema` methods were called). In case of [asynchronous validation](#asynchronous-validation) the returned promise is rejected with the exception of the class `Ajv.ValidationError` that has `.errors` poperty.
-
-
-### Error objects
-
-Each error is an object with the following properties:
-
-- _keyword_: validation keyword.
-- _dataPath_: the path to the part of the data that was validated. By default `dataPath` uses JavaScript property access notation (e.g., `".prop[1].subProp"`). When the option `jsonPointers` is true (see [Options](#options)) `dataPath` will be set using JSON pointer standard (e.g., `"/prop/1/subProp"`).
-- _schemaPath_: the path (JSON-pointer as a URI fragment) to the schema of the keyword that failed validation.
-- _params_: the object with the additional information about error that can be used to create custom error messages (e.g., using [ajv-i18n](https://github.com/epoberezkin/ajv-i18n) package). See below for parameters set by all keywords.
-- _message_: the standard error message (can be excluded with option `messages` set to false).
-- _schema_: the schema of the keyword (added with `verbose` option).
-- _parentSchema_: the schema containing the keyword (added with `verbose` option)
-- _data_: the data validated by the keyword (added with `verbose` option).
-
-
-### Error parameters
-
-Properties of `params` object in errors depend on the keyword that failed validation.
-
-- `maxItems`, `minItems`, `maxLength`, `minLength`, `maxProperties`, `minProperties` - property `limit` (number, the schema of the keyword).
-- `additionalItems` - property `limit` (the maximum number of allowed items in case when `items` keyword is an array of schemas and `additionalItems` is false).
-- `additionalProperties` - property `additionalProperty` (the property not used in `properties` and `patternProperties` keywords).
-- `patternGroups` (with v5 option) - properties:
-  - `pattern`
-  - `reason` ("minimum"/"maximum"),
-  - `limit` (max/min allowed number of properties matching number)
-- `dependencies` - properties:
-  - `property` (dependent property),
-  - `missingProperty` (required missing dependency - only the first one is reported currently)
-  - `deps` (required dependencies, comma separated list as a string),
-  - `depsCount` (the number of required dependedncies).
-- `format` - property `format` (the schema of the keyword).
-- `maximum`, `minimum` - properties:
-  - `limit` (number, the schema of the keyword),
-  - `exclusive` (boolean, the schema of `exclusiveMaximum` or `exclusiveMinimum`),
-  - `comparison` (string, comparison operation to compare the data to the limit, with the data on the left and the limit on the right; can be "<", "<=", ">", ">=")
-- `multipleOf` - property `multipleOf` (the schema of the keyword)
-- `pattern` - property `pattern` (the schema of the keyword)
-- `required` - property `missingProperty` (required property that is missing).
-- `patternRequired` (with v5 option) - property `missingPattern` (required pattern that did not match any property).
-- `type` - property `type` (required type(s), a string, can be a comma-separated list)
-- `uniqueItems` - properties `i` and `j` (indices of duplicate items).
-- `enum` - property `allowedValues` pointing to the array of values (the schema of the keyword).
-- `$ref` - property `ref` with the referenced schema URI.
-- custom keywords (in case keyword definition doesn't create errors) - property `keyword` (the keyword name).
-
-
-## Related packages
-
-- [ajv-cli](https://github.com/epoberezkin/ajv-cli) - command line interface for Ajv
-- [ajv-i18n](https://github.com/epoberezkin/ajv-i18n) - internationalised error messages
-- [ajv-merge-patch](https://github.com/epoberezkin/ajv-merge-patch) - keywords $merge and $patch from v5 proposals.
-- [ajv-keywords](https://github.com/epoberezkin/ajv-keywords) - several custom keywords that can be used with Ajv (typeof, instanceof, range, propertyNames)
-
-
-## Some packages using Ajv
-
-- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser
-- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services
-- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition
-- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator
-- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org
-- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON-schema http://jsonschemalint.com
-- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for node.js
-- [table](https://github.com/gajus/table) - formats data into a string table
-- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser
-- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content
-- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation
-- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation
-- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages
-- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema
-- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON-schema with expect in mocha tests
-- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON-Schema
-- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file
-- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app 
-- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter
-- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages
-
-
-## Tests
-
-```
-npm install
-git submodule update --init
-npm test
-```
-
-## Contributing
-
-All validation functions are generated using doT templates in [dot](https://github.com/epoberezkin/ajv/tree/master/lib/dot) folder. Templates are precompiled so doT is not a run-time dependency.
-
-`npm run build` - compiles templates to [dotjs](https://github.com/epoberezkin/ajv/tree/master/lib/dotjs) folder.
-
-`npm run watch` - automatically compiles templates when files in dot folder change
-
-Please see [Contributing guidelines](https://github.com/epoberezkin/ajv/blob/master/CONTRIBUTING.md)
-
-
-## Changes history
-
-See https://github.com/epoberezkin/ajv/releases
-
-__Please note__: [Changes in version 5.0.1-beta](https://github.com/epoberezkin/ajv/releases/tag/5.0.1-beta.0).
-
-[Changes in version 4.6.0](https://github.com/epoberezkin/ajv/releases/tag/4.6.0).
-
-[Changes in version 4.0.0](https://github.com/epoberezkin/ajv/releases/tag/4.0.0).
-
-[Changes in version 3.0.0](https://github.com/epoberezkin/ajv/releases/tag/3.0.0).
-
-[Changes in version 2.0.0](https://github.com/epoberezkin/ajv/releases/tag/2.0.0).
-
-
-## License
-
-[MIT](https://github.com/epoberezkin/ajv/blob/master/LICENSE)


[26/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/balanced-match/index.js
----------------------------------------------------------------------
diff --git a/node_modules/balanced-match/index.js b/node_modules/balanced-match/index.js
deleted file mode 100644
index e8d8587..0000000
--- a/node_modules/balanced-match/index.js
+++ /dev/null
@@ -1,58 +0,0 @@
-module.exports = balanced;
-function balanced(a, b, str) {
-  if (a instanceof RegExp) a = maybeMatch(a, str);
-  if (b instanceof RegExp) b = maybeMatch(b, str);
-
-  var r = range(a, b, str);
-
-  return r && {
-    start: r[0],
-    end: r[1],
-    pre: str.slice(0, r[0]),
-    body: str.slice(r[0] + a.length, r[1]),
-    post: str.slice(r[1] + b.length)
-  };
-}
-
-function maybeMatch(reg, str) {
-  var m = str.match(reg);
-  return m ? m[0] : null;
-}
-
-balanced.range = range;
-function range(a, b, str) {
-  var begs, beg, left, right, result;
-  var ai = str.indexOf(a);
-  var bi = str.indexOf(b, ai + 1);
-  var i = ai;
-
-  if (ai >= 0 && bi > 0) {
-    begs = [];
-    left = str.length;
-
-    while (i >= 0 && !result) {
-      if (i == ai) {
-        begs.push(i);
-        ai = str.indexOf(a, i + 1);
-      } else if (begs.length == 1) {
-        result = [ begs.pop(), bi ];
-      } else {
-        beg = begs.pop();
-        if (beg < left) {
-          left = beg;
-          right = bi;
-        }
-
-        bi = str.indexOf(b, i + 1);
-      }
-
-      i = ai < bi && ai >= 0 ? ai : bi;
-    }
-
-    if (begs.length) {
-      result = [ left, right ];
-    }
-  }
-
-  return result;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/balanced-match/package.json
----------------------------------------------------------------------
diff --git a/node_modules/balanced-match/package.json b/node_modules/balanced-match/package.json
deleted file mode 100644
index 636f847..0000000
--- a/node_modules/balanced-match/package.json
+++ /dev/null
@@ -1,111 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "balanced-match@^0.4.1",
-        "scope": null,
-        "escapedName": "balanced-match",
-        "name": "balanced-match",
-        "rawSpec": "^0.4.1",
-        "spec": ">=0.4.1 <0.5.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/brace-expansion"
-    ]
-  ],
-  "_from": "balanced-match@>=0.4.1 <0.5.0",
-  "_id": "balanced-match@0.4.2",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/balanced-match",
-  "_nodeVersion": "4.4.7",
-  "_npmOperationalInternal": {
-    "host": "packages-16-east.internal.npmjs.com",
-    "tmp": "tmp/balanced-match-0.4.2.tgz_1468834991581_0.6590619895141572"
-  },
-  "_npmUser": {
-    "name": "juliangruber",
-    "email": "julian@juliangruber.com"
-  },
-  "_npmVersion": "2.15.8",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "balanced-match@^0.4.1",
-    "scope": null,
-    "escapedName": "balanced-match",
-    "name": "balanced-match",
-    "rawSpec": "^0.4.1",
-    "spec": ">=0.4.1 <0.5.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/brace-expansion"
-  ],
-  "_resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
-  "_shasum": "cb3f3e3c732dc0f01ee70b403f302e61d7709838",
-  "_shrinkwrap": null,
-  "_spec": "balanced-match@^0.4.1",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/brace-expansion",
-  "author": {
-    "name": "Julian Gruber",
-    "email": "mail@juliangruber.com",
-    "url": "http://juliangruber.com"
-  },
-  "bugs": {
-    "url": "https://github.com/juliangruber/balanced-match/issues"
-  },
-  "dependencies": {},
-  "description": "Match balanced character pairs, like \"{\" and \"}\"",
-  "devDependencies": {
-    "tape": "^4.6.0"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "cb3f3e3c732dc0f01ee70b403f302e61d7709838",
-    "tarball": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz"
-  },
-  "gitHead": "57c2ea29d89a2844ae3bdcc637c6e2cbb73725e2",
-  "homepage": "https://github.com/juliangruber/balanced-match",
-  "keywords": [
-    "match",
-    "regexp",
-    "test",
-    "balanced",
-    "parse"
-  ],
-  "license": "MIT",
-  "main": "index.js",
-  "maintainers": [
-    {
-      "name": "juliangruber",
-      "email": "julian@juliangruber.com"
-    }
-  ],
-  "name": "balanced-match",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/juliangruber/balanced-match.git"
-  },
-  "scripts": {
-    "test": "make test"
-  },
-  "testling": {
-    "files": "test/*.js",
-    "browsers": [
-      "ie/8..latest",
-      "firefox/20..latest",
-      "firefox/nightly",
-      "chrome/25..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.4.2"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/basic-auth/HISTORY.md
----------------------------------------------------------------------
diff --git a/node_modules/basic-auth/HISTORY.md b/node_modules/basic-auth/HISTORY.md
deleted file mode 100644
index 7c4df51..0000000
--- a/node_modules/basic-auth/HISTORY.md
+++ /dev/null
@@ -1,40 +0,0 @@
-1.1.0 / 2016-11-18
-==================
-
-  * Add `auth.parse` for low-level string parsing
-
-1.0.4 / 2016-05-10
-==================
-
-  * Improve error message when `req` argument is not an object
-  * Improve error message when `req` missing `headers` property
-
-1.0.3 / 2015-07-01
-==================
-
-  * Fix regression accepting a Koa context
-
-1.0.2 / 2015-06-12
-==================
-
-  * Improve error message when `req` argument missing
-  * perf: enable strict mode
-  * perf: hoist regular expression
-  * perf: parse with regular expressions
-  * perf: remove argument reassignment
-
-1.0.1 / 2015-05-04
-==================
-
-  * Update readme
-
-1.0.0 / 2014-07-01
-==================
-
-  * Support empty password
-  * Support empty username
-
-0.0.1 / 2013-11-30
-==================
-
-  * Initial release

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/basic-auth/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/basic-auth/LICENSE b/node_modules/basic-auth/LICENSE
deleted file mode 100644
index 89041f6..0000000
--- a/node_modules/basic-auth/LICENSE
+++ /dev/null
@@ -1,24 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2013 TJ Holowaychuk
-Copyright (c) 2014 Jonathan Ong <me...@jongleberry.com>
-Copyright (c) 2015-2016 Douglas Christopher Wilson <do...@somethingdoug.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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/basic-auth/README.md
----------------------------------------------------------------------
diff --git a/node_modules/basic-auth/README.md b/node_modules/basic-auth/README.md
deleted file mode 100644
index 476c90b..0000000
--- a/node_modules/basic-auth/README.md
+++ /dev/null
@@ -1,100 +0,0 @@
-# basic-auth
-
-[![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]
-
-Generic basic auth Authorization header field parser for whatever.
-
-## Installation
-
-This is a [Node.js](https://nodejs.org/en/) module available through the
-[npm registry](https://www.npmjs.com/). Installation is done using the
-[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):
-
-```
-$ npm install basic-auth
-```
-
-## API
-
-<!-- eslint-disable no-unused-vars -->
-
-```js
-var auth = require('basic-auth')
-```
-
-### auth(req)
-
-Get the basic auth credentials from the given request. The `Authorization`
-header is parsed and if the header is invalid, `undefined` is returned,
-otherwise an object with `name` and `pass` properties.
-
-### auth.parse(string)
-
-Parse a basic auth authorization header string. This will return an object
-with `name` and `pass` properties, or `undefined` if the string is invalid.
-
-## Example
-
-Pass a node request or koa Context object to the module exported. If
-parsing fails `undefined` is returned, otherwise an object with
-`.name` and `.pass`.
-
-<!-- eslint-disable no-unused-vars, no-undef -->
-
-```js
-var auth = require('basic-auth')
-var user = auth(req)
-// => { name: 'something', pass: 'whatever' }
-```
-
-A header string from any other location can also be parsed with
-`auth.parse`, for example a `Proxy-Authorization` header:
-
-<!-- eslint-disable no-unused-vars, no-undef -->
-
-```js
-var auth = require('basic-auth')
-var user = auth.parse(req.getHeader('Proxy-Authorization'))
-```
-
-### With vanilla node.js http server
-
-```js
-var http = require('http')
-var auth = require('basic-auth')
-
-// Create server
-var server = http.createServer(function (req, res) {
-  var credentials = auth(req)
-
-  if (!credentials || credentials.name !== 'john' || credentials.pass !== 'secret') {
-    res.statusCode = 401
-    res.setHeader('WWW-Authenticate', 'Basic realm="example"')
-    res.end('Access denied')
-  } else {
-    res.end('Access granted')
-  }
-})
-
-// Listen
-server.listen(3000)
-```
-
-# License
-
-[MIT](LICENSE)
-
-[npm-image]: https://img.shields.io/npm/v/basic-auth.svg
-[npm-url]: https://npmjs.org/package/basic-auth
-[node-version-image]: https://img.shields.io/node/v/basic-auth.svg
-[node-version-url]: https://nodejs.org/en/download
-[travis-image]: https://img.shields.io/travis/jshttp/basic-auth/master.svg
-[travis-url]: https://travis-ci.org/jshttp/basic-auth
-[coveralls-image]: https://img.shields.io/coveralls/jshttp/basic-auth/master.svg
-[coveralls-url]: https://coveralls.io/r/jshttp/basic-auth?branch=master
-[downloads-image]: https://img.shields.io/npm/dm/basic-auth.svg
-[downloads-url]: https://npmjs.org/package/basic-auth

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/basic-auth/index.js
----------------------------------------------------------------------
diff --git a/node_modules/basic-auth/index.js b/node_modules/basic-auth/index.js
deleted file mode 100644
index 652cbdb..0000000
--- a/node_modules/basic-auth/index.js
+++ /dev/null
@@ -1,126 +0,0 @@
-/*!
- * basic-auth
- * Copyright(c) 2013 TJ Holowaychuk
- * Copyright(c) 2014 Jonathan Ong
- * Copyright(c) 2015-2016 Douglas Christopher Wilson
- * MIT Licensed
- */
-
-'use strict'
-
-/**
- * Module exports.
- * @public
- */
-
-module.exports = auth
-module.exports.parse = parse
-
-/**
- * RegExp for basic auth credentials
- *
- * credentials = auth-scheme 1*SP token68
- * auth-scheme = "Basic" ; case insensitive
- * token68     = 1*( ALPHA / DIGIT / "-" / "." / "_" / "~" / "+" / "/" ) *"="
- * @private
- */
-
-var CREDENTIALS_REGEXP = /^ *(?:[Bb][Aa][Ss][Ii][Cc]) +([A-Za-z0-9._~+/-]+=*) *$/
-
-/**
- * RegExp for basic auth user/pass
- *
- * user-pass   = userid ":" password
- * userid      = *<TEXT excluding ":">
- * password    = *TEXT
- * @private
- */
-
-var USER_PASS_REGEXP = /^([^:]*):(.*)$/
-
-/**
- * Parse the Authorization header field of a request.
- *
- * @param {object} req
- * @return {object} with .name and .pass
- * @public
- */
-
-function auth (req) {
-  if (!req) {
-    throw new TypeError('argument req is required')
-  }
-
-  if (typeof req !== 'object') {
-    throw new TypeError('argument req is required to be an object')
-  }
-
-  // get header
-  var header = getAuthorization(req.req || req)
-
-  // parse header
-  return parse(header)
-}
-
-/**
- * Decode base64 string.
- * @private
- */
-
-function decodeBase64 (str) {
-  return new Buffer(str, 'base64').toString()
-}
-
-/**
- * Get the Authorization header from request object.
- * @private
- */
-
-function getAuthorization (req) {
-  if (!req.headers || typeof req.headers !== 'object') {
-    throw new TypeError('argument req is required to have headers property')
-  }
-
-  return req.headers.authorization
-}
-
-/**
- * Parse basic auth to object.
- *
- * @param {string} string
- * @return {object}
- * @public
- */
-
-function parse (string) {
-  if (typeof string !== 'string') {
-    return undefined
-  }
-
-  // parse header
-  var match = CREDENTIALS_REGEXP.exec(string)
-
-  if (!match) {
-    return undefined
-  }
-
-  // decode user pass
-  var userPass = USER_PASS_REGEXP.exec(decodeBase64(match[1]))
-
-  if (!userPass) {
-    return undefined
-  }
-
-  // return credentials object
-  return new Credentials(userPass[1], userPass[2])
-}
-
-/**
- * Object to represent user credentials.
- * @private
- */
-
-function Credentials (name, pass) {
-  this.name = name
-  this.pass = pass
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/basic-auth/package.json
----------------------------------------------------------------------
diff --git a/node_modules/basic-auth/package.json b/node_modules/basic-auth/package.json
deleted file mode 100644
index 6ccd28e..0000000
--- a/node_modules/basic-auth/package.json
+++ /dev/null
@@ -1,116 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "basic-auth@~1.1.0",
-        "scope": null,
-        "escapedName": "basic-auth",
-        "name": "basic-auth",
-        "rawSpec": "~1.1.0",
-        "spec": ">=1.1.0 <1.2.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/morgan"
-    ]
-  ],
-  "_from": "basic-auth@>=1.1.0 <1.2.0",
-  "_id": "basic-auth@1.1.0",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/basic-auth",
-  "_npmOperationalInternal": {
-    "host": "packages-18-east.internal.npmjs.com",
-    "tmp": "tmp/basic-auth-1.1.0.tgz_1479495426183_0.6680189804174006"
-  },
-  "_npmUser": {
-    "name": "dougwilson",
-    "email": "doug@somethingdoug.com"
-  },
-  "_npmVersion": "1.4.28",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "basic-auth@~1.1.0",
-    "scope": null,
-    "escapedName": "basic-auth",
-    "name": "basic-auth",
-    "rawSpec": "~1.1.0",
-    "spec": ">=1.1.0 <1.2.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/morgan"
-  ],
-  "_resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.1.0.tgz",
-  "_shasum": "45221ee429f7ee1e5035be3f51533f1cdfd29884",
-  "_shrinkwrap": null,
-  "_spec": "basic-auth@~1.1.0",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/morgan",
-  "bugs": {
-    "url": "https://github.com/jshttp/basic-auth/issues"
-  },
-  "dependencies": {},
-  "description": "node.js basic auth parser",
-  "devDependencies": {
-    "eslint": "3.10.2",
-    "eslint-config-standard": "6.2.1",
-    "eslint-plugin-markdown": "1.0.0-beta.3",
-    "eslint-plugin-promise": "3.4.0",
-    "eslint-plugin-standard": "2.0.1",
-    "istanbul": "0.4.5",
-    "mocha": "1.21.5"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "45221ee429f7ee1e5035be3f51533f1cdfd29884",
-    "tarball": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.1.0.tgz"
-  },
-  "engines": {
-    "node": ">= 0.6"
-  },
-  "files": [
-    "HISTORY.md",
-    "LICENSE",
-    "index.js"
-  ],
-  "gitHead": "5a0fcd9f4dbf72e2a105d4e815987d3492925875",
-  "homepage": "https://github.com/jshttp/basic-auth",
-  "keywords": [
-    "basic",
-    "auth",
-    "authorization",
-    "basicauth"
-  ],
-  "license": "MIT",
-  "maintainers": [
-    {
-      "name": "dougwilson",
-      "email": "doug@somethingdoug.com"
-    },
-    {
-      "name": "jonathanong",
-      "email": "jonathanrichardong@gmail.com"
-    },
-    {
-      "name": "jongleberry",
-      "email": "jonathanrichardong@gmail.com"
-    },
-    {
-      "name": "tjholowaychuk",
-      "email": "tj@vision-media.ca"
-    }
-  ],
-  "name": "basic-auth",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/jshttp/basic-auth.git"
-  },
-  "scripts": {
-    "lint": "eslint --plugin markdown --ext js,md .",
-    "test": "mocha --check-leaks --reporter spec --bail",
-    "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/",
-    "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"
-  },
-  "version": "1.1.0"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bcrypt-pbkdf/README.md
----------------------------------------------------------------------
diff --git a/node_modules/bcrypt-pbkdf/README.md b/node_modules/bcrypt-pbkdf/README.md
deleted file mode 100644
index 1201809..0000000
--- a/node_modules/bcrypt-pbkdf/README.md
+++ /dev/null
@@ -1,39 +0,0 @@
-Port of the OpenBSD `bcrypt_pbkdf` function to pure Javascript. `npm`-ified
-version of [Devi Mandiri's port]
-(https://github.com/devi/tmp/blob/master/js/bcrypt_pbkdf.js),
-with some minor performance improvements. The code is copied verbatim (and
-un-styled) from Devi's work.
-
-This product includes software developed by Niels Provos.
-
-## API
-
-### `bcrypt_pbkdf.pbkdf(pass, passlen, salt, saltlen, key, keylen, rounds)`
-
-Derive a cryptographic key of arbitrary length from a given password and salt,
-using the OpenBSD `bcrypt_pbkdf` function. This is a combination of Blowfish and
-SHA-512.
-
-See [this article](http://www.tedunangst.com/flak/post/bcrypt-pbkdf) for
-further information.
-
-Parameters:
-
- * `pass`, a Uint8Array of length `passlen`
- * `passlen`, an integer Number
- * `salt`, a Uint8Array of length `saltlen`
- * `saltlen`, an integer Number
- * `key`, a Uint8Array of length `keylen`, will be filled with output
- * `keylen`, an integer Number
- * `rounds`, an integer Number, number of rounds of the PBKDF to run
-
-### `bcrypt_pbkdf.hash(sha2pass, sha2salt, out)`
-
-Calculate a Blowfish hash, given SHA2-512 output of a password and salt. Used as
-part of the inner round function in the PBKDF.
-
-Parameters:
-
- * `sha2pass`, a Uint8Array of length 64
- * `sha2salt`, a Uint8Array of length 64
- * `out`, a Uint8Array of length 32, will be filled with output

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bcrypt-pbkdf/index.js
----------------------------------------------------------------------
diff --git a/node_modules/bcrypt-pbkdf/index.js b/node_modules/bcrypt-pbkdf/index.js
deleted file mode 100644
index b1b5ad4..0000000
--- a/node_modules/bcrypt-pbkdf/index.js
+++ /dev/null
@@ -1,556 +0,0 @@
-'use strict';
-
-var crypto_hash_sha512 = require('tweetnacl').lowlevel.crypto_hash;
-
-/*
- * This file is a 1:1 port from the OpenBSD blowfish.c and bcrypt_pbkdf.c. As a
- * result, it retains the original copyright and license. The two files are
- * under slightly different (but compatible) licenses, and are here combined in
- * one file.
- *
- * Credit for the actual porting work goes to:
- *  Devi Mandiri <me...@devi.web.id>
- */
-
-/*
- * The Blowfish portions are under the following license:
- *
- * Blowfish block cipher for OpenBSD
- * Copyright 1997 Niels Provos <pr...@physnet.uni-hamburg.de>
- * All rights reserved.
- *
- * Implementation advice by David Mazieres <dm...@lcs.mit.edu>.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * The bcrypt_pbkdf portions are under the following license:
- *
- * Copyright (c) 2013 Ted Unangst <te...@openbsd.org>
- *
- * Permission to use, copy, modify, and 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.
- */
-
-/*
- * Performance improvements (Javascript-specific):
- *
- * Copyright 2016, Joyent Inc
- * Author: Alex Wilson <al...@joyent.com>
- *
- * Permission to use, copy, modify, and 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.
- */
-
-// Ported from OpenBSD bcrypt_pbkdf.c v1.9
-
-var BLF_J = 0;
-
-var Blowfish = function() {
-  this.S = [
-    new Uint32Array([
-      0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7,
-      0xb8e1afed, 0x6a267e96, 0xba7c9045, 0xf12c7f99,
-      0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16,
-      0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e,
-      0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee,
-      0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013,
-      0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef,
-      0x8e79dcb0, 0x603a180e, 0x6c9e0e8b, 0xb01e8a3e,
-      0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60,
-      0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440,
-      0x55ca396a, 0x2aab10b6, 0xb4cc5c34, 0x1141e8ce,
-      0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a,
-      0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e,
-      0xafd6ba33, 0x6c24cf5c, 0x7a325381, 0x28958677,
-      0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193,
-      0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032,
-      0xef845d5d, 0xe98575b1, 0xdc262302, 0xeb651b88,
-      0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239,
-      0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e,
-      0x21c66842, 0xf6e96c9a, 0x670c9c61, 0xabd388f0,
-      0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3,
-      0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98,
-      0xa1f1651d, 0x39af0176, 0x66ca593e, 0x82430e88,
-      0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe,
-      0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6,
-      0x4ed3aa62, 0x363f7706, 0x1bfedf72, 0x429b023d,
-      0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b,
-      0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7,
-      0xe3fe501a, 0xb6794c3b, 0x976ce0bd, 0x04c006ba,
-      0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463,
-      0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f,
-      0x6dfc511f, 0x9b30952c, 0xcc814544, 0xaf5ebd09,
-      0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3,
-      0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb,
-      0x5579c0bd, 0x1a60320a, 0xd6a100c6, 0x402c7279,
-      0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8,
-      0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab,
-      0x323db5fa, 0xfd238760, 0x53317b48, 0x3e00df82,
-      0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db,
-      0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573,
-      0x695b27b0, 0xbbca58c8, 0xe1ffa35d, 0xb8f011a0,
-      0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b,
-      0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790,
-      0xe1ddf2da, 0xa4cb7e33, 0x62fb1341, 0xcee4c6e8,
-      0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4,
-      0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0,
-      0xd08ed1d0, 0xafc725e0, 0x8e3c5b2f, 0x8e7594b7,
-      0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c,
-      0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad,
-      0x2f2f2218, 0xbe0e1777, 0xea752dfe, 0x8b021fa1,
-      0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299,
-      0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9,
-      0x165fa266, 0x80957705, 0x93cc7314, 0x211a1477,
-      0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf,
-      0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49,
-      0x00250e2d, 0x2071b35e, 0x226800bb, 0x57b8e0af,
-      0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa,
-      0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5,
-      0x83260376, 0x6295cfa9, 0x11c81968, 0x4e734a41,
-      0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915,
-      0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400,
-      0x08ba6fb5, 0x571be91f, 0xf296ec6b, 0x2a0dd915,
-      0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664,
-      0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a]),
-    new Uint32Array([
-      0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623,
-      0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266,
-      0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1,
-      0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e,
-      0x3f54989a, 0x5b429d65, 0x6b8fe4d6, 0x99f73fd6,
-      0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1,
-      0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e,
-      0x09686b3f, 0x3ebaefc9, 0x3c971814, 0x6b6a70a1,
-      0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737,
-      0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8,
-      0xb03ada37, 0xf0500c0d, 0xf01c1f04, 0x0200b3ff,
-      0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd,
-      0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701,
-      0x3ae5e581, 0x37c2dadc, 0xc8b57634, 0x9af3dda7,
-      0xa9446146, 0x0fd0030e, 0xecc8c73e, 0xa4751e41,
-      0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331,
-      0x4e548b38, 0x4f6db908, 0x6f420d03, 0xf60a04bf,
-      0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af,
-      0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e,
-      0x5512721f, 0x2e6b7124, 0x501adde6, 0x9f84cd87,
-      0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c,
-      0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2,
-      0xef1c1847, 0x3215d908, 0xdd433b37, 0x24c2ba16,
-      0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd,
-      0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b,
-      0x043556f1, 0xd7a3c76b, 0x3c11183b, 0x5924a509,
-      0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e,
-      0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3,
-      0x771fe71c, 0x4e3d06fa, 0x2965dcb9, 0x99e71d0f,
-      0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a,
-      0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4,
-      0xf2f74ea7, 0x361d2b3d, 0x1939260f, 0x19c27960,
-      0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66,
-      0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28,
-      0xc332ddef, 0xbe6c5aa5, 0x65582185, 0x68ab9802,
-      0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84,
-      0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510,
-      0x13cca830, 0xeb61bd96, 0x0334fe1e, 0xaa0363cf,
-      0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14,
-      0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e,
-      0x648b1eaf, 0x19bdf0ca, 0xa02369b9, 0x655abb50,
-      0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7,
-      0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8,
-      0xf837889a, 0x97e32d77, 0x11ed935f, 0x16681281,
-      0x0e358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99,
-      0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696,
-      0xcdb30aeb, 0x532e3054, 0x8fd948e4, 0x6dbc3128,
-      0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73,
-      0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0,
-      0x45eee2b6, 0xa3aaabea, 0xdb6c4f15, 0xfacb4fd0,
-      0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105,
-      0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250,
-      0xcf62a1f2, 0x5b8d2646, 0xfc8883a0, 0xc1c7b6a3,
-      0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285,
-      0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00,
-      0x58428d2a, 0x0c55f5ea, 0x1dadf43e, 0x233f7061,
-      0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb,
-      0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e,
-      0xa6078084, 0x19f8509e, 0xe8efd855, 0x61d99735,
-      0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc,
-      0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9,
-      0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340,
-      0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20,
-      0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7]),
-    new Uint32Array([
-      0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934,
-      0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068,
-      0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af,
-      0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840,
-      0x4d95fc1d, 0x96b591af, 0x70f4ddd3, 0x66a02f45,
-      0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504,
-      0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a,
-      0x28507825, 0x530429f4, 0x0a2c86da, 0xe9b66dfb,
-      0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee,
-      0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6,
-      0xaace1e7c, 0xd3375fec, 0xce78a399, 0x406b2a42,
-      0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b,
-      0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2,
-      0x3a6efa74, 0xdd5b4332, 0x6841e7f7, 0xca7820fb,
-      0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527,
-      0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b,
-      0x55a867bc, 0xa1159a58, 0xcca92963, 0x99e1db33,
-      0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c,
-      0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3,
-      0x95c11548, 0xe4c66d22, 0x48c1133f, 0xc70f86dc,
-      0x07f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17,
-      0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564,
-      0x257b7834, 0x602a9c60, 0xdff8e8a3, 0x1f636c1b,
-      0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115,
-      0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922,
-      0x85b2a20e, 0xe6ba0d99, 0xde720c8c, 0x2da2f728,
-      0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0,
-      0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e,
-      0x0a476341, 0x992eff74, 0x3a6f6eab, 0xf4f8fd37,
-      0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d,
-      0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804,
-      0xf1290dc7, 0xcc00ffa3, 0xb5390f92, 0x690fed0b,
-      0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3,
-      0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb,
-      0x37392eb3, 0xcc115979, 0x8026e297, 0xf42e312d,
-      0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c,
-      0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350,
-      0x1a6b1018, 0x11caedfa, 0x3d25bdd8, 0xe2e1c3c9,
-      0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a,
-      0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe,
-      0x9dbc8057, 0xf0f7c086, 0x60787bf8, 0x6003604d,
-      0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc,
-      0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f,
-      0x77a057be, 0xbde8ae24, 0x55464299, 0xbf582e61,
-      0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2,
-      0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9,
-      0x7aeb2661, 0x8b1ddf84, 0x846a0e79, 0x915f95e2,
-      0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c,
-      0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e,
-      0xb77f19b6, 0xe0a9dc09, 0x662d09a1, 0xc4324633,
-      0xe85a1f02, 0x09f0be8c, 0x4a99a025, 0x1d6efe10,
-      0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169,
-      0xdcb7da83, 0x573906fe, 0xa1e2ce9b, 0x4fcd7f52,
-      0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027,
-      0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5,
-      0xf0177a28, 0xc0f586e0, 0x006058aa, 0x30dc7d62,
-      0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634,
-      0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76,
-      0x6f05e409, 0x4b7c0188, 0x39720a3d, 0x7c927c24,
-      0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc,
-      0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4,
-      0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c,
-      0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837,
-      0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0]),
-    new Uint32Array([
-      0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b,
-      0x5cb0679e, 0x4fa33742, 0xd3822740, 0x99bc9bbe,
-      0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b,
-      0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4,
-      0x5748ab2f, 0xbc946e79, 0xc6a376d2, 0x6549c2c8,
-      0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6,
-      0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304,
-      0xa1fad5f0, 0x6a2d519a, 0x63ef8ce2, 0x9a86ee22,
-      0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4,
-      0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6,
-      0x2826a2f9, 0xa73a3ae1, 0x4ba99586, 0xef5562e9,
-      0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59,
-      0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593,
-      0xe990fd5a, 0x9e34d797, 0x2cf0b7d9, 0x022b8b51,
-      0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28,
-      0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c,
-      0xe029ac71, 0xe019a5e6, 0x47b0acfd, 0xed93fa9b,
-      0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28,
-      0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c,
-      0x15056dd4, 0x88f46dba, 0x03a16125, 0x0564f0bd,
-      0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a,
-      0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319,
-      0x7533d928, 0xb155fdf5, 0x03563482, 0x8aba3cbb,
-      0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f,
-      0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991,
-      0xea7a90c2, 0xfb3e7bce, 0x5121ce64, 0x774fbe32,
-      0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680,
-      0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166,
-      0xb39a460a, 0x6445c0dd, 0x586cdecf, 0x1c20c8ae,
-      0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb,
-      0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5,
-      0x72eacea8, 0xfa6484bb, 0x8d6612ae, 0xbf3c6f47,
-      0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370,
-      0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d,
-      0x4040cb08, 0x4eb4e2cc, 0x34d2466a, 0x0115af84,
-      0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048,
-      0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8,
-      0x611560b1, 0xe7933fdc, 0xbb3a792b, 0x344525bd,
-      0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9,
-      0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7,
-      0x1a908749, 0xd44fbd9a, 0xd0dadecb, 0xd50ada38,
-      0x0339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f,
-      0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c,
-      0xbf97222c, 0x15e6fc2a, 0x0f91fc71, 0x9b941525,
-      0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1,
-      0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442,
-      0xe0ec6e0e, 0x1698db3b, 0x4c98a0be, 0x3278e964,
-      0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e,
-      0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8,
-      0xdf359f8d, 0x9b992f2e, 0xe60b6f47, 0x0fe3f11d,
-      0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f,
-      0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299,
-      0xf523f357, 0xa6327623, 0x93a83531, 0x56cccd02,
-      0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc,
-      0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614,
-      0xe6c6c7bd, 0x327a140a, 0x45e1d006, 0xc3f27b9a,
-      0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6,
-      0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b,
-      0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0,
-      0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060,
-      0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e,
-      0x1948c25c, 0x02fb8a8c, 0x01c36ae4, 0xd6ebe1f9,
-      0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f,
-      0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6])
-    ];
-  this.P = new Uint32Array([
-    0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344,
-    0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89,
-    0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c,
-    0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917,
-    0x9216d5d9, 0x8979fb1b]);
-};
-
-function F(S, x8, i) {
-  return (((S[0][x8[i+3]] +
-            S[1][x8[i+2]]) ^
-            S[2][x8[i+1]]) +
-            S[3][x8[i]]);
-};
-
-Blowfish.prototype.encipher = function(x, x8) {
-  if (x8 === undefined) {
-    x8 = new Uint8Array(x.buffer);
-    if (x.byteOffset !== 0)
-      x8 = x8.subarray(x.byteOffset);
-  }
-  x[0] ^= this.P[0];
-  for (var i = 1; i < 16; i += 2) {
-    x[1] ^= F(this.S, x8, 0) ^ this.P[i];
-    x[0] ^= F(this.S, x8, 4) ^ this.P[i+1];
-  }
-  var t = x[0];
-  x[0] = x[1] ^ this.P[17];
-  x[1] = t;
-};
-
-Blowfish.prototype.decipher = function(x) {
-  var x8 = new Uint8Array(x.buffer);
-  if (x.byteOffset !== 0)
-    x8 = x8.subarray(x.byteOffset);
-  x[0] ^= this.P[17];
-  for (var i = 16; i > 0; i -= 2) {
-    x[1] ^= F(this.S, x8, 0) ^ this.P[i];
-    x[0] ^= F(this.S, x8, 4) ^ this.P[i-1];
-  }
-  var t = x[0];
-  x[0] = x[1] ^ this.P[0];
-  x[1] = t;
-};
-
-function stream2word(data, databytes){
-  var i, temp = 0;
-  for (i = 0; i < 4; i++, BLF_J++) {
-    if (BLF_J >= databytes) BLF_J = 0;
-    temp = (temp << 8) | data[BLF_J];
-  }
-  return temp;
-};
-
-Blowfish.prototype.expand0state = function(key, keybytes) {
-  var d = new Uint32Array(2), i, k;
-  var d8 = new Uint8Array(d.buffer);
-
-  for (i = 0, BLF_J = 0; i < 18; i++) {
-    this.P[i] ^= stream2word(key, keybytes);
-  }
-  BLF_J = 0;
-
-  for (i = 0; i < 18; i += 2) {
-    this.encipher(d, d8);
-    this.P[i]   = d[0];
-    this.P[i+1] = d[1];
-  }
-
-  for (i = 0; i < 4; i++) {
-    for (k = 0; k < 256; k += 2) {
-      this.encipher(d, d8);
-      this.S[i][k]   = d[0];
-      this.S[i][k+1] = d[1];
-    }
-  }
-};
-
-Blowfish.prototype.expandstate = function(data, databytes, key, keybytes) {
-  var d = new Uint32Array(2), i, k;
-
-  for (i = 0, BLF_J = 0; i < 18; i++) {
-    this.P[i] ^= stream2word(key, keybytes);
-  }
-
-  for (i = 0, BLF_J = 0; i < 18; i += 2) {
-    d[0] ^= stream2word(data, databytes);
-    d[1] ^= stream2word(data, databytes);
-    this.encipher(d);
-    this.P[i]   = d[0];
-    this.P[i+1] = d[1];
-  }
-
-  for (i = 0; i < 4; i++) {
-    for (k = 0; k < 256; k += 2) {
-      d[0] ^= stream2word(data, databytes);
-      d[1] ^= stream2word(data, databytes);
-      this.encipher(d);
-      this.S[i][k]   = d[0];
-      this.S[i][k+1] = d[1];
-    }
-  }
-  BLF_J = 0;
-};
-
-Blowfish.prototype.enc = function(data, blocks) {
-  for (var i = 0; i < blocks; i++) {
-    this.encipher(data.subarray(i*2));
-  }
-};
-
-Blowfish.prototype.dec = function(data, blocks) {
-  for (var i = 0; i < blocks; i++) {
-    this.decipher(data.subarray(i*2));
-  }
-};
-
-var BCRYPT_BLOCKS = 8,
-    BCRYPT_HASHSIZE = 32;
-
-function bcrypt_hash(sha2pass, sha2salt, out) {
-  var state = new Blowfish(),
-      cdata = new Uint32Array(BCRYPT_BLOCKS), i,
-      ciphertext = new Uint8Array([79,120,121,99,104,114,111,109,97,116,105,
-            99,66,108,111,119,102,105,115,104,83,119,97,116,68,121,110,97,109,
-            105,116,101]); //"OxychromaticBlowfishSwatDynamite"
-
-  state.expandstate(sha2salt, 64, sha2pass, 64);
-  for (i = 0; i < 64; i++) {
-    state.expand0state(sha2salt, 64);
-    state.expand0state(sha2pass, 64);
-  }
-
-  for (i = 0; i < BCRYPT_BLOCKS; i++)
-    cdata[i] = stream2word(ciphertext, ciphertext.byteLength);
-  for (i = 0; i < 64; i++)
-    state.enc(cdata, cdata.byteLength / 8);
-
-  for (i = 0; i < BCRYPT_BLOCKS; i++) {
-    out[4*i+3] = cdata[i] >>> 24;
-    out[4*i+2] = cdata[i] >>> 16;
-    out[4*i+1] = cdata[i] >>> 8;
-    out[4*i+0] = cdata[i];
-  }
-};
-
-function bcrypt_pbkdf(pass, passlen, salt, saltlen, key, keylen, rounds) {
-  var sha2pass = new Uint8Array(64),
-      sha2salt = new Uint8Array(64),
-      out = new Uint8Array(BCRYPT_HASHSIZE),
-      tmpout = new Uint8Array(BCRYPT_HASHSIZE),
-      countsalt = new Uint8Array(saltlen+4),
-      i, j, amt, stride, dest, count,
-      origkeylen = keylen;
-
-  if (rounds < 1)
-    return -1;
-  if (passlen === 0 || saltlen === 0 || keylen === 0 ||
-      keylen > (out.byteLength * out.byteLength) || saltlen > (1<<20))
-    return -1;
-
-  stride = Math.floor((keylen + out.byteLength - 1) / out.byteLength);
-  amt = Math.floor((keylen + stride - 1) / stride);
-
-  for (i = 0; i < saltlen; i++)
-    countsalt[i] = salt[i];
-
-  crypto_hash_sha512(sha2pass, pass, passlen);
-
-  for (count = 1; keylen > 0; count++) {
-    countsalt[saltlen+0] = count >>> 24;
-    countsalt[saltlen+1] = count >>> 16;
-    countsalt[saltlen+2] = count >>>  8;
-    countsalt[saltlen+3] = count;
-
-    crypto_hash_sha512(sha2salt, countsalt, saltlen + 4);
-    bcrypt_hash(sha2pass, sha2salt, tmpout);
-    for (i = out.byteLength; i--;)
-      out[i] = tmpout[i];
-
-    for (i = 1; i < rounds; i++) {
-      crypto_hash_sha512(sha2salt, tmpout, tmpout.byteLength);
-      bcrypt_hash(sha2pass, sha2salt, tmpout);
-      for (j = 0; j < out.byteLength; j++)
-        out[j] ^= tmpout[j];
-    }
-
-    amt = Math.min(amt, keylen);
-    for (i = 0; i < amt; i++) {
-      dest = i * stride + (count - 1);
-      if (dest >= origkeylen)
-        break;
-      key[dest] = out[i];
-    }
-    keylen -= i;
-  }
-
-  return 0;
-};
-
-module.exports = {
-      BLOCKS: BCRYPT_BLOCKS,
-      HASHSIZE: BCRYPT_HASHSIZE,
-      hash: bcrypt_hash,
-      pbkdf: bcrypt_pbkdf
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bcrypt-pbkdf/package.json
----------------------------------------------------------------------
diff --git a/node_modules/bcrypt-pbkdf/package.json b/node_modules/bcrypt-pbkdf/package.json
deleted file mode 100644
index 142fd0d..0000000
--- a/node_modules/bcrypt-pbkdf/package.json
+++ /dev/null
@@ -1,85 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "bcrypt-pbkdf@^1.0.0",
-        "scope": null,
-        "escapedName": "bcrypt-pbkdf",
-        "name": "bcrypt-pbkdf",
-        "rawSpec": "^1.0.0",
-        "spec": ">=1.0.0 <2.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/sshpk"
-    ]
-  ],
-  "_from": "bcrypt-pbkdf@>=1.0.0 <2.0.0",
-  "_id": "bcrypt-pbkdf@1.0.1",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/bcrypt-pbkdf",
-  "_nodeVersion": "0.12.9",
-  "_npmOperationalInternal": {
-    "host": "packages-18-east.internal.npmjs.com",
-    "tmp": "tmp/bcrypt-pbkdf-1.0.1.tgz_1486007687899_0.974529881728813"
-  },
-  "_npmUser": {
-    "name": "arekinath",
-    "email": "alex@cooperi.net"
-  },
-  "_npmVersion": "2.14.9",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "bcrypt-pbkdf@^1.0.0",
-    "scope": null,
-    "escapedName": "bcrypt-pbkdf",
-    "name": "bcrypt-pbkdf",
-    "rawSpec": "^1.0.0",
-    "spec": ">=1.0.0 <2.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/sshpk"
-  ],
-  "_resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
-  "_shasum": "63bc5dcb61331b92bc05fd528953c33462a06f8d",
-  "_shrinkwrap": null,
-  "_spec": "bcrypt-pbkdf@^1.0.0",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/sshpk",
-  "dependencies": {
-    "tweetnacl": "^0.14.3"
-  },
-  "description": "Port of the OpenBSD bcrypt_pbkdf function to pure JS",
-  "devDependencies": {},
-  "directories": {},
-  "dist": {
-    "shasum": "63bc5dcb61331b92bc05fd528953c33462a06f8d",
-    "tarball": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz"
-  },
-  "gitHead": "fa2ab3ae9efa15367264151398635a915c7b411d",
-  "license": "BSD-3-Clause",
-  "main": "index.js",
-  "maintainers": [
-    {
-      "name": "arekinath",
-      "email": "alex@cooperi.net"
-    },
-    {
-      "name": "dap",
-      "email": "dap@cs.brown.edu"
-    },
-    {
-      "name": "jclulow",
-      "email": "josh@sysmgr.org"
-    },
-    {
-      "name": "trentm",
-      "email": "trentm@gmail.com"
-    }
-  ],
-  "name": "bcrypt-pbkdf",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "scripts": {},
-  "version": "1.0.1"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/binary-extensions/binary-extensions.json
----------------------------------------------------------------------
diff --git a/node_modules/binary-extensions/binary-extensions.json b/node_modules/binary-extensions/binary-extensions.json
deleted file mode 100644
index 5dc1e6e..0000000
--- a/node_modules/binary-extensions/binary-extensions.json
+++ /dev/null
@@ -1,240 +0,0 @@
-[
-	"3ds",
-	"3g2",
-	"3gp",
-	"7z",
-	"a",
-	"aac",
-	"adp",
-	"ai",
-	"aif",
-	"aiff",
-	"alz",
-	"ape",
-	"apk",
-	"ar",
-	"arj",
-	"asf",
-	"au",
-	"avi",
-	"bak",
-	"bh",
-	"bin",
-	"bk",
-	"bmp",
-	"btif",
-	"bz2",
-	"bzip2",
-	"cab",
-	"caf",
-	"cgm",
-	"class",
-	"cmx",
-	"cpio",
-	"cr2",
-	"csv",
-	"cur",
-	"dat",
-	"deb",
-	"dex",
-	"djvu",
-	"dll",
-	"dmg",
-	"dng",
-	"doc",
-	"docm",
-	"docx",
-	"dot",
-	"dotm",
-	"dra",
-	"DS_Store",
-	"dsk",
-	"dts",
-	"dtshd",
-	"dvb",
-	"dwg",
-	"dxf",
-	"ecelp4800",
-	"ecelp7470",
-	"ecelp9600",
-	"egg",
-	"eol",
-	"eot",
-	"epub",
-	"exe",
-	"f4v",
-	"fbs",
-	"fh",
-	"fla",
-	"flac",
-	"fli",
-	"flv",
-	"fpx",
-	"fst",
-	"fvt",
-	"g3",
-	"gif",
-	"graffle",
-	"gz",
-	"gzip",
-	"h261",
-	"h263",
-	"h264",
-	"ico",
-	"ief",
-	"img",
-	"ipa",
-	"iso",
-	"jar",
-	"jpeg",
-	"jpg",
-	"jpgv",
-	"jpm",
-	"jxr",
-	"key",
-	"ktx",
-	"lha",
-	"lvp",
-	"lz",
-	"lzh",
-	"lzma",
-	"lzo",
-	"m3u",
-	"m4a",
-	"m4v",
-	"mar",
-	"mdi",
-	"mht",
-	"mid",
-	"midi",
-	"mj2",
-	"mka",
-	"mkv",
-	"mmr",
-	"mng",
-	"mobi",
-	"mov",
-	"movie",
-	"mp3",
-	"mp4",
-	"mp4a",
-	"mpeg",
-	"mpg",
-	"mpga",
-	"mxu",
-	"nef",
-	"npx",
-	"numbers",
-	"o",
-	"oga",
-	"ogg",
-	"ogv",
-	"otf",
-	"pages",
-	"pbm",
-	"pcx",
-	"pdf",
-	"pea",
-	"pgm",
-	"pic",
-	"png",
-	"pnm",
-	"pot",
-	"potm",
-	"potx",
-	"ppa",
-	"ppam",
-	"ppm",
-	"pps",
-	"ppsm",
-	"ppsx",
-	"ppt",
-	"pptm",
-	"pptx",
-	"psd",
-	"pya",
-	"pyc",
-	"pyo",
-	"pyv",
-	"qt",
-	"rar",
-	"ras",
-	"raw",
-	"rgb",
-	"rip",
-	"rlc",
-	"rmf",
-	"rmvb",
-	"rtf",
-	"rz",
-	"s3m",
-	"s7z",
-	"scpt",
-	"sgi",
-	"shar",
-	"sil",
-	"sketch",
-	"slk",
-	"smv",
-	"so",
-	"sub",
-	"swf",
-	"tar",
-	"tbz",
-	"tbz2",
-	"tga",
-	"tgz",
-	"thmx",
-	"tif",
-	"tiff",
-	"tlz",
-	"ttc",
-	"ttf",
-	"txz",
-	"udf",
-	"uvh",
-	"uvi",
-	"uvm",
-	"uvp",
-	"uvs",
-	"uvu",
-	"viv",
-	"vob",
-	"war",
-	"wav",
-	"wax",
-	"wbmp",
-	"wdp",
-	"weba",
-	"webm",
-	"webp",
-	"whl",
-	"wim",
-	"wm",
-	"wma",
-	"wmv",
-	"wmx",
-	"woff",
-	"woff2",
-	"wvx",
-	"xbm",
-	"xif",
-	"xla",
-	"xlam",
-	"xls",
-	"xlsb",
-	"xlsm",
-	"xlsx",
-	"xlt",
-	"xltm",
-	"xltx",
-	"xm",
-	"xmind",
-	"xpi",
-	"xpm",
-	"xwd",
-	"xz",
-	"z",
-	"zip",
-	"zipx"
-]

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/binary-extensions/license
----------------------------------------------------------------------
diff --git a/node_modules/binary-extensions/license b/node_modules/binary-extensions/license
deleted file mode 100644
index 654d0bf..0000000
--- a/node_modules/binary-extensions/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <si...@gmail.com> (sindresorhus.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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/binary-extensions/package.json
----------------------------------------------------------------------
diff --git a/node_modules/binary-extensions/package.json b/node_modules/binary-extensions/package.json
deleted file mode 100644
index 12d487d..0000000
--- a/node_modules/binary-extensions/package.json
+++ /dev/null
@@ -1,117 +0,0 @@
-{
-  "_args": [
-    [
-      {
-        "raw": "binary-extensions@^1.0.0",
-        "scope": null,
-        "escapedName": "binary-extensions",
-        "name": "binary-extensions",
-        "rawSpec": "^1.0.0",
-        "spec": ">=1.0.0 <2.0.0",
-        "type": "range"
-      },
-      "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/is-binary-path"
-    ]
-  ],
-  "_from": "binary-extensions@>=1.0.0 <2.0.0",
-  "_id": "binary-extensions@1.8.0",
-  "_inCache": true,
-  "_installable": true,
-  "_location": "/binary-extensions",
-  "_nodeVersion": "6.9.1",
-  "_npmOperationalInternal": {
-    "host": "packages-12-west.internal.npmjs.com",
-    "tmp": "tmp/binary-extensions-1.8.0.tgz_1480785169667_0.7267967818770558"
-  },
-  "_npmUser": {
-    "name": "sindresorhus",
-    "email": "sindresorhus@gmail.com"
-  },
-  "_npmVersion": "4.0.2",
-  "_phantomChildren": {},
-  "_requested": {
-    "raw": "binary-extensions@^1.0.0",
-    "scope": null,
-    "escapedName": "binary-extensions",
-    "name": "binary-extensions",
-    "rawSpec": "^1.0.0",
-    "spec": ">=1.0.0 <2.0.0",
-    "type": "range"
-  },
-  "_requiredBy": [
-    "/is-binary-path"
-  ],
-  "_resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz",
-  "_shasum": "48ec8d16df4377eae5fa5884682480af4d95c774",
-  "_shrinkwrap": null,
-  "_spec": "binary-extensions@^1.0.0",
-  "_where": "/Users/yueguo/repo.site/incubator-griffin-site/node_modules/is-binary-path",
-  "author": {
-    "name": "Sindre Sorhus",
-    "email": "sindresorhus@gmail.com",
-    "url": "sindresorhus.com"
-  },
-  "bugs": {
-    "url": "https://github.com/sindresorhus/binary-extensions/issues"
-  },
-  "dependencies": {},
-  "description": "List of binary file extensions",
-  "devDependencies": {
-    "ava": "*"
-  },
-  "directories": {},
-  "dist": {
-    "shasum": "48ec8d16df4377eae5fa5884682480af4d95c774",
-    "tarball": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz"
-  },
-  "engines": {
-    "node": ">=0.10.0"
-  },
-  "files": [
-    "binary-extensions.json"
-  ],
-  "gitHead": "7fbb033c001a17b5e41aa321f0c2398dbab5fc91",
-  "homepage": "https://github.com/sindresorhus/binary-extensions#readme",
-  "keywords": [
-    "bin",
-    "binary",
-    "ext",
-    "extensions",
-    "extension",
-    "file",
-    "json",
-    "list",
-    "array"
-  ],
-  "license": "MIT",
-  "main": "binary-extensions.json",
-  "maintainers": [
-    {
-      "name": "sindresorhus",
-      "email": "sindresorhus@gmail.com"
-    },
-    {
-      "name": "paulmillr",
-      "email": "paul@paulmillr.com"
-    },
-    {
-      "name": "es128",
-      "email": "elan.shanker+npm@gmail.com"
-    },
-    {
-      "name": "arthurvr",
-      "email": "contact@arthurverschaeve.be"
-    }
-  ],
-  "name": "binary-extensions",
-  "optionalDependencies": {},
-  "readme": "ERROR: No README data found!",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/sindresorhus/binary-extensions.git"
-  },
-  "scripts": {
-    "test": "ava"
-  },
-  "version": "1.8.0"
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/binary-extensions/readme.md
----------------------------------------------------------------------
diff --git a/node_modules/binary-extensions/readme.md b/node_modules/binary-extensions/readme.md
deleted file mode 100644
index 4f8f284..0000000
--- a/node_modules/binary-extensions/readme.md
+++ /dev/null
@@ -1,33 +0,0 @@
-# binary-extensions [![Build Status](https://travis-ci.org/sindresorhus/binary-extensions.svg?branch=master)](https://travis-ci.org/sindresorhus/binary-extensions)
-
-> List of binary file extensions
-
-The list is just a [JSON file](binary-extensions.json) and can be used wherever.
-
-
-## Install
-
-```
-$ npm install --save binary-extensions
-```
-
-
-## Usage
-
-```js
-var binaryExtensions = require('binary-extensions');
-
-console.log(binaryExtensions);
-//=> ['3ds', '3g2', ...]
-```
-
-
-## Related
-
-- [`is-binary-path`](https://github.com/sindresorhus/is-binary-path) - Check if a filepath is a binary file
-- [`text-extensions`](https://github.com/sindresorhus/text-extensions) - List of text file extensions
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/LICENSE b/node_modules/bluebird/LICENSE
deleted file mode 100644
index ae732d5..0000000
--- a/node_modules/bluebird/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2013-2017 Petka Antonov
-
-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.

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/README.md
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/README.md b/node_modules/bluebird/README.md
deleted file mode 100644
index b7e02b1..0000000
--- a/node_modules/bluebird/README.md
+++ /dev/null
@@ -1,51 +0,0 @@
-<a href="http://promisesaplus.com/">
-    <img src="http://promisesaplus.com/assets/logo-small.png" alt="Promises/A+ logo"
-         title="Promises/A+ 1.1 compliant" align="right" />
-</a>
-[![Build Status](https://travis-ci.org/petkaantonov/bluebird.svg?branch=master)](https://travis-ci.org/petkaantonov/bluebird)
-[![coverage-98%](http://img.shields.io/badge/coverage-98%-brightgreen.svg?style=flat)](http://petkaantonov.github.io/bluebird/coverage/debug/index.html)
-
-**Got a question?** Join us on [stackoverflow](http://stackoverflow.com/questions/tagged/bluebird), the [mailing list](https://groups.google.com/forum/#!forum/bluebird-js) or chat on [IRC](https://webchat.freenode.net/?channels=#promises)
-
-# Introduction
-
-Bluebird is a fully featured promise library with focus on innovative features and performance
-
-See the [**bluebird website**](http://bluebirdjs.com/docs/getting-started.html) for further documentation, references and instructions. See the [**API reference**](http://bluebirdjs.com/docs/api-reference.html) here.
-
-For bluebird 2.x documentation and files, see the [2.x tree](https://github.com/petkaantonov/bluebird/tree/2.x).
-
-# Questions and issues
-
-The [github issue tracker](https://github.com/petkaantonov/bluebird/issues) is **_only_** for bug reports and feature requests. Anything else, such as questions for help in using the library, should be posted in [StackOverflow](http://stackoverflow.com/questions/tagged/bluebird) under tags `promise` and `bluebird`.
-
-
-
-## Thanks
-
-Thanks to BrowserStack for providing us with a free account which lets us support old browsers like IE8. 
-
-# License
-
-The MIT License (MIT)
-
-Copyright (c) 2013-2017 Petka Antonov
-
-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.
-

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/changelog.md
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/changelog.md b/node_modules/bluebird/changelog.md
deleted file mode 100644
index 73b2eb6..0000000
--- a/node_modules/bluebird/changelog.md
+++ /dev/null
@@ -1 +0,0 @@
-[http://bluebirdjs.com/docs/changelog.html](http://bluebirdjs.com/docs/changelog.html)


[38/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/ajv/dist/nodent.min.js
----------------------------------------------------------------------
diff --git a/node_modules/ajv/dist/nodent.min.js b/node_modules/ajv/dist/nodent.min.js
deleted file mode 100644
index 1b043af..0000000
--- a/node_modules/ajv/dist/nodent.min.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/* nodent 3.0.7: NoDent - Asynchronous Javascript language extensions */
-require=function e(t,n,r){function i(o,a){if(!n[o]){if(!t[o]){var u="function"==typeof require&&require;if(!a&&u)return u(o,!0);if(s)return s(o,!0);var c=new Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return i(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var s="function"==typeof require&&require,o=0;o<r.length;o++)i(r[o]);return i}({1:[function(e,t,n){},{}],2:[function(e,t,n){(function(t){"use strict";function r(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}function i(){return o.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(i()<t)throw new RangeError("Invalid typed array length");return o.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t),e.__proto__=o.prototype):(null===e&&(e=new o(t)),e.length=t),e}function o(e,t
 ,n){if(!(o.TYPED_ARRAY_SUPPORT||this instanceof o))return new o(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return l(this,e)}return a(this,e,t,n)}function a(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?f(e,t,n,r):"string"==typeof t?p(e,t,n):d(e,t)}function u(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function c(e,t,n,r){return u(t),t<=0?s(e,t):void 0!==n?"string"==typeof r?s(e,t).fill(n,r):s(e,t).fill(n):s(e,t)}function l(e,t){if(u(t),e=s(e,t<0?0:0|y(t)),!o.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function p(e,t,n){if("string"==typeof n&&""!==n||(n="utf8"),!o.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|g(t,n);e=s(e,r);va
 r i=e.write(t,n);return i!==r&&(e=e.slice(0,i)),e}function h(e,t){var n=t.length<0?0:0|y(t.length);e=s(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function f(e,t,n,r){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");return t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r),o.TYPED_ARRAY_SUPPORT?(e=t,e.__proto__=o.prototype):e=h(e,t),e}function d(e,t){if(o.isBuffer(t)){var n=0|y(t.length);return e=s(e,n),0===e.length?e:(t.copy(e,0,0,n),e)}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||Q(t.length)?s(e,0):h(e,t);if("Buffer"===t.type&&K(t.data))return h(e,t.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function y(e){if(e>=i())throw new RangeError("Attempt to allocate Buffer larger than maxi
 mum size: 0x"+i().toString(16)+" bytes");return 0|e}function m(e){return+e!=e&&(e=0),o.alloc(+e)}function g(e,t){if(o.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return z(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return J(e).length;default:if(r)return z(e).length;t=(""+t).toLowerCase(),r=!0}}function v(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if(n>>>=0,t>>>=0,n<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return F(this,t,n);case"utf8":case"utf-8":return P(this,t,n);case"ascii":return R(this,t,n);case"latin1":case"binary":return O(t
 his,t,n);case"base64":return L(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return N(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function b(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function x(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=o.from(t,r)),o.isBuffer(t))return 0===t.length?-1:w(e,t,n,r,i);if("number"==typeof t)return t&=255,o.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):w(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function w(e,t,n,r,i){function s(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}var o=1,a=e.length,u=t.length;if(void 0!==r&&(r=String(r
 ).toLowerCase(),"ucs2"===r||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,a/=2,u/=2,n/=2}var c;if(i){var l=-1;for(c=n;c<a;c++)if(s(e,c)===s(t,l===-1?0:c-l)){if(l===-1&&(l=c),c-l+1===u)return l*o}else l!==-1&&(c-=c-l),l=-1}else for(n+u>a&&(n=a-u),c=n;c>=0;c--){for(var p=!0,h=0;h<u;h++)if(s(e,c+h)!==s(t,h)){p=!1;break}if(p)return c}return-1}function E(e,t,n,r){n=Number(n)||0;var i=e.length-n;r?(r=Number(r),r>i&&(r=i)):r=i;var s=t.length;if(s%2!==0)throw new TypeError("Invalid hex string");r>s/2&&(r=s/2);for(var o=0;o<r;++o){var a=parseInt(t.substr(2*o,2),16);if(isNaN(a))return o;e[n+o]=a}return o}function S(e,t,n,r){return H(z(t,e.length-n),e,n,r)}function k(e,t,n,r){return H(Y(t),e,n,r)}function A(e,t,n,r){return k(e,t,n,r)}function _(e,t,n,r){return H(J(t),e,n,r)}function C(e,t,n,r){return H(G(t,e.length-n),e,n,r)}function L(e,t,n){return 0===t&&n===e.length?X.fromByteArray(e):X.fromByteArray(e.slice(t,n))}function P(e,t,n){n=Math.min(e.length,n
 );for(var r=[],i=t;i<n;){var s=e[i],o=null,a=s>239?4:s>223?3:s>191?2:1;if(i+a<=n){var u,c,l,p;switch(a){case 1:s<128&&(o=s);break;case 2:u=e[i+1],128===(192&u)&&(p=(31&s)<<6|63&u,p>127&&(o=p));break;case 3:u=e[i+1],c=e[i+2],128===(192&u)&&128===(192&c)&&(p=(15&s)<<12|(63&u)<<6|63&c,p>2047&&(p<55296||p>57343)&&(o=p));break;case 4:u=e[i+1],c=e[i+2],l=e[i+3],128===(192&u)&&128===(192&c)&&128===(192&l)&&(p=(15&s)<<18|(63&u)<<12|(63&c)<<6|63&l,p>65535&&p<1114112&&(o=p))}}null===o?(o=65533,a=1):o>65535&&(o-=65536,r.push(o>>>10&1023|55296),o=56320|1023&o),r.push(o),i+=a}return T(r)}function T(e){var t=e.length;if(t<=ee)return String.fromCharCode.apply(String,e);for(var n="",r=0;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=ee));return n}function R(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(127&e[i]);return r}function O(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function F(e,t,n){var r=e.len
 gth;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var i="",s=t;s<n;++s)i+=W(e[s]);return i}function N(e,t,n){for(var r=e.slice(t,n),i="",s=0;s<r.length;s+=2)i+=String.fromCharCode(r[s]+256*r[s+1]);return i}function $(e,t,n){if(e%1!==0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function B(e,t,n,r,i,s){if(!o.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<s)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function I(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,s=Math.min(e.length-n,2);i<s;++i)e[n+i]=(t&255<<8*(r?i:1-i))>>>8*(r?i:1-i)}function j(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,s=Math.min(e.length-n,4);i<s;++i)e[n+i]=t>>>8*(r?i:3-i)&255}function M(e,t,n,r,i,s){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function D(e,t,n,r,i){return i||M
 (e,t,n,4,3.4028234663852886e38,-3.4028234663852886e38),Z.write(e,t,n,r,23,4),n+4}function V(e,t,n,r,i){return i||M(e,t,n,8,1.7976931348623157e308,-1.7976931348623157e308),Z.write(e,t,n,r,52,8),n+8}function U(e){if(e=q(e).replace(te,""),e.length<2)return"";for(;e.length%4!==0;)e+="=";return e}function q(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function W(e){return e<16?"0"+e.toString(16):e.toString(16)}function z(e,t){t=t||1/0;for(var n,r=e.length,i=null,s=[],o=0;o<r;++o){if(n=e.charCodeAt(o),n>55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&s.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&s.push(239,191,189),i=n;continue}n=(i-55296<<10|n-56320)+65536}else i&&(t-=3)>-1&&s.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;s.push(n)}else if(n<2048){if((t-=2)<0)break;s.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;s.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Inva
 lid code point");if((t-=4)<0)break;s.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return s}function Y(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}function G(e,t){for(var n,r,i,s=[],o=0;o<e.length&&!((t-=2)<0);++o)n=e.charCodeAt(o),r=n>>8,i=n%256,s.push(i),s.push(r);return s}function J(e){return X.toByteArray(U(e))}function H(e,t,n,r){for(var i=0;i<r&&!(i+n>=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function Q(e){return e!==e}var X=e("base64-js"),Z=e("ieee754"),K=e("isarray");n.Buffer=o,n.SlowBuffer=m,n.INSPECT_MAX_BYTES=50,o.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:r(),n.kMaxLength=i(),o.poolSize=8192,o._augment=function(e){return e.__proto__=o.prototype,e},o.from=function(e,t,n){return a(null,e,t,n)},o.TYPED_ARRAY_SUPPORT&&(o.prototype.__proto__=Uint8Array.prototype,o.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&o[Symbol.species]===o&&Object.defineProperty(o,Symbol.species,{value:null,config
 urable:!0})),o.alloc=function(e,t,n){return c(null,e,t,n)},o.allocUnsafe=function(e){return l(null,e)},o.allocUnsafeSlow=function(e){return l(null,e)},o.isBuffer=function(e){return!(null==e||!e._isBuffer)},o.compare=function(e,t){if(!o.isBuffer(e)||!o.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,i=0,s=Math.min(n,r);i<s;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0},o.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},o.concat=function(e,t){if(!K(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return o.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=o.allocUnsafe(t),i=0;for(n=0;n<e.length;++n){var s=e[n];if(!o.isBuffer(s))throw new TypeError('"list" argument must be an Array
  of Buffers');s.copy(r,i),i+=s.length}return r},o.byteLength=g,o.prototype._isBuffer=!0,o.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)b(this,t,t+1);return this},o.prototype.swap32=function(){var e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)b(this,t,t+3),b(this,t+1,t+2);return this},o.prototype.swap64=function(){var e=this.length;if(e%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)b(this,t,t+7),b(this,t+1,t+6),b(this,t+2,t+5),b(this,t+3,t+4);return this},o.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?P(this,0,e):v.apply(this,arguments)},o.prototype.equals=function(e){if(!o.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===o.compare(this,e)},o.prototype.inspect=function(){var e="",t=n.INSPECT_MAX_BYTES;
 return this.length>0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),"<Buffer "+e+">"},o.prototype.compare=function(e,t,n,r,i){if(!o.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,r>>>=0,i>>>=0,this===e)return 0;for(var s=i-r,a=n-t,u=Math.min(s,a),c=this.slice(r,i),l=e.slice(t,n),p=0;p<u;++p)if(c[p]!==l[p]){s=c[p],a=l[p];break}return s<a?-1:a<s?1:0},o.prototype.includes=function(e,t,n){return this.indexOf(e,t,n)!==-1},o.prototype.indexOf=function(e,t,n){return x(this,e,t,n,!0)},o.prototype.lastIndexOf=function(e,t,n){return x(this,e,t,n,!1)},o.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFi
 nite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var s=!1;;)switch(r){case"hex":return E(this,e,t,n);case"utf8":case"utf-8":return S(this,e,t,n);case"ascii":return k(this,e,t,n);case"latin1":case"binary":return A(this,e,t,n);case"base64":return _(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,e,t,n);default:if(s)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),s=!0}},o.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var ee=4096;o.prototype.slice=function(e,t){var n=this.length;e=~~e,t=void 0===t?n:~~t,e<0?(e+=n,e<0&&(e=0)):e>n&&(e=n),t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),t<e&&(t=e);var r;if(o.TYPED_ARRAY_SUPPORT)
 r=this.subarray(e,t),r.__proto__=o.prototype;else{var i=t-e;r=new o(i,void 0);for(var s=0;s<i;++s)r[s]=this[s+e]}return r},o.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||$(e,t,this.length);for(var r=this[e],i=1,s=0;++s<t&&(i*=256);)r+=this[e+s]*i;return r},o.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||$(e,t,this.length);for(var r=this[e+--t],i=1;t>0&&(i*=256);)r+=this[e+--t]*i;return r},o.prototype.readUInt8=function(e,t){return t||$(e,1,this.length),this[e]},o.prototype.readUInt16LE=function(e,t){return t||$(e,2,this.length),this[e]|this[e+1]<<8},o.prototype.readUInt16BE=function(e,t){return t||$(e,2,this.length),this[e]<<8|this[e+1]},o.prototype.readUInt32LE=function(e,t){return t||$(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},o.prototype.readUInt32BE=function(e,t){return t||$(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},o.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||$(e,t,this.length);for(var r=this[e],i=1,
 s=0;++s<t&&(i*=256);)r+=this[e+s]*i;return i*=128,r>=i&&(r-=Math.pow(2,8*t)),r},o.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||$(e,t,this.length);for(var r=t,i=1,s=this[e+--r];r>0&&(i*=256);)s+=this[e+--r]*i;return i*=128,s>=i&&(s-=Math.pow(2,8*t)),s},o.prototype.readInt8=function(e,t){return t||$(e,1,this.length),128&this[e]?(255-this[e]+1)*-1:this[e]},o.prototype.readInt16LE=function(e,t){t||$(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},o.prototype.readInt16BE=function(e,t){t||$(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},o.prototype.readInt32LE=function(e,t){return t||$(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},o.prototype.readInt32BE=function(e,t){return t||$(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},o.prototype.readFloatLE=function(e,t){return t||$(e,4,this.length),Z.read(this,e,!0,23,4)},o.prototype.readFloatBE=function(e,t){return t||$(e,4,this.length),Z.read(th
 is,e,!1,23,4)},o.prototype.readDoubleLE=function(e,t){return t||$(e,8,this.length),Z.read(this,e,!0,52,8)},o.prototype.readDoubleBE=function(e,t){return t||$(e,8,this.length),Z.read(this,e,!1,52,8)},o.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t|=0,n|=0,!r){B(this,e,t,n,Math.pow(2,8*n)-1,0)}var i=1,s=0;for(this[t]=255&e;++s<n&&(i*=256);)this[t+s]=e/i&255;return t+n},o.prototype.writeUIntBE=function(e,t,n,r){if(e=+e,t|=0,n|=0,!r){B(this,e,t,n,Math.pow(2,8*n)-1,0)}var i=n-1,s=1;for(this[t+i]=255&e;--i>=0&&(s*=256);)this[t+i]=e/s&255;return t+n},o.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,1,255,0),o.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},o.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,2,65535,0),o.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):I(this,e,t,!0),t+2},o.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,2,65535,0),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):I(this,e
 ,t,!1),t+2},o.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,4,4294967295,0),o.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):j(this,e,t,!0),t+4},o.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,4,4294967295,0),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):j(this,e,t,!1),t+4},o.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);B(this,e,t,n,i-1,-i)}var s=0,o=1,a=0;for(this[t]=255&e;++s<n&&(o*=256);)e<0&&0===a&&0!==this[t+s-1]&&(a=1),this[t+s]=(e/o>>0)-a&255;return t+n},o.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);B(this,e,t,n,i-1,-i)}var s=n-1,o=1,a=0;for(this[t+s]=255&e;--s>=0&&(o*=256);)e<0&&0===a&&0!==this[t+s+1]&&(a=1),this[t+s]=(e/o>>0)-a&255;return t+n},o.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,1,127,-128),o.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+
 e+1),this[t]=255&e,t+1},o.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,2,32767,-32768),o.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):I(this,e,t,!0),t+2},o.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,2,32767,-32768),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):I(this,e,t,!1),t+2},o.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,4,2147483647,-2147483648),o.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):j(this,e,t,!0),t+4},o.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):j(this,e,t,!1),t+4},o.prototype.writeFloatLE=function(e,t,n){return D(this,e,t,!0,n)},o.prototype.writeFloatBE=function(e,t,n){return D(this,e,t,!1,n)},o.prototype.writeDoubleLE=function(e,t,n){return V(this,e,t,!0,n)},o.prototype.wr
 iteDoubleBE=function(e,t,n){return V(this,e,t,!1,n)},o.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var i,s=r-n;if(this===e&&n<t&&t<r)for(i=s-1;i>=0;--i)e[i+t]=this[i+n];else if(s<1e3||!o.TYPED_ARRAY_SUPPORT)for(i=0;i<s;++i)e[i+t]=this[i+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+s),t);return s},o.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var i=e.charCodeAt(0);i<256&&(e=i)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!o.
 isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0);var s;if("number"==typeof e)for(s=t;s<n;++s)this[s]=e;else{var a=o.isBuffer(e)?e:z(new o(e,r).toString()),u=a.length;for(s=0;s<n-t;++s)this[s+t]=a[s%u]}return this};var te=/[^+\/0-9A-Za-z-_]/g}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"base64-js":3,ieee754:4,isarray:5}],3:[function(e,t,n){"use strict";function r(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function i(e){return 3*e.length/4-r(e)}function s(e){var t,n,i,s,o,a,u=e.length;o=r(e),a=new p(3*u/4-o),i=o>0?u-4:u;var c=0;for(t=0,n=0;t<i;t+=4,n+=3)s=l[e.charCodeAt(t)]<<18|l[e.charCodeAt(t+1)]<<12|l[e.charCodeAt(t+2)]<<6|l[e.charCodeAt(t
 +3)],a[c++]=s>>16&255,a[c++]=s>>8&255,a[c++]=255&s;return 2===o?(s=l[e.charCodeAt(t)]<<2|l[e.charCodeAt(t+1)]>>4,a[c++]=255&s):1===o&&(s=l[e.charCodeAt(t)]<<10|l[e.charCodeAt(t+1)]<<4|l[e.charCodeAt(t+2)]>>2,a[c++]=s>>8&255,a[c++]=255&s),a}function o(e){return c[e>>18&63]+c[e>>12&63]+c[e>>6&63]+c[63&e]}function a(e,t,n){for(var r,i=[],s=t;s<n;s+=3)r=(e[s]<<16)+(e[s+1]<<8)+e[s+2],i.push(o(r));return i.join("")}function u(e){for(var t,n=e.length,r=n%3,i="",s=[],o=16383,u=0,l=n-r;u<l;u+=o)s.push(a(e,u,u+o>l?l:u+o));return 1===r?(t=e[n-1],i+=c[t>>2],i+=c[t<<4&63],i+="=="):2===r&&(t=(e[n-2]<<8)+e[n-1],i+=c[t>>10],i+=c[t>>4&63],i+=c[t<<2&63],i+="="),s.push(i),s.join("")}n.byteLength=i,n.toByteArray=s,n.fromByteArray=u;for(var c=[],l=[],p="undefined"!=typeof Uint8Array?Uint8Array:Array,h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",f=0,d=h.length;f<d;++f)c[f]=h[f],l[h.charCodeAt(f)]=f;l["-".charCodeAt(0)]=62,l["_".charCodeAt(0)]=63},{}],4:[function(e,t,n){n.read=funct
 ion(e,t,n,r,i){var s,o,a=8*i-r-1,u=(1<<a)-1,c=u>>1,l=-7,p=n?i-1:0,h=n?-1:1,f=e[t+p];for(p+=h,s=f&(1<<-l)-1,f>>=-l,l+=a;l>0;s=256*s+e[t+p],p+=h,l-=8);for(o=s&(1<<-l)-1,s>>=-l,l+=r;l>0;o=256*o+e[t+p],p+=h,l-=8);if(0===s)s=1-c;else{if(s===u)return o?NaN:(f?-1:1)*(1/0);o+=Math.pow(2,r),s-=c}return(f?-1:1)*o*Math.pow(2,s-r)},n.write=function(e,t,n,r,i,s){var o,a,u,c=8*s-i-1,l=(1<<c)-1,p=l>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=r?0:s-1,d=r?1:-1,y=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,o=l):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),t+=o+p>=1?h/u:h*Math.pow(2,1-p),t*u>=2&&(o++,u/=2),o+p>=l?(a=0,o=l):o+p>=1?(a=(t*u-1)*Math.pow(2,i),o+=p):(a=t*Math.pow(2,p-1)*Math.pow(2,i),o=0));i>=8;e[n+f]=255&a,f+=d,a/=256,i-=8);for(o=o<<i|a,c+=i;c>0;e[n+f]=255&o,f+=d,o/=256,c-=8);e[n+f-d]|=128*y}},{}],5:[function(e,t,n){var r={}.toString;t.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},{}],6:[function(e,t,n){(f
 unction(e){function t(e,t){for(var n=0,r=e.length-1;r>=0;r--){var i=e[r];"."===i?e.splice(r,1):".."===i?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function r(e,t){if(e.filter)return e.filter(t);for(var n=[],r=0;r<e.length;r++)t(e[r],r,e)&&n.push(e[r]);return n}var i=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,s=function(e){return i.exec(e).slice(1)};n.resolve=function(){for(var n="",i=!1,s=arguments.length-1;s>=-1&&!i;s--){var o=s>=0?arguments[s]:e.cwd();if("string"!=typeof o)throw new TypeError("Arguments to path.resolve must be strings");o&&(n=o+"/"+n,i="/"===o.charAt(0))}return n=t(r(n.split("/"),function(e){return!!e}),!i).join("/"),(i?"/":"")+n||"."},n.normalize=function(e){var i=n.isAbsolute(e),s="/"===o(e,-1);return e=t(r(e.split("/"),function(e){return!!e}),!i).join("/"),e||i||(e="."),e&&s&&(e+="/"),(i?"/":"")+e},n.isAbsolute=function(e){return"/"===e.charAt(0)},n.join=function(){var e=Array.prototype.slice.call(ar
 guments,0);return n.normalize(r(e,function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},n.relative=function(e,t){function r(e){for(var t=0;t<e.length&&""===e[t];t++);for(var n=e.length-1;n>=0&&""===e[n];n--);return t>n?[]:e.slice(t,n-t+1)}e=n.resolve(e).substr(1),t=n.resolve(t).substr(1);for(var i=r(e.split("/")),s=r(t.split("/")),o=Math.min(i.length,s.length),a=o,u=0;u<o;u++)if(i[u]!==s[u]){a=u;break}for(var c=[],u=a;u<i.length;u++)c.push("..");return c=c.concat(s.slice(a)),c.join("/")},n.sep="/",n.delimiter=":",n.dirname=function(e){var t=s(e),n=t[0],r=t[1];return n||r?(r&&(r=r.substr(0,r.length-1)),n+r):"."},n.basename=function(e,t){var n=s(e)[2];return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},n.extname=function(e){return s(e)[3]};var o="b"==="ab".substr(-1)?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return t<0&&(t=e.length+t),e.substr(t,n)}}).call(this,e("_process"))},{_proces
 s:7}],7:[function(e,t,n){function r(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function s(e){if(p===setTimeout)return setTimeout(e,0);if((p===r||!p)&&setTimeout)return p=setTimeout,setTimeout(e,0);try{return p(e,0)}catch(t){try{return p.call(null,e,0)}catch(t){return p.call(this,e,0)}}}function o(e){if(h===clearTimeout)return clearTimeout(e);if((h===i||!h)&&clearTimeout)return h=clearTimeout,clearTimeout(e);try{return h(e)}catch(t){try{return h.call(null,e)}catch(t){return h.call(this,e)}}}function a(){m&&d&&(m=!1,d.length?y=d.concat(y):g=-1,y.length&&u())}function u(){if(!m){var e=s(a);m=!0;for(var t=y.length;t;){for(d=y,y=[];++g<t;)d&&d[g].run();g=-1,t=y.length}d=null,m=!1,o(e)}}function c(e,t){this.fun=e,this.array=t}function l(){}var p,h,f=t.exports={};!function(){try{p="function"==typeof setTimeout?setTimeout:r}catch(e){p=r}try{h="function"==typeof clearTimeout?clearTimeout:i}catch(e){h=i}}();var d,y=[]
 ,m=!1,g=-1;f.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];y.push(new c(e,t)),1!==y.length||m||s(u)},c.prototype.run=function(){this.fun.apply(null,this.array)},f.title="browser",f.browser=!0,f.env={},f.argv=[],f.version="",f.versions={},f.on=l,f.addListener=l,f.once=l,f.off=l,f.removeListener=l,f.removeAllListeners=l,f.emit=l,f.binding=function(e){throw new Error("process.binding is not supported")},f.cwd=function(){return"/"},f.chdir=function(e){throw new Error("process.chdir is not supported")},f.umask=function(){return 0}},{}],8:[function(e,t,n){t.exports=function(e,t,n,r){var i=[[],[]],s=[/(.*)(<script[^>]*>)(.*)/i,/(.*)(<\/script>)(.*)/i],o=0,a=!0;t=t.split("\n");for(var u=0;u<t.length;){var c=s[o].exec(t[u]);c&&0==o&&c[2].match("src=")&&(c=null),c?(1==o?(i[o].push(c[1]),pr=e.compile(i[1].join("\n"),n,3,r.compiler).code,a&&r.runtime&&(a=!1,r.runtime&&i[0].push("Function.prototype.$asyncbind
  = "+e.$asyncbind.toString()+";\n")),i[0].push(pr),i[1]=[],o=0,i[o].push(c[2])):(i[o].push(c[1]),i[o].push(c[2]),o=1),t[u]=c[3]):i[o].push(t[u++])}return i[0].join("\n")}},{}],9:[function(e,t,n){"use strict";function r(e){if(!e)return"";if(Array.isArray(e))return e.map(r).join("|\n");try{return g(e)}catch(t){return t.message+": "+(e&&e.type)}}function i(e){if(Array.isArray(e))return e.map(function(e){return i(e)});var t={};return Object.keys(e).forEach(function(n){t[n]=e[n]}),t}function s(e,t){e!==t&&(e.__proto__=Object.getPrototypeOf(t),Object.keys(e).forEach(function(t){t in v||delete e[t]}),Object.keys(t).forEach(function(n){n in e||(e[n]=t[n])}))}function o(){}function a(e){return e?(x.node=e,x):{}}function u(e,t,n){if(!e)return null;if(t&&"object"==typeof t){var r=Object.keys(t);return u(e,function(e){return r.every(function(n){return e[n]==t[n]})})}var i,s={};if(Array.isArray(e)){for(var o=0;o<e.length;o++)if(i=u(e[o],t))return i;return null}var c=n;"function"!=typeof n&&(c=n?
 function(e){return!0}:function(e){return!a(e).isScope});try{m.treeWalker(e,function(n,r,i){if(t(n))throw s.path=i,s;(n===e||c(n))&&r()})}catch(e){if(e===s)return s.path;throw e}return null}function c(e){return u(e,function(e){return"AwaitExpression"===e.type&&!e.$hidden})}function l(e){return u(e,function(e){return"AwaitExpression"===e.type&&!e.$hidden},function(e){var t=a(e);return!t.isBlockStatement&&!t.isScope})}function p(e){return u(e,{type:"ThisExpression"})}function h(e){if(null===e)return{type:"NullLiteral",value:null,raw:"null"};if(e===!0||e===!1)return{type:"BooleanLiteral",value:e,raw:JSON.stringify(e)};if(e instanceof RegExp){var t=e.toString(),n=t.split("/");return{type:"RegExpLiteral",value:e,raw:t,pattern:n[1],flags:n[2]}}return"number"==typeof e?{type:"NumericLiteral",value:e,raw:JSON.stringify(e)}:{type:"StringLiteral",value:e,raw:JSON.stringify(e)}}function f(e,t){return{type:"Identifier",name:e,loc:t}}function d(e){var t={};for(var n in e)t[n]="string"==typeof e[n
 ]?f(e[n]):e[n];return t}function y(e,t,n,y){function g(e,t){if(n.noRuntime){if(t){if(a(t).isLiteral)throw new Error("Nodent: 'noRuntime' option only compatible with -promise and -engine modes");e.body.body=m.part("try {$:0} catch($2) {return $1($2)}",[i(e.body),t,f("$boundEx")]).body}return m.part("$0.bind(this)",[e]).expr}return t?m.part("$0.$1(this,$2)",[e,ge.asyncbind,t]).expr:m.part("$0.$1(this)",[e,ge.asyncbind]).expr}function v(e,t,n,r){return m.part("var $0 = $1",[f(e),g({type:"FunctionExpression",id:null,generator:!1,expression:!1,params:n||[],body:t},r)]).body[0]}function b(t){return e.filename+(t&&t.loc&&t.loc.start?"("+t.loc.start.line+":"+t.loc.start.column+")\t":"\t")}function x(e){return n.babelTree?h(e):{type:"Literal",value:e,raw:JSON.stringify(e)}}function w(e){return e?!n.babelTree||"ClassMethod"!==e.type&&"ObjectMethod"!==e.type?(!n.babelTree&&"MethodDefinition"===e.type||"Property"===e.type&&(e.method||"get"==e.kind||"set"==e.kind))&&a(e.value).isFunction?e.value
 :null:e:null}function E(e){if(!e)return!1;var t=!1;if(Array.isArray(e)){for(var r=0;r<e.length;r++)E(e[r])&&(t=!0);return t}return m.treeWalker(e,function(r,i,s){"Identifier"===r.type&&"arguments"===r.name?(r.name=n.$arguments,t=!0):r!==e&&a(r).isFunction||i()}),t}function S(e){return"string"!=typeof e&&(e=e.type.replace(/Statement|Expression/g,"")),n.generatedSymbolPrefix+e+"_"+me++}function k(e,t){return e&&(e.$exit=d({$error:t.$error,$return:t.$return})),e}function A(e){for(var t=0;t<e.length;t++){if(e[t].self.$exit)return e[t].self;if(e[t].parent&&e[t].parent.$exit)return e[t].parent}return null}function _(e,t){var n=A(e);if(n)return n.$exit;if(t)for(var r=0;r<t.length;r++)if(t[r])return d(t[r]);return null}function C(e,t){var r=!(n.promises||n.generators||n.engine)&&n.lazyThenables;le(e),ae(e),D(e),Z(e),X(e),(r?H:o)(e),$(e),N(e),W(e,[q,r?o:J,I,j,B]),z(e,t),pe(e),de(e)}function L(e,t){var n={$continuation:!0,type:e?"FunctionDeclaration":"FunctionExpression",id:e?"string"==typeof
  e?f(e):e:void 0,params:[],body:{type:"BlockStatement",body:i(t)}};return e&&(ye[e]={def:n}),n}function P(e){return{type:"AwaitExpression",argument:Z({type:"FunctionExpression",generator:!1,expression:!1,async:!0,params:[],body:{type:"BlockStatement",body:e}}).body.body[0].argument}}function T(e,t){"string"==typeof e&&(e=f(e));var n=m.part("$0.call($1)",[e,[{type:"ThisExpression"}].concat(t||[])]).expr;return e.$thisCall=n,n.$thisCallName=e.name,n}function R(e,t){return{type:"ReturnStatement",argument:T(e,t)}}function O(e,t){return{type:"CallExpression",callee:f(e.$seh+"Finally"),arguments:t?[t]:[]}}function F(e,t){if(Array.isArray(e))return e.map(function(e){return F(e,t)});var r=0;return m.treeWalker(e,function(e,t,i){if("ReturnStatement"!==e.type||e.$mapped){if("ThrowStatement"===e.type){if(r>0){if(!a(e).isAsync)return t(e);delete e.async}return e.type="ReturnStatement",e.$mapped=!0,void(e.argument={type:"CallExpression",callee:_(i,[n]).$error,arguments:[e.argument]})}return a(e)
 .isFunction?(r++,t(e),void r--):void t(e)}if(r>0){if(!a(e).isAsync)return t(e);delete e.async}
-return e.$mapped=!0,void(a(e.argument).isUnaryExpression&&"void"===e.argument.operator?e.argument=e.argument.argument:e.argument={type:"CallExpression",callee:_(i,[n]).$return,arguments:e.argument?[e.argument]:[]})},t)}function N(e,t){return Array.isArray(e)?e.map(function(e){return N(e,t)}):(m.treeWalker(e,function(e,t,n){if(t(),"ConditionalExpression"===e.type&&(c(e.alternate)||c(e.consequent))){f(S("condOp"));s(e,P(m.part("if ($0) return $1 ; return $2",[e.test,e.consequent,e.alternate]).body))}},t),e)}function $(e,t){return Array.isArray(e)?e.map(function(e){return $(e,t)}):(m.treeWalker(e,function(e,t,n){if(t(),"LogicalExpression"===e.type&&c(e.right)){var r,i=f(S("logical"+("&&"===e.operator?"And":"Or")));if("||"===e.operator)r="var $0; if (!($0 = $1)) {$0 = $2} return $0";else{if("&&"!==e.operator)throw new Error(b(e)+"Illegal logical operator: "+e.operator);r="var $0; if ($0 = $1) {$0 = $2} return $0"}s(e,P(m.part(r,[i,e.left,e.right]).body))}},t),e)}function B(e,t,n){if("Sw
 itchCase"!==e.type&&a(e).isBlockStatement)for(var r=0;r<e.body.length;){var i=e.body[r];if("SwitchCase"!==i.type&&a(i).isBlockStatement){var s=fe(i.body);if(s)if(l(i)){var o=S(i),u=e.body.splice(r+1,e.body.length-(r+1));if(u.length){var c=L(o,u);delete ye[o],i.body.push(R(o)),e.body.push(c),r++}else r++}else r++;else e.body.splice.apply(e.body,[r,1].concat(i.body))}else r++}}function I(e,t,n){if("IfStatement"===e.type&&c([e.consequent,e.alternate])){var r=S(e),o=t[0],u={type:"BlockStatement",body:[e]};if("index"in o){var l=o.index,p=o.parent[o.field].splice(l+1,o.parent[o.field].length-(l+1));if(o.replace(u),p.length){var h=R(r);u.body.push(n(L(r,p))),[e.consequent,e.alternate].forEach(function(e){if(e){var t;t=a(e).isBlockStatement?e.body[e.body.length-1]:e,t&&"ReturnStatement"===t.type||("BlockStatement"!==e.type&&s(e,{type:"BlockStatement",body:[i(e)]}),e.$deferred=!0,e.body.push(i(h))),n(e)}}),e.consequent&&e.alternate&&e.consequent.$deferred&&e.alternate.$deferred||u.body.push(
 i(h))}}else o.parent[o.field]=u}}function j(e,t,n){if(!e.$switched&&"SwitchStatement"===e.type&&c(e.cases)){e.$switched=!0;var r,s,o,a=t[0];if("index"in a){var u=a.index+1;o=a.parent[a.field].splice(u,a.parent[a.field].length-u),o.length&&"BreakStatement"===o[o.length-1].type&&a.parent[a.field].push(o.pop()),r=S(e),s=R(r),a.parent[a.field].unshift(L(r,o)),a.parent[a.field].push(i(s))}return e.cases.forEach(function(e,t){if("SwitchCase"!==e.type)throw new Error("switch contains non-case/default statement: "+e.type);if(c(e.consequent)){var n=e.consequent[e.consequent.length-1];"BreakStatement"===n.type?e.consequent[e.consequent.length-1]=i(s):"ReturnStatement"===n.type||"ThrowStatement"===n.type||(y(b(e)+"switch-case fall-through not supported - added break. See https://github.com/MatAtBread/nodent#differences-from-the-es7-specification"),e.consequent.push(i(s)))}}),!0}}function M(e){return"ReturnStatement"===e.type||"ThrowStatement"===e.type}function D(t,r){return m.treeWalker(t,func
 tion(t,i,s){if("TryStatement"===t.type&&(t.$seh=S("Try")+"_",t.$containedAwait=!!c(t),t.$finallyExit=t.finalizer&&U(s)&&!!u(t.finalizer.body,M),t.$containedAwait||t.$finallyExit)){t.$needsMapping=!r||!t.$finallyExit;var o=_(s,[n]);if(t.finalizer&&!t.handler){var a=f(S("exception"));t.handler={type:"CatchClause",param:a,body:{type:"BlockStatement",body:[{type:"ThrowStatement",argument:a}]}}}if(!t.handler&&!t.finalizer){var l=new SyntaxError(b(t.value)+"try requires catch and/or finally clause",e.filename,t.start);throw l.pos=t.start,l.loc=t.loc.start,l}t.finalizer?(k(t.block,{$error:t.$seh+"Catch",$return:O(t,o.$return)}),k(t.handler,{$error:O(t,o.$error),$return:O(t,o.$return)})):k(t.block,{$error:t.$seh+"Catch",$return:o.$return})}i()}),t}function V(e,t){for(var n=0;n<e.length;n++)if(!a(e[n]).isDirective)return void e.splice.apply(e,[n,0].concat(t));e.splice.apply(e,[e.length,0].concat(t))}function U(e){for(var t=0;t<e.length;t++)if(a(e[t].self).isFunction)return e[t].self.async||e
 [t].self.$wasAsync;return!1}function q(t,r,s){if(t.$needsMapping){var o,a,u,c=r[0];if(!("index"in c))throw new Error(e.filename+" - malformed try/catch blocks");var l=c.index+1,p=c.parent[c.field].splice(l,c.parent[c.field].length-l);if(p.length){a=t.$seh+"Post";var h=L(a,p);h=s(h),c.parent[c.field].splice(c.index,0,h),o=R(t.finalizer?O(t,f(a)):a)}else t.finalizer&&(o=R(O(t)));t.$mapped=!0,o&&(t.block.body.push(i(o)),t.handler.body.body.push(i(o)));var d=_(r,[n]);if(t.handler){var y=f(t.$seh+"Catch");u=i(t.handler.body);var g=v(y.name,u,[i(t.handler.param)],t.finalizer?O(t,d.$error):d.$error);t.handler.body.body=[{type:"CallExpression",callee:y,arguments:[i(t.handler.param)]}],c.parent[c.field].splice(c.index,0,g)}if(t.finalizer){var b=m.part("var $decl = (function ($exit) {                              return (function ($value) {                                   {$:body}                                                  return $exit && ($exit.call(this, $value));           }).$asyn
 cbind(this, $error);                           }).$asyncbind(this);",{decl:f(t.$seh+"Finally"),exit:f(t.$seh+"Exit"),value:f(t.$seh+"Value"),body:i(t.finalizer.body),error:d.$error,asyncbind:ge.asyncbind}).body[0];V(c.parent[c.field],[b]);var x=R(O(t,a&&f(a)));u.body[u.length-1]=x,t.block.body[t.block.body.length-1]=x,delete t.finalizer}}}function W(e,t,n){function r(e,n){return m.treeWalker(e,function(e,n,s){function o(e){return r(e,s)}i.indexOf(e)<0&&(i.push(e),t.forEach(function(t){t(e,s,o)})),n()},n)}var i=[];return r(e,n),e}function z(e,t,o){return m.treeWalker(e,function(e,u,l){if("IfStatement"==e.type&&("BlockStatement"!=e.consequent.type&&c(e.consequent)&&(e.consequent={type:"BlockStatement",body:[e.consequent]}),e.alternate&&"BlockStatement"!=e.alternate.type&&c(e.alternate)&&(e.alternate={type:"BlockStatement",body:[e.alternate]})),u(),a(e).isAwait){var p=e.loc;if(t=t||l.some(function(e){return e.self&&e.self.$wasAsync}),!t||"warn"===t){var h=b(e)+"'await' used inside non-
 async function. ";h+=n.promises?"'return' value Promise runtime-specific":"'return' value from await is synchronous",y(h+". See https://github.com/MatAtBread/nodent#differences-from-the-es7-specification")}var d=l[0].parent;"LogicalExpression"===d.type&&d.right===e&&y(b(e.argument)+"'"+r(d)+"' on right of "+d.operator+" will always evaluate '"+r(e.argument)+"'"),"ConditionalExpression"===d.type&&d.test!==e&&y(b(e.argument)+"'"+r(d)+"' will always evaluate '"+r(e.argument)+"'");var m=f(S("await")),v=i(e.argument);s(e,m);for(var x,w,E=1;E<l.length;E++)if(w=a(l[E].self).isBlockStatement){x=l[E-1];break}if(!x)throw new Error(b(e)+"Illegal await not contained in a statement");var k,A,C=_(l,[o,n]),L=x.index,P=w.splice(L,w.length-L).slice(1);"ReturnStatement"===x.self.type&&"CallExpression"===x.self.argument.type&&1===x.self.argument.arguments.length&&x.self.argument.arguments[0].name===m.name?A=k=x.self.argument.callee:"Identifier"===x.self.type||x.self.name===m.name||"ExpressionStatement
 "===x.self.type&&"Identifier"===x.self.expression.type&&x.self.expression.name===m.name?k=P.length?{type:"FunctionExpression",params:[i(m)],body:z({type:"BlockStatement",body:i(P)},t,C)}:{type:"FunctionExpression",params:[],body:{type:"BlockStatement",body:[]}}:(P.unshift(x.self),k={type:"FunctionExpression",params:[i(m)],body:z({type:"BlockStatement",body:i(P)},t,C)}),A||(A=k?g(k,C.$error):{type:"FunctionExpression",params:[],body:{type:"BlockStatement",body:[]}}),n.wrapAwait&&(v={type:"CallExpression",arguments:[v],callee:n.promises||n.generators?{type:"MemberExpression",object:f("Promise"),property:f("resolve")}:{type:"MemberExpression",object:f("Object"),property:f("$makeThenable")}});var T={type:"CallExpression",callee:{type:"MemberExpression",object:v,property:f("then",p),computed:!1},arguments:[A,C.$error]};w.push({loc:p,type:"ReturnStatement",argument:T})}return!0}),e}function Y(e,t){var n=e.$label;delete e.$label;var r=f(S("idx")),i=f(S("in")),o=m.part("var $0,$1 = [];for (
 $0 in $2) $1.push($0)",[r,i,e.right]).body,u=m.part("for ($0; $1.length;){ $2 = $1.shift(); $:3 ; }",[e.left,i,"VariableDeclaration"===e.left.type?e.left.declarations[0].id:e.left,e.body]).body[0];u.$label=n;for(var c=0;c<t.length;c++)if(a(t[c].parent).isBlockStatement){t[c].parent[t[c].field].splice(t[c].index,0,o[0],o[1]);break}s(e,u)}function G(e,t){"BlockStatement"!==e.body.type&&(e.body={type:"BlockStatement",body:[e.body]});var n,r,i=m.part("[$0[Symbol.iterator]()]",[e.right]).expr;if("VariableDeclaration"===e.left.type){"const"===e.left.kind&&(e.left.kind="let"),n=e.left.declarations[0].id;var s=se(e.left.declarations[0].id);r=f(S("iterator_"+s.join("_"))),e.left.declarations=s.map(function(e){return{type:"VariableDeclarator",id:f(e)}}),e.left.declarations.push({type:"VariableDeclarator",id:r,init:i}),e.init=e.left}else{n=e.left,r=f(S("iterator_"+n.name));var o={type:"VariableDeclaration",kind:"var",declarations:[{type:"VariableDeclarator",id:r,init:i}]};e.init=o}e.type="ForS
 tatement",e.test=m.part("!($0[1] = $0[0].next()).done && (($1 = $0[1].value) || true)",[r,n]).expr,delete e.left,delete e.right}function J(e,t,r){function i(e){return"AwaitExpression"===e.type&&!e.$hidden||o&&("BreakStatement"===e.type||"ContinueStatement"===e.type)&&e.label}var s=e.$depth;"ForInStatement"===e.type&&c(e)?Y(e,t):"ForOfStatement"===e.type&&c(e)&&G(e,t);var o=t.some(function(e){return"$label"in e.self&&"ForStatement"===e.self.type&&e.self.$mapped});if(!e.$mapped&&a(e).isLoop&&u(e,i)){t[0].self.$mapped=!0;var l=[],p=e.init,h=e.test||x(!0),d=e.update,y=e.body;d&&(d={type:"ExpressionStatement",expression:d}),p&&(a(p).isStatement||(p={type:"ExpressionStatement",expression:p}),l.push(p));var g,v;e.$label?(v=e.$label.name,g=t[1]):(v=me++,g=t[0]),v=n.generatedSymbolPrefix+"Loop_"+v;var b,w,E=f(v+"_trampoline"),S=f(v),k=d?f(v+"_step"):S,A=f(v+"_exit");f("q"),f("$exception");if("index"in g){var C=g.index;w=g.parent[g.field].splice(C+1,g.parent[g.field].length-(C+1))}else w=[];b
 =L(A,w);var P={type:"ReturnStatement",argument:S},T={type:"ReturnStatement",argument:k},R={type:"ReturnStatement",argument:{type:"ArrayExpression",elements:[x(1)]}};m.treeWalker(y,function(e,t,n){if(a(e).isFunction||a(e).isLoop)return!0;if("BreakStatement"===e.type||"ContinueStatement"===e.type)if(e.label)for(var r=(n.filter(function(e){return"$label"in e.self}).map(function(e,t){return e.self.$label&&e.self.$label.name})),i=[],s=0;s<r.length;s++){if(r[s]===e.label.name){"BreakStatement"===e.type&&i.push(x(1)),n[0].replace({type:"ReturnStatement",argument:{type:"ArrayExpression",elements:i.reverse()}});break}i.push(x(0))}else"BreakStatement"===e.type?n[0].replace(R):n[0].replace(T);else t()},t),y="BlockStatement"===y.type?y.body.slice(0):[y],y="DoWhileStatement"===e.type?y.concat({type:"IfStatement",test:{type:"UnaryExpression",argument:h,prefix:!0,operator:"!"},consequent:R,alternate:T}):[{type:"IfStatement",test:h,consequent:{type:"BlockStatement",body:y.concat(T)},alternate:R}],n
 .noRuntime&&l.push({type:"VariableDeclaration",declarations:[{type:"VariableDeclarator",id:E}],kind:"var"});var O,F=_(t,[n]).$error;O=n.noRuntime?m.part("($idTrampoline = (function (q) {     $$setMapped: while (q) {          if (q.then)  "+(1===s?"             return void q.then($idTrampoline, $exit); ":"             return q.then($idTrampoline, $exit); ")+"         try {              if (q.pop)                   if (q.length)                   return q.pop() ? $idContinuation.call(this) : q;               else                   q = $idStep;               else                   q = q.call(this)           } catch (_exception) {              return $exit(_exception);           }      } }).bind(this))($idIter)",{setMapped:function(e){return e.$mapped=!0,e},idTrampoline:E,exit:F,idIter:S,idContinuation:A,idStep:k}).expr:m.part("(Function.$0.trampoline(this,$1,$2,$3,$5)($4))",[ge.asyncbind,A,k,F,S,x(1===s)]).expr,l.push({type:"ReturnStatement",argument:O}),l.push({$label:e.$label,type:"F
 unctionDeclaration",id:S,params:[],body:{type:"BlockStatement",body:y}}),d&&l.push({type:"FunctionDeclaration",id:k,params:[],body:{type:"BlockStatement",body:[d,P]}}),!p||"VariableDeclaration"!==p.type||"let"!==p.kind&&"const"!==p.kind?(l.push(b),t[0].replace(l.map(r))):("const"===p.kind&&(p.kind="let"),t[0].replace([{type:"BlockStatement",body:l.map(r)},r(b)]))}}function H(e,t){return m.treeWalker(e,function(e,t,r){function o(e){return{type:"ReturnStatement",argument:{type:"UnaryExpression",operator:"void",prefix:!0,argument:T(e||S)}}}function u(e,t){if("BreakStatement"===e.type)s(e,i(A(e.label&&n.generatedSymbolPrefix+"Loop_"+e.label.name+"_exit")));else if("ContinueStatement"===e.type)s(e,i(o(e.label&&n.generatedSymbolPrefix+"Loop_"+e.label.name+"_next")));else if(a(e).isFunction)return!0;t()}"ForInStatement"===e.type&&c(e)?Y(e,r):"ForOfStatement"===e.type&&c(e)&&G(e,r),t();var l;if(a(e).isLoop&&c(e)){var h=e.init,d=e.test||x(!0),y=e.update,v=e.body,b=p(v);h&&(a(h).isStatement||
 (h={type:"ExpressionStatement",expression:h})),y=y&&{type:"ExpressionStatement",expression:y},v=a(v).isBlockStatement?i(v).body:[i(v)];var w=e.$label&&e.$label.name;w="Loop_"+(w||me++);var E=n.generatedSymbolPrefix+(w+"_exit"),S=n.generatedSymbolPrefix+(w+"_next"),k=f(n.generatedSymbolPrefix+w),A=function(e){return{type:"ReturnStatement",argument:{type:"UnaryExpression",operator:"void",prefix:!0,argument:{type:"CallExpression",callee:f(e||E),arguments:[]}}}},_=L(S,[{type:"ReturnStatement",argument:{type:"CallExpression",callee:b?g(k):k,arguments:[f(E),ge.error]}}]);y&&_.body.body.unshift(y);for(var C=0;C<v.length;C++)m.treeWalker(v[C],u);v.push(i(o()));var P={type:"FunctionExpression",id:k,params:[f(E),ge.error],body:{type:"BlockStatement",body:[_]}};if("DoWhileStatement"===e.type)_.body.body=[{type:"IfStatement",test:i(d),consequent:{type:"BlockStatement",body:i(_.body.body)},alternate:{type:"ReturnStatement",argument:{type:"CallExpression",callee:f(E),arguments:[]}}}],P.body.body=
 [_].concat(v);else{var R={type:"IfStatement",test:i(d),consequent:{type:"BlockStatement",body:v},alternate:i(A())};P.body.body.push(R)}var O={type:"ExpressionStatement",expression:{type:"AwaitExpression",argument:g(P,x(0))}};for(!h||"VariableDeclaration"!==h.type||"let"!==h.kind&&"const"!==h.kind||("const"===h.kind&&(h.kind="let"),O={type:"BlockStatement",body:[i(h),O]},h=null),l=0;l<r.length;l++){var F=r[l];if("index"in F)return h?F.parent[F.field].splice(F.index,1,i(h),O):F.parent[F.field][F.index]=O,!0}}return!0},t),e}function Q(e){try{return Array.isArray(e)?e.some(Q):(m.treeWalker(e,function(e,t,r){if("Identifier"===e.type&&(e.name===n.$return||e.name===n.$error))throw e;if(a(e).isFunction){var i=u(e,function(e){if("Identifier"===e.type&&(e.name===n.$return||e.name===n.$error))throw e;if(("ReturnStatement"===e.type||"ThrowStatement"===e.type)&&a(e).isAsync)throw e});if(i)throw i;return!1}t()}),!1)}catch(e){return e}}function X(t){return m.treeWalker(t,function(t,r,i){var s=w(t)
 ;if(r(),s&&a(s).isAsync){if("set"==t.kind){var o=new SyntaxError(b(s)+"method 'async set' cannot be invoked",e.filename,t.start);throw o.pos=t.start,o.loc=t.loc.start,o}s.async=!1;var u=E(s);Q(s)||0!==s.body.body.length&&"ReturnStatement"===s.body.body[s.body.body.length-1].type||s.body.body.push({type:"ReturnStatement"});var c=g(k({type:"FunctionExpression",params:[ge.return,ge.error],body:X(F(s.body,i)),$wasAsync:!0},n),n.promises||n.generators||n.engine?null:x(!n.lazyThenables||0));n.promises?s.body={type:"BlockStatement",body:[{type:"ReturnStatement",argument:{type:"NewExpression",callee:f("Promise"),arguments:[c]}}]}:s.body={type:"BlockStatement",body:[{type:"ReturnStatement",argument:c}]},u&&V(s.body.body,[ve])}})}function Z(e,t){return m.treeWalker(e,function(e,r,i){if(r(),a(e).isAsync&&a(e).isFunction){var s;(s=w(i[0].parent))&&a(s).isAsync&&"get"===i[0].parent.kind&&te(i[0].parent.key),delete e.async;var o,u=E(e);return a(e.body).isBlockStatement?(t||Q(e.body)||0!==e.body.b
 ody.length&&"ReturnStatement"===e.body.body[e.body.body.length-1].type||e.body.body.push({type:"ReturnStatement"}),o={type:"BlockStatement",body:e.body.body.map(function(e){return F(e,i)})}):(o={type:"BlockStatement",body:[F({type:"ReturnStatement",argument:e.body},i)]},e.expression=!1),o=g(k({type:"FunctionExpression",params:[ge.return,ge.error],body:o,$wasAsync:!0},n),n.promises||n.generators||n.engine?null:x(!n.lazyThenables||0)),n.promises&&(o={type:"NewExpression",callee:f("Promise"),arguments:[o]}),o={type:"BlockStatement",body:[{type:"ReturnStatement",loc:e.loc,argument:o}]},u&&V(o.body,[ve]),void(e.body=o)}}),e}function K(e){if(Array.isArray(e))return e.map(K);var t=0;return m.treeWalker(e,function(e,n,r){if("ThrowStatement"!==e.type&&"ReturnStatement"!==e.type||e.$mapped){if(a(e).isFunction)return t++,n(e),void t--}else if(t>0&&a(e).isAsync)return delete e.async,e.argument={type:"CallExpression",callee:"ThrowStatement"===e.type?ge.error:ge.return,arguments:e.argument?[e.arg
 ument]:[]},void(e.type="ReturnStatement");n(e)})}function ee(e,t){if(n.noRuntime)throw new Error("Nodent: 'noRuntime' option only compatible with -promise and -engine modes");return m.part("{ return (function*($return,$error){ $:body }).$asyncspawn(Promise,this) }",{return:ge.return,error:ge.error,asyncspawn:ge.asyncspawn,body:K(e).concat(t?[{type:"ReturnStatement",argument:ge.return}]:[])}).body[0]}function te(e){e.$asyncgetwarninig||(e.$asyncgetwarninig=!0,y(b(e)+"'async get "+r(e)+"(){...}' is non-standard. See https://github.com/MatAtBread/nodent#differences-from-the-es7-specification"))}function ne(e,t){function r(e,t){m.treeWalker(e,function(n,r,i){n!==e&&a(n).isFunction||(a(n).isAwait?t?(n.$hidden=!0,r()):(delete n.operator,n.delegate=!1,n.type="YieldExpression",r()):r())})}function o(e){var t=n.promises;n.promises=!0,C(e,!0),n.promises=t}function u(e){return"BlockStatement"!==e.body.type&&(e.body={type:"BlockStatement",body:[{type:"ReturnStatement",argument:e.body}]}),e}func
 tion c(e,n){n.$asyncexitwarninig||(n.$asyncexitwarninig=!0,y(b(e)+"'async "+{ReturnStatement:"return",ThrowStatement:"throw"}[e.type]+"' not possible in "+(t?"engine":"generator")+" mode. Using Promises for function at "+b(n)))}m.treeWalker(e,function(e,n,i){n();var l,p,h;if(a(e).isAsync&&a(e).isFunction){var f;(f=w(i[0].parent))&&a(f).isAsync&&"get"===i[0].parent.kind&&te(i[0].parent.key),(p=Q(e.body))?(c(p,e.body),o(e)):t?"get"!==i[0].parent.kind&&r(e,!0):(l=e,delete l.async,h=E(l),r(l,!1),l=u(l),l.body=ee(l.body.body,p),h&&V(l.body.body,[ve]),l.id&&"ExpressionStatement"===i[0].parent.type?(l.type="FunctionDeclaration",i[1].replace(l)):i[0].replace(l))}else(l=w(e))&&a(l).isAsync&&((p=Q(l))?(c(p,l),o(e)):t&&"get"!==e.kind||(t?o(e):(e.async=!1,h=E(l),r(l,!1),s(l,u(l)),l.body=ee(l.body.body,p)),h&&V(l.body.body,[ve])))});var l=i(n);return n.engine=!1,n.generators=!1,le(e),ae(e),D(e,l.engine),$(e),N(e),W(e,[q,J,I,j,B]),z(e,"warn"),n.engine=l.engine,n.generators=l.generators,e}function
  re(e,t,n){var r=[];return m.treeWalker(e,function(i,s,o){return i===e?s():t(i,o)?void r.push([].concat(o)):void(n||a(i).isScope||s())}),r}function ie(e,t){var n=[],r={};if(e=e.filter(function(e){return"ExportNamedDeclaration"!==e[0].parent.type}),e.length){var s={};e.forEach(function(e){function t(e){e in s?r[e]=o.declarations[u]:s[e]=o.declarations[u]}for(var n=e[0],o=n.self,a=(o.kind,[]),u=0;u<o.declarations.length;u++){var c=o.declarations[u];if(se(c.id).forEach(t),c.init){var l={type:"AssignmentExpression",left:i(c.id),operator:"=",right:i(c.init)};a.push(l)}}if(0==a.length)n.remove();else{var p=a.length>1?{type:"SequenceExpression",expressions:a}:a[0];"For"!==n.parent.type.slice(0,3)&&(p={type:"ExpressionStatement",expression:p}),n.replace(p)}});var o=Object.keys(s);o.length&&(o=o.map(function(e){return{type:"VariableDeclarator",id:f(e),loc:s[e].loc,start:s[e].start,end:s[e].end}}),n[0]&&"VariableDeclaration"===n[0].type?n[0].declarations=n[0].declarations.concat(o):n.unshift(
 {type:"VariableDeclaration",kind:t,declarations:o}))}return{decls:n,duplicates:r}}function se(e){if(!e)return[];if(Array.isArray(e))return e.reduce(function(e,t){return e.concat(se(t.id))},[]);switch(e.type){case"Identifier":return[e.name];case"ArrayPattern":return e.elements.reduce(function(e,t){return e.concat(se(t))},[]);case"ObjectPattern":return e.properties.reduce(function(e,t){return e.concat(se(t))},[]);case"ObjectProperty":case"Property":return se(e.value);case"RestElement":case"RestProperty":return se(e.argument)}}function oe(e){function t(e){y(b(e)+"Possible assignment to 'const "+r(e)+"'")}function n(e){switch(e.type){case"Identifier":"const"===i[e.name]&&t(e);break;case"ArrayPattern":e.elements.forEach(function(e){"const"===i[e.name]&&t(e)});break;case"ObjectPattern":e.properties.forEach(function(e){"const"===i[e.key.name]&&t(e)})}}var i={};m.treeWalker(e,function(e,t,r){var s=a(e).isBlockStatement;if(s){i=Object.create(i);for(var o=0;o<s.length;o++)if("VariableDeclarat
 ion"===s[o].type)for(var u=0;u<s[o].declarations.length;u++)se(s[o].declarations[u].id).forEach(function(e){i[e]=s[o].kind})}t(),"AssignmentExpression"===e.type?n(e.left):"UpdateExpression"===e.type&&n(e.argument),s&&(i=Object.getPrototypeOf(i))})}function ae(e){function t(e){return function(t,n){if("VariableDeclaration"===t.type&&(t.kind=t.kind||"var")&&e.indexOf(t.kind)>=0){var r=n[0];return("left"!=r.field||"ForInStatement"!==r.parent.type&&"ForOfStatement"!==r.parent.type)&&("init"!=r.field||"ForStatement"!==r.parent.type||"const"!==t.kind&&"let"!==t.kind)}}}function n(e,t){return!("FunctionDeclaration"!==e.type||!e.id)&&(a(e).isAsync||!e.$continuation)}oe(e);var i=!1;return m.treeWalker(e,function(e,s,o){var u=i;if(i=i||he(e),a(e).isBlockStatement){if(c(e)){var l,p,h,d,m,g=!o[0].parent||a(o[0].parent).isScope;if(g){p=re(e,t(["const"]),!1);var v={},x={};p.forEach(function(e){e[0].self.declarations.forEach(function(e){se(e.id).forEach(function(t){v[t]||x[t]?(delete v[t],x[t]=e):v
 [t]=e})})}),p.forEach(function(e){for(var t=0;t<e.length&&!a(e[t].parent).isBlockStatement;t++);var n=e[t];n.append({type:"ExpressionStatement",expression:{type:"SequenceExpression",expressions:e[0].self.declarations.map(function(e){var t={type:"AssignmentExpression",operator:"=",left:e.id,right:e.init};return e.init=null,t})}});var r=se(e[0].self.declarations),i=r.filter(function(e){return e in x});i.length&&e[0].append({type:"VariableDeclaration",kind:"let",declarations:i.map(function(e){return{type:"VariableDeclarator",id:f(e)}})}),e[0].self.kind="var",i=r.filter(function(e){return e in v}),i.length?e[0].self.declarations=i.map(function(e){return{type:"VariableDeclarator",id:f(e)}}):n.remove()}),h=re(e,t(["var"]),!1),d=[]}else d=re(e,t(["const"]),!0);d=d.concat(re(e,t(["let"]),!0)),l=re(e,function(e){return a(e).isDirective},!0),m=re(e,n,i),h=h?ie(h,"var"):{duplicates:{},decls:[]},d=d?ie(d,"let"):{duplicates:{},decls:[]},Object.keys(h.duplicates).forEach(function(e){y(b(h.duplica
 tes[e])+"Duplicate declaration '"+r(h.duplicates[e])+"'")}),Object.keys(d.duplicates).forEach(function(e){y(b(d.duplicates[e])+"Duplicate declaration '"+r(d.duplicates[e])+"'")}),m=m.map(function(e){var t,n=e[0];return a(n.self).isAsync?(t=n.self.id.name,a(n.parent).isBlockStatement?(n.self.type="FunctionDeclaration",n.remove(),n.self):n.replace(f(t))):(t=n.self.id.name,"FunctionDeclaration"===n.self.type?n.remove():n.replace(f(t)))}),l=l.map(function(e){return e[0].remove()}),(l.length||h.decls.length||d.decls.length||m.length)&&(e.body=l.concat(h.decls).concat(d.decls).concat(m).concat(e.body))}i=u}if(s(),"ForOfStatement"===e.type||"ForInStatement"===e.type||a(e).isLoop){for(var w=0,E=0;E<o.length;E++)if("ForOfStatement"===o[E].self.type||"ForInStatement"===o[E].self.type||a(o[E].self).isLoop)w+=1;else if(a(o[E].self).isFunction)break;e.$depth=w,"LabeledStatement"===o[0].parent.type?e.$label=o[0].parent.label:e.$label=null}return!0}),e}function ue(e,t){function n(){return e.$super
 ID=e.$superID||f("$super$"+me++)}return function(e){e=w(e),e&&a(e).isAsync&&(!t||"get"===e.kind||u(e,function(e){return a(e).isFunction&&u(e,function(e){return"Super"===e.type})&&u(e,function(e){return e.async&&("ReturnStatement"===e.type||"ThrowStatement"===e.type)})},!0))&&m.treeWalker(e.body,function(e,t,r){var i;a(e).isClass||(t(),"Super"===e.type&&("MemberExpression"===r[0].parent.type?"CallExpression"===r[1].parent.type&&"callee"===r[1].field?(i=m.part("this.$super($field).call(this,$args)",{super:n(),field:r[0].parent.computed?r[0].parent.property:x(r[0].parent.property.name),args:r[1].parent.arguments}).expr,r[2].replace(i)):(i=m.part("this.$super($field)",{super:n(),field:r[0].parent.computed?r[0].parent.property:x(r[0].parent.property.name)}).expr,r[1].replace(i)):y(b(e)+"'super' in async methods must be deferenced. 'async constructor()'/'await super()' not valid.")))})}}function ce(e,t){return m.treeWalker(e,function(e,r,i){if(r(),("ClassDeclaration"===e.type||"ClassExpre
 ssion"===e.type)&&(e.body.body.forEach(ue(e,t)),e.$superID)){var s=m.part("(function($field) { return super[$field] })",{field:f("$field")}).expr;n.babelTree?(s.type="ClassMethod",s.key=e.$superID,s.kind="method",e.body.body.push(s)):e.body.body.push({type:"MethodDefinition",key:e.$superID,kind:"method",value:s})}})}function le(e){return m.treeWalker(e,function(e,t,n){return c(e)&&"ArrowFunctionExpression"===e.type&&"BlockStatement"!==e.body.type&&(e.body={type:"BlockStatement",body:[{type:"ReturnStatement",argument:e.body}]}),t(),!0}),e}function pe(e){return m.treeWalker(e,function(e,t,r){t(),"Identifier"===e.type&&"__nodent"===e.name&&s(e,x(n))}),e}function he(e){if("Program"===e.type&&"module"===e.sourceType)return!0;var t;if("Program"===e.type)t=e.body;else{if(!a(e).isFunction)return!1;t=e.body.body}if(t)for(var n=0;n<t.length;n++)if(a(t[n]).isDirective&&t[n].expression.value.match(/^\s*use\s+strict\s*$/))return!0;return!1}function fe(e){for(var t=0;t<e.length;t++){var n=e[t];if
 ("ClassDeclaration"===n.type||"VariableDeclaration"===n.type&&("let"===n.kind||"const"===n.kind)||"FunctionDeclaration"===n.type&&n.id&&n.id.name&&!n.$continuation)return!0}return!1}function de(e){m.treeWalker(e,function(e,t,n){if(t(),"ArrowFunctionExpression"===e.type&&"BlockStatement"===e.body.type&&e.body.body.length&&"ReturnStatement"===e.body.body[0].type)e.body=e.body.body[0].argument;else{var r,i;if(r=a(e).isBlockStatement)for(var s=0;s<r.length;s++)(i=a(r[s]).isBlockStatement)&&!fe(i)&&(fe(r[s])||[].splice.apply(r,[s,1].concat(i)))}}),m.treeWalker(e,function(e,t,n){if(t(),a(e).isJump){var r=n[0];if("index"in r)for(var i=r.index+1,s=r.parent[r.field];i<s.length;)"VariableDeclaration"===s[i].type||a(s[i]).isFunction&&s[i].id?i+=1:s.splice(i,1)}}),m.treeWalker(e,function(e,t,n){t(),e.$thisCall&&ye[e.name]&&(ye[e.name].ref?delete ye[e.name]:ye[e.name].ref=e.$thisCall)});var t=Object.keys(ye).map(function(e){return ye[e].ref});if(t.length){m.treeWalker(e,function(e,n,r){if(n(),t.
 indexOf(e)>=0&&"ReturnStatement"===r[1].self.type){var s=e.$thisCallName,o=i(ye[s].def.body.body);ye[s].$inlined=!0,a(r[1].self).isJump||o.push({type:"ReturnStatement"}),r[1].replace(o)}});var n=Object.keys(ye).map(function(e){return ye[e].$inlined&&ye[e].def});m.treeWalker(e,function(e,t,r){t(),n.indexOf(e)>=0&&r[0].remove()})}if("Program"!==e.type&&"module"!==e.sourceType||!u(e,function(e){return a(e).isES6},!0)){var r=he(e);!function(e){m.treeWalker(e,function(e,t,n){if("Program"===e.type||"FunctionDeclaration"===e.type||"FunctionExpression"===e.type){var i=r;if(r=r||he(e)){t();var s="Program"===e.type?e:e.body,o=re(s,function(e,t){if("FunctionDeclaration"===e.type)return t[0].parent!==s});o=o.map(function(e){return e[0].remove()}),[].push.apply(s.body,o)}else t();r=i}else t()})}(e)}return m.treeWalker(e,function(e,t,n){t(),Object.keys(e).filter(function(e){return"$"===e[0]}).forEach(function(t){delete e[t]})}),e}var ye={},me=1,ge={};Object.keys(n).filter(function(e){return"$"===
 e[0]}).forEach(function(e){ge[e.slice(1)]=f(n[e])});var ve=m.part("var $0 = arguments",[ge.arguments]).body[0];return n.engine?(e.ast=ce(e.ast,!0),e.ast=ne(e.ast,n.engine),e.ast=pe(e.ast),de(e.ast)):n.generators?(e.ast=ce(e.ast),e.ast=ne(e.ast),e.ast=pe(e.ast),de(e.ast)):(e.ast=ce(e.ast),C(e.ast)),n.babelTree&&m.treeWalker(e.ast,function(e,t,n){t(),"Literal"===e.type&&s(e,x(e.value))}),e}var m=e("./parser"),g=e("./output"),v={start:!0,end:!0,loc:!0,range:!0},b={getScope:function(){return"FunctionDeclaration"===this.node.type||"FunctionExpression"===this.node.type||"Function"===this.node.type||"ObjectMethod"===this.node.type||"ClassMethod"===this.node.type||"ArrowFunctionExpression"===this.node.type&&"BlockStatement"===this.node.body.type?this.node.body.body:"Program"===this.node.type?this.node.body:null},isScope:function(){return"FunctionDeclaration"===this.node.type||"FunctionExpression"===this.node.type||"Function"===this.node.type||"Program"===this.node.type||"ObjectMethod"===thi
 s.node.type||"ClassMethod"===this.node.type||"ArrowFunctionExpression"===this.node.type&&"BlockStatement"===this.node.body.type},isFunction:function(){return"FunctionDeclaration"===this.node.type||"FunctionExpression"===this.node.type||"Function"===this.node.type||"ObjectMethod"===this.node.type||"ClassMethod"===this.node.type||"ArrowFunctionExpression"===this.node.type},isClass:function(){return"ClassDeclaration"===this.node.type||"ClassExpression"===this.node.type},isBlockStatement:function(){return"ClassBody"===this.node.type||"Program"===this.node.type||"BlockStatement"===this.node.type?this.node.body:"SwitchCase"===this.node.type&&this.node.consequent},isExpressionStatement:function(){return"ExpressionStatement"===this.node.type},isLiteral:function(){return"Literal"===this.node.type||"BooleanLiteral"===this.node.type||"RegExpLiteral"===this.node.type||"NumericLiteral"===this.node.type||"StringLiteral"===this.node.type||"NullLiteral"===this.node.type},isDirective:function(){retu
 rn"ExpressionStatement"===this.node.type&&("StringLiteral"===this.node.expression.type||"Literal"===this.node.expression.type&&"string"==typeof this.node.expression.value)},isUnaryExpression:function(){return"UnaryExpression"===this.node.type},isAwait:function(){return"AwaitExpression"===this.node.type&&!this.node.$hidden},isAsync:function(){return this.node.async},isStatement:function(){return null!==this.node.type.match(/[a-zA-Z]+Declaration/)||null!==this.node.type.match(/[a-zA-Z]+Statement/)},isExpression:function(){return null!==this.node.type.match(/[a-zA-Z]+Expression/)},isLoop:function(){return"ForStatement"===this.node.type||"WhileStatement"===this.node.type||"DoWhileStatement"===this.node.type},isJump:function(){return"ReturnStatement"===this.node.type||"ThrowStatement"===this.node.type||"BreakStatement"===this.node.type||"ContinueStatement"===this.node.type},isES6:function(){switch(this.node.type){case"ExportNamedDeclaration":case"ExportSpecifier":case"ExportDefaultDeclar
 ation":case"ExportAllDeclaration":case"ImportDeclaration":case"ImportSpecifier":case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":case"ArrowFunctionExpression":case"ForOfStatement":case"YieldExpression":case"Super":case"RestElement":case"RestProperty":case"SpreadElement":case"TemplateLiteral":case"ClassDeclaration":case"ClassExpression":return!0;case"VariableDeclaration":return this.node.kind&&"var"!==this.node.kind;case"FunctionDeclaration":case"FunctionExpression":return!!this.node.generator}}},x={};Object.keys(b).forEach(function(e){Object.defineProperty(x,e,{get:b[e]})}),t.exports={printNode:r,babelLiteralNode:h,asynchronize:function(e,t,n,r){try{return y(e,t,n,r)}catch(t){if(t instanceof SyntaxError){var i=e.origCode.substr(t.pos-t.loc.column);i=i.split("\n")[0],t.message+=" (nodent)\n"+i+"\n"+i.replace(/[\S ]/g,"-").substring(0,t.loc.column)+"^",t.stack=""}throw t}}}},{"./output":10,"./parser":11}],10:[function(e,t,n){"use strict";function r(e){var t=y[e.type]||y[e.t
 ype+e.operator]||y[e.type+e.operator+(e.prefix?"prefix":"")];return void 0!==t?t:20}
-function i(e,t,n){var r=this[n||e.type];r?r.call(this,e,t):t.write(e,"/*"+e.type+"?*/ "+t.sourceAt(e.start,e.end))}function s(e,t,n,i){2===i||r(n)<r(t)||r(n)==r(t)&&(i||t.right===n)?(e.write(null,"("),this.out(n,e,n.type),e.write(null,")")):this.out(n,e,n.type)}function o(e,t){var n;if(t.write(null,"("),null!=e&&e.length>0){this.out(e[0],t,e[0].type);for(var r=1,i=e.length;r<i;r++)n=e[r],t.write(n,", "),this.out(n,t,n.type)}t.write(null,") ")}var a,u,c,l,p,h,f=e("source-map").SourceMapGenerator;if("".repeat)h=function(e,t){return t&&e?e.repeat(t):""};else{var d={};h=function(e,t){if(!t||!e)return"";var n=""+e+t;if(!d[n]){for(var r=[];t--;)r.push(e);d[n]=r.join("")}return d[n]}}var y={ExpressionStatement:-1,Identifier:21,Literal:21,BooleanLiteral:21,RegExpLiteral:21,NumericLiteral:21,StringLiteral:21,NullLiteral:21,ThisExpression:21,SuperExpression:21,ObjectExpression:21,ClassExpression:21,MemberExpression:19,CallExpression:18,NewExpression:18,ArrayExpression:17.5,FunctionExpression:
 17.5,FunctionDeclaration:17.5,ArrowFunctionExpression:17.5,"UpdateExpression++":17,"UpdateExpression--":17,"UpdateExpression++prefix":16,"UpdateExpression--prefix":16,UnaryExpression:16,AwaitExpression:16,"BinaryExpression**":15,"BinaryExpression*":15,"BinaryExpression/":15,"BinaryExpression%":15,"BinaryExpression+":14,"BinaryExpression-":14,"BinaryExpression<<":13,"BinaryExpression>>":13,"BinaryExpression>>>":13,"BinaryExpression<":12,"BinaryExpression<=":12,"BinaryExpression>":12,"BinaryExpression>=":12,BinaryExpressionin:12,BinaryExpressioninstanceof:12,"BinaryExpression==":11,"BinaryExpression===":11,"BinaryExpression!=":11,"BinaryExpression!==":11,"BinaryExpression&":10,"BinaryExpression^":9,"BinaryExpression|":8,"LogicalExpression&&":7,"LogicalExpression||":6,ConditionalExpression:5,AssignmentPattern:4,AssignmentExpression:4,yield:3,YieldExpression:3,SpreadElement:2,"comma-separated-list":1.5,SequenceExpression:1},m={type:"comma-separated-list"},g={out:i,expr:s,formatParameter
 s:o,Program:function(e,t){var n,r,i=h(t.indent,t.indentLevel),s=t.lineEnd;n=e.body;for(var o=0,a=n.length;o<a;o++)r=n[o],t.write(null,i),this.out(r,t,r.type),t.write(null,s)},BlockStatement:p=function(e,t){var n,r,i=h(t.indent,t.indentLevel++),s=t.lineEnd,o=i+t.indent;if(t.write(e,"{"),n=e.body,null!=n&&n.length>0){t.write(null,s);for(var a=0,u=n.length;a<u;a++)r=n[a],t.write(null,o),this.out(r,t,r.type),t.write(null,s);t.write(null,i)}t.write(e.loc?{loc:{start:{line:e.loc.end.line,column:0}}}:null,"}"),t.indentLevel--},ClassBody:p,EmptyStatement:function(e,t){t.write(e,";")},ParenthesizedExpression:function(e,t){this.expr(t,e,e.expression,2)},ExpressionStatement:function(e,t){"FunctionExpression"===e.expression.type||"ObjectExpression"===e.expression.type?(t.write(null,"("),this.expr(t,e,e.expression),t.write(null,")")):this.expr(t,e,e.expression),t.write(null,";")},IfStatement:function(e,t){t.write(e,"if ("),this.out(e.test,t,e.test.type),t.write(null,") "),"BlockStatement"!==e.co
 nsequent.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1)),this.out(e.consequent,t,e.consequent.type),null!=e.alternate&&("BlockStatement"!==e.consequent.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel)),t.write(null," else "),"BlockStatement"!==e.alternate.type&&"IfStatement"!==e.alternate.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1)),this.out(e.alternate,t,e.alternate.type))},LabeledStatement:function(e,t){this.out(e.label,t,e.label.type),t.write(null,":"),this.out(e.body,t,e.body.type)},BreakStatement:function(e,t){t.write(e,"break"),e.label&&(t.write(null," "),this.out(e.label,t,e.label.type)),t.write(null,";")},ContinueStatement:function(e,t){t.write(e,"continue"),e.label&&(t.write(null," "),this.out(e.label,t,e.label.type)),t.write(null,";")},WithStatement:function(e,t){t.write(e,"with ("),this.out(e.object,t,e.object.type),t.write(null,") "),this.out(e.body,t,e.body.type)},SwitchStatement:function(e,t){var n,r,i,s=h(t.indent,t.indentLevel++),o=t.line
 End;t.indentLevel++;var a=s+t.indent,u=a+t.indent;t.write(e,"switch ("),this.out(e.discriminant,t,e.discriminant.type),t.write(null,") {",o);for(var c=e.cases,l=0;l<c.length;l++){n=c[l],n.test?(t.write(n,a,"case "),this.out(n.test,t,n.test.type),t.write(null,":",o)):t.write(n,a,"default:",o),r=n.consequent;for(var p=0;p<r.length;p++)i=r[p],t.write(null,u),this.out(i,t,i.type),t.write(null,o)}t.indentLevel-=2,t.write(null,s,"}")},ReturnStatement:function(e,t){e.async&&t.write(e," async "),t.write(e,"return"),e.argument&&(t.write(null," "),this.out(e.argument,t,e.argument.type)),t.write(null,";")},ThrowStatement:function(e,t){e.async&&t.write(e," async "),t.write(e,"throw "),this.out(e.argument,t,e.argument.type),t.write(null,";")},TryStatement:function(e,t){t.write(e,"try "),this.out(e.block,t,e.block.type),e.handler&&this.out(e.handler,t,e.handler.type),e.finalizer&&(t.write(e.finalizer," finally "),this.out(e.finalizer,t,e.finalizer.type))},CatchClause:function(e,t){t.write(e," cat
 ch ("),this.out(e.param,t,e.param.type),t.write(null,") "),this.out(e.body,t,e.body.type)},WhileStatement:function(e,t){t.write(e,"while ("),this.out(e.test,t,e.test.type),t.write(null,") "),"BlockStatement"!==e.body.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1)),this.out(e.body,t,e.body.type)},DoWhileStatement:function(e,t){t.write(e,"do "),"BlockStatement"!==e.body.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1)),this.out(e.body,t,e.body.type),t.write(null," while ("),this.out(e.test,t,e.test.type),t.write(null,");")},ForStatement:function(e,t){if(t.write(e,"for ("),null!=e.init){var n=e.init,r=n.type;t.inForInit++,this.out(n,t,r),t.inForInit--,"VariableDeclaration"!==r&&t.write(null,"; ")}else t.write(null,"; ");e.test&&this.out(e.test,t,e.test.type),t.write(null,"; "),e.update&&this.out(e.update,t,e.update.type),t.write(null,") "),"BlockStatement"!==e.body.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1)),this.out(e.body,t,e.body.type)},ForInStatement
 :a=function(e,t){t.write(e,"for (");var n=e.left,r=n.type;t.inForInit++,this.out(n,t,r),"V"===r[0]&&19===r.length&&t.back(),t.inForInit--,t.write(null,"I"===e.type[3]?" in ":" of "),this.out(e.right,t,e.right.type),t.write(null,") "),"BlockStatement"!==e.body.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1)),this.out(e.body,t,e.body.type)},ForOfStatement:a,DebuggerStatement:function(e,t){t.write(e,"debugger;")},Function:function(e,t){e.async&&t.write(e,"async "),t.write(e,e.generator?"function* ":"function "),e.id&&t.write(e.id,e.id.name),this.formatParameters(e.params,t),this.out(e.body,t,e.body.type)},FunctionDeclaration:function(e,t){this.Function(e,t),t.write(null,t.lineEnd,h(t.indent,t.indentLevel))},FunctionExpression:function(e,t){this.Function(e,t)},VariableDeclaration:function(e,t){var n=e.declarations;t.write(e,e.kind," ");var r=n.length;if(r>0){this.out(n[0],t,"VariableDeclarator");for(var i=1;i<r;i++)t.write(null,", "),this.out(n[i],t,"VariableDeclarator")}t.writ
 e(null,";")},VariableDeclarator:function(e,t){this.out(e.id,t,e.id.type),null!=e.init&&(t.write(null," = "),this.expr(t,m,e.init))},ClassDeclaration:function(e,t){t.write(e,"class "),e.id&&t.write(e.id,e.id.name+" "),e.superClass&&(t.write(null,"extends "),this.out(e.superClass,t,e.superClass.type),t.write(null," ")),this.out(e.body,t,"BlockStatement")},ImportSpecifier:function(e,t){e.local.name==e.imported.name?this.out(e.local,t,e.local.type):(this.out(e.imported,t,e.imported.type),t.write(null," as "),this.out(e.local,t,e.local.type))},ImportDefaultSpecifier:function(e,t){this.out(e.local,t,e.local.type)},ImportNamespaceSpecifier:function(e,t){t.write(null,"* as "),this.out(e.local,t,e.local.type)},ImportDeclaration:function(e,t){var n;t.write(e,"import ");var r=e.specifiers,i=r.length,s=!0;if(i>0){for(var n=0;n<i;n++)"ImportSpecifier"===r[n].type&&s&&(s=!1,t.write(null,"{")),this.out(r[n],t,r[n].type),n<i-1&&t.write(null,", ");"ImportSpecifier"===r[i-1].type&&t.write(null,"}"),t
 .write(null," from ")}t.write(e.source,e.source.raw),t.write(null,";")},ExportDefaultDeclaration:function(e,t){t.write(e,"export default "),this.out(e.declaration,t,e.declaration.type)},ExportSpecifier:function(e,t){e.local.name==e.exported.name?this.out(e.local,t,e.local.type):(this.out(e.local,t,e.local.type),t.write(null," as "),this.out(e.exported,t,e.exported.type))},ExportNamedDeclaration:function(e,t){if(t.write(e,"export "),e.declaration)this.out(e.declaration,t,e.declaration.type);else{var n=e.specifiers;if(t.write(e,"{"),n&&n.length>0)for(var r=0;r<n.length;r++)this.out(n[r],t,n[r].type),r<n.length-1&&t.write(null,", ");t.write(null,"}"),e.source&&t.write(e.source," from ",e.source.raw),t.write(null,";")}},ExportAllDeclaration:function(e,t){t.write(e,"export * from "),t.write(e.source,e.source.raw,";")},MethodDefinition:function(e,t){switch(e.value.async&&t.write(e,"async "),e.static&&t.write(e,"static "),e.kind){case"get":case"set":t.write(e,e.kind," ")}e.value.generator&
 &t.write(null,"*"),e.computed?(t.write(null,"["),this.out(e.key,t,e.key.type),t.write(null,"]")):this.out(e.key,t,e.key.type),this.formatParameters(e.value.params,t),this.out(e.value.body,t,e.value.body.type)},ClassMethod:function(e,t){switch(e.async&&t.write(e,"async "),e.static&&t.write(e,"static "),e.kind){case"get":case"set":t.write(e,e.kind," ")}e.generator&&t.write(null,"*"),e.computed?(t.write(null,"["),this.out(e.key,t,e.key.type),t.write(null,"]")):this.out(e.key,t,e.key.type),this.formatParameters(e.params,t),this.out(e.body,t,e.body.type)},ClassExpression:function(e,t){this.out(e,t,"ClassDeclaration")},ArrowFunctionExpression:function(e,t){e.async&&t.write(e,"async "),this.formatParameters(e.params,t),t.write(e,"=> "),"ObjectExpression"===e.body.type||"SequenceExpression"===e.body.type?(t.write(null,"("),this.out(e.body,t,e.body.type),t.write(null,")")):this.out(e.body,t,e.body.type)},ThisExpression:function(e,t){t.write(e,"this")},Super:function(e,t){t.write(e,"super")},
 RestElement:u=function(e,t){t.write(e,"..."),this.out(e.argument,t,e.argument.type)},SpreadElement:u,YieldExpression:function(e,t){t.write(e,e.delegate?"yield*":"yield"),e.argument&&(t.write(null," "),this.expr(t,e,e.argument))},AwaitExpression:function(e,t){t.write(e,"await "),this.expr(t,e,e.argument)},TemplateLiteral:function(e,t){var n,r=e.quasis,i=e.expressions;t.write(e,"`");for(var s=0,o=i.length;s<o;s++)n=i[s],t.write(r[s].value,r[s].value.raw),t.write(null,"${"),this.out(n,t,n.type),t.write(null,"}");t.write(r[r.length-1].value,r[r.length-1].value.raw),t.write(e,"`")},TaggedTemplateExpression:function(e,t){this.out(e.tag,t,e.tag.type),this.out(e.quasi,t,e.quasi.type)},ArrayExpression:l=function(e,t){if(t.write(e,"["),e.elements.length>0)for(var n=e.elements,r=n.length,i=0;;){var s=n[i];if(s&&this.expr(t,m,s),i+=1,(i<r||null===s)&&t.write(null,","),i>=r)break;t.lineLength()>t.wrapColumn&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1))}t.write(null,"]")},ArrayPattern:l,Ob
 jectExpression:function(e,t){var n,r=h(t.indent,t.indentLevel++),i=t.lineEnd,s=r+t.indent;if(t.write(e,"{"),e.properties.length>0){t.write(null,i);for(var o=e.properties,a=o.length,u=0;n=o[u],t.write(null,s),this.out(n,t,"Property"),++u<a;)t.write(e,",",i),t.lineLength()>t.wrapColumn&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1));t.write(null,i,r,"}")}else t.write(null,"}");t.indentLevel--},Property:function(e,t){e.method||"get"===e.kind||"set"===e.kind?this.MethodDefinition(e,t):(e.shorthand||(e.computed?(t.write(null,"["),this.out(e.key,t,e.key.type),t.write(null,"]")):this.out(e.key,t,e.key.type),t.write(null,": ")),this.expr(t,m,e.value))},ObjectPattern:function(e,t){if(t.write(e,"{"),e.properties.length>0)for(var n=e.properties,r=n.length,i=0;this.out(n[i],t,"Property"),++i<r;)t.write(null,", ");t.write(null,"}")},SequenceExpression:function(e,t){var n,r=e.expressions;if(r.length>0)for(var i=r.length,s=0;s<i;s++)n=r[s],s&&t.write(null,", "),this.expr(t,m,n)},UnaryExpressi
 on:function(e,t){e.prefix?(t.write(e,e.operator),e.operator.length>1&&t.write(e," "),this.expr(t,e,e.argument,!0)):(this.expr(t,e,e.argument),t.write(e,e.operator))},UpdateExpression:function(e,t){e.prefix?(t.write(e,e.operator),this.out(e.argument,t,e.argument.type)):(this.out(e.argument,t,e.argument.type),t.write(e,e.operator))},BinaryExpression:c=function(e,t){var n=e.operator;"in"===n&&t.inForInit&&t.write(null,"("),this.expr(t,e,e.left),t.write(e," ",n," "),this.expr(t,e,e.right,"ArrowFunctionExpression"===e.right.type?2:0),"in"===n&&t.inForInit&&t.write(null,")")},LogicalExpression:c,AssignmentExpression:function(e,t){"ObjectPattern"===e.left.type&&t.write(null,"("),this.BinaryExpression(e,t),"ObjectPattern"===e.left.type&&t.write(null,")")},AssignmentPattern:function(e,t){this.expr(t,e,e.left),t.write(e," = "),this.expr(t,e,e.right)},ConditionalExpression:function(e,t){this.expr(t,e,e.test,!0),t.write(e," ? "),this.expr(t,e,e.consequent),t.write(null," : "),this.expr(t,e,e.al
 ternate)},NewExpression:function(e,t){t.write(e,"new "),this.out(e,t,"CallExpression")},CallExpression:function(e,t){this.expr(t,e,e.callee,"ObjectExpression"===e.callee.type?2:0),t.write(e,"(");var n=e.arguments;if(n.length>0)for(var r=n.length,i=0;i<r;i++)0!=i&&t.write(null,", "),this.expr(t,m,n[i]);t.write(null,")")},MemberExpression:function(e,t){"ObjectExpression"===e.object.type||e.object.type.match(/Literal$/)&&e.object.raw.match(/^[0-9]/)||!("ArrayExpression"===e.object.type||"CallExpression"===e.object.type||"NewExpression"===e.object.type||r(e)<=r(e.object))?(t.write(null,"("),this.out(e.object,t,e.object.type),t.write(null,")")):this.out(e.object,t,e.object.type),e.computed?(t.write(e,"["),this.out(e.property,t,e.property.type),t.write(null,"]")):(t.write(e,"."),this.out(e.property,t,e.property.type))},Identifier:function(e,t){t.write(e,e.name)},Literal:function(e,t){t.write(e,e.raw)},NullLiteral:function(e,t){t.write(e,"null")},BooleanLiteral:function(e,t){t.write(e,JSON
 .stringify(e.value))},StringLiteral:function(e,t){t.write(e,JSON.stringify(e.value))},RegExpLiteral:function(e,t){t.write(e,e.extra.raw||"/"+e.pattern+"/"+e.flags)},NumericLiteral:function(e,t){t.write(e,JSON.stringify(e.value))}};t.exports=function(e,t,n){function r(e){l=arguments[arguments.length-1];for(var n=1;n<arguments.length;n++){if(c&&e&&e.loc&&e.loc.start){var r=!1;c.addMapping({source:t.map.file,original:{line:e.loc.start.line,column:r?0:e.loc.start.column},generated:{line:t.map.startLine+u.length+1,column:r?0:a.length}})}if(arguments[n]===y.lineEnd){if(d.length&&(d.forEach(function(e){"Line"===e.type?a+=" // "+e.value:((" /*"+e.value+"*/").split("\n").forEach(function(e){a+=e,u.push(a),a=""}),a=u.pop())}),d=[]),u.push(a),a="",p.length){var i=u.pop();p.forEach(function(e){var t=h(y.indent,e.indent);"Line"===e.type?u.push(t+"//"+e.value):(t+"/*"+e.value+"*/").split("\n").forEach(function(e){u.push(e)})}),u.push(i),p=[]}}else a+=arguments[n],e&&e.$comments&&(e.$comments.forE
 ach(function(t){var n=e.loc.start.column<t.loc.start.column;t.indent=y.indentLevel,n?d.push(t):p.push(t)}),e.$comments=null)}}function i(){return a.length}function s(e,t){return n?n.substring(e,t):"/* Omitted Non-standard node */"}function o(){a=a.substring(0,a.length-l.length)}t=t||{};var a="",u=[],c=t.map&&new f(t.map);c&&t.map.sourceContent&&c.setSourceContent(t.map.file,t.map.sourceContent);var l="",p=[],d=[],y={inForInit:0,lineLength:i,sourceAt:s,write:r,back:o,indent:"    ",lineEnd:"\n",indentLevel:0,wrapColumn:80};g.out(e,y),d=e.$comments||[],y.write(e,y.lineEnd);var m=u.join(y.lineEnd);return t&&t.map?{code:m,map:c}:m}},{"source-map":37}],11:[function(e,t,n){"use strict";function r(e,t){["start","end","loc","range"].forEach(function(n){n in e&&!(n in t)&&(t[n]=e[n])})}function i(e,t,n){function r(e){e.replace=p.replace,e.append=p.append,e.index?(Object.defineProperties(e,{index:{enumerable:!0,get:p.index}}),e.remove=p.removeElement):e.remove=p.removeNode,n.unshift(e),i(e.sel
 f,t,n),n.shift()}function s(){e.type in l&&l[e.type](e,n,function t(i,s,o){if(i===e)return l[o||e.type](e,n,t);for(var a=Object.keys(e),u=0;u<a.length;u++){var c=e[a[u]];Array.isArray(c)?c.indexOf(i)>=0&&r({self:i,parent:e,field:a[u],index:!0}):c instanceof Object&&i===c&&r({self:i,parent:e,field:a[u]})}})}return n||(n=[{self:e}],n.replace=function(e,t){n[e].replace(t)}),t(e,s,n),e}function s(e,t){var n=[],r={plugins:{asyncawait:{asyncExits:!0,awaitAnywhere:!0}},ecmaVersion:8,allowHashBang:!0,allowReturnOutsideFunction:!0,allowImportExportEverywhere:!0,locations:!0,onComment:n};if(t)for(var s in t)r[s]=t[s];var o=a.parse(e,r);return i(o,function(e,t,r){for(t();n.length&&e.loc&&e.loc.start.line>=n[0].loc.start.line&&e.loc.end.line>=n[0].loc.end.line;)e.$comments=e.$comments||[],e.$comments.push(n.shift())}),o}function o(e,t){function n(e,r){if(Array.isArray(r)&&!Array.isArray(e))throw new Error("Can't substitute an array for a node");return r=r||{},Object.keys(e).forEach(function(i){
 function s(e){return"function"==typeof e&&(e=e()),r=r.concat(e)}function o(e){return"function"==typeof e&&(e=e()),r[i]=e,r}if(!(e[i]instanceof Object))return r[i]=e[i];if(Array.isArray(e[i]))return r[i]=n(e[i],[]);var a;if(a=Array.isArray(r)?s:o,"Identifier"===e[i].type&&"$"===e[i].name[0])return a(t[e[i].name.slice(1)]);if("LabeledStatement"===e[i].type&&"$"===e[i].label.name){var u=e[i].body.expression;return a(t[u.name||u.value])}return a("LabeledStatement"===e[i].type&&"$$"===e[i].label.name.slice(0,2)?t[e[i].label.name.slice(2)](n(e[i]).body):n(e[i]))}),r}h[e]||(h[e]=s(e,{locations:!1,ranges:!1,onComment:null}));var r=n(h[e]);return{body:r.body,expr:"ExpressionStatement"===r.body[0].type?r.body[0].expression:null}}var a=e("acorn"),u=e("acorn/dist/walk"),c={AwaitExpression:function(e,t,n){n(e.argument,t,"Expression")},SwitchStatement:function(e,t,n){n(e.discriminant,t,"Expression");for(var r=0;r<e.cases.length;++r)n(e.cases[r],t)},SwitchCase:function(e,t,n){e.test&&n(e.test,t,"E
 xpression");for(var r=0;r<e.consequent.length;++r)n(e.consequent[r],t,"Statement")},TryStatement:function(e,t,n){n(e.block,t,"Statement"),e.handler&&n(e.handler,t,"Statement"),e.finalizer&&n(e.finalizer,t,"Statement")},CatchClause:function(e,t,n){n(e.param,t,"Pattern"),n(e.body,t,"ScopeBody")},Class:function(e,t,n){e.id&&n(e.id,t,"Pattern"),e.superClass&&n(e.superClass,t,"Expression"),n(e.body,t)},ClassBody:function(e,t,n){for(var r=0;r<e.body.length;r++)n(e.body[r],t)},ClassProperty:function(e,t,n){e.key&&n(e.key,t,"Expression"),e.value&&n(e.value,t,"Expression")},ClassMethod:function(e,t,n){e.key&&n(e.key,t,"Expression"),n(e,t,"Function")},ObjectProperty:function(e,t,n){e.key&&n(e.key,t,"Expression"),e.value&&n(e.value,t,"Expression")},ObjectMethod:function(e,t,n){e.key&&n(e.key,t,"Expression"),n(e,t,"Function")}},l=u.make(c),p={replace:function(e){return Array.isArray(e)&&1===e.length&&(e=e[0]),"index"in this?(r(this.parent[this.field][this.index],e),Array.isArray(e)?[].splice.ap
 ply(this.parent[this.field],[this.index,1].concat(e)):this.parent[this.field][this.index]=e):(r(this.parent[this.field],e),Array.isArray(e)?this.parent[this.field]={type:"BlockStatement",body:e}:this.parent[this.field]=e),this.self},append:function(e){if(Array.isArray(e)&&1===e.length&&(e=e[0]),!("index"in this))throw new Error("Cannot append Element node to non-array");return Array.isArray(e)?[].splice.apply(this.parent[this.field],[this.index+1,0].concat(e)):this.parent[this.field].splice(this.index+1,0,e),this.self},index:function(){return this.parent[this.field].indexOf(this.self)},removeElement:function(){return this.parent[this.field].splice(this.index,1)[0]},removeNode:function(){var e=this.parent[this.field];return delete this.parent[this.field],e}};e("acorn-es7-plugin")(a);var h={};t.exports={part:o,parse:s,treeWalker:i,_acorn:a}},{acorn:15,"acorn-es7-plugin":12,"acorn/dist/walk":16}],12:[function(e,t,n){t.exports=function(t){switch(parseInt(t.version)){case 2:case 3:t.plug
 ins.asyncawait=e("./acorn-v3");break;case 4:t.plugins.asyncawait=e("./acorn-v4");break;default:throw new Error("acorn-es7-plugin requires Acorn v2, 3 or 4")}return t}},{"./acorn-v3":13,"./acorn-v4":14}],13:[function(e,t,n){function r(e,t){return e.lineStart>=t}function i(e,t,n){var r=t.input.slice(t.start);return n&&(r=r.replace(p,"$1 $3")),e.test(r)}function s(e,t,n,r){var i=new e.constructor(e.options,e.input,t);if(n)for(var s in n)i[s]=n[s];var o=e,a=i;return["inFunction","inAsyncFunction","inAsync","inGenerator","inModule"].forEach(function(e){e in o&&(a[e]=o[e])}),r&&(i.options.preserveParens=!0),i.nextToken(),i}function o(e,t){var n=function(){};e.extend("initialContext",function(r){return function(){return this.options.ecmaVersion<7&&(n=function(t){e.raise(t.start,"async/await keywords only available when ecmaVersion>=7")}),this.reservedWords=new RegExp(this.reservedWords.toString().replace(/await|async/g,"").replace("|/","/").replace("/|","/").replace("||","|")),this.reserve
 dWordsStrict=new RegExp(this.reservedWordsStrict.toString().replace(/await|async/g,"").replace("|/","/").replace("/|","/").replace("||","|")),this.reservedWordsStrictBind=new RegExp(this.reservedWordsStrictBind.toString().replace(/await|async/g,"").replace("|/","/").replace("/|","/").replace("||","|")),this.inAsyncFunction=t.inAsyncFunction,t.awaitAnywhere&&t.inAsyncFunction&&e.raise(node.start,"The options awaitAnywhere and inAsyncFunction are mutually exclusive"),r.apply(this,arguments)}}),e.extend("shouldParseExportStatement",function(e){return function(){return!("name"!==this.type.label||"async"!==this.value||!i(c,this))||e.apply(this,arguments)}}),e.extend("parseStatement",function(e){return function(n,r){var s=this.start,o=this.startLoc;if("name"===this.type.label)if(i(c,this,!0)){var a=this.inAsyncFunction;try{this.inAsyncFunction=!0,this.next();var l=this.parseStatement(n,r);return l.async=!0,l.start=s,l.loc&&(l.loc.start=o),l.range&&(l.range[0]=s),l}finally{this.inAsyncFunc
 tion=a}}else if("object"==typeof t&&t.asyncExits&&i(u,this)){this.next();var l=this.parseStatement(n,r);return l.async=!0,l.start=s,l.loc&&(l.loc.start=o),l.range&&(l.range[0]=s),l}return e.apply(this,arguments)}}),e.extend("parseIdent",function(e){return function(t){var n=e.apply(this,arguments);return this.inAsyncFunction&&"await"===n.name&&0===arguments.length&&this.raise(n.start,"'await' is reserved within async functions"),n}}),e.extend("parseExprAtom",function(e){return function(i){var o,u=this.start,c=this.startLoc,p=e.apply(this,arguments);if("Identifier"===p.type)if("async"!==p.name||r(this,p.end)){if("await"===p.name){var h=this.startNodeAt(p.start,p.loc&&p.loc.start);if(this.inAsyncFunction)return o=this.parseExprSubscripts(),h.operator="await",h.argument=o,h=this.finishNodeAt(h,"AwaitExpression",o.end,o.loc&&o.loc.end),n(h),h;if(this.input.slice(p.end).match(l))return t.awaitAnywhere||"module"!==this.options.sourceType?p:this.raise(p.start,"'await' is reserved within mod
 ules");if("object"==typeof t&&t.awaitAnywhere&&(u=this.start,o=s(this,u-4).parseExprSubscripts(),o.end<=u))return o=s(this,u).parseExprSubscripts(),h.operator="await",h.argument=o,h=this.finishNodeAt(h,"AwaitExpression",o.end,o.loc&&o.loc.end),this.pos=o.end,this.end=o.end,this.endLoc=o.endLoc,this.next(),n(h),h;if(!t.awaitAnywhere&&"module"===this.options.sourceType)return this.raise(p.start,"'await' is reserved within modules")}}else{var f=this.inAsyncFunction;try{this.inAsyncFunction=!0;var d=this,y=!1,m={parseFunctionBody:function(e,t){try{var n=y;return y=!0,d.parseFunctionBody.apply(this,arguments)}finally{y=n}},raise:function(){try{return d.raise.apply(this,arguments)}catch(e){throw y?e:a}}};if(o=s(this,this.start,m,!0).parseExpression(),"SequenceExpression"===o.type&&(o=o.expressions[0]),"FunctionExpression"===o.type||"FunctionDeclaration"===o.type||"ArrowFunctionExpression"===o.type)return o=s(this,this.start,m).parseExpression(),"SequenceExpression"===o.type&&(o=o.expressi
 ons[0]),o.async=!0,o.start=u,o.loc&&(o.loc.start=c),o.range&&(o.range[0]=u),this.pos=o.end,this.end=o.end,this.endLoc=o.endLoc,this.next(),n(o),o}catch(e){if(e!==a)throw e}finally{this.inAsyncFunction=f}}return p}}),e.extend("finishNodeAt",function(e){return function(t,n,r,i){return t.__asyncValue&&(delete t.__asyncValue,t.value.async=!0),e.apply(this,arguments)}}),e.extend("finishNode",function(e){return function(t,n){return t.__asyncValue&&(delete t.__asyncValue,t.value.async=!0),e.apply(this,arguments)}});e.extend("parsePropertyName",function(e){return function(t){var i=(t.key&&t.key.name,e.apply(this,arguments));return"Identifier"!==i.type||"async"!==i.name||r(this,i.end)||this.input.slice(i.end).match(l)||(h.test(this.input.slice(i.end))?(i=e.apply(this,arguments),t.__asyncValue=!0):(n(t),"set"===t.kind&&this.raise(i.start,"'set <member>(value)' cannot be be async"),i=e.apply(this,arguments),"Identifier"===i.type&&"set"===i.name&&this.raise(i.start,"'set <member>(value)' cannot
  be be async"),t.__asyncValue=!0)),i}}),e.extend("parseClassMethod",function(e){return function(t,n,r){var i

<TRUNCATED>


[21/51] [partial] incubator-griffin-site git commit: remove legacy code

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/bind.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/bind.js b/node_modules/bluebird/js/release/bind.js
deleted file mode 100644
index fc3379d..0000000
--- a/node_modules/bluebird/js/release/bind.js
+++ /dev/null
@@ -1,67 +0,0 @@
-"use strict";
-module.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) {
-var calledBind = false;
-var rejectThis = function(_, e) {
-    this._reject(e);
-};
-
-var targetRejected = function(e, context) {
-    context.promiseRejectionQueued = true;
-    context.bindingPromise._then(rejectThis, rejectThis, null, this, e);
-};
-
-var bindingResolved = function(thisArg, context) {
-    if (((this._bitField & 50397184) === 0)) {
-        this._resolveCallback(context.target);
-    }
-};
-
-var bindingRejected = function(e, context) {
-    if (!context.promiseRejectionQueued) this._reject(e);
-};
-
-Promise.prototype.bind = function (thisArg) {
-    if (!calledBind) {
-        calledBind = true;
-        Promise.prototype._propagateFrom = debug.propagateFromFunction();
-        Promise.prototype._boundValue = debug.boundValueFunction();
-    }
-    var maybePromise = tryConvertToPromise(thisArg);
-    var ret = new Promise(INTERNAL);
-    ret._propagateFrom(this, 1);
-    var target = this._target();
-    ret._setBoundTo(maybePromise);
-    if (maybePromise instanceof Promise) {
-        var context = {
-            promiseRejectionQueued: false,
-            promise: ret,
-            target: target,
-            bindingPromise: maybePromise
-        };
-        target._then(INTERNAL, targetRejected, undefined, ret, context);
-        maybePromise._then(
-            bindingResolved, bindingRejected, undefined, ret, context);
-        ret._setOnCancel(maybePromise);
-    } else {
-        ret._resolveCallback(target);
-    }
-    return ret;
-};
-
-Promise.prototype._setBoundTo = function (obj) {
-    if (obj !== undefined) {
-        this._bitField = this._bitField | 2097152;
-        this._boundTo = obj;
-    } else {
-        this._bitField = this._bitField & (~2097152);
-    }
-};
-
-Promise.prototype._isBound = function () {
-    return (this._bitField & 2097152) === 2097152;
-};
-
-Promise.bind = function (thisArg, value) {
-    return Promise.resolve(value).bind(thisArg);
-};
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/bluebird.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/bluebird.js b/node_modules/bluebird/js/release/bluebird.js
deleted file mode 100644
index 1c36cf3..0000000
--- a/node_modules/bluebird/js/release/bluebird.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-var old;
-if (typeof Promise !== "undefined") old = Promise;
-function noConflict() {
-    try { if (Promise === bluebird) Promise = old; }
-    catch (e) {}
-    return bluebird;
-}
-var bluebird = require("./promise")();
-bluebird.noConflict = noConflict;
-module.exports = bluebird;

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/call_get.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/call_get.js b/node_modules/bluebird/js/release/call_get.js
deleted file mode 100644
index 0ed7714..0000000
--- a/node_modules/bluebird/js/release/call_get.js
+++ /dev/null
@@ -1,123 +0,0 @@
-"use strict";
-var cr = Object.create;
-if (cr) {
-    var callerCache = cr(null);
-    var getterCache = cr(null);
-    callerCache[" size"] = getterCache[" size"] = 0;
-}
-
-module.exports = function(Promise) {
-var util = require("./util");
-var canEvaluate = util.canEvaluate;
-var isIdentifier = util.isIdentifier;
-
-var getMethodCaller;
-var getGetter;
-if (!false) {
-var makeMethodCaller = function (methodName) {
-    return new Function("ensureMethod", "                                    \n\
-        return function(obj) {                                               \n\
-            'use strict'                                                     \n\
-            var len = this.length;                                           \n\
-            ensureMethod(obj, 'methodName');                                 \n\
-            switch(len) {                                                    \n\
-                case 1: return obj.methodName(this[0]);                      \n\
-                case 2: return obj.methodName(this[0], this[1]);             \n\
-                case 3: return obj.methodName(this[0], this[1], this[2]);    \n\
-                case 0: return obj.methodName();                             \n\
-                default:                                                     \n\
-                    return obj.methodName.apply(obj, this);                  \n\
-            }                                                                \n\
-        };                                                                   \n\
-        ".replace(/methodName/g, methodName))(ensureMethod);
-};
-
-var makeGetter = function (propertyName) {
-    return new Function("obj", "                                             \n\
-        'use strict';                                                        \n\
-        return obj.propertyName;                                             \n\
-        ".replace("propertyName", propertyName));
-};
-
-var getCompiled = function(name, compiler, cache) {
-    var ret = cache[name];
-    if (typeof ret !== "function") {
-        if (!isIdentifier(name)) {
-            return null;
-        }
-        ret = compiler(name);
-        cache[name] = ret;
-        cache[" size"]++;
-        if (cache[" size"] > 512) {
-            var keys = Object.keys(cache);
-            for (var i = 0; i < 256; ++i) delete cache[keys[i]];
-            cache[" size"] = keys.length - 256;
-        }
-    }
-    return ret;
-};
-
-getMethodCaller = function(name) {
-    return getCompiled(name, makeMethodCaller, callerCache);
-};
-
-getGetter = function(name) {
-    return getCompiled(name, makeGetter, getterCache);
-};
-}
-
-function ensureMethod(obj, methodName) {
-    var fn;
-    if (obj != null) fn = obj[methodName];
-    if (typeof fn !== "function") {
-        var message = "Object " + util.classString(obj) + " has no method '" +
-            util.toString(methodName) + "'";
-        throw new Promise.TypeError(message);
-    }
-    return fn;
-}
-
-function caller(obj) {
-    var methodName = this.pop();
-    var fn = ensureMethod(obj, methodName);
-    return fn.apply(obj, this);
-}
-Promise.prototype.call = function (methodName) {
-    var $_len = arguments.length;var args = new Array(Math.max($_len - 1, 0)); for(var $_i = 1; $_i < $_len; ++$_i) {args[$_i - 1] = arguments[$_i];};
-    if (!false) {
-        if (canEvaluate) {
-            var maybeCaller = getMethodCaller(methodName);
-            if (maybeCaller !== null) {
-                return this._then(
-                    maybeCaller, undefined, undefined, args, undefined);
-            }
-        }
-    }
-    args.push(methodName);
-    return this._then(caller, undefined, undefined, args, undefined);
-};
-
-function namedGetter(obj) {
-    return obj[this];
-}
-function indexedGetter(obj) {
-    var index = +this;
-    if (index < 0) index = Math.max(0, index + obj.length);
-    return obj[index];
-}
-Promise.prototype.get = function (propertyName) {
-    var isIndex = (typeof propertyName === "number");
-    var getter;
-    if (!isIndex) {
-        if (canEvaluate) {
-            var maybeGetter = getGetter(propertyName);
-            getter = maybeGetter !== null ? maybeGetter : namedGetter;
-        } else {
-            getter = namedGetter;
-        }
-    } else {
-        getter = indexedGetter;
-    }
-    return this._then(getter, undefined, undefined, propertyName, undefined);
-};
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/cancel.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/cancel.js b/node_modules/bluebird/js/release/cancel.js
deleted file mode 100644
index 7a12415..0000000
--- a/node_modules/bluebird/js/release/cancel.js
+++ /dev/null
@@ -1,129 +0,0 @@
-"use strict";
-module.exports = function(Promise, PromiseArray, apiRejection, debug) {
-var util = require("./util");
-var tryCatch = util.tryCatch;
-var errorObj = util.errorObj;
-var async = Promise._async;
-
-Promise.prototype["break"] = Promise.prototype.cancel = function() {
-    if (!debug.cancellation()) return this._warn("cancellation is disabled");
-
-    var promise = this;
-    var child = promise;
-    while (promise._isCancellable()) {
-        if (!promise._cancelBy(child)) {
-            if (child._isFollowing()) {
-                child._followee().cancel();
-            } else {
-                child._cancelBranched();
-            }
-            break;
-        }
-
-        var parent = promise._cancellationParent;
-        if (parent == null || !parent._isCancellable()) {
-            if (promise._isFollowing()) {
-                promise._followee().cancel();
-            } else {
-                promise._cancelBranched();
-            }
-            break;
-        } else {
-            if (promise._isFollowing()) promise._followee().cancel();
-            promise._setWillBeCancelled();
-            child = promise;
-            promise = parent;
-        }
-    }
-};
-
-Promise.prototype._branchHasCancelled = function() {
-    this._branchesRemainingToCancel--;
-};
-
-Promise.prototype._enoughBranchesHaveCancelled = function() {
-    return this._branchesRemainingToCancel === undefined ||
-           this._branchesRemainingToCancel <= 0;
-};
-
-Promise.prototype._cancelBy = function(canceller) {
-    if (canceller === this) {
-        this._branchesRemainingToCancel = 0;
-        this._invokeOnCancel();
-        return true;
-    } else {
-        this._branchHasCancelled();
-        if (this._enoughBranchesHaveCancelled()) {
-            this._invokeOnCancel();
-            return true;
-        }
-    }
-    return false;
-};
-
-Promise.prototype._cancelBranched = function() {
-    if (this._enoughBranchesHaveCancelled()) {
-        this._cancel();
-    }
-};
-
-Promise.prototype._cancel = function() {
-    if (!this._isCancellable()) return;
-    this._setCancelled();
-    async.invoke(this._cancelPromises, this, undefined);
-};
-
-Promise.prototype._cancelPromises = function() {
-    if (this._length() > 0) this._settlePromises();
-};
-
-Promise.prototype._unsetOnCancel = function() {
-    this._onCancelField = undefined;
-};
-
-Promise.prototype._isCancellable = function() {
-    return this.isPending() && !this._isCancelled();
-};
-
-Promise.prototype.isCancellable = function() {
-    return this.isPending() && !this.isCancelled();
-};
-
-Promise.prototype._doInvokeOnCancel = function(onCancelCallback, internalOnly) {
-    if (util.isArray(onCancelCallback)) {
-        for (var i = 0; i < onCancelCallback.length; ++i) {
-            this._doInvokeOnCancel(onCancelCallback[i], internalOnly);
-        }
-    } else if (onCancelCallback !== undefined) {
-        if (typeof onCancelCallback === "function") {
-            if (!internalOnly) {
-                var e = tryCatch(onCancelCallback).call(this._boundValue());
-                if (e === errorObj) {
-                    this._attachExtraTrace(e.e);
-                    async.throwLater(e.e);
-                }
-            }
-        } else {
-            onCancelCallback._resultCancelled(this);
-        }
-    }
-};
-
-Promise.prototype._invokeOnCancel = function() {
-    var onCancelCallback = this._onCancel();
-    this._unsetOnCancel();
-    async.invoke(this._doInvokeOnCancel, this, onCancelCallback);
-};
-
-Promise.prototype._invokeInternalOnCancel = function() {
-    if (this._isCancellable()) {
-        this._doInvokeOnCancel(this._onCancel(), true);
-        this._unsetOnCancel();
-    }
-};
-
-Promise.prototype._resultCancelled = function() {
-    this.cancel();
-};
-
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/catch_filter.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/catch_filter.js b/node_modules/bluebird/js/release/catch_filter.js
deleted file mode 100644
index 0f24ce2..0000000
--- a/node_modules/bluebird/js/release/catch_filter.js
+++ /dev/null
@@ -1,42 +0,0 @@
-"use strict";
-module.exports = function(NEXT_FILTER) {
-var util = require("./util");
-var getKeys = require("./es5").keys;
-var tryCatch = util.tryCatch;
-var errorObj = util.errorObj;
-
-function catchFilter(instances, cb, promise) {
-    return function(e) {
-        var boundTo = promise._boundValue();
-        predicateLoop: for (var i = 0; i < instances.length; ++i) {
-            var item = instances[i];
-
-            if (item === Error ||
-                (item != null && item.prototype instanceof Error)) {
-                if (e instanceof item) {
-                    return tryCatch(cb).call(boundTo, e);
-                }
-            } else if (typeof item === "function") {
-                var matchesPredicate = tryCatch(item).call(boundTo, e);
-                if (matchesPredicate === errorObj) {
-                    return matchesPredicate;
-                } else if (matchesPredicate) {
-                    return tryCatch(cb).call(boundTo, e);
-                }
-            } else if (util.isObject(e)) {
-                var keys = getKeys(item);
-                for (var j = 0; j < keys.length; ++j) {
-                    var key = keys[j];
-                    if (item[key] != e[key]) {
-                        continue predicateLoop;
-                    }
-                }
-                return tryCatch(cb).call(boundTo, e);
-            }
-        }
-        return NEXT_FILTER;
-    };
-}
-
-return catchFilter;
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/context.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/context.js b/node_modules/bluebird/js/release/context.js
deleted file mode 100644
index c307414..0000000
--- a/node_modules/bluebird/js/release/context.js
+++ /dev/null
@@ -1,69 +0,0 @@
-"use strict";
-module.exports = function(Promise) {
-var longStackTraces = false;
-var contextStack = [];
-
-Promise.prototype._promiseCreated = function() {};
-Promise.prototype._pushContext = function() {};
-Promise.prototype._popContext = function() {return null;};
-Promise._peekContext = Promise.prototype._peekContext = function() {};
-
-function Context() {
-    this._trace = new Context.CapturedTrace(peekContext());
-}
-Context.prototype._pushContext = function () {
-    if (this._trace !== undefined) {
-        this._trace._promiseCreated = null;
-        contextStack.push(this._trace);
-    }
-};
-
-Context.prototype._popContext = function () {
-    if (this._trace !== undefined) {
-        var trace = contextStack.pop();
-        var ret = trace._promiseCreated;
-        trace._promiseCreated = null;
-        return ret;
-    }
-    return null;
-};
-
-function createContext() {
-    if (longStackTraces) return new Context();
-}
-
-function peekContext() {
-    var lastIndex = contextStack.length - 1;
-    if (lastIndex >= 0) {
-        return contextStack[lastIndex];
-    }
-    return undefined;
-}
-Context.CapturedTrace = null;
-Context.create = createContext;
-Context.deactivateLongStackTraces = function() {};
-Context.activateLongStackTraces = function() {
-    var Promise_pushContext = Promise.prototype._pushContext;
-    var Promise_popContext = Promise.prototype._popContext;
-    var Promise_PeekContext = Promise._peekContext;
-    var Promise_peekContext = Promise.prototype._peekContext;
-    var Promise_promiseCreated = Promise.prototype._promiseCreated;
-    Context.deactivateLongStackTraces = function() {
-        Promise.prototype._pushContext = Promise_pushContext;
-        Promise.prototype._popContext = Promise_popContext;
-        Promise._peekContext = Promise_PeekContext;
-        Promise.prototype._peekContext = Promise_peekContext;
-        Promise.prototype._promiseCreated = Promise_promiseCreated;
-        longStackTraces = false;
-    };
-    longStackTraces = true;
-    Promise.prototype._pushContext = Context.prototype._pushContext;
-    Promise.prototype._popContext = Context.prototype._popContext;
-    Promise._peekContext = Promise.prototype._peekContext = peekContext;
-    Promise.prototype._promiseCreated = function() {
-        var ctx = this._peekContext();
-        if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this;
-    };
-};
-return Context;
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/debuggability.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/debuggability.js b/node_modules/bluebird/js/release/debuggability.js
deleted file mode 100644
index bf0587c..0000000
--- a/node_modules/bluebird/js/release/debuggability.js
+++ /dev/null
@@ -1,916 +0,0 @@
-"use strict";
-module.exports = function(Promise, Context) {
-var getDomain = Promise._getDomain;
-var async = Promise._async;
-var Warning = require("./errors").Warning;
-var util = require("./util");
-var canAttachTrace = util.canAttachTrace;
-var unhandledRejectionHandled;
-var possiblyUnhandledRejection;
-var bluebirdFramePattern =
-    /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/;
-var nodeFramePattern = /\((?:timers\.js):\d+:\d+\)/;
-var parseLinePattern = /[\/<\(](.+?):(\d+):(\d+)\)?\s*$/;
-var stackFramePattern = null;
-var formatStack = null;
-var indentStackFrames = false;
-var printWarning;
-var debugging = !!(util.env("BLUEBIRD_DEBUG") != 0 &&
-                        (false ||
-                         util.env("BLUEBIRD_DEBUG") ||
-                         util.env("NODE_ENV") === "development"));
-
-var warnings = !!(util.env("BLUEBIRD_WARNINGS") != 0 &&
-    (debugging || util.env("BLUEBIRD_WARNINGS")));
-
-var longStackTraces = !!(util.env("BLUEBIRD_LONG_STACK_TRACES") != 0 &&
-    (debugging || util.env("BLUEBIRD_LONG_STACK_TRACES")));
-
-var wForgottenReturn = util.env("BLUEBIRD_W_FORGOTTEN_RETURN") != 0 &&
-    (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN"));
-
-Promise.prototype.suppressUnhandledRejections = function() {
-    var target = this._target();
-    target._bitField = ((target._bitField & (~1048576)) |
-                      524288);
-};
-
-Promise.prototype._ensurePossibleRejectionHandled = function () {
-    if ((this._bitField & 524288) !== 0) return;
-    this._setRejectionIsUnhandled();
-    async.invokeLater(this._notifyUnhandledRejection, this, undefined);
-};
-
-Promise.prototype._notifyUnhandledRejectionIsHandled = function () {
-    fireRejectionEvent("rejectionHandled",
-                                  unhandledRejectionHandled, undefined, this);
-};
-
-Promise.prototype._setReturnedNonUndefined = function() {
-    this._bitField = this._bitField | 268435456;
-};
-
-Promise.prototype._returnedNonUndefined = function() {
-    return (this._bitField & 268435456) !== 0;
-};
-
-Promise.prototype._notifyUnhandledRejection = function () {
-    if (this._isRejectionUnhandled()) {
-        var reason = this._settledValue();
-        this._setUnhandledRejectionIsNotified();
-        fireRejectionEvent("unhandledRejection",
-                                      possiblyUnhandledRejection, reason, this);
-    }
-};
-
-Promise.prototype._setUnhandledRejectionIsNotified = function () {
-    this._bitField = this._bitField | 262144;
-};
-
-Promise.prototype._unsetUnhandledRejectionIsNotified = function () {
-    this._bitField = this._bitField & (~262144);
-};
-
-Promise.prototype._isUnhandledRejectionNotified = function () {
-    return (this._bitField & 262144) > 0;
-};
-
-Promise.prototype._setRejectionIsUnhandled = function () {
-    this._bitField = this._bitField | 1048576;
-};
-
-Promise.prototype._unsetRejectionIsUnhandled = function () {
-    this._bitField = this._bitField & (~1048576);
-    if (this._isUnhandledRejectionNotified()) {
-        this._unsetUnhandledRejectionIsNotified();
-        this._notifyUnhandledRejectionIsHandled();
-    }
-};
-
-Promise.prototype._isRejectionUnhandled = function () {
-    return (this._bitField & 1048576) > 0;
-};
-
-Promise.prototype._warn = function(message, shouldUseOwnTrace, promise) {
-    return warn(message, shouldUseOwnTrace, promise || this);
-};
-
-Promise.onPossiblyUnhandledRejection = function (fn) {
-    var domain = getDomain();
-    possiblyUnhandledRejection =
-        typeof fn === "function" ? (domain === null ?
-                                            fn : util.domainBind(domain, fn))
-                                 : undefined;
-};
-
-Promise.onUnhandledRejectionHandled = function (fn) {
-    var domain = getDomain();
-    unhandledRejectionHandled =
-        typeof fn === "function" ? (domain === null ?
-                                            fn : util.domainBind(domain, fn))
-                                 : undefined;
-};
-
-var disableLongStackTraces = function() {};
-Promise.longStackTraces = function () {
-    if (async.haveItemsQueued() && !config.longStackTraces) {
-        throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a    See http://goo.gl/MqrFmX\u000a");
-    }
-    if (!config.longStackTraces && longStackTracesIsSupported()) {
-        var Promise_captureStackTrace = Promise.prototype._captureStackTrace;
-        var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace;
-        config.longStackTraces = true;
-        disableLongStackTraces = function() {
-            if (async.haveItemsQueued() && !config.longStackTraces) {
-                throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a    See http://goo.gl/MqrFmX\u000a");
-            }
-            Promise.prototype._captureStackTrace = Promise_captureStackTrace;
-            Promise.prototype._attachExtraTrace = Promise_attachExtraTrace;
-            Context.deactivateLongStackTraces();
-            async.enableTrampoline();
-            config.longStackTraces = false;
-        };
-        Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace;
-        Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace;
-        Context.activateLongStackTraces();
-        async.disableTrampolineIfNecessary();
-    }
-};
-
-Promise.hasLongStackTraces = function () {
-    return config.longStackTraces && longStackTracesIsSupported();
-};
-
-var fireDomEvent = (function() {
-    try {
-        if (typeof CustomEvent === "function") {
-            var event = new CustomEvent("CustomEvent");
-            util.global.dispatchEvent(event);
-            return function(name, event) {
-                var domEvent = new CustomEvent(name.toLowerCase(), {
-                    detail: event,
-                    cancelable: true
-                });
-                return !util.global.dispatchEvent(domEvent);
-            };
-        } else if (typeof Event === "function") {
-            var event = new Event("CustomEvent");
-            util.global.dispatchEvent(event);
-            return function(name, event) {
-                var domEvent = new Event(name.toLowerCase(), {
-                    cancelable: true
-                });
-                domEvent.detail = event;
-                return !util.global.dispatchEvent(domEvent);
-            };
-        } else {
-            var event = document.createEvent("CustomEvent");
-            event.initCustomEvent("testingtheevent", false, true, {});
-            util.global.dispatchEvent(event);
-            return function(name, event) {
-                var domEvent = document.createEvent("CustomEvent");
-                domEvent.initCustomEvent(name.toLowerCase(), false, true,
-                    event);
-                return !util.global.dispatchEvent(domEvent);
-            };
-        }
-    } catch (e) {}
-    return function() {
-        return false;
-    };
-})();
-
-var fireGlobalEvent = (function() {
-    if (util.isNode) {
-        return function() {
-            return process.emit.apply(process, arguments);
-        };
-    } else {
-        if (!util.global) {
-            return function() {
-                return false;
-            };
-        }
-        return function(name) {
-            var methodName = "on" + name.toLowerCase();
-            var method = util.global[methodName];
-            if (!method) return false;
-            method.apply(util.global, [].slice.call(arguments, 1));
-            return true;
-        };
-    }
-})();
-
-function generatePromiseLifecycleEventObject(name, promise) {
-    return {promise: promise};
-}
-
-var eventToObjectGenerator = {
-    promiseCreated: generatePromiseLifecycleEventObject,
-    promiseFulfilled: generatePromiseLifecycleEventObject,
-    promiseRejected: generatePromiseLifecycleEventObject,
-    promiseResolved: generatePromiseLifecycleEventObject,
-    promiseCancelled: generatePromiseLifecycleEventObject,
-    promiseChained: function(name, promise, child) {
-        return {promise: promise, child: child};
-    },
-    warning: function(name, warning) {
-        return {warning: warning};
-    },
-    unhandledRejection: function (name, reason, promise) {
-        return {reason: reason, promise: promise};
-    },
-    rejectionHandled: generatePromiseLifecycleEventObject
-};
-
-var activeFireEvent = function (name) {
-    var globalEventFired = false;
-    try {
-        globalEventFired = fireGlobalEvent.apply(null, arguments);
-    } catch (e) {
-        async.throwLater(e);
-        globalEventFired = true;
-    }
-
-    var domEventFired = false;
-    try {
-        domEventFired = fireDomEvent(name,
-                    eventToObjectGenerator[name].apply(null, arguments));
-    } catch (e) {
-        async.throwLater(e);
-        domEventFired = true;
-    }
-
-    return domEventFired || globalEventFired;
-};
-
-Promise.config = function(opts) {
-    opts = Object(opts);
-    if ("longStackTraces" in opts) {
-        if (opts.longStackTraces) {
-            Promise.longStackTraces();
-        } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) {
-            disableLongStackTraces();
-        }
-    }
-    if ("warnings" in opts) {
-        var warningsOption = opts.warnings;
-        config.warnings = !!warningsOption;
-        wForgottenReturn = config.warnings;
-
-        if (util.isObject(warningsOption)) {
-            if ("wForgottenReturn" in warningsOption) {
-                wForgottenReturn = !!warningsOption.wForgottenReturn;
-            }
-        }
-    }
-    if ("cancellation" in opts && opts.cancellation && !config.cancellation) {
-        if (async.haveItemsQueued()) {
-            throw new Error(
-                "cannot enable cancellation after promises are in use");
-        }
-        Promise.prototype._clearCancellationData =
-            cancellationClearCancellationData;
-        Promise.prototype._propagateFrom = cancellationPropagateFrom;
-        Promise.prototype._onCancel = cancellationOnCancel;
-        Promise.prototype._setOnCancel = cancellationSetOnCancel;
-        Promise.prototype._attachCancellationCallback =
-            cancellationAttachCancellationCallback;
-        Promise.prototype._execute = cancellationExecute;
-        propagateFromFunction = cancellationPropagateFrom;
-        config.cancellation = true;
-    }
-    if ("monitoring" in opts) {
-        if (opts.monitoring && !config.monitoring) {
-            config.monitoring = true;
-            Promise.prototype._fireEvent = activeFireEvent;
-        } else if (!opts.monitoring && config.monitoring) {
-            config.monitoring = false;
-            Promise.prototype._fireEvent = defaultFireEvent;
-        }
-    }
-    return Promise;
-};
-
-function defaultFireEvent() { return false; }
-
-Promise.prototype._fireEvent = defaultFireEvent;
-Promise.prototype._execute = function(executor, resolve, reject) {
-    try {
-        executor(resolve, reject);
-    } catch (e) {
-        return e;
-    }
-};
-Promise.prototype._onCancel = function () {};
-Promise.prototype._setOnCancel = function (handler) { ; };
-Promise.prototype._attachCancellationCallback = function(onCancel) {
-    ;
-};
-Promise.prototype._captureStackTrace = function () {};
-Promise.prototype._attachExtraTrace = function () {};
-Promise.prototype._clearCancellationData = function() {};
-Promise.prototype._propagateFrom = function (parent, flags) {
-    ;
-    ;
-};
-
-function cancellationExecute(executor, resolve, reject) {
-    var promise = this;
-    try {
-        executor(resolve, reject, function(onCancel) {
-            if (typeof onCancel !== "function") {
-                throw new TypeError("onCancel must be a function, got: " +
-                                    util.toString(onCancel));
-            }
-            promise._attachCancellationCallback(onCancel);
-        });
-    } catch (e) {
-        return e;
-    }
-}
-
-function cancellationAttachCancellationCallback(onCancel) {
-    if (!this._isCancellable()) return this;
-
-    var previousOnCancel = this._onCancel();
-    if (previousOnCancel !== undefined) {
-        if (util.isArray(previousOnCancel)) {
-            previousOnCancel.push(onCancel);
-        } else {
-            this._setOnCancel([previousOnCancel, onCancel]);
-        }
-    } else {
-        this._setOnCancel(onCancel);
-    }
-}
-
-function cancellationOnCancel() {
-    return this._onCancelField;
-}
-
-function cancellationSetOnCancel(onCancel) {
-    this._onCancelField = onCancel;
-}
-
-function cancellationClearCancellationData() {
-    this._cancellationParent = undefined;
-    this._onCancelField = undefined;
-}
-
-function cancellationPropagateFrom(parent, flags) {
-    if ((flags & 1) !== 0) {
-        this._cancellationParent = parent;
-        var branchesRemainingToCancel = parent._branchesRemainingToCancel;
-        if (branchesRemainingToCancel === undefined) {
-            branchesRemainingToCancel = 0;
-        }
-        parent._branchesRemainingToCancel = branchesRemainingToCancel + 1;
-    }
-    if ((flags & 2) !== 0 && parent._isBound()) {
-        this._setBoundTo(parent._boundTo);
-    }
-}
-
-function bindingPropagateFrom(parent, flags) {
-    if ((flags & 2) !== 0 && parent._isBound()) {
-        this._setBoundTo(parent._boundTo);
-    }
-}
-var propagateFromFunction = bindingPropagateFrom;
-
-function boundValueFunction() {
-    var ret = this._boundTo;
-    if (ret !== undefined) {
-        if (ret instanceof Promise) {
-            if (ret.isFulfilled()) {
-                return ret.value();
-            } else {
-                return undefined;
-            }
-        }
-    }
-    return ret;
-}
-
-function longStackTracesCaptureStackTrace() {
-    this._trace = new CapturedTrace(this._peekContext());
-}
-
-function longStackTracesAttachExtraTrace(error, ignoreSelf) {
-    if (canAttachTrace(error)) {
-        var trace = this._trace;
-        if (trace !== undefined) {
-            if (ignoreSelf) trace = trace._parent;
-        }
-        if (trace !== undefined) {
-            trace.attachExtraTrace(error);
-        } else if (!error.__stackCleaned__) {
-            var parsed = parseStackAndMessage(error);
-            util.notEnumerableProp(error, "stack",
-                parsed.message + "\n" + parsed.stack.join("\n"));
-            util.notEnumerableProp(error, "__stackCleaned__", true);
-        }
-    }
-}
-
-function checkForgottenReturns(returnValue, promiseCreated, name, promise,
-                               parent) {
-    if (returnValue === undefined && promiseCreated !== null &&
-        wForgottenReturn) {
-        if (parent !== undefined && parent._returnedNonUndefined()) return;
-        if ((promise._bitField & 65535) === 0) return;
-
-        if (name) name = name + " ";
-        var handlerLine = "";
-        var creatorLine = "";
-        if (promiseCreated._trace) {
-            var traceLines = promiseCreated._trace.stack.split("\n");
-            var stack = cleanStack(traceLines);
-            for (var i = stack.length - 1; i >= 0; --i) {
-                var line = stack[i];
-                if (!nodeFramePattern.test(line)) {
-                    var lineMatches = line.match(parseLinePattern);
-                    if (lineMatches) {
-                        handlerLine  = "at " + lineMatches[1] +
-                            ":" + lineMatches[2] + ":" + lineMatches[3] + " ";
-                    }
-                    break;
-                }
-            }
-
-            if (stack.length > 0) {
-                var firstUserLine = stack[0];
-                for (var i = 0; i < traceLines.length; ++i) {
-
-                    if (traceLines[i] === firstUserLine) {
-                        if (i > 0) {
-                            creatorLine = "\n" + traceLines[i - 1];
-                        }
-                        break;
-                    }
-                }
-
-            }
-        }
-        var msg = "a promise was created in a " + name +
-            "handler " + handlerLine + "but was not returned from it, " +
-            "see http://goo.gl/rRqMUw" +
-            creatorLine;
-        promise._warn(msg, true, promiseCreated);
-    }
-}
-
-function deprecated(name, replacement) {
-    var message = name +
-        " is deprecated and will be removed in a future version.";
-    if (replacement) message += " Use " + replacement + " instead.";
-    return warn(message);
-}
-
-function warn(message, shouldUseOwnTrace, promise) {
-    if (!config.warnings) return;
-    var warning = new Warning(message);
-    var ctx;
-    if (shouldUseOwnTrace) {
-        promise._attachExtraTrace(warning);
-    } else if (config.longStackTraces && (ctx = Promise._peekContext())) {
-        ctx.attachExtraTrace(warning);
-    } else {
-        var parsed = parseStackAndMessage(warning);
-        warning.stack = parsed.message + "\n" + parsed.stack.join("\n");
-    }
-
-    if (!activeFireEvent("warning", warning)) {
-        formatAndLogError(warning, "", true);
-    }
-}
-
-function reconstructStack(message, stacks) {
-    for (var i = 0; i < stacks.length - 1; ++i) {
-        stacks[i].push("From previous event:");
-        stacks[i] = stacks[i].join("\n");
-    }
-    if (i < stacks.length) {
-        stacks[i] = stacks[i].join("\n");
-    }
-    return message + "\n" + stacks.join("\n");
-}
-
-function removeDuplicateOrEmptyJumps(stacks) {
-    for (var i = 0; i < stacks.length; ++i) {
-        if (stacks[i].length === 0 ||
-            ((i + 1 < stacks.length) && stacks[i][0] === stacks[i+1][0])) {
-            stacks.splice(i, 1);
-            i--;
-        }
-    }
-}
-
-function removeCommonRoots(stacks) {
-    var current = stacks[0];
-    for (var i = 1; i < stacks.length; ++i) {
-        var prev = stacks[i];
-        var currentLastIndex = current.length - 1;
-        var currentLastLine = current[currentLastIndex];
-        var commonRootMeetPoint = -1;
-
-        for (var j = prev.length - 1; j >= 0; --j) {
-            if (prev[j] === currentLastLine) {
-                commonRootMeetPoint = j;
-                break;
-            }
-        }
-
-        for (var j = commonRootMeetPoint; j >= 0; --j) {
-            var line = prev[j];
-            if (current[currentLastIndex] === line) {
-                current.pop();
-                currentLastIndex--;
-            } else {
-                break;
-            }
-        }
-        current = prev;
-    }
-}
-
-function cleanStack(stack) {
-    var ret = [];
-    for (var i = 0; i < stack.length; ++i) {
-        var line = stack[i];
-        var isTraceLine = "    (No stack trace)" === line ||
-            stackFramePattern.test(line);
-        var isInternalFrame = isTraceLine && shouldIgnore(line);
-        if (isTraceLine && !isInternalFrame) {
-            if (indentStackFrames && line.charAt(0) !== " ") {
-                line = "    " + line;
-            }
-            ret.push(line);
-        }
-    }
-    return ret;
-}
-
-function stackFramesAsArray(error) {
-    var stack = error.stack.replace(/\s+$/g, "").split("\n");
-    for (var i = 0; i < stack.length; ++i) {
-        var line = stack[i];
-        if ("    (No stack trace)" === line || stackFramePattern.test(line)) {
-            break;
-        }
-    }
-    if (i > 0 && error.name != "SyntaxError") {
-        stack = stack.slice(i);
-    }
-    return stack;
-}
-
-function parseStackAndMessage(error) {
-    var stack = error.stack;
-    var message = error.toString();
-    stack = typeof stack === "string" && stack.length > 0
-                ? stackFramesAsArray(error) : ["    (No stack trace)"];
-    return {
-        message: message,
-        stack: error.name == "SyntaxError" ? stack : cleanStack(stack)
-    };
-}
-
-function formatAndLogError(error, title, isSoft) {
-    if (typeof console !== "undefined") {
-        var message;
-        if (util.isObject(error)) {
-            var stack = error.stack;
-            message = title + formatStack(stack, error);
-        } else {
-            message = title + String(error);
-        }
-        if (typeof printWarning === "function") {
-            printWarning(message, isSoft);
-        } else if (typeof console.log === "function" ||
-            typeof console.log === "object") {
-            console.log(message);
-        }
-    }
-}
-
-function fireRejectionEvent(name, localHandler, reason, promise) {
-    var localEventFired = false;
-    try {
-        if (typeof localHandler === "function") {
-            localEventFired = true;
-            if (name === "rejectionHandled") {
-                localHandler(promise);
-            } else {
-                localHandler(reason, promise);
-            }
-        }
-    } catch (e) {
-        async.throwLater(e);
-    }
-
-    if (name === "unhandledRejection") {
-        if (!activeFireEvent(name, reason, promise) && !localEventFired) {
-            formatAndLogError(reason, "Unhandled rejection ");
-        }
-    } else {
-        activeFireEvent(name, promise);
-    }
-}
-
-function formatNonError(obj) {
-    var str;
-    if (typeof obj === "function") {
-        str = "[function " +
-            (obj.name || "anonymous") +
-            "]";
-    } else {
-        str = obj && typeof obj.toString === "function"
-            ? obj.toString() : util.toString(obj);
-        var ruselessToString = /\[object [a-zA-Z0-9$_]+\]/;
-        if (ruselessToString.test(str)) {
-            try {
-                var newStr = JSON.stringify(obj);
-                str = newStr;
-            }
-            catch(e) {
-
-            }
-        }
-        if (str.length === 0) {
-            str = "(empty array)";
-        }
-    }
-    return ("(<" + snip(str) + ">, no stack trace)");
-}
-
-function snip(str) {
-    var maxChars = 41;
-    if (str.length < maxChars) {
-        return str;
-    }
-    return str.substr(0, maxChars - 3) + "...";
-}
-
-function longStackTracesIsSupported() {
-    return typeof captureStackTrace === "function";
-}
-
-var shouldIgnore = function() { return false; };
-var parseLineInfoRegex = /[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;
-function parseLineInfo(line) {
-    var matches = line.match(parseLineInfoRegex);
-    if (matches) {
-        return {
-            fileName: matches[1],
-            line: parseInt(matches[2], 10)
-        };
-    }
-}
-
-function setBounds(firstLineError, lastLineError) {
-    if (!longStackTracesIsSupported()) return;
-    var firstStackLines = firstLineError.stack.split("\n");
-    var lastStackLines = lastLineError.stack.split("\n");
-    var firstIndex = -1;
-    var lastIndex = -1;
-    var firstFileName;
-    var lastFileName;
-    for (var i = 0; i < firstStackLines.length; ++i) {
-        var result = parseLineInfo(firstStackLines[i]);
-        if (result) {
-            firstFileName = result.fileName;
-            firstIndex = result.line;
-            break;
-        }
-    }
-    for (var i = 0; i < lastStackLines.length; ++i) {
-        var result = parseLineInfo(lastStackLines[i]);
-        if (result) {
-            lastFileName = result.fileName;
-            lastIndex = result.line;
-            break;
-        }
-    }
-    if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName ||
-        firstFileName !== lastFileName || firstIndex >= lastIndex) {
-        return;
-    }
-
-    shouldIgnore = function(line) {
-        if (bluebirdFramePattern.test(line)) return true;
-        var info = parseLineInfo(line);
-        if (info) {
-            if (info.fileName === firstFileName &&
-                (firstIndex <= info.line && info.line <= lastIndex)) {
-                return true;
-            }
-        }
-        return false;
-    };
-}
-
-function CapturedTrace(parent) {
-    this._parent = parent;
-    this._promisesCreated = 0;
-    var length = this._length = 1 + (parent === undefined ? 0 : parent._length);
-    captureStackTrace(this, CapturedTrace);
-    if (length > 32) this.uncycle();
-}
-util.inherits(CapturedTrace, Error);
-Context.CapturedTrace = CapturedTrace;
-
-CapturedTrace.prototype.uncycle = function() {
-    var length = this._length;
-    if (length < 2) return;
-    var nodes = [];
-    var stackToIndex = {};
-
-    for (var i = 0, node = this; node !== undefined; ++i) {
-        nodes.push(node);
-        node = node._parent;
-    }
-    length = this._length = i;
-    for (var i = length - 1; i >= 0; --i) {
-        var stack = nodes[i].stack;
-        if (stackToIndex[stack] === undefined) {
-            stackToIndex[stack] = i;
-        }
-    }
-    for (var i = 0; i < length; ++i) {
-        var currentStack = nodes[i].stack;
-        var index = stackToIndex[currentStack];
-        if (index !== undefined && index !== i) {
-            if (index > 0) {
-                nodes[index - 1]._parent = undefined;
-                nodes[index - 1]._length = 1;
-            }
-            nodes[i]._parent = undefined;
-            nodes[i]._length = 1;
-            var cycleEdgeNode = i > 0 ? nodes[i - 1] : this;
-
-            if (index < length - 1) {
-                cycleEdgeNode._parent = nodes[index + 1];
-                cycleEdgeNode._parent.uncycle();
-                cycleEdgeNode._length =
-                    cycleEdgeNode._parent._length + 1;
-            } else {
-                cycleEdgeNode._parent = undefined;
-                cycleEdgeNode._length = 1;
-            }
-            var currentChildLength = cycleEdgeNode._length + 1;
-            for (var j = i - 2; j >= 0; --j) {
-                nodes[j]._length = currentChildLength;
-                currentChildLength++;
-            }
-            return;
-        }
-    }
-};
-
-CapturedTrace.prototype.attachExtraTrace = function(error) {
-    if (error.__stackCleaned__) return;
-    this.uncycle();
-    var parsed = parseStackAndMessage(error);
-    var message = parsed.message;
-    var stacks = [parsed.stack];
-
-    var trace = this;
-    while (trace !== undefined) {
-        stacks.push(cleanStack(trace.stack.split("\n")));
-        trace = trace._parent;
-    }
-    removeCommonRoots(stacks);
-    removeDuplicateOrEmptyJumps(stacks);
-    util.notEnumerableProp(error, "stack", reconstructStack(message, stacks));
-    util.notEnumerableProp(error, "__stackCleaned__", true);
-};
-
-var captureStackTrace = (function stackDetection() {
-    var v8stackFramePattern = /^\s*at\s*/;
-    var v8stackFormatter = function(stack, error) {
-        if (typeof stack === "string") return stack;
-
-        if (error.name !== undefined &&
-            error.message !== undefined) {
-            return error.toString();
-        }
-        return formatNonError(error);
-    };
-
-    if (typeof Error.stackTraceLimit === "number" &&
-        typeof Error.captureStackTrace === "function") {
-        Error.stackTraceLimit += 6;
-        stackFramePattern = v8stackFramePattern;
-        formatStack = v8stackFormatter;
-        var captureStackTrace = Error.captureStackTrace;
-
-        shouldIgnore = function(line) {
-            return bluebirdFramePattern.test(line);
-        };
-        return function(receiver, ignoreUntil) {
-            Error.stackTraceLimit += 6;
-            captureStackTrace(receiver, ignoreUntil);
-            Error.stackTraceLimit -= 6;
-        };
-    }
-    var err = new Error();
-
-    if (typeof err.stack === "string" &&
-        err.stack.split("\n")[0].indexOf("stackDetection@") >= 0) {
-        stackFramePattern = /@/;
-        formatStack = v8stackFormatter;
-        indentStackFrames = true;
-        return function captureStackTrace(o) {
-            o.stack = new Error().stack;
-        };
-    }
-
-    var hasStackAfterThrow;
-    try { throw new Error(); }
-    catch(e) {
-        hasStackAfterThrow = ("stack" in e);
-    }
-    if (!("stack" in err) && hasStackAfterThrow &&
-        typeof Error.stackTraceLimit === "number") {
-        stackFramePattern = v8stackFramePattern;
-        formatStack = v8stackFormatter;
-        return function captureStackTrace(o) {
-            Error.stackTraceLimit += 6;
-            try { throw new Error(); }
-            catch(e) { o.stack = e.stack; }
-            Error.stackTraceLimit -= 6;
-        };
-    }
-
-    formatStack = function(stack, error) {
-        if (typeof stack === "string") return stack;
-
-        if ((typeof error === "object" ||
-            typeof error === "function") &&
-            error.name !== undefined &&
-            error.message !== undefined) {
-            return error.toString();
-        }
-        return formatNonError(error);
-    };
-
-    return null;
-
-})([]);
-
-if (typeof console !== "undefined" && typeof console.warn !== "undefined") {
-    printWarning = function (message) {
-        console.warn(message);
-    };
-    if (util.isNode && process.stderr.isTTY) {
-        printWarning = function(message, isSoft) {
-            var color = isSoft ? "\u001b[33m" : "\u001b[31m";
-            console.warn(color + message + "\u001b[0m\n");
-        };
-    } else if (!util.isNode && typeof (new Error().stack) === "string") {
-        printWarning = function(message, isSoft) {
-            console.warn("%c" + message,
-                        isSoft ? "color: darkorange" : "color: red");
-        };
-    }
-}
-
-var config = {
-    warnings: warnings,
-    longStackTraces: false,
-    cancellation: false,
-    monitoring: false
-};
-
-if (longStackTraces) Promise.longStackTraces();
-
-return {
-    longStackTraces: function() {
-        return config.longStackTraces;
-    },
-    warnings: function() {
-        return config.warnings;
-    },
-    cancellation: function() {
-        return config.cancellation;
-    },
-    monitoring: function() {
-        return config.monitoring;
-    },
-    propagateFromFunction: function() {
-        return propagateFromFunction;
-    },
-    boundValueFunction: function() {
-        return boundValueFunction;
-    },
-    checkForgottenReturns: checkForgottenReturns,
-    setBounds: setBounds,
-    warn: warn,
-    deprecated: deprecated,
-    CapturedTrace: CapturedTrace,
-    fireDomEvent: fireDomEvent,
-    fireGlobalEvent: fireGlobalEvent
-};
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/direct_resolve.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/direct_resolve.js b/node_modules/bluebird/js/release/direct_resolve.js
deleted file mode 100644
index a890298..0000000
--- a/node_modules/bluebird/js/release/direct_resolve.js
+++ /dev/null
@@ -1,46 +0,0 @@
-"use strict";
-module.exports = function(Promise) {
-function returner() {
-    return this.value;
-}
-function thrower() {
-    throw this.reason;
-}
-
-Promise.prototype["return"] =
-Promise.prototype.thenReturn = function (value) {
-    if (value instanceof Promise) value.suppressUnhandledRejections();
-    return this._then(
-        returner, undefined, undefined, {value: value}, undefined);
-};
-
-Promise.prototype["throw"] =
-Promise.prototype.thenThrow = function (reason) {
-    return this._then(
-        thrower, undefined, undefined, {reason: reason}, undefined);
-};
-
-Promise.prototype.catchThrow = function (reason) {
-    if (arguments.length <= 1) {
-        return this._then(
-            undefined, thrower, undefined, {reason: reason}, undefined);
-    } else {
-        var _reason = arguments[1];
-        var handler = function() {throw _reason;};
-        return this.caught(reason, handler);
-    }
-};
-
-Promise.prototype.catchReturn = function (value) {
-    if (arguments.length <= 1) {
-        if (value instanceof Promise) value.suppressUnhandledRejections();
-        return this._then(
-            undefined, returner, undefined, {value: value}, undefined);
-    } else {
-        var _value = arguments[1];
-        if (_value instanceof Promise) _value.suppressUnhandledRejections();
-        var handler = function() {return _value;};
-        return this.caught(value, handler);
-    }
-};
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/each.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/each.js b/node_modules/bluebird/js/release/each.js
deleted file mode 100644
index e4f3d05..0000000
--- a/node_modules/bluebird/js/release/each.js
+++ /dev/null
@@ -1,30 +0,0 @@
-"use strict";
-module.exports = function(Promise, INTERNAL) {
-var PromiseReduce = Promise.reduce;
-var PromiseAll = Promise.all;
-
-function promiseAllThis() {
-    return PromiseAll(this);
-}
-
-function PromiseMapSeries(promises, fn) {
-    return PromiseReduce(promises, fn, INTERNAL, INTERNAL);
-}
-
-Promise.prototype.each = function (fn) {
-    return PromiseReduce(this, fn, INTERNAL, 0)
-              ._then(promiseAllThis, undefined, undefined, this, undefined);
-};
-
-Promise.prototype.mapSeries = function (fn) {
-    return PromiseReduce(this, fn, INTERNAL, INTERNAL);
-};
-
-Promise.each = function (promises, fn) {
-    return PromiseReduce(promises, fn, INTERNAL, 0)
-              ._then(promiseAllThis, undefined, undefined, promises, undefined);
-};
-
-Promise.mapSeries = PromiseMapSeries;
-};
-

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/errors.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/errors.js b/node_modules/bluebird/js/release/errors.js
deleted file mode 100644
index f62f323..0000000
--- a/node_modules/bluebird/js/release/errors.js
+++ /dev/null
@@ -1,116 +0,0 @@
-"use strict";
-var es5 = require("./es5");
-var Objectfreeze = es5.freeze;
-var util = require("./util");
-var inherits = util.inherits;
-var notEnumerableProp = util.notEnumerableProp;
-
-function subError(nameProperty, defaultMessage) {
-    function SubError(message) {
-        if (!(this instanceof SubError)) return new SubError(message);
-        notEnumerableProp(this, "message",
-            typeof message === "string" ? message : defaultMessage);
-        notEnumerableProp(this, "name", nameProperty);
-        if (Error.captureStackTrace) {
-            Error.captureStackTrace(this, this.constructor);
-        } else {
-            Error.call(this);
-        }
-    }
-    inherits(SubError, Error);
-    return SubError;
-}
-
-var _TypeError, _RangeError;
-var Warning = subError("Warning", "warning");
-var CancellationError = subError("CancellationError", "cancellation error");
-var TimeoutError = subError("TimeoutError", "timeout error");
-var AggregateError = subError("AggregateError", "aggregate error");
-try {
-    _TypeError = TypeError;
-    _RangeError = RangeError;
-} catch(e) {
-    _TypeError = subError("TypeError", "type error");
-    _RangeError = subError("RangeError", "range error");
-}
-
-var methods = ("join pop push shift unshift slice filter forEach some " +
-    "every map indexOf lastIndexOf reduce reduceRight sort reverse").split(" ");
-
-for (var i = 0; i < methods.length; ++i) {
-    if (typeof Array.prototype[methods[i]] === "function") {
-        AggregateError.prototype[methods[i]] = Array.prototype[methods[i]];
-    }
-}
-
-es5.defineProperty(AggregateError.prototype, "length", {
-    value: 0,
-    configurable: false,
-    writable: true,
-    enumerable: true
-});
-AggregateError.prototype["isOperational"] = true;
-var level = 0;
-AggregateError.prototype.toString = function() {
-    var indent = Array(level * 4 + 1).join(" ");
-    var ret = "\n" + indent + "AggregateError of:" + "\n";
-    level++;
-    indent = Array(level * 4 + 1).join(" ");
-    for (var i = 0; i < this.length; ++i) {
-        var str = this[i] === this ? "[Circular AggregateError]" : this[i] + "";
-        var lines = str.split("\n");
-        for (var j = 0; j < lines.length; ++j) {
-            lines[j] = indent + lines[j];
-        }
-        str = lines.join("\n");
-        ret += str + "\n";
-    }
-    level--;
-    return ret;
-};
-
-function OperationalError(message) {
-    if (!(this instanceof OperationalError))
-        return new OperationalError(message);
-    notEnumerableProp(this, "name", "OperationalError");
-    notEnumerableProp(this, "message", message);
-    this.cause = message;
-    this["isOperational"] = true;
-
-    if (message instanceof Error) {
-        notEnumerableProp(this, "message", message.message);
-        notEnumerableProp(this, "stack", message.stack);
-    } else if (Error.captureStackTrace) {
-        Error.captureStackTrace(this, this.constructor);
-    }
-
-}
-inherits(OperationalError, Error);
-
-var errorTypes = Error["__BluebirdErrorTypes__"];
-if (!errorTypes) {
-    errorTypes = Objectfreeze({
-        CancellationError: CancellationError,
-        TimeoutError: TimeoutError,
-        OperationalError: OperationalError,
-        RejectionError: OperationalError,
-        AggregateError: AggregateError
-    });
-    es5.defineProperty(Error, "__BluebirdErrorTypes__", {
-        value: errorTypes,
-        writable: false,
-        enumerable: false,
-        configurable: false
-    });
-}
-
-module.exports = {
-    Error: Error,
-    TypeError: _TypeError,
-    RangeError: _RangeError,
-    CancellationError: errorTypes.CancellationError,
-    OperationalError: errorTypes.OperationalError,
-    TimeoutError: errorTypes.TimeoutError,
-    AggregateError: errorTypes.AggregateError,
-    Warning: Warning
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/es5.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/es5.js b/node_modules/bluebird/js/release/es5.js
deleted file mode 100644
index ea41d5a..0000000
--- a/node_modules/bluebird/js/release/es5.js
+++ /dev/null
@@ -1,80 +0,0 @@
-var isES5 = (function(){
-    "use strict";
-    return this === undefined;
-})();
-
-if (isES5) {
-    module.exports = {
-        freeze: Object.freeze,
-        defineProperty: Object.defineProperty,
-        getDescriptor: Object.getOwnPropertyDescriptor,
-        keys: Object.keys,
-        names: Object.getOwnPropertyNames,
-        getPrototypeOf: Object.getPrototypeOf,
-        isArray: Array.isArray,
-        isES5: isES5,
-        propertyIsWritable: function(obj, prop) {
-            var descriptor = Object.getOwnPropertyDescriptor(obj, prop);
-            return !!(!descriptor || descriptor.writable || descriptor.set);
-        }
-    };
-} else {
-    var has = {}.hasOwnProperty;
-    var str = {}.toString;
-    var proto = {}.constructor.prototype;
-
-    var ObjectKeys = function (o) {
-        var ret = [];
-        for (var key in o) {
-            if (has.call(o, key)) {
-                ret.push(key);
-            }
-        }
-        return ret;
-    };
-
-    var ObjectGetDescriptor = function(o, key) {
-        return {value: o[key]};
-    };
-
-    var ObjectDefineProperty = function (o, key, desc) {
-        o[key] = desc.value;
-        return o;
-    };
-
-    var ObjectFreeze = function (obj) {
-        return obj;
-    };
-
-    var ObjectGetPrototypeOf = function (obj) {
-        try {
-            return Object(obj).constructor.prototype;
-        }
-        catch (e) {
-            return proto;
-        }
-    };
-
-    var ArrayIsArray = function (obj) {
-        try {
-            return str.call(obj) === "[object Array]";
-        }
-        catch(e) {
-            return false;
-        }
-    };
-
-    module.exports = {
-        isArray: ArrayIsArray,
-        keys: ObjectKeys,
-        names: ObjectKeys,
-        defineProperty: ObjectDefineProperty,
-        getDescriptor: ObjectGetDescriptor,
-        freeze: ObjectFreeze,
-        getPrototypeOf: ObjectGetPrototypeOf,
-        isES5: isES5,
-        propertyIsWritable: function() {
-            return true;
-        }
-    };
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/filter.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/filter.js b/node_modules/bluebird/js/release/filter.js
deleted file mode 100644
index ed57bf0..0000000
--- a/node_modules/bluebird/js/release/filter.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-module.exports = function(Promise, INTERNAL) {
-var PromiseMap = Promise.map;
-
-Promise.prototype.filter = function (fn, options) {
-    return PromiseMap(this, fn, options, INTERNAL);
-};
-
-Promise.filter = function (promises, fn, options) {
-    return PromiseMap(promises, fn, options, INTERNAL);
-};
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/finally.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/finally.js b/node_modules/bluebird/js/release/finally.js
deleted file mode 100644
index d57444b..0000000
--- a/node_modules/bluebird/js/release/finally.js
+++ /dev/null
@@ -1,146 +0,0 @@
-"use strict";
-module.exports = function(Promise, tryConvertToPromise, NEXT_FILTER) {
-var util = require("./util");
-var CancellationError = Promise.CancellationError;
-var errorObj = util.errorObj;
-var catchFilter = require("./catch_filter")(NEXT_FILTER);
-
-function PassThroughHandlerContext(promise, type, handler) {
-    this.promise = promise;
-    this.type = type;
-    this.handler = handler;
-    this.called = false;
-    this.cancelPromise = null;
-}
-
-PassThroughHandlerContext.prototype.isFinallyHandler = function() {
-    return this.type === 0;
-};
-
-function FinallyHandlerCancelReaction(finallyHandler) {
-    this.finallyHandler = finallyHandler;
-}
-
-FinallyHandlerCancelReaction.prototype._resultCancelled = function() {
-    checkCancel(this.finallyHandler);
-};
-
-function checkCancel(ctx, reason) {
-    if (ctx.cancelPromise != null) {
-        if (arguments.length > 1) {
-            ctx.cancelPromise._reject(reason);
-        } else {
-            ctx.cancelPromise._cancel();
-        }
-        ctx.cancelPromise = null;
-        return true;
-    }
-    return false;
-}
-
-function succeed() {
-    return finallyHandler.call(this, this.promise._target()._settledValue());
-}
-function fail(reason) {
-    if (checkCancel(this, reason)) return;
-    errorObj.e = reason;
-    return errorObj;
-}
-function finallyHandler(reasonOrValue) {
-    var promise = this.promise;
-    var handler = this.handler;
-
-    if (!this.called) {
-        this.called = true;
-        var ret = this.isFinallyHandler()
-            ? handler.call(promise._boundValue())
-            : handler.call(promise._boundValue(), reasonOrValue);
-        if (ret === NEXT_FILTER) {
-            return ret;
-        } else if (ret !== undefined) {
-            promise._setReturnedNonUndefined();
-            var maybePromise = tryConvertToPromise(ret, promise);
-            if (maybePromise instanceof Promise) {
-                if (this.cancelPromise != null) {
-                    if (maybePromise._isCancelled()) {
-                        var reason =
-                            new CancellationError("late cancellation observer");
-                        promise._attachExtraTrace(reason);
-                        errorObj.e = reason;
-                        return errorObj;
-                    } else if (maybePromise.isPending()) {
-                        maybePromise._attachCancellationCallback(
-                            new FinallyHandlerCancelReaction(this));
-                    }
-                }
-                return maybePromise._then(
-                    succeed, fail, undefined, this, undefined);
-            }
-        }
-    }
-
-    if (promise.isRejected()) {
-        checkCancel(this);
-        errorObj.e = reasonOrValue;
-        return errorObj;
-    } else {
-        checkCancel(this);
-        return reasonOrValue;
-    }
-}
-
-Promise.prototype._passThrough = function(handler, type, success, fail) {
-    if (typeof handler !== "function") return this.then();
-    return this._then(success,
-                      fail,
-                      undefined,
-                      new PassThroughHandlerContext(this, type, handler),
-                      undefined);
-};
-
-Promise.prototype.lastly =
-Promise.prototype["finally"] = function (handler) {
-    return this._passThrough(handler,
-                             0,
-                             finallyHandler,
-                             finallyHandler);
-};
-
-
-Promise.prototype.tap = function (handler) {
-    return this._passThrough(handler, 1, finallyHandler);
-};
-
-Promise.prototype.tapCatch = function (handlerOrPredicate) {
-    var len = arguments.length;
-    if(len === 1) {
-        return this._passThrough(handlerOrPredicate,
-                                 1,
-                                 undefined,
-                                 finallyHandler);
-    } else {
-         var catchInstances = new Array(len - 1),
-            j = 0, i;
-        for (i = 0; i < len - 1; ++i) {
-            var item = arguments[i];
-            if (util.isObject(item)) {
-                catchInstances[j++] = item;
-            } else {
-                return Promise.reject(new TypeError(
-                    "tapCatch statement predicate: "
-                    + "expecting an object but got " + util.classString(item)
-                ));
-            }
-        }
-        catchInstances.length = j;
-        var handler = arguments[i];
-        return this._passThrough(catchFilter(catchInstances, handler, this),
-                                 1,
-                                 undefined,
-                                 finallyHandler);
-    }
-
-};
-
-return PassThroughHandlerContext;
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/generators.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/generators.js b/node_modules/bluebird/js/release/generators.js
deleted file mode 100644
index 500c280..0000000
--- a/node_modules/bluebird/js/release/generators.js
+++ /dev/null
@@ -1,223 +0,0 @@
-"use strict";
-module.exports = function(Promise,
-                          apiRejection,
-                          INTERNAL,
-                          tryConvertToPromise,
-                          Proxyable,
-                          debug) {
-var errors = require("./errors");
-var TypeError = errors.TypeError;
-var util = require("./util");
-var errorObj = util.errorObj;
-var tryCatch = util.tryCatch;
-var yieldHandlers = [];
-
-function promiseFromYieldHandler(value, yieldHandlers, traceParent) {
-    for (var i = 0; i < yieldHandlers.length; ++i) {
-        traceParent._pushContext();
-        var result = tryCatch(yieldHandlers[i])(value);
-        traceParent._popContext();
-        if (result === errorObj) {
-            traceParent._pushContext();
-            var ret = Promise.reject(errorObj.e);
-            traceParent._popContext();
-            return ret;
-        }
-        var maybePromise = tryConvertToPromise(result, traceParent);
-        if (maybePromise instanceof Promise) return maybePromise;
-    }
-    return null;
-}
-
-function PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) {
-    if (debug.cancellation()) {
-        var internal = new Promise(INTERNAL);
-        var _finallyPromise = this._finallyPromise = new Promise(INTERNAL);
-        this._promise = internal.lastly(function() {
-            return _finallyPromise;
-        });
-        internal._captureStackTrace();
-        internal._setOnCancel(this);
-    } else {
-        var promise = this._promise = new Promise(INTERNAL);
-        promise._captureStackTrace();
-    }
-    this._stack = stack;
-    this._generatorFunction = generatorFunction;
-    this._receiver = receiver;
-    this._generator = undefined;
-    this._yieldHandlers = typeof yieldHandler === "function"
-        ? [yieldHandler].concat(yieldHandlers)
-        : yieldHandlers;
-    this._yieldedPromise = null;
-    this._cancellationPhase = false;
-}
-util.inherits(PromiseSpawn, Proxyable);
-
-PromiseSpawn.prototype._isResolved = function() {
-    return this._promise === null;
-};
-
-PromiseSpawn.prototype._cleanup = function() {
-    this._promise = this._generator = null;
-    if (debug.cancellation() && this._finallyPromise !== null) {
-        this._finallyPromise._fulfill();
-        this._finallyPromise = null;
-    }
-};
-
-PromiseSpawn.prototype._promiseCancelled = function() {
-    if (this._isResolved()) return;
-    var implementsReturn = typeof this._generator["return"] !== "undefined";
-
-    var result;
-    if (!implementsReturn) {
-        var reason = new Promise.CancellationError(
-            "generator .return() sentinel");
-        Promise.coroutine.returnSentinel = reason;
-        this._promise._attachExtraTrace(reason);
-        this._promise._pushContext();
-        result = tryCatch(this._generator["throw"]).call(this._generator,
-                                                         reason);
-        this._promise._popContext();
-    } else {
-        this._promise._pushContext();
-        result = tryCatch(this._generator["return"]).call(this._generator,
-                                                          undefined);
-        this._promise._popContext();
-    }
-    this._cancellationPhase = true;
-    this._yieldedPromise = null;
-    this._continue(result);
-};
-
-PromiseSpawn.prototype._promiseFulfilled = function(value) {
-    this._yieldedPromise = null;
-    this._promise._pushContext();
-    var result = tryCatch(this._generator.next).call(this._generator, value);
-    this._promise._popContext();
-    this._continue(result);
-};
-
-PromiseSpawn.prototype._promiseRejected = function(reason) {
-    this._yieldedPromise = null;
-    this._promise._attachExtraTrace(reason);
-    this._promise._pushContext();
-    var result = tryCatch(this._generator["throw"])
-        .call(this._generator, reason);
-    this._promise._popContext();
-    this._continue(result);
-};
-
-PromiseSpawn.prototype._resultCancelled = function() {
-    if (this._yieldedPromise instanceof Promise) {
-        var promise = this._yieldedPromise;
-        this._yieldedPromise = null;
-        promise.cancel();
-    }
-};
-
-PromiseSpawn.prototype.promise = function () {
-    return this._promise;
-};
-
-PromiseSpawn.prototype._run = function () {
-    this._generator = this._generatorFunction.call(this._receiver);
-    this._receiver =
-        this._generatorFunction = undefined;
-    this._promiseFulfilled(undefined);
-};
-
-PromiseSpawn.prototype._continue = function (result) {
-    var promise = this._promise;
-    if (result === errorObj) {
-        this._cleanup();
-        if (this._cancellationPhase) {
-            return promise.cancel();
-        } else {
-            return promise._rejectCallback(result.e, false);
-        }
-    }
-
-    var value = result.value;
-    if (result.done === true) {
-        this._cleanup();
-        if (this._cancellationPhase) {
-            return promise.cancel();
-        } else {
-            return promise._resolveCallback(value);
-        }
-    } else {
-        var maybePromise = tryConvertToPromise(value, this._promise);
-        if (!(maybePromise instanceof Promise)) {
-            maybePromise =
-                promiseFromYieldHandler(maybePromise,
-                                        this._yieldHandlers,
-                                        this._promise);
-            if (maybePromise === null) {
-                this._promiseRejected(
-                    new TypeError(
-                        "A value %s was yielded that could not be treated as a promise\u000a\u000a    See http://goo.gl/MqrFmX\u000a\u000a".replace("%s", String(value)) +
-                        "From coroutine:\u000a" +
-                        this._stack.split("\n").slice(1, -7).join("\n")
-                    )
-                );
-                return;
-            }
-        }
-        maybePromise = maybePromise._target();
-        var bitField = maybePromise._bitField;
-        ;
-        if (((bitField & 50397184) === 0)) {
-            this._yieldedPromise = maybePromise;
-            maybePromise._proxy(this, null);
-        } else if (((bitField & 33554432) !== 0)) {
-            Promise._async.invoke(
-                this._promiseFulfilled, this, maybePromise._value()
-            );
-        } else if (((bitField & 16777216) !== 0)) {
-            Promise._async.invoke(
-                this._promiseRejected, this, maybePromise._reason()
-            );
-        } else {
-            this._promiseCancelled();
-        }
-    }
-};
-
-Promise.coroutine = function (generatorFunction, options) {
-    if (typeof generatorFunction !== "function") {
-        throw new TypeError("generatorFunction must be a function\u000a\u000a    See http://goo.gl/MqrFmX\u000a");
-    }
-    var yieldHandler = Object(options).yieldHandler;
-    var PromiseSpawn$ = PromiseSpawn;
-    var stack = new Error().stack;
-    return function () {
-        var generator = generatorFunction.apply(this, arguments);
-        var spawn = new PromiseSpawn$(undefined, undefined, yieldHandler,
-                                      stack);
-        var ret = spawn.promise();
-        spawn._generator = generator;
-        spawn._promiseFulfilled(undefined);
-        return ret;
-    };
-};
-
-Promise.coroutine.addYieldHandler = function(fn) {
-    if (typeof fn !== "function") {
-        throw new TypeError("expecting a function but got " + util.classString(fn));
-    }
-    yieldHandlers.push(fn);
-};
-
-Promise.spawn = function (generatorFunction) {
-    debug.deprecated("Promise.spawn()", "Promise.coroutine()");
-    if (typeof generatorFunction !== "function") {
-        return apiRejection("generatorFunction must be a function\u000a\u000a    See http://goo.gl/MqrFmX\u000a");
-    }
-    var spawn = new PromiseSpawn(generatorFunction, this);
-    var ret = spawn.promise();
-    spawn._run(Promise.spawn);
-    return ret;
-};
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/join.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/join.js b/node_modules/bluebird/js/release/join.js
deleted file mode 100644
index 4945e3f..0000000
--- a/node_modules/bluebird/js/release/join.js
+++ /dev/null
@@ -1,168 +0,0 @@
-"use strict";
-module.exports =
-function(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async,
-         getDomain) {
-var util = require("./util");
-var canEvaluate = util.canEvaluate;
-var tryCatch = util.tryCatch;
-var errorObj = util.errorObj;
-var reject;
-
-if (!false) {
-if (canEvaluate) {
-    var thenCallback = function(i) {
-        return new Function("value", "holder", "                             \n\
-            'use strict';                                                    \n\
-            holder.pIndex = value;                                           \n\
-            holder.checkFulfillment(this);                                   \n\
-            ".replace(/Index/g, i));
-    };
-
-    var promiseSetter = function(i) {
-        return new Function("promise", "holder", "                           \n\
-            'use strict';                                                    \n\
-            holder.pIndex = promise;                                         \n\
-            ".replace(/Index/g, i));
-    };
-
-    var generateHolderClass = function(total) {
-        var props = new Array(total);
-        for (var i = 0; i < props.length; ++i) {
-            props[i] = "this.p" + (i+1);
-        }
-        var assignment = props.join(" = ") + " = null;";
-        var cancellationCode= "var promise;\n" + props.map(function(prop) {
-            return "                                                         \n\
-                promise = " + prop + ";                                      \n\
-                if (promise instanceof Promise) {                            \n\
-                    promise.cancel();                                        \n\
-                }                                                            \n\
-            ";
-        }).join("\n");
-        var passedArguments = props.join(", ");
-        var name = "Holder$" + total;
-
-
-        var code = "return function(tryCatch, errorObj, Promise, async) {    \n\
-            'use strict';                                                    \n\
-            function [TheName](fn) {                                         \n\
-                [TheProperties]                                              \n\
-                this.fn = fn;                                                \n\
-                this.asyncNeeded = true;                                     \n\
-                this.now = 0;                                                \n\
-            }                                                                \n\
-                                                                             \n\
-            [TheName].prototype._callFunction = function(promise) {          \n\
-                promise._pushContext();                                      \n\
-                var ret = tryCatch(this.fn)([ThePassedArguments]);           \n\
-                promise._popContext();                                       \n\
-                if (ret === errorObj) {                                      \n\
-                    promise._rejectCallback(ret.e, false);                   \n\
-                } else {                                                     \n\
-                    promise._resolveCallback(ret);                           \n\
-                }                                                            \n\
-            };                                                               \n\
-                                                                             \n\
-            [TheName].prototype.checkFulfillment = function(promise) {       \n\
-                var now = ++this.now;                                        \n\
-                if (now === [TheTotal]) {                                    \n\
-                    if (this.asyncNeeded) {                                  \n\
-                        async.invoke(this._callFunction, this, promise);     \n\
-                    } else {                                                 \n\
-                        this._callFunction(promise);                         \n\
-                    }                                                        \n\
-                                                                             \n\
-                }                                                            \n\
-            };                                                               \n\
-                                                                             \n\
-            [TheName].prototype._resultCancelled = function() {              \n\
-                [CancellationCode]                                           \n\
-            };                                                               \n\
-                                                                             \n\
-            return [TheName];                                                \n\
-        }(tryCatch, errorObj, Promise, async);                               \n\
-        ";
-
-        code = code.replace(/\[TheName\]/g, name)
-            .replace(/\[TheTotal\]/g, total)
-            .replace(/\[ThePassedArguments\]/g, passedArguments)
-            .replace(/\[TheProperties\]/g, assignment)
-            .replace(/\[CancellationCode\]/g, cancellationCode);
-
-        return new Function("tryCatch", "errorObj", "Promise", "async", code)
-                           (tryCatch, errorObj, Promise, async);
-    };
-
-    var holderClasses = [];
-    var thenCallbacks = [];
-    var promiseSetters = [];
-
-    for (var i = 0; i < 8; ++i) {
-        holderClasses.push(generateHolderClass(i + 1));
-        thenCallbacks.push(thenCallback(i + 1));
-        promiseSetters.push(promiseSetter(i + 1));
-    }
-
-    reject = function (reason) {
-        this._reject(reason);
-    };
-}}
-
-Promise.join = function () {
-    var last = arguments.length - 1;
-    var fn;
-    if (last > 0 && typeof arguments[last] === "function") {
-        fn = arguments[last];
-        if (!false) {
-            if (last <= 8 && canEvaluate) {
-                var ret = new Promise(INTERNAL);
-                ret._captureStackTrace();
-                var HolderClass = holderClasses[last - 1];
-                var holder = new HolderClass(fn);
-                var callbacks = thenCallbacks;
-
-                for (var i = 0; i < last; ++i) {
-                    var maybePromise = tryConvertToPromise(arguments[i], ret);
-                    if (maybePromise instanceof Promise) {
-                        maybePromise = maybePromise._target();
-                        var bitField = maybePromise._bitField;
-                        ;
-                        if (((bitField & 50397184) === 0)) {
-                            maybePromise._then(callbacks[i], reject,
-                                               undefined, ret, holder);
-                            promiseSetters[i](maybePromise, holder);
-                            holder.asyncNeeded = false;
-                        } else if (((bitField & 33554432) !== 0)) {
-                            callbacks[i].call(ret,
-                                              maybePromise._value(), holder);
-                        } else if (((bitField & 16777216) !== 0)) {
-                            ret._reject(maybePromise._reason());
-                        } else {
-                            ret._cancel();
-                        }
-                    } else {
-                        callbacks[i].call(ret, maybePromise, holder);
-                    }
-                }
-
-                if (!ret._isFateSealed()) {
-                    if (holder.asyncNeeded) {
-                        var domain = getDomain();
-                        if (domain !== null) {
-                            holder.fn = util.domainBind(domain, holder.fn);
-                        }
-                    }
-                    ret._setAsyncGuaranteed();
-                    ret._setOnCancel(holder);
-                }
-                return ret;
-            }
-        }
-    }
-    var $_len = arguments.length;var args = new Array($_len); for(var $_i = 0; $_i < $_len; ++$_i) {args[$_i] = arguments[$_i];};
-    if (fn) args.pop();
-    var ret = new PromiseArray(args).promise();
-    return fn !== undefined ? ret.spread(fn) : ret;
-};
-
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/map.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/map.js b/node_modules/bluebird/js/release/map.js
deleted file mode 100644
index 976f15e..0000000
--- a/node_modules/bluebird/js/release/map.js
+++ /dev/null
@@ -1,168 +0,0 @@
-"use strict";
-module.exports = function(Promise,
-                          PromiseArray,
-                          apiRejection,
-                          tryConvertToPromise,
-                          INTERNAL,
-                          debug) {
-var getDomain = Promise._getDomain;
-var util = require("./util");
-var tryCatch = util.tryCatch;
-var errorObj = util.errorObj;
-var async = Promise._async;
-
-function MappingPromiseArray(promises, fn, limit, _filter) {
-    this.constructor$(promises);
-    this._promise._captureStackTrace();
-    var domain = getDomain();
-    this._callback = domain === null ? fn : util.domainBind(domain, fn);
-    this._preservedValues = _filter === INTERNAL
-        ? new Array(this.length())
-        : null;
-    this._limit = limit;
-    this._inFlight = 0;
-    this._queue = [];
-    async.invoke(this._asyncInit, this, undefined);
-}
-util.inherits(MappingPromiseArray, PromiseArray);
-
-MappingPromiseArray.prototype._asyncInit = function() {
-    this._init$(undefined, -2);
-};
-
-MappingPromiseArray.prototype._init = function () {};
-
-MappingPromiseArray.prototype._promiseFulfilled = function (value, index) {
-    var values = this._values;
-    var length = this.length();
-    var preservedValues = this._preservedValues;
-    var limit = this._limit;
-
-    if (index < 0) {
-        index = (index * -1) - 1;
-        values[index] = value;
-        if (limit >= 1) {
-            this._inFlight--;
-            this._drainQueue();
-            if (this._isResolved()) return true;
-        }
-    } else {
-        if (limit >= 1 && this._inFlight >= limit) {
-            values[index] = value;
-            this._queue.push(index);
-            return false;
-        }
-        if (preservedValues !== null) preservedValues[index] = value;
-
-        var promise = this._promise;
-        var callback = this._callback;
-        var receiver = promise._boundValue();
-        promise._pushContext();
-        var ret = tryCatch(callback).call(receiver, value, index, length);
-        var promiseCreated = promise._popContext();
-        debug.checkForgottenReturns(
-            ret,
-            promiseCreated,
-            preservedValues !== null ? "Promise.filter" : "Promise.map",
-            promise
-        );
-        if (ret === errorObj) {
-            this._reject(ret.e);
-            return true;
-        }
-
-        var maybePromise = tryConvertToPromise(ret, this._promise);
-        if (maybePromise instanceof Promise) {
-            maybePromise = maybePromise._target();
-            var bitField = maybePromise._bitField;
-            ;
-            if (((bitField & 50397184) === 0)) {
-                if (limit >= 1) this._inFlight++;
-                values[index] = maybePromise;
-                maybePromise._proxy(this, (index + 1) * -1);
-                return false;
-            } else if (((bitField & 33554432) !== 0)) {
-                ret = maybePromise._value();
-            } else if (((bitField & 16777216) !== 0)) {
-                this._reject(maybePromise._reason());
-                return true;
-            } else {
-                this._cancel();
-                return true;
-            }
-        }
-        values[index] = ret;
-    }
-    var totalResolved = ++this._totalResolved;
-    if (totalResolved >= length) {
-        if (preservedValues !== null) {
-            this._filter(values, preservedValues);
-        } else {
-            this._resolve(values);
-        }
-        return true;
-    }
-    return false;
-};
-
-MappingPromiseArray.prototype._drainQueue = function () {
-    var queue = this._queue;
-    var limit = this._limit;
-    var values = this._values;
-    while (queue.length > 0 && this._inFlight < limit) {
-        if (this._isResolved()) return;
-        var index = queue.pop();
-        this._promiseFulfilled(values[index], index);
-    }
-};
-
-MappingPromiseArray.prototype._filter = function (booleans, values) {
-    var len = values.length;
-    var ret = new Array(len);
-    var j = 0;
-    for (var i = 0; i < len; ++i) {
-        if (booleans[i]) ret[j++] = values[i];
-    }
-    ret.length = j;
-    this._resolve(ret);
-};
-
-MappingPromiseArray.prototype.preservedValues = function () {
-    return this._preservedValues;
-};
-
-function map(promises, fn, options, _filter) {
-    if (typeof fn !== "function") {
-        return apiRejection("expecting a function but got " + util.classString(fn));
-    }
-
-    var limit = 0;
-    if (options !== undefined) {
-        if (typeof options === "object" && options !== null) {
-            if (typeof options.concurrency !== "number") {
-                return Promise.reject(
-                    new TypeError("'concurrency' must be a number but it is " +
-                                    util.classString(options.concurrency)));
-            }
-            limit = options.concurrency;
-        } else {
-            return Promise.reject(new TypeError(
-                            "options argument must be an object but it is " +
-                             util.classString(options)));
-        }
-    }
-    limit = typeof limit === "number" &&
-        isFinite(limit) && limit >= 1 ? limit : 0;
-    return new MappingPromiseArray(promises, fn, limit, _filter).promise();
-}
-
-Promise.prototype.map = function (fn, options) {
-    return map(this, fn, options, null);
-};
-
-Promise.map = function (promises, fn, options, _filter) {
-    return map(promises, fn, options, _filter);
-};
-
-
-};

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/ca1c37a7/node_modules/bluebird/js/release/method.js
----------------------------------------------------------------------
diff --git a/node_modules/bluebird/js/release/method.js b/node_modules/bluebird/js/release/method.js
deleted file mode 100644
index ce9e4db..0000000
--- a/node_modules/bluebird/js/release/method.js
+++ /dev/null
@@ -1,55 +0,0 @@
-"use strict";
-module.exports =
-function(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) {
-var util = require("./util");
-var tryCatch = util.tryCatch;
-
-Promise.method = function (fn) {
-    if (typeof fn !== "function") {
-        throw new Promise.TypeError("expecting a function but got " + util.classString(fn));
-    }
-    return function () {
-        var ret = new Promise(INTERNAL);
-        ret._captureStackTrace();
-        ret._pushContext();
-        var value = tryCatch(fn).apply(this, arguments);
-        var promiseCreated = ret._popContext();
-        debug.checkForgottenReturns(
-            value, promiseCreated, "Promise.method", ret);
-        ret._resolveFromSyncValue(value);
-        return ret;
-    };
-};
-
-Promise.attempt = Promise["try"] = function (fn) {
-    if (typeof fn !== "function") {
-        return apiRejection("expecting a function but got " + util.classString(fn));
-    }
-    var ret = new Promise(INTERNAL);
-    ret._captureStackTrace();
-    ret._pushContext();
-    var value;
-    if (arguments.length > 1) {
-        debug.deprecated("calling Promise.try with more than 1 argument");
-        var arg = arguments[1];
-        var ctx = arguments[2];
-        value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg)
-                                  : tryCatch(fn).call(ctx, arg);
-    } else {
-        value = tryCatch(fn)();
-    }
-    var promiseCreated = ret._popContext();
-    debug.checkForgottenReturns(
-        value, promiseCreated, "Promise.try", ret);
-    ret._resolveFromSyncValue(value);
-    return ret;
-};
-
-Promise.prototype._resolveFromSyncValue = function (value) {
-    if (value === util.errorObj) {
-        this._rejectCallback(value.e, false);
-    } else {
-        this._resolveCallback(value, true);
-    }
-};
-};