remove lint functionalities
authoralexlamsl <alexlamsl@gmail.com>
Sat, 16 Apr 2016 18:29:01 +0000 (02:29 +0800)
committeralexlamsl <alexlamsl@gmail.com>
Sat, 16 Apr 2016 18:53:05 +0000 (02:53 +0800)
link to HTMLLint project in README.md
fixes #80

15 files changed:
Gruntfile.js
README.md
assets/master.css
assets/master.js
cli.js
dist/htmlminifier.js
dist/htmlminifier.min.js
index.html
package.json
sample-cli-config-file.conf
src/htmllint.js [deleted file]
src/htmlminifier.js
test.js
tests/lint-tests.html [deleted file]
tests/lint.js [deleted file]

index 7fb078a..cad080d 100644 (file)
@@ -31,7 +31,6 @@ module.exports = function(grunt) {
         options: {
           banner: '<%= banner %>',
           require: [
-            './src/htmllint.js:html-minifier/src/htmllint',
             './src/htmlminifier.js:html-minifier'
           ]
         },
@@ -59,7 +58,6 @@ module.exports = function(grunt) {
     },
 
     qunit: {
-      htmllint: ['./tests/lint', 'tests/lint-tests.html'],
       htmlminifier: ['./tests/minifier', 'tests/index.html']
     },
 
@@ -71,10 +69,6 @@ module.exports = function(grunt) {
       './tests/index.html': [
         /("[^"]+\/qunit-)[0-9\.]+?(\.(?:css|js)")/g,
         '$1<%= qunit_ver %>$2'
-      ],
-      './tests/lint-tests.html': [
-        /("[^"]+\/qunit-)[0-9\.]+?(\.(?:css|js)")/g,
-        '$1<%= qunit_ver %>$2'
       ]
     },
 
index 91db85d..02cbcf8 100644 (file)
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@
 [![optionalDependency Status](https://img.shields.io/david/optional/kangax/html-minifier.svg)](https://david-dm.org/kangax/html-minifier#info=optionalDependencies)
 [![Gitter](https://img.shields.io/gitter/room/kangax/html-minifier.svg)](https://gitter.im/kangax/html-minifier)
 
-[HTMLMinifier](http://kangax.github.io/html-minifier/) is a highly **configurable**, **well-tested**, JavaScript-based HTML minifier, with lint-like capabilities.
+[HTMLMinifier](http://kangax.github.io/html-minifier/) is a highly **configurable**, **well-tested**, JavaScript-based HTML minifier.
 
 See [corresponding blog post](http://perfectionkills.com/experimenting-with-html-minifier/) for all the gory details of [how it works](http://perfectionkills.com/experimenting-with-html-minifier/#how_it_works), [description of each option](http://perfectionkills.com/experimenting-with-html-minifier/#options), [testing results](http://perfectionkills.com/experimenting-with-html-minifier/#field_testing) and [conclusions](http://perfectionkills.com/experimenting-with-html-minifier/#cost_and_benefits).
 
@@ -15,6 +15,8 @@ See [corresponding blog post](http://perfectionkills.com/experimenting-with-html
 
 Also see corresponding [Ruby wrapper](https://github.com/stereobooster/html_minifier), and for Node.js, [Grunt plugin](https://github.com/gruntjs/grunt-contrib-htmlmin), [Gulp module](https://github.com/jonschlinkert/gulp-htmlmin), and [Koa middleware wrapper](https://github.com/koajs/html-minifier).
 
+For lint-like capabilities take a look at [HTMLLint](https://github.com/kangax/html-lint).
+
 ## Minification comparison
 
 How does HTMLMinifier compare to other solutions — [HTML Minifier from Will Peavy](http://www.willpeavy.com/minifier/) (1st result in [Google search for "html minifier"](https://www.google.com/#q=html+minifier)) as well as [htmlcompressor.com](http://htmlcompressor.com) and [minimize](https://github.com/Swaagie/minimize)?
@@ -54,7 +56,6 @@ How does HTMLMinifier compare to other solutions — [HTML Minifier from Will Pe
 | `ignoreCustomFragments`        | Array of regex'es that allow to ignore certain fragments, when matched (e.g. `<?php ... ?>`, `{{ ... }}`, etc.)  | `[ /<%[\s\S]*?%>/, /<\?[\s\S]*?\?>/ ]` |
 | `includeAutoGeneratedTags`     | Insert tags generated by HTML parser | `true` |
 | `keepClosingSlash`             | Keep the trailing slash on singleton elements | `false` |
-| `lint`                         | [Toggle linting](http://perfectionkills.com/experimenting-with-html-minifier/#validate_input_through_html_lint) | `false` |
 | `maxLineLength`                | Specify a maximum line length. Compressed output will be split by newlines at valid HTML split-points |
 | `minifyCSS`                    | Minify CSS in style elements and style attributes (uses [clean-css](https://github.com/jakubpawlowicz/clean-css)) | `false` (could be `true`, `false`, `Object` (options)) |
 | `minifyJS`                     | Minify JavaScript in script elements and event attributes (uses [UglifyJS](https://github.com/mishoo/UglifyJS2)) | `false` (could be `true`, `false`, `Object` (options)) |
index 167270d..2309b56 100644 (file)
@@ -19,9 +19,6 @@ button { font-weight: bold; width: 100px; }
 #options label + input { margin-left: 0.5em; }
 #stats { margin-bottom: 2em; overflow: hidden; margin-top: 0; }
 #todo { font-family: monospace; margin-bottom: 2em; }
-#lint-report { font-family: monospace; }
-#report { margin-bottom: 5em; }
-#report ul { margin: 0.5em; padding-left: 1em; list-style: none; }
 
 .success { color: green; }
 .failure { color: red; }
index d0bc95a..01025c4 100644 (file)
@@ -2,7 +2,6 @@
   'use strict';
 
   var minify = require('html-minifier').minify;
-  var HTMLLint = require('html-minifier/src/htmllint').HTMLLint;
 
   function byId(id) {
     return document.getElementById(id);
         }
       }
       switch (key) {
-        case 'lint':
-          if (!value) {
-            return;
-          }
-          value = new HTMLLint();
-          break;
         case 'maxLineLength':
           value = parseInt(value);
           break;
@@ -61,7 +54,6 @@
   byId('minify-btn').onclick = function() {
     try {
       var options = getOptions(),
-          lint = options.lint,
           originalValue = byId('input').value,
           minifiedValue = minify(originalValue, options),
           diff = originalValue.length - minifiedValue.length,
           '. Minified size: <strong>' + commify(minifiedValue.length) + '</strong>' +
           '. Savings: <strong>' + commify(diff) + ' (' + savings + '%)</strong>.' +
         '</span>';
-
-      if (lint) {
-        lint.populate(byId('report'));
-      }
-      else {
-        byId('report').innerHTML = '';
-      }
     }
     catch (err) {
       byId('output').value = '';
diff --git a/cli.js b/cli.js
index d1642bd..d14178b 100755 (executable)
--- a/cli.js
+++ b/cli.js
@@ -30,7 +30,6 @@
 var changeCase = require('change-case');
 var concat = require('concat-stream');
 var fs = require('fs');
-var HTMLLint = require('./src/htmllint').HTMLLint;
 var info = require('./package.json');
 var minify = require('.').minify;
 var path = require('path');
@@ -114,7 +113,6 @@ var mainOptions = {
   ignoreCustomFragments: ['Array of regex\'es that allow to ignore certain fragments, when matched (e.g. <?php ... ?>, {{ ... }})', parseJSONRegExpArray],
   includeAutoGeneratedTags: 'Insert tags generated by HTML parser',
   keepClosingSlash: 'Keep the trailing slash on singleton elements',
-  lint: 'Toggle linting',
   maxLineLength: ['Max line length', parseInt],
   minifyCSS: ['Minify CSS in style elements and style attributes (uses clean-css)', parseJSON],
   minifyJS: ['Minify Javascript in script elements and on* attributes (uses uglify-js)', parseJSON],
@@ -206,9 +204,6 @@ function createOptions() {
       options[key] = config[key];
     }
   });
-  if (options.lint) {
-    options.lint = new HTMLLint();
-  }
   return options;
 }
 
@@ -256,9 +251,6 @@ function writeMinify(content) {
   try {
     var options = createOptions();
     minified = minify(content, options);
-    if (options.lint) {
-      options.lint.populate();
-    }
   }
   catch (e) {
     fatal('Minification error:\n' + e.message);
index dd25857..bf0712d 100644 (file)
@@ -309,7 +309,7 @@ function amdefine(module, requireFn) {
 module.exports = amdefine;
 
 }).call(this,require('_process'),"/node_modules\\amdefine\\amdefine.js")
-},{"_process":79,"path":77}],2:[function(require,module,exports){
+},{"_process":90,"path":88}],2:[function(require,module,exports){
 'use strict'
 
 exports.toByteArray = toByteArray
@@ -1884,7 +1884,7 @@ function blitBuffer (src, dst, offset, length) {
 }
 
 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"base64-js":2,"ieee754":71,"isarray":74}],6:[function(require,module,exports){
+},{"base64-js":2,"ieee754":82,"isarray":85}],6:[function(require,module,exports){
 module.exports = {
   "100": "Continue",
   "101": "Switching Protocols",
@@ -2187,7 +2187,7 @@ function minify(context, data) {
 }
 
 }).call(this,require('_process'))
-},{"./imports/inliner":12,"./properties/validator":26,"./selectors/advanced":29,"./selectors/simple":42,"./stringifier/simple":46,"./stringifier/source-maps":47,"./text/comments-processor":48,"./text/expressions-processor":50,"./text/free-text-processor":51,"./text/urls-processor":52,"./tokenizer/tokenize":55,"./urls/rebase":56,"./utils/compatibility":60,"./utils/input-source-map-tracker":61,"./utils/object":62,"./utils/source-reader":64,"./utils/source-tracker":65,"_process":79,"fs":4,"path":77,"url":141}],9:[function(require,module,exports){
+},{"./imports/inliner":12,"./properties/validator":26,"./selectors/advanced":29,"./selectors/simple":42,"./stringifier/simple":46,"./stringifier/source-maps":47,"./text/comments-processor":48,"./text/expressions-processor":50,"./text/free-text-processor":51,"./text/urls-processor":52,"./tokenizer/tokenize":55,"./urls/rebase":56,"./utils/compatibility":60,"./utils/input-source-map-tracker":61,"./utils/object":62,"./utils/source-reader":64,"./utils/source-tracker":65,"_process":90,"fs":4,"path":88,"url":141}],9:[function(require,module,exports){
 var HexNameShortener = {};
 
 var COLORS = {
@@ -2865,7 +2865,7 @@ function restoreImport(importedUrl, mediaQuery, context) {
 module.exports = ImportInliner;
 
 }).call(this,require('_process'))
-},{"../urls/rewrite":58,"../utils/object.js":62,"../utils/split":66,"_process":79,"fs":4,"http":123,"https":70,"path":77,"url":141}],13:[function(require,module,exports){
+},{"../urls/rewrite":58,"../utils/object.js":62,"../utils/split":66,"_process":90,"fs":4,"http":123,"https":81,"path":88,"url":141}],13:[function(require,module,exports){
 var wrapSingle = require('./wrap-for-optimizing').single;
 
 var split = require('../utils/split');
@@ -7030,7 +7030,7 @@ module.exports = {
   value: value
 };
 
-},{"os":76}],45:[function(require,module,exports){
+},{"os":87}],45:[function(require,module,exports){
 var helpers = require('./helpers');
 
 function store(token, context) {
@@ -7206,7 +7206,7 @@ function stringify(tokens, options, restoreCallback, inputMapTracker) {
 module.exports = stringify;
 
 }).call(this,require('_process'))
-},{"./helpers":44,"_process":79,"source-map":111}],48:[function(require,module,exports){
+},{"./helpers":44,"_process":90,"source-map":67}],48:[function(require,module,exports){
 var EscapeStore = require('./escape-store');
 var QuoteScanner = require('../utils/quote-scanner');
 
@@ -7339,7 +7339,7 @@ CommentsProcessor.prototype.restore = function (data) {
 
 module.exports = CommentsProcessor;
 
-},{"../utils/quote-scanner":63,"./escape-store":49,"os":76}],49:[function(require,module,exports){
+},{"../utils/quote-scanner":63,"./escape-store":49,"os":87}],49:[function(require,module,exports){
 var placeholderBrace = '__';
 
 function EscapeStore(placeholderRoot) {
@@ -7513,7 +7513,7 @@ ExpressionsProcessor.prototype.restore = function (data) {
 
 module.exports = ExpressionsProcessor;
 
-},{"./escape-store":49,"os":76}],51:[function(require,module,exports){
+},{"./escape-store":49,"os":87}],51:[function(require,module,exports){
 var EscapeStore = require('./escape-store');
 var QuoteScanner = require('../utils/quote-scanner');
 
@@ -7613,7 +7613,7 @@ FreeTextProcessor.prototype.restore = function (data, prefixContext) {
 
 module.exports = FreeTextProcessor;
 
-},{"../utils/quote-scanner":63,"./escape-store":49,"os":76}],52:[function(require,module,exports){
+},{"../utils/quote-scanner":63,"./escape-store":49,"os":87}],52:[function(require,module,exports){
 var EscapeStore = require('./escape-store');
 var reduceUrls = require('../urls/reduce');
 
@@ -7687,7 +7687,7 @@ UrlsProcessor.prototype.restore = function (data) {
 
 module.exports = UrlsProcessor;
 
-},{"../urls/reduce":57,"./escape-store":49,"os":76}],53:[function(require,module,exports){
+},{"../urls/reduce":57,"./escape-store":49,"os":87}],53:[function(require,module,exports){
 var split = require('../utils/split');
 
 var COMMA = ',';
@@ -8167,7 +8167,7 @@ function intoTokens(context) {
 
 module.exports = tokenize;
 
-},{"../source-maps/track":43,"../utils/split":66,"./extract-properties":53,"./extract-selectors":54,"path":77}],56:[function(require,module,exports){
+},{"../source-maps/track":43,"../utils/split":66,"./extract-properties":53,"./extract-selectors":54,"path":88}],56:[function(require,module,exports){
 var path = require('path');
 
 var rewriteUrls = require('./rewrite');
@@ -8199,7 +8199,7 @@ function rebaseUrls(data, context) {
 
 module.exports = rebaseUrls;
 
-},{"./rewrite":58,"path":77}],57:[function(require,module,exports){
+},{"./rewrite":58,"path":88}],57:[function(require,module,exports){
 var URL_PREFIX = 'url(';
 var UPPERCASE_URL_PREFIX = 'URL(';
 var URL_SUFFIX = ')';
@@ -8464,7 +8464,7 @@ function rewriteUrls(data, options, context) {
 module.exports = rewriteUrls;
 
 }).call(this,require('_process'))
-},{"./reduce":57,"_process":79,"path":77,"url":141}],59:[function(require,module,exports){
+},{"./reduce":57,"_process":90,"path":88,"url":141}],59:[function(require,module,exports){
 function cloneArray(array) {
   var cloned = array.slice(0);
 
@@ -8503,7 +8503,7 @@ var DEFAULTS = {
     selectors: {
       adjacentSpace: false, // div+ nav Android stock browser hack
       ie7Hack: false, // *+html hack
-      special: /(\-moz\-|\-ms\-|\-o\-|\-webkit\-|:dir\([a-z-]*\)|:first(?![a-z-])|:fullscreen|:left|:read-only|:read-write|:right|:placeholder|:host|::content|\/deep\/|::shadow)/ // special selectors which prevent merging
+      special: /(\-moz\-|\-ms\-|\-o\-|\-webkit\-|:dir\([a-z-]*\)|:first(?![a-z-])|:fullscreen|:left|:read-only|:read-write|:right|:placeholder|:host|::content|\/deep\/|::shadow|^,)/ // special selectors which prevent merging
     },
     units: {
       ch: true,
@@ -8539,7 +8539,7 @@ var DEFAULTS = {
     selectors: {
       adjacentSpace: false,
       ie7Hack: false,
-      special: /(\-moz\-|\-ms\-|\-o\-|\-webkit\-|:root|:nth|:first\-of|:last|:only|:empty|:target|:checked|::selection|:enabled|:disabled|:not|:placeholder|:host|::content|\/deep\/|::shadow)/
+      special: /(\-moz\-|\-ms\-|\-o\-|\-webkit\-|:root|:nth|:first\-of|:last|:only|:empty|:target|:checked|::selection|:enabled|:disabled|:not|:placeholder|:host|::content|\/deep\/|::shadow|^,)/
     },
     units: {
       ch: false,
@@ -8575,7 +8575,7 @@ var DEFAULTS = {
     selectors: {
       adjacentSpace: false,
       ie7Hack: true,
-      special: /(\-moz\-|\-ms\-|\-o\-|\-webkit\-|:focus|:before|:after|:root|:nth|:first\-of|:last|:only|:empty|:target|:checked|::selection|:enabled|:disabled|:not|:placeholder|:host|::content|\/deep\/|::shadow)/
+      special: /(\-moz\-|\-ms\-|\-o\-|\-webkit\-|:focus|:before|:after|:root|:nth|:first\-of|:last|:only|:empty|:target|:checked|::selection|:enabled|:disabled|:not|:placeholder|:host|::content|\/deep\/|::shadow|^,)/
     },
     units: {
       ch: false,
@@ -8930,7 +8930,7 @@ InputSourceMapStore.prototype.resolveSources = function (whenDone) {
 module.exports = InputSourceMapStore;
 
 }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer)
-},{"../utils/object.js":62,"_process":79,"buffer":5,"fs":4,"http":123,"https":70,"path":77,"source-map":111,"url":141}],62:[function(require,module,exports){
+},{"../utils/object.js":62,"_process":90,"buffer":5,"fs":4,"http":123,"https":81,"path":88,"source-map":67,"url":141}],62:[function(require,module,exports){
 module.exports = {
   override: function (source1, source2) {
     var target = {};
@@ -9164,7 +9164,7 @@ function fromHash(self) {
 module.exports = SourceReader;
 
 }).call(this,{"isBuffer":require("../../../is-buffer/index.js")})
-},{"../../../is-buffer/index.js":73,"../urls/rewrite":58,"path":77}],65:[function(require,module,exports){
+},{"../../../is-buffer/index.js":84,"../urls/rewrite":58,"path":88}],65:[function(require,module,exports){
 function SourceTracker() {
   this.sources = [];
 }
@@ -9249,7842 +9249,7842 @@ function split(value, separator, includeSeparator, openLevel, closeLevel) {
 module.exports = split;
 
 },{}],67:[function(require,module,exports){
-(function (Buffer){
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// 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.
-
-// NOTE: These type checking functions intentionally don't use `instanceof`
-// because it is fragile and can be easily faked with `Object.create()`.
-
-function isArray(arg) {
-  if (Array.isArray) {
-    return Array.isArray(arg);
-  }
-  return objectToString(arg) === '[object Array]';
-}
-exports.isArray = isArray;
+/*
+ * Copyright 2009-2011 Mozilla Foundation and contributors
+ * Licensed under the New BSD license. See LICENSE.txt or:
+ * http://opensource.org/licenses/BSD-3-Clause
+ */
+exports.SourceMapGenerator = require('./source-map/source-map-generator').SourceMapGenerator;
+exports.SourceMapConsumer = require('./source-map/source-map-consumer').SourceMapConsumer;
+exports.SourceNode = require('./source-map/source-node').SourceNode;
 
-function isBoolean(arg) {
-  return typeof arg === 'boolean';
+},{"./source-map/source-map-consumer":74,"./source-map/source-map-generator":75,"./source-map/source-node":76}],68:[function(require,module,exports){
+/* -*- Mode: js; js-indent-level: 2; -*- */
+/*
+ * Copyright 2011 Mozilla Foundation and contributors
+ * Licensed under the New BSD license. See LICENSE or:
+ * http://opensource.org/licenses/BSD-3-Clause
+ */
+if (typeof define !== 'function') {
+    var define = require('amdefine')(module, require);
 }
-exports.isBoolean = isBoolean;
+define(function (require, exports, module) {
 
-function isNull(arg) {
-  return arg === null;
-}
-exports.isNull = isNull;
+  var util = require('./util');
 
-function isNullOrUndefined(arg) {
-  return arg == null;
-}
-exports.isNullOrUndefined = isNullOrUndefined;
+  /**
+   * A data structure which is a combination of an array and a set. Adding a new
+   * member is O(1), testing for membership is O(1), and finding the index of an
+   * element is O(1). Removing elements from the set is not supported. Only
+   * strings are supported for membership.
+   */
+  function ArraySet() {
+    this._array = [];
+    this._set = {};
+  }
 
-function isNumber(arg) {
-  return typeof arg === 'number';
-}
-exports.isNumber = isNumber;
+  /**
+   * Static method for creating ArraySet instances from an existing array.
+   */
+  ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {
+    var set = new ArraySet();
+    for (var i = 0, len = aArray.length; i < len; i++) {
+      set.add(aArray[i], aAllowDuplicates);
+    }
+    return set;
+  };
 
-function isString(arg) {
-  return typeof arg === 'string';
-}
-exports.isString = isString;
+  /**
+   * Return how many unique items are in this ArraySet. If duplicates have been
+   * added, than those do not count towards the size.
+   *
+   * @returns Number
+   */
+  ArraySet.prototype.size = function ArraySet_size() {
+    return Object.getOwnPropertyNames(this._set).length;
+  };
 
-function isSymbol(arg) {
-  return typeof arg === 'symbol';
-}
-exports.isSymbol = isSymbol;
+  /**
+   * Add the given string to this set.
+   *
+   * @param String aStr
+   */
+  ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {
+    var isDuplicate = this.has(aStr);
+    var idx = this._array.length;
+    if (!isDuplicate || aAllowDuplicates) {
+      this._array.push(aStr);
+    }
+    if (!isDuplicate) {
+      this._set[util.toSetString(aStr)] = idx;
+    }
+  };
 
-function isUndefined(arg) {
-  return arg === void 0;
-}
-exports.isUndefined = isUndefined;
+  /**
+   * Is the given string a member of this set?
+   *
+   * @param String aStr
+   */
+  ArraySet.prototype.has = function ArraySet_has(aStr) {
+    return Object.prototype.hasOwnProperty.call(this._set,
+                                                util.toSetString(aStr));
+  };
 
-function isRegExp(re) {
-  return objectToString(re) === '[object RegExp]';
-}
-exports.isRegExp = isRegExp;
+  /**
+   * What is the index of the given string in the array?
+   *
+   * @param String aStr
+   */
+  ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {
+    if (this.has(aStr)) {
+      return this._set[util.toSetString(aStr)];
+    }
+    throw new Error('"' + aStr + '" is not in the set.');
+  };
 
-function isObject(arg) {
-  return typeof arg === 'object' && arg !== null;
-}
-exports.isObject = isObject;
+  /**
+   * What is the element at the given index?
+   *
+   * @param Number aIdx
+   */
+  ArraySet.prototype.at = function ArraySet_at(aIdx) {
+    if (aIdx >= 0 && aIdx < this._array.length) {
+      return this._array[aIdx];
+    }
+    throw new Error('No element indexed by ' + aIdx);
+  };
 
-function isDate(d) {
-  return objectToString(d) === '[object Date]';
-}
-exports.isDate = isDate;
+  /**
+   * Returns the array representation of this set (which has the proper indices
+   * indicated by indexOf). Note that this is a copy of the internal array used
+   * for storing the members so that no one can mess with internal state.
+   */
+  ArraySet.prototype.toArray = function ArraySet_toArray() {
+    return this._array.slice();
+  };
 
-function isError(e) {
-  return (objectToString(e) === '[object Error]' || e instanceof Error);
-}
-exports.isError = isError;
+  exports.ArraySet = ArraySet;
 
-function isFunction(arg) {
-  return typeof arg === 'function';
-}
-exports.isFunction = isFunction;
+});
 
-function isPrimitive(arg) {
-  return arg === null ||
-         typeof arg === 'boolean' ||
-         typeof arg === 'number' ||
-         typeof arg === 'string' ||
-         typeof arg === 'symbol' ||  // ES6 symbol
-         typeof arg === 'undefined';
+},{"./util":77,"amdefine":1}],69:[function(require,module,exports){
+/* -*- Mode: js; js-indent-level: 2; -*- */
+/*
+ * Copyright 2011 Mozilla Foundation and contributors
+ * Licensed under the New BSD license. See LICENSE or:
+ * http://opensource.org/licenses/BSD-3-Clause
+ *
+ * Based on the Base 64 VLQ implementation in Closure Compiler:
+ * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java
+ *
+ * Copyright 2011 The Closure Compiler Authors. 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 Google Inc. 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.
+ */
+if (typeof define !== 'function') {
+    var define = require('amdefine')(module, require);
 }
-exports.isPrimitive = isPrimitive;
+define(function (require, exports, module) {
 
-exports.isBuffer = Buffer.isBuffer;
+  var base64 = require('./base64');
 
-function objectToString(o) {
-  return Object.prototype.toString.call(o);
-}
+  // A single base 64 digit can contain 6 bits of data. For the base 64 variable
+  // length quantities we use in the source map spec, the first bit is the sign,
+  // the next four bits are the actual value, and the 6th bit is the
+  // continuation bit. The continuation bit tells us whether there are more
+  // digits in this value following this digit.
+  //
+  //   Continuation
+  //   |    Sign
+  //   |    |
+  //   V    V
+  //   101011
 
-}).call(this,{"isBuffer":require("../../is-buffer/index.js")})
-},{"../../is-buffer/index.js":73}],68:[function(require,module,exports){
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// 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.
+  var VLQ_BASE_SHIFT = 5;
 
-function EventEmitter() {
-  this._events = this._events || {};
-  this._maxListeners = this._maxListeners || undefined;
-}
-module.exports = EventEmitter;
+  // binary: 100000
+  var VLQ_BASE = 1 << VLQ_BASE_SHIFT;
 
-// Backwards-compat with node 0.10.x
-EventEmitter.EventEmitter = EventEmitter;
+  // binary: 011111
+  var VLQ_BASE_MASK = VLQ_BASE - 1;
 
-EventEmitter.prototype._events = undefined;
-EventEmitter.prototype._maxListeners = undefined;
+  // binary: 100000
+  var VLQ_CONTINUATION_BIT = VLQ_BASE;
 
-// By default EventEmitters will print a warning if more than 10 listeners are
-// added to it. This is a useful default which helps finding memory leaks.
-EventEmitter.defaultMaxListeners = 10;
+  /**
+   * Converts from a two-complement value to a value where the sign bit is
+   * placed in the least significant bit.  For example, as decimals:
+   *   1 becomes 2 (10 binary), -1 becomes 3 (11 binary)
+   *   2 becomes 4 (100 binary), -2 becomes 5 (101 binary)
+   */
+  function toVLQSigned(aValue) {
+    return aValue < 0
+      ? ((-aValue) << 1) + 1
+      : (aValue << 1) + 0;
+  }
 
-// Obviously not all Emitters should be limited to 10. This function allows
-// that to be increased. Set to zero for unlimited.
-EventEmitter.prototype.setMaxListeners = function(n) {
-  if (!isNumber(n) || n < 0 || isNaN(n))
-    throw TypeError('n must be a positive number');
-  this._maxListeners = n;
-  return this;
-};
+  /**
+   * Converts to a two-complement value from a value where the sign bit is
+   * placed in the least significant bit.  For example, as decimals:
+   *   2 (10 binary) becomes 1, 3 (11 binary) becomes -1
+   *   4 (100 binary) becomes 2, 5 (101 binary) becomes -2
+   */
+  function fromVLQSigned(aValue) {
+    var isNegative = (aValue & 1) === 1;
+    var shifted = aValue >> 1;
+    return isNegative
+      ? -shifted
+      : shifted;
+  }
 
-EventEmitter.prototype.emit = function(type) {
-  var er, handler, len, args, i, listeners;
+  /**
+   * Returns the base 64 VLQ encoded value.
+   */
+  exports.encode = function base64VLQ_encode(aValue) {
+    var encoded = "";
+    var digit;
 
-  if (!this._events)
-    this._events = {};
+    var vlq = toVLQSigned(aValue);
 
-  // If there is no 'error' event listener then throw.
-  if (type === 'error') {
-    if (!this._events.error ||
-        (isObject(this._events.error) && !this._events.error.length)) {
-      er = arguments[1];
-      if (er instanceof Error) {
-        throw er; // Unhandled 'error' event
+    do {
+      digit = vlq & VLQ_BASE_MASK;
+      vlq >>>= VLQ_BASE_SHIFT;
+      if (vlq > 0) {
+        // There are still more digits in this value, so we must make sure the
+        // continuation bit is marked.
+        digit |= VLQ_CONTINUATION_BIT;
       }
-      throw TypeError('Uncaught, unspecified "error" event.');
-    }
-  }
+      encoded += base64.encode(digit);
+    } while (vlq > 0);
 
-  handler = this._events[type];
+    return encoded;
+  };
 
-  if (isUndefined(handler))
-    return false;
+  /**
+   * Decodes the next base 64 VLQ value from the given string and returns the
+   * value and the rest of the string via the out parameter.
+   */
+  exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {
+    var strLen = aStr.length;
+    var result = 0;
+    var shift = 0;
+    var continuation, digit;
 
-  if (isFunction(handler)) {
-    switch (arguments.length) {
-      // fast cases
-      case 1:
-        handler.call(this);
-        break;
-      case 2:
-        handler.call(this, arguments[1]);
-        break;
-      case 3:
-        handler.call(this, arguments[1], arguments[2]);
-        break;
-      // slower
-      default:
-        args = Array.prototype.slice.call(arguments, 1);
-        handler.apply(this, args);
-    }
-  } else if (isObject(handler)) {
-    args = Array.prototype.slice.call(arguments, 1);
-    listeners = handler.slice();
-    len = listeners.length;
-    for (i = 0; i < len; i++)
-      listeners[i].apply(this, args);
-  }
+    do {
+      if (aIndex >= strLen) {
+        throw new Error("Expected more digits in base 64 VLQ value.");
+      }
 
-  return true;
-};
+      digit = base64.decode(aStr.charCodeAt(aIndex++));
+      if (digit === -1) {
+        throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1));
+      }
 
-EventEmitter.prototype.addListener = function(type, listener) {
-  var m;
+      continuation = !!(digit & VLQ_CONTINUATION_BIT);
+      digit &= VLQ_BASE_MASK;
+      result = result + (digit << shift);
+      shift += VLQ_BASE_SHIFT;
+    } while (continuation);
 
-  if (!isFunction(listener))
-    throw TypeError('listener must be a function');
+    aOutParam.value = fromVLQSigned(result);
+    aOutParam.rest = aIndex;
+  };
 
-  if (!this._events)
-    this._events = {};
+});
 
-  // To avoid recursion in the case that type === "newListener"! Before
-  // adding it to the listeners, first emit "newListener".
-  if (this._events.newListener)
-    this.emit('newListener', type,
-              isFunction(listener.listener) ?
-              listener.listener : listener);
+},{"./base64":70,"amdefine":1}],70:[function(require,module,exports){
+/* -*- Mode: js; js-indent-level: 2; -*- */
+/*
+ * Copyright 2011 Mozilla Foundation and contributors
+ * Licensed under the New BSD license. See LICENSE or:
+ * http://opensource.org/licenses/BSD-3-Clause
+ */
+if (typeof define !== 'function') {
+    var define = require('amdefine')(module, require);
+}
+define(function (require, exports, module) {
 
-  if (!this._events[type])
-    // Optimize the case of one listener. Don't need the extra array object.
-    this._events[type] = listener;
-  else if (isObject(this._events[type]))
-    // If we've already got an array, just append.
-    this._events[type].push(listener);
-  else
-    // Adding the second element, need to change to array.
-    this._events[type] = [this._events[type], listener];
+  var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');
 
-  // Check for listener leak
-  if (isObject(this._events[type]) && !this._events[type].warned) {
-    if (!isUndefined(this._maxListeners)) {
-      m = this._maxListeners;
-    } else {
-      m = EventEmitter.defaultMaxListeners;
+  /**
+   * Encode an integer in the range of 0 to 63 to a single base 64 digit.
+   */
+  exports.encode = function (number) {
+    if (0 <= number && number < intToCharMap.length) {
+      return intToCharMap[number];
     }
+    throw new TypeError("Must be between 0 and 63: " + aNumber);
+  };
 
-    if (m && m > 0 && this._events[type].length > m) {
-      this._events[type].warned = true;
-      console.error('(node) warning: possible EventEmitter memory ' +
-                    'leak detected. %d listeners added. ' +
-                    'Use emitter.setMaxListeners() to increase limit.',
-                    this._events[type].length);
-      if (typeof console.trace === 'function') {
-        // not supported in IE 10
-        console.trace();
-      }
-    }
-  }
+  /**
+   * Decode a single base 64 character code digit to an integer. Returns -1 on
+   * failure.
+   */
+  exports.decode = function (charCode) {
+    var bigA = 65;     // 'A'
+    var bigZ = 90;     // 'Z'
 
-  return this;
-};
+    var littleA = 97;  // 'a'
+    var littleZ = 122; // 'z'
 
-EventEmitter.prototype.on = EventEmitter.prototype.addListener;
+    var zero = 48;     // '0'
+    var nine = 57;     // '9'
 
-EventEmitter.prototype.once = function(type, listener) {
-  if (!isFunction(listener))
-    throw TypeError('listener must be a function');
+    var plus = 43;     // '+'
+    var slash = 47;    // '/'
 
-  var fired = false;
+    var littleOffset = 26;
+    var numberOffset = 52;
 
-  function g() {
-    this.removeListener(type, g);
+    // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ
+    if (bigA <= charCode && charCode <= bigZ) {
+      return (charCode - bigA);
+    }
 
-    if (!fired) {
-      fired = true;
-      listener.apply(this, arguments);
+    // 26 - 51: abcdefghijklmnopqrstuvwxyz
+    if (littleA <= charCode && charCode <= littleZ) {
+      return (charCode - littleA + littleOffset);
     }
-  }
 
-  g.listener = listener;
-  this.on(type, g);
+    // 52 - 61: 0123456789
+    if (zero <= charCode && charCode <= nine) {
+      return (charCode - zero + numberOffset);
+    }
 
-  return this;
-};
+    // 62: +
+    if (charCode == plus) {
+      return 62;
+    }
 
-// emits a 'removeListener' event iff the listener was removed
-EventEmitter.prototype.removeListener = function(type, listener) {
-  var list, position, length, i;
+    // 63: /
+    if (charCode == slash) {
+      return 63;
+    }
 
-  if (!isFunction(listener))
-    throw TypeError('listener must be a function');
+    // Invalid base64 digit.
+    return -1;
+  };
 
-  if (!this._events || !this._events[type])
-    return this;
+});
 
-  list = this._events[type];
-  length = list.length;
-  position = -1;
+},{"amdefine":1}],71:[function(require,module,exports){
+/* -*- Mode: js; js-indent-level: 2; -*- */
+/*
+ * Copyright 2011 Mozilla Foundation and contributors
+ * Licensed under the New BSD license. See LICENSE or:
+ * http://opensource.org/licenses/BSD-3-Clause
+ */
+if (typeof define !== 'function') {
+    var define = require('amdefine')(module, require);
+}
+define(function (require, exports, module) {
 
-  if (list === listener ||
-      (isFunction(list.listener) && list.listener === listener)) {
-    delete this._events[type];
-    if (this._events.removeListener)
-      this.emit('removeListener', type, listener);
+  exports.GREATEST_LOWER_BOUND = 1;
+  exports.LEAST_UPPER_BOUND = 2;
 
-  } else if (isObject(list)) {
-    for (i = length; i-- > 0;) {
-      if (list[i] === listener ||
-          (list[i].listener && list[i].listener === listener)) {
-        position = i;
-        break;
+  /**
+   * Recursive implementation of binary search.
+   *
+   * @param aLow Indices here and lower do not contain the needle.
+   * @param aHigh Indices here and higher do not contain the needle.
+   * @param aNeedle The element being searched for.
+   * @param aHaystack The non-empty array being searched.
+   * @param aCompare Function which takes two elements and returns -1, 0, or 1.
+   * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or
+   *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the
+   *     closest element that is smaller than or greater than the one we are
+   *     searching for, respectively, if the exact element cannot be found.
+   */
+  function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {
+    // This function terminates when one of the following is true:
+    //
+    //   1. We find the exact element we are looking for.
+    //
+    //   2. We did not find the exact element, but we can return the index of
+    //      the next-closest element.
+    //
+    //   3. We did not find the exact element, and there is no next-closest
+    //      element than the one we are searching for, so we return -1.
+    var mid = Math.floor((aHigh - aLow) / 2) + aLow;
+    var cmp = aCompare(aNeedle, aHaystack[mid], true);
+    if (cmp === 0) {
+      // Found the element we are looking for.
+      return mid;
+    }
+    else if (cmp > 0) {
+      // Our needle is greater than aHaystack[mid].
+      if (aHigh - mid > 1) {
+        // The element is in the upper half.
+        return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);
+      }
+
+      // The exact needle element was not found in this haystack. Determine if
+      // we are in termination case (3) or (2) and return the appropriate thing.
+      if (aBias == exports.LEAST_UPPER_BOUND) {
+        return aHigh < aHaystack.length ? aHigh : -1;
+      } else {
+        return mid;
       }
     }
+    else {
+      // Our needle is less than aHaystack[mid].
+      if (mid - aLow > 1) {
+        // The element is in the lower half.
+        return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);
+      }
 
-    if (position < 0)
-      return this;
+      // we are in termination case (3) or (2) and return the appropriate thing.
+      if (aBias == exports.LEAST_UPPER_BOUND) {
+        return mid;
+      } else {
+        return aLow < 0 ? -1 : aLow;
+      }
+    }
+  }
 
-    if (list.length === 1) {
-      list.length = 0;
-      delete this._events[type];
-    } else {
-      list.splice(position, 1);
+  /**
+   * This is an implementation of binary search which will always try and return
+   * the index of the closest element if there is no exact hit. This is because
+   * mappings between original and generated line/col pairs are single points,
+   * and there is an implicit region between each of them, so a miss just means
+   * that you aren't on the very start of a region.
+   *
+   * @param aNeedle The element you are looking for.
+   * @param aHaystack The array that is being searched.
+   * @param aCompare A function which takes the needle and an element in the
+   *     array and returns -1, 0, or 1 depending on whether the needle is less
+   *     than, equal to, or greater than the element, respectively.
+   * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or
+   *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the
+   *     closest element that is smaller than or greater than the one we are
+   *     searching for, respectively, if the exact element cannot be found.
+   *     Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.
+   */
+  exports.search = function search(aNeedle, aHaystack, aCompare, aBias) {
+    if (aHaystack.length === 0) {
+      return -1;
     }
 
-    if (this._events.removeListener)
-      this.emit('removeListener', type, listener);
-  }
+    var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,
+                                aCompare, aBias || exports.GREATEST_LOWER_BOUND);
+    if (index < 0) {
+      return -1;
+    }
 
-  return this;
-};
+    // We have found either the exact element, or the next-closest element than
+    // the one we are searching for. However, there may be more than one such
+    // element. Make sure we always return the smallest of these.
+    while (index - 1 >= 0) {
+      if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {
+        break;
+      }
+      --index;
+    }
 
-EventEmitter.prototype.removeAllListeners = function(type) {
-  var key, listeners;
+    return index;
+  };
 
-  if (!this._events)
-    return this;
+});
 
-  // not listening for removeListener, no need to emit
-  if (!this._events.removeListener) {
-    if (arguments.length === 0)
-      this._events = {};
-    else if (this._events[type])
-      delete this._events[type];
-    return this;
-  }
+},{"amdefine":1}],72:[function(require,module,exports){
+/* -*- Mode: js; js-indent-level: 2; -*- */
+/*
+ * Copyright 2014 Mozilla Foundation and contributors
+ * Licensed under the New BSD license. See LICENSE or:
+ * http://opensource.org/licenses/BSD-3-Clause
+ */
+if (typeof define !== 'function') {
+    var define = require('amdefine')(module, require);
+}
+define(function (require, exports, module) {
 
-  // emit removeListener for all listeners on all events
-  if (arguments.length === 0) {
-    for (key in this._events) {
-      if (key === 'removeListener') continue;
-      this.removeAllListeners(key);
-    }
-    this.removeAllListeners('removeListener');
-    this._events = {};
-    return this;
-  }
+  var util = require('./util');
 
-  listeners = this._events[type];
+  /**
+   * Determine whether mappingB is after mappingA with respect to generated
+   * position.
+   */
+  function generatedPositionAfter(mappingA, mappingB) {
+    // Optimized for most common case
+    var lineA = mappingA.generatedLine;
+    var lineB = mappingB.generatedLine;
+    var columnA = mappingA.generatedColumn;
+    var columnB = mappingB.generatedColumn;
+    return lineB > lineA || lineB == lineA && columnB >= columnA ||
+           util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;
+  }
 
-  if (isFunction(listeners)) {
-    this.removeListener(type, listeners);
-  } else if (listeners) {
-    // LIFO order
-    while (listeners.length)
-      this.removeListener(type, listeners[listeners.length - 1]);
+  /**
+   * A data structure to provide a sorted view of accumulated mappings in a
+   * performance conscious manner. It trades a neglibable overhead in general
+   * case for a large speedup in case of mappings being added in order.
+   */
+  function MappingList() {
+    this._array = [];
+    this._sorted = true;
+    // Serves as infimum
+    this._last = {generatedLine: -1, generatedColumn: 0};
   }
-  delete this._events[type];
 
-  return this;
-};
+  /**
+   * Iterate through internal items. This method takes the same arguments that
+   * `Array.prototype.forEach` takes.
+   *
+   * NOTE: The order of the mappings is NOT guaranteed.
+   */
+  MappingList.prototype.unsortedForEach =
+    function MappingList_forEach(aCallback, aThisArg) {
+      this._array.forEach(aCallback, aThisArg);
+    };
 
-EventEmitter.prototype.listeners = function(type) {
-  var ret;
-  if (!this._events || !this._events[type])
-    ret = [];
-  else if (isFunction(this._events[type]))
-    ret = [this._events[type]];
-  else
-    ret = this._events[type].slice();
-  return ret;
-};
+  /**
+   * Add the given source mapping.
+   *
+   * @param Object aMapping
+   */
+  MappingList.prototype.add = function MappingList_add(aMapping) {
+    var mapping;
+    if (generatedPositionAfter(this._last, aMapping)) {
+      this._last = aMapping;
+      this._array.push(aMapping);
+    } else {
+      this._sorted = false;
+      this._array.push(aMapping);
+    }
+  };
 
-EventEmitter.prototype.listenerCount = function(type) {
-  if (this._events) {
-    var evlistener = this._events[type];
+  /**
+   * Returns the flat, sorted array of mappings. The mappings are sorted by
+   * generated position.
+   *
+   * WARNING: This method returns internal data without copying, for
+   * performance. The return value must NOT be mutated, and should be treated as
+   * an immutable borrow. If you want to take ownership, you must make your own
+   * copy.
+   */
+  MappingList.prototype.toArray = function MappingList_toArray() {
+    if (!this._sorted) {
+      this._array.sort(util.compareByGeneratedPositionsInflated);
+      this._sorted = true;
+    }
+    return this._array;
+  };
 
-    if (isFunction(evlistener))
-      return 1;
-    else if (evlistener)
-      return evlistener.length;
-  }
-  return 0;
-};
+  exports.MappingList = MappingList;
 
-EventEmitter.listenerCount = function(emitter, type) {
-  return emitter.listenerCount(type);
-};
+});
 
-function isFunction(arg) {
-  return typeof arg === 'function';
+},{"./util":77,"amdefine":1}],73:[function(require,module,exports){
+/* -*- Mode: js; js-indent-level: 2; -*- */
+/*
+ * Copyright 2011 Mozilla Foundation and contributors
+ * Licensed under the New BSD license. See LICENSE or:
+ * http://opensource.org/licenses/BSD-3-Clause
+ */
+if (typeof define !== 'function') {
+    var define = require('amdefine')(module, require);
 }
+define(function (require, exports, module) {
 
-function isNumber(arg) {
-  return typeof arg === 'number';
-}
+  // It turns out that some (most?) JavaScript engines don't self-host
+  // `Array.prototype.sort`. This makes sense because C++ will likely remain
+  // faster than JS when doing raw CPU-intensive sorting. However, when using a
+  // custom comparator function, calling back and forth between the VM's C++ and
+  // JIT'd JS is rather slow *and* loses JIT type information, resulting in
+  // worse generated code for the comparator function than would be optimal. In
+  // fact, when sorting with a comparator, these costs outweigh the benefits of
+  // sorting in C++. By using our own JS-implemented Quick Sort (below), we get
+  // a ~3500ms mean speed-up in `bench/bench.html`.
 
-function isObject(arg) {
-  return typeof arg === 'object' && arg !== null;
-}
+  /**
+   * Swap the elements indexed by `x` and `y` in the array `ary`.
+   *
+   * @param {Array} ary
+   *        The array.
+   * @param {Number} x
+   *        The index of the first item.
+   * @param {Number} y
+   *        The index of the second item.
+   */
+  function swap(ary, x, y) {
+    var temp = ary[x];
+    ary[x] = ary[y];
+    ary[y] = temp;
+  }
 
-function isUndefined(arg) {
-  return arg === void 0;
-}
+  /**
+   * Returns a random integer within the range `low .. high` inclusive.
+   *
+   * @param {Number} low
+   *        The lower bound on the range.
+   * @param {Number} high
+   *        The upper bound on the range.
+   */
+  function randomIntInRange(low, high) {
+    return Math.round(low + (Math.random() * (high - low)));
+  }
 
-},{}],69:[function(require,module,exports){
-(function (global){
-/*! https://mths.be/he v1.0.0 by @mathias | MIT license */
-;(function(root) {
+  /**
+   * The Quick Sort algorithm.
+   *
+   * @param {Array} ary
+   *        An array to sort.
+   * @param {function} comparator
+   *        Function to use to compare two items.
+   * @param {Number} p
+   *        Start index of the array
+   * @param {Number} r
+   *        End index of the array
+   */
+  function doQuickSort(ary, comparator, p, r) {
+    // If our lower bound is less than our upper bound, we (1) partition the
+    // array into two pieces and (2) recurse on each half. If it is not, this is
+    // the empty array and our base case.
 
-       // Detect free variables `exports`.
-       var freeExports = typeof exports == 'object' && exports;
+    if (p < r) {
+      // (1) Partitioning.
+      //
+      // The partitioning chooses a pivot between `p` and `r` and moves all
+      // elements that are less than or equal to the pivot to the before it, and
+      // all the elements that are greater than it after it. The effect is that
+      // once partition is done, the pivot is in the exact place it will be when
+      // the array is put in sorted order, and it will not need to be moved
+      // again. This runs in O(n) time.
 
-       // Detect free variable `module`.
-       var freeModule = typeof module == 'object' && module &&
-               module.exports == freeExports && module;
+      // Always choose a random pivot so that an input array which is reverse
+      // sorted does not cause O(n^2) running time.
+      var pivotIndex = randomIntInRange(p, r);
+      var i = p - 1;
 
-       // Detect free variable `global`, from Node.js or Browserified code,
-       // and use it as `root`.
-       var freeGlobal = typeof global == 'object' && global;
-       if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {
-               root = freeGlobal;
-       }
+      swap(ary, pivotIndex, r);
+      var pivot = ary[r];
 
-       /*--------------------------------------------------------------------------*/
+      // Immediately after `j` is incremented in this loop, the following hold
+      // true:
+      //
+      //   * Every element in `ary[p .. i]` is less than or equal to the pivot.
+      //
+      //   * Every element in `ary[i+1 .. j-1]` is greater than the pivot.
+      for (var j = p; j < r; j++) {
+        if (comparator(ary[j], pivot) <= 0) {
+          i += 1;
+          swap(ary, i, j);
+        }
+      }
 
-       // All astral symbols.
-       var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
-       // All ASCII symbols (not just printable ASCII) except those listed in the
-       // first column of the overrides table.
-       // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides
-       var regexAsciiWhitelist = /[\x01-\x7F]/g;
-       // All BMP symbols that are not ASCII newlines, printable ASCII symbols, or
-       // code points listed in the first column of the overrides table on
-       // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.
-       var regexBmpWhitelist = /[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g;
+      swap(ary, i + 1, j);
+      var q = i + 1;
 
-       var regexEncodeNonAscii = /<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g;
-       var encodeMap = {'\xAD':'shy','\u200C':'zwnj','\u200D':'zwj','\u200E':'lrm','\u2063':'ic','\u2062':'it','\u2061':'af','\u200F':'rlm','\u200B':'ZeroWidthSpace','\u2060':'NoBreak','\u0311':'DownBreve','\u20DB':'tdot','\u20DC':'DotDot','\t':'Tab','\n':'NewLine','\u2008':'puncsp','\u205F':'MediumSpace','\u2009':'thinsp','\u200A':'hairsp','\u2004':'emsp13','\u2002':'ensp','\u2005':'emsp14','\u2003':'emsp','\u2007':'numsp','\xA0':'nbsp','\u205F\u200A':'ThickSpace','\u203E':'oline','_':'lowbar','\u2010':'dash','\u2013':'ndash','\u2014':'mdash','\u2015':'horbar',',':'comma',';':'semi','\u204F':'bsemi',':':'colon','\u2A74':'Colone','!':'excl','\xA1':'iexcl','?':'quest','\xBF':'iquest','.':'period','\u2025':'nldr','\u2026':'mldr','\xB7':'middot','\'':'apos','\u2018':'lsquo','\u2019':'rsquo','\u201A':'sbquo','\u2039':'lsaquo','\u203A':'rsaquo','"':'quot','\u201C':'ldquo','\u201D':'rdquo','\u201E':'bdquo','\xAB':'laquo','\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\u2308':'lceil','\u2309':'rceil','\u230A':'lfloor','\u230B':'rfloor','\u2985':'lopar','\u2986':'ropar','\u298B':'lbrke','\u298C':'rbrke','\u298D':'lbrkslu','\u298E':'rbrksld','\u298F':'lbrksld','\u2990':'rbrkslu','\u2991':'langd','\u2992':'rangd','\u2993':'lparlt','\u2994':'rpargt','\u2995':'gtlPar','\u2996':'ltrPar','\u27E6':'lobrk','\u27E7':'robrk','\u27E8':'lang','\u27E9':'rang','\u27EA':'Lang','\u27EB':'Rang','\u27EC':'loang','\u27ED':'roang','\u2772':'lbbrk','\u2773':'rbbrk','\u2016':'Vert','\xA7':'sect','\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\u2030':'permil','\u2031':'pertenk','\u2020':'dagger','\u2021':'Dagger','\u2022':'bull','\u2043':'hybull','\u2032':'prime','\u2033':'Prime','\u2034':'tprime','\u2057':'qprime','\u2035':'bprime','\u2041':'caret','`':'grave','\xB4':'acute','\u02DC':'tilde','^':'Hat','\xAF':'macr','\u02D8':'breve','\u02D9':'dot','\xA8':'die','\u02DA':'ring','\u02DD':'dblac','\xB8':'cedil','\u02DB':'ogon','\u02C6':'circ','\u02C7':'caron','\xB0':'deg','\xA9':'copy','\xAE':'reg','\u2117':'copysr','\u2118':'wp','\u211E':'rx','\u2127':'mho','\u2129':'iiota','\u2190':'larr','\u219A':'nlarr','\u2192':'rarr','\u219B':'nrarr','\u2191':'uarr','\u2193':'darr','\u2194':'harr','\u21AE':'nharr','\u2195':'varr','\u2196':'nwarr','\u2197':'nearr','\u2198':'searr','\u2199':'swarr','\u219D':'rarrw','\u219D\u0338':'nrarrw','\u219E':'Larr','\u219F':'Uarr','\u21A0':'Rarr','\u21A1':'Darr','\u21A2':'larrtl','\u21A3':'rarrtl','\u21A4':'mapstoleft','\u21A5':'mapstoup','\u21A6':'map','\u21A7':'mapstodown','\u21A9':'larrhk','\u21AA':'rarrhk','\u21AB':'larrlp','\u21AC':'rarrlp','\u21AD':'harrw','\u21B0':'lsh','\u21B1':'rsh','\u21B2':'ldsh','\u21B3':'rdsh','\u21B5':'crarr','\u21B6':'cularr','\u21B7':'curarr','\u21BA':'olarr','\u21BB':'orarr','\u21BC':'lharu','\u21BD':'lhard','\u21BE':'uharr','\u21BF':'uharl','\u21C0':'rharu','\u21C1':'rhard','\u21C2':'dharr','\u21C3':'dharl','\u21C4':'rlarr','\u21C5':'udarr','\u21C6':'lrarr','\u21C7':'llarr','\u21C8':'uuarr','\u21C9':'rrarr','\u21CA':'ddarr','\u21CB':'lrhar','\u21CC':'rlhar','\u21D0':'lArr','\u21CD':'nlArr','\u21D1':'uArr','\u21D2':'rArr','\u21CF':'nrArr','\u21D3':'dArr','\u21D4':'iff','\u21CE':'nhArr','\u21D5':'vArr','\u21D6':'nwArr','\u21D7':'neArr','\u21D8':'seArr','\u21D9':'swArr','\u21DA':'lAarr','\u21DB':'rAarr','\u21DD':'zigrarr','\u21E4':'larrb','\u21E5':'rarrb','\u21F5':'duarr','\u21FD':'loarr','\u21FE':'roarr','\u21FF':'hoarr','\u2200':'forall','\u2201':'comp','\u2202':'part','\u2202\u0338':'npart','\u2203':'exist','\u2204':'nexist','\u2205':'empty','\u2207':'Del','\u2208':'in','\u2209':'notin','\u220B':'ni','\u220C':'notni','\u03F6':'bepsi','\u220F':'prod','\u2210':'coprod','\u2211':'sum','+':'plus','\xB1':'pm','\xF7':'div','\xD7':'times','<':'lt','\u226E':'nlt','<\u20D2':'nvlt','=':'equals','\u2260':'ne','=\u20E5':'bne','\u2A75':'Equal','>':'gt','\u226F':'ngt','>\u20D2':'nvgt','\xAC':'not','|':'vert','\xA6':'brvbar','\u2212':'minus','\u2213':'mp','\u2214':'plusdo','\u2044':'frasl','\u2216':'setmn','\u2217':'lowast','\u2218':'compfn','\u221A':'Sqrt','\u221D':'prop','\u221E':'infin','\u221F':'angrt','\u2220':'ang','\u2220\u20D2':'nang','\u2221':'angmsd','\u2222':'angsph','\u2223':'mid','\u2224':'nmid','\u2225':'par','\u2226':'npar','\u2227':'and','\u2228':'or','\u2229':'cap','\u2229\uFE00':'caps','\u222A':'cup','\u222A\uFE00':'cups','\u222B':'int','\u222C':'Int','\u222D':'tint','\u2A0C':'qint','\u222E':'oint','\u222F':'Conint','\u2230':'Cconint','\u2231':'cwint','\u2232':'cwconint','\u2233':'awconint','\u2234':'there4','\u2235':'becaus','\u2236':'ratio','\u2237':'Colon','\u2238':'minusd','\u223A':'mDDot','\u223B':'homtht','\u223C':'sim','\u2241':'nsim','\u223C\u20D2':'nvsim','\u223D':'bsim','\u223D\u0331':'race','\u223E':'ac','\u223E\u0333':'acE','\u223F':'acd','\u2240':'wr','\u2242':'esim','\u2242\u0338':'nesim','\u2243':'sime','\u2244':'nsime','\u2245':'cong','\u2247':'ncong','\u2246':'simne','\u2248':'ap','\u2249':'nap','\u224A':'ape','\u224B':'apid','\u224B\u0338':'napid','\u224C':'bcong','\u224D':'CupCap','\u226D':'NotCupCap','\u224D\u20D2':'nvap','\u224E':'bump','\u224E\u0338':'nbump','\u224F':'bumpe','\u224F\u0338':'nbumpe','\u2250':'doteq','\u2250\u0338':'nedot','\u2251':'eDot','\u2252':'efDot','\u2253':'erDot','\u2254':'colone','\u2255':'ecolon','\u2256':'ecir','\u2257':'cire','\u2259':'wedgeq','\u225A':'veeeq','\u225C':'trie','\u225F':'equest','\u2261':'equiv','\u2262':'nequiv','\u2261\u20E5':'bnequiv','\u2264':'le','\u2270':'nle','\u2264\u20D2':'nvle','\u2265':'ge','\u2271':'nge','\u2265\u20D2':'nvge','\u2266':'lE','\u2266\u0338':'nlE','\u2267':'gE','\u2267\u0338':'ngE','\u2268\uFE00':'lvnE','\u2268':'lnE','\u2269':'gnE','\u2269\uFE00':'gvnE','\u226A':'ll','\u226A\u0338':'nLtv','\u226A\u20D2':'nLt','\u226B':'gg','\u226B\u0338':'nGtv','\u226B\u20D2':'nGt','\u226C':'twixt','\u2272':'lsim','\u2274':'nlsim','\u2273':'gsim','\u2275':'ngsim','\u2276':'lg','\u2278':'ntlg','\u2277':'gl','\u2279':'ntgl','\u227A':'pr','\u2280':'npr','\u227B':'sc','\u2281':'nsc','\u227C':'prcue','\u22E0':'nprcue','\u227D':'sccue','\u22E1':'nsccue','\u227E':'prsim','\u227F':'scsim','\u227F\u0338':'NotSucceedsTilde','\u2282':'sub','\u2284':'nsub','\u2282\u20D2':'vnsub','\u2283':'sup','\u2285':'nsup','\u2283\u20D2':'vnsup','\u2286':'sube','\u2288':'nsube','\u2287':'supe','\u2289':'nsupe','\u228A\uFE00':'vsubne','\u228A':'subne','\u228B\uFE00':'vsupne','\u228B':'supne','\u228D':'cupdot','\u228E':'uplus','\u228F':'sqsub','\u228F\u0338':'NotSquareSubset','\u2290':'sqsup','\u2290\u0338':'NotSquareSuperset','\u2291':'sqsube','\u22E2':'nsqsube','\u2292':'sqsupe','\u22E3':'nsqsupe','\u2293':'sqcap','\u2293\uFE00':'sqcaps','\u2294':'sqcup','\u2294\uFE00':'sqcups','\u2295':'oplus','\u2296':'ominus','\u2297':'otimes','\u2298':'osol','\u2299':'odot','\u229A':'ocir','\u229B':'oast','\u229D':'odash','\u229E':'plusb','\u229F':'minusb','\u22A0':'timesb','\u22A1':'sdotb','\u22A2':'vdash','\u22AC':'nvdash','\u22A3':'dashv','\u22A4':'top','\u22A5':'bot','\u22A7':'models','\u22A8':'vDash','\u22AD':'nvDash','\u22A9':'Vdash','\u22AE':'nVdash','\u22AA':'Vvdash','\u22AB':'VDash','\u22AF':'nVDash','\u22B0':'prurel','\u22B2':'vltri','\u22EA':'nltri','\u22B3':'vrtri','\u22EB':'nrtri','\u22B4':'ltrie','\u22EC':'nltrie','\u22B4\u20D2':'nvltrie','\u22B5':'rtrie','\u22ED':'nrtrie','\u22B5\u20D2':'nvrtrie','\u22B6':'origof','\u22B7':'imof','\u22B8':'mumap','\u22B9':'hercon','\u22BA':'intcal','\u22BB':'veebar','\u22BD':'barvee','\u22BE':'angrtvb','\u22BF':'lrtri','\u22C0':'Wedge','\u22C1':'Vee','\u22C2':'xcap','\u22C3':'xcup','\u22C4':'diam','\u22C5':'sdot','\u22C6':'Star','\u22C7':'divonx','\u22C8':'bowtie','\u22C9':'ltimes','\u22CA':'rtimes','\u22CB':'lthree','\u22CC':'rthree','\u22CD':'bsime','\u22CE':'cuvee','\u22CF':'cuwed','\u22D0':'Sub','\u22D1':'Sup','\u22D2':'Cap','\u22D3':'Cup','\u22D4':'fork','\u22D5':'epar','\u22D6':'ltdot','\u22D7':'gtdot','\u22D8':'Ll','\u22D8\u0338':'nLl','\u22D9':'Gg','\u22D9\u0338':'nGg','\u22DA\uFE00':'lesg','\u22DA':'leg','\u22DB':'gel','\u22DB\uFE00':'gesl','\u22DE':'cuepr','\u22DF':'cuesc','\u22E6':'lnsim','\u22E7':'gnsim','\u22E8':'prnsim','\u22E9':'scnsim','\u22EE':'vellip','\u22EF':'ctdot','\u22F0':'utdot','\u22F1':'dtdot','\u22F2':'disin','\u22F3':'isinsv','\u22F4':'isins','\u22F5':'isindot','\u22F5\u0338':'notindot','\u22F6':'notinvc','\u22F7':'notinvb','\u22F9':'isinE','\u22F9\u0338':'notinE','\u22FA':'nisd','\u22FB':'xnis','\u22FC':'nis','\u22FD':'notnivc','\u22FE':'notnivb','\u2305':'barwed','\u2306':'Barwed','\u230C':'drcrop','\u230D':'dlcrop','\u230E':'urcrop','\u230F':'ulcrop','\u2310':'bnot','\u2312':'profline','\u2313':'profsurf','\u2315':'telrec','\u2316':'target','\u231C':'ulcorn','\u231D':'urcorn','\u231E':'dlcorn','\u231F':'drcorn','\u2322':'frown','\u2323':'smile','\u232D':'cylcty','\u232E':'profalar','\u2336':'topbot','\u233D':'ovbar','\u233F':'solbar','\u237C':'angzarr','\u23B0':'lmoust','\u23B1':'rmoust','\u23B4':'tbrk','\u23B5':'bbrk','\u23B6':'bbrktbrk','\u23DC':'OverParenthesis','\u23DD':'UnderParenthesis','\u23DE':'OverBrace','\u23DF':'UnderBrace','\u23E2':'trpezium','\u23E7':'elinters','\u2423':'blank','\u2500':'boxh','\u2502':'boxv','\u250C':'boxdr','\u2510':'boxdl','\u2514':'boxur','\u2518':'boxul','\u251C':'boxvr','\u2524':'boxvl','\u252C':'boxhd','\u2534':'boxhu','\u253C':'boxvh','\u2550':'boxH','\u2551':'boxV','\u2552':'boxdR','\u2553':'boxDr','\u2554':'boxDR','\u2555':'boxdL','\u2556':'boxDl','\u2557':'boxDL','\u2558':'boxuR','\u2559':'boxUr','\u255A':'boxUR','\u255B':'boxuL','\u255C':'boxUl','\u255D':'boxUL','\u255E':'boxvR','\u255F':'boxVr','\u2560':'boxVR','\u2561':'boxvL','\u2562':'boxVl','\u2563':'boxVL','\u2564':'boxHd','\u2565':'boxhD','\u2566':'boxHD','\u2567':'boxHu','\u2568':'boxhU','\u2569':'boxHU','\u256A':'boxvH','\u256B':'boxVh','\u256C':'boxVH','\u2580':'uhblk','\u2584':'lhblk','\u2588':'block','\u2591':'blk14','\u2592':'blk12','\u2593':'blk34','\u25A1':'squ','\u25AA':'squf','\u25AB':'EmptyVerySmallSquare','\u25AD':'rect','\u25AE':'marker','\u25B1':'fltns','\u25B3':'xutri','\u25B4':'utrif','\u25B5':'utri','\u25B8':'rtrif','\u25B9':'rtri','\u25BD':'xdtri','\u25BE':'dtrif','\u25BF':'dtri','\u25C2':'ltrif','\u25C3':'ltri','\u25CA':'loz','\u25CB':'cir','\u25EC':'tridot','\u25EF':'xcirc','\u25F8':'ultri','\u25F9':'urtri','\u25FA':'lltri','\u25FB':'EmptySmallSquare','\u25FC':'FilledSmallSquare','\u2605':'starf','\u2606':'star','\u260E':'phone','\u2640':'female','\u2642':'male','\u2660':'spades','\u2663':'clubs','\u2665':'hearts','\u2666':'diams','\u266A':'sung','\u2713':'check','\u2717':'cross','\u2720':'malt','\u2736':'sext','\u2758':'VerticalSeparator','\u27C8':'bsolhsub','\u27C9':'suphsol','\u27F5':'xlarr','\u27F6':'xrarr','\u27F7':'xharr','\u27F8':'xlArr','\u27F9':'xrArr','\u27FA':'xhArr','\u27FC':'xmap','\u27FF':'dzigrarr','\u2902':'nvlArr','\u2903':'nvrArr','\u2904':'nvHarr','\u2905':'Map','\u290C':'lbarr','\u290D':'rbarr','\u290E':'lBarr','\u290F':'rBarr','\u2910':'RBarr','\u2911':'DDotrahd','\u2912':'UpArrowBar','\u2913':'DownArrowBar','\u2916':'Rarrtl','\u2919':'latail','\u291A':'ratail','\u291B':'lAtail','\u291C':'rAtail','\u291D':'larrfs','\u291E':'rarrfs','\u291F':'larrbfs','\u2920':'rarrbfs','\u2923':'nwarhk','\u2924':'nearhk','\u2925':'searhk','\u2926':'swarhk','\u2927':'nwnear','\u2928':'toea','\u2929':'tosa','\u292A':'swnwar','\u2933':'rarrc','\u2933\u0338':'nrarrc','\u2935':'cudarrr','\u2936':'ldca','\u2937':'rdca','\u2938':'cudarrl','\u2939':'larrpl','\u293C':'curarrm','\u293D':'cularrp','\u2945':'rarrpl','\u2948':'harrcir','\u2949':'Uarrocir','\u294A':'lurdshar','\u294B':'ldrushar','\u294E':'LeftRightVector','\u294F':'RightUpDownVector','\u2950':'DownLeftRightVector','\u2951':'LeftUpDownVector','\u2952':'LeftVectorBar','\u2953':'RightVectorBar','\u2954':'RightUpVectorBar','\u2955':'RightDownVectorBar','\u2956':'DownLeftVectorBar','\u2957':'DownRightVectorBar','\u2958':'LeftUpVectorBar','\u2959':'LeftDownVectorBar','\u295A':'LeftTeeVector','\u295B':'RightTeeVector','\u295C':'RightUpTeeVector','\u295D':'RightDownTeeVector','\u295E':'DownLeftTeeVector','\u295F':'DownRightTeeVector','\u2960':'LeftUpTeeVector','\u2961':'LeftDownTeeVector','\u2962':'lHar','\u2963':'uHar','\u2964':'rHar','\u2965':'dHar','\u2966':'luruhar','\u2967':'ldrdhar','\u2968':'ruluhar','\u2969':'rdldhar','\u296A':'lharul','\u296B':'llhard','\u296C':'rharul','\u296D':'lrhard','\u296E':'udhar','\u296F':'duhar','\u2970':'RoundImplies','\u2971':'erarr','\u2972':'simrarr','\u2973':'larrsim','\u2974':'rarrsim','\u2975':'rarrap','\u2976':'ltlarr','\u2978':'gtrarr','\u2979':'subrarr','\u297B':'suplarr','\u297C':'lfisht','\u297D':'rfisht','\u297E':'ufisht','\u297F':'dfisht','\u299A':'vzigzag','\u299C':'vangrt','\u299D':'angrtvbd','\u29A4':'ange','\u29A5':'range','\u29A6':'dwangle','\u29A7':'uwangle','\u29A8':'angmsdaa','\u29A9':'angmsdab','\u29AA':'angmsdac','\u29AB':'angmsdad','\u29AC':'angmsdae','\u29AD':'angmsdaf','\u29AE':'angmsdag','\u29AF':'angmsdah','\u29B0':'bemptyv','\u29B1':'demptyv','\u29B2':'cemptyv','\u29B3':'raemptyv','\u29B4':'laemptyv','\u29B5':'ohbar','\u29B6':'omid','\u29B7':'opar','\u29B9':'operp','\u29BB':'olcross','\u29BC':'odsold','\u29BE':'olcir','\u29BF':'ofcir','\u29C0':'olt','\u29C1':'ogt','\u29C2':'cirscir','\u29C3':'cirE','\u29C4':'solb','\u29C5':'bsolb','\u29C9':'boxbox','\u29CD':'trisb','\u29CE':'rtriltri','\u29CF':'LeftTriangleBar','\u29CF\u0338':'NotLeftTriangleBar','\u29D0':'RightTriangleBar','\u29D0\u0338':'NotRightTriangleBar','\u29DC':'iinfin','\u29DD':'infintie','\u29DE':'nvinfin','\u29E3':'eparsl','\u29E4':'smeparsl','\u29E5':'eqvparsl','\u29EB':'lozf','\u29F4':'RuleDelayed','\u29F6':'dsol','\u2A00':'xodot','\u2A01':'xoplus','\u2A02':'xotime','\u2A04':'xuplus','\u2A06':'xsqcup','\u2A0D':'fpartint','\u2A10':'cirfnint','\u2A11':'awint','\u2A12':'rppolint','\u2A13':'scpolint','\u2A14':'npolint','\u2A15':'pointint','\u2A16':'quatint','\u2A17':'intlarhk','\u2A22':'pluscir','\u2A23':'plusacir','\u2A24':'simplus','\u2A25':'plusdu','\u2A26':'plussim','\u2A27':'plustwo','\u2A29':'mcomma','\u2A2A':'minusdu','\u2A2D':'loplus','\u2A2E':'roplus','\u2A2F':'Cross','\u2A30':'timesd','\u2A31':'timesbar','\u2A33':'smashp','\u2A34':'lotimes','\u2A35':'rotimes','\u2A36':'otimesas','\u2A37':'Otimes','\u2A38':'odiv','\u2A39':'triplus','\u2A3A':'triminus','\u2A3B':'tritime','\u2A3C':'iprod','\u2A3F':'amalg','\u2A40':'capdot','\u2A42':'ncup','\u2A43':'ncap','\u2A44':'capand','\u2A45':'cupor','\u2A46':'cupcap','\u2A47':'capcup','\u2A48':'cupbrcap','\u2A49':'capbrcup','\u2A4A':'cupcup','\u2A4B':'capcap','\u2A4C':'ccups','\u2A4D':'ccaps','\u2A50':'ccupssm','\u2A53':'And','\u2A54':'Or','\u2A55':'andand','\u2A56':'oror','\u2A57':'orslope','\u2A58':'andslope','\u2A5A':'andv','\u2A5B':'orv','\u2A5C':'andd','\u2A5D':'ord','\u2A5F':'wedbar','\u2A66':'sdote','\u2A6A':'simdot','\u2A6D':'congdot','\u2A6D\u0338':'ncongdot','\u2A6E':'easter','\u2A6F':'apacir','\u2A70':'apE','\u2A70\u0338':'napE','\u2A71':'eplus','\u2A72':'pluse','\u2A73':'Esim','\u2A77':'eDDot','\u2A78':'equivDD','\u2A79':'ltcir','\u2A7A':'gtcir','\u2A7B':'ltquest','\u2A7C':'gtquest','\u2A7D':'les','\u2A7D\u0338':'nles','\u2A7E':'ges','\u2A7E\u0338':'nges','\u2A7F':'lesdot','\u2A80':'gesdot','\u2A81':'lesdoto','\u2A82':'gesdoto','\u2A83':'lesdotor','\u2A84':'gesdotol','\u2A85':'lap','\u2A86':'gap','\u2A87':'lne','\u2A88':'gne','\u2A89':'lnap','\u2A8A':'gnap','\u2A8B':'lEg','\u2A8C':'gEl','\u2A8D':'lsime','\u2A8E':'gsime','\u2A8F':'lsimg','\u2A90':'gsiml','\u2A91':'lgE','\u2A92':'glE','\u2A93':'lesges','\u2A94':'gesles','\u2A95':'els','\u2A96':'egs','\u2A97':'elsdot','\u2A98':'egsdot','\u2A99':'el','\u2A9A':'eg','\u2A9D':'siml','\u2A9E':'simg','\u2A9F':'simlE','\u2AA0':'simgE','\u2AA1':'LessLess','\u2AA1\u0338':'NotNestedLessLess','\u2AA2':'GreaterGreater','\u2AA2\u0338':'NotNestedGreaterGreater','\u2AA4':'glj','\u2AA5':'gla','\u2AA6':'ltcc','\u2AA7':'gtcc','\u2AA8':'lescc','\u2AA9':'gescc','\u2AAA':'smt','\u2AAB':'lat','\u2AAC':'smte','\u2AAC\uFE00':'smtes','\u2AAD':'late','\u2AAD\uFE00':'lates','\u2AAE':'bumpE','\u2AAF':'pre','\u2AAF\u0338':'npre','\u2AB0':'sce','\u2AB0\u0338':'nsce','\u2AB3':'prE','\u2AB4':'scE','\u2AB5':'prnE','\u2AB6':'scnE','\u2AB7':'prap','\u2AB8':'scap','\u2AB9':'prnap','\u2ABA':'scnap','\u2ABB':'Pr','\u2ABC':'Sc','\u2ABD':'subdot','\u2ABE':'supdot','\u2ABF':'subplus','\u2AC0':'supplus','\u2AC1':'submult','\u2AC2':'supmult','\u2AC3':'subedot','\u2AC4':'supedot','\u2AC5':'subE','\u2AC5\u0338':'nsubE','\u2AC6':'supE','\u2AC6\u0338':'nsupE','\u2AC7':'subsim','\u2AC8':'supsim','\u2ACB\uFE00':'vsubnE','\u2ACB':'subnE','\u2ACC\uFE00':'vsupnE','\u2ACC':'supnE','\u2ACF':'csub','\u2AD0':'csup','\u2AD1':'csube','\u2AD2':'csupe','\u2AD3':'subsup','\u2AD4':'supsub','\u2AD5':'subsub','\u2AD6':'supsup','\u2AD7':'suphsub','\u2AD8':'supdsub','\u2AD9':'forkv','\u2ADA':'topfork','\u2ADB':'mlcp','\u2AE4':'Dashv','\u2AE6':'Vdashl','\u2AE7':'Barv','\u2AE8':'vBar','\u2AE9':'vBarv','\u2AEB':'Vbar','\u2AEC':'Not','\u2AED':'bNot','\u2AEE':'rnmid','\u2AEF':'cirmid','\u2AF0':'midcir','\u2AF1':'topcir','\u2AF2':'nhpar','\u2AF3':'parsim','\u2AFD':'parsl','\u2AFD\u20E5':'nparsl','\u266D':'flat','\u266E':'natur','\u266F':'sharp','\xA4':'curren','\xA2':'cent','$':'dollar','\xA3':'pound','\xA5':'yen','\u20AC':'euro','\xB9':'sup1','\xBD':'half','\u2153':'frac13','\xBC':'frac14','\u2155':'frac15','\u2159':'frac16','\u215B':'frac18','\xB2':'sup2','\u2154':'frac23','\u2156':'frac25','\xB3':'sup3','\xBE':'frac34','\u2157':'frac35','\u215C':'frac38','\u2158':'frac45','\u215A':'frac56','\u215D':'frac58','\u215E':'frac78','\uD835\uDCB6':'ascr','\uD835\uDD52':'aopf','\uD835\uDD1E':'afr','\uD835\uDD38':'Aopf','\uD835\uDD04':'Afr','\uD835\uDC9C':'Ascr','\xAA':'ordf','\xE1':'aacute','\xC1':'Aacute','\xE0':'agrave','\xC0':'Agrave','\u0103':'abreve','\u0102':'Abreve','\xE2':'acirc','\xC2':'Acirc','\xE5':'aring','\xC5':'angst','\xE4':'auml','\xC4':'Auml','\xE3':'atilde','\xC3':'Atilde','\u0105':'aogon','\u0104':'Aogon','\u0101':'amacr','\u0100':'Amacr','\xE6':'aelig','\xC6':'AElig','\uD835\uDCB7':'bscr','\uD835\uDD53':'bopf','\uD835\uDD1F':'bfr','\uD835\uDD39':'Bopf','\u212C':'Bscr','\uD835\uDD05':'Bfr','\uD835\uDD20':'cfr','\uD835\uDCB8':'cscr','\uD835\uDD54':'copf','\u212D':'Cfr','\uD835\uDC9E':'Cscr','\u2102':'Copf','\u0107':'cacute','\u0106':'Cacute','\u0109':'ccirc','\u0108':'Ccirc','\u010D':'ccaron','\u010C':'Ccaron','\u010B':'cdot','\u010A':'Cdot','\xE7':'ccedil','\xC7':'Ccedil','\u2105':'incare','\uD835\uDD21':'dfr','\u2146':'dd','\uD835\uDD55':'dopf','\uD835\uDCB9':'dscr','\uD835\uDC9F':'Dscr','\uD835\uDD07':'Dfr','\u2145':'DD','\uD835\uDD3B':'Dopf','\u010F':'dcaron','\u010E':'Dcaron','\u0111':'dstrok','\u0110':'Dstrok','\xF0':'eth','\xD0':'ETH','\u2147':'ee','\u212F':'escr','\uD835\uDD22':'efr','\uD835\uDD56':'eopf','\u2130':'Escr','\uD835\uDD08':'Efr','\uD835\uDD3C':'Eopf','\xE9':'eacute','\xC9':'Eacute','\xE8':'egrave','\xC8':'Egrave','\xEA':'ecirc','\xCA':'Ecirc','\u011B':'ecaron','\u011A':'Ecaron','\xEB':'euml','\xCB':'Euml','\u0117':'edot','\u0116':'Edot','\u0119':'eogon','\u0118':'Eogon','\u0113':'emacr','\u0112':'Emacr','\uD835\uDD23':'ffr','\uD835\uDD57':'fopf','\uD835\uDCBB':'fscr','\uD835\uDD09':'Ffr','\uD835\uDD3D':'Fopf','\u2131':'Fscr','\uFB00':'fflig','\uFB03':'ffilig','\uFB04':'ffllig','\uFB01':'filig','fj':'fjlig','\uFB02':'fllig','\u0192':'fnof','\u210A':'gscr','\uD835\uDD58':'gopf','\uD835\uDD24':'gfr','\uD835\uDCA2':'Gscr','\uD835\uDD3E':'Gopf','\uD835\uDD0A':'Gfr','\u01F5':'gacute','\u011F':'gbreve','\u011E':'Gbreve','\u011D':'gcirc','\u011C':'Gcirc','\u0121':'gdot','\u0120':'Gdot','\u0122':'Gcedil','\uD835\uDD25':'hfr','\u210E':'planckh','\uD835\uDCBD':'hscr','\uD835\uDD59':'hopf','\u210B':'Hscr','\u210C':'Hfr','\u210D':'Hopf','\u0125':'hcirc','\u0124':'Hcirc','\u210F':'hbar','\u0127':'hstrok','\u0126':'Hstrok','\uD835\uDD5A':'iopf','\uD835\uDD26':'ifr','\uD835\uDCBE':'iscr','\u2148':'ii','\uD835\uDD40':'Iopf','\u2110':'Iscr','\u2111':'Im','\xED':'iacute','\xCD':'Iacute','\xEC':'igrave','\xCC':'Igrave','\xEE':'icirc','\xCE':'Icirc','\xEF':'iuml','\xCF':'Iuml','\u0129':'itilde','\u0128':'Itilde','\u0130':'Idot','\u012F':'iogon','\u012E':'Iogon','\u012B':'imacr','\u012A':'Imacr','\u0133':'ijlig','\u0132':'IJlig','\u0131':'imath','\uD835\uDCBF':'jscr','\uD835\uDD5B':'jopf','\uD835\uDD27':'jfr','\uD835\uDCA5':'Jscr','\uD835\uDD0D':'Jfr','\uD835\uDD41':'Jopf','\u0135':'jcirc','\u0134':'Jcirc','\u0237':'jmath','\uD835\uDD5C':'kopf','\uD835\uDCC0':'kscr','\uD835\uDD28':'kfr','\uD835\uDCA6':'Kscr','\uD835\uDD42':'Kopf','\uD835\uDD0E':'Kfr','\u0137':'kcedil','\u0136':'Kcedil','\uD835\uDD29':'lfr','\uD835\uDCC1':'lscr','\u2113':'ell','\uD835\uDD5D':'lopf','\u2112':'Lscr','\uD835\uDD0F':'Lfr','\uD835\uDD43':'Lopf','\u013A':'lacute','\u0139':'Lacute','\u013E':'lcaron','\u013D':'Lcaron','\u013C':'lcedil','\u013B':'Lcedil','\u0142':'lstrok','\u0141':'Lstrok','\u0140':'lmidot','\u013F':'Lmidot','\uD835\uDD2A':'mfr','\uD835\uDD5E':'mopf','\uD835\uDCC2':'mscr','\uD835\uDD10':'Mfr','\uD835\uDD44':'Mopf','\u2133':'Mscr','\uD835\uDD2B':'nfr','\uD835\uDD5F':'nopf','\uD835\uDCC3':'nscr','\u2115':'Nopf','\uD835\uDCA9':'Nscr','\uD835\uDD11':'Nfr','\u0144':'nacute','\u0143':'Nacute','\u0148':'ncaron','\u0147':'Ncaron','\xF1':'ntilde','\xD1':'Ntilde','\u0146':'ncedil','\u0145':'Ncedil','\u2116':'numero','\u014B':'eng','\u014A':'ENG','\uD835\uDD60':'oopf','\uD835\uDD2C':'ofr','\u2134':'oscr','\uD835\uDCAA':'Oscr','\uD835\uDD12':'Ofr','\uD835\uDD46':'Oopf','\xBA':'ordm','\xF3':'oacute','\xD3':'Oacute','\xF2':'ograve','\xD2':'Ograve','\xF4':'ocirc','\xD4':'Ocirc','\xF6':'ouml','\xD6':'Ouml','\u0151':'odblac','\u0150':'Odblac','\xF5':'otilde','\xD5':'Otilde','\xF8':'oslash','\xD8':'Oslash','\u014D':'omacr','\u014C':'Omacr','\u0153':'oelig','\u0152':'OElig','\uD835\uDD2D':'pfr','\uD835\uDCC5':'pscr','\uD835\uDD61':'popf','\u2119':'Popf','\uD835\uDD13':'Pfr','\uD835\uDCAB':'Pscr','\uD835\uDD62':'qopf','\uD835\uDD2E':'qfr','\uD835\uDCC6':'qscr','\uD835\uDCAC':'Qscr','\uD835\uDD14':'Qfr','\u211A':'Qopf','\u0138':'kgreen','\uD835\uDD2F':'rfr','\uD835\uDD63':'ropf','\uD835\uDCC7':'rscr','\u211B':'Rscr','\u211C':'Re','\u211D':'Ropf','\u0155':'racute','\u0154':'Racute','\u0159':'rcaron','\u0158':'Rcaron','\u0157':'rcedil','\u0156':'Rcedil','\uD835\uDD64':'sopf','\uD835\uDCC8':'sscr','\uD835\uDD30':'sfr','\uD835\uDD4A':'Sopf','\uD835\uDD16':'Sfr','\uD835\uDCAE':'Sscr','\u24C8':'oS','\u015B':'sacute','\u015A':'Sacute','\u015D':'scirc','\u015C':'Scirc','\u0161':'scaron','\u0160':'Scaron','\u015F':'scedil','\u015E':'Scedil','\xDF':'szlig','\uD835\uDD31':'tfr','\uD835\uDCC9':'tscr','\uD835\uDD65':'topf','\uD835\uDCAF':'Tscr','\uD835\uDD17':'Tfr','\uD835\uDD4B':'Topf','\u0165':'tcaron','\u0164':'Tcaron','\u0163':'tcedil','\u0162':'Tcedil','\u2122':'trade','\u0167':'tstrok','\u0166':'Tstrok','\uD835\uDCCA':'uscr','\uD835\uDD66':'uopf','\uD835\uDD32':'ufr','\uD835\uDD4C':'Uopf','\uD835\uDD18':'Ufr','\uD835\uDCB0':'Uscr','\xFA':'uacute','\xDA':'Uacute','\xF9':'ugrave','\xD9':'Ugrave','\u016D':'ubreve','\u016C':'Ubreve','\xFB':'ucirc','\xDB':'Ucirc','\u016F':'uring','\u016E':'Uring','\xFC':'uuml','\xDC':'Uuml','\u0171':'udblac','\u0170':'Udblac','\u0169':'utilde','\u0168':'Utilde','\u0173':'uogon','\u0172':'Uogon','\u016B':'umacr','\u016A':'Umacr','\uD835\uDD33':'vfr','\uD835\uDD67':'vopf','\uD835\uDCCB':'vscr','\uD835\uDD19':'Vfr','\uD835\uDD4D':'Vopf','\uD835\uDCB1':'Vscr','\uD835\uDD68':'wopf','\uD835\uDCCC':'wscr','\uD835\uDD34':'wfr','\uD835\uDCB2':'Wscr','\uD835\uDD4E':'Wopf','\uD835\uDD1A':'Wfr','\u0175':'wcirc','\u0174':'Wcirc','\uD835\uDD35':'xfr','\uD835\uDCCD':'xscr','\uD835\uDD69':'xopf','\uD835\uDD4F':'Xopf','\uD835\uDD1B':'Xfr','\uD835\uDCB3':'Xscr','\uD835\uDD36':'yfr','\uD835\uDCCE':'yscr','\uD835\uDD6A':'yopf','\uD835\uDCB4':'Yscr','\uD835\uDD1C':'Yfr','\uD835\uDD50':'Yopf','\xFD':'yacute','\xDD':'Yacute','\u0177':'ycirc','\u0176':'Ycirc','\xFF':'yuml','\u0178':'Yuml','\uD835\uDCCF':'zscr','\uD835\uDD37':'zfr','\uD835\uDD6B':'zopf','\u2128':'Zfr','\u2124':'Zopf','\uD835\uDCB5':'Zscr','\u017A':'zacute','\u0179':'Zacute','\u017E':'zcaron','\u017D':'Zcaron','\u017C':'zdot','\u017B':'Zdot','\u01B5':'imped','\xFE':'thorn','\xDE':'THORN','\u0149':'napos','\u03B1':'alpha','\u0391':'Alpha','\u03B2':'beta','\u0392':'Beta','\u03B3':'gamma','\u0393':'Gamma','\u03B4':'delta','\u0394':'Delta','\u03B5':'epsi','\u03F5':'epsiv','\u0395':'Epsilon','\u03DD':'gammad','\u03DC':'Gammad','\u03B6':'zeta','\u0396':'Zeta','\u03B7':'eta','\u0397':'Eta','\u03B8':'theta','\u03D1':'thetav','\u0398':'Theta','\u03B9':'iota','\u0399':'Iota','\u03BA':'kappa','\u03F0':'kappav','\u039A':'Kappa','\u03BB':'lambda','\u039B':'Lambda','\u03BC':'mu','\xB5':'micro','\u039C':'Mu','\u03BD':'nu','\u039D':'Nu','\u03BE':'xi','\u039E':'Xi','\u03BF':'omicron','\u039F':'Omicron','\u03C0':'pi','\u03D6':'piv','\u03A0':'Pi','\u03C1':'rho','\u03F1':'rhov','\u03A1':'Rho','\u03C3':'sigma','\u03A3':'Sigma','\u03C2':'sigmaf','\u03C4':'tau','\u03A4':'Tau','\u03C5':'upsi','\u03A5':'Upsilon','\u03D2':'Upsi','\u03C6':'phi','\u03D5':'phiv','\u03A6':'Phi','\u03C7':'chi','\u03A7':'Chi','\u03C8':'psi','\u03A8':'Psi','\u03C9':'omega','\u03A9':'ohm','\u0430':'acy','\u0410':'Acy','\u0431':'bcy','\u0411':'Bcy','\u0432':'vcy','\u0412':'Vcy','\u0433':'gcy','\u0413':'Gcy','\u0453':'gjcy','\u0403':'GJcy','\u0434':'dcy','\u0414':'Dcy','\u0452':'djcy','\u0402':'DJcy','\u0435':'iecy','\u0415':'IEcy','\u0451':'iocy','\u0401':'IOcy','\u0454':'jukcy','\u0404':'Jukcy','\u0436':'zhcy','\u0416':'ZHcy','\u0437':'zcy','\u0417':'Zcy','\u0455':'dscy','\u0405':'DScy','\u0438':'icy','\u0418':'Icy','\u0456':'iukcy','\u0406':'Iukcy','\u0457':'yicy','\u0407':'YIcy','\u0439':'jcy','\u0419':'Jcy','\u0458':'jsercy','\u0408':'Jsercy','\u043A':'kcy','\u041A':'Kcy','\u045C':'kjcy','\u040C':'KJcy','\u043B':'lcy','\u041B':'Lcy','\u0459':'ljcy','\u0409':'LJcy','\u043C':'mcy','\u041C':'Mcy','\u043D':'ncy','\u041D':'Ncy','\u045A':'njcy','\u040A':'NJcy','\u043E':'ocy','\u041E':'Ocy','\u043F':'pcy','\u041F':'Pcy','\u0440':'rcy','\u0420':'Rcy','\u0441':'scy','\u0421':'Scy','\u0442':'tcy','\u0422':'Tcy','\u045B':'tshcy','\u040B':'TSHcy','\u0443':'ucy','\u0423':'Ucy','\u045E':'ubrcy','\u040E':'Ubrcy','\u0444':'fcy','\u0424':'Fcy','\u0445':'khcy','\u0425':'KHcy','\u0446':'tscy','\u0426':'TScy','\u0447':'chcy','\u0427':'CHcy','\u045F':'dzcy','\u040F':'DZcy','\u0448':'shcy','\u0428':'SHcy','\u0449':'shchcy','\u0429':'SHCHcy','\u044A':'hardcy','\u042A':'HARDcy','\u044B':'ycy','\u042B':'Ycy','\u044C':'softcy','\u042C':'SOFTcy','\u044D':'ecy','\u042D':'Ecy','\u044E':'yucy','\u042E':'YUcy','\u044F':'yacy','\u042F':'YAcy','\u2135':'aleph','\u2136':'beth','\u2137':'gimel','\u2138':'daleth'};
+      // (2) Recurse on each half.
 
-       var regexEscape = /["&'<>`]/g;
-       var escapeMap = {
-               '"': '&quot;',
-               '&': '&amp;',
-               '\'': '&#x27;',
-               '<': '&lt;',
-               // See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the
-               // following is not strictly necessary unless it’s part of a tag or an
-               // unquoted attribute value. We’re only escaping it to support those
-               // situations, and for XML support.
-               '>': '&gt;',
-               // In Internet Explorer ≤ 8, the backtick character can be used
-               // to break out of (un)quoted attribute values or HTML comments.
-               // See http://html5sec.org/#102, http://html5sec.org/#108, and
-               // http://html5sec.org/#133.
-               '`': '&#x60;'
-       };
+      doQuickSort(ary, comparator, p, q - 1);
+      doQuickSort(ary, comparator, q + 1, r);
+    }
+  }
 
-       var regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;
-       var regexInvalidRawCodePoint = /[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
-       var regexDecode = /&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)([=a-zA-Z0-9])?/g;
-       var decodeMap = {'aacute':'\xE1','Aacute':'\xC1','abreve':'\u0103','Abreve':'\u0102','ac':'\u223E','acd':'\u223F','acE':'\u223E\u0333','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','acy':'\u0430','Acy':'\u0410','aelig':'\xE6','AElig':'\xC6','af':'\u2061','afr':'\uD835\uDD1E','Afr':'\uD835\uDD04','agrave':'\xE0','Agrave':'\xC0','alefsym':'\u2135','aleph':'\u2135','alpha':'\u03B1','Alpha':'\u0391','amacr':'\u0101','Amacr':'\u0100','amalg':'\u2A3F','amp':'&','AMP':'&','and':'\u2227','And':'\u2A53','andand':'\u2A55','andd':'\u2A5C','andslope':'\u2A58','andv':'\u2A5A','ang':'\u2220','ange':'\u29A4','angle':'\u2220','angmsd':'\u2221','angmsdaa':'\u29A8','angmsdab':'\u29A9','angmsdac':'\u29AA','angmsdad':'\u29AB','angmsdae':'\u29AC','angmsdaf':'\u29AD','angmsdag':'\u29AE','angmsdah':'\u29AF','angrt':'\u221F','angrtvb':'\u22BE','angrtvbd':'\u299D','angsph':'\u2222','angst':'\xC5','angzarr':'\u237C','aogon':'\u0105','Aogon':'\u0104','aopf':'\uD835\uDD52','Aopf':'\uD835\uDD38','ap':'\u2248','apacir':'\u2A6F','ape':'\u224A','apE':'\u2A70','apid':'\u224B','apos':'\'','ApplyFunction':'\u2061','approx':'\u2248','approxeq':'\u224A','aring':'\xE5','Aring':'\xC5','ascr':'\uD835\uDCB6','Ascr':'\uD835\uDC9C','Assign':'\u2254','ast':'*','asymp':'\u2248','asympeq':'\u224D','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','awconint':'\u2233','awint':'\u2A11','backcong':'\u224C','backepsilon':'\u03F6','backprime':'\u2035','backsim':'\u223D','backsimeq':'\u22CD','Backslash':'\u2216','Barv':'\u2AE7','barvee':'\u22BD','barwed':'\u2305','Barwed':'\u2306','barwedge':'\u2305','bbrk':'\u23B5','bbrktbrk':'\u23B6','bcong':'\u224C','bcy':'\u0431','Bcy':'\u0411','bdquo':'\u201E','becaus':'\u2235','because':'\u2235','Because':'\u2235','bemptyv':'\u29B0','bepsi':'\u03F6','bernou':'\u212C','Bernoullis':'\u212C','beta':'\u03B2','Beta':'\u0392','beth':'\u2136','between':'\u226C','bfr':'\uD835\uDD1F','Bfr':'\uD835\uDD05','bigcap':'\u22C2','bigcirc':'\u25EF','bigcup':'\u22C3','bigodot':'\u2A00','bigoplus':'\u2A01','bigotimes':'\u2A02','bigsqcup':'\u2A06','bigstar':'\u2605','bigtriangledown':'\u25BD','bigtriangleup':'\u25B3','biguplus':'\u2A04','bigvee':'\u22C1','bigwedge':'\u22C0','bkarow':'\u290D','blacklozenge':'\u29EB','blacksquare':'\u25AA','blacktriangle':'\u25B4','blacktriangledown':'\u25BE','blacktriangleleft':'\u25C2','blacktriangleright':'\u25B8','blank':'\u2423','blk12':'\u2592','blk14':'\u2591','blk34':'\u2593','block':'\u2588','bne':'=\u20E5','bnequiv':'\u2261\u20E5','bnot':'\u2310','bNot':'\u2AED','bopf':'\uD835\uDD53','Bopf':'\uD835\uDD39','bot':'\u22A5','bottom':'\u22A5','bowtie':'\u22C8','boxbox':'\u29C9','boxdl':'\u2510','boxdL':'\u2555','boxDl':'\u2556','boxDL':'\u2557','boxdr':'\u250C','boxdR':'\u2552','boxDr':'\u2553','boxDR':'\u2554','boxh':'\u2500','boxH':'\u2550','boxhd':'\u252C','boxhD':'\u2565','boxHd':'\u2564','boxHD':'\u2566','boxhu':'\u2534','boxhU':'\u2568','boxHu':'\u2567','boxHU':'\u2569','boxminus':'\u229F','boxplus':'\u229E','boxtimes':'\u22A0','boxul':'\u2518','boxuL':'\u255B','boxUl':'\u255C','boxUL':'\u255D','boxur':'\u2514','boxuR':'\u2558','boxUr':'\u2559','boxUR':'\u255A','boxv':'\u2502','boxV':'\u2551','boxvh':'\u253C','boxvH':'\u256A','boxVh':'\u256B','boxVH':'\u256C','boxvl':'\u2524','boxvL':'\u2561','boxVl':'\u2562','boxVL':'\u2563','boxvr':'\u251C','boxvR':'\u255E','boxVr':'\u255F','boxVR':'\u2560','bprime':'\u2035','breve':'\u02D8','Breve':'\u02D8','brvbar':'\xA6','bscr':'\uD835\uDCB7','Bscr':'\u212C','bsemi':'\u204F','bsim':'\u223D','bsime':'\u22CD','bsol':'\\','bsolb':'\u29C5','bsolhsub':'\u27C8','bull':'\u2022','bullet':'\u2022','bump':'\u224E','bumpe':'\u224F','bumpE':'\u2AAE','bumpeq':'\u224F','Bumpeq':'\u224E','cacute':'\u0107','Cacute':'\u0106','cap':'\u2229','Cap':'\u22D2','capand':'\u2A44','capbrcup':'\u2A49','capcap':'\u2A4B','capcup':'\u2A47','capdot':'\u2A40','CapitalDifferentialD':'\u2145','caps':'\u2229\uFE00','caret':'\u2041','caron':'\u02C7','Cayleys':'\u212D','ccaps':'\u2A4D','ccaron':'\u010D','Ccaron':'\u010C','ccedil':'\xE7','Ccedil':'\xC7','ccirc':'\u0109','Ccirc':'\u0108','Cconint':'\u2230','ccups':'\u2A4C','ccupssm':'\u2A50','cdot':'\u010B','Cdot':'\u010A','cedil':'\xB8','Cedilla':'\xB8','cemptyv':'\u29B2','cent':'\xA2','centerdot':'\xB7','CenterDot':'\xB7','cfr':'\uD835\uDD20','Cfr':'\u212D','chcy':'\u0447','CHcy':'\u0427','check':'\u2713','checkmark':'\u2713','chi':'\u03C7','Chi':'\u03A7','cir':'\u25CB','circ':'\u02C6','circeq':'\u2257','circlearrowleft':'\u21BA','circlearrowright':'\u21BB','circledast':'\u229B','circledcirc':'\u229A','circleddash':'\u229D','CircleDot':'\u2299','circledR':'\xAE','circledS':'\u24C8','CircleMinus':'\u2296','CirclePlus':'\u2295','CircleTimes':'\u2297','cire':'\u2257','cirE':'\u29C3','cirfnint':'\u2A10','cirmid':'\u2AEF','cirscir':'\u29C2','ClockwiseContourIntegral':'\u2232','CloseCurlyDoubleQuote':'\u201D','CloseCurlyQuote':'\u2019','clubs':'\u2663','clubsuit':'\u2663','colon':':','Colon':'\u2237','colone':'\u2254','Colone':'\u2A74','coloneq':'\u2254','comma':',','commat':'@','comp':'\u2201','compfn':'\u2218','complement':'\u2201','complexes':'\u2102','cong':'\u2245','congdot':'\u2A6D','Congruent':'\u2261','conint':'\u222E','Conint':'\u222F','ContourIntegral':'\u222E','copf':'\uD835\uDD54','Copf':'\u2102','coprod':'\u2210','Coproduct':'\u2210','copy':'\xA9','COPY':'\xA9','copysr':'\u2117','CounterClockwiseContourIntegral':'\u2233','crarr':'\u21B5','cross':'\u2717','Cross':'\u2A2F','cscr':'\uD835\uDCB8','Cscr':'\uD835\uDC9E','csub':'\u2ACF','csube':'\u2AD1','csup':'\u2AD0','csupe':'\u2AD2','ctdot':'\u22EF','cudarrl':'\u2938','cudarrr':'\u2935','cuepr':'\u22DE','cuesc':'\u22DF','cularr':'\u21B6','cularrp':'\u293D','cup':'\u222A','Cup':'\u22D3','cupbrcap':'\u2A48','cupcap':'\u2A46','CupCap':'\u224D','cupcup':'\u2A4A','cupdot':'\u228D','cupor':'\u2A45','cups':'\u222A\uFE00','curarr':'\u21B7','curarrm':'\u293C','curlyeqprec':'\u22DE','curlyeqsucc':'\u22DF','curlyvee':'\u22CE','curlywedge':'\u22CF','curren':'\xA4','curvearrowleft':'\u21B6','curvearrowright':'\u21B7','cuvee':'\u22CE','cuwed':'\u22CF','cwconint':'\u2232','cwint':'\u2231','cylcty':'\u232D','dagger':'\u2020','Dagger':'\u2021','daleth':'\u2138','darr':'\u2193','dArr':'\u21D3','Darr':'\u21A1','dash':'\u2010','dashv':'\u22A3','Dashv':'\u2AE4','dbkarow':'\u290F','dblac':'\u02DD','dcaron':'\u010F','Dcaron':'\u010E','dcy':'\u0434','Dcy':'\u0414','dd':'\u2146','DD':'\u2145','ddagger':'\u2021','ddarr':'\u21CA','DDotrahd':'\u2911','ddotseq':'\u2A77','deg':'\xB0','Del':'\u2207','delta':'\u03B4','Delta':'\u0394','demptyv':'\u29B1','dfisht':'\u297F','dfr':'\uD835\uDD21','Dfr':'\uD835\uDD07','dHar':'\u2965','dharl':'\u21C3','dharr':'\u21C2','DiacriticalAcute':'\xB4','DiacriticalDot':'\u02D9','DiacriticalDoubleAcute':'\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\u02DC','diam':'\u22C4','diamond':'\u22C4','Diamond':'\u22C4','diamondsuit':'\u2666','diams':'\u2666','die':'\xA8','DifferentialD':'\u2146','digamma':'\u03DD','disin':'\u22F2','div':'\xF7','divide':'\xF7','divideontimes':'\u22C7','divonx':'\u22C7','djcy':'\u0452','DJcy':'\u0402','dlcorn':'\u231E','dlcrop':'\u230D','dollar':'$','dopf':'\uD835\uDD55','Dopf':'\uD835\uDD3B','dot':'\u02D9','Dot':'\xA8','DotDot':'\u20DC','doteq':'\u2250','doteqdot':'\u2251','DotEqual':'\u2250','dotminus':'\u2238','dotplus':'\u2214','dotsquare':'\u22A1','doublebarwedge':'\u2306','DoubleContourIntegral':'\u222F','DoubleDot':'\xA8','DoubleDownArrow':'\u21D3','DoubleLeftArrow':'\u21D0','DoubleLeftRightArrow':'\u21D4','DoubleLeftTee':'\u2AE4','DoubleLongLeftArrow':'\u27F8','DoubleLongLeftRightArrow':'\u27FA','DoubleLongRightArrow':'\u27F9','DoubleRightArrow':'\u21D2','DoubleRightTee':'\u22A8','DoubleUpArrow':'\u21D1','DoubleUpDownArrow':'\u21D5','DoubleVerticalBar':'\u2225','downarrow':'\u2193','Downarrow':'\u21D3','DownArrow':'\u2193','DownArrowBar':'\u2913','DownArrowUpArrow':'\u21F5','DownBreve':'\u0311','downdownarrows':'\u21CA','downharpoonleft':'\u21C3','downharpoonright':'\u21C2','DownLeftRightVector':'\u2950','DownLeftTeeVector':'\u295E','DownLeftVector':'\u21BD','DownLeftVectorBar':'\u2956','DownRightTeeVector':'\u295F','DownRightVector':'\u21C1','DownRightVectorBar':'\u2957','DownTee':'\u22A4','DownTeeArrow':'\u21A7','drbkarow':'\u2910','drcorn':'\u231F','drcrop':'\u230C','dscr':'\uD835\uDCB9','Dscr':'\uD835\uDC9F','dscy':'\u0455','DScy':'\u0405','dsol':'\u29F6','dstrok':'\u0111','Dstrok':'\u0110','dtdot':'\u22F1','dtri':'\u25BF','dtrif':'\u25BE','duarr':'\u21F5','duhar':'\u296F','dwangle':'\u29A6','dzcy':'\u045F','DZcy':'\u040F','dzigrarr':'\u27FF','eacute':'\xE9','Eacute':'\xC9','easter':'\u2A6E','ecaron':'\u011B','Ecaron':'\u011A','ecir':'\u2256','ecirc':'\xEA','Ecirc':'\xCA','ecolon':'\u2255','ecy':'\u044D','Ecy':'\u042D','eDDot':'\u2A77','edot':'\u0117','eDot':'\u2251','Edot':'\u0116','ee':'\u2147','efDot':'\u2252','efr':'\uD835\uDD22','Efr':'\uD835\uDD08','eg':'\u2A9A','egrave':'\xE8','Egrave':'\xC8','egs':'\u2A96','egsdot':'\u2A98','el':'\u2A99','Element':'\u2208','elinters':'\u23E7','ell':'\u2113','els':'\u2A95','elsdot':'\u2A97','emacr':'\u0113','Emacr':'\u0112','empty':'\u2205','emptyset':'\u2205','EmptySmallSquare':'\u25FB','emptyv':'\u2205','EmptyVerySmallSquare':'\u25AB','emsp':'\u2003','emsp13':'\u2004','emsp14':'\u2005','eng':'\u014B','ENG':'\u014A','ensp':'\u2002','eogon':'\u0119','Eogon':'\u0118','eopf':'\uD835\uDD56','Eopf':'\uD835\uDD3C','epar':'\u22D5','eparsl':'\u29E3','eplus':'\u2A71','epsi':'\u03B5','epsilon':'\u03B5','Epsilon':'\u0395','epsiv':'\u03F5','eqcirc':'\u2256','eqcolon':'\u2255','eqsim':'\u2242','eqslantgtr':'\u2A96','eqslantless':'\u2A95','Equal':'\u2A75','equals':'=','EqualTilde':'\u2242','equest':'\u225F','Equilibrium':'\u21CC','equiv':'\u2261','equivDD':'\u2A78','eqvparsl':'\u29E5','erarr':'\u2971','erDot':'\u2253','escr':'\u212F','Escr':'\u2130','esdot':'\u2250','esim':'\u2242','Esim':'\u2A73','eta':'\u03B7','Eta':'\u0397','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','euro':'\u20AC','excl':'!','exist':'\u2203','Exists':'\u2203','expectation':'\u2130','exponentiale':'\u2147','ExponentialE':'\u2147','fallingdotseq':'\u2252','fcy':'\u0444','Fcy':'\u0424','female':'\u2640','ffilig':'\uFB03','fflig':'\uFB00','ffllig':'\uFB04','ffr':'\uD835\uDD23','Ffr':'\uD835\uDD09','filig':'\uFB01','FilledSmallSquare':'\u25FC','FilledVerySmallSquare':'\u25AA','fjlig':'fj','flat':'\u266D','fllig':'\uFB02','fltns':'\u25B1','fnof':'\u0192','fopf':'\uD835\uDD57','Fopf':'\uD835\uDD3D','forall':'\u2200','ForAll':'\u2200','fork':'\u22D4','forkv':'\u2AD9','Fouriertrf':'\u2131','fpartint':'\u2A0D','frac12':'\xBD','frac13':'\u2153','frac14':'\xBC','frac15':'\u2155','frac16':'\u2159','frac18':'\u215B','frac23':'\u2154','frac25':'\u2156','frac34':'\xBE','frac35':'\u2157','frac38':'\u215C','frac45':'\u2158','frac56':'\u215A','frac58':'\u215D','frac78':'\u215E','frasl':'\u2044','frown':'\u2322','fscr':'\uD835\uDCBB','Fscr':'\u2131','gacute':'\u01F5','gamma':'\u03B3','Gamma':'\u0393','gammad':'\u03DD','Gammad':'\u03DC','gap':'\u2A86','gbreve':'\u011F','Gbreve':'\u011E','Gcedil':'\u0122','gcirc':'\u011D','Gcirc':'\u011C','gcy':'\u0433','Gcy':'\u0413','gdot':'\u0121','Gdot':'\u0120','ge':'\u2265','gE':'\u2267','gel':'\u22DB','gEl':'\u2A8C','geq':'\u2265','geqq':'\u2267','geqslant':'\u2A7E','ges':'\u2A7E','gescc':'\u2AA9','gesdot':'\u2A80','gesdoto':'\u2A82','gesdotol':'\u2A84','gesl':'\u22DB\uFE00','gesles':'\u2A94','gfr':'\uD835\uDD24','Gfr':'\uD835\uDD0A','gg':'\u226B','Gg':'\u22D9','ggg':'\u22D9','gimel':'\u2137','gjcy':'\u0453','GJcy':'\u0403','gl':'\u2277','gla':'\u2AA5','glE':'\u2A92','glj':'\u2AA4','gnap':'\u2A8A','gnapprox':'\u2A8A','gne':'\u2A88','gnE':'\u2269','gneq':'\u2A88','gneqq':'\u2269','gnsim':'\u22E7','gopf':'\uD835\uDD58','Gopf':'\uD835\uDD3E','grave':'`','GreaterEqual':'\u2265','GreaterEqualLess':'\u22DB','GreaterFullEqual':'\u2267','GreaterGreater':'\u2AA2','GreaterLess':'\u2277','GreaterSlantEqual':'\u2A7E','GreaterTilde':'\u2273','gscr':'\u210A','Gscr':'\uD835\uDCA2','gsim':'\u2273','gsime':'\u2A8E','gsiml':'\u2A90','gt':'>','Gt':'\u226B','GT':'>','gtcc':'\u2AA7','gtcir':'\u2A7A','gtdot':'\u22D7','gtlPar':'\u2995','gtquest':'\u2A7C','gtrapprox':'\u2A86','gtrarr':'\u2978','gtrdot':'\u22D7','gtreqless':'\u22DB','gtreqqless':'\u2A8C','gtrless':'\u2277','gtrsim':'\u2273','gvertneqq':'\u2269\uFE00','gvnE':'\u2269\uFE00','Hacek':'\u02C7','hairsp':'\u200A','half':'\xBD','hamilt':'\u210B','hardcy':'\u044A','HARDcy':'\u042A','harr':'\u2194','hArr':'\u21D4','harrcir':'\u2948','harrw':'\u21AD','Hat':'^','hbar':'\u210F','hcirc':'\u0125','Hcirc':'\u0124','hearts':'\u2665','heartsuit':'\u2665','hellip':'\u2026','hercon':'\u22B9','hfr':'\uD835\uDD25','Hfr':'\u210C','HilbertSpace':'\u210B','hksearow':'\u2925','hkswarow':'\u2926','hoarr':'\u21FF','homtht':'\u223B','hookleftarrow':'\u21A9','hookrightarrow':'\u21AA','hopf':'\uD835\uDD59','Hopf':'\u210D','horbar':'\u2015','HorizontalLine':'\u2500','hscr':'\uD835\uDCBD','Hscr':'\u210B','hslash':'\u210F','hstrok':'\u0127','Hstrok':'\u0126','HumpDownHump':'\u224E','HumpEqual':'\u224F','hybull':'\u2043','hyphen':'\u2010','iacute':'\xED','Iacute':'\xCD','ic':'\u2063','icirc':'\xEE','Icirc':'\xCE','icy':'\u0438','Icy':'\u0418','Idot':'\u0130','iecy':'\u0435','IEcy':'\u0415','iexcl':'\xA1','iff':'\u21D4','ifr':'\uD835\uDD26','Ifr':'\u2111','igrave':'\xEC','Igrave':'\xCC','ii':'\u2148','iiiint':'\u2A0C','iiint':'\u222D','iinfin':'\u29DC','iiota':'\u2129','ijlig':'\u0133','IJlig':'\u0132','Im':'\u2111','imacr':'\u012B','Imacr':'\u012A','image':'\u2111','ImaginaryI':'\u2148','imagline':'\u2110','imagpart':'\u2111','imath':'\u0131','imof':'\u22B7','imped':'\u01B5','Implies':'\u21D2','in':'\u2208','incare':'\u2105','infin':'\u221E','infintie':'\u29DD','inodot':'\u0131','int':'\u222B','Int':'\u222C','intcal':'\u22BA','integers':'\u2124','Integral':'\u222B','intercal':'\u22BA','Intersection':'\u22C2','intlarhk':'\u2A17','intprod':'\u2A3C','InvisibleComma':'\u2063','InvisibleTimes':'\u2062','iocy':'\u0451','IOcy':'\u0401','iogon':'\u012F','Iogon':'\u012E','iopf':'\uD835\uDD5A','Iopf':'\uD835\uDD40','iota':'\u03B9','Iota':'\u0399','iprod':'\u2A3C','iquest':'\xBF','iscr':'\uD835\uDCBE','Iscr':'\u2110','isin':'\u2208','isindot':'\u22F5','isinE':'\u22F9','isins':'\u22F4','isinsv':'\u22F3','isinv':'\u2208','it':'\u2062','itilde':'\u0129','Itilde':'\u0128','iukcy':'\u0456','Iukcy':'\u0406','iuml':'\xEF','Iuml':'\xCF','jcirc':'\u0135','Jcirc':'\u0134','jcy':'\u0439','Jcy':'\u0419','jfr':'\uD835\uDD27','Jfr':'\uD835\uDD0D','jmath':'\u0237','jopf':'\uD835\uDD5B','Jopf':'\uD835\uDD41','jscr':'\uD835\uDCBF','Jscr':'\uD835\uDCA5','jsercy':'\u0458','Jsercy':'\u0408','jukcy':'\u0454','Jukcy':'\u0404','kappa':'\u03BA','Kappa':'\u039A','kappav':'\u03F0','kcedil':'\u0137','Kcedil':'\u0136','kcy':'\u043A','Kcy':'\u041A','kfr':'\uD835\uDD28','Kfr':'\uD835\uDD0E','kgreen':'\u0138','khcy':'\u0445','KHcy':'\u0425','kjcy':'\u045C','KJcy':'\u040C','kopf':'\uD835\uDD5C','Kopf':'\uD835\uDD42','kscr':'\uD835\uDCC0','Kscr':'\uD835\uDCA6','lAarr':'\u21DA','lacute':'\u013A','Lacute':'\u0139','laemptyv':'\u29B4','lagran':'\u2112','lambda':'\u03BB','Lambda':'\u039B','lang':'\u27E8','Lang':'\u27EA','langd':'\u2991','langle':'\u27E8','lap':'\u2A85','Laplacetrf':'\u2112','laquo':'\xAB','larr':'\u2190','lArr':'\u21D0','Larr':'\u219E','larrb':'\u21E4','larrbfs':'\u291F','larrfs':'\u291D','larrhk':'\u21A9','larrlp':'\u21AB','larrpl':'\u2939','larrsim':'\u2973','larrtl':'\u21A2','lat':'\u2AAB','latail':'\u2919','lAtail':'\u291B','late':'\u2AAD','lates':'\u2AAD\uFE00','lbarr':'\u290C','lBarr':'\u290E','lbbrk':'\u2772','lbrace':'{','lbrack':'[','lbrke':'\u298B','lbrksld':'\u298F','lbrkslu':'\u298D','lcaron':'\u013E','Lcaron':'\u013D','lcedil':'\u013C','Lcedil':'\u013B','lceil':'\u2308','lcub':'{','lcy':'\u043B','Lcy':'\u041B','ldca':'\u2936','ldquo':'\u201C','ldquor':'\u201E','ldrdhar':'\u2967','ldrushar':'\u294B','ldsh':'\u21B2','le':'\u2264','lE':'\u2266','LeftAngleBracket':'\u27E8','leftarrow':'\u2190','Leftarrow':'\u21D0','LeftArrow':'\u2190','LeftArrowBar':'\u21E4','LeftArrowRightArrow':'\u21C6','leftarrowtail':'\u21A2','LeftCeiling':'\u2308','LeftDoubleBracket':'\u27E6','LeftDownTeeVector':'\u2961','LeftDownVector':'\u21C3','LeftDownVectorBar':'\u2959','LeftFloor':'\u230A','leftharpoondown':'\u21BD','leftharpoonup':'\u21BC','leftleftarrows':'\u21C7','leftrightarrow':'\u2194','Leftrightarrow':'\u21D4','LeftRightArrow':'\u2194','leftrightarrows':'\u21C6','leftrightharpoons':'\u21CB','leftrightsquigarrow':'\u21AD','LeftRightVector':'\u294E','LeftTee':'\u22A3','LeftTeeArrow':'\u21A4','LeftTeeVector':'\u295A','leftthreetimes':'\u22CB','LeftTriangle':'\u22B2','LeftTriangleBar':'\u29CF','LeftTriangleEqual':'\u22B4','LeftUpDownVector':'\u2951','LeftUpTeeVector':'\u2960','LeftUpVector':'\u21BF','LeftUpVectorBar':'\u2958','LeftVector':'\u21BC','LeftVectorBar':'\u2952','leg':'\u22DA','lEg':'\u2A8B','leq':'\u2264','leqq':'\u2266','leqslant':'\u2A7D','les':'\u2A7D','lescc':'\u2AA8','lesdot':'\u2A7F','lesdoto':'\u2A81','lesdotor':'\u2A83','lesg':'\u22DA\uFE00','lesges':'\u2A93','lessapprox':'\u2A85','lessdot':'\u22D6','lesseqgtr':'\u22DA','lesseqqgtr':'\u2A8B','LessEqualGreater':'\u22DA','LessFullEqual':'\u2266','LessGreater':'\u2276','lessgtr':'\u2276','LessLess':'\u2AA1','lesssim':'\u2272','LessSlantEqual':'\u2A7D','LessTilde':'\u2272','lfisht':'\u297C','lfloor':'\u230A','lfr':'\uD835\uDD29','Lfr':'\uD835\uDD0F','lg':'\u2276','lgE':'\u2A91','lHar':'\u2962','lhard':'\u21BD','lharu':'\u21BC','lharul':'\u296A','lhblk':'\u2584','ljcy':'\u0459','LJcy':'\u0409','ll':'\u226A','Ll':'\u22D8','llarr':'\u21C7','llcorner':'\u231E','Lleftarrow':'\u21DA','llhard':'\u296B','lltri':'\u25FA','lmidot':'\u0140','Lmidot':'\u013F','lmoust':'\u23B0','lmoustache':'\u23B0','lnap':'\u2A89','lnapprox':'\u2A89','lne':'\u2A87','lnE':'\u2268','lneq':'\u2A87','lneqq':'\u2268','lnsim':'\u22E6','loang':'\u27EC','loarr':'\u21FD','lobrk':'\u27E6','longleftarrow':'\u27F5','Longleftarrow':'\u27F8','LongLeftArrow':'\u27F5','longleftrightarrow':'\u27F7','Longleftrightarrow':'\u27FA','LongLeftRightArrow':'\u27F7','longmapsto':'\u27FC','longrightarrow':'\u27F6','Longrightarrow':'\u27F9','LongRightArrow':'\u27F6','looparrowleft':'\u21AB','looparrowright':'\u21AC','lopar':'\u2985','lopf':'\uD835\uDD5D','Lopf':'\uD835\uDD43','loplus':'\u2A2D','lotimes':'\u2A34','lowast':'\u2217','lowbar':'_','LowerLeftArrow':'\u2199','LowerRightArrow':'\u2198','loz':'\u25CA','lozenge':'\u25CA','lozf':'\u29EB','lpar':'(','lparlt':'\u2993','lrarr':'\u21C6','lrcorner':'\u231F','lrhar':'\u21CB','lrhard':'\u296D','lrm':'\u200E','lrtri':'\u22BF','lsaquo':'\u2039','lscr':'\uD835\uDCC1','Lscr':'\u2112','lsh':'\u21B0','Lsh':'\u21B0','lsim':'\u2272','lsime':'\u2A8D','lsimg':'\u2A8F','lsqb':'[','lsquo':'\u2018','lsquor':'\u201A','lstrok':'\u0142','Lstrok':'\u0141','lt':'<','Lt':'\u226A','LT':'<','ltcc':'\u2AA6','ltcir':'\u2A79','ltdot':'\u22D6','lthree':'\u22CB','ltimes':'\u22C9','ltlarr':'\u2976','ltquest':'\u2A7B','ltri':'\u25C3','ltrie':'\u22B4','ltrif':'\u25C2','ltrPar':'\u2996','lurdshar':'\u294A','luruhar':'\u2966','lvertneqq':'\u2268\uFE00','lvnE':'\u2268\uFE00','macr':'\xAF','male':'\u2642','malt':'\u2720','maltese':'\u2720','map':'\u21A6','Map':'\u2905','mapsto':'\u21A6','mapstodown':'\u21A7','mapstoleft':'\u21A4','mapstoup':'\u21A5','marker':'\u25AE','mcomma':'\u2A29','mcy':'\u043C','Mcy':'\u041C','mdash':'\u2014','mDDot':'\u223A','measuredangle':'\u2221','MediumSpace':'\u205F','Mellintrf':'\u2133','mfr':'\uD835\uDD2A','Mfr':'\uD835\uDD10','mho':'\u2127','micro':'\xB5','mid':'\u2223','midast':'*','midcir':'\u2AF0','middot':'\xB7','minus':'\u2212','minusb':'\u229F','minusd':'\u2238','minusdu':'\u2A2A','MinusPlus':'\u2213','mlcp':'\u2ADB','mldr':'\u2026','mnplus':'\u2213','models':'\u22A7','mopf':'\uD835\uDD5E','Mopf':'\uD835\uDD44','mp':'\u2213','mscr':'\uD835\uDCC2','Mscr':'\u2133','mstpos':'\u223E','mu':'\u03BC','Mu':'\u039C','multimap':'\u22B8','mumap':'\u22B8','nabla':'\u2207','nacute':'\u0144','Nacute':'\u0143','nang':'\u2220\u20D2','nap':'\u2249','napE':'\u2A70\u0338','napid':'\u224B\u0338','napos':'\u0149','napprox':'\u2249','natur':'\u266E','natural':'\u266E','naturals':'\u2115','nbsp':'\xA0','nbump':'\u224E\u0338','nbumpe':'\u224F\u0338','ncap':'\u2A43','ncaron':'\u0148','Ncaron':'\u0147','ncedil':'\u0146','Ncedil':'\u0145','ncong':'\u2247','ncongdot':'\u2A6D\u0338','ncup':'\u2A42','ncy':'\u043D','Ncy':'\u041D','ndash':'\u2013','ne':'\u2260','nearhk':'\u2924','nearr':'\u2197','neArr':'\u21D7','nearrow':'\u2197','nedot':'\u2250\u0338','NegativeMediumSpace':'\u200B','NegativeThickSpace':'\u200B','NegativeThinSpace':'\u200B','NegativeVeryThinSpace':'\u200B','nequiv':'\u2262','nesear':'\u2928','nesim':'\u2242\u0338','NestedGreaterGreater':'\u226B','NestedLessLess':'\u226A','NewLine':'\n','nexist':'\u2204','nexists':'\u2204','nfr':'\uD835\uDD2B','Nfr':'\uD835\uDD11','nge':'\u2271','ngE':'\u2267\u0338','ngeq':'\u2271','ngeqq':'\u2267\u0338','ngeqslant':'\u2A7E\u0338','nges':'\u2A7E\u0338','nGg':'\u22D9\u0338','ngsim':'\u2275','ngt':'\u226F','nGt':'\u226B\u20D2','ngtr':'\u226F','nGtv':'\u226B\u0338','nharr':'\u21AE','nhArr':'\u21CE','nhpar':'\u2AF2','ni':'\u220B','nis':'\u22FC','nisd':'\u22FA','niv':'\u220B','njcy':'\u045A','NJcy':'\u040A','nlarr':'\u219A','nlArr':'\u21CD','nldr':'\u2025','nle':'\u2270','nlE':'\u2266\u0338','nleftarrow':'\u219A','nLeftarrow':'\u21CD','nleftrightarrow':'\u21AE','nLeftrightarrow':'\u21CE','nleq':'\u2270','nleqq':'\u2266\u0338','nleqslant':'\u2A7D\u0338','nles':'\u2A7D\u0338','nless':'\u226E','nLl':'\u22D8\u0338','nlsim':'\u2274','nlt':'\u226E','nLt':'\u226A\u20D2','nltri':'\u22EA','nltrie':'\u22EC','nLtv':'\u226A\u0338','nmid':'\u2224','NoBreak':'\u2060','NonBreakingSpace':'\xA0','nopf':'\uD835\uDD5F','Nopf':'\u2115','not':'\xAC','Not':'\u2AEC','NotCongruent':'\u2262','NotCupCap':'\u226D','NotDoubleVerticalBar':'\u2226','NotElement':'\u2209','NotEqual':'\u2260','NotEqualTilde':'\u2242\u0338','NotExists':'\u2204','NotGreater':'\u226F','NotGreaterEqual':'\u2271','NotGreaterFullEqual':'\u2267\u0338','NotGreaterGreater':'\u226B\u0338','NotGreaterLess':'\u2279','NotGreaterSlantEqual':'\u2A7E\u0338','NotGreaterTilde':'\u2275','NotHumpDownHump':'\u224E\u0338','NotHumpEqual':'\u224F\u0338','notin':'\u2209','notindot':'\u22F5\u0338','notinE':'\u22F9\u0338','notinva':'\u2209','notinvb':'\u22F7','notinvc':'\u22F6','NotLeftTriangle':'\u22EA','NotLeftTriangleBar':'\u29CF\u0338','NotLeftTriangleEqual':'\u22EC','NotLess':'\u226E','NotLessEqual':'\u2270','NotLessGreater':'\u2278','NotLessLess':'\u226A\u0338','NotLessSlantEqual':'\u2A7D\u0338','NotLessTilde':'\u2274','NotNestedGreaterGreater':'\u2AA2\u0338','NotNestedLessLess':'\u2AA1\u0338','notni':'\u220C','notniva':'\u220C','notnivb':'\u22FE','notnivc':'\u22FD','NotPrecedes':'\u2280','NotPrecedesEqual':'\u2AAF\u0338','NotPrecedesSlantEqual':'\u22E0','NotReverseElement':'\u220C','NotRightTriangle':'\u22EB','NotRightTriangleBar':'\u29D0\u0338','NotRightTriangleEqual':'\u22ED','NotSquareSubset':'\u228F\u0338','NotSquareSubsetEqual':'\u22E2','NotSquareSuperset':'\u2290\u0338','NotSquareSupersetEqual':'\u22E3','NotSubset':'\u2282\u20D2','NotSubsetEqual':'\u2288','NotSucceeds':'\u2281','NotSucceedsEqual':'\u2AB0\u0338','NotSucceedsSlantEqual':'\u22E1','NotSucceedsTilde':'\u227F\u0338','NotSuperset':'\u2283\u20D2','NotSupersetEqual':'\u2289','NotTilde':'\u2241','NotTildeEqual':'\u2244','NotTildeFullEqual':'\u2247','NotTildeTilde':'\u2249','NotVerticalBar':'\u2224','npar':'\u2226','nparallel':'\u2226','nparsl':'\u2AFD\u20E5','npart':'\u2202\u0338','npolint':'\u2A14','npr':'\u2280','nprcue':'\u22E0','npre':'\u2AAF\u0338','nprec':'\u2280','npreceq':'\u2AAF\u0338','nrarr':'\u219B','nrArr':'\u21CF','nrarrc':'\u2933\u0338','nrarrw':'\u219D\u0338','nrightarrow':'\u219B','nRightarrow':'\u21CF','nrtri':'\u22EB','nrtrie':'\u22ED','nsc':'\u2281','nsccue':'\u22E1','nsce':'\u2AB0\u0338','nscr':'\uD835\uDCC3','Nscr':'\uD835\uDCA9','nshortmid':'\u2224','nshortparallel':'\u2226','nsim':'\u2241','nsime':'\u2244','nsimeq':'\u2244','nsmid':'\u2224','nspar':'\u2226','nsqsube':'\u22E2','nsqsupe':'\u22E3','nsub':'\u2284','nsube':'\u2288','nsubE':'\u2AC5\u0338','nsubset':'\u2282\u20D2','nsubseteq':'\u2288','nsubseteqq':'\u2AC5\u0338','nsucc':'\u2281','nsucceq':'\u2AB0\u0338','nsup':'\u2285','nsupe':'\u2289','nsupE':'\u2AC6\u0338','nsupset':'\u2283\u20D2','nsupseteq':'\u2289','nsupseteqq':'\u2AC6\u0338','ntgl':'\u2279','ntilde':'\xF1','Ntilde':'\xD1','ntlg':'\u2278','ntriangleleft':'\u22EA','ntrianglelefteq':'\u22EC','ntriangleright':'\u22EB','ntrianglerighteq':'\u22ED','nu':'\u03BD','Nu':'\u039D','num':'#','numero':'\u2116','numsp':'\u2007','nvap':'\u224D\u20D2','nvdash':'\u22AC','nvDash':'\u22AD','nVdash':'\u22AE','nVDash':'\u22AF','nvge':'\u2265\u20D2','nvgt':'>\u20D2','nvHarr':'\u2904','nvinfin':'\u29DE','nvlArr':'\u2902','nvle':'\u2264\u20D2','nvlt':'<\u20D2','nvltrie':'\u22B4\u20D2','nvrArr':'\u2903','nvrtrie':'\u22B5\u20D2','nvsim':'\u223C\u20D2','nwarhk':'\u2923','nwarr':'\u2196','nwArr':'\u21D6','nwarrow':'\u2196','nwnear':'\u2927','oacute':'\xF3','Oacute':'\xD3','oast':'\u229B','ocir':'\u229A','ocirc':'\xF4','Ocirc':'\xD4','ocy':'\u043E','Ocy':'\u041E','odash':'\u229D','odblac':'\u0151','Odblac':'\u0150','odiv':'\u2A38','odot':'\u2299','odsold':'\u29BC','oelig':'\u0153','OElig':'\u0152','ofcir':'\u29BF','ofr':'\uD835\uDD2C','Ofr':'\uD835\uDD12','ogon':'\u02DB','ograve':'\xF2','Ograve':'\xD2','ogt':'\u29C1','ohbar':'\u29B5','ohm':'\u03A9','oint':'\u222E','olarr':'\u21BA','olcir':'\u29BE','olcross':'\u29BB','oline':'\u203E','olt':'\u29C0','omacr':'\u014D','Omacr':'\u014C','omega':'\u03C9','Omega':'\u03A9','omicron':'\u03BF','Omicron':'\u039F','omid':'\u29B6','ominus':'\u2296','oopf':'\uD835\uDD60','Oopf':'\uD835\uDD46','opar':'\u29B7','OpenCurlyDoubleQuote':'\u201C','OpenCurlyQuote':'\u2018','operp':'\u29B9','oplus':'\u2295','or':'\u2228','Or':'\u2A54','orarr':'\u21BB','ord':'\u2A5D','order':'\u2134','orderof':'\u2134','ordf':'\xAA','ordm':'\xBA','origof':'\u22B6','oror':'\u2A56','orslope':'\u2A57','orv':'\u2A5B','oS':'\u24C8','oscr':'\u2134','Oscr':'\uD835\uDCAA','oslash':'\xF8','Oslash':'\xD8','osol':'\u2298','otilde':'\xF5','Otilde':'\xD5','otimes':'\u2297','Otimes':'\u2A37','otimesas':'\u2A36','ouml':'\xF6','Ouml':'\xD6','ovbar':'\u233D','OverBar':'\u203E','OverBrace':'\u23DE','OverBracket':'\u23B4','OverParenthesis':'\u23DC','par':'\u2225','para':'\xB6','parallel':'\u2225','parsim':'\u2AF3','parsl':'\u2AFD','part':'\u2202','PartialD':'\u2202','pcy':'\u043F','Pcy':'\u041F','percnt':'%','period':'.','permil':'\u2030','perp':'\u22A5','pertenk':'\u2031','pfr':'\uD835\uDD2D','Pfr':'\uD835\uDD13','phi':'\u03C6','Phi':'\u03A6','phiv':'\u03D5','phmmat':'\u2133','phone':'\u260E','pi':'\u03C0','Pi':'\u03A0','pitchfork':'\u22D4','piv':'\u03D6','planck':'\u210F','planckh':'\u210E','plankv':'\u210F','plus':'+','plusacir':'\u2A23','plusb':'\u229E','pluscir':'\u2A22','plusdo':'\u2214','plusdu':'\u2A25','pluse':'\u2A72','PlusMinus':'\xB1','plusmn':'\xB1','plussim':'\u2A26','plustwo':'\u2A27','pm':'\xB1','Poincareplane':'\u210C','pointint':'\u2A15','popf':'\uD835\uDD61','Popf':'\u2119','pound':'\xA3','pr':'\u227A','Pr':'\u2ABB','prap':'\u2AB7','prcue':'\u227C','pre':'\u2AAF','prE':'\u2AB3','prec':'\u227A','precapprox':'\u2AB7','preccurlyeq':'\u227C','Precedes':'\u227A','PrecedesEqual':'\u2AAF','PrecedesSlantEqual':'\u227C','PrecedesTilde':'\u227E','preceq':'\u2AAF','precnapprox':'\u2AB9','precneqq':'\u2AB5','precnsim':'\u22E8','precsim':'\u227E','prime':'\u2032','Prime':'\u2033','primes':'\u2119','prnap':'\u2AB9','prnE':'\u2AB5','prnsim':'\u22E8','prod':'\u220F','Product':'\u220F','profalar':'\u232E','profline':'\u2312','profsurf':'\u2313','prop':'\u221D','Proportion':'\u2237','Proportional':'\u221D','propto':'\u221D','prsim':'\u227E','prurel':'\u22B0','pscr':'\uD835\uDCC5','Pscr':'\uD835\uDCAB','psi':'\u03C8','Psi':'\u03A8','puncsp':'\u2008','qfr':'\uD835\uDD2E','Qfr':'\uD835\uDD14','qint':'\u2A0C','qopf':'\uD835\uDD62','Qopf':'\u211A','qprime':'\u2057','qscr':'\uD835\uDCC6','Qscr':'\uD835\uDCAC','quaternions':'\u210D','quatint':'\u2A16','quest':'?','questeq':'\u225F','quot':'"','QUOT':'"','rAarr':'\u21DB','race':'\u223D\u0331','racute':'\u0155','Racute':'\u0154','radic':'\u221A','raemptyv':'\u29B3','rang':'\u27E9','Rang':'\u27EB','rangd':'\u2992','range':'\u29A5','rangle':'\u27E9','raquo':'\xBB','rarr':'\u2192','rArr':'\u21D2','Rarr':'\u21A0','rarrap':'\u2975','rarrb':'\u21E5','rarrbfs':'\u2920','rarrc':'\u2933','rarrfs':'\u291E','rarrhk':'\u21AA','rarrlp':'\u21AC','rarrpl':'\u2945','rarrsim':'\u2974','rarrtl':'\u21A3','Rarrtl':'\u2916','rarrw':'\u219D','ratail':'\u291A','rAtail':'\u291C','ratio':'\u2236','rationals':'\u211A','rbarr':'\u290D','rBarr':'\u290F','RBarr':'\u2910','rbbrk':'\u2773','rbrace':'}','rbrack':']','rbrke':'\u298C','rbrksld':'\u298E','rbrkslu':'\u2990','rcaron':'\u0159','Rcaron':'\u0158','rcedil':'\u0157','Rcedil':'\u0156','rceil':'\u2309','rcub':'}','rcy':'\u0440','Rcy':'\u0420','rdca':'\u2937','rdldhar':'\u2969','rdquo':'\u201D','rdquor':'\u201D','rdsh':'\u21B3','Re':'\u211C','real':'\u211C','realine':'\u211B','realpart':'\u211C','reals':'\u211D','rect':'\u25AD','reg':'\xAE','REG':'\xAE','ReverseElement':'\u220B','ReverseEquilibrium':'\u21CB','ReverseUpEquilibrium':'\u296F','rfisht':'\u297D','rfloor':'\u230B','rfr':'\uD835\uDD2F','Rfr':'\u211C','rHar':'\u2964','rhard':'\u21C1','rharu':'\u21C0','rharul':'\u296C','rho':'\u03C1','Rho':'\u03A1','rhov':'\u03F1','RightAngleBracket':'\u27E9','rightarrow':'\u2192','Rightarrow':'\u21D2','RightArrow':'\u2192','RightArrowBar':'\u21E5','RightArrowLeftArrow':'\u21C4','rightarrowtail':'\u21A3','RightCeiling':'\u2309','RightDoubleBracket':'\u27E7','RightDownTeeVector':'\u295D','RightDownVector':'\u21C2','RightDownVectorBar':'\u2955','RightFloor':'\u230B','rightharpoondown':'\u21C1','rightharpoonup':'\u21C0','rightleftarrows':'\u21C4','rightleftharpoons':'\u21CC','rightrightarrows':'\u21C9','rightsquigarrow':'\u219D','RightTee':'\u22A2','RightTeeArrow':'\u21A6','RightTeeVector':'\u295B','rightthreetimes':'\u22CC','RightTriangle':'\u22B3','RightTriangleBar':'\u29D0','RightTriangleEqual':'\u22B5','RightUpDownVector':'\u294F','RightUpTeeVector':'\u295C','RightUpVector':'\u21BE','RightUpVectorBar':'\u2954','RightVector':'\u21C0','RightVectorBar':'\u2953','ring':'\u02DA','risingdotseq':'\u2253','rlarr':'\u21C4','rlhar':'\u21CC','rlm':'\u200F','rmoust':'\u23B1','rmoustache':'\u23B1','rnmid':'\u2AEE','roang':'\u27ED','roarr':'\u21FE','robrk':'\u27E7','ropar':'\u2986','ropf':'\uD835\uDD63','Ropf':'\u211D','roplus':'\u2A2E','rotimes':'\u2A35','RoundImplies':'\u2970','rpar':')','rpargt':'\u2994','rppolint':'\u2A12','rrarr':'\u21C9','Rrightarrow':'\u21DB','rsaquo':'\u203A','rscr':'\uD835\uDCC7','Rscr':'\u211B','rsh':'\u21B1','Rsh':'\u21B1','rsqb':']','rsquo':'\u2019','rsquor':'\u2019','rthree':'\u22CC','rtimes':'\u22CA','rtri':'\u25B9','rtrie':'\u22B5','rtrif':'\u25B8','rtriltri':'\u29CE','RuleDelayed':'\u29F4','ruluhar':'\u2968','rx':'\u211E','sacute':'\u015B','Sacute':'\u015A','sbquo':'\u201A','sc':'\u227B','Sc':'\u2ABC','scap':'\u2AB8','scaron':'\u0161','Scaron':'\u0160','sccue':'\u227D','sce':'\u2AB0','scE':'\u2AB4','scedil':'\u015F','Scedil':'\u015E','scirc':'\u015D','Scirc':'\u015C','scnap':'\u2ABA','scnE':'\u2AB6','scnsim':'\u22E9','scpolint':'\u2A13','scsim':'\u227F','scy':'\u0441','Scy':'\u0421','sdot':'\u22C5','sdotb':'\u22A1','sdote':'\u2A66','searhk':'\u2925','searr':'\u2198','seArr':'\u21D8','searrow':'\u2198','sect':'\xA7','semi':';','seswar':'\u2929','setminus':'\u2216','setmn':'\u2216','sext':'\u2736','sfr':'\uD835\uDD30','Sfr':'\uD835\uDD16','sfrown':'\u2322','sharp':'\u266F','shchcy':'\u0449','SHCHcy':'\u0429','shcy':'\u0448','SHcy':'\u0428','ShortDownArrow':'\u2193','ShortLeftArrow':'\u2190','shortmid':'\u2223','shortparallel':'\u2225','ShortRightArrow':'\u2192','ShortUpArrow':'\u2191','shy':'\xAD','sigma':'\u03C3','Sigma':'\u03A3','sigmaf':'\u03C2','sigmav':'\u03C2','sim':'\u223C','simdot':'\u2A6A','sime':'\u2243','simeq':'\u2243','simg':'\u2A9E','simgE':'\u2AA0','siml':'\u2A9D','simlE':'\u2A9F','simne':'\u2246','simplus':'\u2A24','simrarr':'\u2972','slarr':'\u2190','SmallCircle':'\u2218','smallsetminus':'\u2216','smashp':'\u2A33','smeparsl':'\u29E4','smid':'\u2223','smile':'\u2323','smt':'\u2AAA','smte':'\u2AAC','smtes':'\u2AAC\uFE00','softcy':'\u044C','SOFTcy':'\u042C','sol':'/','solb':'\u29C4','solbar':'\u233F','sopf':'\uD835\uDD64','Sopf':'\uD835\uDD4A','spades':'\u2660','spadesuit':'\u2660','spar':'\u2225','sqcap':'\u2293','sqcaps':'\u2293\uFE00','sqcup':'\u2294','sqcups':'\u2294\uFE00','Sqrt':'\u221A','sqsub':'\u228F','sqsube':'\u2291','sqsubset':'\u228F','sqsubseteq':'\u2291','sqsup':'\u2290','sqsupe':'\u2292','sqsupset':'\u2290','sqsupseteq':'\u2292','squ':'\u25A1','square':'\u25A1','Square':'\u25A1','SquareIntersection':'\u2293','SquareSubset':'\u228F','SquareSubsetEqual':'\u2291','SquareSuperset':'\u2290','SquareSupersetEqual':'\u2292','SquareUnion':'\u2294','squarf':'\u25AA','squf':'\u25AA','srarr':'\u2192','sscr':'\uD835\uDCC8','Sscr':'\uD835\uDCAE','ssetmn':'\u2216','ssmile':'\u2323','sstarf':'\u22C6','star':'\u2606','Star':'\u22C6','starf':'\u2605','straightepsilon':'\u03F5','straightphi':'\u03D5','strns':'\xAF','sub':'\u2282','Sub':'\u22D0','subdot':'\u2ABD','sube':'\u2286','subE':'\u2AC5','subedot':'\u2AC3','submult':'\u2AC1','subne':'\u228A','subnE':'\u2ACB','subplus':'\u2ABF','subrarr':'\u2979','subset':'\u2282','Subset':'\u22D0','subseteq':'\u2286','subseteqq':'\u2AC5','SubsetEqual':'\u2286','subsetneq':'\u228A','subsetneqq':'\u2ACB','subsim':'\u2AC7','subsub':'\u2AD5','subsup':'\u2AD3','succ':'\u227B','succapprox':'\u2AB8','succcurlyeq':'\u227D','Succeeds':'\u227B','SucceedsEqual':'\u2AB0','SucceedsSlantEqual':'\u227D','SucceedsTilde':'\u227F','succeq':'\u2AB0','succnapprox':'\u2ABA','succneqq':'\u2AB6','succnsim':'\u22E9','succsim':'\u227F','SuchThat':'\u220B','sum':'\u2211','Sum':'\u2211','sung':'\u266A','sup':'\u2283','Sup':'\u22D1','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','supdot':'\u2ABE','supdsub':'\u2AD8','supe':'\u2287','supE':'\u2AC6','supedot':'\u2AC4','Superset':'\u2283','SupersetEqual':'\u2287','suphsol':'\u27C9','suphsub':'\u2AD7','suplarr':'\u297B','supmult':'\u2AC2','supne':'\u228B','supnE':'\u2ACC','supplus':'\u2AC0','supset':'\u2283','Supset':'\u22D1','supseteq':'\u2287','supseteqq':'\u2AC6','supsetneq':'\u228B','supsetneqq':'\u2ACC','supsim':'\u2AC8','supsub':'\u2AD4','supsup':'\u2AD6','swarhk':'\u2926','swarr':'\u2199','swArr':'\u21D9','swarrow':'\u2199','swnwar':'\u292A','szlig':'\xDF','Tab':'\t','target':'\u2316','tau':'\u03C4','Tau':'\u03A4','tbrk':'\u23B4','tcaron':'\u0165','Tcaron':'\u0164','tcedil':'\u0163','Tcedil':'\u0162','tcy':'\u0442','Tcy':'\u0422','tdot':'\u20DB','telrec':'\u2315','tfr':'\uD835\uDD31','Tfr':'\uD835\uDD17','there4':'\u2234','therefore':'\u2234','Therefore':'\u2234','theta':'\u03B8','Theta':'\u0398','thetasym':'\u03D1','thetav':'\u03D1','thickapprox':'\u2248','thicksim':'\u223C','ThickSpace':'\u205F\u200A','thinsp':'\u2009','ThinSpace':'\u2009','thkap':'\u2248','thksim':'\u223C','thorn':'\xFE','THORN':'\xDE','tilde':'\u02DC','Tilde':'\u223C','TildeEqual':'\u2243','TildeFullEqual':'\u2245','TildeTilde':'\u2248','times':'\xD7','timesb':'\u22A0','timesbar':'\u2A31','timesd':'\u2A30','tint':'\u222D','toea':'\u2928','top':'\u22A4','topbot':'\u2336','topcir':'\u2AF1','topf':'\uD835\uDD65','Topf':'\uD835\uDD4B','topfork':'\u2ADA','tosa':'\u2929','tprime':'\u2034','trade':'\u2122','TRADE':'\u2122','triangle':'\u25B5','triangledown':'\u25BF','triangleleft':'\u25C3','trianglelefteq':'\u22B4','triangleq':'\u225C','triangleright':'\u25B9','trianglerighteq':'\u22B5','tridot':'\u25EC','trie':'\u225C','triminus':'\u2A3A','TripleDot':'\u20DB','triplus':'\u2A39','trisb':'\u29CD','tritime':'\u2A3B','trpezium':'\u23E2','tscr':'\uD835\uDCC9','Tscr':'\uD835\uDCAF','tscy':'\u0446','TScy':'\u0426','tshcy':'\u045B','TSHcy':'\u040B','tstrok':'\u0167','Tstrok':'\u0166','twixt':'\u226C','twoheadleftarrow':'\u219E','twoheadrightarrow':'\u21A0','uacute':'\xFA','Uacute':'\xDA','uarr':'\u2191','uArr':'\u21D1','Uarr':'\u219F','Uarrocir':'\u2949','ubrcy':'\u045E','Ubrcy':'\u040E','ubreve':'\u016D','Ubreve':'\u016C','ucirc':'\xFB','Ucirc':'\xDB','ucy':'\u0443','Ucy':'\u0423','udarr':'\u21C5','udblac':'\u0171','Udblac':'\u0170','udhar':'\u296E','ufisht':'\u297E','ufr':'\uD835\uDD32','Ufr':'\uD835\uDD18','ugrave':'\xF9','Ugrave':'\xD9','uHar':'\u2963','uharl':'\u21BF','uharr':'\u21BE','uhblk':'\u2580','ulcorn':'\u231C','ulcorner':'\u231C','ulcrop':'\u230F','ultri':'\u25F8','umacr':'\u016B','Umacr':'\u016A','uml':'\xA8','UnderBar':'_','UnderBrace':'\u23DF','UnderBracket':'\u23B5','UnderParenthesis':'\u23DD','Union':'\u22C3','UnionPlus':'\u228E','uogon':'\u0173','Uogon':'\u0172','uopf':'\uD835\uDD66','Uopf':'\uD835\uDD4C','uparrow':'\u2191','Uparrow':'\u21D1','UpArrow':'\u2191','UpArrowBar':'\u2912','UpArrowDownArrow':'\u21C5','updownarrow':'\u2195','Updownarrow':'\u21D5','UpDownArrow':'\u2195','UpEquilibrium':'\u296E','upharpoonleft':'\u21BF','upharpoonright':'\u21BE','uplus':'\u228E','UpperLeftArrow':'\u2196','UpperRightArrow':'\u2197','upsi':'\u03C5','Upsi':'\u03D2','upsih':'\u03D2','upsilon':'\u03C5','Upsilon':'\u03A5','UpTee':'\u22A5','UpTeeArrow':'\u21A5','upuparrows':'\u21C8','urcorn':'\u231D','urcorner':'\u231D','urcrop':'\u230E','uring':'\u016F','Uring':'\u016E','urtri':'\u25F9','uscr':'\uD835\uDCCA','Uscr':'\uD835\uDCB0','utdot':'\u22F0','utilde':'\u0169','Utilde':'\u0168','utri':'\u25B5','utrif':'\u25B4','uuarr':'\u21C8','uuml':'\xFC','Uuml':'\xDC','uwangle':'\u29A7','vangrt':'\u299C','varepsilon':'\u03F5','varkappa':'\u03F0','varnothing':'\u2205','varphi':'\u03D5','varpi':'\u03D6','varpropto':'\u221D','varr':'\u2195','vArr':'\u21D5','varrho':'\u03F1','varsigma':'\u03C2','varsubsetneq':'\u228A\uFE00','varsubsetneqq':'\u2ACB\uFE00','varsupsetneq':'\u228B\uFE00','varsupsetneqq':'\u2ACC\uFE00','vartheta':'\u03D1','vartriangleleft':'\u22B2','vartriangleright':'\u22B3','vBar':'\u2AE8','Vbar':'\u2AEB','vBarv':'\u2AE9','vcy':'\u0432','Vcy':'\u0412','vdash':'\u22A2','vDash':'\u22A8','Vdash':'\u22A9','VDash':'\u22AB','Vdashl':'\u2AE6','vee':'\u2228','Vee':'\u22C1','veebar':'\u22BB','veeeq':'\u225A','vellip':'\u22EE','verbar':'|','Verbar':'\u2016','vert':'|','Vert':'\u2016','VerticalBar':'\u2223','VerticalLine':'|','VerticalSeparator':'\u2758','VerticalTilde':'\u2240','VeryThinSpace':'\u200A','vfr':'\uD835\uDD33','Vfr':'\uD835\uDD19','vltri':'\u22B2','vnsub':'\u2282\u20D2','vnsup':'\u2283\u20D2','vopf':'\uD835\uDD67','Vopf':'\uD835\uDD4D','vprop':'\u221D','vrtri':'\u22B3','vscr':'\uD835\uDCCB','Vscr':'\uD835\uDCB1','vsubne':'\u228A\uFE00','vsubnE':'\u2ACB\uFE00','vsupne':'\u228B\uFE00','vsupnE':'\u2ACC\uFE00','Vvdash':'\u22AA','vzigzag':'\u299A','wcirc':'\u0175','Wcirc':'\u0174','wedbar':'\u2A5F','wedge':'\u2227','Wedge':'\u22C0','wedgeq':'\u2259','weierp':'\u2118','wfr':'\uD835\uDD34','Wfr':'\uD835\uDD1A','wopf':'\uD835\uDD68','Wopf':'\uD835\uDD4E','wp':'\u2118','wr':'\u2240','wreath':'\u2240','wscr':'\uD835\uDCCC','Wscr':'\uD835\uDCB2','xcap':'\u22C2','xcirc':'\u25EF','xcup':'\u22C3','xdtri':'\u25BD','xfr':'\uD835\uDD35','Xfr':'\uD835\uDD1B','xharr':'\u27F7','xhArr':'\u27FA','xi':'\u03BE','Xi':'\u039E','xlarr':'\u27F5','xlArr':'\u27F8','xmap':'\u27FC','xnis':'\u22FB','xodot':'\u2A00','xopf':'\uD835\uDD69','Xopf':'\uD835\uDD4F','xoplus':'\u2A01','xotime':'\u2A02','xrarr':'\u27F6','xrArr':'\u27F9','xscr':'\uD835\uDCCD','Xscr':'\uD835\uDCB3','xsqcup':'\u2A06','xuplus':'\u2A04','xutri':'\u25B3','xvee':'\u22C1','xwedge':'\u22C0','yacute':'\xFD','Yacute':'\xDD','yacy':'\u044F','YAcy':'\u042F','ycirc':'\u0177','Ycirc':'\u0176','ycy':'\u044B','Ycy':'\u042B','yen':'\xA5','yfr':'\uD835\uDD36','Yfr':'\uD835\uDD1C','yicy':'\u0457','YIcy':'\u0407','yopf':'\uD835\uDD6A','Yopf':'\uD835\uDD50','yscr':'\uD835\uDCCE','Yscr':'\uD835\uDCB4','yucy':'\u044E','YUcy':'\u042E','yuml':'\xFF','Yuml':'\u0178','zacute':'\u017A','Zacute':'\u0179','zcaron':'\u017E','Zcaron':'\u017D','zcy':'\u0437','Zcy':'\u0417','zdot':'\u017C','Zdot':'\u017B','zeetrf':'\u2128','ZeroWidthSpace':'\u200B','zeta':'\u03B6','Zeta':'\u0396','zfr':'\uD835\uDD37','Zfr':'\u2128','zhcy':'\u0436','ZHcy':'\u0416','zigrarr':'\u21DD','zopf':'\uD835\uDD6B','Zopf':'\u2124','zscr':'\uD835\uDCCF','Zscr':'\uD835\uDCB5','zwj':'\u200D','zwnj':'\u200C'};
-       var decodeMapLegacy = {'aacute':'\xE1','Aacute':'\xC1','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','aelig':'\xE6','AElig':'\xC6','agrave':'\xE0','Agrave':'\xC0','amp':'&','AMP':'&','aring':'\xE5','Aring':'\xC5','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','brvbar':'\xA6','ccedil':'\xE7','Ccedil':'\xC7','cedil':'\xB8','cent':'\xA2','copy':'\xA9','COPY':'\xA9','curren':'\xA4','deg':'\xB0','divide':'\xF7','eacute':'\xE9','Eacute':'\xC9','ecirc':'\xEA','Ecirc':'\xCA','egrave':'\xE8','Egrave':'\xC8','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','frac12':'\xBD','frac14':'\xBC','frac34':'\xBE','gt':'>','GT':'>','iacute':'\xED','Iacute':'\xCD','icirc':'\xEE','Icirc':'\xCE','iexcl':'\xA1','igrave':'\xEC','Igrave':'\xCC','iquest':'\xBF','iuml':'\xEF','Iuml':'\xCF','laquo':'\xAB','lt':'<','LT':'<','macr':'\xAF','micro':'\xB5','middot':'\xB7','nbsp':'\xA0','not':'\xAC','ntilde':'\xF1','Ntilde':'\xD1','oacute':'\xF3','Oacute':'\xD3','ocirc':'\xF4','Ocirc':'\xD4','ograve':'\xF2','Ograve':'\xD2','ordf':'\xAA','ordm':'\xBA','oslash':'\xF8','Oslash':'\xD8','otilde':'\xF5','Otilde':'\xD5','ouml':'\xF6','Ouml':'\xD6','para':'\xB6','plusmn':'\xB1','pound':'\xA3','quot':'"','QUOT':'"','raquo':'\xBB','reg':'\xAE','REG':'\xAE','sect':'\xA7','shy':'\xAD','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','szlig':'\xDF','thorn':'\xFE','THORN':'\xDE','times':'\xD7','uacute':'\xFA','Uacute':'\xDA','ucirc':'\xFB','Ucirc':'\xDB','ugrave':'\xF9','Ugrave':'\xD9','uml':'\xA8','uuml':'\xFC','Uuml':'\xDC','yacute':'\xFD','Yacute':'\xDD','yen':'\xA5','yuml':'\xFF'};
-       var decodeMapNumeric = {'0':'\uFFFD','128':'\u20AC','130':'\u201A','131':'\u0192','132':'\u201E','133':'\u2026','134':'\u2020','135':'\u2021','136':'\u02C6','137':'\u2030','138':'\u0160','139':'\u2039','140':'\u0152','142':'\u017D','145':'\u2018','146':'\u2019','147':'\u201C','148':'\u201D','149':'\u2022','150':'\u2013','151':'\u2014','152':'\u02DC','153':'\u2122','154':'\u0161','155':'\u203A','156':'\u0153','158':'\u017E','159':'\u0178'};
-       var invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111];
+  /**
+   * Sort the given array in-place with the given comparator function.
+   *
+   * @param {Array} ary
+   *        An array to sort.
+   * @param {function} comparator
+   *        Function to use to compare two items.
+   */
+  exports.quickSort = function (ary, comparator) {
+    doQuickSort(ary, comparator, 0, ary.length - 1);
+  };
 
-       /*--------------------------------------------------------------------------*/
+});
 
-       var stringFromCharCode = String.fromCharCode;
+},{"amdefine":1}],74:[function(require,module,exports){
+/* -*- Mode: js; js-indent-level: 2; -*- */
+/*
+ * Copyright 2011 Mozilla Foundation and contributors
+ * Licensed under the New BSD license. See LICENSE or:
+ * http://opensource.org/licenses/BSD-3-Clause
+ */
+if (typeof define !== 'function') {
+    var define = require('amdefine')(module, require);
+}
+define(function (require, exports, module) {
 
-       var object = {};
-       var hasOwnProperty = object.hasOwnProperty;
-       var has = function(object, propertyName) {
-               return hasOwnProperty.call(object, propertyName);
-       };
+  var util = require('./util');
+  var binarySearch = require('./binary-search');
+  var ArraySet = require('./array-set').ArraySet;
+  var base64VLQ = require('./base64-vlq');
+  var quickSort = require('./quick-sort').quickSort;
 
-       var contains = function(array, value) {
-               var index = -1;
-               var length = array.length;
-               while (++index < length) {
-                       if (array[index] == value) {
-                               return true;
-                       }
-               }
-               return false;
-       };
+  function SourceMapConsumer(aSourceMap) {
+    var sourceMap = aSourceMap;
+    if (typeof aSourceMap === 'string') {
+      sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
+    }
 
-       var merge = function(options, defaults) {
-               if (!options) {
-                       return defaults;
-               }
-               var result = {};
-               var key;
-               for (key in defaults) {
-                       // A `hasOwnProperty` check is not needed here, since only recognized
-                       // option names are used anyway. Any others are ignored.
-                       result[key] = has(options, key) ? options[key] : defaults[key];
-               }
-               return result;
-       };
+    return sourceMap.sections != null
+      ? new IndexedSourceMapConsumer(sourceMap)
+      : new BasicSourceMapConsumer(sourceMap);
+  }
 
-       // Modified version of `ucs2encode`; see https://mths.be/punycode.
-       var codePointToSymbol = function(codePoint, strict) {
-               var output = '';
-               if ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) {
-                       // See issue #4:
-                       // “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is
-                       // greater than 0x10FFFF, then this is a parse error. Return a U+FFFD
-                       // REPLACEMENT CHARACTER.”
-                       if (strict) {
-                               parseError('character reference outside the permissible Unicode range');
-                       }
-                       return '\uFFFD';
-               }
-               if (has(decodeMapNumeric, codePoint)) {
-                       if (strict) {
-                               parseError('disallowed character reference');
-                       }
-                       return decodeMapNumeric[codePoint];
-               }
-               if (strict && contains(invalidReferenceCodePoints, codePoint)) {
-                       parseError('disallowed character reference');
-               }
-               if (codePoint > 0xFFFF) {
-                       codePoint -= 0x10000;
-                       output += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);
-                       codePoint = 0xDC00 | codePoint & 0x3FF;
-               }
-               output += stringFromCharCode(codePoint);
-               return output;
-       };
-
-       var hexEscape = function(symbol) {
-               return '&#x' + symbol.charCodeAt(0).toString(16).toUpperCase() + ';';
-       };
+  SourceMapConsumer.fromSourceMap = function(aSourceMap) {
+    return BasicSourceMapConsumer.fromSourceMap(aSourceMap);
+  }
 
-       var parseError = function(message) {
-               throw Error('Parse error: ' + message);
-       };
+  /**
+   * The version of the source mapping spec that we are consuming.
+   */
+  SourceMapConsumer.prototype._version = 3;
 
-       /*--------------------------------------------------------------------------*/
+  // `__generatedMappings` and `__originalMappings` are arrays that hold the
+  // parsed mapping coordinates from the source map's "mappings" attribute. They
+  // are lazily instantiated, accessed via the `_generatedMappings` and
+  // `_originalMappings` getters respectively, and we only parse the mappings
+  // and create these arrays once queried for a source location. We jump through
+  // these hoops because there can be many thousands of mappings, and parsing
+  // them is expensive, so we only want to do it if we must.
+  //
+  // Each object in the arrays is of the form:
+  //
+  //     {
+  //       generatedLine: The line number in the generated code,
+  //       generatedColumn: The column number in the generated code,
+  //       source: The path to the original source file that generated this
+  //               chunk of code,
+  //       originalLine: The line number in the original source that
+  //                     corresponds to this chunk of generated code,
+  //       originalColumn: The column number in the original source that
+  //                       corresponds to this chunk of generated code,
+  //       name: The name of the original symbol which generated this chunk of
+  //             code.
+  //     }
+  //
+  // All properties except for `generatedLine` and `generatedColumn` can be
+  // `null`.
+  //
+  // `_generatedMappings` is ordered by the generated positions.
+  //
+  // `_originalMappings` is ordered by the original positions.
 
-       var encode = function(string, options) {
-               options = merge(options, encode.options);
-               var strict = options.strict;
-               if (strict && regexInvalidRawCodePoint.test(string)) {
-                       parseError('forbidden code point');
-               }
-               var encodeEverything = options.encodeEverything;
-               var useNamedReferences = options.useNamedReferences;
-               var allowUnsafeSymbols = options.allowUnsafeSymbols;
-               if (encodeEverything) {
-                       // Encode ASCII symbols.
-                       string = string.replace(regexAsciiWhitelist, function(symbol) {
-                               // Use named references if requested & possible.
-                               if (useNamedReferences && has(encodeMap, symbol)) {
-                                       return '&' + encodeMap[symbol] + ';';
-                               }
-                               return hexEscape(symbol);
-                       });
-                       // Shorten a few escapes that represent two symbols, of which at least one
-                       // is within the ASCII range.
-                       if (useNamedReferences) {
-                               string = string
-                                       .replace(/&gt;\u20D2/g, '&nvgt;')
-                                       .replace(/&lt;\u20D2/g, '&nvlt;')
-                                       .replace(/&#x66;&#x6A;/g, '&fjlig;');
-                       }
-                       // Encode non-ASCII symbols.
-                       if (useNamedReferences) {
-                               // Encode non-ASCII symbols that can be replaced with a named reference.
-                               string = string.replace(regexEncodeNonAscii, function(string) {
-                                       // Note: there is no need to check `has(encodeMap, string)` here.
-                                       return '&' + encodeMap[string] + ';';
-                               });
-                       }
-                       // Note: any remaining non-ASCII symbols are handled outside of the `if`.
-               } else if (useNamedReferences) {
-                       // Apply named character references.
-                       // Encode `<>"'&` using named character references.
-                       if (!allowUnsafeSymbols) {
-                               string = string.replace(regexEscape, function(string) {
-                                       return '&' + encodeMap[string] + ';'; // no need to check `has()` here
-                               });
-                       }
-                       // Shorten escapes that represent two symbols, of which at least one is
-                       // `<>"'&`.
-                       string = string
-                               .replace(/&gt;\u20D2/g, '&nvgt;')
-                               .replace(/&lt;\u20D2/g, '&nvlt;');
-                       // Encode non-ASCII symbols that can be replaced with a named reference.
-                       string = string.replace(regexEncodeNonAscii, function(string) {
-                               // Note: there is no need to check `has(encodeMap, string)` here.
-                               return '&' + encodeMap[string] + ';';
-                       });
-               } else if (!allowUnsafeSymbols) {
-                       // Encode `<>"'&` using hexadecimal escapes, now that they’re not handled
-                       // using named character references.
-                       string = string.replace(regexEscape, hexEscape);
-               }
-               return string
-                       // Encode astral symbols.
-                       .replace(regexAstralSymbols, function($0) {
-                               // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
-                               var high = $0.charCodeAt(0);
-                               var low = $0.charCodeAt(1);
-                               var codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;
-                               return '&#x' + codePoint.toString(16).toUpperCase() + ';';
-                       })
-                       // Encode any remaining BMP symbols that are not printable ASCII symbols
-                       // using a hexadecimal escape.
-                       .replace(regexBmpWhitelist, hexEscape);
-       };
-       // Expose default options (so they can be overridden globally).
-       encode.options = {
-               'allowUnsafeSymbols': false,
-               'encodeEverything': false,
-               'strict': false,
-               'useNamedReferences': false
-       };
+  SourceMapConsumer.prototype.__generatedMappings = null;
+  Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {
+    get: function () {
+      if (!this.__generatedMappings) {
+        this._parseMappings(this._mappings, this.sourceRoot);
+      }
 
-       var decode = function(html, options) {
-               options = merge(options, decode.options);
-               var strict = options.strict;
-               if (strict && regexInvalidEntity.test(html)) {
-                       parseError('malformed character reference');
-               }
-               return html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7) {
-                       var codePoint;
-                       var semicolon;
-                       var decDigits;
-                       var hexDigits;
-                       var reference;
-                       var next;
-                       if ($1) {
-                               // Decode decimal escapes, e.g. `&#119558;`.
-                               decDigits = $1;
-                               semicolon = $2;
-                               if (strict && !semicolon) {
-                                       parseError('character reference was not terminated by a semicolon');
-                               }
-                               codePoint = parseInt(decDigits, 10);
-                               return codePointToSymbol(codePoint, strict);
-                       }
-                       if ($3) {
-                               // Decode hexadecimal escapes, e.g. `&#x1D306;`.
-                               hexDigits = $3;
-                               semicolon = $4;
-                               if (strict && !semicolon) {
-                                       parseError('character reference was not terminated by a semicolon');
-                               }
-                               codePoint = parseInt(hexDigits, 16);
-                               return codePointToSymbol(codePoint, strict);
-                       }
-                       if ($5) {
-                               // Decode named character references with trailing `;`, e.g. `&copy;`.
-                               reference = $5;
-                               if (has(decodeMap, reference)) {
-                                       return decodeMap[reference];
-                               } else {
-                                       // Ambiguous ampersand. https://mths.be/notes/ambiguous-ampersands
-                                       if (strict) {
-                                               parseError(
-                                                       'named character reference was not terminated by a semicolon'
-                                               );
-                                       }
-                                       return $0;
-                               }
-                       }
-                       // If we’re still here, it’s a legacy reference for sure. No need for an
-                       // extra `if` check.
-                       // Decode named character references without trailing `;`, e.g. `&amp`
-                       // This is only a parse error if it gets converted to `&`, or if it is
-                       // followed by `=` in an attribute context.
-                       reference = $6;
-                       next = $7;
-                       if (next && options.isAttributeValue) {
-                               if (strict && next == '=') {
-                                       parseError('`&` did not start a character reference');
-                               }
-                               return $0;
-                       } else {
-                               if (strict) {
-                                       parseError(
-                                               'named character reference was not terminated by a semicolon'
-                                       );
-                               }
-                               // Note: there is no need to check `has(decodeMapLegacy, reference)`.
-                               return decodeMapLegacy[reference] + (next || '');
-                       }
-               });
-       };
-       // Expose default options (so they can be overridden globally).
-       decode.options = {
-               'isAttributeValue': false,
-               'strict': false
-       };
+      return this.__generatedMappings;
+    }
+  });
 
-       var escape = function(string) {
-               return string.replace(regexEscape, function($0) {
-                       // Note: there is no need to check `has(escapeMap, $0)` here.
-                       return escapeMap[$0];
-               });
-       };
+  SourceMapConsumer.prototype.__originalMappings = null;
+  Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {
+    get: function () {
+      if (!this.__originalMappings) {
+        this._parseMappings(this._mappings, this.sourceRoot);
+      }
 
-       /*--------------------------------------------------------------------------*/
+      return this.__originalMappings;
+    }
+  });
 
-       var he = {
-               'version': '1.0.0',
-               'encode': encode,
-               'decode': decode,
-               'escape': escape,
-               'unescape': decode
-       };
+  SourceMapConsumer.prototype._charIsMappingSeparator =
+    function SourceMapConsumer_charIsMappingSeparator(aStr, index) {
+      var c = aStr.charAt(index);
+      return c === ";" || c === ",";
+    };
 
-       // Some AMD build optimizers, like r.js, check for specific condition patterns
-       // like the following:
-       if (
-               typeof define == 'function' &&
-               typeof define.amd == 'object' &&
-               define.amd
-       ) {
-               define(function() {
-                       return he;
-               });
-       }       else if (freeExports && !freeExports.nodeType) {
-               if (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+
-                       freeModule.exports = he;
-               } else { // in Narwhal or RingoJS v0.7.0-
-                       for (var key in he) {
-                               has(he, key) && (freeExports[key] = he[key]);
-                       }
-               }
-       } else { // in Rhino or a web browser
-               root.he = he;
-       }
+  /**
+   * Parse the mappings in a string in to a data structure which we can easily
+   * query (the ordered arrays in the `this.__generatedMappings` and
+   * `this.__originalMappings` properties).
+   */
+  SourceMapConsumer.prototype._parseMappings =
+    function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {
+      throw new Error("Subclasses must implement _parseMappings");
+    };
 
-}(this));
+  SourceMapConsumer.GENERATED_ORDER = 1;
+  SourceMapConsumer.ORIGINAL_ORDER = 2;
 
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{}],70:[function(require,module,exports){
-var http = require('http');
+  SourceMapConsumer.GREATEST_LOWER_BOUND = 1;
+  SourceMapConsumer.LEAST_UPPER_BOUND = 2;
 
-var https = module.exports;
+  /**
+   * Iterate over each mapping between an original source/line/column and a
+   * generated line/column in this source map.
+   *
+   * @param Function aCallback
+   *        The function that is called with each mapping.
+   * @param Object aContext
+   *        Optional. If specified, this object will be the value of `this` every
+   *        time that `aCallback` is called.
+   * @param aOrder
+   *        Either `SourceMapConsumer.GENERATED_ORDER` or
+   *        `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to
+   *        iterate over the mappings sorted by the generated file's line/column
+   *        order or the original's source/line/column order, respectively. Defaults to
+   *        `SourceMapConsumer.GENERATED_ORDER`.
+   */
+  SourceMapConsumer.prototype.eachMapping =
+    function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {
+      var context = aContext || null;
+      var order = aOrder || SourceMapConsumer.GENERATED_ORDER;
 
-for (var key in http) {
-    if (http.hasOwnProperty(key)) https[key] = http[key];
-};
+      var mappings;
+      switch (order) {
+      case SourceMapConsumer.GENERATED_ORDER:
+        mappings = this._generatedMappings;
+        break;
+      case SourceMapConsumer.ORIGINAL_ORDER:
+        mappings = this._originalMappings;
+        break;
+      default:
+        throw new Error("Unknown order of iteration.");
+      }
 
-https.request = function (params, cb) {
-    if (!params) params = {};
-    params.scheme = 'https';
-    params.protocol = 'https:';
-    return http.request.call(this, params, cb);
-}
+      var sourceRoot = this.sourceRoot;
+      mappings.map(function (mapping) {
+        var source = mapping.source === null ? null : this._sources.at(mapping.source);
+        if (source != null && sourceRoot != null) {
+          source = util.join(sourceRoot, source);
+        }
+        return {
+          source: source,
+          generatedLine: mapping.generatedLine,
+          generatedColumn: mapping.generatedColumn,
+          originalLine: mapping.originalLine,
+          originalColumn: mapping.originalColumn,
+          name: mapping.name === null ? null : this._names.at(mapping.name)
+        };
+      }, this).forEach(aCallback, context);
+    };
 
-},{"http":123}],71:[function(require,module,exports){
-exports.read = function (buffer, offset, isLE, mLen, nBytes) {
-  var e, m
-  var eLen = nBytes * 8 - mLen - 1
-  var eMax = (1 << eLen) - 1
-  var eBias = eMax >> 1
-  var nBits = -7
-  var i = isLE ? (nBytes - 1) : 0
-  var d = isLE ? -1 : 1
-  var s = buffer[offset + i]
+  /**
+   * Returns all generated line and column information for the original source,
+   * line, and column provided. If no column is provided, returns all mappings
+   * corresponding to a either the line we are searching for or the next
+   * closest line that has any mappings. Otherwise, returns all mappings
+   * corresponding to the given line and either the column we are searching for
+   * or the next closest column that has any offsets.
+   *
+   * The only argument is an object with the following properties:
+   *
+   *   - source: The filename of the original source.
+   *   - line: The line number in the original source.
+   *   - column: Optional. the column number in the original source.
+   *
+   * and an array of objects is returned, each with the following properties:
+   *
+   *   - line: The line number in the generated source, or null.
+   *   - column: The column number in the generated source, or null.
+   */
+  SourceMapConsumer.prototype.allGeneratedPositionsFor =
+    function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {
+      var line = util.getArg(aArgs, 'line');
 
-  i += d
+      // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping
+      // returns the index of the closest mapping less than the needle. By
+      // setting needle.originalColumn to 0, we thus find the last mapping for
+      // the given line, provided such a mapping exists.
+      var needle = {
+        source: util.getArg(aArgs, 'source'),
+        originalLine: line,
+        originalColumn: util.getArg(aArgs, 'column', 0)
+      };
 
-  e = s & ((1 << (-nBits)) - 1)
-  s >>= (-nBits)
-  nBits += eLen
-  for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}
+      if (this.sourceRoot != null) {
+        needle.source = util.relative(this.sourceRoot, needle.source);
+      }
+      if (!this._sources.has(needle.source)) {
+        return [];
+      }
+      needle.source = this._sources.indexOf(needle.source);
 
-  m = e & ((1 << (-nBits)) - 1)
-  e >>= (-nBits)
-  nBits += mLen
-  for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}
+      var mappings = [];
 
-  if (e === 0) {
-    e = 1 - eBias
-  } else if (e === eMax) {
-    return m ? NaN : ((s ? -1 : 1) * Infinity)
-  } else {
-    m = m + Math.pow(2, mLen)
-    e = e - eBias
-  }
-  return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
-}
+      var index = this._findMapping(needle,
+                                    this._originalMappings,
+                                    "originalLine",
+                                    "originalColumn",
+                                    util.compareByOriginalPositions,
+                                    binarySearch.LEAST_UPPER_BOUND);
+      if (index >= 0) {
+        var mapping = this._originalMappings[index];
 
-exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
-  var e, m, c
-  var eLen = nBytes * 8 - mLen - 1
-  var eMax = (1 << eLen) - 1
-  var eBias = eMax >> 1
-  var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
-  var i = isLE ? 0 : (nBytes - 1)
-  var d = isLE ? 1 : -1
-  var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
+        if (aArgs.column === undefined) {
+          var originalLine = mapping.originalLine;
 
-  value = Math.abs(value)
+          // Iterate until either we run out of mappings, or we run into
+          // a mapping for a different line than the one we found. Since
+          // mappings are sorted, this is guaranteed to find all mappings for
+          // the line we found.
+          while (mapping && mapping.originalLine === originalLine) {
+            mappings.push({
+              line: util.getArg(mapping, 'generatedLine', null),
+              column: util.getArg(mapping, 'generatedColumn', null),
+              lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
+            });
 
-  if (isNaN(value) || value === Infinity) {
-    m = isNaN(value) ? 1 : 0
-    e = eMax
-  } else {
-    e = Math.floor(Math.log(value) / Math.LN2)
-    if (value * (c = Math.pow(2, -e)) < 1) {
-      e--
-      c *= 2
-    }
-    if (e + eBias >= 1) {
-      value += rt / c
-    } else {
-      value += rt * Math.pow(2, 1 - eBias)
-    }
-    if (value * c >= 2) {
-      e++
-      c /= 2
-    }
+            mapping = this._originalMappings[++index];
+          }
+        } else {
+          var originalColumn = mapping.originalColumn;
 
-    if (e + eBias >= eMax) {
-      m = 0
-      e = eMax
-    } else if (e + eBias >= 1) {
-      m = (value * c - 1) * Math.pow(2, mLen)
-      e = e + eBias
-    } else {
-      m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
-      e = 0
-    }
-  }
+          // Iterate until either we run out of mappings, or we run into
+          // a mapping for a different line than the one we were searching for.
+          // Since mappings are sorted, this is guaranteed to find all mappings for
+          // the line we are searching for.
+          while (mapping &&
+                 mapping.originalLine === line &&
+                 mapping.originalColumn == originalColumn) {
+            mappings.push({
+              line: util.getArg(mapping, 'generatedLine', null),
+              column: util.getArg(mapping, 'generatedColumn', null),
+              lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
+            });
 
-  for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
+            mapping = this._originalMappings[++index];
+          }
+        }
+      }
 
-  e = (e << mLen) | m
-  eLen += mLen
-  for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
+      return mappings;
+    };
 
-  buffer[offset + i - d] |= s * 128
-}
+  exports.SourceMapConsumer = SourceMapConsumer;
 
-},{}],72:[function(require,module,exports){
-if (typeof Object.create === 'function') {
-  // implementation from standard node.js 'util' module
-  module.exports = function inherits(ctor, superCtor) {
-    ctor.super_ = superCtor
-    ctor.prototype = Object.create(superCtor.prototype, {
-      constructor: {
-        value: ctor,
-        enumerable: false,
-        writable: true,
-        configurable: true
-      }
-    });
-  };
-} else {
-  // old school shim for old browsers
-  module.exports = function inherits(ctor, superCtor) {
-    ctor.super_ = superCtor
-    var TempCtor = function () {}
-    TempCtor.prototype = superCtor.prototype
-    ctor.prototype = new TempCtor()
-    ctor.prototype.constructor = ctor
-  }
-}
-
-},{}],73:[function(require,module,exports){
-/**
- * Determine if an object is Buffer
- *
- * Author:   Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
- * License:  MIT
- *
- * `npm install is-buffer`
- */
-
-module.exports = function (obj) {
-  return !!(obj != null &&
-    (obj._isBuffer || // For Safari 5-7 (missing Object.prototype.constructor)
-      (obj.constructor &&
-      typeof obj.constructor.isBuffer === 'function' &&
-      obj.constructor.isBuffer(obj))
-    ))
-}
-
-},{}],74:[function(require,module,exports){
-var toString = {}.toString;
-
-module.exports = Array.isArray || function (arr) {
-  return toString.call(arr) == '[object Array]';
-};
-
-},{}],75:[function(require,module,exports){
-'use strict';
-var xmlChars = require('xml-char-classes');
-
-function getRange(re) {
-       return re.source.slice(1, -1);
-}
-
-// http://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-NCName
-module.exports = new RegExp('^[' + getRange(xmlChars.letter) + '_][' + getRange(xmlChars.letter) + getRange(xmlChars.digit) + '\\.\\-_' + getRange(xmlChars.combiningChar) + getRange(xmlChars.extender) + ']*$');
-
-},{"xml-char-classes":146}],76:[function(require,module,exports){
-exports.endianness = function () { return 'LE' };
-
-exports.hostname = function () {
-    if (typeof location !== 'undefined') {
-        return location.hostname
+  /**
+   * A BasicSourceMapConsumer instance represents a parsed source map which we can
+   * query for information about the original file positions by giving it a file
+   * position in the generated source.
+   *
+   * The only parameter is the raw source map (either as a JSON string, or
+   * already parsed to an object). According to the spec, source maps have the
+   * following attributes:
+   *
+   *   - version: Which version of the source map spec this map is following.
+   *   - sources: An array of URLs to the original source files.
+   *   - names: An array of identifiers which can be referrenced by individual mappings.
+   *   - sourceRoot: Optional. The URL root from which all sources are relative.
+   *   - sourcesContent: Optional. An array of contents of the original source files.
+   *   - mappings: A string of base64 VLQs which contain the actual mappings.
+   *   - file: Optional. The generated file this source map is associated with.
+   *
+   * Here is an example source map, taken from the source map spec[0]:
+   *
+   *     {
+   *       version : 3,
+   *       file: "out.js",
+   *       sourceRoot : "",
+   *       sources: ["foo.js", "bar.js"],
+   *       names: ["src", "maps", "are", "fun"],
+   *       mappings: "AA,AB;;ABCDE;"
+   *     }
+   *
+   * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#
+   */
+  function BasicSourceMapConsumer(aSourceMap) {
+    var sourceMap = aSourceMap;
+    if (typeof aSourceMap === 'string') {
+      sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
     }
-    else return '';
-};
-
-exports.loadavg = function () { return [] };
 
-exports.uptime = function () { return 0 };
+    var version = util.getArg(sourceMap, 'version');
+    var sources = util.getArg(sourceMap, 'sources');
+    // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which
+    // requires the array) to play nice here.
+    var names = util.getArg(sourceMap, 'names', []);
+    var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);
+    var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);
+    var mappings = util.getArg(sourceMap, 'mappings');
+    var file = util.getArg(sourceMap, 'file', null);
 
-exports.freemem = function () {
-    return Number.MAX_VALUE;
-};
+    // Once again, Sass deviates from the spec and supplies the version as a
+    // string rather than a number, so we use loose equality checking here.
+    if (version != this._version) {
+      throw new Error('Unsupported version: ' + version);
+    }
 
-exports.totalmem = function () {
-    return Number.MAX_VALUE;
-};
+    // Some source maps produce relative source paths like "./foo.js" instead of
+    // "foo.js".  Normalize these first so that future comparisons will succeed.
+    // See bugzil.la/1090768.
+    sources = sources.map(util.normalize);
 
-exports.cpus = function () { return [] };
+    // Pass `true` below to allow duplicate names and sources. While source maps
+    // are intended to be compressed and deduplicated, the TypeScript compiler
+    // sometimes generates source maps with duplicates in them. See Github issue
+    // #72 and bugzil.la/889492.
+    this._names = ArraySet.fromArray(names, true);
+    this._sources = ArraySet.fromArray(sources, true);
 
-exports.type = function () { return 'Browser' };
+    this.sourceRoot = sourceRoot;
+    this.sourcesContent = sourcesContent;
+    this._mappings = mappings;
+    this.file = file;
+  }
 
-exports.release = function () {
-    if (typeof navigator !== 'undefined') {
-        return navigator.appVersion;
-    }
-    return '';
-};
+  BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);
+  BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;
 
-exports.networkInterfaces
-= exports.getNetworkInterfaces
-= function () { return {} };
+  /**
+   * Create a BasicSourceMapConsumer from a SourceMapGenerator.
+   *
+   * @param SourceMapGenerator aSourceMap
+   *        The source map that will be consumed.
+   * @returns BasicSourceMapConsumer
+   */
+  BasicSourceMapConsumer.fromSourceMap =
+    function SourceMapConsumer_fromSourceMap(aSourceMap) {
+      var smc = Object.create(BasicSourceMapConsumer.prototype);
 
-exports.arch = function () { return 'javascript' };
+      var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);
+      var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);
+      smc.sourceRoot = aSourceMap._sourceRoot;
+      smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),
+                                                              smc.sourceRoot);
+      smc.file = aSourceMap._file;
 
-exports.platform = function () { return 'browser' };
+      // Because we are modifying the entries (by converting string sources and
+      // names to indices into the sources and names ArraySets), we have to make
+      // a copy of the entry or else bad things happen. Shared mutable state
+      // strikes again! See github issue #191.
 
-exports.tmpdir = exports.tmpDir = function () {
-    return '/tmp';
-};
+      var generatedMappings = aSourceMap._mappings.toArray().slice();
+      var destGeneratedMappings = smc.__generatedMappings = [];
+      var destOriginalMappings = smc.__originalMappings = [];
 
-exports.EOL = '\n';
+      for (var i = 0, length = generatedMappings.length; i < length; i++) {
+        var srcMapping = generatedMappings[i];
+        var destMapping = new Mapping;
+        destMapping.generatedLine = srcMapping.generatedLine;
+        destMapping.generatedColumn = srcMapping.generatedColumn;
 
-},{}],77:[function(require,module,exports){
-(function (process){
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// 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.
+        if (srcMapping.source) {
+          destMapping.source = sources.indexOf(srcMapping.source);
+          destMapping.originalLine = srcMapping.originalLine;
+          destMapping.originalColumn = srcMapping.originalColumn;
 
-// resolves . and .. elements in a path array with directory names there
-// must be no slashes, empty elements, or device names (c:\) in the array
-// (so also no leading and trailing slashes - it does not distinguish
-// relative and absolute paths)
-function normalizeArray(parts, allowAboveRoot) {
-  // if the path tries to go above the root, `up` ends up > 0
-  var up = 0;
-  for (var i = parts.length - 1; i >= 0; i--) {
-    var last = parts[i];
-    if (last === '.') {
-      parts.splice(i, 1);
-    } else if (last === '..') {
-      parts.splice(i, 1);
-      up++;
-    } else if (up) {
-      parts.splice(i, 1);
-      up--;
-    }
-  }
+          if (srcMapping.name) {
+            destMapping.name = names.indexOf(srcMapping.name);
+          }
 
-  // if the path is allowed to go above the root, restore leading ..s
-  if (allowAboveRoot) {
-    for (; up--; up) {
-      parts.unshift('..');
-    }
-  }
+          destOriginalMappings.push(destMapping);
+        }
 
-  return parts;
-}
+        destGeneratedMappings.push(destMapping);
+      }
 
-// Split a filename into [root, dir, basename, ext], unix version
-// 'root' is just a slash, or nothing.
-var splitPathRe =
-    /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
-var splitPath = function(filename) {
-  return splitPathRe.exec(filename).slice(1);
-};
+      quickSort(smc.__originalMappings, util.compareByOriginalPositions);
 
-// path.resolve([from ...], to)
-// posix version
-exports.resolve = function() {
-  var resolvedPath = '',
-      resolvedAbsolute = false;
+      return smc;
+    };
 
-  for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
-    var path = (i >= 0) ? arguments[i] : process.cwd();
+  /**
+   * The version of the source mapping spec that we are consuming.
+   */
+  BasicSourceMapConsumer.prototype._version = 3;
 
-    // Skip empty and invalid entries
-    if (typeof path !== 'string') {
-      throw new TypeError('Arguments to path.resolve must be strings');
-    } else if (!path) {
-      continue;
+  /**
+   * The list of original sources.
+   */
+  Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {
+    get: function () {
+      return this._sources.toArray().map(function (s) {
+        return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;
+      }, this);
     }
+  });
 
-    resolvedPath = path + '/' + resolvedPath;
-    resolvedAbsolute = path.charAt(0) === '/';
+  /**
+   * Provide the JIT with a nice shape / hidden class.
+   */
+  function Mapping() {
+    this.generatedLine = 0;
+    this.generatedColumn = 0;
+    this.source = null;
+    this.originalLine = null;
+    this.originalColumn = null;
+    this.name = null;
   }
 
-  // At this point the path should be resolved to a full absolute path, but
-  // handle relative paths to be safe (might happen when process.cwd() fails)
-
-  // Normalize the path
-  resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {
-    return !!p;
-  }), !resolvedAbsolute).join('/');
-
-  return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
-};
-
-// path.normalize(path)
-// posix version
-exports.normalize = function(path) {
-  var isAbsolute = exports.isAbsolute(path),
-      trailingSlash = substr(path, -1) === '/';
+  /**
+   * Parse the mappings in a string in to a data structure which we can easily
+   * query (the ordered arrays in the `this.__generatedMappings` and
+   * `this.__originalMappings` properties).
+   */
+  BasicSourceMapConsumer.prototype._parseMappings =
+    function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {
+      var generatedLine = 1;
+      var previousGeneratedColumn = 0;
+      var previousOriginalLine = 0;
+      var previousOriginalColumn = 0;
+      var previousSource = 0;
+      var previousName = 0;
+      var length = aStr.length;
+      var index = 0;
+      var cachedSegments = {};
+      var temp = {};
+      var originalMappings = [];
+      var generatedMappings = [];
+      var mapping, str, segment, end, value;
 
-  // Normalize the path
-  path = normalizeArray(filter(path.split('/'), function(p) {
-    return !!p;
-  }), !isAbsolute).join('/');
+      while (index < length) {
+        if (aStr.charAt(index) === ';') {
+          generatedLine++;
+          index++;
+          previousGeneratedColumn = 0;
+        }
+        else if (aStr.charAt(index) === ',') {
+          index++;
+        }
+        else {
+          mapping = new Mapping();
+          mapping.generatedLine = generatedLine;
 
-  if (!path && !isAbsolute) {
-    path = '.';
-  }
-  if (path && trailingSlash) {
-    path += '/';
-  }
+          // Because each offset is encoded relative to the previous one,
+          // many segments often have the same encoding. We can exploit this
+          // fact by caching the parsed variable length fields of each segment,
+          // allowing us to avoid a second parse if we encounter the same
+          // segment again.
+          for (end = index; end < length; end++) {
+            if (this._charIsMappingSeparator(aStr, end)) {
+              break;
+            }
+          }
+          str = aStr.slice(index, end);
 
-  return (isAbsolute ? '/' : '') + path;
-};
+          segment = cachedSegments[str];
+          if (segment) {
+            index += str.length;
+          } else {
+            segment = [];
+            while (index < end) {
+              base64VLQ.decode(aStr, index, temp);
+              value = temp.value;
+              index = temp.rest;
+              segment.push(value);
+            }
 
-// posix version
-exports.isAbsolute = function(path) {
-  return path.charAt(0) === '/';
-};
+            if (segment.length === 2) {
+              throw new Error('Found a source, but no line and column');
+            }
 
-// posix version
-exports.join = function() {
-  var paths = Array.prototype.slice.call(arguments, 0);
-  return exports.normalize(filter(paths, function(p, index) {
-    if (typeof p !== 'string') {
-      throw new TypeError('Arguments to path.join must be strings');
-    }
-    return p;
-  }).join('/'));
-};
+            if (segment.length === 3) {
+              throw new Error('Found a source and line, but no column');
+            }
 
+            cachedSegments[str] = segment;
+          }
 
-// path.relative(from, to)
-// posix version
-exports.relative = function(from, to) {
-  from = exports.resolve(from).substr(1);
-  to = exports.resolve(to).substr(1);
+          // Generated column.
+          mapping.generatedColumn = previousGeneratedColumn + segment[0];
+          previousGeneratedColumn = mapping.generatedColumn;
 
-  function trim(arr) {
-    var start = 0;
-    for (; start < arr.length; start++) {
-      if (arr[start] !== '') break;
-    }
+          if (segment.length > 1) {
+            // Original source.
+            mapping.source = previousSource + segment[1];
+            previousSource += segment[1];
 
-    var end = arr.length - 1;
-    for (; end >= 0; end--) {
-      if (arr[end] !== '') break;
-    }
+            // Original line.
+            mapping.originalLine = previousOriginalLine + segment[2];
+            previousOriginalLine = mapping.originalLine;
+            // Lines are stored 0-based
+            mapping.originalLine += 1;
 
-    if (start > end) return [];
-    return arr.slice(start, end - start + 1);
-  }
+            // Original column.
+            mapping.originalColumn = previousOriginalColumn + segment[3];
+            previousOriginalColumn = mapping.originalColumn;
 
-  var fromParts = trim(from.split('/'));
-  var toParts = trim(to.split('/'));
+            if (segment.length > 4) {
+              // Original name.
+              mapping.name = previousName + segment[4];
+              previousName += segment[4];
+            }
+          }
 
-  var length = Math.min(fromParts.length, toParts.length);
-  var samePartsLength = length;
-  for (var i = 0; i < length; i++) {
-    if (fromParts[i] !== toParts[i]) {
-      samePartsLength = i;
-      break;
-    }
-  }
+          generatedMappings.push(mapping);
+          if (typeof mapping.originalLine === 'number') {
+            originalMappings.push(mapping);
+          }
+        }
+      }
 
-  var outputParts = [];
-  for (var i = samePartsLength; i < fromParts.length; i++) {
-    outputParts.push('..');
-  }
+      quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);
+      this.__generatedMappings = generatedMappings;
 
-  outputParts = outputParts.concat(toParts.slice(samePartsLength));
+      quickSort(originalMappings, util.compareByOriginalPositions);
+      this.__originalMappings = originalMappings;
+    };
 
-  return outputParts.join('/');
-};
+  /**
+   * Find the mapping that best matches the hypothetical "needle" mapping that
+   * we are searching for in the given "haystack" of mappings.
+   */
+  BasicSourceMapConsumer.prototype._findMapping =
+    function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,
+                                           aColumnName, aComparator, aBias) {
+      // To return the position we are searching for, we must first find the
+      // mapping for the given position and then return the opposite position it
+      // points to. Because the mappings are sorted, we can use binary search to
+      // find the best mapping.
 
-exports.sep = '/';
-exports.delimiter = ':';
+      if (aNeedle[aLineName] <= 0) {
+        throw new TypeError('Line must be greater than or equal to 1, got '
+                            + aNeedle[aLineName]);
+      }
+      if (aNeedle[aColumnName] < 0) {
+        throw new TypeError('Column must be greater than or equal to 0, got '
+                            + aNeedle[aColumnName]);
+      }
 
-exports.dirname = function(path) {
-  var result = splitPath(path),
-      root = result[0],
-      dir = result[1];
+      return binarySearch.search(aNeedle, aMappings, aComparator, aBias);
+    };
 
-  if (!root && !dir) {
-    // No dirname whatsoever
-    return '.';
-  }
+  /**
+   * Compute the last column for each generated mapping. The last column is
+   * inclusive.
+   */
+  BasicSourceMapConsumer.prototype.computeColumnSpans =
+    function SourceMapConsumer_computeColumnSpans() {
+      for (var index = 0; index < this._generatedMappings.length; ++index) {
+        var mapping = this._generatedMappings[index];
 
-  if (dir) {
-    // It has a dirname, strip trailing slash
-    dir = dir.substr(0, dir.length - 1);
-  }
+        // Mappings do not contain a field for the last generated columnt. We
+        // can come up with an optimistic estimate, however, by assuming that
+        // mappings are contiguous (i.e. given two consecutive mappings, the
+        // first mapping ends where the second one starts).
+        if (index + 1 < this._generatedMappings.length) {
+          var nextMapping = this._generatedMappings[index + 1];
 
-  return root + dir;
-};
+          if (mapping.generatedLine === nextMapping.generatedLine) {
+            mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;
+            continue;
+          }
+        }
 
+        // The last mapping for each line spans the entire line.
+        mapping.lastGeneratedColumn = Infinity;
+      }
+    };
 
-exports.basename = function(path, ext) {
-  var f = splitPath(path)[2];
-  // TODO: make this comparison case-insensitive on windows?
-  if (ext && f.substr(-1 * ext.length) === ext) {
-    f = f.substr(0, f.length - ext.length);
-  }
-  return f;
-};
-
-
-exports.extname = function(path) {
-  return splitPath(path)[3];
-};
-
-function filter (xs, f) {
-    if (xs.filter) return xs.filter(f);
-    var res = [];
-    for (var i = 0; i < xs.length; i++) {
-        if (f(xs[i], i, xs)) res.push(xs[i]);
-    }
-    return res;
-}
+  /**
+   * Returns the original source, line, and column information for the generated
+   * source's line and column positions provided. The only argument is an object
+   * with the following properties:
+   *
+   *   - line: The line number in the generated source.
+   *   - column: The column number in the generated source.
+   *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or
+   *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the
+   *     closest element that is smaller than or greater than the one we are
+   *     searching for, respectively, if the exact element cannot be found.
+   *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.
+   *
+   * and an object is returned with the following properties:
+   *
+   *   - source: The original source file, or null.
+   *   - line: The line number in the original source, or null.
+   *   - column: The column number in the original source, or null.
+   *   - name: The original identifier, or null.
+   */
+  BasicSourceMapConsumer.prototype.originalPositionFor =
+    function SourceMapConsumer_originalPositionFor(aArgs) {
+      var needle = {
+        generatedLine: util.getArg(aArgs, 'line'),
+        generatedColumn: util.getArg(aArgs, 'column')
+      };
 
-// String.prototype.substr - negative index don't work in IE8
-var substr = 'ab'.substr(-1) === 'b'
-    ? function (str, start, len) { return str.substr(start, len) }
-    : function (str, start, len) {
-        if (start < 0) start = str.length + start;
-        return str.substr(start, len);
-    }
-;
+      var index = this._findMapping(
+        needle,
+        this._generatedMappings,
+        "generatedLine",
+        "generatedColumn",
+        util.compareByGeneratedPositionsDeflated,
+        util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)
+      );
 
-}).call(this,require('_process'))
-},{"_process":79}],78:[function(require,module,exports){
-(function (process){
-'use strict';
+      if (index >= 0) {
+        var mapping = this._generatedMappings[index];
 
-if (!process.version ||
-    process.version.indexOf('v0.') === 0 ||
-    process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {
-  module.exports = nextTick;
-} else {
-  module.exports = process.nextTick;
-}
+        if (mapping.generatedLine === needle.generatedLine) {
+          var source = util.getArg(mapping, 'source', null);
+          if (source !== null) {
+            source = this._sources.at(source);
+            if (this.sourceRoot != null) {
+              source = util.join(this.sourceRoot, source);
+            }
+          }
+          var name = util.getArg(mapping, 'name', null);
+          if (name !== null) {
+            name = this._names.at(name);
+          }
+          return {
+            source: source,
+            line: util.getArg(mapping, 'originalLine', null),
+            column: util.getArg(mapping, 'originalColumn', null),
+            name: name
+          };
+        }
+      }
 
-function nextTick(fn) {
-  var args = new Array(arguments.length - 1);
-  var i = 0;
-  while (i < args.length) {
-    args[i++] = arguments[i];
-  }
-  process.nextTick(function afterTick() {
-    fn.apply(null, args);
-  });
-}
+      return {
+        source: null,
+        line: null,
+        column: null,
+        name: null
+      };
+    };
 
-}).call(this,require('_process'))
-},{"_process":79}],79:[function(require,module,exports){
-// shim for using process in browser
+  /**
+   * Return true if we have the source content for every source in the source
+   * map, false otherwise.
+   */
+  BasicSourceMapConsumer.prototype.hasContentsOfAllSources =
+    function BasicSourceMapConsumer_hasContentsOfAllSources() {
+      if (!this.sourcesContent) {
+        return false;
+      }
+      return this.sourcesContent.length >= this._sources.size() &&
+        !this.sourcesContent.some(function (sc) { return sc == null; });
+    };
 
-var process = module.exports = {};
-var queue = [];
-var draining = false;
-var currentQueue;
-var queueIndex = -1;
+  /**
+   * Returns the original source content. The only argument is the url of the
+   * original source file. Returns null if no original source content is
+   * availible.
+   */
+  BasicSourceMapConsumer.prototype.sourceContentFor =
+    function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {
+      if (!this.sourcesContent) {
+        return null;
+      }
 
-function cleanUpNextTick() {
-    draining = false;
-    if (currentQueue.length) {
-        queue = currentQueue.concat(queue);
-    } else {
-        queueIndex = -1;
-    }
-    if (queue.length) {
-        drainQueue();
-    }
-}
+      if (this.sourceRoot != null) {
+        aSource = util.relative(this.sourceRoot, aSource);
+      }
 
-function drainQueue() {
-    if (draining) {
-        return;
-    }
-    var timeout = setTimeout(cleanUpNextTick);
-    draining = true;
+      if (this._sources.has(aSource)) {
+        return this.sourcesContent[this._sources.indexOf(aSource)];
+      }
 
-    var len = queue.length;
-    while(len) {
-        currentQueue = queue;
-        queue = [];
-        while (++queueIndex < len) {
-            if (currentQueue) {
-                currentQueue[queueIndex].run();
-            }
+      var url;
+      if (this.sourceRoot != null
+          && (url = util.urlParse(this.sourceRoot))) {
+        // XXX: file:// URIs and absolute paths lead to unexpected behavior for
+        // many users. We can help them out when they expect file:// URIs to
+        // behave like it would if they were running a local HTTP server. See
+        // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.
+        var fileUriAbsPath = aSource.replace(/^file:\/\//, "");
+        if (url.scheme == "file"
+            && this._sources.has(fileUriAbsPath)) {
+          return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]
         }
-        queueIndex = -1;
-        len = queue.length;
-    }
-    currentQueue = null;
-    draining = false;
-    clearTimeout(timeout);
-}
 
-process.nextTick = function (fun) {
-    var args = new Array(arguments.length - 1);
-    if (arguments.length > 1) {
-        for (var i = 1; i < arguments.length; i++) {
-            args[i - 1] = arguments[i];
+        if ((!url.path || url.path == "/")
+            && this._sources.has("/" + aSource)) {
+          return this.sourcesContent[this._sources.indexOf("/" + aSource)];
         }
-    }
-    queue.push(new Item(fun, args));
-    if (queue.length === 1 && !draining) {
-        setTimeout(drainQueue, 0);
-    }
-};
-
-// v8 likes predictible objects
-function Item(fun, array) {
-    this.fun = fun;
-    this.array = array;
-}
-Item.prototype.run = function () {
-    this.fun.apply(null, this.array);
-};
-process.title = 'browser';
-process.browser = true;
-process.env = {};
-process.argv = [];
-process.version = ''; // empty string to avoid regexp issues
-process.versions = {};
+      }
 
-function noop() {}
+      // This function is used recursively from
+      // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we
+      // don't want to throw if we can't find the source - we just want to
+      // return null, so we provide a flag to exit gracefully.
+      if (nullOnMissing) {
+        return null;
+      }
+      else {
+        throw new Error('"' + aSource + '" is not in the SourceMap.');
+      }
+    };
 
-process.on = noop;
-process.addListener = noop;
-process.once = noop;
-process.off = noop;
-process.removeListener = noop;
-process.removeAllListeners = noop;
-process.emit = noop;
+  /**
+   * Returns the generated line and column information for the original source,
+   * line, and column positions provided. The only argument is an object with
+   * the following properties:
+   *
+   *   - source: The filename of the original source.
+   *   - line: The line number in the original source.
+   *   - column: The column number in the original source.
+   *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or
+   *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the
+   *     closest element that is smaller than or greater than the one we are
+   *     searching for, respectively, if the exact element cannot be found.
+   *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.
+   *
+   * and an object is returned with the following properties:
+   *
+   *   - line: The line number in the generated source, or null.
+   *   - column: The column number in the generated source, or null.
+   */
+  BasicSourceMapConsumer.prototype.generatedPositionFor =
+    function SourceMapConsumer_generatedPositionFor(aArgs) {
+      var source = util.getArg(aArgs, 'source');
+      if (this.sourceRoot != null) {
+        source = util.relative(this.sourceRoot, source);
+      }
+      if (!this._sources.has(source)) {
+        return {
+          line: null,
+          column: null,
+          lastColumn: null
+        };
+      }
+      source = this._sources.indexOf(source);
 
-process.binding = function (name) {
-    throw new Error('process.binding is not supported');
-};
+      var needle = {
+        source: source,
+        originalLine: util.getArg(aArgs, 'line'),
+        originalColumn: util.getArg(aArgs, 'column')
+      };
 
-process.cwd = function () { return '/' };
-process.chdir = function (dir) {
-    throw new Error('process.chdir is not supported');
-};
-process.umask = function() { return 0; };
+      var index = this._findMapping(
+        needle,
+        this._originalMappings,
+        "originalLine",
+        "originalColumn",
+        util.compareByOriginalPositions,
+        util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)
+      );
 
-},{}],80:[function(require,module,exports){
-(function (global){
-/*! https://mths.be/punycode v1.4.1 by @mathias */
-;(function(root) {
+      if (index >= 0) {
+        var mapping = this._originalMappings[index];
 
-       /** Detect free variables */
-       var freeExports = typeof exports == 'object' && exports &&
-               !exports.nodeType && exports;
-       var freeModule = typeof module == 'object' && module &&
-               !module.nodeType && module;
-       var freeGlobal = typeof global == 'object' && global;
-       if (
-               freeGlobal.global === freeGlobal ||
-               freeGlobal.window === freeGlobal ||
-               freeGlobal.self === freeGlobal
-       ) {
-               root = freeGlobal;
-       }
+        if (mapping.source === needle.source) {
+          return {
+            line: util.getArg(mapping, 'generatedLine', null),
+            column: util.getArg(mapping, 'generatedColumn', null),
+            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
+          };
+        }
+      }
 
-       /**
-        * The `punycode` object.
-        * @name punycode
-        * @type Object
-        */
-       var punycode,
+      return {
+        line: null,
+        column: null,
+        lastColumn: null
+      };
+    };
 
-       /** Highest positive signed 32-bit float value */
-       maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1
+  exports.BasicSourceMapConsumer = BasicSourceMapConsumer;
 
-       /** Bootstring parameters */
-       base = 36,
-       tMin = 1,
-       tMax = 26,
-       skew = 38,
-       damp = 700,
-       initialBias = 72,
-       initialN = 128, // 0x80
-       delimiter = '-', // '\x2D'
+  /**
+   * An IndexedSourceMapConsumer instance represents a parsed source map which
+   * we can query for information. It differs from BasicSourceMapConsumer in
+   * that it takes "indexed" source maps (i.e. ones with a "sections" field) as
+   * input.
+   *
+   * The only parameter is a raw source map (either as a JSON string, or already
+   * parsed to an object). According to the spec for indexed source maps, they
+   * have the following attributes:
+   *
+   *   - version: Which version of the source map spec this map is following.
+   *   - file: Optional. The generated file this source map is associated with.
+   *   - sections: A list of section definitions.
+   *
+   * Each value under the "sections" field has two fields:
+   *   - offset: The offset into the original specified at which this section
+   *       begins to apply, defined as an object with a "line" and "column"
+   *       field.
+   *   - map: A source map definition. This source map could also be indexed,
+   *       but doesn't have to be.
+   *
+   * Instead of the "map" field, it's also possible to have a "url" field
+   * specifying a URL to retrieve a source map from, but that's currently
+   * unsupported.
+   *
+   * Here's an example source map, taken from the source map spec[0], but
+   * modified to omit a section which uses the "url" field.
+   *
+   *  {
+   *    version : 3,
+   *    file: "app.js",
+   *    sections: [{
+   *      offset: {line:100, column:10},
+   *      map: {
+   *        version : 3,
+   *        file: "section.js",
+   *        sources: ["foo.js", "bar.js"],
+   *        names: ["src", "maps", "are", "fun"],
+   *        mappings: "AAAA,E;;ABCDE;"
+   *      }
+   *    }],
+   *  }
+   *
+   * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt
+   */
+  function IndexedSourceMapConsumer(aSourceMap) {
+    var sourceMap = aSourceMap;
+    if (typeof aSourceMap === 'string') {
+      sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
+    }
 
-       /** Regular expressions */
-       regexPunycode = /^xn--/,
-       regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars
-       regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators
+    var version = util.getArg(sourceMap, 'version');
+    var sections = util.getArg(sourceMap, 'sections');
 
-       /** Error messages */
-       errors = {
-               'overflow': 'Overflow: input needs wider integers to process',
-               'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
-               'invalid-input': 'Invalid input'
-       },
+    if (version != this._version) {
+      throw new Error('Unsupported version: ' + version);
+    }
 
-       /** Convenience shortcuts */
-       baseMinusTMin = base - tMin,
-       floor = Math.floor,
-       stringFromCharCode = String.fromCharCode,
+    this._sources = new ArraySet();
+    this._names = new ArraySet();
 
-       /** Temporary variable */
-       key;
+    var lastOffset = {
+      line: -1,
+      column: 0
+    };
+    this._sections = sections.map(function (s) {
+      if (s.url) {
+        // The url field will require support for asynchronicity.
+        // See https://github.com/mozilla/source-map/issues/16
+        throw new Error('Support for url field in sections not implemented.');
+      }
+      var offset = util.getArg(s, 'offset');
+      var offsetLine = util.getArg(offset, 'line');
+      var offsetColumn = util.getArg(offset, 'column');
 
-       /*--------------------------------------------------------------------------*/
+      if (offsetLine < lastOffset.line ||
+          (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {
+        throw new Error('Section offsets must be ordered and non-overlapping.');
+      }
+      lastOffset = offset;
 
-       /**
-        * A generic error utility function.
-        * @private
-        * @param {String} type The error type.
-        * @returns {Error} Throws a `RangeError` with the applicable error message.
-        */
-       function error(type) {
-               throw new RangeError(errors[type]);
-       }
+      return {
+        generatedOffset: {
+          // The offset fields are 0-based, but we use 1-based indices when
+          // encoding/decoding from VLQ.
+          generatedLine: offsetLine + 1,
+          generatedColumn: offsetColumn + 1
+        },
+        consumer: new SourceMapConsumer(util.getArg(s, 'map'))
+      }
+    });
+  }
 
-       /**
-        * A generic `Array#map` utility function.
-        * @private
-        * @param {Array} array The array to iterate over.
-        * @param {Function} callback The function that gets called for every array
-        * item.
-        * @returns {Array} A new array of values returned by the callback function.
-        */
-       function map(array, fn) {
-               var length = array.length;
-               var result = [];
-               while (length--) {
-                       result[length] = fn(array[length]);
-               }
-               return result;
-       }
+  IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);
+  IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;
 
-       /**
-        * A simple `Array#map`-like wrapper to work with domain name strings or email
-        * addresses.
-        * @private
-        * @param {String} domain The domain name or email address.
-        * @param {Function} callback The function that gets called for every
-        * character.
-        * @returns {Array} A new string of characters returned by the callback
-        * function.
-        */
-       function mapDomain(string, fn) {
-               var parts = string.split('@');
-               var result = '';
-               if (parts.length > 1) {
-                       // In email addresses, only the domain name should be punycoded. Leave
-                       // the local part (i.e. everything up to `@`) intact.
-                       result = parts[0] + '@';
-                       string = parts[1];
-               }
-               // Avoid `split(regex)` for IE8 compatibility. See #17.
-               string = string.replace(regexSeparators, '\x2E');
-               var labels = string.split('.');
-               var encoded = map(labels, fn).join('.');
-               return result + encoded;
-       }
+  /**
+   * The version of the source mapping spec that we are consuming.
+   */
+  IndexedSourceMapConsumer.prototype._version = 3;
 
-       /**
-        * Creates an array containing the numeric code points of each Unicode
-        * character in the string. While JavaScript uses UCS-2 internally,
-        * this function will convert a pair of surrogate halves (each of which
-        * UCS-2 exposes as separate characters) into a single code point,
-        * matching UTF-16.
-        * @see `punycode.ucs2.encode`
-        * @see <https://mathiasbynens.be/notes/javascript-encoding>
-        * @memberOf punycode.ucs2
-        * @name decode
-        * @param {String} string The Unicode input string (UCS-2).
-        * @returns {Array} The new array of code points.
-        */
-       function ucs2decode(string) {
-               var output = [],
-                   counter = 0,
-                   length = string.length,
-                   value,
-                   extra;
-               while (counter < length) {
-                       value = string.charCodeAt(counter++);
-                       if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
-                               // high surrogate, and there is a next character
-                               extra = string.charCodeAt(counter++);
-                               if ((extra & 0xFC00) == 0xDC00) { // low surrogate
-                                       output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
-                               } else {
-                                       // unmatched surrogate; only append this code unit, in case the next
-                                       // code unit is the high surrogate of a surrogate pair
-                                       output.push(value);
-                                       counter--;
-                               }
-                       } else {
-                               output.push(value);
-                       }
-               }
-               return output;
-       }
+  /**
+   * The list of original sources.
+   */
+  Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {
+    get: function () {
+      var sources = [];
+      for (var i = 0; i < this._sections.length; i++) {
+        for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {
+          sources.push(this._sections[i].consumer.sources[j]);
+        }
+      };
+      return sources;
+    }
+  });
 
-       /**
-        * Creates a string based on an array of numeric code points.
-        * @see `punycode.ucs2.decode`
-        * @memberOf punycode.ucs2
-        * @name encode
-        * @param {Array} codePoints The array of numeric code points.
-        * @returns {String} The new Unicode string (UCS-2).
-        */
-       function ucs2encode(array) {
-               return map(array, function(value) {
-                       var output = '';
-                       if (value > 0xFFFF) {
-                               value -= 0x10000;
-                               output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);
-                               value = 0xDC00 | value & 0x3FF;
-                       }
-                       output += stringFromCharCode(value);
-                       return output;
-               }).join('');
-       }
+  /**
+   * Returns the original source, line, and column information for the generated
+   * source's line and column positions provided. The only argument is an object
+   * with the following properties:
+   *
+   *   - line: The line number in the generated source.
+   *   - column: The column number in the generated source.
+   *
+   * and an object is returned with the following properties:
+   *
+   *   - source: The original source file, or null.
+   *   - line: The line number in the original source, or null.
+   *   - column: The column number in the original source, or null.
+   *   - name: The original identifier, or null.
+   */
+  IndexedSourceMapConsumer.prototype.originalPositionFor =
+    function IndexedSourceMapConsumer_originalPositionFor(aArgs) {
+      var needle = {
+        generatedLine: util.getArg(aArgs, 'line'),
+        generatedColumn: util.getArg(aArgs, 'column')
+      };
 
-       /**
-        * Converts a basic code point into a digit/integer.
-        * @see `digitToBasic()`
-        * @private
-        * @param {Number} codePoint The basic numeric code point value.
-        * @returns {Number} The numeric value of a basic code point (for use in
-        * representing integers) in the range `0` to `base - 1`, or `base` if
-        * the code point does not represent a value.
-        */
-       function basicToDigit(codePoint) {
-               if (codePoint - 48 < 10) {
-                       return codePoint - 22;
-               }
-               if (codePoint - 65 < 26) {
-                       return codePoint - 65;
-               }
-               if (codePoint - 97 < 26) {
-                       return codePoint - 97;
-               }
-               return base;
-       }
+      // Find the section containing the generated position we're trying to map
+      // to an original position.
+      var sectionIndex = binarySearch.search(needle, this._sections,
+        function(needle, section) {
+          var cmp = needle.generatedLine - section.generatedOffset.generatedLine;
+          if (cmp) {
+            return cmp;
+          }
 
-       /**
-        * Converts a digit/integer into a basic code point.
-        * @see `basicToDigit()`
-        * @private
-        * @param {Number} digit The numeric value of a basic code point.
-        * @returns {Number} The basic code point whose value (when used for
-        * representing integers) is `digit`, which needs to be in the range
-        * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
-        * used; else, the lowercase form is used. The behavior is undefined
-        * if `flag` is non-zero and `digit` has no uppercase form.
-        */
-       function digitToBasic(digit, flag) {
-               //  0..25 map to ASCII a..z or A..Z
-               // 26..35 map to ASCII 0..9
-               return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
-       }
+          return (needle.generatedColumn -
+                  section.generatedOffset.generatedColumn);
+        });
+      var section = this._sections[sectionIndex];
 
-       /**
-        * Bias adaptation function as per section 3.4 of RFC 3492.
-        * https://tools.ietf.org/html/rfc3492#section-3.4
-        * @private
-        */
-       function adapt(delta, numPoints, firstTime) {
-               var k = 0;
-               delta = firstTime ? floor(delta / damp) : delta >> 1;
-               delta += floor(delta / numPoints);
-               for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {
-                       delta = floor(delta / baseMinusTMin);
-               }
-               return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
-       }
+      if (!section) {
+        return {
+          source: null,
+          line: null,
+          column: null,
+          name: null
+        };
+      }
 
-       /**
-        * Converts a Punycode string of ASCII-only symbols to a string of Unicode
-        * symbols.
-        * @memberOf punycode
-        * @param {String} input The Punycode string of ASCII-only symbols.
-        * @returns {String} The resulting string of Unicode symbols.
-        */
-       function decode(input) {
-               // Don't use UCS-2
-               var output = [],
-                   inputLength = input.length,
-                   out,
-                   i = 0,
-                   n = initialN,
-                   bias = initialBias,
-                   basic,
-                   j,
-                   index,
-                   oldi,
-                   w,
-                   k,
-                   digit,
-                   t,
-                   /** Cached calculation results */
-                   baseMinusT;
+      return section.consumer.originalPositionFor({
+        line: needle.generatedLine -
+          (section.generatedOffset.generatedLine - 1),
+        column: needle.generatedColumn -
+          (section.generatedOffset.generatedLine === needle.generatedLine
+           ? section.generatedOffset.generatedColumn - 1
+           : 0),
+        bias: aArgs.bias
+      });
+    };
 
-               // Handle the basic code points: let `basic` be the number of input code
-               // points before the last delimiter, or `0` if there is none, then copy
-               // the first basic code points to the output.
+  /**
+   * Return true if we have the source content for every source in the source
+   * map, false otherwise.
+   */
+  IndexedSourceMapConsumer.prototype.hasContentsOfAllSources =
+    function IndexedSourceMapConsumer_hasContentsOfAllSources() {
+      return this._sections.every(function (s) {
+        return s.consumer.hasContentsOfAllSources();
+      });
+    };
 
-               basic = input.lastIndexOf(delimiter);
-               if (basic < 0) {
-                       basic = 0;
-               }
+  /**
+   * Returns the original source content. The only argument is the url of the
+   * original source file. Returns null if no original source content is
+   * available.
+   */
+  IndexedSourceMapConsumer.prototype.sourceContentFor =
+    function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {
+      for (var i = 0; i < this._sections.length; i++) {
+        var section = this._sections[i];
 
-               for (j = 0; j < basic; ++j) {
-                       // if it's not a basic code point
-                       if (input.charCodeAt(j) >= 0x80) {
-                               error('not-basic');
-                       }
-                       output.push(input.charCodeAt(j));
-               }
+        var content = section.consumer.sourceContentFor(aSource, true);
+        if (content) {
+          return content;
+        }
+      }
+      if (nullOnMissing) {
+        return null;
+      }
+      else {
+        throw new Error('"' + aSource + '" is not in the SourceMap.');
+      }
+    };
 
-               // Main decoding loop: start just after the last delimiter if any basic code
-               // points were copied; start at the beginning otherwise.
+  /**
+   * Returns the generated line and column information for the original source,
+   * line, and column positions provided. The only argument is an object with
+   * the following properties:
+   *
+   *   - source: The filename of the original source.
+   *   - line: The line number in the original source.
+   *   - column: The column number in the original source.
+   *
+   * and an object is returned with the following properties:
+   *
+   *   - line: The line number in the generated source, or null.
+   *   - column: The column number in the generated source, or null.
+   */
+  IndexedSourceMapConsumer.prototype.generatedPositionFor =
+    function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {
+      for (var i = 0; i < this._sections.length; i++) {
+        var section = this._sections[i];
 
-               for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {
+        // Only consider this section if the requested source is in the list of
+        // sources of the consumer.
+        if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {
+          continue;
+        }
+        var generatedPosition = section.consumer.generatedPositionFor(aArgs);
+        if (generatedPosition) {
+          var ret = {
+            line: generatedPosition.line +
+              (section.generatedOffset.generatedLine - 1),
+            column: generatedPosition.column +
+              (section.generatedOffset.generatedLine === generatedPosition.line
+               ? section.generatedOffset.generatedColumn - 1
+               : 0)
+          };
+          return ret;
+        }
+      }
 
-                       // `index` is the index of the next character to be consumed.
-                       // Decode a generalized variable-length integer into `delta`,
-                       // which gets added to `i`. The overflow checking is easier
-                       // if we increase `i` as we go, then subtract off its starting
-                       // value at the end to obtain `delta`.
-                       for (oldi = i, w = 1, k = base; /* no condition */; k += base) {
+      return {
+        line: null,
+        column: null
+      };
+    };
 
-                               if (index >= inputLength) {
-                                       error('invalid-input');
-                               }
+  /**
+   * Parse the mappings in a string in to a data structure which we can easily
+   * query (the ordered arrays in the `this.__generatedMappings` and
+   * `this.__originalMappings` properties).
+   */
+  IndexedSourceMapConsumer.prototype._parseMappings =
+    function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {
+      this.__generatedMappings = [];
+      this.__originalMappings = [];
+      for (var i = 0; i < this._sections.length; i++) {
+        var section = this._sections[i];
+        var sectionMappings = section.consumer._generatedMappings;
+        for (var j = 0; j < sectionMappings.length; j++) {
+          var mapping = sectionMappings[i];
 
-                               digit = basicToDigit(input.charCodeAt(index++));
+          var source = section.consumer._sources.at(mapping.source);
+          if (section.consumer.sourceRoot !== null) {
+            source = util.join(section.consumer.sourceRoot, source);
+          }
+          this._sources.add(source);
+          source = this._sources.indexOf(source);
 
-                               if (digit >= base || digit > floor((maxInt - i) / w)) {
-                                       error('overflow');
-                               }
+          var name = section.consumer._names.at(mapping.name);
+          this._names.add(name);
+          name = this._names.indexOf(name);
 
-                               i += digit * w;
-                               t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
+          // The mappings coming from the consumer for the section have
+          // generated positions relative to the start of the section, so we
+          // need to offset them to be relative to the start of the concatenated
+          // generated file.
+          var adjustedMapping = {
+            source: source,
+            generatedLine: mapping.generatedLine +
+              (section.generatedOffset.generatedLine - 1),
+            generatedColumn: mapping.column +
+              (section.generatedOffset.generatedLine === mapping.generatedLine)
+              ? section.generatedOffset.generatedColumn - 1
+              : 0,
+            originalLine: mapping.originalLine,
+            originalColumn: mapping.originalColumn,
+            name: name
+          };
 
-                               if (digit < t) {
-                                       break;
-                               }
+          this.__generatedMappings.push(adjustedMapping);
+          if (typeof adjustedMapping.originalLine === 'number') {
+            this.__originalMappings.push(adjustedMapping);
+          }
+        };
+      };
 
-                               baseMinusT = base - t;
-                               if (w > floor(maxInt / baseMinusT)) {
-                                       error('overflow');
-                               }
+      quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);
+      quickSort(this.__originalMappings, util.compareByOriginalPositions);
+    };
 
-                               w *= baseMinusT;
+  exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;
 
-                       }
+});
 
-                       out = output.length + 1;
-                       bias = adapt(i - oldi, out, oldi == 0);
+},{"./array-set":68,"./base64-vlq":69,"./binary-search":71,"./quick-sort":73,"./util":77,"amdefine":1}],75:[function(require,module,exports){
+/* -*- Mode: js; js-indent-level: 2; -*- */
+/*
+ * Copyright 2011 Mozilla Foundation and contributors
+ * Licensed under the New BSD license. See LICENSE or:
+ * http://opensource.org/licenses/BSD-3-Clause
+ */
+if (typeof define !== 'function') {
+    var define = require('amdefine')(module, require);
+}
+define(function (require, exports, module) {
 
-                       // `i` was supposed to wrap around from `out` to `0`,
-                       // incrementing `n` each time, so we'll fix that now:
-                       if (floor(i / out) > maxInt - n) {
-                               error('overflow');
-                       }
+  var base64VLQ = require('./base64-vlq');
+  var util = require('./util');
+  var ArraySet = require('./array-set').ArraySet;
+  var MappingList = require('./mapping-list').MappingList;
 
-                       n += floor(i / out);
-                       i %= out;
+  /**
+   * An instance of the SourceMapGenerator represents a source map which is
+   * being built incrementally. You may pass an object with the following
+   * properties:
+   *
+   *   - file: The filename of the generated source.
+   *   - sourceRoot: A root for all relative URLs in this source map.
+   */
+  function SourceMapGenerator(aArgs) {
+    if (!aArgs) {
+      aArgs = {};
+    }
+    this._file = util.getArg(aArgs, 'file', null);
+    this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);
+    this._skipValidation = util.getArg(aArgs, 'skipValidation', false);
+    this._sources = new ArraySet();
+    this._names = new ArraySet();
+    this._mappings = new MappingList();
+    this._sourcesContents = null;
+  }
 
-                       // Insert `n` at position `i` of the output
-                       output.splice(i++, 0, n);
+  SourceMapGenerator.prototype._version = 3;
 
-               }
+  /**
+   * Creates a new SourceMapGenerator based on a SourceMapConsumer
+   *
+   * @param aSourceMapConsumer The SourceMap.
+   */
+  SourceMapGenerator.fromSourceMap =
+    function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {
+      var sourceRoot = aSourceMapConsumer.sourceRoot;
+      var generator = new SourceMapGenerator({
+        file: aSourceMapConsumer.file,
+        sourceRoot: sourceRoot
+      });
+      aSourceMapConsumer.eachMapping(function (mapping) {
+        var newMapping = {
+          generated: {
+            line: mapping.generatedLine,
+            column: mapping.generatedColumn
+          }
+        };
 
-               return ucs2encode(output);
-       }
+        if (mapping.source != null) {
+          newMapping.source = mapping.source;
+          if (sourceRoot != null) {
+            newMapping.source = util.relative(sourceRoot, newMapping.source);
+          }
 
-       /**
-        * Converts a string of Unicode symbols (e.g. a domain name label) to a
-        * Punycode string of ASCII-only symbols.
-        * @memberOf punycode
-        * @param {String} input The string of Unicode symbols.
-        * @returns {String} The resulting Punycode string of ASCII-only symbols.
-        */
-       function encode(input) {
-               var n,
-                   delta,
-                   handledCPCount,
-                   basicLength,
-                   bias,
-                   j,
-                   m,
-                   q,
-                   k,
-                   t,
-                   currentValue,
-                   output = [],
-                   /** `inputLength` will hold the number of code points in `input`. */
-                   inputLength,
-                   /** Cached calculation results */
-                   handledCPCountPlusOne,
-                   baseMinusT,
-                   qMinusT;
+          newMapping.original = {
+            line: mapping.originalLine,
+            column: mapping.originalColumn
+          };
 
-               // Convert the input in UCS-2 to Unicode
-               input = ucs2decode(input);
+          if (mapping.name != null) {
+            newMapping.name = mapping.name;
+          }
+        }
 
-               // Cache the length
-               inputLength = input.length;
+        generator.addMapping(newMapping);
+      });
+      aSourceMapConsumer.sources.forEach(function (sourceFile) {
+        var content = aSourceMapConsumer.sourceContentFor(sourceFile);
+        if (content != null) {
+          generator.setSourceContent(sourceFile, content);
+        }
+      });
+      return generator;
+    };
 
-               // Initialize the state
-               n = initialN;
-               delta = 0;
-               bias = initialBias;
+  /**
+   * Add a single mapping from original source line and column to the generated
+   * source's line and column for this source map being created. The mapping
+   * object should have the following properties:
+   *
+   *   - generated: An object with the generated line and column positions.
+   *   - original: An object with the original line and column positions.
+   *   - source: The original source file (relative to the sourceRoot).
+   *   - name: An optional original token name for this mapping.
+   */
+  SourceMapGenerator.prototype.addMapping =
+    function SourceMapGenerator_addMapping(aArgs) {
+      var generated = util.getArg(aArgs, 'generated');
+      var original = util.getArg(aArgs, 'original', null);
+      var source = util.getArg(aArgs, 'source', null);
+      var name = util.getArg(aArgs, 'name', null);
 
-               // Handle the basic code points
-               for (j = 0; j < inputLength; ++j) {
-                       currentValue = input[j];
-                       if (currentValue < 0x80) {
-                               output.push(stringFromCharCode(currentValue));
-                       }
-               }
+      if (!this._skipValidation) {
+        this._validateMapping(generated, original, source, name);
+      }
 
-               handledCPCount = basicLength = output.length;
+      if (source != null && !this._sources.has(source)) {
+        this._sources.add(source);
+      }
 
-               // `handledCPCount` is the number of code points that have been handled;
-               // `basicLength` is the number of basic code points.
+      if (name != null && !this._names.has(name)) {
+        this._names.add(name);
+      }
 
-               // Finish the basic string - if it is not empty - with a delimiter
-               if (basicLength) {
-                       output.push(delimiter);
-               }
-
-               // Main encoding loop:
-               while (handledCPCount < inputLength) {
+      this._mappings.add({
+        generatedLine: generated.line,
+        generatedColumn: generated.column,
+        originalLine: original != null && original.line,
+        originalColumn: original != null && original.column,
+        source: source,
+        name: name
+      });
+    };
 
-                       // All non-basic code points < n have been handled already. Find the next
-                       // larger one:
-                       for (m = maxInt, j = 0; j < inputLength; ++j) {
-                               currentValue = input[j];
-                               if (currentValue >= n && currentValue < m) {
-                                       m = currentValue;
-                               }
-                       }
+  /**
+   * Set the source content for a source file.
+   */
+  SourceMapGenerator.prototype.setSourceContent =
+    function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {
+      var source = aSourceFile;
+      if (this._sourceRoot != null) {
+        source = util.relative(this._sourceRoot, source);
+      }
 
-                       // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
-                       // but guard against overflow
-                       handledCPCountPlusOne = handledCPCount + 1;
-                       if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
-                               error('overflow');
-                       }
+      if (aSourceContent != null) {
+        // Add the source content to the _sourcesContents map.
+        // Create a new _sourcesContents map if the property is null.
+        if (!this._sourcesContents) {
+          this._sourcesContents = {};
+        }
+        this._sourcesContents[util.toSetString(source)] = aSourceContent;
+      } else if (this._sourcesContents) {
+        // Remove the source file from the _sourcesContents map.
+        // If the _sourcesContents map is empty, set the property to null.
+        delete this._sourcesContents[util.toSetString(source)];
+        if (Object.keys(this._sourcesContents).length === 0) {
+          this._sourcesContents = null;
+        }
+      }
+    };
 
-                       delta += (m - n) * handledCPCountPlusOne;
-                       n = m;
+  /**
+   * Applies the mappings of a sub-source-map for a specific source file to the
+   * source map being generated. Each mapping to the supplied source file is
+   * rewritten using the supplied source map. Note: The resolution for the
+   * resulting mappings is the minimium of this map and the supplied map.
+   *
+   * @param aSourceMapConsumer The source map to be applied.
+   * @param aSourceFile Optional. The filename of the source file.
+   *        If omitted, SourceMapConsumer's file property will be used.
+   * @param aSourceMapPath Optional. The dirname of the path to the source map
+   *        to be applied. If relative, it is relative to the SourceMapConsumer.
+   *        This parameter is needed when the two source maps aren't in the same
+   *        directory, and the source map to be applied contains relative source
+   *        paths. If so, those relative source paths need to be rewritten
+   *        relative to the SourceMapGenerator.
+   */
+  SourceMapGenerator.prototype.applySourceMap =
+    function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {
+      var sourceFile = aSourceFile;
+      // If aSourceFile is omitted, we will use the file property of the SourceMap
+      if (aSourceFile == null) {
+        if (aSourceMapConsumer.file == null) {
+          throw new Error(
+            'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +
+            'or the source map\'s "file" property. Both were omitted.'
+          );
+        }
+        sourceFile = aSourceMapConsumer.file;
+      }
+      var sourceRoot = this._sourceRoot;
+      // Make "sourceFile" relative if an absolute Url is passed.
+      if (sourceRoot != null) {
+        sourceFile = util.relative(sourceRoot, sourceFile);
+      }
+      // Applying the SourceMap can add and remove items from the sources and
+      // the names array.
+      var newSources = new ArraySet();
+      var newNames = new ArraySet();
 
-                       for (j = 0; j < inputLength; ++j) {
-                               currentValue = input[j];
+      // Find mappings for the "sourceFile"
+      this._mappings.unsortedForEach(function (mapping) {
+        if (mapping.source === sourceFile && mapping.originalLine != null) {
+          // Check if it can be mapped by the source map, then update the mapping.
+          var original = aSourceMapConsumer.originalPositionFor({
+            line: mapping.originalLine,
+            column: mapping.originalColumn
+          });
+          if (original.source != null) {
+            // Copy mapping
+            mapping.source = original.source;
+            if (aSourceMapPath != null) {
+              mapping.source = util.join(aSourceMapPath, mapping.source)
+            }
+            if (sourceRoot != null) {
+              mapping.source = util.relative(sourceRoot, mapping.source);
+            }
+            mapping.originalLine = original.line;
+            mapping.originalColumn = original.column;
+            if (original.name != null) {
+              mapping.name = original.name;
+            }
+          }
+        }
 
-                               if (currentValue < n && ++delta > maxInt) {
-                                       error('overflow');
-                               }
+        var source = mapping.source;
+        if (source != null && !newSources.has(source)) {
+          newSources.add(source);
+        }
 
-                               if (currentValue == n) {
-                                       // Represent delta as a generalized variable-length integer
-                                       for (q = delta, k = base; /* no condition */; k += base) {
-                                               t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
-                                               if (q < t) {
-                                                       break;
-                                               }
-                                               qMinusT = q - t;
-                                               baseMinusT = base - t;
-                                               output.push(
-                                                       stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
-                                               );
-                                               q = floor(qMinusT / baseMinusT);
-                                       }
+        var name = mapping.name;
+        if (name != null && !newNames.has(name)) {
+          newNames.add(name);
+        }
 
-                                       output.push(stringFromCharCode(digitToBasic(q, 0)));
-                                       bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
-                                       delta = 0;
-                                       ++handledCPCount;
-                               }
-                       }
+      }, this);
+      this._sources = newSources;
+      this._names = newNames;
 
-                       ++delta;
-                       ++n;
+      // Copy sourcesContents of applied map.
+      aSourceMapConsumer.sources.forEach(function (sourceFile) {
+        var content = aSourceMapConsumer.sourceContentFor(sourceFile);
+        if (content != null) {
+          if (aSourceMapPath != null) {
+            sourceFile = util.join(aSourceMapPath, sourceFile);
+          }
+          if (sourceRoot != null) {
+            sourceFile = util.relative(sourceRoot, sourceFile);
+          }
+          this.setSourceContent(sourceFile, content);
+        }
+      }, this);
+    };
 
-               }
-               return output.join('');
-       }
+  /**
+   * A mapping can have one of the three levels of data:
+   *
+   *   1. Just the generated position.
+   *   2. The Generated position, original position, and original source.
+   *   3. Generated and original position, original source, as well as a name
+   *      token.
+   *
+   * To maintain consistency, we validate that any new mapping being added falls
+   * in to one of these categories.
+   */
+  SourceMapGenerator.prototype._validateMapping =
+    function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,
+                                                aName) {
+      if (aGenerated && 'line' in aGenerated && 'column' in aGenerated
+          && aGenerated.line > 0 && aGenerated.column >= 0
+          && !aOriginal && !aSource && !aName) {
+        // Case 1.
+        return;
+      }
+      else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated
+               && aOriginal && 'line' in aOriginal && 'column' in aOriginal
+               && aGenerated.line > 0 && aGenerated.column >= 0
+               && aOriginal.line > 0 && aOriginal.column >= 0
+               && aSource) {
+        // Cases 2 and 3.
+        return;
+      }
+      else {
+        throw new Error('Invalid mapping: ' + JSON.stringify({
+          generated: aGenerated,
+          source: aSource,
+          original: aOriginal,
+          name: aName
+        }));
+      }
+    };
 
-       /**
-        * Converts a Punycode string representing a domain name or an email address
-        * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
-        * it doesn't matter if you call it on a string that has already been
-        * converted to Unicode.
-        * @memberOf punycode
-        * @param {String} input The Punycoded domain name or email address to
-        * convert to Unicode.
-        * @returns {String} The Unicode representation of the given Punycode
-        * string.
-        */
-       function toUnicode(input) {
-               return mapDomain(input, function(string) {
-                       return regexPunycode.test(string)
-                               ? decode(string.slice(4).toLowerCase())
-                               : string;
-               });
-       }
+  /**
+   * Serialize the accumulated mappings in to the stream of base 64 VLQs
+   * specified by the source map format.
+   */
+  SourceMapGenerator.prototype._serializeMappings =
+    function SourceMapGenerator_serializeMappings() {
+      var previousGeneratedColumn = 0;
+      var previousGeneratedLine = 1;
+      var previousOriginalColumn = 0;
+      var previousOriginalLine = 0;
+      var previousName = 0;
+      var previousSource = 0;
+      var result = '';
+      var mapping;
 
-       /**
-        * Converts a Unicode string representing a domain name or an email address to
-        * Punycode. Only the non-ASCII parts of the domain name will be converted,
-        * i.e. it doesn't matter if you call it with a domain that's already in
-        * ASCII.
-        * @memberOf punycode
-        * @param {String} input The domain name or email address to convert, as a
-        * Unicode string.
-        * @returns {String} The Punycode representation of the given domain name or
-        * email address.
-        */
-       function toASCII(input) {
-               return mapDomain(input, function(string) {
-                       return regexNonASCII.test(string)
-                               ? 'xn--' + encode(string)
-                               : string;
-               });
-       }
+      var mappings = this._mappings.toArray();
+      for (var i = 0, len = mappings.length; i < len; i++) {
+        mapping = mappings[i];
 
-       /*--------------------------------------------------------------------------*/
+        if (mapping.generatedLine !== previousGeneratedLine) {
+          previousGeneratedColumn = 0;
+          while (mapping.generatedLine !== previousGeneratedLine) {
+            result += ';';
+            previousGeneratedLine++;
+          }
+        }
+        else {
+          if (i > 0) {
+            if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {
+              continue;
+            }
+            result += ',';
+          }
+        }
 
-       /** Define the public API */
-       punycode = {
-               /**
-                * A string representing the current Punycode.js version number.
-                * @memberOf punycode
-                * @type String
-                */
-               'version': '1.4.1',
-               /**
-                * An object of methods to convert from JavaScript's internal character
-                * representation (UCS-2) to Unicode code points, and back.
-                * @see <https://mathiasbynens.be/notes/javascript-encoding>
-                * @memberOf punycode
-                * @type Object
-                */
-               'ucs2': {
-                       'decode': ucs2decode,
-                       'encode': ucs2encode
-               },
-               'decode': decode,
-               'encode': encode,
-               'toASCII': toASCII,
-               'toUnicode': toUnicode
-       };
+        result += base64VLQ.encode(mapping.generatedColumn
+                                   - previousGeneratedColumn);
+        previousGeneratedColumn = mapping.generatedColumn;
 
-       /** Expose `punycode` */
-       // Some AMD build optimizers, like r.js, check for specific condition patterns
-       // like the following:
-       if (
-               typeof define == 'function' &&
-               typeof define.amd == 'object' &&
-               define.amd
-       ) {
-               define('punycode', function() {
-                       return punycode;
-               });
-       } else if (freeExports && freeModule) {
-               if (module.exports == freeExports) {
-                       // in Node.js, io.js, or RingoJS v0.8.0+
-                       freeModule.exports = punycode;
-               } else {
-                       // in Narwhal or RingoJS v0.7.0-
-                       for (key in punycode) {
-                               punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);
-                       }
-               }
-       } else {
-               // in Rhino or a web browser
-               root.punycode = punycode;
-       }
+        if (mapping.source != null) {
+          result += base64VLQ.encode(this._sources.indexOf(mapping.source)
+                                     - previousSource);
+          previousSource = this._sources.indexOf(mapping.source);
 
-}(this));
+          // lines are stored 0-based in SourceMap spec version 3
+          result += base64VLQ.encode(mapping.originalLine - 1
+                                     - previousOriginalLine);
+          previousOriginalLine = mapping.originalLine - 1;
 
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{}],81:[function(require,module,exports){
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// 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.
+          result += base64VLQ.encode(mapping.originalColumn
+                                     - previousOriginalColumn);
+          previousOriginalColumn = mapping.originalColumn;
 
-'use strict';
+          if (mapping.name != null) {
+            result += base64VLQ.encode(this._names.indexOf(mapping.name)
+                                       - previousName);
+            previousName = this._names.indexOf(mapping.name);
+          }
+        }
+      }
 
-// If obj.hasOwnProperty has been overridden, then calling
-// obj.hasOwnProperty(prop) will break.
-// See: https://github.com/joyent/node/issues/1707
-function hasOwnProperty(obj, prop) {
-  return Object.prototype.hasOwnProperty.call(obj, prop);
-}
+      return result;
+    };
 
-module.exports = function(qs, sep, eq, options) {
-  sep = sep || '&';
-  eq = eq || '=';
-  var obj = {};
+  SourceMapGenerator.prototype._generateSourcesContent =
+    function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {
+      return aSources.map(function (source) {
+        if (!this._sourcesContents) {
+          return null;
+        }
+        if (aSourceRoot != null) {
+          source = util.relative(aSourceRoot, source);
+        }
+        var key = util.toSetString(source);
+        return Object.prototype.hasOwnProperty.call(this._sourcesContents,
+                                                    key)
+          ? this._sourcesContents[key]
+          : null;
+      }, this);
+    };
 
-  if (typeof qs !== 'string' || qs.length === 0) {
-    return obj;
-  }
+  /**
+   * Externalize the source map.
+   */
+  SourceMapGenerator.prototype.toJSON =
+    function SourceMapGenerator_toJSON() {
+      var map = {
+        version: this._version,
+        sources: this._sources.toArray(),
+        names: this._names.toArray(),
+        mappings: this._serializeMappings()
+      };
+      if (this._file != null) {
+        map.file = this._file;
+      }
+      if (this._sourceRoot != null) {
+        map.sourceRoot = this._sourceRoot;
+      }
+      if (this._sourcesContents) {
+        map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);
+      }
 
-  var regexp = /\+/g;
-  qs = qs.split(sep);
+      return map;
+    };
 
-  var maxKeys = 1000;
-  if (options && typeof options.maxKeys === 'number') {
-    maxKeys = options.maxKeys;
-  }
+  /**
+   * Render the source map being generated to a string.
+   */
+  SourceMapGenerator.prototype.toString =
+    function SourceMapGenerator_toString() {
+      return JSON.stringify(this.toJSON());
+    };
 
-  var len = qs.length;
-  // maxKeys <= 0 means that we should not limit keys count
-  if (maxKeys > 0 && len > maxKeys) {
-    len = maxKeys;
-  }
+  exports.SourceMapGenerator = SourceMapGenerator;
 
-  for (var i = 0; i < len; ++i) {
-    var x = qs[i].replace(regexp, '%20'),
-        idx = x.indexOf(eq),
-        kstr, vstr, k, v;
+});
 
-    if (idx >= 0) {
-      kstr = x.substr(0, idx);
-      vstr = x.substr(idx + 1);
-    } else {
-      kstr = x;
-      vstr = '';
-    }
+},{"./array-set":68,"./base64-vlq":69,"./mapping-list":72,"./util":77,"amdefine":1}],76:[function(require,module,exports){
+/* -*- Mode: js; js-indent-level: 2; -*- */
+/*
+ * Copyright 2011 Mozilla Foundation and contributors
+ * Licensed under the New BSD license. See LICENSE or:
+ * http://opensource.org/licenses/BSD-3-Clause
+ */
+if (typeof define !== 'function') {
+    var define = require('amdefine')(module, require);
+}
+define(function (require, exports, module) {
 
-    k = decodeURIComponent(kstr);
-    v = decodeURIComponent(vstr);
+  var SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;
+  var util = require('./util');
 
-    if (!hasOwnProperty(obj, k)) {
-      obj[k] = v;
-    } else if (isArray(obj[k])) {
-      obj[k].push(v);
-    } else {
-      obj[k] = [obj[k], v];
-    }
-  }
+  // Matches a Windows-style `\r\n` newline or a `\n` newline used by all other
+  // operating systems these days (capturing the result).
+  var REGEX_NEWLINE = /(\r?\n)/;
 
-  return obj;
-};
+  // Newline character code for charCodeAt() comparisons
+  var NEWLINE_CODE = 10;
 
-var isArray = Array.isArray || function (xs) {
-  return Object.prototype.toString.call(xs) === '[object Array]';
-};
+  // Private symbol for identifying `SourceNode`s when multiple versions of
+  // the source-map library are loaded. This MUST NOT CHANGE across
+  // versions!
+  var isSourceNode = "$$$isSourceNode$$$";
 
-},{}],82:[function(require,module,exports){
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// 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.
-
-'use strict';
-
-var stringifyPrimitive = function(v) {
-  switch (typeof v) {
-    case 'string':
-      return v;
+  /**
+   * SourceNodes provide a way to abstract over interpolating/concatenating
+   * snippets of generated JavaScript source code while maintaining the line and
+   * column information associated with the original source code.
+   *
+   * @param aLine The original line number.
+   * @param aColumn The original column number.
+   * @param aSource The original source's filename.
+   * @param aChunks Optional. An array of strings which are snippets of
+   *        generated JS, or other SourceNodes.
+   * @param aName The original identifier.
+   */
+  function SourceNode(aLine, aColumn, aSource, aChunks, aName) {
+    this.children = [];
+    this.sourceContents = {};
+    this.line = aLine == null ? null : aLine;
+    this.column = aColumn == null ? null : aColumn;
+    this.source = aSource == null ? null : aSource;
+    this.name = aName == null ? null : aName;
+    this[isSourceNode] = true;
+    if (aChunks != null) this.add(aChunks);
+  }
 
-    case 'boolean':
-      return v ? 'true' : 'false';
+  /**
+   * Creates a SourceNode from generated code and a SourceMapConsumer.
+   *
+   * @param aGeneratedCode The generated code
+   * @param aSourceMapConsumer The SourceMap for the generated code
+   * @param aRelativePath Optional. The path that relative sources in the
+   *        SourceMapConsumer should be relative to.
+   */
+  SourceNode.fromStringWithSourceMap =
+    function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {
+      // The SourceNode we want to fill with the generated code
+      // and the SourceMap
+      var node = new SourceNode();
 
-    case 'number':
-      return isFinite(v) ? v : '';
+      // All even indices of this array are one line of the generated code,
+      // while all odd indices are the newlines between two adjacent lines
+      // (since `REGEX_NEWLINE` captures its match).
+      // Processed fragments are removed from this array, by calling `shiftNextLine`.
+      var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);
+      var shiftNextLine = function() {
+        var lineContents = remainingLines.shift();
+        // The last line of a file might not have a newline.
+        var newLine = remainingLines.shift() || "";
+        return lineContents + newLine;
+      };
 
-    default:
-      return '';
-  }
-};
+      // We need to remember the position of "remainingLines"
+      var lastGeneratedLine = 1, lastGeneratedColumn = 0;
 
-module.exports = function(obj, sep, eq, name) {
-  sep = sep || '&';
-  eq = eq || '=';
-  if (obj === null) {
-    obj = undefined;
-  }
+      // The generate SourceNodes we need a code range.
+      // To extract it current and last mapping is used.
+      // Here we store the last mapping.
+      var lastMapping = null;
 
-  if (typeof obj === 'object') {
-    return map(objectKeys(obj), function(k) {
-      var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;
-      if (isArray(obj[k])) {
-        return map(obj[k], function(v) {
-          return ks + encodeURIComponent(stringifyPrimitive(v));
-        }).join(sep);
-      } else {
-        return ks + encodeURIComponent(stringifyPrimitive(obj[k]));
+      aSourceMapConsumer.eachMapping(function (mapping) {
+        if (lastMapping !== null) {
+          // We add the code from "lastMapping" to "mapping":
+          // First check if there is a new line in between.
+          if (lastGeneratedLine < mapping.generatedLine) {
+            var code = "";
+            // Associate first line with "lastMapping"
+            addMappingWithCode(lastMapping, shiftNextLine());
+            lastGeneratedLine++;
+            lastGeneratedColumn = 0;
+            // The remaining code is added without mapping
+          } else {
+            // There is no new line in between.
+            // Associate the code between "lastGeneratedColumn" and
+            // "mapping.generatedColumn" with "lastMapping"
+            var nextLine = remainingLines[0];
+            var code = nextLine.substr(0, mapping.generatedColumn -
+                                          lastGeneratedColumn);
+            remainingLines[0] = nextLine.substr(mapping.generatedColumn -
+                                                lastGeneratedColumn);
+            lastGeneratedColumn = mapping.generatedColumn;
+            addMappingWithCode(lastMapping, code);
+            // No more remaining code, continue
+            lastMapping = mapping;
+            return;
+          }
+        }
+        // We add the generated code until the first mapping
+        // to the SourceNode without any mapping.
+        // Each line is added as separate string.
+        while (lastGeneratedLine < mapping.generatedLine) {
+          node.add(shiftNextLine());
+          lastGeneratedLine++;
+        }
+        if (lastGeneratedColumn < mapping.generatedColumn) {
+          var nextLine = remainingLines[0];
+          node.add(nextLine.substr(0, mapping.generatedColumn));
+          remainingLines[0] = nextLine.substr(mapping.generatedColumn);
+          lastGeneratedColumn = mapping.generatedColumn;
+        }
+        lastMapping = mapping;
+      }, this);
+      // We have processed all mappings.
+      if (remainingLines.length > 0) {
+        if (lastMapping) {
+          // Associate the remaining code in the current line with "lastMapping"
+          addMappingWithCode(lastMapping, shiftNextLine());
+        }
+        // and add the remaining lines without any mapping
+        node.add(remainingLines.join(""));
       }
-    }).join(sep);
-
-  }
 
-  if (!name) return '';
-  return encodeURIComponent(stringifyPrimitive(name)) + eq +
-         encodeURIComponent(stringifyPrimitive(obj));
-};
+      // Copy sourcesContent into SourceNode
+      aSourceMapConsumer.sources.forEach(function (sourceFile) {
+        var content = aSourceMapConsumer.sourceContentFor(sourceFile);
+        if (content != null) {
+          if (aRelativePath != null) {
+            sourceFile = util.join(aRelativePath, sourceFile);
+          }
+          node.setSourceContent(sourceFile, content);
+        }
+      });
 
-var isArray = Array.isArray || function (xs) {
-  return Object.prototype.toString.call(xs) === '[object Array]';
-};
+      return node;
 
-function map (xs, f) {
-  if (xs.map) return xs.map(f);
-  var res = [];
-  for (var i = 0; i < xs.length; i++) {
-    res.push(f(xs[i], i));
-  }
-  return res;
-}
+      function addMappingWithCode(mapping, code) {
+        if (mapping === null || mapping.source === undefined) {
+          node.add(code);
+        } else {
+          var source = aRelativePath
+            ? util.join(aRelativePath, mapping.source)
+            : mapping.source;
+          node.add(new SourceNode(mapping.originalLine,
+                                  mapping.originalColumn,
+                                  source,
+                                  code,
+                                  mapping.name));
+        }
+      }
+    };
 
-var objectKeys = Object.keys || function (obj) {
-  var res = [];
-  for (var key in obj) {
-    if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);
-  }
-  return res;
-};
+  /**
+   * Add a chunk of generated JS to this source node.
+   *
+   * @param aChunk A string snippet of generated JS code, another instance of
+   *        SourceNode, or an array where each member is one of those things.
+   */
+  SourceNode.prototype.add = function SourceNode_add(aChunk) {
+    if (Array.isArray(aChunk)) {
+      aChunk.forEach(function (chunk) {
+        this.add(chunk);
+      }, this);
+    }
+    else if (aChunk[isSourceNode] || typeof aChunk === "string") {
+      if (aChunk) {
+        this.children.push(aChunk);
+      }
+    }
+    else {
+      throw new TypeError(
+        "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
+      );
+    }
+    return this;
+  };
 
-},{}],83:[function(require,module,exports){
-'use strict';
+  /**
+   * Add a chunk of generated JS to the beginning of this source node.
+   *
+   * @param aChunk A string snippet of generated JS code, another instance of
+   *        SourceNode, or an array where each member is one of those things.
+   */
+  SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {
+    if (Array.isArray(aChunk)) {
+      for (var i = aChunk.length-1; i >= 0; i--) {
+        this.prepend(aChunk[i]);
+      }
+    }
+    else if (aChunk[isSourceNode] || typeof aChunk === "string") {
+      this.children.unshift(aChunk);
+    }
+    else {
+      throw new TypeError(
+        "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
+      );
+    }
+    return this;
+  };
 
-exports.decode = exports.parse = require('./decode');
-exports.encode = exports.stringify = require('./encode');
+  /**
+   * Walk over the tree of JS snippets in this node and its children. The
+   * walking function is called once for each snippet of JS and is passed that
+   * snippet and the its original associated source's line/column location.
+   *
+   * @param aFn The traversal function.
+   */
+  SourceNode.prototype.walk = function SourceNode_walk(aFn) {
+    var chunk;
+    for (var i = 0, len = this.children.length; i < len; i++) {
+      chunk = this.children[i];
+      if (chunk[isSourceNode]) {
+        chunk.walk(aFn);
+      }
+      else {
+        if (chunk !== '') {
+          aFn(chunk, { source: this.source,
+                       line: this.line,
+                       column: this.column,
+                       name: this.name });
+        }
+      }
+    }
+  };
 
-},{"./decode":81,"./encode":82}],84:[function(require,module,exports){
-module.exports = require("./lib/_stream_duplex.js")
+  /**
+   * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between
+   * each of `this.children`.
+   *
+   * @param aSep The separator.
+   */
+  SourceNode.prototype.join = function SourceNode_join(aSep) {
+    var newChildren;
+    var i;
+    var len = this.children.length;
+    if (len > 0) {
+      newChildren = [];
+      for (i = 0; i < len-1; i++) {
+        newChildren.push(this.children[i]);
+        newChildren.push(aSep);
+      }
+      newChildren.push(this.children[i]);
+      this.children = newChildren;
+    }
+    return this;
+  };
 
-},{"./lib/_stream_duplex.js":85}],85:[function(require,module,exports){
-// a duplex stream is just a stream that is both readable and writable.
-// Since JS doesn't have multiple prototypal inheritance, this class
-// prototypally inherits from Readable, and then parasitically from
-// Writable.
+  /**
+   * Call String.prototype.replace on the very right-most source snippet. Useful
+   * for trimming whitespace from the end of a source node, etc.
+   *
+   * @param aPattern The pattern to replace.
+   * @param aReplacement The thing to replace the pattern with.
+   */
+  SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {
+    var lastChild = this.children[this.children.length - 1];
+    if (lastChild[isSourceNode]) {
+      lastChild.replaceRight(aPattern, aReplacement);
+    }
+    else if (typeof lastChild === 'string') {
+      this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);
+    }
+    else {
+      this.children.push(''.replace(aPattern, aReplacement));
+    }
+    return this;
+  };
 
-'use strict';
+  /**
+   * Set the source content for a source file. This will be added to the SourceMapGenerator
+   * in the sourcesContent field.
+   *
+   * @param aSourceFile The filename of the source file
+   * @param aSourceContent The content of the source file
+   */
+  SourceNode.prototype.setSourceContent =
+    function SourceNode_setSourceContent(aSourceFile, aSourceContent) {
+      this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;
+    };
 
-/*<replacement>*/
+  /**
+   * Walk over the tree of SourceNodes. The walking function is called for each
+   * source file content and is passed the filename and source content.
+   *
+   * @param aFn The traversal function.
+   */
+  SourceNode.prototype.walkSourceContents =
+    function SourceNode_walkSourceContents(aFn) {
+      for (var i = 0, len = this.children.length; i < len; i++) {
+        if (this.children[i][isSourceNode]) {
+          this.children[i].walkSourceContents(aFn);
+        }
+      }
 
-var objectKeys = Object.keys || function (obj) {
-  var keys = [];
-  for (var key in obj) {
-    keys.push(key);
-  }return keys;
-};
-/*</replacement>*/
+      var sources = Object.keys(this.sourceContents);
+      for (var i = 0, len = sources.length; i < len; i++) {
+        aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);
+      }
+    };
 
-module.exports = Duplex;
+  /**
+   * Return the string representation of this source node. Walks over the tree
+   * and concatenates all the various snippets together to one string.
+   */
+  SourceNode.prototype.toString = function SourceNode_toString() {
+    var str = "";
+    this.walk(function (chunk) {
+      str += chunk;
+    });
+    return str;
+  };
 
-/*<replacement>*/
-var processNextTick = require('process-nextick-args');
-/*</replacement>*/
+  /**
+   * Returns the string representation of this source node along with a source
+   * map.
+   */
+  SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {
+    var generated = {
+      code: "",
+      line: 1,
+      column: 0
+    };
+    var map = new SourceMapGenerator(aArgs);
+    var sourceMappingActive = false;
+    var lastOriginalSource = null;
+    var lastOriginalLine = null;
+    var lastOriginalColumn = null;
+    var lastOriginalName = null;
+    this.walk(function (chunk, original) {
+      generated.code += chunk;
+      if (original.source !== null
+          && original.line !== null
+          && original.column !== null) {
+        if(lastOriginalSource !== original.source
+           || lastOriginalLine !== original.line
+           || lastOriginalColumn !== original.column
+           || lastOriginalName !== original.name) {
+          map.addMapping({
+            source: original.source,
+            original: {
+              line: original.line,
+              column: original.column
+            },
+            generated: {
+              line: generated.line,
+              column: generated.column
+            },
+            name: original.name
+          });
+        }
+        lastOriginalSource = original.source;
+        lastOriginalLine = original.line;
+        lastOriginalColumn = original.column;
+        lastOriginalName = original.name;
+        sourceMappingActive = true;
+      } else if (sourceMappingActive) {
+        map.addMapping({
+          generated: {
+            line: generated.line,
+            column: generated.column
+          }
+        });
+        lastOriginalSource = null;
+        sourceMappingActive = false;
+      }
+      for (var idx = 0, length = chunk.length; idx < length; idx++) {
+        if (chunk.charCodeAt(idx) === NEWLINE_CODE) {
+          generated.line++;
+          generated.column = 0;
+          // Mappings end at eol
+          if (idx + 1 === length) {
+            lastOriginalSource = null;
+            sourceMappingActive = false;
+          } else if (sourceMappingActive) {
+            map.addMapping({
+              source: original.source,
+              original: {
+                line: original.line,
+                column: original.column
+              },
+              generated: {
+                line: generated.line,
+                column: generated.column
+              },
+              name: original.name
+            });
+          }
+        } else {
+          generated.column++;
+        }
+      }
+    });
+    this.walkSourceContents(function (sourceFile, sourceContent) {
+      map.setSourceContent(sourceFile, sourceContent);
+    });
 
-/*<replacement>*/
-var util = require('core-util-is');
-util.inherits = require('inherits');
-/*</replacement>*/
+    return { code: generated.code, map: map };
+  };
 
-var Readable = require('./_stream_readable');
-var Writable = require('./_stream_writable');
+  exports.SourceNode = SourceNode;
 
-util.inherits(Duplex, Readable);
+});
 
-var keys = objectKeys(Writable.prototype);
-for (var v = 0; v < keys.length; v++) {
-  var method = keys[v];
-  if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
+},{"./source-map-generator":75,"./util":77,"amdefine":1}],77:[function(require,module,exports){
+/* -*- Mode: js; js-indent-level: 2; -*- */
+/*
+ * Copyright 2011 Mozilla Foundation and contributors
+ * Licensed under the New BSD license. See LICENSE or:
+ * http://opensource.org/licenses/BSD-3-Clause
+ */
+if (typeof define !== 'function') {
+    var define = require('amdefine')(module, require);
 }
+define(function (require, exports, module) {
 
-function Duplex(options) {
-  if (!(this instanceof Duplex)) return new Duplex(options);
-
-  Readable.call(this, options);
-  Writable.call(this, options);
-
-  if (options && options.readable === false) this.readable = false;
-
-  if (options && options.writable === false) this.writable = false;
+  /**
+   * This is a helper function for getting values from parameter/options
+   * objects.
+   *
+   * @param args The object we are extracting values from
+   * @param name The name of the property we are getting.
+   * @param defaultValue An optional value to return if the property is missing
+   * from the object. If this is not specified and the property is missing, an
+   * error will be thrown.
+   */
+  function getArg(aArgs, aName, aDefaultValue) {
+    if (aName in aArgs) {
+      return aArgs[aName];
+    } else if (arguments.length === 3) {
+      return aDefaultValue;
+    } else {
+      throw new Error('"' + aName + '" is a required argument.');
+    }
+  }
+  exports.getArg = getArg;
 
-  this.allowHalfOpen = true;
-  if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
+  var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/;
+  var dataUrlRegexp = /^data:.+\,.+$/;
 
-  this.once('end', onend);
-}
+  function urlParse(aUrl) {
+    var match = aUrl.match(urlRegexp);
+    if (!match) {
+      return null;
+    }
+    return {
+      scheme: match[1],
+      auth: match[2],
+      host: match[3],
+      port: match[4],
+      path: match[5]
+    };
+  }
+  exports.urlParse = urlParse;
 
-// the no-half-open enforcer
-function onend() {
-  // if we allow half-open state, or if the writable side ended,
-  // then we're ok.
-  if (this.allowHalfOpen || this._writableState.ended) return;
+  function urlGenerate(aParsedUrl) {
+    var url = '';
+    if (aParsedUrl.scheme) {
+      url += aParsedUrl.scheme + ':';
+    }
+    url += '//';
+    if (aParsedUrl.auth) {
+      url += aParsedUrl.auth + '@';
+    }
+    if (aParsedUrl.host) {
+      url += aParsedUrl.host;
+    }
+    if (aParsedUrl.port) {
+      url += ":" + aParsedUrl.port
+    }
+    if (aParsedUrl.path) {
+      url += aParsedUrl.path;
+    }
+    return url;
+  }
+  exports.urlGenerate = urlGenerate;
 
-  // no more data can be written.
-  // But allow more writes to happen in this tick.
-  processNextTick(onEndNT, this);
-}
+  /**
+   * Normalizes a path, or the path portion of a URL:
+   *
+   * - Replaces consequtive slashes with one slash.
+   * - Removes unnecessary '.' parts.
+   * - Removes unnecessary '<dir>/..' parts.
+   *
+   * Based on code in the Node.js 'path' core module.
+   *
+   * @param aPath The path or url to normalize.
+   */
+  function normalize(aPath) {
+    var path = aPath;
+    var url = urlParse(aPath);
+    if (url) {
+      if (!url.path) {
+        return aPath;
+      }
+      path = url.path;
+    }
+    var isAbsolute = (path.charAt(0) === '/');
 
-function onEndNT(self) {
-  self.end();
-}
+    var parts = path.split(/\/+/);
+    for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {
+      part = parts[i];
+      if (part === '.') {
+        parts.splice(i, 1);
+      } else if (part === '..') {
+        up++;
+      } else if (up > 0) {
+        if (part === '') {
+          // The first part is blank if the path is absolute. Trying to go
+          // above the root is a no-op. Therefore we can remove all '..' parts
+          // directly after the root.
+          parts.splice(i + 1, up);
+          up = 0;
+        } else {
+          parts.splice(i, 2);
+          up--;
+        }
+      }
+    }
+    path = parts.join('/');
 
-function forEach(xs, f) {
-  for (var i = 0, l = xs.length; i < l; i++) {
-    f(xs[i], i);
+    if (path === '') {
+      path = isAbsolute ? '/' : '.';
+    }
+
+    if (url) {
+      url.path = path;
+      return urlGenerate(url);
+    }
+    return path;
   }
-}
-},{"./_stream_readable":87,"./_stream_writable":89,"core-util-is":67,"inherits":72,"process-nextick-args":78}],86:[function(require,module,exports){
-// a passthrough stream.
-// basically just the most minimal sort of Transform stream.
-// Every written chunk gets output as-is.
+  exports.normalize = normalize;
 
-'use strict';
+  /**
+   * Joins two paths/URLs.
+   *
+   * @param aRoot The root path or URL.
+   * @param aPath The path or URL to be joined with the root.
+   *
+   * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a
+   *   scheme-relative URL: Then the scheme of aRoot, if any, is prepended
+   *   first.
+   * - Otherwise aPath is a path. If aRoot is a URL, then its path portion
+   *   is updated with the result and aRoot is returned. Otherwise the result
+   *   is returned.
+   *   - If aPath is absolute, the result is aPath.
+   *   - Otherwise the two paths are joined with a slash.
+   * - Joining for example 'http://' and 'www.example.com' is also supported.
+   */
+  function join(aRoot, aPath) {
+    if (aRoot === "") {
+      aRoot = ".";
+    }
+    if (aPath === "") {
+      aPath = ".";
+    }
+    var aPathUrl = urlParse(aPath);
+    var aRootUrl = urlParse(aRoot);
+    if (aRootUrl) {
+      aRoot = aRootUrl.path || '/';
+    }
 
-module.exports = PassThrough;
+    // `join(foo, '//www.example.org')`
+    if (aPathUrl && !aPathUrl.scheme) {
+      if (aRootUrl) {
+        aPathUrl.scheme = aRootUrl.scheme;
+      }
+      return urlGenerate(aPathUrl);
+    }
 
-var Transform = require('./_stream_transform');
+    if (aPathUrl || aPath.match(dataUrlRegexp)) {
+      return aPath;
+    }
 
-/*<replacement>*/
-var util = require('core-util-is');
-util.inherits = require('inherits');
-/*</replacement>*/
+    // `join('http://', 'www.example.com')`
+    if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {
+      aRootUrl.host = aPath;
+      return urlGenerate(aRootUrl);
+    }
 
-util.inherits(PassThrough, Transform);
+    var joined = aPath.charAt(0) === '/'
+      ? aPath
+      : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath);
 
-function PassThrough(options) {
-  if (!(this instanceof PassThrough)) return new PassThrough(options);
+    if (aRootUrl) {
+      aRootUrl.path = joined;
+      return urlGenerate(aRootUrl);
+    }
+    return joined;
+  }
+  exports.join = join;
 
-  Transform.call(this, options);
-}
+  /**
+   * Make a path relative to a URL or another path.
+   *
+   * @param aRoot The root path or URL.
+   * @param aPath The path or URL to be made relative to aRoot.
+   */
+  function relative(aRoot, aPath) {
+    if (aRoot === "") {
+      aRoot = ".";
+    }
 
-PassThrough.prototype._transform = function (chunk, encoding, cb) {
-  cb(null, chunk);
-};
-},{"./_stream_transform":88,"core-util-is":67,"inherits":72}],87:[function(require,module,exports){
-(function (process){
-'use strict';
+    aRoot = aRoot.replace(/\/$/, '');
 
-module.exports = Readable;
+    // It is possible for the path to be above the root. In this case, simply
+    // checking whether the root is a prefix of the path won't work. Instead, we
+    // need to remove components from the root one by one, until either we find
+    // a prefix that fits, or we run out of components to remove.
+    var level = 0;
+    while (aPath.indexOf(aRoot + '/') !== 0) {
+      var index = aRoot.lastIndexOf("/");
+      if (index < 0) {
+        return aPath;
+      }
 
-/*<replacement>*/
-var processNextTick = require('process-nextick-args');
-/*</replacement>*/
+      // If the only part of the root that is left is the scheme (i.e. http://,
+      // file:///, etc.), one or more slashes (/), or simply nothing at all, we
+      // have exhausted all components, so the path is not relative to the root.
+      aRoot = aRoot.slice(0, index);
+      if (aRoot.match(/^([^\/]+:\/)?\/*$/)) {
+        return aPath;
+      }
 
-/*<replacement>*/
-var isArray = require('isarray');
-/*</replacement>*/
+      ++level;
+    }
 
-/*<replacement>*/
-var Buffer = require('buffer').Buffer;
-/*</replacement>*/
+    // Make sure we add a "../" for each component we removed from the root.
+    return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1);
+  }
+  exports.relative = relative;
 
-Readable.ReadableState = ReadableState;
+  /**
+   * Because behavior goes wacky when you set `__proto__` on objects, we
+   * have to prefix all the strings in our set with an arbitrary character.
+   *
+   * See https://github.com/mozilla/source-map/pull/31 and
+   * https://github.com/mozilla/source-map/issues/30
+   *
+   * @param String aStr
+   */
+  function toSetString(aStr) {
+    return '$' + aStr;
+  }
+  exports.toSetString = toSetString;
 
-var EE = require('events');
+  function fromSetString(aStr) {
+    return aStr.substr(1);
+  }
+  exports.fromSetString = fromSetString;
 
-/*<replacement>*/
-var EElistenerCount = function (emitter, type) {
-  return emitter.listeners(type).length;
-};
-/*</replacement>*/
+  /**
+   * Comparator between two mappings where the original positions are compared.
+   *
+   * Optionally pass in `true` as `onlyCompareGenerated` to consider two
+   * mappings with the same original source/line/column, but different generated
+   * line and column the same. Useful when searching for a mapping with a
+   * stubbed out mapping.
+   */
+  function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {
+    var cmp = mappingA.source - mappingB.source;
+    if (cmp !== 0) {
+      return cmp;
+    }
 
-/*<replacement>*/
-var Stream;
-(function () {
-  try {
-    Stream = require('st' + 'ream');
-  } catch (_) {} finally {
-    if (!Stream) Stream = require('events').EventEmitter;
-  }
-})();
-/*</replacement>*/
+    cmp = mappingA.originalLine - mappingB.originalLine;
+    if (cmp !== 0) {
+      return cmp;
+    }
 
-var Buffer = require('buffer').Buffer;
+    cmp = mappingA.originalColumn - mappingB.originalColumn;
+    if (cmp !== 0 || onlyCompareOriginal) {
+      return cmp;
+    }
 
-/*<replacement>*/
-var util = require('core-util-is');
-util.inherits = require('inherits');
-/*</replacement>*/
+    cmp = mappingA.generatedColumn - mappingB.generatedColumn;
+    if (cmp !== 0) {
+      return cmp;
+    }
 
-/*<replacement>*/
-var debugUtil = require('util');
-var debug = undefined;
-if (debugUtil && debugUtil.debuglog) {
-  debug = debugUtil.debuglog('stream');
-} else {
-  debug = function () {};
-}
-/*</replacement>*/
+    cmp = mappingA.generatedLine - mappingB.generatedLine;
+    if (cmp !== 0) {
+      return cmp;
+    }
 
-var StringDecoder;
+    return mappingA.name - mappingB.name;
+  };
+  exports.compareByOriginalPositions = compareByOriginalPositions;
 
-util.inherits(Readable, Stream);
+  /**
+   * Comparator between two mappings with deflated source and name indices where
+   * the generated positions are compared.
+   *
+   * Optionally pass in `true` as `onlyCompareGenerated` to consider two
+   * mappings with the same generated line and column, but different
+   * source/name/original line and column the same. Useful when searching for a
+   * mapping with a stubbed out mapping.
+   */
+  function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {
+    var cmp = mappingA.generatedLine - mappingB.generatedLine;
+    if (cmp !== 0) {
+      return cmp;
+    }
 
-var Duplex;
-function ReadableState(options, stream) {
-  Duplex = Duplex || require('./_stream_duplex');
+    cmp = mappingA.generatedColumn - mappingB.generatedColumn;
+    if (cmp !== 0 || onlyCompareGenerated) {
+      return cmp;
+    }
 
-  options = options || {};
+    cmp = mappingA.source - mappingB.source;
+    if (cmp !== 0) {
+      return cmp;
+    }
 
-  // object stream flag. Used to make read(n) ignore n and to
-  // make all the buffer merging and length checks go away
-  this.objectMode = !!options.objectMode;
+    cmp = mappingA.originalLine - mappingB.originalLine;
+    if (cmp !== 0) {
+      return cmp;
+    }
 
-  if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
+    cmp = mappingA.originalColumn - mappingB.originalColumn;
+    if (cmp !== 0) {
+      return cmp;
+    }
 
-  // the point at which it stops calling _read() to fill the buffer
-  // Note: 0 is a valid value, means "don't call _read preemptively ever"
-  var hwm = options.highWaterMark;
-  var defaultHwm = this.objectMode ? 16 : 16 * 1024;
-  this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
+    return mappingA.name - mappingB.name;
+  };
+  exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;
 
-  // cast to ints.
-  this.highWaterMark = ~ ~this.highWaterMark;
+  function strcmp(aStr1, aStr2) {
+    if (aStr1 === aStr2) {
+      return 0;
+    }
 
-  this.buffer = [];
-  this.length = 0;
-  this.pipes = null;
-  this.pipesCount = 0;
-  this.flowing = null;
-  this.ended = false;
-  this.endEmitted = false;
-  this.reading = false;
+    if (aStr1 > aStr2) {
+      return 1;
+    }
 
-  // a flag to be able to tell if the onwrite cb is called immediately,
-  // or on a later tick.  We set this to true at first, because any
-  // actions that shouldn't happen until "later" should generally also
-  // not happen before the first write call.
-  this.sync = true;
+    return -1;
+  }
 
-  // whenever we return null, then we set a flag to say
-  // that we're awaiting a 'readable' event emission.
-  this.needReadable = false;
-  this.emittedReadable = false;
-  this.readableListening = false;
-  this.resumeScheduled = false;
+  /**
+   * Comparator between two mappings with inflated source and name strings where
+   * the generated positions are compared.
+   */
+  function compareByGeneratedPositionsInflated(mappingA, mappingB) {
+    var cmp = mappingA.generatedLine - mappingB.generatedLine;
+    if (cmp !== 0) {
+      return cmp;
+    }
 
-  // Crypto is kind of old and crusty.  Historically, its default string
-  // encoding is 'binary' so we have to make this configurable.
-  // Everything else in the universe uses 'utf8', though.
-  this.defaultEncoding = options.defaultEncoding || 'utf8';
+    cmp = mappingA.generatedColumn - mappingB.generatedColumn;
+    if (cmp !== 0) {
+      return cmp;
+    }
 
-  // when piping, we only care about 'readable' events that happen
-  // after read()ing all the bytes and not getting any pushback.
-  this.ranOut = false;
+    cmp = strcmp(mappingA.source, mappingB.source);
+    if (cmp !== 0) {
+      return cmp;
+    }
 
-  // the number of writers that are awaiting a drain event in .pipe()s
-  this.awaitDrain = 0;
+    cmp = mappingA.originalLine - mappingB.originalLine;
+    if (cmp !== 0) {
+      return cmp;
+    }
 
-  // if true, a maybeReadMore has been scheduled
-  this.readingMore = false;
+    cmp = mappingA.originalColumn - mappingB.originalColumn;
+    if (cmp !== 0) {
+      return cmp;
+    }
 
-  this.decoder = null;
-  this.encoding = null;
-  if (options.encoding) {
-    if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
-    this.decoder = new StringDecoder(options.encoding);
-    this.encoding = options.encoding;
+    return strcmp(mappingA.name, mappingB.name);
+  };
+  exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;
+
+});
+
+},{"amdefine":1}],78:[function(require,module,exports){
+(function (Buffer){
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// 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.
+
+// NOTE: These type checking functions intentionally don't use `instanceof`
+// because it is fragile and can be easily faked with `Object.create()`.
+
+function isArray(arg) {
+  if (Array.isArray) {
+    return Array.isArray(arg);
   }
+  return objectToString(arg) === '[object Array]';
 }
+exports.isArray = isArray;
 
-var Duplex;
-function Readable(options) {
-  Duplex = Duplex || require('./_stream_duplex');
+function isBoolean(arg) {
+  return typeof arg === 'boolean';
+}
+exports.isBoolean = isBoolean;
 
-  if (!(this instanceof Readable)) return new Readable(options);
+function isNull(arg) {
+  return arg === null;
+}
+exports.isNull = isNull;
 
-  this._readableState = new ReadableState(options, this);
+function isNullOrUndefined(arg) {
+  return arg == null;
+}
+exports.isNullOrUndefined = isNullOrUndefined;
 
-  // legacy
-  this.readable = true;
+function isNumber(arg) {
+  return typeof arg === 'number';
+}
+exports.isNumber = isNumber;
 
-  if (options && typeof options.read === 'function') this._read = options.read;
+function isString(arg) {
+  return typeof arg === 'string';
+}
+exports.isString = isString;
 
-  Stream.call(this);
+function isSymbol(arg) {
+  return typeof arg === 'symbol';
 }
+exports.isSymbol = isSymbol;
 
-// Manually shove something into the read() buffer.
-// This returns true if the highWaterMark has not been hit yet,
-// similar to how Writable.write() returns true if you should
-// write() some more.
-Readable.prototype.push = function (chunk, encoding) {
-  var state = this._readableState;
+function isUndefined(arg) {
+  return arg === void 0;
+}
+exports.isUndefined = isUndefined;
 
-  if (!state.objectMode && typeof chunk === 'string') {
-    encoding = encoding || state.defaultEncoding;
-    if (encoding !== state.encoding) {
-      chunk = new Buffer(chunk, encoding);
-      encoding = '';
-    }
-  }
+function isRegExp(re) {
+  return objectToString(re) === '[object RegExp]';
+}
+exports.isRegExp = isRegExp;
 
-  return readableAddChunk(this, state, chunk, encoding, false);
-};
+function isObject(arg) {
+  return typeof arg === 'object' && arg !== null;
+}
+exports.isObject = isObject;
 
-// Unshift should *always* be something directly out of read()
-Readable.prototype.unshift = function (chunk) {
-  var state = this._readableState;
-  return readableAddChunk(this, state, chunk, '', true);
-};
+function isDate(d) {
+  return objectToString(d) === '[object Date]';
+}
+exports.isDate = isDate;
 
-Readable.prototype.isPaused = function () {
-  return this._readableState.flowing === false;
-};
+function isError(e) {
+  return (objectToString(e) === '[object Error]' || e instanceof Error);
+}
+exports.isError = isError;
 
-function readableAddChunk(stream, state, chunk, encoding, addToFront) {
-  var er = chunkInvalid(state, chunk);
-  if (er) {
-    stream.emit('error', er);
-  } else if (chunk === null) {
-    state.reading = false;
-    onEofChunk(stream, state);
-  } else if (state.objectMode || chunk && chunk.length > 0) {
-    if (state.ended && !addToFront) {
-      var e = new Error('stream.push() after EOF');
-      stream.emit('error', e);
-    } else if (state.endEmitted && addToFront) {
-      var e = new Error('stream.unshift() after end event');
-      stream.emit('error', e);
-    } else {
-      var skipAdd;
-      if (state.decoder && !addToFront && !encoding) {
-        chunk = state.decoder.write(chunk);
-        skipAdd = !state.objectMode && chunk.length === 0;
-      }
+function isFunction(arg) {
+  return typeof arg === 'function';
+}
+exports.isFunction = isFunction;
 
-      if (!addToFront) state.reading = false;
+function isPrimitive(arg) {
+  return arg === null ||
+         typeof arg === 'boolean' ||
+         typeof arg === 'number' ||
+         typeof arg === 'string' ||
+         typeof arg === 'symbol' ||  // ES6 symbol
+         typeof arg === 'undefined';
+}
+exports.isPrimitive = isPrimitive;
 
-      // Don't add to the buffer if we've decoded to an empty string chunk and
-      // we're not in object mode
-      if (!skipAdd) {
-        // if we want the data now, just emit it.
-        if (state.flowing && state.length === 0 && !state.sync) {
-          stream.emit('data', chunk);
-          stream.read(0);
-        } else {
-          // update the buffer info.
-          state.length += state.objectMode ? 1 : chunk.length;
-          if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
+exports.isBuffer = Buffer.isBuffer;
 
-          if (state.needReadable) emitReadable(stream);
-        }
-      }
+function objectToString(o) {
+  return Object.prototype.toString.call(o);
+}
 
-      maybeReadMore(stream, state);
-    }
-  } else if (!addToFront) {
-    state.reading = false;
-  }
+}).call(this,{"isBuffer":require("../../is-buffer/index.js")})
+},{"../../is-buffer/index.js":84}],79:[function(require,module,exports){
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// 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.
 
-  return needMoreData(state);
+function EventEmitter() {
+  this._events = this._events || {};
+  this._maxListeners = this._maxListeners || undefined;
 }
+module.exports = EventEmitter;
 
-// if it's past the high water mark, we can push in some more.
-// Also, if we have no data yet, we can stand some
-// more bytes.  This is to work around cases where hwm=0,
-// such as the repl.  Also, if the push() triggered a
-// readable event, and the user called read(largeNumber) such that
-// needReadable was set, then we ought to push more, so that another
-// 'readable' event will be triggered.
-function needMoreData(state) {
-  return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);
-}
+// Backwards-compat with node 0.10.x
+EventEmitter.EventEmitter = EventEmitter;
 
-// backwards compatibility.
-Readable.prototype.setEncoding = function (enc) {
-  if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
-  this._readableState.decoder = new StringDecoder(enc);
-  this._readableState.encoding = enc;
+EventEmitter.prototype._events = undefined;
+EventEmitter.prototype._maxListeners = undefined;
+
+// By default EventEmitters will print a warning if more than 10 listeners are
+// added to it. This is a useful default which helps finding memory leaks.
+EventEmitter.defaultMaxListeners = 10;
+
+// Obviously not all Emitters should be limited to 10. This function allows
+// that to be increased. Set to zero for unlimited.
+EventEmitter.prototype.setMaxListeners = function(n) {
+  if (!isNumber(n) || n < 0 || isNaN(n))
+    throw TypeError('n must be a positive number');
+  this._maxListeners = n;
   return this;
 };
 
-// Don't raise the hwm > 8MB
-var MAX_HWM = 0x800000;
-function computeNewHighWaterMark(n) {
-  if (n >= MAX_HWM) {
-    n = MAX_HWM;
-  } else {
-    // Get the next highest power of 2
-    n--;
-    n |= n >>> 1;
-    n |= n >>> 2;
-    n |= n >>> 4;
-    n |= n >>> 8;
-    n |= n >>> 16;
-    n++;
+EventEmitter.prototype.emit = function(type) {
+  var er, handler, len, args, i, listeners;
+
+  if (!this._events)
+    this._events = {};
+
+  // If there is no 'error' event listener then throw.
+  if (type === 'error') {
+    if (!this._events.error ||
+        (isObject(this._events.error) && !this._events.error.length)) {
+      er = arguments[1];
+      if (er instanceof Error) {
+        throw er; // Unhandled 'error' event
+      }
+      throw TypeError('Uncaught, unspecified "error" event.');
+    }
   }
-  return n;
-}
 
-function howMuchToRead(n, state) {
-  if (state.length === 0 && state.ended) return 0;
+  handler = this._events[type];
 
-  if (state.objectMode) return n === 0 ? 0 : 1;
+  if (isUndefined(handler))
+    return false;
 
-  if (n === null || isNaN(n)) {
-    // only flow one buffer at a time
-    if (state.flowing && state.buffer.length) return state.buffer[0].length;else return state.length;
+  if (isFunction(handler)) {
+    switch (arguments.length) {
+      // fast cases
+      case 1:
+        handler.call(this);
+        break;
+      case 2:
+        handler.call(this, arguments[1]);
+        break;
+      case 3:
+        handler.call(this, arguments[1], arguments[2]);
+        break;
+      // slower
+      default:
+        args = Array.prototype.slice.call(arguments, 1);
+        handler.apply(this, args);
+    }
+  } else if (isObject(handler)) {
+    args = Array.prototype.slice.call(arguments, 1);
+    listeners = handler.slice();
+    len = listeners.length;
+    for (i = 0; i < len; i++)
+      listeners[i].apply(this, args);
   }
 
-  if (n <= 0) return 0;
+  return true;
+};
 
-  // If we're asking for more than the target buffer level,
-  // then raise the water mark.  Bump up to the next highest
-  // power of 2, to prevent increasing it excessively in tiny
-  // amounts.
-  if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
+EventEmitter.prototype.addListener = function(type, listener) {
+  var m;
 
-  // don't have that much.  return null, unless we've ended.
-  if (n > state.length) {
-    if (!state.ended) {
-      state.needReadable = true;
-      return 0;
+  if (!isFunction(listener))
+    throw TypeError('listener must be a function');
+
+  if (!this._events)
+    this._events = {};
+
+  // To avoid recursion in the case that type === "newListener"! Before
+  // adding it to the listeners, first emit "newListener".
+  if (this._events.newListener)
+    this.emit('newListener', type,
+              isFunction(listener.listener) ?
+              listener.listener : listener);
+
+  if (!this._events[type])
+    // Optimize the case of one listener. Don't need the extra array object.
+    this._events[type] = listener;
+  else if (isObject(this._events[type]))
+    // If we've already got an array, just append.
+    this._events[type].push(listener);
+  else
+    // Adding the second element, need to change to array.
+    this._events[type] = [this._events[type], listener];
+
+  // Check for listener leak
+  if (isObject(this._events[type]) && !this._events[type].warned) {
+    if (!isUndefined(this._maxListeners)) {
+      m = this._maxListeners;
     } else {
-      return state.length;
+      m = EventEmitter.defaultMaxListeners;
+    }
+
+    if (m && m > 0 && this._events[type].length > m) {
+      this._events[type].warned = true;
+      console.error('(node) warning: possible EventEmitter memory ' +
+                    'leak detected. %d listeners added. ' +
+                    'Use emitter.setMaxListeners() to increase limit.',
+                    this._events[type].length);
+      if (typeof console.trace === 'function') {
+        // not supported in IE 10
+        console.trace();
+      }
     }
   }
 
-  return n;
-}
+  return this;
+};
 
-// you can override either this method, or the async _read(n) below.
-Readable.prototype.read = function (n) {
-  debug('read', n);
-  var state = this._readableState;
-  var nOrig = n;
+EventEmitter.prototype.on = EventEmitter.prototype.addListener;
 
-  if (typeof n !== 'number' || n > 0) state.emittedReadable = false;
+EventEmitter.prototype.once = function(type, listener) {
+  if (!isFunction(listener))
+    throw TypeError('listener must be a function');
 
-  // if we're doing read(0) to trigger a readable event, but we
-  // already have a bunch of data in the buffer, then just trigger
-  // the 'readable' event and move on.
-  if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {
-    debug('read: emitReadable', state.length, state.ended);
-    if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);
-    return null;
-  }
+  var fired = false;
 
-  n = howMuchToRead(n, state);
+  function g() {
+    this.removeListener(type, g);
 
-  // if we've ended, and we're now clear, then finish it up.
-  if (n === 0 && state.ended) {
-    if (state.length === 0) endReadable(this);
-    return null;
+    if (!fired) {
+      fired = true;
+      listener.apply(this, arguments);
+    }
   }
 
-  // All the actual chunk generation logic needs to be
-  // *below* the call to _read.  The reason is that in certain
-  // synthetic stream cases, such as passthrough streams, _read
-  // may be a completely synchronous operation which may change
-  // the state of the read buffer, providing enough data when
-  // before there was *not* enough.
-  //
-  // So, the steps are:
-  // 1. Figure out what the state of things will be after we do
-  // a read from the buffer.
-  //
-  // 2. If that resulting state will trigger a _read, then call _read.
-  // Note that this may be asynchronous, or synchronous.  Yes, it is
-  // deeply ugly to write APIs this way, but that still doesn't mean
-  // that the Readable class should behave improperly, as streams are
-  // designed to be sync/async agnostic.
-  // Take note if the _read call is sync or async (ie, if the read call
-  // has returned yet), so that we know whether or not it's safe to emit
-  // 'readable' etc.
-  //
-  // 3. Actually pull the requested chunks out of the buffer and return.
+  g.listener = listener;
+  this.on(type, g);
 
-  // if we need a readable event, then we need to do some reading.
-  var doRead = state.needReadable;
-  debug('need readable', doRead);
+  return this;
+};
 
-  // if we currently have less than the highWaterMark, then also read some
-  if (state.length === 0 || state.length - n < state.highWaterMark) {
-    doRead = true;
-    debug('length less than watermark', doRead);
-  }
+// emits a 'removeListener' event iff the listener was removed
+EventEmitter.prototype.removeListener = function(type, listener) {
+  var list, position, length, i;
 
-  // however, if we've ended, then there's no point, and if we're already
-  // reading, then it's unnecessary.
-  if (state.ended || state.reading) {
-    doRead = false;
-    debug('reading or ended', doRead);
-  }
+  if (!isFunction(listener))
+    throw TypeError('listener must be a function');
 
-  if (doRead) {
-    debug('do read');
-    state.reading = true;
-    state.sync = true;
-    // if the length is currently zero, then we *need* a readable event.
-    if (state.length === 0) state.needReadable = true;
-    // call internal read method
-    this._read(state.highWaterMark);
-    state.sync = false;
+  if (!this._events || !this._events[type])
+    return this;
+
+  list = this._events[type];
+  length = list.length;
+  position = -1;
+
+  if (list === listener ||
+      (isFunction(list.listener) && list.listener === listener)) {
+    delete this._events[type];
+    if (this._events.removeListener)
+      this.emit('removeListener', type, listener);
+
+  } else if (isObject(list)) {
+    for (i = length; i-- > 0;) {
+      if (list[i] === listener ||
+          (list[i].listener && list[i].listener === listener)) {
+        position = i;
+        break;
+      }
+    }
+
+    if (position < 0)
+      return this;
+
+    if (list.length === 1) {
+      list.length = 0;
+      delete this._events[type];
+    } else {
+      list.splice(position, 1);
+    }
+
+    if (this._events.removeListener)
+      this.emit('removeListener', type, listener);
   }
 
-  // If _read pushed data synchronously, then `reading` will be false,
-  // and we need to re-evaluate how much data we can return to the user.
-  if (doRead && !state.reading) n = howMuchToRead(nOrig, state);
+  return this;
+};
 
-  var ret;
-  if (n > 0) ret = fromList(n, state);else ret = null;
+EventEmitter.prototype.removeAllListeners = function(type) {
+  var key, listeners;
 
-  if (ret === null) {
-    state.needReadable = true;
-    n = 0;
+  if (!this._events)
+    return this;
+
+  // not listening for removeListener, no need to emit
+  if (!this._events.removeListener) {
+    if (arguments.length === 0)
+      this._events = {};
+    else if (this._events[type])
+      delete this._events[type];
+    return this;
   }
 
-  state.length -= n;
+  // emit removeListener for all listeners on all events
+  if (arguments.length === 0) {
+    for (key in this._events) {
+      if (key === 'removeListener') continue;
+      this.removeAllListeners(key);
+    }
+    this.removeAllListeners('removeListener');
+    this._events = {};
+    return this;
+  }
 
-  // If we have nothing in the buffer, then we want to know
-  // as soon as we *do* get something into the buffer.
-  if (state.length === 0 && !state.ended) state.needReadable = true;
+  listeners = this._events[type];
 
-  // If we tried to read() past the EOF, then emit end on the next tick.
-  if (nOrig !== n && state.ended && state.length === 0) endReadable(this);
+  if (isFunction(listeners)) {
+    this.removeListener(type, listeners);
+  } else if (listeners) {
+    // LIFO order
+    while (listeners.length)
+      this.removeListener(type, listeners[listeners.length - 1]);
+  }
+  delete this._events[type];
 
-  if (ret !== null) this.emit('data', ret);
+  return this;
+};
 
+EventEmitter.prototype.listeners = function(type) {
+  var ret;
+  if (!this._events || !this._events[type])
+    ret = [];
+  else if (isFunction(this._events[type]))
+    ret = [this._events[type]];
+  else
+    ret = this._events[type].slice();
   return ret;
 };
 
-function chunkInvalid(state, chunk) {
-  var er = null;
-  if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
-    er = new TypeError('Invalid non-string/buffer chunk');
-  }
-  return er;
-}
+EventEmitter.prototype.listenerCount = function(type) {
+  if (this._events) {
+    var evlistener = this._events[type];
 
-function onEofChunk(stream, state) {
-  if (state.ended) return;
-  if (state.decoder) {
-    var chunk = state.decoder.end();
-    if (chunk && chunk.length) {
-      state.buffer.push(chunk);
-      state.length += state.objectMode ? 1 : chunk.length;
-    }
+    if (isFunction(evlistener))
+      return 1;
+    else if (evlistener)
+      return evlistener.length;
   }
-  state.ended = true;
+  return 0;
+};
 
-  // emit 'readable' now to make sure it gets picked up.
-  emitReadable(stream);
-}
+EventEmitter.listenerCount = function(emitter, type) {
+  return emitter.listenerCount(type);
+};
 
-// Don't emit readable right away in sync mode, because this can trigger
-// another read() call => stack overflow.  This way, it might trigger
-// a nextTick recursion warning, but that's not so bad.
-function emitReadable(stream) {
-  var state = stream._readableState;
-  state.needReadable = false;
-  if (!state.emittedReadable) {
-    debug('emitReadable', state.flowing);
-    state.emittedReadable = true;
-    if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
-  }
+function isFunction(arg) {
+  return typeof arg === 'function';
 }
 
-function emitReadable_(stream) {
-  debug('emit readable');
-  stream.emit('readable');
-  flow(stream);
+function isNumber(arg) {
+  return typeof arg === 'number';
 }
 
-// at this point, the user has presumably seen the 'readable' event,
-// and called read() to consume some data.  that may have triggered
-// in turn another _read(n) call, in which case reading = true if
-// it's in progress.
-// However, if we're not ended, or reading, and the length < hwm,
-// then go ahead and try to read some more preemptively.
-function maybeReadMore(stream, state) {
-  if (!state.readingMore) {
-    state.readingMore = true;
-    processNextTick(maybeReadMore_, stream, state);
-  }
+function isObject(arg) {
+  return typeof arg === 'object' && arg !== null;
 }
 
-function maybeReadMore_(stream, state) {
-  var len = state.length;
-  while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
-    debug('maybeReadMore read 0');
-    stream.read(0);
-    if (len === state.length)
-      // didn't get any data, stop spinning.
-      break;else len = state.length;
-  }
-  state.readingMore = false;
+function isUndefined(arg) {
+  return arg === void 0;
 }
 
-// abstract method.  to be overridden in specific implementation classes.
-// call cb(er, data) where data is <= n in length.
-// for virtual (non-string, non-buffer) streams, "length" is somewhat
-// arbitrary, and perhaps not very meaningful.
-Readable.prototype._read = function (n) {
-  this.emit('error', new Error('not implemented'));
-};
+},{}],80:[function(require,module,exports){
+(function (global){
+/*! https://mths.be/he v1.0.0 by @mathias | MIT license */
+;(function(root) {
 
-Readable.prototype.pipe = function (dest, pipeOpts) {
-  var src = this;
-  var state = this._readableState;
+       // Detect free variables `exports`.
+       var freeExports = typeof exports == 'object' && exports;
 
-  switch (state.pipesCount) {
-    case 0:
-      state.pipes = dest;
-      break;
-    case 1:
-      state.pipes = [state.pipes, dest];
-      break;
-    default:
-      state.pipes.push(dest);
-      break;
-  }
-  state.pipesCount += 1;
-  debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
+       // Detect free variable `module`.
+       var freeModule = typeof module == 'object' && module &&
+               module.exports == freeExports && module;
 
-  var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
+       // Detect free variable `global`, from Node.js or Browserified code,
+       // and use it as `root`.
+       var freeGlobal = typeof global == 'object' && global;
+       if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {
+               root = freeGlobal;
+       }
 
-  var endFn = doEnd ? onend : cleanup;
-  if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
+       /*--------------------------------------------------------------------------*/
 
-  dest.on('unpipe', onunpipe);
-  function onunpipe(readable) {
-    debug('onunpipe');
-    if (readable === src) {
-      cleanup();
-    }
-  }
+       // All astral symbols.
+       var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
+       // All ASCII symbols (not just printable ASCII) except those listed in the
+       // first column of the overrides table.
+       // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides
+       var regexAsciiWhitelist = /[\x01-\x7F]/g;
+       // All BMP symbols that are not ASCII newlines, printable ASCII symbols, or
+       // code points listed in the first column of the overrides table on
+       // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.
+       var regexBmpWhitelist = /[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g;
 
-  function onend() {
-    debug('onend');
-    dest.end();
-  }
+       var regexEncodeNonAscii = /<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g;
+       var encodeMap = {'\xAD':'shy','\u200C':'zwnj','\u200D':'zwj','\u200E':'lrm','\u2063':'ic','\u2062':'it','\u2061':'af','\u200F':'rlm','\u200B':'ZeroWidthSpace','\u2060':'NoBreak','\u0311':'DownBreve','\u20DB':'tdot','\u20DC':'DotDot','\t':'Tab','\n':'NewLine','\u2008':'puncsp','\u205F':'MediumSpace','\u2009':'thinsp','\u200A':'hairsp','\u2004':'emsp13','\u2002':'ensp','\u2005':'emsp14','\u2003':'emsp','\u2007':'numsp','\xA0':'nbsp','\u205F\u200A':'ThickSpace','\u203E':'oline','_':'lowbar','\u2010':'dash','\u2013':'ndash','\u2014':'mdash','\u2015':'horbar',',':'comma',';':'semi','\u204F':'bsemi',':':'colon','\u2A74':'Colone','!':'excl','\xA1':'iexcl','?':'quest','\xBF':'iquest','.':'period','\u2025':'nldr','\u2026':'mldr','\xB7':'middot','\'':'apos','\u2018':'lsquo','\u2019':'rsquo','\u201A':'sbquo','\u2039':'lsaquo','\u203A':'rsaquo','"':'quot','\u201C':'ldquo','\u201D':'rdquo','\u201E':'bdquo','\xAB':'laquo','\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\u2308':'lceil','\u2309':'rceil','\u230A':'lfloor','\u230B':'rfloor','\u2985':'lopar','\u2986':'ropar','\u298B':'lbrke','\u298C':'rbrke','\u298D':'lbrkslu','\u298E':'rbrksld','\u298F':'lbrksld','\u2990':'rbrkslu','\u2991':'langd','\u2992':'rangd','\u2993':'lparlt','\u2994':'rpargt','\u2995':'gtlPar','\u2996':'ltrPar','\u27E6':'lobrk','\u27E7':'robrk','\u27E8':'lang','\u27E9':'rang','\u27EA':'Lang','\u27EB':'Rang','\u27EC':'loang','\u27ED':'roang','\u2772':'lbbrk','\u2773':'rbbrk','\u2016':'Vert','\xA7':'sect','\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\u2030':'permil','\u2031':'pertenk','\u2020':'dagger','\u2021':'Dagger','\u2022':'bull','\u2043':'hybull','\u2032':'prime','\u2033':'Prime','\u2034':'tprime','\u2057':'qprime','\u2035':'bprime','\u2041':'caret','`':'grave','\xB4':'acute','\u02DC':'tilde','^':'Hat','\xAF':'macr','\u02D8':'breve','\u02D9':'dot','\xA8':'die','\u02DA':'ring','\u02DD':'dblac','\xB8':'cedil','\u02DB':'ogon','\u02C6':'circ','\u02C7':'caron','\xB0':'deg','\xA9':'copy','\xAE':'reg','\u2117':'copysr','\u2118':'wp','\u211E':'rx','\u2127':'mho','\u2129':'iiota','\u2190':'larr','\u219A':'nlarr','\u2192':'rarr','\u219B':'nrarr','\u2191':'uarr','\u2193':'darr','\u2194':'harr','\u21AE':'nharr','\u2195':'varr','\u2196':'nwarr','\u2197':'nearr','\u2198':'searr','\u2199':'swarr','\u219D':'rarrw','\u219D\u0338':'nrarrw','\u219E':'Larr','\u219F':'Uarr','\u21A0':'Rarr','\u21A1':'Darr','\u21A2':'larrtl','\u21A3':'rarrtl','\u21A4':'mapstoleft','\u21A5':'mapstoup','\u21A6':'map','\u21A7':'mapstodown','\u21A9':'larrhk','\u21AA':'rarrhk','\u21AB':'larrlp','\u21AC':'rarrlp','\u21AD':'harrw','\u21B0':'lsh','\u21B1':'rsh','\u21B2':'ldsh','\u21B3':'rdsh','\u21B5':'crarr','\u21B6':'cularr','\u21B7':'curarr','\u21BA':'olarr','\u21BB':'orarr','\u21BC':'lharu','\u21BD':'lhard','\u21BE':'uharr','\u21BF':'uharl','\u21C0':'rharu','\u21C1':'rhard','\u21C2':'dharr','\u21C3':'dharl','\u21C4':'rlarr','\u21C5':'udarr','\u21C6':'lrarr','\u21C7':'llarr','\u21C8':'uuarr','\u21C9':'rrarr','\u21CA':'ddarr','\u21CB':'lrhar','\u21CC':'rlhar','\u21D0':'lArr','\u21CD':'nlArr','\u21D1':'uArr','\u21D2':'rArr','\u21CF':'nrArr','\u21D3':'dArr','\u21D4':'iff','\u21CE':'nhArr','\u21D5':'vArr','\u21D6':'nwArr','\u21D7':'neArr','\u21D8':'seArr','\u21D9':'swArr','\u21DA':'lAarr','\u21DB':'rAarr','\u21DD':'zigrarr','\u21E4':'larrb','\u21E5':'rarrb','\u21F5':'duarr','\u21FD':'loarr','\u21FE':'roarr','\u21FF':'hoarr','\u2200':'forall','\u2201':'comp','\u2202':'part','\u2202\u0338':'npart','\u2203':'exist','\u2204':'nexist','\u2205':'empty','\u2207':'Del','\u2208':'in','\u2209':'notin','\u220B':'ni','\u220C':'notni','\u03F6':'bepsi','\u220F':'prod','\u2210':'coprod','\u2211':'sum','+':'plus','\xB1':'pm','\xF7':'div','\xD7':'times','<':'lt','\u226E':'nlt','<\u20D2':'nvlt','=':'equals','\u2260':'ne','=\u20E5':'bne','\u2A75':'Equal','>':'gt','\u226F':'ngt','>\u20D2':'nvgt','\xAC':'not','|':'vert','\xA6':'brvbar','\u2212':'minus','\u2213':'mp','\u2214':'plusdo','\u2044':'frasl','\u2216':'setmn','\u2217':'lowast','\u2218':'compfn','\u221A':'Sqrt','\u221D':'prop','\u221E':'infin','\u221F':'angrt','\u2220':'ang','\u2220\u20D2':'nang','\u2221':'angmsd','\u2222':'angsph','\u2223':'mid','\u2224':'nmid','\u2225':'par','\u2226':'npar','\u2227':'and','\u2228':'or','\u2229':'cap','\u2229\uFE00':'caps','\u222A':'cup','\u222A\uFE00':'cups','\u222B':'int','\u222C':'Int','\u222D':'tint','\u2A0C':'qint','\u222E':'oint','\u222F':'Conint','\u2230':'Cconint','\u2231':'cwint','\u2232':'cwconint','\u2233':'awconint','\u2234':'there4','\u2235':'becaus','\u2236':'ratio','\u2237':'Colon','\u2238':'minusd','\u223A':'mDDot','\u223B':'homtht','\u223C':'sim','\u2241':'nsim','\u223C\u20D2':'nvsim','\u223D':'bsim','\u223D\u0331':'race','\u223E':'ac','\u223E\u0333':'acE','\u223F':'acd','\u2240':'wr','\u2242':'esim','\u2242\u0338':'nesim','\u2243':'sime','\u2244':'nsime','\u2245':'cong','\u2247':'ncong','\u2246':'simne','\u2248':'ap','\u2249':'nap','\u224A':'ape','\u224B':'apid','\u224B\u0338':'napid','\u224C':'bcong','\u224D':'CupCap','\u226D':'NotCupCap','\u224D\u20D2':'nvap','\u224E':'bump','\u224E\u0338':'nbump','\u224F':'bumpe','\u224F\u0338':'nbumpe','\u2250':'doteq','\u2250\u0338':'nedot','\u2251':'eDot','\u2252':'efDot','\u2253':'erDot','\u2254':'colone','\u2255':'ecolon','\u2256':'ecir','\u2257':'cire','\u2259':'wedgeq','\u225A':'veeeq','\u225C':'trie','\u225F':'equest','\u2261':'equiv','\u2262':'nequiv','\u2261\u20E5':'bnequiv','\u2264':'le','\u2270':'nle','\u2264\u20D2':'nvle','\u2265':'ge','\u2271':'nge','\u2265\u20D2':'nvge','\u2266':'lE','\u2266\u0338':'nlE','\u2267':'gE','\u2267\u0338':'ngE','\u2268\uFE00':'lvnE','\u2268':'lnE','\u2269':'gnE','\u2269\uFE00':'gvnE','\u226A':'ll','\u226A\u0338':'nLtv','\u226A\u20D2':'nLt','\u226B':'gg','\u226B\u0338':'nGtv','\u226B\u20D2':'nGt','\u226C':'twixt','\u2272':'lsim','\u2274':'nlsim','\u2273':'gsim','\u2275':'ngsim','\u2276':'lg','\u2278':'ntlg','\u2277':'gl','\u2279':'ntgl','\u227A':'pr','\u2280':'npr','\u227B':'sc','\u2281':'nsc','\u227C':'prcue','\u22E0':'nprcue','\u227D':'sccue','\u22E1':'nsccue','\u227E':'prsim','\u227F':'scsim','\u227F\u0338':'NotSucceedsTilde','\u2282':'sub','\u2284':'nsub','\u2282\u20D2':'vnsub','\u2283':'sup','\u2285':'nsup','\u2283\u20D2':'vnsup','\u2286':'sube','\u2288':'nsube','\u2287':'supe','\u2289':'nsupe','\u228A\uFE00':'vsubne','\u228A':'subne','\u228B\uFE00':'vsupne','\u228B':'supne','\u228D':'cupdot','\u228E':'uplus','\u228F':'sqsub','\u228F\u0338':'NotSquareSubset','\u2290':'sqsup','\u2290\u0338':'NotSquareSuperset','\u2291':'sqsube','\u22E2':'nsqsube','\u2292':'sqsupe','\u22E3':'nsqsupe','\u2293':'sqcap','\u2293\uFE00':'sqcaps','\u2294':'sqcup','\u2294\uFE00':'sqcups','\u2295':'oplus','\u2296':'ominus','\u2297':'otimes','\u2298':'osol','\u2299':'odot','\u229A':'ocir','\u229B':'oast','\u229D':'odash','\u229E':'plusb','\u229F':'minusb','\u22A0':'timesb','\u22A1':'sdotb','\u22A2':'vdash','\u22AC':'nvdash','\u22A3':'dashv','\u22A4':'top','\u22A5':'bot','\u22A7':'models','\u22A8':'vDash','\u22AD':'nvDash','\u22A9':'Vdash','\u22AE':'nVdash','\u22AA':'Vvdash','\u22AB':'VDash','\u22AF':'nVDash','\u22B0':'prurel','\u22B2':'vltri','\u22EA':'nltri','\u22B3':'vrtri','\u22EB':'nrtri','\u22B4':'ltrie','\u22EC':'nltrie','\u22B4\u20D2':'nvltrie','\u22B5':'rtrie','\u22ED':'nrtrie','\u22B5\u20D2':'nvrtrie','\u22B6':'origof','\u22B7':'imof','\u22B8':'mumap','\u22B9':'hercon','\u22BA':'intcal','\u22BB':'veebar','\u22BD':'barvee','\u22BE':'angrtvb','\u22BF':'lrtri','\u22C0':'Wedge','\u22C1':'Vee','\u22C2':'xcap','\u22C3':'xcup','\u22C4':'diam','\u22C5':'sdot','\u22C6':'Star','\u22C7':'divonx','\u22C8':'bowtie','\u22C9':'ltimes','\u22CA':'rtimes','\u22CB':'lthree','\u22CC':'rthree','\u22CD':'bsime','\u22CE':'cuvee','\u22CF':'cuwed','\u22D0':'Sub','\u22D1':'Sup','\u22D2':'Cap','\u22D3':'Cup','\u22D4':'fork','\u22D5':'epar','\u22D6':'ltdot','\u22D7':'gtdot','\u22D8':'Ll','\u22D8\u0338':'nLl','\u22D9':'Gg','\u22D9\u0338':'nGg','\u22DA\uFE00':'lesg','\u22DA':'leg','\u22DB':'gel','\u22DB\uFE00':'gesl','\u22DE':'cuepr','\u22DF':'cuesc','\u22E6':'lnsim','\u22E7':'gnsim','\u22E8':'prnsim','\u22E9':'scnsim','\u22EE':'vellip','\u22EF':'ctdot','\u22F0':'utdot','\u22F1':'dtdot','\u22F2':'disin','\u22F3':'isinsv','\u22F4':'isins','\u22F5':'isindot','\u22F5\u0338':'notindot','\u22F6':'notinvc','\u22F7':'notinvb','\u22F9':'isinE','\u22F9\u0338':'notinE','\u22FA':'nisd','\u22FB':'xnis','\u22FC':'nis','\u22FD':'notnivc','\u22FE':'notnivb','\u2305':'barwed','\u2306':'Barwed','\u230C':'drcrop','\u230D':'dlcrop','\u230E':'urcrop','\u230F':'ulcrop','\u2310':'bnot','\u2312':'profline','\u2313':'profsurf','\u2315':'telrec','\u2316':'target','\u231C':'ulcorn','\u231D':'urcorn','\u231E':'dlcorn','\u231F':'drcorn','\u2322':'frown','\u2323':'smile','\u232D':'cylcty','\u232E':'profalar','\u2336':'topbot','\u233D':'ovbar','\u233F':'solbar','\u237C':'angzarr','\u23B0':'lmoust','\u23B1':'rmoust','\u23B4':'tbrk','\u23B5':'bbrk','\u23B6':'bbrktbrk','\u23DC':'OverParenthesis','\u23DD':'UnderParenthesis','\u23DE':'OverBrace','\u23DF':'UnderBrace','\u23E2':'trpezium','\u23E7':'elinters','\u2423':'blank','\u2500':'boxh','\u2502':'boxv','\u250C':'boxdr','\u2510':'boxdl','\u2514':'boxur','\u2518':'boxul','\u251C':'boxvr','\u2524':'boxvl','\u252C':'boxhd','\u2534':'boxhu','\u253C':'boxvh','\u2550':'boxH','\u2551':'boxV','\u2552':'boxdR','\u2553':'boxDr','\u2554':'boxDR','\u2555':'boxdL','\u2556':'boxDl','\u2557':'boxDL','\u2558':'boxuR','\u2559':'boxUr','\u255A':'boxUR','\u255B':'boxuL','\u255C':'boxUl','\u255D':'boxUL','\u255E':'boxvR','\u255F':'boxVr','\u2560':'boxVR','\u2561':'boxvL','\u2562':'boxVl','\u2563':'boxVL','\u2564':'boxHd','\u2565':'boxhD','\u2566':'boxHD','\u2567':'boxHu','\u2568':'boxhU','\u2569':'boxHU','\u256A':'boxvH','\u256B':'boxVh','\u256C':'boxVH','\u2580':'uhblk','\u2584':'lhblk','\u2588':'block','\u2591':'blk14','\u2592':'blk12','\u2593':'blk34','\u25A1':'squ','\u25AA':'squf','\u25AB':'EmptyVerySmallSquare','\u25AD':'rect','\u25AE':'marker','\u25B1':'fltns','\u25B3':'xutri','\u25B4':'utrif','\u25B5':'utri','\u25B8':'rtrif','\u25B9':'rtri','\u25BD':'xdtri','\u25BE':'dtrif','\u25BF':'dtri','\u25C2':'ltrif','\u25C3':'ltri','\u25CA':'loz','\u25CB':'cir','\u25EC':'tridot','\u25EF':'xcirc','\u25F8':'ultri','\u25F9':'urtri','\u25FA':'lltri','\u25FB':'EmptySmallSquare','\u25FC':'FilledSmallSquare','\u2605':'starf','\u2606':'star','\u260E':'phone','\u2640':'female','\u2642':'male','\u2660':'spades','\u2663':'clubs','\u2665':'hearts','\u2666':'diams','\u266A':'sung','\u2713':'check','\u2717':'cross','\u2720':'malt','\u2736':'sext','\u2758':'VerticalSeparator','\u27C8':'bsolhsub','\u27C9':'suphsol','\u27F5':'xlarr','\u27F6':'xrarr','\u27F7':'xharr','\u27F8':'xlArr','\u27F9':'xrArr','\u27FA':'xhArr','\u27FC':'xmap','\u27FF':'dzigrarr','\u2902':'nvlArr','\u2903':'nvrArr','\u2904':'nvHarr','\u2905':'Map','\u290C':'lbarr','\u290D':'rbarr','\u290E':'lBarr','\u290F':'rBarr','\u2910':'RBarr','\u2911':'DDotrahd','\u2912':'UpArrowBar','\u2913':'DownArrowBar','\u2916':'Rarrtl','\u2919':'latail','\u291A':'ratail','\u291B':'lAtail','\u291C':'rAtail','\u291D':'larrfs','\u291E':'rarrfs','\u291F':'larrbfs','\u2920':'rarrbfs','\u2923':'nwarhk','\u2924':'nearhk','\u2925':'searhk','\u2926':'swarhk','\u2927':'nwnear','\u2928':'toea','\u2929':'tosa','\u292A':'swnwar','\u2933':'rarrc','\u2933\u0338':'nrarrc','\u2935':'cudarrr','\u2936':'ldca','\u2937':'rdca','\u2938':'cudarrl','\u2939':'larrpl','\u293C':'curarrm','\u293D':'cularrp','\u2945':'rarrpl','\u2948':'harrcir','\u2949':'Uarrocir','\u294A':'lurdshar','\u294B':'ldrushar','\u294E':'LeftRightVector','\u294F':'RightUpDownVector','\u2950':'DownLeftRightVector','\u2951':'LeftUpDownVector','\u2952':'LeftVectorBar','\u2953':'RightVectorBar','\u2954':'RightUpVectorBar','\u2955':'RightDownVectorBar','\u2956':'DownLeftVectorBar','\u2957':'DownRightVectorBar','\u2958':'LeftUpVectorBar','\u2959':'LeftDownVectorBar','\u295A':'LeftTeeVector','\u295B':'RightTeeVector','\u295C':'RightUpTeeVector','\u295D':'RightDownTeeVector','\u295E':'DownLeftTeeVector','\u295F':'DownRightTeeVector','\u2960':'LeftUpTeeVector','\u2961':'LeftDownTeeVector','\u2962':'lHar','\u2963':'uHar','\u2964':'rHar','\u2965':'dHar','\u2966':'luruhar','\u2967':'ldrdhar','\u2968':'ruluhar','\u2969':'rdldhar','\u296A':'lharul','\u296B':'llhard','\u296C':'rharul','\u296D':'lrhard','\u296E':'udhar','\u296F':'duhar','\u2970':'RoundImplies','\u2971':'erarr','\u2972':'simrarr','\u2973':'larrsim','\u2974':'rarrsim','\u2975':'rarrap','\u2976':'ltlarr','\u2978':'gtrarr','\u2979':'subrarr','\u297B':'suplarr','\u297C':'lfisht','\u297D':'rfisht','\u297E':'ufisht','\u297F':'dfisht','\u299A':'vzigzag','\u299C':'vangrt','\u299D':'angrtvbd','\u29A4':'ange','\u29A5':'range','\u29A6':'dwangle','\u29A7':'uwangle','\u29A8':'angmsdaa','\u29A9':'angmsdab','\u29AA':'angmsdac','\u29AB':'angmsdad','\u29AC':'angmsdae','\u29AD':'angmsdaf','\u29AE':'angmsdag','\u29AF':'angmsdah','\u29B0':'bemptyv','\u29B1':'demptyv','\u29B2':'cemptyv','\u29B3':'raemptyv','\u29B4':'laemptyv','\u29B5':'ohbar','\u29B6':'omid','\u29B7':'opar','\u29B9':'operp','\u29BB':'olcross','\u29BC':'odsold','\u29BE':'olcir','\u29BF':'ofcir','\u29C0':'olt','\u29C1':'ogt','\u29C2':'cirscir','\u29C3':'cirE','\u29C4':'solb','\u29C5':'bsolb','\u29C9':'boxbox','\u29CD':'trisb','\u29CE':'rtriltri','\u29CF':'LeftTriangleBar','\u29CF\u0338':'NotLeftTriangleBar','\u29D0':'RightTriangleBar','\u29D0\u0338':'NotRightTriangleBar','\u29DC':'iinfin','\u29DD':'infintie','\u29DE':'nvinfin','\u29E3':'eparsl','\u29E4':'smeparsl','\u29E5':'eqvparsl','\u29EB':'lozf','\u29F4':'RuleDelayed','\u29F6':'dsol','\u2A00':'xodot','\u2A01':'xoplus','\u2A02':'xotime','\u2A04':'xuplus','\u2A06':'xsqcup','\u2A0D':'fpartint','\u2A10':'cirfnint','\u2A11':'awint','\u2A12':'rppolint','\u2A13':'scpolint','\u2A14':'npolint','\u2A15':'pointint','\u2A16':'quatint','\u2A17':'intlarhk','\u2A22':'pluscir','\u2A23':'plusacir','\u2A24':'simplus','\u2A25':'plusdu','\u2A26':'plussim','\u2A27':'plustwo','\u2A29':'mcomma','\u2A2A':'minusdu','\u2A2D':'loplus','\u2A2E':'roplus','\u2A2F':'Cross','\u2A30':'timesd','\u2A31':'timesbar','\u2A33':'smashp','\u2A34':'lotimes','\u2A35':'rotimes','\u2A36':'otimesas','\u2A37':'Otimes','\u2A38':'odiv','\u2A39':'triplus','\u2A3A':'triminus','\u2A3B':'tritime','\u2A3C':'iprod','\u2A3F':'amalg','\u2A40':'capdot','\u2A42':'ncup','\u2A43':'ncap','\u2A44':'capand','\u2A45':'cupor','\u2A46':'cupcap','\u2A47':'capcup','\u2A48':'cupbrcap','\u2A49':'capbrcup','\u2A4A':'cupcup','\u2A4B':'capcap','\u2A4C':'ccups','\u2A4D':'ccaps','\u2A50':'ccupssm','\u2A53':'And','\u2A54':'Or','\u2A55':'andand','\u2A56':'oror','\u2A57':'orslope','\u2A58':'andslope','\u2A5A':'andv','\u2A5B':'orv','\u2A5C':'andd','\u2A5D':'ord','\u2A5F':'wedbar','\u2A66':'sdote','\u2A6A':'simdot','\u2A6D':'congdot','\u2A6D\u0338':'ncongdot','\u2A6E':'easter','\u2A6F':'apacir','\u2A70':'apE','\u2A70\u0338':'napE','\u2A71':'eplus','\u2A72':'pluse','\u2A73':'Esim','\u2A77':'eDDot','\u2A78':'equivDD','\u2A79':'ltcir','\u2A7A':'gtcir','\u2A7B':'ltquest','\u2A7C':'gtquest','\u2A7D':'les','\u2A7D\u0338':'nles','\u2A7E':'ges','\u2A7E\u0338':'nges','\u2A7F':'lesdot','\u2A80':'gesdot','\u2A81':'lesdoto','\u2A82':'gesdoto','\u2A83':'lesdotor','\u2A84':'gesdotol','\u2A85':'lap','\u2A86':'gap','\u2A87':'lne','\u2A88':'gne','\u2A89':'lnap','\u2A8A':'gnap','\u2A8B':'lEg','\u2A8C':'gEl','\u2A8D':'lsime','\u2A8E':'gsime','\u2A8F':'lsimg','\u2A90':'gsiml','\u2A91':'lgE','\u2A92':'glE','\u2A93':'lesges','\u2A94':'gesles','\u2A95':'els','\u2A96':'egs','\u2A97':'elsdot','\u2A98':'egsdot','\u2A99':'el','\u2A9A':'eg','\u2A9D':'siml','\u2A9E':'simg','\u2A9F':'simlE','\u2AA0':'simgE','\u2AA1':'LessLess','\u2AA1\u0338':'NotNestedLessLess','\u2AA2':'GreaterGreater','\u2AA2\u0338':'NotNestedGreaterGreater','\u2AA4':'glj','\u2AA5':'gla','\u2AA6':'ltcc','\u2AA7':'gtcc','\u2AA8':'lescc','\u2AA9':'gescc','\u2AAA':'smt','\u2AAB':'lat','\u2AAC':'smte','\u2AAC\uFE00':'smtes','\u2AAD':'late','\u2AAD\uFE00':'lates','\u2AAE':'bumpE','\u2AAF':'pre','\u2AAF\u0338':'npre','\u2AB0':'sce','\u2AB0\u0338':'nsce','\u2AB3':'prE','\u2AB4':'scE','\u2AB5':'prnE','\u2AB6':'scnE','\u2AB7':'prap','\u2AB8':'scap','\u2AB9':'prnap','\u2ABA':'scnap','\u2ABB':'Pr','\u2ABC':'Sc','\u2ABD':'subdot','\u2ABE':'supdot','\u2ABF':'subplus','\u2AC0':'supplus','\u2AC1':'submult','\u2AC2':'supmult','\u2AC3':'subedot','\u2AC4':'supedot','\u2AC5':'subE','\u2AC5\u0338':'nsubE','\u2AC6':'supE','\u2AC6\u0338':'nsupE','\u2AC7':'subsim','\u2AC8':'supsim','\u2ACB\uFE00':'vsubnE','\u2ACB':'subnE','\u2ACC\uFE00':'vsupnE','\u2ACC':'supnE','\u2ACF':'csub','\u2AD0':'csup','\u2AD1':'csube','\u2AD2':'csupe','\u2AD3':'subsup','\u2AD4':'supsub','\u2AD5':'subsub','\u2AD6':'supsup','\u2AD7':'suphsub','\u2AD8':'supdsub','\u2AD9':'forkv','\u2ADA':'topfork','\u2ADB':'mlcp','\u2AE4':'Dashv','\u2AE6':'Vdashl','\u2AE7':'Barv','\u2AE8':'vBar','\u2AE9':'vBarv','\u2AEB':'Vbar','\u2AEC':'Not','\u2AED':'bNot','\u2AEE':'rnmid','\u2AEF':'cirmid','\u2AF0':'midcir','\u2AF1':'topcir','\u2AF2':'nhpar','\u2AF3':'parsim','\u2AFD':'parsl','\u2AFD\u20E5':'nparsl','\u266D':'flat','\u266E':'natur','\u266F':'sharp','\xA4':'curren','\xA2':'cent','$':'dollar','\xA3':'pound','\xA5':'yen','\u20AC':'euro','\xB9':'sup1','\xBD':'half','\u2153':'frac13','\xBC':'frac14','\u2155':'frac15','\u2159':'frac16','\u215B':'frac18','\xB2':'sup2','\u2154':'frac23','\u2156':'frac25','\xB3':'sup3','\xBE':'frac34','\u2157':'frac35','\u215C':'frac38','\u2158':'frac45','\u215A':'frac56','\u215D':'frac58','\u215E':'frac78','\uD835\uDCB6':'ascr','\uD835\uDD52':'aopf','\uD835\uDD1E':'afr','\uD835\uDD38':'Aopf','\uD835\uDD04':'Afr','\uD835\uDC9C':'Ascr','\xAA':'ordf','\xE1':'aacute','\xC1':'Aacute','\xE0':'agrave','\xC0':'Agrave','\u0103':'abreve','\u0102':'Abreve','\xE2':'acirc','\xC2':'Acirc','\xE5':'aring','\xC5':'angst','\xE4':'auml','\xC4':'Auml','\xE3':'atilde','\xC3':'Atilde','\u0105':'aogon','\u0104':'Aogon','\u0101':'amacr','\u0100':'Amacr','\xE6':'aelig','\xC6':'AElig','\uD835\uDCB7':'bscr','\uD835\uDD53':'bopf','\uD835\uDD1F':'bfr','\uD835\uDD39':'Bopf','\u212C':'Bscr','\uD835\uDD05':'Bfr','\uD835\uDD20':'cfr','\uD835\uDCB8':'cscr','\uD835\uDD54':'copf','\u212D':'Cfr','\uD835\uDC9E':'Cscr','\u2102':'Copf','\u0107':'cacute','\u0106':'Cacute','\u0109':'ccirc','\u0108':'Ccirc','\u010D':'ccaron','\u010C':'Ccaron','\u010B':'cdot','\u010A':'Cdot','\xE7':'ccedil','\xC7':'Ccedil','\u2105':'incare','\uD835\uDD21':'dfr','\u2146':'dd','\uD835\uDD55':'dopf','\uD835\uDCB9':'dscr','\uD835\uDC9F':'Dscr','\uD835\uDD07':'Dfr','\u2145':'DD','\uD835\uDD3B':'Dopf','\u010F':'dcaron','\u010E':'Dcaron','\u0111':'dstrok','\u0110':'Dstrok','\xF0':'eth','\xD0':'ETH','\u2147':'ee','\u212F':'escr','\uD835\uDD22':'efr','\uD835\uDD56':'eopf','\u2130':'Escr','\uD835\uDD08':'Efr','\uD835\uDD3C':'Eopf','\xE9':'eacute','\xC9':'Eacute','\xE8':'egrave','\xC8':'Egrave','\xEA':'ecirc','\xCA':'Ecirc','\u011B':'ecaron','\u011A':'Ecaron','\xEB':'euml','\xCB':'Euml','\u0117':'edot','\u0116':'Edot','\u0119':'eogon','\u0118':'Eogon','\u0113':'emacr','\u0112':'Emacr','\uD835\uDD23':'ffr','\uD835\uDD57':'fopf','\uD835\uDCBB':'fscr','\uD835\uDD09':'Ffr','\uD835\uDD3D':'Fopf','\u2131':'Fscr','\uFB00':'fflig','\uFB03':'ffilig','\uFB04':'ffllig','\uFB01':'filig','fj':'fjlig','\uFB02':'fllig','\u0192':'fnof','\u210A':'gscr','\uD835\uDD58':'gopf','\uD835\uDD24':'gfr','\uD835\uDCA2':'Gscr','\uD835\uDD3E':'Gopf','\uD835\uDD0A':'Gfr','\u01F5':'gacute','\u011F':'gbreve','\u011E':'Gbreve','\u011D':'gcirc','\u011C':'Gcirc','\u0121':'gdot','\u0120':'Gdot','\u0122':'Gcedil','\uD835\uDD25':'hfr','\u210E':'planckh','\uD835\uDCBD':'hscr','\uD835\uDD59':'hopf','\u210B':'Hscr','\u210C':'Hfr','\u210D':'Hopf','\u0125':'hcirc','\u0124':'Hcirc','\u210F':'hbar','\u0127':'hstrok','\u0126':'Hstrok','\uD835\uDD5A':'iopf','\uD835\uDD26':'ifr','\uD835\uDCBE':'iscr','\u2148':'ii','\uD835\uDD40':'Iopf','\u2110':'Iscr','\u2111':'Im','\xED':'iacute','\xCD':'Iacute','\xEC':'igrave','\xCC':'Igrave','\xEE':'icirc','\xCE':'Icirc','\xEF':'iuml','\xCF':'Iuml','\u0129':'itilde','\u0128':'Itilde','\u0130':'Idot','\u012F':'iogon','\u012E':'Iogon','\u012B':'imacr','\u012A':'Imacr','\u0133':'ijlig','\u0132':'IJlig','\u0131':'imath','\uD835\uDCBF':'jscr','\uD835\uDD5B':'jopf','\uD835\uDD27':'jfr','\uD835\uDCA5':'Jscr','\uD835\uDD0D':'Jfr','\uD835\uDD41':'Jopf','\u0135':'jcirc','\u0134':'Jcirc','\u0237':'jmath','\uD835\uDD5C':'kopf','\uD835\uDCC0':'kscr','\uD835\uDD28':'kfr','\uD835\uDCA6':'Kscr','\uD835\uDD42':'Kopf','\uD835\uDD0E':'Kfr','\u0137':'kcedil','\u0136':'Kcedil','\uD835\uDD29':'lfr','\uD835\uDCC1':'lscr','\u2113':'ell','\uD835\uDD5D':'lopf','\u2112':'Lscr','\uD835\uDD0F':'Lfr','\uD835\uDD43':'Lopf','\u013A':'lacute','\u0139':'Lacute','\u013E':'lcaron','\u013D':'Lcaron','\u013C':'lcedil','\u013B':'Lcedil','\u0142':'lstrok','\u0141':'Lstrok','\u0140':'lmidot','\u013F':'Lmidot','\uD835\uDD2A':'mfr','\uD835\uDD5E':'mopf','\uD835\uDCC2':'mscr','\uD835\uDD10':'Mfr','\uD835\uDD44':'Mopf','\u2133':'Mscr','\uD835\uDD2B':'nfr','\uD835\uDD5F':'nopf','\uD835\uDCC3':'nscr','\u2115':'Nopf','\uD835\uDCA9':'Nscr','\uD835\uDD11':'Nfr','\u0144':'nacute','\u0143':'Nacute','\u0148':'ncaron','\u0147':'Ncaron','\xF1':'ntilde','\xD1':'Ntilde','\u0146':'ncedil','\u0145':'Ncedil','\u2116':'numero','\u014B':'eng','\u014A':'ENG','\uD835\uDD60':'oopf','\uD835\uDD2C':'ofr','\u2134':'oscr','\uD835\uDCAA':'Oscr','\uD835\uDD12':'Ofr','\uD835\uDD46':'Oopf','\xBA':'ordm','\xF3':'oacute','\xD3':'Oacute','\xF2':'ograve','\xD2':'Ograve','\xF4':'ocirc','\xD4':'Ocirc','\xF6':'ouml','\xD6':'Ouml','\u0151':'odblac','\u0150':'Odblac','\xF5':'otilde','\xD5':'Otilde','\xF8':'oslash','\xD8':'Oslash','\u014D':'omacr','\u014C':'Omacr','\u0153':'oelig','\u0152':'OElig','\uD835\uDD2D':'pfr','\uD835\uDCC5':'pscr','\uD835\uDD61':'popf','\u2119':'Popf','\uD835\uDD13':'Pfr','\uD835\uDCAB':'Pscr','\uD835\uDD62':'qopf','\uD835\uDD2E':'qfr','\uD835\uDCC6':'qscr','\uD835\uDCAC':'Qscr','\uD835\uDD14':'Qfr','\u211A':'Qopf','\u0138':'kgreen','\uD835\uDD2F':'rfr','\uD835\uDD63':'ropf','\uD835\uDCC7':'rscr','\u211B':'Rscr','\u211C':'Re','\u211D':'Ropf','\u0155':'racute','\u0154':'Racute','\u0159':'rcaron','\u0158':'Rcaron','\u0157':'rcedil','\u0156':'Rcedil','\uD835\uDD64':'sopf','\uD835\uDCC8':'sscr','\uD835\uDD30':'sfr','\uD835\uDD4A':'Sopf','\uD835\uDD16':'Sfr','\uD835\uDCAE':'Sscr','\u24C8':'oS','\u015B':'sacute','\u015A':'Sacute','\u015D':'scirc','\u015C':'Scirc','\u0161':'scaron','\u0160':'Scaron','\u015F':'scedil','\u015E':'Scedil','\xDF':'szlig','\uD835\uDD31':'tfr','\uD835\uDCC9':'tscr','\uD835\uDD65':'topf','\uD835\uDCAF':'Tscr','\uD835\uDD17':'Tfr','\uD835\uDD4B':'Topf','\u0165':'tcaron','\u0164':'Tcaron','\u0163':'tcedil','\u0162':'Tcedil','\u2122':'trade','\u0167':'tstrok','\u0166':'Tstrok','\uD835\uDCCA':'uscr','\uD835\uDD66':'uopf','\uD835\uDD32':'ufr','\uD835\uDD4C':'Uopf','\uD835\uDD18':'Ufr','\uD835\uDCB0':'Uscr','\xFA':'uacute','\xDA':'Uacute','\xF9':'ugrave','\xD9':'Ugrave','\u016D':'ubreve','\u016C':'Ubreve','\xFB':'ucirc','\xDB':'Ucirc','\u016F':'uring','\u016E':'Uring','\xFC':'uuml','\xDC':'Uuml','\u0171':'udblac','\u0170':'Udblac','\u0169':'utilde','\u0168':'Utilde','\u0173':'uogon','\u0172':'Uogon','\u016B':'umacr','\u016A':'Umacr','\uD835\uDD33':'vfr','\uD835\uDD67':'vopf','\uD835\uDCCB':'vscr','\uD835\uDD19':'Vfr','\uD835\uDD4D':'Vopf','\uD835\uDCB1':'Vscr','\uD835\uDD68':'wopf','\uD835\uDCCC':'wscr','\uD835\uDD34':'wfr','\uD835\uDCB2':'Wscr','\uD835\uDD4E':'Wopf','\uD835\uDD1A':'Wfr','\u0175':'wcirc','\u0174':'Wcirc','\uD835\uDD35':'xfr','\uD835\uDCCD':'xscr','\uD835\uDD69':'xopf','\uD835\uDD4F':'Xopf','\uD835\uDD1B':'Xfr','\uD835\uDCB3':'Xscr','\uD835\uDD36':'yfr','\uD835\uDCCE':'yscr','\uD835\uDD6A':'yopf','\uD835\uDCB4':'Yscr','\uD835\uDD1C':'Yfr','\uD835\uDD50':'Yopf','\xFD':'yacute','\xDD':'Yacute','\u0177':'ycirc','\u0176':'Ycirc','\xFF':'yuml','\u0178':'Yuml','\uD835\uDCCF':'zscr','\uD835\uDD37':'zfr','\uD835\uDD6B':'zopf','\u2128':'Zfr','\u2124':'Zopf','\uD835\uDCB5':'Zscr','\u017A':'zacute','\u0179':'Zacute','\u017E':'zcaron','\u017D':'Zcaron','\u017C':'zdot','\u017B':'Zdot','\u01B5':'imped','\xFE':'thorn','\xDE':'THORN','\u0149':'napos','\u03B1':'alpha','\u0391':'Alpha','\u03B2':'beta','\u0392':'Beta','\u03B3':'gamma','\u0393':'Gamma','\u03B4':'delta','\u0394':'Delta','\u03B5':'epsi','\u03F5':'epsiv','\u0395':'Epsilon','\u03DD':'gammad','\u03DC':'Gammad','\u03B6':'zeta','\u0396':'Zeta','\u03B7':'eta','\u0397':'Eta','\u03B8':'theta','\u03D1':'thetav','\u0398':'Theta','\u03B9':'iota','\u0399':'Iota','\u03BA':'kappa','\u03F0':'kappav','\u039A':'Kappa','\u03BB':'lambda','\u039B':'Lambda','\u03BC':'mu','\xB5':'micro','\u039C':'Mu','\u03BD':'nu','\u039D':'Nu','\u03BE':'xi','\u039E':'Xi','\u03BF':'omicron','\u039F':'Omicron','\u03C0':'pi','\u03D6':'piv','\u03A0':'Pi','\u03C1':'rho','\u03F1':'rhov','\u03A1':'Rho','\u03C3':'sigma','\u03A3':'Sigma','\u03C2':'sigmaf','\u03C4':'tau','\u03A4':'Tau','\u03C5':'upsi','\u03A5':'Upsilon','\u03D2':'Upsi','\u03C6':'phi','\u03D5':'phiv','\u03A6':'Phi','\u03C7':'chi','\u03A7':'Chi','\u03C8':'psi','\u03A8':'Psi','\u03C9':'omega','\u03A9':'ohm','\u0430':'acy','\u0410':'Acy','\u0431':'bcy','\u0411':'Bcy','\u0432':'vcy','\u0412':'Vcy','\u0433':'gcy','\u0413':'Gcy','\u0453':'gjcy','\u0403':'GJcy','\u0434':'dcy','\u0414':'Dcy','\u0452':'djcy','\u0402':'DJcy','\u0435':'iecy','\u0415':'IEcy','\u0451':'iocy','\u0401':'IOcy','\u0454':'jukcy','\u0404':'Jukcy','\u0436':'zhcy','\u0416':'ZHcy','\u0437':'zcy','\u0417':'Zcy','\u0455':'dscy','\u0405':'DScy','\u0438':'icy','\u0418':'Icy','\u0456':'iukcy','\u0406':'Iukcy','\u0457':'yicy','\u0407':'YIcy','\u0439':'jcy','\u0419':'Jcy','\u0458':'jsercy','\u0408':'Jsercy','\u043A':'kcy','\u041A':'Kcy','\u045C':'kjcy','\u040C':'KJcy','\u043B':'lcy','\u041B':'Lcy','\u0459':'ljcy','\u0409':'LJcy','\u043C':'mcy','\u041C':'Mcy','\u043D':'ncy','\u041D':'Ncy','\u045A':'njcy','\u040A':'NJcy','\u043E':'ocy','\u041E':'Ocy','\u043F':'pcy','\u041F':'Pcy','\u0440':'rcy','\u0420':'Rcy','\u0441':'scy','\u0421':'Scy','\u0442':'tcy','\u0422':'Tcy','\u045B':'tshcy','\u040B':'TSHcy','\u0443':'ucy','\u0423':'Ucy','\u045E':'ubrcy','\u040E':'Ubrcy','\u0444':'fcy','\u0424':'Fcy','\u0445':'khcy','\u0425':'KHcy','\u0446':'tscy','\u0426':'TScy','\u0447':'chcy','\u0427':'CHcy','\u045F':'dzcy','\u040F':'DZcy','\u0448':'shcy','\u0428':'SHcy','\u0449':'shchcy','\u0429':'SHCHcy','\u044A':'hardcy','\u042A':'HARDcy','\u044B':'ycy','\u042B':'Ycy','\u044C':'softcy','\u042C':'SOFTcy','\u044D':'ecy','\u042D':'Ecy','\u044E':'yucy','\u042E':'YUcy','\u044F':'yacy','\u042F':'YAcy','\u2135':'aleph','\u2136':'beth','\u2137':'gimel','\u2138':'daleth'};
 
-  // when the dest drains, it reduces the awaitDrain counter
-  // on the source.  This would be more elegant with a .once()
-  // handler in flow(), but adding and removing repeatedly is
-  // too slow.
-  var ondrain = pipeOnDrain(src);
-  dest.on('drain', ondrain);
+       var regexEscape = /["&'<>`]/g;
+       var escapeMap = {
+               '"': '&quot;',
+               '&': '&amp;',
+               '\'': '&#x27;',
+               '<': '&lt;',
+               // See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the
+               // following is not strictly necessary unless it’s part of a tag or an
+               // unquoted attribute value. We’re only escaping it to support those
+               // situations, and for XML support.
+               '>': '&gt;',
+               // In Internet Explorer ≤ 8, the backtick character can be used
+               // to break out of (un)quoted attribute values or HTML comments.
+               // See http://html5sec.org/#102, http://html5sec.org/#108, and
+               // http://html5sec.org/#133.
+               '`': '&#x60;'
+       };
 
-  var cleanedUp = false;
-  function cleanup() {
-    debug('cleanup');
-    // cleanup event handlers once the pipe is broken
-    dest.removeListener('close', onclose);
-    dest.removeListener('finish', onfinish);
-    dest.removeListener('drain', ondrain);
-    dest.removeListener('error', onerror);
-    dest.removeListener('unpipe', onunpipe);
-    src.removeListener('end', onend);
-    src.removeListener('end', cleanup);
-    src.removeListener('data', ondata);
+       var regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;
+       var regexInvalidRawCodePoint = /[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
+       var regexDecode = /&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)([=a-zA-Z0-9])?/g;
+       var decodeMap = {'aacute':'\xE1','Aacute':'\xC1','abreve':'\u0103','Abreve':'\u0102','ac':'\u223E','acd':'\u223F','acE':'\u223E\u0333','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','acy':'\u0430','Acy':'\u0410','aelig':'\xE6','AElig':'\xC6','af':'\u2061','afr':'\uD835\uDD1E','Afr':'\uD835\uDD04','agrave':'\xE0','Agrave':'\xC0','alefsym':'\u2135','aleph':'\u2135','alpha':'\u03B1','Alpha':'\u0391','amacr':'\u0101','Amacr':'\u0100','amalg':'\u2A3F','amp':'&','AMP':'&','and':'\u2227','And':'\u2A53','andand':'\u2A55','andd':'\u2A5C','andslope':'\u2A58','andv':'\u2A5A','ang':'\u2220','ange':'\u29A4','angle':'\u2220','angmsd':'\u2221','angmsdaa':'\u29A8','angmsdab':'\u29A9','angmsdac':'\u29AA','angmsdad':'\u29AB','angmsdae':'\u29AC','angmsdaf':'\u29AD','angmsdag':'\u29AE','angmsdah':'\u29AF','angrt':'\u221F','angrtvb':'\u22BE','angrtvbd':'\u299D','angsph':'\u2222','angst':'\xC5','angzarr':'\u237C','aogon':'\u0105','Aogon':'\u0104','aopf':'\uD835\uDD52','Aopf':'\uD835\uDD38','ap':'\u2248','apacir':'\u2A6F','ape':'\u224A','apE':'\u2A70','apid':'\u224B','apos':'\'','ApplyFunction':'\u2061','approx':'\u2248','approxeq':'\u224A','aring':'\xE5','Aring':'\xC5','ascr':'\uD835\uDCB6','Ascr':'\uD835\uDC9C','Assign':'\u2254','ast':'*','asymp':'\u2248','asympeq':'\u224D','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','awconint':'\u2233','awint':'\u2A11','backcong':'\u224C','backepsilon':'\u03F6','backprime':'\u2035','backsim':'\u223D','backsimeq':'\u22CD','Backslash':'\u2216','Barv':'\u2AE7','barvee':'\u22BD','barwed':'\u2305','Barwed':'\u2306','barwedge':'\u2305','bbrk':'\u23B5','bbrktbrk':'\u23B6','bcong':'\u224C','bcy':'\u0431','Bcy':'\u0411','bdquo':'\u201E','becaus':'\u2235','because':'\u2235','Because':'\u2235','bemptyv':'\u29B0','bepsi':'\u03F6','bernou':'\u212C','Bernoullis':'\u212C','beta':'\u03B2','Beta':'\u0392','beth':'\u2136','between':'\u226C','bfr':'\uD835\uDD1F','Bfr':'\uD835\uDD05','bigcap':'\u22C2','bigcirc':'\u25EF','bigcup':'\u22C3','bigodot':'\u2A00','bigoplus':'\u2A01','bigotimes':'\u2A02','bigsqcup':'\u2A06','bigstar':'\u2605','bigtriangledown':'\u25BD','bigtriangleup':'\u25B3','biguplus':'\u2A04','bigvee':'\u22C1','bigwedge':'\u22C0','bkarow':'\u290D','blacklozenge':'\u29EB','blacksquare':'\u25AA','blacktriangle':'\u25B4','blacktriangledown':'\u25BE','blacktriangleleft':'\u25C2','blacktriangleright':'\u25B8','blank':'\u2423','blk12':'\u2592','blk14':'\u2591','blk34':'\u2593','block':'\u2588','bne':'=\u20E5','bnequiv':'\u2261\u20E5','bnot':'\u2310','bNot':'\u2AED','bopf':'\uD835\uDD53','Bopf':'\uD835\uDD39','bot':'\u22A5','bottom':'\u22A5','bowtie':'\u22C8','boxbox':'\u29C9','boxdl':'\u2510','boxdL':'\u2555','boxDl':'\u2556','boxDL':'\u2557','boxdr':'\u250C','boxdR':'\u2552','boxDr':'\u2553','boxDR':'\u2554','boxh':'\u2500','boxH':'\u2550','boxhd':'\u252C','boxhD':'\u2565','boxHd':'\u2564','boxHD':'\u2566','boxhu':'\u2534','boxhU':'\u2568','boxHu':'\u2567','boxHU':'\u2569','boxminus':'\u229F','boxplus':'\u229E','boxtimes':'\u22A0','boxul':'\u2518','boxuL':'\u255B','boxUl':'\u255C','boxUL':'\u255D','boxur':'\u2514','boxuR':'\u2558','boxUr':'\u2559','boxUR':'\u255A','boxv':'\u2502','boxV':'\u2551','boxvh':'\u253C','boxvH':'\u256A','boxVh':'\u256B','boxVH':'\u256C','boxvl':'\u2524','boxvL':'\u2561','boxVl':'\u2562','boxVL':'\u2563','boxvr':'\u251C','boxvR':'\u255E','boxVr':'\u255F','boxVR':'\u2560','bprime':'\u2035','breve':'\u02D8','Breve':'\u02D8','brvbar':'\xA6','bscr':'\uD835\uDCB7','Bscr':'\u212C','bsemi':'\u204F','bsim':'\u223D','bsime':'\u22CD','bsol':'\\','bsolb':'\u29C5','bsolhsub':'\u27C8','bull':'\u2022','bullet':'\u2022','bump':'\u224E','bumpe':'\u224F','bumpE':'\u2AAE','bumpeq':'\u224F','Bumpeq':'\u224E','cacute':'\u0107','Cacute':'\u0106','cap':'\u2229','Cap':'\u22D2','capand':'\u2A44','capbrcup':'\u2A49','capcap':'\u2A4B','capcup':'\u2A47','capdot':'\u2A40','CapitalDifferentialD':'\u2145','caps':'\u2229\uFE00','caret':'\u2041','caron':'\u02C7','Cayleys':'\u212D','ccaps':'\u2A4D','ccaron':'\u010D','Ccaron':'\u010C','ccedil':'\xE7','Ccedil':'\xC7','ccirc':'\u0109','Ccirc':'\u0108','Cconint':'\u2230','ccups':'\u2A4C','ccupssm':'\u2A50','cdot':'\u010B','Cdot':'\u010A','cedil':'\xB8','Cedilla':'\xB8','cemptyv':'\u29B2','cent':'\xA2','centerdot':'\xB7','CenterDot':'\xB7','cfr':'\uD835\uDD20','Cfr':'\u212D','chcy':'\u0447','CHcy':'\u0427','check':'\u2713','checkmark':'\u2713','chi':'\u03C7','Chi':'\u03A7','cir':'\u25CB','circ':'\u02C6','circeq':'\u2257','circlearrowleft':'\u21BA','circlearrowright':'\u21BB','circledast':'\u229B','circledcirc':'\u229A','circleddash':'\u229D','CircleDot':'\u2299','circledR':'\xAE','circledS':'\u24C8','CircleMinus':'\u2296','CirclePlus':'\u2295','CircleTimes':'\u2297','cire':'\u2257','cirE':'\u29C3','cirfnint':'\u2A10','cirmid':'\u2AEF','cirscir':'\u29C2','ClockwiseContourIntegral':'\u2232','CloseCurlyDoubleQuote':'\u201D','CloseCurlyQuote':'\u2019','clubs':'\u2663','clubsuit':'\u2663','colon':':','Colon':'\u2237','colone':'\u2254','Colone':'\u2A74','coloneq':'\u2254','comma':',','commat':'@','comp':'\u2201','compfn':'\u2218','complement':'\u2201','complexes':'\u2102','cong':'\u2245','congdot':'\u2A6D','Congruent':'\u2261','conint':'\u222E','Conint':'\u222F','ContourIntegral':'\u222E','copf':'\uD835\uDD54','Copf':'\u2102','coprod':'\u2210','Coproduct':'\u2210','copy':'\xA9','COPY':'\xA9','copysr':'\u2117','CounterClockwiseContourIntegral':'\u2233','crarr':'\u21B5','cross':'\u2717','Cross':'\u2A2F','cscr':'\uD835\uDCB8','Cscr':'\uD835\uDC9E','csub':'\u2ACF','csube':'\u2AD1','csup':'\u2AD0','csupe':'\u2AD2','ctdot':'\u22EF','cudarrl':'\u2938','cudarrr':'\u2935','cuepr':'\u22DE','cuesc':'\u22DF','cularr':'\u21B6','cularrp':'\u293D','cup':'\u222A','Cup':'\u22D3','cupbrcap':'\u2A48','cupcap':'\u2A46','CupCap':'\u224D','cupcup':'\u2A4A','cupdot':'\u228D','cupor':'\u2A45','cups':'\u222A\uFE00','curarr':'\u21B7','curarrm':'\u293C','curlyeqprec':'\u22DE','curlyeqsucc':'\u22DF','curlyvee':'\u22CE','curlywedge':'\u22CF','curren':'\xA4','curvearrowleft':'\u21B6','curvearrowright':'\u21B7','cuvee':'\u22CE','cuwed':'\u22CF','cwconint':'\u2232','cwint':'\u2231','cylcty':'\u232D','dagger':'\u2020','Dagger':'\u2021','daleth':'\u2138','darr':'\u2193','dArr':'\u21D3','Darr':'\u21A1','dash':'\u2010','dashv':'\u22A3','Dashv':'\u2AE4','dbkarow':'\u290F','dblac':'\u02DD','dcaron':'\u010F','Dcaron':'\u010E','dcy':'\u0434','Dcy':'\u0414','dd':'\u2146','DD':'\u2145','ddagger':'\u2021','ddarr':'\u21CA','DDotrahd':'\u2911','ddotseq':'\u2A77','deg':'\xB0','Del':'\u2207','delta':'\u03B4','Delta':'\u0394','demptyv':'\u29B1','dfisht':'\u297F','dfr':'\uD835\uDD21','Dfr':'\uD835\uDD07','dHar':'\u2965','dharl':'\u21C3','dharr':'\u21C2','DiacriticalAcute':'\xB4','DiacriticalDot':'\u02D9','DiacriticalDoubleAcute':'\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\u02DC','diam':'\u22C4','diamond':'\u22C4','Diamond':'\u22C4','diamondsuit':'\u2666','diams':'\u2666','die':'\xA8','DifferentialD':'\u2146','digamma':'\u03DD','disin':'\u22F2','div':'\xF7','divide':'\xF7','divideontimes':'\u22C7','divonx':'\u22C7','djcy':'\u0452','DJcy':'\u0402','dlcorn':'\u231E','dlcrop':'\u230D','dollar':'$','dopf':'\uD835\uDD55','Dopf':'\uD835\uDD3B','dot':'\u02D9','Dot':'\xA8','DotDot':'\u20DC','doteq':'\u2250','doteqdot':'\u2251','DotEqual':'\u2250','dotminus':'\u2238','dotplus':'\u2214','dotsquare':'\u22A1','doublebarwedge':'\u2306','DoubleContourIntegral':'\u222F','DoubleDot':'\xA8','DoubleDownArrow':'\u21D3','DoubleLeftArrow':'\u21D0','DoubleLeftRightArrow':'\u21D4','DoubleLeftTee':'\u2AE4','DoubleLongLeftArrow':'\u27F8','DoubleLongLeftRightArrow':'\u27FA','DoubleLongRightArrow':'\u27F9','DoubleRightArrow':'\u21D2','DoubleRightTee':'\u22A8','DoubleUpArrow':'\u21D1','DoubleUpDownArrow':'\u21D5','DoubleVerticalBar':'\u2225','downarrow':'\u2193','Downarrow':'\u21D3','DownArrow':'\u2193','DownArrowBar':'\u2913','DownArrowUpArrow':'\u21F5','DownBreve':'\u0311','downdownarrows':'\u21CA','downharpoonleft':'\u21C3','downharpoonright':'\u21C2','DownLeftRightVector':'\u2950','DownLeftTeeVector':'\u295E','DownLeftVector':'\u21BD','DownLeftVectorBar':'\u2956','DownRightTeeVector':'\u295F','DownRightVector':'\u21C1','DownRightVectorBar':'\u2957','DownTee':'\u22A4','DownTeeArrow':'\u21A7','drbkarow':'\u2910','drcorn':'\u231F','drcrop':'\u230C','dscr':'\uD835\uDCB9','Dscr':'\uD835\uDC9F','dscy':'\u0455','DScy':'\u0405','dsol':'\u29F6','dstrok':'\u0111','Dstrok':'\u0110','dtdot':'\u22F1','dtri':'\u25BF','dtrif':'\u25BE','duarr':'\u21F5','duhar':'\u296F','dwangle':'\u29A6','dzcy':'\u045F','DZcy':'\u040F','dzigrarr':'\u27FF','eacute':'\xE9','Eacute':'\xC9','easter':'\u2A6E','ecaron':'\u011B','Ecaron':'\u011A','ecir':'\u2256','ecirc':'\xEA','Ecirc':'\xCA','ecolon':'\u2255','ecy':'\u044D','Ecy':'\u042D','eDDot':'\u2A77','edot':'\u0117','eDot':'\u2251','Edot':'\u0116','ee':'\u2147','efDot':'\u2252','efr':'\uD835\uDD22','Efr':'\uD835\uDD08','eg':'\u2A9A','egrave':'\xE8','Egrave':'\xC8','egs':'\u2A96','egsdot':'\u2A98','el':'\u2A99','Element':'\u2208','elinters':'\u23E7','ell':'\u2113','els':'\u2A95','elsdot':'\u2A97','emacr':'\u0113','Emacr':'\u0112','empty':'\u2205','emptyset':'\u2205','EmptySmallSquare':'\u25FB','emptyv':'\u2205','EmptyVerySmallSquare':'\u25AB','emsp':'\u2003','emsp13':'\u2004','emsp14':'\u2005','eng':'\u014B','ENG':'\u014A','ensp':'\u2002','eogon':'\u0119','Eogon':'\u0118','eopf':'\uD835\uDD56','Eopf':'\uD835\uDD3C','epar':'\u22D5','eparsl':'\u29E3','eplus':'\u2A71','epsi':'\u03B5','epsilon':'\u03B5','Epsilon':'\u0395','epsiv':'\u03F5','eqcirc':'\u2256','eqcolon':'\u2255','eqsim':'\u2242','eqslantgtr':'\u2A96','eqslantless':'\u2A95','Equal':'\u2A75','equals':'=','EqualTilde':'\u2242','equest':'\u225F','Equilibrium':'\u21CC','equiv':'\u2261','equivDD':'\u2A78','eqvparsl':'\u29E5','erarr':'\u2971','erDot':'\u2253','escr':'\u212F','Escr':'\u2130','esdot':'\u2250','esim':'\u2242','Esim':'\u2A73','eta':'\u03B7','Eta':'\u0397','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','euro':'\u20AC','excl':'!','exist':'\u2203','Exists':'\u2203','expectation':'\u2130','exponentiale':'\u2147','ExponentialE':'\u2147','fallingdotseq':'\u2252','fcy':'\u0444','Fcy':'\u0424','female':'\u2640','ffilig':'\uFB03','fflig':'\uFB00','ffllig':'\uFB04','ffr':'\uD835\uDD23','Ffr':'\uD835\uDD09','filig':'\uFB01','FilledSmallSquare':'\u25FC','FilledVerySmallSquare':'\u25AA','fjlig':'fj','flat':'\u266D','fllig':'\uFB02','fltns':'\u25B1','fnof':'\u0192','fopf':'\uD835\uDD57','Fopf':'\uD835\uDD3D','forall':'\u2200','ForAll':'\u2200','fork':'\u22D4','forkv':'\u2AD9','Fouriertrf':'\u2131','fpartint':'\u2A0D','frac12':'\xBD','frac13':'\u2153','frac14':'\xBC','frac15':'\u2155','frac16':'\u2159','frac18':'\u215B','frac23':'\u2154','frac25':'\u2156','frac34':'\xBE','frac35':'\u2157','frac38':'\u215C','frac45':'\u2158','frac56':'\u215A','frac58':'\u215D','frac78':'\u215E','frasl':'\u2044','frown':'\u2322','fscr':'\uD835\uDCBB','Fscr':'\u2131','gacute':'\u01F5','gamma':'\u03B3','Gamma':'\u0393','gammad':'\u03DD','Gammad':'\u03DC','gap':'\u2A86','gbreve':'\u011F','Gbreve':'\u011E','Gcedil':'\u0122','gcirc':'\u011D','Gcirc':'\u011C','gcy':'\u0433','Gcy':'\u0413','gdot':'\u0121','Gdot':'\u0120','ge':'\u2265','gE':'\u2267','gel':'\u22DB','gEl':'\u2A8C','geq':'\u2265','geqq':'\u2267','geqslant':'\u2A7E','ges':'\u2A7E','gescc':'\u2AA9','gesdot':'\u2A80','gesdoto':'\u2A82','gesdotol':'\u2A84','gesl':'\u22DB\uFE00','gesles':'\u2A94','gfr':'\uD835\uDD24','Gfr':'\uD835\uDD0A','gg':'\u226B','Gg':'\u22D9','ggg':'\u22D9','gimel':'\u2137','gjcy':'\u0453','GJcy':'\u0403','gl':'\u2277','gla':'\u2AA5','glE':'\u2A92','glj':'\u2AA4','gnap':'\u2A8A','gnapprox':'\u2A8A','gne':'\u2A88','gnE':'\u2269','gneq':'\u2A88','gneqq':'\u2269','gnsim':'\u22E7','gopf':'\uD835\uDD58','Gopf':'\uD835\uDD3E','grave':'`','GreaterEqual':'\u2265','GreaterEqualLess':'\u22DB','GreaterFullEqual':'\u2267','GreaterGreater':'\u2AA2','GreaterLess':'\u2277','GreaterSlantEqual':'\u2A7E','GreaterTilde':'\u2273','gscr':'\u210A','Gscr':'\uD835\uDCA2','gsim':'\u2273','gsime':'\u2A8E','gsiml':'\u2A90','gt':'>','Gt':'\u226B','GT':'>','gtcc':'\u2AA7','gtcir':'\u2A7A','gtdot':'\u22D7','gtlPar':'\u2995','gtquest':'\u2A7C','gtrapprox':'\u2A86','gtrarr':'\u2978','gtrdot':'\u22D7','gtreqless':'\u22DB','gtreqqless':'\u2A8C','gtrless':'\u2277','gtrsim':'\u2273','gvertneqq':'\u2269\uFE00','gvnE':'\u2269\uFE00','Hacek':'\u02C7','hairsp':'\u200A','half':'\xBD','hamilt':'\u210B','hardcy':'\u044A','HARDcy':'\u042A','harr':'\u2194','hArr':'\u21D4','harrcir':'\u2948','harrw':'\u21AD','Hat':'^','hbar':'\u210F','hcirc':'\u0125','Hcirc':'\u0124','hearts':'\u2665','heartsuit':'\u2665','hellip':'\u2026','hercon':'\u22B9','hfr':'\uD835\uDD25','Hfr':'\u210C','HilbertSpace':'\u210B','hksearow':'\u2925','hkswarow':'\u2926','hoarr':'\u21FF','homtht':'\u223B','hookleftarrow':'\u21A9','hookrightarrow':'\u21AA','hopf':'\uD835\uDD59','Hopf':'\u210D','horbar':'\u2015','HorizontalLine':'\u2500','hscr':'\uD835\uDCBD','Hscr':'\u210B','hslash':'\u210F','hstrok':'\u0127','Hstrok':'\u0126','HumpDownHump':'\u224E','HumpEqual':'\u224F','hybull':'\u2043','hyphen':'\u2010','iacute':'\xED','Iacute':'\xCD','ic':'\u2063','icirc':'\xEE','Icirc':'\xCE','icy':'\u0438','Icy':'\u0418','Idot':'\u0130','iecy':'\u0435','IEcy':'\u0415','iexcl':'\xA1','iff':'\u21D4','ifr':'\uD835\uDD26','Ifr':'\u2111','igrave':'\xEC','Igrave':'\xCC','ii':'\u2148','iiiint':'\u2A0C','iiint':'\u222D','iinfin':'\u29DC','iiota':'\u2129','ijlig':'\u0133','IJlig':'\u0132','Im':'\u2111','imacr':'\u012B','Imacr':'\u012A','image':'\u2111','ImaginaryI':'\u2148','imagline':'\u2110','imagpart':'\u2111','imath':'\u0131','imof':'\u22B7','imped':'\u01B5','Implies':'\u21D2','in':'\u2208','incare':'\u2105','infin':'\u221E','infintie':'\u29DD','inodot':'\u0131','int':'\u222B','Int':'\u222C','intcal':'\u22BA','integers':'\u2124','Integral':'\u222B','intercal':'\u22BA','Intersection':'\u22C2','intlarhk':'\u2A17','intprod':'\u2A3C','InvisibleComma':'\u2063','InvisibleTimes':'\u2062','iocy':'\u0451','IOcy':'\u0401','iogon':'\u012F','Iogon':'\u012E','iopf':'\uD835\uDD5A','Iopf':'\uD835\uDD40','iota':'\u03B9','Iota':'\u0399','iprod':'\u2A3C','iquest':'\xBF','iscr':'\uD835\uDCBE','Iscr':'\u2110','isin':'\u2208','isindot':'\u22F5','isinE':'\u22F9','isins':'\u22F4','isinsv':'\u22F3','isinv':'\u2208','it':'\u2062','itilde':'\u0129','Itilde':'\u0128','iukcy':'\u0456','Iukcy':'\u0406','iuml':'\xEF','Iuml':'\xCF','jcirc':'\u0135','Jcirc':'\u0134','jcy':'\u0439','Jcy':'\u0419','jfr':'\uD835\uDD27','Jfr':'\uD835\uDD0D','jmath':'\u0237','jopf':'\uD835\uDD5B','Jopf':'\uD835\uDD41','jscr':'\uD835\uDCBF','Jscr':'\uD835\uDCA5','jsercy':'\u0458','Jsercy':'\u0408','jukcy':'\u0454','Jukcy':'\u0404','kappa':'\u03BA','Kappa':'\u039A','kappav':'\u03F0','kcedil':'\u0137','Kcedil':'\u0136','kcy':'\u043A','Kcy':'\u041A','kfr':'\uD835\uDD28','Kfr':'\uD835\uDD0E','kgreen':'\u0138','khcy':'\u0445','KHcy':'\u0425','kjcy':'\u045C','KJcy':'\u040C','kopf':'\uD835\uDD5C','Kopf':'\uD835\uDD42','kscr':'\uD835\uDCC0','Kscr':'\uD835\uDCA6','lAarr':'\u21DA','lacute':'\u013A','Lacute':'\u0139','laemptyv':'\u29B4','lagran':'\u2112','lambda':'\u03BB','Lambda':'\u039B','lang':'\u27E8','Lang':'\u27EA','langd':'\u2991','langle':'\u27E8','lap':'\u2A85','Laplacetrf':'\u2112','laquo':'\xAB','larr':'\u2190','lArr':'\u21D0','Larr':'\u219E','larrb':'\u21E4','larrbfs':'\u291F','larrfs':'\u291D','larrhk':'\u21A9','larrlp':'\u21AB','larrpl':'\u2939','larrsim':'\u2973','larrtl':'\u21A2','lat':'\u2AAB','latail':'\u2919','lAtail':'\u291B','late':'\u2AAD','lates':'\u2AAD\uFE00','lbarr':'\u290C','lBarr':'\u290E','lbbrk':'\u2772','lbrace':'{','lbrack':'[','lbrke':'\u298B','lbrksld':'\u298F','lbrkslu':'\u298D','lcaron':'\u013E','Lcaron':'\u013D','lcedil':'\u013C','Lcedil':'\u013B','lceil':'\u2308','lcub':'{','lcy':'\u043B','Lcy':'\u041B','ldca':'\u2936','ldquo':'\u201C','ldquor':'\u201E','ldrdhar':'\u2967','ldrushar':'\u294B','ldsh':'\u21B2','le':'\u2264','lE':'\u2266','LeftAngleBracket':'\u27E8','leftarrow':'\u2190','Leftarrow':'\u21D0','LeftArrow':'\u2190','LeftArrowBar':'\u21E4','LeftArrowRightArrow':'\u21C6','leftarrowtail':'\u21A2','LeftCeiling':'\u2308','LeftDoubleBracket':'\u27E6','LeftDownTeeVector':'\u2961','LeftDownVector':'\u21C3','LeftDownVectorBar':'\u2959','LeftFloor':'\u230A','leftharpoondown':'\u21BD','leftharpoonup':'\u21BC','leftleftarrows':'\u21C7','leftrightarrow':'\u2194','Leftrightarrow':'\u21D4','LeftRightArrow':'\u2194','leftrightarrows':'\u21C6','leftrightharpoons':'\u21CB','leftrightsquigarrow':'\u21AD','LeftRightVector':'\u294E','LeftTee':'\u22A3','LeftTeeArrow':'\u21A4','LeftTeeVector':'\u295A','leftthreetimes':'\u22CB','LeftTriangle':'\u22B2','LeftTriangleBar':'\u29CF','LeftTriangleEqual':'\u22B4','LeftUpDownVector':'\u2951','LeftUpTeeVector':'\u2960','LeftUpVector':'\u21BF','LeftUpVectorBar':'\u2958','LeftVector':'\u21BC','LeftVectorBar':'\u2952','leg':'\u22DA','lEg':'\u2A8B','leq':'\u2264','leqq':'\u2266','leqslant':'\u2A7D','les':'\u2A7D','lescc':'\u2AA8','lesdot':'\u2A7F','lesdoto':'\u2A81','lesdotor':'\u2A83','lesg':'\u22DA\uFE00','lesges':'\u2A93','lessapprox':'\u2A85','lessdot':'\u22D6','lesseqgtr':'\u22DA','lesseqqgtr':'\u2A8B','LessEqualGreater':'\u22DA','LessFullEqual':'\u2266','LessGreater':'\u2276','lessgtr':'\u2276','LessLess':'\u2AA1','lesssim':'\u2272','LessSlantEqual':'\u2A7D','LessTilde':'\u2272','lfisht':'\u297C','lfloor':'\u230A','lfr':'\uD835\uDD29','Lfr':'\uD835\uDD0F','lg':'\u2276','lgE':'\u2A91','lHar':'\u2962','lhard':'\u21BD','lharu':'\u21BC','lharul':'\u296A','lhblk':'\u2584','ljcy':'\u0459','LJcy':'\u0409','ll':'\u226A','Ll':'\u22D8','llarr':'\u21C7','llcorner':'\u231E','Lleftarrow':'\u21DA','llhard':'\u296B','lltri':'\u25FA','lmidot':'\u0140','Lmidot':'\u013F','lmoust':'\u23B0','lmoustache':'\u23B0','lnap':'\u2A89','lnapprox':'\u2A89','lne':'\u2A87','lnE':'\u2268','lneq':'\u2A87','lneqq':'\u2268','lnsim':'\u22E6','loang':'\u27EC','loarr':'\u21FD','lobrk':'\u27E6','longleftarrow':'\u27F5','Longleftarrow':'\u27F8','LongLeftArrow':'\u27F5','longleftrightarrow':'\u27F7','Longleftrightarrow':'\u27FA','LongLeftRightArrow':'\u27F7','longmapsto':'\u27FC','longrightarrow':'\u27F6','Longrightarrow':'\u27F9','LongRightArrow':'\u27F6','looparrowleft':'\u21AB','looparrowright':'\u21AC','lopar':'\u2985','lopf':'\uD835\uDD5D','Lopf':'\uD835\uDD43','loplus':'\u2A2D','lotimes':'\u2A34','lowast':'\u2217','lowbar':'_','LowerLeftArrow':'\u2199','LowerRightArrow':'\u2198','loz':'\u25CA','lozenge':'\u25CA','lozf':'\u29EB','lpar':'(','lparlt':'\u2993','lrarr':'\u21C6','lrcorner':'\u231F','lrhar':'\u21CB','lrhard':'\u296D','lrm':'\u200E','lrtri':'\u22BF','lsaquo':'\u2039','lscr':'\uD835\uDCC1','Lscr':'\u2112','lsh':'\u21B0','Lsh':'\u21B0','lsim':'\u2272','lsime':'\u2A8D','lsimg':'\u2A8F','lsqb':'[','lsquo':'\u2018','lsquor':'\u201A','lstrok':'\u0142','Lstrok':'\u0141','lt':'<','Lt':'\u226A','LT':'<','ltcc':'\u2AA6','ltcir':'\u2A79','ltdot':'\u22D6','lthree':'\u22CB','ltimes':'\u22C9','ltlarr':'\u2976','ltquest':'\u2A7B','ltri':'\u25C3','ltrie':'\u22B4','ltrif':'\u25C2','ltrPar':'\u2996','lurdshar':'\u294A','luruhar':'\u2966','lvertneqq':'\u2268\uFE00','lvnE':'\u2268\uFE00','macr':'\xAF','male':'\u2642','malt':'\u2720','maltese':'\u2720','map':'\u21A6','Map':'\u2905','mapsto':'\u21A6','mapstodown':'\u21A7','mapstoleft':'\u21A4','mapstoup':'\u21A5','marker':'\u25AE','mcomma':'\u2A29','mcy':'\u043C','Mcy':'\u041C','mdash':'\u2014','mDDot':'\u223A','measuredangle':'\u2221','MediumSpace':'\u205F','Mellintrf':'\u2133','mfr':'\uD835\uDD2A','Mfr':'\uD835\uDD10','mho':'\u2127','micro':'\xB5','mid':'\u2223','midast':'*','midcir':'\u2AF0','middot':'\xB7','minus':'\u2212','minusb':'\u229F','minusd':'\u2238','minusdu':'\u2A2A','MinusPlus':'\u2213','mlcp':'\u2ADB','mldr':'\u2026','mnplus':'\u2213','models':'\u22A7','mopf':'\uD835\uDD5E','Mopf':'\uD835\uDD44','mp':'\u2213','mscr':'\uD835\uDCC2','Mscr':'\u2133','mstpos':'\u223E','mu':'\u03BC','Mu':'\u039C','multimap':'\u22B8','mumap':'\u22B8','nabla':'\u2207','nacute':'\u0144','Nacute':'\u0143','nang':'\u2220\u20D2','nap':'\u2249','napE':'\u2A70\u0338','napid':'\u224B\u0338','napos':'\u0149','napprox':'\u2249','natur':'\u266E','natural':'\u266E','naturals':'\u2115','nbsp':'\xA0','nbump':'\u224E\u0338','nbumpe':'\u224F\u0338','ncap':'\u2A43','ncaron':'\u0148','Ncaron':'\u0147','ncedil':'\u0146','Ncedil':'\u0145','ncong':'\u2247','ncongdot':'\u2A6D\u0338','ncup':'\u2A42','ncy':'\u043D','Ncy':'\u041D','ndash':'\u2013','ne':'\u2260','nearhk':'\u2924','nearr':'\u2197','neArr':'\u21D7','nearrow':'\u2197','nedot':'\u2250\u0338','NegativeMediumSpace':'\u200B','NegativeThickSpace':'\u200B','NegativeThinSpace':'\u200B','NegativeVeryThinSpace':'\u200B','nequiv':'\u2262','nesear':'\u2928','nesim':'\u2242\u0338','NestedGreaterGreater':'\u226B','NestedLessLess':'\u226A','NewLine':'\n','nexist':'\u2204','nexists':'\u2204','nfr':'\uD835\uDD2B','Nfr':'\uD835\uDD11','nge':'\u2271','ngE':'\u2267\u0338','ngeq':'\u2271','ngeqq':'\u2267\u0338','ngeqslant':'\u2A7E\u0338','nges':'\u2A7E\u0338','nGg':'\u22D9\u0338','ngsim':'\u2275','ngt':'\u226F','nGt':'\u226B\u20D2','ngtr':'\u226F','nGtv':'\u226B\u0338','nharr':'\u21AE','nhArr':'\u21CE','nhpar':'\u2AF2','ni':'\u220B','nis':'\u22FC','nisd':'\u22FA','niv':'\u220B','njcy':'\u045A','NJcy':'\u040A','nlarr':'\u219A','nlArr':'\u21CD','nldr':'\u2025','nle':'\u2270','nlE':'\u2266\u0338','nleftarrow':'\u219A','nLeftarrow':'\u21CD','nleftrightarrow':'\u21AE','nLeftrightarrow':'\u21CE','nleq':'\u2270','nleqq':'\u2266\u0338','nleqslant':'\u2A7D\u0338','nles':'\u2A7D\u0338','nless':'\u226E','nLl':'\u22D8\u0338','nlsim':'\u2274','nlt':'\u226E','nLt':'\u226A\u20D2','nltri':'\u22EA','nltrie':'\u22EC','nLtv':'\u226A\u0338','nmid':'\u2224','NoBreak':'\u2060','NonBreakingSpace':'\xA0','nopf':'\uD835\uDD5F','Nopf':'\u2115','not':'\xAC','Not':'\u2AEC','NotCongruent':'\u2262','NotCupCap':'\u226D','NotDoubleVerticalBar':'\u2226','NotElement':'\u2209','NotEqual':'\u2260','NotEqualTilde':'\u2242\u0338','NotExists':'\u2204','NotGreater':'\u226F','NotGreaterEqual':'\u2271','NotGreaterFullEqual':'\u2267\u0338','NotGreaterGreater':'\u226B\u0338','NotGreaterLess':'\u2279','NotGreaterSlantEqual':'\u2A7E\u0338','NotGreaterTilde':'\u2275','NotHumpDownHump':'\u224E\u0338','NotHumpEqual':'\u224F\u0338','notin':'\u2209','notindot':'\u22F5\u0338','notinE':'\u22F9\u0338','notinva':'\u2209','notinvb':'\u22F7','notinvc':'\u22F6','NotLeftTriangle':'\u22EA','NotLeftTriangleBar':'\u29CF\u0338','NotLeftTriangleEqual':'\u22EC','NotLess':'\u226E','NotLessEqual':'\u2270','NotLessGreater':'\u2278','NotLessLess':'\u226A\u0338','NotLessSlantEqual':'\u2A7D\u0338','NotLessTilde':'\u2274','NotNestedGreaterGreater':'\u2AA2\u0338','NotNestedLessLess':'\u2AA1\u0338','notni':'\u220C','notniva':'\u220C','notnivb':'\u22FE','notnivc':'\u22FD','NotPrecedes':'\u2280','NotPrecedesEqual':'\u2AAF\u0338','NotPrecedesSlantEqual':'\u22E0','NotReverseElement':'\u220C','NotRightTriangle':'\u22EB','NotRightTriangleBar':'\u29D0\u0338','NotRightTriangleEqual':'\u22ED','NotSquareSubset':'\u228F\u0338','NotSquareSubsetEqual':'\u22E2','NotSquareSuperset':'\u2290\u0338','NotSquareSupersetEqual':'\u22E3','NotSubset':'\u2282\u20D2','NotSubsetEqual':'\u2288','NotSucceeds':'\u2281','NotSucceedsEqual':'\u2AB0\u0338','NotSucceedsSlantEqual':'\u22E1','NotSucceedsTilde':'\u227F\u0338','NotSuperset':'\u2283\u20D2','NotSupersetEqual':'\u2289','NotTilde':'\u2241','NotTildeEqual':'\u2244','NotTildeFullEqual':'\u2247','NotTildeTilde':'\u2249','NotVerticalBar':'\u2224','npar':'\u2226','nparallel':'\u2226','nparsl':'\u2AFD\u20E5','npart':'\u2202\u0338','npolint':'\u2A14','npr':'\u2280','nprcue':'\u22E0','npre':'\u2AAF\u0338','nprec':'\u2280','npreceq':'\u2AAF\u0338','nrarr':'\u219B','nrArr':'\u21CF','nrarrc':'\u2933\u0338','nrarrw':'\u219D\u0338','nrightarrow':'\u219B','nRightarrow':'\u21CF','nrtri':'\u22EB','nrtrie':'\u22ED','nsc':'\u2281','nsccue':'\u22E1','nsce':'\u2AB0\u0338','nscr':'\uD835\uDCC3','Nscr':'\uD835\uDCA9','nshortmid':'\u2224','nshortparallel':'\u2226','nsim':'\u2241','nsime':'\u2244','nsimeq':'\u2244','nsmid':'\u2224','nspar':'\u2226','nsqsube':'\u22E2','nsqsupe':'\u22E3','nsub':'\u2284','nsube':'\u2288','nsubE':'\u2AC5\u0338','nsubset':'\u2282\u20D2','nsubseteq':'\u2288','nsubseteqq':'\u2AC5\u0338','nsucc':'\u2281','nsucceq':'\u2AB0\u0338','nsup':'\u2285','nsupe':'\u2289','nsupE':'\u2AC6\u0338','nsupset':'\u2283\u20D2','nsupseteq':'\u2289','nsupseteqq':'\u2AC6\u0338','ntgl':'\u2279','ntilde':'\xF1','Ntilde':'\xD1','ntlg':'\u2278','ntriangleleft':'\u22EA','ntrianglelefteq':'\u22EC','ntriangleright':'\u22EB','ntrianglerighteq':'\u22ED','nu':'\u03BD','Nu':'\u039D','num':'#','numero':'\u2116','numsp':'\u2007','nvap':'\u224D\u20D2','nvdash':'\u22AC','nvDash':'\u22AD','nVdash':'\u22AE','nVDash':'\u22AF','nvge':'\u2265\u20D2','nvgt':'>\u20D2','nvHarr':'\u2904','nvinfin':'\u29DE','nvlArr':'\u2902','nvle':'\u2264\u20D2','nvlt':'<\u20D2','nvltrie':'\u22B4\u20D2','nvrArr':'\u2903','nvrtrie':'\u22B5\u20D2','nvsim':'\u223C\u20D2','nwarhk':'\u2923','nwarr':'\u2196','nwArr':'\u21D6','nwarrow':'\u2196','nwnear':'\u2927','oacute':'\xF3','Oacute':'\xD3','oast':'\u229B','ocir':'\u229A','ocirc':'\xF4','Ocirc':'\xD4','ocy':'\u043E','Ocy':'\u041E','odash':'\u229D','odblac':'\u0151','Odblac':'\u0150','odiv':'\u2A38','odot':'\u2299','odsold':'\u29BC','oelig':'\u0153','OElig':'\u0152','ofcir':'\u29BF','ofr':'\uD835\uDD2C','Ofr':'\uD835\uDD12','ogon':'\u02DB','ograve':'\xF2','Ograve':'\xD2','ogt':'\u29C1','ohbar':'\u29B5','ohm':'\u03A9','oint':'\u222E','olarr':'\u21BA','olcir':'\u29BE','olcross':'\u29BB','oline':'\u203E','olt':'\u29C0','omacr':'\u014D','Omacr':'\u014C','omega':'\u03C9','Omega':'\u03A9','omicron':'\u03BF','Omicron':'\u039F','omid':'\u29B6','ominus':'\u2296','oopf':'\uD835\uDD60','Oopf':'\uD835\uDD46','opar':'\u29B7','OpenCurlyDoubleQuote':'\u201C','OpenCurlyQuote':'\u2018','operp':'\u29B9','oplus':'\u2295','or':'\u2228','Or':'\u2A54','orarr':'\u21BB','ord':'\u2A5D','order':'\u2134','orderof':'\u2134','ordf':'\xAA','ordm':'\xBA','origof':'\u22B6','oror':'\u2A56','orslope':'\u2A57','orv':'\u2A5B','oS':'\u24C8','oscr':'\u2134','Oscr':'\uD835\uDCAA','oslash':'\xF8','Oslash':'\xD8','osol':'\u2298','otilde':'\xF5','Otilde':'\xD5','otimes':'\u2297','Otimes':'\u2A37','otimesas':'\u2A36','ouml':'\xF6','Ouml':'\xD6','ovbar':'\u233D','OverBar':'\u203E','OverBrace':'\u23DE','OverBracket':'\u23B4','OverParenthesis':'\u23DC','par':'\u2225','para':'\xB6','parallel':'\u2225','parsim':'\u2AF3','parsl':'\u2AFD','part':'\u2202','PartialD':'\u2202','pcy':'\u043F','Pcy':'\u041F','percnt':'%','period':'.','permil':'\u2030','perp':'\u22A5','pertenk':'\u2031','pfr':'\uD835\uDD2D','Pfr':'\uD835\uDD13','phi':'\u03C6','Phi':'\u03A6','phiv':'\u03D5','phmmat':'\u2133','phone':'\u260E','pi':'\u03C0','Pi':'\u03A0','pitchfork':'\u22D4','piv':'\u03D6','planck':'\u210F','planckh':'\u210E','plankv':'\u210F','plus':'+','plusacir':'\u2A23','plusb':'\u229E','pluscir':'\u2A22','plusdo':'\u2214','plusdu':'\u2A25','pluse':'\u2A72','PlusMinus':'\xB1','plusmn':'\xB1','plussim':'\u2A26','plustwo':'\u2A27','pm':'\xB1','Poincareplane':'\u210C','pointint':'\u2A15','popf':'\uD835\uDD61','Popf':'\u2119','pound':'\xA3','pr':'\u227A','Pr':'\u2ABB','prap':'\u2AB7','prcue':'\u227C','pre':'\u2AAF','prE':'\u2AB3','prec':'\u227A','precapprox':'\u2AB7','preccurlyeq':'\u227C','Precedes':'\u227A','PrecedesEqual':'\u2AAF','PrecedesSlantEqual':'\u227C','PrecedesTilde':'\u227E','preceq':'\u2AAF','precnapprox':'\u2AB9','precneqq':'\u2AB5','precnsim':'\u22E8','precsim':'\u227E','prime':'\u2032','Prime':'\u2033','primes':'\u2119','prnap':'\u2AB9','prnE':'\u2AB5','prnsim':'\u22E8','prod':'\u220F','Product':'\u220F','profalar':'\u232E','profline':'\u2312','profsurf':'\u2313','prop':'\u221D','Proportion':'\u2237','Proportional':'\u221D','propto':'\u221D','prsim':'\u227E','prurel':'\u22B0','pscr':'\uD835\uDCC5','Pscr':'\uD835\uDCAB','psi':'\u03C8','Psi':'\u03A8','puncsp':'\u2008','qfr':'\uD835\uDD2E','Qfr':'\uD835\uDD14','qint':'\u2A0C','qopf':'\uD835\uDD62','Qopf':'\u211A','qprime':'\u2057','qscr':'\uD835\uDCC6','Qscr':'\uD835\uDCAC','quaternions':'\u210D','quatint':'\u2A16','quest':'?','questeq':'\u225F','quot':'"','QUOT':'"','rAarr':'\u21DB','race':'\u223D\u0331','racute':'\u0155','Racute':'\u0154','radic':'\u221A','raemptyv':'\u29B3','rang':'\u27E9','Rang':'\u27EB','rangd':'\u2992','range':'\u29A5','rangle':'\u27E9','raquo':'\xBB','rarr':'\u2192','rArr':'\u21D2','Rarr':'\u21A0','rarrap':'\u2975','rarrb':'\u21E5','rarrbfs':'\u2920','rarrc':'\u2933','rarrfs':'\u291E','rarrhk':'\u21AA','rarrlp':'\u21AC','rarrpl':'\u2945','rarrsim':'\u2974','rarrtl':'\u21A3','Rarrtl':'\u2916','rarrw':'\u219D','ratail':'\u291A','rAtail':'\u291C','ratio':'\u2236','rationals':'\u211A','rbarr':'\u290D','rBarr':'\u290F','RBarr':'\u2910','rbbrk':'\u2773','rbrace':'}','rbrack':']','rbrke':'\u298C','rbrksld':'\u298E','rbrkslu':'\u2990','rcaron':'\u0159','Rcaron':'\u0158','rcedil':'\u0157','Rcedil':'\u0156','rceil':'\u2309','rcub':'}','rcy':'\u0440','Rcy':'\u0420','rdca':'\u2937','rdldhar':'\u2969','rdquo':'\u201D','rdquor':'\u201D','rdsh':'\u21B3','Re':'\u211C','real':'\u211C','realine':'\u211B','realpart':'\u211C','reals':'\u211D','rect':'\u25AD','reg':'\xAE','REG':'\xAE','ReverseElement':'\u220B','ReverseEquilibrium':'\u21CB','ReverseUpEquilibrium':'\u296F','rfisht':'\u297D','rfloor':'\u230B','rfr':'\uD835\uDD2F','Rfr':'\u211C','rHar':'\u2964','rhard':'\u21C1','rharu':'\u21C0','rharul':'\u296C','rho':'\u03C1','Rho':'\u03A1','rhov':'\u03F1','RightAngleBracket':'\u27E9','rightarrow':'\u2192','Rightarrow':'\u21D2','RightArrow':'\u2192','RightArrowBar':'\u21E5','RightArrowLeftArrow':'\u21C4','rightarrowtail':'\u21A3','RightCeiling':'\u2309','RightDoubleBracket':'\u27E7','RightDownTeeVector':'\u295D','RightDownVector':'\u21C2','RightDownVectorBar':'\u2955','RightFloor':'\u230B','rightharpoondown':'\u21C1','rightharpoonup':'\u21C0','rightleftarrows':'\u21C4','rightleftharpoons':'\u21CC','rightrightarrows':'\u21C9','rightsquigarrow':'\u219D','RightTee':'\u22A2','RightTeeArrow':'\u21A6','RightTeeVector':'\u295B','rightthreetimes':'\u22CC','RightTriangle':'\u22B3','RightTriangleBar':'\u29D0','RightTriangleEqual':'\u22B5','RightUpDownVector':'\u294F','RightUpTeeVector':'\u295C','RightUpVector':'\u21BE','RightUpVectorBar':'\u2954','RightVector':'\u21C0','RightVectorBar':'\u2953','ring':'\u02DA','risingdotseq':'\u2253','rlarr':'\u21C4','rlhar':'\u21CC','rlm':'\u200F','rmoust':'\u23B1','rmoustache':'\u23B1','rnmid':'\u2AEE','roang':'\u27ED','roarr':'\u21FE','robrk':'\u27E7','ropar':'\u2986','ropf':'\uD835\uDD63','Ropf':'\u211D','roplus':'\u2A2E','rotimes':'\u2A35','RoundImplies':'\u2970','rpar':')','rpargt':'\u2994','rppolint':'\u2A12','rrarr':'\u21C9','Rrightarrow':'\u21DB','rsaquo':'\u203A','rscr':'\uD835\uDCC7','Rscr':'\u211B','rsh':'\u21B1','Rsh':'\u21B1','rsqb':']','rsquo':'\u2019','rsquor':'\u2019','rthree':'\u22CC','rtimes':'\u22CA','rtri':'\u25B9','rtrie':'\u22B5','rtrif':'\u25B8','rtriltri':'\u29CE','RuleDelayed':'\u29F4','ruluhar':'\u2968','rx':'\u211E','sacute':'\u015B','Sacute':'\u015A','sbquo':'\u201A','sc':'\u227B','Sc':'\u2ABC','scap':'\u2AB8','scaron':'\u0161','Scaron':'\u0160','sccue':'\u227D','sce':'\u2AB0','scE':'\u2AB4','scedil':'\u015F','Scedil':'\u015E','scirc':'\u015D','Scirc':'\u015C','scnap':'\u2ABA','scnE':'\u2AB6','scnsim':'\u22E9','scpolint':'\u2A13','scsim':'\u227F','scy':'\u0441','Scy':'\u0421','sdot':'\u22C5','sdotb':'\u22A1','sdote':'\u2A66','searhk':'\u2925','searr':'\u2198','seArr':'\u21D8','searrow':'\u2198','sect':'\xA7','semi':';','seswar':'\u2929','setminus':'\u2216','setmn':'\u2216','sext':'\u2736','sfr':'\uD835\uDD30','Sfr':'\uD835\uDD16','sfrown':'\u2322','sharp':'\u266F','shchcy':'\u0449','SHCHcy':'\u0429','shcy':'\u0448','SHcy':'\u0428','ShortDownArrow':'\u2193','ShortLeftArrow':'\u2190','shortmid':'\u2223','shortparallel':'\u2225','ShortRightArrow':'\u2192','ShortUpArrow':'\u2191','shy':'\xAD','sigma':'\u03C3','Sigma':'\u03A3','sigmaf':'\u03C2','sigmav':'\u03C2','sim':'\u223C','simdot':'\u2A6A','sime':'\u2243','simeq':'\u2243','simg':'\u2A9E','simgE':'\u2AA0','siml':'\u2A9D','simlE':'\u2A9F','simne':'\u2246','simplus':'\u2A24','simrarr':'\u2972','slarr':'\u2190','SmallCircle':'\u2218','smallsetminus':'\u2216','smashp':'\u2A33','smeparsl':'\u29E4','smid':'\u2223','smile':'\u2323','smt':'\u2AAA','smte':'\u2AAC','smtes':'\u2AAC\uFE00','softcy':'\u044C','SOFTcy':'\u042C','sol':'/','solb':'\u29C4','solbar':'\u233F','sopf':'\uD835\uDD64','Sopf':'\uD835\uDD4A','spades':'\u2660','spadesuit':'\u2660','spar':'\u2225','sqcap':'\u2293','sqcaps':'\u2293\uFE00','sqcup':'\u2294','sqcups':'\u2294\uFE00','Sqrt':'\u221A','sqsub':'\u228F','sqsube':'\u2291','sqsubset':'\u228F','sqsubseteq':'\u2291','sqsup':'\u2290','sqsupe':'\u2292','sqsupset':'\u2290','sqsupseteq':'\u2292','squ':'\u25A1','square':'\u25A1','Square':'\u25A1','SquareIntersection':'\u2293','SquareSubset':'\u228F','SquareSubsetEqual':'\u2291','SquareSuperset':'\u2290','SquareSupersetEqual':'\u2292','SquareUnion':'\u2294','squarf':'\u25AA','squf':'\u25AA','srarr':'\u2192','sscr':'\uD835\uDCC8','Sscr':'\uD835\uDCAE','ssetmn':'\u2216','ssmile':'\u2323','sstarf':'\u22C6','star':'\u2606','Star':'\u22C6','starf':'\u2605','straightepsilon':'\u03F5','straightphi':'\u03D5','strns':'\xAF','sub':'\u2282','Sub':'\u22D0','subdot':'\u2ABD','sube':'\u2286','subE':'\u2AC5','subedot':'\u2AC3','submult':'\u2AC1','subne':'\u228A','subnE':'\u2ACB','subplus':'\u2ABF','subrarr':'\u2979','subset':'\u2282','Subset':'\u22D0','subseteq':'\u2286','subseteqq':'\u2AC5','SubsetEqual':'\u2286','subsetneq':'\u228A','subsetneqq':'\u2ACB','subsim':'\u2AC7','subsub':'\u2AD5','subsup':'\u2AD3','succ':'\u227B','succapprox':'\u2AB8','succcurlyeq':'\u227D','Succeeds':'\u227B','SucceedsEqual':'\u2AB0','SucceedsSlantEqual':'\u227D','SucceedsTilde':'\u227F','succeq':'\u2AB0','succnapprox':'\u2ABA','succneqq':'\u2AB6','succnsim':'\u22E9','succsim':'\u227F','SuchThat':'\u220B','sum':'\u2211','Sum':'\u2211','sung':'\u266A','sup':'\u2283','Sup':'\u22D1','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','supdot':'\u2ABE','supdsub':'\u2AD8','supe':'\u2287','supE':'\u2AC6','supedot':'\u2AC4','Superset':'\u2283','SupersetEqual':'\u2287','suphsol':'\u27C9','suphsub':'\u2AD7','suplarr':'\u297B','supmult':'\u2AC2','supne':'\u228B','supnE':'\u2ACC','supplus':'\u2AC0','supset':'\u2283','Supset':'\u22D1','supseteq':'\u2287','supseteqq':'\u2AC6','supsetneq':'\u228B','supsetneqq':'\u2ACC','supsim':'\u2AC8','supsub':'\u2AD4','supsup':'\u2AD6','swarhk':'\u2926','swarr':'\u2199','swArr':'\u21D9','swarrow':'\u2199','swnwar':'\u292A','szlig':'\xDF','Tab':'\t','target':'\u2316','tau':'\u03C4','Tau':'\u03A4','tbrk':'\u23B4','tcaron':'\u0165','Tcaron':'\u0164','tcedil':'\u0163','Tcedil':'\u0162','tcy':'\u0442','Tcy':'\u0422','tdot':'\u20DB','telrec':'\u2315','tfr':'\uD835\uDD31','Tfr':'\uD835\uDD17','there4':'\u2234','therefore':'\u2234','Therefore':'\u2234','theta':'\u03B8','Theta':'\u0398','thetasym':'\u03D1','thetav':'\u03D1','thickapprox':'\u2248','thicksim':'\u223C','ThickSpace':'\u205F\u200A','thinsp':'\u2009','ThinSpace':'\u2009','thkap':'\u2248','thksim':'\u223C','thorn':'\xFE','THORN':'\xDE','tilde':'\u02DC','Tilde':'\u223C','TildeEqual':'\u2243','TildeFullEqual':'\u2245','TildeTilde':'\u2248','times':'\xD7','timesb':'\u22A0','timesbar':'\u2A31','timesd':'\u2A30','tint':'\u222D','toea':'\u2928','top':'\u22A4','topbot':'\u2336','topcir':'\u2AF1','topf':'\uD835\uDD65','Topf':'\uD835\uDD4B','topfork':'\u2ADA','tosa':'\u2929','tprime':'\u2034','trade':'\u2122','TRADE':'\u2122','triangle':'\u25B5','triangledown':'\u25BF','triangleleft':'\u25C3','trianglelefteq':'\u22B4','triangleq':'\u225C','triangleright':'\u25B9','trianglerighteq':'\u22B5','tridot':'\u25EC','trie':'\u225C','triminus':'\u2A3A','TripleDot':'\u20DB','triplus':'\u2A39','trisb':'\u29CD','tritime':'\u2A3B','trpezium':'\u23E2','tscr':'\uD835\uDCC9','Tscr':'\uD835\uDCAF','tscy':'\u0446','TScy':'\u0426','tshcy':'\u045B','TSHcy':'\u040B','tstrok':'\u0167','Tstrok':'\u0166','twixt':'\u226C','twoheadleftarrow':'\u219E','twoheadrightarrow':'\u21A0','uacute':'\xFA','Uacute':'\xDA','uarr':'\u2191','uArr':'\u21D1','Uarr':'\u219F','Uarrocir':'\u2949','ubrcy':'\u045E','Ubrcy':'\u040E','ubreve':'\u016D','Ubreve':'\u016C','ucirc':'\xFB','Ucirc':'\xDB','ucy':'\u0443','Ucy':'\u0423','udarr':'\u21C5','udblac':'\u0171','Udblac':'\u0170','udhar':'\u296E','ufisht':'\u297E','ufr':'\uD835\uDD32','Ufr':'\uD835\uDD18','ugrave':'\xF9','Ugrave':'\xD9','uHar':'\u2963','uharl':'\u21BF','uharr':'\u21BE','uhblk':'\u2580','ulcorn':'\u231C','ulcorner':'\u231C','ulcrop':'\u230F','ultri':'\u25F8','umacr':'\u016B','Umacr':'\u016A','uml':'\xA8','UnderBar':'_','UnderBrace':'\u23DF','UnderBracket':'\u23B5','UnderParenthesis':'\u23DD','Union':'\u22C3','UnionPlus':'\u228E','uogon':'\u0173','Uogon':'\u0172','uopf':'\uD835\uDD66','Uopf':'\uD835\uDD4C','uparrow':'\u2191','Uparrow':'\u21D1','UpArrow':'\u2191','UpArrowBar':'\u2912','UpArrowDownArrow':'\u21C5','updownarrow':'\u2195','Updownarrow':'\u21D5','UpDownArrow':'\u2195','UpEquilibrium':'\u296E','upharpoonleft':'\u21BF','upharpoonright':'\u21BE','uplus':'\u228E','UpperLeftArrow':'\u2196','UpperRightArrow':'\u2197','upsi':'\u03C5','Upsi':'\u03D2','upsih':'\u03D2','upsilon':'\u03C5','Upsilon':'\u03A5','UpTee':'\u22A5','UpTeeArrow':'\u21A5','upuparrows':'\u21C8','urcorn':'\u231D','urcorner':'\u231D','urcrop':'\u230E','uring':'\u016F','Uring':'\u016E','urtri':'\u25F9','uscr':'\uD835\uDCCA','Uscr':'\uD835\uDCB0','utdot':'\u22F0','utilde':'\u0169','Utilde':'\u0168','utri':'\u25B5','utrif':'\u25B4','uuarr':'\u21C8','uuml':'\xFC','Uuml':'\xDC','uwangle':'\u29A7','vangrt':'\u299C','varepsilon':'\u03F5','varkappa':'\u03F0','varnothing':'\u2205','varphi':'\u03D5','varpi':'\u03D6','varpropto':'\u221D','varr':'\u2195','vArr':'\u21D5','varrho':'\u03F1','varsigma':'\u03C2','varsubsetneq':'\u228A\uFE00','varsubsetneqq':'\u2ACB\uFE00','varsupsetneq':'\u228B\uFE00','varsupsetneqq':'\u2ACC\uFE00','vartheta':'\u03D1','vartriangleleft':'\u22B2','vartriangleright':'\u22B3','vBar':'\u2AE8','Vbar':'\u2AEB','vBarv':'\u2AE9','vcy':'\u0432','Vcy':'\u0412','vdash':'\u22A2','vDash':'\u22A8','Vdash':'\u22A9','VDash':'\u22AB','Vdashl':'\u2AE6','vee':'\u2228','Vee':'\u22C1','veebar':'\u22BB','veeeq':'\u225A','vellip':'\u22EE','verbar':'|','Verbar':'\u2016','vert':'|','Vert':'\u2016','VerticalBar':'\u2223','VerticalLine':'|','VerticalSeparator':'\u2758','VerticalTilde':'\u2240','VeryThinSpace':'\u200A','vfr':'\uD835\uDD33','Vfr':'\uD835\uDD19','vltri':'\u22B2','vnsub':'\u2282\u20D2','vnsup':'\u2283\u20D2','vopf':'\uD835\uDD67','Vopf':'\uD835\uDD4D','vprop':'\u221D','vrtri':'\u22B3','vscr':'\uD835\uDCCB','Vscr':'\uD835\uDCB1','vsubne':'\u228A\uFE00','vsubnE':'\u2ACB\uFE00','vsupne':'\u228B\uFE00','vsupnE':'\u2ACC\uFE00','Vvdash':'\u22AA','vzigzag':'\u299A','wcirc':'\u0175','Wcirc':'\u0174','wedbar':'\u2A5F','wedge':'\u2227','Wedge':'\u22C0','wedgeq':'\u2259','weierp':'\u2118','wfr':'\uD835\uDD34','Wfr':'\uD835\uDD1A','wopf':'\uD835\uDD68','Wopf':'\uD835\uDD4E','wp':'\u2118','wr':'\u2240','wreath':'\u2240','wscr':'\uD835\uDCCC','Wscr':'\uD835\uDCB2','xcap':'\u22C2','xcirc':'\u25EF','xcup':'\u22C3','xdtri':'\u25BD','xfr':'\uD835\uDD35','Xfr':'\uD835\uDD1B','xharr':'\u27F7','xhArr':'\u27FA','xi':'\u03BE','Xi':'\u039E','xlarr':'\u27F5','xlArr':'\u27F8','xmap':'\u27FC','xnis':'\u22FB','xodot':'\u2A00','xopf':'\uD835\uDD69','Xopf':'\uD835\uDD4F','xoplus':'\u2A01','xotime':'\u2A02','xrarr':'\u27F6','xrArr':'\u27F9','xscr':'\uD835\uDCCD','Xscr':'\uD835\uDCB3','xsqcup':'\u2A06','xuplus':'\u2A04','xutri':'\u25B3','xvee':'\u22C1','xwedge':'\u22C0','yacute':'\xFD','Yacute':'\xDD','yacy':'\u044F','YAcy':'\u042F','ycirc':'\u0177','Ycirc':'\u0176','ycy':'\u044B','Ycy':'\u042B','yen':'\xA5','yfr':'\uD835\uDD36','Yfr':'\uD835\uDD1C','yicy':'\u0457','YIcy':'\u0407','yopf':'\uD835\uDD6A','Yopf':'\uD835\uDD50','yscr':'\uD835\uDCCE','Yscr':'\uD835\uDCB4','yucy':'\u044E','YUcy':'\u042E','yuml':'\xFF','Yuml':'\u0178','zacute':'\u017A','Zacute':'\u0179','zcaron':'\u017E','Zcaron':'\u017D','zcy':'\u0437','Zcy':'\u0417','zdot':'\u017C','Zdot':'\u017B','zeetrf':'\u2128','ZeroWidthSpace':'\u200B','zeta':'\u03B6','Zeta':'\u0396','zfr':'\uD835\uDD37','Zfr':'\u2128','zhcy':'\u0436','ZHcy':'\u0416','zigrarr':'\u21DD','zopf':'\uD835\uDD6B','Zopf':'\u2124','zscr':'\uD835\uDCCF','Zscr':'\uD835\uDCB5','zwj':'\u200D','zwnj':'\u200C'};
+       var decodeMapLegacy = {'aacute':'\xE1','Aacute':'\xC1','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','aelig':'\xE6','AElig':'\xC6','agrave':'\xE0','Agrave':'\xC0','amp':'&','AMP':'&','aring':'\xE5','Aring':'\xC5','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','brvbar':'\xA6','ccedil':'\xE7','Ccedil':'\xC7','cedil':'\xB8','cent':'\xA2','copy':'\xA9','COPY':'\xA9','curren':'\xA4','deg':'\xB0','divide':'\xF7','eacute':'\xE9','Eacute':'\xC9','ecirc':'\xEA','Ecirc':'\xCA','egrave':'\xE8','Egrave':'\xC8','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','frac12':'\xBD','frac14':'\xBC','frac34':'\xBE','gt':'>','GT':'>','iacute':'\xED','Iacute':'\xCD','icirc':'\xEE','Icirc':'\xCE','iexcl':'\xA1','igrave':'\xEC','Igrave':'\xCC','iquest':'\xBF','iuml':'\xEF','Iuml':'\xCF','laquo':'\xAB','lt':'<','LT':'<','macr':'\xAF','micro':'\xB5','middot':'\xB7','nbsp':'\xA0','not':'\xAC','ntilde':'\xF1','Ntilde':'\xD1','oacute':'\xF3','Oacute':'\xD3','ocirc':'\xF4','Ocirc':'\xD4','ograve':'\xF2','Ograve':'\xD2','ordf':'\xAA','ordm':'\xBA','oslash':'\xF8','Oslash':'\xD8','otilde':'\xF5','Otilde':'\xD5','ouml':'\xF6','Ouml':'\xD6','para':'\xB6','plusmn':'\xB1','pound':'\xA3','quot':'"','QUOT':'"','raquo':'\xBB','reg':'\xAE','REG':'\xAE','sect':'\xA7','shy':'\xAD','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','szlig':'\xDF','thorn':'\xFE','THORN':'\xDE','times':'\xD7','uacute':'\xFA','Uacute':'\xDA','ucirc':'\xFB','Ucirc':'\xDB','ugrave':'\xF9','Ugrave':'\xD9','uml':'\xA8','uuml':'\xFC','Uuml':'\xDC','yacute':'\xFD','Yacute':'\xDD','yen':'\xA5','yuml':'\xFF'};
+       var decodeMapNumeric = {'0':'\uFFFD','128':'\u20AC','130':'\u201A','131':'\u0192','132':'\u201E','133':'\u2026','134':'\u2020','135':'\u2021','136':'\u02C6','137':'\u2030','138':'\u0160','139':'\u2039','140':'\u0152','142':'\u017D','145':'\u2018','146':'\u2019','147':'\u201C','148':'\u201D','149':'\u2022','150':'\u2013','151':'\u2014','152':'\u02DC','153':'\u2122','154':'\u0161','155':'\u203A','156':'\u0153','158':'\u017E','159':'\u0178'};
+       var invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111];
 
-    cleanedUp = true;
+       /*--------------------------------------------------------------------------*/
 
-    // if the reader is waiting for a drain event from this
-    // specific writer, then it would cause it to never start
-    // flowing again.
-    // So, if this is awaiting a drain, then we just call it now.
-    // If we don't know, then assume that we are waiting for one.
-    if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
-  }
+       var stringFromCharCode = String.fromCharCode;
 
-  src.on('data', ondata);
-  function ondata(chunk) {
-    debug('ondata');
-    var ret = dest.write(chunk);
-    if (false === ret) {
-      // If the user unpiped during `dest.write()`, it is possible
-      // to get stuck in a permanently paused state if that write
-      // also returned false.
-      if (state.pipesCount === 1 && state.pipes[0] === dest && src.listenerCount('data') === 1 && !cleanedUp) {
-        debug('false write response, pause', src._readableState.awaitDrain);
-        src._readableState.awaitDrain++;
-      }
-      src.pause();
-    }
-  }
+       var object = {};
+       var hasOwnProperty = object.hasOwnProperty;
+       var has = function(object, propertyName) {
+               return hasOwnProperty.call(object, propertyName);
+       };
 
-  // if the dest has an error, then stop piping into it.
-  // however, don't suppress the throwing behavior for this.
-  function onerror(er) {
-    debug('onerror', er);
-    unpipe();
-    dest.removeListener('error', onerror);
-    if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);
-  }
-  // This is a brutally ugly hack to make sure that our error handler
-  // is attached before any userland ones.  NEVER DO THIS.
-  if (!dest._events || !dest._events.error) dest.on('error', onerror);else if (isArray(dest._events.error)) dest._events.error.unshift(onerror);else dest._events.error = [onerror, dest._events.error];
+       var contains = function(array, value) {
+               var index = -1;
+               var length = array.length;
+               while (++index < length) {
+                       if (array[index] == value) {
+                               return true;
+                       }
+               }
+               return false;
+       };
 
-  // Both close and finish should trigger unpipe, but only once.
-  function onclose() {
-    dest.removeListener('finish', onfinish);
-    unpipe();
-  }
-  dest.once('close', onclose);
-  function onfinish() {
-    debug('onfinish');
-    dest.removeListener('close', onclose);
-    unpipe();
-  }
-  dest.once('finish', onfinish);
+       var merge = function(options, defaults) {
+               if (!options) {
+                       return defaults;
+               }
+               var result = {};
+               var key;
+               for (key in defaults) {
+                       // A `hasOwnProperty` check is not needed here, since only recognized
+                       // option names are used anyway. Any others are ignored.
+                       result[key] = has(options, key) ? options[key] : defaults[key];
+               }
+               return result;
+       };
 
-  function unpipe() {
-    debug('unpipe');
-    src.unpipe(dest);
-  }
+       // Modified version of `ucs2encode`; see https://mths.be/punycode.
+       var codePointToSymbol = function(codePoint, strict) {
+               var output = '';
+               if ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) {
+                       // See issue #4:
+                       // “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is
+                       // greater than 0x10FFFF, then this is a parse error. Return a U+FFFD
+                       // REPLACEMENT CHARACTER.”
+                       if (strict) {
+                               parseError('character reference outside the permissible Unicode range');
+                       }
+                       return '\uFFFD';
+               }
+               if (has(decodeMapNumeric, codePoint)) {
+                       if (strict) {
+                               parseError('disallowed character reference');
+                       }
+                       return decodeMapNumeric[codePoint];
+               }
+               if (strict && contains(invalidReferenceCodePoints, codePoint)) {
+                       parseError('disallowed character reference');
+               }
+               if (codePoint > 0xFFFF) {
+                       codePoint -= 0x10000;
+                       output += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);
+                       codePoint = 0xDC00 | codePoint & 0x3FF;
+               }
+               output += stringFromCharCode(codePoint);
+               return output;
+       };
 
-  // tell the dest that it's being piped to
-  dest.emit('pipe', src);
+       var hexEscape = function(symbol) {
+               return '&#x' + symbol.charCodeAt(0).toString(16).toUpperCase() + ';';
+       };
 
-  // start the flow if it hasn't been started already.
-  if (!state.flowing) {
-    debug('pipe resume');
-    src.resume();
-  }
+       var parseError = function(message) {
+               throw Error('Parse error: ' + message);
+       };
 
-  return dest;
-};
+       /*--------------------------------------------------------------------------*/
 
-function pipeOnDrain(src) {
-  return function () {
-    var state = src._readableState;
-    debug('pipeOnDrain', state.awaitDrain);
-    if (state.awaitDrain) state.awaitDrain--;
-    if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {
-      state.flowing = true;
-      flow(src);
-    }
-  };
-}
+       var encode = function(string, options) {
+               options = merge(options, encode.options);
+               var strict = options.strict;
+               if (strict && regexInvalidRawCodePoint.test(string)) {
+                       parseError('forbidden code point');
+               }
+               var encodeEverything = options.encodeEverything;
+               var useNamedReferences = options.useNamedReferences;
+               var allowUnsafeSymbols = options.allowUnsafeSymbols;
+               if (encodeEverything) {
+                       // Encode ASCII symbols.
+                       string = string.replace(regexAsciiWhitelist, function(symbol) {
+                               // Use named references if requested & possible.
+                               if (useNamedReferences && has(encodeMap, symbol)) {
+                                       return '&' + encodeMap[symbol] + ';';
+                               }
+                               return hexEscape(symbol);
+                       });
+                       // Shorten a few escapes that represent two symbols, of which at least one
+                       // is within the ASCII range.
+                       if (useNamedReferences) {
+                               string = string
+                                       .replace(/&gt;\u20D2/g, '&nvgt;')
+                                       .replace(/&lt;\u20D2/g, '&nvlt;')
+                                       .replace(/&#x66;&#x6A;/g, '&fjlig;');
+                       }
+                       // Encode non-ASCII symbols.
+                       if (useNamedReferences) {
+                               // Encode non-ASCII symbols that can be replaced with a named reference.
+                               string = string.replace(regexEncodeNonAscii, function(string) {
+                                       // Note: there is no need to check `has(encodeMap, string)` here.
+                                       return '&' + encodeMap[string] + ';';
+                               });
+                       }
+                       // Note: any remaining non-ASCII symbols are handled outside of the `if`.
+               } else if (useNamedReferences) {
+                       // Apply named character references.
+                       // Encode `<>"'&` using named character references.
+                       if (!allowUnsafeSymbols) {
+                               string = string.replace(regexEscape, function(string) {
+                                       return '&' + encodeMap[string] + ';'; // no need to check `has()` here
+                               });
+                       }
+                       // Shorten escapes that represent two symbols, of which at least one is
+                       // `<>"'&`.
+                       string = string
+                               .replace(/&gt;\u20D2/g, '&nvgt;')
+                               .replace(/&lt;\u20D2/g, '&nvlt;');
+                       // Encode non-ASCII symbols that can be replaced with a named reference.
+                       string = string.replace(regexEncodeNonAscii, function(string) {
+                               // Note: there is no need to check `has(encodeMap, string)` here.
+                               return '&' + encodeMap[string] + ';';
+                       });
+               } else if (!allowUnsafeSymbols) {
+                       // Encode `<>"'&` using hexadecimal escapes, now that they’re not handled
+                       // using named character references.
+                       string = string.replace(regexEscape, hexEscape);
+               }
+               return string
+                       // Encode astral symbols.
+                       .replace(regexAstralSymbols, function($0) {
+                               // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
+                               var high = $0.charCodeAt(0);
+                               var low = $0.charCodeAt(1);
+                               var codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;
+                               return '&#x' + codePoint.toString(16).toUpperCase() + ';';
+                       })
+                       // Encode any remaining BMP symbols that are not printable ASCII symbols
+                       // using a hexadecimal escape.
+                       .replace(regexBmpWhitelist, hexEscape);
+       };
+       // Expose default options (so they can be overridden globally).
+       encode.options = {
+               'allowUnsafeSymbols': false,
+               'encodeEverything': false,
+               'strict': false,
+               'useNamedReferences': false
+       };
 
-Readable.prototype.unpipe = function (dest) {
-  var state = this._readableState;
+       var decode = function(html, options) {
+               options = merge(options, decode.options);
+               var strict = options.strict;
+               if (strict && regexInvalidEntity.test(html)) {
+                       parseError('malformed character reference');
+               }
+               return html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7) {
+                       var codePoint;
+                       var semicolon;
+                       var decDigits;
+                       var hexDigits;
+                       var reference;
+                       var next;
+                       if ($1) {
+                               // Decode decimal escapes, e.g. `&#119558;`.
+                               decDigits = $1;
+                               semicolon = $2;
+                               if (strict && !semicolon) {
+                                       parseError('character reference was not terminated by a semicolon');
+                               }
+                               codePoint = parseInt(decDigits, 10);
+                               return codePointToSymbol(codePoint, strict);
+                       }
+                       if ($3) {
+                               // Decode hexadecimal escapes, e.g. `&#x1D306;`.
+                               hexDigits = $3;
+                               semicolon = $4;
+                               if (strict && !semicolon) {
+                                       parseError('character reference was not terminated by a semicolon');
+                               }
+                               codePoint = parseInt(hexDigits, 16);
+                               return codePointToSymbol(codePoint, strict);
+                       }
+                       if ($5) {
+                               // Decode named character references with trailing `;`, e.g. `&copy;`.
+                               reference = $5;
+                               if (has(decodeMap, reference)) {
+                                       return decodeMap[reference];
+                               } else {
+                                       // Ambiguous ampersand. https://mths.be/notes/ambiguous-ampersands
+                                       if (strict) {
+                                               parseError(
+                                                       'named character reference was not terminated by a semicolon'
+                                               );
+                                       }
+                                       return $0;
+                               }
+                       }
+                       // If we’re still here, it’s a legacy reference for sure. No need for an
+                       // extra `if` check.
+                       // Decode named character references without trailing `;`, e.g. `&amp`
+                       // This is only a parse error if it gets converted to `&`, or if it is
+                       // followed by `=` in an attribute context.
+                       reference = $6;
+                       next = $7;
+                       if (next && options.isAttributeValue) {
+                               if (strict && next == '=') {
+                                       parseError('`&` did not start a character reference');
+                               }
+                               return $0;
+                       } else {
+                               if (strict) {
+                                       parseError(
+                                               'named character reference was not terminated by a semicolon'
+                                       );
+                               }
+                               // Note: there is no need to check `has(decodeMapLegacy, reference)`.
+                               return decodeMapLegacy[reference] + (next || '');
+                       }
+               });
+       };
+       // Expose default options (so they can be overridden globally).
+       decode.options = {
+               'isAttributeValue': false,
+               'strict': false
+       };
 
-  // if we're not piping anywhere, then do nothing.
-  if (state.pipesCount === 0) return this;
+       var escape = function(string) {
+               return string.replace(regexEscape, function($0) {
+                       // Note: there is no need to check `has(escapeMap, $0)` here.
+                       return escapeMap[$0];
+               });
+       };
 
-  // just one destination.  most common case.
-  if (state.pipesCount === 1) {
-    // passed in one, but it's not the right one.
-    if (dest && dest !== state.pipes) return this;
+       /*--------------------------------------------------------------------------*/
 
-    if (!dest) dest = state.pipes;
+       var he = {
+               'version': '1.0.0',
+               'encode': encode,
+               'decode': decode,
+               'escape': escape,
+               'unescape': decode
+       };
 
-    // got a match.
-    state.pipes = null;
-    state.pipesCount = 0;
-    state.flowing = false;
-    if (dest) dest.emit('unpipe', this);
-    return this;
-  }
+       // Some AMD build optimizers, like r.js, check for specific condition patterns
+       // like the following:
+       if (
+               typeof define == 'function' &&
+               typeof define.amd == 'object' &&
+               define.amd
+       ) {
+               define(function() {
+                       return he;
+               });
+       }       else if (freeExports && !freeExports.nodeType) {
+               if (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+
+                       freeModule.exports = he;
+               } else { // in Narwhal or RingoJS v0.7.0-
+                       for (var key in he) {
+                               has(he, key) && (freeExports[key] = he[key]);
+                       }
+               }
+       } else { // in Rhino or a web browser
+               root.he = he;
+       }
 
-  // slow case. multiple pipe destinations.
+}(this));
 
-  if (!dest) {
-    // remove all.
-    var dests = state.pipes;
-    var len = state.pipesCount;
-    state.pipes = null;
-    state.pipesCount = 0;
-    state.flowing = false;
+}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
+},{}],81:[function(require,module,exports){
+var http = require('http');
 
-    for (var _i = 0; _i < len; _i++) {
-      dests[_i].emit('unpipe', this);
-    }return this;
-  }
+var https = module.exports;
 
-  // try to find the right one.
-  var i = indexOf(state.pipes, dest);
-  if (i === -1) return this;
+for (var key in http) {
+    if (http.hasOwnProperty(key)) https[key] = http[key];
+};
 
-  state.pipes.splice(i, 1);
-  state.pipesCount -= 1;
-  if (state.pipesCount === 1) state.pipes = state.pipes[0];
+https.request = function (params, cb) {
+    if (!params) params = {};
+    params.scheme = 'https';
+    params.protocol = 'https:';
+    return http.request.call(this, params, cb);
+}
 
-  dest.emit('unpipe', this);
+},{"http":123}],82:[function(require,module,exports){
+exports.read = function (buffer, offset, isLE, mLen, nBytes) {
+  var e, m
+  var eLen = nBytes * 8 - mLen - 1
+  var eMax = (1 << eLen) - 1
+  var eBias = eMax >> 1
+  var nBits = -7
+  var i = isLE ? (nBytes - 1) : 0
+  var d = isLE ? -1 : 1
+  var s = buffer[offset + i]
 
-  return this;
-};
+  i += d
 
-// set up data events if they are asked for
-// Ensure readable listeners eventually get something
-Readable.prototype.on = function (ev, fn) {
-  var res = Stream.prototype.on.call(this, ev, fn);
+  e = s & ((1 << (-nBits)) - 1)
+  s >>= (-nBits)
+  nBits += eLen
+  for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}
 
-  // If listening to data, and it has not explicitly been paused,
-  // then call resume to start the flow of data on the next tick.
-  if (ev === 'data' && false !== this._readableState.flowing) {
-    this.resume();
-  }
+  m = e & ((1 << (-nBits)) - 1)
+  e >>= (-nBits)
+  nBits += mLen
+  for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}
 
-  if (ev === 'readable' && !this._readableState.endEmitted) {
-    var state = this._readableState;
-    if (!state.readableListening) {
-      state.readableListening = true;
-      state.emittedReadable = false;
-      state.needReadable = true;
-      if (!state.reading) {
-        processNextTick(nReadingNextTick, this);
-      } else if (state.length) {
-        emitReadable(this, state);
-      }
-    }
+  if (e === 0) {
+    e = 1 - eBias
+  } else if (e === eMax) {
+    return m ? NaN : ((s ? -1 : 1) * Infinity)
+  } else {
+    m = m + Math.pow(2, mLen)
+    e = e - eBias
   }
+  return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
+}
 
-  return res;
-};
-Readable.prototype.addListener = Readable.prototype.on;
+exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
+  var e, m, c
+  var eLen = nBytes * 8 - mLen - 1
+  var eMax = (1 << eLen) - 1
+  var eBias = eMax >> 1
+  var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
+  var i = isLE ? 0 : (nBytes - 1)
+  var d = isLE ? 1 : -1
+  var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
 
-function nReadingNextTick(self) {
-  debug('readable nexttick read 0');
-  self.read(0);
-}
+  value = Math.abs(value)
 
-// pause() and resume() are remnants of the legacy readable stream API
-// If the user uses them, then switch into old mode.
-Readable.prototype.resume = function () {
-  var state = this._readableState;
-  if (!state.flowing) {
-    debug('resume');
-    state.flowing = true;
-    resume(this, state);
-  }
-  return this;
-};
+  if (isNaN(value) || value === Infinity) {
+    m = isNaN(value) ? 1 : 0
+    e = eMax
+  } else {
+    e = Math.floor(Math.log(value) / Math.LN2)
+    if (value * (c = Math.pow(2, -e)) < 1) {
+      e--
+      c *= 2
+    }
+    if (e + eBias >= 1) {
+      value += rt / c
+    } else {
+      value += rt * Math.pow(2, 1 - eBias)
+    }
+    if (value * c >= 2) {
+      e++
+      c /= 2
+    }
 
-function resume(stream, state) {
-  if (!state.resumeScheduled) {
-    state.resumeScheduled = true;
-    processNextTick(resume_, stream, state);
+    if (e + eBias >= eMax) {
+      m = 0
+      e = eMax
+    } else if (e + eBias >= 1) {
+      m = (value * c - 1) * Math.pow(2, mLen)
+      e = e + eBias
+    } else {
+      m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
+      e = 0
+    }
   }
-}
 
-function resume_(stream, state) {
-  if (!state.reading) {
-    debug('resume read 0');
-    stream.read(0);
-  }
+  for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
 
-  state.resumeScheduled = false;
-  stream.emit('resume');
-  flow(stream);
-  if (state.flowing && !state.reading) stream.read(0);
-}
+  e = (e << mLen) | m
+  eLen += mLen
+  for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
 
-Readable.prototype.pause = function () {
-  debug('call pause flowing=%j', this._readableState.flowing);
-  if (false !== this._readableState.flowing) {
-    debug('pause');
-    this._readableState.flowing = false;
-    this.emit('pause');
-  }
-  return this;
-};
+  buffer[offset + i - d] |= s * 128
+}
 
-function flow(stream) {
-  var state = stream._readableState;
-  debug('flow', state.flowing);
-  if (state.flowing) {
-    do {
-      var chunk = stream.read();
-    } while (null !== chunk && state.flowing);
+},{}],83:[function(require,module,exports){
+if (typeof Object.create === 'function') {
+  // implementation from standard node.js 'util' module
+  module.exports = function inherits(ctor, superCtor) {
+    ctor.super_ = superCtor
+    ctor.prototype = Object.create(superCtor.prototype, {
+      constructor: {
+        value: ctor,
+        enumerable: false,
+        writable: true,
+        configurable: true
+      }
+    });
+  };
+} else {
+  // old school shim for old browsers
+  module.exports = function inherits(ctor, superCtor) {
+    ctor.super_ = superCtor
+    var TempCtor = function () {}
+    TempCtor.prototype = superCtor.prototype
+    ctor.prototype = new TempCtor()
+    ctor.prototype.constructor = ctor
   }
 }
 
-// wrap an old-style stream as the async data source.
-// This is *not* part of the readable stream interface.
-// It is an ugly unfortunate mess of history.
-Readable.prototype.wrap = function (stream) {
-  var state = this._readableState;
-  var paused = false;
+},{}],84:[function(require,module,exports){
+/**
+ * Determine if an object is Buffer
+ *
+ * Author:   Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
+ * License:  MIT
+ *
+ * `npm install is-buffer`
+ */
 
-  var self = this;
-  stream.on('end', function () {
-    debug('wrapped end');
-    if (state.decoder && !state.ended) {
-      var chunk = state.decoder.end();
-      if (chunk && chunk.length) self.push(chunk);
-    }
+module.exports = function (obj) {
+  return !!(obj != null &&
+    (obj._isBuffer || // For Safari 5-7 (missing Object.prototype.constructor)
+      (obj.constructor &&
+      typeof obj.constructor.isBuffer === 'function' &&
+      obj.constructor.isBuffer(obj))
+    ))
+}
 
-    self.push(null);
-  });
+},{}],85:[function(require,module,exports){
+var toString = {}.toString;
 
-  stream.on('data', function (chunk) {
-    debug('wrapped data');
-    if (state.decoder) chunk = state.decoder.write(chunk);
+module.exports = Array.isArray || function (arr) {
+  return toString.call(arr) == '[object Array]';
+};
 
-    // don't skip over falsy values in objectMode
-    if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
+},{}],86:[function(require,module,exports){
+'use strict';
+var xmlChars = require('xml-char-classes');
 
-    var ret = self.push(chunk);
-    if (!ret) {
-      paused = true;
-      stream.pause();
-    }
-  });
+function getRange(re) {
+       return re.source.slice(1, -1);
+}
 
-  // proxy all the other methods.
-  // important when wrapping filters and duplexes.
-  for (var i in stream) {
-    if (this[i] === undefined && typeof stream[i] === 'function') {
-      this[i] = function (method) {
-        return function () {
-          return stream[method].apply(stream, arguments);
-        };
-      }(i);
-    }
-  }
+// http://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-NCName
+module.exports = new RegExp('^[' + getRange(xmlChars.letter) + '_][' + getRange(xmlChars.letter) + getRange(xmlChars.digit) + '\\.\\-_' + getRange(xmlChars.combiningChar) + getRange(xmlChars.extender) + ']*$');
 
-  // proxy certain important events.
-  var events = ['error', 'close', 'destroy', 'pause', 'resume'];
-  forEach(events, function (ev) {
-    stream.on(ev, self.emit.bind(self, ev));
-  });
+},{"xml-char-classes":146}],87:[function(require,module,exports){
+exports.endianness = function () { return 'LE' };
 
-  // when we try to consume some more bytes, simply unpause the
-  // underlying stream.
-  self._read = function (n) {
-    debug('wrapped _read', n);
-    if (paused) {
-      paused = false;
-      stream.resume();
+exports.hostname = function () {
+    if (typeof location !== 'undefined') {
+        return location.hostname
     }
-  };
-
-  return self;
+    else return '';
 };
 
-// exposed for testing purposes only.
-Readable._fromList = fromList;
-
-// Pluck off n bytes from an array of buffers.
-// Length is the combined lengths of all the buffers in the list.
-function fromList(n, state) {
-  var list = state.buffer;
-  var length = state.length;
-  var stringMode = !!state.decoder;
-  var objectMode = !!state.objectMode;
-  var ret;
+exports.loadavg = function () { return [] };
 
-  // nothing in the list, definitely empty.
-  if (list.length === 0) return null;
+exports.uptime = function () { return 0 };
 
-  if (length === 0) ret = null;else if (objectMode) ret = list.shift();else if (!n || n >= length) {
-    // read it all, truncate the array.
-    if (stringMode) ret = list.join('');else if (list.length === 1) ret = list[0];else ret = Buffer.concat(list, length);
-    list.length = 0;
-  } else {
-    // read just some of it.
-    if (n < list[0].length) {
-      // just take a part of the first list item.
-      // slice is the same for buffers and strings.
-      var buf = list[0];
-      ret = buf.slice(0, n);
-      list[0] = buf.slice(n);
-    } else if (n === list[0].length) {
-      // first list is a perfect match
-      ret = list.shift();
-    } else {
-      // complex case.
-      // we have enough to cover it, but it spans past the first buffer.
-      if (stringMode) ret = '';else ret = new Buffer(n);
+exports.freemem = function () {
+    return Number.MAX_VALUE;
+};
 
-      var c = 0;
-      for (var i = 0, l = list.length; i < l && c < n; i++) {
-        var buf = list[0];
-        var cpy = Math.min(n - c, buf.length);
+exports.totalmem = function () {
+    return Number.MAX_VALUE;
+};
 
-        if (stringMode) ret += buf.slice(0, cpy);else buf.copy(ret, c, 0, cpy);
+exports.cpus = function () { return [] };
 
-        if (cpy < buf.length) list[0] = buf.slice(cpy);else list.shift();
+exports.type = function () { return 'Browser' };
 
-        c += cpy;
-      }
+exports.release = function () {
+    if (typeof navigator !== 'undefined') {
+        return navigator.appVersion;
     }
-  }
-
-  return ret;
-}
+    return '';
+};
 
-function endReadable(stream) {
-  var state = stream._readableState;
+exports.networkInterfaces
+= exports.getNetworkInterfaces
+= function () { return {} };
 
-  // If we get here before consuming all the bytes, then that is a
-  // bug in node.  Should never happen.
-  if (state.length > 0) throw new Error('endReadable called on non-empty stream');
+exports.arch = function () { return 'javascript' };
 
-  if (!state.endEmitted) {
-    state.ended = true;
-    processNextTick(endReadableNT, state, stream);
-  }
-}
+exports.platform = function () { return 'browser' };
 
-function endReadableNT(state, stream) {
-  // Check that we didn't get one last unshift.
-  if (!state.endEmitted && state.length === 0) {
-    state.endEmitted = true;
-    stream.readable = false;
-    stream.emit('end');
-  }
-}
+exports.tmpdir = exports.tmpDir = function () {
+    return '/tmp';
+};
 
-function forEach(xs, f) {
-  for (var i = 0, l = xs.length; i < l; i++) {
-    f(xs[i], i);
-  }
-}
+exports.EOL = '\n';
 
-function indexOf(xs, x) {
-  for (var i = 0, l = xs.length; i < l; i++) {
-    if (xs[i] === x) return i;
-  }
-  return -1;
-}
-}).call(this,require('_process'))
-},{"./_stream_duplex":85,"_process":79,"buffer":5,"core-util-is":67,"events":68,"inherits":72,"isarray":74,"process-nextick-args":78,"string_decoder/":127,"util":3}],88:[function(require,module,exports){
-// a transform stream is a readable/writable stream where you do
-// something with the data.  Sometimes it's called a "filter",
-// but that's not a great name for it, since that implies a thing where
-// some bits pass through, and others are simply ignored.  (That would
-// be a valid example of a transform, of course.)
-//
-// While the output is causally related to the input, it's not a
-// necessarily symmetric or synchronous transformation.  For example,
-// a zlib stream might take multiple plain-text writes(), and then
-// emit a single compressed chunk some time in the future.
-//
-// Here's how this works:
-//
-// The Transform stream has all the aspects of the readable and writable
-// stream classes.  When you write(chunk), that calls _write(chunk,cb)
-// internally, and returns false if there's a lot of pending writes
-// buffered up.  When you call read(), that calls _read(n) until
-// there's enough pending readable data buffered up.
+},{}],88:[function(require,module,exports){
+(function (process){
+// Copyright Joyent, Inc. and other Node contributors.
 //
-// In a transform stream, the written data is placed in a buffer.  When
-// _read(n) is called, it transforms the queued up data, calling the
-// buffered _write cb's as it consumes chunks.  If consuming a single
-// written chunk would result in multiple output chunks, then the first
-// outputted bit calls the readcb, and subsequent chunks just go into
-// the read buffer, and will cause it to emit 'readable' if necessary.
+// 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:
 //
-// This way, back-pressure is actually determined by the reading side,
-// since _read has to be called to start processing a new chunk.  However,
-// a pathological inflate type of transform can cause excessive buffering
-// here.  For example, imagine a stream where every byte of input is
-// interpreted as an integer from 0-255, and then results in that many
-// bytes of output.  Writing the 4 bytes {ff,ff,ff,ff} would result in
-// 1kb of data being output.  In this case, you could write a very small
-// amount of input, and end up with a very large amount of output.  In
-// such a pathological inflating mechanism, there'd be no way to tell
-// the system to stop doing the transform.  A single 4MB write could
-// cause the system to run out of memory.
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
 //
-// However, even in such a pathological case, only a single written chunk
-// would be consumed, and then the rest would wait (un-transformed) until
-// the results of the previous transformed chunk were consumed.
+// 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.
 
-'use strict';
+// resolves . and .. elements in a path array with directory names there
+// must be no slashes, empty elements, or device names (c:\) in the array
+// (so also no leading and trailing slashes - it does not distinguish
+// relative and absolute paths)
+function normalizeArray(parts, allowAboveRoot) {
+  // if the path tries to go above the root, `up` ends up > 0
+  var up = 0;
+  for (var i = parts.length - 1; i >= 0; i--) {
+    var last = parts[i];
+    if (last === '.') {
+      parts.splice(i, 1);
+    } else if (last === '..') {
+      parts.splice(i, 1);
+      up++;
+    } else if (up) {
+      parts.splice(i, 1);
+      up--;
+    }
+  }
 
-module.exports = Transform;
+  // if the path is allowed to go above the root, restore leading ..s
+  if (allowAboveRoot) {
+    for (; up--; up) {
+      parts.unshift('..');
+    }
+  }
 
-var Duplex = require('./_stream_duplex');
+  return parts;
+}
 
-/*<replacement>*/
-var util = require('core-util-is');
-util.inherits = require('inherits');
-/*</replacement>*/
+// Split a filename into [root, dir, basename, ext], unix version
+// 'root' is just a slash, or nothing.
+var splitPathRe =
+    /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
+var splitPath = function(filename) {
+  return splitPathRe.exec(filename).slice(1);
+};
 
-util.inherits(Transform, Duplex);
+// path.resolve([from ...], to)
+// posix version
+exports.resolve = function() {
+  var resolvedPath = '',
+      resolvedAbsolute = false;
 
-function TransformState(stream) {
-  this.afterTransform = function (er, data) {
-    return afterTransform(stream, er, data);
-  };
+  for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
+    var path = (i >= 0) ? arguments[i] : process.cwd();
 
-  this.needTransform = false;
-  this.transforming = false;
-  this.writecb = null;
-  this.writechunk = null;
-  this.writeencoding = null;
-}
+    // Skip empty and invalid entries
+    if (typeof path !== 'string') {
+      throw new TypeError('Arguments to path.resolve must be strings');
+    } else if (!path) {
+      continue;
+    }
 
-function afterTransform(stream, er, data) {
-  var ts = stream._transformState;
-  ts.transforming = false;
+    resolvedPath = path + '/' + resolvedPath;
+    resolvedAbsolute = path.charAt(0) === '/';
+  }
 
-  var cb = ts.writecb;
+  // At this point the path should be resolved to a full absolute path, but
+  // handle relative paths to be safe (might happen when process.cwd() fails)
 
-  if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
+  // Normalize the path
+  resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {
+    return !!p;
+  }), !resolvedAbsolute).join('/');
 
-  ts.writechunk = null;
-  ts.writecb = null;
+  return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
+};
 
-  if (data !== null && data !== undefined) stream.push(data);
+// path.normalize(path)
+// posix version
+exports.normalize = function(path) {
+  var isAbsolute = exports.isAbsolute(path),
+      trailingSlash = substr(path, -1) === '/';
 
-  cb(er);
+  // Normalize the path
+  path = normalizeArray(filter(path.split('/'), function(p) {
+    return !!p;
+  }), !isAbsolute).join('/');
 
-  var rs = stream._readableState;
-  rs.reading = false;
-  if (rs.needReadable || rs.length < rs.highWaterMark) {
-    stream._read(rs.highWaterMark);
+  if (!path && !isAbsolute) {
+    path = '.';
+  }
+  if (path && trailingSlash) {
+    path += '/';
   }
-}
 
-function Transform(options) {
-  if (!(this instanceof Transform)) return new Transform(options);
+  return (isAbsolute ? '/' : '') + path;
+};
 
-  Duplex.call(this, options);
+// posix version
+exports.isAbsolute = function(path) {
+  return path.charAt(0) === '/';
+};
 
-  this._transformState = new TransformState(this);
+// posix version
+exports.join = function() {
+  var paths = Array.prototype.slice.call(arguments, 0);
+  return exports.normalize(filter(paths, function(p, index) {
+    if (typeof p !== 'string') {
+      throw new TypeError('Arguments to path.join must be strings');
+    }
+    return p;
+  }).join('/'));
+};
 
-  // when the writable side finishes, then flush out anything remaining.
-  var stream = this;
 
-  // start out asking for a readable event once data is transformed.
-  this._readableState.needReadable = true;
+// path.relative(from, to)
+// posix version
+exports.relative = function(from, to) {
+  from = exports.resolve(from).substr(1);
+  to = exports.resolve(to).substr(1);
 
-  // we have implemented the _read method, and done the other things
-  // that Readable wants before the first _read call, so unset the
-  // sync guard flag.
-  this._readableState.sync = false;
+  function trim(arr) {
+    var start = 0;
+    for (; start < arr.length; start++) {
+      if (arr[start] !== '') break;
+    }
 
-  if (options) {
-    if (typeof options.transform === 'function') this._transform = options.transform;
+    var end = arr.length - 1;
+    for (; end >= 0; end--) {
+      if (arr[end] !== '') break;
+    }
 
-    if (typeof options.flush === 'function') this._flush = options.flush;
+    if (start > end) return [];
+    return arr.slice(start, end - start + 1);
   }
 
-  this.once('prefinish', function () {
-    if (typeof this._flush === 'function') this._flush(function (er) {
-      done(stream, er);
-    });else done(stream);
-  });
-}
+  var fromParts = trim(from.split('/'));
+  var toParts = trim(to.split('/'));
 
-Transform.prototype.push = function (chunk, encoding) {
-  this._transformState.needTransform = false;
-  return Duplex.prototype.push.call(this, chunk, encoding);
-};
-
-// This is the part where you do stuff!
-// override this function in implementation classes.
-// 'chunk' is an input chunk.
-//
-// Call `push(newChunk)` to pass along transformed output
-// to the readable side.  You may call 'push' zero or more times.
-//
-// Call `cb(err)` when you are done with this chunk.  If you pass
-// an error, then that'll put the hurt on the whole operation.  If you
-// never call cb(), then you'll never get another chunk.
-Transform.prototype._transform = function (chunk, encoding, cb) {
-  throw new Error('not implemented');
-};
-
-Transform.prototype._write = function (chunk, encoding, cb) {
-  var ts = this._transformState;
-  ts.writecb = cb;
-  ts.writechunk = chunk;
-  ts.writeencoding = encoding;
-  if (!ts.transforming) {
-    var rs = this._readableState;
-    if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
+  var length = Math.min(fromParts.length, toParts.length);
+  var samePartsLength = length;
+  for (var i = 0; i < length; i++) {
+    if (fromParts[i] !== toParts[i]) {
+      samePartsLength = i;
+      break;
+    }
   }
-};
-
-// Doesn't matter what the args are here.
-// _transform does all the work.
-// That we got here means that the readable side wants more data.
-Transform.prototype._read = function (n) {
-  var ts = this._transformState;
 
-  if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
-    ts.transforming = true;
-    this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
-  } else {
-    // mark that we need a transform, so that any data that comes in
-    // will get processed, now that we've asked for it.
-    ts.needTransform = true;
+  var outputParts = [];
+  for (var i = samePartsLength; i < fromParts.length; i++) {
+    outputParts.push('..');
   }
-};
-
-function done(stream, er) {
-  if (er) return stream.emit('error', er);
-
-  // if there's nothing in the write buffer, then that means
-  // that nothing more will ever be provided
-  var ws = stream._writableState;
-  var ts = stream._transformState;
-
-  if (ws.length) throw new Error('calling transform done when ws.length != 0');
-
-  if (ts.transforming) throw new Error('calling transform done when still transforming');
 
-  return stream.push(null);
-}
-},{"./_stream_duplex":85,"core-util-is":67,"inherits":72}],89:[function(require,module,exports){
-(function (process){
-// A bit simpler than readable streams.
-// Implement an async ._write(chunk, encoding, cb), and it'll handle all
-// the drain event emission and buffering.
-
-'use strict';
-
-module.exports = Writable;
+  outputParts = outputParts.concat(toParts.slice(samePartsLength));
 
-/*<replacement>*/
-var processNextTick = require('process-nextick-args');
-/*</replacement>*/
+  return outputParts.join('/');
+};
 
-/*<replacement>*/
-var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick;
-/*</replacement>*/
+exports.sep = '/';
+exports.delimiter = ':';
 
-/*<replacement>*/
-var Buffer = require('buffer').Buffer;
-/*</replacement>*/
+exports.dirname = function(path) {
+  var result = splitPath(path),
+      root = result[0],
+      dir = result[1];
 
-Writable.WritableState = WritableState;
+  if (!root && !dir) {
+    // No dirname whatsoever
+    return '.';
+  }
 
-/*<replacement>*/
-var util = require('core-util-is');
-util.inherits = require('inherits');
-/*</replacement>*/
+  if (dir) {
+    // It has a dirname, strip trailing slash
+    dir = dir.substr(0, dir.length - 1);
+  }
 
-/*<replacement>*/
-var internalUtil = {
-  deprecate: require('util-deprecate')
+  return root + dir;
 };
-/*</replacement>*/
 
-/*<replacement>*/
-var Stream;
-(function () {
-  try {
-    Stream = require('st' + 'ream');
-  } catch (_) {} finally {
-    if (!Stream) Stream = require('events').EventEmitter;
-  }
-})();
-/*</replacement>*/
 
-var Buffer = require('buffer').Buffer;
+exports.basename = function(path, ext) {
+  var f = splitPath(path)[2];
+  // TODO: make this comparison case-insensitive on windows?
+  if (ext && f.substr(-1 * ext.length) === ext) {
+    f = f.substr(0, f.length - ext.length);
+  }
+  return f;
+};
 
-util.inherits(Writable, Stream);
 
-function nop() {}
+exports.extname = function(path) {
+  return splitPath(path)[3];
+};
 
-function WriteReq(chunk, encoding, cb) {
-  this.chunk = chunk;
-  this.encoding = encoding;
-  this.callback = cb;
-  this.next = null;
+function filter (xs, f) {
+    if (xs.filter) return xs.filter(f);
+    var res = [];
+    for (var i = 0; i < xs.length; i++) {
+        if (f(xs[i], i, xs)) res.push(xs[i]);
+    }
+    return res;
 }
 
-var Duplex;
-function WritableState(options, stream) {
-  Duplex = Duplex || require('./_stream_duplex');
-
-  options = options || {};
-
-  // object stream flag to indicate whether or not this stream
-  // contains buffers or objects.
-  this.objectMode = !!options.objectMode;
-
-  if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
-
-  // the point at which write() starts returning false
-  // Note: 0 is a valid value, means that we always return false if
-  // the entire buffer is not flushed immediately on write()
-  var hwm = options.highWaterMark;
-  var defaultHwm = this.objectMode ? 16 : 16 * 1024;
-  this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
-
-  // cast to ints.
-  this.highWaterMark = ~ ~this.highWaterMark;
-
-  this.needDrain = false;
-  // at the start of calling end()
-  this.ending = false;
-  // when end() has been called, and returned
-  this.ended = false;
-  // when 'finish' is emitted
-  this.finished = false;
-
-  // should we decode strings into buffers before passing to _write?
-  // this is here so that some node-core streams can optimize string
-  // handling at a lower level.
-  var noDecode = options.decodeStrings === false;
-  this.decodeStrings = !noDecode;
-
-  // Crypto is kind of old and crusty.  Historically, its default string
-  // encoding is 'binary' so we have to make this configurable.
-  // Everything else in the universe uses 'utf8', though.
-  this.defaultEncoding = options.defaultEncoding || 'utf8';
-
-  // not an actual buffer we keep track of, but a measurement
-  // of how much we're waiting to get pushed to some underlying
-  // socket or file.
-  this.length = 0;
-
-  // a flag to see when we're in the middle of a write.
-  this.writing = false;
-
-  // when true all writes will be buffered until .uncork() call
-  this.corked = 0;
-
-  // a flag to be able to tell if the onwrite cb is called immediately,
-  // or on a later tick.  We set this to true at first, because any
-  // actions that shouldn't happen until "later" should generally also
-  // not happen before the first write call.
-  this.sync = true;
-
-  // a flag to know if we're processing previously buffered items, which
-  // may call the _write() callback in the same tick, so that we don't
-  // end up in an overlapped onwrite situation.
-  this.bufferProcessing = false;
-
-  // the callback that's passed to _write(chunk,cb)
-  this.onwrite = function (er) {
-    onwrite(stream, er);
-  };
-
-  // the callback that the user supplies to write(chunk,encoding,cb)
-  this.writecb = null;
-
-  // the amount that is being written when _write is called.
-  this.writelen = 0;
-
-  this.bufferedRequest = null;
-  this.lastBufferedRequest = null;
-
-  // number of pending user-supplied write callbacks
-  // this must be 0 before 'finish' can be emitted
-  this.pendingcb = 0;
-
-  // emit prefinish if the only thing we're waiting for is _write cbs
-  // This is relevant for synchronous Transform streams
-  this.prefinished = false;
-
-  // True if the error was already emitted and should not be thrown again
-  this.errorEmitted = false;
+// String.prototype.substr - negative index don't work in IE8
+var substr = 'ab'.substr(-1) === 'b'
+    ? function (str, start, len) { return str.substr(start, len) }
+    : function (str, start, len) {
+        if (start < 0) start = str.length + start;
+        return str.substr(start, len);
+    }
+;
 
-  // count buffered requests
-  this.bufferedRequestCount = 0;
+}).call(this,require('_process'))
+},{"_process":90}],89:[function(require,module,exports){
+(function (process){
+'use strict';
 
-  // create the two objects needed to store the corked requests
-  // they are not a linked list, as no new elements are inserted in there
-  this.corkedRequestsFree = new CorkedRequest(this);
-  this.corkedRequestsFree.next = new CorkedRequest(this);
+if (!process.version ||
+    process.version.indexOf('v0.') === 0 ||
+    process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {
+  module.exports = nextTick;
+} else {
+  module.exports = process.nextTick;
 }
 
-WritableState.prototype.getBuffer = function writableStateGetBuffer() {
-  var current = this.bufferedRequest;
-  var out = [];
-  while (current) {
-    out.push(current);
-    current = current.next;
+function nextTick(fn) {
+  var args = new Array(arguments.length - 1);
+  var i = 0;
+  while (i < args.length) {
+    args[i++] = arguments[i];
   }
-  return out;
-};
-
-(function () {
-  try {
-    Object.defineProperty(WritableState.prototype, 'buffer', {
-      get: internalUtil.deprecate(function () {
-        return this.getBuffer();
-      }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
-    });
-  } catch (_) {}
-})();
-
-var Duplex;
-function Writable(options) {
-  Duplex = Duplex || require('./_stream_duplex');
-
-  // Writable ctor is applied to Duplexes, though they're not
-  // instanceof Writable, they're instanceof Readable.
-  if (!(this instanceof Writable) && !(this instanceof Duplex)) return new Writable(options);
-
-  this._writableState = new WritableState(options, this);
-
-  // legacy.
-  this.writable = true;
+  process.nextTick(function afterTick() {
+    fn.apply(null, args);
+  });
+}
 
-  if (options) {
-    if (typeof options.write === 'function') this._write = options.write;
+}).call(this,require('_process'))
+},{"_process":90}],90:[function(require,module,exports){
+// shim for using process in browser
 
-    if (typeof options.writev === 'function') this._writev = options.writev;
-  }
+var process = module.exports = {};
+var queue = [];
+var draining = false;
+var currentQueue;
+var queueIndex = -1;
 
-  Stream.call(this);
+function cleanUpNextTick() {
+    draining = false;
+    if (currentQueue.length) {
+        queue = currentQueue.concat(queue);
+    } else {
+        queueIndex = -1;
+    }
+    if (queue.length) {
+        drainQueue();
+    }
 }
 
-// Otherwise people can pipe Writable streams, which is just wrong.
-Writable.prototype.pipe = function () {
-  this.emit('error', new Error('Cannot pipe. Not readable.'));
-};
+function drainQueue() {
+    if (draining) {
+        return;
+    }
+    var timeout = setTimeout(cleanUpNextTick);
+    draining = true;
 
-function writeAfterEnd(stream, cb) {
-  var er = new Error('write after end');
-  // TODO: defer error events consistently everywhere, not just the cb
-  stream.emit('error', er);
-  processNextTick(cb, er);
+    var len = queue.length;
+    while(len) {
+        currentQueue = queue;
+        queue = [];
+        while (++queueIndex < len) {
+            if (currentQueue) {
+                currentQueue[queueIndex].run();
+            }
+        }
+        queueIndex = -1;
+        len = queue.length;
+    }
+    currentQueue = null;
+    draining = false;
+    clearTimeout(timeout);
 }
 
-// If we get something that is not a buffer, string, null, or undefined,
-// and we're not in objectMode, then that's an error.
-// Otherwise stream chunks are all considered to be of length=1, and the
-// watermarks determine how many objects to keep in the buffer, rather than
-// how many bytes or characters.
-function validChunk(stream, state, chunk, cb) {
-  var valid = true;
+process.nextTick = function (fun) {
+    var args = new Array(arguments.length - 1);
+    if (arguments.length > 1) {
+        for (var i = 1; i < arguments.length; i++) {
+            args[i - 1] = arguments[i];
+        }
+    }
+    queue.push(new Item(fun, args));
+    if (queue.length === 1 && !draining) {
+        setTimeout(drainQueue, 0);
+    }
+};
 
-  if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
-    var er = new TypeError('Invalid non-string/buffer chunk');
-    stream.emit('error', er);
-    processNextTick(cb, er);
-    valid = false;
-  }
-  return valid;
+// v8 likes predictible objects
+function Item(fun, array) {
+    this.fun = fun;
+    this.array = array;
 }
+Item.prototype.run = function () {
+    this.fun.apply(null, this.array);
+};
+process.title = 'browser';
+process.browser = true;
+process.env = {};
+process.argv = [];
+process.version = ''; // empty string to avoid regexp issues
+process.versions = {};
 
-Writable.prototype.write = function (chunk, encoding, cb) {
-  var state = this._writableState;
-  var ret = false;
-
-  if (typeof encoding === 'function') {
-    cb = encoding;
-    encoding = null;
-  }
-
-  if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
+function noop() {}
 
-  if (typeof cb !== 'function') cb = nop;
+process.on = noop;
+process.addListener = noop;
+process.once = noop;
+process.off = noop;
+process.removeListener = noop;
+process.removeAllListeners = noop;
+process.emit = noop;
 
-  if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
-    state.pendingcb++;
-    ret = writeOrBuffer(this, state, chunk, encoding, cb);
-  }
+process.binding = function (name) {
+    throw new Error('process.binding is not supported');
+};
 
-  return ret;
+process.cwd = function () { return '/' };
+process.chdir = function (dir) {
+    throw new Error('process.chdir is not supported');
 };
+process.umask = function() { return 0; };
 
-Writable.prototype.cork = function () {
-  var state = this._writableState;
+},{}],91:[function(require,module,exports){
+(function (global){
+/*! https://mths.be/punycode v1.4.1 by @mathias */
+;(function(root) {
 
-  state.corked++;
-};
+       /** Detect free variables */
+       var freeExports = typeof exports == 'object' && exports &&
+               !exports.nodeType && exports;
+       var freeModule = typeof module == 'object' && module &&
+               !module.nodeType && module;
+       var freeGlobal = typeof global == 'object' && global;
+       if (
+               freeGlobal.global === freeGlobal ||
+               freeGlobal.window === freeGlobal ||
+               freeGlobal.self === freeGlobal
+       ) {
+               root = freeGlobal;
+       }
 
-Writable.prototype.uncork = function () {
-  var state = this._writableState;
+       /**
+        * The `punycode` object.
+        * @name punycode
+        * @type Object
+        */
+       var punycode,
 
-  if (state.corked) {
-    state.corked--;
+       /** Highest positive signed 32-bit float value */
+       maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1
 
-    if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
-  }
-};
+       /** Bootstring parameters */
+       base = 36,
+       tMin = 1,
+       tMax = 26,
+       skew = 38,
+       damp = 700,
+       initialBias = 72,
+       initialN = 128, // 0x80
+       delimiter = '-', // '\x2D'
 
-Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
-  // node::ParseEncoding() requires lower case.
-  if (typeof encoding === 'string') encoding = encoding.toLowerCase();
-  if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);
-  this._writableState.defaultEncoding = encoding;
-};
+       /** Regular expressions */
+       regexPunycode = /^xn--/,
+       regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars
+       regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators
 
-function decodeChunk(state, chunk, encoding) {
-  if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
-    chunk = new Buffer(chunk, encoding);
-  }
-  return chunk;
-}
+       /** Error messages */
+       errors = {
+               'overflow': 'Overflow: input needs wider integers to process',
+               'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
+               'invalid-input': 'Invalid input'
+       },
 
-// if we're already writing something, then just put this
-// in the queue, and wait our turn.  Otherwise, call _write
-// If we return false, then we need a drain event, so set that flag.
-function writeOrBuffer(stream, state, chunk, encoding, cb) {
-  chunk = decodeChunk(state, chunk, encoding);
+       /** Convenience shortcuts */
+       baseMinusTMin = base - tMin,
+       floor = Math.floor,
+       stringFromCharCode = String.fromCharCode,
 
-  if (Buffer.isBuffer(chunk)) encoding = 'buffer';
-  var len = state.objectMode ? 1 : chunk.length;
+       /** Temporary variable */
+       key;
 
-  state.length += len;
+       /*--------------------------------------------------------------------------*/
 
-  var ret = state.length < state.highWaterMark;
-  // we must ensure that previous needDrain will not be reset to false.
-  if (!ret) state.needDrain = true;
+       /**
+        * A generic error utility function.
+        * @private
+        * @param {String} type The error type.
+        * @returns {Error} Throws a `RangeError` with the applicable error message.
+        */
+       function error(type) {
+               throw new RangeError(errors[type]);
+       }
 
-  if (state.writing || state.corked) {
-    var last = state.lastBufferedRequest;
-    state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
-    if (last) {
-      last.next = state.lastBufferedRequest;
-    } else {
-      state.bufferedRequest = state.lastBufferedRequest;
-    }
-    state.bufferedRequestCount += 1;
-  } else {
-    doWrite(stream, state, false, len, chunk, encoding, cb);
-  }
+       /**
+        * A generic `Array#map` utility function.
+        * @private
+        * @param {Array} array The array to iterate over.
+        * @param {Function} callback The function that gets called for every array
+        * item.
+        * @returns {Array} A new array of values returned by the callback function.
+        */
+       function map(array, fn) {
+               var length = array.length;
+               var result = [];
+               while (length--) {
+                       result[length] = fn(array[length]);
+               }
+               return result;
+       }
 
-  return ret;
-}
+       /**
+        * A simple `Array#map`-like wrapper to work with domain name strings or email
+        * addresses.
+        * @private
+        * @param {String} domain The domain name or email address.
+        * @param {Function} callback The function that gets called for every
+        * character.
+        * @returns {Array} A new string of characters returned by the callback
+        * function.
+        */
+       function mapDomain(string, fn) {
+               var parts = string.split('@');
+               var result = '';
+               if (parts.length > 1) {
+                       // In email addresses, only the domain name should be punycoded. Leave
+                       // the local part (i.e. everything up to `@`) intact.
+                       result = parts[0] + '@';
+                       string = parts[1];
+               }
+               // Avoid `split(regex)` for IE8 compatibility. See #17.
+               string = string.replace(regexSeparators, '\x2E');
+               var labels = string.split('.');
+               var encoded = map(labels, fn).join('.');
+               return result + encoded;
+       }
 
-function doWrite(stream, state, writev, len, chunk, encoding, cb) {
-  state.writelen = len;
-  state.writecb = cb;
-  state.writing = true;
-  state.sync = true;
-  if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
-  state.sync = false;
-}
+       /**
+        * Creates an array containing the numeric code points of each Unicode
+        * character in the string. While JavaScript uses UCS-2 internally,
+        * this function will convert a pair of surrogate halves (each of which
+        * UCS-2 exposes as separate characters) into a single code point,
+        * matching UTF-16.
+        * @see `punycode.ucs2.encode`
+        * @see <https://mathiasbynens.be/notes/javascript-encoding>
+        * @memberOf punycode.ucs2
+        * @name decode
+        * @param {String} string The Unicode input string (UCS-2).
+        * @returns {Array} The new array of code points.
+        */
+       function ucs2decode(string) {
+               var output = [],
+                   counter = 0,
+                   length = string.length,
+                   value,
+                   extra;
+               while (counter < length) {
+                       value = string.charCodeAt(counter++);
+                       if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
+                               // high surrogate, and there is a next character
+                               extra = string.charCodeAt(counter++);
+                               if ((extra & 0xFC00) == 0xDC00) { // low surrogate
+                                       output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
+                               } else {
+                                       // unmatched surrogate; only append this code unit, in case the next
+                                       // code unit is the high surrogate of a surrogate pair
+                                       output.push(value);
+                                       counter--;
+                               }
+                       } else {
+                               output.push(value);
+                       }
+               }
+               return output;
+       }
 
-function onwriteError(stream, state, sync, er, cb) {
-  --state.pendingcb;
-  if (sync) processNextTick(cb, er);else cb(er);
+       /**
+        * Creates a string based on an array of numeric code points.
+        * @see `punycode.ucs2.decode`
+        * @memberOf punycode.ucs2
+        * @name encode
+        * @param {Array} codePoints The array of numeric code points.
+        * @returns {String} The new Unicode string (UCS-2).
+        */
+       function ucs2encode(array) {
+               return map(array, function(value) {
+                       var output = '';
+                       if (value > 0xFFFF) {
+                               value -= 0x10000;
+                               output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);
+                               value = 0xDC00 | value & 0x3FF;
+                       }
+                       output += stringFromCharCode(value);
+                       return output;
+               }).join('');
+       }
 
-  stream._writableState.errorEmitted = true;
-  stream.emit('error', er);
-}
+       /**
+        * Converts a basic code point into a digit/integer.
+        * @see `digitToBasic()`
+        * @private
+        * @param {Number} codePoint The basic numeric code point value.
+        * @returns {Number} The numeric value of a basic code point (for use in
+        * representing integers) in the range `0` to `base - 1`, or `base` if
+        * the code point does not represent a value.
+        */
+       function basicToDigit(codePoint) {
+               if (codePoint - 48 < 10) {
+                       return codePoint - 22;
+               }
+               if (codePoint - 65 < 26) {
+                       return codePoint - 65;
+               }
+               if (codePoint - 97 < 26) {
+                       return codePoint - 97;
+               }
+               return base;
+       }
 
-function onwriteStateUpdate(state) {
-  state.writing = false;
-  state.writecb = null;
-  state.length -= state.writelen;
-  state.writelen = 0;
-}
+       /**
+        * Converts a digit/integer into a basic code point.
+        * @see `basicToDigit()`
+        * @private
+        * @param {Number} digit The numeric value of a basic code point.
+        * @returns {Number} The basic code point whose value (when used for
+        * representing integers) is `digit`, which needs to be in the range
+        * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
+        * used; else, the lowercase form is used. The behavior is undefined
+        * if `flag` is non-zero and `digit` has no uppercase form.
+        */
+       function digitToBasic(digit, flag) {
+               //  0..25 map to ASCII a..z or A..Z
+               // 26..35 map to ASCII 0..9
+               return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
+       }
 
-function onwrite(stream, er) {
-  var state = stream._writableState;
-  var sync = state.sync;
-  var cb = state.writecb;
+       /**
+        * Bias adaptation function as per section 3.4 of RFC 3492.
+        * https://tools.ietf.org/html/rfc3492#section-3.4
+        * @private
+        */
+       function adapt(delta, numPoints, firstTime) {
+               var k = 0;
+               delta = firstTime ? floor(delta / damp) : delta >> 1;
+               delta += floor(delta / numPoints);
+               for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {
+                       delta = floor(delta / baseMinusTMin);
+               }
+               return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
+       }
 
-  onwriteStateUpdate(state);
+       /**
+        * Converts a Punycode string of ASCII-only symbols to a string of Unicode
+        * symbols.
+        * @memberOf punycode
+        * @param {String} input The Punycode string of ASCII-only symbols.
+        * @returns {String} The resulting string of Unicode symbols.
+        */
+       function decode(input) {
+               // Don't use UCS-2
+               var output = [],
+                   inputLength = input.length,
+                   out,
+                   i = 0,
+                   n = initialN,
+                   bias = initialBias,
+                   basic,
+                   j,
+                   index,
+                   oldi,
+                   w,
+                   k,
+                   digit,
+                   t,
+                   /** Cached calculation results */
+                   baseMinusT;
 
-  if (er) onwriteError(stream, state, sync, er, cb);else {
-    // Check if we're actually ready to finish, but don't emit yet
-    var finished = needFinish(state);
+               // Handle the basic code points: let `basic` be the number of input code
+               // points before the last delimiter, or `0` if there is none, then copy
+               // the first basic code points to the output.
 
-    if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
-      clearBuffer(stream, state);
-    }
+               basic = input.lastIndexOf(delimiter);
+               if (basic < 0) {
+                       basic = 0;
+               }
 
-    if (sync) {
-      /*<replacement>*/
-      asyncWrite(afterWrite, stream, state, finished, cb);
-      /*</replacement>*/
-    } else {
-        afterWrite(stream, state, finished, cb);
-      }
-  }
-}
+               for (j = 0; j < basic; ++j) {
+                       // if it's not a basic code point
+                       if (input.charCodeAt(j) >= 0x80) {
+                               error('not-basic');
+                       }
+                       output.push(input.charCodeAt(j));
+               }
 
-function afterWrite(stream, state, finished, cb) {
-  if (!finished) onwriteDrain(stream, state);
-  state.pendingcb--;
-  cb();
-  finishMaybe(stream, state);
-}
+               // Main decoding loop: start just after the last delimiter if any basic code
+               // points were copied; start at the beginning otherwise.
 
-// Must force callback to be called on nextTick, so that we don't
-// emit 'drain' before the write() consumer gets the 'false' return
-// value, and has a chance to attach a 'drain' listener.
-function onwriteDrain(stream, state) {
-  if (state.length === 0 && state.needDrain) {
-    state.needDrain = false;
-    stream.emit('drain');
-  }
-}
+               for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {
 
-// if there's something in the buffer waiting, then process it
-function clearBuffer(stream, state) {
-  state.bufferProcessing = true;
-  var entry = state.bufferedRequest;
+                       // `index` is the index of the next character to be consumed.
+                       // Decode a generalized variable-length integer into `delta`,
+                       // which gets added to `i`. The overflow checking is easier
+                       // if we increase `i` as we go, then subtract off its starting
+                       // value at the end to obtain `delta`.
+                       for (oldi = i, w = 1, k = base; /* no condition */; k += base) {
 
-  if (stream._writev && entry && entry.next) {
-    // Fast case, write everything using _writev()
-    var l = state.bufferedRequestCount;
-    var buffer = new Array(l);
-    var holder = state.corkedRequestsFree;
-    holder.entry = entry;
+                               if (index >= inputLength) {
+                                       error('invalid-input');
+                               }
 
-    var count = 0;
-    while (entry) {
-      buffer[count] = entry;
-      entry = entry.next;
-      count += 1;
-    }
+                               digit = basicToDigit(input.charCodeAt(index++));
 
-    doWrite(stream, state, true, state.length, buffer, '', holder.finish);
+                               if (digit >= base || digit > floor((maxInt - i) / w)) {
+                                       error('overflow');
+                               }
 
-    // doWrite is always async, defer these to save a bit of time
-    // as the hot path ends with doWrite
-    state.pendingcb++;
-    state.lastBufferedRequest = null;
-    state.corkedRequestsFree = holder.next;
-    holder.next = null;
-  } else {
-    // Slow case, write chunks one-by-one
-    while (entry) {
-      var chunk = entry.chunk;
-      var encoding = entry.encoding;
-      var cb = entry.callback;
-      var len = state.objectMode ? 1 : chunk.length;
+                               i += digit * w;
+                               t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
 
-      doWrite(stream, state, false, len, chunk, encoding, cb);
-      entry = entry.next;
-      // if we didn't call the onwrite immediately, then
-      // it means that we need to wait until it does.
-      // also, that means that the chunk and cb are currently
-      // being processed, so move the buffer counter past them.
-      if (state.writing) {
-        break;
-      }
-    }
+                               if (digit < t) {
+                                       break;
+                               }
 
-    if (entry === null) state.lastBufferedRequest = null;
-  }
+                               baseMinusT = base - t;
+                               if (w > floor(maxInt / baseMinusT)) {
+                                       error('overflow');
+                               }
 
-  state.bufferedRequestCount = 0;
-  state.bufferedRequest = entry;
-  state.bufferProcessing = false;
-}
+                               w *= baseMinusT;
 
-Writable.prototype._write = function (chunk, encoding, cb) {
-  cb(new Error('not implemented'));
-};
+                       }
 
-Writable.prototype._writev = null;
+                       out = output.length + 1;
+                       bias = adapt(i - oldi, out, oldi == 0);
 
-Writable.prototype.end = function (chunk, encoding, cb) {
-  var state = this._writableState;
+                       // `i` was supposed to wrap around from `out` to `0`,
+                       // incrementing `n` each time, so we'll fix that now:
+                       if (floor(i / out) > maxInt - n) {
+                               error('overflow');
+                       }
 
-  if (typeof chunk === 'function') {
-    cb = chunk;
-    chunk = null;
-    encoding = null;
-  } else if (typeof encoding === 'function') {
-    cb = encoding;
-    encoding = null;
-  }
+                       n += floor(i / out);
+                       i %= out;
 
-  if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
+                       // Insert `n` at position `i` of the output
+                       output.splice(i++, 0, n);
 
-  // .end() fully uncorks
-  if (state.corked) {
-    state.corked = 1;
-    this.uncork();
-  }
+               }
 
-  // ignore unnecessary end() calls.
-  if (!state.ending && !state.finished) endWritable(this, state, cb);
-};
+               return ucs2encode(output);
+       }
 
-function needFinish(state) {
-  return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;
-}
+       /**
+        * Converts a string of Unicode symbols (e.g. a domain name label) to a
+        * Punycode string of ASCII-only symbols.
+        * @memberOf punycode
+        * @param {String} input The string of Unicode symbols.
+        * @returns {String} The resulting Punycode string of ASCII-only symbols.
+        */
+       function encode(input) {
+               var n,
+                   delta,
+                   handledCPCount,
+                   basicLength,
+                   bias,
+                   j,
+                   m,
+                   q,
+                   k,
+                   t,
+                   currentValue,
+                   output = [],
+                   /** `inputLength` will hold the number of code points in `input`. */
+                   inputLength,
+                   /** Cached calculation results */
+                   handledCPCountPlusOne,
+                   baseMinusT,
+                   qMinusT;
 
-function prefinish(stream, state) {
-  if (!state.prefinished) {
-    state.prefinished = true;
-    stream.emit('prefinish');
-  }
-}
+               // Convert the input in UCS-2 to Unicode
+               input = ucs2decode(input);
 
-function finishMaybe(stream, state) {
-  var need = needFinish(state);
-  if (need) {
-    if (state.pendingcb === 0) {
-      prefinish(stream, state);
-      state.finished = true;
-      stream.emit('finish');
-    } else {
-      prefinish(stream, state);
-    }
-  }
-  return need;
-}
+               // Cache the length
+               inputLength = input.length;
 
-function endWritable(stream, state, cb) {
-  state.ending = true;
-  finishMaybe(stream, state);
-  if (cb) {
-    if (state.finished) processNextTick(cb);else stream.once('finish', cb);
-  }
-  state.ended = true;
-  stream.writable = false;
-}
+               // Initialize the state
+               n = initialN;
+               delta = 0;
+               bias = initialBias;
 
-// It seems a linked list but it is not
-// there will be only 2 of these for each stream
-function CorkedRequest(state) {
-  var _this = this;
+               // Handle the basic code points
+               for (j = 0; j < inputLength; ++j) {
+                       currentValue = input[j];
+                       if (currentValue < 0x80) {
+                               output.push(stringFromCharCode(currentValue));
+                       }
+               }
 
-  this.next = null;
-  this.entry = null;
+               handledCPCount = basicLength = output.length;
 
-  this.finish = function (err) {
-    var entry = _this.entry;
-    _this.entry = null;
-    while (entry) {
-      var cb = entry.callback;
-      state.pendingcb--;
-      cb(err);
-      entry = entry.next;
-    }
-    if (state.corkedRequestsFree) {
-      state.corkedRequestsFree.next = _this;
-    } else {
-      state.corkedRequestsFree = _this;
-    }
-  };
-}
-}).call(this,require('_process'))
-},{"./_stream_duplex":85,"_process":79,"buffer":5,"core-util-is":67,"events":68,"inherits":72,"process-nextick-args":78,"util-deprecate":143}],90:[function(require,module,exports){
-module.exports = require("./lib/_stream_passthrough.js")
+               // `handledCPCount` is the number of code points that have been handled;
+               // `basicLength` is the number of basic code points.
 
-},{"./lib/_stream_passthrough.js":86}],91:[function(require,module,exports){
-var Stream = (function (){
-  try {
-    return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify
-  } catch(_){}
-}());
-exports = module.exports = require('./lib/_stream_readable.js');
-exports.Stream = Stream || exports;
-exports.Readable = exports;
-exports.Writable = require('./lib/_stream_writable.js');
-exports.Duplex = require('./lib/_stream_duplex.js');
-exports.Transform = require('./lib/_stream_transform.js');
-exports.PassThrough = require('./lib/_stream_passthrough.js');
+               // Finish the basic string - if it is not empty - with a delimiter
+               if (basicLength) {
+                       output.push(delimiter);
+               }
 
-},{"./lib/_stream_duplex.js":85,"./lib/_stream_passthrough.js":86,"./lib/_stream_readable.js":87,"./lib/_stream_transform.js":88,"./lib/_stream_writable.js":89}],92:[function(require,module,exports){
-module.exports = require("./lib/_stream_transform.js")
+               // Main encoding loop:
+               while (handledCPCount < inputLength) {
 
-},{"./lib/_stream_transform.js":88}],93:[function(require,module,exports){
-module.exports = require("./lib/_stream_writable.js")
+                       // All non-basic code points < n have been handled already. Find the next
+                       // larger one:
+                       for (m = maxInt, j = 0; j < inputLength; ++j) {
+                               currentValue = input[j];
+                               if (currentValue >= n && currentValue < m) {
+                                       m = currentValue;
+                               }
+                       }
 
-},{"./lib/_stream_writable.js":89}],94:[function(require,module,exports){
-"use strict";
-
-module.exports =
-{
-       // Output
-       ABSOLUTE:      "absolute",
-       PATH_RELATIVE: "pathRelative",
-       ROOT_RELATIVE: "rootRelative",
-       SHORTEST:      "shortest"
-};
-
-},{}],95:[function(require,module,exports){
-"use strict";
-
-var constants = require("./constants");
+                       // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
+                       // but guard against overflow
+                       handledCPCountPlusOne = handledCPCount + 1;
+                       if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
+                               error('overflow');
+                       }
 
+                       delta += (m - n) * handledCPCountPlusOne;
+                       n = m;
 
+                       for (j = 0; j < inputLength; ++j) {
+                               currentValue = input[j];
 
-function formatAuth(urlObj, options)
-{
-       if (urlObj.auth && !options.removeAuth && (urlObj.extra.relation.maximumHost || options.output===constants.ABSOLUTE))
-       {
-               return urlObj.auth + "@";
-       }
-       
-       return "";
-}
+                               if (currentValue < n && ++delta > maxInt) {
+                                       error('overflow');
+                               }
 
+                               if (currentValue == n) {
+                                       // Represent delta as a generalized variable-length integer
+                                       for (q = delta, k = base; /* no condition */; k += base) {
+                                               t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
+                                               if (q < t) {
+                                                       break;
+                                               }
+                                               qMinusT = q - t;
+                                               baseMinusT = base - t;
+                                               output.push(
+                                                       stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
+                                               );
+                                               q = floor(qMinusT / baseMinusT);
+                                       }
 
+                                       output.push(stringFromCharCode(digitToBasic(q, 0)));
+                                       bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
+                                       delta = 0;
+                                       ++handledCPCount;
+                               }
+                       }
 
-function formatHash(urlObj, options)
-{
-       return urlObj.hash ? urlObj.hash : "";
-}
+                       ++delta;
+                       ++n;
 
+               }
+               return output.join('');
+       }
 
+       /**
+        * Converts a Punycode string representing a domain name or an email address
+        * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
+        * it doesn't matter if you call it on a string that has already been
+        * converted to Unicode.
+        * @memberOf punycode
+        * @param {String} input The Punycoded domain name or email address to
+        * convert to Unicode.
+        * @returns {String} The Unicode representation of the given Punycode
+        * string.
+        */
+       function toUnicode(input) {
+               return mapDomain(input, function(string) {
+                       return regexPunycode.test(string)
+                               ? decode(string.slice(4).toLowerCase())
+                               : string;
+               });
+       }
 
-function formatHost(urlObj, options)
-{
-       if (urlObj.host.full && (urlObj.extra.relation.maximumAuth || options.output===constants.ABSOLUTE))
-       {
-               return urlObj.host.full;
+       /**
+        * Converts a Unicode string representing a domain name or an email address to
+        * Punycode. Only the non-ASCII parts of the domain name will be converted,
+        * i.e. it doesn't matter if you call it with a domain that's already in
+        * ASCII.
+        * @memberOf punycode
+        * @param {String} input The domain name or email address to convert, as a
+        * Unicode string.
+        * @returns {String} The Punycode representation of the given domain name or
+        * email address.
+        */
+       function toASCII(input) {
+               return mapDomain(input, function(string) {
+                       return regexNonASCII.test(string)
+                               ? 'xn--' + encode(string)
+                               : string;
+               });
        }
-       
-       return "";
-}
 
+       /*--------------------------------------------------------------------------*/
 
+       /** Define the public API */
+       punycode = {
+               /**
+                * A string representing the current Punycode.js version number.
+                * @memberOf punycode
+                * @type String
+                */
+               'version': '1.4.1',
+               /**
+                * An object of methods to convert from JavaScript's internal character
+                * representation (UCS-2) to Unicode code points, and back.
+                * @see <https://mathiasbynens.be/notes/javascript-encoding>
+                * @memberOf punycode
+                * @type Object
+                */
+               'ucs2': {
+                       'decode': ucs2decode,
+                       'encode': ucs2encode
+               },
+               'decode': decode,
+               'encode': encode,
+               'toASCII': toASCII,
+               'toUnicode': toUnicode
+       };
 
-function formatPath(urlObj, options)
-{
-       var str = "";
-       
-       var absolutePath = urlObj.path.absolute.string;
-       var relativePath = urlObj.path.relative.string;
-       var resource = showResource(urlObj, options);
-       
-       if (urlObj.extra.relation.maximumHost || options.output===constants.ABSOLUTE || options.output===constants.ROOT_RELATIVE)
-       {
-               str = absolutePath;
-       }
-       else if (relativePath.length<=absolutePath.length && options.output===constants.SHORTEST || options.output===constants.PATH_RELATIVE)
-       {
-               str = relativePath;
-               
-               if (str === "")
-               {
-                       var query = showQuery(urlObj,options) && !!getQuery(urlObj,options);
-                       
-                       if (urlObj.extra.relation.maximumPath && !resource)
-                       {
-                               str = "./";
-                       }
-                       else if (urlObj.extra.relation.overridesQuery && !resource && !query)
-                       {
-                               str = "./";
+       /** Expose `punycode` */
+       // Some AMD build optimizers, like r.js, check for specific condition patterns
+       // like the following:
+       if (
+               typeof define == 'function' &&
+               typeof define.amd == 'object' &&
+               define.amd
+       ) {
+               define('punycode', function() {
+                       return punycode;
+               });
+       } else if (freeExports && freeModule) {
+               if (module.exports == freeExports) {
+                       // in Node.js, io.js, or RingoJS v0.8.0+
+                       freeModule.exports = punycode;
+               } else {
+                       // in Narwhal or RingoJS v0.7.0-
+                       for (key in punycode) {
+                               punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);
                        }
                }
+       } else {
+               // in Rhino or a web browser
+               root.punycode = punycode;
        }
-       else
-       {
-               str = absolutePath;
-       }
-       
-       if ( str==="/" && !resource && options.removeRootTrailingSlash && (!urlObj.extra.relation.minimumPort || options.output===constants.ABSOLUTE) )
-       {
-               str = "";
-       }
-       
-       return str;
-}
 
+}(this));
 
+}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
+},{}],92:[function(require,module,exports){
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// 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.
 
-function formatPort(urlObj, options)
-{
-       if (urlObj.port && !urlObj.extra.portIsDefault && urlObj.extra.relation.maximumHost)
-       {
-               return ":" + urlObj.port;
-       }
-       
-       return "";
-}
-
-
+'use strict';
 
-function formatQuery(urlObj, options)
-{
-       return showQuery(urlObj,options) ? getQuery(urlObj, options) : "";
+// If obj.hasOwnProperty has been overridden, then calling
+// obj.hasOwnProperty(prop) will break.
+// See: https://github.com/joyent/node/issues/1707
+function hasOwnProperty(obj, prop) {
+  return Object.prototype.hasOwnProperty.call(obj, prop);
 }
 
+module.exports = function(qs, sep, eq, options) {
+  sep = sep || '&';
+  eq = eq || '=';
+  var obj = {};
 
+  if (typeof qs !== 'string' || qs.length === 0) {
+    return obj;
+  }
 
-function formatResource(urlObj, options)
-{
-       return showResource(urlObj,options) ? urlObj.resource : "";
-}
+  var regexp = /\+/g;
+  qs = qs.split(sep);
 
+  var maxKeys = 1000;
+  if (options && typeof options.maxKeys === 'number') {
+    maxKeys = options.maxKeys;
+  }
 
+  var len = qs.length;
+  // maxKeys <= 0 means that we should not limit keys count
+  if (maxKeys > 0 && len > maxKeys) {
+    len = maxKeys;
+  }
 
-function formatScheme(urlObj, options)
-{
-       var str = "";
-       
-       if (urlObj.extra.relation.maximumHost || options.output===constants.ABSOLUTE)
-       {
-               if (!urlObj.extra.relation.minimumScheme || !options.schemeRelative || options.output===constants.ABSOLUTE)
-               {
-                       str += urlObj.scheme + "://";
-               }
-               else
-               {
-                       str += "//";
-               }
-       }
-       
-       return str;
-}
+  for (var i = 0; i < len; ++i) {
+    var x = qs[i].replace(regexp, '%20'),
+        idx = x.indexOf(eq),
+        kstr, vstr, k, v;
 
+    if (idx >= 0) {
+      kstr = x.substr(0, idx);
+      vstr = x.substr(idx + 1);
+    } else {
+      kstr = x;
+      vstr = '';
+    }
 
+    k = decodeURIComponent(kstr);
+    v = decodeURIComponent(vstr);
 
-function formatUrl(urlObj, options)
-{
-       var url = "";
-       
-       url += formatScheme(urlObj, options);
-       url += formatAuth(urlObj, options);
-       url += formatHost(urlObj, options);
-       url += formatPort(urlObj, options);
-       url += formatPath(urlObj, options);
-       url += formatResource(urlObj, options);
-       url += formatQuery(urlObj, options);
-       url += formatHash(urlObj, options);
-       
-       return url;
-}
+    if (!hasOwnProperty(obj, k)) {
+      obj[k] = v;
+    } else if (isArray(obj[k])) {
+      obj[k].push(v);
+    } else {
+      obj[k] = [obj[k], v];
+    }
+  }
 
+  return obj;
+};
 
+var isArray = Array.isArray || function (xs) {
+  return Object.prototype.toString.call(xs) === '[object Array]';
+};
 
-function getQuery(urlObj, options)
-{
-       var stripQuery = options.removeEmptyQueries && urlObj.extra.relation.minimumPort;
-       
-       return urlObj.query.string[ stripQuery ? "stripped" : "full" ];
-}
+},{}],93:[function(require,module,exports){
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// 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.
 
+'use strict';
 
+var stringifyPrimitive = function(v) {
+  switch (typeof v) {
+    case 'string':
+      return v;
 
-function showQuery(urlObj, options)
-{
-       return !urlObj.extra.relation.minimumQuery || options.output===constants.ABSOLUTE || options.output===constants.ROOT_RELATIVE;
-}
+    case 'boolean':
+      return v ? 'true' : 'false';
 
+    case 'number':
+      return isFinite(v) ? v : '';
 
+    default:
+      return '';
+  }
+};
 
-function showResource(urlObj, options)
-{
-       var removeIndex = options.removeDirectoryIndexes && urlObj.extra.resourceIsIndex;
-       var removeMatchingResource = urlObj.extra.relation.minimumResource && options.output!==constants.ABSOLUTE && options.output!==constants.ROOT_RELATIVE;
-       
-       return !!urlObj.resource && !removeMatchingResource && !removeIndex;
-}
+module.exports = function(obj, sep, eq, name) {
+  sep = sep || '&';
+  eq = eq || '=';
+  if (obj === null) {
+    obj = undefined;
+  }
 
+  if (typeof obj === 'object') {
+    return map(objectKeys(obj), function(k) {
+      var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;
+      if (isArray(obj[k])) {
+        return map(obj[k], function(v) {
+          return ks + encodeURIComponent(stringifyPrimitive(v));
+        }).join(sep);
+      } else {
+        return ks + encodeURIComponent(stringifyPrimitive(obj[k]));
+      }
+    }).join(sep);
 
+  }
 
-module.exports = formatUrl;
+  if (!name) return '';
+  return encodeURIComponent(stringifyPrimitive(name)) + eq +
+         encodeURIComponent(stringifyPrimitive(obj));
+};
 
-},{"./constants":94}],96:[function(require,module,exports){
-"use strict";
+var isArray = Array.isArray || function (xs) {
+  return Object.prototype.toString.call(xs) === '[object Array]';
+};
 
-var constants  = require("./constants");
-var formatUrl  = require("./format");
-var getOptions = require("./options");
-var objUtils   = require("./util/object");
-var parseUrl   = require("./parse");
-var relateUrl  = require("./relate");
+function map (xs, f) {
+  if (xs.map) return xs.map(f);
+  var res = [];
+  for (var i = 0; i < xs.length; i++) {
+    res.push(f(xs[i], i));
+  }
+  return res;
+}
 
+var objectKeys = Object.keys || function (obj) {
+  var res = [];
+  for (var key in obj) {
+    if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);
+  }
+  return res;
+};
 
+},{}],94:[function(require,module,exports){
+'use strict';
 
-function RelateUrl(from, options)
-{
-       this.options = getOptions(options,
-       {
-               defaultPorts: {ftp:21, http:80, https:443},
-               directoryIndexes: ["index.html"],
-               ignore_www: false,
-               output: RelateUrl.SHORTEST,
-               rejectedSchemes: ["data","javascript","mailto"],
-               removeAuth: false,
-               removeDirectoryIndexes: true,
-               removeEmptyQueries: false,
-               removeRootTrailingSlash: true,
-               schemeRelative: true,
-               site: undefined,
-               slashesDenoteHost: true
-       });
-       
-       this.from = parseUrl.from(from, this.options, null);
-}
+exports.decode = exports.parse = require('./decode');
+exports.encode = exports.stringify = require('./encode');
 
+},{"./decode":92,"./encode":93}],95:[function(require,module,exports){
+module.exports = require("./lib/_stream_duplex.js")
 
+},{"./lib/_stream_duplex.js":96}],96:[function(require,module,exports){
+// a duplex stream is just a stream that is both readable and writable.
+// Since JS doesn't have multiple prototypal inheritance, this class
+// prototypally inherits from Readable, and then parasitically from
+// Writable.
 
-/*
-       Usage: instance=new RelateUrl(); instance.relate();
-*/
-RelateUrl.prototype.relate = function(from, to, options)
-{
-       // relate(to,options)
-       if ( objUtils.isPlainObject(to) )
-       {
-               options = to;
-               to = from;
-               from = null;
-       }
-       // relate(to)
-       else if (!to)
-       {
-               to = from;
-               from = null;
-       }
-       
-       options = getOptions(options, this.options);
-       from = from || options.site;
-       from = parseUrl.from(from, options, this.from);
-       
-       if (!from || !from.href)
-       {
-               throw new Error("from value not defined.");
-       }
-       else if (from.extra.hrefInfo.minimumPathOnly)
-       {
-               throw new Error("from value supplied is not absolute: "+from.href);
-       }
-       
-       to = parseUrl.to(to, options);
-       
-       if (to.valid===false) return to.href;
-       
-       to = relateUrl(from, to, options);
-       to = formatUrl(to, options);
-       
-       return to;
-}
+'use strict';
 
+/*<replacement>*/
 
+var objectKeys = Object.keys || function (obj) {
+  var keys = [];
+  for (var key in obj) {
+    keys.push(key);
+  }return keys;
+};
+/*</replacement>*/
 
-/*
-       Usage: RelateUrl.relate();
-*/
-RelateUrl.relate = function(from, to, options)
-{
-       return new RelateUrl().relate(from, to, options);
-}
+module.exports = Duplex;
 
+/*<replacement>*/
+var processNextTick = require('process-nextick-args');
+/*</replacement>*/
 
+/*<replacement>*/
+var util = require('core-util-is');
+util.inherits = require('inherits');
+/*</replacement>*/
 
-// Make constants accessible from API
-objUtils.shallowMerge(RelateUrl, constants);
+var Readable = require('./_stream_readable');
+var Writable = require('./_stream_writable');
 
+util.inherits(Duplex, Readable);
 
+var keys = objectKeys(Writable.prototype);
+for (var v = 0; v < keys.length; v++) {
+  var method = keys[v];
+  if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
+}
 
-module.exports = RelateUrl;
+function Duplex(options) {
+  if (!(this instanceof Duplex)) return new Duplex(options);
 
-},{"./constants":94,"./format":95,"./options":97,"./parse":100,"./relate":107,"./util/object":109}],97:[function(require,module,exports){
-"use strict";
+  Readable.call(this, options);
+  Writable.call(this, options);
 
-var objUtils = require("./util/object");
+  if (options && options.readable === false) this.readable = false;
 
+  if (options && options.writable === false) this.writable = false;
 
+  this.allowHalfOpen = true;
+  if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
 
-function getOptions(options, defaults)
-{
-       if ( objUtils.isPlainObject(options) )
-       {
-               var newOptions = {};
-               
-               for (var i in defaults)
-               {
-                       if ( defaults.hasOwnProperty(i) )
-                       {
-                               if (options[i] !== undefined)
-                               {
-                                       newOptions[i] = mergeOption(options[i], defaults[i]);
-                               }
-                               else
-                               {
-                                       newOptions[i] = defaults[i];
-                               }
-                       }
-               }
-               
-               return newOptions;
-       }
-       else
-       {
-               return defaults;
-       }
+  this.once('end', onend);
 }
 
+// the no-half-open enforcer
+function onend() {
+  // if we allow half-open state, or if the writable side ended,
+  // then we're ok.
+  if (this.allowHalfOpen || this._writableState.ended) return;
 
-
-function mergeOption(newValues, defaultValues)
-{
-       if (defaultValues instanceof Object && newValues instanceof Object)
-       {
-               if (defaultValues instanceof Array && newValues instanceof Array)
-               {
-                       return defaultValues.concat(newValues);
-               }
-               else
-               {
-                       return objUtils.shallowMerge(newValues, defaultValues);
-               }
-       }
-       
-       return newValues;
+  // no more data can be written.
+  // But allow more writes to happen in this tick.
+  processNextTick(onEndNT, this);
 }
 
+function onEndNT(self) {
+  self.end();
+}
 
+function forEach(xs, f) {
+  for (var i = 0, l = xs.length; i < l; i++) {
+    f(xs[i], i);
+  }
+}
+},{"./_stream_readable":98,"./_stream_writable":100,"core-util-is":78,"inherits":83,"process-nextick-args":89}],97:[function(require,module,exports){
+// a passthrough stream.
+// basically just the most minimal sort of Transform stream.
+// Every written chunk gets output as-is.
 
-module.exports = getOptions;
-
-},{"./util/object":109}],98:[function(require,module,exports){
-"use strict";
+'use strict';
 
-function parseHost(urlObj, options)
-{
-       // TWEAK :: condition only for speed optimization
-       if (options.ignore_www)
-       {
-               var host = urlObj.host.full;
-               
-               if (host)
-               {
-                       var stripped = host;
-                       
-                       if (host.indexOf("www.") === 0)
-                       {
-                               stripped = host.substr(4);
-                       }
-                       
-                       urlObj.host.stripped = stripped;
-               }
-       }
-}
+module.exports = PassThrough;
 
+var Transform = require('./_stream_transform');
 
+/*<replacement>*/
+var util = require('core-util-is');
+util.inherits = require('inherits');
+/*</replacement>*/
 
-module.exports = parseHost;
+util.inherits(PassThrough, Transform);
 
-},{}],99:[function(require,module,exports){
-"use strict";
+function PassThrough(options) {
+  if (!(this instanceof PassThrough)) return new PassThrough(options);
 
-function hrefInfo(urlObj)
-{
-       var minimumPathOnly     = (!urlObj.scheme && !urlObj.auth && !urlObj.host.full && !urlObj.port);
-       var minimumResourceOnly = (minimumPathOnly && !urlObj.path.absolute.string);
-       var minimumQueryOnly    = (minimumResourceOnly && !urlObj.resource);
-       var minimumHashOnly     = (minimumQueryOnly && !urlObj.query.string.full.length);
-       var empty               = (minimumHashOnly && !urlObj.hash);
-       
-       urlObj.extra.hrefInfo.minimumPathOnly     = minimumPathOnly;
-       urlObj.extra.hrefInfo.minimumResourceOnly = minimumResourceOnly;
-       urlObj.extra.hrefInfo.minimumQueryOnly    = minimumQueryOnly;
-       urlObj.extra.hrefInfo.minimumHashOnly     = minimumHashOnly;
-       urlObj.extra.hrefInfo.empty = empty;
+  Transform.call(this, options);
 }
 
+PassThrough.prototype._transform = function (chunk, encoding, cb) {
+  cb(null, chunk);
+};
+},{"./_stream_transform":99,"core-util-is":78,"inherits":83}],98:[function(require,module,exports){
+(function (process){
+'use strict';
 
+module.exports = Readable;
 
-module.exports = hrefInfo;
+/*<replacement>*/
+var processNextTick = require('process-nextick-args');
+/*</replacement>*/
 
-},{}],100:[function(require,module,exports){
-"use strict";
+/*<replacement>*/
+var isArray = require('isarray');
+/*</replacement>*/
 
-var hrefInfo   = require("./hrefInfo");
-var parseHost  = require("./host");
-var parsePath  = require("./path");
-var parsePort  = require("./port");
-var parseQuery = require("./query");
-var parseUrlString = require("./urlstring");
-var pathUtils      = require("../util/path");
+/*<replacement>*/
+var Buffer = require('buffer').Buffer;
+/*</replacement>*/
 
+Readable.ReadableState = ReadableState;
 
+var EE = require('events');
 
-function parseFromUrl(url, options, fallback)
-{
-       if (url)
-       {
-               var urlObj = parseUrl(url, options);
-               
-               // Because the following occurs in the relate stage for "to" URLs,
-               // such had to be mostly duplicated here
-               
-               var pathArray = pathUtils.resolveDotSegments(urlObj.path.absolute.array);
-               
-               urlObj.path.absolute.array  = pathArray;
-               urlObj.path.absolute.string = "/" + pathUtils.join(pathArray);
-               
-               return urlObj;
-       }
-       else
-       {
-               return fallback;
-       }
-}
+/*<replacement>*/
+var EElistenerCount = function (emitter, type) {
+  return emitter.listeners(type).length;
+};
+/*</replacement>*/
 
+/*<replacement>*/
+var Stream;
+(function () {
+  try {
+    Stream = require('st' + 'ream');
+  } catch (_) {} finally {
+    if (!Stream) Stream = require('events').EventEmitter;
+  }
+})();
+/*</replacement>*/
 
+var Buffer = require('buffer').Buffer;
 
-function parseUrl(url, options)
-{
-       var urlObj = parseUrlString(url, options);
-       
-       if (urlObj.valid===false) return urlObj;
-       
-       parseHost(urlObj, options);
-       parsePort(urlObj, options);
-       parsePath(urlObj, options);
-       parseQuery(urlObj, options);
-       hrefInfo(urlObj);
-       
-       return urlObj;
+/*<replacement>*/
+var util = require('core-util-is');
+util.inherits = require('inherits');
+/*</replacement>*/
+
+/*<replacement>*/
+var debugUtil = require('util');
+var debug = undefined;
+if (debugUtil && debugUtil.debuglog) {
+  debug = debugUtil.debuglog('stream');
+} else {
+  debug = function () {};
 }
+/*</replacement>*/
 
+var StringDecoder;
 
+util.inherits(Readable, Stream);
 
-module.exports =
-{
-       from: parseFromUrl,
-       to:   parseUrl
-};
+var Duplex;
+function ReadableState(options, stream) {
+  Duplex = Duplex || require('./_stream_duplex');
 
-},{"../util/path":110,"./host":98,"./hrefInfo":99,"./path":101,"./port":102,"./query":103,"./urlstring":104}],101:[function(require,module,exports){
-"use strict";
+  options = options || {};
 
-function isDirectoryIndex(resource, options)
-{
-       var verdict = false;
-       
-       options.directoryIndexes.every( function(index)
-       {
-               if (index === resource)
-               {
-                       verdict = true;
-                       return false;
-               }
-               
-               return true;
-       });
-       
-       return verdict;
-}
+  // object stream flag. Used to make read(n) ignore n and to
+  // make all the buffer merging and length checks go away
+  this.objectMode = !!options.objectMode;
 
+  if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
 
+  // the point at which it stops calling _read() to fill the buffer
+  // Note: 0 is a valid value, means "don't call _read preemptively ever"
+  var hwm = options.highWaterMark;
+  var defaultHwm = this.objectMode ? 16 : 16 * 1024;
+  this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
 
-function parsePath(urlObj, options)
-{
-       var path = urlObj.path.absolute.string;
-       
-       if (path)
-       {
-               var lastSlash = path.lastIndexOf("/");
-               
-               if (lastSlash > -1)
-               {
-                       if (++lastSlash < path.length)
-                       {
-                               var resource = path.substr(lastSlash);
-                               
-                               if (resource!=="." && resource!=="..")
-                               {
-                                       urlObj.resource = resource;
-                                       path = path.substr(0, lastSlash);
-                               }
-                               else
-                               {
-                                       path += "/";
-                               }
-                       }
-                       
-                       urlObj.path.absolute.string = path;
-                       urlObj.path.absolute.array = splitPath(path);
-               }
-               else if (path==="." || path==="..")
-               {
-                       // "..?var", "..#anchor", etc ... not "..index.html"
-                       path += "/";
-                       
-                       urlObj.path.absolute.string = path;
-                       urlObj.path.absolute.array = splitPath(path);
-               }
-               else
-               {
-                       // Resource-only
-                       urlObj.resource = path;
-                       urlObj.path.absolute.string = null;
-               }
-               
-               urlObj.extra.resourceIsIndex = isDirectoryIndex(urlObj.resource, options);
-       }
-       // Else: query/hash-only or empty
-}
+  // cast to ints.
+  this.highWaterMark = ~ ~this.highWaterMark;
 
+  this.buffer = [];
+  this.length = 0;
+  this.pipes = null;
+  this.pipesCount = 0;
+  this.flowing = null;
+  this.ended = false;
+  this.endEmitted = false;
+  this.reading = false;
 
+  // a flag to be able to tell if the onwrite cb is called immediately,
+  // or on a later tick.  We set this to true at first, because any
+  // actions that shouldn't happen until "later" should generally also
+  // not happen before the first write call.
+  this.sync = true;
 
-function splitPath(path)
-{
-       // TWEAK :: condition only for speed optimization
-       if (path !== "/")
-       {
-               var cleaned = [];
-               
-               path.split("/").forEach( function(dir)
-               {
-                       // Cleanup -- splitting "/dir/" becomes ["","dir",""]
-                       if (dir !== "")
-                       {
-                               cleaned.push(dir);
-                       }
-               });
-               
-               return cleaned;
-       }
-       else
-       {
-               // Faster to skip the above block and just create an array
-               return [];
-       }
-}
+  // whenever we return null, then we set a flag to say
+  // that we're awaiting a 'readable' event emission.
+  this.needReadable = false;
+  this.emittedReadable = false;
+  this.readableListening = false;
+  this.resumeScheduled = false;
 
+  // Crypto is kind of old and crusty.  Historically, its default string
+  // encoding is 'binary' so we have to make this configurable.
+  // Everything else in the universe uses 'utf8', though.
+  this.defaultEncoding = options.defaultEncoding || 'utf8';
 
+  // when piping, we only care about 'readable' events that happen
+  // after read()ing all the bytes and not getting any pushback.
+  this.ranOut = false;
 
-module.exports = parsePath;
+  // the number of writers that are awaiting a drain event in .pipe()s
+  this.awaitDrain = 0;
 
-},{}],102:[function(require,module,exports){
-"use strict";
+  // if true, a maybeReadMore has been scheduled
+  this.readingMore = false;
 
-function parsePort(urlObj, options)
-{
-       var defaultPort = -1;
-       
-       for (var i in options.defaultPorts)
-       {
-               if ( i===urlObj.scheme && options.defaultPorts.hasOwnProperty(i) )
-               {
-                       defaultPort = options.defaultPorts[i];
-                       break;
-               }
-       }
-       
-       if (defaultPort > -1)
-       {
-               // Force same type as urlObj.port
-               defaultPort = defaultPort.toString();
-               
-               if (urlObj.port === null)
-               {
-                       urlObj.port = defaultPort;
-               }
-               
-               urlObj.extra.portIsDefault = (urlObj.port === defaultPort);
-       }
+  this.decoder = null;
+  this.encoding = null;
+  if (options.encoding) {
+    if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
+    this.decoder = new StringDecoder(options.encoding);
+    this.encoding = options.encoding;
+  }
 }
 
+var Duplex;
+function Readable(options) {
+  Duplex = Duplex || require('./_stream_duplex');
 
+  if (!(this instanceof Readable)) return new Readable(options);
 
-module.exports = parsePort;
+  this._readableState = new ReadableState(options, this);
 
-},{}],103:[function(require,module,exports){
-"use strict";
+  // legacy
+  this.readable = true;
 
-function parseQuery(urlObj, options)
-{
-       urlObj.query.string.full = stringify(urlObj.query.object, false);
-       
-       // TWEAK :: condition only for speed optimization
-       if (options.removeEmptyQueries)
-       {
-               urlObj.query.string.stripped = stringify(urlObj.query.object, true);
-       }
+  if (options && typeof options.read === 'function') this._read = options.read;
+
+  Stream.call(this);
 }
 
+// Manually shove something into the read() buffer.
+// This returns true if the highWaterMark has not been hit yet,
+// similar to how Writable.write() returns true if you should
+// write() some more.
+Readable.prototype.push = function (chunk, encoding) {
+  var state = this._readableState;
 
+  if (!state.objectMode && typeof chunk === 'string') {
+    encoding = encoding || state.defaultEncoding;
+    if (encoding !== state.encoding) {
+      chunk = new Buffer(chunk, encoding);
+      encoding = '';
+    }
+  }
 
-function stringify(queryObj, removeEmptyQueries)
-{
-       var count = 0;
-       var str = "";
-       
-       for (var i in queryObj)
-       {
-               if ( i!=="" && queryObj.hasOwnProperty(i) )
-               {
-                       var value = queryObj[i];
-                       
-                       if (value !== "" || !removeEmptyQueries)
-                       {
-                               str += (++count===1) ? "?" : "&";
-                               
-                               i = encodeURIComponent(i);
-                               
-                               if (value !== "")
-                               {
-                                       str += i +"="+ encodeURIComponent(value).replace(/%20/g,"+");
-                               }
-                               else
-                               {
-                                       str += i;
-                               }
-                       }
-               }
-       }
-       
-       return str;
-}
+  return readableAddChunk(this, state, chunk, encoding, false);
+};
 
+// Unshift should *always* be something directly out of read()
+Readable.prototype.unshift = function (chunk) {
+  var state = this._readableState;
+  return readableAddChunk(this, state, chunk, '', true);
+};
 
+Readable.prototype.isPaused = function () {
+  return this._readableState.flowing === false;
+};
 
-module.exports = parseQuery;
+function readableAddChunk(stream, state, chunk, encoding, addToFront) {
+  var er = chunkInvalid(state, chunk);
+  if (er) {
+    stream.emit('error', er);
+  } else if (chunk === null) {
+    state.reading = false;
+    onEofChunk(stream, state);
+  } else if (state.objectMode || chunk && chunk.length > 0) {
+    if (state.ended && !addToFront) {
+      var e = new Error('stream.push() after EOF');
+      stream.emit('error', e);
+    } else if (state.endEmitted && addToFront) {
+      var e = new Error('stream.unshift() after end event');
+      stream.emit('error', e);
+    } else {
+      var skipAdd;
+      if (state.decoder && !addToFront && !encoding) {
+        chunk = state.decoder.write(chunk);
+        skipAdd = !state.objectMode && chunk.length === 0;
+      }
 
-},{}],104:[function(require,module,exports){
-"use strict";
+      if (!addToFront) state.reading = false;
 
-var _parseUrl = require("url").parse;
+      // Don't add to the buffer if we've decoded to an empty string chunk and
+      // we're not in object mode
+      if (!skipAdd) {
+        // if we want the data now, just emit it.
+        if (state.flowing && state.length === 0 && !state.sync) {
+          stream.emit('data', chunk);
+          stream.read(0);
+        } else {
+          // update the buffer info.
+          state.length += state.objectMode ? 1 : chunk.length;
+          if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
 
+          if (state.needReadable) emitReadable(stream);
+        }
+      }
 
+      maybeReadMore(stream, state);
+    }
+  } else if (!addToFront) {
+    state.reading = false;
+  }
 
-/*
-       Customize the URL object that Node generates
-       because:
-       
-       * necessary data for later
-       * urlObj.host is useless
-       * urlObj.hostname is too long
-       * urlObj.path is useless
-       * urlObj.pathname is too long
-       * urlObj.protocol is inaccurate; should be called "scheme"
-       * urlObj.search is mostly useless
-*/
-function clean(urlObj)
-{
-       var scheme = urlObj.protocol;
-       
-       if (scheme)
-       {
-               // Remove ":" suffix
-               if (scheme.indexOf(":") === scheme.length-1)
-               {
-                       scheme = scheme.substr(0, scheme.length-1);
-               }
-       }
-       
-       urlObj.host =
-       {
-               // TODO :: unescape(encodeURIComponent(s)) ? ... http://ecmanaut.blogspot.ca/2006/07/encoding-decoding-utf8-in-javascript.html
-               full: urlObj.hostname,
-               stripped: null
-       };
-       
-       urlObj.path =
-       {
-               absolute:
-               {
-                       array: null,
-                       string: urlObj.pathname
-               },
-               relative:
-               {
-                       array: null,
-                       string: null
-               }
-       };
-       
-       urlObj.query =
-       {
-               object: urlObj.query,
-               string:
-               {
-                       full: null,
-                       stripped: null
-               }
-       };
-       
-       urlObj.extra =
-       {
-               hrefInfo:
-               {
-                       minimumPathOnly: null,
-                       minimumResourceOnly: null,
-                       minimumQueryOnly: null,
-                       minimumHashOnly: null,
-                       empty: null,
-                       
-                       separatorOnlyQuery: urlObj.search==="?"
-               },
-               portIsDefault: null,
-               relation:
-               {
-                       maximumScheme: null,
-                       maximumAuth: null,
-                       maximumHost: null,
-                       maximumPort: null,
-                       maximumPath: null,
-                       maximumResource: null,
-                       maximumQuery: null,
-                       maximumHash: null,
-                       
-                       minimumScheme: null,
-                       minimumAuth: null,
-                       minimumHost: null,
-                       minimumPort: null,
-                       minimumPath: null,
-                       minimumResource: null,
-                       minimumQuery: null,
-                       minimumHash: null,
-                       
-                       overridesQuery: null
-               },
-               resourceIsIndex: null,
-               slashes: urlObj.slashes
-       };
-       
-       urlObj.resource = null;
-       urlObj.scheme = scheme;
-       delete urlObj.hostname;
-       delete urlObj.pathname;
-       delete urlObj.protocol;
-       delete urlObj.search;
-       delete urlObj.slashes;
-       
-       return urlObj;
+  return needMoreData(state);
 }
 
-
-
-function validScheme(url, options)
-{
-       var valid = true;
-       
-       options.rejectedSchemes.every( function(rejectedScheme)
-       {
-               valid = !(url.indexOf(rejectedScheme+":") === 0);
-               
-               // Break loop
-               return valid;
-       });
-       
-       return valid;
+// if it's past the high water mark, we can push in some more.
+// Also, if we have no data yet, we can stand some
+// more bytes.  This is to work around cases where hwm=0,
+// such as the repl.  Also, if the push() triggered a
+// readable event, and the user called read(largeNumber) such that
+// needReadable was set, then we ought to push more, so that another
+// 'readable' event will be triggered.
+function needMoreData(state) {
+  return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);
 }
 
+// backwards compatibility.
+Readable.prototype.setEncoding = function (enc) {
+  if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
+  this._readableState.decoder = new StringDecoder(enc);
+  this._readableState.encoding = enc;
+  return this;
+};
 
-
-function parseUrlString(url, options)
-{
-       if ( validScheme(url,options) )
-       {
-               return clean( _parseUrl(url, true, options.slashesDenoteHost) );
-       }
-       else
-       {
-               return {href:url, valid:false};
-       }
+// Don't raise the hwm > 8MB
+var MAX_HWM = 0x800000;
+function computeNewHighWaterMark(n) {
+  if (n >= MAX_HWM) {
+    n = MAX_HWM;
+  } else {
+    // Get the next highest power of 2
+    n--;
+    n |= n >>> 1;
+    n |= n >>> 2;
+    n |= n >>> 4;
+    n |= n >>> 8;
+    n |= n >>> 16;
+    n++;
+  }
+  return n;
 }
 
+function howMuchToRead(n, state) {
+  if (state.length === 0 && state.ended) return 0;
 
+  if (state.objectMode) return n === 0 ? 0 : 1;
 
-module.exports = parseUrlString;
-
-},{"url":141}],105:[function(require,module,exports){
-"use strict";
+  if (n === null || isNaN(n)) {
+    // only flow one buffer at a time
+    if (state.flowing && state.buffer.length) return state.buffer[0].length;else return state.length;
+  }
 
-var findRelation = require("./findRelation");
-var objUtils     = require("../util/object");
-var pathUtils    = require("../util/path");
+  if (n <= 0) return 0;
 
+  // If we're asking for more than the target buffer level,
+  // then raise the water mark.  Bump up to the next highest
+  // power of 2, to prevent increasing it excessively in tiny
+  // amounts.
+  if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
 
+  // don't have that much.  return null, unless we've ended.
+  if (n > state.length) {
+    if (!state.ended) {
+      state.needReadable = true;
+      return 0;
+    } else {
+      return state.length;
+    }
+  }
 
-function absolutize(urlObj, siteUrlObj, options)
-{
-       findRelation.upToPath(urlObj, siteUrlObj, options);
-       
-       // Fill in relative URLs
-       if (urlObj.extra.relation.minimumScheme) urlObj.scheme = siteUrlObj.scheme;
-       if (urlObj.extra.relation.minimumAuth)   urlObj.auth   = siteUrlObj.auth;
-       if (urlObj.extra.relation.minimumHost)   urlObj.host   = objUtils.clone(siteUrlObj.host);
-       if (urlObj.extra.relation.minimumPort)   copyPort(urlObj, siteUrlObj);
-       if (urlObj.extra.relation.minimumScheme) copyPath(urlObj, siteUrlObj);
-       
-       // Check remaining relativeness now that path has been copied and/or resolved
-       findRelation.pathOn(urlObj, siteUrlObj, options);
-       
-       // Fill in relative URLs
-       if (urlObj.extra.relation.minimumResource) copyResource(urlObj, siteUrlObj);
-       if (urlObj.extra.relation.minimumQuery)    urlObj.query = objUtils.clone(siteUrlObj.query);
-       if (urlObj.extra.relation.minimumHash)     urlObj.hash  = siteUrlObj.hash;
+  return n;
 }
 
+// you can override either this method, or the async _read(n) below.
+Readable.prototype.read = function (n) {
+  debug('read', n);
+  var state = this._readableState;
+  var nOrig = n;
 
+  if (typeof n !== 'number' || n > 0) state.emittedReadable = false;
 
-/*
-       Get an absolute path that's relative to site url.
-*/
-function copyPath(urlObj, siteUrlObj)
-{
-       if (urlObj.extra.relation.maximumHost || !urlObj.extra.hrefInfo.minimumResourceOnly)
-       {
-               var pathArray = urlObj.path.absolute.array;
-               var pathString = "/";
-               
-               // If not erroneous URL
-               if (pathArray)
-               {
-                       // If is relative path
-                       if (urlObj.extra.hrefInfo.minimumPathOnly && urlObj.path.absolute.string.indexOf("/")!==0)
-                       {
-                               // Append path to site path
-                               pathArray = siteUrlObj.path.absolute.array.concat(pathArray);
-                       }
-                       
-                       pathArray   = pathUtils.resolveDotSegments(pathArray);
-                       pathString += pathUtils.join(pathArray);
-               }
-               else
-               {
-                       pathArray = [];
-               }
-               
-               urlObj.path.absolute.array  = pathArray;
-               urlObj.path.absolute.string = pathString;
-       }
-       else
-       {
-               // Resource-, query- or hash-only or empty
-               urlObj.path = objUtils.clone(siteUrlObj.path);
-       }
-}
+  // if we're doing read(0) to trigger a readable event, but we
+  // already have a bunch of data in the buffer, then just trigger
+  // the 'readable' event and move on.
+  if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {
+    debug('read: emitReadable', state.length, state.ended);
+    if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);
+    return null;
+  }
 
+  n = howMuchToRead(n, state);
 
+  // if we've ended, and we're now clear, then finish it up.
+  if (n === 0 && state.ended) {
+    if (state.length === 0) endReadable(this);
+    return null;
+  }
 
-function copyPort(urlObj, siteUrlObj)
-{
-       urlObj.port = siteUrlObj.port;
-       
-       urlObj.extra.portIsDefault = siteUrlObj.extra.portIsDefault;
-}
+  // All the actual chunk generation logic needs to be
+  // *below* the call to _read.  The reason is that in certain
+  // synthetic stream cases, such as passthrough streams, _read
+  // may be a completely synchronous operation which may change
+  // the state of the read buffer, providing enough data when
+  // before there was *not* enough.
+  //
+  // So, the steps are:
+  // 1. Figure out what the state of things will be after we do
+  // a read from the buffer.
+  //
+  // 2. If that resulting state will trigger a _read, then call _read.
+  // Note that this may be asynchronous, or synchronous.  Yes, it is
+  // deeply ugly to write APIs this way, but that still doesn't mean
+  // that the Readable class should behave improperly, as streams are
+  // designed to be sync/async agnostic.
+  // Take note if the _read call is sync or async (ie, if the read call
+  // has returned yet), so that we know whether or not it's safe to emit
+  // 'readable' etc.
+  //
+  // 3. Actually pull the requested chunks out of the buffer and return.
 
+  // if we need a readable event, then we need to do some reading.
+  var doRead = state.needReadable;
+  debug('need readable', doRead);
 
+  // if we currently have less than the highWaterMark, then also read some
+  if (state.length === 0 || state.length - n < state.highWaterMark) {
+    doRead = true;
+    debug('length less than watermark', doRead);
+  }
 
-function copyResource(urlObj, siteUrlObj)
-{
-       urlObj.resource = siteUrlObj.resource;
-       
-       urlObj.extra.resourceIsIndex = siteUrlObj.extra.resourceIsIndex;
-}
+  // however, if we've ended, then there's no point, and if we're already
+  // reading, then it's unnecessary.
+  if (state.ended || state.reading) {
+    doRead = false;
+    debug('reading or ended', doRead);
+  }
 
+  if (doRead) {
+    debug('do read');
+    state.reading = true;
+    state.sync = true;
+    // if the length is currently zero, then we *need* a readable event.
+    if (state.length === 0) state.needReadable = true;
+    // call internal read method
+    this._read(state.highWaterMark);
+    state.sync = false;
+  }
 
+  // If _read pushed data synchronously, then `reading` will be false,
+  // and we need to re-evaluate how much data we can return to the user.
+  if (doRead && !state.reading) n = howMuchToRead(nOrig, state);
 
-module.exports = absolutize;
+  var ret;
+  if (n > 0) ret = fromList(n, state);else ret = null;
 
-},{"../util/object":109,"../util/path":110,"./findRelation":106}],106:[function(require,module,exports){
-"use strict";
+  if (ret === null) {
+    state.needReadable = true;
+    n = 0;
+  }
 
-function findRelation_upToPath(urlObj, siteUrlObj, options)
-{
-       // Path- or root-relative URL
-       var pathOnly = urlObj.extra.hrefInfo.minimumPathOnly;
-       
-       // Matching scheme, scheme-relative or path-only
-       var minimumScheme = (urlObj.scheme===siteUrlObj.scheme || !urlObj.scheme);
-       
-       // Matching auth, ignoring auth or path-only
-       var minimumAuth = minimumScheme && (urlObj.auth===siteUrlObj.auth || options.removeAuth || pathOnly);
-       
-       // Matching host or path-only
-       var www = options.ignore_www ? "stripped" : "full";
-       var minimumHost = minimumAuth && (urlObj.host[www]===siteUrlObj.host[www] || pathOnly);
-       
-       // Matching port or path-only
-       var minimumPort = minimumHost && (urlObj.port===siteUrlObj.port || pathOnly);
-       
-       urlObj.extra.relation.minimumScheme = minimumScheme;
-       urlObj.extra.relation.minimumAuth   = minimumAuth;
-       urlObj.extra.relation.minimumHost   = minimumHost;
-       urlObj.extra.relation.minimumPort   = minimumPort;
-       
-       urlObj.extra.relation.maximumScheme = !minimumScheme || minimumScheme && !minimumAuth;
-       urlObj.extra.relation.maximumAuth   = !minimumScheme || minimumScheme && !minimumHost;
-       urlObj.extra.relation.maximumHost   = !minimumScheme || minimumScheme && !minimumPort;
-}
+  state.length -= n;
 
+  // If we have nothing in the buffer, then we want to know
+  // as soon as we *do* get something into the buffer.
+  if (state.length === 0 && !state.ended) state.needReadable = true;
 
+  // If we tried to read() past the EOF, then emit end on the next tick.
+  if (nOrig !== n && state.ended && state.length === 0) endReadable(this);
 
-function findRelation_pathOn(urlObj, siteUrlObj, options)
-{
-       var queryOnly = urlObj.extra.hrefInfo.minimumQueryOnly;
-       var hashOnly  = urlObj.extra.hrefInfo.minimumHashOnly;
-       var empty     = urlObj.extra.hrefInfo.empty;    // not required, but self-documenting
-       
-       // From upToPath()
-       var minimumPort   = urlObj.extra.relation.minimumPort;
-       var minimumScheme = urlObj.extra.relation.minimumScheme;
-       
-       // Matching port and path
-       var minimumPath = minimumPort && urlObj.path.absolute.string===siteUrlObj.path.absolute.string;
-       
-       // Matching resource or query/hash-only or empty
-       var matchingResource = (urlObj.resource===siteUrlObj.resource || !urlObj.resource && siteUrlObj.extra.resourceIsIndex) || (options.removeDirectoryIndexes && urlObj.extra.resourceIsIndex && !siteUrlObj.resource);
-       var minimumResource = minimumPath && (matchingResource || queryOnly || hashOnly || empty);
-       
-       // Matching query or hash-only/empty
-       var query = options.removeEmptyQueries ? "stripped" : "full";
-       var urlQuery = urlObj.query.string[query];
-       var siteUrlQuery = siteUrlObj.query.string[query];
-       var minimumQuery = (minimumResource && !!urlQuery && urlQuery===siteUrlQuery) || ((hashOnly || empty) && !urlObj.extra.hrefInfo.separatorOnlyQuery);
-       
-       var minimumHash = minimumQuery && urlObj.hash===siteUrlObj.hash;
-       
-       urlObj.extra.relation.minimumPath     = minimumPath;
-       urlObj.extra.relation.minimumResource = minimumResource;
-       urlObj.extra.relation.minimumQuery    = minimumQuery;
-       urlObj.extra.relation.minimumHash     = minimumHash;
-       
-       urlObj.extra.relation.maximumPort     = !minimumScheme || minimumScheme && !minimumPath;
-       urlObj.extra.relation.maximumPath     = !minimumScheme || minimumScheme && !minimumResource;
-       urlObj.extra.relation.maximumResource = !minimumScheme || minimumScheme && !minimumQuery;
-       urlObj.extra.relation.maximumQuery    = !minimumScheme || minimumScheme && !minimumHash;
-       urlObj.extra.relation.maximumHash     = !minimumScheme || minimumScheme && !minimumHash;        // there's nothing after hash, so it's the same as maximumQuery
-       
-       // Matching path and/or resource with existing but non-matching site query
-       urlObj.extra.relation.overridesQuery  = minimumPath && urlObj.extra.relation.maximumResource && !minimumQuery && !!siteUrlQuery;
-}
+  if (ret !== null) this.emit('data', ret);
 
+  return ret;
+};
 
+function chunkInvalid(state, chunk) {
+  var er = null;
+  if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
+    er = new TypeError('Invalid non-string/buffer chunk');
+  }
+  return er;
+}
 
-module.exports =
-{
-       pathOn:   findRelation_pathOn,
-       upToPath: findRelation_upToPath
-};
+function onEofChunk(stream, state) {
+  if (state.ended) return;
+  if (state.decoder) {
+    var chunk = state.decoder.end();
+    if (chunk && chunk.length) {
+      state.buffer.push(chunk);
+      state.length += state.objectMode ? 1 : chunk.length;
+    }
+  }
+  state.ended = true;
 
-},{}],107:[function(require,module,exports){
-"use strict";
+  // emit 'readable' now to make sure it gets picked up.
+  emitReadable(stream);
+}
 
-var absolutize = require("./absolutize");
-var relativize = require("./relativize");
+// Don't emit readable right away in sync mode, because this can trigger
+// another read() call => stack overflow.  This way, it might trigger
+// a nextTick recursion warning, but that's not so bad.
+function emitReadable(stream) {
+  var state = stream._readableState;
+  state.needReadable = false;
+  if (!state.emittedReadable) {
+    debug('emitReadable', state.flowing);
+    state.emittedReadable = true;
+    if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
+  }
+}
 
+function emitReadable_(stream) {
+  debug('emit readable');
+  stream.emit('readable');
+  flow(stream);
+}
 
+// at this point, the user has presumably seen the 'readable' event,
+// and called read() to consume some data.  that may have triggered
+// in turn another _read(n) call, in which case reading = true if
+// it's in progress.
+// However, if we're not ended, or reading, and the length < hwm,
+// then go ahead and try to read some more preemptively.
+function maybeReadMore(stream, state) {
+  if (!state.readingMore) {
+    state.readingMore = true;
+    processNextTick(maybeReadMore_, stream, state);
+  }
+}
 
-function relateUrl(siteUrlObj, urlObj, options)
-{
-       absolutize(urlObj, siteUrlObj, options);
-       relativize(urlObj, siteUrlObj, options);
-       
-       return urlObj;
+function maybeReadMore_(stream, state) {
+  var len = state.length;
+  while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
+    debug('maybeReadMore read 0');
+    stream.read(0);
+    if (len === state.length)
+      // didn't get any data, stop spinning.
+      break;else len = state.length;
+  }
+  state.readingMore = false;
 }
 
+// abstract method.  to be overridden in specific implementation classes.
+// call cb(er, data) where data is <= n in length.
+// for virtual (non-string, non-buffer) streams, "length" is somewhat
+// arbitrary, and perhaps not very meaningful.
+Readable.prototype._read = function (n) {
+  this.emit('error', new Error('not implemented'));
+};
 
+Readable.prototype.pipe = function (dest, pipeOpts) {
+  var src = this;
+  var state = this._readableState;
 
-module.exports = relateUrl;
+  switch (state.pipesCount) {
+    case 0:
+      state.pipes = dest;
+      break;
+    case 1:
+      state.pipes = [state.pipes, dest];
+      break;
+    default:
+      state.pipes.push(dest);
+      break;
+  }
+  state.pipesCount += 1;
+  debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
 
-},{"./absolutize":105,"./relativize":108}],108:[function(require,module,exports){
-"use strict";
+  var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
 
-var pathUtils = require("../util/path");
+  var endFn = doEnd ? onend : cleanup;
+  if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
 
+  dest.on('unpipe', onunpipe);
+  function onunpipe(readable) {
+    debug('onunpipe');
+    if (readable === src) {
+      cleanup();
+    }
+  }
 
+  function onend() {
+    debug('onend');
+    dest.end();
+  }
 
-/*
-       Get a path relative to the site path.
-*/
-function relatePath(absolutePath, siteAbsolutePath)
-{
-       var relativePath = [];
-       
-       // At this point, it's related to the host/port
-       var related = true;
-       var parentIndex = -1;
-       
-       // Find parents
-       siteAbsolutePath.forEach( function(siteAbsoluteDir, i)
-       {
-               if (related)
-               {
-                       if (absolutePath[i] !== siteAbsoluteDir)
-                       {
-                               related = false;
-                       }
-                       else
-                       {
-                               parentIndex = i;
-                       }
-               }
-               
-               if (!related)
-               {
-                       // Up one level
-                       relativePath.push("..");
-               }
-       });
-       
-       // Form path
-       absolutePath.forEach( function(dir, i)
-       {
-               if (i > parentIndex)
-               {
-                       relativePath.push(dir);
-               }
-       });
-       
-       return relativePath;
-}
+  // when the dest drains, it reduces the awaitDrain counter
+  // on the source.  This would be more elegant with a .once()
+  // handler in flow(), but adding and removing repeatedly is
+  // too slow.
+  var ondrain = pipeOnDrain(src);
+  dest.on('drain', ondrain);
 
+  var cleanedUp = false;
+  function cleanup() {
+    debug('cleanup');
+    // cleanup event handlers once the pipe is broken
+    dest.removeListener('close', onclose);
+    dest.removeListener('finish', onfinish);
+    dest.removeListener('drain', ondrain);
+    dest.removeListener('error', onerror);
+    dest.removeListener('unpipe', onunpipe);
+    src.removeListener('end', onend);
+    src.removeListener('end', cleanup);
+    src.removeListener('data', ondata);
 
+    cleanedUp = true;
 
-function relativize(urlObj, siteUrlObj, options)
-{
-       if (urlObj.extra.relation.minimumScheme)
-       {
-               var pathArray = relatePath(urlObj.path.absolute.array, siteUrlObj.path.absolute.array);
-               
-               urlObj.path.relative.array  = pathArray;
-               urlObj.path.relative.string = pathUtils.join(pathArray);
-       }
-}
+    // if the reader is waiting for a drain event from this
+    // specific writer, then it would cause it to never start
+    // flowing again.
+    // So, if this is awaiting a drain, then we just call it now.
+    // If we don't know, then assume that we are waiting for one.
+    if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
+  }
 
+  src.on('data', ondata);
+  function ondata(chunk) {
+    debug('ondata');
+    var ret = dest.write(chunk);
+    if (false === ret) {
+      // If the user unpiped during `dest.write()`, it is possible
+      // to get stuck in a permanently paused state if that write
+      // also returned false.
+      if (state.pipesCount === 1 && state.pipes[0] === dest && src.listenerCount('data') === 1 && !cleanedUp) {
+        debug('false write response, pause', src._readableState.awaitDrain);
+        src._readableState.awaitDrain++;
+      }
+      src.pause();
+    }
+  }
 
+  // if the dest has an error, then stop piping into it.
+  // however, don't suppress the throwing behavior for this.
+  function onerror(er) {
+    debug('onerror', er);
+    unpipe();
+    dest.removeListener('error', onerror);
+    if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);
+  }
+  // This is a brutally ugly hack to make sure that our error handler
+  // is attached before any userland ones.  NEVER DO THIS.
+  if (!dest._events || !dest._events.error) dest.on('error', onerror);else if (isArray(dest._events.error)) dest._events.error.unshift(onerror);else dest._events.error = [onerror, dest._events.error];
 
-module.exports = relativize;
+  // Both close and finish should trigger unpipe, but only once.
+  function onclose() {
+    dest.removeListener('finish', onfinish);
+    unpipe();
+  }
+  dest.once('close', onclose);
+  function onfinish() {
+    debug('onfinish');
+    dest.removeListener('close', onclose);
+    unpipe();
+  }
+  dest.once('finish', onfinish);
 
-},{"../util/path":110}],109:[function(require,module,exports){
-"use strict";
+  function unpipe() {
+    debug('unpipe');
+    src.unpipe(dest);
+  }
 
-/*
-       Deep-clone an object.
-*/
-function clone(obj)
-{
-       if (obj instanceof Object)
-       {
-               var clonedObj = (obj instanceof Array) ? [] : {};
-               
-               for (var i in obj)
-               {
-                       if ( obj.hasOwnProperty(i) )
-                       {
-                               clonedObj[i] = clone( obj[i] );
-                       }
-               }
-               
-               return clonedObj;
-       }
-       
-       return obj;
-}
+  // tell the dest that it's being piped to
+  dest.emit('pipe', src);
 
+  // start the flow if it hasn't been started already.
+  if (!state.flowing) {
+    debug('pipe resume');
+    src.resume();
+  }
 
+  return dest;
+};
 
-/*
-       https://github.com/jonschlinkert/is-plain-object
-*/
-function isPlainObject(obj)
-{
-       return !!obj && typeof obj==="object" && obj.constructor===Object;
+function pipeOnDrain(src) {
+  return function () {
+    var state = src._readableState;
+    debug('pipeOnDrain', state.awaitDrain);
+    if (state.awaitDrain) state.awaitDrain--;
+    if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {
+      state.flowing = true;
+      flow(src);
+    }
+  };
 }
 
+Readable.prototype.unpipe = function (dest) {
+  var state = this._readableState;
 
+  // if we're not piping anywhere, then do nothing.
+  if (state.pipesCount === 0) return this;
 
-/*
-       Shallow-merge two objects.
-*/
-function shallowMerge(target, source)
-{
-       if (target instanceof Object && source instanceof Object)
-       {
-               for (var i in source)
-               {
-                       if ( source.hasOwnProperty(i) )
-                       {
-                               target[i] = source[i];
-                       }
-               }
-       }
-       
-       return target;
-}
+  // just one destination.  most common case.
+  if (state.pipesCount === 1) {
+    // passed in one, but it's not the right one.
+    if (dest && dest !== state.pipes) return this;
 
+    if (!dest) dest = state.pipes;
 
+    // got a match.
+    state.pipes = null;
+    state.pipesCount = 0;
+    state.flowing = false;
+    if (dest) dest.emit('unpipe', this);
+    return this;
+  }
 
-module.exports =
-{
-       clone: clone,
-       isPlainObject: isPlainObject,
-       shallowMerge: shallowMerge
-};
+  // slow case. multiple pipe destinations.
 
-},{}],110:[function(require,module,exports){
-"use strict";
+  if (!dest) {
+    // remove all.
+    var dests = state.pipes;
+    var len = state.pipesCount;
+    state.pipes = null;
+    state.pipesCount = 0;
+    state.flowing = false;
 
-function joinPath(pathArray)
-{
-       if (pathArray.length)
-       {
-               return pathArray.join("/") + "/";
-       }
-       else
-       {
-               return "";
-       }
-}
+    for (var _i = 0; _i < len; _i++) {
+      dests[_i].emit('unpipe', this);
+    }return this;
+  }
 
+  // try to find the right one.
+  var i = indexOf(state.pipes, dest);
+  if (i === -1) return this;
 
+  state.pipes.splice(i, 1);
+  state.pipesCount -= 1;
+  if (state.pipesCount === 1) state.pipes = state.pipes[0];
 
-function resolveDotSegments(pathArray)
-{
-       var pathAbsolute = [];
-       
-       pathArray.forEach( function(dir)
-       {
-               if (dir !== "..")
-               {
-                       if (dir !== ".")
-                       {
-                               pathAbsolute.push(dir);
-                       }
-               }
-               else
-               {
-                       // Remove parent
-                       if (pathAbsolute.length)
-                       {
-                               pathAbsolute.splice(pathAbsolute.length-1, 1);
-                       }
-               }
-       });
-       
-       return pathAbsolute;
-}
+  dest.emit('unpipe', this);
 
+  return this;
+};
 
+// set up data events if they are asked for
+// Ensure readable listeners eventually get something
+Readable.prototype.on = function (ev, fn) {
+  var res = Stream.prototype.on.call(this, ev, fn);
 
-module.exports =
-{
-       join: joinPath,
-       resolveDotSegments: resolveDotSegments
+  // If listening to data, and it has not explicitly been paused,
+  // then call resume to start the flow of data on the next tick.
+  if (ev === 'data' && false !== this._readableState.flowing) {
+    this.resume();
+  }
+
+  if (ev === 'readable' && !this._readableState.endEmitted) {
+    var state = this._readableState;
+    if (!state.readableListening) {
+      state.readableListening = true;
+      state.emittedReadable = false;
+      state.needReadable = true;
+      if (!state.reading) {
+        processNextTick(nReadingNextTick, this);
+      } else if (state.length) {
+        emitReadable(this, state);
+      }
+    }
+  }
+
+  return res;
 };
+Readable.prototype.addListener = Readable.prototype.on;
 
-},{}],111:[function(require,module,exports){
-/*
- * Copyright 2009-2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE.txt or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-exports.SourceMapGenerator = require('./source-map/source-map-generator').SourceMapGenerator;
-exports.SourceMapConsumer = require('./source-map/source-map-consumer').SourceMapConsumer;
-exports.SourceNode = require('./source-map/source-node').SourceNode;
+function nReadingNextTick(self) {
+  debug('readable nexttick read 0');
+  self.read(0);
+}
 
-},{"./source-map/source-map-consumer":118,"./source-map/source-map-generator":119,"./source-map/source-node":120}],112:[function(require,module,exports){
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
+// pause() and resume() are remnants of the legacy readable stream API
+// If the user uses them, then switch into old mode.
+Readable.prototype.resume = function () {
+  var state = this._readableState;
+  if (!state.flowing) {
+    debug('resume');
+    state.flowing = true;
+    resume(this, state);
+  }
+  return this;
+};
+
+function resume(stream, state) {
+  if (!state.resumeScheduled) {
+    state.resumeScheduled = true;
+    processNextTick(resume_, stream, state);
+  }
 }
-define(function (require, exports, module) {
 
-  var util = require('./util');
+function resume_(stream, state) {
+  if (!state.reading) {
+    debug('resume read 0');
+    stream.read(0);
+  }
 
-  /**
-   * A data structure which is a combination of an array and a set. Adding a new
-   * member is O(1), testing for membership is O(1), and finding the index of an
-   * element is O(1). Removing elements from the set is not supported. Only
-   * strings are supported for membership.
-   */
-  function ArraySet() {
-    this._array = [];
-    this._set = {};
+  state.resumeScheduled = false;
+  stream.emit('resume');
+  flow(stream);
+  if (state.flowing && !state.reading) stream.read(0);
+}
+
+Readable.prototype.pause = function () {
+  debug('call pause flowing=%j', this._readableState.flowing);
+  if (false !== this._readableState.flowing) {
+    debug('pause');
+    this._readableState.flowing = false;
+    this.emit('pause');
   }
+  return this;
+};
 
-  /**
-   * Static method for creating ArraySet instances from an existing array.
-   */
-  ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {
-    var set = new ArraySet();
-    for (var i = 0, len = aArray.length; i < len; i++) {
-      set.add(aArray[i], aAllowDuplicates);
+function flow(stream) {
+  var state = stream._readableState;
+  debug('flow', state.flowing);
+  if (state.flowing) {
+    do {
+      var chunk = stream.read();
+    } while (null !== chunk && state.flowing);
+  }
+}
+
+// wrap an old-style stream as the async data source.
+// This is *not* part of the readable stream interface.
+// It is an ugly unfortunate mess of history.
+Readable.prototype.wrap = function (stream) {
+  var state = this._readableState;
+  var paused = false;
+
+  var self = this;
+  stream.on('end', function () {
+    debug('wrapped end');
+    if (state.decoder && !state.ended) {
+      var chunk = state.decoder.end();
+      if (chunk && chunk.length) self.push(chunk);
     }
-    return set;
-  };
 
-  /**
-   * Return how many unique items are in this ArraySet. If duplicates have been
-   * added, than those do not count towards the size.
-   *
-   * @returns Number
-   */
-  ArraySet.prototype.size = function ArraySet_size() {
-    return Object.getOwnPropertyNames(this._set).length;
-  };
+    self.push(null);
+  });
 
-  /**
-   * Add the given string to this set.
-   *
-   * @param String aStr
-   */
-  ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {
-    var isDuplicate = this.has(aStr);
-    var idx = this._array.length;
-    if (!isDuplicate || aAllowDuplicates) {
-      this._array.push(aStr);
+  stream.on('data', function (chunk) {
+    debug('wrapped data');
+    if (state.decoder) chunk = state.decoder.write(chunk);
+
+    // don't skip over falsy values in objectMode
+    if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
+
+    var ret = self.push(chunk);
+    if (!ret) {
+      paused = true;
+      stream.pause();
     }
-    if (!isDuplicate) {
-      this._set[util.toSetString(aStr)] = idx;
+  });
+
+  // proxy all the other methods.
+  // important when wrapping filters and duplexes.
+  for (var i in stream) {
+    if (this[i] === undefined && typeof stream[i] === 'function') {
+      this[i] = function (method) {
+        return function () {
+          return stream[method].apply(stream, arguments);
+        };
+      }(i);
     }
-  };
+  }
 
-  /**
-   * Is the given string a member of this set?
-   *
-   * @param String aStr
-   */
-  ArraySet.prototype.has = function ArraySet_has(aStr) {
-    return Object.prototype.hasOwnProperty.call(this._set,
-                                                util.toSetString(aStr));
-  };
+  // proxy certain important events.
+  var events = ['error', 'close', 'destroy', 'pause', 'resume'];
+  forEach(events, function (ev) {
+    stream.on(ev, self.emit.bind(self, ev));
+  });
 
-  /**
-   * What is the index of the given string in the array?
-   *
-   * @param String aStr
-   */
-  ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {
-    if (this.has(aStr)) {
-      return this._set[util.toSetString(aStr)];
+  // when we try to consume some more bytes, simply unpause the
+  // underlying stream.
+  self._read = function (n) {
+    debug('wrapped _read', n);
+    if (paused) {
+      paused = false;
+      stream.resume();
     }
-    throw new Error('"' + aStr + '" is not in the set.');
   };
 
-  /**
-   * What is the element at the given index?
-   *
-   * @param Number aIdx
-   */
-  ArraySet.prototype.at = function ArraySet_at(aIdx) {
-    if (aIdx >= 0 && aIdx < this._array.length) {
-      return this._array[aIdx];
-    }
-    throw new Error('No element indexed by ' + aIdx);
-  };
+  return self;
+};
 
-  /**
-   * Returns the array representation of this set (which has the proper indices
-   * indicated by indexOf). Note that this is a copy of the internal array used
-   * for storing the members so that no one can mess with internal state.
-   */
-  ArraySet.prototype.toArray = function ArraySet_toArray() {
-    return this._array.slice();
-  };
+// exposed for testing purposes only.
+Readable._fromList = fromList;
 
-  exports.ArraySet = ArraySet;
+// Pluck off n bytes from an array of buffers.
+// Length is the combined lengths of all the buffers in the list.
+function fromList(n, state) {
+  var list = state.buffer;
+  var length = state.length;
+  var stringMode = !!state.decoder;
+  var objectMode = !!state.objectMode;
+  var ret;
 
-});
+  // nothing in the list, definitely empty.
+  if (list.length === 0) return null;
 
-},{"./util":121,"amdefine":1}],113:[function(require,module,exports){
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- *
- * Based on the Base 64 VLQ implementation in Closure Compiler:
- * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java
- *
- * Copyright 2011 The Closure Compiler Authors. 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 Google Inc. 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.
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
+  if (length === 0) ret = null;else if (objectMode) ret = list.shift();else if (!n || n >= length) {
+    // read it all, truncate the array.
+    if (stringMode) ret = list.join('');else if (list.length === 1) ret = list[0];else ret = Buffer.concat(list, length);
+    list.length = 0;
+  } else {
+    // read just some of it.
+    if (n < list[0].length) {
+      // just take a part of the first list item.
+      // slice is the same for buffers and strings.
+      var buf = list[0];
+      ret = buf.slice(0, n);
+      list[0] = buf.slice(n);
+    } else if (n === list[0].length) {
+      // first list is a perfect match
+      ret = list.shift();
+    } else {
+      // complex case.
+      // we have enough to cover it, but it spans past the first buffer.
+      if (stringMode) ret = '';else ret = new Buffer(n);
 
-  var base64 = require('./base64');
+      var c = 0;
+      for (var i = 0, l = list.length; i < l && c < n; i++) {
+        var buf = list[0];
+        var cpy = Math.min(n - c, buf.length);
 
-  // A single base 64 digit can contain 6 bits of data. For the base 64 variable
-  // length quantities we use in the source map spec, the first bit is the sign,
-  // the next four bits are the actual value, and the 6th bit is the
-  // continuation bit. The continuation bit tells us whether there are more
-  // digits in this value following this digit.
-  //
-  //   Continuation
-  //   |    Sign
-  //   |    |
-  //   V    V
-  //   101011
+        if (stringMode) ret += buf.slice(0, cpy);else buf.copy(ret, c, 0, cpy);
 
-  var VLQ_BASE_SHIFT = 5;
+        if (cpy < buf.length) list[0] = buf.slice(cpy);else list.shift();
 
-  // binary: 100000
-  var VLQ_BASE = 1 << VLQ_BASE_SHIFT;
+        c += cpy;
+      }
+    }
+  }
 
-  // binary: 011111
-  var VLQ_BASE_MASK = VLQ_BASE - 1;
+  return ret;
+}
 
-  // binary: 100000
-  var VLQ_CONTINUATION_BIT = VLQ_BASE;
+function endReadable(stream) {
+  var state = stream._readableState;
 
-  /**
-   * Converts from a two-complement value to a value where the sign bit is
-   * placed in the least significant bit.  For example, as decimals:
-   *   1 becomes 2 (10 binary), -1 becomes 3 (11 binary)
-   *   2 becomes 4 (100 binary), -2 becomes 5 (101 binary)
-   */
-  function toVLQSigned(aValue) {
-    return aValue < 0
-      ? ((-aValue) << 1) + 1
-      : (aValue << 1) + 0;
-  }
+  // If we get here before consuming all the bytes, then that is a
+  // bug in node.  Should never happen.
+  if (state.length > 0) throw new Error('endReadable called on non-empty stream');
 
-  /**
-   * Converts to a two-complement value from a value where the sign bit is
-   * placed in the least significant bit.  For example, as decimals:
-   *   2 (10 binary) becomes 1, 3 (11 binary) becomes -1
-   *   4 (100 binary) becomes 2, 5 (101 binary) becomes -2
-   */
-  function fromVLQSigned(aValue) {
-    var isNegative = (aValue & 1) === 1;
-    var shifted = aValue >> 1;
-    return isNegative
-      ? -shifted
-      : shifted;
+  if (!state.endEmitted) {
+    state.ended = true;
+    processNextTick(endReadableNT, state, stream);
   }
+}
 
-  /**
-   * Returns the base 64 VLQ encoded value.
-   */
-  exports.encode = function base64VLQ_encode(aValue) {
-    var encoded = "";
-    var digit;
+function endReadableNT(state, stream) {
+  // Check that we didn't get one last unshift.
+  if (!state.endEmitted && state.length === 0) {
+    state.endEmitted = true;
+    stream.readable = false;
+    stream.emit('end');
+  }
+}
 
-    var vlq = toVLQSigned(aValue);
+function forEach(xs, f) {
+  for (var i = 0, l = xs.length; i < l; i++) {
+    f(xs[i], i);
+  }
+}
 
-    do {
-      digit = vlq & VLQ_BASE_MASK;
-      vlq >>>= VLQ_BASE_SHIFT;
-      if (vlq > 0) {
-        // There are still more digits in this value, so we must make sure the
-        // continuation bit is marked.
-        digit |= VLQ_CONTINUATION_BIT;
-      }
-      encoded += base64.encode(digit);
-    } while (vlq > 0);
+function indexOf(xs, x) {
+  for (var i = 0, l = xs.length; i < l; i++) {
+    if (xs[i] === x) return i;
+  }
+  return -1;
+}
+}).call(this,require('_process'))
+},{"./_stream_duplex":96,"_process":90,"buffer":5,"core-util-is":78,"events":79,"inherits":83,"isarray":85,"process-nextick-args":89,"string_decoder/":127,"util":3}],99:[function(require,module,exports){
+// a transform stream is a readable/writable stream where you do
+// something with the data.  Sometimes it's called a "filter",
+// but that's not a great name for it, since that implies a thing where
+// some bits pass through, and others are simply ignored.  (That would
+// be a valid example of a transform, of course.)
+//
+// While the output is causally related to the input, it's not a
+// necessarily symmetric or synchronous transformation.  For example,
+// a zlib stream might take multiple plain-text writes(), and then
+// emit a single compressed chunk some time in the future.
+//
+// Here's how this works:
+//
+// The Transform stream has all the aspects of the readable and writable
+// stream classes.  When you write(chunk), that calls _write(chunk,cb)
+// internally, and returns false if there's a lot of pending writes
+// buffered up.  When you call read(), that calls _read(n) until
+// there's enough pending readable data buffered up.
+//
+// In a transform stream, the written data is placed in a buffer.  When
+// _read(n) is called, it transforms the queued up data, calling the
+// buffered _write cb's as it consumes chunks.  If consuming a single
+// written chunk would result in multiple output chunks, then the first
+// outputted bit calls the readcb, and subsequent chunks just go into
+// the read buffer, and will cause it to emit 'readable' if necessary.
+//
+// This way, back-pressure is actually determined by the reading side,
+// since _read has to be called to start processing a new chunk.  However,
+// a pathological inflate type of transform can cause excessive buffering
+// here.  For example, imagine a stream where every byte of input is
+// interpreted as an integer from 0-255, and then results in that many
+// bytes of output.  Writing the 4 bytes {ff,ff,ff,ff} would result in
+// 1kb of data being output.  In this case, you could write a very small
+// amount of input, and end up with a very large amount of output.  In
+// such a pathological inflating mechanism, there'd be no way to tell
+// the system to stop doing the transform.  A single 4MB write could
+// cause the system to run out of memory.
+//
+// However, even in such a pathological case, only a single written chunk
+// would be consumed, and then the rest would wait (un-transformed) until
+// the results of the previous transformed chunk were consumed.
 
-    return encoded;
-  };
+'use strict';
 
-  /**
-   * Decodes the next base 64 VLQ value from the given string and returns the
-   * value and the rest of the string via the out parameter.
-   */
-  exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {
-    var strLen = aStr.length;
-    var result = 0;
-    var shift = 0;
-    var continuation, digit;
+module.exports = Transform;
 
-    do {
-      if (aIndex >= strLen) {
-        throw new Error("Expected more digits in base 64 VLQ value.");
-      }
+var Duplex = require('./_stream_duplex');
 
-      digit = base64.decode(aStr.charCodeAt(aIndex++));
-      if (digit === -1) {
-        throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1));
-      }
+/*<replacement>*/
+var util = require('core-util-is');
+util.inherits = require('inherits');
+/*</replacement>*/
 
-      continuation = !!(digit & VLQ_CONTINUATION_BIT);
-      digit &= VLQ_BASE_MASK;
-      result = result + (digit << shift);
-      shift += VLQ_BASE_SHIFT;
-    } while (continuation);
+util.inherits(Transform, Duplex);
 
-    aOutParam.value = fromVLQSigned(result);
-    aOutParam.rest = aIndex;
+function TransformState(stream) {
+  this.afterTransform = function (er, data) {
+    return afterTransform(stream, er, data);
   };
 
-});
-
-},{"./base64":114,"amdefine":1}],114:[function(require,module,exports){
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
+  this.needTransform = false;
+  this.transforming = false;
+  this.writecb = null;
+  this.writechunk = null;
+  this.writeencoding = null;
 }
-define(function (require, exports, module) {
 
-  var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');
+function afterTransform(stream, er, data) {
+  var ts = stream._transformState;
+  ts.transforming = false;
 
-  /**
-   * Encode an integer in the range of 0 to 63 to a single base 64 digit.
-   */
-  exports.encode = function (number) {
-    if (0 <= number && number < intToCharMap.length) {
-      return intToCharMap[number];
-    }
-    throw new TypeError("Must be between 0 and 63: " + aNumber);
-  };
+  var cb = ts.writecb;
 
-  /**
-   * Decode a single base 64 character code digit to an integer. Returns -1 on
-   * failure.
-   */
-  exports.decode = function (charCode) {
-    var bigA = 65;     // 'A'
-    var bigZ = 90;     // 'Z'
+  if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
 
-    var littleA = 97;  // 'a'
-    var littleZ = 122; // 'z'
+  ts.writechunk = null;
+  ts.writecb = null;
 
-    var zero = 48;     // '0'
-    var nine = 57;     // '9'
+  if (data !== null && data !== undefined) stream.push(data);
 
-    var plus = 43;     // '+'
-    var slash = 47;    // '/'
+  cb(er);
 
-    var littleOffset = 26;
-    var numberOffset = 52;
+  var rs = stream._readableState;
+  rs.reading = false;
+  if (rs.needReadable || rs.length < rs.highWaterMark) {
+    stream._read(rs.highWaterMark);
+  }
+}
 
-    // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ
-    if (bigA <= charCode && charCode <= bigZ) {
-      return (charCode - bigA);
-    }
+function Transform(options) {
+  if (!(this instanceof Transform)) return new Transform(options);
 
-    // 26 - 51: abcdefghijklmnopqrstuvwxyz
-    if (littleA <= charCode && charCode <= littleZ) {
-      return (charCode - littleA + littleOffset);
-    }
+  Duplex.call(this, options);
 
-    // 52 - 61: 0123456789
-    if (zero <= charCode && charCode <= nine) {
-      return (charCode - zero + numberOffset);
-    }
+  this._transformState = new TransformState(this);
 
-    // 62: +
-    if (charCode == plus) {
-      return 62;
-    }
+  // when the writable side finishes, then flush out anything remaining.
+  var stream = this;
 
-    // 63: /
-    if (charCode == slash) {
-      return 63;
-    }
+  // start out asking for a readable event once data is transformed.
+  this._readableState.needReadable = true;
 
-    // Invalid base64 digit.
-    return -1;
-  };
+  // we have implemented the _read method, and done the other things
+  // that Readable wants before the first _read call, so unset the
+  // sync guard flag.
+  this._readableState.sync = false;
 
-});
+  if (options) {
+    if (typeof options.transform === 'function') this._transform = options.transform;
 
-},{"amdefine":1}],115:[function(require,module,exports){
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
+    if (typeof options.flush === 'function') this._flush = options.flush;
+  }
 
-  exports.GREATEST_LOWER_BOUND = 1;
-  exports.LEAST_UPPER_BOUND = 2;
+  this.once('prefinish', function () {
+    if (typeof this._flush === 'function') this._flush(function (er) {
+      done(stream, er);
+    });else done(stream);
+  });
+}
 
-  /**
-   * Recursive implementation of binary search.
-   *
-   * @param aLow Indices here and lower do not contain the needle.
-   * @param aHigh Indices here and higher do not contain the needle.
-   * @param aNeedle The element being searched for.
-   * @param aHaystack The non-empty array being searched.
-   * @param aCompare Function which takes two elements and returns -1, 0, or 1.
-   * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or
-   *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the
-   *     closest element that is smaller than or greater than the one we are
-   *     searching for, respectively, if the exact element cannot be found.
-   */
-  function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {
-    // This function terminates when one of the following is true:
-    //
-    //   1. We find the exact element we are looking for.
-    //
-    //   2. We did not find the exact element, but we can return the index of
-    //      the next-closest element.
-    //
-    //   3. We did not find the exact element, and there is no next-closest
-    //      element than the one we are searching for, so we return -1.
-    var mid = Math.floor((aHigh - aLow) / 2) + aLow;
-    var cmp = aCompare(aNeedle, aHaystack[mid], true);
-    if (cmp === 0) {
-      // Found the element we are looking for.
-      return mid;
-    }
-    else if (cmp > 0) {
-      // Our needle is greater than aHaystack[mid].
-      if (aHigh - mid > 1) {
-        // The element is in the upper half.
-        return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);
-      }
+Transform.prototype.push = function (chunk, encoding) {
+  this._transformState.needTransform = false;
+  return Duplex.prototype.push.call(this, chunk, encoding);
+};
 
-      // The exact needle element was not found in this haystack. Determine if
-      // we are in termination case (3) or (2) and return the appropriate thing.
-      if (aBias == exports.LEAST_UPPER_BOUND) {
-        return aHigh < aHaystack.length ? aHigh : -1;
-      } else {
-        return mid;
-      }
-    }
-    else {
-      // Our needle is less than aHaystack[mid].
-      if (mid - aLow > 1) {
-        // The element is in the lower half.
-        return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);
-      }
+// This is the part where you do stuff!
+// override this function in implementation classes.
+// 'chunk' is an input chunk.
+//
+// Call `push(newChunk)` to pass along transformed output
+// to the readable side.  You may call 'push' zero or more times.
+//
+// Call `cb(err)` when you are done with this chunk.  If you pass
+// an error, then that'll put the hurt on the whole operation.  If you
+// never call cb(), then you'll never get another chunk.
+Transform.prototype._transform = function (chunk, encoding, cb) {
+  throw new Error('not implemented');
+};
 
-      // we are in termination case (3) or (2) and return the appropriate thing.
-      if (aBias == exports.LEAST_UPPER_BOUND) {
-        return mid;
-      } else {
-        return aLow < 0 ? -1 : aLow;
-      }
-    }
+Transform.prototype._write = function (chunk, encoding, cb) {
+  var ts = this._transformState;
+  ts.writecb = cb;
+  ts.writechunk = chunk;
+  ts.writeencoding = encoding;
+  if (!ts.transforming) {
+    var rs = this._readableState;
+    if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
   }
+};
 
-  /**
-   * This is an implementation of binary search which will always try and return
-   * the index of the closest element if there is no exact hit. This is because
-   * mappings between original and generated line/col pairs are single points,
-   * and there is an implicit region between each of them, so a miss just means
-   * that you aren't on the very start of a region.
-   *
-   * @param aNeedle The element you are looking for.
-   * @param aHaystack The array that is being searched.
-   * @param aCompare A function which takes the needle and an element in the
-   *     array and returns -1, 0, or 1 depending on whether the needle is less
-   *     than, equal to, or greater than the element, respectively.
-   * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or
-   *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the
-   *     closest element that is smaller than or greater than the one we are
-   *     searching for, respectively, if the exact element cannot be found.
-   *     Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.
-   */
-  exports.search = function search(aNeedle, aHaystack, aCompare, aBias) {
-    if (aHaystack.length === 0) {
-      return -1;
-    }
+// Doesn't matter what the args are here.
+// _transform does all the work.
+// That we got here means that the readable side wants more data.
+Transform.prototype._read = function (n) {
+  var ts = this._transformState;
 
-    var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,
-                                aCompare, aBias || exports.GREATEST_LOWER_BOUND);
-    if (index < 0) {
-      return -1;
-    }
+  if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
+    ts.transforming = true;
+    this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
+  } else {
+    // mark that we need a transform, so that any data that comes in
+    // will get processed, now that we've asked for it.
+    ts.needTransform = true;
+  }
+};
 
-    // We have found either the exact element, or the next-closest element than
-    // the one we are searching for. However, there may be more than one such
-    // element. Make sure we always return the smallest of these.
-    while (index - 1 >= 0) {
-      if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {
-        break;
-      }
-      --index;
-    }
+function done(stream, er) {
+  if (er) return stream.emit('error', er);
 
-    return index;
-  };
+  // if there's nothing in the write buffer, then that means
+  // that nothing more will ever be provided
+  var ws = stream._writableState;
+  var ts = stream._transformState;
 
-});
+  if (ws.length) throw new Error('calling transform done when ws.length != 0');
 
-},{"amdefine":1}],116:[function(require,module,exports){
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2014 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
+  if (ts.transforming) throw new Error('calling transform done when still transforming');
+
+  return stream.push(null);
 }
-define(function (require, exports, module) {
+},{"./_stream_duplex":96,"core-util-is":78,"inherits":83}],100:[function(require,module,exports){
+(function (process){
+// A bit simpler than readable streams.
+// Implement an async ._write(chunk, encoding, cb), and it'll handle all
+// the drain event emission and buffering.
 
-  var util = require('./util');
+'use strict';
 
-  /**
-   * Determine whether mappingB is after mappingA with respect to generated
-   * position.
-   */
-  function generatedPositionAfter(mappingA, mappingB) {
-    // Optimized for most common case
-    var lineA = mappingA.generatedLine;
-    var lineB = mappingB.generatedLine;
-    var columnA = mappingA.generatedColumn;
-    var columnB = mappingB.generatedColumn;
-    return lineB > lineA || lineB == lineA && columnB >= columnA ||
-           util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;
-  }
+module.exports = Writable;
 
-  /**
-   * A data structure to provide a sorted view of accumulated mappings in a
-   * performance conscious manner. It trades a neglibable overhead in general
-   * case for a large speedup in case of mappings being added in order.
-   */
-  function MappingList() {
-    this._array = [];
-    this._sorted = true;
-    // Serves as infimum
-    this._last = {generatedLine: -1, generatedColumn: 0};
-  }
+/*<replacement>*/
+var processNextTick = require('process-nextick-args');
+/*</replacement>*/
 
-  /**
-   * Iterate through internal items. This method takes the same arguments that
-   * `Array.prototype.forEach` takes.
-   *
-   * NOTE: The order of the mappings is NOT guaranteed.
-   */
-  MappingList.prototype.unsortedForEach =
-    function MappingList_forEach(aCallback, aThisArg) {
-      this._array.forEach(aCallback, aThisArg);
-    };
+/*<replacement>*/
+var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick;
+/*</replacement>*/
 
-  /**
-   * Add the given source mapping.
-   *
-   * @param Object aMapping
-   */
-  MappingList.prototype.add = function MappingList_add(aMapping) {
-    var mapping;
-    if (generatedPositionAfter(this._last, aMapping)) {
-      this._last = aMapping;
-      this._array.push(aMapping);
-    } else {
-      this._sorted = false;
-      this._array.push(aMapping);
-    }
-  };
+/*<replacement>*/
+var Buffer = require('buffer').Buffer;
+/*</replacement>*/
 
-  /**
-   * Returns the flat, sorted array of mappings. The mappings are sorted by
-   * generated position.
-   *
-   * WARNING: This method returns internal data without copying, for
-   * performance. The return value must NOT be mutated, and should be treated as
-   * an immutable borrow. If you want to take ownership, you must make your own
-   * copy.
-   */
-  MappingList.prototype.toArray = function MappingList_toArray() {
-    if (!this._sorted) {
-      this._array.sort(util.compareByGeneratedPositionsInflated);
-      this._sorted = true;
-    }
-    return this._array;
-  };
+Writable.WritableState = WritableState;
 
-  exports.MappingList = MappingList;
+/*<replacement>*/
+var util = require('core-util-is');
+util.inherits = require('inherits');
+/*</replacement>*/
 
-});
+/*<replacement>*/
+var internalUtil = {
+  deprecate: require('util-deprecate')
+};
+/*</replacement>*/
 
-},{"./util":121,"amdefine":1}],117:[function(require,module,exports){
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
+/*<replacement>*/
+var Stream;
+(function () {
+  try {
+    Stream = require('st' + 'ream');
+  } catch (_) {} finally {
+    if (!Stream) Stream = require('events').EventEmitter;
+  }
+})();
+/*</replacement>*/
 
-  // It turns out that some (most?) JavaScript engines don't self-host
-  // `Array.prototype.sort`. This makes sense because C++ will likely remain
-  // faster than JS when doing raw CPU-intensive sorting. However, when using a
-  // custom comparator function, calling back and forth between the VM's C++ and
-  // JIT'd JS is rather slow *and* loses JIT type information, resulting in
-  // worse generated code for the comparator function than would be optimal. In
-  // fact, when sorting with a comparator, these costs outweigh the benefits of
-  // sorting in C++. By using our own JS-implemented Quick Sort (below), we get
-  // a ~3500ms mean speed-up in `bench/bench.html`.
+var Buffer = require('buffer').Buffer;
 
-  /**
-   * Swap the elements indexed by `x` and `y` in the array `ary`.
-   *
-   * @param {Array} ary
-   *        The array.
-   * @param {Number} x
-   *        The index of the first item.
-   * @param {Number} y
-   *        The index of the second item.
-   */
-  function swap(ary, x, y) {
-    var temp = ary[x];
-    ary[x] = ary[y];
-    ary[y] = temp;
-  }
+util.inherits(Writable, Stream);
 
-  /**
-   * Returns a random integer within the range `low .. high` inclusive.
-   *
-   * @param {Number} low
-   *        The lower bound on the range.
-   * @param {Number} high
-   *        The upper bound on the range.
-   */
-  function randomIntInRange(low, high) {
-    return Math.round(low + (Math.random() * (high - low)));
-  }
+function nop() {}
 
-  /**
-   * The Quick Sort algorithm.
-   *
-   * @param {Array} ary
-   *        An array to sort.
-   * @param {function} comparator
-   *        Function to use to compare two items.
-   * @param {Number} p
-   *        Start index of the array
-   * @param {Number} r
-   *        End index of the array
-   */
-  function doQuickSort(ary, comparator, p, r) {
-    // If our lower bound is less than our upper bound, we (1) partition the
-    // array into two pieces and (2) recurse on each half. If it is not, this is
-    // the empty array and our base case.
+function WriteReq(chunk, encoding, cb) {
+  this.chunk = chunk;
+  this.encoding = encoding;
+  this.callback = cb;
+  this.next = null;
+}
 
-    if (p < r) {
-      // (1) Partitioning.
-      //
-      // The partitioning chooses a pivot between `p` and `r` and moves all
-      // elements that are less than or equal to the pivot to the before it, and
-      // all the elements that are greater than it after it. The effect is that
-      // once partition is done, the pivot is in the exact place it will be when
-      // the array is put in sorted order, and it will not need to be moved
-      // again. This runs in O(n) time.
+var Duplex;
+function WritableState(options, stream) {
+  Duplex = Duplex || require('./_stream_duplex');
 
-      // Always choose a random pivot so that an input array which is reverse
-      // sorted does not cause O(n^2) running time.
-      var pivotIndex = randomIntInRange(p, r);
-      var i = p - 1;
+  options = options || {};
 
-      swap(ary, pivotIndex, r);
-      var pivot = ary[r];
+  // object stream flag to indicate whether or not this stream
+  // contains buffers or objects.
+  this.objectMode = !!options.objectMode;
 
-      // Immediately after `j` is incremented in this loop, the following hold
-      // true:
-      //
-      //   * Every element in `ary[p .. i]` is less than or equal to the pivot.
-      //
-      //   * Every element in `ary[i+1 .. j-1]` is greater than the pivot.
-      for (var j = p; j < r; j++) {
-        if (comparator(ary[j], pivot) <= 0) {
-          i += 1;
-          swap(ary, i, j);
-        }
-      }
+  if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
 
-      swap(ary, i + 1, j);
-      var q = i + 1;
+  // the point at which write() starts returning false
+  // Note: 0 is a valid value, means that we always return false if
+  // the entire buffer is not flushed immediately on write()
+  var hwm = options.highWaterMark;
+  var defaultHwm = this.objectMode ? 16 : 16 * 1024;
+  this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
 
-      // (2) Recurse on each half.
+  // cast to ints.
+  this.highWaterMark = ~ ~this.highWaterMark;
 
-      doQuickSort(ary, comparator, p, q - 1);
-      doQuickSort(ary, comparator, q + 1, r);
-    }
-  }
+  this.needDrain = false;
+  // at the start of calling end()
+  this.ending = false;
+  // when end() has been called, and returned
+  this.ended = false;
+  // when 'finish' is emitted
+  this.finished = false;
 
-  /**
-   * Sort the given array in-place with the given comparator function.
-   *
-   * @param {Array} ary
-   *        An array to sort.
-   * @param {function} comparator
-   *        Function to use to compare two items.
-   */
-  exports.quickSort = function (ary, comparator) {
-    doQuickSort(ary, comparator, 0, ary.length - 1);
-  };
+  // should we decode strings into buffers before passing to _write?
+  // this is here so that some node-core streams can optimize string
+  // handling at a lower level.
+  var noDecode = options.decodeStrings === false;
+  this.decodeStrings = !noDecode;
 
-});
+  // Crypto is kind of old and crusty.  Historically, its default string
+  // encoding is 'binary' so we have to make this configurable.
+  // Everything else in the universe uses 'utf8', though.
+  this.defaultEncoding = options.defaultEncoding || 'utf8';
 
-},{"amdefine":1}],118:[function(require,module,exports){
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
-}
-define(function (require, exports, module) {
+  // not an actual buffer we keep track of, but a measurement
+  // of how much we're waiting to get pushed to some underlying
+  // socket or file.
+  this.length = 0;
 
-  var util = require('./util');
-  var binarySearch = require('./binary-search');
-  var ArraySet = require('./array-set').ArraySet;
-  var base64VLQ = require('./base64-vlq');
-  var quickSort = require('./quick-sort').quickSort;
+  // a flag to see when we're in the middle of a write.
+  this.writing = false;
 
-  function SourceMapConsumer(aSourceMap) {
-    var sourceMap = aSourceMap;
-    if (typeof aSourceMap === 'string') {
-      sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
-    }
+  // when true all writes will be buffered until .uncork() call
+  this.corked = 0;
 
-    return sourceMap.sections != null
-      ? new IndexedSourceMapConsumer(sourceMap)
-      : new BasicSourceMapConsumer(sourceMap);
-  }
+  // a flag to be able to tell if the onwrite cb is called immediately,
+  // or on a later tick.  We set this to true at first, because any
+  // actions that shouldn't happen until "later" should generally also
+  // not happen before the first write call.
+  this.sync = true;
 
-  SourceMapConsumer.fromSourceMap = function(aSourceMap) {
-    return BasicSourceMapConsumer.fromSourceMap(aSourceMap);
-  }
+  // a flag to know if we're processing previously buffered items, which
+  // may call the _write() callback in the same tick, so that we don't
+  // end up in an overlapped onwrite situation.
+  this.bufferProcessing = false;
 
-  /**
-   * The version of the source mapping spec that we are consuming.
-   */
-  SourceMapConsumer.prototype._version = 3;
+  // the callback that's passed to _write(chunk,cb)
+  this.onwrite = function (er) {
+    onwrite(stream, er);
+  };
 
-  // `__generatedMappings` and `__originalMappings` are arrays that hold the
-  // parsed mapping coordinates from the source map's "mappings" attribute. They
-  // are lazily instantiated, accessed via the `_generatedMappings` and
-  // `_originalMappings` getters respectively, and we only parse the mappings
-  // and create these arrays once queried for a source location. We jump through
-  // these hoops because there can be many thousands of mappings, and parsing
-  // them is expensive, so we only want to do it if we must.
-  //
-  // Each object in the arrays is of the form:
-  //
-  //     {
-  //       generatedLine: The line number in the generated code,
-  //       generatedColumn: The column number in the generated code,
-  //       source: The path to the original source file that generated this
-  //               chunk of code,
-  //       originalLine: The line number in the original source that
-  //                     corresponds to this chunk of generated code,
-  //       originalColumn: The column number in the original source that
-  //                       corresponds to this chunk of generated code,
-  //       name: The name of the original symbol which generated this chunk of
-  //             code.
-  //     }
-  //
-  // All properties except for `generatedLine` and `generatedColumn` can be
-  // `null`.
-  //
-  // `_generatedMappings` is ordered by the generated positions.
-  //
-  // `_originalMappings` is ordered by the original positions.
+  // the callback that the user supplies to write(chunk,encoding,cb)
+  this.writecb = null;
 
-  SourceMapConsumer.prototype.__generatedMappings = null;
-  Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {
-    get: function () {
-      if (!this.__generatedMappings) {
-        this._parseMappings(this._mappings, this.sourceRoot);
-      }
+  // the amount that is being written when _write is called.
+  this.writelen = 0;
 
-      return this.__generatedMappings;
-    }
-  });
+  this.bufferedRequest = null;
+  this.lastBufferedRequest = null;
 
-  SourceMapConsumer.prototype.__originalMappings = null;
-  Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {
-    get: function () {
-      if (!this.__originalMappings) {
-        this._parseMappings(this._mappings, this.sourceRoot);
-      }
+  // number of pending user-supplied write callbacks
+  // this must be 0 before 'finish' can be emitted
+  this.pendingcb = 0;
 
-      return this.__originalMappings;
-    }
-  });
+  // emit prefinish if the only thing we're waiting for is _write cbs
+  // This is relevant for synchronous Transform streams
+  this.prefinished = false;
 
-  SourceMapConsumer.prototype._charIsMappingSeparator =
-    function SourceMapConsumer_charIsMappingSeparator(aStr, index) {
-      var c = aStr.charAt(index);
-      return c === ";" || c === ",";
-    };
+  // True if the error was already emitted and should not be thrown again
+  this.errorEmitted = false;
 
-  /**
-   * Parse the mappings in a string in to a data structure which we can easily
-   * query (the ordered arrays in the `this.__generatedMappings` and
-   * `this.__originalMappings` properties).
-   */
-  SourceMapConsumer.prototype._parseMappings =
-    function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {
-      throw new Error("Subclasses must implement _parseMappings");
-    };
+  // count buffered requests
+  this.bufferedRequestCount = 0;
 
-  SourceMapConsumer.GENERATED_ORDER = 1;
-  SourceMapConsumer.ORIGINAL_ORDER = 2;
+  // create the two objects needed to store the corked requests
+  // they are not a linked list, as no new elements are inserted in there
+  this.corkedRequestsFree = new CorkedRequest(this);
+  this.corkedRequestsFree.next = new CorkedRequest(this);
+}
 
-  SourceMapConsumer.GREATEST_LOWER_BOUND = 1;
-  SourceMapConsumer.LEAST_UPPER_BOUND = 2;
+WritableState.prototype.getBuffer = function writableStateGetBuffer() {
+  var current = this.bufferedRequest;
+  var out = [];
+  while (current) {
+    out.push(current);
+    current = current.next;
+  }
+  return out;
+};
 
-  /**
-   * Iterate over each mapping between an original source/line/column and a
-   * generated line/column in this source map.
-   *
-   * @param Function aCallback
-   *        The function that is called with each mapping.
-   * @param Object aContext
-   *        Optional. If specified, this object will be the value of `this` every
-   *        time that `aCallback` is called.
-   * @param aOrder
-   *        Either `SourceMapConsumer.GENERATED_ORDER` or
-   *        `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to
-   *        iterate over the mappings sorted by the generated file's line/column
-   *        order or the original's source/line/column order, respectively. Defaults to
-   *        `SourceMapConsumer.GENERATED_ORDER`.
-   */
-  SourceMapConsumer.prototype.eachMapping =
-    function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {
-      var context = aContext || null;
-      var order = aOrder || SourceMapConsumer.GENERATED_ORDER;
+(function () {
+  try {
+    Object.defineProperty(WritableState.prototype, 'buffer', {
+      get: internalUtil.deprecate(function () {
+        return this.getBuffer();
+      }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
+    });
+  } catch (_) {}
+})();
 
-      var mappings;
-      switch (order) {
-      case SourceMapConsumer.GENERATED_ORDER:
-        mappings = this._generatedMappings;
-        break;
-      case SourceMapConsumer.ORIGINAL_ORDER:
-        mappings = this._originalMappings;
-        break;
-      default:
-        throw new Error("Unknown order of iteration.");
-      }
+var Duplex;
+function Writable(options) {
+  Duplex = Duplex || require('./_stream_duplex');
 
-      var sourceRoot = this.sourceRoot;
-      mappings.map(function (mapping) {
-        var source = mapping.source === null ? null : this._sources.at(mapping.source);
-        if (source != null && sourceRoot != null) {
-          source = util.join(sourceRoot, source);
-        }
-        return {
-          source: source,
-          generatedLine: mapping.generatedLine,
-          generatedColumn: mapping.generatedColumn,
-          originalLine: mapping.originalLine,
-          originalColumn: mapping.originalColumn,
-          name: mapping.name === null ? null : this._names.at(mapping.name)
-        };
-      }, this).forEach(aCallback, context);
-    };
+  // Writable ctor is applied to Duplexes, though they're not
+  // instanceof Writable, they're instanceof Readable.
+  if (!(this instanceof Writable) && !(this instanceof Duplex)) return new Writable(options);
 
-  /**
-   * Returns all generated line and column information for the original source,
-   * line, and column provided. If no column is provided, returns all mappings
-   * corresponding to a either the line we are searching for or the next
-   * closest line that has any mappings. Otherwise, returns all mappings
-   * corresponding to the given line and either the column we are searching for
-   * or the next closest column that has any offsets.
-   *
-   * The only argument is an object with the following properties:
-   *
-   *   - source: The filename of the original source.
-   *   - line: The line number in the original source.
-   *   - column: Optional. the column number in the original source.
-   *
-   * and an array of objects is returned, each with the following properties:
-   *
-   *   - line: The line number in the generated source, or null.
-   *   - column: The column number in the generated source, or null.
-   */
-  SourceMapConsumer.prototype.allGeneratedPositionsFor =
-    function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {
-      var line = util.getArg(aArgs, 'line');
+  this._writableState = new WritableState(options, this);
 
-      // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping
-      // returns the index of the closest mapping less than the needle. By
-      // setting needle.originalColumn to 0, we thus find the last mapping for
-      // the given line, provided such a mapping exists.
-      var needle = {
-        source: util.getArg(aArgs, 'source'),
-        originalLine: line,
-        originalColumn: util.getArg(aArgs, 'column', 0)
-      };
+  // legacy.
+  this.writable = true;
 
-      if (this.sourceRoot != null) {
-        needle.source = util.relative(this.sourceRoot, needle.source);
-      }
-      if (!this._sources.has(needle.source)) {
-        return [];
-      }
-      needle.source = this._sources.indexOf(needle.source);
+  if (options) {
+    if (typeof options.write === 'function') this._write = options.write;
 
-      var mappings = [];
+    if (typeof options.writev === 'function') this._writev = options.writev;
+  }
 
-      var index = this._findMapping(needle,
-                                    this._originalMappings,
-                                    "originalLine",
-                                    "originalColumn",
-                                    util.compareByOriginalPositions,
-                                    binarySearch.LEAST_UPPER_BOUND);
-      if (index >= 0) {
-        var mapping = this._originalMappings[index];
+  Stream.call(this);
+}
 
-        if (aArgs.column === undefined) {
-          var originalLine = mapping.originalLine;
+// Otherwise people can pipe Writable streams, which is just wrong.
+Writable.prototype.pipe = function () {
+  this.emit('error', new Error('Cannot pipe. Not readable.'));
+};
 
-          // Iterate until either we run out of mappings, or we run into
-          // a mapping for a different line than the one we found. Since
-          // mappings are sorted, this is guaranteed to find all mappings for
-          // the line we found.
-          while (mapping && mapping.originalLine === originalLine) {
-            mappings.push({
-              line: util.getArg(mapping, 'generatedLine', null),
-              column: util.getArg(mapping, 'generatedColumn', null),
-              lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
-            });
-
-            mapping = this._originalMappings[++index];
-          }
-        } else {
-          var originalColumn = mapping.originalColumn;
+function writeAfterEnd(stream, cb) {
+  var er = new Error('write after end');
+  // TODO: defer error events consistently everywhere, not just the cb
+  stream.emit('error', er);
+  processNextTick(cb, er);
+}
 
-          // Iterate until either we run out of mappings, or we run into
-          // a mapping for a different line than the one we were searching for.
-          // Since mappings are sorted, this is guaranteed to find all mappings for
-          // the line we are searching for.
-          while (mapping &&
-                 mapping.originalLine === line &&
-                 mapping.originalColumn == originalColumn) {
-            mappings.push({
-              line: util.getArg(mapping, 'generatedLine', null),
-              column: util.getArg(mapping, 'generatedColumn', null),
-              lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
-            });
+// If we get something that is not a buffer, string, null, or undefined,
+// and we're not in objectMode, then that's an error.
+// Otherwise stream chunks are all considered to be of length=1, and the
+// watermarks determine how many objects to keep in the buffer, rather than
+// how many bytes or characters.
+function validChunk(stream, state, chunk, cb) {
+  var valid = true;
 
-            mapping = this._originalMappings[++index];
-          }
-        }
-      }
+  if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
+    var er = new TypeError('Invalid non-string/buffer chunk');
+    stream.emit('error', er);
+    processNextTick(cb, er);
+    valid = false;
+  }
+  return valid;
+}
 
-      return mappings;
-    };
+Writable.prototype.write = function (chunk, encoding, cb) {
+  var state = this._writableState;
+  var ret = false;
 
-  exports.SourceMapConsumer = SourceMapConsumer;
+  if (typeof encoding === 'function') {
+    cb = encoding;
+    encoding = null;
+  }
 
-  /**
-   * A BasicSourceMapConsumer instance represents a parsed source map which we can
-   * query for information about the original file positions by giving it a file
-   * position in the generated source.
-   *
-   * The only parameter is the raw source map (either as a JSON string, or
-   * already parsed to an object). According to the spec, source maps have the
-   * following attributes:
-   *
-   *   - version: Which version of the source map spec this map is following.
-   *   - sources: An array of URLs to the original source files.
-   *   - names: An array of identifiers which can be referrenced by individual mappings.
-   *   - sourceRoot: Optional. The URL root from which all sources are relative.
-   *   - sourcesContent: Optional. An array of contents of the original source files.
-   *   - mappings: A string of base64 VLQs which contain the actual mappings.
-   *   - file: Optional. The generated file this source map is associated with.
-   *
-   * Here is an example source map, taken from the source map spec[0]:
-   *
-   *     {
-   *       version : 3,
-   *       file: "out.js",
-   *       sourceRoot : "",
-   *       sources: ["foo.js", "bar.js"],
-   *       names: ["src", "maps", "are", "fun"],
-   *       mappings: "AA,AB;;ABCDE;"
-   *     }
-   *
-   * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#
-   */
-  function BasicSourceMapConsumer(aSourceMap) {
-    var sourceMap = aSourceMap;
-    if (typeof aSourceMap === 'string') {
-      sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
-    }
+  if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
 
-    var version = util.getArg(sourceMap, 'version');
-    var sources = util.getArg(sourceMap, 'sources');
-    // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which
-    // requires the array) to play nice here.
-    var names = util.getArg(sourceMap, 'names', []);
-    var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);
-    var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);
-    var mappings = util.getArg(sourceMap, 'mappings');
-    var file = util.getArg(sourceMap, 'file', null);
+  if (typeof cb !== 'function') cb = nop;
 
-    // Once again, Sass deviates from the spec and supplies the version as a
-    // string rather than a number, so we use loose equality checking here.
-    if (version != this._version) {
-      throw new Error('Unsupported version: ' + version);
-    }
+  if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
+    state.pendingcb++;
+    ret = writeOrBuffer(this, state, chunk, encoding, cb);
+  }
 
-    // Some source maps produce relative source paths like "./foo.js" instead of
-    // "foo.js".  Normalize these first so that future comparisons will succeed.
-    // See bugzil.la/1090768.
-    sources = sources.map(util.normalize);
+  return ret;
+};
 
-    // Pass `true` below to allow duplicate names and sources. While source maps
-    // are intended to be compressed and deduplicated, the TypeScript compiler
-    // sometimes generates source maps with duplicates in them. See Github issue
-    // #72 and bugzil.la/889492.
-    this._names = ArraySet.fromArray(names, true);
-    this._sources = ArraySet.fromArray(sources, true);
+Writable.prototype.cork = function () {
+  var state = this._writableState;
 
-    this.sourceRoot = sourceRoot;
-    this.sourcesContent = sourcesContent;
-    this._mappings = mappings;
-    this.file = file;
-  }
+  state.corked++;
+};
 
-  BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);
-  BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;
+Writable.prototype.uncork = function () {
+  var state = this._writableState;
 
-  /**
-   * Create a BasicSourceMapConsumer from a SourceMapGenerator.
-   *
-   * @param SourceMapGenerator aSourceMap
-   *        The source map that will be consumed.
-   * @returns BasicSourceMapConsumer
-   */
-  BasicSourceMapConsumer.fromSourceMap =
-    function SourceMapConsumer_fromSourceMap(aSourceMap) {
-      var smc = Object.create(BasicSourceMapConsumer.prototype);
+  if (state.corked) {
+    state.corked--;
 
-      var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);
-      var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);
-      smc.sourceRoot = aSourceMap._sourceRoot;
-      smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),
-                                                              smc.sourceRoot);
-      smc.file = aSourceMap._file;
+    if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
+  }
+};
 
-      // Because we are modifying the entries (by converting string sources and
-      // names to indices into the sources and names ArraySets), we have to make
-      // a copy of the entry or else bad things happen. Shared mutable state
-      // strikes again! See github issue #191.
+Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
+  // node::ParseEncoding() requires lower case.
+  if (typeof encoding === 'string') encoding = encoding.toLowerCase();
+  if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);
+  this._writableState.defaultEncoding = encoding;
+};
 
-      var generatedMappings = aSourceMap._mappings.toArray().slice();
-      var destGeneratedMappings = smc.__generatedMappings = [];
-      var destOriginalMappings = smc.__originalMappings = [];
+function decodeChunk(state, chunk, encoding) {
+  if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
+    chunk = new Buffer(chunk, encoding);
+  }
+  return chunk;
+}
 
-      for (var i = 0, length = generatedMappings.length; i < length; i++) {
-        var srcMapping = generatedMappings[i];
-        var destMapping = new Mapping;
-        destMapping.generatedLine = srcMapping.generatedLine;
-        destMapping.generatedColumn = srcMapping.generatedColumn;
+// if we're already writing something, then just put this
+// in the queue, and wait our turn.  Otherwise, call _write
+// If we return false, then we need a drain event, so set that flag.
+function writeOrBuffer(stream, state, chunk, encoding, cb) {
+  chunk = decodeChunk(state, chunk, encoding);
 
-        if (srcMapping.source) {
-          destMapping.source = sources.indexOf(srcMapping.source);
-          destMapping.originalLine = srcMapping.originalLine;
-          destMapping.originalColumn = srcMapping.originalColumn;
+  if (Buffer.isBuffer(chunk)) encoding = 'buffer';
+  var len = state.objectMode ? 1 : chunk.length;
 
-          if (srcMapping.name) {
-            destMapping.name = names.indexOf(srcMapping.name);
-          }
+  state.length += len;
 
-          destOriginalMappings.push(destMapping);
-        }
+  var ret = state.length < state.highWaterMark;
+  // we must ensure that previous needDrain will not be reset to false.
+  if (!ret) state.needDrain = true;
 
-        destGeneratedMappings.push(destMapping);
-      }
+  if (state.writing || state.corked) {
+    var last = state.lastBufferedRequest;
+    state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
+    if (last) {
+      last.next = state.lastBufferedRequest;
+    } else {
+      state.bufferedRequest = state.lastBufferedRequest;
+    }
+    state.bufferedRequestCount += 1;
+  } else {
+    doWrite(stream, state, false, len, chunk, encoding, cb);
+  }
 
-      quickSort(smc.__originalMappings, util.compareByOriginalPositions);
+  return ret;
+}
 
-      return smc;
-    };
+function doWrite(stream, state, writev, len, chunk, encoding, cb) {
+  state.writelen = len;
+  state.writecb = cb;
+  state.writing = true;
+  state.sync = true;
+  if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
+  state.sync = false;
+}
 
-  /**
-   * The version of the source mapping spec that we are consuming.
-   */
-  BasicSourceMapConsumer.prototype._version = 3;
+function onwriteError(stream, state, sync, er, cb) {
+  --state.pendingcb;
+  if (sync) processNextTick(cb, er);else cb(er);
 
-  /**
-   * The list of original sources.
-   */
-  Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {
-    get: function () {
-      return this._sources.toArray().map(function (s) {
-        return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;
-      }, this);
-    }
-  });
+  stream._writableState.errorEmitted = true;
+  stream.emit('error', er);
+}
 
-  /**
-   * Provide the JIT with a nice shape / hidden class.
-   */
-  function Mapping() {
-    this.generatedLine = 0;
-    this.generatedColumn = 0;
-    this.source = null;
-    this.originalLine = null;
-    this.originalColumn = null;
-    this.name = null;
-  }
+function onwriteStateUpdate(state) {
+  state.writing = false;
+  state.writecb = null;
+  state.length -= state.writelen;
+  state.writelen = 0;
+}
 
-  /**
-   * Parse the mappings in a string in to a data structure which we can easily
-   * query (the ordered arrays in the `this.__generatedMappings` and
-   * `this.__originalMappings` properties).
-   */
-  BasicSourceMapConsumer.prototype._parseMappings =
-    function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {
-      var generatedLine = 1;
-      var previousGeneratedColumn = 0;
-      var previousOriginalLine = 0;
-      var previousOriginalColumn = 0;
-      var previousSource = 0;
-      var previousName = 0;
-      var length = aStr.length;
-      var index = 0;
-      var cachedSegments = {};
-      var temp = {};
-      var originalMappings = [];
-      var generatedMappings = [];
-      var mapping, str, segment, end, value;
+function onwrite(stream, er) {
+  var state = stream._writableState;
+  var sync = state.sync;
+  var cb = state.writecb;
 
-      while (index < length) {
-        if (aStr.charAt(index) === ';') {
-          generatedLine++;
-          index++;
-          previousGeneratedColumn = 0;
-        }
-        else if (aStr.charAt(index) === ',') {
-          index++;
-        }
-        else {
-          mapping = new Mapping();
-          mapping.generatedLine = generatedLine;
+  onwriteStateUpdate(state);
 
-          // Because each offset is encoded relative to the previous one,
-          // many segments often have the same encoding. We can exploit this
-          // fact by caching the parsed variable length fields of each segment,
-          // allowing us to avoid a second parse if we encounter the same
-          // segment again.
-          for (end = index; end < length; end++) {
-            if (this._charIsMappingSeparator(aStr, end)) {
-              break;
-            }
-          }
-          str = aStr.slice(index, end);
+  if (er) onwriteError(stream, state, sync, er, cb);else {
+    // Check if we're actually ready to finish, but don't emit yet
+    var finished = needFinish(state);
 
-          segment = cachedSegments[str];
-          if (segment) {
-            index += str.length;
-          } else {
-            segment = [];
-            while (index < end) {
-              base64VLQ.decode(aStr, index, temp);
-              value = temp.value;
-              index = temp.rest;
-              segment.push(value);
-            }
+    if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
+      clearBuffer(stream, state);
+    }
 
-            if (segment.length === 2) {
-              throw new Error('Found a source, but no line and column');
-            }
+    if (sync) {
+      /*<replacement>*/
+      asyncWrite(afterWrite, stream, state, finished, cb);
+      /*</replacement>*/
+    } else {
+        afterWrite(stream, state, finished, cb);
+      }
+  }
+}
 
-            if (segment.length === 3) {
-              throw new Error('Found a source and line, but no column');
-            }
+function afterWrite(stream, state, finished, cb) {
+  if (!finished) onwriteDrain(stream, state);
+  state.pendingcb--;
+  cb();
+  finishMaybe(stream, state);
+}
 
-            cachedSegments[str] = segment;
-          }
+// Must force callback to be called on nextTick, so that we don't
+// emit 'drain' before the write() consumer gets the 'false' return
+// value, and has a chance to attach a 'drain' listener.
+function onwriteDrain(stream, state) {
+  if (state.length === 0 && state.needDrain) {
+    state.needDrain = false;
+    stream.emit('drain');
+  }
+}
 
-          // Generated column.
-          mapping.generatedColumn = previousGeneratedColumn + segment[0];
-          previousGeneratedColumn = mapping.generatedColumn;
+// if there's something in the buffer waiting, then process it
+function clearBuffer(stream, state) {
+  state.bufferProcessing = true;
+  var entry = state.bufferedRequest;
 
-          if (segment.length > 1) {
-            // Original source.
-            mapping.source = previousSource + segment[1];
-            previousSource += segment[1];
+  if (stream._writev && entry && entry.next) {
+    // Fast case, write everything using _writev()
+    var l = state.bufferedRequestCount;
+    var buffer = new Array(l);
+    var holder = state.corkedRequestsFree;
+    holder.entry = entry;
 
-            // Original line.
-            mapping.originalLine = previousOriginalLine + segment[2];
-            previousOriginalLine = mapping.originalLine;
-            // Lines are stored 0-based
-            mapping.originalLine += 1;
+    var count = 0;
+    while (entry) {
+      buffer[count] = entry;
+      entry = entry.next;
+      count += 1;
+    }
 
-            // Original column.
-            mapping.originalColumn = previousOriginalColumn + segment[3];
-            previousOriginalColumn = mapping.originalColumn;
+    doWrite(stream, state, true, state.length, buffer, '', holder.finish);
 
-            if (segment.length > 4) {
-              // Original name.
-              mapping.name = previousName + segment[4];
-              previousName += segment[4];
-            }
-          }
+    // doWrite is always async, defer these to save a bit of time
+    // as the hot path ends with doWrite
+    state.pendingcb++;
+    state.lastBufferedRequest = null;
+    state.corkedRequestsFree = holder.next;
+    holder.next = null;
+  } else {
+    // Slow case, write chunks one-by-one
+    while (entry) {
+      var chunk = entry.chunk;
+      var encoding = entry.encoding;
+      var cb = entry.callback;
+      var len = state.objectMode ? 1 : chunk.length;
 
-          generatedMappings.push(mapping);
-          if (typeof mapping.originalLine === 'number') {
-            originalMappings.push(mapping);
-          }
-        }
+      doWrite(stream, state, false, len, chunk, encoding, cb);
+      entry = entry.next;
+      // if we didn't call the onwrite immediately, then
+      // it means that we need to wait until it does.
+      // also, that means that the chunk and cb are currently
+      // being processed, so move the buffer counter past them.
+      if (state.writing) {
+        break;
       }
+    }
 
-      quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);
-      this.__generatedMappings = generatedMappings;
+    if (entry === null) state.lastBufferedRequest = null;
+  }
 
-      quickSort(originalMappings, util.compareByOriginalPositions);
-      this.__originalMappings = originalMappings;
-    };
+  state.bufferedRequestCount = 0;
+  state.bufferedRequest = entry;
+  state.bufferProcessing = false;
+}
 
-  /**
-   * Find the mapping that best matches the hypothetical "needle" mapping that
-   * we are searching for in the given "haystack" of mappings.
-   */
-  BasicSourceMapConsumer.prototype._findMapping =
-    function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,
-                                           aColumnName, aComparator, aBias) {
-      // To return the position we are searching for, we must first find the
-      // mapping for the given position and then return the opposite position it
-      // points to. Because the mappings are sorted, we can use binary search to
-      // find the best mapping.
+Writable.prototype._write = function (chunk, encoding, cb) {
+  cb(new Error('not implemented'));
+};
 
-      if (aNeedle[aLineName] <= 0) {
-        throw new TypeError('Line must be greater than or equal to 1, got '
-                            + aNeedle[aLineName]);
-      }
-      if (aNeedle[aColumnName] < 0) {
-        throw new TypeError('Column must be greater than or equal to 0, got '
-                            + aNeedle[aColumnName]);
-      }
+Writable.prototype._writev = null;
 
-      return binarySearch.search(aNeedle, aMappings, aComparator, aBias);
-    };
+Writable.prototype.end = function (chunk, encoding, cb) {
+  var state = this._writableState;
 
-  /**
-   * Compute the last column for each generated mapping. The last column is
-   * inclusive.
-   */
-  BasicSourceMapConsumer.prototype.computeColumnSpans =
-    function SourceMapConsumer_computeColumnSpans() {
-      for (var index = 0; index < this._generatedMappings.length; ++index) {
-        var mapping = this._generatedMappings[index];
+  if (typeof chunk === 'function') {
+    cb = chunk;
+    chunk = null;
+    encoding = null;
+  } else if (typeof encoding === 'function') {
+    cb = encoding;
+    encoding = null;
+  }
 
-        // Mappings do not contain a field for the last generated columnt. We
-        // can come up with an optimistic estimate, however, by assuming that
-        // mappings are contiguous (i.e. given two consecutive mappings, the
-        // first mapping ends where the second one starts).
-        if (index + 1 < this._generatedMappings.length) {
-          var nextMapping = this._generatedMappings[index + 1];
+  if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
 
-          if (mapping.generatedLine === nextMapping.generatedLine) {
-            mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;
-            continue;
-          }
-        }
+  // .end() fully uncorks
+  if (state.corked) {
+    state.corked = 1;
+    this.uncork();
+  }
 
-        // The last mapping for each line spans the entire line.
-        mapping.lastGeneratedColumn = Infinity;
-      }
-    };
+  // ignore unnecessary end() calls.
+  if (!state.ending && !state.finished) endWritable(this, state, cb);
+};
 
-  /**
-   * Returns the original source, line, and column information for the generated
-   * source's line and column positions provided. The only argument is an object
-   * with the following properties:
-   *
-   *   - line: The line number in the generated source.
-   *   - column: The column number in the generated source.
-   *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or
-   *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the
-   *     closest element that is smaller than or greater than the one we are
-   *     searching for, respectively, if the exact element cannot be found.
-   *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.
-   *
-   * and an object is returned with the following properties:
-   *
-   *   - source: The original source file, or null.
-   *   - line: The line number in the original source, or null.
-   *   - column: The column number in the original source, or null.
-   *   - name: The original identifier, or null.
-   */
-  BasicSourceMapConsumer.prototype.originalPositionFor =
-    function SourceMapConsumer_originalPositionFor(aArgs) {
-      var needle = {
-        generatedLine: util.getArg(aArgs, 'line'),
-        generatedColumn: util.getArg(aArgs, 'column')
-      };
+function needFinish(state) {
+  return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;
+}
 
-      var index = this._findMapping(
-        needle,
-        this._generatedMappings,
-        "generatedLine",
-        "generatedColumn",
-        util.compareByGeneratedPositionsDeflated,
-        util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)
-      );
+function prefinish(stream, state) {
+  if (!state.prefinished) {
+    state.prefinished = true;
+    stream.emit('prefinish');
+  }
+}
 
-      if (index >= 0) {
-        var mapping = this._generatedMappings[index];
+function finishMaybe(stream, state) {
+  var need = needFinish(state);
+  if (need) {
+    if (state.pendingcb === 0) {
+      prefinish(stream, state);
+      state.finished = true;
+      stream.emit('finish');
+    } else {
+      prefinish(stream, state);
+    }
+  }
+  return need;
+}
 
-        if (mapping.generatedLine === needle.generatedLine) {
-          var source = util.getArg(mapping, 'source', null);
-          if (source !== null) {
-            source = this._sources.at(source);
-            if (this.sourceRoot != null) {
-              source = util.join(this.sourceRoot, source);
-            }
-          }
-          var name = util.getArg(mapping, 'name', null);
-          if (name !== null) {
-            name = this._names.at(name);
-          }
-          return {
-            source: source,
-            line: util.getArg(mapping, 'originalLine', null),
-            column: util.getArg(mapping, 'originalColumn', null),
-            name: name
-          };
-        }
-      }
+function endWritable(stream, state, cb) {
+  state.ending = true;
+  finishMaybe(stream, state);
+  if (cb) {
+    if (state.finished) processNextTick(cb);else stream.once('finish', cb);
+  }
+  state.ended = true;
+  stream.writable = false;
+}
 
-      return {
-        source: null,
-        line: null,
-        column: null,
-        name: null
-      };
-    };
+// It seems a linked list but it is not
+// there will be only 2 of these for each stream
+function CorkedRequest(state) {
+  var _this = this;
 
-  /**
-   * Return true if we have the source content for every source in the source
-   * map, false otherwise.
-   */
-  BasicSourceMapConsumer.prototype.hasContentsOfAllSources =
-    function BasicSourceMapConsumer_hasContentsOfAllSources() {
-      if (!this.sourcesContent) {
-        return false;
-      }
-      return this.sourcesContent.length >= this._sources.size() &&
-        !this.sourcesContent.some(function (sc) { return sc == null; });
-    };
+  this.next = null;
+  this.entry = null;
 
-  /**
-   * Returns the original source content. The only argument is the url of the
-   * original source file. Returns null if no original source content is
-   * availible.
-   */
-  BasicSourceMapConsumer.prototype.sourceContentFor =
-    function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {
-      if (!this.sourcesContent) {
-        return null;
-      }
+  this.finish = function (err) {
+    var entry = _this.entry;
+    _this.entry = null;
+    while (entry) {
+      var cb = entry.callback;
+      state.pendingcb--;
+      cb(err);
+      entry = entry.next;
+    }
+    if (state.corkedRequestsFree) {
+      state.corkedRequestsFree.next = _this;
+    } else {
+      state.corkedRequestsFree = _this;
+    }
+  };
+}
+}).call(this,require('_process'))
+},{"./_stream_duplex":96,"_process":90,"buffer":5,"core-util-is":78,"events":79,"inherits":83,"process-nextick-args":89,"util-deprecate":143}],101:[function(require,module,exports){
+module.exports = require("./lib/_stream_passthrough.js")
 
-      if (this.sourceRoot != null) {
-        aSource = util.relative(this.sourceRoot, aSource);
-      }
+},{"./lib/_stream_passthrough.js":97}],102:[function(require,module,exports){
+var Stream = (function (){
+  try {
+    return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify
+  } catch(_){}
+}());
+exports = module.exports = require('./lib/_stream_readable.js');
+exports.Stream = Stream || exports;
+exports.Readable = exports;
+exports.Writable = require('./lib/_stream_writable.js');
+exports.Duplex = require('./lib/_stream_duplex.js');
+exports.Transform = require('./lib/_stream_transform.js');
+exports.PassThrough = require('./lib/_stream_passthrough.js');
 
-      if (this._sources.has(aSource)) {
-        return this.sourcesContent[this._sources.indexOf(aSource)];
-      }
+},{"./lib/_stream_duplex.js":96,"./lib/_stream_passthrough.js":97,"./lib/_stream_readable.js":98,"./lib/_stream_transform.js":99,"./lib/_stream_writable.js":100}],103:[function(require,module,exports){
+module.exports = require("./lib/_stream_transform.js")
 
-      var url;
-      if (this.sourceRoot != null
-          && (url = util.urlParse(this.sourceRoot))) {
-        // XXX: file:// URIs and absolute paths lead to unexpected behavior for
-        // many users. We can help them out when they expect file:// URIs to
-        // behave like it would if they were running a local HTTP server. See
-        // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.
-        var fileUriAbsPath = aSource.replace(/^file:\/\//, "");
-        if (url.scheme == "file"
-            && this._sources.has(fileUriAbsPath)) {
-          return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]
-        }
+},{"./lib/_stream_transform.js":99}],104:[function(require,module,exports){
+module.exports = require("./lib/_stream_writable.js")
 
-        if ((!url.path || url.path == "/")
-            && this._sources.has("/" + aSource)) {
-          return this.sourcesContent[this._sources.indexOf("/" + aSource)];
-        }
-      }
+},{"./lib/_stream_writable.js":100}],105:[function(require,module,exports){
+"use strict";
 
-      // This function is used recursively from
-      // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we
-      // don't want to throw if we can't find the source - we just want to
-      // return null, so we provide a flag to exit gracefully.
-      if (nullOnMissing) {
-        return null;
-      }
-      else {
-        throw new Error('"' + aSource + '" is not in the SourceMap.');
-      }
-    };
+module.exports =
+{
+       // Output
+       ABSOLUTE:      "absolute",
+       PATH_RELATIVE: "pathRelative",
+       ROOT_RELATIVE: "rootRelative",
+       SHORTEST:      "shortest"
+};
 
-  /**
-   * Returns the generated line and column information for the original source,
-   * line, and column positions provided. The only argument is an object with
-   * the following properties:
-   *
-   *   - source: The filename of the original source.
-   *   - line: The line number in the original source.
-   *   - column: The column number in the original source.
-   *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or
-   *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the
-   *     closest element that is smaller than or greater than the one we are
-   *     searching for, respectively, if the exact element cannot be found.
-   *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.
-   *
-   * and an object is returned with the following properties:
-   *
-   *   - line: The line number in the generated source, or null.
-   *   - column: The column number in the generated source, or null.
-   */
-  BasicSourceMapConsumer.prototype.generatedPositionFor =
-    function SourceMapConsumer_generatedPositionFor(aArgs) {
-      var source = util.getArg(aArgs, 'source');
-      if (this.sourceRoot != null) {
-        source = util.relative(this.sourceRoot, source);
-      }
-      if (!this._sources.has(source)) {
-        return {
-          line: null,
-          column: null,
-          lastColumn: null
-        };
-      }
-      source = this._sources.indexOf(source);
+},{}],106:[function(require,module,exports){
+"use strict";
 
-      var needle = {
-        source: source,
-        originalLine: util.getArg(aArgs, 'line'),
-        originalColumn: util.getArg(aArgs, 'column')
-      };
+var constants = require("./constants");
 
-      var index = this._findMapping(
-        needle,
-        this._originalMappings,
-        "originalLine",
-        "originalColumn",
-        util.compareByOriginalPositions,
-        util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)
-      );
 
-      if (index >= 0) {
-        var mapping = this._originalMappings[index];
 
-        if (mapping.source === needle.source) {
-          return {
-            line: util.getArg(mapping, 'generatedLine', null),
-            column: util.getArg(mapping, 'generatedColumn', null),
-            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
-          };
-        }
-      }
+function formatAuth(urlObj, options)
+{
+       if (urlObj.auth && !options.removeAuth && (urlObj.extra.relation.maximumHost || options.output===constants.ABSOLUTE))
+       {
+               return urlObj.auth + "@";
+       }
+       
+       return "";
+}
 
-      return {
-        line: null,
-        column: null,
-        lastColumn: null
-      };
-    };
 
-  exports.BasicSourceMapConsumer = BasicSourceMapConsumer;
 
-  /**
-   * An IndexedSourceMapConsumer instance represents a parsed source map which
-   * we can query for information. It differs from BasicSourceMapConsumer in
-   * that it takes "indexed" source maps (i.e. ones with a "sections" field) as
-   * input.
-   *
-   * The only parameter is a raw source map (either as a JSON string, or already
-   * parsed to an object). According to the spec for indexed source maps, they
-   * have the following attributes:
-   *
-   *   - version: Which version of the source map spec this map is following.
-   *   - file: Optional. The generated file this source map is associated with.
-   *   - sections: A list of section definitions.
-   *
-   * Each value under the "sections" field has two fields:
-   *   - offset: The offset into the original specified at which this section
-   *       begins to apply, defined as an object with a "line" and "column"
-   *       field.
-   *   - map: A source map definition. This source map could also be indexed,
-   *       but doesn't have to be.
-   *
-   * Instead of the "map" field, it's also possible to have a "url" field
-   * specifying a URL to retrieve a source map from, but that's currently
-   * unsupported.
-   *
-   * Here's an example source map, taken from the source map spec[0], but
-   * modified to omit a section which uses the "url" field.
-   *
-   *  {
-   *    version : 3,
-   *    file: "app.js",
-   *    sections: [{
-   *      offset: {line:100, column:10},
-   *      map: {
-   *        version : 3,
-   *        file: "section.js",
-   *        sources: ["foo.js", "bar.js"],
-   *        names: ["src", "maps", "are", "fun"],
-   *        mappings: "AAAA,E;;ABCDE;"
-   *      }
-   *    }],
-   *  }
-   *
-   * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt
-   */
-  function IndexedSourceMapConsumer(aSourceMap) {
-    var sourceMap = aSourceMap;
-    if (typeof aSourceMap === 'string') {
-      sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
-    }
+function formatHash(urlObj, options)
+{
+       return urlObj.hash ? urlObj.hash : "";
+}
 
-    var version = util.getArg(sourceMap, 'version');
-    var sections = util.getArg(sourceMap, 'sections');
 
-    if (version != this._version) {
-      throw new Error('Unsupported version: ' + version);
-    }
 
-    this._sources = new ArraySet();
-    this._names = new ArraySet();
+function formatHost(urlObj, options)
+{
+       if (urlObj.host.full && (urlObj.extra.relation.maximumAuth || options.output===constants.ABSOLUTE))
+       {
+               return urlObj.host.full;
+       }
+       
+       return "";
+}
 
-    var lastOffset = {
-      line: -1,
-      column: 0
-    };
-    this._sections = sections.map(function (s) {
-      if (s.url) {
-        // The url field will require support for asynchronicity.
-        // See https://github.com/mozilla/source-map/issues/16
-        throw new Error('Support for url field in sections not implemented.');
-      }
-      var offset = util.getArg(s, 'offset');
-      var offsetLine = util.getArg(offset, 'line');
-      var offsetColumn = util.getArg(offset, 'column');
 
-      if (offsetLine < lastOffset.line ||
-          (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {
-        throw new Error('Section offsets must be ordered and non-overlapping.');
-      }
-      lastOffset = offset;
 
-      return {
-        generatedOffset: {
-          // The offset fields are 0-based, but we use 1-based indices when
-          // encoding/decoding from VLQ.
-          generatedLine: offsetLine + 1,
-          generatedColumn: offsetColumn + 1
-        },
-        consumer: new SourceMapConsumer(util.getArg(s, 'map'))
-      }
-    });
-  }
+function formatPath(urlObj, options)
+{
+       var str = "";
+       
+       var absolutePath = urlObj.path.absolute.string;
+       var relativePath = urlObj.path.relative.string;
+       var resource = showResource(urlObj, options);
+       
+       if (urlObj.extra.relation.maximumHost || options.output===constants.ABSOLUTE || options.output===constants.ROOT_RELATIVE)
+       {
+               str = absolutePath;
+       }
+       else if (relativePath.length<=absolutePath.length && options.output===constants.SHORTEST || options.output===constants.PATH_RELATIVE)
+       {
+               str = relativePath;
+               
+               if (str === "")
+               {
+                       var query = showQuery(urlObj,options) && !!getQuery(urlObj,options);
+                       
+                       if (urlObj.extra.relation.maximumPath && !resource)
+                       {
+                               str = "./";
+                       }
+                       else if (urlObj.extra.relation.overridesQuery && !resource && !query)
+                       {
+                               str = "./";
+                       }
+               }
+       }
+       else
+       {
+               str = absolutePath;
+       }
+       
+       if ( str==="/" && !resource && options.removeRootTrailingSlash && (!urlObj.extra.relation.minimumPort || options.output===constants.ABSOLUTE) )
+       {
+               str = "";
+       }
+       
+       return str;
+}
 
-  IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);
-  IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;
 
-  /**
-   * The version of the source mapping spec that we are consuming.
-   */
-  IndexedSourceMapConsumer.prototype._version = 3;
 
-  /**
-   * The list of original sources.
-   */
-  Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {
-    get: function () {
-      var sources = [];
-      for (var i = 0; i < this._sections.length; i++) {
-        for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {
-          sources.push(this._sections[i].consumer.sources[j]);
-        }
-      };
-      return sources;
-    }
-  });
+function formatPort(urlObj, options)
+{
+       if (urlObj.port && !urlObj.extra.portIsDefault && urlObj.extra.relation.maximumHost)
+       {
+               return ":" + urlObj.port;
+       }
+       
+       return "";
+}
 
-  /**
-   * Returns the original source, line, and column information for the generated
-   * source's line and column positions provided. The only argument is an object
-   * with the following properties:
-   *
-   *   - line: The line number in the generated source.
-   *   - column: The column number in the generated source.
-   *
-   * and an object is returned with the following properties:
-   *
-   *   - source: The original source file, or null.
-   *   - line: The line number in the original source, or null.
-   *   - column: The column number in the original source, or null.
-   *   - name: The original identifier, or null.
-   */
-  IndexedSourceMapConsumer.prototype.originalPositionFor =
-    function IndexedSourceMapConsumer_originalPositionFor(aArgs) {
-      var needle = {
-        generatedLine: util.getArg(aArgs, 'line'),
-        generatedColumn: util.getArg(aArgs, 'column')
-      };
 
-      // Find the section containing the generated position we're trying to map
-      // to an original position.
-      var sectionIndex = binarySearch.search(needle, this._sections,
-        function(needle, section) {
-          var cmp = needle.generatedLine - section.generatedOffset.generatedLine;
-          if (cmp) {
-            return cmp;
-          }
 
-          return (needle.generatedColumn -
-                  section.generatedOffset.generatedColumn);
-        });
-      var section = this._sections[sectionIndex];
+function formatQuery(urlObj, options)
+{
+       return showQuery(urlObj,options) ? getQuery(urlObj, options) : "";
+}
 
-      if (!section) {
-        return {
-          source: null,
-          line: null,
-          column: null,
-          name: null
-        };
-      }
 
-      return section.consumer.originalPositionFor({
-        line: needle.generatedLine -
-          (section.generatedOffset.generatedLine - 1),
-        column: needle.generatedColumn -
-          (section.generatedOffset.generatedLine === needle.generatedLine
-           ? section.generatedOffset.generatedColumn - 1
-           : 0),
-        bias: aArgs.bias
-      });
-    };
 
-  /**
-   * Return true if we have the source content for every source in the source
-   * map, false otherwise.
-   */
-  IndexedSourceMapConsumer.prototype.hasContentsOfAllSources =
-    function IndexedSourceMapConsumer_hasContentsOfAllSources() {
-      return this._sections.every(function (s) {
-        return s.consumer.hasContentsOfAllSources();
-      });
-    };
+function formatResource(urlObj, options)
+{
+       return showResource(urlObj,options) ? urlObj.resource : "";
+}
 
-  /**
-   * Returns the original source content. The only argument is the url of the
-   * original source file. Returns null if no original source content is
-   * available.
-   */
-  IndexedSourceMapConsumer.prototype.sourceContentFor =
-    function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {
-      for (var i = 0; i < this._sections.length; i++) {
-        var section = this._sections[i];
 
-        var content = section.consumer.sourceContentFor(aSource, true);
-        if (content) {
-          return content;
-        }
-      }
-      if (nullOnMissing) {
-        return null;
-      }
-      else {
-        throw new Error('"' + aSource + '" is not in the SourceMap.');
-      }
-    };
 
-  /**
-   * Returns the generated line and column information for the original source,
-   * line, and column positions provided. The only argument is an object with
-   * the following properties:
-   *
-   *   - source: The filename of the original source.
-   *   - line: The line number in the original source.
-   *   - column: The column number in the original source.
-   *
-   * and an object is returned with the following properties:
-   *
-   *   - line: The line number in the generated source, or null.
-   *   - column: The column number in the generated source, or null.
-   */
-  IndexedSourceMapConsumer.prototype.generatedPositionFor =
-    function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {
-      for (var i = 0; i < this._sections.length; i++) {
-        var section = this._sections[i];
+function formatScheme(urlObj, options)
+{
+       var str = "";
+       
+       if (urlObj.extra.relation.maximumHost || options.output===constants.ABSOLUTE)
+       {
+               if (!urlObj.extra.relation.minimumScheme || !options.schemeRelative || options.output===constants.ABSOLUTE)
+               {
+                       str += urlObj.scheme + "://";
+               }
+               else
+               {
+                       str += "//";
+               }
+       }
+       
+       return str;
+}
 
-        // Only consider this section if the requested source is in the list of
-        // sources of the consumer.
-        if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {
-          continue;
-        }
-        var generatedPosition = section.consumer.generatedPositionFor(aArgs);
-        if (generatedPosition) {
-          var ret = {
-            line: generatedPosition.line +
-              (section.generatedOffset.generatedLine - 1),
-            column: generatedPosition.column +
-              (section.generatedOffset.generatedLine === generatedPosition.line
-               ? section.generatedOffset.generatedColumn - 1
-               : 0)
-          };
-          return ret;
-        }
-      }
 
-      return {
-        line: null,
-        column: null
-      };
-    };
 
-  /**
-   * Parse the mappings in a string in to a data structure which we can easily
-   * query (the ordered arrays in the `this.__generatedMappings` and
-   * `this.__originalMappings` properties).
-   */
-  IndexedSourceMapConsumer.prototype._parseMappings =
-    function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {
-      this.__generatedMappings = [];
-      this.__originalMappings = [];
-      for (var i = 0; i < this._sections.length; i++) {
-        var section = this._sections[i];
-        var sectionMappings = section.consumer._generatedMappings;
-        for (var j = 0; j < sectionMappings.length; j++) {
-          var mapping = sectionMappings[i];
+function formatUrl(urlObj, options)
+{
+       var url = "";
+       
+       url += formatScheme(urlObj, options);
+       url += formatAuth(urlObj, options);
+       url += formatHost(urlObj, options);
+       url += formatPort(urlObj, options);
+       url += formatPath(urlObj, options);
+       url += formatResource(urlObj, options);
+       url += formatQuery(urlObj, options);
+       url += formatHash(urlObj, options);
+       
+       return url;
+}
 
-          var source = section.consumer._sources.at(mapping.source);
-          if (section.consumer.sourceRoot !== null) {
-            source = util.join(section.consumer.sourceRoot, source);
-          }
-          this._sources.add(source);
-          source = this._sources.indexOf(source);
 
-          var name = section.consumer._names.at(mapping.name);
-          this._names.add(name);
-          name = this._names.indexOf(name);
 
-          // The mappings coming from the consumer for the section have
-          // generated positions relative to the start of the section, so we
-          // need to offset them to be relative to the start of the concatenated
-          // generated file.
-          var adjustedMapping = {
-            source: source,
-            generatedLine: mapping.generatedLine +
-              (section.generatedOffset.generatedLine - 1),
-            generatedColumn: mapping.column +
-              (section.generatedOffset.generatedLine === mapping.generatedLine)
-              ? section.generatedOffset.generatedColumn - 1
-              : 0,
-            originalLine: mapping.originalLine,
-            originalColumn: mapping.originalColumn,
-            name: name
-          };
+function getQuery(urlObj, options)
+{
+       var stripQuery = options.removeEmptyQueries && urlObj.extra.relation.minimumPort;
+       
+       return urlObj.query.string[ stripQuery ? "stripped" : "full" ];
+}
 
-          this.__generatedMappings.push(adjustedMapping);
-          if (typeof adjustedMapping.originalLine === 'number') {
-            this.__originalMappings.push(adjustedMapping);
-          }
-        };
-      };
 
-      quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);
-      quickSort(this.__originalMappings, util.compareByOriginalPositions);
-    };
 
-  exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;
+function showQuery(urlObj, options)
+{
+       return !urlObj.extra.relation.minimumQuery || options.output===constants.ABSOLUTE || options.output===constants.ROOT_RELATIVE;
+}
 
-});
 
-},{"./array-set":112,"./base64-vlq":113,"./binary-search":115,"./quick-sort":117,"./util":121,"amdefine":1}],119:[function(require,module,exports){
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
+
+function showResource(urlObj, options)
+{
+       var removeIndex = options.removeDirectoryIndexes && urlObj.extra.resourceIsIndex;
+       var removeMatchingResource = urlObj.extra.relation.minimumResource && options.output!==constants.ABSOLUTE && options.output!==constants.ROOT_RELATIVE;
+       
+       return !!urlObj.resource && !removeMatchingResource && !removeIndex;
 }
-define(function (require, exports, module) {
 
-  var base64VLQ = require('./base64-vlq');
-  var util = require('./util');
-  var ArraySet = require('./array-set').ArraySet;
-  var MappingList = require('./mapping-list').MappingList;
 
-  /**
-   * An instance of the SourceMapGenerator represents a source map which is
-   * being built incrementally. You may pass an object with the following
-   * properties:
-   *
-   *   - file: The filename of the generated source.
-   *   - sourceRoot: A root for all relative URLs in this source map.
-   */
-  function SourceMapGenerator(aArgs) {
-    if (!aArgs) {
-      aArgs = {};
-    }
-    this._file = util.getArg(aArgs, 'file', null);
-    this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);
-    this._skipValidation = util.getArg(aArgs, 'skipValidation', false);
-    this._sources = new ArraySet();
-    this._names = new ArraySet();
-    this._mappings = new MappingList();
-    this._sourcesContents = null;
-  }
 
-  SourceMapGenerator.prototype._version = 3;
+module.exports = formatUrl;
 
-  /**
-   * Creates a new SourceMapGenerator based on a SourceMapConsumer
-   *
-   * @param aSourceMapConsumer The SourceMap.
-   */
-  SourceMapGenerator.fromSourceMap =
-    function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {
-      var sourceRoot = aSourceMapConsumer.sourceRoot;
-      var generator = new SourceMapGenerator({
-        file: aSourceMapConsumer.file,
-        sourceRoot: sourceRoot
-      });
-      aSourceMapConsumer.eachMapping(function (mapping) {
-        var newMapping = {
-          generated: {
-            line: mapping.generatedLine,
-            column: mapping.generatedColumn
-          }
-        };
+},{"./constants":105}],107:[function(require,module,exports){
+"use strict";
 
-        if (mapping.source != null) {
-          newMapping.source = mapping.source;
-          if (sourceRoot != null) {
-            newMapping.source = util.relative(sourceRoot, newMapping.source);
-          }
+var constants  = require("./constants");
+var formatUrl  = require("./format");
+var getOptions = require("./options");
+var objUtils   = require("./util/object");
+var parseUrl   = require("./parse");
+var relateUrl  = require("./relate");
 
-          newMapping.original = {
-            line: mapping.originalLine,
-            column: mapping.originalColumn
-          };
 
-          if (mapping.name != null) {
-            newMapping.name = mapping.name;
-          }
-        }
 
-        generator.addMapping(newMapping);
-      });
-      aSourceMapConsumer.sources.forEach(function (sourceFile) {
-        var content = aSourceMapConsumer.sourceContentFor(sourceFile);
-        if (content != null) {
-          generator.setSourceContent(sourceFile, content);
-        }
-      });
-      return generator;
-    };
+function RelateUrl(from, options)
+{
+       this.options = getOptions(options,
+       {
+               defaultPorts: {ftp:21, http:80, https:443},
+               directoryIndexes: ["index.html"],
+               ignore_www: false,
+               output: RelateUrl.SHORTEST,
+               rejectedSchemes: ["data","javascript","mailto"],
+               removeAuth: false,
+               removeDirectoryIndexes: true,
+               removeEmptyQueries: false,
+               removeRootTrailingSlash: true,
+               schemeRelative: true,
+               site: undefined,
+               slashesDenoteHost: true
+       });
+       
+       this.from = parseUrl.from(from, this.options, null);
+}
 
-  /**
-   * Add a single mapping from original source line and column to the generated
-   * source's line and column for this source map being created. The mapping
-   * object should have the following properties:
-   *
-   *   - generated: An object with the generated line and column positions.
-   *   - original: An object with the original line and column positions.
-   *   - source: The original source file (relative to the sourceRoot).
-   *   - name: An optional original token name for this mapping.
-   */
-  SourceMapGenerator.prototype.addMapping =
-    function SourceMapGenerator_addMapping(aArgs) {
-      var generated = util.getArg(aArgs, 'generated');
-      var original = util.getArg(aArgs, 'original', null);
-      var source = util.getArg(aArgs, 'source', null);
-      var name = util.getArg(aArgs, 'name', null);
 
-      if (!this._skipValidation) {
-        this._validateMapping(generated, original, source, name);
-      }
 
-      if (source != null && !this._sources.has(source)) {
-        this._sources.add(source);
-      }
+/*
+       Usage: instance=new RelateUrl(); instance.relate();
+*/
+RelateUrl.prototype.relate = function(from, to, options)
+{
+       // relate(to,options)
+       if ( objUtils.isPlainObject(to) )
+       {
+               options = to;
+               to = from;
+               from = null;
+       }
+       // relate(to)
+       else if (!to)
+       {
+               to = from;
+               from = null;
+       }
+       
+       options = getOptions(options, this.options);
+       from = from || options.site;
+       from = parseUrl.from(from, options, this.from);
+       
+       if (!from || !from.href)
+       {
+               throw new Error("from value not defined.");
+       }
+       else if (from.extra.hrefInfo.minimumPathOnly)
+       {
+               throw new Error("from value supplied is not absolute: "+from.href);
+       }
+       
+       to = parseUrl.to(to, options);
+       
+       if (to.valid===false) return to.href;
+       
+       to = relateUrl(from, to, options);
+       to = formatUrl(to, options);
+       
+       return to;
+}
 
-      if (name != null && !this._names.has(name)) {
-        this._names.add(name);
-      }
 
-      this._mappings.add({
-        generatedLine: generated.line,
-        generatedColumn: generated.column,
-        originalLine: original != null && original.line,
-        originalColumn: original != null && original.column,
-        source: source,
-        name: name
-      });
-    };
 
-  /**
-   * Set the source content for a source file.
-   */
-  SourceMapGenerator.prototype.setSourceContent =
-    function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {
-      var source = aSourceFile;
-      if (this._sourceRoot != null) {
-        source = util.relative(this._sourceRoot, source);
-      }
+/*
+       Usage: RelateUrl.relate();
+*/
+RelateUrl.relate = function(from, to, options)
+{
+       return new RelateUrl().relate(from, to, options);
+}
 
-      if (aSourceContent != null) {
-        // Add the source content to the _sourcesContents map.
-        // Create a new _sourcesContents map if the property is null.
-        if (!this._sourcesContents) {
-          this._sourcesContents = {};
-        }
-        this._sourcesContents[util.toSetString(source)] = aSourceContent;
-      } else if (this._sourcesContents) {
-        // Remove the source file from the _sourcesContents map.
-        // If the _sourcesContents map is empty, set the property to null.
-        delete this._sourcesContents[util.toSetString(source)];
-        if (Object.keys(this._sourcesContents).length === 0) {
-          this._sourcesContents = null;
-        }
-      }
-    };
 
-  /**
-   * Applies the mappings of a sub-source-map for a specific source file to the
-   * source map being generated. Each mapping to the supplied source file is
-   * rewritten using the supplied source map. Note: The resolution for the
-   * resulting mappings is the minimium of this map and the supplied map.
-   *
-   * @param aSourceMapConsumer The source map to be applied.
-   * @param aSourceFile Optional. The filename of the source file.
-   *        If omitted, SourceMapConsumer's file property will be used.
-   * @param aSourceMapPath Optional. The dirname of the path to the source map
-   *        to be applied. If relative, it is relative to the SourceMapConsumer.
-   *        This parameter is needed when the two source maps aren't in the same
-   *        directory, and the source map to be applied contains relative source
-   *        paths. If so, those relative source paths need to be rewritten
-   *        relative to the SourceMapGenerator.
-   */
-  SourceMapGenerator.prototype.applySourceMap =
-    function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {
-      var sourceFile = aSourceFile;
-      // If aSourceFile is omitted, we will use the file property of the SourceMap
-      if (aSourceFile == null) {
-        if (aSourceMapConsumer.file == null) {
-          throw new Error(
-            'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +
-            'or the source map\'s "file" property. Both were omitted.'
-          );
-        }
-        sourceFile = aSourceMapConsumer.file;
-      }
-      var sourceRoot = this._sourceRoot;
-      // Make "sourceFile" relative if an absolute Url is passed.
-      if (sourceRoot != null) {
-        sourceFile = util.relative(sourceRoot, sourceFile);
-      }
-      // Applying the SourceMap can add and remove items from the sources and
-      // the names array.
-      var newSources = new ArraySet();
-      var newNames = new ArraySet();
 
-      // Find mappings for the "sourceFile"
-      this._mappings.unsortedForEach(function (mapping) {
-        if (mapping.source === sourceFile && mapping.originalLine != null) {
-          // Check if it can be mapped by the source map, then update the mapping.
-          var original = aSourceMapConsumer.originalPositionFor({
-            line: mapping.originalLine,
-            column: mapping.originalColumn
-          });
-          if (original.source != null) {
-            // Copy mapping
-            mapping.source = original.source;
-            if (aSourceMapPath != null) {
-              mapping.source = util.join(aSourceMapPath, mapping.source)
-            }
-            if (sourceRoot != null) {
-              mapping.source = util.relative(sourceRoot, mapping.source);
-            }
-            mapping.originalLine = original.line;
-            mapping.originalColumn = original.column;
-            if (original.name != null) {
-              mapping.name = original.name;
-            }
-          }
-        }
+// Make constants accessible from API
+objUtils.shallowMerge(RelateUrl, constants);
 
-        var source = mapping.source;
-        if (source != null && !newSources.has(source)) {
-          newSources.add(source);
-        }
 
-        var name = mapping.name;
-        if (name != null && !newNames.has(name)) {
-          newNames.add(name);
-        }
 
-      }, this);
-      this._sources = newSources;
-      this._names = newNames;
+module.exports = RelateUrl;
 
-      // Copy sourcesContents of applied map.
-      aSourceMapConsumer.sources.forEach(function (sourceFile) {
-        var content = aSourceMapConsumer.sourceContentFor(sourceFile);
-        if (content != null) {
-          if (aSourceMapPath != null) {
-            sourceFile = util.join(aSourceMapPath, sourceFile);
-          }
-          if (sourceRoot != null) {
-            sourceFile = util.relative(sourceRoot, sourceFile);
-          }
-          this.setSourceContent(sourceFile, content);
-        }
-      }, this);
-    };
+},{"./constants":105,"./format":106,"./options":108,"./parse":111,"./relate":118,"./util/object":120}],108:[function(require,module,exports){
+"use strict";
 
-  /**
-   * A mapping can have one of the three levels of data:
-   *
-   *   1. Just the generated position.
-   *   2. The Generated position, original position, and original source.
-   *   3. Generated and original position, original source, as well as a name
-   *      token.
-   *
-   * To maintain consistency, we validate that any new mapping being added falls
-   * in to one of these categories.
-   */
-  SourceMapGenerator.prototype._validateMapping =
-    function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,
-                                                aName) {
-      if (aGenerated && 'line' in aGenerated && 'column' in aGenerated
-          && aGenerated.line > 0 && aGenerated.column >= 0
-          && !aOriginal && !aSource && !aName) {
-        // Case 1.
-        return;
-      }
-      else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated
-               && aOriginal && 'line' in aOriginal && 'column' in aOriginal
-               && aGenerated.line > 0 && aGenerated.column >= 0
-               && aOriginal.line > 0 && aOriginal.column >= 0
-               && aSource) {
-        // Cases 2 and 3.
-        return;
-      }
-      else {
-        throw new Error('Invalid mapping: ' + JSON.stringify({
-          generated: aGenerated,
-          source: aSource,
-          original: aOriginal,
-          name: aName
-        }));
-      }
-    };
+var objUtils = require("./util/object");
 
-  /**
-   * Serialize the accumulated mappings in to the stream of base 64 VLQs
-   * specified by the source map format.
-   */
-  SourceMapGenerator.prototype._serializeMappings =
-    function SourceMapGenerator_serializeMappings() {
-      var previousGeneratedColumn = 0;
-      var previousGeneratedLine = 1;
-      var previousOriginalColumn = 0;
-      var previousOriginalLine = 0;
-      var previousName = 0;
-      var previousSource = 0;
-      var result = '';
-      var mapping;
 
-      var mappings = this._mappings.toArray();
-      for (var i = 0, len = mappings.length; i < len; i++) {
-        mapping = mappings[i];
 
-        if (mapping.generatedLine !== previousGeneratedLine) {
-          previousGeneratedColumn = 0;
-          while (mapping.generatedLine !== previousGeneratedLine) {
-            result += ';';
-            previousGeneratedLine++;
-          }
-        }
-        else {
-          if (i > 0) {
-            if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {
-              continue;
-            }
-            result += ',';
-          }
-        }
+function getOptions(options, defaults)
+{
+       if ( objUtils.isPlainObject(options) )
+       {
+               var newOptions = {};
+               
+               for (var i in defaults)
+               {
+                       if ( defaults.hasOwnProperty(i) )
+                       {
+                               if (options[i] !== undefined)
+                               {
+                                       newOptions[i] = mergeOption(options[i], defaults[i]);
+                               }
+                               else
+                               {
+                                       newOptions[i] = defaults[i];
+                               }
+                       }
+               }
+               
+               return newOptions;
+       }
+       else
+       {
+               return defaults;
+       }
+}
 
-        result += base64VLQ.encode(mapping.generatedColumn
-                                   - previousGeneratedColumn);
-        previousGeneratedColumn = mapping.generatedColumn;
 
-        if (mapping.source != null) {
-          result += base64VLQ.encode(this._sources.indexOf(mapping.source)
-                                     - previousSource);
-          previousSource = this._sources.indexOf(mapping.source);
 
-          // lines are stored 0-based in SourceMap spec version 3
-          result += base64VLQ.encode(mapping.originalLine - 1
-                                     - previousOriginalLine);
-          previousOriginalLine = mapping.originalLine - 1;
+function mergeOption(newValues, defaultValues)
+{
+       if (defaultValues instanceof Object && newValues instanceof Object)
+       {
+               if (defaultValues instanceof Array && newValues instanceof Array)
+               {
+                       return defaultValues.concat(newValues);
+               }
+               else
+               {
+                       return objUtils.shallowMerge(newValues, defaultValues);
+               }
+       }
+       
+       return newValues;
+}
 
-          result += base64VLQ.encode(mapping.originalColumn
-                                     - previousOriginalColumn);
-          previousOriginalColumn = mapping.originalColumn;
 
-          if (mapping.name != null) {
-            result += base64VLQ.encode(this._names.indexOf(mapping.name)
-                                       - previousName);
-            previousName = this._names.indexOf(mapping.name);
-          }
-        }
-      }
 
-      return result;
-    };
+module.exports = getOptions;
 
-  SourceMapGenerator.prototype._generateSourcesContent =
-    function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {
-      return aSources.map(function (source) {
-        if (!this._sourcesContents) {
-          return null;
-        }
-        if (aSourceRoot != null) {
-          source = util.relative(aSourceRoot, source);
-        }
-        var key = util.toSetString(source);
-        return Object.prototype.hasOwnProperty.call(this._sourcesContents,
-                                                    key)
-          ? this._sourcesContents[key]
-          : null;
-      }, this);
-    };
+},{"./util/object":120}],109:[function(require,module,exports){
+"use strict";
 
-  /**
-   * Externalize the source map.
-   */
-  SourceMapGenerator.prototype.toJSON =
-    function SourceMapGenerator_toJSON() {
-      var map = {
-        version: this._version,
-        sources: this._sources.toArray(),
-        names: this._names.toArray(),
-        mappings: this._serializeMappings()
-      };
-      if (this._file != null) {
-        map.file = this._file;
-      }
-      if (this._sourceRoot != null) {
-        map.sourceRoot = this._sourceRoot;
-      }
-      if (this._sourcesContents) {
-        map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);
-      }
+function parseHost(urlObj, options)
+{
+       // TWEAK :: condition only for speed optimization
+       if (options.ignore_www)
+       {
+               var host = urlObj.host.full;
+               
+               if (host)
+               {
+                       var stripped = host;
+                       
+                       if (host.indexOf("www.") === 0)
+                       {
+                               stripped = host.substr(4);
+                       }
+                       
+                       urlObj.host.stripped = stripped;
+               }
+       }
+}
 
-      return map;
-    };
 
-  /**
-   * Render the source map being generated to a string.
-   */
-  SourceMapGenerator.prototype.toString =
-    function SourceMapGenerator_toString() {
-      return JSON.stringify(this.toJSON());
-    };
 
-  exports.SourceMapGenerator = SourceMapGenerator;
+module.exports = parseHost;
 
-});
+},{}],110:[function(require,module,exports){
+"use strict";
 
-},{"./array-set":112,"./base64-vlq":113,"./mapping-list":116,"./util":121,"amdefine":1}],120:[function(require,module,exports){
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
+function hrefInfo(urlObj)
+{
+       var minimumPathOnly     = (!urlObj.scheme && !urlObj.auth && !urlObj.host.full && !urlObj.port);
+       var minimumResourceOnly = (minimumPathOnly && !urlObj.path.absolute.string);
+       var minimumQueryOnly    = (minimumResourceOnly && !urlObj.resource);
+       var minimumHashOnly     = (minimumQueryOnly && !urlObj.query.string.full.length);
+       var empty               = (minimumHashOnly && !urlObj.hash);
+       
+       urlObj.extra.hrefInfo.minimumPathOnly     = minimumPathOnly;
+       urlObj.extra.hrefInfo.minimumResourceOnly = minimumResourceOnly;
+       urlObj.extra.hrefInfo.minimumQueryOnly    = minimumQueryOnly;
+       urlObj.extra.hrefInfo.minimumHashOnly     = minimumHashOnly;
+       urlObj.extra.hrefInfo.empty = empty;
 }
-define(function (require, exports, module) {
-
-  var SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;
-  var util = require('./util');
 
-  // Matches a Windows-style `\r\n` newline or a `\n` newline used by all other
-  // operating systems these days (capturing the result).
-  var REGEX_NEWLINE = /(\r?\n)/;
 
-  // Newline character code for charCodeAt() comparisons
-  var NEWLINE_CODE = 10;
 
-  // Private symbol for identifying `SourceNode`s when multiple versions of
-  // the source-map library are loaded. This MUST NOT CHANGE across
-  // versions!
-  var isSourceNode = "$$$isSourceNode$$$";
+module.exports = hrefInfo;
 
-  /**
-   * SourceNodes provide a way to abstract over interpolating/concatenating
-   * snippets of generated JavaScript source code while maintaining the line and
-   * column information associated with the original source code.
-   *
-   * @param aLine The original line number.
-   * @param aColumn The original column number.
-   * @param aSource The original source's filename.
-   * @param aChunks Optional. An array of strings which are snippets of
-   *        generated JS, or other SourceNodes.
-   * @param aName The original identifier.
-   */
-  function SourceNode(aLine, aColumn, aSource, aChunks, aName) {
-    this.children = [];
-    this.sourceContents = {};
-    this.line = aLine == null ? null : aLine;
-    this.column = aColumn == null ? null : aColumn;
-    this.source = aSource == null ? null : aSource;
-    this.name = aName == null ? null : aName;
-    this[isSourceNode] = true;
-    if (aChunks != null) this.add(aChunks);
-  }
+},{}],111:[function(require,module,exports){
+"use strict";
 
-  /**
-   * Creates a SourceNode from generated code and a SourceMapConsumer.
-   *
-   * @param aGeneratedCode The generated code
-   * @param aSourceMapConsumer The SourceMap for the generated code
-   * @param aRelativePath Optional. The path that relative sources in the
-   *        SourceMapConsumer should be relative to.
-   */
-  SourceNode.fromStringWithSourceMap =
-    function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {
-      // The SourceNode we want to fill with the generated code
-      // and the SourceMap
-      var node = new SourceNode();
+var hrefInfo   = require("./hrefInfo");
+var parseHost  = require("./host");
+var parsePath  = require("./path");
+var parsePort  = require("./port");
+var parseQuery = require("./query");
+var parseUrlString = require("./urlstring");
+var pathUtils      = require("../util/path");
 
-      // All even indices of this array are one line of the generated code,
-      // while all odd indices are the newlines between two adjacent lines
-      // (since `REGEX_NEWLINE` captures its match).
-      // Processed fragments are removed from this array, by calling `shiftNextLine`.
-      var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);
-      var shiftNextLine = function() {
-        var lineContents = remainingLines.shift();
-        // The last line of a file might not have a newline.
-        var newLine = remainingLines.shift() || "";
-        return lineContents + newLine;
-      };
 
-      // We need to remember the position of "remainingLines"
-      var lastGeneratedLine = 1, lastGeneratedColumn = 0;
 
-      // The generate SourceNodes we need a code range.
-      // To extract it current and last mapping is used.
-      // Here we store the last mapping.
-      var lastMapping = null;
+function parseFromUrl(url, options, fallback)
+{
+       if (url)
+       {
+               var urlObj = parseUrl(url, options);
+               
+               // Because the following occurs in the relate stage for "to" URLs,
+               // such had to be mostly duplicated here
+               
+               var pathArray = pathUtils.resolveDotSegments(urlObj.path.absolute.array);
+               
+               urlObj.path.absolute.array  = pathArray;
+               urlObj.path.absolute.string = "/" + pathUtils.join(pathArray);
+               
+               return urlObj;
+       }
+       else
+       {
+               return fallback;
+       }
+}
 
-      aSourceMapConsumer.eachMapping(function (mapping) {
-        if (lastMapping !== null) {
-          // We add the code from "lastMapping" to "mapping":
-          // First check if there is a new line in between.
-          if (lastGeneratedLine < mapping.generatedLine) {
-            var code = "";
-            // Associate first line with "lastMapping"
-            addMappingWithCode(lastMapping, shiftNextLine());
-            lastGeneratedLine++;
-            lastGeneratedColumn = 0;
-            // The remaining code is added without mapping
-          } else {
-            // There is no new line in between.
-            // Associate the code between "lastGeneratedColumn" and
-            // "mapping.generatedColumn" with "lastMapping"
-            var nextLine = remainingLines[0];
-            var code = nextLine.substr(0, mapping.generatedColumn -
-                                          lastGeneratedColumn);
-            remainingLines[0] = nextLine.substr(mapping.generatedColumn -
-                                                lastGeneratedColumn);
-            lastGeneratedColumn = mapping.generatedColumn;
-            addMappingWithCode(lastMapping, code);
-            // No more remaining code, continue
-            lastMapping = mapping;
-            return;
-          }
-        }
-        // We add the generated code until the first mapping
-        // to the SourceNode without any mapping.
-        // Each line is added as separate string.
-        while (lastGeneratedLine < mapping.generatedLine) {
-          node.add(shiftNextLine());
-          lastGeneratedLine++;
-        }
-        if (lastGeneratedColumn < mapping.generatedColumn) {
-          var nextLine = remainingLines[0];
-          node.add(nextLine.substr(0, mapping.generatedColumn));
-          remainingLines[0] = nextLine.substr(mapping.generatedColumn);
-          lastGeneratedColumn = mapping.generatedColumn;
-        }
-        lastMapping = mapping;
-      }, this);
-      // We have processed all mappings.
-      if (remainingLines.length > 0) {
-        if (lastMapping) {
-          // Associate the remaining code in the current line with "lastMapping"
-          addMappingWithCode(lastMapping, shiftNextLine());
-        }
-        // and add the remaining lines without any mapping
-        node.add(remainingLines.join(""));
-      }
 
-      // Copy sourcesContent into SourceNode
-      aSourceMapConsumer.sources.forEach(function (sourceFile) {
-        var content = aSourceMapConsumer.sourceContentFor(sourceFile);
-        if (content != null) {
-          if (aRelativePath != null) {
-            sourceFile = util.join(aRelativePath, sourceFile);
-          }
-          node.setSourceContent(sourceFile, content);
-        }
-      });
 
-      return node;
+function parseUrl(url, options)
+{
+       var urlObj = parseUrlString(url, options);
+       
+       if (urlObj.valid===false) return urlObj;
+       
+       parseHost(urlObj, options);
+       parsePort(urlObj, options);
+       parsePath(urlObj, options);
+       parseQuery(urlObj, options);
+       hrefInfo(urlObj);
+       
+       return urlObj;
+}
 
-      function addMappingWithCode(mapping, code) {
-        if (mapping === null || mapping.source === undefined) {
-          node.add(code);
-        } else {
-          var source = aRelativePath
-            ? util.join(aRelativePath, mapping.source)
-            : mapping.source;
-          node.add(new SourceNode(mapping.originalLine,
-                                  mapping.originalColumn,
-                                  source,
-                                  code,
-                                  mapping.name));
-        }
-      }
-    };
 
-  /**
-   * Add a chunk of generated JS to this source node.
-   *
-   * @param aChunk A string snippet of generated JS code, another instance of
-   *        SourceNode, or an array where each member is one of those things.
-   */
-  SourceNode.prototype.add = function SourceNode_add(aChunk) {
-    if (Array.isArray(aChunk)) {
-      aChunk.forEach(function (chunk) {
-        this.add(chunk);
-      }, this);
-    }
-    else if (aChunk[isSourceNode] || typeof aChunk === "string") {
-      if (aChunk) {
-        this.children.push(aChunk);
-      }
-    }
-    else {
-      throw new TypeError(
-        "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
-      );
-    }
-    return this;
-  };
 
-  /**
-   * Add a chunk of generated JS to the beginning of this source node.
-   *
-   * @param aChunk A string snippet of generated JS code, another instance of
-   *        SourceNode, or an array where each member is one of those things.
-   */
-  SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {
-    if (Array.isArray(aChunk)) {
-      for (var i = aChunk.length-1; i >= 0; i--) {
-        this.prepend(aChunk[i]);
-      }
-    }
-    else if (aChunk[isSourceNode] || typeof aChunk === "string") {
-      this.children.unshift(aChunk);
-    }
-    else {
-      throw new TypeError(
-        "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
-      );
-    }
-    return this;
-  };
+module.exports =
+{
+       from: parseFromUrl,
+       to:   parseUrl
+};
 
-  /**
-   * Walk over the tree of JS snippets in this node and its children. The
-   * walking function is called once for each snippet of JS and is passed that
-   * snippet and the its original associated source's line/column location.
-   *
-   * @param aFn The traversal function.
-   */
-  SourceNode.prototype.walk = function SourceNode_walk(aFn) {
-    var chunk;
-    for (var i = 0, len = this.children.length; i < len; i++) {
-      chunk = this.children[i];
-      if (chunk[isSourceNode]) {
-        chunk.walk(aFn);
-      }
-      else {
-        if (chunk !== '') {
-          aFn(chunk, { source: this.source,
-                       line: this.line,
-                       column: this.column,
-                       name: this.name });
-        }
-      }
-    }
-  };
+},{"../util/path":121,"./host":109,"./hrefInfo":110,"./path":112,"./port":113,"./query":114,"./urlstring":115}],112:[function(require,module,exports){
+"use strict";
 
-  /**
-   * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between
-   * each of `this.children`.
-   *
-   * @param aSep The separator.
-   */
-  SourceNode.prototype.join = function SourceNode_join(aSep) {
-    var newChildren;
-    var i;
-    var len = this.children.length;
-    if (len > 0) {
-      newChildren = [];
-      for (i = 0; i < len-1; i++) {
-        newChildren.push(this.children[i]);
-        newChildren.push(aSep);
-      }
-      newChildren.push(this.children[i]);
-      this.children = newChildren;
-    }
-    return this;
-  };
+function isDirectoryIndex(resource, options)
+{
+       var verdict = false;
+       
+       options.directoryIndexes.every( function(index)
+       {
+               if (index === resource)
+               {
+                       verdict = true;
+                       return false;
+               }
+               
+               return true;
+       });
+       
+       return verdict;
+}
 
-  /**
-   * Call String.prototype.replace on the very right-most source snippet. Useful
-   * for trimming whitespace from the end of a source node, etc.
-   *
-   * @param aPattern The pattern to replace.
-   * @param aReplacement The thing to replace the pattern with.
-   */
-  SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {
-    var lastChild = this.children[this.children.length - 1];
-    if (lastChild[isSourceNode]) {
-      lastChild.replaceRight(aPattern, aReplacement);
-    }
-    else if (typeof lastChild === 'string') {
-      this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);
-    }
-    else {
-      this.children.push(''.replace(aPattern, aReplacement));
-    }
-    return this;
-  };
 
-  /**
-   * Set the source content for a source file. This will be added to the SourceMapGenerator
-   * in the sourcesContent field.
-   *
-   * @param aSourceFile The filename of the source file
-   * @param aSourceContent The content of the source file
-   */
-  SourceNode.prototype.setSourceContent =
-    function SourceNode_setSourceContent(aSourceFile, aSourceContent) {
-      this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;
-    };
 
-  /**
-   * Walk over the tree of SourceNodes. The walking function is called for each
-   * source file content and is passed the filename and source content.
-   *
-   * @param aFn The traversal function.
-   */
-  SourceNode.prototype.walkSourceContents =
-    function SourceNode_walkSourceContents(aFn) {
-      for (var i = 0, len = this.children.length; i < len; i++) {
-        if (this.children[i][isSourceNode]) {
-          this.children[i].walkSourceContents(aFn);
-        }
-      }
+function parsePath(urlObj, options)
+{
+       var path = urlObj.path.absolute.string;
+       
+       if (path)
+       {
+               var lastSlash = path.lastIndexOf("/");
+               
+               if (lastSlash > -1)
+               {
+                       if (++lastSlash < path.length)
+                       {
+                               var resource = path.substr(lastSlash);
+                               
+                               if (resource!=="." && resource!=="..")
+                               {
+                                       urlObj.resource = resource;
+                                       path = path.substr(0, lastSlash);
+                               }
+                               else
+                               {
+                                       path += "/";
+                               }
+                       }
+                       
+                       urlObj.path.absolute.string = path;
+                       urlObj.path.absolute.array = splitPath(path);
+               }
+               else if (path==="." || path==="..")
+               {
+                       // "..?var", "..#anchor", etc ... not "..index.html"
+                       path += "/";
+                       
+                       urlObj.path.absolute.string = path;
+                       urlObj.path.absolute.array = splitPath(path);
+               }
+               else
+               {
+                       // Resource-only
+                       urlObj.resource = path;
+                       urlObj.path.absolute.string = null;
+               }
+               
+               urlObj.extra.resourceIsIndex = isDirectoryIndex(urlObj.resource, options);
+       }
+       // Else: query/hash-only or empty
+}
 
-      var sources = Object.keys(this.sourceContents);
-      for (var i = 0, len = sources.length; i < len; i++) {
-        aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);
-      }
-    };
 
-  /**
-   * Return the string representation of this source node. Walks over the tree
-   * and concatenates all the various snippets together to one string.
-   */
-  SourceNode.prototype.toString = function SourceNode_toString() {
-    var str = "";
-    this.walk(function (chunk) {
-      str += chunk;
-    });
-    return str;
-  };
 
-  /**
-   * Returns the string representation of this source node along with a source
-   * map.
-   */
-  SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {
-    var generated = {
-      code: "",
-      line: 1,
-      column: 0
-    };
-    var map = new SourceMapGenerator(aArgs);
-    var sourceMappingActive = false;
-    var lastOriginalSource = null;
-    var lastOriginalLine = null;
-    var lastOriginalColumn = null;
-    var lastOriginalName = null;
-    this.walk(function (chunk, original) {
-      generated.code += chunk;
-      if (original.source !== null
-          && original.line !== null
-          && original.column !== null) {
-        if(lastOriginalSource !== original.source
-           || lastOriginalLine !== original.line
-           || lastOriginalColumn !== original.column
-           || lastOriginalName !== original.name) {
-          map.addMapping({
-            source: original.source,
-            original: {
-              line: original.line,
-              column: original.column
-            },
-            generated: {
-              line: generated.line,
-              column: generated.column
-            },
-            name: original.name
-          });
-        }
-        lastOriginalSource = original.source;
-        lastOriginalLine = original.line;
-        lastOriginalColumn = original.column;
-        lastOriginalName = original.name;
-        sourceMappingActive = true;
-      } else if (sourceMappingActive) {
-        map.addMapping({
-          generated: {
-            line: generated.line,
-            column: generated.column
-          }
-        });
-        lastOriginalSource = null;
-        sourceMappingActive = false;
-      }
-      for (var idx = 0, length = chunk.length; idx < length; idx++) {
-        if (chunk.charCodeAt(idx) === NEWLINE_CODE) {
-          generated.line++;
-          generated.column = 0;
-          // Mappings end at eol
-          if (idx + 1 === length) {
-            lastOriginalSource = null;
-            sourceMappingActive = false;
-          } else if (sourceMappingActive) {
-            map.addMapping({
-              source: original.source,
-              original: {
-                line: original.line,
-                column: original.column
-              },
-              generated: {
-                line: generated.line,
-                column: generated.column
-              },
-              name: original.name
-            });
-          }
-        } else {
-          generated.column++;
-        }
-      }
-    });
-    this.walkSourceContents(function (sourceFile, sourceContent) {
-      map.setSourceContent(sourceFile, sourceContent);
-    });
+function splitPath(path)
+{
+       // TWEAK :: condition only for speed optimization
+       if (path !== "/")
+       {
+               var cleaned = [];
+               
+               path.split("/").forEach( function(dir)
+               {
+                       // Cleanup -- splitting "/dir/" becomes ["","dir",""]
+                       if (dir !== "")
+                       {
+                               cleaned.push(dir);
+                       }
+               });
+               
+               return cleaned;
+       }
+       else
+       {
+               // Faster to skip the above block and just create an array
+               return [];
+       }
+}
 
-    return { code: generated.code, map: map };
-  };
 
-  exports.SourceNode = SourceNode;
 
-});
+module.exports = parsePath;
+
+},{}],113:[function(require,module,exports){
+"use strict";
+
+function parsePort(urlObj, options)
+{
+       var defaultPort = -1;
+       
+       for (var i in options.defaultPorts)
+       {
+               if ( i===urlObj.scheme && options.defaultPorts.hasOwnProperty(i) )
+               {
+                       defaultPort = options.defaultPorts[i];
+                       break;
+               }
+       }
+       
+       if (defaultPort > -1)
+       {
+               // Force same type as urlObj.port
+               defaultPort = defaultPort.toString();
+               
+               if (urlObj.port === null)
+               {
+                       urlObj.port = defaultPort;
+               }
+               
+               urlObj.extra.portIsDefault = (urlObj.port === defaultPort);
+       }
+}
+
+
+
+module.exports = parsePort;
+
+},{}],114:[function(require,module,exports){
+"use strict";
+
+function parseQuery(urlObj, options)
+{
+       urlObj.query.string.full = stringify(urlObj.query.object, false);
+       
+       // TWEAK :: condition only for speed optimization
+       if (options.removeEmptyQueries)
+       {
+               urlObj.query.string.stripped = stringify(urlObj.query.object, true);
+       }
+}
+
+
+
+function stringify(queryObj, removeEmptyQueries)
+{
+       var count = 0;
+       var str = "";
+       
+       for (var i in queryObj)
+       {
+               if ( i!=="" && queryObj.hasOwnProperty(i) )
+               {
+                       var value = queryObj[i];
+                       
+                       if (value !== "" || !removeEmptyQueries)
+                       {
+                               str += (++count===1) ? "?" : "&";
+                               
+                               i = encodeURIComponent(i);
+                               
+                               if (value !== "")
+                               {
+                                       str += i +"="+ encodeURIComponent(value).replace(/%20/g,"+");
+                               }
+                               else
+                               {
+                                       str += i;
+                               }
+                       }
+               }
+       }
+       
+       return str;
+}
+
+
+
+module.exports = parseQuery;
+
+},{}],115:[function(require,module,exports){
+"use strict";
+
+var _parseUrl = require("url").parse;
+
+
 
-},{"./source-map-generator":119,"./util":121,"amdefine":1}],121:[function(require,module,exports){
-/* -*- Mode: js; js-indent-level: 2; -*- */
 /*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-if (typeof define !== 'function') {
-    var define = require('amdefine')(module, require);
+       Customize the URL object that Node generates
+       because:
+       
+       * necessary data for later
+       * urlObj.host is useless
+       * urlObj.hostname is too long
+       * urlObj.path is useless
+       * urlObj.pathname is too long
+       * urlObj.protocol is inaccurate; should be called "scheme"
+       * urlObj.search is mostly useless
+*/
+function clean(urlObj)
+{
+       var scheme = urlObj.protocol;
+       
+       if (scheme)
+       {
+               // Remove ":" suffix
+               if (scheme.indexOf(":") === scheme.length-1)
+               {
+                       scheme = scheme.substr(0, scheme.length-1);
+               }
+       }
+       
+       urlObj.host =
+       {
+               // TODO :: unescape(encodeURIComponent(s)) ? ... http://ecmanaut.blogspot.ca/2006/07/encoding-decoding-utf8-in-javascript.html
+               full: urlObj.hostname,
+               stripped: null
+       };
+       
+       urlObj.path =
+       {
+               absolute:
+               {
+                       array: null,
+                       string: urlObj.pathname
+               },
+               relative:
+               {
+                       array: null,
+                       string: null
+               }
+       };
+       
+       urlObj.query =
+       {
+               object: urlObj.query,
+               string:
+               {
+                       full: null,
+                       stripped: null
+               }
+       };
+       
+       urlObj.extra =
+       {
+               hrefInfo:
+               {
+                       minimumPathOnly: null,
+                       minimumResourceOnly: null,
+                       minimumQueryOnly: null,
+                       minimumHashOnly: null,
+                       empty: null,
+                       
+                       separatorOnlyQuery: urlObj.search==="?"
+               },
+               portIsDefault: null,
+               relation:
+               {
+                       maximumScheme: null,
+                       maximumAuth: null,
+                       maximumHost: null,
+                       maximumPort: null,
+                       maximumPath: null,
+                       maximumResource: null,
+                       maximumQuery: null,
+                       maximumHash: null,
+                       
+                       minimumScheme: null,
+                       minimumAuth: null,
+                       minimumHost: null,
+                       minimumPort: null,
+                       minimumPath: null,
+                       minimumResource: null,
+                       minimumQuery: null,
+                       minimumHash: null,
+                       
+                       overridesQuery: null
+               },
+               resourceIsIndex: null,
+               slashes: urlObj.slashes
+       };
+       
+       urlObj.resource = null;
+       urlObj.scheme = scheme;
+       delete urlObj.hostname;
+       delete urlObj.pathname;
+       delete urlObj.protocol;
+       delete urlObj.search;
+       delete urlObj.slashes;
+       
+       return urlObj;
 }
-define(function (require, exports, module) {
 
-  /**
-   * This is a helper function for getting values from parameter/options
-   * objects.
-   *
-   * @param args The object we are extracting values from
-   * @param name The name of the property we are getting.
-   * @param defaultValue An optional value to return if the property is missing
-   * from the object. If this is not specified and the property is missing, an
-   * error will be thrown.
-   */
-  function getArg(aArgs, aName, aDefaultValue) {
-    if (aName in aArgs) {
-      return aArgs[aName];
-    } else if (arguments.length === 3) {
-      return aDefaultValue;
-    } else {
-      throw new Error('"' + aName + '" is a required argument.');
-    }
-  }
-  exports.getArg = getArg;
 
-  var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/;
-  var dataUrlRegexp = /^data:.+\,.+$/;
 
-  function urlParse(aUrl) {
-    var match = aUrl.match(urlRegexp);
-    if (!match) {
-      return null;
-    }
-    return {
-      scheme: match[1],
-      auth: match[2],
-      host: match[3],
-      port: match[4],
-      path: match[5]
-    };
-  }
-  exports.urlParse = urlParse;
+function validScheme(url, options)
+{
+       var valid = true;
+       
+       options.rejectedSchemes.every( function(rejectedScheme)
+       {
+               valid = !(url.indexOf(rejectedScheme+":") === 0);
+               
+               // Break loop
+               return valid;
+       });
+       
+       return valid;
+}
 
-  function urlGenerate(aParsedUrl) {
-    var url = '';
-    if (aParsedUrl.scheme) {
-      url += aParsedUrl.scheme + ':';
-    }
-    url += '//';
-    if (aParsedUrl.auth) {
-      url += aParsedUrl.auth + '@';
-    }
-    if (aParsedUrl.host) {
-      url += aParsedUrl.host;
-    }
-    if (aParsedUrl.port) {
-      url += ":" + aParsedUrl.port
-    }
-    if (aParsedUrl.path) {
-      url += aParsedUrl.path;
-    }
-    return url;
-  }
-  exports.urlGenerate = urlGenerate;
 
-  /**
-   * Normalizes a path, or the path portion of a URL:
-   *
-   * - Replaces consequtive slashes with one slash.
-   * - Removes unnecessary '.' parts.
-   * - Removes unnecessary '<dir>/..' parts.
-   *
-   * Based on code in the Node.js 'path' core module.
-   *
-   * @param aPath The path or url to normalize.
-   */
-  function normalize(aPath) {
-    var path = aPath;
-    var url = urlParse(aPath);
-    if (url) {
-      if (!url.path) {
-        return aPath;
-      }
-      path = url.path;
-    }
-    var isAbsolute = (path.charAt(0) === '/');
 
-    var parts = path.split(/\/+/);
-    for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {
-      part = parts[i];
-      if (part === '.') {
-        parts.splice(i, 1);
-      } else if (part === '..') {
-        up++;
-      } else if (up > 0) {
-        if (part === '') {
-          // The first part is blank if the path is absolute. Trying to go
-          // above the root is a no-op. Therefore we can remove all '..' parts
-          // directly after the root.
-          parts.splice(i + 1, up);
-          up = 0;
-        } else {
-          parts.splice(i, 2);
-          up--;
-        }
-      }
-    }
-    path = parts.join('/');
+function parseUrlString(url, options)
+{
+       if ( validScheme(url,options) )
+       {
+               return clean( _parseUrl(url, true, options.slashesDenoteHost) );
+       }
+       else
+       {
+               return {href:url, valid:false};
+       }
+}
+
+
+
+module.exports = parseUrlString;
+
+},{"url":141}],116:[function(require,module,exports){
+"use strict";
+
+var findRelation = require("./findRelation");
+var objUtils     = require("../util/object");
+var pathUtils    = require("../util/path");
+
+
+
+function absolutize(urlObj, siteUrlObj, options)
+{
+       findRelation.upToPath(urlObj, siteUrlObj, options);
+       
+       // Fill in relative URLs
+       if (urlObj.extra.relation.minimumScheme) urlObj.scheme = siteUrlObj.scheme;
+       if (urlObj.extra.relation.minimumAuth)   urlObj.auth   = siteUrlObj.auth;
+       if (urlObj.extra.relation.minimumHost)   urlObj.host   = objUtils.clone(siteUrlObj.host);
+       if (urlObj.extra.relation.minimumPort)   copyPort(urlObj, siteUrlObj);
+       if (urlObj.extra.relation.minimumScheme) copyPath(urlObj, siteUrlObj);
+       
+       // Check remaining relativeness now that path has been copied and/or resolved
+       findRelation.pathOn(urlObj, siteUrlObj, options);
+       
+       // Fill in relative URLs
+       if (urlObj.extra.relation.minimumResource) copyResource(urlObj, siteUrlObj);
+       if (urlObj.extra.relation.minimumQuery)    urlObj.query = objUtils.clone(siteUrlObj.query);
+       if (urlObj.extra.relation.minimumHash)     urlObj.hash  = siteUrlObj.hash;
+}
+
+
+
+/*
+       Get an absolute path that's relative to site url.
+*/
+function copyPath(urlObj, siteUrlObj)
+{
+       if (urlObj.extra.relation.maximumHost || !urlObj.extra.hrefInfo.minimumResourceOnly)
+       {
+               var pathArray = urlObj.path.absolute.array;
+               var pathString = "/";
+               
+               // If not erroneous URL
+               if (pathArray)
+               {
+                       // If is relative path
+                       if (urlObj.extra.hrefInfo.minimumPathOnly && urlObj.path.absolute.string.indexOf("/")!==0)
+                       {
+                               // Append path to site path
+                               pathArray = siteUrlObj.path.absolute.array.concat(pathArray);
+                       }
+                       
+                       pathArray   = pathUtils.resolveDotSegments(pathArray);
+                       pathString += pathUtils.join(pathArray);
+               }
+               else
+               {
+                       pathArray = [];
+               }
+               
+               urlObj.path.absolute.array  = pathArray;
+               urlObj.path.absolute.string = pathString;
+       }
+       else
+       {
+               // Resource-, query- or hash-only or empty
+               urlObj.path = objUtils.clone(siteUrlObj.path);
+       }
+}
+
+
+
+function copyPort(urlObj, siteUrlObj)
+{
+       urlObj.port = siteUrlObj.port;
+       
+       urlObj.extra.portIsDefault = siteUrlObj.extra.portIsDefault;
+}
+
+
+
+function copyResource(urlObj, siteUrlObj)
+{
+       urlObj.resource = siteUrlObj.resource;
+       
+       urlObj.extra.resourceIsIndex = siteUrlObj.extra.resourceIsIndex;
+}
+
+
+
+module.exports = absolutize;
+
+},{"../util/object":120,"../util/path":121,"./findRelation":117}],117:[function(require,module,exports){
+"use strict";
+
+function findRelation_upToPath(urlObj, siteUrlObj, options)
+{
+       // Path- or root-relative URL
+       var pathOnly = urlObj.extra.hrefInfo.minimumPathOnly;
+       
+       // Matching scheme, scheme-relative or path-only
+       var minimumScheme = (urlObj.scheme===siteUrlObj.scheme || !urlObj.scheme);
+       
+       // Matching auth, ignoring auth or path-only
+       var minimumAuth = minimumScheme && (urlObj.auth===siteUrlObj.auth || options.removeAuth || pathOnly);
+       
+       // Matching host or path-only
+       var www = options.ignore_www ? "stripped" : "full";
+       var minimumHost = minimumAuth && (urlObj.host[www]===siteUrlObj.host[www] || pathOnly);
+       
+       // Matching port or path-only
+       var minimumPort = minimumHost && (urlObj.port===siteUrlObj.port || pathOnly);
+       
+       urlObj.extra.relation.minimumScheme = minimumScheme;
+       urlObj.extra.relation.minimumAuth   = minimumAuth;
+       urlObj.extra.relation.minimumHost   = minimumHost;
+       urlObj.extra.relation.minimumPort   = minimumPort;
+       
+       urlObj.extra.relation.maximumScheme = !minimumScheme || minimumScheme && !minimumAuth;
+       urlObj.extra.relation.maximumAuth   = !minimumScheme || minimumScheme && !minimumHost;
+       urlObj.extra.relation.maximumHost   = !minimumScheme || minimumScheme && !minimumPort;
+}
+
+
+
+function findRelation_pathOn(urlObj, siteUrlObj, options)
+{
+       var queryOnly = urlObj.extra.hrefInfo.minimumQueryOnly;
+       var hashOnly  = urlObj.extra.hrefInfo.minimumHashOnly;
+       var empty     = urlObj.extra.hrefInfo.empty;    // not required, but self-documenting
+       
+       // From upToPath()
+       var minimumPort   = urlObj.extra.relation.minimumPort;
+       var minimumScheme = urlObj.extra.relation.minimumScheme;
+       
+       // Matching port and path
+       var minimumPath = minimumPort && urlObj.path.absolute.string===siteUrlObj.path.absolute.string;
+       
+       // Matching resource or query/hash-only or empty
+       var matchingResource = (urlObj.resource===siteUrlObj.resource || !urlObj.resource && siteUrlObj.extra.resourceIsIndex) || (options.removeDirectoryIndexes && urlObj.extra.resourceIsIndex && !siteUrlObj.resource);
+       var minimumResource = minimumPath && (matchingResource || queryOnly || hashOnly || empty);
+       
+       // Matching query or hash-only/empty
+       var query = options.removeEmptyQueries ? "stripped" : "full";
+       var urlQuery = urlObj.query.string[query];
+       var siteUrlQuery = siteUrlObj.query.string[query];
+       var minimumQuery = (minimumResource && !!urlQuery && urlQuery===siteUrlQuery) || ((hashOnly || empty) && !urlObj.extra.hrefInfo.separatorOnlyQuery);
+       
+       var minimumHash = minimumQuery && urlObj.hash===siteUrlObj.hash;
+       
+       urlObj.extra.relation.minimumPath     = minimumPath;
+       urlObj.extra.relation.minimumResource = minimumResource;
+       urlObj.extra.relation.minimumQuery    = minimumQuery;
+       urlObj.extra.relation.minimumHash     = minimumHash;
+       
+       urlObj.extra.relation.maximumPort     = !minimumScheme || minimumScheme && !minimumPath;
+       urlObj.extra.relation.maximumPath     = !minimumScheme || minimumScheme && !minimumResource;
+       urlObj.extra.relation.maximumResource = !minimumScheme || minimumScheme && !minimumQuery;
+       urlObj.extra.relation.maximumQuery    = !minimumScheme || minimumScheme && !minimumHash;
+       urlObj.extra.relation.maximumHash     = !minimumScheme || minimumScheme && !minimumHash;        // there's nothing after hash, so it's the same as maximumQuery
+       
+       // Matching path and/or resource with existing but non-matching site query
+       urlObj.extra.relation.overridesQuery  = minimumPath && urlObj.extra.relation.maximumResource && !minimumQuery && !!siteUrlQuery;
+}
+
 
-    if (path === '') {
-      path = isAbsolute ? '/' : '.';
-    }
 
-    if (url) {
-      url.path = path;
-      return urlGenerate(url);
-    }
-    return path;
-  }
-  exports.normalize = normalize;
+module.exports =
+{
+       pathOn:   findRelation_pathOn,
+       upToPath: findRelation_upToPath
+};
 
-  /**
-   * Joins two paths/URLs.
-   *
-   * @param aRoot The root path or URL.
-   * @param aPath The path or URL to be joined with the root.
-   *
-   * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a
-   *   scheme-relative URL: Then the scheme of aRoot, if any, is prepended
-   *   first.
-   * - Otherwise aPath is a path. If aRoot is a URL, then its path portion
-   *   is updated with the result and aRoot is returned. Otherwise the result
-   *   is returned.
-   *   - If aPath is absolute, the result is aPath.
-   *   - Otherwise the two paths are joined with a slash.
-   * - Joining for example 'http://' and 'www.example.com' is also supported.
-   */
-  function join(aRoot, aPath) {
-    if (aRoot === "") {
-      aRoot = ".";
-    }
-    if (aPath === "") {
-      aPath = ".";
-    }
-    var aPathUrl = urlParse(aPath);
-    var aRootUrl = urlParse(aRoot);
-    if (aRootUrl) {
-      aRoot = aRootUrl.path || '/';
-    }
+},{}],118:[function(require,module,exports){
+"use strict";
 
-    // `join(foo, '//www.example.org')`
-    if (aPathUrl && !aPathUrl.scheme) {
-      if (aRootUrl) {
-        aPathUrl.scheme = aRootUrl.scheme;
-      }
-      return urlGenerate(aPathUrl);
-    }
+var absolutize = require("./absolutize");
+var relativize = require("./relativize");
 
-    if (aPathUrl || aPath.match(dataUrlRegexp)) {
-      return aPath;
-    }
 
-    // `join('http://', 'www.example.com')`
-    if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {
-      aRootUrl.host = aPath;
-      return urlGenerate(aRootUrl);
-    }
 
-    var joined = aPath.charAt(0) === '/'
-      ? aPath
-      : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath);
+function relateUrl(siteUrlObj, urlObj, options)
+{
+       absolutize(urlObj, siteUrlObj, options);
+       relativize(urlObj, siteUrlObj, options);
+       
+       return urlObj;
+}
 
-    if (aRootUrl) {
-      aRootUrl.path = joined;
-      return urlGenerate(aRootUrl);
-    }
-    return joined;
-  }
-  exports.join = join;
 
-  /**
-   * Make a path relative to a URL or another path.
-   *
-   * @param aRoot The root path or URL.
-   * @param aPath The path or URL to be made relative to aRoot.
-   */
-  function relative(aRoot, aPath) {
-    if (aRoot === "") {
-      aRoot = ".";
-    }
 
-    aRoot = aRoot.replace(/\/$/, '');
+module.exports = relateUrl;
 
-    // It is possible for the path to be above the root. In this case, simply
-    // checking whether the root is a prefix of the path won't work. Instead, we
-    // need to remove components from the root one by one, until either we find
-    // a prefix that fits, or we run out of components to remove.
-    var level = 0;
-    while (aPath.indexOf(aRoot + '/') !== 0) {
-      var index = aRoot.lastIndexOf("/");
-      if (index < 0) {
-        return aPath;
-      }
+},{"./absolutize":116,"./relativize":119}],119:[function(require,module,exports){
+"use strict";
 
-      // If the only part of the root that is left is the scheme (i.e. http://,
-      // file:///, etc.), one or more slashes (/), or simply nothing at all, we
-      // have exhausted all components, so the path is not relative to the root.
-      aRoot = aRoot.slice(0, index);
-      if (aRoot.match(/^([^\/]+:\/)?\/*$/)) {
-        return aPath;
-      }
+var pathUtils = require("../util/path");
 
-      ++level;
-    }
 
-    // Make sure we add a "../" for each component we removed from the root.
-    return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1);
-  }
-  exports.relative = relative;
 
-  /**
-   * Because behavior goes wacky when you set `__proto__` on objects, we
-   * have to prefix all the strings in our set with an arbitrary character.
-   *
-   * See https://github.com/mozilla/source-map/pull/31 and
-   * https://github.com/mozilla/source-map/issues/30
-   *
-   * @param String aStr
-   */
-  function toSetString(aStr) {
-    return '$' + aStr;
-  }
-  exports.toSetString = toSetString;
+/*
+       Get a path relative to the site path.
+*/
+function relatePath(absolutePath, siteAbsolutePath)
+{
+       var relativePath = [];
+       
+       // At this point, it's related to the host/port
+       var related = true;
+       var parentIndex = -1;
+       
+       // Find parents
+       siteAbsolutePath.forEach( function(siteAbsoluteDir, i)
+       {
+               if (related)
+               {
+                       if (absolutePath[i] !== siteAbsoluteDir)
+                       {
+                               related = false;
+                       }
+                       else
+                       {
+                               parentIndex = i;
+                       }
+               }
+               
+               if (!related)
+               {
+                       // Up one level
+                       relativePath.push("..");
+               }
+       });
+       
+       // Form path
+       absolutePath.forEach( function(dir, i)
+       {
+               if (i > parentIndex)
+               {
+                       relativePath.push(dir);
+               }
+       });
+       
+       return relativePath;
+}
 
-  function fromSetString(aStr) {
-    return aStr.substr(1);
-  }
-  exports.fromSetString = fromSetString;
 
-  /**
-   * Comparator between two mappings where the original positions are compared.
-   *
-   * Optionally pass in `true` as `onlyCompareGenerated` to consider two
-   * mappings with the same original source/line/column, but different generated
-   * line and column the same. Useful when searching for a mapping with a
-   * stubbed out mapping.
-   */
-  function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {
-    var cmp = mappingA.source - mappingB.source;
-    if (cmp !== 0) {
-      return cmp;
-    }
 
-    cmp = mappingA.originalLine - mappingB.originalLine;
-    if (cmp !== 0) {
-      return cmp;
-    }
+function relativize(urlObj, siteUrlObj, options)
+{
+       if (urlObj.extra.relation.minimumScheme)
+       {
+               var pathArray = relatePath(urlObj.path.absolute.array, siteUrlObj.path.absolute.array);
+               
+               urlObj.path.relative.array  = pathArray;
+               urlObj.path.relative.string = pathUtils.join(pathArray);
+       }
+}
 
-    cmp = mappingA.originalColumn - mappingB.originalColumn;
-    if (cmp !== 0 || onlyCompareOriginal) {
-      return cmp;
-    }
 
-    cmp = mappingA.generatedColumn - mappingB.generatedColumn;
-    if (cmp !== 0) {
-      return cmp;
-    }
 
-    cmp = mappingA.generatedLine - mappingB.generatedLine;
-    if (cmp !== 0) {
-      return cmp;
-    }
+module.exports = relativize;
 
-    return mappingA.name - mappingB.name;
-  };
-  exports.compareByOriginalPositions = compareByOriginalPositions;
+},{"../util/path":121}],120:[function(require,module,exports){
+"use strict";
 
-  /**
-   * Comparator between two mappings with deflated source and name indices where
-   * the generated positions are compared.
-   *
-   * Optionally pass in `true` as `onlyCompareGenerated` to consider two
-   * mappings with the same generated line and column, but different
-   * source/name/original line and column the same. Useful when searching for a
-   * mapping with a stubbed out mapping.
-   */
-  function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {
-    var cmp = mappingA.generatedLine - mappingB.generatedLine;
-    if (cmp !== 0) {
-      return cmp;
-    }
+/*
+       Deep-clone an object.
+*/
+function clone(obj)
+{
+       if (obj instanceof Object)
+       {
+               var clonedObj = (obj instanceof Array) ? [] : {};
+               
+               for (var i in obj)
+               {
+                       if ( obj.hasOwnProperty(i) )
+                       {
+                               clonedObj[i] = clone( obj[i] );
+                       }
+               }
+               
+               return clonedObj;
+       }
+       
+       return obj;
+}
 
-    cmp = mappingA.generatedColumn - mappingB.generatedColumn;
-    if (cmp !== 0 || onlyCompareGenerated) {
-      return cmp;
-    }
 
-    cmp = mappingA.source - mappingB.source;
-    if (cmp !== 0) {
-      return cmp;
-    }
 
-    cmp = mappingA.originalLine - mappingB.originalLine;
-    if (cmp !== 0) {
-      return cmp;
-    }
+/*
+       https://github.com/jonschlinkert/is-plain-object
+*/
+function isPlainObject(obj)
+{
+       return !!obj && typeof obj==="object" && obj.constructor===Object;
+}
 
-    cmp = mappingA.originalColumn - mappingB.originalColumn;
-    if (cmp !== 0) {
-      return cmp;
-    }
 
-    return mappingA.name - mappingB.name;
-  };
-  exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;
 
-  function strcmp(aStr1, aStr2) {
-    if (aStr1 === aStr2) {
-      return 0;
-    }
+/*
+       Shallow-merge two objects.
+*/
+function shallowMerge(target, source)
+{
+       if (target instanceof Object && source instanceof Object)
+       {
+               for (var i in source)
+               {
+                       if ( source.hasOwnProperty(i) )
+                       {
+                               target[i] = source[i];
+                       }
+               }
+       }
+       
+       return target;
+}
 
-    if (aStr1 > aStr2) {
-      return 1;
-    }
 
-    return -1;
-  }
 
-  /**
-   * Comparator between two mappings with inflated source and name strings where
-   * the generated positions are compared.
-   */
-  function compareByGeneratedPositionsInflated(mappingA, mappingB) {
-    var cmp = mappingA.generatedLine - mappingB.generatedLine;
-    if (cmp !== 0) {
-      return cmp;
-    }
+module.exports =
+{
+       clone: clone,
+       isPlainObject: isPlainObject,
+       shallowMerge: shallowMerge
+};
 
-    cmp = mappingA.generatedColumn - mappingB.generatedColumn;
-    if (cmp !== 0) {
-      return cmp;
-    }
+},{}],121:[function(require,module,exports){
+"use strict";
 
-    cmp = strcmp(mappingA.source, mappingB.source);
-    if (cmp !== 0) {
-      return cmp;
-    }
+function joinPath(pathArray)
+{
+       if (pathArray.length)
+       {
+               return pathArray.join("/") + "/";
+       }
+       else
+       {
+               return "";
+       }
+}
 
-    cmp = mappingA.originalLine - mappingB.originalLine;
-    if (cmp !== 0) {
-      return cmp;
-    }
 
-    cmp = mappingA.originalColumn - mappingB.originalColumn;
-    if (cmp !== 0) {
-      return cmp;
-    }
 
-    return strcmp(mappingA.name, mappingB.name);
-  };
-  exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;
+function resolveDotSegments(pathArray)
+{
+       var pathAbsolute = [];
+       
+       pathArray.forEach( function(dir)
+       {
+               if (dir !== "..")
+               {
+                       if (dir !== ".")
+                       {
+                               pathAbsolute.push(dir);
+                       }
+               }
+               else
+               {
+                       // Remove parent
+                       if (pathAbsolute.length)
+                       {
+                               pathAbsolute.splice(pathAbsolute.length-1, 1);
+                       }
+               }
+       });
+       
+       return pathAbsolute;
+}
 
-});
 
-},{"amdefine":1}],122:[function(require,module,exports){
+
+module.exports =
+{
+       join: joinPath,
+       resolveDotSegments: resolveDotSegments
+};
+
+},{}],122:[function(require,module,exports){
 // Copyright Joyent, Inc. and other Node contributors.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a
@@ -17213,7 +17213,7 @@ Stream.prototype.pipe = function(dest, options) {
   return dest;
 };
 
-},{"events":68,"inherits":72,"readable-stream/duplex.js":84,"readable-stream/passthrough.js":90,"readable-stream/readable.js":91,"readable-stream/transform.js":92,"readable-stream/writable.js":93}],123:[function(require,module,exports){
+},{"events":79,"inherits":83,"readable-stream/duplex.js":95,"readable-stream/passthrough.js":101,"readable-stream/readable.js":102,"readable-stream/transform.js":103,"readable-stream/writable.js":104}],123:[function(require,module,exports){
 (function (global){
 var ClientRequest = require('./lib/request')
 var extend = require('xtend')
@@ -17621,7 +17621,7 @@ var unsafeHeaders = [
 ]
 
 }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer)
-},{"./capability":124,"./response":126,"_process":79,"buffer":5,"inherits":72,"stream":122,"to-arraybuffer":128}],126:[function(require,module,exports){
+},{"./capability":124,"./response":126,"_process":90,"buffer":5,"inherits":83,"stream":122,"to-arraybuffer":128}],126:[function(require,module,exports){
 (function (process,global,Buffer){
 var capability = require('./capability')
 var inherits = require('inherits')
@@ -17803,7 +17803,7 @@ IncomingMessage.prototype._onXHRProgress = function () {
 }
 
 }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer)
-},{"./capability":124,"_process":79,"buffer":5,"inherits":72,"stream":122}],127:[function(require,module,exports){
+},{"./capability":124,"_process":90,"buffer":5,"inherits":83,"stream":122}],127:[function(require,module,exports){
 // Copyright Joyent, Inc. and other Node contributors.
 //
 // Permission is hereby granted, free of charge, to any person obtaining a
@@ -30698,7 +30698,7 @@ Url.prototype.parseHost = function() {
   if (host) this.hostname = host;
 };
 
-},{"./util":142,"punycode":80,"querystring":83}],142:[function(require,module,exports){
+},{"./util":142,"punycode":91,"querystring":94}],142:[function(require,module,exports){
 'use strict';
 
 module.exports = {
@@ -31384,7 +31384,7 @@ function hasOwnProperty(obj, prop) {
 }
 
 }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"./support/isBuffer":144,"_process":79,"inherits":72}],146:[function(require,module,exports){
+},{"./support/isBuffer":144,"_process":90,"inherits":83}],146:[function(require,module,exports){
 exports.baseChar = /[A-Za-z\xC0-\xD6\xD8-\xF6\xF8-\u0131\u0134-\u013E\u0141-\u0148\u014A-\u017E\u0180-\u01C3\u01CD-\u01F0\u01F4\u01F5\u01FA-\u0217\u0250-\u02A8\u02BB-\u02C1\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03CE\u03D0-\u03D6\u03DA\u03DC\u03DE\u03E0\u03E2-\u03F3\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E-\u0481\u0490-\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0-\u04EB\u04EE-\u04F5\u04F8\u04F9\u0531-\u0556\u0559\u0561-\u0586\u05D0-\u05EA\u05F0-\u05F2\u0621-\u063A\u0641-\u064A\u0671-\u06B7\u06BA-\u06BE\u06C0-\u06CE\u06D0-\u06D3\u06D5\u06E5\u06E6\u0905-\u0939\u093D\u0958-\u0961\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\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-\u0A8B\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AE0\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B36-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB5\u0BB7-\u0BB9\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CDE\u0CE0\u0CE1\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D60\u0D61\u0E01-\u0E2E\u0E30\u0E32\u0E33\u0E40-\u0E45\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0F40-\u0F47\u0F49-\u0F69\u10A0-\u10C5\u10D0-\u10F6\u1100\u1102\u1103\u1105-\u1107\u1109\u110B\u110C\u110E-\u1112\u113C\u113E\u1140\u114C\u114E\u1150\u1154\u1155\u1159\u115F-\u1161\u1163\u1165\u1167\u1169\u116D\u116E\u1172\u1173\u1175\u119E\u11A8\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BC-\u11C2\u11EB\u11F0\u11F9\u1E00-\u1E9B\u1EA0-\u1EF9\u1F00-\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\u2126\u212A\u212B\u212E\u2180-\u2182\u3041-\u3094\u30A1-\u30FA\u3105-\u312C\uAC00-\uD7A3]/;
 
 exports.ideographic = /[\u3007\u3021-\u3029\u4E00-\u9FA5]/;
@@ -31948,7 +31948,7 @@ exports.HTMLtoDOM = function(html, doc) {
   return doc;
 };
 
-},{"./utils":150,"ncname":75}],149:[function(require,module,exports){
+},{"./utils":150,"ncname":86}],149:[function(require,module,exports){
 'use strict';
 
 function Sorter(tokens) {
@@ -32028,185 +32028,6 @@ exports.createMapFromString = function(values, ignoreCase) {
   return createMap(values.split(/,/), ignoreCase);
 };
 
-},{}],"html-minifier/src/htmllint":[function(require,module,exports){
-/*!
- * HTMLLint (to be used in conjunction with HTMLMinifier)
- *
- * Copyright (c) 2010-2016 Juriy "kangax" Zaytsev
- * Licensed under the MIT license.
- *
- */
-
-'use strict';
-
-function isPresentationalElement(tag) {
-  return /^(?:big|small|hr|blink|marquee)$/.test(tag);
-}
-function isDeprecatedElement(tag) {
-  return /^(?:applet|basefont|center|dir|font|isindex|strike)$/.test(tag);
-}
-function isEventAttribute(attrName) {
-  return /^on[a-z]+/.test(attrName);
-}
-function isStyleAttribute(attrName) {
-  return attrName.toLowerCase() === 'style';
-}
-function isDeprecatedAttribute(tag, attrName) {
-  return (
-    attrName === 'align' &&
-    /^(?:caption|applet|iframe|img|imput|object|legend|table|hr|div|h[1-6]|p)$/.test(tag) ||
-    attrName === 'alink' && tag === 'body' ||
-    attrName === 'alt' && tag === 'applet' ||
-    attrName === 'archive' && tag === 'applet' ||
-    attrName === 'background' && tag === 'body' ||
-    attrName === 'bgcolor' && /^(?:table|t[rdh]|body)$/.test(tag) ||
-    attrName === 'border' && /^(?:img|object)$/.test(tag) ||
-    attrName === 'clear' && tag === 'br' ||
-    attrName === 'code' && tag === 'applet' ||
-    attrName === 'codebase' && tag === 'applet' ||
-    attrName === 'color' && /^(?:base(?:font)?)$/.test(tag) ||
-    attrName === 'compact' && /^(?:dir|[dou]l|menu)$/.test(tag) ||
-    attrName === 'face' && /^base(?:font)?$/.test(tag) ||
-    attrName === 'height' && /^(?:t[dh]|applet)$/.test(tag) ||
-    attrName === 'hspace' && /^(?:applet|img|object)$/.test(tag) ||
-    attrName === 'language' && tag === 'script' ||
-    attrName === 'link' && tag === 'body' ||
-    attrName === 'name' && tag === 'applet' ||
-    attrName === 'noshade' && tag === 'hr' ||
-    attrName === 'nowrap' && /^t[dh]$/.test(tag) ||
-    attrName === 'object' && tag === 'applet' ||
-    attrName === 'prompt' && tag === 'isindex' ||
-    attrName === 'size' && /^(?:hr|font|basefont)$/.test(tag) ||
-    attrName === 'start' && tag === 'ol' ||
-    attrName === 'text' && tag === 'body' ||
-    attrName === 'type' && /^(?:li|ol|ul)$/.test(tag) ||
-    attrName === 'value' && tag === 'li' ||
-    attrName === 'version' && tag === 'html' ||
-    attrName === 'vlink' && tag === 'body' ||
-    attrName === 'vspace' && /^(?:applet|img|object)$/.test(tag) ||
-    attrName === 'width' && /^(?:hr|td|th|applet|pre)$/.test(tag)
-  );
-}
-function isInaccessibleAttribute(attrName, attrValue) {
-  return attrName === 'href' && /^\s*javascript\s*:\s*void\s*(\s+0|\(\s*0\s*\))\s*$/i.test(attrValue);
-}
-
-function Lint() {
-  this.log = [];
-  this._lastElement = null;
-  this._isElementRepeated = false;
-}
-
-Lint.prototype.testElement = function(tag) {
-  this._attributes = Object.create(null);
-  if (isDeprecatedElement(tag)) {
-    this.log.push(
-      'Found <span class="deprecated-element">deprecated</span> <strong><code>&lt;' +
-        tag + '&gt;</code></strong> element'
-    );
-  }
-  else if (isPresentationalElement(tag)) {
-    this.log.push(
-      'Found <span class="presentational-element">presentational</span> <strong><code>&lt;' +
-        tag + '&gt;</code></strong> element'
-    );
-  }
-  else {
-    this.checkRepeatingElement(tag);
-  }
-};
-
-Lint.prototype.checkRepeatingElement = function(tag) {
-  if (tag === 'br' && this._lastElement === 'br') {
-    this._isElementRepeated = true;
-  }
-  else if (this._isElementRepeated) {
-    this._reportRepeatingElement();
-    this._isElementRepeated = false;
-  }
-  this._lastElement = tag;
-};
-
-Lint.prototype._reportRepeatingElement = function() {
-  this.log.push('Found <code>&lt;br></code> sequence. Try replacing it with styling.');
-};
-
-Lint.prototype.testAttribute = function(tag, attrName, attrValue) {
-  if (this._attributes[attrName]) {
-    this.log.push(
-      'Found <span class="repeating-attribute">repeating attribute</span> (<strong>' +
-      attrName + '</strong>) on <strong><code>&lt;' + tag + '&gt;</code></strong> element.'
-    );
-  }
-  else {
-    this._attributes[attrName] = true;
-  }
-  if (isEventAttribute(attrName)) {
-    this.log.push(
-      'Found <span class="event-attribute">event attribute</span> (<strong>' +
-      attrName + '</strong>) on <strong><code>&lt;' + tag + '&gt;</code></strong> element.'
-    );
-  }
-  else if (isDeprecatedAttribute(tag, attrName)) {
-    this.log.push(
-      'Found <span class="deprecated-attribute">deprecated</span> <strong>' +
-        attrName + '</strong> attribute on <strong><code>&lt;' + tag + '&gt;</code></strong> element.'
-    );
-  }
-  else if (isStyleAttribute(attrName)) {
-    this.log.push(
-      'Found <span class="style-attribute">style attribute</span> on <strong><code>&lt;' +
-        tag + '&gt;</code></strong> element.'
-    );
-  }
-  else if (isInaccessibleAttribute(attrName, attrValue)) {
-    this.log.push(
-      'Found <span class="inaccessible-attribute">inaccessible attribute</span> ' +
-        '(on <strong><code>&lt;' + tag + '&gt;</code></strong> element).'
-    );
-  }
-};
-
-Lint.prototype.testChars = function(chars) {
-  this._lastElement = '';
-  if (/(&nbsp;\s*){2,}/.test(chars)) {
-    this.log.push('Found repeating <strong><code>&amp;nbsp;</code></strong> sequence. Try replacing it with styling.');
-  }
-};
-
-Lint.prototype.test = function(tag, attrName, attrValue) {
-  this.testElement(tag);
-  this.testAttribute(tag, attrName, attrValue);
-};
-
-Lint.prototype.testDoctype = function(doctype) {
-  this._doctype = doctype;
-};
-
-Lint.prototype.populate = function(writeToElement) {
-  if (!this._doctype) {
-    this.log.push('No DOCTYPE found.');
-  }
-
-  if (this._isElementRepeated) {
-    this._reportRepeatingElement();
-  }
-
-  var output;
-  if (writeToElement) {
-    output = this.log.map(function(line) {
-      return '<li>' + line + '</li>';
-    }).join('');
-    writeToElement.innerHTML = '<ol>' + output + '</ol>';
-  }
-  else if (this.log.length) {
-    output = this.log.join('\n - ').replace(/<[^>]+>/g, '');
-    console.log(' - ' + output.replace(/&lt;/g, '<').replace(/&gt;/g, '>'));
-  }
-};
-
-exports.HTMLLint = Lint;
-
 },{}],"html-minifier":[function(require,module,exports){
 'use strict';
 
@@ -32280,9 +32101,9 @@ function collapseWhitespace(str, options, trimLeft, trimRight, collapseAll) {
 
 var createMapFromString = utils.createMapFromString;
 // non-empty tags that will maintain whitespace around them
-var inlineTags = createMapFromString('a,abbr,acronym,b,bdi,bdo,big,button,cite,code,del,dfn,em,font,i,ins,kbd,mark,math,q,rt,rp,s,samp,small,span,strike,strong,sub,sup,svg,time,tt,u,var');
+var inlineTags = createMapFromString('a,abbr,acronym,b,bdi,bdo,big,button,cite,code,del,dfn,em,font,i,ins,kbd,mark,math,nobr,q,rt,rp,s,samp,small,span,strike,strong,sub,sup,svg,time,tt,u,var');
 // non-empty tags that will maintain whitespace within them
-var inlineTextTags = createMapFromString('a,abbr,acronym,b,big,del,em,font,i,ins,kbd,mark,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var');
+var inlineTextTags = createMapFromString('a,abbr,acronym,b,big,del,em,font,i,ins,kbd,mark,nobr,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var');
 // self-closing tags that will maintain whitespace around them
 var selfClosingInlineTags = createMapFromString('comment,img,input');
 
@@ -32505,7 +32326,7 @@ function cleanAttributeValue(tag, attrName, attrValue, options, attrs) {
       attrValue = attrValue.replace(/\s*;$/, '');
     }
     if (options.minifyCSS) {
-      return minifyCSS(attrValue, options.minifyCSS, true);
+      return minifyStyles(attrValue, options, true);
     }
     return attrValue;
   }
@@ -32800,9 +32621,11 @@ function buildAttr(normalized, hasUnarySlash, options, isLast) {
 }
 
 function processOptions(options) {
-  if (!('includeAutoGeneratedTags' in options)) {
-    options.includeAutoGeneratedTags = true;
-  }
+  ['html5', 'includeAutoGeneratedTags'].forEach(function(key) {
+    if (!(key in options)) {
+      options[key] = true;
+    }
+  });
 
   var defaultTesters = ['canCollapseWhitespace', 'canTrimWhitespace'];
   for (var i = 0, len = defaultTesters.length; i < len; i++) {
@@ -32873,6 +32696,15 @@ function minifyCSS(text, options, inline) {
   }
 }
 
+function minifyStyles(text, options, inline) {
+  if (options.minifyURLs) {
+    text = text.replace(/(url\s*\(\s*)("|'|)(.*?)\2(\s*\))/ig, function(match, prefix, quote, url, suffix) {
+      return prefix + quote + minifyURLs(url, options.minifyURLs) + quote + suffix;
+    });
+  }
+  return minifyCSS(text, options.minifyCSS, inline);
+}
+
 function uniqueId(value) {
   var id;
   do {
@@ -32980,7 +32812,6 @@ function minify(value, options, partialMarkup) {
       stackNoCollapseWhitespace = [],
       optionalStartTag = '',
       optionalEndTag = '',
-      lint = options.lint,
       t = Date.now(),
       ignoredMarkupChunks = [],
       ignoredCustomMarkupChunks = [],
@@ -33022,7 +32853,6 @@ function minify(value, options, partialMarkup) {
   if (options.sortAttributes && typeof options.sortAttributes !== 'function' ||
       options.sortClassName && typeof options.sortClassName !== 'function') {
     createSortFns(value, options, uidIgnore, uidAttr);
-    lint = null;
   }
 
   function _canCollapseWhitespace(tag, attrs) {
@@ -33049,28 +32879,37 @@ function minify(value, options, partialMarkup) {
     buffer.length = Math.max(0, index);
   }
 
+  // look for trailing whitespaces, bypass any inline tags
+  function trimTrailingWhitespace(index, nextTag) {
+    for (var endTag = null; index >= 0 && _canTrimWhitespace(endTag); index--) {
+      var str = buffer[index];
+      var match = str.match(/^<\/([\w:-]+)>$/);
+      if (match) {
+        endTag = match[1];
+      }
+      else if (/>$/.test(str) || (buffer[index] = collapseWhitespaceSmart(str, null, nextTag, options))) {
+        break;
+      }
+    }
+  }
+
   // look for trailing whitespaces from previously processed text
   // which may not be trimmed due to a following comment or an empty
   // element which has now been removed
   function squashTrailingWhitespace(nextTag) {
-    var charsIndex;
-    if (buffer.length > 1 && /^(?:<!|$)/.test(buffer[buffer.length - 1]) &&
-        /\s$/.test(buffer[buffer.length - 2])) {
-      charsIndex = buffer.length - 2;
-    }
-    else if (buffer.length > 0 && /\s$/.test(buffer[buffer.length - 1])) {
-      charsIndex = buffer.length - 1;
-    }
-    if (charsIndex > 0) {
-      buffer[charsIndex] = buffer[charsIndex].replace(/\s+$/, function(text) {
-        return collapseWhitespaceSmart(text, 'comment', nextTag, options);
-      });
+    var charsIndex = buffer.length - 1;
+    if (buffer.length > 1) {
+      var item = buffer[buffer.length - 1];
+      if (/^(?:<!|$)/.test(item) && item.indexOf(uidIgnore) === -1) {
+        charsIndex--;
+      }
     }
+    trimTrailingWhitespace(charsIndex, nextTag);
   }
 
   new HTMLParser(value, {
     partialMarkup: partialMarkup,
-    html5: typeof options.html5 === 'undefined' ? true : options.html5,
+    html5: options.html5,
 
     start: function(tag, attrs, unary, unarySlash, autoGenerated) {
       var lowerTag = tag.toLowerCase();
@@ -33136,21 +32975,13 @@ function minify(value, options, partialMarkup) {
 
       buffer.push(openTag);
 
-      if (lint) {
-        lint.testElement(tag);
-      }
-
       if (options.sortAttributes) {
         options.sortAttributes(tag, attrs);
       }
 
       var parts = [];
       for (var i = attrs.length, isLast = true; --i >= 0;) {
-        var attr = attrs[i];
-        if (lint) {
-          lint.testAttribute(tag, attr.name.toLowerCase(), attr.value);
-        }
-        var normalized = normalizeAttr(attr, attrs, tag, options);
+        var normalized = normalizeAttr(attrs[i], attrs, tag, options);
         if (normalized) {
           parts.unshift(buildAttr(normalized, hasUnarySlash, options, isLast));
           isLast = false;
@@ -33169,6 +33000,7 @@ function minify(value, options, partialMarkup) {
 
       if (autoGenerated && !options.includeAutoGeneratedTags) {
         removeStartTag();
+        optionalStartTag = '';
       }
     },
     end: function(tag, attrs, autoGenerated) {
@@ -33223,7 +33055,10 @@ function minify(value, options, partialMarkup) {
         optionalEndTag = '';
       }
       else {
-        if (options.includeAutoGeneratedTags || !autoGenerated) {
+        if (autoGenerated && !options.includeAutoGeneratedTags) {
+          optionalEndTag = '';
+        }
+        else {
           buffer.push('</' + tag + '>');
         }
         charsPrevTag = '/' + tag;
@@ -33256,21 +33091,19 @@ function minify(value, options, partialMarkup) {
               });
             }
           }
-          if (prevTag && inlineTextTags(prevTag.charAt(0) === '/' ? prevTag.slice(1) : prevTag)) {
-            text = collapseWhitespace(text, options, /(?:^|\s)$/.test(currentChars));
+          if (prevTag) {
+            if (prevTag === '/nobr') {
+              if (/^\s/.test(text)) {
+                trimTrailingWhitespace(buffer.length - 1, 'br');
+              }
+            }
+            else if (inlineTextTags(prevTag.charAt(0) === '/' ? prevTag.slice(1) : prevTag)) {
+              text = collapseWhitespace(text, options, /(?:^|\s)$/.test(currentChars));
+            }
           }
           text = prevTag || nextTag ? collapseWhitespaceSmart(text, prevTag, nextTag, options) : trimWhitespace(text);
           if (!text && /\s$/.test(currentChars) && prevTag && prevTag.charAt(0) === '/') {
-            for (var index = buffer.length - 2, endTag = prevTag.slice(1); index >= 0 && _canTrimWhitespace(endTag); index--) {
-              var str = buffer[index];
-              var match = str.match(/^<\/([\w:-]+)>$/);
-              if (match) {
-                endTag = match[1];
-              }
-              else if (/>$/.test(str) || (buffer[index] = collapseWhitespaceSmart(str, null, nextTag, options))) {
-                break;
-              }
-            }
+            trimTrailingWhitespace(buffer.length - 1, nextTag);
           }
         }
         if (!stackNoCollapseWhitespace.length) {
@@ -33287,7 +33120,7 @@ function minify(value, options, partialMarkup) {
         }
       }
       if (options.minifyCSS && isStyleSheet(currentTag, currentAttrs)) {
-        text = minifyCSS(text, options.minifyCSS);
+        text = minifyStyles(text, options);
       }
       if (options.removeOptionalTags && text) {
         // <html> may be omitted if first thing inside is not comment
@@ -33313,9 +33146,6 @@ function minify(value, options, partialMarkup) {
       if (text) {
         hasChars = true;
       }
-      if (lint) {
-        lint.testChars(text);
-      }
       buffer.push(text);
     },
     comment: function(text, nonStandard) {
@@ -33343,9 +33173,6 @@ function minify(value, options, partialMarkup) {
       buffer.push(text);
     },
     doctype: function(doctype) {
-      if (lint) {
-        lint.testDoctype(doctype);
-      }
       buffer.push(options.useShortDoctype ? '<!DOCTYPE html>' : collapseWhitespaceAll(doctype));
     },
     customAttrAssign: options.customAttrAssign,
@@ -33363,6 +33190,9 @@ function minify(value, options, partialMarkup) {
       removeEndTag();
     }
   }
+  if (options.collapseWhitespace) {
+    squashTrailingWhitespace('br');
+  }
 
   var str = joinResultSegments(buffer, options);
 
@@ -33426,4 +33256,4 @@ exports.minify = function(value, options) {
   return minify(value, options);
 };
 
-},{"./htmlparser":148,"./tokenchain":149,"./utils":150,"clean-css":7,"he":69,"relateurl":96,"uglify-js":140}]},{},["html-minifier"]);
+},{"./htmlparser":148,"./tokenchain":149,"./utils":150,"clean-css":7,"he":80,"relateurl":107,"uglify-js":140}]},{},["html-minifier"]);
index f42fecd..32d3feb 100644 (file)
@@ -3,18 +3,18 @@
  * Copyright 2010-2016 Juriy "kangax" Zaytsev
  * Licensed under the MIT license
  */
-require=function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){(function(c,d){"use strict";function e(b,e){function f(a){var b,c;for(b=0;a[b];b+=1)if(c=a[b],"."===c)a.splice(b,1),b-=1;else if(".."===c){if(1===b&&(".."===a[2]||".."===a[0]))break;b>0&&(a.splice(b-1,2),b-=2)}}function g(a,b){var c;return a&&"."===a.charAt(0)&&b&&(c=b.split("/"),c=c.slice(0,c.length-1),c=c.concat(a.split("/")),f(c),a=c.join("/")),a}function h(a){return function(b){return g(b,a)}}function i(a){function b(b){o[a]=b}return b.fromText=function(a,b){throw new Error("amdefine does not implement load.fromText")},b}function j(a,c,f){var g,h,i,j;if(a)h=o[a]={},i={id:a,uri:d,exports:h},g=l(e,h,i,a);else{if(p)throw new Error("amdefine with no module ID cannot be called more than once per file.");p=!0,h=b.exports,i=b,g=l(e,h,i,b.id)}c&&(c=c.map(function(a){return g(a)})),j="function"==typeof f?f.apply(i.exports,c):f,void 0!==j&&(i.exports=j,a&&(o[a]=i.exports))}function k(a,b,c){Array.isArray(a)?(c=b,b=a,a=void 0):"string"!=typeof a&&(c=a,a=b=void 0),b&&!Array.isArray(b)&&(c=b,b=void 0),b||(b=["require","exports","module"]),a?n[a]=[a,b,c]:j(a,b,c)}var l,m,n={},o={},p=!1,q=a("path");return l=function(a,b,d,e){function f(f,g){return"string"==typeof f?m(a,b,d,f,e):(f=f.map(function(c){return m(a,b,d,c,e)}),void(g&&c.nextTick(function(){g.apply(null,f)})))}return f.toUrl=function(a){return 0===a.indexOf(".")?g(a,q.dirname(d.filename)):a},f},e=e||function(){return b.require.apply(b,arguments)},m=function(a,b,c,d,e){var f,k,p=d.indexOf("!"),q=d;if(-1===p){if(d=g(d,e),"require"===d)return l(a,b,c,e);if("exports"===d)return b;if("module"===d)return c;if(o.hasOwnProperty(d))return o[d];if(n[d])return j.apply(null,n[d]),o[d];if(a)return a(q);throw new Error("No module with ID: "+d)}return f=d.substring(0,p),d=d.substring(p+1,d.length),k=m(a,b,c,f,e),d=k.normalize?k.normalize(d,h(e)):g(d,e),o[d]?o[d]:(k.load(d,l(a,b,c,e),i(d),{}),o[d])},k.require=function(a){return o[a]?o[a]:n[a]?(j.apply(null,n[a]),o[a]):void 0},k.amd={},k}b.exports=e}).call(this,a("_process"),"/node_modules\\amdefine\\amdefine.js")},{_process:79,path:77}],2:[function(a,b,c){"use strict";function d(){for(var a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",b=0,c=a.length;c>b;++b)i[b]=a[b],j[a.charCodeAt(b)]=b;j["-".charCodeAt(0)]=62,j["_".charCodeAt(0)]=63}function e(a){var b,c,d,e,f,g,h=a.length;if(h%4>0)throw new Error("Invalid string. Length must be a multiple of 4");f="="===a[h-2]?2:"="===a[h-1]?1:0,g=new k(3*h/4-f),d=f>0?h-4:h;var i=0;for(b=0,c=0;d>b;b+=4,c+=3)e=j[a.charCodeAt(b)]<<18|j[a.charCodeAt(b+1)]<<12|j[a.charCodeAt(b+2)]<<6|j[a.charCodeAt(b+3)],g[i++]=e>>16&255,g[i++]=e>>8&255,g[i++]=255&e;return 2===f?(e=j[a.charCodeAt(b)]<<2|j[a.charCodeAt(b+1)]>>4,g[i++]=255&e):1===f&&(e=j[a.charCodeAt(b)]<<10|j[a.charCodeAt(b+1)]<<4|j[a.charCodeAt(b+2)]>>2,g[i++]=e>>8&255,g[i++]=255&e),g}function f(a){return i[a>>18&63]+i[a>>12&63]+i[a>>6&63]+i[63&a]}function g(a,b,c){for(var d,e=[],g=b;c>g;g+=3)d=(a[g]<<16)+(a[g+1]<<8)+a[g+2],e.push(f(d));return e.join("")}function h(a){for(var b,c=a.length,d=c%3,e="",f=[],h=16383,j=0,k=c-d;k>j;j+=h)f.push(g(a,j,j+h>k?k:j+h));return 1===d?(b=a[c-1],e+=i[b>>2],e+=i[b<<4&63],e+="=="):2===d&&(b=(a[c-2]<<8)+a[c-1],e+=i[b>>10],e+=i[b>>4&63],e+=i[b<<2&63],e+="="),f.push(e),f.join("")}c.toByteArray=e,c.fromByteArray=h;var i=[],j=[],k="undefined"!=typeof Uint8Array?Uint8Array:Array;d()},{}],3:[function(a,b,c){},{}],4:[function(a,b,c){arguments[4][3][0].apply(c,arguments)},{dup:3}],5:[function(a,b,c){(function(b){"use strict";function d(){try{var a=new Uint8Array(1);return a.foo=function(){return 42},42===a.foo()&&"function"==typeof a.subarray&&0===a.subarray(1,1).byteLength}catch(b){return!1}}function e(){return f.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function f(a){return this instanceof f?(f.TYPED_ARRAY_SUPPORT||(this.length=0,this.parent=void 0),"number"==typeof a?g(this,a):"string"==typeof a?h(this,a,arguments.length>1?arguments[1]:"utf8"):i(this,a)):arguments.length>1?new f(a,arguments[1]):new f(a)}function g(a,b){if(a=p(a,0>b?0:0|q(b)),!f.TYPED_ARRAY_SUPPORT)for(var c=0;b>c;c++)a[c]=0;return a}function h(a,b,c){"string"==typeof c&&""!==c||(c="utf8");var d=0|s(b,c);return a=p(a,d),a.write(b,c),a}function i(a,b){if(f.isBuffer(b))return j(a,b);if(Y(b))return k(a,b);if(null==b)throw new TypeError("must start with number, buffer, array or string");if("undefined"!=typeof ArrayBuffer){if(b.buffer instanceof ArrayBuffer)return l(a,b);if(b instanceof ArrayBuffer)return m(a,b)}return b.length?n(a,b):o(a,b)}function j(a,b){var c=0|q(b.length);return a=p(a,c),b.copy(a,0,0,c),a}function k(a,b){var c=0|q(b.length);a=p(a,c);for(var d=0;c>d;d+=1)a[d]=255&b[d];return a}function l(a,b){var c=0|q(b.length);a=p(a,c);for(var d=0;c>d;d+=1)a[d]=255&b[d];return a}function m(a,b){return b.byteLength,f.TYPED_ARRAY_SUPPORT?(a=new Uint8Array(b),a.__proto__=f.prototype):a=l(a,new Uint8Array(b)),a}function n(a,b){var c=0|q(b.length);a=p(a,c);for(var d=0;c>d;d+=1)a[d]=255&b[d];return a}function o(a,b){var c,d=0;"Buffer"===b.type&&Y(b.data)&&(c=b.data,d=0|q(c.length)),a=p(a,d);for(var e=0;d>e;e+=1)a[e]=255&c[e];return a}function p(a,b){f.TYPED_ARRAY_SUPPORT?(a=new Uint8Array(b),a.__proto__=f.prototype):a.length=b;var c=0!==b&&b<=f.poolSize>>>1;return c&&(a.parent=Z),a}function q(a){if(a>=e())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+e().toString(16)+" bytes");return 0|a}function r(a,b){if(!(this instanceof r))return new r(a,b);var c=new f(a,b);return delete c.parent,c}function s(a,b){"string"!=typeof a&&(a=""+a);var c=a.length;if(0===c)return 0;for(var d=!1;;)switch(b){case"ascii":case"binary":case"raw":case"raws":return c;case"utf8":case"utf-8":return R(a).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*c;case"hex":return c>>>1;case"base64":return U(a).length;default:if(d)return R(a).length;b=(""+b).toLowerCase(),d=!0}}function t(a,b,c){var d=!1;if(b=0|b,c=void 0===c||c===1/0?this.length:0|c,a||(a="utf8"),0>b&&(b=0),c>this.length&&(c=this.length),b>=c)return"";for(;;)switch(a){case"hex":return F(this,b,c);case"utf8":case"utf-8":return B(this,b,c);case"ascii":return D(this,b,c);case"binary":return E(this,b,c);case"base64":return A(this,b,c);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return G(this,b,c);default:if(d)throw new TypeError("Unknown encoding: "+a);a=(a+"").toLowerCase(),d=!0}}function u(a,b,c,d){c=Number(c)||0;var e=a.length-c;d?(d=Number(d),d>e&&(d=e)):d=e;var f=b.length;if(f%2!==0)throw new Error("Invalid hex string");d>f/2&&(d=f/2);for(var g=0;d>g;g++){var h=parseInt(b.substr(2*g,2),16);if(isNaN(h))throw new Error("Invalid hex string");a[c+g]=h}return g}function v(a,b,c,d){return V(R(b,a.length-c),a,c,d)}function w(a,b,c,d){return V(S(b),a,c,d)}function x(a,b,c,d){return w(a,b,c,d)}function y(a,b,c,d){return V(U(b),a,c,d)}function z(a,b,c,d){return V(T(b,a.length-c),a,c,d)}function A(a,b,c){return 0===b&&c===a.length?W.fromByteArray(a):W.fromByteArray(a.slice(b,c))}function B(a,b,c){c=Math.min(a.length,c);for(var d=[],e=b;c>e;){var f=a[e],g=null,h=f>239?4:f>223?3:f>191?2:1;if(c>=e+h){var i,j,k,l;switch(h){case 1:128>f&&(g=f);break;case 2:i=a[e+1],128===(192&i)&&(l=(31&f)<<6|63&i,l>127&&(g=l));break;case 3:i=a[e+1],j=a[e+2],128===(192&i)&&128===(192&j)&&(l=(15&f)<<12|(63&i)<<6|63&j,l>2047&&(55296>l||l>57343)&&(g=l));break;case 4:i=a[e+1],j=a[e+2],k=a[e+3],128===(192&i)&&128===(192&j)&&128===(192&k)&&(l=(15&f)<<18|(63&i)<<12|(63&j)<<6|63&k,l>65535&&1114112>l&&(g=l))}}null===g?(g=65533,h=1):g>65535&&(g-=65536,d.push(g>>>10&1023|55296),g=56320|1023&g),d.push(g),e+=h}return C(d)}function C(a){var b=a.length;if($>=b)return String.fromCharCode.apply(String,a);for(var c="",d=0;b>d;)c+=String.fromCharCode.apply(String,a.slice(d,d+=$));return c}function D(a,b,c){var d="";c=Math.min(a.length,c);for(var e=b;c>e;e++)d+=String.fromCharCode(127&a[e]);return d}function E(a,b,c){var d="";c=Math.min(a.length,c);for(var e=b;c>e;e++)d+=String.fromCharCode(a[e]);return d}function F(a,b,c){var d=a.length;(!b||0>b)&&(b=0),(!c||0>c||c>d)&&(c=d);for(var e="",f=b;c>f;f++)e+=Q(a[f]);return e}function G(a,b,c){for(var d=a.slice(b,c),e="",f=0;f<d.length;f+=2)e+=String.fromCharCode(d[f]+256*d[f+1]);return e}function H(a,b,c){if(a%1!==0||0>a)throw new RangeError("offset is not uint");if(a+b>c)throw new RangeError("Trying to access beyond buffer length")}function I(a,b,c,d,e,g){if(!f.isBuffer(a))throw new TypeError("buffer must be a Buffer instance");if(b>e||g>b)throw new RangeError("value is out of bounds");if(c+d>a.length)throw new RangeError("index out of range")}function J(a,b,c,d){0>b&&(b=65535+b+1);for(var e=0,f=Math.min(a.length-c,2);f>e;e++)a[c+e]=(b&255<<8*(d?e:1-e))>>>8*(d?e:1-e)}function K(a,b,c,d){0>b&&(b=4294967295+b+1);for(var e=0,f=Math.min(a.length-c,4);f>e;e++)a[c+e]=b>>>8*(d?e:3-e)&255}function L(a,b,c,d,e,f){if(c+d>a.length)throw new RangeError("index out of range");if(0>c)throw new RangeError("index out of range")}function M(a,b,c,d,e){return e||L(a,b,c,4,0xf.fffff(e+31),-0xf.fffff(e+31)),X.write(a,b,c,d,23,4),c+4}function N(a,b,c,d,e){return e||L(a,b,c,8,1.7976931348623157e308,-1.7976931348623157e308),X.write(a,b,c,d,52,8),c+8}function O(a){if(a=P(a).replace(_,""),a.length<2)return"";for(;a.length%4!==0;)a+="=";return a}function P(a){return a.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function Q(a){return 16>a?"0"+a.toString(16):a.toString(16)}function R(a,b){b=b||1/0;for(var c,d=a.length,e=null,f=[],g=0;d>g;g++){if(c=a.charCodeAt(g),c>55295&&57344>c){if(!e){if(c>56319){(b-=3)>-1&&f.push(239,191,189);continue}if(g+1===d){(b-=3)>-1&&f.push(239,191,189);continue}e=c;continue}if(56320>c){(b-=3)>-1&&f.push(239,191,189),e=c;continue}c=(e-55296<<10|c-56320)+65536}else e&&(b-=3)>-1&&f.push(239,191,189);if(e=null,128>c){if((b-=1)<0)break;f.push(c)}else if(2048>c){if((b-=2)<0)break;f.push(c>>6|192,63&c|128)}else if(65536>c){if((b-=3)<0)break;f.push(c>>12|224,c>>6&63|128,63&c|128)}else{if(!(1114112>c))throw new Error("Invalid code point");if((b-=4)<0)break;f.push(c>>18|240,c>>12&63|128,c>>6&63|128,63&c|128)}}return f}function S(a){for(var b=[],c=0;c<a.length;c++)b.push(255&a.charCodeAt(c));return b}function T(a,b){for(var c,d,e,f=[],g=0;g<a.length&&!((b-=2)<0);g++)c=a.charCodeAt(g),d=c>>8,e=c%256,f.push(e),f.push(d);return f}function U(a){return W.toByteArray(O(a))}function V(a,b,c,d){for(var e=0;d>e&&!(e+c>=b.length||e>=a.length);e++)b[e+c]=a[e];return e}var W=a("base64-js"),X=a("ieee754"),Y=a("isarray");c.Buffer=f,c.SlowBuffer=r,c.INSPECT_MAX_BYTES=50,f.poolSize=8192;var Z={};f.TYPED_ARRAY_SUPPORT=void 0!==b.TYPED_ARRAY_SUPPORT?b.TYPED_ARRAY_SUPPORT:d(),f._augment=function(a){return a.__proto__=f.prototype,a},f.TYPED_ARRAY_SUPPORT?(f.prototype.__proto__=Uint8Array.prototype,f.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&f[Symbol.species]===f&&Object.defineProperty(f,Symbol.species,{value:null,configurable:!0})):(f.prototype.length=void 0,f.prototype.parent=void 0),f.isBuffer=function(a){return!(null==a||!a._isBuffer)},f.compare=function(a,b){if(!f.isBuffer(a)||!f.isBuffer(b))throw new TypeError("Arguments must be Buffers");if(a===b)return 0;for(var c=a.length,d=b.length,e=0,g=Math.min(c,d);g>e;++e)if(a[e]!==b[e]){c=a[e],d=b[e];break}return d>c?-1:c>d?1:0},f.isEncoding=function(a){switch(String(a).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},f.concat=function(a,b){if(!Y(a))throw new TypeError("list argument must be an Array of Buffers.");if(0===a.length)return new f(0);var c;if(void 0===b)for(b=0,c=0;c<a.length;c++)b+=a[c].length;var d=new f(b),e=0;for(c=0;c<a.length;c++){var g=a[c];g.copy(d,e),e+=g.length}return d},f.byteLength=s,f.prototype._isBuffer=!0,f.prototype.toString=function(){var a=0|this.length;return 0===a?"":0===arguments.length?B(this,0,a):t.apply(this,arguments)},f.prototype.equals=function(a){if(!f.isBuffer(a))throw new TypeError("Argument must be a Buffer");return this===a?!0:0===f.compare(this,a)},f.prototype.inspect=function(){var a="",b=c.INSPECT_MAX_BYTES;return this.length>0&&(a=this.toString("hex",0,b).match(/.{2}/g).join(" "),this.length>b&&(a+=" ... ")),"<Buffer "+a+">"},f.prototype.compare=function(a){if(!f.isBuffer(a))throw new TypeError("Argument must be a Buffer");return f.compare(this,a)},f.prototype.indexOf=function(a,b){function c(a,b,c){for(var d=-1,e=0;c+e<a.length;e++)if(a[c+e]===b[-1===d?0:e-d]){if(-1===d&&(d=e),e-d+1===b.length)return c+d}else d=-1;return-1}if(b>2147483647?b=2147483647:-2147483648>b&&(b=-2147483648),b>>=0,0===this.length)return-1;if(b>=this.length)return-1;if(0>b&&(b=Math.max(this.length+b,0)),"string"==typeof a)return 0===a.length?-1:String.prototype.indexOf.call(this,a,b);if(f.isBuffer(a))return c(this,a,b);if("number"==typeof a)return f.TYPED_ARRAY_SUPPORT&&"function"===Uint8Array.prototype.indexOf?Uint8Array.prototype.indexOf.call(this,a,b):c(this,[a],b);throw new TypeError("val must be string, number or Buffer")},f.prototype.write=function(a,b,c,d){if(void 0===b)d="utf8",c=this.length,b=0;else if(void 0===c&&"string"==typeof b)d=b,c=this.length,b=0;else if(isFinite(b))b=0|b,isFinite(c)?(c=0|c,void 0===d&&(d="utf8")):(d=c,c=void 0);else{var e=d;d=b,b=0|c,c=e}var f=this.length-b;if((void 0===c||c>f)&&(c=f),a.length>0&&(0>c||0>b)||b>this.length)throw new RangeError("attempt to write outside buffer bounds");d||(d="utf8");for(var g=!1;;)switch(d){case"hex":return u(this,a,b,c);case"utf8":case"utf-8":return v(this,a,b,c);case"ascii":return w(this,a,b,c);case"binary":return x(this,a,b,c);case"base64":return y(this,a,b,c);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return z(this,a,b,c);default:if(g)throw new TypeError("Unknown encoding: "+d);d=(""+d).toLowerCase(),g=!0}},f.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var $=4096;f.prototype.slice=function(a,b){var c=this.length;a=~~a,b=void 0===b?c:~~b,0>a?(a+=c,0>a&&(a=0)):a>c&&(a=c),0>b?(b+=c,0>b&&(b=0)):b>c&&(b=c),a>b&&(b=a);var d;if(f.TYPED_ARRAY_SUPPORT)d=this.subarray(a,b),d.__proto__=f.prototype;else{var e=b-a;d=new f(e,void 0);for(var g=0;e>g;g++)d[g]=this[g+a]}return d.length&&(d.parent=this.parent||this),d},f.prototype.readUIntLE=function(a,b,c){a=0|a,b=0|b,c||H(a,b,this.length);for(var d=this[a],e=1,f=0;++f<b&&(e*=256);)d+=this[a+f]*e;return d},f.prototype.readUIntBE=function(a,b,c){a=0|a,b=0|b,c||H(a,b,this.length);for(var d=this[a+--b],e=1;b>0&&(e*=256);)d+=this[a+--b]*e;return d},f.prototype.readUInt8=function(a,b){return b||H(a,1,this.length),this[a]},f.prototype.readUInt16LE=function(a,b){return b||H(a,2,this.length),this[a]|this[a+1]<<8},f.prototype.readUInt16BE=function(a,b){return b||H(a,2,this.length),this[a]<<8|this[a+1]},f.prototype.readUInt32LE=function(a,b){return b||H(a,4,this.length),(this[a]|this[a+1]<<8|this[a+2]<<16)+16777216*this[a+3]},f.prototype.readUInt32BE=function(a,b){return b||H(a,4,this.length),16777216*this[a]+(this[a+1]<<16|this[a+2]<<8|this[a+3])},f.prototype.readIntLE=function(a,b,c){a=0|a,b=0|b,c||H(a,b,this.length);for(var d=this[a],e=1,f=0;++f<b&&(e*=256);)d+=this[a+f]*e;return e*=128,d>=e&&(d-=Math.pow(2,8*b)),d},f.prototype.readIntBE=function(a,b,c){a=0|a,b=0|b,c||H(a,b,this.length);for(var d=b,e=1,f=this[a+--d];d>0&&(e*=256);)f+=this[a+--d]*e;return e*=128,f>=e&&(f-=Math.pow(2,8*b)),f},f.prototype.readInt8=function(a,b){return b||H(a,1,this.length),128&this[a]?-1*(255-this[a]+1):this[a]},f.prototype.readInt16LE=function(a,b){b||H(a,2,this.length);var c=this[a]|this[a+1]<<8;return 32768&c?4294901760|c:c},f.prototype.readInt16BE=function(a,b){b||H(a,2,this.length);var c=this[a+1]|this[a]<<8;return 32768&c?4294901760|c:c},f.prototype.readInt32LE=function(a,b){return b||H(a,4,this.length),this[a]|this[a+1]<<8|this[a+2]<<16|this[a+3]<<24},f.prototype.readInt32BE=function(a,b){return b||H(a,4,this.length),this[a]<<24|this[a+1]<<16|this[a+2]<<8|this[a+3]},f.prototype.readFloatLE=function(a,b){return b||H(a,4,this.length),X.read(this,a,!0,23,4)},f.prototype.readFloatBE=function(a,b){return b||H(a,4,this.length),X.read(this,a,!1,23,4)},f.prototype.readDoubleLE=function(a,b){return b||H(a,8,this.length),X.read(this,a,!0,52,8)},f.prototype.readDoubleBE=function(a,b){return b||H(a,8,this.length),X.read(this,a,!1,52,8)},f.prototype.writeUIntLE=function(a,b,c,d){a=+a,b=0|b,c=0|c,d||I(this,a,b,c,Math.pow(2,8*c),0);var e=1,f=0;for(this[b]=255&a;++f<c&&(e*=256);)this[b+f]=a/e&255;return b+c},f.prototype.writeUIntBE=function(a,b,c,d){a=+a,b=0|b,c=0|c,d||I(this,a,b,c,Math.pow(2,8*c),0);var e=c-1,f=1;for(this[b+e]=255&a;--e>=0&&(f*=256);)this[b+e]=a/f&255;return b+c},f.prototype.writeUInt8=function(a,b,c){return a=+a,b=0|b,c||I(this,a,b,1,255,0),f.TYPED_ARRAY_SUPPORT||(a=Math.floor(a)),this[b]=255&a,b+1},f.prototype.writeUInt16LE=function(a,b,c){return a=+a,b=0|b,c||I(this,a,b,2,65535,0),f.TYPED_ARRAY_SUPPORT?(this[b]=255&a,this[b+1]=a>>>8):J(this,a,b,!0),b+2},f.prototype.writeUInt16BE=function(a,b,c){return a=+a,b=0|b,c||I(this,a,b,2,65535,0),f.TYPED_ARRAY_SUPPORT?(this[b]=a>>>8,this[b+1]=255&a):J(this,a,b,!1),b+2},f.prototype.writeUInt32LE=function(a,b,c){return a=+a,b=0|b,c||I(this,a,b,4,4294967295,0),f.TYPED_ARRAY_SUPPORT?(this[b+3]=a>>>24,this[b+2]=a>>>16,this[b+1]=a>>>8,this[b]=255&a):K(this,a,b,!0),b+4},f.prototype.writeUInt32BE=function(a,b,c){return a=+a,b=0|b,c||I(this,a,b,4,4294967295,0),f.TYPED_ARRAY_SUPPORT?(this[b]=a>>>24,this[b+1]=a>>>16,this[b+2]=a>>>8,this[b+3]=255&a):K(this,a,b,!1),b+4},f.prototype.writeIntLE=function(a,b,c,d){if(a=+a,b=0|b,!d){var e=Math.pow(2,8*c-1);I(this,a,b,c,e-1,-e)}var f=0,g=1,h=0>a?1:0;for(this[b]=255&a;++f<c&&(g*=256);)this[b+f]=(a/g>>0)-h&255;return b+c},f.prototype.writeIntBE=function(a,b,c,d){if(a=+a,b=0|b,!d){var e=Math.pow(2,8*c-1);I(this,a,b,c,e-1,-e)}var f=c-1,g=1,h=0>a?1:0;for(this[b+f]=255&a;--f>=0&&(g*=256);)this[b+f]=(a/g>>0)-h&255;return b+c},f.prototype.writeInt8=function(a,b,c){return a=+a,b=0|b,c||I(this,a,b,1,127,-128),f.TYPED_ARRAY_SUPPORT||(a=Math.floor(a)),0>a&&(a=255+a+1),this[b]=255&a,b+1},f.prototype.writeInt16LE=function(a,b,c){return a=+a,b=0|b,c||I(this,a,b,2,32767,-32768),f.TYPED_ARRAY_SUPPORT?(this[b]=255&a,this[b+1]=a>>>8):J(this,a,b,!0),b+2},f.prototype.writeInt16BE=function(a,b,c){return a=+a,b=0|b,c||I(this,a,b,2,32767,-32768),f.TYPED_ARRAY_SUPPORT?(this[b]=a>>>8,this[b+1]=255&a):J(this,a,b,!1),b+2},f.prototype.writeInt32LE=function(a,b,c){return a=+a,b=0|b,c||I(this,a,b,4,2147483647,-2147483648),f.TYPED_ARRAY_SUPPORT?(this[b]=255&a,this[b+1]=a>>>8,this[b+2]=a>>>16,this[b+3]=a>>>24):K(this,a,b,!0),b+4},f.prototype.writeInt32BE=function(a,b,c){return a=+a,b=0|b,c||I(this,a,b,4,2147483647,-2147483648),0>a&&(a=4294967295+a+1),f.TYPED_ARRAY_SUPPORT?(this[b]=a>>>24,this[b+1]=a>>>16,this[b+2]=a>>>8,this[b+3]=255&a):K(this,a,b,!1),b+4},f.prototype.writeFloatLE=function(a,b,c){return M(this,a,b,!0,c)},f.prototype.writeFloatBE=function(a,b,c){return M(this,a,b,!1,c)},f.prototype.writeDoubleLE=function(a,b,c){return N(this,a,b,!0,c)},f.prototype.writeDoubleBE=function(a,b,c){return N(this,a,b,!1,c)},f.prototype.copy=function(a,b,c,d){if(c||(c=0),d||0===d||(d=this.length),b>=a.length&&(b=a.length),b||(b=0),d>0&&c>d&&(d=c),d===c)return 0;if(0===a.length||0===this.length)return 0;if(0>b)throw new RangeError("targetStart out of bounds");if(0>c||c>=this.length)throw new RangeError("sourceStart out of bounds");if(0>d)throw new RangeError("sourceEnd out of bounds");d>this.length&&(d=this.length),a.length-b<d-c&&(d=a.length-b+c);var e,g=d-c;if(this===a&&b>c&&d>b)for(e=g-1;e>=0;e--)a[e+b]=this[e+c];else if(1e3>g||!f.TYPED_ARRAY_SUPPORT)for(e=0;g>e;e++)a[e+b]=this[e+c];else Uint8Array.prototype.set.call(a,this.subarray(c,c+g),b);return g},f.prototype.fill=function(a,b,c){if(a||(a=0),b||(b=0),c||(c=this.length),b>c)throw new RangeError("end < start");if(c!==b&&0!==this.length){if(0>b||b>=this.length)throw new RangeError("start out of bounds");if(0>c||c>this.length)throw new RangeError("end out of bounds");var d;if("number"==typeof a)for(d=b;c>d;d++)this[d]=a;else{var e=R(a.toString()),f=e.length;for(d=b;c>d;d++)this[d]=e[d%f]}return this}};var _=/[^+\/0-9A-Za-z-_]/g}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"base64-js":2,ieee754:71,isarray:74}],6:[function(a,b,c){b.exports={100:"Continue",101:"Switching Protocols",102:"Processing",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",208:"Already Reported",226:"IM Used",300:"Multiple Choices",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",418:"I'm a teapot",421:"Misdirected Request",422:"Unprocessable Entity",423:"Locked",424:"Failed Dependency",425:"Unordered Collection",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",508:"Loop Detected",509:"Bandwidth Limit Exceeded",510:"Not Extended",511:"Network Authentication Required"}},{}],7:[function(a,b,c){b.exports=a("./lib/clean")},{"./lib/clean":8}],8:[function(a,b,c){(function(c){function d(a){return void 0===a?["all"]:a}function e(a){return!C.existsSync(a)&&!/\.css$/.test(a)}function f(a){return C.existsSync(a)&&C.statSync(a).isDirectory()}function g(a){return a?{hostname:E.parse(a).hostname,port:parseInt(E.parse(a).port)}:{}}function h(a,b){function c(c){return c=b.options.debug?j(b,c):l(b,c),c=i(b,c),a?a.call(null,b.errors.length>0?b.errors:null,c):c}return function(a){return b.options.sourceMap?b.inputSourceMapTracker.track(a,function(){return b.options.sourceMapInlineSources?b.inputSourceMapTracker.resolveSources(function(){return c(a)}):c(a)}):c(a)}}function i(a,b){return b.stats=a.stats,b.errors=a.errors,b.warnings=a.warnings,b}function j(a,b){var d=c.hrtime();a.stats.originalSize=a.sourceTracker.removeAll(b).length,b=l(a,b);var e=c.hrtime(d);return a.stats.timeSpent=~~(1e3*e[0]+e[1]/1e6),a.stats.efficiency=1-b.styles.length/a.stats.originalSize,a.stats.minifiedSize=b.styles.length,b}function k(a){return function(b,d){var e=b.constructor.name+"#"+d,f=c.hrtime();a(b,d);var g=c.hrtime(f);console.log("%d ms: "+e,1e3*g[0]+g[1]/1e6)}}function l(a,b){function c(b,c){return b=g.restore(b,c),b=h.restore(b),b=d.rebase?n(b,a):b,b=f.restore(b),e.restore(b)}var d=a.options,e=new t(a,d.keepSpecialComments,d.keepBreaks,d.sourceMap),f=new u(d.sourceMap),g=new v(d.sourceMap),h=new w(a,d.sourceMap,d.compatibility.properties.urlQuotes),i=d.sourceMap?s:r,j=function(a,c){b="function"==typeof a?a(b):a[c](b)};d.benchmark&&(j=k(j)),j(e,"escape"),j(f,"escape"),j(h,"escape"),j(g,"escape");var l=o(b,a);return p(l,d),d.advanced&&q(l,d,a.validator,!0),i(l,d,c,a.inputSourceMapTracker)}var m=a("./imports/inliner"),n=a("./urls/rebase"),o=a("./tokenizer/tokenize"),p=a("./selectors/simple"),q=a("./selectors/advanced"),r=a("./stringifier/simple"),s=a("./stringifier/source-maps"),t=a("./text/comments-processor"),u=a("./text/expressions-processor"),v=a("./text/free-text-processor"),w=a("./text/urls-processor"),x=a("./utils/compatibility"),y=a("./utils/input-source-map-tracker"),z=a("./utils/source-tracker"),A=a("./utils/source-reader"),B=a("./properties/validator"),C=a("fs"),D=a("path"),E=a("url"),F=a("./utils/object").override,G=5e3,H=b.exports=function(a){a=a||{},this.options={advanced:void 0===a.advanced?!0:!!a.advanced,aggressiveMerging:void 0===a.aggressiveMerging?!0:!!a.aggressiveMerging,benchmark:a.benchmark,compatibility:new x(a.compatibility).toOptions(),debug:a.debug,explicitRoot:!!a.root,explicitTarget:!!a.target,inliner:a.inliner||{},keepBreaks:a.keepBreaks||!1,keepSpecialComments:"keepSpecialComments"in a?a.keepSpecialComments:"*",mediaMerging:void 0===a.mediaMerging?!0:!!a.mediaMerging,processImport:void 0===a.processImport?!0:!!a.processImport,processImportFrom:d(a.processImportFrom),rebase:void 0===a.rebase?!0:!!a.rebase,relativeTo:a.relativeTo,restructuring:void 0===a.restructuring?!0:!!a.restructuring,root:a.root||c.cwd(),roundingPrecision:a.roundingPrecision,semanticMerging:void 0===a.semanticMerging?!1:!!a.semanticMerging,shorthandCompacting:void 0===a.shorthandCompacting?!0:!!a.shorthandCompacting,sourceMap:a.sourceMap,sourceMapInlineSources:!!a.sourceMapInlineSources,target:!a.target||e(a.target)||f(a.target)?a.target:D.dirname(a.target)},this.options.inliner.timeout=this.options.inliner.timeout||G,this.options.inliner.request=F(g(c.env.HTTP_PROXY||c.env.http_proxy),this.options.inliner.request||{})};H.prototype.minify=function(a,b){var d={stats:{},errors:[],warnings:[],options:this.options,debug:this.options.debug,localOnly:!b,sourceTracker:new z,validator:new B(this.options.compatibility)};if(d.options.sourceMap&&(d.inputSourceMapTracker=new y(d)),d.sourceReader=new A(d,a),a=d.sourceReader.toString(),d.options.processImport||a.indexOf("@shallow")>0){var e=b?c.nextTick:function(a){return a()};return e(function(){return new m(d).process(a,{localOnly:d.localOnly,imports:d.options.processImportFrom,whenDone:h(b,d)})})}return h(b,d)(a)}}).call(this,a("_process"))},{"./imports/inliner":12,"./properties/validator":26,"./selectors/advanced":29,"./selectors/simple":42,"./stringifier/simple":46,"./stringifier/source-maps":47,"./text/comments-processor":48,"./text/expressions-processor":50,"./text/free-text-processor":51,"./text/urls-processor":52,"./tokenizer/tokenize":55,"./urls/rebase":56,"./utils/compatibility":60,"./utils/input-source-map-tracker":61,"./utils/object":62,"./utils/source-reader":64,"./utils/source-tracker":65,_process:79,fs:4,path:77,url:141}],9:[function(a,b,c){function d(a,b,c,d){return b+h[c.toLowerCase()]+d}function e(a,b,c){return i[b.toLowerCase()]+c}var f={},g={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#0ff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000",blanchedalmond:"#ffebcd",blue:"#00f",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#0ff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#f0f",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#0f0",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#f00",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#fff",whitesmoke:"#f5f5f5",yellow:"#ff0",yellowgreen:"#9acd32"},h={},i={};for(var j in g){var k=g[j];j.length<k.length?i[k]=j:h[j]=k}var l=new RegExp("(^| |,|\\))("+Object.keys(h).join("|")+")( |,|\\)|$)","ig"),m=new RegExp("("+Object.keys(i).join("|")+")([^a-f0-9]|$)","ig");f.shorten=function(a){var b=a.indexOf("#")>-1,c=a.replace(l,d);return c!=a&&(c=c.replace(l,d)),b?c.replace(m,e):c},b.exports=f},{}],10:[function(a,b,c){function d(a,b,c){this.hue=a,this.saturation=b,this.lightness=c}function e(a,b,c){var d,e,g;if(a%=360,0>a&&(a+=360),a=~~a/360,0>b?b=0:b>100&&(b=100),b=~~b/100,0>c?c=0:c>100&&(c=100),c=~~c/100,0===b)d=e=g=c;else{var h=.5>c?c*(1+b):c+b-c*b,i=2*c-h;d=f(i,h,a+1/3),e=f(i,h,a),g=f(i,h,a-1/3)}return[~~(255*d),~~(255*e),~~(255*g)]}function f(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a}d.prototype.toHex=function(){var a=e(this.hue,this.saturation,this.lightness),b=a[0].toString(16),c=a[1].toString(16),d=a[2].toString(16);return"#"+((1==b.length?"0":"")+b)+((1==c.length?"0":"")+c)+((1==d.length?"0":"")+d)},b.exports=d},{}],11:[function(a,b,c){function d(a,b,c){this.red=a,this.green=b,this.blue=c}d.prototype.toHex=function(){var a=Math.max(0,Math.min(~~this.red,255)),b=Math.max(0,Math.min(~~this.green,255)),c=Math.max(0,Math.min(~~this.blue,255));return"#"+("00000"+(a<<16|b<<8|c).toString(16)).slice(-6)},b.exports=d},{}],12:[function(a,b,c){(function(c){function d(a){this.outerContext=a}function e(a,b){if(b.shallow)return b.shallow=!1,b.done.push(a),h(b);for(var c=0,d=0,e=0,f=i(a);d<a.length&&(c=g(a,e),-1!=c);){if(!f(c)){if(d=a.indexOf(";",c),-1==d){e=a.length,a="";break}var l=a.substring(0,c);return b.done.push(l),b.left.unshift([a.substring(d+1),b]),b.afterContent=j(l),k(a,c,d,b)}e=c+1}return b.done.push(a),h(b)}function f(a,b){return a.replace(x,function(a,c){return y.test(c)?a:a.replace(c,t.resolve(b,c))})}function g(a,b){var c=a.indexOf("@import",b),d=a.indexOf("@IMPORT",b);return c>-1&&-1==d?c:-1==c&&d>-1?d:Math.min(c,d)}function h(a){return a.left.length>0?e.apply(null,a.left.shift()):a.whenDone(a.done.join(""))}function i(a){var b=/(\/\*(?!\*\/)[\s\S]*?\*\/)/,c=0,d=0,e=!1;return function(f){var g,h=0,i=0,j=0,k=0;if(e)return!1;do{if(f>c&&d>f)return!0;
-if(g=a.match(b),!g)return e=!0,!1;c=h=g.index,i=h+g[0].length,k=i+d,j=k-g[0].length,a=a.substring(i),d=k}while(f>k);return k>f&&f>j}}function j(a){for(var b=i(a),c=-1;;)if(c=a.indexOf("{",c+1),-1==c||!b(c))break;return c>-1}function k(a,b,c,d){d.shallow=a.indexOf("@shallow")>0;var e=a.substring(g(a,b)+"@import".length+1,c).replace(/@shallow\)$/,")").trim(),f=0===e.indexOf("url("),i=f?4:0,k=/^['"]/.exec(e.substring(i,i+2)),p=k?e.indexOf(k[0],i+1):v(e," ")[0].length-(f?1:0),q=e.substring(i,p).replace(/['"]/g,"").replace(/\)$/,"").trim(),r=e.substring(p+1).replace(/^\)/,"").trim(),s=d.isRemote||y.test(q);if(s&&(d.localOnly||!l(q,!0,d.imports)))return d.afterContent||j(d.done.join(""))?d.warnings.push('Ignoring remote @import of "'+q+'" as no callback given.'):o(q,r,d),h(d);if(!s&&!l(q,!1,d.imports))return d.afterImport?d.warnings.push('Ignoring local @import of "'+q+'" as after other inlined content.'):o(q,r,d),h(d);if(!s&&d.afterContent)return d.warnings.push('Ignoring local @import of "'+q+'" as after other CSS content.'),h(d);var t=s?m:n;return t(q,r,d)}function l(a,b,c){if(0===c.length)return!1;b&&z.test(a)&&(a="http:"+a);for(var d=b?t.parse(a).host:a,e=!0,f=0;f<c.length;f++){var g=c[f];"all"==g?e=!0:b&&"local"==g?e=!1:b&&"remote"==g?e=!0:b||"remote"!=g?b||"local"!=g?"!"==g[0]&&g.substring(1)===d&&(e=!1):e=!0:e=!1}return e}function m(a,b,d){function g(a){n||(n=!0,d.errors.push('Broken @import declaration of "'+i+'" - '+a),o(i,b,d),c.nextTick(function(){h(d)}))}var i=y.test(a)?a:t.resolve(d.relativeTo,a),j=i;if(z.test(i)&&(i="http:"+i),d.visited.indexOf(i)>-1)return h(d);d.debug&&console.error("Inlining remote stylesheet: "+i),d.visited.push(i);var k=d.inliner.request.protocol||d.inliner.request.hostname,l=k&&0!==k.indexOf("https://")||0===i.indexOf("http://")?r.get:s.get,n=!1,p=w(t.parse(i),d.inliner.request);void 0!==d.inliner.request.hostname&&(p.protocol=d.inliner.request.protocol||"http:",p.path=p.href),l(p,function(a){if(a.statusCode<200||a.statusCode>399)return g("error "+a.statusCode);if(a.statusCode>299){var h=t.resolve(i,a.headers.location);return m(h,b,d)}var k=[],l=t.parse(i);a.on("data",function(a){k.push(a.toString())}),a.on("end",function(){var a=k.join("");d.rebase&&(a=u(a,{toBase:j},d)),d.sourceReader.trackSource(i,a),a=d.sourceTracker.store(i,a),a=f(a,i),b.length>0&&(a="@media "+b+"{"+a+"}"),d.afterImport=!0;var g=w(d,{isRemote:!0,relativeTo:l.protocol+"//"+l.host+l.pathname});c.nextTick(function(){e(a,g)})})}).on("error",function(a){g(a.message)}).on("timeout",function(){g("timeout")}).setTimeout(d.inliner.timeout)}function n(a,b,c){var d="/"==a[0]?c.root:c.relativeTo,f=q.resolve(q.join(d,a));if(!p.existsSync(f)||!p.statSync(f).isFile())return c.errors.push('Broken @import declaration of "'+a+'"'),h(c);if(c.visited.indexOf(f)>-1)return h(c);c.debug&&console.error("Inlining local stylesheet: "+f),c.visited.push(f);var g=q.dirname(f),i=p.readFileSync(f,"utf8");if(c.rebase){var j={relative:!0,fromBase:g,toBase:c.baseRelativeTo};i=u(i,j,c)}var k=q.relative(c.root,f);c.sourceReader.trackSource(k,i),i=c.sourceTracker.store(k,i),b.length>0&&(i="@media "+b+"{"+i+"}"),c.afterImport=!0;var l=w(c,{relativeTo:g});return e(i,l)}function o(a,b,c){var d="@import url("+a+")"+(b.length>0?" "+b:"")+";";c.done.push(d)}var p=a("fs"),q=a("path"),r=a("http"),s=a("https"),t=a("url"),u=a("../urls/rewrite"),v=a("../utils/split"),w=a("../utils/object.js").override,x=/\/\*# sourceMappingURL=(\S+) \*\//,y=/^(https?:)?\/\//,z=/^\/\//;d.prototype.process=function(a,b){var c=this.outerContext.options.root;return b=w(b,{baseRelativeTo:this.outerContext.options.relativeTo||c,debug:this.outerContext.options.debug,done:[],errors:this.outerContext.errors,left:[],inliner:this.outerContext.options.inliner,rebase:this.outerContext.options.rebase,relativeTo:this.outerContext.options.relativeTo||c,root:c,sourceReader:this.outerContext.sourceReader,sourceTracker:this.outerContext.sourceTracker,warnings:this.outerContext.warnings,visited:[]}),e(a,b)},b.exports=d}).call(this,a("_process"))},{"../urls/rewrite":58,"../utils/object.js":62,"../utils/split":66,_process:79,fs:4,http:123,https:70,path:77,url:141}],13:[function(a,b,c){function d(a){return function(b){return"invert"==b[0]||a.isValidColor(b[0])}}function e(a){return function(b){return"inherit"!=b[0]&&a.isValidStyle(b[0])&&!a.isValidColorValue(b[0])}}function f(a,b,c){var d=c[a];return n(d.doubleValues&&2==d.defaultValue.length?[[a,b.important],[d.defaultValue[0]],[d.defaultValue[1]]]:d.doubleValues&&1==d.defaultValue.length?[[a,b.important],[d.defaultValue[0]]]:[[a,b.important],[d.defaultValue]])}function g(a){return function(b){return"inherit"!=b[0]&&a.isValidWidth(b[0])&&!a.isValidStyleKeyword(b[0])&&!a.isValidColorValue(b[0])}}function h(a,b,c){var d=f("background-image",a,b),e=f("background-position",a,b),g=f("background-size",a,b),h=f("background-repeat",a,b),i=f("background-attachment",a,b),j=f("background-origin",a,b),k=f("background-clip",a,b),l=f("background-color",a,b),m=[d,e,g,h,i,j,k,l],n=a.value,p=!1,q=!1,r=!1,s=!1;if(1==a.value.length&&"inherit"==a.value[0][0])return l.value=d.value=h.value=e.value=g.value=j.value=k.value=a.value,m;for(var t=n.length-1;t>=0;t--){var u=n[t];if(c.isValidBackgroundAttachment(u[0]))i.value=[u];else if(c.isValidBackgroundBox(u[0]))q?(j.value=[u],r=!0):(k.value=[u],q=!0);else if(c.isValidBackgroundRepeat(u[0]))s?h.value.unshift(u):(h.value=[u],s=!0);else if(c.isValidBackgroundPositionPart(u[0])||c.isValidBackgroundSizePart(u[0]))if(t>0){var v=n[t-1];if(v[0].indexOf("/")>0){var w=o(v[0],"/");g.value=[[w.pop()].concat(v.slice(1)),u],n[t-1]=[w.pop()].concat(v.slice(1))}else t>1&&"/"==n[t-2][0]?(g.value=[v,u],t-=2):"/"==v[0]?g.value=[u]:(p||(e.value=[]),e.value.unshift(u),p=!0)}else p||(e.value=[]),e.value.unshift(u),p=!0;else if(c.isValidBackgroundPositionAndSize(u[0])){var x=o(u[0],"/");g.value=[[x.pop()].concat(u.slice(1))],e.value=[[x.pop()].concat(u.slice(1))]}else l.value[0][0]!=b[l.name].defaultValue&&"none"!=l.value[0][0]||!c.isValidColor(u[0])?(c.isValidUrl(u[0])||c.isValidFunction(u[0]))&&(d.value=[u]):l.value=[u]}return q&&!r&&(j.value=k.value.slice(0)),m}function i(a,b){for(var c=a.value,d=-1,e=0,g=c.length;g>e;e++)if("/"==c[e][0]){d=e;break}if(-1==d)return j(a,b);var h=f(a.name,a,b);h.value=c.slice(0,d),h.components=j(h,b);var i=f(a.name,a,b);i.value=c.slice(d+1),i.components=j(i,b);for(var k=0;4>k;k++)h.components[k].multiplex=!0,h.components[k].value=h.components[k].value.concat([["/"]]).concat(i.components[k].value);return h.components}function j(a,b){var c=b[a.name].components,d=[],e=a.value;if(e.length<1)return[];e.length<2&&(e[1]=e[0].slice(0)),e.length<3&&(e[2]=e[0].slice(0)),e.length<4&&(e[3]=e[1].slice(0));for(var f=c.length-1;f>=0;f--){var g=n([[c[f],a.important]]);g.value=[e[f]],d.unshift(g)}return d}function k(a){return function(b,c,d){var e,g,h,i,j=[],k=b.value;for(e=0,h=k.length;h>e;e++)","==k[e][0]&&j.push(e);if(0===j.length)return a(b,c,d);var l=[];for(e=0,h=j.length;h>=e;e++){var m=0===e?0:j[e-1]+1,n=h>e?j[e]:k.length,o=f(b.name,b,c);o.value=k.slice(m,n),l.push(a(o,c,d))}var q=l[0];for(e=0,h=q.length;h>e;e++)for(q[e].multiplex=!0,g=1,i=l.length;i>g;g++)q[e].value.push([p]),Array.prototype.push.apply(q[e].value,l[g][e].value);return q}}function l(a,b,c){var d=f("list-style-type",a,b),e=f("list-style-position",a,b),g=f("list-style-image",a,b),h=[d,e,g];if(1==a.value.length&&"inherit"==a.value[0][0])return d.value=e.value=g.value=[a.value[0]],h;var i=a.value.slice(0),j=i.length,k=0;for(k=0,j=i.length;j>k;k++)if(c.isValidUrl(i[k][0])||"0"==i[k][0]){g.value=[i[k]],i.splice(k,1);break}for(k=0,j=i.length;j>k;k++)if(c.isValidListStyleType(i[k][0])){d.value=[i[k]],i.splice(k,1);break}return i.length>0&&c.isValidListStylePosition(i[0][0])&&(e.value=[i[0]]),h}function m(a,b,c){for(var h,i,j,k=b[a.name],l=[f(k.components[0],a,b),f(k.components[1],a,b),f(k.components[2],a,b)],m=0;3>m;m++){var n=l[m];n.name.indexOf("color")>0?h=n:n.name.indexOf("style")>0?i=n:j=n}if(1==a.value.length&&"inherit"==a.value[0][0]||3==a.value.length&&"inherit"==a.value[0][0]&&"inherit"==a.value[1][0]&&"inherit"==a.value[2][0])return h.value=i.value=j.value=[a.value[0]],l;var o,p,q=a.value.slice(0);return q.length>0&&(p=q.filter(g(c)),o=p.length>1&&("none"==p[0][0]||"auto"==p[0][0])?p[1]:p[0],o&&(j.value=[o],q.splice(q.indexOf(o),1))),q.length>0&&(o=q.filter(e(c))[0],o&&(i.value=[o],q.splice(q.indexOf(o),1))),q.length>0&&(o=q.filter(d(c))[0],o&&(h.value=[o],q.splice(q.indexOf(o),1))),l}var n=a("./wrap-for-optimizing").single,o=a("../utils/split"),p=",";b.exports={background:h,border:m,borderRadius:i,fourValues:j,listStyle:l,multiplex:k,outline:m}},{"../utils/split":66,"./wrap-for-optimizing":28}],14:[function(a,b,c){function d(){return!0}function e(a,b,c){var d=a.value[0][0],e=b.value[0][0];return"none"==e||"inherit"==e||c.isValidUrl(e)?!0:"none"==d||"inherit"==d||c.isValidUrl(d)?!1:j(a,b,c)}function f(a,b,c){return g(a.components[2],b.components[2],c)}function g(a,b,c){var d=a.value[0][0],e=b.value[0][0];return(c.colorOpacity||!c.isValidRgbaColor(d)&&!c.isValidHslaColor(d))&&(c.colorOpacity||!c.isValidRgbaColor(e)&&!c.isValidHslaColor(e))?c.isValidNamedColor(e)||c.isValidHexColor(e)?!0:c.isValidNamedColor(d)||c.isValidHexColor(d)?!1:c.isValidRgbaColor(e)||c.isValidHslaColor(e)?!0:c.isValidRgbaColor(d)||c.isValidHslaColor(d)?!1:j(a,b,c):!1}function h(a,b,c){var d=a.value[0][0],e=b.value[0][0];return!(c.isValidFunction(d)^c.isValidFunction(e))}function i(a,b){var c=a.value[0][0],d=b.value[0][0];return c===d}function j(a,b,c){var d=a.value[0][0],e=b.value[0][0];return c.areSameFunction(d,e)?!0:d===e}function k(a,b,c){var d=a.value[0][0],e=b.value[0][0];return c.isValidAndCompatibleUnitWithoutFunction(d)&&!c.isValidAndCompatibleUnitWithoutFunction(e)?!1:c.isValidUnitWithoutFunction(e)?!0:c.isValidUnitWithoutFunction(d)?!1:c.isValidFunctionWithoutVendorPrefix(e)&&c.isValidFunctionWithoutVendorPrefix(d)?!0:j(a,b,c)}b.exports={always:d,backgroundImage:e,border:f,color:g,sameValue:i,sameFunctionOrValue:j,twoOptionalFunctions:h,unit:k}},{}],15:[function(a,b,c){function d(a){for(var b=e(a),c=a.components.length-1;c>=0;c--){var d=e(a.components[c]);d.value=a.components[c].value.slice(0),b.components.unshift(d)}return b.dirty=!0,b.value=a.value.slice(0),b}function e(a){var b=f([[a.name,a.important,a.hack]]);return b.unused=!1,b}var f=a("./wrap-for-optimizing").single;b.exports={deep:d,shallow:e}},{"./wrap-for-optimizing":28}],16:[function(a,b,c){var d=a("./break-up"),e=a("./can-override"),f=a("./restore"),g={color:{canOverride:e.color,defaultValue:"transparent",shortestValue:"red"},background:{components:["background-image","background-position","background-size","background-repeat","background-attachment","background-origin","background-clip","background-color"],breakUp:d.multiplex(d.background),defaultValue:"0 0",restore:f.multiplex(f.background),shortestValue:"0",shorthand:!0},"background-clip":{canOverride:e.always,defaultValue:"border-box",shortestValue:"border-box"},"background-color":{canOverride:e.color,defaultValue:"transparent",multiplexLastOnly:!0,nonMergeableValue:"none",shortestValue:"red"},"background-image":{canOverride:e.backgroundImage,defaultValue:"none"},"background-origin":{canOverride:e.always,defaultValue:"padding-box",shortestValue:"border-box"},"background-repeat":{canOverride:e.always,defaultValue:["repeat"],doubleValues:!0},"background-position":{canOverride:e.always,defaultValue:["0","0"],doubleValues:!0,shortestValue:"0"},"background-size":{canOverride:e.always,defaultValue:["auto"],doubleValues:!0,shortestValue:"0 0"},"background-attachment":{canOverride:e.always,defaultValue:"scroll"},border:{breakUp:d.border,canOverride:e.border,components:["border-width","border-style","border-color"],defaultValue:"none",restore:f.withoutDefaults,shorthand:!0},"border-color":{canOverride:e.color,defaultValue:"none",shorthand:!0},"border-style":{canOverride:e.always,defaultValue:"none",shorthand:!0},"border-width":{canOverride:e.unit,defaultValue:"medium",shortestValue:"0",shorthand:!0},"list-style":{components:["list-style-type","list-style-position","list-style-image"],canOverride:e.always,breakUp:d.listStyle,restore:f.withoutDefaults,defaultValue:"outside",shortestValue:"none",shorthand:!0},"list-style-type":{canOverride:e.always,defaultValue:"__hack",shortestValue:"none"},"list-style-position":{canOverride:e.always,defaultValue:"outside",shortestValue:"inside"},"list-style-image":{canOverride:e.always,defaultValue:"none"},outline:{components:["outline-color","outline-style","outline-width"],breakUp:d.outline,restore:f.withoutDefaults,defaultValue:"0",shorthand:!0},"outline-color":{canOverride:e.color,defaultValue:"invert",shortestValue:"red"},"outline-style":{canOverride:e.always,defaultValue:"none"},"outline-width":{canOverride:e.unit,defaultValue:"medium",shortestValue:"0"},"-moz-transform":{canOverride:e.sameFunctionOrValue},"-ms-transform":{canOverride:e.sameFunctionOrValue},"-webkit-transform":{canOverride:e.sameFunctionOrValue},transform:{canOverride:e.sameFunctionOrValue}},h=function(a,b,c){c=c||{},g[a]={canOverride:c.canOverride,components:b,breakUp:c.breakUp||d.fourValues,defaultValue:c.defaultValue||"0",restore:c.restore||f.fourValues,shortestValue:c.shortestValue,shorthand:!0};for(var h=0;h<b.length;h++)g[b[h]]={breakUp:c.breakUp||d.fourValues,canOverride:c.canOverride||e.unit,defaultValue:c.defaultValue||"0",shortestValue:c.shortestValue}};["","-moz-","-o-","-webkit-"].forEach(function(a){h(a+"border-radius",[a+"border-top-left-radius",a+"border-top-right-radius",a+"border-bottom-right-radius",a+"border-bottom-left-radius"],{breakUp:d.borderRadius,restore:f.borderRadius})}),h("border-color",["border-top-color","border-right-color","border-bottom-color","border-left-color"],{breakUp:d.fourValues,canOverride:e.color,defaultValue:"none",shortestValue:"red"}),h("border-style",["border-top-style","border-right-style","border-bottom-style","border-left-style"],{breakUp:d.fourValues,canOverride:e.always,defaultValue:"none"}),h("border-width",["border-top-width","border-right-width","border-bottom-width","border-left-width"],{defaultValue:"medium",shortestValue:"0"}),h("padding",["padding-top","padding-right","padding-bottom","padding-left"]),h("margin",["margin-top","margin-right","margin-bottom","margin-left"]);for(var i in g)if(g[i].shorthand)for(var j=0,k=g[i].components.length;k>j;j++)g[g[i].components[j]].componentOf=i;b.exports=g},{"./break-up":13,"./can-override":14,"./restore":24}],17:[function(a,b,c){function d(a,b,c,d){for(var g=e(b),h=e(c),i=0,j=b.value.length;j>i;i++)for(var k=0,l=c.value.length;l>k;k++)if(b.value[i][0]!=f&&c.value[k][0]!=f&&(g.value=[b.value[i]],h.value=[c.value[k]],!a(g,h,d)))return!1;return!0}var e=a("./clone").shallow,f=",";b.exports=d},{"./clone":15}],18:[function(a,b,c){function d(a){for(var b=a.value.length-1;b>=0;b--)if("inherit"==a.value[b][0])return!0;return!1}b.exports=d},{}],19:[function(a,b,c){function d(a,b,c,d){function e(a){return b===!1||b===!0?b:b.indexOf(a)>-1}function g(b){var c=a[b-1],d=a[b];return m(c.all,c.position)==m(d.all,d.position)}var h,i,j={},k=null;a:for(var l=0,o=a.length;o>l;l++){var p=a[l],q=!("-ms-filter"!=p.name&&"filter"!=p.name||"background"!=k&&"background-image"!=k)?k:p.name,r=p.important,s=p.hack;if(!p.unused)if(l>0&&h&&q==k&&r==h.important&&s==h.hack&&g(l)&&!h.unused)p.unused=!0;else{if(q in j&&(c&&q!=k||e(l))){var t=j[q],u=f[q]&&f[q].canOverride,v=!1;for(i=t.length-1;i>=0;i--){var w=a[t[i]],x=w.name!=q,y=w.important,z=w.hack;if(!w.unused&&(!x||!y)&&(y||!(z&&!s||!z&&s))&&(!y||"star"!=s&&"underscore"!=s)&&(z||s||x||!u||u(w,p,d))){if(y&&!r||y&&s){p.unused=!0,h=p;continue a}v=!0,w.unused=!0}}if(v){l=-1,h=null,k=null,j={};continue}}else{j[q]=j[q]||[],j[q].push(l);var A=n[q];if(A)for(i=A.length-1;i>=0;i--){var B=A[i];j[B]=j[B]||[],j[B].push(l)}}k=q,h=p}}}function e(a,b,c,f,m,n){var o=g(b);h(o,n),d(o,c,m.aggressiveMerging,n);for(var p=0,q=o.length;q>p;p++){var r=o[p];r.variable&&r.block&&e(a,r.value[0],c,f,m,n)}f&&m.shorthandCompacting&&(i(o,m.compatibility,n),j(o,m.sourceMap,n)),l(o),k(o)}var f=a("./compactable"),g=a("./wrap-for-optimizing").all,h=a("./populate-components"),i=a("./override-compactor"),j=a("./shorthand-compactor"),k=a("./remove-unused"),l=a("./restore-from-optimizing"),m=a("../stringifier/one-time").property,n={"animation-delay":["animation"],"animation-direction":["animation"],"animation-duration":["animation"],"animation-fill-mode":["animation"],"animation-iteration-count":["animation"],"animation-name":["animation"],"animation-play-state":["animation"],"animation-timing-function":["animation"],"-moz-animation-delay":["-moz-animation"],"-moz-animation-direction":["-moz-animation"],"-moz-animation-duration":["-moz-animation"],"-moz-animation-fill-mode":["-moz-animation"],"-moz-animation-iteration-count":["-moz-animation"],"-moz-animation-name":["-moz-animation"],"-moz-animation-play-state":["-moz-animation"],"-moz-animation-timing-function":["-moz-animation"],"-o-animation-delay":["-o-animation"],"-o-animation-direction":["-o-animation"],"-o-animation-duration":["-o-animation"],"-o-animation-fill-mode":["-o-animation"],"-o-animation-iteration-count":["-o-animation"],"-o-animation-name":["-o-animation"],"-o-animation-play-state":["-o-animation"],"-o-animation-timing-function":["-o-animation"],"-webkit-animation-delay":["-webkit-animation"],"-webkit-animation-direction":["-webkit-animation"],"-webkit-animation-duration":["-webkit-animation"],"-webkit-animation-fill-mode":["-webkit-animation"],"-webkit-animation-iteration-count":["-webkit-animation"],"-webkit-animation-name":["-webkit-animation"],"-webkit-animation-play-state":["-webkit-animation"],"-webkit-animation-timing-function":["-webkit-animation"],"border-color":["border"],"border-style":["border"],"border-width":["border"],"border-bottom":["border"],"border-bottom-color":["border-bottom","border-color","border"],"border-bottom-style":["border-bottom","border-style","border"],"border-bottom-width":["border-bottom","border-width","border"],"border-left":["border"],"border-left-color":["border-left","border-color","border"],"border-left-style":["border-left","border-style","border"],"border-left-width":["border-left","border-width","border"],"border-right":["border"],"border-right-color":["border-right","border-color","border"],"border-right-style":["border-right","border-style","border"],"border-right-width":["border-right","border-width","border"],"border-top":["border"],"border-top-color":["border-top","border-color","border"],"border-top-style":["border-top","border-style","border"],"border-top-width":["border-top","border-width","border"],"font-family":["font"],"font-size":["font"],"font-style":["font"],"font-variant":["font"],"font-weight":["font"],"transition-delay":["transition"],"transition-duration":["transition"],"transition-property":["transition"],"transition-timing-function":["transition"],"-moz-transition-delay":["-moz-transition"],"-moz-transition-duration":["-moz-transition"],"-moz-transition-property":["-moz-transition"],"-moz-transition-timing-function":["-moz-transition"],"-o-transition-delay":["-o-transition"],"-o-transition-duration":["-o-transition"],"-o-transition-property":["-o-transition"],"-o-transition-timing-function":["-o-transition"],"-webkit-transition-delay":["-webkit-transition"],"-webkit-transition-duration":["-webkit-transition"],"-webkit-transition-property":["-webkit-transition"],"-webkit-transition-timing-function":["-webkit-transition"]};b.exports=e},{"../stringifier/one-time":45,"./compactable":16,"./override-compactor":20,"./populate-components":21,"./remove-unused":22,"./restore-from-optimizing":23,"./shorthand-compactor":25,"./wrap-for-optimizing":28}],20:[function(a,b,c){function d(a){return function(b){return a.name===b.name}}function e(a,b){for(var c=0;c<a.components.length;c++){var d=a.components[c],e=y[d.name],f=e&&e.canOverride||f.sameValue,g=A(d);if(g.value=[[e.defaultValue]],!f(g,d,b))return!0}return!1}function f(a,b){return y[a.name].components.indexOf(b.name)>-1}function g(a,b){b.unused=!0,l(b,m(a)),a.value=b.value}function h(a,b){b.unused=!0,a.multiplex=!0,a.value=b.value}function i(a,b){b.unused=!0,a.value=b.value}function j(a,b){b.multiplex?h(a,b):a.multiplex?g(a,b):i(a,b)}function k(a,b){b.unused=!0;for(var c=0,d=a.components.length;d>c;c++)j(a.components[c],b.components[c],a.multiplex)}function l(a,b){a.multiplex=!0;for(var c=0,d=a.components.length;d>c;c++){var e=a.components[c];if(!e.multiplex)for(var f=e.value.slice(0),g=1;b>g;g++)e.value.push([G]),Array.prototype.push.apply(e.value,f)}}function m(a){for(var b=0,c=0,d=a.value.length;d>c;c++)a.value[c][0]==G&&b++;return b+1}function n(a){var b=[[a.name]].concat(a.value);return F([b],0).length}function o(a,b,c){for(var d=0,e=b;e>=0&&(a[e].name!=c||a[e].unused||d++,!(d>1));e--);return d>1}function p(a,b){for(var c=0,d=a.components.length;d>c;c++)if(q(b.isValidFunction,a.components[c]))return!0;return!1}function q(a,b){for(var c=0,d=b.value.length;d>c;c++)if(b.value[c][0]!=G&&a(b.value[c][0]))return!0;return!1}function r(a,b){if(!a.multiplex&&!b.multiplex||a.multiplex&&b.multiplex)return!1;var c,e=a.multiplex?a:b,f=a.multiplex?b:a,i=z(e);C([i]);var j=z(f);C([j]);var k=n(i)+1+n(j);a.multiplex?(c=i.components.filter(d(j))[0],g(c,j)):(c=j.components.filter(d(i))[0],l(j,m(i)),h(c,i)),C([j]);var o=n(j);return o>k}function s(a){return a.name in y}function t(a,b){return!a.multiplex&&("background"==a.name||"background-image"==a.name)&&b.multiplex&&("background"==b.name||"background-image"==b.name)&&u(b.value)}function u(a){for(var b=v(a),c=0,d=b.length;d>c;c++)if(1==b[c].length&&"none"==b[c][0][0])return!0;return!1}function v(a){for(var b=[],c=0,d=[],e=a.length;e>c;c++){var f=a[c];f[0]==G?(b.push(d),d=[]):d.push(f)}return b.push(d),b}function w(a,b,c){var g,h,i,n,u,v,w;a:for(u=a.length-1;u>=0;u--)if(h=a[u],s(h)&&!h.variable)for(g=y[h.name].canOverride||x.sameValue,v=u-1;v>=0;v--)if(i=a[v],s(i)&&!(i.variable||i.unused||h.unused||i.hack&&!h.hack||!i.hack&&h.hack||B(h)||t(i,h)))if(!i.shorthand&&h.shorthand&&f(h,i)){if(!h.important&&i.important)continue;if(!E([i],h.components))continue;if(!q(c.isValidFunction,i)&&p(h,c))continue;n=h.components.filter(d(i))[0],g=y[i.name]&&y[i.name].canOverride||x.sameValue,D(g,i,n,c)&&(i.unused=!0)}else if(i.shorthand&&!h.shorthand&&f(i,h)){if(h.important&&!i.important)continue;if(o(a,u-1,i.name))continue;if(p(i,c))continue;if(n=i.components.filter(d(h))[0],D(g,n,h,c)){var z=!b.properties.backgroundClipMerging&&n.name.indexOf("background-clip")>-1||!b.properties.backgroundOriginMerging&&n.name.indexOf("background-origin")>-1||!b.properties.backgroundSizeMerging&&n.name.indexOf("background-size")>-1,A=y[h.name].nonMergeableValue===h.value[0][0];if(z||A)continue;if(!b.properties.merging&&e(i,c))continue;if(n.value[0][0]!=h.value[0][0]&&(B(i)||B(h)))continue;if(r(i,h))continue;!i.multiplex&&h.multiplex&&l(i,m(h)),j(n,h),i.dirty=!0}}else if(i.shorthand&&h.shorthand&&i.name==h.name){if(!i.multiplex&&h.multiplex)continue;if(!h.important&&i.important){h.unused=!0;continue a}if(h.important&&!i.important){i.unused=!0;continue}for(w=i.components.length-1;w>=0;w--){var C=i.components[w],F=h.components[w];if(g=y[C.name].canOverride||x.sameValue,!D(g,C,F,c))continue a;if(!D(x.twoOptionalFunctions,C,F,c)&&c.isValidFunction(F))continue a}k(i,h),i.dirty=!0}else if(i.shorthand&&h.shorthand&&f(i,h)){if(!i.important&&h.important)continue;if(n=i.components.filter(d(h))[0],g=y[h.name].canOverride||x.sameValue,!D(g,n,h,c))continue;if(i.important&&!h.important){h.unused=!0;continue}var G=y[h.name].restore(h,y);if(G.length>1)continue;n=i.components.filter(d(h))[0],j(n,h),h.dirty=!0}else if(i.name==h.name){if(i.important&&!h.important){h.unused=!0;continue}if(g=y[h.name].canOverride||x.sameValue,!D(g,i,h,c))continue;i.unused=!0}}var x=a("./can-override"),y=a("./compactable"),z=a("./clone").deep,A=a("./clone").shallow,B=a("./has-inherit"),C=a("./restore-from-optimizing"),D=a("./every-combination"),E=a("./vendor-prefixes").same,F=a("../stringifier/one-time").property,G=",";b.exports=w},{"../stringifier/one-time":45,"./can-override":14,"./clone":15,"./compactable":16,"./every-combination":17,"./has-inherit":18,"./restore-from-optimizing":23,"./vendor-prefixes":27}],21:[function(a,b,c){function d(a,b){for(var c=a.length-1;c>=0;c--){var d=a[c],f=e[d.name];f&&f.shorthand&&(d.shorthand=!0,d.dirty=!0,d.components=f.breakUp(d,e,b),d.components.length>0?d.multiplex=d.components[0].multiplex:d.unused=!0)}}var e=a("./compactable");b.exports=d},{"./compactable":16}],22:[function(a,b,c){function d(a){for(var b=a.length-1;b>=0;b--){var c=a[b];c.unused&&c.all.splice(c.position,1)}}b.exports=d},{}],23:[function(a,b,c){function d(a){a.value[a.value.length-1][0]+=i}function e(a){"underscore"==a.hack?a.name=k+a.name:"star"==a.hack?a.name=j+a.name:"backslash"==a.hack?a.value[a.value.length-1][0]+=h:"bang"==a.hack&&(a.value[a.value.length-1][0]+=" "+l)}function f(a,b){for(var c=a.length-1;c>=0;c--){var f,h=a[c],i=g[h.name];if(!h.unused&&(h.dirty||h.important||h.hack)&&(!b&&i&&i.shorthand?(f=i.restore(h,g),h.value=f):f=h.value,h.important&&d(h),h.hack&&e(h),"all"in h)){var j=h.all[h.position];j[0][0]=h.name,j.splice(1,j.length-1),Array.prototype.push.apply(j,f)}}}var g=a("./compactable"),h="\\9",i="!important",j="*",k="_",l="!ie";b.exports=f},{"./compactable":16}],24:[function(a,b,c){function d(a){for(var b=0,c=a.length;c>b;b++){var d=a[b][0];if("inherit"!=d&&d!=k&&d!=l)return!1}return!0}function e(a,b,c){function e(a){Array.prototype.unshift.apply(j,a.value)}function f(a){var c=b[a.name];return c.doubleValues?1==c.defaultValue.length?a.value[0][0]==c.defaultValue[0]&&(a.value[1]?a.value[1][0]==c.defaultValue[0]:!0):a.value[0][0]==c.defaultValue[0]&&(a.value[1]?a.value[1][0]:a.value[0][0])==c.defaultValue[1]:a.value[0][0]==c.defaultValue}for(var g,h,i=a.components,j=[],k=i.length-1;k>=0;k--){var m=i[k],n=f(m);if("background-clip"==m.name){var o=i[k-1],p=f(o);g=m.value[0][0]==o.value[0][0],h=!g&&(p&&!n||!p&&!n||!p&&n&&m.value[0][0]!=o.value[0][0]),g?e(o):h&&(e(m),e(o)),k--}else if("background-size"==m.name){var q=i[k-1],r=f(q);g=!r&&n,h=!g&&(r&&!n||!r&&!n),g?e(q):h?(e(m),j.unshift([l]),e(q)):1==q.value.length&&e(q),k--}else{if(n||b[m.name].multiplexLastOnly&&!c)continue;e(m)}}return 0===j.length&&1==a.value.length&&"0"==a.value[0][0]&&j.push(a.value[0]),0===j.length&&j.push([b[a.name].defaultValue]),d(j)?[j[0]]:j}function f(a,b){if(a.multiplex){for(var c=j(a),d=j(a),e=0;4>e;e++){var f=a.components[e],h=j(a);h.value=[f.value[0]],c.components.push(h);var i=j(a);i.value=[f.value[2]],d.components.push(i)}var k=g(c,b),l=g(d,b);return k.length!=l.length||k[0][0]!=l[0][0]||(k.length>1?k[1][0]!=l[1][0]:0)||(k.length>2?k[2][0]!=l[2][0]:0)||(k.length>3?k[3][0]!=l[3][0]:0)?k.concat([["/"]]).concat(l):k}return g(a,b)}function g(a){var b=a.components,c=b[0].value[0],d=b[1].value[0],e=b[2].value[0],f=b[3].value[0];return c[0]==d[0]&&c[0]==e[0]&&c[0]==f[0]?[c]:c[0]==e[0]&&d[0]==f[0]?[c,d]:d[0]==f[0]?[c,d,e]:[c,d,e,f]}function h(a){return function(b,c){if(!b.multiplex)return a(b,c,!0);var d,e,f=0,g=[],h={};for(d=0,e=b.components[0].value.length;e>d;d++)b.components[0].value[d][0]==k&&f++;for(d=0;f>=d;d++){for(var i=j(b),l=0,m=b.components.length;m>l;l++){var n=b.components[l],o=j(n);i.components.push(o);for(var p=h[o.name]||0,q=n.value.length;q>p;p++){if(n.value[p][0]==k){h[o.name]=p+1;break}o.value.push(n.value[p])}}var r=d==f,s=a(i,c,r);Array.prototype.push.apply(g,s),f>d&&g.push([","])}return g}}function i(a,b){for(var c=a.components,e=[],f=c.length-1;f>=0;f--){var g=c[f],h=b[g.name];g.value[0][0]!=h.defaultValue&&e.unshift(g.value[0])}return 0===e.length&&e.push([b[a.name].defaultValue]),d(e)?[e[0]]:e}var j=a("./clone").shallow,k=",",l="/";b.exports={background:e,borderRadius:f,fourValues:g,multiplex:h,withoutDefaults:i}},{"./clone":15}],25:[function(a,b,c){function d(a){var b;for(var c in a){if(void 0!==b&&a[c].important!=b)return!0;b=a[c].important}return!1}function e(a){var b=[];for(var c in a){var d=a[c],e=d.all[d.position],f=e[0][e[0].length-1];Array.isArray(f)&&Array.prototype.push.apply(b,f)}return b}function f(a,b,c,d,f){var g,h=i[c],o=[[c],[h.defaultValue]],p=m(o);p.shorthand=!0,p.dirty=!0,l([p],f);for(var q=0,r=h.components.length;r>q;q++){var s=b[h.components[q]],t=i[s.name].canOverride;if(k(s))return;if(!n(t,p.components[q],s,f))return;p.components[q]=j(s),p.important=s.important,g=s.all}for(var u in b)b[u].unused=!0;if(d){var v=e(b);v.length>0&&o[0].push(v)}p.position=g.length,p.all=g,p.all.push(o),a.push(p)}function g(a,b,c,e,g){var h=a[b];for(var j in c)if(void 0===h||j!=h.name){var k=i[j],l=c[j];k.components.length>Object.keys(l).length?delete c[j]:d(l)||f(a,l,j,e,g)}}function h(a,b,c){var d={};if(!(a.length<3)){for(var e=0,f=a.length;f>e;e++){var h=a[e];if(!h.unused&&!h.hack&&!h.variable){var j=i[h.name];if(j&&j.componentOf)if(h.shorthand)g(a,e,d,b,c);else{var k=j.componentOf;d[k]=d[k]||{},d[k][h.name]=h}}}g(a,e,d,b,c)}}var i=a("./compactable"),j=a("./clone").deep,k=a("./has-inherit"),l=a("./populate-components"),m=a("./wrap-for-optimizing").single,n=a("./every-combination");b.exports=h},{"./clone":15,"./compactable":16,"./every-combination":17,"./has-inherit":18,"./populate-components":21,"./wrap-for-optimizing":28}],26:[function(a,b,c){function d(a){var b=g.slice(0).filter(function(b){return!(b in a.units)||a.units[b]===!0}),c="(\\-?\\.?\\d+\\.?\\d*("+b.join("|")+"|)|auto|inherit)";this.compatibleCssUnitRegex=new RegExp("^"+c+"$","i"),this.compatibleCssUnitAnyRegex=new RegExp("^(none|"+f.join("|")+"|"+c+"|"+l+"|"+j+"|"+k+")$","i"),this.colorOpacity=a.colors.opacity}var e=a("../utils/split"),f=["thin","thick","medium","inherit","initial"],g=["px","%","em","in","cm","mm","ex","pt","pc","ch","rem","vh","vm","vmin","vmax","vw"],h="(\\-?\\.?\\d+\\.?\\d*("+g.join("|")+"|)|auto|inherit)",i="(\\-moz\\-|\\-webkit\\-)?calc\\([^\\)]+\\)",j="[A-Z]+(\\-|[A-Z]|[0-9])+\\(.*?\\)",k="\\-(\\-|[A-Z]|[0-9])+\\(.*?\\)",l="var\\(\\-\\-[^\\)]+\\)",m="("+l+"|"+j+"|"+k+")",n="("+h+"|"+i+")",o="(none|"+f.join("|")+"|"+h+"|"+l+"|"+j+"|"+k+")",p=new RegExp("^"+j+"$","i"),q=new RegExp("^"+k+"$","i"),r=new RegExp("^"+l+"$","i"),s=new RegExp("^"+m+"$","i"),t=new RegExp("^"+h+"$","i"),u=new RegExp("^"+n+"$","i"),v=new RegExp("^"+o+"$","i"),w=["repeat","no-repeat","repeat-x","repeat-y","inherit"],x=["inherit","scroll","fixed","local"],y=["center","top","bottom","left","right"],z=["contain","cover"],A=["border-box","content-box","padding-box"],B=["auto","inherit","hidden","none","dotted","dashed","solid","double","groove","ridge","inset","outset"],C=["armenian","circle","cjk-ideographic","decimal","decimal-leading-zero","disc","georgian","hebrew","hiragana","hiragana-iroha","inherit","katakana","katakana-iroha","lower-alpha","lower-greek","lower-latin","lower-roman","none","square","upper-alpha","upper-latin","upper-roman"],D=["inside","outside","inherit"];d.prototype.isValidHexColor=function(a){return(4===a.length||7===a.length)&&"#"===a[0]},d.prototype.isValidRgbaColor=function(a){return a=a.split(" ").join(""),a.length>0&&0===a.indexOf("rgba(")&&a.indexOf(")")===a.length-1},d.prototype.isValidHslaColor=function(a){return a=a.split(" ").join(""),a.length>0&&0===a.indexOf("hsla(")&&a.indexOf(")")===a.length-1},d.prototype.isValidNamedColor=function(a){return"auto"!==a&&("transparent"===a||"inherit"===a||/^[a-zA-Z]+$/.test(a))},d.prototype.isValidVariable=function(a){return r.test(a)},d.prototype.isValidColor=function(a){return this.isValidNamedColor(a)||this.isValidColorValue(a)||this.isValidVariable(a)||this.isValidVendorPrefixedValue(a)},d.prototype.isValidColorValue=function(a){return this.isValidHexColor(a)||this.isValidRgbaColor(a)||this.isValidHslaColor(a)},d.prototype.isValidUrl=function(a){return 0===a.indexOf("__ESCAPED_URL_CLEAN_CSS")},d.prototype.isValidUnit=function(a){return v.test(a)},d.prototype.isValidUnitWithoutFunction=function(a){
-return t.test(a)},d.prototype.isValidAndCompatibleUnit=function(a){return this.compatibleCssUnitAnyRegex.test(a)},d.prototype.isValidAndCompatibleUnitWithoutFunction=function(a){return this.compatibleCssUnitRegex.test(a)},d.prototype.isValidFunctionWithoutVendorPrefix=function(a){return p.test(a)},d.prototype.isValidFunctionWithVendorPrefix=function(a){return q.test(a)},d.prototype.isValidFunction=function(a){return s.test(a)},d.prototype.isValidBackgroundRepeat=function(a){return w.indexOf(a)>=0||this.isValidVariable(a)},d.prototype.isValidBackgroundAttachment=function(a){return x.indexOf(a)>=0||this.isValidVariable(a)},d.prototype.isValidBackgroundBox=function(a){return A.indexOf(a)>=0||this.isValidVariable(a)},d.prototype.isValidBackgroundPositionPart=function(a){return y.indexOf(a)>=0||u.test(a)||this.isValidVariable(a)},d.prototype.isValidBackgroundPosition=function(a){if("inherit"===a)return!0;for(var b=a.split(" "),c=0,d=b.length;d>c;c++)if(""!==b[c]&&!this.isValidBackgroundPositionPart(b[c])&&!this.isValidVariable(b[c]))return!1;return!0},d.prototype.isValidBackgroundSizePart=function(a){return z.indexOf(a)>=0||t.test(a)||this.isValidVariable(a)},d.prototype.isValidBackgroundPositionAndSize=function(a){if(a.indexOf("/")<0)return!1;var b=e(a,"/");return this.isValidBackgroundSizePart(b.pop())&&this.isValidBackgroundPositionPart(b.pop())},d.prototype.isValidListStyleType=function(a){return C.indexOf(a)>=0||this.isValidVariable(a)},d.prototype.isValidListStylePosition=function(a){return D.indexOf(a)>=0||this.isValidVariable(a)},d.prototype.isValidStyle=function(a){return this.isValidStyleKeyword(a)||this.isValidVariable(a)},d.prototype.isValidStyleKeyword=function(a){return B.indexOf(a)>=0},d.prototype.isValidWidth=function(a){return this.isValidUnit(a)||this.isValidWidthKeyword(a)||this.isValidVariable(a)},d.prototype.isValidWidthKeyword=function(a){return f.indexOf(a)>=0},d.prototype.isValidVendorPrefixedValue=function(a){return/^-([A-Za-z0-9]|-)*$/gi.test(a)},d.prototype.areSameFunction=function(a,b){if(!this.isValidFunction(a)||!this.isValidFunction(b))return!1;var c=a.substring(0,a.indexOf("(")),d=b.substring(0,b.indexOf("("));return c===d},b.exports=d},{"../utils/split":66}],27:[function(a,b,c){function d(a){for(var b=[],c=0,d=a.length;d>c;c++)for(var e=a[c],g=0,h=e.value.length;h>g;g++){var i=f.exec(e.value[g][0]);i&&-1==b.indexOf(i[0])&&b.push(i[0])}return b}function e(a,b){return d(a).sort().join(",")==d(b).sort().join(",")}var f=/$\-moz\-|\-ms\-|\-o\-|\-webkit\-/;b.exports={same:e}},{}],28:[function(a,b,c){function d(a){for(var b=[],c=a.length-1;c>=0;c--)if("string"!=typeof a[c][0]){var d=k(a[c]);d.all=a,d.position=c,b.unshift(d)}return b}function e(a){for(var b=1,c=a.length;c>b;b++)if(","==a[b][0]||"/"==a[b][0])return!0;return!1}function f(a){var b=!1,c=a[0][0],d=a[a.length-1];return c[0]==r?b="underscore":c[0]==q?b="star":d[0][0]!=s||d[0].match(o)?d[0].indexOf(s)>0&&!d[0].match(o)?b="bang":d[0].indexOf(l)>0&&d[0].indexOf(l)==d[0].length-l.length-1?b="backslash":0===d[0].indexOf(l)&&2==d[0].length&&(b="backslash"):b="bang",b}function g(a){if(a.length>1){var b=a[a.length-1][0];if("string"==typeof b)return p.test(b)}return!1}function h(a){a.length>0&&(a[a.length-1][0]=a[a.length-1][0].replace(p,""))}function i(a){a[0][0]=a[0][0].substring(1)}function j(a,b){var c=a[a.length-1];c[0]=c[0].substring(0,c[0].indexOf("backslash"==b?l:s)).trim(),0===c[0].length&&a.pop()}function k(a){var b=g(a);b&&h(a);var c=f(a);"star"==c||"underscore"==c?i(a):"backslash"!=c&&"bang"!=c||j(a,c);var d=0===a[0][0].indexOf("--");return{block:d&&a[1]&&Array.isArray(a[1][0][0]),components:[],dirty:!1,hack:c,important:b,name:a[0][0],multiplex:a.length>2?e(a):!1,position:0,shorthand:!1,unused:a.length<2,value:a.slice(1),variable:d}}var l="\\",m="important",n="!"+m,o=new RegExp(m+"$","i"),p=new RegExp(n+"$","i"),q="*",r="_",s="!";b.exports={all:d,single:k}},{}],29:[function(a,b,c){function d(a){for(var b=0,c=a.length;c>b;b++){var e=a[b],f=!1;switch(e[0]){case"selector":f=0===e[1].length||0===e[2].length;break;case"block":d(e[2]),f=0===e[2].length}f&&(a.splice(b,1),b--,c--)}}function e(a,b,c){for(var d=0,e=a.length;e>d;d++){var f=a[d];if("block"==f[0]){var h=/@(-moz-|-o-|-webkit-)?keyframes/.test(f[1][0]);g(f[2],b,c,!h)}}}function f(a,b,c){for(var d=0,e=a.length;e>d;d++){var g=a[d];switch(g[0]){case"selector":h(g[1],g[2],!1,!0,b,c);break;case"block":f(g[2],b,c)}}}function g(a,b,c,h){if(e(a,b,c),f(a,b,c),i(a),j(a,b,c),k(a,b,c),l(a,b,c),m(a,b),b.restructuring&&h&&(n(a,b),j(a,b,c)),b.mediaMerging){o(a);for(var q=p(a),r=q.length-1;r>=0;r--)g(q[r][2],b,c,!1)}d(a)}var h=a("../properties/optimizer"),i=a("./remove-duplicates"),j=a("./merge-adjacent"),k=a("./reduce-non-adjacent"),l=a("./merge-non-adjacent-by-selector"),m=a("./merge-non-adjacent-by-body"),n=a("./restructure"),o=a("./remove-duplicate-media-queries"),p=a("./merge-media-queries");b.exports=g},{"../properties/optimizer":19,"./merge-adjacent":33,"./merge-media-queries":34,"./merge-non-adjacent-by-body":35,"./merge-non-adjacent-by-selector":36,"./reduce-non-adjacent":37,"./remove-duplicate-media-queries":38,"./remove-duplicates":39,"./restructure":41}],30:[function(a,b,c){function d(a,b){return"["+b.replace(/ /g,"")+"]"}function e(a,b){return a[0]>b[0]?1:-1}function f(a,b,c,d){return b&&c&&d.length?b+c+" ":b&&c?b+c:c}var g={selectors:function(a,b,c){for(var g=[],h=[],i=0,j=a.length;j>i;i++){var k=a[i],l=k[0].replace(/\s+/g," ").replace(/ ?, ?/g,",").replace(/\s*(\\)?([>+~])(\s*)/g,f).trim();c&&l.indexOf("nav")>0&&(l=l.replace(/\+nav(\S|$)/,"+ nav$1")),(!b||-1==l.indexOf("*+html ")&&-1==l.indexOf("*:first-child+html "))&&(l.indexOf("*")>-1&&(l=l.replace(/\*([:#\.\[])/g,"$1").replace(/^(\:first\-child)?\+html/,"*$1+html")),l.indexOf("[")>-1&&(l=l.replace(/\[([^\]]+)\]/g,d)),-1==h.indexOf(l)&&(k[0]=l,h.push(l),g.push(k)))}return g.sort(e)},selectorDuplicates:function(a){for(var b=[],c=[],d=0,f=a.length;f>d;d++){var g=a[d];-1==c.indexOf(g[0])&&(c.push(g[0]),b.push(g))}return b.sort(e)},block:function(a,b){a[0]=a[0].replace(/\s+/g," ").replace(/(,|:|\() /g,"$1").replace(/ \)/g,")"),b||(a[0]=a[0].replace(/\) /g,")"))},atRule:function(a){a[0]=a[0].replace(/\s+/g," ").trim()}};b.exports=g},{}],31:[function(a,b,c){function d(a){var b=[];if("selector"==a[0])for(var c=!/[\.\+>~]/.test(f(a[1])),i=0,j=a[2].length;j>i;i++){var k=a[2][i];if(0!==k.indexOf("__ESCAPED")&&k[0]!=h){var l=a[2][i][0][0];if(0!==l.length&&0!==l.indexOf("--")){var m=g(a[2],i);b.push([l,m,e(l),a[2][i],l+":"+m,a[1],c])}}}else if("block"==a[0])for(var n=0,o=a[2].length;o>n;n++)b=b.concat(d(a[2][n]));return b}function e(a){return"list-style"==a?a:a.indexOf("-radius")>0?"border-radius":"border-collapse"==a||"border-spacing"==a||"border-image"==a?a:0===a.indexOf("border-")&&/^border\-\w+\-\w+$/.test(a)?a.match(/border\-\w+/)[0]:0===a.indexOf("border-")&&/^border\-\w+$/.test(a)?"border":0===a.indexOf("text-")?a:a.replace(/^\-\w+\-/,"").match(/([a-zA-Z]+)/)[0].toLowerCase()}var f=a("../stringifier/one-time").selectors,g=a("../stringifier/one-time").value,h="at-rule";b.exports=d},{"../stringifier/one-time":45}],32:[function(a,b,c){function d(a,b){return a.compatibility.selectors.special.test(b)}b.exports=d},{}],33:[function(a,b,c){function d(a,b,c){for(var d=[null,[],[]],j=b.compatibility.selectors.adjacentSpace,k=0,l=a.length;l>k;k++){var m=a[k];if("selector"==m[0])if("selector"==d[0]&&g(m[1])==g(d[1])){var n=[d[2].length];Array.prototype.push.apply(d[2],m[2]),e(m[1],d[2],n,!0,b,c),m[2]=[]}else"selector"!=d[0]||f(m[2])!=f(d[2])||i(b,g(m[1]))||i(b,g(d[1]))?d=m:(d[1]=h(d[1].concat(m[1]),!1,j),m[2]=[]);else d=[null,[],[]]}}var e=a("../properties/optimizer"),f=a("../stringifier/one-time").body,g=a("../stringifier/one-time").selectors,h=a("./clean-up").selectors,i=a("./is-special");b.exports=d},{"../properties/optimizer":19,"../stringifier/one-time":45,"./clean-up":30,"./is-special":32}],34:[function(a,b,c){function d(a){for(var b={},c=[],d=a.length-1;d>=0;d--){var g=a[d];if("block"==g[0]){var h=b[g[1][0]];h||(h=[],b[g[1][0]]=h),h.push(d)}}for(var i in b){var j=b[i];a:for(var k=j.length-1;k>0;k--){var l=j[k],m=a[l],n=j[k-1],o=a[n];b:for(var p=1;p>=-1;p-=2){for(var q=1==p,r=q?l+1:n-1,s=q?n:l,t=q?1:-1,u=q?m:o,v=q?o:m,w=f(u);r!=s;){var x=f(a[r]);if(r+=t,!e(w,x))continue b}v[2]=q?u[2].concat(v[2]):v[2].concat(u[2]),u[2]=[],c.push(v);continue a}}}return c}var e=a("./reorderable").canReorder,f=a("./extractor");b.exports=d},{"./extractor":31,"./reorderable":40}],35:[function(a,b,c){function d(a){return/\.|\*| :/.test(a)}function e(a){var b=j(a[1]);return b.indexOf("__")>-1||b.indexOf("--")>-1}function f(a){return a.replace(/--[^ ,>\+~:]+/g,"")}function g(a,b){var c=f(j(a[1]));for(var d in b){var e=b[d],g=f(j(e[1]));(g.indexOf(c)>-1||c.indexOf(g)>-1)&&delete b[d]}}function h(a,b){for(var c={},f=b.compatibility.selectors.adjacentSpace,h=a.length-1;h>=0;h--){var m=a[h];if("selector"==m[0]){m[2].length>0&&!b.semanticMerging&&d(j(m[1]))&&(c={}),m[2].length>0&&b.semanticMerging&&e(m)&&g(m,c);var n=i(m[2]),o=c[n];!o||l(b,j(m[1]))||l(b,j(o[1]))||(m[1]=m[2].length>0?k(o[1].concat(m[1]),!1,f):o[1].concat(m[1]),o[2]=[],c[n]=null),c[i(m[2])]=m}}}var i=a("../stringifier/one-time").body,j=a("../stringifier/one-time").selectors,k=a("./clean-up").selectors,l=a("./is-special");b.exports=h},{"../stringifier/one-time":45,"./clean-up":30,"./is-special":32}],36:[function(a,b,c){function d(a,b,c){var d,i={},j=[];for(d=a.length-1;d>=0;d--)if("selector"==a[d][0]&&0!==a[d][2].length){var k=f(a[d][1]);i[k]=[d].concat(i[k]||[]),2==i[k].length&&j.push(k)}for(d=j.length-1;d>=0;d--){var l=i[j[d]];a:for(var m=l.length-1;m>0;m--){var n=l[m-1],o=a[n],p=l[m],q=a[p];b:for(var r=1;r>=-1;r-=2){for(var s,t=1==r,u=t?n+1:p-1,v=t?p:n,w=t?1:-1,x=t?o:q,y=t?q:o,z=g(x);u!=v;){var A=g(a[u]);u+=w;var B=t?h(z,A):h(A,z);if(!B&&!t)continue a;if(!B&&t)continue b}t?(s=[x[2].length],Array.prototype.push.apply(x[2],y[2]),y[2]=x[2]):(s=[y[2].length],Array.prototype.push.apply(y[2],x[2])),e(y[1],y[2],s,!0,b,c),x[2]=[]}}}}var e=a("../properties/optimizer"),f=a("../stringifier/one-time").selectors,g=a("./extractor"),h=a("./reorderable").canReorder;b.exports=d},{"../properties/optimizer":19,"../stringifier/one-time":45,"./extractor":31,"./reorderable":40}],37:[function(a,b,c){function d(a,b,c){for(var d={},h=[],i=a.length-1;i>=0;i--){var j=a[i];if("selector"==j[0]&&0!==j[2].length)for(var m=k(j[1]),n=j[1].length>1&&!l(b,m),o=b.sourceMap?e(j[1]):j[1],p=n?[m].concat(o):[m],q=0,r=p.length;r>q;q++){var s=p[q];d[s]?h.push(s):d[s]=[],d[s].push({where:i,list:o,isPartial:n&&q>0,isComplex:n&&0===q})}}f(a,h,d,b,c),g(a,d,b,c)}function e(a){for(var b=[],c=0;c<a.length;c++)b.push([a[c][0]]);return b}function f(a,b,c,d,e){function f(a,b){return l[a].isPartial&&0===b.length}function g(a,b,c,d){l[c-d-1].isPartial||(a[2]=b)}for(var i=0,j=b.length;j>i;i++){var k=b[i],l=c[k];h(a,k,l,{filterOut:f,callback:g},d,e)}}function g(a,b,c,d){function e(a){return g.data[a].where<g.intoPosition}function f(a,b,c,d){0===d&&g.reducedBodies.push(b)}var g={};a:for(var i in b){var k=b[i];if(k[0].isComplex){var m=k[k.length-1].where,n=a[m],o=[],p=l(c,i)?[i]:k[0].list;g.intoPosition=m,g.reducedBodies=o;for(var q=0,r=p.length;r>q;q++){var s=p[q],t=b[s];if(t.length<2)continue a;if(g.data=t,h(a,s,t,{filterOut:e,callback:f},c,d),j(o[o.length-1])!=j(o[0]))continue a}n[2]=o[0]}}}function h(a,b,c,d,e,f){for(var g=[],h=[],j=[],k=[],l=c.length-1,n=0;l>=0;l--)if(!d.filterOut(l,g)){var o=c[l].where,p=a[o],q=m(p[2]);g=g.concat(q),h.push(q),k.push(o)}for(l=0,n=h.length;n>l;l++)h[l].length>0&&j.push((j[l-1]||0)+h[l].length);i(b,g,j,!1,e,f);for(var r=k.length,s=g.length-1,t=r-1;t>=0;)if((0===t||g[s]&&h[t].indexOf(g[s])>-1)&&s>-1)s--;else{var u=g.splice(s+1);d.callback(a[k[t]],u,r,t),t--}}var i=a("../properties/optimizer"),j=a("../stringifier/one-time").body,k=a("../stringifier/one-time").selectors,l=a("./is-special"),m=a("../utils/clone-array");b.exports=d},{"../properties/optimizer":19,"../stringifier/one-time":45,"../utils/clone-array":59,"./is-special":32}],38:[function(a,b,c){function d(a){for(var b={},c=0,d=a.length;d>c;c++){var f=a[c];if("block"==f[0]){var g=f[1][0]+"%"+e(f[2]),h=b[g];h&&(h[2]=[]),b[g]=f}}}var e=a("../stringifier/one-time").all;b.exports=d},{"../stringifier/one-time":45}],39:[function(a,b,c){function d(a){for(var b,c,d,g,h={},i=[],j=0,k=a.length;k>j;j++)c=a[j],"selector"==c[0]&&(b=f(c[1]),h[b]&&1==h[b].length?i.push(b):h[b]=h[b]||[],h[b].push(j));for(j=0,k=i.length;k>j;j++){b=i[j],g=[];for(var l=h[b].length-1;l>=0;l--)c=a[h[b][l]],d=e(c[2]),g.indexOf(d)>-1?c[2]=[]:g.push(d)}}var e=a("../stringifier/one-time").body,f=a("../stringifier/one-time").selectors;b.exports=d},{"../stringifier/one-time":45}],40:[function(a,b,c){function d(a,b){for(var c=b.length-1;c>=0;c--)for(var d=a.length-1;d>=0;d--)if(!e(a[d],b[c]))return!1;return!0}function e(a,b){var c=a[0],d=a[1],e=a[2],o=a[5],p=a[6],q=b[0],r=b[1],s=b[2],t=b[5],u=b[6];return"font"==c&&"line-height"==q||"font"==q&&"line-height"==c?!1:m.test(c)&&m.test(q)?!1:e==s&&g(c)==g(q)&&f(c)^f(q)?!1:("border"!=e||!n.test(s)||"border"!=c&&c!=s)&&("border"!=s||!n.test(e)||"border"!=q&&q!=e)?"border"==e&&"border"==s&&c!=q&&(h(c)&&i(q)||i(c)&&h(q))?!1:e!=s?!0:c!=q||e!=s||d!=r&&!j(d,r)?c!=q&&e==s&&c!=e&&q!=s?!0:c!=q&&e==s&&d==r?!0:!(!u||!p||l(e)||l(s)||!k(t,o)):!0:!1}function f(a){return/^\-(?:moz|webkit|ms|o)\-/.test(a)}function g(a){return a.replace(/^\-(?:moz|webkit|ms|o)\-/,"")}function h(a){return"border-top"==a||"border-right"==a||"border-bottom"==a||"border-left"==a}function i(a){return"border-color"==a||"border-style"==a||"border-width"==a}function j(a,b){return f(a)&&f(b)&&a.split("-")[1]!=b.split("-")[2]}function k(a,b){for(var c=0,d=a.length;d>c;c++)for(var e=0,f=b.length;f>e;e++)if(a[c][0]==b[e][0])return!1;return!0}function l(a){return"font"==a||"line-height"==a||"list-style"==a}var m=/align\-items|box\-align|box\-pack|flex|justify/,n=/^border\-(top|right|bottom|left|color|style|width|radius)/;b.exports={canReorder:d,canReorderSingle:e}},{}],41:[function(a,b,c){function d(a,b){return a>b}function e(a,b){var c=m(a);return c[5]=c[5].concat(b[5]),c}function f(a,b){function c(a,b,c){for(var d=c.length-1;d>=0;d--){var e=c[d][0],g=f(b,e);if(B[g].length>1&&x(a,B[g])){m(g);break}}}function f(a,b){var c=n(b);return B[c]=B[c]||[],B[c].push([a,b]),c}function m(a){var b,c=a.split(E),d=[];for(var e in B){var f=e.split(E);for(b=f.length-1;b>=0;b--)if(c.indexOf(f[b])>-1){d.push(e);break}}for(b=d.length-1;b>=0;b--)delete B[d[b]]}function n(a){for(var b=[],c=0,d=a.length;d>c;c++)b.push(j(a[c][1]));return b.join(E)}function o(a){for(var c=[],d=[],e=a.length-1;e>=0;e--)l(b,j(a[e][1]))||(d.unshift(a[e]),a[e][2].length>0&&-1==c.indexOf(a[e])&&c.push(a[e]));return c.length>1?d:[]}function p(a,b){var d=b[0],e=b[1],f=b[4],g=d.length+e.length+1,h=[],i=[],j=o(z[f]);if(!(j.length<2)){var l=r(j,g,1),m=l[0];if(m[1]>0)return c(a,b,l);for(var n=m[0].length-1;n>=0;n--)h=m[0][n][1].concat(h),i.unshift(m[0][n]);h=k(h),u(a,[b],h,i)}}function q(a,b){return a[1]>b[1]}function r(a,b,c){var d=s(a,b,c,D-1);return d.sort(q)}function s(a,b,c,d){var e=[[a,t(a,b,c)]];if(a.length>2&&d>0)for(var f=a.length-1;f>=0;f--){var g=Array.prototype.slice.call(a,0);g.splice(f,1),e=e.concat(s(g,b,c,d-1))}return e}function t(a,b,c){for(var d=0,e=a.length-1;e>=0;e--)d+=a[e][2].length>c?j(a[e][1]).length:-1;return d-(a.length-1)*b+1}function u(b,c,d,e){var f,g,h,j,k=[];for(f=e.length-1;f>=0;f--){var l=e[f];for(g=l[2].length-1;g>=0;g--){var m=l[2][g];for(h=0,j=c.length;j>h;h++){var n=c[h],o=m[0][0],p=n[0],q=n[4];if(o==p&&i([m])==q){l[2].splice(g,1);break}}}}for(f=c.length-1;f>=0;f--)k.unshift(c[f][3]);var r=["selector",d,k];a.splice(b,0,r)}function v(a,b){var c=b[4],d=z[c];d&&d.length>1&&(w(a,b)||p(a,b))}function w(a,b){var c,d,e=[],f=[],g=b[4],h=o(z[g]);if(!(h.length<2)){a:for(var i in z){var j=z[i];for(c=h.length-1;c>=0;c--)if(-1==j.indexOf(h[c]))continue a;e.push(i)}if(e.length<2)return!1;for(c=e.length-1;c>=0;c--)for(d=A.length-1;d>=0;d--)if(A[d][4]==e[c]){f.unshift([A[d],h]);break}return x(a,f)}}function x(a,b){for(var c,d=0,e=[],f=b.length-1;f>=0;f--){c=b[f][0];var g=c[4];d+=g.length+(f>0?1:0),e.push(c)}var h=b[0][1],i=r(h,d,e.length)[0];if(i[1]>0)return!1;var j=[],l=[];for(f=i[0].length-1;f>=0;f--)j=i[0][f][1].concat(j),l.unshift(i[0][f]);for(j=k(j),u(a,e,j,l),f=e.length-1;f>=0;f--){c=e[f];var m=A.indexOf(c);delete z[c[4]],m>-1&&-1==C.indexOf(m)&&C.push(m)}return!0}function y(a,b,c){var d=a[0],e=b[0];if(d!=e)return!1;var f=b[4],g=z[f];return g&&g.indexOf(c)>-1}for(var z={},A=[],B={},C=[],D=2,E="%",F=a.length-1;F>=0;F--){var G,H,I,J,K,L=a[F];if("selector"==L[0])G=!0;else{if("block"!=L[0])continue;G=!1}var M=A.length,N=g(L);C=[];var O=[];for(H=N.length-1;H>=0;H--)for(I=H-1;I>=0;I--)if(!h(N[H],N[I])){O.push(H);break}for(H=N.length-1;H>=0;H--){var P=N[H],Q=!1;for(I=0;M>I;I++){var R=A[I];-1!=C.indexOf(I)||h(P,R)||y(P,R,L)||(v(F+1,R,L),-1==C.indexOf(I)&&(C.push(I),delete z[R[4]])),Q||(Q=P[0]==R[0]&&P[1]==R[1],Q&&(K=I))}if(G&&!(O.indexOf(H)>-1)){var S=P[4];z[S]=z[S]||[],z[S].push(L),Q?A[K]=e(A[K],P):A.push(P)}}for(C=C.sort(d),H=0,J=C.length;J>H;H++){var T=C[H]-H;A.splice(T,1)}}for(var U=a[0]&&"at-rule"==a[0][0]&&0===a[0][1][0].indexOf("@charset")?1:0;U<a.length-1;U++){var V="at-rule"===a[U][0]&&0===a[U][1][0].indexOf("@import"),W="text"===a[U][0]&&0===a[U][1][0].indexOf("__ESCAPED_COMMENT_SPECIAL");if(!V&&!W)break}for(F=0;F<A.length;F++)v(U,A[F])}var g=a("./extractor"),h=a("./reorderable").canReorderSingle,i=a("../stringifier/one-time").body,j=a("../stringifier/one-time").selectors,k=a("./clean-up").selectorDuplicates,l=a("./is-special"),m=a("../utils/clone-array");b.exports=f},{"../stringifier/one-time":45,"../utils/clone-array":59,"./clean-up":30,"./extractor":31,"./is-special":32,"./reorderable":40}],42:[function(a,b,c){function d(a,b){return a.value[b]&&"-"==a.value[b][0][0]&&parseFloat(a.value[b][0])<0}function e(a,b){return-1==b.indexOf("0")?b:(b.indexOf("-")>-1&&(b=b.replace(/([^\w\d\-]|^)\-0([^\.]|$)/g,"$10$2").replace(/([^\w\d\-]|^)\-0([^\.]|$)/g,"$10$2")),b.replace(/(^|\s)0+([1-9])/g,"$1$2").replace(/(^|\D)\.0+(\D|$)/g,"$10$2").replace(/(^|\D)\.0+(\D|$)/g,"$10$2").replace(/\.([1-9]*)0+(\D|$)/g,function(a,b,c){return(b.length>0?".":"")+b+c}).replace(/(^|\D)0\.(\d)/g,"$1.$2"))}function f(a,b){return-1==b.indexOf("0deg")?b:b.replace(/\(0deg\)/g,"(0)")}function g(a,b){return a.indexOf("filter")>-1||-1==b.indexOf(" ")?b:(b=b.replace(/\s+/g," "),b.indexOf("calc")>-1&&(b=b.replace(/\) ?\/ ?/g,")/ ")),b.replace(/\( /g,"(").replace(/ \)/g,")").replace(/, /g,","))}function h(a,b,c){return-1===c.value||-1===b.indexOf(".")?b:b.replace(c.regexp,function(a,b){return Math.round(parseFloat(b)*c.multiplier)/c.multiplier+"px"}).replace(/(\d)\.($|\D)/g,"$1$2")}function i(a,b,c){return/^(?:\-moz\-calc|\-webkit\-calc|calc)\(/.test(b)?b:"flex"==a||"-ms-flex"==a||"-webkit-flex"==a||"flex-basis"==a||"-webkit-flex-basis"==a?b:b.indexOf("%")>0&&("height"==a||"max-height"==a)?b:b.replace(c,"$10$2").replace(c,"$10$2")}function j(a){var b,c=a.value;4==c.length&&"0"===c[0][0]&&"0"===c[1][0]&&"0"===c[2][0]&&"0"===c[3][0]&&(b=a.name.indexOf("box-shadow")>-1?2:1),b&&(a.value.splice(b),a.dirty=!0)}function k(a,b,c){return-1===b.indexOf("#")&&-1==b.indexOf("rgb")&&-1==b.indexOf("hsl")?B.shorten(b):(b=b.replace(/rgb\((\-?\d+),(\-?\d+),(\-?\d+)\)/g,function(a,b,c,d){return new z(b,c,d).toHex()}).replace(/hsl\((-?\d+),(-?\d+)%?,(-?\d+)%?\)/g,function(a,b,c,d){return new A(b,c,d).toHex()}).replace(/(^|[^='"])#([0-9a-f]{6})/gi,function(a,b,c){return c[0]==c[1]&&c[2]==c[3]&&c[4]==c[5]?b+"#"+c[0]+c[2]+c[4]:b+"#"+c}).replace(/(rgb|rgba|hsl|hsla)\(([^\)]+)\)/g,function(a,b,c){var d=c.split(","),e="hsl"==b&&3==d.length||"hsla"==b&&4==d.length||"rgb"==b&&3==d.length&&c.indexOf("%")>0||"rgba"==b&&4==d.length&&c.indexOf("%")>0;return e?(-1==d[1].indexOf("%")&&(d[1]+="%"),-1==d[2].indexOf("%")&&(d[2]+="%"),b+"("+d.join(",")+")"):a}),c.colors.opacity&&-1==a.indexOf("background")&&(b=b.replace(/(?:rgba|hsla)\(0,0%?,0%?,0\)/g,function(a){return y(b,",").pop().indexOf("gradient(")>-1?a:"transparent"})),B.shorten(b))}function l(a,b,c){return L.test(b)?b.replace(L,function(a,b){var d,e=parseInt(b);return 0===e?a:(c.properties.shorterLengthUnits&&c.units.pt&&3*e%4===0&&(d=3*e/4+"pt"),c.properties.shorterLengthUnits&&c.units.pc&&e%16===0&&(d=e/16+"pc"),c.properties.shorterLengthUnits&&c.units["in"]&&e%96===0&&(d=e/96+"in"),d&&(d=a.substring(0,a.indexOf(b))+d),d&&d.length<a.length?d:a)}):b}function m(a,b){return M.test(b)?b.replace(M,function(a,b,c){var d;return"ms"==c?d=parseInt(b)/1e3+"s":"s"==c&&(d=1e3*parseFloat(b)+"ms"),d.length<a.length?d:a}):b}function n(a){var b,c=a.value;3==c.length&&"/"==c[1][0]&&c[0][0]==c[2][0]?b=1:5==c.length&&"/"==c[2][0]&&c[0][0]==c[3][0]&&c[1][0]==c[4][0]?b=2:7==c.length&&"/"==c[3][0]&&c[0][0]==c[4][0]&&c[1][0]==c[5][0]&&c[2][0]==c[6][0]?b=3:9==c.length&&"/"==c[4][0]&&c[0][0]==c[5][0]&&c[1][0]==c[6][0]&&c[2][0]==c[7][0]&&c[3][0]==c[8][0]&&(b=4),b&&(a.value.splice(b),a.dirty=!0)}function o(a){1==a.value.length&&(a.value[0][0]=a.value[0][0].replace(/progid:DXImageTransform\.Microsoft\.(Alpha|Chroma)(\W)/,function(a,b,c){return b.toLowerCase()+c})),a.value[0][0]=a.value[0][0].replace(/,(\S)/g,", $1").replace(/ ?= ?/g,"=")}function p(a){var b=a.value,c=I.indexOf(b[0][0])>-1||b[1]&&I.indexOf(b[1][0])>-1||b[2]&&I.indexOf(b[2][0])>-1;if(!c&&"/"!=b[1]){var d=0;if("normal"==b[0][0]&&d++,b[1]&&"normal"==b[1][0]&&d++,b[2]&&"normal"==b[2][0]&&d++,!(d>1)){var e;K.indexOf(b[0][0])>-1?e=0:b[1]&&K.indexOf(b[1][0])>-1?e=1:b[2]&&K.indexOf(b[2][0])>-1?e=2:J.indexOf(b[0][0])>-1?e=0:b[1]&&J.indexOf(b[1][0])>-1?e=1:b[2]&&J.indexOf(b[2][0])>-1&&(e=2),void 0!==e&&(a.value[e][0]=N["font-weight"](b[e][0]),a.dirty=!0)}}}function q(a,b){for(var c,r,s,t=C(a),u=0,v=t.length;v>u;u++)if(c=t[u],r=c.name,c.hack&&(("star"==c.hack||"underscore"==c.hack)&&!b.compatibility.properties.iePrefixHack||"backslash"==c.hack&&!b.compatibility.properties.ieSuffixHack||"bang"==c.hack&&!b.compatibility.properties.ieBangHack)&&(c.unused=!0),0===r.indexOf("padding")&&(d(c,0)||d(c,1)||d(c,2)||d(c,3))&&(c.unused=!0),!c.unused)if(c.variable)c.block&&q(c.value[0],b);else{for(var w=0,x=c.value.length;x>w;w++)s=c.value[w][0],N[r]&&(s=N[r](s,w,x)),s=g(r,s),s=h(r,s,b.precision),s=l(r,s,b.compatibility),s=m(r,s),s=e(r,s),b.compatibility.properties.zeroUnits&&(s=f(r,s),s=i(r,s,b.unitsRegexp)),b.compatibility.properties.colors&&(s=k(r,s,b.compatibility)),c.value[w][0]=s;j(c),0===r.indexOf("border")&&r.indexOf("radius")>0?n(c):"filter"==r?o(c):"font"==r&&p(c)}D(t,!0),E(t)}function r(a){for(var b=!1,c=0,d=a.length;d>c;c++){var e=a[c];"at-rule"==e[0]&&H.test(e[1][0])&&(b||-1==e[1][0].indexOf(G)?(a.splice(c,1),c--,d--):(b=!0,a.splice(c,1),a.unshift(["at-rule",[e[1][0].replace(H,G)]])))}}function s(a){var b=["px","em","ex","cm","mm","in","pt","pc","%"],c=["ch","rem","vh","vm","vmax","vmin","vw"];return c.forEach(function(c){a.compatibility.units[c]&&b.push(c)}),new RegExp("(^|\\s|\\(|,)0(?:"+b.join("|")+")(\\W|$)","g")}function t(a){var b={};return b.value=void 0===a.roundingPrecision?F:a.roundingPrecision,b.multiplier=Math.pow(10,b.value),b.regexp=new RegExp("(\\d*\\.\\d{"+(b.value+1)+",})px","g"),b}function u(a,b){var c=b.compatibility.selectors.ie7Hack,d=b.compatibility.selectors.adjacentSpace,e=b.compatibility.properties.spaceAfterClosingBrace,f=!1;b.unitsRegexp=s(b),b.precision=t(b);for(var g=0,h=a.length;h>g;g++){var i=a[g];switch(i[0]){case"selector":i[1]=v(i[1],!c,d),q(i[2],b);break;case"block":w(i[1],e),u(i[2],b);break;case"flat-block":w(i[1],e),q(i[2],b);break;case"at-rule":x(i[1]),f=!0}(0===i[1].length||i[2]&&0===i[2].length)&&(a.splice(g,1),g--,h--)}f&&r(a)}var v=a("./clean-up").selectors,w=a("./clean-up").block,x=a("./clean-up").atRule,y=a("../utils/split"),z=a("../colors/rgb"),A=a("../colors/hsl"),B=a("../colors/hex-name-shortener"),C=a("../properties/wrap-for-optimizing").all,D=a("../properties/restore-from-optimizing"),E=a("../properties/remove-unused"),F=2,G="@charset",H=new RegExp("^"+G,"i"),I=["100","200","300","400","500","600","700","800","900"],J=["normal","bold","bolder","lighter"],K=["bold","bolder","lighter"],L=/(?:^|\s|\()(-?\d+)px/,M=/^(\-?[\d\.]+)(m?s)$/,N={background:function(a,b,c){return 0!==b||1!=c||"none"!=a&&"transparent"!=a?a:"0 0"},"font-weight":function(a){return"normal"==a?"400":"bold"==a?"700":a},outline:function(a,b,c){return 0===b&&1==c&&"none"==a?"0":a}};b.exports=u},{"../colors/hex-name-shortener":9,"../colors/hsl":10,"../colors/rgb":11,"../properties/remove-unused":22,"../properties/restore-from-optimizing":23,"../properties/wrap-for-optimizing":28,"../utils/split":66,"./clean-up":30}],43:[function(a,b,c){function d(a,b,c){if(!c&&-1==a.indexOf("\n"))return 0===a.indexOf(i)?a:void(b.column+=a.length);for(var d=0,e=a.split("\n"),f=e.length,g=0;;){if(d==f-1)break;var h=e[d];if(/\S/.test(h))break;g+=h.length+1,d++}return b.line+=d,b.column=d>0?0:b.column,b.column+=/^(\s)*/.exec(e[d])[0].length,a.substring(g).trimLeft()}function e(a,b,c){var d=a.source||b.source;return d&&c.resolvePath?c.resolvePath(b.source,d):d}function f(a,b,c){var d={line:b.line,column:b.column,source:b.source},f=null,g=b.sourceMapTracker.isTracking(d.source)?b.sourceMapTracker.originalPositionFor(d,a,c||0):{};if(d.line=g.line||d.line,d.column=g.column||d.column,d.source=g.sourceResolved?g.source:e(g,d,b),b.sourceMapInlineSources){var h=b.sourceMapTracker.sourcesContentFor(b.source);f=h&&h[d.source]?h:b.sourceReader.sourceAt(b.source)}return f?[d.line,d.column,d.source,f]:[d.line,d.column,d.source]}function g(a,b){for(var c=a.split("\n"),d=0,e=c.length;e>d;d++){var f=c[d],g=0;for(d>0&&(b.line++,b.column=0);;){var h=f.indexOf(i,g);if(-1==h){b.column+=f.substring(g).length;break}b.column+=h-g,g+=h-g;var j=f.substring(h,f.indexOf("__",h+1)+2),k=j.substring(j.indexOf("(")+1,j.indexOf(")")).split(",");b.line+=~~k[0],b.column=(0===~~k[0]?b.column:0)+~~k[1],g+=j.length}}}function h(a,b,c,e){var h=d(a,b,c),i=c?f(h,b,e):[];return h&&g(h,b),i}var i="__ESCAPED_";b.exports=h},{}],44:[function(a,b,c){function d(a,b){for(var c=b,d=a.length;d>c;c++)if("string"!=typeof a[c])return!0;return!1}function e(a){return"background"==a[0][0]||"transform"==a[0][0]||"src"==a[0][0]}function f(a,b){return 0===a[b][0].indexOf("var(")}function g(a,b){return")"==a[b][0][a[b][0].length-1]||0===a[b][0].indexOf("__ESCAPED_URL_CLEAN_CSS")}function h(a,b){return","==a[b][0]}function i(a,b){return"/"==a[b][0]}function j(a,b){return a[b+1]&&","==a[b+1][0]}function k(a,b){return a[b+1]&&"/"==a[b+1][0]}function l(a){return"filter"==a[0][0]||"-ms-filter"==a[0][0]}function m(a,b,c){return(!c.spaceAfterClosingBrace&&e(a)||f(a,b))&&g(a,b)||k(a,b)||i(a,b)||j(a,b)||h(a,b)}function n(a,b){for(var c=b.store,d=0,e=a.length;e>d;d++)c(a[d],b),e-1>d&&c(",",b)}function o(a,b){for(var c=0,d=a.length;d>c;c++)p(a,c,c==d-1,b)}function p(a,b,c,d){var e=d.store,f=a[b];"string"==typeof f?e(f,d):f[0]==v?q(f[1],c,d):(e(f[0],d),e(":",d),r(a,b,c,d))}function q(a,b,c){var d=c.store;d(a,c),b||d(w,c)}function r(a,b,c,e){var f=e.store,g=a[b],h=0===g[0][0].indexOf("--");if(h&&s(g[1]))return f("{",e),o(g[1],e),void f("};",e);for(var i=1,j=g.length;j>i;i++)f(g[i],e),j-1>i&&(l(g)||!m(g,i,e))?f(" ",e):i==j-1&&!c&&d(a,b+1)&&f(w,e)}function s(a){for(var b=0,c=a.length;c>b;b++)if(a[b][0]==v||Array.isArray(a[b][0]))return!0;return!1}function t(a,b){for(var c=b.keepBreaks?u:"",d=b.store,e=0,f=a.length;f>e;e++){var g=a[e];switch(g[0]){case"at-rule":case"text":d(g[1][0],b),d(c,b);break;case"block":n([g[1]],b),d("{",b),t(g[2],b),d("}",b),d(c,b);break;case"flat-block":n([g[1]],b),d("{",b),o(g[2],b),d("}",b),d(c,b);break;default:n(g[1],b),d("{",b),o(g[2],b),d("}",b),d(c,b)}}}var u=a("os").EOL,v="at-rule",w=";";b.exports={all:t,body:o,property:p,selectors:n,value:r}},{os:76}],45:[function(a,b,c){function d(a,b){b.output.push("string"==typeof a?a:a[0])}function e(){return{output:[],store:d}}function f(a){var b=e();return k.all(a,b),b.output.join("")}function g(a){var b=e();return k.body(a,b),b.output.join("")}function h(a,b){var c=e();return k.property(a,b,!0,c),c.output.join("")}function i(a){var b=e();return k.selectors(a,b),b.output.join("")}function j(a,b){var c=e();return k.value(a,b,!0,c),c.output.join("")}var k=a("./helpers");b.exports={all:f,body:g,property:h,selectors:i,value:j}},{"./helpers":44}],46:[function(a,b,c){function d(a,b){b.output.push("string"==typeof a?a:a[0])}function e(a,b,c){var e={keepBreaks:b.keepBreaks,output:[],spaceAfterClosingBrace:b.compatibility.properties.spaceAfterClosingBrace,store:d};return f(a,e,!1),{styles:c(e.output.join("")).trim()}}var f=a("./helpers").all;b.exports=e},{"./helpers":44}],47:[function(a,b,c){(function(c){function d(a,b){var c="string"==typeof a,d=c?a:a[0];d.indexOf("_")>-1&&(d=b.restore(d,e(b.output))),f(d,c?null:a,b),b.output.push(d)}function e(a){for(var b=[],c=a.length-1;c>=0;c--){var d=a[c];if(b.unshift(d),"{"==d||";"==d)break}return b.join("")}function f(a,b,c){b&&g(b,c);var d=a.split("\n");c.line+=d.length-1,c.column=d.length>1?0:c.column+d.pop().length}function g(a,b){var c=a[a.length-1];if(Array.isArray(c))for(var d=0,e=c.length;e>d;d++)h(c[d],b)}function h(a,b){var c=a[2]||m;l&&(c=c.replace(/\\/g,"/")),b.outputMap.addMapping({generated:{line:b.line,column:b.column},source:c,original:{line:a[0],column:a[1]}}),a[3]&&b.outputMap.setSourceContent(c,a[3][a[2]])}function i(a,b,c,e){var f={column:0,inputMapTracker:e,keepBreaks:b.keepBreaks,line:1,output:[],outputMap:new j,restore:c,sourceMapInlineSources:b.sourceMapInlineSources,spaceAfterClosingBrace:b.compatibility.properties.spaceAfterClosingBrace,store:d};return k(a,f,!1),{sourceMap:f.outputMap,styles:f.output.join("").trim()}}var j=a("source-map").SourceMapGenerator,k=a("./helpers").all,l="win32"==c.platform,m="$stdin";b.exports=i}).call(this,a("_process"))},{"./helpers":44,_process:79,"source-map":111}],48:[function(a,b,c){function d(a,b,c,d){this.comments=new g("COMMENT"),this.specialComments=new g("COMMENT_SPECIAL"),this.context=a,this.restored=0,this.keepAll="*"==b,this.keepOne="1"==b||1===b,this.keepBreaks=c,this.saveWaypoints=d}function e(a){var b=[];return new h(a).each(function(a,c,d){b.push([d,d+a.length])}),function(a){for(var c=0,d=b.length;d>c;c++)if(b[c][0]<a&&b[c][1]>a)return!0;return!1}}function f(a,b,c,d){for(var e=[],f=0;f<b.length;){var g=c.nextMatch(b,f);if(g.start<0)break;e.push(b.substring(f,g.start));var h=c.restore(g.match);d&&(a.keepAll||a.keepOne&&0===a.restored)?(a.restored++,e.push(h),f=g.end):f=g.end+(a.keepBreaks&&b.substring(g.end,g.end+l.length)==l?l.length:0)}return e.length>0?e.join("")+b.substring(f,b.length):b}var g=a("./escape-store"),h=a("../utils/quote-scanner"),i="/*!",j="/*",k="*/",l=a("os").EOL;d.prototype.escape=function(a){for(var b,c,d,f=[],g=0,h=0,m=0,n=0,o=e(a),p=this.saveWaypoints;h<a.length&&(g=a.indexOf(j,m),-1!=g);)if(o(g))f.push(a.substring(m,g+j.length)),m=g+j.length;else{h=a.indexOf(k,g+j.length),-1==h&&(this.context.warnings.push("Broken comment: '"+a.substring(g)+"'."),h=a.length-2),f.push(a.substring(m,g));var q=a.substring(g,h+k.length),r=0===q.indexOf(i);if(p&&(b=q.split(l).length-1,c=q.lastIndexOf(l),d=c>0?q.substring(c+l.length).length:n+q.length),p||r){var s=p?[b,d]:null,t=r?this.specialComments.store(q,s):this.comments.store(q,s);f.push(t)}p&&(n=d+1),m=h+k.length}return f.length>0?f.join("")+a.substring(m,a.length):a},d.prototype.restore=function(a){return a=f(this,a,this.comments,!1),a=f(this,a,this.specialComments,!0)},b.exports=d},{"../utils/quote-scanner":63,"./escape-store":49,os:76}],49:[function(a,b,c){function d(a){this.placeholderRoot="ESCAPED_"+a+"_CLEAN_CSS",this.placeholderToData={},this.dataToPlaceholder={},this.count=0,this.restoreMatcher=new RegExp(this.placeholderRoot+"(\\d+)")}var e="__";d.prototype._nextPlaceholder=function(a){return{index:this.count,value:e+this.placeholderRoot+this.count++ +a+e}},d.prototype.store=function(a,b){var c=b?"("+b.join(",")+")":"",d=this.dataToPlaceholder[a];
-if(!d){var e=this._nextPlaceholder(c);d=e.value,this.placeholderToData[e.index]=a,this.dataToPlaceholder[a]=e.value}return b&&(d=d.replace(/\([^\)]+\)/,c)),d},d.prototype.nextMatch=function(a,b){var c={};return c.start=a.indexOf(this.placeholderRoot,b)-e.length,c.end=a.indexOf(e,c.start+e.length)+e.length,c.start>-1&&c.end>-1&&(c.match=a.substring(c.start,c.end)),c},d.prototype.restore=function(a){var b=this.restoreMatcher.exec(a)[1];return this.placeholderToData[b]},b.exports=d},{}],50:[function(a,b,c){function d(a,b){for(var c=b+g.length,d=0,e=!1,f=!1;;){var j=a[c++];if(e?e="'"!=j&&'"'!=j:(e="'"==j||'"'==j,j==h&&d++,j==i&&d--,j==k&&(f=!0),j!=l||f||1!=d||(c--,d--)),0===d&&j==i)break;if(!j){c=a.substring(0,c).lastIndexOf(l);break}}return c}function e(a){this.expressions=new f("EXPRESSION"),this.saveWaypoints=a}var f=a("./escape-store"),g="expression",h="(",i=")",j=g+h,k="{",l="}",m=a("os").EOL;e.prototype.escape=function(a){for(var b,c,e,f=0,g=0,h=0,i=[],k=0,l=this.saveWaypoints;g<a.length&&(f=a.indexOf(j,g),-1!=f);){g=d(a,f);var n=a.substring(f,g);l&&(b=n.split(m).length-1,c=n.lastIndexOf(m),e=c>0?n.substring(c+m.length).length:k+n.length);var o=l?[b,e]:null,p=this.expressions.store(n,o);i.push(a.substring(h,f)),i.push(p),l&&(k=e+1),h=g}return i.length>0?i.join("")+a.substring(h,a.length):a},e.prototype.restore=function(a){for(var b=[],c=0;c<a.length;){var d=this.expressions.nextMatch(a,c);if(d.start<0)break;b.push(a.substring(c,d.start));var e=this.expressions.restore(d.match);b.push(e),c=d.end}return b.length>0?b.join("")+a.substring(c,a.length):a},b.exports=e},{"./escape-store":49,os:76}],51:[function(a,b,c){function d(a){this.matches=new f("FREE_TEXT"),this.saveWaypoints=a}function e(a,b,c,d){var e=b;c&&(e=c+b.substring(0,b.indexOf("__ESCAPED_FREE_TEXT_CLEAN_CSS")),d=e.length);var f=e.lastIndexOf(";",d),g=e.lastIndexOf("{",d),h=0;h=f>-1&&g>-1?Math.max(f,g):-1==f?g:f;var i=e.substring(h+1,d);if(/\[[\w\d\-]+[\*\|\~\^\$]?=$/.test(i)&&(a=a.replace(/\\\n|\\\r\n/g,"").replace(/\n|\r\n/g,"")),/^['"][a-zA-Z][a-zA-Z\d\-_]+['"]$/.test(a)&&!/format\($/.test(i)){var j=/^(font|font\-family):/.test(i),k=/\[[\w\d\-]+[\*\|\~\^\$]?=$/.test(i),l=/@(-moz-|-o-|-webkit-)?keyframes /.test(i),m=/^(-moz-|-o-|-webkit-)?animation(-name)?:/.test(i);(j||k||l||m)&&(a=a.substring(1,a.length-1))}return a}var f=a("./escape-store"),g=a("../utils/quote-scanner"),h=a("os").EOL;d.prototype.escape=function(a){var b,c,d,e,f=this,i=this.saveWaypoints;return new g(a).each(function(a,g){i&&(b=a.split(h).length-1,c=a.lastIndexOf(h),d=c>0?a.substring(c+h.length).length:a.length,e=[b,d]);var j=f.matches.store(a,e);g.push(j)})},d.prototype.restore=function(a,b){for(var c=[],d=0;d<a.length;){var f=this.matches.nextMatch(a,d);if(f.start<0)break;c.push(a.substring(d,f.start));var g=e(this.matches.restore(f.match),a,b,f.start);c.push(g),d=f.end}return c.length>0?c.join("")+a.substring(d,a.length):a},b.exports=d},{"../utils/quote-scanner":63,"./escape-store":49,os:76}],52:[function(a,b,c){function d(a,b,c){this.urls=new f("URL"),this.context=a,this.saveWaypoints=b,this.keepUrlQuotes=c}function e(a,b){return a=a.replace(/^url/gi,"url").replace(/\\?\n|\\?\r\n/g,"").replace(/(\s{2,}|\s)/g," ").replace(/^url\((['"])? /,"url($1").replace(/ (['"])?\)$/,"$1)"),b||/^['"].+['"]$/.test(a)||/url\(.*[\s\(\)].*\)/.test(a)||/url\(['"]data:[^;]+;charset/.test(a)||(a=a.replace(/["']/g,"")),a}var f=a("./escape-store"),g=a("../urls/reduce"),h=a("os").EOL;d.prototype.escape=function(a){var b,c,d,e=this.saveWaypoints,f=this;return g(a,this.context,function(a,g){e&&(b=a.split(h).length-1,c=a.lastIndexOf(h),d=c>0?a.substring(c+h.length).length:a.length);var i=f.urls.store(a,e?[b,d]:null);g.push(i)})},d.prototype.restore=function(a){for(var b=[],c=0;c<a.length;){var d=this.urls.nextMatch(a,c);if(d.start<0)break;b.push(a.substring(c,d.start));var f=e(this.urls.restore(d.match),this.keepUrlQuotes);b.push(f),c=d.end}return b.length>0?b.join("")+a.substring(c,a.length):a},b.exports=d},{"../urls/reduce":57,"./escape-store":49,os:76}],53:[function(a,b,c){function d(a){return a[0]}function e(){}function f(a,b,c,d){for(var f=c?/^__ESCAPED_COMMENT_/:/__ESCAPED_COMMENT_/,g=c?d.track:e;f.test(a);){var h=a.indexOf("__"),i=a.indexOf("__",h+1)+2,j=a.substring(h,i);a=a.substring(0,h)+a.substring(i),g(j),b.push(j)}return a}function g(a,b,c){return f(a,b,!0,c)}function h(a,b,c){return f(a,b,!1,c)}function i(a,b,c){for(var d=0,e=a.length;e>d;d++)c.track(a[d]),b.push(a[d])}function j(a,b,c){var e=[],f=[],o=/[ ,\/]/;if("string"!=typeof a)return[];a.indexOf(")")>-1&&(a=a.replace(/\)([^\s_;:,\)])/g,c.sourceMap?") __ESCAPED_COMMENT_CLEAN_CSS(0,-1)__ $1":") $1")),a.indexOf("ESCAPED_URL_CLEAN_CSS")>-1&&(a=a.replace(/(ESCAPED_URL_CLEAN_CSS[^_]+?__)/g,c.sourceMap?"$1 __ESCAPED_COMMENT_CLEAN_CSS(0,-1)__ ":"$1 "));for(var s=k(a,";",!1,"{","}"),t=0,u=s.length;u>t;t++){var v=s[t],w=v.indexOf(":"),x="@"==v.trim()[0];if(x)c.track(v),e.push([n,v.trim()]);else if(-1!=w)if(v.indexOf("{")>0&&v.indexOf("{")<w)c.track(v);else{var y=[],z=v.substring(0,w);f=[],z.indexOf("__ESCAPED_COMMENT")>-1&&(z=g(z,e,c)),z.indexOf("__ESCAPED_COMMENT")>-1&&(z=h(z,f,c)),y.push([z.trim()].concat(c.track(z,!0))),c.track(":"),i(f,e,c);var A=v.indexOf("{"),B=0===z.trim().indexOf("--");if(B&&A>0){var C=v.substring(w+1,A+1),D=v.substring(v.indexOf("}")),E=v.substring(A+1,v.length-D.length);c.track(C),y.push(j(E,b,c)),e.push(y),c.track(D),c.track(u-1>t?";":"")}else{var F=k(v.substring(w+1),o,!0);if(1!=F.length||""!==F[0]){for(var G=0,H=F.length;H>G;G++){var I=F[G],J=I.trim();if(0!==J.length){var K=J[J.length-1],L=J.length>1&&(K==l||K==m);if(L&&(J=J.substring(0,J.length-1)),J.indexOf("__ESCAPED_COMMENT_CLEAN_CSS(0,-")>-1)c.track(J);else if(f=[],J.indexOf("__ESCAPED_COMMENT")>-1&&(J=g(J,e,c)),J.indexOf("__ESCAPED_COMMENT")>-1&&(J=h(J,f,c)),0!==J.length){var M=y.length-1;q.test(J)&&"!"==y[M][0]?(c.track(J),y[M-1][0]+=p,y.pop()):r.test(J)||q.test(J)&&"!"==y[M][0][y[M][0].length-1]?(c.track(J),y[M][0]+=J):(y.push([J].concat(c.track(I,!0))),i(f,e,c),L&&(y.push([K]),c.track(K)))}else i(f,e,c)}}u-1>t&&c.track(";"),e.push(y)}else c.warnings.push("Empty property '"+z+"' inside '"+b.filter(d).join(",")+"' selector. Ignoring.")}}else c.track(v),v.indexOf("__ESCAPED_COMMENT_SPECIAL")>-1&&e.push(v.trim())}return e}var k=a("../utils/split"),l=",",m="/",n="at-rule",o="important",p="!"+o,q=new RegExp("^"+o+"$","i"),r=new RegExp("^"+p+"$","i");b.exports=j},{"../utils/split":66}],54:[function(a,b,c){function d(a,b){for(var c,d=[],f=e(a,","),g=0,h=f.length;h>g;g++)c=b.track(f[g],!0,g),b.track(","),d.push([f[g].trim()].concat(c));return d}var e=a("../utils/split");b.exports=d},{"../utils/split":66}],55:[function(a,b,c){function d(a,b){var c=l(e(a),"}",!0,"{","}");if(0===c.length)return[];var d={chunk:c.shift(),chunks:c,column:0,cursor:0,line:1,mode:"top",resolvePath:b.options.explicitTarget?f(b.options.root,b.options.target):null,source:void 0,sourceMap:b.options.sourceMap,sourceMapInlineSources:b.options.sourceMapInlineSources,sourceMapTracker:b.inputSourceMapTracker,sourceReader:b.sourceReader,sourceTracker:b.sourceTracker,state:[],track:b.options.sourceMap?function(a,b,c){return[[k(a,d,b,c)]]}:function(){return[]},warnings:b.warnings};return h(d)}function e(a){return a.replace(/\r\n/g,"\n")}function f(a,b){var c=m.relative(a,b);return function(a,b){return a!=b?m.normalize(m.join(m.relative(c,m.dirname(a)),b)):b}}function g(a){var b,c=a.mode,d=a.chunk;if(d.length==a.cursor){if(0===a.chunks.length)return null;a.chunk=d=a.chunks.shift(),a.cursor=0}if("body"==c)return"}"==d[a.cursor]?[a.cursor,"bodyEnd"]:-1==d.indexOf("}",a.cursor)?null:(b=a.cursor+l(d.substring(a.cursor-1),"}",!0,"{","}")[0].length-2,[b,"bodyEnd"]);var e=d.indexOf("@",a.cursor),f=d.indexOf("__ESCAPED_",a.cursor),g=d.indexOf("{",a.cursor),h=d.indexOf("}",a.cursor);return f>-1&&/\S/.test(d.substring(a.cursor,f))&&(f=-1),b=e,(-1==b||f>-1&&b>f)&&(b=f),(-1==b||g>-1&&b>g)&&(b=g),(-1==b||h>-1&&b>h)&&(b=h),-1!=b?f===b?[b,"escape"]:g===b?[b,"bodyStart"]:h===b?[b,"bodyEnd"]:e===b?[b,"special"]:void 0:void 0}function h(a){for(var b,c,d=a.chunk,e=[];;){var f=g(a);if(!f){var k=a.chunk.substring(a.cursor);k.trim().length>0&&("body"==a.mode?a.warnings.push("Missing '}' after '"+k+"'. Ignoring."):e.push(["text",[k]]),a.cursor+=k.length);break}var l,m,o=f[0],p=f[1];if(d=a.chunk,a.cursor!=o&&"bodyEnd"!=p){var q=d.substring(a.cursor,o),r=/^\s+/.exec(q);r&&(a.cursor+=r[0].length,a.track(r[0]))}if("special"==p){var s=d.indexOf("{",o),t=d.indexOf(";",o),u=t>-1&&(-1==s||s>t),v=-1==s&&-1==t;if(v)a.warnings.push("Broken declaration: '"+d.substring(a.cursor)+"'."),a.cursor=d.length;else if(u)l=d.indexOf(";",o+1),c=d.substring(a.cursor,l+1),e.push(["at-rule",[c].concat(a.track(c,!0))]),a.track(";"),a.cursor=l+1;else{l=d.indexOf("{",o+1),c=d.substring(a.cursor,l);var w=c.trim(),x=n.test(w);m=a.mode,a.cursor=l+1,a.mode=x?"body":"block",b=[x?"flat-block":"block"],b.push([w].concat(a.track(c,!0))),a.track("{"),b.push(h(a)),"string"==typeof b[2]&&(b[2]=i(b[2],[[w]],a)),a.mode=m,a.track("}"),e.push(b)}}else if("escape"==p){l=d.indexOf("__",o+1);var y=d.substring(a.cursor,l+2),z=!!a.sourceTracker.nextStart(y),A=!!a.sourceTracker.nextEnd(y);if(z)a.track(y),a.state.push({source:a.source,line:a.line,column:a.column}),a.source=a.sourceTracker.nextStart(y).filename,a.line=1,a.column=0;else if(A){var B=a.state.pop();a.source=B.source,a.line=B.line,a.column=B.column,a.track(y)}else 0===y.indexOf("__ESCAPED_COMMENT_SPECIAL")&&e.push(["text",[y]]),a.track(y);a.cursor=l+2}else if("bodyStart"==p){var C=j(d.substring(a.cursor,o),a);m=a.mode,a.cursor=o+1,a.mode="body";var D=i(h(a),C,a);a.track("{"),a.mode=m,e.push(["selector",C,D])}else if("bodyEnd"==p){if("top"==a.mode){var E=a.cursor,F="}"==d[a.cursor]?"Unexpected '}' in '"+d.substring(E-20,E+20)+"'. Ignoring.":"Unexpected content: '"+d.substring(E,o+1)+"'. Ignoring.";a.warnings.push(F),a.cursor=o+1;continue}"block"==a.mode&&a.track(d.substring(a.cursor,o)),"block"!=a.mode&&(e=d.substring(a.cursor,o)),a.cursor=o+1;break}}return e}var i=a("./extract-properties"),j=a("./extract-selectors"),k=a("../source-maps/track"),l=a("../utils/split"),m=a("path"),n=/(@(font\-face|page|\-ms\-viewport|\-o\-viewport|viewport|counter\-style)|\\@.+?)/;b.exports=d},{"../source-maps/track":43,"../utils/split":66,"./extract-properties":53,"./extract-selectors":54,path:77}],56:[function(a,b,c){function d(a,b){var c={absolute:b.options.explicitRoot,relative:!b.options.explicitRoot&&b.options.explicitTarget,fromBase:b.options.relativeTo};return c.absolute||c.relative?(c.absolute&&b.options.explicitTarget&&b.warnings.push("Both 'root' and output file given so rebasing URLs as absolute paths"),c.absolute&&(c.toBase=e.resolve(b.options.root)),c.relative&&(c.toBase=e.resolve(b.options.target)),c.fromBase&&c.toBase?f(a,c,b):a):a}var e=a("path"),f=a("./rewrite");b.exports=d},{"./rewrite":58,path:77}],57:[function(a,b,c){function d(a,b,c){for(var d=0,e=0,f=0,k=0,l=!1,m=0,n=[],o=a.indexOf(h)>-1;f<a.length&&(d=a.indexOf(g,f),e=o?a.indexOf(h,f):-1,-1!=d||-1!=e);){if(-1==d&&e>-1&&(d=e),'"'==a[d+g.length])f=a.indexOf('"',d+g.length+1);else if("'"==a[d+g.length])f=a.indexOf("'",d+g.length+1);else if(l=0===a.substring(d+g.length).trim().indexOf(j),f=a.indexOf(i,d),l)for(;;){if(k=a.indexOf(i,f+1),-1==k||/[\s\{\};]/.test(a.substring(f,k)))break;f=k}-1==f?(f=a.indexOf("}",d),-1==f?f=a.length:f--,b.warnings.push("Broken URL declaration: '"+a.substring(d,f+1)+"'.")):a[f]!=i&&(f=a.indexOf(i,f)),n.push(a.substring(m,d));var p=a.substring(d,f+1);c(p,n),m=f+1}return n.length>0?n.join("")+a.substring(m,a.length):a}function e(a,b,c){for(var d,e,f=0,g=0,h=0,i=0,j=0,n=[],o=0,p=0,q="'",r='"';i<a.length&&(f=a.indexOf(k,i),g=a.indexOf(l,i),-1!=f||-1!=g);){if(f>-1&&g>-1&&f>g&&(f=g),o=a.indexOf(q,f),p=a.indexOf(r,f),o>-1&&p>-1&&p>o)h=o,e=q;else if(o>-1&&p>-1&&o>p)h=p,e=r;else if(o>-1)h=o,e=q;else{if(!(p>-1))break;h=p,e=r}if(n.push(a.substring(j,h)),i=a.indexOf(e,h+1),d=a.substring(f,i),-1==i||/^@import\s+(url\(|__ESCAPED)/i.test(d)||m.test(d)){j=h;break}var s=a.substring(h,i+1);c(s,n),j=i+1}return n.length>0?n.join("")+a.substring(j,a.length):a}function f(a,b,c){return a=d(a,b,c),a=e(a,b,c)}var g="url(",h="URL(",i=")",j="data:",k="@import",l="@IMPORT",m=/\*\//;b.exports=f},{}],58:[function(a,b,c){(function(c){function d(a){return"/"==a[0]}function e(a){return"#"==a[0]}function f(a){return 0===a.indexOf("__ESCAPED_URL_CLEAN_CSS__")}function g(a){return/^\w+:\w+/.test(a)}function h(a){return/^[^:]+?:\/\//.test(a)||0===a.indexOf("//")}function i(a,b){return s.parse(a).protocol==s.parse(b).protocol&&s.parse(a).host==s.parse(b).host}function j(a){return a.lastIndexOf(".css")===a.length-4}function k(a){return 0===a.indexOf("data:")}function l(a,b){return r.resolve(r.join(b.fromBase||"",a)).replace(b.toBase,"")}function m(a,b){return r.relative(b.toBase,r.join(b.fromBase||"",a))}function n(a){return u?a.replace(/\\/g,"/"):a}function o(a,b){return d(a)||e(a)||f(a)||g(a)?a:b.rebase!==!1||j(a)?!b.imports&&j(a)?a:k(a)?"'"+a+"'":h(a)&&!h(b.toBase)?a:h(a)&&!i(a,b.toBase)?a:!h(a)&&h(b.toBase)?s.resolve(b.toBase,a):n(b.absolute?l(a,b):m(a,b)):a}function p(a){return a.indexOf("'")>-1?'"':a.indexOf('"')>-1?"'":/\s/.test(a)||/[\(\)]/.test(a)?"'":""}function q(a,b,c){return t(a,c,function(a,c){var d,e=a.replace(/^(url\()?\s*['"]?|['"]?\s*\)?$/g,""),f=a.match(/^(url\()?\s*(['"]).*?(['"])\s*\)?$/);d=b.urlQuotes&&f&&f[2]===f[3]?f[2]:p(e),c.push("url("+d+o(e,b)+d+")")})}var r=a("path"),s=a("url"),t=a("./reduce"),u="win32"==c.platform;b.exports=q}).call(this,a("_process"))},{"./reduce":57,_process:79,path:77,url:141}],59:[function(a,b,c){function d(a){for(var b=a.slice(0),c=0,e=b.length;e>c;c++)Array.isArray(b[c])&&(b[c]=d(b[c]));return b}b.exports=d},{}],60:[function(a,b,c){function d(a){this.source=a||{}}function e(a,b){for(var c in a){var d=a[c];"object"!=typeof d||g.isRegExp(d)?b[c]=c in b?b[c]:d:b[c]=e(d,b[c]||{})}return b}function f(a){if("object"==typeof a)return a;if(!/[,\+\-]/.test(a))return h[a]||h["*"];var b=a.split(","),c=b[0]in h?h[b.shift()]:h["*"];return a={},b.forEach(function(b){var c="+"==b[0],d=b.substring(1).split("."),e=d[0],f=d[1];a[e]=a[e]||{},a[e][f]=c}),e(c,a)}var g=a("util"),h={"*":{colors:{opacity:!0},properties:{backgroundClipMerging:!1,backgroundOriginMerging:!1,backgroundSizeMerging:!1,colors:!0,ieBangHack:!1,iePrefixHack:!1,ieSuffixHack:!0,merging:!0,shorterLengthUnits:!1,spaceAfterClosingBrace:!0,urlQuotes:!1,zeroUnits:!0},selectors:{adjacentSpace:!1,ie7Hack:!1,special:/(\-moz\-|\-ms\-|\-o\-|\-webkit\-|:dir\([a-z-]*\)|:first(?![a-z-])|:fullscreen|:left|:read-only|:read-write|:right|:placeholder|:host|::content|\/deep\/|::shadow)/},units:{ch:!0,"in":!0,pc:!0,pt:!0,rem:!0,vh:!0,vm:!0,vmax:!0,vmin:!0,vw:!0}},ie8:{colors:{opacity:!1},properties:{backgroundClipMerging:!1,backgroundOriginMerging:!1,backgroundSizeMerging:!1,colors:!0,ieBangHack:!1,iePrefixHack:!0,ieSuffixHack:!0,merging:!1,shorterLengthUnits:!1,spaceAfterClosingBrace:!0,urlQuotes:!1,zeroUnits:!0},selectors:{adjacentSpace:!1,ie7Hack:!1,special:/(\-moz\-|\-ms\-|\-o\-|\-webkit\-|:root|:nth|:first\-of|:last|:only|:empty|:target|:checked|::selection|:enabled|:disabled|:not|:placeholder|:host|::content|\/deep\/|::shadow)/},units:{ch:!1,"in":!0,pc:!0,pt:!0,rem:!1,vh:!1,vm:!1,vmax:!1,vmin:!1,vw:!1}},ie7:{colors:{opacity:!1},properties:{backgroundClipMerging:!1,backgroundOriginMerging:!1,backgroundSizeMerging:!1,colors:!0,ieBangHack:!0,iePrefixHack:!0,ieSuffixHack:!0,merging:!1,shorterLengthUnits:!1,spaceAfterClosingBrace:!0,urlQuotes:!1,zeroUnits:!0},selectors:{adjacentSpace:!1,ie7Hack:!0,special:/(\-moz\-|\-ms\-|\-o\-|\-webkit\-|:focus|:before|:after|:root|:nth|:first\-of|:last|:only|:empty|:target|:checked|::selection|:enabled|:disabled|:not|:placeholder|:host|::content|\/deep\/|::shadow)/},units:{ch:!1,"in":!0,pc:!0,pt:!0,rem:!1,vh:!1,vm:!1,vmax:!1,vmin:!1,vw:!1}}};d.prototype.toOptions=function(){return e(h["*"],f(this.source))},b.exports=d},{util:145}],61:[function(a,b,c){(function(c,d,e){function f(a){this.options=a.options,this.errors=a.errors,this.warnings=a.warnings,this.sourceTracker=a.sourceTracker,this.timeout=this.options.inliner.timeout,this.requestOptions=this.options.inliner.request,this.localOnly=a.localOnly,this.relativeTo=a.options.target||c.cwd(),this.maps={},this.sourcesContent={}}function g(a,b,c){return a.trackLoaded(void 0,void 0,a.options.sourceMap),c()}function h(a,b,c,d){function e(){d.cursor+=f+1,h(a,b,c,d)}for(var f=0;d.cursor<b.length;){var g=b.substring(d.cursor),k=a.sourceTracker.nextStart(g)||{index:-1},l=a.sourceTracker.nextEnd(g)||{index:-1},m=v.exec(g)||{index:-1},n=m[1];if(f=b.length,k.index>-1&&(f=k.index),l.index>-1&&l.index<f&&(f=l.index),m.index>-1&&m.index<f&&(f=m.index),f==b.length)break;if(f==k.index)d.files.push(k.filename);else if(f==l.index)d.files.pop();else if(f==m.index){var o=/^https?:\/\//.test(n)||/^\/\//.test(n),r=x.test(n);if(o)return j(a,n,d,e);var s,t,u=d.files[d.files.length-1],w=u?q.dirname(u):a.options.relativeTo;r?(s=q.resolve(a.options.root,u||""),t=i(n)):(s=q.resolve(a.options.root,q.join(w||"",n)),t=p.readFileSync(s,"utf-8")),a.trackLoaded(u||void 0,s,t)}d.cursor+=f+1}return c()}function i(a){var b=x.exec(a),c=b[2]?b[2].split(/[=;]/)[2]:"us-ascii",d=b[3]?b[3].split(";")[1]:"utf8",f="utf8"==d?y(b[4]):b[4],g=new e(f,d);return g.charset=c,g.toString()}function j(a,b,c,d){k(a,b,function(e){a.trackLoaded(c.files[c.files.length-1]||void 0,b,e),d()},function(a){return c.errors.push('Broken source map at "'+b+'" - '+a),d()})}function k(a,b,c,d){var e=0===b.indexOf("https")?s:r,f=u(t.parse(b),a.requestOptions),g=!1;e.get(f,function(a){if(a.statusCode<200||a.statusCode>299)return d(a.statusCode);var b=[];a.on("data",function(a){b.push(a.toString())}),a.on("end",function(){c(b.join(""))})}).on("error",function(a){g||(d(a.message),g=!0)}).on("timeout",function(){g||(d("timeout"),g=!0)}).setTimeout(a.timeout)}function l(a,b,c,d,e){for(var f,g=d.length,h={line:b,column:c+g};g-- >0&&(h.column--,!(f=a.data.originalPositionFor(h))););return null===f.line&&b>1&&e>0?l(a,b-1,c,d,e-1):(a.path&&f.source&&(f.source=w.test(a.path)?t.resolve(a.path,f.source):q.join(a.path,f.source),f.sourceResolved=!0),f)}function m(a,b){var c=a.maps[b].data,d=w.test(b),e={};c.sources.forEach(function(f,g){var h=d?t.resolve(q.dirname(b),f):q.relative(a.relativeTo,q.resolve(q.dirname(b),f));e[h]=c.sourcesContent&&c.sourcesContent[g]}),a.sourcesContent[b]=e}function n(a,b,c){function d(){return n(a,b,c)}if(0===b.length)return c();var e=b.shift(),f=e[0],g=e[1],h=w.test(f);if(h&&a.localOnly)return a.warnings.push('No callback given to `#minify` method, cannot fetch a remote file from "'+g+'"'),d();if(!h){var i=q.join(a.options.root,g);return p.existsSync(i)?a.sourcesContent[f][g]=p.readFileSync(i,"utf-8"):a.warnings.push('Missing original source file at "'+i+'".'),d()}k(a,g,function(b){a.sourcesContent[f][g]=b,d()},function(b){a.warnings.push('Broken original source file at "'+g+'" - '+b),d()})}var o=a("source-map").SourceMapConsumer,p=a("fs"),q=a("path"),r=a("http"),s=a("https"),t=a("url"),u=a("../utils/object.js").override,v=/\/\*# sourceMappingURL=(\S+) \*\//,w=/^(https?:)?\/\//,x=/^data:(\S*?)?(;charset=[^;]+)?(;[^,]+?)?,(.+)/,y=d.unescape;f.prototype.track=function(a,b){return"string"==typeof this.options.sourceMap?g(this,a,b):h(this,a,b,{files:[],cursor:0,errors:this.errors})},f.prototype.trackLoaded=function(a,b,c){var d=this.options.explicitTarget?this.options.target:this.options.root,e=w.test(a);b&&(b=e?q.dirname(b):q.dirname(q.relative(d,b))),this.maps[a]={path:b,data:new o(c)},m(this,a)},f.prototype.isTracking=function(a){return!!this.maps[a]},f.prototype.originalPositionFor=function(a,b,c){return l(this.maps[a.source],a.line,a.column,b,c)},f.prototype.sourcesContentFor=function(a){return this.sourcesContent[a]},f.prototype.resolveSources=function(a){var b=[];for(var c in this.sourcesContent){var d=this.sourcesContent[c];for(var e in d)d[e]||b.push([c,e])}return n(this,b,a)},b.exports=f}).call(this,a("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},a("buffer").Buffer)},{"../utils/object.js":62,_process:79,buffer:5,fs:4,http:123,https:70,path:77,"source-map":111,url:141}],62:[function(a,b,c){b.exports={override:function(a,b){var c={};for(var d in a)c[d]=a[d];for(var e in b)c[e]=b[e];return c}}},{}],63:[function(a,b,c){function d(a){this.data=a}function e(a,b){for(var c=b;c>-1&&(c=a.lastIndexOf(g,c),!(c>-1&&"*"!=a[c-1]));)c--;return c}function f(a,b,c){for(var d="\\",e=c;;){if(e=a.indexOf(b,e+1),-1==e)return-1;if(a[e-1]!=d)return e}}var g="/*",h=function(a,b,c,d){var f="*/",g="\\",h="}",i=a.substring(d,c),j=i.lastIndexOf(f,c),k=e(i,c),l=!1;if(j>=c&&k>-1&&(l=!0),c>k&&k>j&&(l=!0),l){var m=a.indexOf(f,c);return m>-1?m:(m=a.indexOf(h,c),m>-1?m-1:a.length)}for(;;){if(void 0===a[c])break;if(a[c]==b&&(a[c-1]!=g||a[c-2]==g))break;c++}return c};d.prototype.each=function(a){for(var b=this.data,c=[],d=0,e=0,g=0,i=null,j="'",k='"',l=b.length;e<b.length;){var m=f(b,j,e),n=f(b,k,e);if(-1==m&&(m=l),-1==n&&(n=l),n>m?(d=m,i=j):(d=n,i=k),-1==d)break;if(e=h(b,i,d+1,g),-1==e)break;var o=b.substring(d,e+1);c.push(b.substring(g,d)),o.length>0&&a(o,c,d),g=e+1}return c.length>0?c.join("")+b.substring(g,b.length):b},b.exports=d},{}],64:[function(a,b,c){(function(c){function d(a,b){this.outerContext=a,this.data=b,this.sources={}}function e(a){var b=a.data;return a.trackSource(void 0,b),b}function f(a){var b=a.data.toString();return a.trackSource(void 0,b),b}function g(a){return a.data.map(function(b){return a.outerContext.options.processImport===!1?b+"@shallow":b}).map(function(b){return!a.outerContext.options.relativeTo||/^https?:\/\//.test(b)?b:i.relative(a.outerContext.options.relativeTo,b)}).map(function(a){return"@import url("+a+");"}).join("")}function h(a){var b=[],c=i.resolve(a.outerContext.options.target||a.outerContext.options.root);for(var d in a.data){var e=a.data[d].styles,f=a.data[d].sourceMap,g=k.test(d),h=g?d:i.resolve(d),l=i.dirname(h),m={absolute:a.outerContext.options.explicitRoot,relative:!a.outerContext.options.explicitRoot,imports:!0,rebase:a.outerContext.options.rebase,fromBase:l,toBase:g?l:c,urlQuotes:a.outerContext.options.compatibility.properties.urlQuotes};e=j(e,m,a.outerContext),a.trackSource(d,e),e=a.outerContext.sourceTracker.store(d,e),a.outerContext.options.sourceMap&&f&&a.outerContext.inputSourceMapTracker.trackLoaded(d,d,f),b.push(e)}return b.join("")}var i=a("path"),j=a("../urls/rewrite"),k=/^(https?:)?\/\//;d.prototype.sourceAt=function(a){return this.sources[a]},d.prototype.trackSource=function(a,b){this.sources[a]={},this.sources[a][a]=b},d.prototype.toString=function(){return"string"==typeof this.data?e(this):c.isBuffer(this.data)?f(this):Array.isArray(this.data)?g(this):h(this)},b.exports=d}).call(this,{isBuffer:a("../../../is-buffer/index.js")})},{"../../../is-buffer/index.js":73,"../urls/rewrite":58,path:77}],65:[function(a,b,c){function d(){this.sources=[]}d.prototype.store=function(a,b){return this.sources.push(a),"__ESCAPED_SOURCE_CLEAN_CSS"+(this.sources.length-1)+"__"+b+"__ESCAPED_SOURCE_END_CLEAN_CSS__"},d.prototype.nextStart=function(a){var b=/__ESCAPED_SOURCE_CLEAN_CSS(\d+)__/.exec(a);return b?{index:b.index,filename:this.sources[~~b[1]]}:null},d.prototype.nextEnd=function(a){return/__ESCAPED_SOURCE_END_CLEAN_CSS__/g.exec(a)},d.prototype.removeAll=function(a){return a.replace(/__ESCAPED_SOURCE_CLEAN_CSS\d+__/g,"").replace(/__ESCAPED_SOURCE_END_CLEAN_CSS__/g,"")},b.exports=d},{}],66:[function(a,b,c){function d(a,b,c,d,e){var f="string"!=typeof b,g=f?b.test(a):a.indexOf(b);if(!g)return[a];if(d=d||"(",e=e||")",-1==a.indexOf(d)&&!c)return a.split(b);for(var h=0,i=0,j=0,k=a.length,l=[];k>i;)a[i]==d?h++:a[i]==e&&h--,0===h&&i>0&&k>i+1&&(f?b.test(a[i]):a[i]==b)&&(l.push(a.substring(j,i+(c?1:0))),j=i+1),i++;if(i+1>j){var m=a.substring(j),n=m[m.length-1];!c&&(f?b.test(n):n==b)&&(m=m.substring(0,m.length-1)),l.push(m)}return l}b.exports=d},{}],67:[function(a,b,c){(function(a){function b(a){return Array.isArray?Array.isArray(a):"[object Array]"===q(a)}function d(a){return"boolean"==typeof a}function e(a){return null===a}function f(a){return null==a}function g(a){return"number"==typeof a}function h(a){return"string"==typeof a}function i(a){return"symbol"==typeof a}function j(a){return void 0===a}function k(a){return"[object RegExp]"===q(a)}function l(a){return"object"==typeof a&&null!==a}function m(a){return"[object Date]"===q(a)}function n(a){return"[object Error]"===q(a)||a instanceof Error}function o(a){return"function"==typeof a}function p(a){return null===a||"boolean"==typeof a||"number"==typeof a||"string"==typeof a||"symbol"==typeof a||"undefined"==typeof a}function q(a){return Object.prototype.toString.call(a)}c.isArray=b,c.isBoolean=d,c.isNull=e,c.isNullOrUndefined=f,c.isNumber=g,c.isString=h,c.isSymbol=i,c.isUndefined=j,c.isRegExp=k,c.isObject=l,c.isDate=m,c.isError=n,c.isFunction=o,c.isPrimitive=p,c.isBuffer=a.isBuffer}).call(this,{isBuffer:a("../../is-buffer/index.js")})},{"../../is-buffer/index.js":73}],68:[function(a,b,c){function d(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function e(a){return"function"==typeof a}function f(a){return"number"==typeof a}function g(a){return"object"==typeof a&&null!==a}function h(a){return void 0===a}b.exports=d,d.EventEmitter=d,d.prototype._events=void 0,d.prototype._maxListeners=void 0,d.defaultMaxListeners=10,d.prototype.setMaxListeners=function(a){if(!f(a)||0>a||isNaN(a))throw TypeError("n must be a positive number");return this._maxListeners=a,this},d.prototype.emit=function(a){var b,c,d,f,i,j;if(this._events||(this._events={}),"error"===a&&(!this._events.error||g(this._events.error)&&!this._events.error.length)){if(b=arguments[1],b instanceof Error)throw b;throw TypeError('Uncaught, unspecified "error" event.')}if(c=this._events[a],h(c))return!1;if(e(c))switch(arguments.length){case 1:c.call(this);break;case 2:c.call(this,arguments[1]);break;case 3:c.call(this,arguments[1],arguments[2]);break;default:f=Array.prototype.slice.call(arguments,1),c.apply(this,f)}else if(g(c))for(f=Array.prototype.slice.call(arguments,1),j=c.slice(),d=j.length,i=0;d>i;i++)j[i].apply(this,f);return!0},d.prototype.addListener=function(a,b){var c;if(!e(b))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",a,e(b.listener)?b.listener:b),this._events[a]?g(this._events[a])?this._events[a].push(b):this._events[a]=[this._events[a],b]:this._events[a]=b,g(this._events[a])&&!this._events[a].warned&&(c=h(this._maxListeners)?d.defaultMaxListeners:this._maxListeners,c&&c>0&&this._events[a].length>c&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),"function"==typeof console.trace&&console.trace())),this},d.prototype.on=d.prototype.addListener,d.prototype.once=function(a,b){function c(){this.removeListener(a,c),d||(d=!0,b.apply(this,arguments))}if(!e(b))throw TypeError("listener must be a function");var d=!1;return c.listener=b,this.on(a,c),this},d.prototype.removeListener=function(a,b){var c,d,f,h;if(!e(b))throw TypeError("listener must be a function");if(!this._events||!this._events[a])return this;if(c=this._events[a],f=c.length,d=-1,c===b||e(c.listener)&&c.listener===b)delete this._events[a],this._events.removeListener&&this.emit("removeListener",a,b);else if(g(c)){for(h=f;h-- >0;)if(c[h]===b||c[h].listener&&c[h].listener===b){d=h;break}if(0>d)return this;1===c.length?(c.length=0,delete this._events[a]):c.splice(d,1),this._events.removeListener&&this.emit("removeListener",a,b)}return this},d.prototype.removeAllListeners=function(a){var b,c;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[a]&&delete this._events[a],this;if(0===arguments.length){for(b in this._events)"removeListener"!==b&&this.removeAllListeners(b);return this.removeAllListeners("removeListener"),this._events={},this}if(c=this._events[a],e(c))this.removeListener(a,c);else if(c)for(;c.length;)this.removeListener(a,c[c.length-1]);return delete this._events[a],this},d.prototype.listeners=function(a){var b;return b=this._events&&this._events[a]?e(this._events[a])?[this._events[a]]:this._events[a].slice():[]},d.prototype.listenerCount=function(a){if(this._events){var b=this._events[a];if(e(b))return 1;if(b)return b.length}return 0},d.listenerCount=function(a,b){return a.listenerCount(b)}},{}],69:[function(a,b,c){(function(a){!function(d){var e="object"==typeof c&&c,f="object"==typeof b&&b&&b.exports==e&&b,g="object"==typeof a&&a;g.global!==g&&g.window!==g||(d=g);var h=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,i=/[\x01-\x7F]/g,j=/[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,k=/<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g,l={
-"­":"shy","‌":"zwnj","‍":"zwj","‎":"lrm","⁣":"ic","⁢":"it","⁡":"af","‏":"rlm","​":"ZeroWidthSpace","⁠":"NoBreak","̑":"DownBreve","⃛":"tdot","⃜":"DotDot","     ":"Tab","\n":"NewLine"," ":"puncsp"," ":"MediumSpace"," ":"thinsp"," ":"hairsp"," ":"emsp13"," ":"ensp"," ":"emsp14"," ":"emsp"," ":"numsp"," ":"nbsp","  ":"ThickSpace","‾":"oline",_:"lowbar","‐":"dash","–":"ndash","—":"mdash","―":"horbar",",":"comma",";":"semi","⁏":"bsemi",":":"colon","⩴":"Colone","!":"excl","¡":"iexcl","?":"quest","¿":"iquest",".":"period","‥":"nldr","…":"mldr","·":"middot","'":"apos","‘":"lsquo","’":"rsquo","‚":"sbquo","‹":"lsaquo","›":"rsaquo",'"':"quot","“":"ldquo","”":"rdquo","„":"bdquo","«":"laquo","»":"raquo","(":"lpar",")":"rpar","[":"lsqb","]":"rsqb","{":"lcub","}":"rcub","⌈":"lceil","⌉":"rceil","⌊":"lfloor","⌋":"rfloor","⦅":"lopar","⦆":"ropar","⦋":"lbrke","⦌":"rbrke","⦍":"lbrkslu","⦎":"rbrksld","⦏":"lbrksld","⦐":"rbrkslu","⦑":"langd","⦒":"rangd","⦓":"lparlt","⦔":"rpargt","⦕":"gtlPar","⦖":"ltrPar","⟦":"lobrk","⟧":"robrk","⟨":"lang","⟩":"rang","⟪":"Lang","⟫":"Rang","⟬":"loang","⟭":"roang","❲":"lbbrk","❳":"rbbrk","‖":"Vert","§":"sect","¶":"para","@":"commat","*":"ast","/":"sol",undefined:null,"&":"amp","#":"num","%":"percnt","‰":"permil","‱":"pertenk","†":"dagger","‡":"Dagger","•":"bull","⁃":"hybull","′":"prime","″":"Prime","‴":"tprime","⁗":"qprime","‵":"bprime","⁁":"caret","`":"grave","´":"acute","˜":"tilde","^":"Hat","¯":"macr","˘":"breve","˙":"dot","¨":"die","˚":"ring","˝":"dblac","¸":"cedil","˛":"ogon","ˆ":"circ","ˇ":"caron","°":"deg","©":"copy","®":"reg","℗":"copysr","℘":"wp","℞":"rx","℧":"mho","℩":"iiota","←":"larr","↚":"nlarr","→":"rarr","↛":"nrarr","↑":"uarr","↓":"darr","↔":"harr","↮":"nharr","↕":"varr","↖":"nwarr","↗":"nearr","↘":"searr","↙":"swarr","↝":"rarrw","↝̸":"nrarrw","↞":"Larr","↟":"Uarr","↠":"Rarr","↡":"Darr","↢":"larrtl","↣":"rarrtl","↤":"mapstoleft","↥":"mapstoup","↦":"map","↧":"mapstodown","↩":"larrhk","↪":"rarrhk","↫":"larrlp","↬":"rarrlp","↭":"harrw","↰":"lsh","↱":"rsh","↲":"ldsh","↳":"rdsh","↵":"crarr","↶":"cularr","↷":"curarr","↺":"olarr","↻":"orarr","↼":"lharu","↽":"lhard","↾":"uharr","↿":"uharl","⇀":"rharu","⇁":"rhard","⇂":"dharr","⇃":"dharl","⇄":"rlarr","⇅":"udarr","⇆":"lrarr","⇇":"llarr","⇈":"uuarr","⇉":"rrarr","⇊":"ddarr","⇋":"lrhar","⇌":"rlhar","⇐":"lArr","⇍":"nlArr","⇑":"uArr","⇒":"rArr","⇏":"nrArr","⇓":"dArr","⇔":"iff","⇎":"nhArr","⇕":"vArr","⇖":"nwArr","⇗":"neArr","⇘":"seArr","⇙":"swArr","⇚":"lAarr","⇛":"rAarr","⇝":"zigrarr","⇤":"larrb","⇥":"rarrb","⇵":"duarr","⇽":"loarr","⇾":"roarr","⇿":"hoarr","∀":"forall","∁":"comp","∂":"part","∂̸":"npart","∃":"exist","∄":"nexist","∅":"empty","∇":"Del","∈":"in","∉":"notin","∋":"ni","∌":"notni","϶":"bepsi","∏":"prod","∐":"coprod","∑":"sum","+":"plus","±":"pm","÷":"div","×":"times","<":"lt","≮":"nlt","<⃒":"nvlt","=":"equals","≠":"ne","=⃥":"bne","⩵":"Equal",">":"gt","≯":"ngt",">⃒":"nvgt","¬":"not","|":"vert","¦":"brvbar","−":"minus","∓":"mp","∔":"plusdo","⁄":"frasl","∖":"setmn","∗":"lowast","∘":"compfn","√":"Sqrt","∝":"prop","∞":"infin","∟":"angrt","∠":"ang","∠⃒":"nang","∡":"angmsd","∢":"angsph","∣":"mid","∤":"nmid","∥":"par","∦":"npar","∧":"and","∨":"or","∩":"cap","∩︀":"caps","∪":"cup","∪︀":"cups","∫":"int","∬":"Int","∭":"tint","⨌":"qint","∮":"oint","∯":"Conint","∰":"Cconint","∱":"cwint","∲":"cwconint","∳":"awconint","∴":"there4","∵":"becaus","∶":"ratio","∷":"Colon","∸":"minusd","∺":"mDDot","∻":"homtht","∼":"sim","≁":"nsim","∼⃒":"nvsim","∽":"bsim","∽̱":"race","∾":"ac","∾̳":"acE","∿":"acd","≀":"wr","≂":"esim","≂̸":"nesim","≃":"sime","≄":"nsime","≅":"cong","≇":"ncong","≆":"simne","≈":"ap","≉":"nap","≊":"ape","≋":"apid","≋̸":"napid","≌":"bcong","≍":"CupCap","≭":"NotCupCap","≍⃒":"nvap","≎":"bump","≎̸":"nbump","≏":"bumpe","≏̸":"nbumpe","≐":"doteq","≐̸":"nedot","≑":"eDot","≒":"efDot","≓":"erDot","≔":"colone","≕":"ecolon","≖":"ecir","≗":"cire","≙":"wedgeq","≚":"veeeq","≜":"trie","≟":"equest","≡":"equiv","≢":"nequiv","≡⃥":"bnequiv","≤":"le","≰":"nle","≤⃒":"nvle","≥":"ge","≱":"nge","≥⃒":"nvge","≦":"lE","≦̸":"nlE","≧":"gE","≧̸":"ngE","≨︀":"lvnE","≨":"lnE","≩":"gnE","≩︀":"gvnE","≪":"ll","≪̸":"nLtv","≪⃒":"nLt","≫":"gg","≫̸":"nGtv","≫⃒":"nGt","≬":"twixt","≲":"lsim","≴":"nlsim","≳":"gsim","≵":"ngsim","≶":"lg","≸":"ntlg","≷":"gl","≹":"ntgl","≺":"pr","⊀":"npr","≻":"sc","⊁":"nsc","≼":"prcue","⋠":"nprcue","≽":"sccue","⋡":"nsccue","≾":"prsim","≿":"scsim","≿̸":"NotSucceedsTilde","⊂":"sub","⊄":"nsub","⊂⃒":"vnsub","⊃":"sup","⊅":"nsup","⊃⃒":"vnsup","⊆":"sube","⊈":"nsube","⊇":"supe","⊉":"nsupe","⊊︀":"vsubne","⊊":"subne","⊋︀":"vsupne","⊋":"supne","⊍":"cupdot","⊎":"uplus","⊏":"sqsub","⊏̸":"NotSquareSubset","⊐":"sqsup","⊐̸":"NotSquareSuperset","⊑":"sqsube","⋢":"nsqsube","⊒":"sqsupe","⋣":"nsqsupe","⊓":"sqcap","⊓︀":"sqcaps","⊔":"sqcup","⊔︀":"sqcups","⊕":"oplus","⊖":"ominus","⊗":"otimes","⊘":"osol","⊙":"odot","⊚":"ocir","⊛":"oast","⊝":"odash","⊞":"plusb","⊟":"minusb","⊠":"timesb","⊡":"sdotb","⊢":"vdash","⊬":"nvdash","⊣":"dashv","⊤":"top","⊥":"bot","⊧":"models","⊨":"vDash","⊭":"nvDash","⊩":"Vdash","⊮":"nVdash","⊪":"Vvdash","⊫":"VDash","⊯":"nVDash","⊰":"prurel","⊲":"vltri","⋪":"nltri","⊳":"vrtri","⋫":"nrtri","⊴":"ltrie","⋬":"nltrie","⊴⃒":"nvltrie","⊵":"rtrie","⋭":"nrtrie","⊵⃒":"nvrtrie","⊶":"origof","⊷":"imof","⊸":"mumap","⊹":"hercon","⊺":"intcal","⊻":"veebar","⊽":"barvee","⊾":"angrtvb","⊿":"lrtri","⋀":"Wedge","⋁":"Vee","⋂":"xcap","⋃":"xcup","⋄":"diam","⋅":"sdot","⋆":"Star","⋇":"divonx","⋈":"bowtie","⋉":"ltimes","⋊":"rtimes","⋋":"lthree","⋌":"rthree","⋍":"bsime","⋎":"cuvee","⋏":"cuwed","⋐":"Sub","⋑":"Sup","⋒":"Cap","⋓":"Cup","⋔":"fork","⋕":"epar","⋖":"ltdot","⋗":"gtdot","⋘":"Ll","⋘̸":"nLl","⋙":"Gg","⋙̸":"nGg","⋚︀":"lesg","⋚":"leg","⋛":"gel","⋛︀":"gesl","⋞":"cuepr","⋟":"cuesc","⋦":"lnsim","⋧":"gnsim","⋨":"prnsim","⋩":"scnsim","⋮":"vellip","⋯":"ctdot","⋰":"utdot","⋱":"dtdot","⋲":"disin","⋳":"isinsv","⋴":"isins","⋵":"isindot","⋵̸":"notindot","⋶":"notinvc","⋷":"notinvb","⋹":"isinE","⋹̸":"notinE","⋺":"nisd","⋻":"xnis","⋼":"nis","⋽":"notnivc","⋾":"notnivb","⌅":"barwed","⌆":"Barwed","⌌":"drcrop","⌍":"dlcrop","⌎":"urcrop","⌏":"ulcrop","⌐":"bnot","⌒":"profline","⌓":"profsurf","⌕":"telrec","⌖":"target","⌜":"ulcorn","⌝":"urcorn","⌞":"dlcorn","⌟":"drcorn","⌢":"frown","⌣":"smile","⌭":"cylcty","⌮":"profalar","⌶":"topbot","⌽":"ovbar","⌿":"solbar","⍼":"angzarr","⎰":"lmoust","⎱":"rmoust","⎴":"tbrk","⎵":"bbrk","⎶":"bbrktbrk","⏜":"OverParenthesis","⏝":"UnderParenthesis","⏞":"OverBrace","⏟":"UnderBrace","⏢":"trpezium","⏧":"elinters","␣":"blank","─":"boxh","│":"boxv","┌":"boxdr","┐":"boxdl","└":"boxur","┘":"boxul","├":"boxvr","┤":"boxvl","┬":"boxhd","┴":"boxhu","┼":"boxvh","═":"boxH","║":"boxV","╒":"boxdR","╓":"boxDr","╔":"boxDR","╕":"boxdL","╖":"boxDl","╗":"boxDL","╘":"boxuR","╙":"boxUr","╚":"boxUR","╛":"boxuL","╜":"boxUl","╝":"boxUL","╞":"boxvR","╟":"boxVr","╠":"boxVR","╡":"boxvL","╢":"boxVl","╣":"boxVL","╤":"boxHd","╥":"boxhD","╦":"boxHD","╧":"boxHu","╨":"boxhU","╩":"boxHU","╪":"boxvH","╫":"boxVh","╬":"boxVH","▀":"uhblk","▄":"lhblk","█":"block","░":"blk14","▒":"blk12","▓":"blk34","□":"squ","▪":"squf","▫":"EmptyVerySmallSquare","▭":"rect","▮":"marker","▱":"fltns","△":"xutri","▴":"utrif","▵":"utri","▸":"rtrif","▹":"rtri","▽":"xdtri","▾":"dtrif","▿":"dtri","◂":"ltrif","◃":"ltri","◊":"loz","○":"cir","◬":"tridot","◯":"xcirc","◸":"ultri","◹":"urtri","◺":"lltri","◻":"EmptySmallSquare","◼":"FilledSmallSquare","★":"starf","☆":"star","☎":"phone","♀":"female","♂":"male","♠":"spades","♣":"clubs","♥":"hearts","♦":"diams","♪":"sung","✓":"check","✗":"cross","✠":"malt","✶":"sext","❘":"VerticalSeparator","⟈":"bsolhsub","⟉":"suphsol","⟵":"xlarr","⟶":"xrarr","⟷":"xharr","⟸":"xlArr","⟹":"xrArr","⟺":"xhArr","⟼":"xmap","⟿":"dzigrarr","⤂":"nvlArr","⤃":"nvrArr","⤄":"nvHarr","⤅":"Map","⤌":"lbarr","⤍":"rbarr","⤎":"lBarr","⤏":"rBarr","⤐":"RBarr","⤑":"DDotrahd","⤒":"UpArrowBar","⤓":"DownArrowBar","⤖":"Rarrtl","⤙":"latail","⤚":"ratail","⤛":"lAtail","⤜":"rAtail","⤝":"larrfs","⤞":"rarrfs","⤟":"larrbfs","⤠":"rarrbfs","⤣":"nwarhk","⤤":"nearhk","⤥":"searhk","⤦":"swarhk","⤧":"nwnear","⤨":"toea","⤩":"tosa","⤪":"swnwar","⤳":"rarrc","⤳̸":"nrarrc","⤵":"cudarrr","⤶":"ldca","⤷":"rdca","⤸":"cudarrl","⤹":"larrpl","⤼":"curarrm","⤽":"cularrp","⥅":"rarrpl","⥈":"harrcir","⥉":"Uarrocir","⥊":"lurdshar","⥋":"ldrushar","⥎":"LeftRightVector","⥏":"RightUpDownVector","⥐":"DownLeftRightVector","⥑":"LeftUpDownVector","⥒":"LeftVectorBar","⥓":"RightVectorBar","⥔":"RightUpVectorBar","⥕":"RightDownVectorBar","⥖":"DownLeftVectorBar","⥗":"DownRightVectorBar","⥘":"LeftUpVectorBar","⥙":"LeftDownVectorBar","⥚":"LeftTeeVector","⥛":"RightTeeVector","⥜":"RightUpTeeVector","⥝":"RightDownTeeVector","⥞":"DownLeftTeeVector","⥟":"DownRightTeeVector","⥠":"LeftUpTeeVector","⥡":"LeftDownTeeVector","⥢":"lHar","⥣":"uHar","⥤":"rHar","⥥":"dHar","⥦":"luruhar","⥧":"ldrdhar","⥨":"ruluhar","⥩":"rdldhar","⥪":"lharul","⥫":"llhard","⥬":"rharul","⥭":"lrhard","⥮":"udhar","⥯":"duhar","⥰":"RoundImplies","⥱":"erarr","⥲":"simrarr","⥳":"larrsim","⥴":"rarrsim","⥵":"rarrap","⥶":"ltlarr","⥸":"gtrarr","⥹":"subrarr","⥻":"suplarr","⥼":"lfisht","⥽":"rfisht","⥾":"ufisht","⥿":"dfisht","⦚":"vzigzag","⦜":"vangrt","⦝":"angrtvbd","⦤":"ange","⦥":"range","⦦":"dwangle","⦧":"uwangle","⦨":"angmsdaa","⦩":"angmsdab","⦪":"angmsdac","⦫":"angmsdad","⦬":"angmsdae","⦭":"angmsdaf","⦮":"angmsdag","⦯":"angmsdah","⦰":"bemptyv","⦱":"demptyv","⦲":"cemptyv","⦳":"raemptyv","⦴":"laemptyv","⦵":"ohbar","⦶":"omid","⦷":"opar","⦹":"operp","⦻":"olcross","⦼":"odsold","⦾":"olcir","⦿":"ofcir","⧀":"olt","⧁":"ogt","⧂":"cirscir","⧃":"cirE","⧄":"solb","⧅":"bsolb","⧉":"boxbox","⧍":"trisb","⧎":"rtriltri","⧏":"LeftTriangleBar","⧏̸":"NotLeftTriangleBar","⧐":"RightTriangleBar","⧐̸":"NotRightTriangleBar","⧜":"iinfin","⧝":"infintie","⧞":"nvinfin","⧣":"eparsl","⧤":"smeparsl","⧥":"eqvparsl","⧫":"lozf","⧴":"RuleDelayed","⧶":"dsol","⨀":"xodot","⨁":"xoplus","⨂":"xotime","⨄":"xuplus","⨆":"xsqcup","⨍":"fpartint","⨐":"cirfnint","⨑":"awint","⨒":"rppolint","⨓":"scpolint","⨔":"npolint","⨕":"pointint","⨖":"quatint","⨗":"intlarhk","⨢":"pluscir","⨣":"plusacir","⨤":"simplus","⨥":"plusdu","⨦":"plussim","⨧":"plustwo","⨩":"mcomma","⨪":"minusdu","⨭":"loplus","⨮":"roplus","⨯":"Cross","⨰":"timesd","⨱":"timesbar","⨳":"smashp","⨴":"lotimes","⨵":"rotimes","⨶":"otimesas","⨷":"Otimes","⨸":"odiv","⨹":"triplus","⨺":"triminus","⨻":"tritime","⨼":"iprod","⨿":"amalg","⩀":"capdot","⩂":"ncup","⩃":"ncap","⩄":"capand","⩅":"cupor","⩆":"cupcap","⩇":"capcup","⩈":"cupbrcap","⩉":"capbrcup","⩊":"cupcup","⩋":"capcap","⩌":"ccups","⩍":"ccaps","⩐":"ccupssm","⩓":"And","⩔":"Or","⩕":"andand","⩖":"oror","⩗":"orslope","⩘":"andslope","⩚":"andv","⩛":"orv","⩜":"andd","⩝":"ord","⩟":"wedbar","⩦":"sdote","⩪":"simdot","⩭":"congdot","⩭̸":"ncongdot","⩮":"easter","⩯":"apacir","⩰":"apE","⩰̸":"napE","⩱":"eplus","⩲":"pluse","⩳":"Esim","⩷":"eDDot","⩸":"equivDD","⩹":"ltcir","⩺":"gtcir","⩻":"ltquest","⩼":"gtquest","⩽":"les","⩽̸":"nles","⩾":"ges","⩾̸":"nges","⩿":"lesdot","⪀":"gesdot","⪁":"lesdoto","⪂":"gesdoto","⪃":"lesdotor","⪄":"gesdotol","⪅":"lap","⪆":"gap","⪇":"lne","⪈":"gne","⪉":"lnap","⪊":"gnap","⪋":"lEg","⪌":"gEl","⪍":"lsime","⪎":"gsime","⪏":"lsimg","⪐":"gsiml","⪑":"lgE","⪒":"glE","⪓":"lesges","⪔":"gesles","⪕":"els","⪖":"egs","⪗":"elsdot","⪘":"egsdot","⪙":"el","⪚":"eg","⪝":"siml","⪞":"simg","⪟":"simlE","⪠":"simgE","⪡":"LessLess","⪡̸":"NotNestedLessLess","⪢":"GreaterGreater","⪢̸":"NotNestedGreaterGreater","⪤":"glj","⪥":"gla","⪦":"ltcc","⪧":"gtcc","⪨":"lescc","⪩":"gescc","⪪":"smt","⪫":"lat","⪬":"smte","⪬︀":"smtes","⪭":"late","⪭︀":"lates","⪮":"bumpE","⪯":"pre","⪯̸":"npre","⪰":"sce","⪰̸":"nsce","⪳":"prE","⪴":"scE","⪵":"prnE","⪶":"scnE","⪷":"prap","⪸":"scap","⪹":"prnap","⪺":"scnap","⪻":"Pr","⪼":"Sc","⪽":"subdot","⪾":"supdot","⪿":"subplus","⫀":"supplus","⫁":"submult","⫂":"supmult","⫃":"subedot","⫄":"supedot","⫅":"subE","⫅̸":"nsubE","⫆":"supE","⫆̸":"nsupE","⫇":"subsim","⫈":"supsim","⫋︀":"vsubnE","⫋":"subnE","⫌︀":"vsupnE","⫌":"supnE","⫏":"csub","⫐":"csup","⫑":"csube","⫒":"csupe","⫓":"subsup","⫔":"supsub","⫕":"subsub","⫖":"supsup","⫗":"suphsub","⫘":"supdsub","⫙":"forkv","⫚":"topfork","⫛":"mlcp","⫤":"Dashv","⫦":"Vdashl","⫧":"Barv","⫨":"vBar","⫩":"vBarv","⫫":"Vbar","⫬":"Not","⫭":"bNot","⫮":"rnmid","⫯":"cirmid","⫰":"midcir","⫱":"topcir","⫲":"nhpar","⫳":"parsim","⫽":"parsl","⫽⃥":"nparsl","♭":"flat","♮":"natur","♯":"sharp","¤":"curren","¢":"cent",$:"dollar","£":"pound","¥":"yen","€":"euro","¹":"sup1","½":"half","⅓":"frac13","¼":"frac14","⅕":"frac15","⅙":"frac16","⅛":"frac18","²":"sup2","⅔":"frac23","⅖":"frac25","³":"sup3","¾":"frac34","⅗":"frac35","⅜":"frac38","⅘":"frac45","⅚":"frac56","⅝":"frac58","⅞":"frac78","𝒶":"ascr","𝕒":"aopf","𝔞":"afr","𝔸":"Aopf","𝔄":"Afr","𝒜":"Ascr","ª":"ordf","á":"aacute","Á":"Aacute","à":"agrave","À":"Agrave","ă":"abreve","Ă":"Abreve","â":"acirc","Â":"Acirc","å":"aring","Å":"angst","ä":"auml","Ä":"Auml","ã":"atilde","Ã":"Atilde","ą":"aogon","Ą":"Aogon","ā":"amacr","Ā":"Amacr","æ":"aelig","Æ":"AElig","𝒷":"bscr","𝕓":"bopf","𝔟":"bfr","𝔹":"Bopf","ℬ":"Bscr","𝔅":"Bfr","𝔠":"cfr","𝒸":"cscr","𝕔":"copf","ℭ":"Cfr","𝒞":"Cscr","ℂ":"Copf","ć":"cacute","Ć":"Cacute","ĉ":"ccirc","Ĉ":"Ccirc","č":"ccaron","Č":"Ccaron","ċ":"cdot","Ċ":"Cdot","ç":"ccedil","Ç":"Ccedil","℅":"incare","𝔡":"dfr","ⅆ":"dd","𝕕":"dopf","𝒹":"dscr","𝒟":"Dscr","𝔇":"Dfr","ⅅ":"DD","𝔻":"Dopf","ď":"dcaron","Ď":"Dcaron","đ":"dstrok","Đ":"Dstrok","ð":"eth","Ð":"ETH","ⅇ":"ee","ℯ":"escr","𝔢":"efr","𝕖":"eopf","ℰ":"Escr","𝔈":"Efr","𝔼":"Eopf","é":"eacute","É":"Eacute","è":"egrave","È":"Egrave","ê":"ecirc","Ê":"Ecirc","ě":"ecaron","Ě":"Ecaron","ë":"euml","Ë":"Euml","ė":"edot","Ė":"Edot","ę":"eogon","Ę":"Eogon","ē":"emacr","Ē":"Emacr","𝔣":"ffr","𝕗":"fopf","𝒻":"fscr","𝔉":"Ffr","𝔽":"Fopf","ℱ":"Fscr","ff":"fflig","ffi":"ffilig","ffl":"ffllig","fi":"filig",fj:"fjlig","fl":"fllig","ƒ":"fnof","ℊ":"gscr","𝕘":"gopf","𝔤":"gfr","𝒢":"Gscr","𝔾":"Gopf","𝔊":"Gfr","ǵ":"gacute","ğ":"gbreve","Ğ":"Gbreve","ĝ":"gcirc","Ĝ":"Gcirc","ġ":"gdot","Ġ":"Gdot","Ģ":"Gcedil","𝔥":"hfr","ℎ":"planckh","𝒽":"hscr","𝕙":"hopf","ℋ":"Hscr","ℌ":"Hfr","ℍ":"Hopf","ĥ":"hcirc","Ĥ":"Hcirc","ℏ":"hbar","ħ":"hstrok","Ħ":"Hstrok","𝕚":"iopf","𝔦":"ifr","𝒾":"iscr","ⅈ":"ii","𝕀":"Iopf","ℐ":"Iscr","ℑ":"Im","í":"iacute","Í":"Iacute","ì":"igrave","Ì":"Igrave","î":"icirc","Î":"Icirc","ï":"iuml","Ï":"Iuml","ĩ":"itilde","Ĩ":"Itilde","İ":"Idot","į":"iogon","Į":"Iogon","ī":"imacr","Ī":"Imacr","ij":"ijlig","IJ":"IJlig","ı":"imath","𝒿":"jscr","𝕛":"jopf","𝔧":"jfr","𝒥":"Jscr","𝔍":"Jfr","𝕁":"Jopf","ĵ":"jcirc","Ĵ":"Jcirc","ȷ":"jmath","𝕜":"kopf","𝓀":"kscr","𝔨":"kfr","𝒦":"Kscr","𝕂":"Kopf","𝔎":"Kfr","ķ":"kcedil","Ķ":"Kcedil","𝔩":"lfr","𝓁":"lscr","ℓ":"ell","𝕝":"lopf","ℒ":"Lscr","𝔏":"Lfr","𝕃":"Lopf","ĺ":"lacute","Ĺ":"Lacute","ľ":"lcaron","Ľ":"Lcaron","ļ":"lcedil","Ļ":"Lcedil","ł":"lstrok","Ł":"Lstrok","ŀ":"lmidot","Ŀ":"Lmidot","𝔪":"mfr","𝕞":"mopf","𝓂":"mscr","𝔐":"Mfr","𝕄":"Mopf","ℳ":"Mscr","𝔫":"nfr","𝕟":"nopf","𝓃":"nscr","ℕ":"Nopf","𝒩":"Nscr","𝔑":"Nfr","ń":"nacute","Ń":"Nacute","ň":"ncaron","Ň":"Ncaron","ñ":"ntilde","Ñ":"Ntilde","ņ":"ncedil","Ņ":"Ncedil","№":"numero","ŋ":"eng","Ŋ":"ENG","𝕠":"oopf","𝔬":"ofr","ℴ":"oscr","𝒪":"Oscr","𝔒":"Ofr","𝕆":"Oopf","º":"ordm","ó":"oacute","Ó":"Oacute","ò":"ograve","Ò":"Ograve","ô":"ocirc","Ô":"Ocirc","ö":"ouml","Ö":"Ouml","ő":"odblac","Ő":"Odblac","õ":"otilde","Õ":"Otilde","ø":"oslash","Ø":"Oslash","ō":"omacr","Ō":"Omacr","œ":"oelig","Œ":"OElig","𝔭":"pfr","𝓅":"pscr","𝕡":"popf","ℙ":"Popf","𝔓":"Pfr","𝒫":"Pscr","𝕢":"qopf","𝔮":"qfr","𝓆":"qscr","𝒬":"Qscr","𝔔":"Qfr","ℚ":"Qopf","ĸ":"kgreen","𝔯":"rfr","𝕣":"ropf","𝓇":"rscr","ℛ":"Rscr","ℜ":"Re","ℝ":"Ropf","ŕ":"racute","Ŕ":"Racute","ř":"rcaron","Ř":"Rcaron","ŗ":"rcedil","Ŗ":"Rcedil","𝕤":"sopf","𝓈":"sscr","𝔰":"sfr","𝕊":"Sopf","𝔖":"Sfr","𝒮":"Sscr","Ⓢ":"oS","ś":"sacute","Ś":"Sacute","ŝ":"scirc","Ŝ":"Scirc","š":"scaron","Š":"Scaron","ş":"scedil","Ş":"Scedil","ß":"szlig","𝔱":"tfr","𝓉":"tscr","𝕥":"topf","𝒯":"Tscr","𝔗":"Tfr","𝕋":"Topf","ť":"tcaron","Ť":"Tcaron","ţ":"tcedil","Ţ":"Tcedil","™":"trade","ŧ":"tstrok","Ŧ":"Tstrok","𝓊":"uscr","𝕦":"uopf","𝔲":"ufr","𝕌":"Uopf","𝔘":"Ufr","𝒰":"Uscr","ú":"uacute","Ú":"Uacute","ù":"ugrave","Ù":"Ugrave","ŭ":"ubreve","Ŭ":"Ubreve","û":"ucirc","Û":"Ucirc","ů":"uring","Ů":"Uring","ü":"uuml","Ü":"Uuml","ű":"udblac","Ű":"Udblac","ũ":"utilde","Ũ":"Utilde","ų":"uogon","Ų":"Uogon","ū":"umacr","Ū":"Umacr","𝔳":"vfr","𝕧":"vopf","𝓋":"vscr","𝔙":"Vfr","𝕍":"Vopf","𝒱":"Vscr","𝕨":"wopf","𝓌":"wscr","𝔴":"wfr","𝒲":"Wscr","𝕎":"Wopf","𝔚":"Wfr","ŵ":"wcirc","Ŵ":"Wcirc","𝔵":"xfr","𝓍":"xscr","𝕩":"xopf","𝕏":"Xopf","𝔛":"Xfr","𝒳":"Xscr","𝔶":"yfr","𝓎":"yscr","𝕪":"yopf","𝒴":"Yscr","𝔜":"Yfr","𝕐":"Yopf","ý":"yacute","Ý":"Yacute","ŷ":"ycirc","Ŷ":"Ycirc","ÿ":"yuml","Ÿ":"Yuml","𝓏":"zscr","𝔷":"zfr","𝕫":"zopf","ℨ":"Zfr","ℤ":"Zopf","𝒵":"Zscr","ź":"zacute","Ź":"Zacute","ž":"zcaron","Ž":"Zcaron","ż":"zdot","Ż":"Zdot","Ƶ":"imped","þ":"thorn","Þ":"THORN","ʼn":"napos","α":"alpha","Α":"Alpha","β":"beta","Β":"Beta","γ":"gamma","Γ":"Gamma","δ":"delta","Δ":"Delta","ε":"epsi","ϵ":"epsiv","Ε":"Epsilon","ϝ":"gammad","Ϝ":"Gammad","ζ":"zeta","Ζ":"Zeta","η":"eta","Η":"Eta","θ":"theta","ϑ":"thetav","Θ":"Theta","ι":"iota","Ι":"Iota","κ":"kappa","ϰ":"kappav","Κ":"Kappa","λ":"lambda","Λ":"Lambda","μ":"mu","µ":"micro","Μ":"Mu","ν":"nu","Ν":"Nu","ξ":"xi","Ξ":"Xi","ο":"omicron","Ο":"Omicron","π":"pi","ϖ":"piv","Π":"Pi","ρ":"rho","ϱ":"rhov","Ρ":"Rho","σ":"sigma","Σ":"Sigma","ς":"sigmaf","τ":"tau","Τ":"Tau","υ":"upsi","Υ":"Upsilon","ϒ":"Upsi","φ":"phi","ϕ":"phiv","Φ":"Phi","χ":"chi","Χ":"Chi","ψ":"psi","Ψ":"Psi","ω":"omega","Ω":"ohm","а":"acy","А":"Acy","б":"bcy","Б":"Bcy","в":"vcy","В":"Vcy","г":"gcy","Г":"Gcy","ѓ":"gjcy","Ѓ":"GJcy","д":"dcy","Д":"Dcy","ђ":"djcy","Ђ":"DJcy","е":"iecy","Е":"IEcy","ё":"iocy","Ё":"IOcy","є":"jukcy","Є":"Jukcy","ж":"zhcy","Ж":"ZHcy","з":"zcy","З":"Zcy","ѕ":"dscy","Ѕ":"DScy","и":"icy","И":"Icy","і":"iukcy","І":"Iukcy","ї":"yicy","Ї":"YIcy","й":"jcy","Й":"Jcy","ј":"jsercy","Ј":"Jsercy","к":"kcy","К":"Kcy","ќ":"kjcy","Ќ":"KJcy","л":"lcy","Л":"Lcy","љ":"ljcy","Љ":"LJcy","м":"mcy","М":"Mcy","н":"ncy","Н":"Ncy","њ":"njcy","Њ":"NJcy","о":"ocy","О":"Ocy","п":"pcy","П":"Pcy","р":"rcy","Р":"Rcy","с":"scy","С":"Scy","т":"tcy","Т":"Tcy","ћ":"tshcy","Ћ":"TSHcy","у":"ucy","У":"Ucy","ў":"ubrcy","Ў":"Ubrcy","ф":"fcy","Ф":"Fcy","х":"khcy","Х":"KHcy","ц":"tscy","Ц":"TScy","ч":"chcy","Ч":"CHcy","џ":"dzcy","Џ":"DZcy","ш":"shcy","Ш":"SHcy","щ":"shchcy","Щ":"SHCHcy","ъ":"hardcy","Ъ":"HARDcy","ы":"ycy","Ы":"Ycy","ь":"softcy","Ь":"SOFTcy","э":"ecy","Э":"Ecy","ю":"yucy","Ю":"YUcy","я":"yacy","Я":"YAcy","ℵ":"aleph","ℶ":"beth","ℷ":"gimel","ℸ":"daleth"},m=/["&'<>`]/g,n={'"':"&quot;","&":"&amp;","'":"&#x27;","<":"&lt;",">":"&gt;","`":"&#x60;"},o=/&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/,p=/[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,q=/&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)([=a-zA-Z0-9])?/g,r={aacute:"á",Aacute:"Á",abreve:"ă",Abreve:"Ă",ac:"∾",acd:"∿",acE:"∾̳",acirc:"â",Acirc:"Â",acute:"´",acy:"а",Acy:"А",aelig:"æ",AElig:"Æ",af:"⁡",afr:"𝔞",Afr:"𝔄",agrave:"à",Agrave:"À",alefsym:"ℵ",aleph:"ℵ",alpha:"α",Alpha:"Α",amacr:"ā",Amacr:"Ā",amalg:"⨿",amp:"&",AMP:"&",and:"∧",And:"⩓",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",Aogon:"Ą",aopf:"𝕒",Aopf:"𝔸",ap:"≈",apacir:"⩯",ape:"≊",apE:"⩰",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",aring:"å",Aring:"Å",ascr:"𝒶",Ascr:"𝒜",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",barwed:"⌅",Barwed:"⌆",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",Bcy:"Б",bdquo:"„",becaus:"∵",because:"∵",Because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",beta:"β",Beta:"Β",beth:"ℶ",between:"≬",bfr:"𝔟",Bfr:"𝔅",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bNot:"⫭",bopf:"𝕓",Bopf:"𝔹",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxdl:"┐",boxdL:"╕",boxDl:"╖",boxDL:"╗",boxdr:"┌",boxdR:"╒",boxDr:"╓",boxDR:"╔",boxh:"─",boxH:"═",boxhd:"┬",boxhD:"╥",boxHd:"╤",boxHD:"╦",boxhu:"┴",boxhU:"╨",boxHu:"╧",boxHU:"╩",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxuL:"╛",boxUl:"╜",boxUL:"╝",boxur:"└",boxuR:"╘",boxUr:"╙",boxUR:"╚",boxv:"│",boxV:"║",boxvh:"┼",boxvH:"╪",boxVh:"╫",boxVH:"╬",boxvl:"┤",boxvL:"╡",boxVl:"╢",boxVL:"╣",boxvr:"├",boxvR:"╞",boxVr:"╟",boxVR:"╠",bprime:"‵",breve:"˘",Breve:"˘",brvbar:"¦",bscr:"𝒷",Bscr:"ℬ",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpe:"≏",bumpE:"⪮",bumpeq:"≏",Bumpeq:"≎",cacute:"ć",Cacute:"Ć",cap:"∩",Cap:"⋒",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",ccaron:"č",Ccaron:"Č",ccedil:"ç",Ccedil:"Ç",ccirc:"ĉ",Ccirc:"Ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",Cdot:"Ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",CenterDot:"·",cfr:"𝔠",Cfr:"ℭ",chcy:"ч",CHcy:"Ч",check:"✓",checkmark:"✓",chi:"χ",Chi:"Χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cire:"≗",cirE:"⧃",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",colon:":",Colon:"∷",colone:"≔",Colone:"⩴",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",conint:"∮",Conint:"∯",ContourIntegral:"∮",copf:"𝕔",Copf:"ℂ",coprod:"∐",Coproduct:"∐",copy:"©",COPY:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",cross:"✗",Cross:"⨯",cscr:"𝒸",Cscr:"𝒞",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",Cup:"⋓",cupbrcap:"⩈",cupcap:"⩆",CupCap:"≍",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dagger:"†",Dagger:"‡",daleth:"ℸ",darr:"↓",dArr:"⇓",Darr:"↡",dash:"‐",dashv:"⊣",Dashv:"⫤",dbkarow:"⤏",dblac:"˝",dcaron:"ď",Dcaron:"Ď",dcy:"д",Dcy:"Д",dd:"ⅆ",DD:"ⅅ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",delta:"δ",Delta:"Δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",Dfr:"𝔇",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",diamond:"⋄",Diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",DJcy:"Ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",Dopf:"𝔻",dot:"˙",Dot:"¨",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",downarrow:"↓",Downarrow:"⇓",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",Dscr:"𝒟",dscy:"ѕ",DScy:"Ѕ",dsol:"⧶",dstrok:"đ",Dstrok:"Đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",DZcy:"Џ",dzigrarr:"⟿",eacute:"é",Eacute:"É",easter:"⩮",ecaron:"ě",Ecaron:"Ě",ecir:"≖",ecirc:"ê",Ecirc:"Ê",ecolon:"≕",ecy:"э",Ecy:"Э",eDDot:"⩷",edot:"ė",eDot:"≑",Edot:"Ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",Efr:"𝔈",eg:"⪚",egrave:"è",Egrave:"È",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",Emacr:"Ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",eng:"ŋ",ENG:"Ŋ",ensp:" ",eogon:"ę",Eogon:"Ę",eopf:"𝕖",Eopf:"𝔼",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",Epsilon:"Ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",escr:"ℯ",Escr:"ℰ",esdot:"≐",esim:"≂",Esim:"⩳",eta:"η",Eta:"Η",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",exponentiale:"ⅇ",ExponentialE:"ⅇ",fallingdotseq:"≒",fcy:"ф",Fcy:"Ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",Ffr:"𝔉",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",Fopf:"𝔽",forall:"∀",ForAll:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",Fscr:"ℱ",gacute:"ǵ",gamma:"γ",Gamma:"Γ",gammad:"ϝ",Gammad:"Ϝ",gap:"⪆",gbreve:"ğ",Gbreve:"Ğ",Gcedil:"Ģ",gcirc:"ĝ",Gcirc:"Ĝ",gcy:"г",Gcy:"Г",gdot:"ġ",Gdot:"Ġ",ge:"≥",gE:"≧",gel:"⋛",gEl:"⪌",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",Gfr:"𝔊",gg:"≫",Gg:"⋙",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",GJcy:"Ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gnE:"≩",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",Gopf:"𝔾",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",gscr:"ℊ",Gscr:"𝒢",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",Gt:"≫",GT:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",HARDcy:"Ъ",harr:"↔",hArr:"⇔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",hcirc:"ĥ",Hcirc:"Ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",Hfr:"ℌ",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",Hopf:"ℍ",horbar:"―",HorizontalLine:"─",hscr:"𝒽",Hscr:"ℋ",hslash:"ℏ",hstrok:"ħ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",iacute:"í",Iacute:"Í",ic:"⁣",icirc:"î",Icirc:"Î",icy:"и",Icy:"И",Idot:"İ",iecy:"е",IEcy:"Е",iexcl:"¡",iff:"⇔",ifr:"𝔦",Ifr:"ℑ",igrave:"ì",Igrave:"Ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",IJlig:"IJ",Im:"ℑ",imacr:"ī",Imacr:"Ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒","in":"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı","int":"∫",Int:"∬",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",iocy:"ё",IOcy:"Ё",iogon:"į",Iogon:"Į",iopf:"𝕚",Iopf:"𝕀",iota:"ι",Iota:"Ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",Iscr:"ℐ",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",Itilde:"Ĩ",iukcy:"і",Iukcy:"І",iuml:"ï",Iuml:"Ï",jcirc:"ĵ",Jcirc:"Ĵ",jcy:"й",Jcy:"Й",jfr:"𝔧",Jfr:"𝔍",jmath:"ȷ",jopf:"𝕛",Jopf:"𝕁",jscr:"𝒿",Jscr:"𝒥",jsercy:"ј",Jsercy:"Ј",jukcy:"є",Jukcy:"Є",kappa:"κ",Kappa:"Κ",kappav:"ϰ",kcedil:"ķ",Kcedil:"Ķ",kcy:"к",Kcy:"К",kfr:"𝔨",Kfr:"𝔎",kgreen:"ĸ",khcy:"х",KHcy:"Х",kjcy:"ќ",KJcy:"Ќ",kopf:"𝕜",Kopf:"𝕂",kscr:"𝓀",Kscr:"𝒦",lAarr:"⇚",lacute:"ĺ",Lacute:"Ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",Lambda:"Λ",lang:"⟨",Lang:"⟪",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",larr:"←",lArr:"⇐",Larr:"↞",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",lAtail:"⤛",late:"⪭",lates:"⪭︀",lbarr:"⤌",lBarr:"⤎",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",Lcaron:"Ľ",lcedil:"ļ",Lcedil:"Ļ",lceil:"⌈",lcub:"{",lcy:"л",Lcy:"Л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",lE:"≦",LeftAngleBracket:"⟨",leftarrow:"←",Leftarrow:"⇐",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",Leftrightarrow:"⇔",LeftRightArrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",leg:"⋚",lEg:"⪋",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",Lfr:"𝔏",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",LJcy:"Љ",ll:"≪",Ll:"⋘",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",lmidot:"ŀ",Lmidot:"Ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lnE:"≨",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",Longleftarrow:"⟸",LongLeftArrow:"⟵",longleftrightarrow:"⟷",Longleftrightarrow:"⟺",LongLeftRightArrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",Longrightarrow:"⟹",LongRightArrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",Lopf:"𝕃",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",Lscr:"ℒ",lsh:"↰",Lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",Lstrok:"Ł",lt:"<",Lt:"≪",LT:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",Map:"⤅",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",Mcy:"М",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",mfr:"𝔪",Mfr:"𝔐",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",Mopf:"𝕄",mp:"∓",mscr:"𝓂",Mscr:"ℳ",mstpos:"∾",mu:"μ",Mu:"Μ",multimap:"⊸",mumap:"⊸",nabla:"∇",nacute:"ń",Nacute:"Ń",nang:"∠⃒",
-nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",Ncaron:"Ň",ncedil:"ņ",Ncedil:"Ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",Ncy:"Н",ndash:"–",ne:"≠",nearhk:"⤤",nearr:"↗",neArr:"⇗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",nfr:"𝔫",Nfr:"𝔑",nge:"≱",ngE:"≧̸",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",ngt:"≯",nGt:"≫⃒",ngtr:"≯",nGtv:"≫̸",nharr:"↮",nhArr:"⇎",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",NJcy:"Њ",nlarr:"↚",nlArr:"⇍",nldr:"‥",nle:"≰",nlE:"≦̸",nleftarrow:"↚",nLeftarrow:"⇍",nleftrightarrow:"↮",nLeftrightarrow:"⇎",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nlt:"≮",nLt:"≪⃒",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",nopf:"𝕟",Nopf:"ℕ",not:"¬",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrarr:"↛",nrArr:"⇏",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nRightarrow:"⇏",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",Nscr:"𝒩",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsube:"⊈",nsubE:"⫅̸",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupe:"⊉",nsupE:"⫆̸",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",Ntilde:"Ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",Nu:"Ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwarr:"↖",nwArr:"⇖",nwarrow:"↖",nwnear:"⤧",oacute:"ó",Oacute:"Ó",oast:"⊛",ocir:"⊚",ocirc:"ô",Ocirc:"Ô",ocy:"о",Ocy:"О",odash:"⊝",odblac:"ő",Odblac:"Ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",OElig:"Œ",ofcir:"⦿",ofr:"𝔬",Ofr:"𝔒",ogon:"˛",ograve:"ò",Ograve:"Ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",Omacr:"Ō",omega:"ω",Omega:"Ω",omicron:"ο",Omicron:"Ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",Oopf:"𝕆",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",or:"∨",Or:"⩔",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",oscr:"ℴ",Oscr:"𝒪",oslash:"ø",Oslash:"Ø",osol:"⊘",otilde:"õ",Otilde:"Õ",otimes:"⊗",Otimes:"⨷",otimesas:"⨶",ouml:"ö",Ouml:"Ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",pcy:"п",Pcy:"П",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",Pfr:"𝔓",phi:"φ",Phi:"Φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",Pi:"Π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",popf:"𝕡",Popf:"ℙ",pound:"£",pr:"≺",Pr:"⪻",prap:"⪷",prcue:"≼",pre:"⪯",prE:"⪳",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",Prime:"″",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",Pscr:"𝒫",psi:"ψ",Psi:"Ψ",puncsp:" ",qfr:"𝔮",Qfr:"𝔔",qint:"⨌",qopf:"𝕢",Qopf:"ℚ",qprime:"⁗",qscr:"𝓆",Qscr:"𝒬",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',QUOT:'"',rAarr:"⇛",race:"∽̱",racute:"ŕ",Racute:"Ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",Rang:"⟫",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rArr:"⇒",Rarr:"↠",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",Rarrtl:"⤖",rarrw:"↝",ratail:"⤚",rAtail:"⤜",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rBarr:"⤏",RBarr:"⤐",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",Rcaron:"Ř",rcedil:"ŗ",Rcedil:"Ŗ",rceil:"⌉",rcub:"}",rcy:"р",Rcy:"Р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",REG:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",Rfr:"ℜ",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",Rho:"Ρ",rhov:"ϱ",RightAngleBracket:"⟩",rightarrow:"→",Rightarrow:"⇒",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",Ropf:"ℝ",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",rscr:"𝓇",Rscr:"ℛ",rsh:"↱",Rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",sacute:"ś",Sacute:"Ś",sbquo:"‚",sc:"≻",Sc:"⪼",scap:"⪸",scaron:"š",Scaron:"Š",sccue:"≽",sce:"⪰",scE:"⪴",scedil:"ş",Scedil:"Ş",scirc:"ŝ",Scirc:"Ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",Scy:"С",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",searr:"↘",seArr:"⇘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",Sfr:"𝔖",sfrown:"⌢",sharp:"♯",shchcy:"щ",SHCHcy:"Щ",shcy:"ш",SHcy:"Ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",sigma:"σ",Sigma:"Σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",SOFTcy:"Ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",Sopf:"𝕊",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",Sscr:"𝒮",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",Star:"⋆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",Sub:"⋐",subdot:"⪽",sube:"⊆",subE:"⫅",subedot:"⫃",submult:"⫁",subne:"⊊",subnE:"⫋",subplus:"⪿",subrarr:"⥹",subset:"⊂",Subset:"⋐",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",sum:"∑",Sum:"∑",sung:"♪",sup:"⊃",Sup:"⋑",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supe:"⊇",supE:"⫆",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supne:"⊋",supnE:"⫌",supplus:"⫀",supset:"⊃",Supset:"⋑",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swarr:"↙",swArr:"⇙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"      ",target:"⌖",tau:"τ",Tau:"Τ",tbrk:"⎴",tcaron:"ť",Tcaron:"Ť",tcedil:"ţ",Tcedil:"Ţ",tcy:"т",Tcy:"Т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",Tfr:"𝔗",there4:"∴",therefore:"∴",Therefore:"∴",theta:"θ",Theta:"Θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",thorn:"þ",THORN:"Þ",tilde:"˜",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",Topf:"𝕋",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",TRADE:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",Tscr:"𝒯",tscy:"ц",TScy:"Ц",tshcy:"ћ",TSHcy:"Ћ",tstrok:"ŧ",Tstrok:"Ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uacute:"ú",Uacute:"Ú",uarr:"↑",uArr:"⇑",Uarr:"↟",Uarrocir:"⥉",ubrcy:"ў",Ubrcy:"Ў",ubreve:"ŭ",Ubreve:"Ŭ",ucirc:"û",Ucirc:"Û",ucy:"у",Ucy:"У",udarr:"⇅",udblac:"ű",Udblac:"Ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",Ufr:"𝔘",ugrave:"ù",Ugrave:"Ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",Umacr:"Ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",uogon:"ų",Uogon:"Ų",uopf:"𝕦",Uopf:"𝕌",uparrow:"↑",Uparrow:"⇑",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",updownarrow:"↕",Updownarrow:"⇕",UpDownArrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",upsi:"υ",Upsi:"ϒ",upsih:"ϒ",upsilon:"υ",Upsilon:"Υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",Uring:"Ů",urtri:"◹",uscr:"𝓊",Uscr:"𝒰",utdot:"⋰",utilde:"ũ",Utilde:"Ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",Uuml:"Ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",vArr:"⇕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vBar:"⫨",Vbar:"⫫",vBarv:"⫩",vcy:"в",Vcy:"В",vdash:"⊢",vDash:"⊨",Vdash:"⊩",VDash:"⊫",Vdashl:"⫦",vee:"∨",Vee:"⋁",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",Verbar:"‖",vert:"|",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",vfr:"𝔳",Vfr:"𝔙",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",Vopf:"𝕍",vprop:"∝",vrtri:"⊳",vscr:"𝓋",Vscr:"𝒱",vsubne:"⊊︀",vsubnE:"⫋︀",vsupne:"⊋︀",vsupnE:"⫌︀",Vvdash:"⊪",vzigzag:"⦚",wcirc:"ŵ",Wcirc:"Ŵ",wedbar:"⩟",wedge:"∧",Wedge:"⋀",wedgeq:"≙",weierp:"℘",wfr:"𝔴",Wfr:"𝔚",wopf:"𝕨",Wopf:"𝕎",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",Wscr:"𝒲",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",Xfr:"𝔛",xharr:"⟷",xhArr:"⟺",xi:"ξ",Xi:"Ξ",xlarr:"⟵",xlArr:"⟸",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",Xopf:"𝕏",xoplus:"⨁",xotime:"⨂",xrarr:"⟶",xrArr:"⟹",xscr:"𝓍",Xscr:"𝒳",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",Yacute:"Ý",yacy:"я",YAcy:"Я",ycirc:"ŷ",Ycirc:"Ŷ",ycy:"ы",Ycy:"Ы",yen:"¥",yfr:"𝔶",Yfr:"𝔜",yicy:"ї",YIcy:"Ї",yopf:"𝕪",Yopf:"𝕐",yscr:"𝓎",Yscr:"𝒴",yucy:"ю",YUcy:"Ю",yuml:"ÿ",Yuml:"Ÿ",zacute:"ź",Zacute:"Ź",zcaron:"ž",Zcaron:"Ž",zcy:"з",Zcy:"З",zdot:"ż",Zdot:"Ż",zeetrf:"ℨ",ZeroWidthSpace:"​",zeta:"ζ",Zeta:"Ζ",zfr:"𝔷",Zfr:"ℨ",zhcy:"ж",ZHcy:"Ж",zigrarr:"⇝",zopf:"𝕫",Zopf:"ℤ",zscr:"𝓏",Zscr:"𝒵",zwj:"‍",zwnj:"‌"},s={aacute:"á",Aacute:"Á",acirc:"â",Acirc:"Â",acute:"´",aelig:"æ",AElig:"Æ",agrave:"à",Agrave:"À",amp:"&",AMP:"&",aring:"å",Aring:"Å",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",brvbar:"¦",ccedil:"ç",Ccedil:"Ç",cedil:"¸",cent:"¢",copy:"©",COPY:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",Eacute:"É",ecirc:"ê",Ecirc:"Ê",egrave:"è",Egrave:"È",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",GT:">",iacute:"í",Iacute:"Í",icirc:"î",Icirc:"Î",iexcl:"¡",igrave:"ì",Igrave:"Ì",iquest:"¿",iuml:"ï",Iuml:"Ï",laquo:"«",lt:"<",LT:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",Ntilde:"Ñ",oacute:"ó",Oacute:"Ó",ocirc:"ô",Ocirc:"Ô",ograve:"ò",Ograve:"Ò",ordf:"ª",ordm:"º",oslash:"ø",Oslash:"Ø",otilde:"õ",Otilde:"Õ",ouml:"ö",Ouml:"Ö",para:"¶",plusmn:"±",pound:"£",quot:'"',QUOT:'"',raquo:"»",reg:"®",REG:"®",sect:"§",shy:"­",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",THORN:"Þ",times:"×",uacute:"ú",Uacute:"Ú",ucirc:"û",Ucirc:"Û",ugrave:"ù",Ugrave:"Ù",uml:"¨",uuml:"ü",Uuml:"Ü",yacute:"ý",Yacute:"Ý",yen:"¥",yuml:"ÿ"},t={0:"�",128:"€",130:"‚",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"‹",140:"Œ",142:"Ž",145:"‘",146:"’",147:"“",148:"”",149:"•",150:"–",151:"—",152:"˜",153:"™",154:"š",155:"›",156:"œ",158:"ž",159:"Ÿ"},u=[1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65e3,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111],v=String.fromCharCode,w={},x=w.hasOwnProperty,y=function(a,b){return x.call(a,b)},z=function(a,b){for(var c=-1,d=a.length;++c<d;)if(a[c]==b)return!0;return!1},A=function(a,b){if(!a)return b;var c,d={};for(c in b)d[c]=y(a,c)?a[c]:b[c];return d},B=function(a,b){var c="";return a>=55296&&57343>=a||a>1114111?(b&&D("character reference outside the permissible Unicode range"),"�"):y(t,a)?(b&&D("disallowed character reference"),t[a]):(b&&z(u,a)&&D("disallowed character reference"),a>65535&&(a-=65536,c+=v(a>>>10&1023|55296),a=56320|1023&a),c+=v(a))},C=function(a){return"&#x"+a.charCodeAt(0).toString(16).toUpperCase()+";"},D=function(a){throw Error("Parse error: "+a)},E=function(a,b){b=A(b,E.options);var c=b.strict;c&&p.test(a)&&D("forbidden code point");var d=b.encodeEverything,e=b.useNamedReferences,f=b.allowUnsafeSymbols;return d?(a=a.replace(i,function(a){return e&&y(l,a)?"&"+l[a]+";":C(a)}),e&&(a=a.replace(/&gt;\u20D2/g,"&nvgt;").replace(/&lt;\u20D2/g,"&nvlt;").replace(/&#x66;&#x6A;/g,"&fjlig;")),e&&(a=a.replace(k,function(a){return"&"+l[a]+";"}))):e?(f||(a=a.replace(m,function(a){return"&"+l[a]+";"})),a=a.replace(/&gt;\u20D2/g,"&nvgt;").replace(/&lt;\u20D2/g,"&nvlt;"),a=a.replace(k,function(a){return"&"+l[a]+";"})):f||(a=a.replace(m,C)),a.replace(h,function(a){var b=a.charCodeAt(0),c=a.charCodeAt(1),d=1024*(b-55296)+c-56320+65536;return"&#x"+d.toString(16).toUpperCase()+";"}).replace(j,C)};E.options={allowUnsafeSymbols:!1,encodeEverything:!1,strict:!1,useNamedReferences:!1};var F=function(a,b){b=A(b,F.options);var c=b.strict;return c&&o.test(a)&&D("malformed character reference"),a.replace(q,function(a,d,e,f,g,h,i,j){var k,l,m,n,o,p;return d?(m=d,l=e,c&&!l&&D("character reference was not terminated by a semicolon"),k=parseInt(m,10),B(k,c)):f?(n=f,l=g,c&&!l&&D("character reference was not terminated by a semicolon"),k=parseInt(n,16),B(k,c)):h?(o=h,y(r,o)?r[o]:(c&&D("named character reference was not terminated by a semicolon"),a)):(o=i,p=j,p&&b.isAttributeValue?(c&&"="==p&&D("`&` did not start a character reference"),a):(c&&D("named character reference was not terminated by a semicolon"),s[o]+(p||"")))})};F.options={isAttributeValue:!1,strict:!1};var G=function(a){return a.replace(m,function(a){return n[a]})},H={version:"1.0.0",encode:E,decode:F,escape:G,unescape:F};if("function"==typeof define&&"object"==typeof define.amd&&define.amd)define(function(){return H});else if(e&&!e.nodeType)if(f)f.exports=H;else for(var I in H)y(H,I)&&(e[I]=H[I]);else d.he=H}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],70:[function(a,b,c){var d=a("http"),e=b.exports;for(var f in d)d.hasOwnProperty(f)&&(e[f]=d[f]);e.request=function(a,b){return a||(a={}),a.scheme="https",a.protocol="https:",d.request.call(this,a,b)}},{http:123}],71:[function(a,b,c){c.read=function(a,b,c,d,e){var f,g,h=8*e-d-1,i=(1<<h)-1,j=i>>1,k=-7,l=c?e-1:0,m=c?-1:1,n=a[b+l];for(l+=m,f=n&(1<<-k)-1,n>>=-k,k+=h;k>0;f=256*f+a[b+l],l+=m,k-=8);for(g=f&(1<<-k)-1,f>>=-k,k+=d;k>0;g=256*g+a[b+l],l+=m,k-=8);if(0===f)f=1-j;else{if(f===i)return g?NaN:(n?-1:1)*(1/0);g+=Math.pow(2,d),f-=j}return(n?-1:1)*g*Math.pow(2,f-d)},c.write=function(a,b,c,d,e,f){var g,h,i,j=8*f-e-1,k=(1<<j)-1,l=k>>1,m=23===e?Math.pow(2,-24)-Math.pow(2,-77):0,n=d?0:f-1,o=d?1:-1,p=0>b||0===b&&0>1/b?1:0;for(b=Math.abs(b),isNaN(b)||b===1/0?(h=isNaN(b)?1:0,g=k):(g=Math.floor(Math.log(b)/Math.LN2),b*(i=Math.pow(2,-g))<1&&(g--,i*=2),b+=g+l>=1?m/i:m*Math.pow(2,1-l),b*i>=2&&(g++,i/=2),g+l>=k?(h=0,g=k):g+l>=1?(h=(b*i-1)*Math.pow(2,e),g+=l):(h=b*Math.pow(2,l-1)*Math.pow(2,e),g=0));e>=8;a[c+n]=255&h,n+=o,h/=256,e-=8);for(g=g<<e|h,j+=e;j>0;a[c+n]=255&g,n+=o,g/=256,j-=8);a[c+n-o]|=128*p}},{}],72:[function(a,b,c){"function"==typeof Object.create?b.exports=function(a,b){a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}})}:b.exports=function(a,b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}},{}],73:[function(a,b,c){b.exports=function(a){return!(null==a||!(a._isBuffer||a.constructor&&"function"==typeof a.constructor.isBuffer&&a.constructor.isBuffer(a)))}},{}],74:[function(a,b,c){var d={}.toString;b.exports=Array.isArray||function(a){return"[object Array]"==d.call(a)}},{}],75:[function(a,b,c){"use strict";function d(a){return a.source.slice(1,-1)}var e=a("xml-char-classes");b.exports=new RegExp("^["+d(e.letter)+"_]["+d(e.letter)+d(e.digit)+"\\.\\-_"+d(e.combiningChar)+d(e.extender)+"]*$")},{"xml-char-classes":146}],76:[function(a,b,c){c.endianness=function(){return"LE"},c.hostname=function(){return"undefined"!=typeof location?location.hostname:""},c.loadavg=function(){return[]},c.uptime=function(){return 0},c.freemem=function(){return Number.MAX_VALUE},c.totalmem=function(){return Number.MAX_VALUE},c.cpus=function(){return[]},c.type=function(){return"Browser"},c.release=function(){return"undefined"!=typeof navigator?navigator.appVersion:""},c.networkInterfaces=c.getNetworkInterfaces=function(){return{}},c.arch=function(){return"javascript"},c.platform=function(){return"browser"},c.tmpdir=c.tmpDir=function(){return"/tmp"},c.EOL="\n"},{}],77:[function(a,b,c){(function(a){function b(a,b){for(var c=0,d=a.length-1;d>=0;d--){var e=a[d];"."===e?a.splice(d,1):".."===e?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c--;c)a.unshift("..");return a}function d(a,b){if(a.filter)return a.filter(b);for(var c=[],d=0;d<a.length;d++)b(a[d],d,a)&&c.push(a[d]);return c}var e=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,f=function(a){return e.exec(a).slice(1)};c.resolve=function(){for(var c="",e=!1,f=arguments.length-1;f>=-1&&!e;f--){var g=f>=0?arguments[f]:a.cwd();if("string"!=typeof g)throw new TypeError("Arguments to path.resolve must be strings");g&&(c=g+"/"+c,e="/"===g.charAt(0))}return c=b(d(c.split("/"),function(a){return!!a}),!e).join("/"),(e?"/":"")+c||"."},c.normalize=function(a){var e=c.isAbsolute(a),f="/"===g(a,-1);return a=b(d(a.split("/"),function(a){return!!a}),!e).join("/"),a||e||(a="."),a&&f&&(a+="/"),(e?"/":"")+a},c.isAbsolute=function(a){return"/"===a.charAt(0)},c.join=function(){var a=Array.prototype.slice.call(arguments,0);return c.normalize(d(a,function(a,b){if("string"!=typeof a)throw new TypeError("Arguments to path.join must be strings");return a}).join("/"))},c.relative=function(a,b){function d(a){for(var b=0;b<a.length&&""===a[b];b++);for(var c=a.length-1;c>=0&&""===a[c];c--);return b>c?[]:a.slice(b,c-b+1)}a=c.resolve(a).substr(1),b=c.resolve(b).substr(1);for(var e=d(a.split("/")),f=d(b.split("/")),g=Math.min(e.length,f.length),h=g,i=0;g>i;i++)if(e[i]!==f[i]){h=i;break}for(var j=[],i=h;i<e.length;i++)j.push("..");return j=j.concat(f.slice(h)),j.join("/")},c.sep="/",c.delimiter=":",c.dirname=function(a){var b=f(a),c=b[0],d=b[1];return c||d?(d&&(d=d.substr(0,d.length-1)),c+d):"."},c.basename=function(a,b){var c=f(a)[2];return b&&c.substr(-1*b.length)===b&&(c=c.substr(0,c.length-b.length)),c},c.extname=function(a){return f(a)[3]};var g="b"==="ab".substr(-1)?function(a,b,c){return a.substr(b,c)}:function(a,b,c){return 0>b&&(b=a.length+b),a.substr(b,c)}}).call(this,a("_process"))},{_process:79}],78:[function(a,b,c){(function(a){"use strict";function c(b){for(var c=new Array(arguments.length-1),d=0;d<c.length;)c[d++]=arguments[d];a.nextTick(function(){b.apply(null,c)})}!a.version||0===a.version.indexOf("v0.")||0===a.version.indexOf("v1.")&&0!==a.version.indexOf("v1.8.")?b.exports=c:b.exports=a.nextTick}).call(this,a("_process"))},{_process:79}],79:[function(a,b,c){function d(){k=!1,h.length?j=h.concat(j):l=-1,j.length&&e()}function e(){if(!k){var a=setTimeout(d);k=!0;for(var b=j.length;b;){for(h=j,j=[];++l<b;)h&&h[l].run();l=-1,b=j.length}h=null,k=!1,clearTimeout(a)}}function f(a,b){this.fun=a,this.array=b}function g(){}var h,i=b.exports={},j=[],k=!1,l=-1;i.nextTick=function(a){var b=new Array(arguments.length-1);if(arguments.length>1)for(var c=1;c<arguments.length;c++)b[c-1]=arguments[c];j.push(new f(a,b)),1!==j.length||k||setTimeout(e,0)},f.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=g,i.addListener=g,i.once=g,i.off=g,i.removeListener=g,i.removeAllListeners=g,i.emit=g,i.binding=function(a){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(a){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},{}],80:[function(a,b,c){(function(a){!function(d){function e(a){throw new RangeError(H[a])}function f(a,b){for(var c=a.length,d=[];c--;)d[c]=b(a[c]);return d}function g(a,b){var c=a.split("@"),d="";c.length>1&&(d=c[0]+"@",a=c[1]),a=a.replace(G,".");var e=a.split("."),g=f(e,b).join(".");return d+g}function h(a){for(var b,c,d=[],e=0,f=a.length;f>e;)b=a.charCodeAt(e++),b>=55296&&56319>=b&&f>e?(c=a.charCodeAt(e++),56320==(64512&c)?d.push(((1023&b)<<10)+(1023&c)+65536):(d.push(b),e--)):d.push(b);return d}function i(a){return f(a,function(a){var b="";return a>65535&&(a-=65536,b+=K(a>>>10&1023|55296),a=56320|1023&a),b+=K(a)}).join("")}function j(a){return 10>a-48?a-22:26>a-65?a-65:26>a-97?a-97:w}function k(a,b){return a+22+75*(26>a)-((0!=b)<<5)}function l(a,b,c){var d=0;for(a=c?J(a/A):a>>1,a+=J(a/b);a>I*y>>1;d+=w)a=J(a/I);return J(d+(I+1)*a/(a+z))}function m(a){var b,c,d,f,g,h,k,m,n,o,p=[],q=a.length,r=0,s=C,t=B;for(c=a.lastIndexOf(D),0>c&&(c=0),d=0;c>d;++d)a.charCodeAt(d)>=128&&e("not-basic"),p.push(a.charCodeAt(d));for(f=c>0?c+1:0;q>f;){for(g=r,h=1,k=w;f>=q&&e("invalid-input"),m=j(a.charCodeAt(f++)),(m>=w||m>J((v-r)/h))&&e("overflow"),r+=m*h,n=t>=k?x:k>=t+y?y:k-t,!(n>m);k+=w)o=w-n,h>J(v/o)&&e("overflow"),h*=o;b=p.length+1,t=l(r-g,b,0==g),J(r/b)>v-s&&e("overflow"),s+=J(r/b),r%=b,p.splice(r++,0,s)}return i(p)}function n(a){var b,c,d,f,g,i,j,m,n,o,p,q,r,s,t,u=[];for(a=h(a),q=a.length,b=C,c=0,g=B,i=0;q>i;++i)p=a[i],128>p&&u.push(K(p));for(d=f=u.length,f&&u.push(D);q>d;){for(j=v,i=0;q>i;++i)p=a[i],p>=b&&j>p&&(j=p);for(r=d+1,j-b>J((v-c)/r)&&e("overflow"),c+=(j-b)*r,b=j,i=0;q>i;++i)if(p=a[i],b>p&&++c>v&&e("overflow"),p==b){for(m=c,n=w;o=g>=n?x:n>=g+y?y:n-g,!(o>m);n+=w)t=m-o,s=w-o,u.push(K(k(o+t%s,0))),m=J(t/s);u.push(K(k(m,0))),g=l(c,r,d==f),c=0,++d}++c,++b}return u.join("")}function o(a){return g(a,function(a){return E.test(a)?m(a.slice(4).toLowerCase()):a})}function p(a){return g(a,function(a){return F.test(a)?"xn--"+n(a):a})}var q="object"==typeof c&&c&&!c.nodeType&&c,r="object"==typeof b&&b&&!b.nodeType&&b,s="object"==typeof a&&a;s.global!==s&&s.window!==s&&s.self!==s||(d=s);var t,u,v=2147483647,w=36,x=1,y=26,z=38,A=700,B=72,C=128,D="-",E=/^xn--/,F=/[^\x20-\x7E]/,G=/[\x2E\u3002\uFF0E\uFF61]/g,H={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},I=w-x,J=Math.floor,K=String.fromCharCode;if(t={version:"1.4.1",ucs2:{decode:h,encode:i},decode:m,encode:n,toASCII:p,toUnicode:o},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return t});else if(q&&r)if(b.exports==q)r.exports=t;else for(u in t)t.hasOwnProperty(u)&&(q[u]=t[u]);else d.punycode=t}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],81:[function(a,b,c){"use strict";function d(a,b){return Object.prototype.hasOwnProperty.call(a,b)}b.exports=function(a,b,c,f){b=b||"&",c=c||"=";var g={};if("string"!=typeof a||0===a.length)return g;var h=/\+/g;a=a.split(b);var i=1e3;f&&"number"==typeof f.maxKeys&&(i=f.maxKeys);var j=a.length;i>0&&j>i&&(j=i);for(var k=0;j>k;++k){var l,m,n,o,p=a[k].replace(h,"%20"),q=p.indexOf(c);q>=0?(l=p.substr(0,q),m=p.substr(q+1)):(l=p,m=""),n=decodeURIComponent(l),o=decodeURIComponent(m),d(g,n)?e(g[n])?g[n].push(o):g[n]=[g[n],o]:g[n]=o}return g};var e=Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)}},{}],82:[function(a,b,c){"use strict";function d(a,b){if(a.map)return a.map(b);for(var c=[],d=0;d<a.length;d++)c.push(b(a[d],d));return c}var e=function(a){switch(typeof a){case"string":return a;case"boolean":return a?"true":"false";case"number":return isFinite(a)?a:"";default:return""}};b.exports=function(a,b,c,h){return b=b||"&",c=c||"=",null===a&&(a=void 0),"object"==typeof a?d(g(a),function(g){var h=encodeURIComponent(e(g))+c;return f(a[g])?d(a[g],function(a){return h+encodeURIComponent(e(a))}).join(b):h+encodeURIComponent(e(a[g]))}).join(b):h?encodeURIComponent(e(h))+c+encodeURIComponent(e(a)):""};var f=Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)},g=Object.keys||function(a){var b=[];for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&b.push(c);return b}},{}],83:[function(a,b,c){"use strict";c.decode=c.parse=a("./decode"),c.encode=c.stringify=a("./encode")},{"./decode":81,"./encode":82}],84:[function(a,b,c){b.exports=a("./lib/_stream_duplex.js")},{"./lib/_stream_duplex.js":85}],85:[function(a,b,c){"use strict";function d(a){return this instanceof d?(j.call(this,a),k.call(this,a),a&&a.readable===!1&&(this.readable=!1),a&&a.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,a&&a.allowHalfOpen===!1&&(this.allowHalfOpen=!1),void this.once("end",e)):new d(a)}function e(){this.allowHalfOpen||this._writableState.ended||h(f,this)}function f(a){a.end()}var g=Object.keys||function(a){var b=[];for(var c in a)b.push(c);return b};b.exports=d;var h=a("process-nextick-args"),i=a("core-util-is");i.inherits=a("inherits");var j=a("./_stream_readable"),k=a("./_stream_writable");i.inherits(d,j);for(var l=g(k.prototype),m=0;m<l.length;m++){var n=l[m];d.prototype[n]||(d.prototype[n]=k.prototype[n])}},{"./_stream_readable":87,"./_stream_writable":89,"core-util-is":67,inherits:72,"process-nextick-args":78}],86:[function(a,b,c){"use strict";function d(a){return this instanceof d?void e.call(this,a):new d(a)}b.exports=d;var e=a("./_stream_transform"),f=a("core-util-is");f.inherits=a("inherits"),f.inherits(d,e),d.prototype._transform=function(a,b,c){c(null,a)}},{"./_stream_transform":88,"core-util-is":67,inherits:72}],87:[function(a,b,c){(function(c){"use strict";function d(b,c){I=I||a("./_stream_duplex"),b=b||{},this.objectMode=!!b.objectMode,c instanceof I&&(this.objectMode=this.objectMode||!!b.readableObjectMode);var d=b.highWaterMark,e=this.objectMode?16:16384;this.highWaterMark=d||0===d?d:e,this.highWaterMark=~~this.highWaterMark,this.buffer=[],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=b.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,b.encoding&&(H||(H=a("string_decoder/").StringDecoder),this.decoder=new H(b.encoding),this.encoding=b.encoding)}function e(b){return I=I||a("./_stream_duplex"),this instanceof e?(this._readableState=new d(b,this),this.readable=!0,b&&"function"==typeof b.read&&(this._read=b.read),void C.call(this)):new e(b)}function f(a,b,c,d,e){var f=j(b,c);if(f)a.emit("error",f);else if(null===c)b.reading=!1,k(a,b);else if(b.objectMode||c&&c.length>0)if(b.ended&&!e){var h=new Error("stream.push() after EOF");a.emit("error",h)}else if(b.endEmitted&&e){var h=new Error("stream.unshift() after end event");a.emit("error",h)}else{var i;!b.decoder||e||d||(c=b.decoder.write(c),i=!b.objectMode&&0===c.length),e||(b.reading=!1),i||(b.flowing&&0===b.length&&!b.sync?(a.emit("data",c),a.read(0)):(b.length+=b.objectMode?1:c.length,e?b.buffer.unshift(c):b.buffer.push(c),b.needReadable&&l(a))),n(a,b)}else e||(b.reading=!1);return g(b)}function g(a){return!a.ended&&(a.needReadable||a.length<a.highWaterMark||0===a.length)}function h(a){return a>=J?a=J:(a--,a|=a>>>1,a|=a>>>2,a|=a>>>4,a|=a>>>8,a|=a>>>16,a++),a}function i(a,b){return 0===b.length&&b.ended?0:b.objectMode?0===a?0:1:null===a||isNaN(a)?b.flowing&&b.buffer.length?b.buffer[0].length:b.length:0>=a?0:(a>b.highWaterMark&&(b.highWaterMark=h(a)),a>b.length?b.ended?b.length:(b.needReadable=!0,0):a)}function j(a,b){var c=null;return B.isBuffer(b)||"string"==typeof b||null===b||void 0===b||a.objectMode||(c=new TypeError("Invalid non-string/buffer chunk")),c}function k(a,b){if(!b.ended){if(b.decoder){var c=b.decoder.end();c&&c.length&&(b.buffer.push(c),b.length+=b.objectMode?1:c.length)}b.ended=!0,l(a)}}function l(a){var b=a._readableState;b.needReadable=!1,b.emittedReadable||(G("emitReadable",b.flowing),b.emittedReadable=!0,b.sync?z(m,a):m(a))}function m(a){G("emit readable"),a.emit("readable"),t(a)}function n(a,b){b.readingMore||(b.readingMore=!0,z(o,a,b))}function o(a,b){for(var c=b.length;!b.reading&&!b.flowing&&!b.ended&&b.length<b.highWaterMark&&(G("maybeReadMore read 0"),a.read(0),c!==b.length);)c=b.length;b.readingMore=!1}function p(a){return function(){var b=a._readableState;G("pipeOnDrain",b.awaitDrain),b.awaitDrain&&b.awaitDrain--,0===b.awaitDrain&&D(a,"data")&&(b.flowing=!0,t(a))}}function q(a){G("readable nexttick read 0"),a.read(0)}function r(a,b){b.resumeScheduled||(b.resumeScheduled=!0,z(s,a,b))}function s(a,b){b.reading||(G("resume read 0"),a.read(0)),b.resumeScheduled=!1,a.emit("resume"),t(a),b.flowing&&!b.reading&&a.read(0)}function t(a){var b=a._readableState;if(G("flow",b.flowing),b.flowing)do var c=a.read();while(null!==c&&b.flowing)}function u(a,b){var c,d=b.buffer,e=b.length,f=!!b.decoder,g=!!b.objectMode;if(0===d.length)return null;
-if(0===e)c=null;else if(g)c=d.shift();else if(!a||a>=e)c=f?d.join(""):1===d.length?d[0]:B.concat(d,e),d.length=0;else if(a<d[0].length){var h=d[0];c=h.slice(0,a),d[0]=h.slice(a)}else if(a===d[0].length)c=d.shift();else{c=f?"":new B(a);for(var i=0,j=0,k=d.length;k>j&&a>i;j++){var h=d[0],l=Math.min(a-i,h.length);f?c+=h.slice(0,l):h.copy(c,i,0,l),l<h.length?d[0]=h.slice(l):d.shift(),i+=l}}return c}function v(a){var b=a._readableState;if(b.length>0)throw new Error("endReadable called on non-empty stream");b.endEmitted||(b.ended=!0,z(w,b,a))}function w(a,b){a.endEmitted||0!==a.length||(a.endEmitted=!0,b.readable=!1,b.emit("end"))}function x(a,b){for(var c=0,d=a.length;d>c;c++)b(a[c],c)}function y(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1}b.exports=e;var z=a("process-nextick-args"),A=a("isarray"),B=a("buffer").Buffer;e.ReadableState=d;var C,D=(a("events"),function(a,b){return a.listeners(b).length});!function(){try{C=a("stream")}catch(b){}finally{C||(C=a("events").EventEmitter)}}();var B=a("buffer").Buffer,E=a("core-util-is");E.inherits=a("inherits");var F=a("util"),G=void 0;G=F&&F.debuglog?F.debuglog("stream"):function(){};var H;E.inherits(e,C);var I,I;e.prototype.push=function(a,b){var c=this._readableState;return c.objectMode||"string"!=typeof a||(b=b||c.defaultEncoding,b!==c.encoding&&(a=new B(a,b),b="")),f(this,c,a,b,!1)},e.prototype.unshift=function(a){var b=this._readableState;return f(this,b,a,"",!0)},e.prototype.isPaused=function(){return this._readableState.flowing===!1},e.prototype.setEncoding=function(b){return H||(H=a("string_decoder/").StringDecoder),this._readableState.decoder=new H(b),this._readableState.encoding=b,this};var J=8388608;e.prototype.read=function(a){G("read",a);var b=this._readableState,c=a;if(("number"!=typeof a||a>0)&&(b.emittedReadable=!1),0===a&&b.needReadable&&(b.length>=b.highWaterMark||b.ended))return G("read: emitReadable",b.length,b.ended),0===b.length&&b.ended?v(this):l(this),null;if(a=i(a,b),0===a&&b.ended)return 0===b.length&&v(this),null;var d=b.needReadable;G("need readable",d),(0===b.length||b.length-a<b.highWaterMark)&&(d=!0,G("length less than watermark",d)),(b.ended||b.reading)&&(d=!1,G("reading or ended",d)),d&&(G("do read"),b.reading=!0,b.sync=!0,0===b.length&&(b.needReadable=!0),this._read(b.highWaterMark),b.sync=!1),d&&!b.reading&&(a=i(c,b));var e;return e=a>0?u(a,b):null,null===e&&(b.needReadable=!0,a=0),b.length-=a,0!==b.length||b.ended||(b.needReadable=!0),c!==a&&b.ended&&0===b.length&&v(this),null!==e&&this.emit("data",e),e},e.prototype._read=function(a){this.emit("error",new Error("not implemented"))},e.prototype.pipe=function(a,b){function d(a){G("onunpipe"),a===l&&f()}function e(){G("onend"),a.end()}function f(){G("cleanup"),a.removeListener("close",i),a.removeListener("finish",j),a.removeListener("drain",q),a.removeListener("error",h),a.removeListener("unpipe",d),l.removeListener("end",e),l.removeListener("end",f),l.removeListener("data",g),r=!0,!m.awaitDrain||a._writableState&&!a._writableState.needDrain||q()}function g(b){G("ondata");var c=a.write(b);!1===c&&(1!==m.pipesCount||m.pipes[0]!==a||1!==l.listenerCount("data")||r||(G("false write response, pause",l._readableState.awaitDrain),l._readableState.awaitDrain++),l.pause())}function h(b){G("onerror",b),k(),a.removeListener("error",h),0===D(a,"error")&&a.emit("error",b)}function i(){a.removeListener("finish",j),k()}function j(){G("onfinish"),a.removeListener("close",i),k()}function k(){G("unpipe"),l.unpipe(a)}var l=this,m=this._readableState;switch(m.pipesCount){case 0:m.pipes=a;break;case 1:m.pipes=[m.pipes,a];break;default:m.pipes.push(a)}m.pipesCount+=1,G("pipe count=%d opts=%j",m.pipesCount,b);var n=(!b||b.end!==!1)&&a!==c.stdout&&a!==c.stderr,o=n?e:f;m.endEmitted?z(o):l.once("end",o),a.on("unpipe",d);var q=p(l);a.on("drain",q);var r=!1;return l.on("data",g),a._events&&a._events.error?A(a._events.error)?a._events.error.unshift(h):a._events.error=[h,a._events.error]:a.on("error",h),a.once("close",i),a.once("finish",j),a.emit("pipe",l),m.flowing||(G("pipe resume"),l.resume()),a},e.prototype.unpipe=function(a){var b=this._readableState;if(0===b.pipesCount)return this;if(1===b.pipesCount)return a&&a!==b.pipes?this:(a||(a=b.pipes),b.pipes=null,b.pipesCount=0,b.flowing=!1,a&&a.emit("unpipe",this),this);if(!a){var c=b.pipes,d=b.pipesCount;b.pipes=null,b.pipesCount=0,b.flowing=!1;for(var e=0;d>e;e++)c[e].emit("unpipe",this);return this}var f=y(b.pipes,a);return-1===f?this:(b.pipes.splice(f,1),b.pipesCount-=1,1===b.pipesCount&&(b.pipes=b.pipes[0]),a.emit("unpipe",this),this)},e.prototype.on=function(a,b){var c=C.prototype.on.call(this,a,b);if("data"===a&&!1!==this._readableState.flowing&&this.resume(),"readable"===a&&!this._readableState.endEmitted){var d=this._readableState;d.readableListening||(d.readableListening=!0,d.emittedReadable=!1,d.needReadable=!0,d.reading?d.length&&l(this,d):z(q,this))}return c},e.prototype.addListener=e.prototype.on,e.prototype.resume=function(){var a=this._readableState;return a.flowing||(G("resume"),a.flowing=!0,r(this,a)),this},e.prototype.pause=function(){return G("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(G("pause"),this._readableState.flowing=!1,this.emit("pause")),this},e.prototype.wrap=function(a){var b=this._readableState,c=!1,d=this;a.on("end",function(){if(G("wrapped end"),b.decoder&&!b.ended){var a=b.decoder.end();a&&a.length&&d.push(a)}d.push(null)}),a.on("data",function(e){if(G("wrapped data"),b.decoder&&(e=b.decoder.write(e)),(!b.objectMode||null!==e&&void 0!==e)&&(b.objectMode||e&&e.length)){var f=d.push(e);f||(c=!0,a.pause())}});for(var e in a)void 0===this[e]&&"function"==typeof a[e]&&(this[e]=function(b){return function(){return a[b].apply(a,arguments)}}(e));var f=["error","close","destroy","pause","resume"];return x(f,function(b){a.on(b,d.emit.bind(d,b))}),d._read=function(b){G("wrapped _read",b),c&&(c=!1,a.resume())},d},e._fromList=u}).call(this,a("_process"))},{"./_stream_duplex":85,_process:79,buffer:5,"core-util-is":67,events:68,inherits:72,isarray:74,"process-nextick-args":78,"string_decoder/":127,util:3}],88:[function(a,b,c){"use strict";function d(a){this.afterTransform=function(b,c){return e(a,b,c)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null,this.writeencoding=null}function e(a,b,c){var d=a._transformState;d.transforming=!1;var e=d.writecb;if(!e)return a.emit("error",new Error("no writecb in Transform class"));d.writechunk=null,d.writecb=null,null!==c&&void 0!==c&&a.push(c),e(b);var f=a._readableState;f.reading=!1,(f.needReadable||f.length<f.highWaterMark)&&a._read(f.highWaterMark)}function f(a){if(!(this instanceof f))return new f(a);h.call(this,a),this._transformState=new d(this);var b=this;this._readableState.needReadable=!0,this._readableState.sync=!1,a&&("function"==typeof a.transform&&(this._transform=a.transform),"function"==typeof a.flush&&(this._flush=a.flush)),this.once("prefinish",function(){"function"==typeof this._flush?this._flush(function(a){g(b,a)}):g(b)})}function g(a,b){if(b)return a.emit("error",b);var c=a._writableState,d=a._transformState;if(c.length)throw new Error("calling transform done when ws.length != 0");if(d.transforming)throw new Error("calling transform done when still transforming");return a.push(null)}b.exports=f;var h=a("./_stream_duplex"),i=a("core-util-is");i.inherits=a("inherits"),i.inherits(f,h),f.prototype.push=function(a,b){return this._transformState.needTransform=!1,h.prototype.push.call(this,a,b)},f.prototype._transform=function(a,b,c){throw new Error("not implemented")},f.prototype._write=function(a,b,c){var d=this._transformState;if(d.writecb=c,d.writechunk=a,d.writeencoding=b,!d.transforming){var e=this._readableState;(d.needTransform||e.needReadable||e.length<e.highWaterMark)&&this._read(e.highWaterMark)}},f.prototype._read=function(a){var b=this._transformState;null!==b.writechunk&&b.writecb&&!b.transforming?(b.transforming=!0,this._transform(b.writechunk,b.writeencoding,b.afterTransform)):b.needTransform=!0}},{"./_stream_duplex":85,"core-util-is":67,inherits:72}],89:[function(a,b,c){(function(c){"use strict";function d(){}function e(a,b,c){this.chunk=a,this.encoding=b,this.callback=c,this.next=null}function f(b,c){D=D||a("./_stream_duplex"),b=b||{},this.objectMode=!!b.objectMode,c instanceof D&&(this.objectMode=this.objectMode||!!b.writableObjectMode);var d=b.highWaterMark,e=this.objectMode?16:16384;this.highWaterMark=d||0===d?d:e,this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1;var f=b.decodeStrings===!1;this.decodeStrings=!f,this.defaultEncoding=b.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(a){o(c,a)},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 w(this),this.corkedRequestsFree.next=new w(this)}function g(b){return D=D||a("./_stream_duplex"),this instanceof g||this instanceof D?(this._writableState=new f(b,this),this.writable=!0,b&&("function"==typeof b.write&&(this._write=b.write),"function"==typeof b.writev&&(this._writev=b.writev)),void B.call(this)):new g(b)}function h(a,b){var c=new Error("write after end");a.emit("error",c),x(b,c)}function i(a,b,c,d){var e=!0;if(!z.isBuffer(c)&&"string"!=typeof c&&null!==c&&void 0!==c&&!b.objectMode){var f=new TypeError("Invalid non-string/buffer chunk");a.emit("error",f),x(d,f),e=!1}return e}function j(a,b,c){return a.objectMode||a.decodeStrings===!1||"string"!=typeof b||(b=new z(b,c)),b}function k(a,b,c,d,f){c=j(b,c,d),z.isBuffer(c)&&(d="buffer");var g=b.objectMode?1:c.length;b.length+=g;var h=b.length<b.highWaterMark;if(h||(b.needDrain=!0),b.writing||b.corked){var i=b.lastBufferedRequest;b.lastBufferedRequest=new e(c,d,f),i?i.next=b.lastBufferedRequest:b.bufferedRequest=b.lastBufferedRequest,b.bufferedRequestCount+=1}else l(a,b,!1,g,c,d,f);return h}function l(a,b,c,d,e,f,g){b.writelen=d,b.writecb=g,b.writing=!0,b.sync=!0,c?a._writev(e,b.onwrite):a._write(e,f,b.onwrite),b.sync=!1}function m(a,b,c,d,e){--b.pendingcb,c?x(e,d):e(d),a._writableState.errorEmitted=!0,a.emit("error",d)}function n(a){a.writing=!1,a.writecb=null,a.length-=a.writelen,a.writelen=0}function o(a,b){var c=a._writableState,d=c.sync,e=c.writecb;if(n(c),b)m(a,c,d,b,e);else{var f=s(c);f||c.corked||c.bufferProcessing||!c.bufferedRequest||r(a,c),d?y(p,a,c,f,e):p(a,c,f,e)}}function p(a,b,c,d){c||q(a,b),b.pendingcb--,d(),u(a,b)}function q(a,b){0===b.length&&b.needDrain&&(b.needDrain=!1,a.emit("drain"))}function r(a,b){b.bufferProcessing=!0;var c=b.bufferedRequest;if(a._writev&&c&&c.next){var d=b.bufferedRequestCount,e=new Array(d),f=b.corkedRequestsFree;f.entry=c;for(var g=0;c;)e[g]=c,c=c.next,g+=1;l(a,b,!0,b.length,e,"",f.finish),b.pendingcb++,b.lastBufferedRequest=null,b.corkedRequestsFree=f.next,f.next=null}else{for(;c;){var h=c.chunk,i=c.encoding,j=c.callback,k=b.objectMode?1:h.length;if(l(a,b,!1,k,h,i,j),c=c.next,b.writing)break}null===c&&(b.lastBufferedRequest=null)}b.bufferedRequestCount=0,b.bufferedRequest=c,b.bufferProcessing=!1}function s(a){return a.ending&&0===a.length&&null===a.bufferedRequest&&!a.finished&&!a.writing}function t(a,b){b.prefinished||(b.prefinished=!0,a.emit("prefinish"))}function u(a,b){var c=s(b);return c&&(0===b.pendingcb?(t(a,b),b.finished=!0,a.emit("finish")):t(a,b)),c}function v(a,b,c){b.ending=!0,u(a,b),c&&(b.finished?x(c):a.once("finish",c)),b.ended=!0,a.writable=!1}function w(a){var b=this;this.next=null,this.entry=null,this.finish=function(c){var d=b.entry;for(b.entry=null;d;){var e=d.callback;a.pendingcb--,e(c),d=d.next}a.corkedRequestsFree?a.corkedRequestsFree.next=b:a.corkedRequestsFree=b}}b.exports=g;var x=a("process-nextick-args"),y=!c.browser&&["v0.10","v0.9."].indexOf(c.version.slice(0,5))>-1?setImmediate:x,z=a("buffer").Buffer;g.WritableState=f;var A=a("core-util-is");A.inherits=a("inherits");var B,C={deprecate:a("util-deprecate")};!function(){try{B=a("stream")}catch(b){}finally{B||(B=a("events").EventEmitter)}}();var z=a("buffer").Buffer;A.inherits(g,B);var D;f.prototype.getBuffer=function(){for(var a=this.bufferedRequest,b=[];a;)b.push(a),a=a.next;return b},function(){try{Object.defineProperty(f.prototype,"buffer",{get:C.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.")})}catch(a){}}();var D;g.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe. Not readable."))},g.prototype.write=function(a,b,c){var e=this._writableState,f=!1;return"function"==typeof b&&(c=b,b=null),z.isBuffer(a)?b="buffer":b||(b=e.defaultEncoding),"function"!=typeof c&&(c=d),e.ended?h(this,c):i(this,e,a,c)&&(e.pendingcb++,f=k(this,e,a,b,c)),f},g.prototype.cork=function(){var a=this._writableState;a.corked++},g.prototype.uncork=function(){var a=this._writableState;a.corked&&(a.corked--,a.writing||a.corked||a.finished||a.bufferProcessing||!a.bufferedRequest||r(this,a))},g.prototype.setDefaultEncoding=function(a){if("string"==typeof a&&(a=a.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((a+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+a);this._writableState.defaultEncoding=a},g.prototype._write=function(a,b,c){c(new Error("not implemented"))},g.prototype._writev=null,g.prototype.end=function(a,b,c){var d=this._writableState;"function"==typeof a?(c=a,a=null,b=null):"function"==typeof b&&(c=b,b=null),null!==a&&void 0!==a&&this.write(a,b),d.corked&&(d.corked=1,this.uncork()),d.ending||d.finished||v(this,d,c)}}).call(this,a("_process"))},{"./_stream_duplex":85,_process:79,buffer:5,"core-util-is":67,events:68,inherits:72,"process-nextick-args":78,"util-deprecate":143}],90:[function(a,b,c){b.exports=a("./lib/_stream_passthrough.js")},{"./lib/_stream_passthrough.js":86}],91:[function(a,b,c){var d=function(){try{return a("stream")}catch(b){}}();c=b.exports=a("./lib/_stream_readable.js"),c.Stream=d||c,c.Readable=c,c.Writable=a("./lib/_stream_writable.js"),c.Duplex=a("./lib/_stream_duplex.js"),c.Transform=a("./lib/_stream_transform.js"),c.PassThrough=a("./lib/_stream_passthrough.js")},{"./lib/_stream_duplex.js":85,"./lib/_stream_passthrough.js":86,"./lib/_stream_readable.js":87,"./lib/_stream_transform.js":88,"./lib/_stream_writable.js":89}],92:[function(a,b,c){b.exports=a("./lib/_stream_transform.js")},{"./lib/_stream_transform.js":88}],93:[function(a,b,c){b.exports=a("./lib/_stream_writable.js")},{"./lib/_stream_writable.js":89}],94:[function(a,b,c){"use strict";b.exports={ABSOLUTE:"absolute",PATH_RELATIVE:"pathRelative",ROOT_RELATIVE:"rootRelative",SHORTEST:"shortest"}},{}],95:[function(a,b,c){"use strict";function d(a,b){return!a.auth||b.removeAuth||!a.extra.relation.maximumHost&&b.output!==p.ABSOLUTE?"":a.auth+"@"}function e(a,b){return a.hash?a.hash:""}function f(a,b){return a.host.full&&(a.extra.relation.maximumAuth||b.output===p.ABSOLUTE)?a.host.full:""}function g(a,b){var c="",d=a.path.absolute.string,e=a.path.relative.string,f=o(a,b);if(a.extra.relation.maximumHost||b.output===p.ABSOLUTE||b.output===p.ROOT_RELATIVE)c=d;else if(e.length<=d.length&&b.output===p.SHORTEST||b.output===p.PATH_RELATIVE){if(c=e,""===c){var g=n(a,b)&&!!m(a,b);a.extra.relation.maximumPath&&!f?c="./":!a.extra.relation.overridesQuery||f||g||(c="./")}}else c=d;return"/"!==c||f||!b.removeRootTrailingSlash||a.extra.relation.minimumPort&&b.output!==p.ABSOLUTE||(c=""),c}function h(a,b){return a.port&&!a.extra.portIsDefault&&a.extra.relation.maximumHost?":"+a.port:""}function i(a,b){return n(a,b)?m(a,b):""}function j(a,b){return o(a,b)?a.resource:""}function k(a,b){var c="";return(a.extra.relation.maximumHost||b.output===p.ABSOLUTE)&&(c+=a.extra.relation.minimumScheme&&b.schemeRelative&&b.output!==p.ABSOLUTE?"//":a.scheme+"://"),c}function l(a,b){var c="";return c+=k(a,b),c+=d(a,b),c+=f(a,b),c+=h(a,b),c+=g(a,b),c+=j(a,b),c+=i(a,b),c+=e(a,b)}function m(a,b){var c=b.removeEmptyQueries&&a.extra.relation.minimumPort;return a.query.string[c?"stripped":"full"]}function n(a,b){return!a.extra.relation.minimumQuery||b.output===p.ABSOLUTE||b.output===p.ROOT_RELATIVE}function o(a,b){var c=b.removeDirectoryIndexes&&a.extra.resourceIsIndex,d=a.extra.relation.minimumResource&&b.output!==p.ABSOLUTE&&b.output!==p.ROOT_RELATIVE;return!!a.resource&&!d&&!c}var p=a("./constants");b.exports=l},{"./constants":94}],96:[function(a,b,c){"use strict";function d(a,b){this.options=g(b,{defaultPorts:{ftp:21,http:80,https:443},directoryIndexes:["index.html"],ignore_www:!1,output:d.SHORTEST,rejectedSchemes:["data","javascript","mailto"],removeAuth:!1,removeDirectoryIndexes:!0,removeEmptyQueries:!1,removeRootTrailingSlash:!0,schemeRelative:!0,site:void 0,slashesDenoteHost:!0}),this.from=i.from(a,this.options,null)}var e=a("./constants"),f=a("./format"),g=a("./options"),h=a("./util/object"),i=a("./parse"),j=a("./relate");d.prototype.relate=function(a,b,c){if(h.isPlainObject(b)?(c=b,b=a,a=null):b||(b=a,a=null),c=g(c,this.options),a=a||c.site,a=i.from(a,c,this.from),!a||!a.href)throw new Error("from value not defined.");if(a.extra.hrefInfo.minimumPathOnly)throw new Error("from value supplied is not absolute: "+a.href);return b=i.to(b,c),b.valid===!1?b.href:(b=j(a,b,c),b=f(b,c))},d.relate=function(a,b,c){return(new d).relate(a,b,c)},h.shallowMerge(d,e),b.exports=d},{"./constants":94,"./format":95,"./options":97,"./parse":100,"./relate":107,"./util/object":109}],97:[function(a,b,c){"use strict";function d(a,b){if(f.isPlainObject(a)){var c={};for(var d in b)b.hasOwnProperty(d)&&(void 0!==a[d]?c[d]=e(a[d],b[d]):c[d]=b[d]);return c}return b}function e(a,b){return b instanceof Object&&a instanceof Object?b instanceof Array&&a instanceof Array?b.concat(a):f.shallowMerge(a,b):a}var f=a("./util/object");b.exports=d},{"./util/object":109}],98:[function(a,b,c){"use strict";function d(a,b){if(b.ignore_www){var c=a.host.full;if(c){var d=c;0===c.indexOf("www.")&&(d=c.substr(4)),a.host.stripped=d}}}b.exports=d},{}],99:[function(a,b,c){"use strict";function d(a){var b=!(a.scheme||a.auth||a.host.full||a.port),c=b&&!a.path.absolute.string,d=c&&!a.resource,e=d&&!a.query.string.full.length,f=e&&!a.hash;a.extra.hrefInfo.minimumPathOnly=b,a.extra.hrefInfo.minimumResourceOnly=c,a.extra.hrefInfo.minimumQueryOnly=d,a.extra.hrefInfo.minimumHashOnly=e,a.extra.hrefInfo.empty=f}b.exports=d},{}],100:[function(a,b,c){"use strict";function d(a,b,c){if(a){var d=e(a,b),f=l.resolveDotSegments(d.path.absolute.array);return d.path.absolute.array=f,d.path.absolute.string="/"+l.join(f),d}return c}function e(a,b){var c=k(a,b);return c.valid===!1?c:(g(c,b),i(c,b),h(c,b),j(c,b),f(c),c)}var f=a("./hrefInfo"),g=a("./host"),h=a("./path"),i=a("./port"),j=a("./query"),k=a("./urlstring"),l=a("../util/path");b.exports={from:d,to:e}},{"../util/path":110,"./host":98,"./hrefInfo":99,"./path":101,"./port":102,"./query":103,"./urlstring":104}],101:[function(a,b,c){"use strict";function d(a,b){var c=!1;return b.directoryIndexes.every(function(b){return b===a?(c=!0,!1):!0}),c}function e(a,b){var c=a.path.absolute.string;if(c){var e=c.lastIndexOf("/");if(e>-1){if(++e<c.length){var g=c.substr(e);"."!==g&&".."!==g?(a.resource=g,c=c.substr(0,e)):c+="/"}a.path.absolute.string=c,a.path.absolute.array=f(c)}else"."===c||".."===c?(c+="/",a.path.absolute.string=c,a.path.absolute.array=f(c)):(a.resource=c,a.path.absolute.string=null);a.extra.resourceIsIndex=d(a.resource,b)}}function f(a){if("/"!==a){var b=[];return a.split("/").forEach(function(a){""!==a&&b.push(a)}),b}return[]}b.exports=e},{}],102:[function(a,b,c){"use strict";function d(a,b){var c=-1;for(var d in b.defaultPorts)if(d===a.scheme&&b.defaultPorts.hasOwnProperty(d)){c=b.defaultPorts[d];break}c>-1&&(c=c.toString(),null===a.port&&(a.port=c),a.extra.portIsDefault=a.port===c)}b.exports=d},{}],103:[function(a,b,c){"use strict";function d(a,b){a.query.string.full=e(a.query.object,!1),b.removeEmptyQueries&&(a.query.string.stripped=e(a.query.object,!0))}function e(a,b){var c=0,d="";for(var e in a)if(""!==e&&a.hasOwnProperty(e)){var f=a[e];""===f&&b||(d+=1===++c?"?":"&",e=encodeURIComponent(e),d+=""!==f?e+"="+encodeURIComponent(f).replace(/%20/g,"+"):e)}return d}b.exports=d},{}],104:[function(a,b,c){"use strict";function d(a){var b=a.protocol;return b&&b.indexOf(":")===b.length-1&&(b=b.substr(0,b.length-1)),a.host={full:a.hostname,stripped:null},a.path={absolute:{array:null,string:a.pathname},relative:{array:null,string:null}},a.query={object:a.query,string:{full:null,stripped:null}},a.extra={hrefInfo:{minimumPathOnly:null,minimumResourceOnly:null,minimumQueryOnly:null,minimumHashOnly:null,empty:null,separatorOnlyQuery:"?"===a.search},portIsDefault:null,relation:{maximumScheme:null,maximumAuth:null,maximumHost:null,maximumPort:null,maximumPath:null,maximumResource:null,maximumQuery:null,maximumHash:null,minimumScheme:null,minimumAuth:null,minimumHost:null,minimumPort:null,minimumPath:null,minimumResource:null,minimumQuery:null,minimumHash:null,overridesQuery:null},resourceIsIndex:null,slashes:a.slashes},a.resource=null,a.scheme=b,delete a.hostname,delete a.pathname,delete a.protocol,delete a.search,delete a.slashes,a}function e(a,b){var c=!0;return b.rejectedSchemes.every(function(b){return c=!(0===a.indexOf(b+":"))}),c}function f(a,b){return e(a,b)?d(g(a,!0,b.slashesDenoteHost)):{href:a,valid:!1}}var g=a("url").parse;b.exports=f},{url:141}],105:[function(a,b,c){"use strict";function d(a,b,c){h.upToPath(a,b,c),a.extra.relation.minimumScheme&&(a.scheme=b.scheme),a.extra.relation.minimumAuth&&(a.auth=b.auth),a.extra.relation.minimumHost&&(a.host=i.clone(b.host)),a.extra.relation.minimumPort&&f(a,b),a.extra.relation.minimumScheme&&e(a,b),h.pathOn(a,b,c),a.extra.relation.minimumResource&&g(a,b),a.extra.relation.minimumQuery&&(a.query=i.clone(b.query)),a.extra.relation.minimumHash&&(a.hash=b.hash)}function e(a,b){if(a.extra.relation.maximumHost||!a.extra.hrefInfo.minimumResourceOnly){var c=a.path.absolute.array,d="/";c?(a.extra.hrefInfo.minimumPathOnly&&0!==a.path.absolute.string.indexOf("/")&&(c=b.path.absolute.array.concat(c)),c=j.resolveDotSegments(c),d+=j.join(c)):c=[],a.path.absolute.array=c,a.path.absolute.string=d}else a.path=i.clone(b.path)}function f(a,b){a.port=b.port,a.extra.portIsDefault=b.extra.portIsDefault}function g(a,b){a.resource=b.resource,a.extra.resourceIsIndex=b.extra.resourceIsIndex}var h=a("./findRelation"),i=a("../util/object"),j=a("../util/path");b.exports=d},{"../util/object":109,"../util/path":110,"./findRelation":106}],106:[function(a,b,c){"use strict";function d(a,b,c){var d=a.extra.hrefInfo.minimumPathOnly,e=a.scheme===b.scheme||!a.scheme,f=e&&(a.auth===b.auth||c.removeAuth||d),g=c.ignore_www?"stripped":"full",h=f&&(a.host[g]===b.host[g]||d),i=h&&(a.port===b.port||d);a.extra.relation.minimumScheme=e,a.extra.relation.minimumAuth=f,a.extra.relation.minimumHost=h,a.extra.relation.minimumPort=i,a.extra.relation.maximumScheme=!e||e&&!f,a.extra.relation.maximumAuth=!e||e&&!h,a.extra.relation.maximumHost=!e||e&&!i}function e(a,b,c){var d=a.extra.hrefInfo.minimumQueryOnly,e=a.extra.hrefInfo.minimumHashOnly,f=a.extra.hrefInfo.empty,g=a.extra.relation.minimumPort,h=a.extra.relation.minimumScheme,i=g&&a.path.absolute.string===b.path.absolute.string,j=a.resource===b.resource||!a.resource&&b.extra.resourceIsIndex||c.removeDirectoryIndexes&&a.extra.resourceIsIndex&&!b.resource,k=i&&(j||d||e||f),l=c.removeEmptyQueries?"stripped":"full",m=a.query.string[l],n=b.query.string[l],o=k&&!!m&&m===n||(e||f)&&!a.extra.hrefInfo.separatorOnlyQuery,p=o&&a.hash===b.hash;a.extra.relation.minimumPath=i,a.extra.relation.minimumResource=k,a.extra.relation.minimumQuery=o,a.extra.relation.minimumHash=p,a.extra.relation.maximumPort=!h||h&&!i,a.extra.relation.maximumPath=!h||h&&!k,a.extra.relation.maximumResource=!h||h&&!o,a.extra.relation.maximumQuery=!h||h&&!p,a.extra.relation.maximumHash=!h||h&&!p,a.extra.relation.overridesQuery=i&&a.extra.relation.maximumResource&&!o&&!!n}b.exports={pathOn:e,upToPath:d}},{}],107:[function(a,b,c){"use strict";function d(a,b,c){return e(b,a,c),f(b,a,c),b}var e=a("./absolutize"),f=a("./relativize");b.exports=d},{"./absolutize":105,"./relativize":108}],108:[function(a,b,c){"use strict";function d(a,b){var c=[],d=!0,e=-1;return b.forEach(function(b,f){d&&(a[f]!==b?d=!1:e=f),d||c.push("..")}),a.forEach(function(a,b){b>e&&c.push(a)}),c}function e(a,b,c){if(a.extra.relation.minimumScheme){var e=d(a.path.absolute.array,b.path.absolute.array);a.path.relative.array=e,a.path.relative.string=f.join(e)}}var f=a("../util/path");b.exports=e},{"../util/path":110}],109:[function(a,b,c){"use strict";function d(a){if(a instanceof Object){var b=a instanceof Array?[]:{};for(var c in a)a.hasOwnProperty(c)&&(b[c]=d(a[c]));return b}return a}function e(a){return!!a&&"object"==typeof a&&a.constructor===Object}function f(a,b){if(a instanceof Object&&b instanceof Object)for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}b.exports={clone:d,isPlainObject:e,shallowMerge:f}},{}],110:[function(a,b,c){"use strict";function d(a){return a.length?a.join("/")+"/":""}function e(a){var b=[];return a.forEach(function(a){".."!==a?"."!==a&&b.push(a):b.length&&b.splice(b.length-1,1)}),b}b.exports={join:d,resolveDotSegments:e}},{}],111:[function(a,b,c){c.SourceMapGenerator=a("./source-map/source-map-generator").SourceMapGenerator,c.SourceMapConsumer=a("./source-map/source-map-consumer").SourceMapConsumer,c.SourceNode=a("./source-map/source-node").SourceNode},{"./source-map/source-map-consumer":118,"./source-map/source-map-generator":119,"./source-map/source-node":120}],112:[function(a,b,c){if("function"!=typeof d)var d=a("amdefine")(b,a);d(function(a,b,c){function d(){this._array=[],this._set={}}var e=a("./util");d.fromArray=function(a,b){for(var c=new d,e=0,f=a.length;f>e;e++)c.add(a[e],b);return c},d.prototype.size=function(){return Object.getOwnPropertyNames(this._set).length},d.prototype.add=function(a,b){var c=this.has(a),d=this._array.length;c&&!b||this._array.push(a),c||(this._set[e.toSetString(a)]=d)},d.prototype.has=function(a){return Object.prototype.hasOwnProperty.call(this._set,e.toSetString(a))},d.prototype.indexOf=function(a){if(this.has(a))return this._set[e.toSetString(a)];throw new Error('"'+a+'" is not in the set.')},d.prototype.at=function(a){if(a>=0&&a<this._array.length)return this._array[a];throw new Error("No element indexed by "+a)},d.prototype.toArray=function(){return this._array.slice()},b.ArraySet=d})},{"./util":121,amdefine:1}],113:[function(a,b,c){if("function"!=typeof d)var d=a("amdefine")(b,a);d(function(a,b,c){function d(a){return 0>a?(-a<<1)+1:(a<<1)+0}function e(a){var b=1===(1&a),c=a>>1;return b?-c:c}var f=a("./base64"),g=5,h=1<<g,i=h-1,j=h;b.encode=function(a){var b,c="",e=d(a);do b=e&i,e>>>=g,e>0&&(b|=j),c+=f.encode(b);while(e>0);return c},b.decode=function(a,b,c){var d,h,k=a.length,l=0,m=0;do{if(b>=k)throw new Error("Expected more digits in base 64 VLQ value.");if(h=f.decode(a.charCodeAt(b++)),-1===h)throw new Error("Invalid base64 digit: "+a.charAt(b-1));d=!!(h&j),h&=i,l+=h<<m,m+=g}while(d);c.value=e(l),c.rest=b}})},{"./base64":114,amdefine:1}],114:[function(a,b,c){if("function"!=typeof d)var d=a("amdefine")(b,a);d(function(a,b,c){var d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");b.encode=function(a){if(a>=0&&a<d.length)return d[a];throw new TypeError("Must be between 0 and 63: "+aNumber)},b.decode=function(a){var b=65,c=90,d=97,e=122,f=48,g=57,h=43,i=47,j=26,k=52;return a>=b&&c>=a?a-b:a>=d&&e>=a?a-d+j:a>=f&&g>=a?a-f+k:a==h?62:a==i?63:-1}})},{amdefine:1}],115:[function(a,b,c){if("function"!=typeof d)var d=a("amdefine")(b,a);d(function(a,b,c){function d(a,c,e,f,g,h){var i=Math.floor((c-a)/2)+a,j=g(e,f[i],!0);return 0===j?i:j>0?c-i>1?d(i,c,e,f,g,h):h==b.LEAST_UPPER_BOUND?c<f.length?c:-1:i:i-a>1?d(a,i,e,f,g,h):h==b.LEAST_UPPER_BOUND?i:0>a?-1:a}b.GREATEST_LOWER_BOUND=1,b.LEAST_UPPER_BOUND=2,b.search=function(a,c,e,f){if(0===c.length)return-1;var g=d(-1,c.length,a,c,e,f||b.GREATEST_LOWER_BOUND);if(0>g)return-1;for(;g-1>=0&&0===e(c[g],c[g-1],!0);)--g;return g}})},{amdefine:1}],116:[function(a,b,c){if("function"!=typeof d)var d=a("amdefine")(b,a);d(function(a,b,c){function d(a,b){var c=a.generatedLine,d=b.generatedLine,e=a.generatedColumn,g=b.generatedColumn;return d>c||d==c&&g>=e||f.compareByGeneratedPositionsInflated(a,b)<=0}function e(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}var f=a("./util");e.prototype.unsortedForEach=function(a,b){this._array.forEach(a,b)},e.prototype.add=function(a){d(this._last,a)?(this._last=a,this._array.push(a)):(this._sorted=!1,this._array.push(a))},e.prototype.toArray=function(){return this._sorted||(this._array.sort(f.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},b.MappingList=e})},{"./util":121,amdefine:1}],117:[function(a,b,c){if("function"!=typeof d)var d=a("amdefine")(b,a);d(function(a,b,c){function d(a,b,c){var d=a[b];a[b]=a[c],a[c]=d}function e(a,b){return Math.round(a+Math.random()*(b-a))}function f(a,b,c,g){if(g>c){var h=e(c,g),i=c-1;d(a,h,g);for(var j=a[g],k=c;g>k;k++)b(a[k],j)<=0&&(i+=1,d(a,i,k));d(a,i+1,k);var l=i+1;f(a,b,c,l-1),f(a,b,l+1,g)}}b.quickSort=function(a,b){f(a,b,0,a.length-1)}})},{amdefine:1}],118:[function(a,b,c){if("function"!=typeof d)var d=a("amdefine")(b,a);d(function(a,b,c){function d(a){var b=a;return"string"==typeof a&&(b=JSON.parse(a.replace(/^\)\]\}'/,""))),null!=b.sections?new g(b):new e(b)}function e(a){var b=a;"string"==typeof a&&(b=JSON.parse(a.replace(/^\)\]\}'/,"")));var c=h.getArg(b,"version"),d=h.getArg(b,"sources"),e=h.getArg(b,"names",[]),f=h.getArg(b,"sourceRoot",null),g=h.getArg(b,"sourcesContent",null),i=h.getArg(b,"mappings"),k=h.getArg(b,"file",null);if(c!=this._version)throw new Error("Unsupported version: "+c);d=d.map(h.normalize),this._names=j.fromArray(e,!0),this._sources=j.fromArray(d,!0),this.sourceRoot=f,this.sourcesContent=g,this._mappings=i,this.file=k}function f(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function g(a){var b=a;"string"==typeof a&&(b=JSON.parse(a.replace(/^\)\]\}'/,"")));var c=h.getArg(b,"version"),e=h.getArg(b,"sections");if(c!=this._version)throw new Error("Unsupported version: "+c);this._sources=new j,this._names=new j;var f={line:-1,column:0};this._sections=e.map(function(a){if(a.url)throw new Error("Support for url field in sections not implemented.");var b=h.getArg(a,"offset"),c=h.getArg(b,"line"),e=h.getArg(b,"column");if(c<f.line||c===f.line&&e<f.column)throw new Error("Section offsets must be ordered and non-overlapping.");return f=b,{generatedOffset:{generatedLine:c+1,generatedColumn:e+1},consumer:new d(h.getArg(a,"map"))}})}var h=a("./util"),i=a("./binary-search"),j=a("./array-set").ArraySet,k=a("./base64-vlq"),l=a("./quick-sort").quickSort;d.fromSourceMap=function(a){return e.fromSourceMap(a)},d.prototype._version=3,d.prototype.__generatedMappings=null,Object.defineProperty(d.prototype,"_generatedMappings",{get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),d.prototype.__originalMappings=null,Object.defineProperty(d.prototype,"_originalMappings",{get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),d.prototype._charIsMappingSeparator=function(a,b){var c=a.charAt(b);return";"===c||","===c},d.prototype._parseMappings=function(a,b){throw new Error("Subclasses must implement _parseMappings")},d.GENERATED_ORDER=1,d.ORIGINAL_ORDER=2,d.GREATEST_LOWER_BOUND=1,d.LEAST_UPPER_BOUND=2,d.prototype.eachMapping=function(a,b,c){var e,f=b||null,g=c||d.GENERATED_ORDER;switch(g){case d.GENERATED_ORDER:e=this._generatedMappings;break;
-case d.ORIGINAL_ORDER:e=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var i=this.sourceRoot;e.map(function(a){var b=null===a.source?null:this._sources.at(a.source);return null!=b&&null!=i&&(b=h.join(i,b)),{source:b,generatedLine:a.generatedLine,generatedColumn:a.generatedColumn,originalLine:a.originalLine,originalColumn:a.originalColumn,name:null===a.name?null:this._names.at(a.name)}},this).forEach(a,f)},d.prototype.allGeneratedPositionsFor=function(a){var b=h.getArg(a,"line"),c={source:h.getArg(a,"source"),originalLine:b,originalColumn:h.getArg(a,"column",0)};if(null!=this.sourceRoot&&(c.source=h.relative(this.sourceRoot,c.source)),!this._sources.has(c.source))return[];c.source=this._sources.indexOf(c.source);var d=[],e=this._findMapping(c,this._originalMappings,"originalLine","originalColumn",h.compareByOriginalPositions,i.LEAST_UPPER_BOUND);if(e>=0){var f=this._originalMappings[e];if(void 0===a.column)for(var g=f.originalLine;f&&f.originalLine===g;)d.push({line:h.getArg(f,"generatedLine",null),column:h.getArg(f,"generatedColumn",null),lastColumn:h.getArg(f,"lastGeneratedColumn",null)}),f=this._originalMappings[++e];else for(var j=f.originalColumn;f&&f.originalLine===b&&f.originalColumn==j;)d.push({line:h.getArg(f,"generatedLine",null),column:h.getArg(f,"generatedColumn",null),lastColumn:h.getArg(f,"lastGeneratedColumn",null)}),f=this._originalMappings[++e]}return d},b.SourceMapConsumer=d,e.prototype=Object.create(d.prototype),e.prototype.consumer=d,e.fromSourceMap=function(a){var b=Object.create(e.prototype),c=b._names=j.fromArray(a._names.toArray(),!0),d=b._sources=j.fromArray(a._sources.toArray(),!0);b.sourceRoot=a._sourceRoot,b.sourcesContent=a._generateSourcesContent(b._sources.toArray(),b.sourceRoot),b.file=a._file;for(var g=a._mappings.toArray().slice(),i=b.__generatedMappings=[],k=b.__originalMappings=[],m=0,n=g.length;n>m;m++){var o=g[m],p=new f;p.generatedLine=o.generatedLine,p.generatedColumn=o.generatedColumn,o.source&&(p.source=d.indexOf(o.source),p.originalLine=o.originalLine,p.originalColumn=o.originalColumn,o.name&&(p.name=c.indexOf(o.name)),k.push(p)),i.push(p)}return l(b.__originalMappings,h.compareByOriginalPositions),b},e.prototype._version=3,Object.defineProperty(e.prototype,"sources",{get:function(){return this._sources.toArray().map(function(a){return null!=this.sourceRoot?h.join(this.sourceRoot,a):a},this)}}),e.prototype._parseMappings=function(a,b){for(var c,d,e,g,i,j=1,m=0,n=0,o=0,p=0,q=0,r=a.length,s=0,t={},u={},v=[],w=[];r>s;)if(";"===a.charAt(s))j++,s++,m=0;else if(","===a.charAt(s))s++;else{for(c=new f,c.generatedLine=j,g=s;r>g&&!this._charIsMappingSeparator(a,g);g++);if(d=a.slice(s,g),e=t[d])s+=d.length;else{for(e=[];g>s;)k.decode(a,s,u),i=u.value,s=u.rest,e.push(i);if(2===e.length)throw new Error("Found a source, but no line and column");if(3===e.length)throw new Error("Found a source and line, but no column");t[d]=e}c.generatedColumn=m+e[0],m=c.generatedColumn,e.length>1&&(c.source=p+e[1],p+=e[1],c.originalLine=n+e[2],n=c.originalLine,c.originalLine+=1,c.originalColumn=o+e[3],o=c.originalColumn,e.length>4&&(c.name=q+e[4],q+=e[4])),w.push(c),"number"==typeof c.originalLine&&v.push(c)}l(w,h.compareByGeneratedPositionsDeflated),this.__generatedMappings=w,l(v,h.compareByOriginalPositions),this.__originalMappings=v},e.prototype._findMapping=function(a,b,c,d,e,f){if(a[c]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+a[c]);if(a[d]<0)throw new TypeError("Column must be greater than or equal to 0, got "+a[d]);return i.search(a,b,e,f)},e.prototype.computeColumnSpans=function(){for(var a=0;a<this._generatedMappings.length;++a){var b=this._generatedMappings[a];if(a+1<this._generatedMappings.length){var c=this._generatedMappings[a+1];if(b.generatedLine===c.generatedLine){b.lastGeneratedColumn=c.generatedColumn-1;continue}}b.lastGeneratedColumn=1/0}},e.prototype.originalPositionFor=function(a){var b={generatedLine:h.getArg(a,"line"),generatedColumn:h.getArg(a,"column")},c=this._findMapping(b,this._generatedMappings,"generatedLine","generatedColumn",h.compareByGeneratedPositionsDeflated,h.getArg(a,"bias",d.GREATEST_LOWER_BOUND));if(c>=0){var e=this._generatedMappings[c];if(e.generatedLine===b.generatedLine){var f=h.getArg(e,"source",null);null!==f&&(f=this._sources.at(f),null!=this.sourceRoot&&(f=h.join(this.sourceRoot,f)));var g=h.getArg(e,"name",null);return null!==g&&(g=this._names.at(g)),{source:f,line:h.getArg(e,"originalLine",null),column:h.getArg(e,"originalColumn",null),name:g}}}return{source:null,line:null,column:null,name:null}},e.prototype.hasContentsOfAllSources=function(){return this.sourcesContent?this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(a){return null==a}):!1},e.prototype.sourceContentFor=function(a,b){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(a=h.relative(this.sourceRoot,a)),this._sources.has(a))return this.sourcesContent[this._sources.indexOf(a)];var c;if(null!=this.sourceRoot&&(c=h.urlParse(this.sourceRoot))){var d=a.replace(/^file:\/\//,"");if("file"==c.scheme&&this._sources.has(d))return this.sourcesContent[this._sources.indexOf(d)];if((!c.path||"/"==c.path)&&this._sources.has("/"+a))return this.sourcesContent[this._sources.indexOf("/"+a)]}if(b)return null;throw new Error('"'+a+'" is not in the SourceMap.')},e.prototype.generatedPositionFor=function(a){var b=h.getArg(a,"source");if(null!=this.sourceRoot&&(b=h.relative(this.sourceRoot,b)),!this._sources.has(b))return{line:null,column:null,lastColumn:null};b=this._sources.indexOf(b);var c={source:b,originalLine:h.getArg(a,"line"),originalColumn:h.getArg(a,"column")},e=this._findMapping(c,this._originalMappings,"originalLine","originalColumn",h.compareByOriginalPositions,h.getArg(a,"bias",d.GREATEST_LOWER_BOUND));if(e>=0){var f=this._originalMappings[e];if(f.source===c.source)return{line:h.getArg(f,"generatedLine",null),column:h.getArg(f,"generatedColumn",null),lastColumn:h.getArg(f,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},b.BasicSourceMapConsumer=e,g.prototype=Object.create(d.prototype),g.prototype.constructor=d,g.prototype._version=3,Object.defineProperty(g.prototype,"sources",{get:function(){for(var a=[],b=0;b<this._sections.length;b++)for(var c=0;c<this._sections[b].consumer.sources.length;c++)a.push(this._sections[b].consumer.sources[c]);return a}}),g.prototype.originalPositionFor=function(a){var b={generatedLine:h.getArg(a,"line"),generatedColumn:h.getArg(a,"column")},c=i.search(b,this._sections,function(a,b){var c=a.generatedLine-b.generatedOffset.generatedLine;return c?c:a.generatedColumn-b.generatedOffset.generatedColumn}),d=this._sections[c];return d?d.consumer.originalPositionFor({line:b.generatedLine-(d.generatedOffset.generatedLine-1),column:b.generatedColumn-(d.generatedOffset.generatedLine===b.generatedLine?d.generatedOffset.generatedColumn-1:0),bias:a.bias}):{source:null,line:null,column:null,name:null}},g.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(a){return a.consumer.hasContentsOfAllSources()})},g.prototype.sourceContentFor=function(a,b){for(var c=0;c<this._sections.length;c++){var d=this._sections[c],e=d.consumer.sourceContentFor(a,!0);if(e)return e}if(b)return null;throw new Error('"'+a+'" is not in the SourceMap.')},g.prototype.generatedPositionFor=function(a){for(var b=0;b<this._sections.length;b++){var c=this._sections[b];if(-1!==c.consumer.sources.indexOf(h.getArg(a,"source"))){var d=c.consumer.generatedPositionFor(a);if(d){var e={line:d.line+(c.generatedOffset.generatedLine-1),column:d.column+(c.generatedOffset.generatedLine===d.line?c.generatedOffset.generatedColumn-1:0)};return e}}}return{line:null,column:null}},g.prototype._parseMappings=function(a,b){this.__generatedMappings=[],this.__originalMappings=[];for(var c=0;c<this._sections.length;c++)for(var d=this._sections[c],e=d.consumer._generatedMappings,f=0;f<e.length;f++){var g=e[c],i=d.consumer._sources.at(g.source);null!==d.consumer.sourceRoot&&(i=h.join(d.consumer.sourceRoot,i)),this._sources.add(i),i=this._sources.indexOf(i);var j=d.consumer._names.at(g.name);this._names.add(j),j=this._names.indexOf(j);var k={source:i,generatedLine:g.generatedLine+(d.generatedOffset.generatedLine-1),generatedColumn:g.column+(d.generatedOffset.generatedLine===g.generatedLine)?d.generatedOffset.generatedColumn-1:0,originalLine:g.originalLine,originalColumn:g.originalColumn,name:j};this.__generatedMappings.push(k),"number"==typeof k.originalLine&&this.__originalMappings.push(k)}l(this.__generatedMappings,h.compareByGeneratedPositionsDeflated),l(this.__originalMappings,h.compareByOriginalPositions)},b.IndexedSourceMapConsumer=g})},{"./array-set":112,"./base64-vlq":113,"./binary-search":115,"./quick-sort":117,"./util":121,amdefine:1}],119:[function(a,b,c){if("function"!=typeof d)var d=a("amdefine")(b,a);d(function(a,b,c){function d(a){a||(a={}),this._file=f.getArg(a,"file",null),this._sourceRoot=f.getArg(a,"sourceRoot",null),this._skipValidation=f.getArg(a,"skipValidation",!1),this._sources=new g,this._names=new g,this._mappings=new h,this._sourcesContents=null}var e=a("./base64-vlq"),f=a("./util"),g=a("./array-set").ArraySet,h=a("./mapping-list").MappingList;d.prototype._version=3,d.fromSourceMap=function(a){var b=a.sourceRoot,c=new d({file:a.file,sourceRoot:b});return a.eachMapping(function(a){var d={generated:{line:a.generatedLine,column:a.generatedColumn}};null!=a.source&&(d.source=a.source,null!=b&&(d.source=f.relative(b,d.source)),d.original={line:a.originalLine,column:a.originalColumn},null!=a.name&&(d.name=a.name)),c.addMapping(d)}),a.sources.forEach(function(b){var d=a.sourceContentFor(b);null!=d&&c.setSourceContent(b,d)}),c},d.prototype.addMapping=function(a){var b=f.getArg(a,"generated"),c=f.getArg(a,"original",null),d=f.getArg(a,"source",null),e=f.getArg(a,"name",null);this._skipValidation||this._validateMapping(b,c,d,e),null==d||this._sources.has(d)||this._sources.add(d),null==e||this._names.has(e)||this._names.add(e),this._mappings.add({generatedLine:b.line,generatedColumn:b.column,originalLine:null!=c&&c.line,originalColumn:null!=c&&c.column,source:d,name:e})},d.prototype.setSourceContent=function(a,b){var c=a;null!=this._sourceRoot&&(c=f.relative(this._sourceRoot,c)),null!=b?(this._sourcesContents||(this._sourcesContents={}),this._sourcesContents[f.toSetString(c)]=b):this._sourcesContents&&(delete this._sourcesContents[f.toSetString(c)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},d.prototype.applySourceMap=function(a,b,c){var d=b;if(null==b){if(null==a.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');d=a.file}var e=this._sourceRoot;null!=e&&(d=f.relative(e,d));var h=new g,i=new g;this._mappings.unsortedForEach(function(b){if(b.source===d&&null!=b.originalLine){var g=a.originalPositionFor({line:b.originalLine,column:b.originalColumn});null!=g.source&&(b.source=g.source,null!=c&&(b.source=f.join(c,b.source)),null!=e&&(b.source=f.relative(e,b.source)),b.originalLine=g.line,b.originalColumn=g.column,null!=g.name&&(b.name=g.name))}var j=b.source;null==j||h.has(j)||h.add(j);var k=b.name;null==k||i.has(k)||i.add(k)},this),this._sources=h,this._names=i,a.sources.forEach(function(b){var d=a.sourceContentFor(b);null!=d&&(null!=c&&(b=f.join(c,b)),null!=e&&(b=f.relative(e,b)),this.setSourceContent(b,d))},this)},d.prototype._validateMapping=function(a,b,c,d){if((!(a&&"line"in a&&"column"in a&&a.line>0&&a.column>=0)||b||c||d)&&!(a&&"line"in a&&"column"in a&&b&&"line"in b&&"column"in b&&a.line>0&&a.column>=0&&b.line>0&&b.column>=0&&c))throw new Error("Invalid mapping: "+JSON.stringify({generated:a,source:c,original:b,name:d}))},d.prototype._serializeMappings=function(){for(var a,b=0,c=1,d=0,g=0,h=0,i=0,j="",k=this._mappings.toArray(),l=0,m=k.length;m>l;l++){if(a=k[l],a.generatedLine!==c)for(b=0;a.generatedLine!==c;)j+=";",c++;else if(l>0){if(!f.compareByGeneratedPositionsInflated(a,k[l-1]))continue;j+=","}j+=e.encode(a.generatedColumn-b),b=a.generatedColumn,null!=a.source&&(j+=e.encode(this._sources.indexOf(a.source)-i),i=this._sources.indexOf(a.source),j+=e.encode(a.originalLine-1-g),g=a.originalLine-1,j+=e.encode(a.originalColumn-d),d=a.originalColumn,null!=a.name&&(j+=e.encode(this._names.indexOf(a.name)-h),h=this._names.indexOf(a.name)))}return j},d.prototype._generateSourcesContent=function(a,b){return a.map(function(a){if(!this._sourcesContents)return null;null!=b&&(a=f.relative(b,a));var c=f.toSetString(a);return Object.prototype.hasOwnProperty.call(this._sourcesContents,c)?this._sourcesContents[c]:null},this)},d.prototype.toJSON=function(){var a={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(a.file=this._file),null!=this._sourceRoot&&(a.sourceRoot=this._sourceRoot),this._sourcesContents&&(a.sourcesContent=this._generateSourcesContent(a.sources,a.sourceRoot)),a},d.prototype.toString=function(){return JSON.stringify(this.toJSON())},b.SourceMapGenerator=d})},{"./array-set":112,"./base64-vlq":113,"./mapping-list":116,"./util":121,amdefine:1}],120:[function(a,b,c){if("function"!=typeof d)var d=a("amdefine")(b,a);d(function(a,b,c){function d(a,b,c,d,e){this.children=[],this.sourceContents={},this.line=null==a?null:a,this.column=null==b?null:b,this.source=null==c?null:c,this.name=null==e?null:e,this[i]=!0,null!=d&&this.add(d)}var e=a("./source-map-generator").SourceMapGenerator,f=a("./util"),g=/(\r?\n)/,h=10,i="$$$isSourceNode$$$";d.fromStringWithSourceMap=function(a,b,c){function e(a,b){if(null===a||void 0===a.source)h.add(b);else{var e=c?f.join(c,a.source):a.source;h.add(new d(a.originalLine,a.originalColumn,e,b,a.name))}}var h=new d,i=a.split(g),j=function(){var a=i.shift(),b=i.shift()||"";return a+b},k=1,l=0,m=null;return b.eachMapping(function(a){if(null!==m){if(!(k<a.generatedLine)){var b=i[0],c=b.substr(0,a.generatedColumn-l);return i[0]=b.substr(a.generatedColumn-l),l=a.generatedColumn,e(m,c),void(m=a)}var c="";e(m,j()),k++,l=0}for(;k<a.generatedLine;)h.add(j()),k++;if(l<a.generatedColumn){var b=i[0];h.add(b.substr(0,a.generatedColumn)),i[0]=b.substr(a.generatedColumn),l=a.generatedColumn}m=a},this),i.length>0&&(m&&e(m,j()),h.add(i.join(""))),b.sources.forEach(function(a){var d=b.sourceContentFor(a);null!=d&&(null!=c&&(a=f.join(c,a)),h.setSourceContent(a,d))}),h},d.prototype.add=function(a){if(Array.isArray(a))a.forEach(function(a){this.add(a)},this);else{if(!a[i]&&"string"!=typeof a)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+a);a&&this.children.push(a)}return this},d.prototype.prepend=function(a){if(Array.isArray(a))for(var b=a.length-1;b>=0;b--)this.prepend(a[b]);else{if(!a[i]&&"string"!=typeof a)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+a);this.children.unshift(a)}return this},d.prototype.walk=function(a){for(var b,c=0,d=this.children.length;d>c;c++)b=this.children[c],b[i]?b.walk(a):""!==b&&a(b,{source:this.source,line:this.line,column:this.column,name:this.name})},d.prototype.join=function(a){var b,c,d=this.children.length;if(d>0){for(b=[],c=0;d-1>c;c++)b.push(this.children[c]),b.push(a);b.push(this.children[c]),this.children=b}return this},d.prototype.replaceRight=function(a,b){var c=this.children[this.children.length-1];return c[i]?c.replaceRight(a,b):"string"==typeof c?this.children[this.children.length-1]=c.replace(a,b):this.children.push("".replace(a,b)),this},d.prototype.setSourceContent=function(a,b){this.sourceContents[f.toSetString(a)]=b},d.prototype.walkSourceContents=function(a){for(var b=0,c=this.children.length;c>b;b++)this.children[b][i]&&this.children[b].walkSourceContents(a);for(var d=Object.keys(this.sourceContents),b=0,c=d.length;c>b;b++)a(f.fromSetString(d[b]),this.sourceContents[d[b]])},d.prototype.toString=function(){var a="";return this.walk(function(b){a+=b}),a},d.prototype.toStringWithSourceMap=function(a){var b={code:"",line:1,column:0},c=new e(a),d=!1,f=null,g=null,i=null,j=null;return this.walk(function(a,e){b.code+=a,null!==e.source&&null!==e.line&&null!==e.column?(f===e.source&&g===e.line&&i===e.column&&j===e.name||c.addMapping({source:e.source,original:{line:e.line,column:e.column},generated:{line:b.line,column:b.column},name:e.name}),f=e.source,g=e.line,i=e.column,j=e.name,d=!0):d&&(c.addMapping({generated:{line:b.line,column:b.column}}),f=null,d=!1);for(var k=0,l=a.length;l>k;k++)a.charCodeAt(k)===h?(b.line++,b.column=0,k+1===l?(f=null,d=!1):d&&c.addMapping({source:e.source,original:{line:e.line,column:e.column},generated:{line:b.line,column:b.column},name:e.name})):b.column++}),this.walkSourceContents(function(a,b){c.setSourceContent(a,b)}),{code:b.code,map:c}},b.SourceNode=d})},{"./source-map-generator":119,"./util":121,amdefine:1}],121:[function(a,b,c){if("function"!=typeof d)var d=a("amdefine")(b,a);d(function(a,b,c){function d(a,b,c){if(b in a)return a[b];if(3===arguments.length)return c;throw new Error('"'+b+'" is a required argument.')}function e(a){var b=a.match(p);return b?{scheme:b[1],auth:b[2],host:b[3],port:b[4],path:b[5]}:null}function f(a){var b="";return a.scheme&&(b+=a.scheme+":"),b+="//",a.auth&&(b+=a.auth+"@"),a.host&&(b+=a.host),a.port&&(b+=":"+a.port),a.path&&(b+=a.path),b}function g(a){var b=a,c=e(a);if(c){if(!c.path)return a;b=c.path}for(var d,g="/"===b.charAt(0),h=b.split(/\/+/),i=0,j=h.length-1;j>=0;j--)d=h[j],"."===d?h.splice(j,1):".."===d?i++:i>0&&(""===d?(h.splice(j+1,i),i=0):(h.splice(j,2),i--));return b=h.join("/"),""===b&&(b=g?"/":"."),c?(c.path=b,f(c)):b}function h(a,b){""===a&&(a="."),""===b&&(b=".");var c=e(b),d=e(a);if(d&&(a=d.path||"/"),c&&!c.scheme)return d&&(c.scheme=d.scheme),f(c);if(c||b.match(q))return b;if(d&&!d.host&&!d.path)return d.host=b,f(d);var h="/"===b.charAt(0)?b:g(a.replace(/\/+$/,"")+"/"+b);return d?(d.path=h,f(d)):h}function i(a,b){""===a&&(a="."),a=a.replace(/\/$/,"");for(var c=0;0!==b.indexOf(a+"/");){var d=a.lastIndexOf("/");if(0>d)return b;if(a=a.slice(0,d),a.match(/^([^\/]+:\/)?\/*$/))return b;++c}return Array(c+1).join("../")+b.substr(a.length+1)}function j(a){return"$"+a}function k(a){return a.substr(1)}function l(a,b,c){var d=a.source-b.source;return 0!==d?d:(d=a.originalLine-b.originalLine,0!==d?d:(d=a.originalColumn-b.originalColumn,0!==d||c?d:(d=a.generatedColumn-b.generatedColumn,0!==d?d:(d=a.generatedLine-b.generatedLine,0!==d?d:a.name-b.name))))}function m(a,b,c){var d=a.generatedLine-b.generatedLine;return 0!==d?d:(d=a.generatedColumn-b.generatedColumn,0!==d||c?d:(d=a.source-b.source,0!==d?d:(d=a.originalLine-b.originalLine,0!==d?d:(d=a.originalColumn-b.originalColumn,0!==d?d:a.name-b.name))))}function n(a,b){return a===b?0:a>b?1:-1}function o(a,b){var c=a.generatedLine-b.generatedLine;return 0!==c?c:(c=a.generatedColumn-b.generatedColumn,0!==c?c:(c=n(a.source,b.source),0!==c?c:(c=a.originalLine-b.originalLine,0!==c?c:(c=a.originalColumn-b.originalColumn,0!==c?c:n(a.name,b.name)))))}b.getArg=d;var p=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,q=/^data:.+\,.+$/;b.urlParse=e,b.urlGenerate=f,b.normalize=g,b.join=h,b.relative=i,b.toSetString=j,b.fromSetString=k,b.compareByOriginalPositions=l,b.compareByGeneratedPositionsDeflated=m,b.compareByGeneratedPositionsInflated=o})},{amdefine:1}],122:[function(a,b,c){function d(){e.call(this)}b.exports=d;var e=a("events").EventEmitter,f=a("inherits");f(d,e),d.Readable=a("readable-stream/readable.js"),d.Writable=a("readable-stream/writable.js"),d.Duplex=a("readable-stream/duplex.js"),d.Transform=a("readable-stream/transform.js"),d.PassThrough=a("readable-stream/passthrough.js"),d.Stream=d,d.prototype.pipe=function(a,b){function c(b){a.writable&&!1===a.write(b)&&j.pause&&j.pause()}function d(){j.readable&&j.resume&&j.resume()}function f(){k||(k=!0,a.end())}function g(){k||(k=!0,"function"==typeof a.destroy&&a.destroy())}function h(a){if(i(),0===e.listenerCount(this,"error"))throw a}function i(){j.removeListener("data",c),a.removeListener("drain",d),j.removeListener("end",f),j.removeListener("close",g),j.removeListener("error",h),a.removeListener("error",h),j.removeListener("end",i),j.removeListener("close",i),a.removeListener("close",i)}var j=this;j.on("data",c),a.on("drain",d),a._isStdio||b&&b.end===!1||(j.on("end",f),j.on("close",g));var k=!1;return j.on("error",h),a.on("error",h),j.on("end",i),j.on("close",i),a.on("close",i),a.emit("pipe",j),a}},{events:68,inherits:72,"readable-stream/duplex.js":84,"readable-stream/passthrough.js":90,"readable-stream/readable.js":91,"readable-stream/transform.js":92,"readable-stream/writable.js":93}],123:[function(a,b,c){(function(b){var d=a("./lib/request"),e=a("xtend"),f=a("builtin-status-codes"),g=a("url"),h=c;h.request=function(a,c){a="string"==typeof a?g.parse(a):e(a);var f=-1===b.location.protocol.search(/^https?:$/)?"http:":"",h=a.protocol||f,i=a.hostname||a.host,j=a.port,k=a.path||"/";i&&-1!==i.indexOf(":")&&(i="["+i+"]"),a.url=(i?h+"//"+i:"")+(j?":"+j:"")+k,a.method=(a.method||"GET").toUpperCase(),a.headers=a.headers||{};var l=new d(a);return c&&l.on("response",c),l},h.get=function(a,b){var c=h.request(a,b);return c.end(),c},h.Agent=function(){},h.Agent.defaultMaxSockets=4,h.STATUS_CODES=f,h.METHODS=["CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","REPORT","SEARCH","SUBSCRIBE","TRACE","UNLOCK","UNSUBSCRIBE"]}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./lib/request":125,"builtin-status-codes":6,url:141,xtend:147}],124:[function(a,b,c){(function(a){function b(a){try{return f.responseType=a,f.responseType===a}catch(b){}return!1}function d(a){return"function"==typeof a}c.fetch=d(a.fetch)&&d(a.ReadableByteStream),c.blobConstructor=!1;try{new Blob([new ArrayBuffer(1)]),c.blobConstructor=!0}catch(e){}var f=new a.XMLHttpRequest;f.open("GET",a.location.host?"/":"https://example.com");var g="undefined"!=typeof a.ArrayBuffer,h=g&&d(a.ArrayBuffer.prototype.slice);c.arraybuffer=g&&b("arraybuffer"),c.msstream=!c.fetch&&h&&b("ms-stream"),c.mozchunkedarraybuffer=!c.fetch&&g&&b("moz-chunked-arraybuffer"),c.overrideMimeType=d(f.overrideMimeType),c.vbArray=d(a.VBArray),f=null}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],125:[function(a,b,c){(function(c,d,e){function f(a){return h.fetch?"fetch":h.mozchunkedarraybuffer?"moz-chunked-arraybuffer":h.msstream?"ms-stream":h.arraybuffer&&a?"arraybuffer":h.vbArray&&a?"text:vbarray":"text"}function g(a){try{var b=a.status;return null!==b&&0!==b}catch(c){return!1}}var h=a("./capability"),i=a("inherits"),j=a("./response"),k=a("stream"),l=a("to-arraybuffer"),m=j.IncomingMessage,n=j.readyStates,o=b.exports=function(a){var b=this;k.Writable.call(b),b._opts=a,b._body=[],b._headers={},a.auth&&b.setHeader("Authorization","Basic "+new e(a.auth).toString("base64")),Object.keys(a.headers).forEach(function(c){b.setHeader(c,a.headers[c])});var c;if("prefer-streaming"===a.mode)c=!1;else if("allow-wrong-content-type"===a.mode)c=!h.overrideMimeType;else{if(a.mode&&"default"!==a.mode&&"prefer-fast"!==a.mode)throw new Error("Invalid value for opts.mode");c=!0}b._mode=f(c),b.on("finish",function(){b._onFinish()})};i(o,k.Writable),o.prototype.setHeader=function(a,b){var c=this,d=a.toLowerCase();-1===p.indexOf(d)&&(c._headers[d]={name:a,value:b})},o.prototype.getHeader=function(a){var b=this;return b._headers[a.toLowerCase()].value},o.prototype.removeHeader=function(a){var b=this;delete b._headers[a.toLowerCase()]},o.prototype._onFinish=function(){var a=this;if(!a._destroyed){var b,f=a._opts,g=a._headers;if("POST"!==f.method&&"PUT"!==f.method&&"PATCH"!==f.method||(b=h.blobConstructor?new d.Blob(a._body.map(function(a){return l(a)}),{type:(g["content-type"]||{}).value||""}):e.concat(a._body).toString()),"fetch"===a._mode){var i=Object.keys(g).map(function(a){return[g[a].name,g[a].value]});d.fetch(a._opts.url,{method:a._opts.method,headers:i,body:b,mode:"cors",credentials:f.withCredentials?"include":"same-origin"}).then(function(b){a._fetchResponse=b,a._connect()},function(b){a.emit("error",b)})}else{var j=a._xhr=new d.XMLHttpRequest;try{j.open(a._opts.method,a._opts.url,!0)}catch(k){return void c.nextTick(function(){a.emit("error",k)})}"responseType"in j&&(j.responseType=a._mode.split(":")[0]),"withCredentials"in j&&(j.withCredentials=!!f.withCredentials),"text"===a._mode&&"overrideMimeType"in j&&j.overrideMimeType("text/plain; charset=x-user-defined"),Object.keys(g).forEach(function(a){j.setRequestHeader(g[a].name,g[a].value)}),a._response=null,j.onreadystatechange=function(){switch(j.readyState){case n.LOADING:case n.DONE:a._onXHRProgress()}},"moz-chunked-arraybuffer"===a._mode&&(j.onprogress=function(){a._onXHRProgress()}),j.onerror=function(){a._destroyed||a.emit("error",new Error("XHR error"))};try{j.send(b)}catch(k){return void c.nextTick(function(){a.emit("error",k)})}}}},o.prototype._onXHRProgress=function(){var a=this;g(a._xhr)&&!a._destroyed&&(a._response||a._connect(),a._response._onXHRProgress())},o.prototype._connect=function(){var a=this;a._destroyed||(a._response=new m(a._xhr,a._fetchResponse,a._mode),a.emit("response",a._response))},o.prototype._write=function(a,b,c){var d=this;d._body.push(a),c()},o.prototype.abort=o.prototype.destroy=function(){var a=this;a._destroyed=!0,a._response&&(a._response._destroyed=!0),a._xhr&&a._xhr.abort()},o.prototype.end=function(a,b,c){var d=this;"function"==typeof a&&(c=a,a=void 0),k.Writable.prototype.end.call(d,a,b,c)},o.prototype.flushHeaders=function(){},o.prototype.setTimeout=function(){},o.prototype.setNoDelay=function(){},o.prototype.setSocketKeepAlive=function(){};var p=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","cookie","cookie2","date","dnt","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","user-agent","via"]}).call(this,a("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},a("buffer").Buffer)},{"./capability":124,"./response":126,_process:79,buffer:5,inherits:72,stream:122,"to-arraybuffer":128}],126:[function(a,b,c){(function(b,d,e){var f=a("./capability"),g=a("inherits"),h=a("stream"),i=c.readyStates={UNSENT:0,OPENED:1,HEADERS_RECEIVED:2,LOADING:3,DONE:4},j=c.IncomingMessage=function(a,c,d){function g(){m.read().then(function(a){if(!i._destroyed){if(a.done)return void i.push(null);i.push(new e(a.value)),g()}})}var i=this;if(h.Readable.call(i),i._mode=d,i.headers={},i.rawHeaders=[],i.trailers={},i.rawTrailers=[],i.on("end",function(){b.nextTick(function(){i.emit("close")})}),"fetch"===d){i._fetchResponse=c,i.statusCode=c.status,i.statusMessage=c.statusText;for(var j,k,l=c.headers[Symbol.iterator]();j=(k=l.next()).value,!k.done;)i.headers[j[0].toLowerCase()]=j[1],i.rawHeaders.push(j[0],j[1]);var m=c.body.getReader();g()}else{i._xhr=a,i._pos=0,i.statusCode=a.status,i.statusMessage=a.statusText;var n=a.getAllResponseHeaders().split(/\r?\n/);if(n.forEach(function(a){var b=a.match(/^([^:]+):\s*(.*)/);if(b){var c=b[1].toLowerCase();"set-cookie"===c?(void 0===i.headers[c]&&(i.headers[c]=[]),i.headers[c].push(b[2])):void 0!==i.headers[c]?i.headers[c]+=", "+b[2]:i.headers[c]=b[2],i.rawHeaders.push(b[1],b[2])}}),i._charset="x-user-defined",!f.overrideMimeType){var o=i.rawHeaders["mime-type"];if(o){var p=o.match(/;\s*charset=([^;])(;|$)/);p&&(i._charset=p[1].toLowerCase())}i._charset||(i._charset="utf-8")}}};g(j,h.Readable),j.prototype._read=function(){},j.prototype._onXHRProgress=function(){var a=this,b=a._xhr,c=null;switch(a._mode){case"text:vbarray":if(b.readyState!==i.DONE)break;try{c=new d.VBArray(b.responseBody).toArray()}catch(f){}if(null!==c){a.push(new e(c));break}case"text":try{c=b.responseText}catch(f){a._mode="text:vbarray";break}if(c.length>a._pos){var g=c.substr(a._pos);if("x-user-defined"===a._charset){for(var h=new e(g.length),j=0;j<g.length;j++)h[j]=255&g.charCodeAt(j);a.push(h)}else a.push(g,a._charset);a._pos=c.length}break;case"arraybuffer":if(b.readyState!==i.DONE)break;c=b.response,a.push(new e(new Uint8Array(c)));break;case"moz-chunked-arraybuffer":if(c=b.response,b.readyState!==i.LOADING||!c)break;a.push(new e(new Uint8Array(c)));break;case"ms-stream":if(c=b.response,b.readyState!==i.LOADING)break;var k=new d.MSStreamReader;k.onprogress=function(){k.result.byteLength>a._pos&&(a.push(new e(new Uint8Array(k.result.slice(a._pos)))),a._pos=k.result.byteLength)},k.onload=function(){a.push(null)},k.readAsArrayBuffer(c)}a._xhr.readyState===i.DONE&&"ms-stream"!==a._mode&&a.push(null)}}).call(this,a("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},a("buffer").Buffer)},{"./capability":124,_process:79,buffer:5,inherits:72,stream:122}],127:[function(a,b,c){function d(a){if(a&&!i(a))throw new Error("Unknown encoding: "+a)}function e(a){return a.toString(this.encoding)}function f(a){this.charReceived=a.length%2,this.charLength=this.charReceived?2:0}function g(a){this.charReceived=a.length%3,this.charLength=this.charReceived?3:0}var h=a("buffer").Buffer,i=h.isEncoding||function(a){switch(a&&a.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}},j=c.StringDecoder=function(a){switch(this.encoding=(a||"utf8").toLowerCase().replace(/[-_]/,""),d(a),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=f;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=g;break;default:return void(this.write=e)}this.charBuffer=new h(6),this.charReceived=0,this.charLength=0};j.prototype.write=function(a){for(var b="";this.charLength;){var c=a.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:a.length;if(a.copy(this.charBuffer,this.charReceived,0,c),this.charReceived+=c,this.charReceived<this.charLength)return"";a=a.slice(c,a.length),b=this.charBuffer.slice(0,this.charLength).toString(this.encoding);var d=b.charCodeAt(b.length-1);if(!(d>=55296&&56319>=d)){if(this.charReceived=this.charLength=0,0===a.length)return b;break}this.charLength+=this.surrogateSize,b=""}this.detectIncompleteChar(a);var e=a.length;this.charLength&&(a.copy(this.charBuffer,0,a.length-this.charReceived,e),e-=this.charReceived),b+=a.toString(this.encoding,0,e);var e=b.length-1,d=b.charCodeAt(e);if(d>=55296&&56319>=d){var f=this.surrogateSize;return this.charLength+=f,this.charReceived+=f,this.charBuffer.copy(this.charBuffer,f,0,f),a.copy(this.charBuffer,0,0,f),b.substring(0,e)}return b},j.prototype.detectIncompleteChar=function(a){for(var b=a.length>=3?3:a.length;b>0;b--){var c=a[a.length-b];if(1==b&&c>>5==6){this.charLength=2;break}if(2>=b&&c>>4==14){this.charLength=3;break}if(3>=b&&c>>3==30){this.charLength=4;break}}this.charReceived=b},j.prototype.end=function(a){var b="";if(a&&a.length&&(b=this.write(a)),this.charReceived){var c=this.charReceived,d=this.charBuffer,e=this.encoding;b+=d.slice(0,c).toString(e)}return b}},{buffer:5}],128:[function(a,b,c){var d=a("buffer").Buffer;b.exports=function(a){if(a instanceof Uint8Array){if(0===a.byteOffset&&a.byteLength===a.buffer.byteLength)return a.buffer;if("function"==typeof a.buffer.slice)return a.buffer.slice(a.byteOffset,a.byteOffset+a.byteLength)}if(d.isBuffer(a)){for(var b=new Uint8Array(a.length),c=a.length,e=0;c>e;e++)b[e]=a[e];return b.buffer}throw new Error("Argument must be a Buffer")}},{buffer:5}],129:[function(a,b,c){function d(){this._array=[],this._set={};
-}var e=a("./util");d.fromArray=function(a,b){for(var c=new d,e=0,f=a.length;f>e;e++)c.add(a[e],b);return c},d.prototype.size=function(){return Object.getOwnPropertyNames(this._set).length},d.prototype.add=function(a,b){var c=e.toSetString(a),d=this._set.hasOwnProperty(c),f=this._array.length;d&&!b||this._array.push(a),d||(this._set[c]=f)},d.prototype.has=function(a){var b=e.toSetString(a);return this._set.hasOwnProperty(b)},d.prototype.indexOf=function(a){var b=e.toSetString(a);if(this._set.hasOwnProperty(b))return this._set[b];throw new Error('"'+a+'" is not in the set.')},d.prototype.at=function(a){if(a>=0&&a<this._array.length)return this._array[a];throw new Error("No element indexed by "+a)},d.prototype.toArray=function(){return this._array.slice()},c.ArraySet=d},{"./util":138}],130:[function(a,b,c){function d(a){return 0>a?(-a<<1)+1:(a<<1)+0}function e(a){var b=1===(1&a),c=a>>1;return b?-c:c}var f=a("./base64"),g=5,h=1<<g,i=h-1,j=h;c.encode=function(a){var b,c="",e=d(a);do b=e&i,e>>>=g,e>0&&(b|=j),c+=f.encode(b);while(e>0);return c},c.decode=function(a,b,c){var d,h,k=a.length,l=0,m=0;do{if(b>=k)throw new Error("Expected more digits in base 64 VLQ value.");if(h=f.decode(a.charCodeAt(b++)),-1===h)throw new Error("Invalid base64 digit: "+a.charAt(b-1));d=!!(h&j),h&=i,l+=h<<m,m+=g}while(d);c.value=e(l),c.rest=b}},{"./base64":131}],131:[function(a,b,c){var d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");c.encode=function(a){if(a>=0&&a<d.length)return d[a];throw new TypeError("Must be between 0 and 63: "+a)},c.decode=function(a){var b=65,c=90,d=97,e=122,f=48,g=57,h=43,i=47,j=26,k=52;return a>=b&&c>=a?a-b:a>=d&&e>=a?a-d+j:a>=f&&g>=a?a-f+k:a==h?62:a==i?63:-1}},{}],132:[function(a,b,c){function d(a,b,e,f,g,h){var i=Math.floor((b-a)/2)+a,j=g(e,f[i],!0);return 0===j?i:j>0?b-i>1?d(i,b,e,f,g,h):h==c.LEAST_UPPER_BOUND?b<f.length?b:-1:i:i-a>1?d(a,i,e,f,g,h):h==c.LEAST_UPPER_BOUND?i:0>a?-1:a}c.GREATEST_LOWER_BOUND=1,c.LEAST_UPPER_BOUND=2,c.search=function(a,b,e,f){if(0===b.length)return-1;var g=d(-1,b.length,a,b,e,f||c.GREATEST_LOWER_BOUND);if(0>g)return-1;for(;g-1>=0&&0===e(b[g],b[g-1],!0);)--g;return g}},{}],133:[function(a,b,c){function d(a,b){var c=a.generatedLine,d=b.generatedLine,e=a.generatedColumn,g=b.generatedColumn;return d>c||d==c&&g>=e||f.compareByGeneratedPositionsInflated(a,b)<=0}function e(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}var f=a("./util");e.prototype.unsortedForEach=function(a,b){this._array.forEach(a,b)},e.prototype.add=function(a){d(this._last,a)?(this._last=a,this._array.push(a)):(this._sorted=!1,this._array.push(a))},e.prototype.toArray=function(){return this._sorted||(this._array.sort(f.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},c.MappingList=e},{"./util":138}],134:[function(a,b,c){function d(a,b,c){var d=a[b];a[b]=a[c],a[c]=d}function e(a,b){return Math.round(a+Math.random()*(b-a))}function f(a,b,c,g){if(g>c){var h=e(c,g),i=c-1;d(a,h,g);for(var j=a[g],k=c;g>k;k++)b(a[k],j)<=0&&(i+=1,d(a,i,k));d(a,i+1,k);var l=i+1;f(a,b,c,l-1),f(a,b,l+1,g)}}c.quickSort=function(a,b){f(a,b,0,a.length-1)}},{}],135:[function(a,b,c){function d(a){var b=a;return"string"==typeof a&&(b=JSON.parse(a.replace(/^\)\]\}'/,""))),null!=b.sections?new g(b):new e(b)}function e(a){var b=a;"string"==typeof a&&(b=JSON.parse(a.replace(/^\)\]\}'/,"")));var c=h.getArg(b,"version"),d=h.getArg(b,"sources"),e=h.getArg(b,"names",[]),f=h.getArg(b,"sourceRoot",null),g=h.getArg(b,"sourcesContent",null),i=h.getArg(b,"mappings"),k=h.getArg(b,"file",null);if(c!=this._version)throw new Error("Unsupported version: "+c);d=d.map(h.normalize).map(function(a){return f&&h.isAbsolute(f)&&h.isAbsolute(a)?h.relative(f,a):a}),this._names=j.fromArray(e,!0),this._sources=j.fromArray(d,!0),this.sourceRoot=f,this.sourcesContent=g,this._mappings=i,this.file=k}function f(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function g(a){var b=a;"string"==typeof a&&(b=JSON.parse(a.replace(/^\)\]\}'/,"")));var c=h.getArg(b,"version"),e=h.getArg(b,"sections");if(c!=this._version)throw new Error("Unsupported version: "+c);this._sources=new j,this._names=new j;var f={line:-1,column:0};this._sections=e.map(function(a){if(a.url)throw new Error("Support for url field in sections not implemented.");var b=h.getArg(a,"offset"),c=h.getArg(b,"line"),e=h.getArg(b,"column");if(c<f.line||c===f.line&&e<f.column)throw new Error("Section offsets must be ordered and non-overlapping.");return f=b,{generatedOffset:{generatedLine:c+1,generatedColumn:e+1},consumer:new d(h.getArg(a,"map"))}})}var h=a("./util"),i=a("./binary-search"),j=a("./array-set").ArraySet,k=a("./base64-vlq"),l=a("./quick-sort").quickSort;d.fromSourceMap=function(a){return e.fromSourceMap(a)},d.prototype._version=3,d.prototype.__generatedMappings=null,Object.defineProperty(d.prototype,"_generatedMappings",{get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),d.prototype.__originalMappings=null,Object.defineProperty(d.prototype,"_originalMappings",{get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),d.prototype._charIsMappingSeparator=function(a,b){var c=a.charAt(b);return";"===c||","===c},d.prototype._parseMappings=function(a,b){throw new Error("Subclasses must implement _parseMappings")},d.GENERATED_ORDER=1,d.ORIGINAL_ORDER=2,d.GREATEST_LOWER_BOUND=1,d.LEAST_UPPER_BOUND=2,d.prototype.eachMapping=function(a,b,c){var e,f=b||null,g=c||d.GENERATED_ORDER;switch(g){case d.GENERATED_ORDER:e=this._generatedMappings;break;case d.ORIGINAL_ORDER:e=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var i=this.sourceRoot;e.map(function(a){var b=null===a.source?null:this._sources.at(a.source);return null!=b&&null!=i&&(b=h.join(i,b)),{source:b,generatedLine:a.generatedLine,generatedColumn:a.generatedColumn,originalLine:a.originalLine,originalColumn:a.originalColumn,name:null===a.name?null:this._names.at(a.name)}},this).forEach(a,f)},d.prototype.allGeneratedPositionsFor=function(a){var b=h.getArg(a,"line"),c={source:h.getArg(a,"source"),originalLine:b,originalColumn:h.getArg(a,"column",0)};if(null!=this.sourceRoot&&(c.source=h.relative(this.sourceRoot,c.source)),!this._sources.has(c.source))return[];c.source=this._sources.indexOf(c.source);var d=[],e=this._findMapping(c,this._originalMappings,"originalLine","originalColumn",h.compareByOriginalPositions,i.LEAST_UPPER_BOUND);if(e>=0){var f=this._originalMappings[e];if(void 0===a.column)for(var g=f.originalLine;f&&f.originalLine===g;)d.push({line:h.getArg(f,"generatedLine",null),column:h.getArg(f,"generatedColumn",null),lastColumn:h.getArg(f,"lastGeneratedColumn",null)}),f=this._originalMappings[++e];else for(var j=f.originalColumn;f&&f.originalLine===b&&f.originalColumn==j;)d.push({line:h.getArg(f,"generatedLine",null),column:h.getArg(f,"generatedColumn",null),lastColumn:h.getArg(f,"lastGeneratedColumn",null)}),f=this._originalMappings[++e]}return d},c.SourceMapConsumer=d,e.prototype=Object.create(d.prototype),e.prototype.consumer=d,e.fromSourceMap=function(a){var b=Object.create(e.prototype),c=b._names=j.fromArray(a._names.toArray(),!0),d=b._sources=j.fromArray(a._sources.toArray(),!0);b.sourceRoot=a._sourceRoot,b.sourcesContent=a._generateSourcesContent(b._sources.toArray(),b.sourceRoot),b.file=a._file;for(var g=a._mappings.toArray().slice(),i=b.__generatedMappings=[],k=b.__originalMappings=[],m=0,n=g.length;n>m;m++){var o=g[m],p=new f;p.generatedLine=o.generatedLine,p.generatedColumn=o.generatedColumn,o.source&&(p.source=d.indexOf(o.source),p.originalLine=o.originalLine,p.originalColumn=o.originalColumn,o.name&&(p.name=c.indexOf(o.name)),k.push(p)),i.push(p)}return l(b.__originalMappings,h.compareByOriginalPositions),b},e.prototype._version=3,Object.defineProperty(e.prototype,"sources",{get:function(){return this._sources.toArray().map(function(a){return null!=this.sourceRoot?h.join(this.sourceRoot,a):a},this)}}),e.prototype._parseMappings=function(a,b){for(var c,d,e,g,i,j=1,m=0,n=0,o=0,p=0,q=0,r=a.length,s=0,t={},u={},v=[],w=[];r>s;)if(";"===a.charAt(s))j++,s++,m=0;else if(","===a.charAt(s))s++;else{for(c=new f,c.generatedLine=j,g=s;r>g&&!this._charIsMappingSeparator(a,g);g++);if(d=a.slice(s,g),e=t[d])s+=d.length;else{for(e=[];g>s;)k.decode(a,s,u),i=u.value,s=u.rest,e.push(i);if(2===e.length)throw new Error("Found a source, but no line and column");if(3===e.length)throw new Error("Found a source and line, but no column");t[d]=e}c.generatedColumn=m+e[0],m=c.generatedColumn,e.length>1&&(c.source=p+e[1],p+=e[1],c.originalLine=n+e[2],n=c.originalLine,c.originalLine+=1,c.originalColumn=o+e[3],o=c.originalColumn,e.length>4&&(c.name=q+e[4],q+=e[4])),w.push(c),"number"==typeof c.originalLine&&v.push(c)}l(w,h.compareByGeneratedPositionsDeflated),this.__generatedMappings=w,l(v,h.compareByOriginalPositions),this.__originalMappings=v},e.prototype._findMapping=function(a,b,c,d,e,f){if(a[c]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+a[c]);if(a[d]<0)throw new TypeError("Column must be greater than or equal to 0, got "+a[d]);return i.search(a,b,e,f)},e.prototype.computeColumnSpans=function(){for(var a=0;a<this._generatedMappings.length;++a){var b=this._generatedMappings[a];if(a+1<this._generatedMappings.length){var c=this._generatedMappings[a+1];if(b.generatedLine===c.generatedLine){b.lastGeneratedColumn=c.generatedColumn-1;continue}}b.lastGeneratedColumn=1/0}},e.prototype.originalPositionFor=function(a){var b={generatedLine:h.getArg(a,"line"),generatedColumn:h.getArg(a,"column")},c=this._findMapping(b,this._generatedMappings,"generatedLine","generatedColumn",h.compareByGeneratedPositionsDeflated,h.getArg(a,"bias",d.GREATEST_LOWER_BOUND));if(c>=0){var e=this._generatedMappings[c];if(e.generatedLine===b.generatedLine){var f=h.getArg(e,"source",null);null!==f&&(f=this._sources.at(f),null!=this.sourceRoot&&(f=h.join(this.sourceRoot,f)));var g=h.getArg(e,"name",null);return null!==g&&(g=this._names.at(g)),{source:f,line:h.getArg(e,"originalLine",null),column:h.getArg(e,"originalColumn",null),name:g}}}return{source:null,line:null,column:null,name:null}},e.prototype.hasContentsOfAllSources=function(){return this.sourcesContent?this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(a){return null==a}):!1},e.prototype.sourceContentFor=function(a,b){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(a=h.relative(this.sourceRoot,a)),this._sources.has(a))return this.sourcesContent[this._sources.indexOf(a)];var c;if(null!=this.sourceRoot&&(c=h.urlParse(this.sourceRoot))){var d=a.replace(/^file:\/\//,"");if("file"==c.scheme&&this._sources.has(d))return this.sourcesContent[this._sources.indexOf(d)];if((!c.path||"/"==c.path)&&this._sources.has("/"+a))return this.sourcesContent[this._sources.indexOf("/"+a)]}if(b)return null;throw new Error('"'+a+'" is not in the SourceMap.')},e.prototype.generatedPositionFor=function(a){var b=h.getArg(a,"source");if(null!=this.sourceRoot&&(b=h.relative(this.sourceRoot,b)),!this._sources.has(b))return{line:null,column:null,lastColumn:null};b=this._sources.indexOf(b);var c={source:b,originalLine:h.getArg(a,"line"),originalColumn:h.getArg(a,"column")},e=this._findMapping(c,this._originalMappings,"originalLine","originalColumn",h.compareByOriginalPositions,h.getArg(a,"bias",d.GREATEST_LOWER_BOUND));if(e>=0){var f=this._originalMappings[e];if(f.source===c.source)return{line:h.getArg(f,"generatedLine",null),column:h.getArg(f,"generatedColumn",null),lastColumn:h.getArg(f,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},c.BasicSourceMapConsumer=e,g.prototype=Object.create(d.prototype),g.prototype.constructor=d,g.prototype._version=3,Object.defineProperty(g.prototype,"sources",{get:function(){for(var a=[],b=0;b<this._sections.length;b++)for(var c=0;c<this._sections[b].consumer.sources.length;c++)a.push(this._sections[b].consumer.sources[c]);return a}}),g.prototype.originalPositionFor=function(a){var b={generatedLine:h.getArg(a,"line"),generatedColumn:h.getArg(a,"column")},c=i.search(b,this._sections,function(a,b){var c=a.generatedLine-b.generatedOffset.generatedLine;return c?c:a.generatedColumn-b.generatedOffset.generatedColumn}),d=this._sections[c];return d?d.consumer.originalPositionFor({line:b.generatedLine-(d.generatedOffset.generatedLine-1),column:b.generatedColumn-(d.generatedOffset.generatedLine===b.generatedLine?d.generatedOffset.generatedColumn-1:0),bias:a.bias}):{source:null,line:null,column:null,name:null}},g.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(a){return a.consumer.hasContentsOfAllSources()})},g.prototype.sourceContentFor=function(a,b){for(var c=0;c<this._sections.length;c++){var d=this._sections[c],e=d.consumer.sourceContentFor(a,!0);if(e)return e}if(b)return null;throw new Error('"'+a+'" is not in the SourceMap.')},g.prototype.generatedPositionFor=function(a){for(var b=0;b<this._sections.length;b++){var c=this._sections[b];if(-1!==c.consumer.sources.indexOf(h.getArg(a,"source"))){var d=c.consumer.generatedPositionFor(a);if(d){var e={line:d.line+(c.generatedOffset.generatedLine-1),column:d.column+(c.generatedOffset.generatedLine===d.line?c.generatedOffset.generatedColumn-1:0)};return e}}}return{line:null,column:null}},g.prototype._parseMappings=function(a,b){this.__generatedMappings=[],this.__originalMappings=[];for(var c=0;c<this._sections.length;c++)for(var d=this._sections[c],e=d.consumer._generatedMappings,f=0;f<e.length;f++){var g=e[f],i=d.consumer._sources.at(g.source);null!==d.consumer.sourceRoot&&(i=h.join(d.consumer.sourceRoot,i)),this._sources.add(i),i=this._sources.indexOf(i);var j=d.consumer._names.at(g.name);this._names.add(j),j=this._names.indexOf(j);var k={source:i,generatedLine:g.generatedLine+(d.generatedOffset.generatedLine-1),generatedColumn:g.generatedColumn+(d.generatedOffset.generatedLine===g.generatedLine?d.generatedOffset.generatedColumn-1:0),originalLine:g.originalLine,originalColumn:g.originalColumn,name:j};this.__generatedMappings.push(k),"number"==typeof k.originalLine&&this.__originalMappings.push(k)}l(this.__generatedMappings,h.compareByGeneratedPositionsDeflated),l(this.__originalMappings,h.compareByOriginalPositions)},c.IndexedSourceMapConsumer=g},{"./array-set":129,"./base64-vlq":130,"./binary-search":132,"./quick-sort":134,"./util":138}],136:[function(a,b,c){function d(a){a||(a={}),this._file=f.getArg(a,"file",null),this._sourceRoot=f.getArg(a,"sourceRoot",null),this._skipValidation=f.getArg(a,"skipValidation",!1),this._sources=new g,this._names=new g,this._mappings=new h,this._sourcesContents=null}var e=a("./base64-vlq"),f=a("./util"),g=a("./array-set").ArraySet,h=a("./mapping-list").MappingList;d.prototype._version=3,d.fromSourceMap=function(a){var b=a.sourceRoot,c=new d({file:a.file,sourceRoot:b});return a.eachMapping(function(a){var d={generated:{line:a.generatedLine,column:a.generatedColumn}};null!=a.source&&(d.source=a.source,null!=b&&(d.source=f.relative(b,d.source)),d.original={line:a.originalLine,column:a.originalColumn},null!=a.name&&(d.name=a.name)),c.addMapping(d)}),a.sources.forEach(function(b){var d=a.sourceContentFor(b);null!=d&&c.setSourceContent(b,d)}),c},d.prototype.addMapping=function(a){var b=f.getArg(a,"generated"),c=f.getArg(a,"original",null),d=f.getArg(a,"source",null),e=f.getArg(a,"name",null);this._skipValidation||this._validateMapping(b,c,d,e),null==d||this._sources.has(d)||this._sources.add(d),null==e||this._names.has(e)||this._names.add(e),this._mappings.add({generatedLine:b.line,generatedColumn:b.column,originalLine:null!=c&&c.line,originalColumn:null!=c&&c.column,source:d,name:e})},d.prototype.setSourceContent=function(a,b){var c=a;null!=this._sourceRoot&&(c=f.relative(this._sourceRoot,c)),null!=b?(this._sourcesContents||(this._sourcesContents={}),this._sourcesContents[f.toSetString(c)]=b):this._sourcesContents&&(delete this._sourcesContents[f.toSetString(c)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},d.prototype.applySourceMap=function(a,b,c){var d=b;if(null==b){if(null==a.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');d=a.file}var e=this._sourceRoot;null!=e&&(d=f.relative(e,d));var h=new g,i=new g;this._mappings.unsortedForEach(function(b){if(b.source===d&&null!=b.originalLine){var g=a.originalPositionFor({line:b.originalLine,column:b.originalColumn});null!=g.source&&(b.source=g.source,null!=c&&(b.source=f.join(c,b.source)),null!=e&&(b.source=f.relative(e,b.source)),b.originalLine=g.line,b.originalColumn=g.column,null!=g.name&&(b.name=g.name))}var j=b.source;null==j||h.has(j)||h.add(j);var k=b.name;null==k||i.has(k)||i.add(k)},this),this._sources=h,this._names=i,a.sources.forEach(function(b){var d=a.sourceContentFor(b);null!=d&&(null!=c&&(b=f.join(c,b)),null!=e&&(b=f.relative(e,b)),this.setSourceContent(b,d))},this)},d.prototype._validateMapping=function(a,b,c,d){if((!(a&&"line"in a&&"column"in a&&a.line>0&&a.column>=0)||b||c||d)&&!(a&&"line"in a&&"column"in a&&b&&"line"in b&&"column"in b&&a.line>0&&a.column>=0&&b.line>0&&b.column>=0&&c))throw new Error("Invalid mapping: "+JSON.stringify({generated:a,source:c,original:b,name:d}))},d.prototype._serializeMappings=function(){for(var a,b,c,d=0,g=1,h=0,i=0,j=0,k=0,l="",m=this._mappings.toArray(),n=0,o=m.length;o>n;n++){if(a=m[n],a.generatedLine!==g)for(d=0;a.generatedLine!==g;)l+=";",g++;else if(n>0){if(!f.compareByGeneratedPositionsInflated(a,m[n-1]))continue;l+=","}l+=e.encode(a.generatedColumn-d),d=a.generatedColumn,null!=a.source&&(c=this._sources.indexOf(a.source),l+=e.encode(c-k),k=c,l+=e.encode(a.originalLine-1-i),i=a.originalLine-1,l+=e.encode(a.originalColumn-h),h=a.originalColumn,null!=a.name&&(b=this._names.indexOf(a.name),l+=e.encode(b-j),j=b))}return l},d.prototype._generateSourcesContent=function(a,b){return a.map(function(a){if(!this._sourcesContents)return null;null!=b&&(a=f.relative(b,a));var c=f.toSetString(a);return Object.prototype.hasOwnProperty.call(this._sourcesContents,c)?this._sourcesContents[c]:null},this)},d.prototype.toJSON=function(){var a={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(a.file=this._file),null!=this._sourceRoot&&(a.sourceRoot=this._sourceRoot),this._sourcesContents&&(a.sourcesContent=this._generateSourcesContent(a.sources,a.sourceRoot)),a},d.prototype.toString=function(){return JSON.stringify(this.toJSON())},c.SourceMapGenerator=d},{"./array-set":129,"./base64-vlq":130,"./mapping-list":133,"./util":138}],137:[function(a,b,c){function d(a,b,c,d,e){this.children=[],this.sourceContents={},this.line=null==a?null:a,this.column=null==b?null:b,this.source=null==c?null:c,this.name=null==e?null:e,this[i]=!0,null!=d&&this.add(d)}var e=a("./source-map-generator").SourceMapGenerator,f=a("./util"),g=/(\r?\n)/,h=10,i="$$$isSourceNode$$$";d.fromStringWithSourceMap=function(a,b,c){function e(a,b){if(null===a||void 0===a.source)h.add(b);else{var e=c?f.join(c,a.source):a.source;h.add(new d(a.originalLine,a.originalColumn,e,b,a.name))}}var h=new d,i=a.split(g),j=function(){var a=i.shift(),b=i.shift()||"";return a+b},k=1,l=0,m=null;return b.eachMapping(function(a){if(null!==m){if(!(k<a.generatedLine)){var b=i[0],c=b.substr(0,a.generatedColumn-l);return i[0]=b.substr(a.generatedColumn-l),l=a.generatedColumn,e(m,c),void(m=a)}e(m,j()),k++,l=0}for(;k<a.generatedLine;)h.add(j()),k++;if(l<a.generatedColumn){var b=i[0];h.add(b.substr(0,a.generatedColumn)),i[0]=b.substr(a.generatedColumn),l=a.generatedColumn}m=a},this),i.length>0&&(m&&e(m,j()),h.add(i.join(""))),b.sources.forEach(function(a){var d=b.sourceContentFor(a);null!=d&&(null!=c&&(a=f.join(c,a)),h.setSourceContent(a,d))}),h},d.prototype.add=function(a){if(Array.isArray(a))a.forEach(function(a){this.add(a)},this);else{if(!a[i]&&"string"!=typeof a)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+a);a&&this.children.push(a)}return this},d.prototype.prepend=function(a){if(Array.isArray(a))for(var b=a.length-1;b>=0;b--)this.prepend(a[b]);else{if(!a[i]&&"string"!=typeof a)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+a);this.children.unshift(a)}return this},d.prototype.walk=function(a){for(var b,c=0,d=this.children.length;d>c;c++)b=this.children[c],b[i]?b.walk(a):""!==b&&a(b,{source:this.source,line:this.line,column:this.column,name:this.name})},d.prototype.join=function(a){var b,c,d=this.children.length;if(d>0){for(b=[],c=0;d-1>c;c++)b.push(this.children[c]),b.push(a);b.push(this.children[c]),this.children=b}return this},d.prototype.replaceRight=function(a,b){var c=this.children[this.children.length-1];return c[i]?c.replaceRight(a,b):"string"==typeof c?this.children[this.children.length-1]=c.replace(a,b):this.children.push("".replace(a,b)),this},d.prototype.setSourceContent=function(a,b){this.sourceContents[f.toSetString(a)]=b},d.prototype.walkSourceContents=function(a){for(var b=0,c=this.children.length;c>b;b++)this.children[b][i]&&this.children[b].walkSourceContents(a);for(var d=Object.keys(this.sourceContents),b=0,c=d.length;c>b;b++)a(f.fromSetString(d[b]),this.sourceContents[d[b]])},d.prototype.toString=function(){var a="";return this.walk(function(b){a+=b}),a},d.prototype.toStringWithSourceMap=function(a){var b={code:"",line:1,column:0},c=new e(a),d=!1,f=null,g=null,i=null,j=null;return this.walk(function(a,e){b.code+=a,null!==e.source&&null!==e.line&&null!==e.column?(f===e.source&&g===e.line&&i===e.column&&j===e.name||c.addMapping({source:e.source,original:{line:e.line,column:e.column},generated:{line:b.line,column:b.column},name:e.name}),f=e.source,g=e.line,i=e.column,j=e.name,d=!0):d&&(c.addMapping({generated:{line:b.line,column:b.column}}),f=null,d=!1);for(var k=0,l=a.length;l>k;k++)a.charCodeAt(k)===h?(b.line++,b.column=0,k+1===l?(f=null,d=!1):d&&c.addMapping({source:e.source,original:{line:e.line,column:e.column},generated:{line:b.line,column:b.column},name:e.name})):b.column++}),this.walkSourceContents(function(a,b){c.setSourceContent(a,b)}),{code:b.code,map:c}},c.SourceNode=d},{"./source-map-generator":136,"./util":138}],138:[function(a,b,c){function d(a,b,c){if(b in a)return a[b];if(3===arguments.length)return c;throw new Error('"'+b+'" is a required argument.')}function e(a){var b=a.match(p);return b?{scheme:b[1],auth:b[2],host:b[3],port:b[4],path:b[5]}:null}function f(a){var b="";return a.scheme&&(b+=a.scheme+":"),b+="//",a.auth&&(b+=a.auth+"@"),a.host&&(b+=a.host),a.port&&(b+=":"+a.port),a.path&&(b+=a.path),b}function g(a){var b=a,d=e(a);if(d){if(!d.path)return a;b=d.path}for(var g,h=c.isAbsolute(b),i=b.split(/\/+/),j=0,k=i.length-1;k>=0;k--)g=i[k],"."===g?i.splice(k,1):".."===g?j++:j>0&&(""===g?(i.splice(k+1,j),j=0):(i.splice(k,2),j--));return b=i.join("/"),""===b&&(b=h?"/":"."),d?(d.path=b,f(d)):b}function h(a,b){""===a&&(a="."),""===b&&(b=".");var c=e(b),d=e(a);if(d&&(a=d.path||"/"),c&&!c.scheme)return d&&(c.scheme=d.scheme),f(c);if(c||b.match(q))return b;if(d&&!d.host&&!d.path)return d.host=b,f(d);var h="/"===b.charAt(0)?b:g(a.replace(/\/+$/,"")+"/"+b);return d?(d.path=h,f(d)):h}function i(a,b){""===a&&(a="."),a=a.replace(/\/$/,"");for(var c=0;0!==b.indexOf(a+"/");){var d=a.lastIndexOf("/");if(0>d)return b;if(a=a.slice(0,d),a.match(/^([^\/]+:\/)?\/*$/))return b;++c}return Array(c+1).join("../")+b.substr(a.length+1)}function j(a){return"$"+a}function k(a){return a.substr(1)}function l(a,b,c){var d=a.source-b.source;return 0!==d?d:(d=a.originalLine-b.originalLine,0!==d?d:(d=a.originalColumn-b.originalColumn,0!==d||c?d:(d=a.generatedColumn-b.generatedColumn,0!==d?d:(d=a.generatedLine-b.generatedLine,0!==d?d:a.name-b.name))))}function m(a,b,c){var d=a.generatedLine-b.generatedLine;return 0!==d?d:(d=a.generatedColumn-b.generatedColumn,0!==d||c?d:(d=a.source-b.source,0!==d?d:(d=a.originalLine-b.originalLine,0!==d?d:(d=a.originalColumn-b.originalColumn,0!==d?d:a.name-b.name))))}function n(a,b){return a===b?0:a>b?1:-1}function o(a,b){var c=a.generatedLine-b.generatedLine;return 0!==c?c:(c=a.generatedColumn-b.generatedColumn,0!==c?c:(c=n(a.source,b.source),0!==c?c:(c=a.originalLine-b.originalLine,0!==c?c:(c=a.originalColumn-b.originalColumn,0!==c?c:n(a.name,b.name)))))}c.getArg=d;var p=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,q=/^data:.+\,.+$/;c.urlParse=e,c.urlGenerate=f,c.normalize=g,c.join=h,c.isAbsolute=function(a){return"/"===a.charAt(0)||!!a.match(p)},c.relative=i,c.toSetString=j,c.fromSetString=k,c.compareByOriginalPositions=l,c.compareByGeneratedPositionsDeflated=m,c.compareByGeneratedPositionsInflated=o},{}],139:[function(a,b,c){c.SourceMapGenerator=a("./lib/source-map-generator").SourceMapGenerator,c.SourceMapConsumer=a("./lib/source-map-consumer").SourceMapConsumer,c.SourceNode=a("./lib/source-node").SourceNode},{"./lib/source-map-consumer":135,"./lib/source-map-generator":136,"./lib/source-node":137}],140:[function(a,b,c){function d(a){for(var b=Object.create(null),c=0;c<a.length;++c)b[a[c]]=!0;return b}function e(a,b){return Array.prototype.slice.call(a,b||0)}function f(a){return a.split("")}function g(a,b){for(var c=b.length;--c>=0;)if(b[c]==a)return!0;return!1}function h(a,b){for(var c=0,d=b.length;d>c;++c)if(a(b[c]))return b[c]}function i(a,b){if(0>=b)return"";if(1==b)return a;var c=i(a,b>>1);return c+=c,1&b&&(c+=a),c}function j(a,b){Error.call(this,a),this.msg=a,this.defs=b}function k(a,b,c){a===!0&&(a={});var d=a||{};if(c)for(var e in d)d.hasOwnProperty(e)&&!b.hasOwnProperty(e)&&j.croak("`"+e+"` is not a supported option",b);for(var e in b)b.hasOwnProperty(e)&&(d[e]=a&&a.hasOwnProperty(e)?a[e]:b[e]);return d}function l(a,b){var c=0;for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d],c++);return c}function m(){}function n(a,b){a.indexOf(b)<0&&a.push(b)}function o(a,b){return a.replace(/\{(.+?)\}/g,function(a,c){return b[c]})}function p(a,b){for(var c=a.length;--c>=0;)a[c]===b&&a.splice(c,1)}function q(a,b){function c(a,c){for(var d=[],e=0,f=0,g=0;e<a.length&&f<c.length;)b(a[e],c[f])<=0?d[g++]=a[e++]:d[g++]=c[f++];return e<a.length&&d.push.apply(d,a.slice(e)),f<c.length&&d.push.apply(d,c.slice(f)),d}function d(a){if(a.length<=1)return a;var b=Math.floor(a.length/2),e=a.slice(0,b),f=a.slice(b);return e=d(e),f=d(f),c(e,f)}return a.length<2?a.slice():d(a)}function r(a,b){return a.filter(function(a){return b.indexOf(a)<0})}function s(a,b){return a.filter(function(a){return b.indexOf(a)>=0})}function t(a){function b(a){if(1==a.length)return c+="return str === "+JSON.stringify(a[0])+";";c+="switch(str){";for(var b=0;b<a.length;++b)c+="case "+JSON.stringify(a[b])+":";c+="return true}return false;"}a instanceof Array||(a=a.split(" "));var c="",d=[];a:for(var e=0;e<a.length;++e){for(var f=0;f<d.length;++f)if(d[f][0].length==a[e].length){d[f].push(a[e]);continue a}d.push([a[e]])}if(d.length>3){d.sort(function(a,b){return b.length-a.length}),c+="switch(str.length){";for(var e=0;e<d.length;++e){var g=d[e];c+="case "+g[0].length+":",b(g)}c+="}"}else b(a);return new Function("str",c)}function u(a,b){for(var c=a.length;--c>=0;)if(!b(a[c]))return!1;return!0}function v(){this._values=Object.create(null),this._size=0}function w(a,b,d,e){arguments.length<4&&(e=_),b=b?b.split(/\s+/):[];var f=b;e&&e.PROPS&&(b=b.concat(e.PROPS));for(var g="return function AST_"+a+"(props){ if (props) { ",h=b.length;--h>=0;)g+="this."+b[h]+" = props."+b[h]+";";var i=e&&new e;(i&&i.initialize||d&&d.initialize)&&(g+="this.initialize();"),g+="}}";var j=new Function(g)();if(i&&(j.prototype=i,j.BASE=e),e&&e.SUBCLASSES.push(j),j.prototype.CTOR=j,j.PROPS=b||null,j.SELF_PROPS=f,j.SUBCLASSES=[],a&&(j.prototype.TYPE=j.TYPE=a),d)for(h in d)d.hasOwnProperty(h)&&(/^\$/.test(h)?j[h.substr(1)]=d[h]:j.prototype[h]=d[h]);return j.DEFMETHOD=function(a,b){this.prototype[a]=b},c["AST_"+a]=j,j}function x(a,b){a.body instanceof aa?a.body._walk(b):a.body.forEach(function(a){a._walk(b)})}function y(a){this.visit=a,this.stack=[],this.directives=Object.create(null)}function z(a){return a>=97&&122>=a||a>=65&&90>=a||a>=170&&Rb.letter.test(String.fromCharCode(a))}function A(a){return a>=48&&57>=a}function B(a){return A(a)||z(a)}function C(a){return Rb.digit.test(String.fromCharCode(a))}function D(a){return Rb.non_spacing_mark.test(a)||Rb.space_combining_mark.test(a)}function E(a){return Rb.connector_punctuation.test(a)}function F(a){return!Hb(a)&&/^[a-z_$][a-z0-9_$]*$/i.test(a)}function G(a){return 36==a||95==a||z(a)}function H(a){var b=a.charCodeAt(0);return G(b)||A(b)||8204==b||8205==b||D(a)||E(a)||C(b)}function I(a){return/^[a-z_$][a-z0-9_$]*$/i.test(a)}function J(a){if(Kb.test(a))return parseInt(a.substr(2),16);if(Lb.test(a))return parseInt(a.substr(1),8);var b=parseFloat(a);return b==a?b:void 0}function K(a,b,c,d,e){this.message=a,this.filename=b,this.line=c,this.col=d,this.pos=e,this.stack=(new Error).stack}function L(a,b,c,d,e){throw new K(a,b,c,d,e)}function M(a,b,c){return a.type==b&&(null==c||a.value==c)}function N(a,b,c,d){function e(){return z.text.charAt(z.pos)}function f(a,b){var c=z.text.charAt(z.pos++);if(a&&!c)throw Sb;return"\r\n\u2028\u2029".indexOf(c)>=0?(z.newline_before=z.newline_before||!b,++z.line,z.col=0,b||"\r"!=c||"\n"!=e()||(++z.pos,c="\n")):++z.col,c}function g(a){for(;a-- >0;)f()}function h(a){return z.text.substr(z.pos,a.length)==a}function i(a,b){var c=z.text.indexOf(a,z.pos);if(b&&-1==c)throw Sb;return c}function j(){z.tokline=z.line,z.tokcol=z.col,z.tokpos=z.pos}function k(c,d,e){z.regex_allowed="operator"==c&&!Ub(d)||"keyword"==c&&Ib(d)||"punc"==c&&Ob(d),C="punc"==c&&"."==d;var f={type:c,value:d,line:z.tokline,col:z.tokcol,pos:z.tokpos,endline:z.line,endcol:z.col,endpos:z.pos,nlb:z.newline_before,file:b};if(/^(?:num|string|regexp)$/i.test(c)&&(f.raw=a.substring(f.pos,f.endpos)),!e){f.comments_before=z.comments_before,z.comments_before=[];for(var g=0,h=f.comments_before.length;h>g;g++)f.nlb=f.nlb||f.comments_before[g].nlb}return z.newline_before=!1,new $(f)}function l(){for(var a;Nb(a=e())||"\u2028"==a||"\u2029"==a;)f()}function m(a){for(var b,c="",d=0;(b=e())&&a(b,d++);)c+=f();return c}function n(a){L(a,b,z.tokline,z.tokcol,z.tokpos)}function o(a){var b=!1,c=!1,d=!1,e="."==a,f=m(function(f,g){var h=f.charCodeAt(0);switch(h){case 120:case 88:return d?!1:d=!0;case 101:case 69:return d?!0:b?!1:b=c=!0;case 45:return c||0==g&&!a;case 43:return c;case c=!1,46:return e||d||b?!1:e=!0}return B(h)});a&&(f=a+f);var g=J(f);return isNaN(g)?void n("Invalid syntax: "+f):k("num",g)}function p(a){var b=f(!0,a);switch(b.charCodeAt(0)){case 110:return"\n";case 114:return"\r";case 116:return"     ";case 98:return"\b";case 118:return"\x0B";case 102:return"\f";case 48:return"\x00";case 120:return String.fromCharCode(q(2));case 117:return String.fromCharCode(q(4));case 10:return"";case 13:if("\n"==e())return f(!0,a),""}return b}function q(a){for(var b=0;a>0;--a){var c=parseInt(f(!0),16);isNaN(c)&&n("Invalid hex-character pattern in string"),b=b<<4|c}return b}function r(a){var b,c=z.regex_allowed,d=i("\n");return-1==d?(b=z.text.substr(z.pos),z.pos=z.text.length):(b=z.text.substring(z.pos,d),z.pos=d),z.col=z.tokcol+(z.pos-z.tokpos),z.comments_before.push(k(a,b,!0)),z.regex_allowed=c,y()}function s(){for(var a,b,c=!1,d="",g=!1;null!=(a=e());)if(c)"u"!=a&&n("Expecting UnicodeEscapeSequence -- uXXXX"),a=p(),H(a)||n("Unicode char: "+a.charCodeAt(0)+" is not valid in identifier"),d+=a,c=!1;else if("\\"==a)g=c=!0,f();else{if(!H(a))break;d+=f()}return Fb(d)&&g&&(b=d.charCodeAt(0).toString(16).toUpperCase(),d="\\u"+"0000".substr(b.length)+b+d.slice(1)),d}function t(a){function b(a){if(!e())return a;var c=a+e();return Mb(c)?(f(),b(c)):a}return k("operator",b(a||f()));
-}function u(){switch(f(),e()){case"/":return f(),r("comment1");case"*":return f(),E()}return z.regex_allowed?F(""):t("/")}function v(){return f(),A(e().charCodeAt(0))?o("."):k("punc",".")}function w(){var a=s();return C?k("name",a):Gb(a)?k("atom",a):Fb(a)?Mb(a)?k("operator",a):k("keyword",a):k("name",a)}function x(a,b){return function(c){try{return b(c)}catch(d){if(d!==Sb)throw d;n(a)}}}function y(a){if(null!=a)return F(a);if(l(),j(),c){if(h("<!--"))return g(4),r("comment3");if(h("-->")&&z.newline_before)return g(3),r("comment4")}var b=e();if(!b)return k("eof");var i=b.charCodeAt(0);switch(i){case 34:case 39:return D(b);case 46:return v();case 47:return u()}return A(i)?o():Pb(b)?k("punc",f()):Jb(b)?t():92==i||G(i)?w():d&&0==z.pos&&h("#!")?(g(2),r("comment5")):void n("Unexpected character '"+b+"'")}var z={text:a,filename:b,pos:0,tokpos:0,line:1,tokline:0,col:0,tokcol:0,newline_before:!1,regex_allowed:!1,comments_before:[]},C=!1,D=x("Unterminated string constant",function(a){for(var b=f(),c="";;){var d=f(!0,!0);if("\\"==d){var e=0,g=null;d=m(function(a){if(a>="0"&&"7">=a){if(!g)return g=a,++e;if("3">=g&&2>=e)return++e;if(g>="4"&&1>=e)return++e}return!1}),d=e>0?String.fromCharCode(parseInt(d,8)):p(!0)}else if("\r\n\u2028\u2029".indexOf(d)>=0)n("Unterminated string constant");else if(d==b)break;c+=d}var h=k("string",c);return h.quote=a,h}),E=x("Unterminated multiline comment",function(){var a=z.regex_allowed,b=i("*/",!0),c=z.text.substring(z.pos,b),d=c.split("\n"),e=d.length;z.pos=b+2,z.line+=e-1,e>1?z.col=d[e-1].length:z.col+=d[e-1].length,z.col+=2;var f=z.newline_before=z.newline_before||c.indexOf("\n")>=0;return z.comments_before.push(k("comment2",c,!0)),z.regex_allowed=a,z.newline_before=f,y()}),F=x("Unterminated regular expression",function(a){for(var b,c=!1,d=!1;b=f(!0);)if(c)a+="\\"+b,c=!1;else if("["==b)d=!0,a+=b;else if("]"==b&&d)d=!1,a+=b;else{if("/"==b&&!d)break;"\\"==b?c=!0:a+=b}var e=s();try{return k("regexp",new RegExp(a,e))}catch(g){n(g.message)}});return y.context=function(a){return a&&(z=a),z},y}function O(a,b){function c(a,b){return M(S.token,a,b)}function d(){return S.peeked||(S.peeked=S.input())}function e(){return S.prev=S.token,S.peeked?(S.token=S.peeked,S.peeked=null):S.token=S.input(),S.in_directives=S.in_directives&&("string"==S.token.type||c("punc",";")),S.token}function f(){return S.prev}function g(a,b,c,d){var e=S.input.context();L(a,e.filename,null!=b?b:e.tokline,null!=c?c:e.tokcol,null!=d?d:e.tokpos)}function i(a,b){g(b,a.line,a.col)}function j(a){null==a&&(a=S.token),i(a,"Unexpected token: "+a.type+" ("+a.value+")")}function l(a,b){return c(a,b)?e():void i(S.token,"Unexpected token "+S.token.type+" «"+S.token.value+"», expected "+a+" «"+b+"»")}function m(a){return l("punc",a)}function n(){return!b.strict&&(S.token.nlb||c("eof")||c("punc","}"))}function o(a){c("punc",";")?e():a||n()||j()}function p(){m("(");var a=qa(!0);return m(")"),a}function q(a){return function(){var b=S.token,c=a(),d=f();return c.start=b,c.end=d,c}}function r(){(c("operator","/")||c("operator","/="))&&(S.peeked=null,S.token=S.input(S.token.value.substr(1)))}function s(){var a=J(ob);h(function(b){return b.name==a.name},S.labels)&&g("Label "+a.name+" defined twice"),m(":"),S.labels.push(a);var b=T();return S.labels.pop(),b instanceof ja||a.references.forEach(function(b){b instanceof Ca&&(b=b.label.start,g("Continue label `"+a.name+"` refers to non-IterationStatement.",b.line,b.col,b.pos))}),new ia({body:b,label:a})}function t(a){return new da({body:(a=qa(!0),o(),a)})}function u(a){var b,c=null;n()||(c=J(qb,!0)),null!=c?(b=h(function(a){return a.name==c.name},S.labels),b||g("Undefined label "+c.name),c.thedef=b):0==S.in_loop&&g(a.TYPE+" not inside a loop or switch"),o();var d=new a({label:c});return b&&b.references.push(d),d}function v(){m("(");var a=null;return!c("punc",";")&&(a=c("keyword","var")?(e(),V(!0)):qa(!0,!0),c("operator","in"))?(a instanceof Ma&&a.definitions.length>1&&g("Only one variable declaration allowed in for..in loop"),e(),x(a)):w(a)}function w(a){m(";");var b=c("punc",";")?null:qa(!0);m(";");var d=c("punc",")")?null:qa(!0);return m(")"),new na({init:a,condition:b,step:d,body:R(T)})}function x(a){var b=a instanceof Ma?a.definitions[0].name:null,c=qa(!0);return m(")"),new oa({init:a,name:b,object:c,body:R(T)})}function y(){var a=p(),b=T(),d=null;return c("keyword","else")&&(e(),d=T()),new Da({condition:a,body:b,alternative:d})}function z(){m("{");for(var a=[];!c("punc","}");)c("eof")&&j(),a.push(T());return e(),a}function A(){m("{");for(var a,b=[],d=null,g=null;!c("punc","}");)c("eof")&&j(),c("keyword","case")?(g&&(g.end=f()),d=[],g=new Ha({start:(a=S.token,e(),a),expression:qa(!0),body:d}),b.push(g),m(":")):c("keyword","default")?(g&&(g.end=f()),d=[],g=new Ga({start:(a=S.token,e(),m(":"),a),body:d}),b.push(g)):(d||j(),d.push(T()));return g&&(g.end=f()),e(),b}function B(){var a=z(),b=null,d=null;if(c("keyword","catch")){var h=S.token;e(),m("(");var i=J(nb);m(")"),b=new Ja({start:h,argname:i,body:z(),end:f()})}if(c("keyword","finally")){var h=S.token;e(),d=new Ka({start:h,body:z(),end:f()})}return b||d||g("Missing catch/finally blocks"),new Ia({body:a,bcatch:b,bfinally:d})}function C(a,b){for(var d=[];d.push(new Oa({start:S.token,name:J(b?jb:ib),value:c("operator","=")?(e(),qa(!1,a)):null,end:f()})),c("punc",",");)e();return d}function D(){var a,b=S.token;switch(b.type){case"name":case"keyword":a=H(pb);break;case"num":a=new ub({start:b,end:b,value:b.value});break;case"string":a=new tb({start:b,end:b,value:b.value,quote:b.quote});break;case"regexp":a=new vb({start:b,end:b,value:b.value});break;case"atom":switch(b.value){case"false":a=new Db({start:b,end:b});break;case"true":a=new Eb({start:b,end:b});break;case"null":a=new xb({start:b,end:b})}break;case"operator":if(!I(b.value))throw new K("Invalid getter/setter name: "+b.value,b.file,b.line,b.col,b.pos);a=H(pb)}return e(),a}function E(a,b,d){for(var f=!0,g=[];!c("punc",a)&&(f?f=!1:m(","),!b||!c("punc",a));)c("punc",",")&&d?g.push(new Ab({start:S.token,end:S.token})):g.push(qa(!1));return e(),g}function F(){var a=S.token;switch(e(),a.type){case"num":case"string":case"name":case"operator":case"keyword":case"atom":return a.value;default:j()}}function G(){var a=S.token;switch(e(),a.type){case"name":case"operator":case"keyword":case"atom":return a.value;default:j()}}function H(a){var b=S.token.value;return new("this"==b?rb:a)({name:String(b),start:S.token,end:S.token})}function J(a,b){if(!c("name"))return b||g("Name expected"),null;var d=H(a);return e(),d}function O(a,b,c){return"++"!=b&&"--"!=b||Q(c)||g("Invalid use of "+b+" operator"),new a({operator:b,expression:c})}function P(a){return ea(aa(!0),0,a)}function Q(a){return b.strict?a instanceof rb?!1:a instanceof Sa||a instanceof fb:!0}function R(a){++S.in_loop;var b=a();return--S.in_loop,b}b=k(b,{strict:!1,filename:null,toplevel:null,expression:!1,html5_comments:!0,bare_returns:!1,shebang:!0});var S={input:"string"==typeof a?N(a,b.filename,b.html5_comments,b.shebang):a,token:null,prev:null,peeked:null,in_function:0,in_directives:!0,in_loop:0,labels:[]};S.token=e();var T=q(function(){var a;switch(r(),S.token.type){case"string":var h=S.in_directives,i=t();return h&&i.body instanceof tb&&!c("punc",",")?new ca({start:i.body.start,end:i.body.end,quote:i.body.quote,value:i.body.value}):i;case"num":case"regexp":case"operator":case"atom":return t();case"name":return M(d(),"punc",":")?s():t();case"punc":switch(S.token.value){case"{":return new fa({start:S.token,body:z(),end:f()});case"[":case"(":return t();case";":return e(),new ga;default:j()}case"keyword":switch(a=S.token.value,e(),a){case"break":return u(Ba);case"continue":return u(Ca);case"debugger":return o(),new ba;case"do":return new la({body:R(T),condition:(l("keyword","while"),a=p(),o(!0),a)});case"while":return new ma({condition:p(),body:R(T)});case"for":return v();case"function":return U(va);case"if":return y();case"return":return 0!=S.in_function||b.bare_returns||g("'return' outside of function"),new ya({value:c("punc",";")?(e(),null):n()?null:(a=qa(!0),o(),a)});case"switch":return new Ea({expression:p(),body:R(A)});case"throw":return S.token.nlb&&g("Illegal newline after 'throw'"),new za({value:(a=qa(!0),o(),a)});case"try":return B();case"var":return a=V(),o(),a;case"const":return a=W(),o(),a;case"with":return new pa({expression:p(),body:T()});default:j()}}}),U=function(a){var b=a===va,d=c("name")?J(b?lb:mb):null;return b&&!d&&j(),m("("),new a({name:d,argnames:function(a,b){for(;!c("punc",")");)a?a=!1:m(","),b.push(J(kb));return e(),b}(!0,[]),body:function(a,b){++S.in_function,S.in_directives=!0,S.in_loop=0,S.labels=[];var c=z();return--S.in_function,S.in_loop=a,S.labels=b,c}(S.in_loop,S.labels)})},V=function(a){return new Ma({start:f(),definitions:C(a,!1),end:f()})},W=function(){return new Na({start:f(),definitions:C(!1,!0),end:f()})},X=function(a){var b=S.token;l("operator","new");var d,g=Y(!1);return c("punc","(")?(e(),d=E(")")):d=[],_(new Qa({start:b,expression:g,args:d,end:f()}),a)},Y=function(a){if(c("operator","new"))return X(a);var b=S.token;if(c("punc")){switch(b.value){case"(":e();var d=qa(!0);return d.start=b,d.end=S.token,m(")"),_(d,a);case"[":return _(Z(),a);case"{":return _($(),a)}j()}if(c("keyword","function")){e();var g=U(ua);return g.start=b,g.end=f(),_(g,a)}return Yb[S.token.type]?_(D(),a):void j()},Z=q(function(){return m("["),new _a({elements:E("]",!b.strict,!0)})}),$=q(function(){m("{");for(var a=!0,d=[];!c("punc","}")&&(a?a=!1:m(","),b.strict||!c("punc","}"));){var g=S.token,h=g.type,i=F();if("name"==h&&!c("punc",":")){if("get"==i){d.push(new eb({start:g,key:D(),value:U(ta),end:f()}));continue}if("set"==i){d.push(new db({start:g,key:D(),value:U(ta),end:f()}));continue}}m(":"),d.push(new cb({start:g,quote:g.quote,key:i,value:qa(!1),end:f()}))}return e(),new ab({properties:d})}),_=function(a,b){var d=a.start;if(c("punc","."))return e(),_(new Ta({start:d,expression:a,property:G(),end:f()}),b);if(c("punc","[")){e();var g=qa(!0);return m("]"),_(new Ua({start:d,expression:a,property:g,end:f()}),b)}return b&&c("punc","(")?(e(),_(new Pa({start:d,expression:a,args:E(")"),end:f()}),!0)):a},aa=function(a){var b=S.token;if(c("operator")&&Tb(b.value)){e(),r();var d=O(Wa,b.value,aa(a));return d.start=b,d.end=f(),d}for(var g=Y(a);c("operator")&&Ub(S.token.value)&&!S.token.nlb;)g=O(Xa,S.token.value,g),g.start=b,g.end=S.token,e();return g},ea=function(a,b,d){var f=c("operator")?S.token.value:null;"in"==f&&d&&(f=null);var g=null!=f?Wb[f]:null;if(null!=g&&g>b){e();var h=ea(aa(!0),g,d);return ea(new Ya({start:a.start,left:a,operator:f,right:h,end:h.end}),b,d)}return a},ha=function(a){var b=S.token,d=P(a);if(c("operator","?")){e();var g=qa(!1);return m(":"),new Za({start:b,condition:d,consequent:g,alternative:qa(!1,a),end:f()})}return d},ka=function(a){var b=S.token,d=ha(a),h=S.token.value;if(c("operator")&&Vb(h)){if(Q(d))return e(),new $a({start:b,left:d,operator:h,right:ka(a),end:f()});g("Invalid assignment")}return d},qa=function(a,b){var f=S.token,g=ka(b);return a&&c("punc",",")?(e(),new Ra({start:f,car:g,cdr:qa(!0,b),end:d()})):g};return b.expression?qa(!0):function(){for(var a=S.token,d=[];!c("eof");)d.push(T());var e=f(),g=b.toplevel;return g?(g.body=g.body.concat(d),g.end=e):g=new ra({start:a,body:d,end:e}),g}()}function P(a,b){y.call(this),this.before=a,this.after=b}function Q(a,b,c){this.name=c.name,this.orig=[c],this.scope=a,this.references=[],this.global=!1,this.mangled_name=null,this.undeclared=!1,this.constant=!1,this.index=b}function R(a){function b(a,b){return a.replace(/[\u0080-\uffff]/g,function(a){var c=a.charCodeAt(0).toString(16);if(c.length<=2&&!b){for(;c.length<2;)c="0"+c;return"\\x"+c}for(;c.length<4;)c="0"+c;return"\\u"+c})}function c(c,d){function e(){return"'"+c.replace(/\x27/g,"\\'")+"'"}function f(){return'"'+c.replace(/\x22/g,'\\"')+'"'}var g=0,h=0;switch(c=c.replace(/[\\\b\f\n\r\v\t\x22\x27\u2028\u2029\0\ufeff]/g,function(b){switch(b){case"\\":return"\\\\";case"\b":return"\\b";case"\f":return"\\f";case"\n":return"\\n";case"\r":return"\\r";case"\x0B":return a.screw_ie8?"\\v":"\\x0B";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029";case'"':return++g,'"';case"'":return++h,"'";case"\x00":return"\\x00";case"\ufeff":return"\\ufeff"}return b}),a.ascii_only&&(c=b(c)),a.quote_style){case 1:return e();case 2:return f();case 3:return"'"==d?e():f();default:return g>h?e():f()}}function d(b,d){var e=c(b,d);return a.inline_script&&(e=e.replace(/<\x2fscript([>\/\t\n\f\r ])/gi,"<\\/script$1"),e=e.replace(/\x3c!--/g,"\\x3c!--"),e=e.replace(/--\x3e/g,"--\\x3e")),e}function e(c){return c=c.toString(),a.ascii_only&&(c=b(c,!0)),c}function f(b){return i(" ",a.indent_start+v-b*a.indent_level)}function g(){return C.charAt(C.length-1)}function h(){a.max_line_len&&w>a.max_line_len&&j("\n")}function j(b){b=String(b);var c=b.charAt(0);if(B&&(B=!1,c&&!(";}".indexOf(c)<0)||/[;]$/.test(C)||(a.semicolons||D(c)?(z+=";",w++,y++):(z+="\n",y++,x++,w=0,/^\s+$/.test(b)&&(B=!0)),a.beautify||(A=!1))),!a.beautify&&a.preserve_line&&L[L.length-1])for(var d=L[L.length-1].start.line;d>x;)z+="\n",y++,x++,w=0,A=!1;if(A){var e=g();(H(e)&&(H(c)||"\\"==c)||/^[\+\-\/]$/.test(c)&&c==e)&&(z+=" ",w++,y++),A=!1}var f=b.split(/\r?\n/),h=f.length-1;x+=h,0==h?w+=f[h].length:w=f[h].length,y+=b.length,C=b,z+=b}function l(){B=!1,j(";")}function n(){return v+a.indent_level}function o(a){var b;return j("{"),I(),G(n(),function(){b=a()}),F(),j("}"),b}function p(a){j("(");var b=a();return j(")"),b}function q(a){j("[");var b=a();return j("]"),b}function r(){j(","),E()}function s(){j(":"),a.space_colon&&E()}function u(){return z}a=k(a,{indent_start:0,indent_level:4,quote_keys:!1,space_colon:!0,ascii_only:!1,unescape_regexps:!1,inline_script:!1,width:80,max_line_len:32e3,beautify:!1,source_map:null,bracketize:!1,semicolons:!0,comments:!1,shebang:!0,preserve_line:!1,screw_ie8:!1,preamble:null,quote_style:0},!0);var v=0,w=0,x=1,y=0,z="",A=!1,B=!1,C=null,D=t("( [ + * / - , ."),E=a.beautify?function(){j(" ")}:function(){A=!0},F=a.beautify?function(b){a.beautify&&j(f(b?.5:0))}:m,G=a.beautify?function(a,b){a===!0&&(a=n());var c=v;v=a;var d=b();return v=c,d}:function(a,b){return b()},I=a.beautify?function(){j("\n")}:h,J=a.beautify?function(){j(";")}:function(){B=!0},K=a.source_map?function(b,c){try{b&&a.source_map.add(b.file||"?",x,w,b.line,b.col,c||"name"!=b.type?c:b.value)}catch(d){_.warn("Couldn't figure out mapping for {file}:{line},{col} → {cline},{ccol} [{name}]",{file:b.file,line:b.line,col:b.col,cline:x,ccol:w,name:c||""})}}:m;a.preamble&&j(a.preamble.replace(/\r\n?|[\n\u2028\u2029]|\s*$/g,"\n"));var L=[];return{get:u,toString:u,indent:F,indentation:function(){return v},current_width:function(){return w-v},should_break:function(){return a.width&&this.current_width()>=a.width},newline:I,print:j,space:E,comma:r,colon:s,last:function(){return C},semicolon:J,force_semicolon:l,to_ascii:b,print_name:function(a){j(e(a))},print_string:function(a,b){j(d(a,b))},next_indent:n,with_indent:G,with_block:o,with_parens:p,with_square:q,add_mapping:K,option:function(b){return a[b]},line:function(){return x},col:function(){return w},pos:function(){return y},push_node:function(a){L.push(a)},pop_node:function(){return L.pop()},stack:function(){return L},parent:function(a){return L[L.length-2-(a||0)]}}}function S(a,b){return this instanceof S?(P.call(this,this.before,this.after),void(this.options=k(a,{sequences:!b,properties:!b,dead_code:!b,drop_debugger:!b,unsafe:!1,unsafe_comps:!1,conditionals:!b,comparisons:!b,evaluate:!b,booleans:!b,loops:!b,unused:!b,hoist_funs:!b,keep_fargs:!0,keep_fnames:!1,hoist_vars:!1,if_return:!b,join_vars:!b,collapse_vars:!1,cascade:!b,side_effects:!b,pure_getters:!1,pure_funcs:null,negate_iife:!b,screw_ie8:!1,drop_console:!1,angular:!1,warnings:!0,global_defs:{}},!0))):new S(a,b)}function T(a){function b(b,e,f,g,h,i){if(d){var j=d.originalPositionFor({line:g,column:h});if(null===j.source)return;b=j.source,g=j.line,h=j.column,i=j.name||i}c.addMapping({generated:{line:e+a.dest_line_diff,column:f},original:{line:g+a.orig_line_diff,column:h},source:b,name:i})}a=k(a,{file:null,root:null,orig:null,orig_line_diff:0,dest_line_diff:0});var c=new X.SourceMapGenerator({file:a.file,sourceRoot:a.root}),d=a.orig&&new X.SourceMapConsumer(a.orig);return{add:b,get:function(){return c},toString:function(){return JSON.stringify(c.toJSON())}}}function U(){function a(a){n(b,a)}var b=[];return[Object,Array,Function,Number,String,Boolean,Error,Math,Date,RegExp].forEach(function(b){Object.getOwnPropertyNames(b).map(a),b.prototype&&Object.getOwnPropertyNames(b.prototype).map(a)}),b}function V(a,b){function c(a){return o.indexOf(a)>=0?!1:i.indexOf(a)>=0?!1:b.only_cache?j.props.has(a):!/^[0-9.]+$/.test(a)}function d(a){return l&&!l.test(a)?!1:i.indexOf(a)>=0?!1:j.props.has(a)||m.indexOf(a)>=0}function e(a){c(a)&&n(m,a),d(a)||n(o,a)}function f(a){if(!d(a))return a;var b=j.props.get(a);if(!b){do b=Zb(++j.cname);while(!c(b));j.props.set(a,b)}return b}function g(a){var b={};try{!function d(a){a.walk(new y(function(a){if(a instanceof Ra)return d(a.cdr),!0;if(a instanceof tb)return e(a.value),!0;if(a instanceof Za)return d(a.consequent),d(a.alternative),!0;throw b}))}(a)}catch(c){if(c!==b)throw c}}function h(a){return a.transform(new P(function(a){return a instanceof Ra?a.cdr=h(a.cdr):a instanceof tb?a.value=f(a.value):a instanceof Za&&(a.consequent=h(a.consequent),a.alternative=h(a.alternative)),a}))}b=k(b,{reserved:null,cache:null,only_cache:!1,regex:null});var i=b.reserved;null==i&&(i=U());var j=b.cache;null==j&&(j={cname:-1,props:new v});var l=b.regex,m=[],o=[];return a.walk(new y(function(a){a instanceof cb?e(a.key):a instanceof bb?e(a.key.name):a instanceof Ta?this.parent()instanceof $a&&e(a.property):a instanceof Ua&&this.parent()instanceof $a&&g(a.property)})),a.transform(new P(function(a){a instanceof cb?a.key=f(a.key):a instanceof bb?a.key.name=f(a.key.name):a instanceof Ta?a.property=f(a.property):a instanceof Ua&&(a.property=h(a.property))}))}var W=a("util"),X=a("source-map"),Y=c;j.prototype=Object.create(Error.prototype),j.prototype.constructor=j,j.croak=function(a,b){throw new j(a,b)};var Z=function(){function a(a,f,g){function h(){var h=f(a[i],i),l=h instanceof d;return l&&(h=h.v),h instanceof b?(h=h.v,h instanceof c?k.push.apply(k,g?h.v.slice().reverse():h.v):k.push(h)):h!==e&&(h instanceof c?j.push.apply(j,g?h.v.slice().reverse():h.v):j.push(h)),l}var i,j=[],k=[];if(a instanceof Array)if(g){for(i=a.length;--i>=0&&!h(););j.reverse(),k.reverse()}else for(i=0;i<a.length&&!h();++i);else for(i in a)if(a.hasOwnProperty(i)&&h())break;return k.concat(j)}function b(a){this.v=a}function c(a){this.v=a}function d(a){this.v=a}a.at_top=function(a){return new b(a)},a.splice=function(a){return new c(a)},a.last=function(a){return new d(a)};var e=a.skip={};return a}();v.prototype={set:function(a,b){return this.has(a)||++this._size,this._values["$"+a]=b,this},add:function(a,b){return this.has(a)?this.get(a).push(b):this.set(a,[b]),this},get:function(a){return this._values["$"+a]},del:function(a){return this.has(a)&&(--this._size,delete this._values["$"+a]),this},has:function(a){return"$"+a in this._values},each:function(a){for(var b in this._values)a(this._values[b],b.substr(1))},size:function(){return this._size},map:function(a){var b=[];for(var c in this._values)b.push(a(this._values[c],c.substr(1)));return b},toObject:function(){return this._values}},v.fromObject=function(a){var b=new v;return b._size=l(b._values,a),b};var $=w("Token","type value line col pos endline endcol endpos nlb comments_before file raw",{},null),_=w("Node","start end",{clone:function(){return new this.CTOR(this)},$documentation:"Base class of all AST nodes",$propdoc:{start:"[AST_Token] The first token of this node",end:"[AST_Token] The last token of this node"},_walk:function(a){return a._visit(this)},walk:function(a){return this._walk(a)}},null);_.warn_function=null,_.warn=function(a,b){_.warn_function&&_.warn_function(o(a,b))};var aa=w("Statement",null,{$documentation:"Base class of all statements"}),ba=w("Debugger",null,{$documentation:"Represents a debugger statement"},aa),ca=w("Directive","value scope quote",{$documentation:'Represents a directive, like "use strict";',$propdoc:{value:"[string] The value of this directive as a plain string (it's not an AST_String!)",scope:"[AST_Scope/S] The scope that this directive affects",quote:"[string] the original quote character"}},aa),da=w("SimpleStatement","body",{$documentation:"A statement consisting of an expression, i.e. a = 1 + 2",$propdoc:{body:"[AST_Node] an expression node (should not be instanceof AST_Statement)"},_walk:function(a){return a._visit(this,function(){this.body._walk(a)})}},aa),ea=w("Block","body",{$documentation:"A body of statements (usually bracketed)",$propdoc:{body:"[AST_Statement*] an array of statements"},_walk:function(a){return a._visit(this,function(){x(this,a)})}},aa),fa=w("BlockStatement",null,{$documentation:"A block statement"},ea),ga=w("EmptyStatement",null,{$documentation:"The empty statement (empty block or simply a semicolon)",_walk:function(a){return a._visit(this)}},aa),ha=w("StatementWithBody","body",{$documentation:"Base class for all statements that contain one nested body: `For`, `ForIn`, `Do`, `While`, `With`",$propdoc:{body:"[AST_Statement] the body; this should always be present, even if it's an AST_EmptyStatement"},_walk:function(a){return a._visit(this,function(){this.body._walk(a)})}},aa),ia=w("LabeledStatement","label",{$documentation:"Statement with a label",$propdoc:{label:"[AST_Label] a label definition"},_walk:function(a){return a._visit(this,function(){this.label._walk(a),this.body._walk(a)})}},ha),ja=w("IterationStatement",null,{$documentation:"Internal class.  All loops inherit from it."},ha),ka=w("DWLoop","condition",{$documentation:"Base class for do/while statements",$propdoc:{condition:"[AST_Node] the loop condition.  Should not be instanceof AST_Statement"}},ja),la=w("Do",null,{$documentation:"A `do` statement",_walk:function(a){return a._visit(this,function(){this.body._walk(a),this.condition._walk(a)})}},ka),ma=w("While",null,{$documentation:"A `while` statement",_walk:function(a){return a._visit(this,function(){this.condition._walk(a),this.body._walk(a)})}},ka),na=w("For","init condition step",{$documentation:"A `for` statement",$propdoc:{init:"[AST_Node?] the `for` initialization code, or null if empty",condition:"[AST_Node?] the `for` termination clause, or null if empty",step:"[AST_Node?] the `for` update clause, or null if empty"},_walk:function(a){return a._visit(this,function(){this.init&&this.init._walk(a),this.condition&&this.condition._walk(a),this.step&&this.step._walk(a),this.body._walk(a)})}},ja),oa=w("ForIn","init name object",{$documentation:"A `for ... in` statement",$propdoc:{init:"[AST_Node] the `for/in` initialization code",name:"[AST_SymbolRef?] the loop variable, only if `init` is AST_Var",object:"[AST_Node] the object that we're looping through"},_walk:function(a){return a._visit(this,function(){this.init._walk(a),this.object._walk(a),this.body._walk(a)})}},ja),pa=w("With","expression",{$documentation:"A `with` statement",$propdoc:{expression:"[AST_Node] the `with` expression"},_walk:function(a){return a._visit(this,function(){this.expression._walk(a),this.body._walk(a)})}},ha),qa=w("Scope","directives variables functions uses_with uses_eval parent_scope enclosed cname",{$documentation:"Base class for all statements introducing a lexical scope",$propdoc:{directives:"[string*/S] an array of directives declared in this scope",variables:"[Object/S] a map of name -> SymbolDef for all variables/functions defined in this scope",functions:"[Object/S] like `variables`, but only lists function declarations",uses_with:"[boolean/S] tells whether this scope uses the `with` statement",uses_eval:"[boolean/S] tells whether this scope contains a direct call to the global `eval`",parent_scope:"[AST_Scope?/S] link to the parent scope",enclosed:"[SymbolDef*/S] a list of all symbol definitions that are accessed from this scope or any subscopes",cname:"[integer/S] current index for mangling variables (used internally by the mangler)"}},ea),ra=w("Toplevel","globals",{$documentation:"The toplevel scope",$propdoc:{globals:"[Object/S] a map of name -> SymbolDef for all undeclared names"},wrap_enclose:function(a){var b=this,c=[],d=[];a.forEach(function(a){var b=a.lastIndexOf(":");c.push(a.substr(0,b)),d.push(a.substr(b+1))});var e="(function("+d.join(",")+"){ '$ORIG'; })("+c.join(",")+")";return e=O(e),e=e.transform(new P(function(a){return a instanceof ca&&"$ORIG"==a.value?Z.splice(b.body):void 0}))},wrap_commonjs:function(a,b){var c=this,d=[];b&&(c.figure_out_scope(),c.walk(new y(function(a){a instanceof hb&&a.definition().global&&(h(function(b){return b.name==a.name},d)||d.push(a))})));var e="(function(exports, global){ '$ORIG'; '$EXPORTS'; global['"+a+"'] = exports; }({}, (function(){return this}())))";return e=O(e),e=e.transform(new P(function(a){if(a instanceof ca)switch(a.value){case"$ORIG":return Z.splice(c.body);case"$EXPORTS":var b=[];return d.forEach(function(a){b.push(new da({body:new $a({left:new Ua({expression:new pb({name:"exports"}),property:new tb({value:a.name})}),operator:"=",right:new pb(a)})}))}),Z.splice(b)}}))}},qa),sa=w("Lambda","name argnames uses_arguments",{$documentation:"Base class for functions",$propdoc:{name:"[AST_SymbolDeclaration?] the name of this function",argnames:"[AST_SymbolFunarg*] array of function arguments",uses_arguments:"[boolean/S] tells whether this function accesses the arguments array"},_walk:function(a){return a._visit(this,function(){this.name&&this.name._walk(a),this.argnames.forEach(function(b){b._walk(a)}),x(this,a)})}},qa),ta=w("Accessor",null,{$documentation:"A setter/getter function.  The `name` property is always null."},sa),ua=w("Function",null,{$documentation:"A function expression"},sa),va=w("Defun",null,{$documentation:"A function definition"},sa),wa=w("Jump",null,{$documentation:"Base class for “jumps” (for now that's `return`, `throw`, `break` and `continue`)"},aa),xa=w("Exit","value",{$documentation:"Base class for “exits” (`return` and `throw`)",$propdoc:{value:"[AST_Node?] the value returned or thrown by this statement; could be null for AST_Return"},_walk:function(a){return a._visit(this,this.value&&function(){this.value._walk(a)})}},wa),ya=w("Return",null,{$documentation:"A `return` statement"},xa),za=w("Throw",null,{$documentation:"A `throw` statement"},xa),Aa=w("LoopControl","label",{$documentation:"Base class for loop control statements (`break` and `continue`)",$propdoc:{label:"[AST_LabelRef?] the label, or null if none"},_walk:function(a){return a._visit(this,this.label&&function(){this.label._walk(a)})}},wa),Ba=w("Break",null,{$documentation:"A `break` statement"},Aa),Ca=w("Continue",null,{$documentation:"A `continue` statement"},Aa),Da=w("If","condition alternative",{$documentation:"A `if` statement",$propdoc:{condition:"[AST_Node] the `if` condition",alternative:"[AST_Statement?] the `else` part, or null if not present"},_walk:function(a){return a._visit(this,function(){this.condition._walk(a),this.body._walk(a),this.alternative&&this.alternative._walk(a)})}},ha),Ea=w("Switch","expression",{$documentation:"A `switch` statement",$propdoc:{expression:"[AST_Node] the `switch` “discriminant”"},_walk:function(a){return a._visit(this,function(){this.expression._walk(a),x(this,a)})}},ea),Fa=w("SwitchBranch",null,{$documentation:"Base class for `switch` branches"},ea),Ga=w("Default",null,{$documentation:"A `default` switch branch"},Fa),Ha=w("Case","expression",{$documentation:"A `case` switch branch",$propdoc:{expression:"[AST_Node] the `case` expression"},_walk:function(a){return a._visit(this,function(){this.expression._walk(a),x(this,a)})}},Fa),Ia=w("Try","bcatch bfinally",{$documentation:"A `try` statement",$propdoc:{bcatch:"[AST_Catch?] the catch block, or null if not present",bfinally:"[AST_Finally?] the finally block, or null if not present"},_walk:function(a){return a._visit(this,function(){x(this,a),this.bcatch&&this.bcatch._walk(a),this.bfinally&&this.bfinally._walk(a)})}},ea),Ja=w("Catch","argname",{$documentation:"A `catch` node; only makes sense as part of a `try` statement",$propdoc:{argname:"[AST_SymbolCatch] symbol for the exception"},_walk:function(a){return a._visit(this,function(){this.argname._walk(a),x(this,a)})}},ea),Ka=w("Finally",null,{$documentation:"A `finally` node; only makes sense as part of a `try` statement"},ea),La=w("Definitions","definitions",{$documentation:"Base class for `var` or `const` nodes (variable declarations/initializations)",$propdoc:{definitions:"[AST_VarDef*] array of variable definitions"},_walk:function(a){return a._visit(this,function(){this.definitions.forEach(function(b){b._walk(a)})})}},aa),Ma=w("Var",null,{$documentation:"A `var` statement"},La),Na=w("Const",null,{$documentation:"A `const` statement"},La),Oa=w("VarDef","name value",{$documentation:"A variable declaration; only appears in a AST_Definitions node",$propdoc:{name:"[AST_SymbolVar|AST_SymbolConst] name of the variable",value:"[AST_Node?] initializer, or null of there's no initializer"},_walk:function(a){return a._visit(this,function(){this.name._walk(a),this.value&&this.value._walk(a)})}}),Pa=w("Call","expression args",{$documentation:"A function call expression",$propdoc:{expression:"[AST_Node] expression to invoke as function",args:"[AST_Node*] array of arguments"},_walk:function(a){return a._visit(this,function(){this.expression._walk(a),this.args.forEach(function(b){b._walk(a)})})}}),Qa=w("New",null,{$documentation:"An object instantiation.  Derives from a function call since it has exactly the same properties"},Pa),Ra=w("Seq","car cdr",{$documentation:"A sequence expression (two comma-separated expressions)",$propdoc:{car:"[AST_Node] first element in sequence",cdr:"[AST_Node] second element in sequence"},$cons:function(a,b){var c=new Ra(a);return c.car=a,c.cdr=b,c},$from_array:function(a){if(0==a.length)return null;if(1==a.length)return a[0].clone();for(var b=null,c=a.length;--c>=0;)b=Ra.cons(a[c],b);for(var d=b;d;){if(d.cdr&&!d.cdr.cdr){d.cdr=d.cdr.car;break}d=d.cdr}return b},to_array:function(){for(var a=this,b=[];a;){if(b.push(a.car),a.cdr&&!(a.cdr instanceof Ra)){b.push(a.cdr);break}a=a.cdr}return b},add:function(a){for(var b=this;b;){if(!(b.cdr instanceof Ra)){var c=Ra.cons(b.cdr,a);return b.cdr=c}b=b.cdr}},_walk:function(a){return a._visit(this,function(){this.car._walk(a),this.cdr&&this.cdr._walk(a)})}}),Sa=w("PropAccess","expression property",{$documentation:'Base class for property access expressions, i.e. `a.foo` or `a["foo"]`',$propdoc:{expression:"[AST_Node] the “container” expression",property:"[AST_Node|string] the property to access.  For AST_Dot this is always a plain string, while for AST_Sub it's an arbitrary AST_Node"}}),Ta=w("Dot",null,{$documentation:"A dotted property access expression",_walk:function(a){return a._visit(this,function(){this.expression._walk(a)})}},Sa),Ua=w("Sub",null,{$documentation:'Index-style property access, i.e. `a["foo"]`',_walk:function(a){return a._visit(this,function(){this.expression._walk(a),this.property._walk(a)})}},Sa),Va=w("Unary","operator expression",{$documentation:"Base class for unary expressions",$propdoc:{operator:"[string] the operator",expression:"[AST_Node] expression that this unary operator applies to"},_walk:function(a){return a._visit(this,function(){this.expression._walk(a)})}}),Wa=w("UnaryPrefix",null,{$documentation:"Unary prefix expression, i.e. `typeof i` or `++i`"},Va),Xa=w("UnaryPostfix",null,{$documentation:"Unary postfix expression, i.e. `i++`"},Va),Ya=w("Binary","left operator right",{$documentation:"Binary expression, i.e. `a + b`",$propdoc:{left:"[AST_Node] left-hand side expression",operator:"[string] the operator",right:"[AST_Node] right-hand side expression"},_walk:function(a){return a._visit(this,function(){this.left._walk(a),
-this.right._walk(a)})}}),Za=w("Conditional","condition consequent alternative",{$documentation:"Conditional expression using the ternary operator, i.e. `a ? b : c`",$propdoc:{condition:"[AST_Node]",consequent:"[AST_Node]",alternative:"[AST_Node]"},_walk:function(a){return a._visit(this,function(){this.condition._walk(a),this.consequent._walk(a),this.alternative._walk(a)})}}),$a=w("Assign",null,{$documentation:"An assignment expression — `a = b + 5`"},Ya),_a=w("Array","elements",{$documentation:"An array literal",$propdoc:{elements:"[AST_Node*] array of elements"},_walk:function(a){return a._visit(this,function(){this.elements.forEach(function(b){b._walk(a)})})}}),ab=w("Object","properties",{$documentation:"An object literal",$propdoc:{properties:"[AST_ObjectProperty*] array of properties"},_walk:function(a){return a._visit(this,function(){this.properties.forEach(function(b){b._walk(a)})})}}),bb=w("ObjectProperty","key value",{$documentation:"Base class for literal object properties",$propdoc:{key:"[string] the property name converted to a string for ObjectKeyVal.  For setters and getters this is an arbitrary AST_Node.",value:"[AST_Node] property value.  For setters and getters this is an AST_Function."},_walk:function(a){return a._visit(this,function(){this.value._walk(a)})}}),cb=w("ObjectKeyVal","quote",{$documentation:"A key: value object property",$propdoc:{quote:"[string] the original quote character"}},bb),db=w("ObjectSetter",null,{$documentation:"An object setter property"},bb),eb=w("ObjectGetter",null,{$documentation:"An object getter property"},bb),fb=w("Symbol","scope name thedef",{$propdoc:{name:"[string] name of this symbol",scope:"[AST_Scope/S] the current scope (not necessarily the definition scope)",thedef:"[SymbolDef/S] the definition of this symbol"},$documentation:"Base class for all symbols"}),gb=w("SymbolAccessor",null,{$documentation:"The name of a property accessor (setter/getter function)"},fb),hb=w("SymbolDeclaration","init",{$documentation:"A declaration symbol (symbol in var/const, function name or argument, symbol in catch)",$propdoc:{init:"[AST_Node*/S] array of initializers for this declaration."}},fb),ib=w("SymbolVar",null,{$documentation:"Symbol defining a variable"},hb),jb=w("SymbolConst",null,{$documentation:"A constant declaration"},hb),kb=w("SymbolFunarg",null,{$documentation:"Symbol naming a function argument"},ib),lb=w("SymbolDefun",null,{$documentation:"Symbol defining a function"},hb),mb=w("SymbolLambda",null,{$documentation:"Symbol naming a function expression"},hb),nb=w("SymbolCatch",null,{$documentation:"Symbol naming the exception in catch"},hb),ob=w("Label","references",{$documentation:"Symbol naming a label (declaration)",$propdoc:{references:"[AST_LoopControl*] a list of nodes referring to this label"},initialize:function(){this.references=[],this.thedef=this}},fb),pb=w("SymbolRef",null,{$documentation:"Reference to some symbol (not definition/declaration)"},fb),qb=w("LabelRef",null,{$documentation:"Reference to a label symbol"},fb),rb=w("This",null,{$documentation:"The `this` symbol"},fb),sb=w("Constant",null,{$documentation:"Base class for all constants",getValue:function(){return this.value}}),tb=w("String","value quote",{$documentation:"A string literal",$propdoc:{value:"[string] the contents of this string",quote:"[string] the original quote character"}},sb),ub=w("Number","value literal",{$documentation:"A number literal",$propdoc:{value:"[number] the numeric value",literal:"[string] numeric value as string (optional)"}},sb),vb=w("RegExp","value",{$documentation:"A regexp literal",$propdoc:{value:"[RegExp] the actual regexp"}},sb),wb=w("Atom",null,{$documentation:"Base class for atoms"},sb),xb=w("Null",null,{$documentation:"The `null` atom",value:null},wb),yb=w("NaN",null,{$documentation:"The impossible value",value:NaN},wb),zb=w("Undefined",null,{$documentation:"The `undefined` value",value:void 0},wb),Ab=w("Hole",null,{$documentation:"A hole in an array",value:void 0},wb),Bb=w("Infinity",null,{$documentation:"The `Infinity` value",value:1/0},wb),Cb=w("Boolean",null,{$documentation:"Base class for booleans"},wb),Db=w("False",null,{$documentation:"The `false` atom",value:!1},Cb),Eb=w("True",null,{$documentation:"The `true` atom",value:!0},Cb);y.prototype={_visit:function(a,b){this.push(a);var c=this.visit(a,b?function(){b.call(a)}:m);return!c&&b&&b.call(a),this.pop(a),c},parent:function(a){return this.stack[this.stack.length-2-(a||0)]},push:function(a){a instanceof sa?this.directives=Object.create(this.directives):a instanceof ca&&(this.directives[a.value]=this.directives[a.value]?"up":!0),this.stack.push(a)},pop:function(a){this.stack.pop(),a instanceof sa&&(this.directives=Object.getPrototypeOf(this.directives))},self:function(){return this.stack[this.stack.length-1]},find_parent:function(a){for(var b=this.stack,c=b.length;--c>=0;){var d=b[c];if(d instanceof a)return d}},has_directive:function(a){var b=this.directives[a];if(b)return b;var c=this.stack[this.stack.length-1];if(c instanceof qa)for(var d=0;d<c.body.length;++d){var e=c.body[d];if(!(e instanceof ca))break;if(e.value==a)return!0}},in_boolean_context:function(){for(var a=this.stack,b=a.length,c=a[--b];b>0;){var d=a[--b];if(d instanceof Da&&d.condition===c||d instanceof Za&&d.condition===c||d instanceof ka&&d.condition===c||d instanceof na&&d.condition===c||d instanceof Wa&&"!"==d.operator&&d.expression===c)return!0;if(!(d instanceof Ya)||"&&"!=d.operator&&"||"!=d.operator)return!1;c=d}},loopcontrol_target:function(a){var b=this.stack;if(a)for(var c=b.length;--c>=0;){var d=b[c];if(d instanceof ia&&d.label.name==a.name)return d.body}else for(var c=b.length;--c>=0;){var d=b[c];if(d instanceof Ea||d instanceof ja)return d}}};var Fb="break case catch const continue debugger default delete do else finally for function if in instanceof new return switch throw try typeof var void while with",Gb="false null true",Hb="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 this throws transient volatile yield "+Gb+" "+Fb,Ib="return new delete throw else case";Fb=t(Fb),Hb=t(Hb),Ib=t(Ib),Gb=t(Gb);var Jb=t(f("+-*&%=<>!?|~^")),Kb=/^0x[0-9a-f]+$/i,Lb=/^0[0-7]+$/,Mb=t(["in","instanceof","typeof","new","void","delete","++","--","+","-","!","~","&","|","^","*","/","%",">>","<<",">>>","<",">","<=",">=","==","===","!=","!==","?","=","+=","-=","/=","*=","%=",">>=","<<=",">>>=","|=","^=","&=","&&","||"]),Nb=t(f("  \n\r      \f\x0B​᠎              \ufeff")),Ob=t(f("[{(,.;:")),Pb=t(f("[]{}(),;:")),Qb=t(f("gmsiy")),Rb={letter:new RegExp("[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\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-\\u1310\\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\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\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\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\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]"),digit:new RegExp("[\\u0030-\\u0039\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0BE6-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F\\u0DE6-\\u0DEF\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049\\u1090-\\u1099\\u17E0-\\u17E9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19D9\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\uA620-\\uA629\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uA9F0-\\uA9F9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19]"),non_spacing_mark:new RegExp("[\\u0300-\\u036F\\u0483-\\u0487\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065E\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0900-\\u0902\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0955\\u0962\\u0963\\u0981\\u09BC\\u09C1-\\u09C4\\u09CD\\u09E2\\u09E3\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0B01\\u0B3C\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B56\\u0B62\\u0B63\\u0B82\\u0BC0\\u0BCD\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0CBC\\u0CBF\\u0CC6\\u0CCC\\u0CCD\\u0CE2\\u0CE3\\u0D41-\\u0D44\\u0D4D\\u0D62\\u0D63\\u0DCA\\u0DD2-\\u0DD4\\u0DD6\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F90-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1A17\\u1A18\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1B00-\\u1B03\\u1B34\\u1B36-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1DC0-\\u1DE6\\u1DFD-\\u1DFF\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2CEF-\\u2CF1\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F\\uA67C\\uA67D\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE26]"),space_combining_mark:new RegExp("[\\u0903\\u093E-\\u0940\\u0949-\\u094C\\u094E\\u0982\\u0983\\u09BE-\\u09C0\\u09C7\\u09C8\\u09CB\\u09CC\\u09D7\\u0A03\\u0A3E-\\u0A40\\u0A83\\u0ABE-\\u0AC0\\u0AC9\\u0ACB\\u0ACC\\u0B02\\u0B03\\u0B3E\\u0B40\\u0B47\\u0B48\\u0B4B\\u0B4C\\u0B57\\u0BBE\\u0BBF\\u0BC1\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCC\\u0BD7\\u0C01-\\u0C03\\u0C41-\\u0C44\\u0C82\\u0C83\\u0CBE\\u0CC0-\\u0CC4\\u0CC7\\u0CC8\\u0CCA\\u0CCB\\u0CD5\\u0CD6\\u0D02\\u0D03\\u0D3E-\\u0D40\\u0D46-\\u0D48\\u0D4A-\\u0D4C\\u0D57\\u0D82\\u0D83\\u0DCF-\\u0DD1\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0F3E\\u0F3F\\u0F7F\\u102B\\u102C\\u1031\\u1038\\u103B\\u103C\\u1056\\u1057\\u1062-\\u1064\\u1067-\\u106D\\u1083\\u1084\\u1087-\\u108C\\u108F\\u109A-\\u109C\\u17B6\\u17BE-\\u17C5\\u17C7\\u17C8\\u1923-\\u1926\\u1929-\\u192B\\u1930\\u1931\\u1933-\\u1938\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A19-\\u1A1B\\u1A55\\u1A57\\u1A61\\u1A63\\u1A64\\u1A6D-\\u1A72\\u1B04\\u1B35\\u1B3B\\u1B3D-\\u1B41\\u1B43\\u1B44\\u1B82\\u1BA1\\u1BA6\\u1BA7\\u1BAA\\u1C24-\\u1C2B\\u1C34\\u1C35\\u1CE1\\u1CF2\\uA823\\uA824\\uA827\\uA880\\uA881\\uA8B4-\\uA8C3\\uA952\\uA953\\uA983\\uA9B4\\uA9B5\\uA9BA\\uA9BB\\uA9BD-\\uA9C0\\uAA2F\\uAA30\\uAA33\\uAA34\\uAA4D\\uAA7B\\uABE3\\uABE4\\uABE6\\uABE7\\uABE9\\uABEA\\uABEC]"),connector_punctuation:new RegExp("[\\u005F\\u203F\\u2040\\u2054\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFF3F]")};K.prototype.toString=function(){return this.message+" (line: "+this.line+", col: "+this.col+", pos: "+this.pos+")\n\n"+this.stack};var Sb={},Tb=t(["typeof","void","delete","--","++","!","~","-","+"]),Ub=t(["--","++"]),Vb=t(["=","+=","-=","/=","*=","%=",">>=","<<=",">>>=","|=","^=","&="]),Wb=function(a,b){for(var c=0;c<a.length;++c)for(var d=a[c],e=0;e<d.length;++e)b[d[e]]=c+1;return b}([["||"],["&&"],["|"],["^"],["&"],["==","===","!=","!=="],["<",">","<=",">=","in","instanceof"],[">>","<<",">>>"],["+","-"],["*","/","%"]],{}),Xb=d(["for","do","while","switch"]),Yb=d(["atom","num","string","regexp","name"]);P.prototype=new y,function(a){function b(b,c){b.DEFMETHOD("transform",function(b,d){var e,f;return b.push(this),b.before&&(e=b.before(this,c,d)),e===a&&(b.after?(b.stack[b.stack.length-1]=e=this,c(e,b),f=b.after(e,d),f!==a&&(e=f)):(e=this,c(e,b))),b.pop(this),e})}function c(a,b){return Z(a,function(a){return a.transform(b,!0)})}b(_,m),b(ia,function(a,b){a.label=a.label.transform(b),a.body=a.body.transform(b)}),b(da,function(a,b){a.body=a.body.transform(b)}),b(ea,function(a,b){a.body=c(a.body,b)}),b(ka,function(a,b){a.condition=a.condition.transform(b),a.body=a.body.transform(b)}),b(na,function(a,b){a.init&&(a.init=a.init.transform(b)),a.condition&&(a.condition=a.condition.transform(b)),a.step&&(a.step=a.step.transform(b)),a.body=a.body.transform(b)}),b(oa,function(a,b){a.init=a.init.transform(b),a.object=a.object.transform(b),a.body=a.body.transform(b)}),b(pa,function(a,b){a.expression=a.expression.transform(b),a.body=a.body.transform(b)}),b(xa,function(a,b){a.value&&(a.value=a.value.transform(b))}),b(Aa,function(a,b){a.label&&(a.label=a.label.transform(b))}),b(Da,function(a,b){a.condition=a.condition.transform(b),a.body=a.body.transform(b),a.alternative&&(a.alternative=a.alternative.transform(b))}),b(Ea,function(a,b){a.expression=a.expression.transform(b),a.body=c(a.body,b)}),b(Ha,function(a,b){a.expression=a.expression.transform(b),a.body=c(a.body,b)}),b(Ia,function(a,b){a.body=c(a.body,b),a.bcatch&&(a.bcatch=a.bcatch.transform(b)),a.bfinally&&(a.bfinally=a.bfinally.transform(b))}),b(Ja,function(a,b){a.argname=a.argname.transform(b),a.body=c(a.body,b)}),b(La,function(a,b){a.definitions=c(a.definitions,b)}),b(Oa,function(a,b){a.name=a.name.transform(b),a.value&&(a.value=a.value.transform(b))}),b(sa,function(a,b){a.name&&(a.name=a.name.transform(b)),a.argnames=c(a.argnames,b),a.body=c(a.body,b)}),b(Pa,function(a,b){a.expression=a.expression.transform(b),a.args=c(a.args,b)}),b(Ra,function(a,b){a.car=a.car.transform(b),a.cdr=a.cdr.transform(b)}),b(Ta,function(a,b){a.expression=a.expression.transform(b)}),b(Ua,function(a,b){a.expression=a.expression.transform(b),a.property=a.property.transform(b)}),b(Va,function(a,b){a.expression=a.expression.transform(b)}),b(Ya,function(a,b){a.left=a.left.transform(b),a.right=a.right.transform(b)}),b(Za,function(a,b){a.condition=a.condition.transform(b),a.consequent=a.consequent.transform(b),a.alternative=a.alternative.transform(b)}),b(_a,function(a,b){a.elements=c(a.elements,b)}),b(ab,function(a,b){a.properties=c(a.properties,b)}),b(bb,function(a,b){a.value=a.value.transform(b)})}(),Q.prototype={unmangleable:function(a){return a||(a={}),this.global&&!a.toplevel||this.undeclared||!a.eval&&(this.scope.uses_eval||this.scope.uses_with)||a.keep_fnames&&(this.orig[0]instanceof mb||this.orig[0]instanceof lb)},mangle:function(a){var b=a.cache&&a.cache.props;if(this.global&&b&&b.has(this.name))this.mangled_name=b.get(this.name);else if(!this.mangled_name&&!this.unmangleable(a)){var c=this.scope;!a.screw_ie8&&this.orig[0]instanceof mb&&(c=c.parent_scope),this.mangled_name=c.next_mangled(a,this),this.global&&b&&b.set(this.name,this.mangled_name)}}},ra.DEFMETHOD("figure_out_scope",function(a){a=k(a,{screw_ie8:!1,cache:null});var b=this,c=b.parent_scope=null,d=new v,e=null,f=!1,g=0,h=new y(function(b,i){if(a.screw_ie8&&b instanceof Ja){var j=c;return c=new qa(b),c.init_scope_vars(g),c.parent_scope=j,i(),c=j,!0}if(b instanceof qa){b.init_scope_vars(g);var j=b.parent_scope=c,k=e,l=d;return e=c=b,d=new v,++g,i(),--g,c=j,e=k,d=l,!0}if(b instanceof ia){var m=b.label;if(d.has(m.name))throw new Error(o("Label {name} defined twice",m));return d.set(m.name,m),i(),d.del(m.name),!0}if(b instanceof pa)for(var n=c;n;n=n.parent_scope)n.uses_with=!0;else if(b instanceof fb&&(b.scope=c),b instanceof ob&&(b.thedef=b,b.references=[]),b instanceof mb)e.def_function(b);else if(b instanceof lb)(b.scope=e.parent_scope).def_function(b);else if(b instanceof Ma)f=b.has_const_pragma();else if(b instanceof ib||b instanceof jb){var p=e.def_variable(b);p.constant=b instanceof jb||f,p.init=h.parent().value}else if(b instanceof nb)(a.screw_ie8?c:e).def_variable(b);else if(b instanceof qb){var q=d.get(b.name);if(!q)throw new Error(o("Undefined label {name} [{line},{col}]",{name:b.name,line:b.start.line,col:b.start.col}));b.thedef=q}});b.walk(h);var i=null,j=b.globals=new v,h=new y(function(a,c){if(a instanceof sa){var d=i;return i=a,c(),i=d,!0}if(a instanceof Aa&&a.label)return a.label.thedef.references.push(a),!0;if(a instanceof pb){var e=a.name;if("eval"==e&&h.parent()instanceof Pa)for(var f=a.scope;f&&!f.uses_eval;f=f.parent_scope)f.uses_eval=!0;var g=a.scope.find_variable(e);if(g)a.thedef=g;else{var k;j.has(e)?k=j.get(e):(k=new Q(b,j.size(),a),k.undeclared=!0,k.global=!0,j.set(e,k)),a.thedef=k,i&&"arguments"==e&&(i.uses_arguments=!0)}return a.reference(),!0}});b.walk(h),a.cache&&(this.cname=a.cache.cname)}),qa.DEFMETHOD("init_scope_vars",function(a){this.variables=new v,this.functions=new v,this.uses_with=!1,this.uses_eval=!1,this.parent_scope=null,this.enclosed=[],this.cname=-1,this.nesting=a}),sa.DEFMETHOD("init_scope_vars",function(){qa.prototype.init_scope_vars.apply(this,arguments),this.uses_arguments=!1;var a=new Oa({name:"arguments",start:this.start,end:this.end}),b=new Q(this,this.variables.size(),a);this.variables.set(a.name,b)}),pb.DEFMETHOD("reference",function(){var a=this.definition();a.references.push(this);for(var b=this.scope;b&&(n(b.enclosed,a),b!==a.scope);)b=b.parent_scope;this.frame=this.scope.nesting-a.scope.nesting}),qa.DEFMETHOD("find_variable",function(a){return a instanceof fb&&(a=a.name),this.variables.get(a)||this.parent_scope&&this.parent_scope.find_variable(a)}),qa.DEFMETHOD("def_function",function(a){this.functions.set(a.name,this.def_variable(a))}),qa.DEFMETHOD("def_variable",function(a){var b;return this.variables.has(a.name)?(b=this.variables.get(a.name),b.orig.push(a)):(b=new Q(this,this.variables.size(),a),this.variables.set(a.name,b),b.global=!this.parent_scope),a.thedef=b}),qa.DEFMETHOD("next_mangled",function(a){var b=this.enclosed;a:for(;;){var c=Zb(++this.cname);if(F(c)&&!(a.except.indexOf(c)>=0)){for(var d=b.length;--d>=0;){var e=b[d],f=e.mangled_name||e.unmangleable(a)&&e.name;if(c==f)continue a}return c}}}),ua.DEFMETHOD("next_mangled",function(a,b){for(var c=b.orig[0]instanceof kb&&this.name&&this.name.definition();;){var d=sa.prototype.next_mangled.call(this,a,b);if(!c||c.mangled_name!=d)return d}}),qa.DEFMETHOD("references",function(a){return a instanceof fb&&(a=a.definition()),this.enclosed.indexOf(a)<0?null:a}),fb.DEFMETHOD("unmangleable",function(a){return this.definition().unmangleable(a)}),gb.DEFMETHOD("unmangleable",function(){return!0}),ob.DEFMETHOD("unmangleable",function(){return!1}),fb.DEFMETHOD("unreferenced",function(){return 0==this.definition().references.length&&!(this.scope.uses_eval||this.scope.uses_with)}),fb.DEFMETHOD("undeclared",function(){return this.definition().undeclared}),qb.DEFMETHOD("undeclared",function(){return!1}),ob.DEFMETHOD("undeclared",function(){return!1}),fb.DEFMETHOD("definition",function(){return this.thedef}),fb.DEFMETHOD("global",function(){return this.definition().global}),Ma.DEFMETHOD("has_const_pragma",function(){var a=this.start&&this.start.comments_before,b=a&&a[a.length-1];return b&&/@const\b/.test(b.value)}),ra.DEFMETHOD("_default_mangler_options",function(a){return k(a,{except:[],eval:!1,sort:!1,toplevel:!1,screw_ie8:!1,keep_fnames:!1})}),ra.DEFMETHOD("mangle_names",function(a){a=this._default_mangler_options(a),a.except.push("arguments");var b=-1,c=[];a.cache&&this.globals.each(function(b){a.except.indexOf(b.name)<0&&c.push(b)});var d=new y(function(e,f){if(e instanceof ia){var g=b;return f(),b=g,!0}if(e instanceof qa){var h=(d.parent(),[]);return e.variables.each(function(b){a.except.indexOf(b.name)<0&&h.push(b)}),a.sort&&h.sort(function(a,b){return b.references.length-a.references.length}),void c.push.apply(c,h)}if(e instanceof ob){var i;do i=Zb(++b);while(!F(i));return e.mangled_name=i,!0}return a.screw_ie8&&e instanceof nb?void c.push(e.definition()):void 0});this.walk(d),c.forEach(function(b){b.mangle(a)}),a.cache&&(a.cache.cname=this.cname)}),ra.DEFMETHOD("compute_char_frequency",function(a){a=this._default_mangler_options(a);var b=new y(function(b){b instanceof sb?Zb.consider(b.print_to_string()):b instanceof ya?Zb.consider("return"):b instanceof za?Zb.consider("throw"):b instanceof Ca?Zb.consider("continue"):b instanceof Ba?Zb.consider("break"):b instanceof ba?Zb.consider("debugger"):b instanceof ca?Zb.consider(b.value):b instanceof ma?Zb.consider("while"):b instanceof la?Zb.consider("do while"):b instanceof Da?(Zb.consider("if"),b.alternative&&Zb.consider("else")):b instanceof Ma?Zb.consider("var"):b instanceof Na?Zb.consider("const"):b instanceof sa?Zb.consider("function"):b instanceof na?Zb.consider("for"):b instanceof oa?Zb.consider("for in"):b instanceof Ea?Zb.consider("switch"):b instanceof Ha?Zb.consider("case"):b instanceof Ga?Zb.consider("default"):b instanceof pa?Zb.consider("with"):b instanceof db?Zb.consider("set"+b.key):b instanceof eb?Zb.consider("get"+b.key):b instanceof cb?Zb.consider(b.key):b instanceof Qa?Zb.consider("new"):b instanceof rb?Zb.consider("this"):b instanceof Ia?Zb.consider("try"):b instanceof Ja?Zb.consider("catch"):b instanceof Ka?Zb.consider("finally"):b instanceof fb&&b.unmangleable(a)?Zb.consider(b.name):b instanceof Va||b instanceof Ya?Zb.consider(b.operator):b instanceof Ta&&Zb.consider(b.property)});this.walk(b),Zb.sort()});var Zb=function(){function a(){d=Object.create(null),c=e.split("").map(function(a){return a.charCodeAt(0)}),c.forEach(function(a){d[a]=0})}function b(a){var b="",d=54;a++;do a--,b+=String.fromCharCode(c[a%d]),a=Math.floor(a/d),d=64;while(a>0);return b}var c,d,e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_0123456789";return b.consider=function(a){for(var b=a.length;--b>=0;){var c=a.charCodeAt(b);c in d&&++d[c]}},b.sort=function(){c=q(c,function(a,b){return A(a)&&!A(b)?1:A(b)&&!A(a)?-1:d[b]-d[a]})},b.reset=a,a(),b.get=function(){return c},b.freq=function(){return d},b}();ra.DEFMETHOD("scope_warnings",function(a){a=k(a,{undeclared:!1,unreferenced:!0,assign_to_global:!0,func_arguments:!0,nested_defuns:!0,eval:!0});var b=new y(function(c){if(a.undeclared&&c instanceof pb&&c.undeclared()&&_.warn("Undeclared symbol: {name} [{file}:{line},{col}]",{name:c.name,file:c.start.file,line:c.start.line,col:c.start.col}),a.assign_to_global){var d=null;c instanceof $a&&c.left instanceof pb?d=c.left:c instanceof oa&&c.init instanceof pb&&(d=c.init),d&&(d.undeclared()||d.global()&&d.scope!==d.definition().scope)&&_.warn("{msg}: {name} [{file}:{line},{col}]",{msg:d.undeclared()?"Accidental global?":"Assignment to global",name:d.name,file:d.start.file,line:d.start.line,col:d.start.col})}a.eval&&c instanceof pb&&c.undeclared()&&"eval"==c.name&&_.warn("Eval is used [{file}:{line},{col}]",c.start),a.unreferenced&&(c instanceof hb||c instanceof ob)&&!(c instanceof nb)&&c.unreferenced()&&_.warn("{type} {name} is declared but not referenced [{file}:{line},{col}]",{type:c instanceof ob?"Label":"Symbol",name:c.name,file:c.start.file,line:c.start.line,col:c.start.col}),a.func_arguments&&c instanceof sa&&c.uses_arguments&&_.warn("arguments used in function {name} [{file}:{line},{col}]",{name:c.name?c.name.name:"anonymous",file:c.start.file,line:c.start.line,col:c.start.col}),a.nested_defuns&&c instanceof va&&!(b.parent()instanceof qa)&&_.warn('Function {name} declared in nested statement "{type}" [{file}:{line},{col}]',{name:c.name.name,type:b.parent().TYPE,file:c.start.file,line:c.start.line,col:c.start.col})});this.walk(b)}),function(){function a(a,b){a.DEFMETHOD("_codegen",b)}function b(a,c){Array.isArray(a)?a.forEach(function(a){b(a,c)}):a.DEFMETHOD("needs_parens",c)}function c(a,b,c){var d=a.length-1;a.forEach(function(a,e){a instanceof ga||(c.indent(),a.print(c),e==d&&b||(c.newline(),b&&c.newline()))})}function d(a,b){a.length>0?b.with_block(function(){c(a,!1,b)}):b.print("{}")}function e(a,b){if(b.option("bracketize"))return void n(a.body,b);if(!a.body)return b.force_semicolon();if(a.body instanceof la&&!b.option("screw_ie8"))return void n(a.body,b);for(var c=a.body;;)if(c instanceof Da){if(!c.alternative)return void n(a.body,b);c=c.alternative}else{if(!(c instanceof ha))break;c=c.body}h(a.body,b)}function f(a,b,c){if(c)try{a.walk(new y(function(a){if(a instanceof Ya&&"in"==a.operator)throw b})),a.print(b)}catch(d){if(d!==b)throw d;a.print(b,!0)}else a.print(b)}function g(a){return[92,47,46,43,42,63,40,41,91,93,123,125,36,94,58,124,33,10,13,0,65279,8232,8233].indexOf(a)<0}function h(a,b){b.option("bracketize")?!a||a instanceof ga?b.print("{}"):a instanceof fa?a.print(b):b.with_block(function(){b.indent(),a.print(b),b.newline()}):!a||a instanceof ga?b.force_semicolon():a.print(b)}function i(a){for(var b=a.stack(),c=b.length,d=b[--c],e=b[--c];c>0;){if(e instanceof aa&&e.body===d)return!0;if(!(e instanceof Ra&&e.car===d||e instanceof Pa&&e.expression===d&&!(e instanceof Qa)||e instanceof Ta&&e.expression===d||e instanceof Ua&&e.expression===d||e instanceof Za&&e.condition===d||e instanceof Ya&&e.left===d||e instanceof Xa&&e.expression===d))return!1;d=e,e=b[--c]}}function j(a,b){return 0==a.args.length&&!b.option("beautify")}function k(a){for(var b=a[0],c=b.length,d=1;d<a.length;++d)a[d].length<c&&(b=a[d],c=b.length);return b}function l(a){var b,c=a.toString(10),d=[c.replace(/^0\./,".").replace("e+","e")];return Math.floor(a)===a?(a>=0?d.push("0x"+a.toString(16).toLowerCase(),"0"+a.toString(8)):d.push("-0x"+(-a).toString(16).toLowerCase(),"-0"+(-a).toString(8)),(b=/^(.*?)(0+)$/.exec(a))&&d.push(b[1]+"e"+b[2].length)):(b=/^0?\.(0+)(.*)$/.exec(a))&&d.push(b[2]+"e-"+(b[1].length+b[2].length),c.substr(c.indexOf("."))),k(d)}function n(a,b){return a instanceof fa?void a.print(b):void b.with_block(function(){b.indent(),a.print(b),b.newline()})}function o(a,b){a.DEFMETHOD("add_source_map",function(a){b(this,a)})}function p(a,b){b.add_mapping(a.start)}var q=!1;_.DEFMETHOD("print",function(a,b){function c(){d.add_comments(a),d.add_source_map(a),e(d,a)}var d=this,e=d._codegen,f=q;d instanceof ca&&"use asm"==d.value&&(q=!0),a.push_node(d),b||d.needs_parens(a)?a.with_parens(c):c(),a.pop_node(),d instanceof sa&&(q=f)}),_.DEFMETHOD("print_to_string",function(a){var b=R(a);return this.print(b),b.get()}),_.DEFMETHOD("add_comments",function(a){var b=a.option("comments"),c=this,d=c.start;if(d&&!d._comments_dumped){d._comments_dumped=!0;var e=d.comments_before||[];c instanceof xa&&c.value&&c.value.walk(new y(function(a){return a.start&&a.start.comments_before&&(e=e.concat(a.start.comments_before),a.start.comments_before=[]),a instanceof ua||a instanceof _a||a instanceof ab?!0:void 0})),b?b.test?e=e.filter(function(a){return"comment5"==a.type||b.test(a.value)}):"function"==typeof b&&(e=e.filter(function(a){return"comment5"==a.type||b(c,a)})):e=e.filter(function(a){return"comment5"==a.type}),!a.option("beautify")&&e.length>0&&/comment[134]/.test(e[0].type)&&0!==a.col()&&e[0].nlb&&a.print("\n"),e.forEach(function(b){/comment[134]/.test(b.type)?(a.print("//"+b.value+"\n"),a.indent()):"comment2"==b.type?(a.print("/*"+b.value+"*/"),d.nlb?(a.print("\n"),a.indent()):a.space()):0===a.pos()&&"comment5"==b.type&&a.option("shebang")&&(a.print("#!"+b.value+"\n"),a.indent())})}}),b(_,function(){return!1}),b(ua,function(a){return i(a)}),b(ab,function(a){return i(a)}),b([Va,zb],function(a){var b=a.parent();return b instanceof Sa&&b.expression===this}),b(Ra,function(a){var b=a.parent();return b instanceof Pa||b instanceof Va||b instanceof Ya||b instanceof Oa||b instanceof Sa||b instanceof _a||b instanceof bb||b instanceof Za;
+require=function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){(function(c,d){"use strict";function e(b,e){function f(a){var b,c;for(b=0;a[b];b+=1)if(c=a[b],"."===c)a.splice(b,1),b-=1;else if(".."===c){if(1===b&&(".."===a[2]||".."===a[0]))break;b>0&&(a.splice(b-1,2),b-=2)}}function g(a,b){var c;return a&&"."===a.charAt(0)&&b&&(c=b.split("/"),c=c.slice(0,c.length-1),c=c.concat(a.split("/")),f(c),a=c.join("/")),a}function h(a){return function(b){return g(b,a)}}function i(a){function b(b){o[a]=b}return b.fromText=function(a,b){throw new Error("amdefine does not implement load.fromText")},b}function j(a,c,f){var g,h,i,j;if(a)h=o[a]={},i={id:a,uri:d,exports:h},g=l(e,h,i,a);else{if(p)throw new Error("amdefine with no module ID cannot be called more than once per file.");p=!0,h=b.exports,i=b,g=l(e,h,i,b.id)}c&&(c=c.map(function(a){return g(a)})),j="function"==typeof f?f.apply(i.exports,c):f,void 0!==j&&(i.exports=j,a&&(o[a]=i.exports))}function k(a,b,c){Array.isArray(a)?(c=b,b=a,a=void 0):"string"!=typeof a&&(c=a,a=b=void 0),b&&!Array.isArray(b)&&(c=b,b=void 0),b||(b=["require","exports","module"]),a?n[a]=[a,b,c]:j(a,b,c)}var l,m,n={},o={},p=!1,q=a("path");return l=function(a,b,d,e){function f(f,g){return"string"==typeof f?m(a,b,d,f,e):(f=f.map(function(c){return m(a,b,d,c,e)}),void(g&&c.nextTick(function(){g.apply(null,f)})))}return f.toUrl=function(a){return 0===a.indexOf(".")?g(a,q.dirname(d.filename)):a},f},e=e||function(){return b.require.apply(b,arguments)},m=function(a,b,c,d,e){var f,k,p=d.indexOf("!"),q=d;if(-1===p){if(d=g(d,e),"require"===d)return l(a,b,c,e);if("exports"===d)return b;if("module"===d)return c;if(o.hasOwnProperty(d))return o[d];if(n[d])return j.apply(null,n[d]),o[d];if(a)return a(q);throw new Error("No module with ID: "+d)}return f=d.substring(0,p),d=d.substring(p+1,d.length),k=m(a,b,c,f,e),d=k.normalize?k.normalize(d,h(e)):g(d,e),o[d]?o[d]:(k.load(d,l(a,b,c,e),i(d),{}),o[d])},k.require=function(a){return o[a]?o[a]:n[a]?(j.apply(null,n[a]),o[a]):void 0},k.amd={},k}b.exports=e}).call(this,a("_process"),"/node_modules\\amdefine\\amdefine.js")},{_process:90,path:88}],2:[function(a,b,c){"use strict";function d(){for(var a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",b=0,c=a.length;c>b;++b)i[b]=a[b],j[a.charCodeAt(b)]=b;j["-".charCodeAt(0)]=62,j["_".charCodeAt(0)]=63}function e(a){var b,c,d,e,f,g,h=a.length;if(h%4>0)throw new Error("Invalid string. Length must be a multiple of 4");f="="===a[h-2]?2:"="===a[h-1]?1:0,g=new k(3*h/4-f),d=f>0?h-4:h;var i=0;for(b=0,c=0;d>b;b+=4,c+=3)e=j[a.charCodeAt(b)]<<18|j[a.charCodeAt(b+1)]<<12|j[a.charCodeAt(b+2)]<<6|j[a.charCodeAt(b+3)],g[i++]=e>>16&255,g[i++]=e>>8&255,g[i++]=255&e;return 2===f?(e=j[a.charCodeAt(b)]<<2|j[a.charCodeAt(b+1)]>>4,g[i++]=255&e):1===f&&(e=j[a.charCodeAt(b)]<<10|j[a.charCodeAt(b+1)]<<4|j[a.charCodeAt(b+2)]>>2,g[i++]=e>>8&255,g[i++]=255&e),g}function f(a){return i[a>>18&63]+i[a>>12&63]+i[a>>6&63]+i[63&a]}function g(a,b,c){for(var d,e=[],g=b;c>g;g+=3)d=(a[g]<<16)+(a[g+1]<<8)+a[g+2],e.push(f(d));return e.join("")}function h(a){for(var b,c=a.length,d=c%3,e="",f=[],h=16383,j=0,k=c-d;k>j;j+=h)f.push(g(a,j,j+h>k?k:j+h));return 1===d?(b=a[c-1],e+=i[b>>2],e+=i[b<<4&63],e+="=="):2===d&&(b=(a[c-2]<<8)+a[c-1],e+=i[b>>10],e+=i[b>>4&63],e+=i[b<<2&63],e+="="),f.push(e),f.join("")}c.toByteArray=e,c.fromByteArray=h;var i=[],j=[],k="undefined"!=typeof Uint8Array?Uint8Array:Array;d()},{}],3:[function(a,b,c){},{}],4:[function(a,b,c){arguments[4][3][0].apply(c,arguments)},{dup:3}],5:[function(a,b,c){(function(b){"use strict";function d(){try{var a=new Uint8Array(1);return a.foo=function(){return 42},42===a.foo()&&"function"==typeof a.subarray&&0===a.subarray(1,1).byteLength}catch(b){return!1}}function e(){return f.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function f(a){return this instanceof f?(f.TYPED_ARRAY_SUPPORT||(this.length=0,this.parent=void 0),"number"==typeof a?g(this,a):"string"==typeof a?h(this,a,arguments.length>1?arguments[1]:"utf8"):i(this,a)):arguments.length>1?new f(a,arguments[1]):new f(a)}function g(a,b){if(a=p(a,0>b?0:0|q(b)),!f.TYPED_ARRAY_SUPPORT)for(var c=0;b>c;c++)a[c]=0;return a}function h(a,b,c){"string"==typeof c&&""!==c||(c="utf8");var d=0|s(b,c);return a=p(a,d),a.write(b,c),a}function i(a,b){if(f.isBuffer(b))return j(a,b);if(Y(b))return k(a,b);if(null==b)throw new TypeError("must start with number, buffer, array or string");if("undefined"!=typeof ArrayBuffer){if(b.buffer instanceof ArrayBuffer)return l(a,b);if(b instanceof ArrayBuffer)return m(a,b)}return b.length?n(a,b):o(a,b)}function j(a,b){var c=0|q(b.length);return a=p(a,c),b.copy(a,0,0,c),a}function k(a,b){var c=0|q(b.length);a=p(a,c);for(var d=0;c>d;d+=1)a[d]=255&b[d];return a}function l(a,b){var c=0|q(b.length);a=p(a,c);for(var d=0;c>d;d+=1)a[d]=255&b[d];return a}function m(a,b){return b.byteLength,f.TYPED_ARRAY_SUPPORT?(a=new Uint8Array(b),a.__proto__=f.prototype):a=l(a,new Uint8Array(b)),a}function n(a,b){var c=0|q(b.length);a=p(a,c);for(var d=0;c>d;d+=1)a[d]=255&b[d];return a}function o(a,b){var c,d=0;"Buffer"===b.type&&Y(b.data)&&(c=b.data,d=0|q(c.length)),a=p(a,d);for(var e=0;d>e;e+=1)a[e]=255&c[e];return a}function p(a,b){f.TYPED_ARRAY_SUPPORT?(a=new Uint8Array(b),a.__proto__=f.prototype):a.length=b;var c=0!==b&&b<=f.poolSize>>>1;return c&&(a.parent=Z),a}function q(a){if(a>=e())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+e().toString(16)+" bytes");return 0|a}function r(a,b){if(!(this instanceof r))return new r(a,b);var c=new f(a,b);return delete c.parent,c}function s(a,b){"string"!=typeof a&&(a=""+a);var c=a.length;if(0===c)return 0;for(var d=!1;;)switch(b){case"ascii":case"binary":case"raw":case"raws":return c;case"utf8":case"utf-8":return R(a).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*c;case"hex":return c>>>1;case"base64":return U(a).length;default:if(d)return R(a).length;b=(""+b).toLowerCase(),d=!0}}function t(a,b,c){var d=!1;if(b=0|b,c=void 0===c||c===1/0?this.length:0|c,a||(a="utf8"),0>b&&(b=0),c>this.length&&(c=this.length),b>=c)return"";for(;;)switch(a){case"hex":return F(this,b,c);case"utf8":case"utf-8":return B(this,b,c);case"ascii":return D(this,b,c);case"binary":return E(this,b,c);case"base64":return A(this,b,c);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return G(this,b,c);default:if(d)throw new TypeError("Unknown encoding: "+a);a=(a+"").toLowerCase(),d=!0}}function u(a,b,c,d){c=Number(c)||0;var e=a.length-c;d?(d=Number(d),d>e&&(d=e)):d=e;var f=b.length;if(f%2!==0)throw new Error("Invalid hex string");d>f/2&&(d=f/2);for(var g=0;d>g;g++){var h=parseInt(b.substr(2*g,2),16);if(isNaN(h))throw new Error("Invalid hex string");a[c+g]=h}return g}function v(a,b,c,d){return V(R(b,a.length-c),a,c,d)}function w(a,b,c,d){return V(S(b),a,c,d)}function x(a,b,c,d){return w(a,b,c,d)}function y(a,b,c,d){return V(U(b),a,c,d)}function z(a,b,c,d){return V(T(b,a.length-c),a,c,d)}function A(a,b,c){return 0===b&&c===a.length?W.fromByteArray(a):W.fromByteArray(a.slice(b,c))}function B(a,b,c){c=Math.min(a.length,c);for(var d=[],e=b;c>e;){var f=a[e],g=null,h=f>239?4:f>223?3:f>191?2:1;if(c>=e+h){var i,j,k,l;switch(h){case 1:128>f&&(g=f);break;case 2:i=a[e+1],128===(192&i)&&(l=(31&f)<<6|63&i,l>127&&(g=l));break;case 3:i=a[e+1],j=a[e+2],128===(192&i)&&128===(192&j)&&(l=(15&f)<<12|(63&i)<<6|63&j,l>2047&&(55296>l||l>57343)&&(g=l));break;case 4:i=a[e+1],j=a[e+2],k=a[e+3],128===(192&i)&&128===(192&j)&&128===(192&k)&&(l=(15&f)<<18|(63&i)<<12|(63&j)<<6|63&k,l>65535&&1114112>l&&(g=l))}}null===g?(g=65533,h=1):g>65535&&(g-=65536,d.push(g>>>10&1023|55296),g=56320|1023&g),d.push(g),e+=h}return C(d)}function C(a){var b=a.length;if($>=b)return String.fromCharCode.apply(String,a);for(var c="",d=0;b>d;)c+=String.fromCharCode.apply(String,a.slice(d,d+=$));return c}function D(a,b,c){var d="";c=Math.min(a.length,c);for(var e=b;c>e;e++)d+=String.fromCharCode(127&a[e]);return d}function E(a,b,c){var d="";c=Math.min(a.length,c);for(var e=b;c>e;e++)d+=String.fromCharCode(a[e]);return d}function F(a,b,c){var d=a.length;(!b||0>b)&&(b=0),(!c||0>c||c>d)&&(c=d);for(var e="",f=b;c>f;f++)e+=Q(a[f]);return e}function G(a,b,c){for(var d=a.slice(b,c),e="",f=0;f<d.length;f+=2)e+=String.fromCharCode(d[f]+256*d[f+1]);return e}function H(a,b,c){if(a%1!==0||0>a)throw new RangeError("offset is not uint");if(a+b>c)throw new RangeError("Trying to access beyond buffer length")}function I(a,b,c,d,e,g){if(!f.isBuffer(a))throw new TypeError("buffer must be a Buffer instance");if(b>e||g>b)throw new RangeError("value is out of bounds");if(c+d>a.length)throw new RangeError("index out of range")}function J(a,b,c,d){0>b&&(b=65535+b+1);for(var e=0,f=Math.min(a.length-c,2);f>e;e++)a[c+e]=(b&255<<8*(d?e:1-e))>>>8*(d?e:1-e)}function K(a,b,c,d){0>b&&(b=4294967295+b+1);for(var e=0,f=Math.min(a.length-c,4);f>e;e++)a[c+e]=b>>>8*(d?e:3-e)&255}function L(a,b,c,d,e,f){if(c+d>a.length)throw new RangeError("index out of range");if(0>c)throw new RangeError("index out of range")}function M(a,b,c,d,e){return e||L(a,b,c,4,0xf.fffff(e+31),-0xf.fffff(e+31)),X.write(a,b,c,d,23,4),c+4}function N(a,b,c,d,e){return e||L(a,b,c,8,1.7976931348623157e308,-1.7976931348623157e308),X.write(a,b,c,d,52,8),c+8}function O(a){if(a=P(a).replace(_,""),a.length<2)return"";for(;a.length%4!==0;)a+="=";return a}function P(a){return a.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function Q(a){return 16>a?"0"+a.toString(16):a.toString(16)}function R(a,b){b=b||1/0;for(var c,d=a.length,e=null,f=[],g=0;d>g;g++){if(c=a.charCodeAt(g),c>55295&&57344>c){if(!e){if(c>56319){(b-=3)>-1&&f.push(239,191,189);continue}if(g+1===d){(b-=3)>-1&&f.push(239,191,189);continue}e=c;continue}if(56320>c){(b-=3)>-1&&f.push(239,191,189),e=c;continue}c=(e-55296<<10|c-56320)+65536}else e&&(b-=3)>-1&&f.push(239,191,189);if(e=null,128>c){if((b-=1)<0)break;f.push(c)}else if(2048>c){if((b-=2)<0)break;f.push(c>>6|192,63&c|128)}else if(65536>c){if((b-=3)<0)break;f.push(c>>12|224,c>>6&63|128,63&c|128)}else{if(!(1114112>c))throw new Error("Invalid code point");if((b-=4)<0)break;f.push(c>>18|240,c>>12&63|128,c>>6&63|128,63&c|128)}}return f}function S(a){for(var b=[],c=0;c<a.length;c++)b.push(255&a.charCodeAt(c));return b}function T(a,b){for(var c,d,e,f=[],g=0;g<a.length&&!((b-=2)<0);g++)c=a.charCodeAt(g),d=c>>8,e=c%256,f.push(e),f.push(d);return f}function U(a){return W.toByteArray(O(a))}function V(a,b,c,d){for(var e=0;d>e&&!(e+c>=b.length||e>=a.length);e++)b[e+c]=a[e];return e}var W=a("base64-js"),X=a("ieee754"),Y=a("isarray");c.Buffer=f,c.SlowBuffer=r,c.INSPECT_MAX_BYTES=50,f.poolSize=8192;var Z={};f.TYPED_ARRAY_SUPPORT=void 0!==b.TYPED_ARRAY_SUPPORT?b.TYPED_ARRAY_SUPPORT:d(),f._augment=function(a){return a.__proto__=f.prototype,a},f.TYPED_ARRAY_SUPPORT?(f.prototype.__proto__=Uint8Array.prototype,f.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&f[Symbol.species]===f&&Object.defineProperty(f,Symbol.species,{value:null,configurable:!0})):(f.prototype.length=void 0,f.prototype.parent=void 0),f.isBuffer=function(a){return!(null==a||!a._isBuffer)},f.compare=function(a,b){if(!f.isBuffer(a)||!f.isBuffer(b))throw new TypeError("Arguments must be Buffers");if(a===b)return 0;for(var c=a.length,d=b.length,e=0,g=Math.min(c,d);g>e;++e)if(a[e]!==b[e]){c=a[e],d=b[e];break}return d>c?-1:c>d?1:0},f.isEncoding=function(a){switch(String(a).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},f.concat=function(a,b){if(!Y(a))throw new TypeError("list argument must be an Array of Buffers.");if(0===a.length)return new f(0);var c;if(void 0===b)for(b=0,c=0;c<a.length;c++)b+=a[c].length;var d=new f(b),e=0;for(c=0;c<a.length;c++){var g=a[c];g.copy(d,e),e+=g.length}return d},f.byteLength=s,f.prototype._isBuffer=!0,f.prototype.toString=function(){var a=0|this.length;return 0===a?"":0===arguments.length?B(this,0,a):t.apply(this,arguments)},f.prototype.equals=function(a){if(!f.isBuffer(a))throw new TypeError("Argument must be a Buffer");return this===a?!0:0===f.compare(this,a)},f.prototype.inspect=function(){var a="",b=c.INSPECT_MAX_BYTES;return this.length>0&&(a=this.toString("hex",0,b).match(/.{2}/g).join(" "),this.length>b&&(a+=" ... ")),"<Buffer "+a+">"},f.prototype.compare=function(a){if(!f.isBuffer(a))throw new TypeError("Argument must be a Buffer");return f.compare(this,a)},f.prototype.indexOf=function(a,b){function c(a,b,c){for(var d=-1,e=0;c+e<a.length;e++)if(a[c+e]===b[-1===d?0:e-d]){if(-1===d&&(d=e),e-d+1===b.length)return c+d}else d=-1;return-1}if(b>2147483647?b=2147483647:-2147483648>b&&(b=-2147483648),b>>=0,0===this.length)return-1;if(b>=this.length)return-1;if(0>b&&(b=Math.max(this.length+b,0)),"string"==typeof a)return 0===a.length?-1:String.prototype.indexOf.call(this,a,b);if(f.isBuffer(a))return c(this,a,b);if("number"==typeof a)return f.TYPED_ARRAY_SUPPORT&&"function"===Uint8Array.prototype.indexOf?Uint8Array.prototype.indexOf.call(this,a,b):c(this,[a],b);throw new TypeError("val must be string, number or Buffer")},f.prototype.write=function(a,b,c,d){if(void 0===b)d="utf8",c=this.length,b=0;else if(void 0===c&&"string"==typeof b)d=b,c=this.length,b=0;else if(isFinite(b))b=0|b,isFinite(c)?(c=0|c,void 0===d&&(d="utf8")):(d=c,c=void 0);else{var e=d;d=b,b=0|c,c=e}var f=this.length-b;if((void 0===c||c>f)&&(c=f),a.length>0&&(0>c||0>b)||b>this.length)throw new RangeError("attempt to write outside buffer bounds");d||(d="utf8");for(var g=!1;;)switch(d){case"hex":return u(this,a,b,c);case"utf8":case"utf-8":return v(this,a,b,c);case"ascii":return w(this,a,b,c);case"binary":return x(this,a,b,c);case"base64":return y(this,a,b,c);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return z(this,a,b,c);default:if(g)throw new TypeError("Unknown encoding: "+d);d=(""+d).toLowerCase(),g=!0}},f.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var $=4096;f.prototype.slice=function(a,b){var c=this.length;a=~~a,b=void 0===b?c:~~b,0>a?(a+=c,0>a&&(a=0)):a>c&&(a=c),0>b?(b+=c,0>b&&(b=0)):b>c&&(b=c),a>b&&(b=a);var d;if(f.TYPED_ARRAY_SUPPORT)d=this.subarray(a,b),d.__proto__=f.prototype;else{var e=b-a;d=new f(e,void 0);for(var g=0;e>g;g++)d[g]=this[g+a]}return d.length&&(d.parent=this.parent||this),d},f.prototype.readUIntLE=function(a,b,c){a=0|a,b=0|b,c||H(a,b,this.length);for(var d=this[a],e=1,f=0;++f<b&&(e*=256);)d+=this[a+f]*e;return d},f.prototype.readUIntBE=function(a,b,c){a=0|a,b=0|b,c||H(a,b,this.length);for(var d=this[a+--b],e=1;b>0&&(e*=256);)d+=this[a+--b]*e;return d},f.prototype.readUInt8=function(a,b){return b||H(a,1,this.length),this[a]},f.prototype.readUInt16LE=function(a,b){return b||H(a,2,this.length),this[a]|this[a+1]<<8},f.prototype.readUInt16BE=function(a,b){return b||H(a,2,this.length),this[a]<<8|this[a+1]},f.prototype.readUInt32LE=function(a,b){return b||H(a,4,this.length),(this[a]|this[a+1]<<8|this[a+2]<<16)+16777216*this[a+3]},f.prototype.readUInt32BE=function(a,b){return b||H(a,4,this.length),16777216*this[a]+(this[a+1]<<16|this[a+2]<<8|this[a+3])},f.prototype.readIntLE=function(a,b,c){a=0|a,b=0|b,c||H(a,b,this.length);for(var d=this[a],e=1,f=0;++f<b&&(e*=256);)d+=this[a+f]*e;return e*=128,d>=e&&(d-=Math.pow(2,8*b)),d},f.prototype.readIntBE=function(a,b,c){a=0|a,b=0|b,c||H(a,b,this.length);for(var d=b,e=1,f=this[a+--d];d>0&&(e*=256);)f+=this[a+--d]*e;return e*=128,f>=e&&(f-=Math.pow(2,8*b)),f},f.prototype.readInt8=function(a,b){return b||H(a,1,this.length),128&this[a]?-1*(255-this[a]+1):this[a]},f.prototype.readInt16LE=function(a,b){b||H(a,2,this.length);var c=this[a]|this[a+1]<<8;return 32768&c?4294901760|c:c},f.prototype.readInt16BE=function(a,b){b||H(a,2,this.length);var c=this[a+1]|this[a]<<8;return 32768&c?4294901760|c:c},f.prototype.readInt32LE=function(a,b){return b||H(a,4,this.length),this[a]|this[a+1]<<8|this[a+2]<<16|this[a+3]<<24},f.prototype.readInt32BE=function(a,b){return b||H(a,4,this.length),this[a]<<24|this[a+1]<<16|this[a+2]<<8|this[a+3]},f.prototype.readFloatLE=function(a,b){return b||H(a,4,this.length),X.read(this,a,!0,23,4)},f.prototype.readFloatBE=function(a,b){return b||H(a,4,this.length),X.read(this,a,!1,23,4)},f.prototype.readDoubleLE=function(a,b){return b||H(a,8,this.length),X.read(this,a,!0,52,8)},f.prototype.readDoubleBE=function(a,b){return b||H(a,8,this.length),X.read(this,a,!1,52,8)},f.prototype.writeUIntLE=function(a,b,c,d){a=+a,b=0|b,c=0|c,d||I(this,a,b,c,Math.pow(2,8*c),0);var e=1,f=0;for(this[b]=255&a;++f<c&&(e*=256);)this[b+f]=a/e&255;return b+c},f.prototype.writeUIntBE=function(a,b,c,d){a=+a,b=0|b,c=0|c,d||I(this,a,b,c,Math.pow(2,8*c),0);var e=c-1,f=1;for(this[b+e]=255&a;--e>=0&&(f*=256);)this[b+e]=a/f&255;return b+c},f.prototype.writeUInt8=function(a,b,c){return a=+a,b=0|b,c||I(this,a,b,1,255,0),f.TYPED_ARRAY_SUPPORT||(a=Math.floor(a)),this[b]=255&a,b+1},f.prototype.writeUInt16LE=function(a,b,c){return a=+a,b=0|b,c||I(this,a,b,2,65535,0),f.TYPED_ARRAY_SUPPORT?(this[b]=255&a,this[b+1]=a>>>8):J(this,a,b,!0),b+2},f.prototype.writeUInt16BE=function(a,b,c){return a=+a,b=0|b,c||I(this,a,b,2,65535,0),f.TYPED_ARRAY_SUPPORT?(this[b]=a>>>8,this[b+1]=255&a):J(this,a,b,!1),b+2},f.prototype.writeUInt32LE=function(a,b,c){return a=+a,b=0|b,c||I(this,a,b,4,4294967295,0),f.TYPED_ARRAY_SUPPORT?(this[b+3]=a>>>24,this[b+2]=a>>>16,this[b+1]=a>>>8,this[b]=255&a):K(this,a,b,!0),b+4},f.prototype.writeUInt32BE=function(a,b,c){return a=+a,b=0|b,c||I(this,a,b,4,4294967295,0),f.TYPED_ARRAY_SUPPORT?(this[b]=a>>>24,this[b+1]=a>>>16,this[b+2]=a>>>8,this[b+3]=255&a):K(this,a,b,!1),b+4},f.prototype.writeIntLE=function(a,b,c,d){if(a=+a,b=0|b,!d){var e=Math.pow(2,8*c-1);I(this,a,b,c,e-1,-e)}var f=0,g=1,h=0>a?1:0;for(this[b]=255&a;++f<c&&(g*=256);)this[b+f]=(a/g>>0)-h&255;return b+c},f.prototype.writeIntBE=function(a,b,c,d){if(a=+a,b=0|b,!d){var e=Math.pow(2,8*c-1);I(this,a,b,c,e-1,-e)}var f=c-1,g=1,h=0>a?1:0;for(this[b+f]=255&a;--f>=0&&(g*=256);)this[b+f]=(a/g>>0)-h&255;return b+c},f.prototype.writeInt8=function(a,b,c){return a=+a,b=0|b,c||I(this,a,b,1,127,-128),f.TYPED_ARRAY_SUPPORT||(a=Math.floor(a)),0>a&&(a=255+a+1),this[b]=255&a,b+1},f.prototype.writeInt16LE=function(a,b,c){return a=+a,b=0|b,c||I(this,a,b,2,32767,-32768),f.TYPED_ARRAY_SUPPORT?(this[b]=255&a,this[b+1]=a>>>8):J(this,a,b,!0),b+2},f.prototype.writeInt16BE=function(a,b,c){return a=+a,b=0|b,c||I(this,a,b,2,32767,-32768),f.TYPED_ARRAY_SUPPORT?(this[b]=a>>>8,this[b+1]=255&a):J(this,a,b,!1),b+2},f.prototype.writeInt32LE=function(a,b,c){return a=+a,b=0|b,c||I(this,a,b,4,2147483647,-2147483648),f.TYPED_ARRAY_SUPPORT?(this[b]=255&a,this[b+1]=a>>>8,this[b+2]=a>>>16,this[b+3]=a>>>24):K(this,a,b,!0),b+4},f.prototype.writeInt32BE=function(a,b,c){return a=+a,b=0|b,c||I(this,a,b,4,2147483647,-2147483648),0>a&&(a=4294967295+a+1),f.TYPED_ARRAY_SUPPORT?(this[b]=a>>>24,this[b+1]=a>>>16,this[b+2]=a>>>8,this[b+3]=255&a):K(this,a,b,!1),b+4},f.prototype.writeFloatLE=function(a,b,c){return M(this,a,b,!0,c)},f.prototype.writeFloatBE=function(a,b,c){return M(this,a,b,!1,c)},f.prototype.writeDoubleLE=function(a,b,c){return N(this,a,b,!0,c)},f.prototype.writeDoubleBE=function(a,b,c){return N(this,a,b,!1,c)},f.prototype.copy=function(a,b,c,d){if(c||(c=0),d||0===d||(d=this.length),b>=a.length&&(b=a.length),b||(b=0),d>0&&c>d&&(d=c),d===c)return 0;if(0===a.length||0===this.length)return 0;if(0>b)throw new RangeError("targetStart out of bounds");if(0>c||c>=this.length)throw new RangeError("sourceStart out of bounds");if(0>d)throw new RangeError("sourceEnd out of bounds");d>this.length&&(d=this.length),a.length-b<d-c&&(d=a.length-b+c);var e,g=d-c;if(this===a&&b>c&&d>b)for(e=g-1;e>=0;e--)a[e+b]=this[e+c];else if(1e3>g||!f.TYPED_ARRAY_SUPPORT)for(e=0;g>e;e++)a[e+b]=this[e+c];else Uint8Array.prototype.set.call(a,this.subarray(c,c+g),b);return g},f.prototype.fill=function(a,b,c){if(a||(a=0),b||(b=0),c||(c=this.length),b>c)throw new RangeError("end < start");if(c!==b&&0!==this.length){if(0>b||b>=this.length)throw new RangeError("start out of bounds");if(0>c||c>this.length)throw new RangeError("end out of bounds");var d;if("number"==typeof a)for(d=b;c>d;d++)this[d]=a;else{var e=R(a.toString()),f=e.length;for(d=b;c>d;d++)this[d]=e[d%f]}return this}};var _=/[^+\/0-9A-Za-z-_]/g}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"base64-js":2,ieee754:82,isarray:85}],6:[function(a,b,c){b.exports={100:"Continue",101:"Switching Protocols",102:"Processing",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",208:"Already Reported",226:"IM Used",300:"Multiple Choices",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",418:"I'm a teapot",421:"Misdirected Request",422:"Unprocessable Entity",423:"Locked",424:"Failed Dependency",425:"Unordered Collection",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",508:"Loop Detected",509:"Bandwidth Limit Exceeded",510:"Not Extended",511:"Network Authentication Required"}},{}],7:[function(a,b,c){b.exports=a("./lib/clean")},{"./lib/clean":8}],8:[function(a,b,c){(function(c){function d(a){return void 0===a?["all"]:a}function e(a){return!C.existsSync(a)&&!/\.css$/.test(a)}function f(a){return C.existsSync(a)&&C.statSync(a).isDirectory()}function g(a){return a?{hostname:E.parse(a).hostname,port:parseInt(E.parse(a).port)}:{}}function h(a,b){function c(c){return c=b.options.debug?j(b,c):l(b,c),c=i(b,c),a?a.call(null,b.errors.length>0?b.errors:null,c):c}return function(a){return b.options.sourceMap?b.inputSourceMapTracker.track(a,function(){return b.options.sourceMapInlineSources?b.inputSourceMapTracker.resolveSources(function(){return c(a)}):c(a)}):c(a)}}function i(a,b){return b.stats=a.stats,b.errors=a.errors,b.warnings=a.warnings,b}function j(a,b){var d=c.hrtime();a.stats.originalSize=a.sourceTracker.removeAll(b).length,b=l(a,b);var e=c.hrtime(d);return a.stats.timeSpent=~~(1e3*e[0]+e[1]/1e6),a.stats.efficiency=1-b.styles.length/a.stats.originalSize,a.stats.minifiedSize=b.styles.length,b}function k(a){return function(b,d){var e=b.constructor.name+"#"+d,f=c.hrtime();a(b,d);var g=c.hrtime(f);console.log("%d ms: "+e,1e3*g[0]+g[1]/1e6)}}function l(a,b){function c(b,c){return b=g.restore(b,c),b=h.restore(b),b=d.rebase?n(b,a):b,b=f.restore(b),e.restore(b)}var d=a.options,e=new t(a,d.keepSpecialComments,d.keepBreaks,d.sourceMap),f=new u(d.sourceMap),g=new v(d.sourceMap),h=new w(a,d.sourceMap,d.compatibility.properties.urlQuotes),i=d.sourceMap?s:r,j=function(a,c){b="function"==typeof a?a(b):a[c](b)};d.benchmark&&(j=k(j)),j(e,"escape"),j(f,"escape"),j(h,"escape"),j(g,"escape");var l=o(b,a);return p(l,d),d.advanced&&q(l,d,a.validator,!0),i(l,d,c,a.inputSourceMapTracker)}var m=a("./imports/inliner"),n=a("./urls/rebase"),o=a("./tokenizer/tokenize"),p=a("./selectors/simple"),q=a("./selectors/advanced"),r=a("./stringifier/simple"),s=a("./stringifier/source-maps"),t=a("./text/comments-processor"),u=a("./text/expressions-processor"),v=a("./text/free-text-processor"),w=a("./text/urls-processor"),x=a("./utils/compatibility"),y=a("./utils/input-source-map-tracker"),z=a("./utils/source-tracker"),A=a("./utils/source-reader"),B=a("./properties/validator"),C=a("fs"),D=a("path"),E=a("url"),F=a("./utils/object").override,G=5e3,H=b.exports=function(a){a=a||{},this.options={advanced:void 0===a.advanced?!0:!!a.advanced,aggressiveMerging:void 0===a.aggressiveMerging?!0:!!a.aggressiveMerging,benchmark:a.benchmark,compatibility:new x(a.compatibility).toOptions(),debug:a.debug,explicitRoot:!!a.root,explicitTarget:!!a.target,inliner:a.inliner||{},keepBreaks:a.keepBreaks||!1,keepSpecialComments:"keepSpecialComments"in a?a.keepSpecialComments:"*",mediaMerging:void 0===a.mediaMerging?!0:!!a.mediaMerging,processImport:void 0===a.processImport?!0:!!a.processImport,processImportFrom:d(a.processImportFrom),rebase:void 0===a.rebase?!0:!!a.rebase,relativeTo:a.relativeTo,restructuring:void 0===a.restructuring?!0:!!a.restructuring,root:a.root||c.cwd(),roundingPrecision:a.roundingPrecision,semanticMerging:void 0===a.semanticMerging?!1:!!a.semanticMerging,shorthandCompacting:void 0===a.shorthandCompacting?!0:!!a.shorthandCompacting,sourceMap:a.sourceMap,sourceMapInlineSources:!!a.sourceMapInlineSources,target:!a.target||e(a.target)||f(a.target)?a.target:D.dirname(a.target)},this.options.inliner.timeout=this.options.inliner.timeout||G,this.options.inliner.request=F(g(c.env.HTTP_PROXY||c.env.http_proxy),this.options.inliner.request||{})};H.prototype.minify=function(a,b){var d={stats:{},errors:[],warnings:[],options:this.options,debug:this.options.debug,localOnly:!b,sourceTracker:new z,validator:new B(this.options.compatibility)};if(d.options.sourceMap&&(d.inputSourceMapTracker=new y(d)),d.sourceReader=new A(d,a),a=d.sourceReader.toString(),d.options.processImport||a.indexOf("@shallow")>0){var e=b?c.nextTick:function(a){return a()};return e(function(){return new m(d).process(a,{localOnly:d.localOnly,imports:d.options.processImportFrom,whenDone:h(b,d)})})}return h(b,d)(a)}}).call(this,a("_process"))},{"./imports/inliner":12,"./properties/validator":26,"./selectors/advanced":29,"./selectors/simple":42,"./stringifier/simple":46,"./stringifier/source-maps":47,"./text/comments-processor":48,"./text/expressions-processor":50,"./text/free-text-processor":51,"./text/urls-processor":52,"./tokenizer/tokenize":55,"./urls/rebase":56,"./utils/compatibility":60,"./utils/input-source-map-tracker":61,"./utils/object":62,"./utils/source-reader":64,"./utils/source-tracker":65,_process:90,fs:4,path:88,url:141}],9:[function(a,b,c){function d(a,b,c,d){return b+h[c.toLowerCase()]+d}function e(a,b,c){return i[b.toLowerCase()]+c}var f={},g={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#0ff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000",blanchedalmond:"#ffebcd",blue:"#00f",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#0ff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#f0f",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#0f0",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#f00",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#fff",whitesmoke:"#f5f5f5",yellow:"#ff0",yellowgreen:"#9acd32"},h={},i={};for(var j in g){var k=g[j];j.length<k.length?i[k]=j:h[j]=k}var l=new RegExp("(^| |,|\\))("+Object.keys(h).join("|")+")( |,|\\)|$)","ig"),m=new RegExp("("+Object.keys(i).join("|")+")([^a-f0-9]|$)","ig");f.shorten=function(a){var b=a.indexOf("#")>-1,c=a.replace(l,d);return c!=a&&(c=c.replace(l,d)),b?c.replace(m,e):c},b.exports=f},{}],10:[function(a,b,c){function d(a,b,c){this.hue=a,this.saturation=b,this.lightness=c}function e(a,b,c){var d,e,g;if(a%=360,0>a&&(a+=360),a=~~a/360,0>b?b=0:b>100&&(b=100),b=~~b/100,0>c?c=0:c>100&&(c=100),c=~~c/100,0===b)d=e=g=c;else{var h=.5>c?c*(1+b):c+b-c*b,i=2*c-h;d=f(i,h,a+1/3),e=f(i,h,a),g=f(i,h,a-1/3)}return[~~(255*d),~~(255*e),~~(255*g)]}function f(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a}d.prototype.toHex=function(){var a=e(this.hue,this.saturation,this.lightness),b=a[0].toString(16),c=a[1].toString(16),d=a[2].toString(16);return"#"+((1==b.length?"0":"")+b)+((1==c.length?"0":"")+c)+((1==d.length?"0":"")+d)},b.exports=d},{}],11:[function(a,b,c){function d(a,b,c){this.red=a,this.green=b,this.blue=c}d.prototype.toHex=function(){var a=Math.max(0,Math.min(~~this.red,255)),b=Math.max(0,Math.min(~~this.green,255)),c=Math.max(0,Math.min(~~this.blue,255));return"#"+("00000"+(a<<16|b<<8|c).toString(16)).slice(-6)},b.exports=d},{}],12:[function(a,b,c){(function(c){function d(a){this.outerContext=a}function e(a,b){if(b.shallow)return b.shallow=!1,b.done.push(a),h(b);for(var c=0,d=0,e=0,f=i(a);d<a.length&&(c=g(a,e),-1!=c);){if(!f(c)){if(d=a.indexOf(";",c),-1==d){e=a.length,a="";break}var l=a.substring(0,c);return b.done.push(l),b.left.unshift([a.substring(d+1),b]),b.afterContent=j(l),k(a,c,d,b)}e=c+1}return b.done.push(a),h(b)}function f(a,b){return a.replace(x,function(a,c){return y.test(c)?a:a.replace(c,t.resolve(b,c))})}function g(a,b){var c=a.indexOf("@import",b),d=a.indexOf("@IMPORT",b);return c>-1&&-1==d?c:-1==c&&d>-1?d:Math.min(c,d)}function h(a){return a.left.length>0?e.apply(null,a.left.shift()):a.whenDone(a.done.join(""))}function i(a){var b=/(\/\*(?!\*\/)[\s\S]*?\*\/)/,c=0,d=0,e=!1;return function(f){var g,h=0,i=0,j=0,k=0;if(e)return!1;do{if(f>c&&d>f)return!0;
+if(g=a.match(b),!g)return e=!0,!1;c=h=g.index,i=h+g[0].length,k=i+d,j=k-g[0].length,a=a.substring(i),d=k}while(f>k);return k>f&&f>j}}function j(a){for(var b=i(a),c=-1;;)if(c=a.indexOf("{",c+1),-1==c||!b(c))break;return c>-1}function k(a,b,c,d){d.shallow=a.indexOf("@shallow")>0;var e=a.substring(g(a,b)+"@import".length+1,c).replace(/@shallow\)$/,")").trim(),f=0===e.indexOf("url("),i=f?4:0,k=/^['"]/.exec(e.substring(i,i+2)),p=k?e.indexOf(k[0],i+1):v(e," ")[0].length-(f?1:0),q=e.substring(i,p).replace(/['"]/g,"").replace(/\)$/,"").trim(),r=e.substring(p+1).replace(/^\)/,"").trim(),s=d.isRemote||y.test(q);if(s&&(d.localOnly||!l(q,!0,d.imports)))return d.afterContent||j(d.done.join(""))?d.warnings.push('Ignoring remote @import of "'+q+'" as no callback given.'):o(q,r,d),h(d);if(!s&&!l(q,!1,d.imports))return d.afterImport?d.warnings.push('Ignoring local @import of "'+q+'" as after other inlined content.'):o(q,r,d),h(d);if(!s&&d.afterContent)return d.warnings.push('Ignoring local @import of "'+q+'" as after other CSS content.'),h(d);var t=s?m:n;return t(q,r,d)}function l(a,b,c){if(0===c.length)return!1;b&&z.test(a)&&(a="http:"+a);for(var d=b?t.parse(a).host:a,e=!0,f=0;f<c.length;f++){var g=c[f];"all"==g?e=!0:b&&"local"==g?e=!1:b&&"remote"==g?e=!0:b||"remote"!=g?b||"local"!=g?"!"==g[0]&&g.substring(1)===d&&(e=!1):e=!0:e=!1}return e}function m(a,b,d){function g(a){n||(n=!0,d.errors.push('Broken @import declaration of "'+i+'" - '+a),o(i,b,d),c.nextTick(function(){h(d)}))}var i=y.test(a)?a:t.resolve(d.relativeTo,a),j=i;if(z.test(i)&&(i="http:"+i),d.visited.indexOf(i)>-1)return h(d);d.debug&&console.error("Inlining remote stylesheet: "+i),d.visited.push(i);var k=d.inliner.request.protocol||d.inliner.request.hostname,l=k&&0!==k.indexOf("https://")||0===i.indexOf("http://")?r.get:s.get,n=!1,p=w(t.parse(i),d.inliner.request);void 0!==d.inliner.request.hostname&&(p.protocol=d.inliner.request.protocol||"http:",p.path=p.href),l(p,function(a){if(a.statusCode<200||a.statusCode>399)return g("error "+a.statusCode);if(a.statusCode>299){var h=t.resolve(i,a.headers.location);return m(h,b,d)}var k=[],l=t.parse(i);a.on("data",function(a){k.push(a.toString())}),a.on("end",function(){var a=k.join("");d.rebase&&(a=u(a,{toBase:j},d)),d.sourceReader.trackSource(i,a),a=d.sourceTracker.store(i,a),a=f(a,i),b.length>0&&(a="@media "+b+"{"+a+"}"),d.afterImport=!0;var g=w(d,{isRemote:!0,relativeTo:l.protocol+"//"+l.host+l.pathname});c.nextTick(function(){e(a,g)})})}).on("error",function(a){g(a.message)}).on("timeout",function(){g("timeout")}).setTimeout(d.inliner.timeout)}function n(a,b,c){var d="/"==a[0]?c.root:c.relativeTo,f=q.resolve(q.join(d,a));if(!p.existsSync(f)||!p.statSync(f).isFile())return c.errors.push('Broken @import declaration of "'+a+'"'),h(c);if(c.visited.indexOf(f)>-1)return h(c);c.debug&&console.error("Inlining local stylesheet: "+f),c.visited.push(f);var g=q.dirname(f),i=p.readFileSync(f,"utf8");if(c.rebase){var j={relative:!0,fromBase:g,toBase:c.baseRelativeTo};i=u(i,j,c)}var k=q.relative(c.root,f);c.sourceReader.trackSource(k,i),i=c.sourceTracker.store(k,i),b.length>0&&(i="@media "+b+"{"+i+"}"),c.afterImport=!0;var l=w(c,{relativeTo:g});return e(i,l)}function o(a,b,c){var d="@import url("+a+")"+(b.length>0?" "+b:"")+";";c.done.push(d)}var p=a("fs"),q=a("path"),r=a("http"),s=a("https"),t=a("url"),u=a("../urls/rewrite"),v=a("../utils/split"),w=a("../utils/object.js").override,x=/\/\*# sourceMappingURL=(\S+) \*\//,y=/^(https?:)?\/\//,z=/^\/\//;d.prototype.process=function(a,b){var c=this.outerContext.options.root;return b=w(b,{baseRelativeTo:this.outerContext.options.relativeTo||c,debug:this.outerContext.options.debug,done:[],errors:this.outerContext.errors,left:[],inliner:this.outerContext.options.inliner,rebase:this.outerContext.options.rebase,relativeTo:this.outerContext.options.relativeTo||c,root:c,sourceReader:this.outerContext.sourceReader,sourceTracker:this.outerContext.sourceTracker,warnings:this.outerContext.warnings,visited:[]}),e(a,b)},b.exports=d}).call(this,a("_process"))},{"../urls/rewrite":58,"../utils/object.js":62,"../utils/split":66,_process:90,fs:4,http:123,https:81,path:88,url:141}],13:[function(a,b,c){function d(a){return function(b){return"invert"==b[0]||a.isValidColor(b[0])}}function e(a){return function(b){return"inherit"!=b[0]&&a.isValidStyle(b[0])&&!a.isValidColorValue(b[0])}}function f(a,b,c){var d=c[a];return n(d.doubleValues&&2==d.defaultValue.length?[[a,b.important],[d.defaultValue[0]],[d.defaultValue[1]]]:d.doubleValues&&1==d.defaultValue.length?[[a,b.important],[d.defaultValue[0]]]:[[a,b.important],[d.defaultValue]])}function g(a){return function(b){return"inherit"!=b[0]&&a.isValidWidth(b[0])&&!a.isValidStyleKeyword(b[0])&&!a.isValidColorValue(b[0])}}function h(a,b,c){var d=f("background-image",a,b),e=f("background-position",a,b),g=f("background-size",a,b),h=f("background-repeat",a,b),i=f("background-attachment",a,b),j=f("background-origin",a,b),k=f("background-clip",a,b),l=f("background-color",a,b),m=[d,e,g,h,i,j,k,l],n=a.value,p=!1,q=!1,r=!1,s=!1;if(1==a.value.length&&"inherit"==a.value[0][0])return l.value=d.value=h.value=e.value=g.value=j.value=k.value=a.value,m;for(var t=n.length-1;t>=0;t--){var u=n[t];if(c.isValidBackgroundAttachment(u[0]))i.value=[u];else if(c.isValidBackgroundBox(u[0]))q?(j.value=[u],r=!0):(k.value=[u],q=!0);else if(c.isValidBackgroundRepeat(u[0]))s?h.value.unshift(u):(h.value=[u],s=!0);else if(c.isValidBackgroundPositionPart(u[0])||c.isValidBackgroundSizePart(u[0]))if(t>0){var v=n[t-1];if(v[0].indexOf("/")>0){var w=o(v[0],"/");g.value=[[w.pop()].concat(v.slice(1)),u],n[t-1]=[w.pop()].concat(v.slice(1))}else t>1&&"/"==n[t-2][0]?(g.value=[v,u],t-=2):"/"==v[0]?g.value=[u]:(p||(e.value=[]),e.value.unshift(u),p=!0)}else p||(e.value=[]),e.value.unshift(u),p=!0;else if(c.isValidBackgroundPositionAndSize(u[0])){var x=o(u[0],"/");g.value=[[x.pop()].concat(u.slice(1))],e.value=[[x.pop()].concat(u.slice(1))]}else l.value[0][0]!=b[l.name].defaultValue&&"none"!=l.value[0][0]||!c.isValidColor(u[0])?(c.isValidUrl(u[0])||c.isValidFunction(u[0]))&&(d.value=[u]):l.value=[u]}return q&&!r&&(j.value=k.value.slice(0)),m}function i(a,b){for(var c=a.value,d=-1,e=0,g=c.length;g>e;e++)if("/"==c[e][0]){d=e;break}if(-1==d)return j(a,b);var h=f(a.name,a,b);h.value=c.slice(0,d),h.components=j(h,b);var i=f(a.name,a,b);i.value=c.slice(d+1),i.components=j(i,b);for(var k=0;4>k;k++)h.components[k].multiplex=!0,h.components[k].value=h.components[k].value.concat([["/"]]).concat(i.components[k].value);return h.components}function j(a,b){var c=b[a.name].components,d=[],e=a.value;if(e.length<1)return[];e.length<2&&(e[1]=e[0].slice(0)),e.length<3&&(e[2]=e[0].slice(0)),e.length<4&&(e[3]=e[1].slice(0));for(var f=c.length-1;f>=0;f--){var g=n([[c[f],a.important]]);g.value=[e[f]],d.unshift(g)}return d}function k(a){return function(b,c,d){var e,g,h,i,j=[],k=b.value;for(e=0,h=k.length;h>e;e++)","==k[e][0]&&j.push(e);if(0===j.length)return a(b,c,d);var l=[];for(e=0,h=j.length;h>=e;e++){var m=0===e?0:j[e-1]+1,n=h>e?j[e]:k.length,o=f(b.name,b,c);o.value=k.slice(m,n),l.push(a(o,c,d))}var q=l[0];for(e=0,h=q.length;h>e;e++)for(q[e].multiplex=!0,g=1,i=l.length;i>g;g++)q[e].value.push([p]),Array.prototype.push.apply(q[e].value,l[g][e].value);return q}}function l(a,b,c){var d=f("list-style-type",a,b),e=f("list-style-position",a,b),g=f("list-style-image",a,b),h=[d,e,g];if(1==a.value.length&&"inherit"==a.value[0][0])return d.value=e.value=g.value=[a.value[0]],h;var i=a.value.slice(0),j=i.length,k=0;for(k=0,j=i.length;j>k;k++)if(c.isValidUrl(i[k][0])||"0"==i[k][0]){g.value=[i[k]],i.splice(k,1);break}for(k=0,j=i.length;j>k;k++)if(c.isValidListStyleType(i[k][0])){d.value=[i[k]],i.splice(k,1);break}return i.length>0&&c.isValidListStylePosition(i[0][0])&&(e.value=[i[0]]),h}function m(a,b,c){for(var h,i,j,k=b[a.name],l=[f(k.components[0],a,b),f(k.components[1],a,b),f(k.components[2],a,b)],m=0;3>m;m++){var n=l[m];n.name.indexOf("color")>0?h=n:n.name.indexOf("style")>0?i=n:j=n}if(1==a.value.length&&"inherit"==a.value[0][0]||3==a.value.length&&"inherit"==a.value[0][0]&&"inherit"==a.value[1][0]&&"inherit"==a.value[2][0])return h.value=i.value=j.value=[a.value[0]],l;var o,p,q=a.value.slice(0);return q.length>0&&(p=q.filter(g(c)),o=p.length>1&&("none"==p[0][0]||"auto"==p[0][0])?p[1]:p[0],o&&(j.value=[o],q.splice(q.indexOf(o),1))),q.length>0&&(o=q.filter(e(c))[0],o&&(i.value=[o],q.splice(q.indexOf(o),1))),q.length>0&&(o=q.filter(d(c))[0],o&&(h.value=[o],q.splice(q.indexOf(o),1))),l}var n=a("./wrap-for-optimizing").single,o=a("../utils/split"),p=",";b.exports={background:h,border:m,borderRadius:i,fourValues:j,listStyle:l,multiplex:k,outline:m}},{"../utils/split":66,"./wrap-for-optimizing":28}],14:[function(a,b,c){function d(){return!0}function e(a,b,c){var d=a.value[0][0],e=b.value[0][0];return"none"==e||"inherit"==e||c.isValidUrl(e)?!0:"none"==d||"inherit"==d||c.isValidUrl(d)?!1:j(a,b,c)}function f(a,b,c){return g(a.components[2],b.components[2],c)}function g(a,b,c){var d=a.value[0][0],e=b.value[0][0];return(c.colorOpacity||!c.isValidRgbaColor(d)&&!c.isValidHslaColor(d))&&(c.colorOpacity||!c.isValidRgbaColor(e)&&!c.isValidHslaColor(e))?c.isValidNamedColor(e)||c.isValidHexColor(e)?!0:c.isValidNamedColor(d)||c.isValidHexColor(d)?!1:c.isValidRgbaColor(e)||c.isValidHslaColor(e)?!0:c.isValidRgbaColor(d)||c.isValidHslaColor(d)?!1:j(a,b,c):!1}function h(a,b,c){var d=a.value[0][0],e=b.value[0][0];return!(c.isValidFunction(d)^c.isValidFunction(e))}function i(a,b){var c=a.value[0][0],d=b.value[0][0];return c===d}function j(a,b,c){var d=a.value[0][0],e=b.value[0][0];return c.areSameFunction(d,e)?!0:d===e}function k(a,b,c){var d=a.value[0][0],e=b.value[0][0];return c.isValidAndCompatibleUnitWithoutFunction(d)&&!c.isValidAndCompatibleUnitWithoutFunction(e)?!1:c.isValidUnitWithoutFunction(e)?!0:c.isValidUnitWithoutFunction(d)?!1:c.isValidFunctionWithoutVendorPrefix(e)&&c.isValidFunctionWithoutVendorPrefix(d)?!0:j(a,b,c)}b.exports={always:d,backgroundImage:e,border:f,color:g,sameValue:i,sameFunctionOrValue:j,twoOptionalFunctions:h,unit:k}},{}],15:[function(a,b,c){function d(a){for(var b=e(a),c=a.components.length-1;c>=0;c--){var d=e(a.components[c]);d.value=a.components[c].value.slice(0),b.components.unshift(d)}return b.dirty=!0,b.value=a.value.slice(0),b}function e(a){var b=f([[a.name,a.important,a.hack]]);return b.unused=!1,b}var f=a("./wrap-for-optimizing").single;b.exports={deep:d,shallow:e}},{"./wrap-for-optimizing":28}],16:[function(a,b,c){var d=a("./break-up"),e=a("./can-override"),f=a("./restore"),g={color:{canOverride:e.color,defaultValue:"transparent",shortestValue:"red"},background:{components:["background-image","background-position","background-size","background-repeat","background-attachment","background-origin","background-clip","background-color"],breakUp:d.multiplex(d.background),defaultValue:"0 0",restore:f.multiplex(f.background),shortestValue:"0",shorthand:!0},"background-clip":{canOverride:e.always,defaultValue:"border-box",shortestValue:"border-box"},"background-color":{canOverride:e.color,defaultValue:"transparent",multiplexLastOnly:!0,nonMergeableValue:"none",shortestValue:"red"},"background-image":{canOverride:e.backgroundImage,defaultValue:"none"},"background-origin":{canOverride:e.always,defaultValue:"padding-box",shortestValue:"border-box"},"background-repeat":{canOverride:e.always,defaultValue:["repeat"],doubleValues:!0},"background-position":{canOverride:e.always,defaultValue:["0","0"],doubleValues:!0,shortestValue:"0"},"background-size":{canOverride:e.always,defaultValue:["auto"],doubleValues:!0,shortestValue:"0 0"},"background-attachment":{canOverride:e.always,defaultValue:"scroll"},border:{breakUp:d.border,canOverride:e.border,components:["border-width","border-style","border-color"],defaultValue:"none",restore:f.withoutDefaults,shorthand:!0},"border-color":{canOverride:e.color,defaultValue:"none",shorthand:!0},"border-style":{canOverride:e.always,defaultValue:"none",shorthand:!0},"border-width":{canOverride:e.unit,defaultValue:"medium",shortestValue:"0",shorthand:!0},"list-style":{components:["list-style-type","list-style-position","list-style-image"],canOverride:e.always,breakUp:d.listStyle,restore:f.withoutDefaults,defaultValue:"outside",shortestValue:"none",shorthand:!0},"list-style-type":{canOverride:e.always,defaultValue:"__hack",shortestValue:"none"},"list-style-position":{canOverride:e.always,defaultValue:"outside",shortestValue:"inside"},"list-style-image":{canOverride:e.always,defaultValue:"none"},outline:{components:["outline-color","outline-style","outline-width"],breakUp:d.outline,restore:f.withoutDefaults,defaultValue:"0",shorthand:!0},"outline-color":{canOverride:e.color,defaultValue:"invert",shortestValue:"red"},"outline-style":{canOverride:e.always,defaultValue:"none"},"outline-width":{canOverride:e.unit,defaultValue:"medium",shortestValue:"0"},"-moz-transform":{canOverride:e.sameFunctionOrValue},"-ms-transform":{canOverride:e.sameFunctionOrValue},"-webkit-transform":{canOverride:e.sameFunctionOrValue},transform:{canOverride:e.sameFunctionOrValue}},h=function(a,b,c){c=c||{},g[a]={canOverride:c.canOverride,components:b,breakUp:c.breakUp||d.fourValues,defaultValue:c.defaultValue||"0",restore:c.restore||f.fourValues,shortestValue:c.shortestValue,shorthand:!0};for(var h=0;h<b.length;h++)g[b[h]]={breakUp:c.breakUp||d.fourValues,canOverride:c.canOverride||e.unit,defaultValue:c.defaultValue||"0",shortestValue:c.shortestValue}};["","-moz-","-o-","-webkit-"].forEach(function(a){h(a+"border-radius",[a+"border-top-left-radius",a+"border-top-right-radius",a+"border-bottom-right-radius",a+"border-bottom-left-radius"],{breakUp:d.borderRadius,restore:f.borderRadius})}),h("border-color",["border-top-color","border-right-color","border-bottom-color","border-left-color"],{breakUp:d.fourValues,canOverride:e.color,defaultValue:"none",shortestValue:"red"}),h("border-style",["border-top-style","border-right-style","border-bottom-style","border-left-style"],{breakUp:d.fourValues,canOverride:e.always,defaultValue:"none"}),h("border-width",["border-top-width","border-right-width","border-bottom-width","border-left-width"],{defaultValue:"medium",shortestValue:"0"}),h("padding",["padding-top","padding-right","padding-bottom","padding-left"]),h("margin",["margin-top","margin-right","margin-bottom","margin-left"]);for(var i in g)if(g[i].shorthand)for(var j=0,k=g[i].components.length;k>j;j++)g[g[i].components[j]].componentOf=i;b.exports=g},{"./break-up":13,"./can-override":14,"./restore":24}],17:[function(a,b,c){function d(a,b,c,d){for(var g=e(b),h=e(c),i=0,j=b.value.length;j>i;i++)for(var k=0,l=c.value.length;l>k;k++)if(b.value[i][0]!=f&&c.value[k][0]!=f&&(g.value=[b.value[i]],h.value=[c.value[k]],!a(g,h,d)))return!1;return!0}var e=a("./clone").shallow,f=",";b.exports=d},{"./clone":15}],18:[function(a,b,c){function d(a){for(var b=a.value.length-1;b>=0;b--)if("inherit"==a.value[b][0])return!0;return!1}b.exports=d},{}],19:[function(a,b,c){function d(a,b,c,d){function e(a){return b===!1||b===!0?b:b.indexOf(a)>-1}function g(b){var c=a[b-1],d=a[b];return m(c.all,c.position)==m(d.all,d.position)}var h,i,j={},k=null;a:for(var l=0,o=a.length;o>l;l++){var p=a[l],q=!("-ms-filter"!=p.name&&"filter"!=p.name||"background"!=k&&"background-image"!=k)?k:p.name,r=p.important,s=p.hack;if(!p.unused)if(l>0&&h&&q==k&&r==h.important&&s==h.hack&&g(l)&&!h.unused)p.unused=!0;else{if(q in j&&(c&&q!=k||e(l))){var t=j[q],u=f[q]&&f[q].canOverride,v=!1;for(i=t.length-1;i>=0;i--){var w=a[t[i]],x=w.name!=q,y=w.important,z=w.hack;if(!w.unused&&(!x||!y)&&(y||!(z&&!s||!z&&s))&&(!y||"star"!=s&&"underscore"!=s)&&(z||s||x||!u||u(w,p,d))){if(y&&!r||y&&s){p.unused=!0,h=p;continue a}v=!0,w.unused=!0}}if(v){l=-1,h=null,k=null,j={};continue}}else{j[q]=j[q]||[],j[q].push(l);var A=n[q];if(A)for(i=A.length-1;i>=0;i--){var B=A[i];j[B]=j[B]||[],j[B].push(l)}}k=q,h=p}}}function e(a,b,c,f,m,n){var o=g(b);h(o,n),d(o,c,m.aggressiveMerging,n);for(var p=0,q=o.length;q>p;p++){var r=o[p];r.variable&&r.block&&e(a,r.value[0],c,f,m,n)}f&&m.shorthandCompacting&&(i(o,m.compatibility,n),j(o,m.sourceMap,n)),l(o),k(o)}var f=a("./compactable"),g=a("./wrap-for-optimizing").all,h=a("./populate-components"),i=a("./override-compactor"),j=a("./shorthand-compactor"),k=a("./remove-unused"),l=a("./restore-from-optimizing"),m=a("../stringifier/one-time").property,n={"animation-delay":["animation"],"animation-direction":["animation"],"animation-duration":["animation"],"animation-fill-mode":["animation"],"animation-iteration-count":["animation"],"animation-name":["animation"],"animation-play-state":["animation"],"animation-timing-function":["animation"],"-moz-animation-delay":["-moz-animation"],"-moz-animation-direction":["-moz-animation"],"-moz-animation-duration":["-moz-animation"],"-moz-animation-fill-mode":["-moz-animation"],"-moz-animation-iteration-count":["-moz-animation"],"-moz-animation-name":["-moz-animation"],"-moz-animation-play-state":["-moz-animation"],"-moz-animation-timing-function":["-moz-animation"],"-o-animation-delay":["-o-animation"],"-o-animation-direction":["-o-animation"],"-o-animation-duration":["-o-animation"],"-o-animation-fill-mode":["-o-animation"],"-o-animation-iteration-count":["-o-animation"],"-o-animation-name":["-o-animation"],"-o-animation-play-state":["-o-animation"],"-o-animation-timing-function":["-o-animation"],"-webkit-animation-delay":["-webkit-animation"],"-webkit-animation-direction":["-webkit-animation"],"-webkit-animation-duration":["-webkit-animation"],"-webkit-animation-fill-mode":["-webkit-animation"],"-webkit-animation-iteration-count":["-webkit-animation"],"-webkit-animation-name":["-webkit-animation"],"-webkit-animation-play-state":["-webkit-animation"],"-webkit-animation-timing-function":["-webkit-animation"],"border-color":["border"],"border-style":["border"],"border-width":["border"],"border-bottom":["border"],"border-bottom-color":["border-bottom","border-color","border"],"border-bottom-style":["border-bottom","border-style","border"],"border-bottom-width":["border-bottom","border-width","border"],"border-left":["border"],"border-left-color":["border-left","border-color","border"],"border-left-style":["border-left","border-style","border"],"border-left-width":["border-left","border-width","border"],"border-right":["border"],"border-right-color":["border-right","border-color","border"],"border-right-style":["border-right","border-style","border"],"border-right-width":["border-right","border-width","border"],"border-top":["border"],"border-top-color":["border-top","border-color","border"],"border-top-style":["border-top","border-style","border"],"border-top-width":["border-top","border-width","border"],"font-family":["font"],"font-size":["font"],"font-style":["font"],"font-variant":["font"],"font-weight":["font"],"transition-delay":["transition"],"transition-duration":["transition"],"transition-property":["transition"],"transition-timing-function":["transition"],"-moz-transition-delay":["-moz-transition"],"-moz-transition-duration":["-moz-transition"],"-moz-transition-property":["-moz-transition"],"-moz-transition-timing-function":["-moz-transition"],"-o-transition-delay":["-o-transition"],"-o-transition-duration":["-o-transition"],"-o-transition-property":["-o-transition"],"-o-transition-timing-function":["-o-transition"],"-webkit-transition-delay":["-webkit-transition"],"-webkit-transition-duration":["-webkit-transition"],"-webkit-transition-property":["-webkit-transition"],"-webkit-transition-timing-function":["-webkit-transition"]};b.exports=e},{"../stringifier/one-time":45,"./compactable":16,"./override-compactor":20,"./populate-components":21,"./remove-unused":22,"./restore-from-optimizing":23,"./shorthand-compactor":25,"./wrap-for-optimizing":28}],20:[function(a,b,c){function d(a){return function(b){return a.name===b.name}}function e(a,b){for(var c=0;c<a.components.length;c++){var d=a.components[c],e=y[d.name],f=e&&e.canOverride||f.sameValue,g=A(d);if(g.value=[[e.defaultValue]],!f(g,d,b))return!0}return!1}function f(a,b){return y[a.name].components.indexOf(b.name)>-1}function g(a,b){b.unused=!0,l(b,m(a)),a.value=b.value}function h(a,b){b.unused=!0,a.multiplex=!0,a.value=b.value}function i(a,b){b.unused=!0,a.value=b.value}function j(a,b){b.multiplex?h(a,b):a.multiplex?g(a,b):i(a,b)}function k(a,b){b.unused=!0;for(var c=0,d=a.components.length;d>c;c++)j(a.components[c],b.components[c],a.multiplex)}function l(a,b){a.multiplex=!0;for(var c=0,d=a.components.length;d>c;c++){var e=a.components[c];if(!e.multiplex)for(var f=e.value.slice(0),g=1;b>g;g++)e.value.push([G]),Array.prototype.push.apply(e.value,f)}}function m(a){for(var b=0,c=0,d=a.value.length;d>c;c++)a.value[c][0]==G&&b++;return b+1}function n(a){var b=[[a.name]].concat(a.value);return F([b],0).length}function o(a,b,c){for(var d=0,e=b;e>=0&&(a[e].name!=c||a[e].unused||d++,!(d>1));e--);return d>1}function p(a,b){for(var c=0,d=a.components.length;d>c;c++)if(q(b.isValidFunction,a.components[c]))return!0;return!1}function q(a,b){for(var c=0,d=b.value.length;d>c;c++)if(b.value[c][0]!=G&&a(b.value[c][0]))return!0;return!1}function r(a,b){if(!a.multiplex&&!b.multiplex||a.multiplex&&b.multiplex)return!1;var c,e=a.multiplex?a:b,f=a.multiplex?b:a,i=z(e);C([i]);var j=z(f);C([j]);var k=n(i)+1+n(j);a.multiplex?(c=i.components.filter(d(j))[0],g(c,j)):(c=j.components.filter(d(i))[0],l(j,m(i)),h(c,i)),C([j]);var o=n(j);return o>k}function s(a){return a.name in y}function t(a,b){return!a.multiplex&&("background"==a.name||"background-image"==a.name)&&b.multiplex&&("background"==b.name||"background-image"==b.name)&&u(b.value)}function u(a){for(var b=v(a),c=0,d=b.length;d>c;c++)if(1==b[c].length&&"none"==b[c][0][0])return!0;return!1}function v(a){for(var b=[],c=0,d=[],e=a.length;e>c;c++){var f=a[c];f[0]==G?(b.push(d),d=[]):d.push(f)}return b.push(d),b}function w(a,b,c){var g,h,i,n,u,v,w;a:for(u=a.length-1;u>=0;u--)if(h=a[u],s(h)&&!h.variable)for(g=y[h.name].canOverride||x.sameValue,v=u-1;v>=0;v--)if(i=a[v],s(i)&&!(i.variable||i.unused||h.unused||i.hack&&!h.hack||!i.hack&&h.hack||B(h)||t(i,h)))if(!i.shorthand&&h.shorthand&&f(h,i)){if(!h.important&&i.important)continue;if(!E([i],h.components))continue;if(!q(c.isValidFunction,i)&&p(h,c))continue;n=h.components.filter(d(i))[0],g=y[i.name]&&y[i.name].canOverride||x.sameValue,D(g,i,n,c)&&(i.unused=!0)}else if(i.shorthand&&!h.shorthand&&f(i,h)){if(h.important&&!i.important)continue;if(o(a,u-1,i.name))continue;if(p(i,c))continue;if(n=i.components.filter(d(h))[0],D(g,n,h,c)){var z=!b.properties.backgroundClipMerging&&n.name.indexOf("background-clip")>-1||!b.properties.backgroundOriginMerging&&n.name.indexOf("background-origin")>-1||!b.properties.backgroundSizeMerging&&n.name.indexOf("background-size")>-1,A=y[h.name].nonMergeableValue===h.value[0][0];if(z||A)continue;if(!b.properties.merging&&e(i,c))continue;if(n.value[0][0]!=h.value[0][0]&&(B(i)||B(h)))continue;if(r(i,h))continue;!i.multiplex&&h.multiplex&&l(i,m(h)),j(n,h),i.dirty=!0}}else if(i.shorthand&&h.shorthand&&i.name==h.name){if(!i.multiplex&&h.multiplex)continue;if(!h.important&&i.important){h.unused=!0;continue a}if(h.important&&!i.important){i.unused=!0;continue}for(w=i.components.length-1;w>=0;w--){var C=i.components[w],F=h.components[w];if(g=y[C.name].canOverride||x.sameValue,!D(g,C,F,c))continue a;if(!D(x.twoOptionalFunctions,C,F,c)&&c.isValidFunction(F))continue a}k(i,h),i.dirty=!0}else if(i.shorthand&&h.shorthand&&f(i,h)){if(!i.important&&h.important)continue;if(n=i.components.filter(d(h))[0],g=y[h.name].canOverride||x.sameValue,!D(g,n,h,c))continue;if(i.important&&!h.important){h.unused=!0;continue}var G=y[h.name].restore(h,y);if(G.length>1)continue;n=i.components.filter(d(h))[0],j(n,h),h.dirty=!0}else if(i.name==h.name){if(i.important&&!h.important){h.unused=!0;continue}if(g=y[h.name].canOverride||x.sameValue,!D(g,i,h,c))continue;i.unused=!0}}var x=a("./can-override"),y=a("./compactable"),z=a("./clone").deep,A=a("./clone").shallow,B=a("./has-inherit"),C=a("./restore-from-optimizing"),D=a("./every-combination"),E=a("./vendor-prefixes").same,F=a("../stringifier/one-time").property,G=",";b.exports=w},{"../stringifier/one-time":45,"./can-override":14,"./clone":15,"./compactable":16,"./every-combination":17,"./has-inherit":18,"./restore-from-optimizing":23,"./vendor-prefixes":27}],21:[function(a,b,c){function d(a,b){for(var c=a.length-1;c>=0;c--){var d=a[c],f=e[d.name];f&&f.shorthand&&(d.shorthand=!0,d.dirty=!0,d.components=f.breakUp(d,e,b),d.components.length>0?d.multiplex=d.components[0].multiplex:d.unused=!0)}}var e=a("./compactable");b.exports=d},{"./compactable":16}],22:[function(a,b,c){function d(a){for(var b=a.length-1;b>=0;b--){var c=a[b];c.unused&&c.all.splice(c.position,1)}}b.exports=d},{}],23:[function(a,b,c){function d(a){a.value[a.value.length-1][0]+=i}function e(a){"underscore"==a.hack?a.name=k+a.name:"star"==a.hack?a.name=j+a.name:"backslash"==a.hack?a.value[a.value.length-1][0]+=h:"bang"==a.hack&&(a.value[a.value.length-1][0]+=" "+l)}function f(a,b){for(var c=a.length-1;c>=0;c--){var f,h=a[c],i=g[h.name];if(!h.unused&&(h.dirty||h.important||h.hack)&&(!b&&i&&i.shorthand?(f=i.restore(h,g),h.value=f):f=h.value,h.important&&d(h),h.hack&&e(h),"all"in h)){var j=h.all[h.position];j[0][0]=h.name,j.splice(1,j.length-1),Array.prototype.push.apply(j,f)}}}var g=a("./compactable"),h="\\9",i="!important",j="*",k="_",l="!ie";b.exports=f},{"./compactable":16}],24:[function(a,b,c){function d(a){for(var b=0,c=a.length;c>b;b++){var d=a[b][0];if("inherit"!=d&&d!=k&&d!=l)return!1}return!0}function e(a,b,c){function e(a){Array.prototype.unshift.apply(j,a.value)}function f(a){var c=b[a.name];return c.doubleValues?1==c.defaultValue.length?a.value[0][0]==c.defaultValue[0]&&(a.value[1]?a.value[1][0]==c.defaultValue[0]:!0):a.value[0][0]==c.defaultValue[0]&&(a.value[1]?a.value[1][0]:a.value[0][0])==c.defaultValue[1]:a.value[0][0]==c.defaultValue}for(var g,h,i=a.components,j=[],k=i.length-1;k>=0;k--){var m=i[k],n=f(m);if("background-clip"==m.name){var o=i[k-1],p=f(o);g=m.value[0][0]==o.value[0][0],h=!g&&(p&&!n||!p&&!n||!p&&n&&m.value[0][0]!=o.value[0][0]),g?e(o):h&&(e(m),e(o)),k--}else if("background-size"==m.name){var q=i[k-1],r=f(q);g=!r&&n,h=!g&&(r&&!n||!r&&!n),g?e(q):h?(e(m),j.unshift([l]),e(q)):1==q.value.length&&e(q),k--}else{if(n||b[m.name].multiplexLastOnly&&!c)continue;e(m)}}return 0===j.length&&1==a.value.length&&"0"==a.value[0][0]&&j.push(a.value[0]),0===j.length&&j.push([b[a.name].defaultValue]),d(j)?[j[0]]:j}function f(a,b){if(a.multiplex){for(var c=j(a),d=j(a),e=0;4>e;e++){var f=a.components[e],h=j(a);h.value=[f.value[0]],c.components.push(h);var i=j(a);i.value=[f.value[2]],d.components.push(i)}var k=g(c,b),l=g(d,b);return k.length!=l.length||k[0][0]!=l[0][0]||(k.length>1?k[1][0]!=l[1][0]:0)||(k.length>2?k[2][0]!=l[2][0]:0)||(k.length>3?k[3][0]!=l[3][0]:0)?k.concat([["/"]]).concat(l):k}return g(a,b)}function g(a){var b=a.components,c=b[0].value[0],d=b[1].value[0],e=b[2].value[0],f=b[3].value[0];return c[0]==d[0]&&c[0]==e[0]&&c[0]==f[0]?[c]:c[0]==e[0]&&d[0]==f[0]?[c,d]:d[0]==f[0]?[c,d,e]:[c,d,e,f]}function h(a){return function(b,c){if(!b.multiplex)return a(b,c,!0);var d,e,f=0,g=[],h={};for(d=0,e=b.components[0].value.length;e>d;d++)b.components[0].value[d][0]==k&&f++;for(d=0;f>=d;d++){for(var i=j(b),l=0,m=b.components.length;m>l;l++){var n=b.components[l],o=j(n);i.components.push(o);for(var p=h[o.name]||0,q=n.value.length;q>p;p++){if(n.value[p][0]==k){h[o.name]=p+1;break}o.value.push(n.value[p])}}var r=d==f,s=a(i,c,r);Array.prototype.push.apply(g,s),f>d&&g.push([","])}return g}}function i(a,b){for(var c=a.components,e=[],f=c.length-1;f>=0;f--){var g=c[f],h=b[g.name];g.value[0][0]!=h.defaultValue&&e.unshift(g.value[0])}return 0===e.length&&e.push([b[a.name].defaultValue]),d(e)?[e[0]]:e}var j=a("./clone").shallow,k=",",l="/";b.exports={background:e,borderRadius:f,fourValues:g,multiplex:h,withoutDefaults:i}},{"./clone":15}],25:[function(a,b,c){function d(a){var b;for(var c in a){if(void 0!==b&&a[c].important!=b)return!0;b=a[c].important}return!1}function e(a){var b=[];for(var c in a){var d=a[c],e=d.all[d.position],f=e[0][e[0].length-1];Array.isArray(f)&&Array.prototype.push.apply(b,f)}return b}function f(a,b,c,d,f){var g,h=i[c],o=[[c],[h.defaultValue]],p=m(o);p.shorthand=!0,p.dirty=!0,l([p],f);for(var q=0,r=h.components.length;r>q;q++){var s=b[h.components[q]],t=i[s.name].canOverride;if(k(s))return;if(!n(t,p.components[q],s,f))return;p.components[q]=j(s),p.important=s.important,g=s.all}for(var u in b)b[u].unused=!0;if(d){var v=e(b);v.length>0&&o[0].push(v)}p.position=g.length,p.all=g,p.all.push(o),a.push(p)}function g(a,b,c,e,g){var h=a[b];for(var j in c)if(void 0===h||j!=h.name){var k=i[j],l=c[j];k.components.length>Object.keys(l).length?delete c[j]:d(l)||f(a,l,j,e,g)}}function h(a,b,c){var d={};if(!(a.length<3)){for(var e=0,f=a.length;f>e;e++){var h=a[e];if(!h.unused&&!h.hack&&!h.variable){var j=i[h.name];if(j&&j.componentOf)if(h.shorthand)g(a,e,d,b,c);else{var k=j.componentOf;d[k]=d[k]||{},d[k][h.name]=h}}}g(a,e,d,b,c)}}var i=a("./compactable"),j=a("./clone").deep,k=a("./has-inherit"),l=a("./populate-components"),m=a("./wrap-for-optimizing").single,n=a("./every-combination");b.exports=h},{"./clone":15,"./compactable":16,"./every-combination":17,"./has-inherit":18,"./populate-components":21,"./wrap-for-optimizing":28}],26:[function(a,b,c){function d(a){var b=g.slice(0).filter(function(b){return!(b in a.units)||a.units[b]===!0}),c="(\\-?\\.?\\d+\\.?\\d*("+b.join("|")+"|)|auto|inherit)";this.compatibleCssUnitRegex=new RegExp("^"+c+"$","i"),this.compatibleCssUnitAnyRegex=new RegExp("^(none|"+f.join("|")+"|"+c+"|"+l+"|"+j+"|"+k+")$","i"),this.colorOpacity=a.colors.opacity}var e=a("../utils/split"),f=["thin","thick","medium","inherit","initial"],g=["px","%","em","in","cm","mm","ex","pt","pc","ch","rem","vh","vm","vmin","vmax","vw"],h="(\\-?\\.?\\d+\\.?\\d*("+g.join("|")+"|)|auto|inherit)",i="(\\-moz\\-|\\-webkit\\-)?calc\\([^\\)]+\\)",j="[A-Z]+(\\-|[A-Z]|[0-9])+\\(.*?\\)",k="\\-(\\-|[A-Z]|[0-9])+\\(.*?\\)",l="var\\(\\-\\-[^\\)]+\\)",m="("+l+"|"+j+"|"+k+")",n="("+h+"|"+i+")",o="(none|"+f.join("|")+"|"+h+"|"+l+"|"+j+"|"+k+")",p=new RegExp("^"+j+"$","i"),q=new RegExp("^"+k+"$","i"),r=new RegExp("^"+l+"$","i"),s=new RegExp("^"+m+"$","i"),t=new RegExp("^"+h+"$","i"),u=new RegExp("^"+n+"$","i"),v=new RegExp("^"+o+"$","i"),w=["repeat","no-repeat","repeat-x","repeat-y","inherit"],x=["inherit","scroll","fixed","local"],y=["center","top","bottom","left","right"],z=["contain","cover"],A=["border-box","content-box","padding-box"],B=["auto","inherit","hidden","none","dotted","dashed","solid","double","groove","ridge","inset","outset"],C=["armenian","circle","cjk-ideographic","decimal","decimal-leading-zero","disc","georgian","hebrew","hiragana","hiragana-iroha","inherit","katakana","katakana-iroha","lower-alpha","lower-greek","lower-latin","lower-roman","none","square","upper-alpha","upper-latin","upper-roman"],D=["inside","outside","inherit"];d.prototype.isValidHexColor=function(a){return(4===a.length||7===a.length)&&"#"===a[0]},d.prototype.isValidRgbaColor=function(a){return a=a.split(" ").join(""),a.length>0&&0===a.indexOf("rgba(")&&a.indexOf(")")===a.length-1},d.prototype.isValidHslaColor=function(a){return a=a.split(" ").join(""),a.length>0&&0===a.indexOf("hsla(")&&a.indexOf(")")===a.length-1},d.prototype.isValidNamedColor=function(a){return"auto"!==a&&("transparent"===a||"inherit"===a||/^[a-zA-Z]+$/.test(a))},d.prototype.isValidVariable=function(a){return r.test(a)},d.prototype.isValidColor=function(a){return this.isValidNamedColor(a)||this.isValidColorValue(a)||this.isValidVariable(a)||this.isValidVendorPrefixedValue(a)},d.prototype.isValidColorValue=function(a){return this.isValidHexColor(a)||this.isValidRgbaColor(a)||this.isValidHslaColor(a)},d.prototype.isValidUrl=function(a){return 0===a.indexOf("__ESCAPED_URL_CLEAN_CSS")},d.prototype.isValidUnit=function(a){return v.test(a)},d.prototype.isValidUnitWithoutFunction=function(a){
+return t.test(a)},d.prototype.isValidAndCompatibleUnit=function(a){return this.compatibleCssUnitAnyRegex.test(a)},d.prototype.isValidAndCompatibleUnitWithoutFunction=function(a){return this.compatibleCssUnitRegex.test(a)},d.prototype.isValidFunctionWithoutVendorPrefix=function(a){return p.test(a)},d.prototype.isValidFunctionWithVendorPrefix=function(a){return q.test(a)},d.prototype.isValidFunction=function(a){return s.test(a)},d.prototype.isValidBackgroundRepeat=function(a){return w.indexOf(a)>=0||this.isValidVariable(a)},d.prototype.isValidBackgroundAttachment=function(a){return x.indexOf(a)>=0||this.isValidVariable(a)},d.prototype.isValidBackgroundBox=function(a){return A.indexOf(a)>=0||this.isValidVariable(a)},d.prototype.isValidBackgroundPositionPart=function(a){return y.indexOf(a)>=0||u.test(a)||this.isValidVariable(a)},d.prototype.isValidBackgroundPosition=function(a){if("inherit"===a)return!0;for(var b=a.split(" "),c=0,d=b.length;d>c;c++)if(""!==b[c]&&!this.isValidBackgroundPositionPart(b[c])&&!this.isValidVariable(b[c]))return!1;return!0},d.prototype.isValidBackgroundSizePart=function(a){return z.indexOf(a)>=0||t.test(a)||this.isValidVariable(a)},d.prototype.isValidBackgroundPositionAndSize=function(a){if(a.indexOf("/")<0)return!1;var b=e(a,"/");return this.isValidBackgroundSizePart(b.pop())&&this.isValidBackgroundPositionPart(b.pop())},d.prototype.isValidListStyleType=function(a){return C.indexOf(a)>=0||this.isValidVariable(a)},d.prototype.isValidListStylePosition=function(a){return D.indexOf(a)>=0||this.isValidVariable(a)},d.prototype.isValidStyle=function(a){return this.isValidStyleKeyword(a)||this.isValidVariable(a)},d.prototype.isValidStyleKeyword=function(a){return B.indexOf(a)>=0},d.prototype.isValidWidth=function(a){return this.isValidUnit(a)||this.isValidWidthKeyword(a)||this.isValidVariable(a)},d.prototype.isValidWidthKeyword=function(a){return f.indexOf(a)>=0},d.prototype.isValidVendorPrefixedValue=function(a){return/^-([A-Za-z0-9]|-)*$/gi.test(a)},d.prototype.areSameFunction=function(a,b){if(!this.isValidFunction(a)||!this.isValidFunction(b))return!1;var c=a.substring(0,a.indexOf("(")),d=b.substring(0,b.indexOf("("));return c===d},b.exports=d},{"../utils/split":66}],27:[function(a,b,c){function d(a){for(var b=[],c=0,d=a.length;d>c;c++)for(var e=a[c],g=0,h=e.value.length;h>g;g++){var i=f.exec(e.value[g][0]);i&&-1==b.indexOf(i[0])&&b.push(i[0])}return b}function e(a,b){return d(a).sort().join(",")==d(b).sort().join(",")}var f=/$\-moz\-|\-ms\-|\-o\-|\-webkit\-/;b.exports={same:e}},{}],28:[function(a,b,c){function d(a){for(var b=[],c=a.length-1;c>=0;c--)if("string"!=typeof a[c][0]){var d=k(a[c]);d.all=a,d.position=c,b.unshift(d)}return b}function e(a){for(var b=1,c=a.length;c>b;b++)if(","==a[b][0]||"/"==a[b][0])return!0;return!1}function f(a){var b=!1,c=a[0][0],d=a[a.length-1];return c[0]==r?b="underscore":c[0]==q?b="star":d[0][0]!=s||d[0].match(o)?d[0].indexOf(s)>0&&!d[0].match(o)?b="bang":d[0].indexOf(l)>0&&d[0].indexOf(l)==d[0].length-l.length-1?b="backslash":0===d[0].indexOf(l)&&2==d[0].length&&(b="backslash"):b="bang",b}function g(a){if(a.length>1){var b=a[a.length-1][0];if("string"==typeof b)return p.test(b)}return!1}function h(a){a.length>0&&(a[a.length-1][0]=a[a.length-1][0].replace(p,""))}function i(a){a[0][0]=a[0][0].substring(1)}function j(a,b){var c=a[a.length-1];c[0]=c[0].substring(0,c[0].indexOf("backslash"==b?l:s)).trim(),0===c[0].length&&a.pop()}function k(a){var b=g(a);b&&h(a);var c=f(a);"star"==c||"underscore"==c?i(a):"backslash"!=c&&"bang"!=c||j(a,c);var d=0===a[0][0].indexOf("--");return{block:d&&a[1]&&Array.isArray(a[1][0][0]),components:[],dirty:!1,hack:c,important:b,name:a[0][0],multiplex:a.length>2?e(a):!1,position:0,shorthand:!1,unused:a.length<2,value:a.slice(1),variable:d}}var l="\\",m="important",n="!"+m,o=new RegExp(m+"$","i"),p=new RegExp(n+"$","i"),q="*",r="_",s="!";b.exports={all:d,single:k}},{}],29:[function(a,b,c){function d(a){for(var b=0,c=a.length;c>b;b++){var e=a[b],f=!1;switch(e[0]){case"selector":f=0===e[1].length||0===e[2].length;break;case"block":d(e[2]),f=0===e[2].length}f&&(a.splice(b,1),b--,c--)}}function e(a,b,c){for(var d=0,e=a.length;e>d;d++){var f=a[d];if("block"==f[0]){var h=/@(-moz-|-o-|-webkit-)?keyframes/.test(f[1][0]);g(f[2],b,c,!h)}}}function f(a,b,c){for(var d=0,e=a.length;e>d;d++){var g=a[d];switch(g[0]){case"selector":h(g[1],g[2],!1,!0,b,c);break;case"block":f(g[2],b,c)}}}function g(a,b,c,h){if(e(a,b,c),f(a,b,c),i(a),j(a,b,c),k(a,b,c),l(a,b,c),m(a,b),b.restructuring&&h&&(n(a,b),j(a,b,c)),b.mediaMerging){o(a);for(var q=p(a),r=q.length-1;r>=0;r--)g(q[r][2],b,c,!1)}d(a)}var h=a("../properties/optimizer"),i=a("./remove-duplicates"),j=a("./merge-adjacent"),k=a("./reduce-non-adjacent"),l=a("./merge-non-adjacent-by-selector"),m=a("./merge-non-adjacent-by-body"),n=a("./restructure"),o=a("./remove-duplicate-media-queries"),p=a("./merge-media-queries");b.exports=g},{"../properties/optimizer":19,"./merge-adjacent":33,"./merge-media-queries":34,"./merge-non-adjacent-by-body":35,"./merge-non-adjacent-by-selector":36,"./reduce-non-adjacent":37,"./remove-duplicate-media-queries":38,"./remove-duplicates":39,"./restructure":41}],30:[function(a,b,c){function d(a,b){return"["+b.replace(/ /g,"")+"]"}function e(a,b){return a[0]>b[0]?1:-1}function f(a,b,c,d){return b&&c&&d.length?b+c+" ":b&&c?b+c:c}var g={selectors:function(a,b,c){for(var g=[],h=[],i=0,j=a.length;j>i;i++){var k=a[i],l=k[0].replace(/\s+/g," ").replace(/ ?, ?/g,",").replace(/\s*(\\)?([>+~])(\s*)/g,f).trim();c&&l.indexOf("nav")>0&&(l=l.replace(/\+nav(\S|$)/,"+ nav$1")),(!b||-1==l.indexOf("*+html ")&&-1==l.indexOf("*:first-child+html "))&&(l.indexOf("*")>-1&&(l=l.replace(/\*([:#\.\[])/g,"$1").replace(/^(\:first\-child)?\+html/,"*$1+html")),l.indexOf("[")>-1&&(l=l.replace(/\[([^\]]+)\]/g,d)),-1==h.indexOf(l)&&(k[0]=l,h.push(l),g.push(k)))}return g.sort(e)},selectorDuplicates:function(a){for(var b=[],c=[],d=0,f=a.length;f>d;d++){var g=a[d];-1==c.indexOf(g[0])&&(c.push(g[0]),b.push(g))}return b.sort(e)},block:function(a,b){a[0]=a[0].replace(/\s+/g," ").replace(/(,|:|\() /g,"$1").replace(/ \)/g,")"),b||(a[0]=a[0].replace(/\) /g,")"))},atRule:function(a){a[0]=a[0].replace(/\s+/g," ").trim()}};b.exports=g},{}],31:[function(a,b,c){function d(a){var b=[];if("selector"==a[0])for(var c=!/[\.\+>~]/.test(f(a[1])),i=0,j=a[2].length;j>i;i++){var k=a[2][i];if(0!==k.indexOf("__ESCAPED")&&k[0]!=h){var l=a[2][i][0][0];if(0!==l.length&&0!==l.indexOf("--")){var m=g(a[2],i);b.push([l,m,e(l),a[2][i],l+":"+m,a[1],c])}}}else if("block"==a[0])for(var n=0,o=a[2].length;o>n;n++)b=b.concat(d(a[2][n]));return b}function e(a){return"list-style"==a?a:a.indexOf("-radius")>0?"border-radius":"border-collapse"==a||"border-spacing"==a||"border-image"==a?a:0===a.indexOf("border-")&&/^border\-\w+\-\w+$/.test(a)?a.match(/border\-\w+/)[0]:0===a.indexOf("border-")&&/^border\-\w+$/.test(a)?"border":0===a.indexOf("text-")?a:a.replace(/^\-\w+\-/,"").match(/([a-zA-Z]+)/)[0].toLowerCase()}var f=a("../stringifier/one-time").selectors,g=a("../stringifier/one-time").value,h="at-rule";b.exports=d},{"../stringifier/one-time":45}],32:[function(a,b,c){function d(a,b){return a.compatibility.selectors.special.test(b)}b.exports=d},{}],33:[function(a,b,c){function d(a,b,c){for(var d=[null,[],[]],j=b.compatibility.selectors.adjacentSpace,k=0,l=a.length;l>k;k++){var m=a[k];if("selector"==m[0])if("selector"==d[0]&&g(m[1])==g(d[1])){var n=[d[2].length];Array.prototype.push.apply(d[2],m[2]),e(m[1],d[2],n,!0,b,c),m[2]=[]}else"selector"!=d[0]||f(m[2])!=f(d[2])||i(b,g(m[1]))||i(b,g(d[1]))?d=m:(d[1]=h(d[1].concat(m[1]),!1,j),m[2]=[]);else d=[null,[],[]]}}var e=a("../properties/optimizer"),f=a("../stringifier/one-time").body,g=a("../stringifier/one-time").selectors,h=a("./clean-up").selectors,i=a("./is-special");b.exports=d},{"../properties/optimizer":19,"../stringifier/one-time":45,"./clean-up":30,"./is-special":32}],34:[function(a,b,c){function d(a){for(var b={},c=[],d=a.length-1;d>=0;d--){var g=a[d];if("block"==g[0]){var h=b[g[1][0]];h||(h=[],b[g[1][0]]=h),h.push(d)}}for(var i in b){var j=b[i];a:for(var k=j.length-1;k>0;k--){var l=j[k],m=a[l],n=j[k-1],o=a[n];b:for(var p=1;p>=-1;p-=2){for(var q=1==p,r=q?l+1:n-1,s=q?n:l,t=q?1:-1,u=q?m:o,v=q?o:m,w=f(u);r!=s;){var x=f(a[r]);if(r+=t,!e(w,x))continue b}v[2]=q?u[2].concat(v[2]):v[2].concat(u[2]),u[2]=[],c.push(v);continue a}}}return c}var e=a("./reorderable").canReorder,f=a("./extractor");b.exports=d},{"./extractor":31,"./reorderable":40}],35:[function(a,b,c){function d(a){return/\.|\*| :/.test(a)}function e(a){var b=j(a[1]);return b.indexOf("__")>-1||b.indexOf("--")>-1}function f(a){return a.replace(/--[^ ,>\+~:]+/g,"")}function g(a,b){var c=f(j(a[1]));for(var d in b){var e=b[d],g=f(j(e[1]));(g.indexOf(c)>-1||c.indexOf(g)>-1)&&delete b[d]}}function h(a,b){for(var c={},f=b.compatibility.selectors.adjacentSpace,h=a.length-1;h>=0;h--){var m=a[h];if("selector"==m[0]){m[2].length>0&&!b.semanticMerging&&d(j(m[1]))&&(c={}),m[2].length>0&&b.semanticMerging&&e(m)&&g(m,c);var n=i(m[2]),o=c[n];!o||l(b,j(m[1]))||l(b,j(o[1]))||(m[1]=m[2].length>0?k(o[1].concat(m[1]),!1,f):o[1].concat(m[1]),o[2]=[],c[n]=null),c[i(m[2])]=m}}}var i=a("../stringifier/one-time").body,j=a("../stringifier/one-time").selectors,k=a("./clean-up").selectors,l=a("./is-special");b.exports=h},{"../stringifier/one-time":45,"./clean-up":30,"./is-special":32}],36:[function(a,b,c){function d(a,b,c){var d,i={},j=[];for(d=a.length-1;d>=0;d--)if("selector"==a[d][0]&&0!==a[d][2].length){var k=f(a[d][1]);i[k]=[d].concat(i[k]||[]),2==i[k].length&&j.push(k)}for(d=j.length-1;d>=0;d--){var l=i[j[d]];a:for(var m=l.length-1;m>0;m--){var n=l[m-1],o=a[n],p=l[m],q=a[p];b:for(var r=1;r>=-1;r-=2){for(var s,t=1==r,u=t?n+1:p-1,v=t?p:n,w=t?1:-1,x=t?o:q,y=t?q:o,z=g(x);u!=v;){var A=g(a[u]);u+=w;var B=t?h(z,A):h(A,z);if(!B&&!t)continue a;if(!B&&t)continue b}t?(s=[x[2].length],Array.prototype.push.apply(x[2],y[2]),y[2]=x[2]):(s=[y[2].length],Array.prototype.push.apply(y[2],x[2])),e(y[1],y[2],s,!0,b,c),x[2]=[]}}}}var e=a("../properties/optimizer"),f=a("../stringifier/one-time").selectors,g=a("./extractor"),h=a("./reorderable").canReorder;b.exports=d},{"../properties/optimizer":19,"../stringifier/one-time":45,"./extractor":31,"./reorderable":40}],37:[function(a,b,c){function d(a,b,c){for(var d={},h=[],i=a.length-1;i>=0;i--){var j=a[i];if("selector"==j[0]&&0!==j[2].length)for(var m=k(j[1]),n=j[1].length>1&&!l(b,m),o=b.sourceMap?e(j[1]):j[1],p=n?[m].concat(o):[m],q=0,r=p.length;r>q;q++){var s=p[q];d[s]?h.push(s):d[s]=[],d[s].push({where:i,list:o,isPartial:n&&q>0,isComplex:n&&0===q})}}f(a,h,d,b,c),g(a,d,b,c)}function e(a){for(var b=[],c=0;c<a.length;c++)b.push([a[c][0]]);return b}function f(a,b,c,d,e){function f(a,b){return l[a].isPartial&&0===b.length}function g(a,b,c,d){l[c-d-1].isPartial||(a[2]=b)}for(var i=0,j=b.length;j>i;i++){var k=b[i],l=c[k];h(a,k,l,{filterOut:f,callback:g},d,e)}}function g(a,b,c,d){function e(a){return g.data[a].where<g.intoPosition}function f(a,b,c,d){0===d&&g.reducedBodies.push(b)}var g={};a:for(var i in b){var k=b[i];if(k[0].isComplex){var m=k[k.length-1].where,n=a[m],o=[],p=l(c,i)?[i]:k[0].list;g.intoPosition=m,g.reducedBodies=o;for(var q=0,r=p.length;r>q;q++){var s=p[q],t=b[s];if(t.length<2)continue a;if(g.data=t,h(a,s,t,{filterOut:e,callback:f},c,d),j(o[o.length-1])!=j(o[0]))continue a}n[2]=o[0]}}}function h(a,b,c,d,e,f){for(var g=[],h=[],j=[],k=[],l=c.length-1,n=0;l>=0;l--)if(!d.filterOut(l,g)){var o=c[l].where,p=a[o],q=m(p[2]);g=g.concat(q),h.push(q),k.push(o)}for(l=0,n=h.length;n>l;l++)h[l].length>0&&j.push((j[l-1]||0)+h[l].length);i(b,g,j,!1,e,f);for(var r=k.length,s=g.length-1,t=r-1;t>=0;)if((0===t||g[s]&&h[t].indexOf(g[s])>-1)&&s>-1)s--;else{var u=g.splice(s+1);d.callback(a[k[t]],u,r,t),t--}}var i=a("../properties/optimizer"),j=a("../stringifier/one-time").body,k=a("../stringifier/one-time").selectors,l=a("./is-special"),m=a("../utils/clone-array");b.exports=d},{"../properties/optimizer":19,"../stringifier/one-time":45,"../utils/clone-array":59,"./is-special":32}],38:[function(a,b,c){function d(a){for(var b={},c=0,d=a.length;d>c;c++){var f=a[c];if("block"==f[0]){var g=f[1][0]+"%"+e(f[2]),h=b[g];h&&(h[2]=[]),b[g]=f}}}var e=a("../stringifier/one-time").all;b.exports=d},{"../stringifier/one-time":45}],39:[function(a,b,c){function d(a){for(var b,c,d,g,h={},i=[],j=0,k=a.length;k>j;j++)c=a[j],"selector"==c[0]&&(b=f(c[1]),h[b]&&1==h[b].length?i.push(b):h[b]=h[b]||[],h[b].push(j));for(j=0,k=i.length;k>j;j++){b=i[j],g=[];for(var l=h[b].length-1;l>=0;l--)c=a[h[b][l]],d=e(c[2]),g.indexOf(d)>-1?c[2]=[]:g.push(d)}}var e=a("../stringifier/one-time").body,f=a("../stringifier/one-time").selectors;b.exports=d},{"../stringifier/one-time":45}],40:[function(a,b,c){function d(a,b){for(var c=b.length-1;c>=0;c--)for(var d=a.length-1;d>=0;d--)if(!e(a[d],b[c]))return!1;return!0}function e(a,b){var c=a[0],d=a[1],e=a[2],o=a[5],p=a[6],q=b[0],r=b[1],s=b[2],t=b[5],u=b[6];return"font"==c&&"line-height"==q||"font"==q&&"line-height"==c?!1:m.test(c)&&m.test(q)?!1:e==s&&g(c)==g(q)&&f(c)^f(q)?!1:("border"!=e||!n.test(s)||"border"!=c&&c!=s)&&("border"!=s||!n.test(e)||"border"!=q&&q!=e)?"border"==e&&"border"==s&&c!=q&&(h(c)&&i(q)||i(c)&&h(q))?!1:e!=s?!0:c!=q||e!=s||d!=r&&!j(d,r)?c!=q&&e==s&&c!=e&&q!=s?!0:c!=q&&e==s&&d==r?!0:!(!u||!p||l(e)||l(s)||!k(t,o)):!0:!1}function f(a){return/^\-(?:moz|webkit|ms|o)\-/.test(a)}function g(a){return a.replace(/^\-(?:moz|webkit|ms|o)\-/,"")}function h(a){return"border-top"==a||"border-right"==a||"border-bottom"==a||"border-left"==a}function i(a){return"border-color"==a||"border-style"==a||"border-width"==a}function j(a,b){return f(a)&&f(b)&&a.split("-")[1]!=b.split("-")[2]}function k(a,b){for(var c=0,d=a.length;d>c;c++)for(var e=0,f=b.length;f>e;e++)if(a[c][0]==b[e][0])return!1;return!0}function l(a){return"font"==a||"line-height"==a||"list-style"==a}var m=/align\-items|box\-align|box\-pack|flex|justify/,n=/^border\-(top|right|bottom|left|color|style|width|radius)/;b.exports={canReorder:d,canReorderSingle:e}},{}],41:[function(a,b,c){function d(a,b){return a>b}function e(a,b){var c=m(a);return c[5]=c[5].concat(b[5]),c}function f(a,b){function c(a,b,c){for(var d=c.length-1;d>=0;d--){var e=c[d][0],g=f(b,e);if(B[g].length>1&&x(a,B[g])){m(g);break}}}function f(a,b){var c=n(b);return B[c]=B[c]||[],B[c].push([a,b]),c}function m(a){var b,c=a.split(E),d=[];for(var e in B){var f=e.split(E);for(b=f.length-1;b>=0;b--)if(c.indexOf(f[b])>-1){d.push(e);break}}for(b=d.length-1;b>=0;b--)delete B[d[b]]}function n(a){for(var b=[],c=0,d=a.length;d>c;c++)b.push(j(a[c][1]));return b.join(E)}function o(a){for(var c=[],d=[],e=a.length-1;e>=0;e--)l(b,j(a[e][1]))||(d.unshift(a[e]),a[e][2].length>0&&-1==c.indexOf(a[e])&&c.push(a[e]));return c.length>1?d:[]}function p(a,b){var d=b[0],e=b[1],f=b[4],g=d.length+e.length+1,h=[],i=[],j=o(z[f]);if(!(j.length<2)){var l=r(j,g,1),m=l[0];if(m[1]>0)return c(a,b,l);for(var n=m[0].length-1;n>=0;n--)h=m[0][n][1].concat(h),i.unshift(m[0][n]);h=k(h),u(a,[b],h,i)}}function q(a,b){return a[1]>b[1]}function r(a,b,c){var d=s(a,b,c,D-1);return d.sort(q)}function s(a,b,c,d){var e=[[a,t(a,b,c)]];if(a.length>2&&d>0)for(var f=a.length-1;f>=0;f--){var g=Array.prototype.slice.call(a,0);g.splice(f,1),e=e.concat(s(g,b,c,d-1))}return e}function t(a,b,c){for(var d=0,e=a.length-1;e>=0;e--)d+=a[e][2].length>c?j(a[e][1]).length:-1;return d-(a.length-1)*b+1}function u(b,c,d,e){var f,g,h,j,k=[];for(f=e.length-1;f>=0;f--){var l=e[f];for(g=l[2].length-1;g>=0;g--){var m=l[2][g];for(h=0,j=c.length;j>h;h++){var n=c[h],o=m[0][0],p=n[0],q=n[4];if(o==p&&i([m])==q){l[2].splice(g,1);break}}}}for(f=c.length-1;f>=0;f--)k.unshift(c[f][3]);var r=["selector",d,k];a.splice(b,0,r)}function v(a,b){var c=b[4],d=z[c];d&&d.length>1&&(w(a,b)||p(a,b))}function w(a,b){var c,d,e=[],f=[],g=b[4],h=o(z[g]);if(!(h.length<2)){a:for(var i in z){var j=z[i];for(c=h.length-1;c>=0;c--)if(-1==j.indexOf(h[c]))continue a;e.push(i)}if(e.length<2)return!1;for(c=e.length-1;c>=0;c--)for(d=A.length-1;d>=0;d--)if(A[d][4]==e[c]){f.unshift([A[d],h]);break}return x(a,f)}}function x(a,b){for(var c,d=0,e=[],f=b.length-1;f>=0;f--){c=b[f][0];var g=c[4];d+=g.length+(f>0?1:0),e.push(c)}var h=b[0][1],i=r(h,d,e.length)[0];if(i[1]>0)return!1;var j=[],l=[];for(f=i[0].length-1;f>=0;f--)j=i[0][f][1].concat(j),l.unshift(i[0][f]);for(j=k(j),u(a,e,j,l),f=e.length-1;f>=0;f--){c=e[f];var m=A.indexOf(c);delete z[c[4]],m>-1&&-1==C.indexOf(m)&&C.push(m)}return!0}function y(a,b,c){var d=a[0],e=b[0];if(d!=e)return!1;var f=b[4],g=z[f];return g&&g.indexOf(c)>-1}for(var z={},A=[],B={},C=[],D=2,E="%",F=a.length-1;F>=0;F--){var G,H,I,J,K,L=a[F];if("selector"==L[0])G=!0;else{if("block"!=L[0])continue;G=!1}var M=A.length,N=g(L);C=[];var O=[];for(H=N.length-1;H>=0;H--)for(I=H-1;I>=0;I--)if(!h(N[H],N[I])){O.push(H);break}for(H=N.length-1;H>=0;H--){var P=N[H],Q=!1;for(I=0;M>I;I++){var R=A[I];-1!=C.indexOf(I)||h(P,R)||y(P,R,L)||(v(F+1,R,L),-1==C.indexOf(I)&&(C.push(I),delete z[R[4]])),Q||(Q=P[0]==R[0]&&P[1]==R[1],Q&&(K=I))}if(G&&!(O.indexOf(H)>-1)){var S=P[4];z[S]=z[S]||[],z[S].push(L),Q?A[K]=e(A[K],P):A.push(P)}}for(C=C.sort(d),H=0,J=C.length;J>H;H++){var T=C[H]-H;A.splice(T,1)}}for(var U=a[0]&&"at-rule"==a[0][0]&&0===a[0][1][0].indexOf("@charset")?1:0;U<a.length-1;U++){var V="at-rule"===a[U][0]&&0===a[U][1][0].indexOf("@import"),W="text"===a[U][0]&&0===a[U][1][0].indexOf("__ESCAPED_COMMENT_SPECIAL");if(!V&&!W)break}for(F=0;F<A.length;F++)v(U,A[F])}var g=a("./extractor"),h=a("./reorderable").canReorderSingle,i=a("../stringifier/one-time").body,j=a("../stringifier/one-time").selectors,k=a("./clean-up").selectorDuplicates,l=a("./is-special"),m=a("../utils/clone-array");b.exports=f},{"../stringifier/one-time":45,"../utils/clone-array":59,"./clean-up":30,"./extractor":31,"./is-special":32,"./reorderable":40}],42:[function(a,b,c){function d(a,b){return a.value[b]&&"-"==a.value[b][0][0]&&parseFloat(a.value[b][0])<0}function e(a,b){return-1==b.indexOf("0")?b:(b.indexOf("-")>-1&&(b=b.replace(/([^\w\d\-]|^)\-0([^\.]|$)/g,"$10$2").replace(/([^\w\d\-]|^)\-0([^\.]|$)/g,"$10$2")),b.replace(/(^|\s)0+([1-9])/g,"$1$2").replace(/(^|\D)\.0+(\D|$)/g,"$10$2").replace(/(^|\D)\.0+(\D|$)/g,"$10$2").replace(/\.([1-9]*)0+(\D|$)/g,function(a,b,c){return(b.length>0?".":"")+b+c}).replace(/(^|\D)0\.(\d)/g,"$1.$2"))}function f(a,b){return-1==b.indexOf("0deg")?b:b.replace(/\(0deg\)/g,"(0)")}function g(a,b){return a.indexOf("filter")>-1||-1==b.indexOf(" ")?b:(b=b.replace(/\s+/g," "),b.indexOf("calc")>-1&&(b=b.replace(/\) ?\/ ?/g,")/ ")),b.replace(/\( /g,"(").replace(/ \)/g,")").replace(/, /g,","))}function h(a,b,c){return-1===c.value||-1===b.indexOf(".")?b:b.replace(c.regexp,function(a,b){return Math.round(parseFloat(b)*c.multiplier)/c.multiplier+"px"}).replace(/(\d)\.($|\D)/g,"$1$2")}function i(a,b,c){return/^(?:\-moz\-calc|\-webkit\-calc|calc)\(/.test(b)?b:"flex"==a||"-ms-flex"==a||"-webkit-flex"==a||"flex-basis"==a||"-webkit-flex-basis"==a?b:b.indexOf("%")>0&&("height"==a||"max-height"==a)?b:b.replace(c,"$10$2").replace(c,"$10$2")}function j(a){var b,c=a.value;4==c.length&&"0"===c[0][0]&&"0"===c[1][0]&&"0"===c[2][0]&&"0"===c[3][0]&&(b=a.name.indexOf("box-shadow")>-1?2:1),b&&(a.value.splice(b),a.dirty=!0)}function k(a,b,c){return-1===b.indexOf("#")&&-1==b.indexOf("rgb")&&-1==b.indexOf("hsl")?B.shorten(b):(b=b.replace(/rgb\((\-?\d+),(\-?\d+),(\-?\d+)\)/g,function(a,b,c,d){return new z(b,c,d).toHex()}).replace(/hsl\((-?\d+),(-?\d+)%?,(-?\d+)%?\)/g,function(a,b,c,d){return new A(b,c,d).toHex()}).replace(/(^|[^='"])#([0-9a-f]{6})/gi,function(a,b,c){return c[0]==c[1]&&c[2]==c[3]&&c[4]==c[5]?b+"#"+c[0]+c[2]+c[4]:b+"#"+c}).replace(/(rgb|rgba|hsl|hsla)\(([^\)]+)\)/g,function(a,b,c){var d=c.split(","),e="hsl"==b&&3==d.length||"hsla"==b&&4==d.length||"rgb"==b&&3==d.length&&c.indexOf("%")>0||"rgba"==b&&4==d.length&&c.indexOf("%")>0;return e?(-1==d[1].indexOf("%")&&(d[1]+="%"),-1==d[2].indexOf("%")&&(d[2]+="%"),b+"("+d.join(",")+")"):a}),c.colors.opacity&&-1==a.indexOf("background")&&(b=b.replace(/(?:rgba|hsla)\(0,0%?,0%?,0\)/g,function(a){return y(b,",").pop().indexOf("gradient(")>-1?a:"transparent"})),B.shorten(b))}function l(a,b,c){return L.test(b)?b.replace(L,function(a,b){var d,e=parseInt(b);return 0===e?a:(c.properties.shorterLengthUnits&&c.units.pt&&3*e%4===0&&(d=3*e/4+"pt"),c.properties.shorterLengthUnits&&c.units.pc&&e%16===0&&(d=e/16+"pc"),c.properties.shorterLengthUnits&&c.units["in"]&&e%96===0&&(d=e/96+"in"),d&&(d=a.substring(0,a.indexOf(b))+d),d&&d.length<a.length?d:a)}):b}function m(a,b){return M.test(b)?b.replace(M,function(a,b,c){var d;return"ms"==c?d=parseInt(b)/1e3+"s":"s"==c&&(d=1e3*parseFloat(b)+"ms"),d.length<a.length?d:a}):b}function n(a){var b,c=a.value;3==c.length&&"/"==c[1][0]&&c[0][0]==c[2][0]?b=1:5==c.length&&"/"==c[2][0]&&c[0][0]==c[3][0]&&c[1][0]==c[4][0]?b=2:7==c.length&&"/"==c[3][0]&&c[0][0]==c[4][0]&&c[1][0]==c[5][0]&&c[2][0]==c[6][0]?b=3:9==c.length&&"/"==c[4][0]&&c[0][0]==c[5][0]&&c[1][0]==c[6][0]&&c[2][0]==c[7][0]&&c[3][0]==c[8][0]&&(b=4),b&&(a.value.splice(b),a.dirty=!0)}function o(a){1==a.value.length&&(a.value[0][0]=a.value[0][0].replace(/progid:DXImageTransform\.Microsoft\.(Alpha|Chroma)(\W)/,function(a,b,c){return b.toLowerCase()+c})),a.value[0][0]=a.value[0][0].replace(/,(\S)/g,", $1").replace(/ ?= ?/g,"=")}function p(a){var b=a.value,c=I.indexOf(b[0][0])>-1||b[1]&&I.indexOf(b[1][0])>-1||b[2]&&I.indexOf(b[2][0])>-1;if(!c&&"/"!=b[1]){var d=0;if("normal"==b[0][0]&&d++,b[1]&&"normal"==b[1][0]&&d++,b[2]&&"normal"==b[2][0]&&d++,!(d>1)){var e;K.indexOf(b[0][0])>-1?e=0:b[1]&&K.indexOf(b[1][0])>-1?e=1:b[2]&&K.indexOf(b[2][0])>-1?e=2:J.indexOf(b[0][0])>-1?e=0:b[1]&&J.indexOf(b[1][0])>-1?e=1:b[2]&&J.indexOf(b[2][0])>-1&&(e=2),void 0!==e&&(a.value[e][0]=N["font-weight"](b[e][0]),a.dirty=!0)}}}function q(a,b){for(var c,r,s,t=C(a),u=0,v=t.length;v>u;u++)if(c=t[u],r=c.name,c.hack&&(("star"==c.hack||"underscore"==c.hack)&&!b.compatibility.properties.iePrefixHack||"backslash"==c.hack&&!b.compatibility.properties.ieSuffixHack||"bang"==c.hack&&!b.compatibility.properties.ieBangHack)&&(c.unused=!0),0===r.indexOf("padding")&&(d(c,0)||d(c,1)||d(c,2)||d(c,3))&&(c.unused=!0),!c.unused)if(c.variable)c.block&&q(c.value[0],b);else{for(var w=0,x=c.value.length;x>w;w++)s=c.value[w][0],N[r]&&(s=N[r](s,w,x)),s=g(r,s),s=h(r,s,b.precision),s=l(r,s,b.compatibility),s=m(r,s),s=e(r,s),b.compatibility.properties.zeroUnits&&(s=f(r,s),s=i(r,s,b.unitsRegexp)),b.compatibility.properties.colors&&(s=k(r,s,b.compatibility)),c.value[w][0]=s;j(c),0===r.indexOf("border")&&r.indexOf("radius")>0?n(c):"filter"==r?o(c):"font"==r&&p(c)}D(t,!0),E(t)}function r(a){for(var b=!1,c=0,d=a.length;d>c;c++){var e=a[c];"at-rule"==e[0]&&H.test(e[1][0])&&(b||-1==e[1][0].indexOf(G)?(a.splice(c,1),c--,d--):(b=!0,a.splice(c,1),a.unshift(["at-rule",[e[1][0].replace(H,G)]])))}}function s(a){var b=["px","em","ex","cm","mm","in","pt","pc","%"],c=["ch","rem","vh","vm","vmax","vmin","vw"];return c.forEach(function(c){a.compatibility.units[c]&&b.push(c)}),new RegExp("(^|\\s|\\(|,)0(?:"+b.join("|")+")(\\W|$)","g")}function t(a){var b={};return b.value=void 0===a.roundingPrecision?F:a.roundingPrecision,b.multiplier=Math.pow(10,b.value),b.regexp=new RegExp("(\\d*\\.\\d{"+(b.value+1)+",})px","g"),b}function u(a,b){var c=b.compatibility.selectors.ie7Hack,d=b.compatibility.selectors.adjacentSpace,e=b.compatibility.properties.spaceAfterClosingBrace,f=!1;b.unitsRegexp=s(b),b.precision=t(b);for(var g=0,h=a.length;h>g;g++){var i=a[g];switch(i[0]){case"selector":i[1]=v(i[1],!c,d),q(i[2],b);break;case"block":w(i[1],e),u(i[2],b);break;case"flat-block":w(i[1],e),q(i[2],b);break;case"at-rule":x(i[1]),f=!0}(0===i[1].length||i[2]&&0===i[2].length)&&(a.splice(g,1),g--,h--)}f&&r(a)}var v=a("./clean-up").selectors,w=a("./clean-up").block,x=a("./clean-up").atRule,y=a("../utils/split"),z=a("../colors/rgb"),A=a("../colors/hsl"),B=a("../colors/hex-name-shortener"),C=a("../properties/wrap-for-optimizing").all,D=a("../properties/restore-from-optimizing"),E=a("../properties/remove-unused"),F=2,G="@charset",H=new RegExp("^"+G,"i"),I=["100","200","300","400","500","600","700","800","900"],J=["normal","bold","bolder","lighter"],K=["bold","bolder","lighter"],L=/(?:^|\s|\()(-?\d+)px/,M=/^(\-?[\d\.]+)(m?s)$/,N={background:function(a,b,c){return 0!==b||1!=c||"none"!=a&&"transparent"!=a?a:"0 0"},"font-weight":function(a){return"normal"==a?"400":"bold"==a?"700":a},outline:function(a,b,c){return 0===b&&1==c&&"none"==a?"0":a}};b.exports=u},{"../colors/hex-name-shortener":9,"../colors/hsl":10,"../colors/rgb":11,"../properties/remove-unused":22,"../properties/restore-from-optimizing":23,"../properties/wrap-for-optimizing":28,"../utils/split":66,"./clean-up":30}],43:[function(a,b,c){function d(a,b,c){if(!c&&-1==a.indexOf("\n"))return 0===a.indexOf(i)?a:void(b.column+=a.length);for(var d=0,e=a.split("\n"),f=e.length,g=0;;){if(d==f-1)break;var h=e[d];if(/\S/.test(h))break;g+=h.length+1,d++}return b.line+=d,b.column=d>0?0:b.column,b.column+=/^(\s)*/.exec(e[d])[0].length,a.substring(g).trimLeft()}function e(a,b,c){var d=a.source||b.source;return d&&c.resolvePath?c.resolvePath(b.source,d):d}function f(a,b,c){var d={line:b.line,column:b.column,source:b.source},f=null,g=b.sourceMapTracker.isTracking(d.source)?b.sourceMapTracker.originalPositionFor(d,a,c||0):{};if(d.line=g.line||d.line,d.column=g.column||d.column,d.source=g.sourceResolved?g.source:e(g,d,b),b.sourceMapInlineSources){var h=b.sourceMapTracker.sourcesContentFor(b.source);f=h&&h[d.source]?h:b.sourceReader.sourceAt(b.source)}return f?[d.line,d.column,d.source,f]:[d.line,d.column,d.source]}function g(a,b){for(var c=a.split("\n"),d=0,e=c.length;e>d;d++){var f=c[d],g=0;for(d>0&&(b.line++,b.column=0);;){var h=f.indexOf(i,g);if(-1==h){b.column+=f.substring(g).length;break}b.column+=h-g,g+=h-g;var j=f.substring(h,f.indexOf("__",h+1)+2),k=j.substring(j.indexOf("(")+1,j.indexOf(")")).split(",");b.line+=~~k[0],b.column=(0===~~k[0]?b.column:0)+~~k[1],g+=j.length}}}function h(a,b,c,e){var h=d(a,b,c),i=c?f(h,b,e):[];return h&&g(h,b),i}var i="__ESCAPED_";b.exports=h},{}],44:[function(a,b,c){function d(a,b){for(var c=b,d=a.length;d>c;c++)if("string"!=typeof a[c])return!0;return!1}function e(a){return"background"==a[0][0]||"transform"==a[0][0]||"src"==a[0][0]}function f(a,b){return 0===a[b][0].indexOf("var(")}function g(a,b){return")"==a[b][0][a[b][0].length-1]||0===a[b][0].indexOf("__ESCAPED_URL_CLEAN_CSS")}function h(a,b){return","==a[b][0]}function i(a,b){return"/"==a[b][0]}function j(a,b){return a[b+1]&&","==a[b+1][0]}function k(a,b){return a[b+1]&&"/"==a[b+1][0]}function l(a){return"filter"==a[0][0]||"-ms-filter"==a[0][0]}function m(a,b,c){return(!c.spaceAfterClosingBrace&&e(a)||f(a,b))&&g(a,b)||k(a,b)||i(a,b)||j(a,b)||h(a,b)}function n(a,b){for(var c=b.store,d=0,e=a.length;e>d;d++)c(a[d],b),e-1>d&&c(",",b)}function o(a,b){for(var c=0,d=a.length;d>c;c++)p(a,c,c==d-1,b)}function p(a,b,c,d){var e=d.store,f=a[b];"string"==typeof f?e(f,d):f[0]==v?q(f[1],c,d):(e(f[0],d),e(":",d),r(a,b,c,d))}function q(a,b,c){var d=c.store;d(a,c),b||d(w,c)}function r(a,b,c,e){var f=e.store,g=a[b],h=0===g[0][0].indexOf("--");if(h&&s(g[1]))return f("{",e),o(g[1],e),void f("};",e);for(var i=1,j=g.length;j>i;i++)f(g[i],e),j-1>i&&(l(g)||!m(g,i,e))?f(" ",e):i==j-1&&!c&&d(a,b+1)&&f(w,e)}function s(a){for(var b=0,c=a.length;c>b;b++)if(a[b][0]==v||Array.isArray(a[b][0]))return!0;return!1}function t(a,b){for(var c=b.keepBreaks?u:"",d=b.store,e=0,f=a.length;f>e;e++){var g=a[e];switch(g[0]){case"at-rule":case"text":d(g[1][0],b),d(c,b);break;case"block":n([g[1]],b),d("{",b),t(g[2],b),d("}",b),d(c,b);break;case"flat-block":n([g[1]],b),d("{",b),o(g[2],b),d("}",b),d(c,b);break;default:n(g[1],b),d("{",b),o(g[2],b),d("}",b),d(c,b)}}}var u=a("os").EOL,v="at-rule",w=";";b.exports={all:t,body:o,property:p,selectors:n,value:r}},{os:87}],45:[function(a,b,c){function d(a,b){b.output.push("string"==typeof a?a:a[0])}function e(){return{output:[],store:d}}function f(a){var b=e();return k.all(a,b),b.output.join("")}function g(a){var b=e();return k.body(a,b),b.output.join("")}function h(a,b){var c=e();return k.property(a,b,!0,c),c.output.join("")}function i(a){var b=e();return k.selectors(a,b),b.output.join("")}function j(a,b){var c=e();return k.value(a,b,!0,c),c.output.join("")}var k=a("./helpers");b.exports={all:f,body:g,property:h,selectors:i,value:j}},{"./helpers":44}],46:[function(a,b,c){function d(a,b){b.output.push("string"==typeof a?a:a[0])}function e(a,b,c){var e={keepBreaks:b.keepBreaks,output:[],spaceAfterClosingBrace:b.compatibility.properties.spaceAfterClosingBrace,store:d};return f(a,e,!1),{styles:c(e.output.join("")).trim()}}var f=a("./helpers").all;b.exports=e},{"./helpers":44}],47:[function(a,b,c){(function(c){function d(a,b){var c="string"==typeof a,d=c?a:a[0];d.indexOf("_")>-1&&(d=b.restore(d,e(b.output))),f(d,c?null:a,b),b.output.push(d)}function e(a){for(var b=[],c=a.length-1;c>=0;c--){var d=a[c];if(b.unshift(d),"{"==d||";"==d)break}return b.join("")}function f(a,b,c){b&&g(b,c);var d=a.split("\n");c.line+=d.length-1,c.column=d.length>1?0:c.column+d.pop().length}function g(a,b){var c=a[a.length-1];if(Array.isArray(c))for(var d=0,e=c.length;e>d;d++)h(c[d],b)}function h(a,b){var c=a[2]||m;l&&(c=c.replace(/\\/g,"/")),b.outputMap.addMapping({generated:{line:b.line,column:b.column},source:c,original:{line:a[0],column:a[1]}}),a[3]&&b.outputMap.setSourceContent(c,a[3][a[2]])}function i(a,b,c,e){var f={column:0,inputMapTracker:e,keepBreaks:b.keepBreaks,line:1,output:[],outputMap:new j,restore:c,sourceMapInlineSources:b.sourceMapInlineSources,spaceAfterClosingBrace:b.compatibility.properties.spaceAfterClosingBrace,store:d};return k(a,f,!1),{sourceMap:f.outputMap,styles:f.output.join("").trim()}}var j=a("source-map").SourceMapGenerator,k=a("./helpers").all,l="win32"==c.platform,m="$stdin";b.exports=i}).call(this,a("_process"))},{"./helpers":44,_process:90,"source-map":67}],48:[function(a,b,c){function d(a,b,c,d){this.comments=new g("COMMENT"),this.specialComments=new g("COMMENT_SPECIAL"),this.context=a,this.restored=0,this.keepAll="*"==b,this.keepOne="1"==b||1===b,this.keepBreaks=c,this.saveWaypoints=d}function e(a){var b=[];return new h(a).each(function(a,c,d){b.push([d,d+a.length])}),function(a){for(var c=0,d=b.length;d>c;c++)if(b[c][0]<a&&b[c][1]>a)return!0;return!1}}function f(a,b,c,d){for(var e=[],f=0;f<b.length;){var g=c.nextMatch(b,f);if(g.start<0)break;e.push(b.substring(f,g.start));var h=c.restore(g.match);d&&(a.keepAll||a.keepOne&&0===a.restored)?(a.restored++,e.push(h),f=g.end):f=g.end+(a.keepBreaks&&b.substring(g.end,g.end+l.length)==l?l.length:0)}return e.length>0?e.join("")+b.substring(f,b.length):b}var g=a("./escape-store"),h=a("../utils/quote-scanner"),i="/*!",j="/*",k="*/",l=a("os").EOL;d.prototype.escape=function(a){for(var b,c,d,f=[],g=0,h=0,m=0,n=0,o=e(a),p=this.saveWaypoints;h<a.length&&(g=a.indexOf(j,m),-1!=g);)if(o(g))f.push(a.substring(m,g+j.length)),m=g+j.length;else{h=a.indexOf(k,g+j.length),-1==h&&(this.context.warnings.push("Broken comment: '"+a.substring(g)+"'."),h=a.length-2),f.push(a.substring(m,g));var q=a.substring(g,h+k.length),r=0===q.indexOf(i);if(p&&(b=q.split(l).length-1,c=q.lastIndexOf(l),d=c>0?q.substring(c+l.length).length:n+q.length),p||r){var s=p?[b,d]:null,t=r?this.specialComments.store(q,s):this.comments.store(q,s);f.push(t)}p&&(n=d+1),m=h+k.length}return f.length>0?f.join("")+a.substring(m,a.length):a},d.prototype.restore=function(a){return a=f(this,a,this.comments,!1),a=f(this,a,this.specialComments,!0)},b.exports=d},{"../utils/quote-scanner":63,"./escape-store":49,os:87}],49:[function(a,b,c){function d(a){this.placeholderRoot="ESCAPED_"+a+"_CLEAN_CSS",this.placeholderToData={},this.dataToPlaceholder={},this.count=0,this.restoreMatcher=new RegExp(this.placeholderRoot+"(\\d+)")}var e="__";d.prototype._nextPlaceholder=function(a){return{index:this.count,value:e+this.placeholderRoot+this.count++ +a+e}},d.prototype.store=function(a,b){var c=b?"("+b.join(",")+")":"",d=this.dataToPlaceholder[a];
+if(!d){var e=this._nextPlaceholder(c);d=e.value,this.placeholderToData[e.index]=a,this.dataToPlaceholder[a]=e.value}return b&&(d=d.replace(/\([^\)]+\)/,c)),d},d.prototype.nextMatch=function(a,b){var c={};return c.start=a.indexOf(this.placeholderRoot,b)-e.length,c.end=a.indexOf(e,c.start+e.length)+e.length,c.start>-1&&c.end>-1&&(c.match=a.substring(c.start,c.end)),c},d.prototype.restore=function(a){var b=this.restoreMatcher.exec(a)[1];return this.placeholderToData[b]},b.exports=d},{}],50:[function(a,b,c){function d(a,b){for(var c=b+g.length,d=0,e=!1,f=!1;;){var j=a[c++];if(e?e="'"!=j&&'"'!=j:(e="'"==j||'"'==j,j==h&&d++,j==i&&d--,j==k&&(f=!0),j!=l||f||1!=d||(c--,d--)),0===d&&j==i)break;if(!j){c=a.substring(0,c).lastIndexOf(l);break}}return c}function e(a){this.expressions=new f("EXPRESSION"),this.saveWaypoints=a}var f=a("./escape-store"),g="expression",h="(",i=")",j=g+h,k="{",l="}",m=a("os").EOL;e.prototype.escape=function(a){for(var b,c,e,f=0,g=0,h=0,i=[],k=0,l=this.saveWaypoints;g<a.length&&(f=a.indexOf(j,g),-1!=f);){g=d(a,f);var n=a.substring(f,g);l&&(b=n.split(m).length-1,c=n.lastIndexOf(m),e=c>0?n.substring(c+m.length).length:k+n.length);var o=l?[b,e]:null,p=this.expressions.store(n,o);i.push(a.substring(h,f)),i.push(p),l&&(k=e+1),h=g}return i.length>0?i.join("")+a.substring(h,a.length):a},e.prototype.restore=function(a){for(var b=[],c=0;c<a.length;){var d=this.expressions.nextMatch(a,c);if(d.start<0)break;b.push(a.substring(c,d.start));var e=this.expressions.restore(d.match);b.push(e),c=d.end}return b.length>0?b.join("")+a.substring(c,a.length):a},b.exports=e},{"./escape-store":49,os:87}],51:[function(a,b,c){function d(a){this.matches=new f("FREE_TEXT"),this.saveWaypoints=a}function e(a,b,c,d){var e=b;c&&(e=c+b.substring(0,b.indexOf("__ESCAPED_FREE_TEXT_CLEAN_CSS")),d=e.length);var f=e.lastIndexOf(";",d),g=e.lastIndexOf("{",d),h=0;h=f>-1&&g>-1?Math.max(f,g):-1==f?g:f;var i=e.substring(h+1,d);if(/\[[\w\d\-]+[\*\|\~\^\$]?=$/.test(i)&&(a=a.replace(/\\\n|\\\r\n/g,"").replace(/\n|\r\n/g,"")),/^['"][a-zA-Z][a-zA-Z\d\-_]+['"]$/.test(a)&&!/format\($/.test(i)){var j=/^(font|font\-family):/.test(i),k=/\[[\w\d\-]+[\*\|\~\^\$]?=$/.test(i),l=/@(-moz-|-o-|-webkit-)?keyframes /.test(i),m=/^(-moz-|-o-|-webkit-)?animation(-name)?:/.test(i);(j||k||l||m)&&(a=a.substring(1,a.length-1))}return a}var f=a("./escape-store"),g=a("../utils/quote-scanner"),h=a("os").EOL;d.prototype.escape=function(a){var b,c,d,e,f=this,i=this.saveWaypoints;return new g(a).each(function(a,g){i&&(b=a.split(h).length-1,c=a.lastIndexOf(h),d=c>0?a.substring(c+h.length).length:a.length,e=[b,d]);var j=f.matches.store(a,e);g.push(j)})},d.prototype.restore=function(a,b){for(var c=[],d=0;d<a.length;){var f=this.matches.nextMatch(a,d);if(f.start<0)break;c.push(a.substring(d,f.start));var g=e(this.matches.restore(f.match),a,b,f.start);c.push(g),d=f.end}return c.length>0?c.join("")+a.substring(d,a.length):a},b.exports=d},{"../utils/quote-scanner":63,"./escape-store":49,os:87}],52:[function(a,b,c){function d(a,b,c){this.urls=new f("URL"),this.context=a,this.saveWaypoints=b,this.keepUrlQuotes=c}function e(a,b){return a=a.replace(/^url/gi,"url").replace(/\\?\n|\\?\r\n/g,"").replace(/(\s{2,}|\s)/g," ").replace(/^url\((['"])? /,"url($1").replace(/ (['"])?\)$/,"$1)"),b||/^['"].+['"]$/.test(a)||/url\(.*[\s\(\)].*\)/.test(a)||/url\(['"]data:[^;]+;charset/.test(a)||(a=a.replace(/["']/g,"")),a}var f=a("./escape-store"),g=a("../urls/reduce"),h=a("os").EOL;d.prototype.escape=function(a){var b,c,d,e=this.saveWaypoints,f=this;return g(a,this.context,function(a,g){e&&(b=a.split(h).length-1,c=a.lastIndexOf(h),d=c>0?a.substring(c+h.length).length:a.length);var i=f.urls.store(a,e?[b,d]:null);g.push(i)})},d.prototype.restore=function(a){for(var b=[],c=0;c<a.length;){var d=this.urls.nextMatch(a,c);if(d.start<0)break;b.push(a.substring(c,d.start));var f=e(this.urls.restore(d.match),this.keepUrlQuotes);b.push(f),c=d.end}return b.length>0?b.join("")+a.substring(c,a.length):a},b.exports=d},{"../urls/reduce":57,"./escape-store":49,os:87}],53:[function(a,b,c){function d(a){return a[0]}function e(){}function f(a,b,c,d){for(var f=c?/^__ESCAPED_COMMENT_/:/__ESCAPED_COMMENT_/,g=c?d.track:e;f.test(a);){var h=a.indexOf("__"),i=a.indexOf("__",h+1)+2,j=a.substring(h,i);a=a.substring(0,h)+a.substring(i),g(j),b.push(j)}return a}function g(a,b,c){return f(a,b,!0,c)}function h(a,b,c){return f(a,b,!1,c)}function i(a,b,c){for(var d=0,e=a.length;e>d;d++)c.track(a[d]),b.push(a[d])}function j(a,b,c){var e=[],f=[],o=/[ ,\/]/;if("string"!=typeof a)return[];a.indexOf(")")>-1&&(a=a.replace(/\)([^\s_;:,\)])/g,c.sourceMap?") __ESCAPED_COMMENT_CLEAN_CSS(0,-1)__ $1":") $1")),a.indexOf("ESCAPED_URL_CLEAN_CSS")>-1&&(a=a.replace(/(ESCAPED_URL_CLEAN_CSS[^_]+?__)/g,c.sourceMap?"$1 __ESCAPED_COMMENT_CLEAN_CSS(0,-1)__ ":"$1 "));for(var s=k(a,";",!1,"{","}"),t=0,u=s.length;u>t;t++){var v=s[t],w=v.indexOf(":"),x="@"==v.trim()[0];if(x)c.track(v),e.push([n,v.trim()]);else if(-1!=w)if(v.indexOf("{")>0&&v.indexOf("{")<w)c.track(v);else{var y=[],z=v.substring(0,w);f=[],z.indexOf("__ESCAPED_COMMENT")>-1&&(z=g(z,e,c)),z.indexOf("__ESCAPED_COMMENT")>-1&&(z=h(z,f,c)),y.push([z.trim()].concat(c.track(z,!0))),c.track(":"),i(f,e,c);var A=v.indexOf("{"),B=0===z.trim().indexOf("--");if(B&&A>0){var C=v.substring(w+1,A+1),D=v.substring(v.indexOf("}")),E=v.substring(A+1,v.length-D.length);c.track(C),y.push(j(E,b,c)),e.push(y),c.track(D),c.track(u-1>t?";":"")}else{var F=k(v.substring(w+1),o,!0);if(1!=F.length||""!==F[0]){for(var G=0,H=F.length;H>G;G++){var I=F[G],J=I.trim();if(0!==J.length){var K=J[J.length-1],L=J.length>1&&(K==l||K==m);if(L&&(J=J.substring(0,J.length-1)),J.indexOf("__ESCAPED_COMMENT_CLEAN_CSS(0,-")>-1)c.track(J);else if(f=[],J.indexOf("__ESCAPED_COMMENT")>-1&&(J=g(J,e,c)),J.indexOf("__ESCAPED_COMMENT")>-1&&(J=h(J,f,c)),0!==J.length){var M=y.length-1;q.test(J)&&"!"==y[M][0]?(c.track(J),y[M-1][0]+=p,y.pop()):r.test(J)||q.test(J)&&"!"==y[M][0][y[M][0].length-1]?(c.track(J),y[M][0]+=J):(y.push([J].concat(c.track(I,!0))),i(f,e,c),L&&(y.push([K]),c.track(K)))}else i(f,e,c)}}u-1>t&&c.track(";"),e.push(y)}else c.warnings.push("Empty property '"+z+"' inside '"+b.filter(d).join(",")+"' selector. Ignoring.")}}else c.track(v),v.indexOf("__ESCAPED_COMMENT_SPECIAL")>-1&&e.push(v.trim())}return e}var k=a("../utils/split"),l=",",m="/",n="at-rule",o="important",p="!"+o,q=new RegExp("^"+o+"$","i"),r=new RegExp("^"+p+"$","i");b.exports=j},{"../utils/split":66}],54:[function(a,b,c){function d(a,b){for(var c,d=[],f=e(a,","),g=0,h=f.length;h>g;g++)c=b.track(f[g],!0,g),b.track(","),d.push([f[g].trim()].concat(c));return d}var e=a("../utils/split");b.exports=d},{"../utils/split":66}],55:[function(a,b,c){function d(a,b){var c=l(e(a),"}",!0,"{","}");if(0===c.length)return[];var d={chunk:c.shift(),chunks:c,column:0,cursor:0,line:1,mode:"top",resolvePath:b.options.explicitTarget?f(b.options.root,b.options.target):null,source:void 0,sourceMap:b.options.sourceMap,sourceMapInlineSources:b.options.sourceMapInlineSources,sourceMapTracker:b.inputSourceMapTracker,sourceReader:b.sourceReader,sourceTracker:b.sourceTracker,state:[],track:b.options.sourceMap?function(a,b,c){return[[k(a,d,b,c)]]}:function(){return[]},warnings:b.warnings};return h(d)}function e(a){return a.replace(/\r\n/g,"\n")}function f(a,b){var c=m.relative(a,b);return function(a,b){return a!=b?m.normalize(m.join(m.relative(c,m.dirname(a)),b)):b}}function g(a){var b,c=a.mode,d=a.chunk;if(d.length==a.cursor){if(0===a.chunks.length)return null;a.chunk=d=a.chunks.shift(),a.cursor=0}if("body"==c)return"}"==d[a.cursor]?[a.cursor,"bodyEnd"]:-1==d.indexOf("}",a.cursor)?null:(b=a.cursor+l(d.substring(a.cursor-1),"}",!0,"{","}")[0].length-2,[b,"bodyEnd"]);var e=d.indexOf("@",a.cursor),f=d.indexOf("__ESCAPED_",a.cursor),g=d.indexOf("{",a.cursor),h=d.indexOf("}",a.cursor);return f>-1&&/\S/.test(d.substring(a.cursor,f))&&(f=-1),b=e,(-1==b||f>-1&&b>f)&&(b=f),(-1==b||g>-1&&b>g)&&(b=g),(-1==b||h>-1&&b>h)&&(b=h),-1!=b?f===b?[b,"escape"]:g===b?[b,"bodyStart"]:h===b?[b,"bodyEnd"]:e===b?[b,"special"]:void 0:void 0}function h(a){for(var b,c,d=a.chunk,e=[];;){var f=g(a);if(!f){var k=a.chunk.substring(a.cursor);k.trim().length>0&&("body"==a.mode?a.warnings.push("Missing '}' after '"+k+"'. Ignoring."):e.push(["text",[k]]),a.cursor+=k.length);break}var l,m,o=f[0],p=f[1];if(d=a.chunk,a.cursor!=o&&"bodyEnd"!=p){var q=d.substring(a.cursor,o),r=/^\s+/.exec(q);r&&(a.cursor+=r[0].length,a.track(r[0]))}if("special"==p){var s=d.indexOf("{",o),t=d.indexOf(";",o),u=t>-1&&(-1==s||s>t),v=-1==s&&-1==t;if(v)a.warnings.push("Broken declaration: '"+d.substring(a.cursor)+"'."),a.cursor=d.length;else if(u)l=d.indexOf(";",o+1),c=d.substring(a.cursor,l+1),e.push(["at-rule",[c].concat(a.track(c,!0))]),a.track(";"),a.cursor=l+1;else{l=d.indexOf("{",o+1),c=d.substring(a.cursor,l);var w=c.trim(),x=n.test(w);m=a.mode,a.cursor=l+1,a.mode=x?"body":"block",b=[x?"flat-block":"block"],b.push([w].concat(a.track(c,!0))),a.track("{"),b.push(h(a)),"string"==typeof b[2]&&(b[2]=i(b[2],[[w]],a)),a.mode=m,a.track("}"),e.push(b)}}else if("escape"==p){l=d.indexOf("__",o+1);var y=d.substring(a.cursor,l+2),z=!!a.sourceTracker.nextStart(y),A=!!a.sourceTracker.nextEnd(y);if(z)a.track(y),a.state.push({source:a.source,line:a.line,column:a.column}),a.source=a.sourceTracker.nextStart(y).filename,a.line=1,a.column=0;else if(A){var B=a.state.pop();a.source=B.source,a.line=B.line,a.column=B.column,a.track(y)}else 0===y.indexOf("__ESCAPED_COMMENT_SPECIAL")&&e.push(["text",[y]]),a.track(y);a.cursor=l+2}else if("bodyStart"==p){var C=j(d.substring(a.cursor,o),a);m=a.mode,a.cursor=o+1,a.mode="body";var D=i(h(a),C,a);a.track("{"),a.mode=m,e.push(["selector",C,D])}else if("bodyEnd"==p){if("top"==a.mode){var E=a.cursor,F="}"==d[a.cursor]?"Unexpected '}' in '"+d.substring(E-20,E+20)+"'. Ignoring.":"Unexpected content: '"+d.substring(E,o+1)+"'. Ignoring.";a.warnings.push(F),a.cursor=o+1;continue}"block"==a.mode&&a.track(d.substring(a.cursor,o)),"block"!=a.mode&&(e=d.substring(a.cursor,o)),a.cursor=o+1;break}}return e}var i=a("./extract-properties"),j=a("./extract-selectors"),k=a("../source-maps/track"),l=a("../utils/split"),m=a("path"),n=/(@(font\-face|page|\-ms\-viewport|\-o\-viewport|viewport|counter\-style)|\\@.+?)/;b.exports=d},{"../source-maps/track":43,"../utils/split":66,"./extract-properties":53,"./extract-selectors":54,path:88}],56:[function(a,b,c){function d(a,b){var c={absolute:b.options.explicitRoot,relative:!b.options.explicitRoot&&b.options.explicitTarget,fromBase:b.options.relativeTo};return c.absolute||c.relative?(c.absolute&&b.options.explicitTarget&&b.warnings.push("Both 'root' and output file given so rebasing URLs as absolute paths"),c.absolute&&(c.toBase=e.resolve(b.options.root)),c.relative&&(c.toBase=e.resolve(b.options.target)),c.fromBase&&c.toBase?f(a,c,b):a):a}var e=a("path"),f=a("./rewrite");b.exports=d},{"./rewrite":58,path:88}],57:[function(a,b,c){function d(a,b,c){for(var d=0,e=0,f=0,k=0,l=!1,m=0,n=[],o=a.indexOf(h)>-1;f<a.length&&(d=a.indexOf(g,f),e=o?a.indexOf(h,f):-1,-1!=d||-1!=e);){if(-1==d&&e>-1&&(d=e),'"'==a[d+g.length])f=a.indexOf('"',d+g.length+1);else if("'"==a[d+g.length])f=a.indexOf("'",d+g.length+1);else if(l=0===a.substring(d+g.length).trim().indexOf(j),f=a.indexOf(i,d),l)for(;;){if(k=a.indexOf(i,f+1),-1==k||/[\s\{\};]/.test(a.substring(f,k)))break;f=k}-1==f?(f=a.indexOf("}",d),-1==f?f=a.length:f--,b.warnings.push("Broken URL declaration: '"+a.substring(d,f+1)+"'.")):a[f]!=i&&(f=a.indexOf(i,f)),n.push(a.substring(m,d));var p=a.substring(d,f+1);c(p,n),m=f+1}return n.length>0?n.join("")+a.substring(m,a.length):a}function e(a,b,c){for(var d,e,f=0,g=0,h=0,i=0,j=0,n=[],o=0,p=0,q="'",r='"';i<a.length&&(f=a.indexOf(k,i),g=a.indexOf(l,i),-1!=f||-1!=g);){if(f>-1&&g>-1&&f>g&&(f=g),o=a.indexOf(q,f),p=a.indexOf(r,f),o>-1&&p>-1&&p>o)h=o,e=q;else if(o>-1&&p>-1&&o>p)h=p,e=r;else if(o>-1)h=o,e=q;else{if(!(p>-1))break;h=p,e=r}if(n.push(a.substring(j,h)),i=a.indexOf(e,h+1),d=a.substring(f,i),-1==i||/^@import\s+(url\(|__ESCAPED)/i.test(d)||m.test(d)){j=h;break}var s=a.substring(h,i+1);c(s,n),j=i+1}return n.length>0?n.join("")+a.substring(j,a.length):a}function f(a,b,c){return a=d(a,b,c),a=e(a,b,c)}var g="url(",h="URL(",i=")",j="data:",k="@import",l="@IMPORT",m=/\*\//;b.exports=f},{}],58:[function(a,b,c){(function(c){function d(a){return"/"==a[0]}function e(a){return"#"==a[0]}function f(a){return 0===a.indexOf("__ESCAPED_URL_CLEAN_CSS__")}function g(a){return/^\w+:\w+/.test(a)}function h(a){return/^[^:]+?:\/\//.test(a)||0===a.indexOf("//")}function i(a,b){return s.parse(a).protocol==s.parse(b).protocol&&s.parse(a).host==s.parse(b).host}function j(a){return a.lastIndexOf(".css")===a.length-4}function k(a){return 0===a.indexOf("data:")}function l(a,b){return r.resolve(r.join(b.fromBase||"",a)).replace(b.toBase,"")}function m(a,b){return r.relative(b.toBase,r.join(b.fromBase||"",a))}function n(a){return u?a.replace(/\\/g,"/"):a}function o(a,b){return d(a)||e(a)||f(a)||g(a)?a:b.rebase!==!1||j(a)?!b.imports&&j(a)?a:k(a)?"'"+a+"'":h(a)&&!h(b.toBase)?a:h(a)&&!i(a,b.toBase)?a:!h(a)&&h(b.toBase)?s.resolve(b.toBase,a):n(b.absolute?l(a,b):m(a,b)):a}function p(a){return a.indexOf("'")>-1?'"':a.indexOf('"')>-1?"'":/\s/.test(a)||/[\(\)]/.test(a)?"'":""}function q(a,b,c){return t(a,c,function(a,c){var d,e=a.replace(/^(url\()?\s*['"]?|['"]?\s*\)?$/g,""),f=a.match(/^(url\()?\s*(['"]).*?(['"])\s*\)?$/);d=b.urlQuotes&&f&&f[2]===f[3]?f[2]:p(e),c.push("url("+d+o(e,b)+d+")")})}var r=a("path"),s=a("url"),t=a("./reduce"),u="win32"==c.platform;b.exports=q}).call(this,a("_process"))},{"./reduce":57,_process:90,path:88,url:141}],59:[function(a,b,c){function d(a){for(var b=a.slice(0),c=0,e=b.length;e>c;c++)Array.isArray(b[c])&&(b[c]=d(b[c]));return b}b.exports=d},{}],60:[function(a,b,c){function d(a){this.source=a||{}}function e(a,b){for(var c in a){var d=a[c];"object"!=typeof d||g.isRegExp(d)?b[c]=c in b?b[c]:d:b[c]=e(d,b[c]||{})}return b}function f(a){if("object"==typeof a)return a;if(!/[,\+\-]/.test(a))return h[a]||h["*"];var b=a.split(","),c=b[0]in h?h[b.shift()]:h["*"];return a={},b.forEach(function(b){var c="+"==b[0],d=b.substring(1).split("."),e=d[0],f=d[1];a[e]=a[e]||{},a[e][f]=c}),e(c,a)}var g=a("util"),h={"*":{colors:{opacity:!0},properties:{backgroundClipMerging:!1,backgroundOriginMerging:!1,backgroundSizeMerging:!1,colors:!0,ieBangHack:!1,iePrefixHack:!1,ieSuffixHack:!0,merging:!0,shorterLengthUnits:!1,spaceAfterClosingBrace:!0,urlQuotes:!1,zeroUnits:!0},selectors:{adjacentSpace:!1,ie7Hack:!1,special:/(\-moz\-|\-ms\-|\-o\-|\-webkit\-|:dir\([a-z-]*\)|:first(?![a-z-])|:fullscreen|:left|:read-only|:read-write|:right|:placeholder|:host|::content|\/deep\/|::shadow|^,)/},units:{ch:!0,"in":!0,pc:!0,pt:!0,rem:!0,vh:!0,vm:!0,vmax:!0,vmin:!0,vw:!0}},ie8:{colors:{opacity:!1},properties:{backgroundClipMerging:!1,backgroundOriginMerging:!1,backgroundSizeMerging:!1,colors:!0,ieBangHack:!1,iePrefixHack:!0,ieSuffixHack:!0,merging:!1,shorterLengthUnits:!1,spaceAfterClosingBrace:!0,urlQuotes:!1,zeroUnits:!0},selectors:{adjacentSpace:!1,ie7Hack:!1,special:/(\-moz\-|\-ms\-|\-o\-|\-webkit\-|:root|:nth|:first\-of|:last|:only|:empty|:target|:checked|::selection|:enabled|:disabled|:not|:placeholder|:host|::content|\/deep\/|::shadow|^,)/},units:{ch:!1,"in":!0,pc:!0,pt:!0,rem:!1,vh:!1,vm:!1,vmax:!1,vmin:!1,vw:!1}},ie7:{colors:{opacity:!1},properties:{backgroundClipMerging:!1,backgroundOriginMerging:!1,backgroundSizeMerging:!1,colors:!0,ieBangHack:!0,iePrefixHack:!0,ieSuffixHack:!0,merging:!1,shorterLengthUnits:!1,spaceAfterClosingBrace:!0,urlQuotes:!1,zeroUnits:!0},selectors:{adjacentSpace:!1,ie7Hack:!0,special:/(\-moz\-|\-ms\-|\-o\-|\-webkit\-|:focus|:before|:after|:root|:nth|:first\-of|:last|:only|:empty|:target|:checked|::selection|:enabled|:disabled|:not|:placeholder|:host|::content|\/deep\/|::shadow|^,)/},units:{ch:!1,"in":!0,pc:!0,pt:!0,rem:!1,vh:!1,vm:!1,vmax:!1,vmin:!1,vw:!1}}};d.prototype.toOptions=function(){return e(h["*"],f(this.source))},b.exports=d},{util:145}],61:[function(a,b,c){(function(c,d,e){function f(a){this.options=a.options,this.errors=a.errors,this.warnings=a.warnings,this.sourceTracker=a.sourceTracker,this.timeout=this.options.inliner.timeout,this.requestOptions=this.options.inliner.request,this.localOnly=a.localOnly,this.relativeTo=a.options.target||c.cwd(),this.maps={},this.sourcesContent={}}function g(a,b,c){return a.trackLoaded(void 0,void 0,a.options.sourceMap),c()}function h(a,b,c,d){function e(){d.cursor+=f+1,h(a,b,c,d)}for(var f=0;d.cursor<b.length;){var g=b.substring(d.cursor),k=a.sourceTracker.nextStart(g)||{index:-1},l=a.sourceTracker.nextEnd(g)||{index:-1},m=v.exec(g)||{index:-1},n=m[1];if(f=b.length,k.index>-1&&(f=k.index),l.index>-1&&l.index<f&&(f=l.index),m.index>-1&&m.index<f&&(f=m.index),f==b.length)break;if(f==k.index)d.files.push(k.filename);else if(f==l.index)d.files.pop();else if(f==m.index){var o=/^https?:\/\//.test(n)||/^\/\//.test(n),r=x.test(n);if(o)return j(a,n,d,e);var s,t,u=d.files[d.files.length-1],w=u?q.dirname(u):a.options.relativeTo;r?(s=q.resolve(a.options.root,u||""),t=i(n)):(s=q.resolve(a.options.root,q.join(w||"",n)),t=p.readFileSync(s,"utf-8")),a.trackLoaded(u||void 0,s,t)}d.cursor+=f+1}return c()}function i(a){var b=x.exec(a),c=b[2]?b[2].split(/[=;]/)[2]:"us-ascii",d=b[3]?b[3].split(";")[1]:"utf8",f="utf8"==d?y(b[4]):b[4],g=new e(f,d);return g.charset=c,g.toString()}function j(a,b,c,d){k(a,b,function(e){a.trackLoaded(c.files[c.files.length-1]||void 0,b,e),d()},function(a){return c.errors.push('Broken source map at "'+b+'" - '+a),d()})}function k(a,b,c,d){var e=0===b.indexOf("https")?s:r,f=u(t.parse(b),a.requestOptions),g=!1;e.get(f,function(a){if(a.statusCode<200||a.statusCode>299)return d(a.statusCode);var b=[];a.on("data",function(a){b.push(a.toString())}),a.on("end",function(){c(b.join(""))})}).on("error",function(a){g||(d(a.message),g=!0)}).on("timeout",function(){g||(d("timeout"),g=!0)}).setTimeout(a.timeout)}function l(a,b,c,d,e){for(var f,g=d.length,h={line:b,column:c+g};g-- >0&&(h.column--,!(f=a.data.originalPositionFor(h))););return null===f.line&&b>1&&e>0?l(a,b-1,c,d,e-1):(a.path&&f.source&&(f.source=w.test(a.path)?t.resolve(a.path,f.source):q.join(a.path,f.source),f.sourceResolved=!0),f)}function m(a,b){var c=a.maps[b].data,d=w.test(b),e={};c.sources.forEach(function(f,g){var h=d?t.resolve(q.dirname(b),f):q.relative(a.relativeTo,q.resolve(q.dirname(b),f));e[h]=c.sourcesContent&&c.sourcesContent[g]}),a.sourcesContent[b]=e}function n(a,b,c){function d(){return n(a,b,c)}if(0===b.length)return c();var e=b.shift(),f=e[0],g=e[1],h=w.test(f);if(h&&a.localOnly)return a.warnings.push('No callback given to `#minify` method, cannot fetch a remote file from "'+g+'"'),d();if(!h){var i=q.join(a.options.root,g);return p.existsSync(i)?a.sourcesContent[f][g]=p.readFileSync(i,"utf-8"):a.warnings.push('Missing original source file at "'+i+'".'),d()}k(a,g,function(b){a.sourcesContent[f][g]=b,d()},function(b){a.warnings.push('Broken original source file at "'+g+'" - '+b),d()})}var o=a("source-map").SourceMapConsumer,p=a("fs"),q=a("path"),r=a("http"),s=a("https"),t=a("url"),u=a("../utils/object.js").override,v=/\/\*# sourceMappingURL=(\S+) \*\//,w=/^(https?:)?\/\//,x=/^data:(\S*?)?(;charset=[^;]+)?(;[^,]+?)?,(.+)/,y=d.unescape;f.prototype.track=function(a,b){return"string"==typeof this.options.sourceMap?g(this,a,b):h(this,a,b,{files:[],cursor:0,errors:this.errors})},f.prototype.trackLoaded=function(a,b,c){var d=this.options.explicitTarget?this.options.target:this.options.root,e=w.test(a);b&&(b=e?q.dirname(b):q.dirname(q.relative(d,b))),this.maps[a]={path:b,data:new o(c)},m(this,a)},f.prototype.isTracking=function(a){return!!this.maps[a]},f.prototype.originalPositionFor=function(a,b,c){return l(this.maps[a.source],a.line,a.column,b,c)},f.prototype.sourcesContentFor=function(a){return this.sourcesContent[a]},f.prototype.resolveSources=function(a){var b=[];for(var c in this.sourcesContent){var d=this.sourcesContent[c];for(var e in d)d[e]||b.push([c,e])}return n(this,b,a)},b.exports=f}).call(this,a("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},a("buffer").Buffer)},{"../utils/object.js":62,_process:90,buffer:5,fs:4,http:123,https:81,path:88,"source-map":67,url:141}],62:[function(a,b,c){b.exports={override:function(a,b){var c={};for(var d in a)c[d]=a[d];for(var e in b)c[e]=b[e];return c}}},{}],63:[function(a,b,c){function d(a){this.data=a}function e(a,b){for(var c=b;c>-1&&(c=a.lastIndexOf(g,c),!(c>-1&&"*"!=a[c-1]));)c--;return c}function f(a,b,c){for(var d="\\",e=c;;){if(e=a.indexOf(b,e+1),-1==e)return-1;if(a[e-1]!=d)return e}}var g="/*",h=function(a,b,c,d){var f="*/",g="\\",h="}",i=a.substring(d,c),j=i.lastIndexOf(f,c),k=e(i,c),l=!1;if(j>=c&&k>-1&&(l=!0),c>k&&k>j&&(l=!0),l){var m=a.indexOf(f,c);return m>-1?m:(m=a.indexOf(h,c),m>-1?m-1:a.length)}for(;;){if(void 0===a[c])break;if(a[c]==b&&(a[c-1]!=g||a[c-2]==g))break;c++}return c};d.prototype.each=function(a){for(var b=this.data,c=[],d=0,e=0,g=0,i=null,j="'",k='"',l=b.length;e<b.length;){var m=f(b,j,e),n=f(b,k,e);if(-1==m&&(m=l),-1==n&&(n=l),n>m?(d=m,i=j):(d=n,i=k),-1==d)break;if(e=h(b,i,d+1,g),-1==e)break;var o=b.substring(d,e+1);c.push(b.substring(g,d)),o.length>0&&a(o,c,d),g=e+1}return c.length>0?c.join("")+b.substring(g,b.length):b},b.exports=d},{}],64:[function(a,b,c){(function(c){function d(a,b){this.outerContext=a,this.data=b,this.sources={}}function e(a){var b=a.data;return a.trackSource(void 0,b),b}function f(a){var b=a.data.toString();return a.trackSource(void 0,b),b}function g(a){return a.data.map(function(b){return a.outerContext.options.processImport===!1?b+"@shallow":b}).map(function(b){return!a.outerContext.options.relativeTo||/^https?:\/\//.test(b)?b:i.relative(a.outerContext.options.relativeTo,b)}).map(function(a){return"@import url("+a+");"}).join("")}function h(a){var b=[],c=i.resolve(a.outerContext.options.target||a.outerContext.options.root);for(var d in a.data){var e=a.data[d].styles,f=a.data[d].sourceMap,g=k.test(d),h=g?d:i.resolve(d),l=i.dirname(h),m={absolute:a.outerContext.options.explicitRoot,relative:!a.outerContext.options.explicitRoot,imports:!0,rebase:a.outerContext.options.rebase,fromBase:l,toBase:g?l:c,urlQuotes:a.outerContext.options.compatibility.properties.urlQuotes};e=j(e,m,a.outerContext),a.trackSource(d,e),e=a.outerContext.sourceTracker.store(d,e),a.outerContext.options.sourceMap&&f&&a.outerContext.inputSourceMapTracker.trackLoaded(d,d,f),b.push(e)}return b.join("")}var i=a("path"),j=a("../urls/rewrite"),k=/^(https?:)?\/\//;d.prototype.sourceAt=function(a){return this.sources[a]},d.prototype.trackSource=function(a,b){this.sources[a]={},this.sources[a][a]=b},d.prototype.toString=function(){return"string"==typeof this.data?e(this):c.isBuffer(this.data)?f(this):Array.isArray(this.data)?g(this):h(this)},b.exports=d}).call(this,{isBuffer:a("../../../is-buffer/index.js")})},{"../../../is-buffer/index.js":84,"../urls/rewrite":58,path:88}],65:[function(a,b,c){function d(){this.sources=[]}d.prototype.store=function(a,b){return this.sources.push(a),"__ESCAPED_SOURCE_CLEAN_CSS"+(this.sources.length-1)+"__"+b+"__ESCAPED_SOURCE_END_CLEAN_CSS__"},d.prototype.nextStart=function(a){var b=/__ESCAPED_SOURCE_CLEAN_CSS(\d+)__/.exec(a);return b?{index:b.index,filename:this.sources[~~b[1]]}:null},d.prototype.nextEnd=function(a){return/__ESCAPED_SOURCE_END_CLEAN_CSS__/g.exec(a)},d.prototype.removeAll=function(a){return a.replace(/__ESCAPED_SOURCE_CLEAN_CSS\d+__/g,"").replace(/__ESCAPED_SOURCE_END_CLEAN_CSS__/g,"")},b.exports=d},{}],66:[function(a,b,c){function d(a,b,c,d,e){var f="string"!=typeof b,g=f?b.test(a):a.indexOf(b);if(!g)return[a];if(d=d||"(",e=e||")",-1==a.indexOf(d)&&!c)return a.split(b);for(var h=0,i=0,j=0,k=a.length,l=[];k>i;)a[i]==d?h++:a[i]==e&&h--,0===h&&i>0&&k>i+1&&(f?b.test(a[i]):a[i]==b)&&(l.push(a.substring(j,i+(c?1:0))),j=i+1),i++;if(i+1>j){var m=a.substring(j),n=m[m.length-1];!c&&(f?b.test(n):n==b)&&(m=m.substring(0,m.length-1)),l.push(m)}return l}b.exports=d},{}],67:[function(a,b,c){c.SourceMapGenerator=a("./source-map/source-map-generator").SourceMapGenerator,c.SourceMapConsumer=a("./source-map/source-map-consumer").SourceMapConsumer,c.SourceNode=a("./source-map/source-node").SourceNode},{"./source-map/source-map-consumer":74,"./source-map/source-map-generator":75,"./source-map/source-node":76}],68:[function(a,b,c){if("function"!=typeof d)var d=a("amdefine")(b,a);d(function(a,b,c){function d(){this._array=[],this._set={}}var e=a("./util");d.fromArray=function(a,b){for(var c=new d,e=0,f=a.length;f>e;e++)c.add(a[e],b);return c},d.prototype.size=function(){return Object.getOwnPropertyNames(this._set).length},d.prototype.add=function(a,b){var c=this.has(a),d=this._array.length;c&&!b||this._array.push(a),c||(this._set[e.toSetString(a)]=d)},d.prototype.has=function(a){return Object.prototype.hasOwnProperty.call(this._set,e.toSetString(a))},d.prototype.indexOf=function(a){if(this.has(a))return this._set[e.toSetString(a)];throw new Error('"'+a+'" is not in the set.')},d.prototype.at=function(a){if(a>=0&&a<this._array.length)return this._array[a];throw new Error("No element indexed by "+a)},d.prototype.toArray=function(){return this._array.slice()},b.ArraySet=d})},{"./util":77,amdefine:1}],69:[function(a,b,c){if("function"!=typeof d)var d=a("amdefine")(b,a);d(function(a,b,c){function d(a){return 0>a?(-a<<1)+1:(a<<1)+0}function e(a){var b=1===(1&a),c=a>>1;return b?-c:c}var f=a("./base64"),g=5,h=1<<g,i=h-1,j=h;b.encode=function(a){var b,c="",e=d(a);do b=e&i,e>>>=g,e>0&&(b|=j),c+=f.encode(b);while(e>0);return c},b.decode=function(a,b,c){var d,h,k=a.length,l=0,m=0;do{if(b>=k)throw new Error("Expected more digits in base 64 VLQ value.");if(h=f.decode(a.charCodeAt(b++)),-1===h)throw new Error("Invalid base64 digit: "+a.charAt(b-1));d=!!(h&j),h&=i,l+=h<<m,m+=g}while(d);c.value=e(l),c.rest=b}})},{"./base64":70,amdefine:1}],70:[function(a,b,c){if("function"!=typeof d)var d=a("amdefine")(b,a);d(function(a,b,c){var d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");b.encode=function(a){if(a>=0&&a<d.length)return d[a];throw new TypeError("Must be between 0 and 63: "+aNumber)},b.decode=function(a){var b=65,c=90,d=97,e=122,f=48,g=57,h=43,i=47,j=26,k=52;return a>=b&&c>=a?a-b:a>=d&&e>=a?a-d+j:a>=f&&g>=a?a-f+k:a==h?62:a==i?63:-1}})},{amdefine:1}],71:[function(a,b,c){if("function"!=typeof d)var d=a("amdefine")(b,a);d(function(a,b,c){function d(a,c,e,f,g,h){var i=Math.floor((c-a)/2)+a,j=g(e,f[i],!0);return 0===j?i:j>0?c-i>1?d(i,c,e,f,g,h):h==b.LEAST_UPPER_BOUND?c<f.length?c:-1:i:i-a>1?d(a,i,e,f,g,h):h==b.LEAST_UPPER_BOUND?i:0>a?-1:a}b.GREATEST_LOWER_BOUND=1,b.LEAST_UPPER_BOUND=2,b.search=function(a,c,e,f){if(0===c.length)return-1;var g=d(-1,c.length,a,c,e,f||b.GREATEST_LOWER_BOUND);if(0>g)return-1;for(;g-1>=0&&0===e(c[g],c[g-1],!0);)--g;return g}})},{amdefine:1}],72:[function(a,b,c){if("function"!=typeof d)var d=a("amdefine")(b,a);d(function(a,b,c){function d(a,b){var c=a.generatedLine,d=b.generatedLine,e=a.generatedColumn,g=b.generatedColumn;return d>c||d==c&&g>=e||f.compareByGeneratedPositionsInflated(a,b)<=0}function e(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}var f=a("./util");e.prototype.unsortedForEach=function(a,b){this._array.forEach(a,b)},e.prototype.add=function(a){d(this._last,a)?(this._last=a,this._array.push(a)):(this._sorted=!1,this._array.push(a))},e.prototype.toArray=function(){return this._sorted||(this._array.sort(f.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},b.MappingList=e})},{"./util":77,amdefine:1}],73:[function(a,b,c){if("function"!=typeof d)var d=a("amdefine")(b,a);d(function(a,b,c){function d(a,b,c){var d=a[b];a[b]=a[c],a[c]=d}function e(a,b){return Math.round(a+Math.random()*(b-a))}function f(a,b,c,g){if(g>c){var h=e(c,g),i=c-1;d(a,h,g);for(var j=a[g],k=c;g>k;k++)b(a[k],j)<=0&&(i+=1,d(a,i,k));d(a,i+1,k);var l=i+1;f(a,b,c,l-1),f(a,b,l+1,g)}}b.quickSort=function(a,b){f(a,b,0,a.length-1)}})},{amdefine:1}],74:[function(a,b,c){if("function"!=typeof d)var d=a("amdefine")(b,a);d(function(a,b,c){function d(a){var b=a;return"string"==typeof a&&(b=JSON.parse(a.replace(/^\)\]\}'/,""))),null!=b.sections?new g(b):new e(b)}function e(a){var b=a;"string"==typeof a&&(b=JSON.parse(a.replace(/^\)\]\}'/,"")));var c=h.getArg(b,"version"),d=h.getArg(b,"sources"),e=h.getArg(b,"names",[]),f=h.getArg(b,"sourceRoot",null),g=h.getArg(b,"sourcesContent",null),i=h.getArg(b,"mappings"),k=h.getArg(b,"file",null);if(c!=this._version)throw new Error("Unsupported version: "+c);d=d.map(h.normalize),this._names=j.fromArray(e,!0),this._sources=j.fromArray(d,!0),this.sourceRoot=f,this.sourcesContent=g,this._mappings=i,this.file=k}function f(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function g(a){var b=a;"string"==typeof a&&(b=JSON.parse(a.replace(/^\)\]\}'/,"")));var c=h.getArg(b,"version"),e=h.getArg(b,"sections");if(c!=this._version)throw new Error("Unsupported version: "+c);this._sources=new j,this._names=new j;var f={line:-1,column:0};this._sections=e.map(function(a){if(a.url)throw new Error("Support for url field in sections not implemented.");var b=h.getArg(a,"offset"),c=h.getArg(b,"line"),e=h.getArg(b,"column");if(c<f.line||c===f.line&&e<f.column)throw new Error("Section offsets must be ordered and non-overlapping.");return f=b,{generatedOffset:{generatedLine:c+1,generatedColumn:e+1},consumer:new d(h.getArg(a,"map"))}})}var h=a("./util"),i=a("./binary-search"),j=a("./array-set").ArraySet,k=a("./base64-vlq"),l=a("./quick-sort").quickSort;d.fromSourceMap=function(a){return e.fromSourceMap(a)},d.prototype._version=3,d.prototype.__generatedMappings=null,Object.defineProperty(d.prototype,"_generatedMappings",{get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),d.prototype.__originalMappings=null,Object.defineProperty(d.prototype,"_originalMappings",{get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),d.prototype._charIsMappingSeparator=function(a,b){var c=a.charAt(b);return";"===c||","===c},d.prototype._parseMappings=function(a,b){throw new Error("Subclasses must implement _parseMappings")},d.GENERATED_ORDER=1,d.ORIGINAL_ORDER=2,d.GREATEST_LOWER_BOUND=1,d.LEAST_UPPER_BOUND=2,d.prototype.eachMapping=function(a,b,c){var e,f=b||null,g=c||d.GENERATED_ORDER;switch(g){case d.GENERATED_ORDER:e=this._generatedMappings;break;case d.ORIGINAL_ORDER:e=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var i=this.sourceRoot;e.map(function(a){var b=null===a.source?null:this._sources.at(a.source);return null!=b&&null!=i&&(b=h.join(i,b)),{source:b,generatedLine:a.generatedLine,generatedColumn:a.generatedColumn,originalLine:a.originalLine,originalColumn:a.originalColumn,name:null===a.name?null:this._names.at(a.name)}},this).forEach(a,f)},d.prototype.allGeneratedPositionsFor=function(a){var b=h.getArg(a,"line"),c={source:h.getArg(a,"source"),originalLine:b,originalColumn:h.getArg(a,"column",0)};if(null!=this.sourceRoot&&(c.source=h.relative(this.sourceRoot,c.source)),!this._sources.has(c.source))return[];c.source=this._sources.indexOf(c.source);var d=[],e=this._findMapping(c,this._originalMappings,"originalLine","originalColumn",h.compareByOriginalPositions,i.LEAST_UPPER_BOUND);if(e>=0){var f=this._originalMappings[e];if(void 0===a.column)for(var g=f.originalLine;f&&f.originalLine===g;)d.push({line:h.getArg(f,"generatedLine",null),column:h.getArg(f,"generatedColumn",null),lastColumn:h.getArg(f,"lastGeneratedColumn",null)}),f=this._originalMappings[++e];else for(var j=f.originalColumn;f&&f.originalLine===b&&f.originalColumn==j;)d.push({line:h.getArg(f,"generatedLine",null),column:h.getArg(f,"generatedColumn",null),lastColumn:h.getArg(f,"lastGeneratedColumn",null)}),f=this._originalMappings[++e];
+}return d},b.SourceMapConsumer=d,e.prototype=Object.create(d.prototype),e.prototype.consumer=d,e.fromSourceMap=function(a){var b=Object.create(e.prototype),c=b._names=j.fromArray(a._names.toArray(),!0),d=b._sources=j.fromArray(a._sources.toArray(),!0);b.sourceRoot=a._sourceRoot,b.sourcesContent=a._generateSourcesContent(b._sources.toArray(),b.sourceRoot),b.file=a._file;for(var g=a._mappings.toArray().slice(),i=b.__generatedMappings=[],k=b.__originalMappings=[],m=0,n=g.length;n>m;m++){var o=g[m],p=new f;p.generatedLine=o.generatedLine,p.generatedColumn=o.generatedColumn,o.source&&(p.source=d.indexOf(o.source),p.originalLine=o.originalLine,p.originalColumn=o.originalColumn,o.name&&(p.name=c.indexOf(o.name)),k.push(p)),i.push(p)}return l(b.__originalMappings,h.compareByOriginalPositions),b},e.prototype._version=3,Object.defineProperty(e.prototype,"sources",{get:function(){return this._sources.toArray().map(function(a){return null!=this.sourceRoot?h.join(this.sourceRoot,a):a},this)}}),e.prototype._parseMappings=function(a,b){for(var c,d,e,g,i,j=1,m=0,n=0,o=0,p=0,q=0,r=a.length,s=0,t={},u={},v=[],w=[];r>s;)if(";"===a.charAt(s))j++,s++,m=0;else if(","===a.charAt(s))s++;else{for(c=new f,c.generatedLine=j,g=s;r>g&&!this._charIsMappingSeparator(a,g);g++);if(d=a.slice(s,g),e=t[d])s+=d.length;else{for(e=[];g>s;)k.decode(a,s,u),i=u.value,s=u.rest,e.push(i);if(2===e.length)throw new Error("Found a source, but no line and column");if(3===e.length)throw new Error("Found a source and line, but no column");t[d]=e}c.generatedColumn=m+e[0],m=c.generatedColumn,e.length>1&&(c.source=p+e[1],p+=e[1],c.originalLine=n+e[2],n=c.originalLine,c.originalLine+=1,c.originalColumn=o+e[3],o=c.originalColumn,e.length>4&&(c.name=q+e[4],q+=e[4])),w.push(c),"number"==typeof c.originalLine&&v.push(c)}l(w,h.compareByGeneratedPositionsDeflated),this.__generatedMappings=w,l(v,h.compareByOriginalPositions),this.__originalMappings=v},e.prototype._findMapping=function(a,b,c,d,e,f){if(a[c]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+a[c]);if(a[d]<0)throw new TypeError("Column must be greater than or equal to 0, got "+a[d]);return i.search(a,b,e,f)},e.prototype.computeColumnSpans=function(){for(var a=0;a<this._generatedMappings.length;++a){var b=this._generatedMappings[a];if(a+1<this._generatedMappings.length){var c=this._generatedMappings[a+1];if(b.generatedLine===c.generatedLine){b.lastGeneratedColumn=c.generatedColumn-1;continue}}b.lastGeneratedColumn=1/0}},e.prototype.originalPositionFor=function(a){var b={generatedLine:h.getArg(a,"line"),generatedColumn:h.getArg(a,"column")},c=this._findMapping(b,this._generatedMappings,"generatedLine","generatedColumn",h.compareByGeneratedPositionsDeflated,h.getArg(a,"bias",d.GREATEST_LOWER_BOUND));if(c>=0){var e=this._generatedMappings[c];if(e.generatedLine===b.generatedLine){var f=h.getArg(e,"source",null);null!==f&&(f=this._sources.at(f),null!=this.sourceRoot&&(f=h.join(this.sourceRoot,f)));var g=h.getArg(e,"name",null);return null!==g&&(g=this._names.at(g)),{source:f,line:h.getArg(e,"originalLine",null),column:h.getArg(e,"originalColumn",null),name:g}}}return{source:null,line:null,column:null,name:null}},e.prototype.hasContentsOfAllSources=function(){return this.sourcesContent?this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(a){return null==a}):!1},e.prototype.sourceContentFor=function(a,b){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(a=h.relative(this.sourceRoot,a)),this._sources.has(a))return this.sourcesContent[this._sources.indexOf(a)];var c;if(null!=this.sourceRoot&&(c=h.urlParse(this.sourceRoot))){var d=a.replace(/^file:\/\//,"");if("file"==c.scheme&&this._sources.has(d))return this.sourcesContent[this._sources.indexOf(d)];if((!c.path||"/"==c.path)&&this._sources.has("/"+a))return this.sourcesContent[this._sources.indexOf("/"+a)]}if(b)return null;throw new Error('"'+a+'" is not in the SourceMap.')},e.prototype.generatedPositionFor=function(a){var b=h.getArg(a,"source");if(null!=this.sourceRoot&&(b=h.relative(this.sourceRoot,b)),!this._sources.has(b))return{line:null,column:null,lastColumn:null};b=this._sources.indexOf(b);var c={source:b,originalLine:h.getArg(a,"line"),originalColumn:h.getArg(a,"column")},e=this._findMapping(c,this._originalMappings,"originalLine","originalColumn",h.compareByOriginalPositions,h.getArg(a,"bias",d.GREATEST_LOWER_BOUND));if(e>=0){var f=this._originalMappings[e];if(f.source===c.source)return{line:h.getArg(f,"generatedLine",null),column:h.getArg(f,"generatedColumn",null),lastColumn:h.getArg(f,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},b.BasicSourceMapConsumer=e,g.prototype=Object.create(d.prototype),g.prototype.constructor=d,g.prototype._version=3,Object.defineProperty(g.prototype,"sources",{get:function(){for(var a=[],b=0;b<this._sections.length;b++)for(var c=0;c<this._sections[b].consumer.sources.length;c++)a.push(this._sections[b].consumer.sources[c]);return a}}),g.prototype.originalPositionFor=function(a){var b={generatedLine:h.getArg(a,"line"),generatedColumn:h.getArg(a,"column")},c=i.search(b,this._sections,function(a,b){var c=a.generatedLine-b.generatedOffset.generatedLine;return c?c:a.generatedColumn-b.generatedOffset.generatedColumn}),d=this._sections[c];return d?d.consumer.originalPositionFor({line:b.generatedLine-(d.generatedOffset.generatedLine-1),column:b.generatedColumn-(d.generatedOffset.generatedLine===b.generatedLine?d.generatedOffset.generatedColumn-1:0),bias:a.bias}):{source:null,line:null,column:null,name:null}},g.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(a){return a.consumer.hasContentsOfAllSources()})},g.prototype.sourceContentFor=function(a,b){for(var c=0;c<this._sections.length;c++){var d=this._sections[c],e=d.consumer.sourceContentFor(a,!0);if(e)return e}if(b)return null;throw new Error('"'+a+'" is not in the SourceMap.')},g.prototype.generatedPositionFor=function(a){for(var b=0;b<this._sections.length;b++){var c=this._sections[b];if(-1!==c.consumer.sources.indexOf(h.getArg(a,"source"))){var d=c.consumer.generatedPositionFor(a);if(d){var e={line:d.line+(c.generatedOffset.generatedLine-1),column:d.column+(c.generatedOffset.generatedLine===d.line?c.generatedOffset.generatedColumn-1:0)};return e}}}return{line:null,column:null}},g.prototype._parseMappings=function(a,b){this.__generatedMappings=[],this.__originalMappings=[];for(var c=0;c<this._sections.length;c++)for(var d=this._sections[c],e=d.consumer._generatedMappings,f=0;f<e.length;f++){var g=e[c],i=d.consumer._sources.at(g.source);null!==d.consumer.sourceRoot&&(i=h.join(d.consumer.sourceRoot,i)),this._sources.add(i),i=this._sources.indexOf(i);var j=d.consumer._names.at(g.name);this._names.add(j),j=this._names.indexOf(j);var k={source:i,generatedLine:g.generatedLine+(d.generatedOffset.generatedLine-1),generatedColumn:g.column+(d.generatedOffset.generatedLine===g.generatedLine)?d.generatedOffset.generatedColumn-1:0,originalLine:g.originalLine,originalColumn:g.originalColumn,name:j};this.__generatedMappings.push(k),"number"==typeof k.originalLine&&this.__originalMappings.push(k)}l(this.__generatedMappings,h.compareByGeneratedPositionsDeflated),l(this.__originalMappings,h.compareByOriginalPositions)},b.IndexedSourceMapConsumer=g})},{"./array-set":68,"./base64-vlq":69,"./binary-search":71,"./quick-sort":73,"./util":77,amdefine:1}],75:[function(a,b,c){if("function"!=typeof d)var d=a("amdefine")(b,a);d(function(a,b,c){function d(a){a||(a={}),this._file=f.getArg(a,"file",null),this._sourceRoot=f.getArg(a,"sourceRoot",null),this._skipValidation=f.getArg(a,"skipValidation",!1),this._sources=new g,this._names=new g,this._mappings=new h,this._sourcesContents=null}var e=a("./base64-vlq"),f=a("./util"),g=a("./array-set").ArraySet,h=a("./mapping-list").MappingList;d.prototype._version=3,d.fromSourceMap=function(a){var b=a.sourceRoot,c=new d({file:a.file,sourceRoot:b});return a.eachMapping(function(a){var d={generated:{line:a.generatedLine,column:a.generatedColumn}};null!=a.source&&(d.source=a.source,null!=b&&(d.source=f.relative(b,d.source)),d.original={line:a.originalLine,column:a.originalColumn},null!=a.name&&(d.name=a.name)),c.addMapping(d)}),a.sources.forEach(function(b){var d=a.sourceContentFor(b);null!=d&&c.setSourceContent(b,d)}),c},d.prototype.addMapping=function(a){var b=f.getArg(a,"generated"),c=f.getArg(a,"original",null),d=f.getArg(a,"source",null),e=f.getArg(a,"name",null);this._skipValidation||this._validateMapping(b,c,d,e),null==d||this._sources.has(d)||this._sources.add(d),null==e||this._names.has(e)||this._names.add(e),this._mappings.add({generatedLine:b.line,generatedColumn:b.column,originalLine:null!=c&&c.line,originalColumn:null!=c&&c.column,source:d,name:e})},d.prototype.setSourceContent=function(a,b){var c=a;null!=this._sourceRoot&&(c=f.relative(this._sourceRoot,c)),null!=b?(this._sourcesContents||(this._sourcesContents={}),this._sourcesContents[f.toSetString(c)]=b):this._sourcesContents&&(delete this._sourcesContents[f.toSetString(c)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},d.prototype.applySourceMap=function(a,b,c){var d=b;if(null==b){if(null==a.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');d=a.file}var e=this._sourceRoot;null!=e&&(d=f.relative(e,d));var h=new g,i=new g;this._mappings.unsortedForEach(function(b){if(b.source===d&&null!=b.originalLine){var g=a.originalPositionFor({line:b.originalLine,column:b.originalColumn});null!=g.source&&(b.source=g.source,null!=c&&(b.source=f.join(c,b.source)),null!=e&&(b.source=f.relative(e,b.source)),b.originalLine=g.line,b.originalColumn=g.column,null!=g.name&&(b.name=g.name))}var j=b.source;null==j||h.has(j)||h.add(j);var k=b.name;null==k||i.has(k)||i.add(k)},this),this._sources=h,this._names=i,a.sources.forEach(function(b){var d=a.sourceContentFor(b);null!=d&&(null!=c&&(b=f.join(c,b)),null!=e&&(b=f.relative(e,b)),this.setSourceContent(b,d))},this)},d.prototype._validateMapping=function(a,b,c,d){if((!(a&&"line"in a&&"column"in a&&a.line>0&&a.column>=0)||b||c||d)&&!(a&&"line"in a&&"column"in a&&b&&"line"in b&&"column"in b&&a.line>0&&a.column>=0&&b.line>0&&b.column>=0&&c))throw new Error("Invalid mapping: "+JSON.stringify({generated:a,source:c,original:b,name:d}))},d.prototype._serializeMappings=function(){for(var a,b=0,c=1,d=0,g=0,h=0,i=0,j="",k=this._mappings.toArray(),l=0,m=k.length;m>l;l++){if(a=k[l],a.generatedLine!==c)for(b=0;a.generatedLine!==c;)j+=";",c++;else if(l>0){if(!f.compareByGeneratedPositionsInflated(a,k[l-1]))continue;j+=","}j+=e.encode(a.generatedColumn-b),b=a.generatedColumn,null!=a.source&&(j+=e.encode(this._sources.indexOf(a.source)-i),i=this._sources.indexOf(a.source),j+=e.encode(a.originalLine-1-g),g=a.originalLine-1,j+=e.encode(a.originalColumn-d),d=a.originalColumn,null!=a.name&&(j+=e.encode(this._names.indexOf(a.name)-h),h=this._names.indexOf(a.name)))}return j},d.prototype._generateSourcesContent=function(a,b){return a.map(function(a){if(!this._sourcesContents)return null;null!=b&&(a=f.relative(b,a));var c=f.toSetString(a);return Object.prototype.hasOwnProperty.call(this._sourcesContents,c)?this._sourcesContents[c]:null},this)},d.prototype.toJSON=function(){var a={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(a.file=this._file),null!=this._sourceRoot&&(a.sourceRoot=this._sourceRoot),this._sourcesContents&&(a.sourcesContent=this._generateSourcesContent(a.sources,a.sourceRoot)),a},d.prototype.toString=function(){return JSON.stringify(this.toJSON())},b.SourceMapGenerator=d})},{"./array-set":68,"./base64-vlq":69,"./mapping-list":72,"./util":77,amdefine:1}],76:[function(a,b,c){if("function"!=typeof d)var d=a("amdefine")(b,a);d(function(a,b,c){function d(a,b,c,d,e){this.children=[],this.sourceContents={},this.line=null==a?null:a,this.column=null==b?null:b,this.source=null==c?null:c,this.name=null==e?null:e,this[i]=!0,null!=d&&this.add(d)}var e=a("./source-map-generator").SourceMapGenerator,f=a("./util"),g=/(\r?\n)/,h=10,i="$$$isSourceNode$$$";d.fromStringWithSourceMap=function(a,b,c){function e(a,b){if(null===a||void 0===a.source)h.add(b);else{var e=c?f.join(c,a.source):a.source;h.add(new d(a.originalLine,a.originalColumn,e,b,a.name))}}var h=new d,i=a.split(g),j=function(){var a=i.shift(),b=i.shift()||"";return a+b},k=1,l=0,m=null;return b.eachMapping(function(a){if(null!==m){if(!(k<a.generatedLine)){var b=i[0],c=b.substr(0,a.generatedColumn-l);return i[0]=b.substr(a.generatedColumn-l),l=a.generatedColumn,e(m,c),void(m=a)}var c="";e(m,j()),k++,l=0}for(;k<a.generatedLine;)h.add(j()),k++;if(l<a.generatedColumn){var b=i[0];h.add(b.substr(0,a.generatedColumn)),i[0]=b.substr(a.generatedColumn),l=a.generatedColumn}m=a},this),i.length>0&&(m&&e(m,j()),h.add(i.join(""))),b.sources.forEach(function(a){var d=b.sourceContentFor(a);null!=d&&(null!=c&&(a=f.join(c,a)),h.setSourceContent(a,d))}),h},d.prototype.add=function(a){if(Array.isArray(a))a.forEach(function(a){this.add(a)},this);else{if(!a[i]&&"string"!=typeof a)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+a);a&&this.children.push(a)}return this},d.prototype.prepend=function(a){if(Array.isArray(a))for(var b=a.length-1;b>=0;b--)this.prepend(a[b]);else{if(!a[i]&&"string"!=typeof a)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+a);this.children.unshift(a)}return this},d.prototype.walk=function(a){for(var b,c=0,d=this.children.length;d>c;c++)b=this.children[c],b[i]?b.walk(a):""!==b&&a(b,{source:this.source,line:this.line,column:this.column,name:this.name})},d.prototype.join=function(a){var b,c,d=this.children.length;if(d>0){for(b=[],c=0;d-1>c;c++)b.push(this.children[c]),b.push(a);b.push(this.children[c]),this.children=b}return this},d.prototype.replaceRight=function(a,b){var c=this.children[this.children.length-1];return c[i]?c.replaceRight(a,b):"string"==typeof c?this.children[this.children.length-1]=c.replace(a,b):this.children.push("".replace(a,b)),this},d.prototype.setSourceContent=function(a,b){this.sourceContents[f.toSetString(a)]=b},d.prototype.walkSourceContents=function(a){for(var b=0,c=this.children.length;c>b;b++)this.children[b][i]&&this.children[b].walkSourceContents(a);for(var d=Object.keys(this.sourceContents),b=0,c=d.length;c>b;b++)a(f.fromSetString(d[b]),this.sourceContents[d[b]])},d.prototype.toString=function(){var a="";return this.walk(function(b){a+=b}),a},d.prototype.toStringWithSourceMap=function(a){var b={code:"",line:1,column:0},c=new e(a),d=!1,f=null,g=null,i=null,j=null;return this.walk(function(a,e){b.code+=a,null!==e.source&&null!==e.line&&null!==e.column?(f===e.source&&g===e.line&&i===e.column&&j===e.name||c.addMapping({source:e.source,original:{line:e.line,column:e.column},generated:{line:b.line,column:b.column},name:e.name}),f=e.source,g=e.line,i=e.column,j=e.name,d=!0):d&&(c.addMapping({generated:{line:b.line,column:b.column}}),f=null,d=!1);for(var k=0,l=a.length;l>k;k++)a.charCodeAt(k)===h?(b.line++,b.column=0,k+1===l?(f=null,d=!1):d&&c.addMapping({source:e.source,original:{line:e.line,column:e.column},generated:{line:b.line,column:b.column},name:e.name})):b.column++}),this.walkSourceContents(function(a,b){c.setSourceContent(a,b)}),{code:b.code,map:c}},b.SourceNode=d})},{"./source-map-generator":75,"./util":77,amdefine:1}],77:[function(a,b,c){if("function"!=typeof d)var d=a("amdefine")(b,a);d(function(a,b,c){function d(a,b,c){if(b in a)return a[b];if(3===arguments.length)return c;throw new Error('"'+b+'" is a required argument.')}function e(a){var b=a.match(p);return b?{scheme:b[1],auth:b[2],host:b[3],port:b[4],path:b[5]}:null}function f(a){var b="";return a.scheme&&(b+=a.scheme+":"),b+="//",a.auth&&(b+=a.auth+"@"),a.host&&(b+=a.host),a.port&&(b+=":"+a.port),a.path&&(b+=a.path),b}function g(a){var b=a,c=e(a);if(c){if(!c.path)return a;b=c.path}for(var d,g="/"===b.charAt(0),h=b.split(/\/+/),i=0,j=h.length-1;j>=0;j--)d=h[j],"."===d?h.splice(j,1):".."===d?i++:i>0&&(""===d?(h.splice(j+1,i),i=0):(h.splice(j,2),i--));return b=h.join("/"),""===b&&(b=g?"/":"."),c?(c.path=b,f(c)):b}function h(a,b){""===a&&(a="."),""===b&&(b=".");var c=e(b),d=e(a);if(d&&(a=d.path||"/"),c&&!c.scheme)return d&&(c.scheme=d.scheme),f(c);if(c||b.match(q))return b;if(d&&!d.host&&!d.path)return d.host=b,f(d);var h="/"===b.charAt(0)?b:g(a.replace(/\/+$/,"")+"/"+b);return d?(d.path=h,f(d)):h}function i(a,b){""===a&&(a="."),a=a.replace(/\/$/,"");for(var c=0;0!==b.indexOf(a+"/");){var d=a.lastIndexOf("/");if(0>d)return b;if(a=a.slice(0,d),a.match(/^([^\/]+:\/)?\/*$/))return b;++c}return Array(c+1).join("../")+b.substr(a.length+1)}function j(a){return"$"+a}function k(a){return a.substr(1)}function l(a,b,c){var d=a.source-b.source;return 0!==d?d:(d=a.originalLine-b.originalLine,0!==d?d:(d=a.originalColumn-b.originalColumn,0!==d||c?d:(d=a.generatedColumn-b.generatedColumn,0!==d?d:(d=a.generatedLine-b.generatedLine,0!==d?d:a.name-b.name))))}function m(a,b,c){var d=a.generatedLine-b.generatedLine;return 0!==d?d:(d=a.generatedColumn-b.generatedColumn,0!==d||c?d:(d=a.source-b.source,0!==d?d:(d=a.originalLine-b.originalLine,0!==d?d:(d=a.originalColumn-b.originalColumn,0!==d?d:a.name-b.name))))}function n(a,b){return a===b?0:a>b?1:-1}function o(a,b){var c=a.generatedLine-b.generatedLine;return 0!==c?c:(c=a.generatedColumn-b.generatedColumn,0!==c?c:(c=n(a.source,b.source),0!==c?c:(c=a.originalLine-b.originalLine,0!==c?c:(c=a.originalColumn-b.originalColumn,0!==c?c:n(a.name,b.name)))))}b.getArg=d;var p=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,q=/^data:.+\,.+$/;b.urlParse=e,b.urlGenerate=f,b.normalize=g,b.join=h,b.relative=i,b.toSetString=j,b.fromSetString=k,b.compareByOriginalPositions=l,b.compareByGeneratedPositionsDeflated=m,b.compareByGeneratedPositionsInflated=o})},{amdefine:1}],78:[function(a,b,c){(function(a){function b(a){return Array.isArray?Array.isArray(a):"[object Array]"===q(a)}function d(a){return"boolean"==typeof a}function e(a){return null===a}function f(a){return null==a}function g(a){return"number"==typeof a}function h(a){return"string"==typeof a}function i(a){return"symbol"==typeof a}function j(a){return void 0===a}function k(a){return"[object RegExp]"===q(a)}function l(a){return"object"==typeof a&&null!==a}function m(a){return"[object Date]"===q(a)}function n(a){return"[object Error]"===q(a)||a instanceof Error}function o(a){return"function"==typeof a}function p(a){return null===a||"boolean"==typeof a||"number"==typeof a||"string"==typeof a||"symbol"==typeof a||"undefined"==typeof a}function q(a){return Object.prototype.toString.call(a)}c.isArray=b,c.isBoolean=d,c.isNull=e,c.isNullOrUndefined=f,c.isNumber=g,c.isString=h,c.isSymbol=i,c.isUndefined=j,c.isRegExp=k,c.isObject=l,c.isDate=m,c.isError=n,c.isFunction=o,c.isPrimitive=p,c.isBuffer=a.isBuffer}).call(this,{isBuffer:a("../../is-buffer/index.js")})},{"../../is-buffer/index.js":84}],79:[function(a,b,c){function d(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function e(a){return"function"==typeof a}function f(a){return"number"==typeof a}function g(a){return"object"==typeof a&&null!==a}function h(a){return void 0===a}b.exports=d,d.EventEmitter=d,d.prototype._events=void 0,d.prototype._maxListeners=void 0,d.defaultMaxListeners=10,d.prototype.setMaxListeners=function(a){if(!f(a)||0>a||isNaN(a))throw TypeError("n must be a positive number");return this._maxListeners=a,this},d.prototype.emit=function(a){var b,c,d,f,i,j;if(this._events||(this._events={}),"error"===a&&(!this._events.error||g(this._events.error)&&!this._events.error.length)){if(b=arguments[1],b instanceof Error)throw b;throw TypeError('Uncaught, unspecified "error" event.')}if(c=this._events[a],h(c))return!1;if(e(c))switch(arguments.length){case 1:c.call(this);break;case 2:c.call(this,arguments[1]);break;case 3:c.call(this,arguments[1],arguments[2]);break;default:f=Array.prototype.slice.call(arguments,1),c.apply(this,f)}else if(g(c))for(f=Array.prototype.slice.call(arguments,1),j=c.slice(),d=j.length,i=0;d>i;i++)j[i].apply(this,f);return!0},d.prototype.addListener=function(a,b){var c;if(!e(b))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",a,e(b.listener)?b.listener:b),this._events[a]?g(this._events[a])?this._events[a].push(b):this._events[a]=[this._events[a],b]:this._events[a]=b,g(this._events[a])&&!this._events[a].warned&&(c=h(this._maxListeners)?d.defaultMaxListeners:this._maxListeners,c&&c>0&&this._events[a].length>c&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),"function"==typeof console.trace&&console.trace())),this},d.prototype.on=d.prototype.addListener,d.prototype.once=function(a,b){function c(){this.removeListener(a,c),d||(d=!0,b.apply(this,arguments))}if(!e(b))throw TypeError("listener must be a function");var d=!1;return c.listener=b,this.on(a,c),this},d.prototype.removeListener=function(a,b){var c,d,f,h;if(!e(b))throw TypeError("listener must be a function");if(!this._events||!this._events[a])return this;if(c=this._events[a],f=c.length,d=-1,c===b||e(c.listener)&&c.listener===b)delete this._events[a],this._events.removeListener&&this.emit("removeListener",a,b);else if(g(c)){for(h=f;h-- >0;)if(c[h]===b||c[h].listener&&c[h].listener===b){d=h;break}if(0>d)return this;1===c.length?(c.length=0,delete this._events[a]):c.splice(d,1),this._events.removeListener&&this.emit("removeListener",a,b)}return this},d.prototype.removeAllListeners=function(a){var b,c;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[a]&&delete this._events[a],this;if(0===arguments.length){for(b in this._events)"removeListener"!==b&&this.removeAllListeners(b);return this.removeAllListeners("removeListener"),this._events={},this}if(c=this._events[a],e(c))this.removeListener(a,c);else if(c)for(;c.length;)this.removeListener(a,c[c.length-1]);return delete this._events[a],this},d.prototype.listeners=function(a){var b;return b=this._events&&this._events[a]?e(this._events[a])?[this._events[a]]:this._events[a].slice():[]},d.prototype.listenerCount=function(a){if(this._events){var b=this._events[a];if(e(b))return 1;if(b)return b.length}return 0},d.listenerCount=function(a,b){return a.listenerCount(b)}},{}],80:[function(a,b,c){(function(a){!function(d){var e="object"==typeof c&&c,f="object"==typeof b&&b&&b.exports==e&&b,g="object"==typeof a&&a;g.global!==g&&g.window!==g||(d=g);var h=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,i=/[\x01-\x7F]/g,j=/[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,k=/<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g,l={"­":"shy","‌":"zwnj","‍":"zwj","‎":"lrm","⁣":"ic","⁢":"it","⁡":"af","‏":"rlm","​":"ZeroWidthSpace","⁠":"NoBreak","̑":"DownBreve","⃛":"tdot","⃜":"DotDot"," ":"Tab","\n":"NewLine"," ":"puncsp"," ":"MediumSpace"," ":"thinsp"," ":"hairsp"," ":"emsp13"," ":"ensp"," ":"emsp14"," ":"emsp"," ":"numsp"," ":"nbsp","  ":"ThickSpace","‾":"oline",_:"lowbar","‐":"dash","–":"ndash","—":"mdash","―":"horbar",",":"comma",";":"semi","⁏":"bsemi",":":"colon","⩴":"Colone","!":"excl","¡":"iexcl","?":"quest","¿":"iquest",".":"period","‥":"nldr","…":"mldr","·":"middot","'":"apos","‘":"lsquo","’":"rsquo","‚":"sbquo","‹":"lsaquo","›":"rsaquo",'"':"quot","“":"ldquo","”":"rdquo","„":"bdquo","«":"laquo","»":"raquo","(":"lpar",")":"rpar","[":"lsqb","]":"rsqb","{":"lcub","}":"rcub","⌈":"lceil","⌉":"rceil","⌊":"lfloor","⌋":"rfloor","⦅":"lopar","⦆":"ropar","⦋":"lbrke","⦌":"rbrke","⦍":"lbrkslu","⦎":"rbrksld","⦏":"lbrksld","⦐":"rbrkslu","⦑":"langd","⦒":"rangd","⦓":"lparlt","⦔":"rpargt","⦕":"gtlPar","⦖":"ltrPar","⟦":"lobrk","⟧":"robrk","⟨":"lang","⟩":"rang","⟪":"Lang","⟫":"Rang","⟬":"loang","⟭":"roang","❲":"lbbrk","❳":"rbbrk","‖":"Vert","§":"sect","¶":"para","@":"commat","*":"ast","/":"sol",undefined:null,"&":"amp","#":"num","%":"percnt","‰":"permil","‱":"pertenk","†":"dagger","‡":"Dagger","•":"bull","⁃":"hybull","′":"prime","″":"Prime","‴":"tprime","⁗":"qprime","‵":"bprime","⁁":"caret","`":"grave","´":"acute","˜":"tilde","^":"Hat","¯":"macr","˘":"breve","˙":"dot","¨":"die","˚":"ring","˝":"dblac","¸":"cedil","˛":"ogon","ˆ":"circ","ˇ":"caron","°":"deg","©":"copy","®":"reg","℗":"copysr","℘":"wp","℞":"rx","℧":"mho","℩":"iiota","←":"larr","↚":"nlarr","→":"rarr","↛":"nrarr","↑":"uarr","↓":"darr","↔":"harr","↮":"nharr","↕":"varr","↖":"nwarr","↗":"nearr","↘":"searr","↙":"swarr","↝":"rarrw","↝̸":"nrarrw","↞":"Larr","↟":"Uarr","↠":"Rarr","↡":"Darr","↢":"larrtl","↣":"rarrtl","↤":"mapstoleft","↥":"mapstoup","↦":"map","↧":"mapstodown","↩":"larrhk","↪":"rarrhk","↫":"larrlp","↬":"rarrlp","↭":"harrw","↰":"lsh","↱":"rsh","↲":"ldsh","↳":"rdsh","↵":"crarr","↶":"cularr","↷":"curarr","↺":"olarr","↻":"orarr","↼":"lharu","↽":"lhard","↾":"uharr","↿":"uharl","⇀":"rharu","⇁":"rhard","⇂":"dharr","⇃":"dharl","⇄":"rlarr","⇅":"udarr","⇆":"lrarr","⇇":"llarr","⇈":"uuarr","⇉":"rrarr","⇊":"ddarr","⇋":"lrhar","⇌":"rlhar","⇐":"lArr","⇍":"nlArr","⇑":"uArr","⇒":"rArr","⇏":"nrArr","⇓":"dArr","⇔":"iff","⇎":"nhArr","⇕":"vArr","⇖":"nwArr","⇗":"neArr","⇘":"seArr","⇙":"swArr","⇚":"lAarr","⇛":"rAarr","⇝":"zigrarr","⇤":"larrb","⇥":"rarrb","⇵":"duarr","⇽":"loarr","⇾":"roarr","⇿":"hoarr","∀":"forall","∁":"comp","∂":"part","∂̸":"npart","∃":"exist","∄":"nexist","∅":"empty","∇":"Del","∈":"in","∉":"notin","∋":"ni","∌":"notni","϶":"bepsi","∏":"prod","∐":"coprod","∑":"sum","+":"plus","±":"pm","÷":"div","×":"times","<":"lt","≮":"nlt","<⃒":"nvlt","=":"equals","≠":"ne","=⃥":"bne","⩵":"Equal",">":"gt","≯":"ngt",">⃒":"nvgt","¬":"not","|":"vert","¦":"brvbar","−":"minus","∓":"mp","∔":"plusdo","⁄":"frasl","∖":"setmn","∗":"lowast","∘":"compfn","√":"Sqrt","∝":"prop","∞":"infin","∟":"angrt","∠":"ang","∠⃒":"nang","∡":"angmsd","∢":"angsph","∣":"mid","∤":"nmid","∥":"par","∦":"npar","∧":"and","∨":"or","∩":"cap","∩︀":"caps","∪":"cup","∪︀":"cups","∫":"int","∬":"Int","∭":"tint","⨌":"qint","∮":"oint","∯":"Conint","∰":"Cconint","∱":"cwint","∲":"cwconint","∳":"awconint","∴":"there4","∵":"becaus","∶":"ratio","∷":"Colon","∸":"minusd","∺":"mDDot","∻":"homtht","∼":"sim","≁":"nsim","∼⃒":"nvsim","∽":"bsim","∽̱":"race","∾":"ac","∾̳":"acE","∿":"acd","≀":"wr","≂":"esim","≂̸":"nesim","≃":"sime","≄":"nsime","≅":"cong","≇":"ncong","≆":"simne","≈":"ap","≉":"nap","≊":"ape","≋":"apid","≋̸":"napid","≌":"bcong","≍":"CupCap","≭":"NotCupCap","≍⃒":"nvap","≎":"bump","≎̸":"nbump","≏":"bumpe","≏̸":"nbumpe","≐":"doteq","≐̸":"nedot","≑":"eDot","≒":"efDot","≓":"erDot","≔":"colone","≕":"ecolon","≖":"ecir","≗":"cire","≙":"wedgeq","≚":"veeeq","≜":"trie","≟":"equest","≡":"equiv","≢":"nequiv","≡⃥":"bnequiv","≤":"le","≰":"nle","≤⃒":"nvle","≥":"ge","≱":"nge","≥⃒":"nvge","≦":"lE","≦̸":"nlE","≧":"gE","≧̸":"ngE","≨︀":"lvnE","≨":"lnE","≩":"gnE","≩︀":"gvnE","≪":"ll","≪̸":"nLtv","≪⃒":"nLt","≫":"gg","≫̸":"nGtv","≫⃒":"nGt","≬":"twixt","≲":"lsim","≴":"nlsim","≳":"gsim","≵":"ngsim","≶":"lg","≸":"ntlg","≷":"gl","≹":"ntgl","≺":"pr","⊀":"npr","≻":"sc","⊁":"nsc","≼":"prcue","⋠":"nprcue","≽":"sccue","⋡":"nsccue","≾":"prsim","≿":"scsim","≿̸":"NotSucceedsTilde","⊂":"sub","⊄":"nsub","⊂⃒":"vnsub","⊃":"sup","⊅":"nsup","⊃⃒":"vnsup","⊆":"sube","⊈":"nsube","⊇":"supe","⊉":"nsupe","⊊︀":"vsubne","⊊":"subne","⊋︀":"vsupne","⊋":"supne","⊍":"cupdot","⊎":"uplus","⊏":"sqsub","⊏̸":"NotSquareSubset","⊐":"sqsup","⊐̸":"NotSquareSuperset","⊑":"sqsube","⋢":"nsqsube","⊒":"sqsupe","⋣":"nsqsupe","⊓":"sqcap","⊓︀":"sqcaps","⊔":"sqcup","⊔︀":"sqcups","⊕":"oplus","⊖":"ominus","⊗":"otimes","⊘":"osol","⊙":"odot","⊚":"ocir","⊛":"oast","⊝":"odash","⊞":"plusb","⊟":"minusb","⊠":"timesb","⊡":"sdotb","⊢":"vdash","⊬":"nvdash","⊣":"dashv","⊤":"top","⊥":"bot","⊧":"models","⊨":"vDash","⊭":"nvDash","⊩":"Vdash","⊮":"nVdash","⊪":"Vvdash","⊫":"VDash","⊯":"nVDash","⊰":"prurel","⊲":"vltri","⋪":"nltri","⊳":"vrtri","⋫":"nrtri","⊴":"ltrie","⋬":"nltrie","⊴⃒":"nvltrie","⊵":"rtrie","⋭":"nrtrie","⊵⃒":"nvrtrie","⊶":"origof","⊷":"imof","⊸":"mumap","⊹":"hercon","⊺":"intcal","⊻":"veebar","⊽":"barvee","⊾":"angrtvb","⊿":"lrtri","⋀":"Wedge","⋁":"Vee","⋂":"xcap","⋃":"xcup","⋄":"diam","⋅":"sdot","⋆":"Star","⋇":"divonx","⋈":"bowtie","⋉":"ltimes","⋊":"rtimes","⋋":"lthree","⋌":"rthree","⋍":"bsime","⋎":"cuvee","⋏":"cuwed","⋐":"Sub","⋑":"Sup","⋒":"Cap","⋓":"Cup","⋔":"fork","⋕":"epar","⋖":"ltdot","⋗":"gtdot","⋘":"Ll","⋘̸":"nLl","⋙":"Gg","⋙̸":"nGg","⋚︀":"lesg","⋚":"leg","⋛":"gel","⋛︀":"gesl","⋞":"cuepr","⋟":"cuesc","⋦":"lnsim","⋧":"gnsim","⋨":"prnsim","⋩":"scnsim","⋮":"vellip","⋯":"ctdot","⋰":"utdot","⋱":"dtdot","⋲":"disin","⋳":"isinsv","⋴":"isins","⋵":"isindot",
+"⋵̸":"notindot","⋶":"notinvc","⋷":"notinvb","⋹":"isinE","⋹̸":"notinE","⋺":"nisd","⋻":"xnis","⋼":"nis","⋽":"notnivc","⋾":"notnivb","⌅":"barwed","⌆":"Barwed","⌌":"drcrop","⌍":"dlcrop","⌎":"urcrop","⌏":"ulcrop","⌐":"bnot","⌒":"profline","⌓":"profsurf","⌕":"telrec","⌖":"target","⌜":"ulcorn","⌝":"urcorn","⌞":"dlcorn","⌟":"drcorn","⌢":"frown","⌣":"smile","⌭":"cylcty","⌮":"profalar","⌶":"topbot","⌽":"ovbar","⌿":"solbar","⍼":"angzarr","⎰":"lmoust","⎱":"rmoust","⎴":"tbrk","⎵":"bbrk","⎶":"bbrktbrk","⏜":"OverParenthesis","⏝":"UnderParenthesis","⏞":"OverBrace","⏟":"UnderBrace","⏢":"trpezium","⏧":"elinters","␣":"blank","─":"boxh","│":"boxv","┌":"boxdr","┐":"boxdl","└":"boxur","┘":"boxul","├":"boxvr","┤":"boxvl","┬":"boxhd","┴":"boxhu","┼":"boxvh","═":"boxH","║":"boxV","╒":"boxdR","╓":"boxDr","╔":"boxDR","╕":"boxdL","╖":"boxDl","╗":"boxDL","╘":"boxuR","╙":"boxUr","╚":"boxUR","╛":"boxuL","╜":"boxUl","╝":"boxUL","╞":"boxvR","╟":"boxVr","╠":"boxVR","╡":"boxvL","╢":"boxVl","╣":"boxVL","╤":"boxHd","╥":"boxhD","╦":"boxHD","╧":"boxHu","╨":"boxhU","╩":"boxHU","╪":"boxvH","╫":"boxVh","╬":"boxVH","▀":"uhblk","▄":"lhblk","█":"block","░":"blk14","▒":"blk12","▓":"blk34","□":"squ","▪":"squf","▫":"EmptyVerySmallSquare","▭":"rect","▮":"marker","▱":"fltns","△":"xutri","▴":"utrif","▵":"utri","▸":"rtrif","▹":"rtri","▽":"xdtri","▾":"dtrif","▿":"dtri","◂":"ltrif","◃":"ltri","◊":"loz","○":"cir","◬":"tridot","◯":"xcirc","◸":"ultri","◹":"urtri","◺":"lltri","◻":"EmptySmallSquare","◼":"FilledSmallSquare","★":"starf","☆":"star","☎":"phone","♀":"female","♂":"male","♠":"spades","♣":"clubs","♥":"hearts","♦":"diams","♪":"sung","✓":"check","✗":"cross","✠":"malt","✶":"sext","❘":"VerticalSeparator","⟈":"bsolhsub","⟉":"suphsol","⟵":"xlarr","⟶":"xrarr","⟷":"xharr","⟸":"xlArr","⟹":"xrArr","⟺":"xhArr","⟼":"xmap","⟿":"dzigrarr","⤂":"nvlArr","⤃":"nvrArr","⤄":"nvHarr","⤅":"Map","⤌":"lbarr","⤍":"rbarr","⤎":"lBarr","⤏":"rBarr","⤐":"RBarr","⤑":"DDotrahd","⤒":"UpArrowBar","⤓":"DownArrowBar","⤖":"Rarrtl","⤙":"latail","⤚":"ratail","⤛":"lAtail","⤜":"rAtail","⤝":"larrfs","⤞":"rarrfs","⤟":"larrbfs","⤠":"rarrbfs","⤣":"nwarhk","⤤":"nearhk","⤥":"searhk","⤦":"swarhk","⤧":"nwnear","⤨":"toea","⤩":"tosa","⤪":"swnwar","⤳":"rarrc","⤳̸":"nrarrc","⤵":"cudarrr","⤶":"ldca","⤷":"rdca","⤸":"cudarrl","⤹":"larrpl","⤼":"curarrm","⤽":"cularrp","⥅":"rarrpl","⥈":"harrcir","⥉":"Uarrocir","⥊":"lurdshar","⥋":"ldrushar","⥎":"LeftRightVector","⥏":"RightUpDownVector","⥐":"DownLeftRightVector","⥑":"LeftUpDownVector","⥒":"LeftVectorBar","⥓":"RightVectorBar","⥔":"RightUpVectorBar","⥕":"RightDownVectorBar","⥖":"DownLeftVectorBar","⥗":"DownRightVectorBar","⥘":"LeftUpVectorBar","⥙":"LeftDownVectorBar","⥚":"LeftTeeVector","⥛":"RightTeeVector","⥜":"RightUpTeeVector","⥝":"RightDownTeeVector","⥞":"DownLeftTeeVector","⥟":"DownRightTeeVector","⥠":"LeftUpTeeVector","⥡":"LeftDownTeeVector","⥢":"lHar","⥣":"uHar","⥤":"rHar","⥥":"dHar","⥦":"luruhar","⥧":"ldrdhar","⥨":"ruluhar","⥩":"rdldhar","⥪":"lharul","⥫":"llhard","⥬":"rharul","⥭":"lrhard","⥮":"udhar","⥯":"duhar","⥰":"RoundImplies","⥱":"erarr","⥲":"simrarr","⥳":"larrsim","⥴":"rarrsim","⥵":"rarrap","⥶":"ltlarr","⥸":"gtrarr","⥹":"subrarr","⥻":"suplarr","⥼":"lfisht","⥽":"rfisht","⥾":"ufisht","⥿":"dfisht","⦚":"vzigzag","⦜":"vangrt","⦝":"angrtvbd","⦤":"ange","⦥":"range","⦦":"dwangle","⦧":"uwangle","⦨":"angmsdaa","⦩":"angmsdab","⦪":"angmsdac","⦫":"angmsdad","⦬":"angmsdae","⦭":"angmsdaf","⦮":"angmsdag","⦯":"angmsdah","⦰":"bemptyv","⦱":"demptyv","⦲":"cemptyv","⦳":"raemptyv","⦴":"laemptyv","⦵":"ohbar","⦶":"omid","⦷":"opar","⦹":"operp","⦻":"olcross","⦼":"odsold","⦾":"olcir","⦿":"ofcir","⧀":"olt","⧁":"ogt","⧂":"cirscir","⧃":"cirE","⧄":"solb","⧅":"bsolb","⧉":"boxbox","⧍":"trisb","⧎":"rtriltri","⧏":"LeftTriangleBar","⧏̸":"NotLeftTriangleBar","⧐":"RightTriangleBar","⧐̸":"NotRightTriangleBar","⧜":"iinfin","⧝":"infintie","⧞":"nvinfin","⧣":"eparsl","⧤":"smeparsl","⧥":"eqvparsl","⧫":"lozf","⧴":"RuleDelayed","⧶":"dsol","⨀":"xodot","⨁":"xoplus","⨂":"xotime","⨄":"xuplus","⨆":"xsqcup","⨍":"fpartint","⨐":"cirfnint","⨑":"awint","⨒":"rppolint","⨓":"scpolint","⨔":"npolint","⨕":"pointint","⨖":"quatint","⨗":"intlarhk","⨢":"pluscir","⨣":"plusacir","⨤":"simplus","⨥":"plusdu","⨦":"plussim","⨧":"plustwo","⨩":"mcomma","⨪":"minusdu","⨭":"loplus","⨮":"roplus","⨯":"Cross","⨰":"timesd","⨱":"timesbar","⨳":"smashp","⨴":"lotimes","⨵":"rotimes","⨶":"otimesas","⨷":"Otimes","⨸":"odiv","⨹":"triplus","⨺":"triminus","⨻":"tritime","⨼":"iprod","⨿":"amalg","⩀":"capdot","⩂":"ncup","⩃":"ncap","⩄":"capand","⩅":"cupor","⩆":"cupcap","⩇":"capcup","⩈":"cupbrcap","⩉":"capbrcup","⩊":"cupcup","⩋":"capcap","⩌":"ccups","⩍":"ccaps","⩐":"ccupssm","⩓":"And","⩔":"Or","⩕":"andand","⩖":"oror","⩗":"orslope","⩘":"andslope","⩚":"andv","⩛":"orv","⩜":"andd","⩝":"ord","⩟":"wedbar","⩦":"sdote","⩪":"simdot","⩭":"congdot","⩭̸":"ncongdot","⩮":"easter","⩯":"apacir","⩰":"apE","⩰̸":"napE","⩱":"eplus","⩲":"pluse","⩳":"Esim","⩷":"eDDot","⩸":"equivDD","⩹":"ltcir","⩺":"gtcir","⩻":"ltquest","⩼":"gtquest","⩽":"les","⩽̸":"nles","⩾":"ges","⩾̸":"nges","⩿":"lesdot","⪀":"gesdot","⪁":"lesdoto","⪂":"gesdoto","⪃":"lesdotor","⪄":"gesdotol","⪅":"lap","⪆":"gap","⪇":"lne","⪈":"gne","⪉":"lnap","⪊":"gnap","⪋":"lEg","⪌":"gEl","⪍":"lsime","⪎":"gsime","⪏":"lsimg","⪐":"gsiml","⪑":"lgE","⪒":"glE","⪓":"lesges","⪔":"gesles","⪕":"els","⪖":"egs","⪗":"elsdot","⪘":"egsdot","⪙":"el","⪚":"eg","⪝":"siml","⪞":"simg","⪟":"simlE","⪠":"simgE","⪡":"LessLess","⪡̸":"NotNestedLessLess","⪢":"GreaterGreater","⪢̸":"NotNestedGreaterGreater","⪤":"glj","⪥":"gla","⪦":"ltcc","⪧":"gtcc","⪨":"lescc","⪩":"gescc","⪪":"smt","⪫":"lat","⪬":"smte","⪬︀":"smtes","⪭":"late","⪭︀":"lates","⪮":"bumpE","⪯":"pre","⪯̸":"npre","⪰":"sce","⪰̸":"nsce","⪳":"prE","⪴":"scE","⪵":"prnE","⪶":"scnE","⪷":"prap","⪸":"scap","⪹":"prnap","⪺":"scnap","⪻":"Pr","⪼":"Sc","⪽":"subdot","⪾":"supdot","⪿":"subplus","⫀":"supplus","⫁":"submult","⫂":"supmult","⫃":"subedot","⫄":"supedot","⫅":"subE","⫅̸":"nsubE","⫆":"supE","⫆̸":"nsupE","⫇":"subsim","⫈":"supsim","⫋︀":"vsubnE","⫋":"subnE","⫌︀":"vsupnE","⫌":"supnE","⫏":"csub","⫐":"csup","⫑":"csube","⫒":"csupe","⫓":"subsup","⫔":"supsub","⫕":"subsub","⫖":"supsup","⫗":"suphsub","⫘":"supdsub","⫙":"forkv","⫚":"topfork","⫛":"mlcp","⫤":"Dashv","⫦":"Vdashl","⫧":"Barv","⫨":"vBar","⫩":"vBarv","⫫":"Vbar","⫬":"Not","⫭":"bNot","⫮":"rnmid","⫯":"cirmid","⫰":"midcir","⫱":"topcir","⫲":"nhpar","⫳":"parsim","⫽":"parsl","⫽⃥":"nparsl","♭":"flat","♮":"natur","♯":"sharp","¤":"curren","¢":"cent",$:"dollar","£":"pound","¥":"yen","€":"euro","¹":"sup1","½":"half","⅓":"frac13","¼":"frac14","⅕":"frac15","⅙":"frac16","⅛":"frac18","²":"sup2","⅔":"frac23","⅖":"frac25","³":"sup3","¾":"frac34","⅗":"frac35","⅜":"frac38","⅘":"frac45","⅚":"frac56","⅝":"frac58","⅞":"frac78","𝒶":"ascr","𝕒":"aopf","𝔞":"afr","𝔸":"Aopf","𝔄":"Afr","𝒜":"Ascr","ª":"ordf","á":"aacute","Á":"Aacute","à":"agrave","À":"Agrave","ă":"abreve","Ă":"Abreve","â":"acirc","Â":"Acirc","å":"aring","Å":"angst","ä":"auml","Ä":"Auml","ã":"atilde","Ã":"Atilde","ą":"aogon","Ą":"Aogon","ā":"amacr","Ā":"Amacr","æ":"aelig","Æ":"AElig","𝒷":"bscr","𝕓":"bopf","𝔟":"bfr","𝔹":"Bopf","ℬ":"Bscr","𝔅":"Bfr","𝔠":"cfr","𝒸":"cscr","𝕔":"copf","ℭ":"Cfr","𝒞":"Cscr","ℂ":"Copf","ć":"cacute","Ć":"Cacute","ĉ":"ccirc","Ĉ":"Ccirc","č":"ccaron","Č":"Ccaron","ċ":"cdot","Ċ":"Cdot","ç":"ccedil","Ç":"Ccedil","℅":"incare","𝔡":"dfr","ⅆ":"dd","𝕕":"dopf","𝒹":"dscr","𝒟":"Dscr","𝔇":"Dfr","ⅅ":"DD","𝔻":"Dopf","ď":"dcaron","Ď":"Dcaron","đ":"dstrok","Đ":"Dstrok","ð":"eth","Ð":"ETH","ⅇ":"ee","ℯ":"escr","𝔢":"efr","𝕖":"eopf","ℰ":"Escr","𝔈":"Efr","𝔼":"Eopf","é":"eacute","É":"Eacute","è":"egrave","È":"Egrave","ê":"ecirc","Ê":"Ecirc","ě":"ecaron","Ě":"Ecaron","ë":"euml","Ë":"Euml","ė":"edot","Ė":"Edot","ę":"eogon","Ę":"Eogon","ē":"emacr","Ē":"Emacr","𝔣":"ffr","𝕗":"fopf","𝒻":"fscr","𝔉":"Ffr","𝔽":"Fopf","ℱ":"Fscr","ff":"fflig","ffi":"ffilig","ffl":"ffllig","fi":"filig",fj:"fjlig","fl":"fllig","ƒ":"fnof","ℊ":"gscr","𝕘":"gopf","𝔤":"gfr","𝒢":"Gscr","𝔾":"Gopf","𝔊":"Gfr","ǵ":"gacute","ğ":"gbreve","Ğ":"Gbreve","ĝ":"gcirc","Ĝ":"Gcirc","ġ":"gdot","Ġ":"Gdot","Ģ":"Gcedil","𝔥":"hfr","ℎ":"planckh","𝒽":"hscr","𝕙":"hopf","ℋ":"Hscr","ℌ":"Hfr","ℍ":"Hopf","ĥ":"hcirc","Ĥ":"Hcirc","ℏ":"hbar","ħ":"hstrok","Ħ":"Hstrok","𝕚":"iopf","𝔦":"ifr","𝒾":"iscr","ⅈ":"ii","𝕀":"Iopf","ℐ":"Iscr","ℑ":"Im","í":"iacute","Í":"Iacute","ì":"igrave","Ì":"Igrave","î":"icirc","Î":"Icirc","ï":"iuml","Ï":"Iuml","ĩ":"itilde","Ĩ":"Itilde","İ":"Idot","į":"iogon","Į":"Iogon","ī":"imacr","Ī":"Imacr","ij":"ijlig","IJ":"IJlig","ı":"imath","𝒿":"jscr","𝕛":"jopf","𝔧":"jfr","𝒥":"Jscr","𝔍":"Jfr","𝕁":"Jopf","ĵ":"jcirc","Ĵ":"Jcirc","ȷ":"jmath","𝕜":"kopf","𝓀":"kscr","𝔨":"kfr","𝒦":"Kscr","𝕂":"Kopf","𝔎":"Kfr","ķ":"kcedil","Ķ":"Kcedil","𝔩":"lfr","𝓁":"lscr","ℓ":"ell","𝕝":"lopf","ℒ":"Lscr","𝔏":"Lfr","𝕃":"Lopf","ĺ":"lacute","Ĺ":"Lacute","ľ":"lcaron","Ľ":"Lcaron","ļ":"lcedil","Ļ":"Lcedil","ł":"lstrok","Ł":"Lstrok","ŀ":"lmidot","Ŀ":"Lmidot","𝔪":"mfr","𝕞":"mopf","𝓂":"mscr","𝔐":"Mfr","𝕄":"Mopf","ℳ":"Mscr","𝔫":"nfr","𝕟":"nopf","𝓃":"nscr","ℕ":"Nopf","𝒩":"Nscr","𝔑":"Nfr","ń":"nacute","Ń":"Nacute","ň":"ncaron","Ň":"Ncaron","ñ":"ntilde","Ñ":"Ntilde","ņ":"ncedil","Ņ":"Ncedil","№":"numero","ŋ":"eng","Ŋ":"ENG","𝕠":"oopf","𝔬":"ofr","ℴ":"oscr","𝒪":"Oscr","𝔒":"Ofr","𝕆":"Oopf","º":"ordm","ó":"oacute","Ó":"Oacute","ò":"ograve","Ò":"Ograve","ô":"ocirc","Ô":"Ocirc","ö":"ouml","Ö":"Ouml","ő":"odblac","Ő":"Odblac","õ":"otilde","Õ":"Otilde","ø":"oslash","Ø":"Oslash","ō":"omacr","Ō":"Omacr","œ":"oelig","Œ":"OElig","𝔭":"pfr","𝓅":"pscr","𝕡":"popf","ℙ":"Popf","𝔓":"Pfr","𝒫":"Pscr","𝕢":"qopf","𝔮":"qfr","𝓆":"qscr","𝒬":"Qscr","𝔔":"Qfr","ℚ":"Qopf","ĸ":"kgreen","𝔯":"rfr","𝕣":"ropf","𝓇":"rscr","ℛ":"Rscr","ℜ":"Re","ℝ":"Ropf","ŕ":"racute","Ŕ":"Racute","ř":"rcaron","Ř":"Rcaron","ŗ":"rcedil","Ŗ":"Rcedil","𝕤":"sopf","𝓈":"sscr","𝔰":"sfr","𝕊":"Sopf","𝔖":"Sfr","𝒮":"Sscr","Ⓢ":"oS","ś":"sacute","Ś":"Sacute","ŝ":"scirc","Ŝ":"Scirc","š":"scaron","Š":"Scaron","ş":"scedil","Ş":"Scedil","ß":"szlig","𝔱":"tfr","𝓉":"tscr","𝕥":"topf","𝒯":"Tscr","𝔗":"Tfr","𝕋":"Topf","ť":"tcaron","Ť":"Tcaron","ţ":"tcedil","Ţ":"Tcedil","™":"trade","ŧ":"tstrok","Ŧ":"Tstrok","𝓊":"uscr","𝕦":"uopf","𝔲":"ufr","𝕌":"Uopf","𝔘":"Ufr","𝒰":"Uscr","ú":"uacute","Ú":"Uacute","ù":"ugrave","Ù":"Ugrave","ŭ":"ubreve","Ŭ":"Ubreve","û":"ucirc","Û":"Ucirc","ů":"uring","Ů":"Uring","ü":"uuml","Ü":"Uuml","ű":"udblac","Ű":"Udblac","ũ":"utilde","Ũ":"Utilde","ų":"uogon","Ų":"Uogon","ū":"umacr","Ū":"Umacr","𝔳":"vfr","𝕧":"vopf","𝓋":"vscr","𝔙":"Vfr","𝕍":"Vopf","𝒱":"Vscr","𝕨":"wopf","𝓌":"wscr","𝔴":"wfr","𝒲":"Wscr","𝕎":"Wopf","𝔚":"Wfr","ŵ":"wcirc","Ŵ":"Wcirc","𝔵":"xfr","𝓍":"xscr","𝕩":"xopf","𝕏":"Xopf","𝔛":"Xfr","𝒳":"Xscr","𝔶":"yfr","𝓎":"yscr","𝕪":"yopf","𝒴":"Yscr","𝔜":"Yfr","𝕐":"Yopf","ý":"yacute","Ý":"Yacute","ŷ":"ycirc","Ŷ":"Ycirc","ÿ":"yuml","Ÿ":"Yuml","𝓏":"zscr","𝔷":"zfr","𝕫":"zopf","ℨ":"Zfr","ℤ":"Zopf","𝒵":"Zscr","ź":"zacute","Ź":"Zacute","ž":"zcaron","Ž":"Zcaron","ż":"zdot","Ż":"Zdot","Ƶ":"imped","þ":"thorn","Þ":"THORN","ʼn":"napos","α":"alpha","Α":"Alpha","β":"beta","Β":"Beta","γ":"gamma","Γ":"Gamma","δ":"delta","Δ":"Delta","ε":"epsi","ϵ":"epsiv","Ε":"Epsilon","ϝ":"gammad","Ϝ":"Gammad","ζ":"zeta","Ζ":"Zeta","η":"eta","Η":"Eta","θ":"theta","ϑ":"thetav","Θ":"Theta","ι":"iota","Ι":"Iota","κ":"kappa","ϰ":"kappav","Κ":"Kappa","λ":"lambda","Λ":"Lambda","μ":"mu","µ":"micro","Μ":"Mu","ν":"nu","Ν":"Nu","ξ":"xi","Ξ":"Xi","ο":"omicron","Ο":"Omicron","π":"pi","ϖ":"piv","Π":"Pi","ρ":"rho","ϱ":"rhov","Ρ":"Rho","σ":"sigma","Σ":"Sigma","ς":"sigmaf","τ":"tau","Τ":"Tau","υ":"upsi","Υ":"Upsilon","ϒ":"Upsi","φ":"phi","ϕ":"phiv","Φ":"Phi","χ":"chi","Χ":"Chi","ψ":"psi","Ψ":"Psi","ω":"omega","Ω":"ohm","а":"acy","А":"Acy","б":"bcy","Б":"Bcy","в":"vcy","В":"Vcy","г":"gcy","Г":"Gcy","ѓ":"gjcy","Ѓ":"GJcy","д":"dcy","Д":"Dcy","ђ":"djcy","Ђ":"DJcy","е":"iecy","Е":"IEcy","ё":"iocy","Ё":"IOcy","є":"jukcy","Є":"Jukcy","ж":"zhcy","Ж":"ZHcy","з":"zcy","З":"Zcy","ѕ":"dscy","Ѕ":"DScy","и":"icy","И":"Icy","і":"iukcy","І":"Iukcy","ї":"yicy","Ї":"YIcy","й":"jcy","Й":"Jcy","ј":"jsercy","Ј":"Jsercy","к":"kcy","К":"Kcy","ќ":"kjcy","Ќ":"KJcy","л":"lcy","Л":"Lcy","љ":"ljcy","Љ":"LJcy","м":"mcy","М":"Mcy","н":"ncy","Н":"Ncy","њ":"njcy","Њ":"NJcy","о":"ocy","О":"Ocy","п":"pcy","П":"Pcy","р":"rcy","Р":"Rcy","с":"scy","С":"Scy","т":"tcy","Т":"Tcy","ћ":"tshcy","Ћ":"TSHcy","у":"ucy","У":"Ucy","ў":"ubrcy","Ў":"Ubrcy","ф":"fcy","Ф":"Fcy","х":"khcy","Х":"KHcy","ц":"tscy","Ц":"TScy","ч":"chcy","Ч":"CHcy","џ":"dzcy","Џ":"DZcy","ш":"shcy","Ш":"SHcy","щ":"shchcy","Щ":"SHCHcy","ъ":"hardcy","Ъ":"HARDcy","ы":"ycy","Ы":"Ycy","ь":"softcy","Ь":"SOFTcy","э":"ecy","Э":"Ecy","ю":"yucy","Ю":"YUcy","я":"yacy","Я":"YAcy","ℵ":"aleph","ℶ":"beth","ℷ":"gimel","ℸ":"daleth"},m=/["&'<>`]/g,n={'"':"&quot;","&":"&amp;","'":"&#x27;","<":"&lt;",">":"&gt;","`":"&#x60;"},o=/&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/,p=/[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,q=/&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)([=a-zA-Z0-9])?/g,r={aacute:"á",Aacute:"Á",abreve:"ă",Abreve:"Ă",ac:"∾",acd:"∿",acE:"∾̳",acirc:"â",Acirc:"Â",acute:"´",acy:"а",Acy:"А",aelig:"æ",AElig:"Æ",af:"⁡",afr:"𝔞",Afr:"𝔄",agrave:"à",Agrave:"À",alefsym:"ℵ",aleph:"ℵ",alpha:"α",Alpha:"Α",amacr:"ā",Amacr:"Ā",amalg:"⨿",amp:"&",AMP:"&",and:"∧",And:"⩓",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",Aogon:"Ą",aopf:"𝕒",Aopf:"𝔸",ap:"≈",apacir:"⩯",ape:"≊",apE:"⩰",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",aring:"å",Aring:"Å",ascr:"𝒶",Ascr:"𝒜",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",barwed:"⌅",Barwed:"⌆",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",Bcy:"Б",bdquo:"„",becaus:"∵",because:"∵",Because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",beta:"β",Beta:"Β",beth:"ℶ",between:"≬",bfr:"𝔟",Bfr:"𝔅",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bNot:"⫭",bopf:"𝕓",Bopf:"𝔹",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxdl:"┐",boxdL:"╕",boxDl:"╖",boxDL:"╗",boxdr:"┌",boxdR:"╒",boxDr:"╓",boxDR:"╔",boxh:"─",boxH:"═",boxhd:"┬",boxhD:"╥",boxHd:"╤",boxHD:"╦",boxhu:"┴",boxhU:"╨",boxHu:"╧",boxHU:"╩",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxuL:"╛",boxUl:"╜",boxUL:"╝",boxur:"└",boxuR:"╘",boxUr:"╙",boxUR:"╚",boxv:"│",boxV:"║",boxvh:"┼",boxvH:"╪",boxVh:"╫",boxVH:"╬",boxvl:"┤",boxvL:"╡",boxVl:"╢",boxVL:"╣",boxvr:"├",boxvR:"╞",boxVr:"╟",boxVR:"╠",bprime:"‵",breve:"˘",Breve:"˘",brvbar:"¦",bscr:"𝒷",Bscr:"ℬ",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpe:"≏",bumpE:"⪮",bumpeq:"≏",Bumpeq:"≎",cacute:"ć",Cacute:"Ć",cap:"∩",Cap:"⋒",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",ccaron:"č",Ccaron:"Č",ccedil:"ç",Ccedil:"Ç",ccirc:"ĉ",Ccirc:"Ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",Cdot:"Ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",CenterDot:"·",cfr:"𝔠",Cfr:"ℭ",chcy:"ч",CHcy:"Ч",check:"✓",checkmark:"✓",chi:"χ",Chi:"Χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cire:"≗",cirE:"⧃",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",colon:":",Colon:"∷",colone:"≔",Colone:"⩴",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",conint:"∮",Conint:"∯",ContourIntegral:"∮",copf:"𝕔",Copf:"ℂ",coprod:"∐",Coproduct:"∐",copy:"©",COPY:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",cross:"✗",Cross:"⨯",cscr:"𝒸",Cscr:"𝒞",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",Cup:"⋓",cupbrcap:"⩈",cupcap:"⩆",CupCap:"≍",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dagger:"†",Dagger:"‡",daleth:"ℸ",darr:"↓",dArr:"⇓",Darr:"↡",dash:"‐",dashv:"⊣",Dashv:"⫤",dbkarow:"⤏",dblac:"˝",dcaron:"ď",Dcaron:"Ď",dcy:"д",Dcy:"Д",dd:"ⅆ",DD:"ⅅ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",delta:"δ",Delta:"Δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",Dfr:"𝔇",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",diamond:"⋄",Diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",DJcy:"Ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",Dopf:"𝔻",dot:"˙",Dot:"¨",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",downarrow:"↓",Downarrow:"⇓",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",Dscr:"𝒟",dscy:"ѕ",DScy:"Ѕ",dsol:"⧶",dstrok:"đ",Dstrok:"Đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",DZcy:"Џ",dzigrarr:"⟿",eacute:"é",Eacute:"É",easter:"⩮",ecaron:"ě",Ecaron:"Ě",ecir:"≖",ecirc:"ê",Ecirc:"Ê",ecolon:"≕",ecy:"э",Ecy:"Э",eDDot:"⩷",edot:"ė",eDot:"≑",Edot:"Ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",Efr:"𝔈",eg:"⪚",egrave:"è",Egrave:"È",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",Emacr:"Ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",eng:"ŋ",ENG:"Ŋ",ensp:" ",eogon:"ę",Eogon:"Ę",eopf:"𝕖",Eopf:"𝔼",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",Epsilon:"Ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",escr:"ℯ",Escr:"ℰ",esdot:"≐",esim:"≂",Esim:"⩳",eta:"η",Eta:"Η",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",exponentiale:"ⅇ",ExponentialE:"ⅇ",fallingdotseq:"≒",fcy:"ф",Fcy:"Ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",Ffr:"𝔉",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",Fopf:"𝔽",forall:"∀",ForAll:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",Fscr:"ℱ",gacute:"ǵ",gamma:"γ",Gamma:"Γ",gammad:"ϝ",Gammad:"Ϝ",gap:"⪆",gbreve:"ğ",Gbreve:"Ğ",Gcedil:"Ģ",gcirc:"ĝ",Gcirc:"Ĝ",gcy:"г",Gcy:"Г",gdot:"ġ",Gdot:"Ġ",ge:"≥",gE:"≧",gel:"⋛",gEl:"⪌",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",Gfr:"𝔊",gg:"≫",Gg:"⋙",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",GJcy:"Ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gnE:"≩",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",Gopf:"𝔾",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",gscr:"ℊ",Gscr:"𝒢",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",Gt:"≫",GT:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",HARDcy:"Ъ",harr:"↔",hArr:"⇔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",hcirc:"ĥ",Hcirc:"Ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",Hfr:"ℌ",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",Hopf:"ℍ",horbar:"―",HorizontalLine:"─",hscr:"𝒽",Hscr:"ℋ",hslash:"ℏ",hstrok:"ħ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",iacute:"í",Iacute:"Í",ic:"⁣",icirc:"î",Icirc:"Î",icy:"и",Icy:"И",Idot:"İ",iecy:"е",IEcy:"Е",iexcl:"¡",iff:"⇔",ifr:"𝔦",Ifr:"ℑ",igrave:"ì",Igrave:"Ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",IJlig:"IJ",Im:"ℑ",imacr:"ī",Imacr:"Ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒","in":"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı","int":"∫",Int:"∬",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",iocy:"ё",IOcy:"Ё",iogon:"į",Iogon:"Į",iopf:"𝕚",Iopf:"𝕀",iota:"ι",Iota:"Ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",Iscr:"ℐ",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",Itilde:"Ĩ",iukcy:"і",Iukcy:"І",iuml:"ï",Iuml:"Ï",jcirc:"ĵ",Jcirc:"Ĵ",jcy:"й",Jcy:"Й",jfr:"𝔧",Jfr:"𝔍",jmath:"ȷ",jopf:"𝕛",Jopf:"𝕁",jscr:"𝒿",Jscr:"𝒥",jsercy:"ј",Jsercy:"Ј",jukcy:"є",Jukcy:"Є",kappa:"κ",Kappa:"Κ",kappav:"ϰ",kcedil:"ķ",Kcedil:"Ķ",kcy:"к",Kcy:"К",kfr:"𝔨",Kfr:"𝔎",kgreen:"ĸ",khcy:"х",KHcy:"Х",kjcy:"ќ",KJcy:"Ќ",kopf:"𝕜",Kopf:"𝕂",kscr:"𝓀",Kscr:"𝒦",lAarr:"⇚",lacute:"ĺ",Lacute:"Ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",Lambda:"Λ",lang:"⟨",Lang:"⟪",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",larr:"←",lArr:"⇐",Larr:"↞",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",lAtail:"⤛",late:"⪭",lates:"⪭︀",lbarr:"⤌",lBarr:"⤎",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",Lcaron:"Ľ",lcedil:"ļ",Lcedil:"Ļ",lceil:"⌈",lcub:"{",lcy:"л",Lcy:"Л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",lE:"≦",LeftAngleBracket:"⟨",leftarrow:"←",Leftarrow:"⇐",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",Leftrightarrow:"⇔",LeftRightArrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",leg:"⋚",lEg:"⪋",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",Lfr:"𝔏",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",LJcy:"Љ",ll:"≪",Ll:"⋘",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",lmidot:"ŀ",Lmidot:"Ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lnE:"≨",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",Longleftarrow:"⟸",LongLeftArrow:"⟵",longleftrightarrow:"⟷",Longleftrightarrow:"⟺",LongLeftRightArrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",Longrightarrow:"⟹",LongRightArrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",Lopf:"𝕃",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",Lscr:"ℒ",lsh:"↰",Lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",Lstrok:"Ł",lt:"<",Lt:"≪",LT:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",Map:"⤅",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",Mcy:"М",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",mfr:"𝔪",Mfr:"𝔐",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",Mopf:"𝕄",mp:"∓",mscr:"𝓂",Mscr:"ℳ",mstpos:"∾",mu:"μ",Mu:"Μ",multimap:"⊸",mumap:"⊸",nabla:"∇",nacute:"ń",Nacute:"Ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",Ncaron:"Ň",ncedil:"ņ",Ncedil:"Ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",Ncy:"Н",ndash:"–",ne:"≠",nearhk:"⤤",nearr:"↗",neArr:"⇗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",nfr:"𝔫",Nfr:"𝔑",nge:"≱",ngE:"≧̸",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",ngt:"≯",nGt:"≫⃒",ngtr:"≯",nGtv:"≫̸",nharr:"↮",nhArr:"⇎",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",NJcy:"Њ",nlarr:"↚",nlArr:"⇍",nldr:"‥",nle:"≰",nlE:"≦̸",nleftarrow:"↚",nLeftarrow:"⇍",nleftrightarrow:"↮",nLeftrightarrow:"⇎",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nlt:"≮",nLt:"≪⃒",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",nopf:"𝕟",Nopf:"ℕ",not:"¬",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrarr:"↛",nrArr:"⇏",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nRightarrow:"⇏",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",Nscr:"𝒩",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsube:"⊈",nsubE:"⫅̸",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupe:"⊉",nsupE:"⫆̸",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",Ntilde:"Ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",Nu:"Ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwarr:"↖",nwArr:"⇖",nwarrow:"↖",nwnear:"⤧",oacute:"ó",Oacute:"Ó",oast:"⊛",ocir:"⊚",ocirc:"ô",Ocirc:"Ô",ocy:"о",Ocy:"О",odash:"⊝",odblac:"ő",Odblac:"Ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",OElig:"Œ",ofcir:"⦿",ofr:"𝔬",Ofr:"𝔒",ogon:"˛",ograve:"ò",Ograve:"Ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",Omacr:"Ō",omega:"ω",Omega:"Ω",omicron:"ο",Omicron:"Ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",Oopf:"𝕆",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",or:"∨",Or:"⩔",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",oscr:"ℴ",Oscr:"𝒪",oslash:"ø",Oslash:"Ø",osol:"⊘",otilde:"õ",Otilde:"Õ",otimes:"⊗",Otimes:"⨷",otimesas:"⨶",ouml:"ö",Ouml:"Ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",pcy:"п",Pcy:"П",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",Pfr:"𝔓",phi:"φ",Phi:"Φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",Pi:"Π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",popf:"𝕡",Popf:"ℙ",pound:"£",pr:"≺",Pr:"⪻",prap:"⪷",prcue:"≼",pre:"⪯",prE:"⪳",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",Prime:"″",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",Pscr:"𝒫",psi:"ψ",Psi:"Ψ",puncsp:" ",qfr:"𝔮",Qfr:"𝔔",qint:"⨌",qopf:"𝕢",Qopf:"ℚ",qprime:"⁗",qscr:"𝓆",Qscr:"𝒬",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',QUOT:'"',rAarr:"⇛",race:"∽̱",racute:"ŕ",Racute:"Ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",Rang:"⟫",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rArr:"⇒",Rarr:"↠",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",Rarrtl:"⤖",rarrw:"↝",ratail:"⤚",rAtail:"⤜",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rBarr:"⤏",RBarr:"⤐",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",Rcaron:"Ř",rcedil:"ŗ",Rcedil:"Ŗ",rceil:"⌉",rcub:"}",rcy:"р",Rcy:"Р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",REG:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",Rfr:"ℜ",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",Rho:"Ρ",rhov:"ϱ",RightAngleBracket:"⟩",rightarrow:"→",Rightarrow:"⇒",RightArrow:"→",RightArrowBar:"⇥",
+RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",Ropf:"ℝ",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",rscr:"𝓇",Rscr:"ℛ",rsh:"↱",Rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",sacute:"ś",Sacute:"Ś",sbquo:"‚",sc:"≻",Sc:"⪼",scap:"⪸",scaron:"š",Scaron:"Š",sccue:"≽",sce:"⪰",scE:"⪴",scedil:"ş",Scedil:"Ş",scirc:"ŝ",Scirc:"Ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",Scy:"С",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",searr:"↘",seArr:"⇘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",Sfr:"𝔖",sfrown:"⌢",sharp:"♯",shchcy:"щ",SHCHcy:"Щ",shcy:"ш",SHcy:"Ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",sigma:"σ",Sigma:"Σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",SOFTcy:"Ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",Sopf:"𝕊",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",Sscr:"𝒮",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",Star:"⋆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",Sub:"⋐",subdot:"⪽",sube:"⊆",subE:"⫅",subedot:"⫃",submult:"⫁",subne:"⊊",subnE:"⫋",subplus:"⪿",subrarr:"⥹",subset:"⊂",Subset:"⋐",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",sum:"∑",Sum:"∑",sung:"♪",sup:"⊃",Sup:"⋑",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supe:"⊇",supE:"⫆",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supne:"⊋",supnE:"⫌",supplus:"⫀",supset:"⊃",Supset:"⋑",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swarr:"↙",swArr:"⇙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"        ",target:"⌖",tau:"τ",Tau:"Τ",tbrk:"⎴",tcaron:"ť",Tcaron:"Ť",tcedil:"ţ",Tcedil:"Ţ",tcy:"т",Tcy:"Т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",Tfr:"𝔗",there4:"∴",therefore:"∴",Therefore:"∴",theta:"θ",Theta:"Θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",thorn:"þ",THORN:"Þ",tilde:"˜",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",Topf:"𝕋",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",TRADE:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",Tscr:"𝒯",tscy:"ц",TScy:"Ц",tshcy:"ћ",TSHcy:"Ћ",tstrok:"ŧ",Tstrok:"Ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uacute:"ú",Uacute:"Ú",uarr:"↑",uArr:"⇑",Uarr:"↟",Uarrocir:"⥉",ubrcy:"ў",Ubrcy:"Ў",ubreve:"ŭ",Ubreve:"Ŭ",ucirc:"û",Ucirc:"Û",ucy:"у",Ucy:"У",udarr:"⇅",udblac:"ű",Udblac:"Ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",Ufr:"𝔘",ugrave:"ù",Ugrave:"Ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",Umacr:"Ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",uogon:"ų",Uogon:"Ų",uopf:"𝕦",Uopf:"𝕌",uparrow:"↑",Uparrow:"⇑",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",updownarrow:"↕",Updownarrow:"⇕",UpDownArrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",upsi:"υ",Upsi:"ϒ",upsih:"ϒ",upsilon:"υ",Upsilon:"Υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",Uring:"Ů",urtri:"◹",uscr:"𝓊",Uscr:"𝒰",utdot:"⋰",utilde:"ũ",Utilde:"Ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",Uuml:"Ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",vArr:"⇕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vBar:"⫨",Vbar:"⫫",vBarv:"⫩",vcy:"в",Vcy:"В",vdash:"⊢",vDash:"⊨",Vdash:"⊩",VDash:"⊫",Vdashl:"⫦",vee:"∨",Vee:"⋁",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",Verbar:"‖",vert:"|",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",vfr:"𝔳",Vfr:"𝔙",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",Vopf:"𝕍",vprop:"∝",vrtri:"⊳",vscr:"𝓋",Vscr:"𝒱",vsubne:"⊊︀",vsubnE:"⫋︀",vsupne:"⊋︀",vsupnE:"⫌︀",Vvdash:"⊪",vzigzag:"⦚",wcirc:"ŵ",Wcirc:"Ŵ",wedbar:"⩟",wedge:"∧",Wedge:"⋀",wedgeq:"≙",weierp:"℘",wfr:"𝔴",Wfr:"𝔚",wopf:"𝕨",Wopf:"𝕎",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",Wscr:"𝒲",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",Xfr:"𝔛",xharr:"⟷",xhArr:"⟺",xi:"ξ",Xi:"Ξ",xlarr:"⟵",xlArr:"⟸",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",Xopf:"𝕏",xoplus:"⨁",xotime:"⨂",xrarr:"⟶",xrArr:"⟹",xscr:"𝓍",Xscr:"𝒳",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",Yacute:"Ý",yacy:"я",YAcy:"Я",ycirc:"ŷ",Ycirc:"Ŷ",ycy:"ы",Ycy:"Ы",yen:"¥",yfr:"𝔶",Yfr:"𝔜",yicy:"ї",YIcy:"Ї",yopf:"𝕪",Yopf:"𝕐",yscr:"𝓎",Yscr:"𝒴",yucy:"ю",YUcy:"Ю",yuml:"ÿ",Yuml:"Ÿ",zacute:"ź",Zacute:"Ź",zcaron:"ž",Zcaron:"Ž",zcy:"з",Zcy:"З",zdot:"ż",Zdot:"Ż",zeetrf:"ℨ",ZeroWidthSpace:"​",zeta:"ζ",Zeta:"Ζ",zfr:"𝔷",Zfr:"ℨ",zhcy:"ж",ZHcy:"Ж",zigrarr:"⇝",zopf:"𝕫",Zopf:"ℤ",zscr:"𝓏",Zscr:"𝒵",zwj:"‍",zwnj:"‌"},s={aacute:"á",Aacute:"Á",acirc:"â",Acirc:"Â",acute:"´",aelig:"æ",AElig:"Æ",agrave:"à",Agrave:"À",amp:"&",AMP:"&",aring:"å",Aring:"Å",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",brvbar:"¦",ccedil:"ç",Ccedil:"Ç",cedil:"¸",cent:"¢",copy:"©",COPY:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",Eacute:"É",ecirc:"ê",Ecirc:"Ê",egrave:"è",Egrave:"È",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",GT:">",iacute:"í",Iacute:"Í",icirc:"î",Icirc:"Î",iexcl:"¡",igrave:"ì",Igrave:"Ì",iquest:"¿",iuml:"ï",Iuml:"Ï",laquo:"«",lt:"<",LT:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",Ntilde:"Ñ",oacute:"ó",Oacute:"Ó",ocirc:"ô",Ocirc:"Ô",ograve:"ò",Ograve:"Ò",ordf:"ª",ordm:"º",oslash:"ø",Oslash:"Ø",otilde:"õ",Otilde:"Õ",ouml:"ö",Ouml:"Ö",para:"¶",plusmn:"±",pound:"£",quot:'"',QUOT:'"',raquo:"»",reg:"®",REG:"®",sect:"§",shy:"­",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",THORN:"Þ",times:"×",uacute:"ú",Uacute:"Ú",ucirc:"û",Ucirc:"Û",ugrave:"ù",Ugrave:"Ù",uml:"¨",uuml:"ü",Uuml:"Ü",yacute:"ý",Yacute:"Ý",yen:"¥",yuml:"ÿ"},t={0:"�",128:"€",130:"‚",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"‹",140:"Œ",142:"Ž",145:"‘",146:"’",147:"“",148:"”",149:"•",150:"–",151:"—",152:"˜",153:"™",154:"š",155:"›",156:"œ",158:"ž",159:"Ÿ"},u=[1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65e3,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111],v=String.fromCharCode,w={},x=w.hasOwnProperty,y=function(a,b){return x.call(a,b)},z=function(a,b){for(var c=-1,d=a.length;++c<d;)if(a[c]==b)return!0;return!1},A=function(a,b){if(!a)return b;var c,d={};for(c in b)d[c]=y(a,c)?a[c]:b[c];return d},B=function(a,b){var c="";return a>=55296&&57343>=a||a>1114111?(b&&D("character reference outside the permissible Unicode range"),"�"):y(t,a)?(b&&D("disallowed character reference"),t[a]):(b&&z(u,a)&&D("disallowed character reference"),a>65535&&(a-=65536,c+=v(a>>>10&1023|55296),a=56320|1023&a),c+=v(a))},C=function(a){return"&#x"+a.charCodeAt(0).toString(16).toUpperCase()+";"},D=function(a){throw Error("Parse error: "+a)},E=function(a,b){b=A(b,E.options);var c=b.strict;c&&p.test(a)&&D("forbidden code point");var d=b.encodeEverything,e=b.useNamedReferences,f=b.allowUnsafeSymbols;return d?(a=a.replace(i,function(a){return e&&y(l,a)?"&"+l[a]+";":C(a)}),e&&(a=a.replace(/&gt;\u20D2/g,"&nvgt;").replace(/&lt;\u20D2/g,"&nvlt;").replace(/&#x66;&#x6A;/g,"&fjlig;")),e&&(a=a.replace(k,function(a){return"&"+l[a]+";"}))):e?(f||(a=a.replace(m,function(a){return"&"+l[a]+";"})),a=a.replace(/&gt;\u20D2/g,"&nvgt;").replace(/&lt;\u20D2/g,"&nvlt;"),a=a.replace(k,function(a){return"&"+l[a]+";"})):f||(a=a.replace(m,C)),a.replace(h,function(a){var b=a.charCodeAt(0),c=a.charCodeAt(1),d=1024*(b-55296)+c-56320+65536;return"&#x"+d.toString(16).toUpperCase()+";"}).replace(j,C)};E.options={allowUnsafeSymbols:!1,encodeEverything:!1,strict:!1,useNamedReferences:!1};var F=function(a,b){b=A(b,F.options);var c=b.strict;return c&&o.test(a)&&D("malformed character reference"),a.replace(q,function(a,d,e,f,g,h,i,j){var k,l,m,n,o,p;return d?(m=d,l=e,c&&!l&&D("character reference was not terminated by a semicolon"),k=parseInt(m,10),B(k,c)):f?(n=f,l=g,c&&!l&&D("character reference was not terminated by a semicolon"),k=parseInt(n,16),B(k,c)):h?(o=h,y(r,o)?r[o]:(c&&D("named character reference was not terminated by a semicolon"),a)):(o=i,p=j,p&&b.isAttributeValue?(c&&"="==p&&D("`&` did not start a character reference"),a):(c&&D("named character reference was not terminated by a semicolon"),s[o]+(p||"")))})};F.options={isAttributeValue:!1,strict:!1};var G=function(a){return a.replace(m,function(a){return n[a]})},H={version:"1.0.0",encode:E,decode:F,escape:G,unescape:F};if("function"==typeof define&&"object"==typeof define.amd&&define.amd)define(function(){return H});else if(e&&!e.nodeType)if(f)f.exports=H;else for(var I in H)y(H,I)&&(e[I]=H[I]);else d.he=H}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],81:[function(a,b,c){var d=a("http"),e=b.exports;for(var f in d)d.hasOwnProperty(f)&&(e[f]=d[f]);e.request=function(a,b){return a||(a={}),a.scheme="https",a.protocol="https:",d.request.call(this,a,b)}},{http:123}],82:[function(a,b,c){c.read=function(a,b,c,d,e){var f,g,h=8*e-d-1,i=(1<<h)-1,j=i>>1,k=-7,l=c?e-1:0,m=c?-1:1,n=a[b+l];for(l+=m,f=n&(1<<-k)-1,n>>=-k,k+=h;k>0;f=256*f+a[b+l],l+=m,k-=8);for(g=f&(1<<-k)-1,f>>=-k,k+=d;k>0;g=256*g+a[b+l],l+=m,k-=8);if(0===f)f=1-j;else{if(f===i)return g?NaN:(n?-1:1)*(1/0);g+=Math.pow(2,d),f-=j}return(n?-1:1)*g*Math.pow(2,f-d)},c.write=function(a,b,c,d,e,f){var g,h,i,j=8*f-e-1,k=(1<<j)-1,l=k>>1,m=23===e?Math.pow(2,-24)-Math.pow(2,-77):0,n=d?0:f-1,o=d?1:-1,p=0>b||0===b&&0>1/b?1:0;for(b=Math.abs(b),isNaN(b)||b===1/0?(h=isNaN(b)?1:0,g=k):(g=Math.floor(Math.log(b)/Math.LN2),b*(i=Math.pow(2,-g))<1&&(g--,i*=2),b+=g+l>=1?m/i:m*Math.pow(2,1-l),b*i>=2&&(g++,i/=2),g+l>=k?(h=0,g=k):g+l>=1?(h=(b*i-1)*Math.pow(2,e),g+=l):(h=b*Math.pow(2,l-1)*Math.pow(2,e),g=0));e>=8;a[c+n]=255&h,n+=o,h/=256,e-=8);for(g=g<<e|h,j+=e;j>0;a[c+n]=255&g,n+=o,g/=256,j-=8);a[c+n-o]|=128*p}},{}],83:[function(a,b,c){"function"==typeof Object.create?b.exports=function(a,b){a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}})}:b.exports=function(a,b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}},{}],84:[function(a,b,c){b.exports=function(a){return!(null==a||!(a._isBuffer||a.constructor&&"function"==typeof a.constructor.isBuffer&&a.constructor.isBuffer(a)))}},{}],85:[function(a,b,c){var d={}.toString;b.exports=Array.isArray||function(a){return"[object Array]"==d.call(a)}},{}],86:[function(a,b,c){"use strict";function d(a){return a.source.slice(1,-1)}var e=a("xml-char-classes");b.exports=new RegExp("^["+d(e.letter)+"_]["+d(e.letter)+d(e.digit)+"\\.\\-_"+d(e.combiningChar)+d(e.extender)+"]*$")},{"xml-char-classes":146}],87:[function(a,b,c){c.endianness=function(){return"LE"},c.hostname=function(){return"undefined"!=typeof location?location.hostname:""},c.loadavg=function(){return[]},c.uptime=function(){return 0},c.freemem=function(){return Number.MAX_VALUE},c.totalmem=function(){return Number.MAX_VALUE},c.cpus=function(){return[]},c.type=function(){return"Browser"},c.release=function(){return"undefined"!=typeof navigator?navigator.appVersion:""},c.networkInterfaces=c.getNetworkInterfaces=function(){return{}},c.arch=function(){return"javascript"},c.platform=function(){return"browser"},c.tmpdir=c.tmpDir=function(){return"/tmp"},c.EOL="\n"},{}],88:[function(a,b,c){(function(a){function b(a,b){for(var c=0,d=a.length-1;d>=0;d--){var e=a[d];"."===e?a.splice(d,1):".."===e?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c--;c)a.unshift("..");return a}function d(a,b){if(a.filter)return a.filter(b);for(var c=[],d=0;d<a.length;d++)b(a[d],d,a)&&c.push(a[d]);return c}var e=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,f=function(a){return e.exec(a).slice(1)};c.resolve=function(){for(var c="",e=!1,f=arguments.length-1;f>=-1&&!e;f--){var g=f>=0?arguments[f]:a.cwd();if("string"!=typeof g)throw new TypeError("Arguments to path.resolve must be strings");g&&(c=g+"/"+c,e="/"===g.charAt(0))}return c=b(d(c.split("/"),function(a){return!!a}),!e).join("/"),(e?"/":"")+c||"."},c.normalize=function(a){var e=c.isAbsolute(a),f="/"===g(a,-1);return a=b(d(a.split("/"),function(a){return!!a}),!e).join("/"),a||e||(a="."),a&&f&&(a+="/"),(e?"/":"")+a},c.isAbsolute=function(a){return"/"===a.charAt(0)},c.join=function(){var a=Array.prototype.slice.call(arguments,0);return c.normalize(d(a,function(a,b){if("string"!=typeof a)throw new TypeError("Arguments to path.join must be strings");return a}).join("/"))},c.relative=function(a,b){function d(a){for(var b=0;b<a.length&&""===a[b];b++);for(var c=a.length-1;c>=0&&""===a[c];c--);return b>c?[]:a.slice(b,c-b+1)}a=c.resolve(a).substr(1),b=c.resolve(b).substr(1);for(var e=d(a.split("/")),f=d(b.split("/")),g=Math.min(e.length,f.length),h=g,i=0;g>i;i++)if(e[i]!==f[i]){h=i;break}for(var j=[],i=h;i<e.length;i++)j.push("..");return j=j.concat(f.slice(h)),j.join("/")},c.sep="/",c.delimiter=":",c.dirname=function(a){var b=f(a),c=b[0],d=b[1];return c||d?(d&&(d=d.substr(0,d.length-1)),c+d):"."},c.basename=function(a,b){var c=f(a)[2];return b&&c.substr(-1*b.length)===b&&(c=c.substr(0,c.length-b.length)),c},c.extname=function(a){return f(a)[3]};var g="b"==="ab".substr(-1)?function(a,b,c){return a.substr(b,c)}:function(a,b,c){return 0>b&&(b=a.length+b),a.substr(b,c)}}).call(this,a("_process"))},{_process:90}],89:[function(a,b,c){(function(a){"use strict";function c(b){for(var c=new Array(arguments.length-1),d=0;d<c.length;)c[d++]=arguments[d];a.nextTick(function(){b.apply(null,c)})}!a.version||0===a.version.indexOf("v0.")||0===a.version.indexOf("v1.")&&0!==a.version.indexOf("v1.8.")?b.exports=c:b.exports=a.nextTick}).call(this,a("_process"))},{_process:90}],90:[function(a,b,c){function d(){k=!1,h.length?j=h.concat(j):l=-1,j.length&&e()}function e(){if(!k){var a=setTimeout(d);k=!0;for(var b=j.length;b;){for(h=j,j=[];++l<b;)h&&h[l].run();l=-1,b=j.length}h=null,k=!1,clearTimeout(a)}}function f(a,b){this.fun=a,this.array=b}function g(){}var h,i=b.exports={},j=[],k=!1,l=-1;i.nextTick=function(a){var b=new Array(arguments.length-1);if(arguments.length>1)for(var c=1;c<arguments.length;c++)b[c-1]=arguments[c];j.push(new f(a,b)),1!==j.length||k||setTimeout(e,0)},f.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=g,i.addListener=g,i.once=g,i.off=g,i.removeListener=g,i.removeAllListeners=g,i.emit=g,i.binding=function(a){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(a){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},{}],91:[function(a,b,c){(function(a){!function(d){function e(a){throw new RangeError(H[a])}function f(a,b){for(var c=a.length,d=[];c--;)d[c]=b(a[c]);return d}function g(a,b){var c=a.split("@"),d="";c.length>1&&(d=c[0]+"@",a=c[1]),a=a.replace(G,".");var e=a.split("."),g=f(e,b).join(".");return d+g}function h(a){for(var b,c,d=[],e=0,f=a.length;f>e;)b=a.charCodeAt(e++),b>=55296&&56319>=b&&f>e?(c=a.charCodeAt(e++),56320==(64512&c)?d.push(((1023&b)<<10)+(1023&c)+65536):(d.push(b),e--)):d.push(b);return d}function i(a){return f(a,function(a){var b="";return a>65535&&(a-=65536,b+=K(a>>>10&1023|55296),a=56320|1023&a),b+=K(a)}).join("")}function j(a){return 10>a-48?a-22:26>a-65?a-65:26>a-97?a-97:w}function k(a,b){return a+22+75*(26>a)-((0!=b)<<5)}function l(a,b,c){var d=0;for(a=c?J(a/A):a>>1,a+=J(a/b);a>I*y>>1;d+=w)a=J(a/I);return J(d+(I+1)*a/(a+z))}function m(a){var b,c,d,f,g,h,k,m,n,o,p=[],q=a.length,r=0,s=C,t=B;for(c=a.lastIndexOf(D),0>c&&(c=0),d=0;c>d;++d)a.charCodeAt(d)>=128&&e("not-basic"),p.push(a.charCodeAt(d));for(f=c>0?c+1:0;q>f;){for(g=r,h=1,k=w;f>=q&&e("invalid-input"),m=j(a.charCodeAt(f++)),(m>=w||m>J((v-r)/h))&&e("overflow"),r+=m*h,n=t>=k?x:k>=t+y?y:k-t,!(n>m);k+=w)o=w-n,h>J(v/o)&&e("overflow"),h*=o;b=p.length+1,t=l(r-g,b,0==g),J(r/b)>v-s&&e("overflow"),s+=J(r/b),r%=b,p.splice(r++,0,s)}return i(p)}function n(a){var b,c,d,f,g,i,j,m,n,o,p,q,r,s,t,u=[];for(a=h(a),q=a.length,b=C,c=0,g=B,i=0;q>i;++i)p=a[i],128>p&&u.push(K(p));for(d=f=u.length,f&&u.push(D);q>d;){for(j=v,i=0;q>i;++i)p=a[i],p>=b&&j>p&&(j=p);for(r=d+1,j-b>J((v-c)/r)&&e("overflow"),c+=(j-b)*r,b=j,i=0;q>i;++i)if(p=a[i],b>p&&++c>v&&e("overflow"),p==b){for(m=c,n=w;o=g>=n?x:n>=g+y?y:n-g,!(o>m);n+=w)t=m-o,s=w-o,u.push(K(k(o+t%s,0))),m=J(t/s);u.push(K(k(m,0))),g=l(c,r,d==f),c=0,++d}++c,++b}return u.join("")}function o(a){return g(a,function(a){return E.test(a)?m(a.slice(4).toLowerCase()):a})}function p(a){return g(a,function(a){return F.test(a)?"xn--"+n(a):a})}var q="object"==typeof c&&c&&!c.nodeType&&c,r="object"==typeof b&&b&&!b.nodeType&&b,s="object"==typeof a&&a;s.global!==s&&s.window!==s&&s.self!==s||(d=s);var t,u,v=2147483647,w=36,x=1,y=26,z=38,A=700,B=72,C=128,D="-",E=/^xn--/,F=/[^\x20-\x7E]/,G=/[\x2E\u3002\uFF0E\uFF61]/g,H={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},I=w-x,J=Math.floor,K=String.fromCharCode;if(t={version:"1.4.1",ucs2:{decode:h,encode:i},decode:m,encode:n,toASCII:p,toUnicode:o},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return t});else if(q&&r)if(b.exports==q)r.exports=t;else for(u in t)t.hasOwnProperty(u)&&(q[u]=t[u]);else d.punycode=t}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],92:[function(a,b,c){"use strict";function d(a,b){return Object.prototype.hasOwnProperty.call(a,b)}b.exports=function(a,b,c,f){b=b||"&",c=c||"=";var g={};if("string"!=typeof a||0===a.length)return g;var h=/\+/g;a=a.split(b);var i=1e3;f&&"number"==typeof f.maxKeys&&(i=f.maxKeys);var j=a.length;i>0&&j>i&&(j=i);for(var k=0;j>k;++k){var l,m,n,o,p=a[k].replace(h,"%20"),q=p.indexOf(c);q>=0?(l=p.substr(0,q),m=p.substr(q+1)):(l=p,m=""),n=decodeURIComponent(l),o=decodeURIComponent(m),d(g,n)?e(g[n])?g[n].push(o):g[n]=[g[n],o]:g[n]=o}return g};var e=Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)}},{}],93:[function(a,b,c){"use strict";function d(a,b){if(a.map)return a.map(b);for(var c=[],d=0;d<a.length;d++)c.push(b(a[d],d));return c}var e=function(a){switch(typeof a){case"string":return a;case"boolean":return a?"true":"false";case"number":return isFinite(a)?a:"";default:return""}};b.exports=function(a,b,c,h){return b=b||"&",c=c||"=",null===a&&(a=void 0),"object"==typeof a?d(g(a),function(g){var h=encodeURIComponent(e(g))+c;return f(a[g])?d(a[g],function(a){return h+encodeURIComponent(e(a))}).join(b):h+encodeURIComponent(e(a[g]))}).join(b):h?encodeURIComponent(e(h))+c+encodeURIComponent(e(a)):""};var f=Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)},g=Object.keys||function(a){var b=[];for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&b.push(c);return b}},{}],94:[function(a,b,c){"use strict";c.decode=c.parse=a("./decode"),c.encode=c.stringify=a("./encode")},{"./decode":92,"./encode":93}],95:[function(a,b,c){b.exports=a("./lib/_stream_duplex.js")},{"./lib/_stream_duplex.js":96}],96:[function(a,b,c){"use strict";function d(a){return this instanceof d?(j.call(this,a),k.call(this,a),a&&a.readable===!1&&(this.readable=!1),a&&a.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,a&&a.allowHalfOpen===!1&&(this.allowHalfOpen=!1),void this.once("end",e)):new d(a)}function e(){this.allowHalfOpen||this._writableState.ended||h(f,this)}function f(a){a.end()}var g=Object.keys||function(a){var b=[];for(var c in a)b.push(c);return b};b.exports=d;var h=a("process-nextick-args"),i=a("core-util-is");i.inherits=a("inherits");var j=a("./_stream_readable"),k=a("./_stream_writable");i.inherits(d,j);for(var l=g(k.prototype),m=0;m<l.length;m++){var n=l[m];d.prototype[n]||(d.prototype[n]=k.prototype[n])}},{"./_stream_readable":98,"./_stream_writable":100,"core-util-is":78,inherits:83,"process-nextick-args":89}],97:[function(a,b,c){"use strict";function d(a){return this instanceof d?void e.call(this,a):new d(a)}b.exports=d;var e=a("./_stream_transform"),f=a("core-util-is");f.inherits=a("inherits"),f.inherits(d,e),d.prototype._transform=function(a,b,c){c(null,a)}},{"./_stream_transform":99,"core-util-is":78,inherits:83}],98:[function(a,b,c){(function(c){"use strict";function d(b,c){I=I||a("./_stream_duplex"),b=b||{},this.objectMode=!!b.objectMode,c instanceof I&&(this.objectMode=this.objectMode||!!b.readableObjectMode);var d=b.highWaterMark,e=this.objectMode?16:16384;this.highWaterMark=d||0===d?d:e,this.highWaterMark=~~this.highWaterMark,this.buffer=[],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=b.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,b.encoding&&(H||(H=a("string_decoder/").StringDecoder),this.decoder=new H(b.encoding),this.encoding=b.encoding)}function e(b){return I=I||a("./_stream_duplex"),this instanceof e?(this._readableState=new d(b,this),this.readable=!0,b&&"function"==typeof b.read&&(this._read=b.read),void C.call(this)):new e(b)}function f(a,b,c,d,e){var f=j(b,c);if(f)a.emit("error",f);else if(null===c)b.reading=!1,k(a,b);else if(b.objectMode||c&&c.length>0)if(b.ended&&!e){var h=new Error("stream.push() after EOF");a.emit("error",h)}else if(b.endEmitted&&e){var h=new Error("stream.unshift() after end event");a.emit("error",h)}else{var i;!b.decoder||e||d||(c=b.decoder.write(c),i=!b.objectMode&&0===c.length),e||(b.reading=!1),i||(b.flowing&&0===b.length&&!b.sync?(a.emit("data",c),a.read(0)):(b.length+=b.objectMode?1:c.length,e?b.buffer.unshift(c):b.buffer.push(c),b.needReadable&&l(a))),n(a,b)}else e||(b.reading=!1);return g(b)}function g(a){return!a.ended&&(a.needReadable||a.length<a.highWaterMark||0===a.length)}function h(a){return a>=J?a=J:(a--,a|=a>>>1,a|=a>>>2,a|=a>>>4,a|=a>>>8,a|=a>>>16,a++),a}function i(a,b){return 0===b.length&&b.ended?0:b.objectMode?0===a?0:1:null===a||isNaN(a)?b.flowing&&b.buffer.length?b.buffer[0].length:b.length:0>=a?0:(a>b.highWaterMark&&(b.highWaterMark=h(a)),a>b.length?b.ended?b.length:(b.needReadable=!0,0):a)}function j(a,b){var c=null;return B.isBuffer(b)||"string"==typeof b||null===b||void 0===b||a.objectMode||(c=new TypeError("Invalid non-string/buffer chunk")),c}function k(a,b){if(!b.ended){if(b.decoder){var c=b.decoder.end();c&&c.length&&(b.buffer.push(c),b.length+=b.objectMode?1:c.length)}b.ended=!0,l(a)}}function l(a){var b=a._readableState;b.needReadable=!1,b.emittedReadable||(G("emitReadable",b.flowing),b.emittedReadable=!0,b.sync?z(m,a):m(a))}function m(a){G("emit readable"),a.emit("readable"),t(a)}function n(a,b){b.readingMore||(b.readingMore=!0,z(o,a,b))}function o(a,b){for(var c=b.length;!b.reading&&!b.flowing&&!b.ended&&b.length<b.highWaterMark&&(G("maybeReadMore read 0"),a.read(0),c!==b.length);)c=b.length;b.readingMore=!1}function p(a){return function(){var b=a._readableState;G("pipeOnDrain",b.awaitDrain),b.awaitDrain&&b.awaitDrain--,0===b.awaitDrain&&D(a,"data")&&(b.flowing=!0,t(a))}}function q(a){G("readable nexttick read 0"),a.read(0)}function r(a,b){b.resumeScheduled||(b.resumeScheduled=!0,z(s,a,b))}function s(a,b){b.reading||(G("resume read 0"),a.read(0)),b.resumeScheduled=!1,a.emit("resume"),t(a),b.flowing&&!b.reading&&a.read(0)}function t(a){var b=a._readableState;if(G("flow",b.flowing),b.flowing)do var c=a.read();while(null!==c&&b.flowing)}function u(a,b){var c,d=b.buffer,e=b.length,f=!!b.decoder,g=!!b.objectMode;if(0===d.length)return null;if(0===e)c=null;else if(g)c=d.shift();else if(!a||a>=e)c=f?d.join(""):1===d.length?d[0]:B.concat(d,e),d.length=0;else if(a<d[0].length){var h=d[0];c=h.slice(0,a),d[0]=h.slice(a)}else if(a===d[0].length)c=d.shift();else{c=f?"":new B(a);for(var i=0,j=0,k=d.length;k>j&&a>i;j++){var h=d[0],l=Math.min(a-i,h.length);f?c+=h.slice(0,l):h.copy(c,i,0,l),l<h.length?d[0]=h.slice(l):d.shift(),i+=l}}return c}function v(a){var b=a._readableState;if(b.length>0)throw new Error("endReadable called on non-empty stream");b.endEmitted||(b.ended=!0,z(w,b,a))}function w(a,b){a.endEmitted||0!==a.length||(a.endEmitted=!0,b.readable=!1,b.emit("end"))}function x(a,b){for(var c=0,d=a.length;d>c;c++)b(a[c],c)}function y(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1}b.exports=e;var z=a("process-nextick-args"),A=a("isarray"),B=a("buffer").Buffer;e.ReadableState=d;var C,D=(a("events"),function(a,b){return a.listeners(b).length});!function(){try{C=a("stream")}catch(b){}finally{C||(C=a("events").EventEmitter)}}();var B=a("buffer").Buffer,E=a("core-util-is");E.inherits=a("inherits");var F=a("util"),G=void 0;G=F&&F.debuglog?F.debuglog("stream"):function(){};var H;E.inherits(e,C);var I,I;e.prototype.push=function(a,b){var c=this._readableState;return c.objectMode||"string"!=typeof a||(b=b||c.defaultEncoding,b!==c.encoding&&(a=new B(a,b),b="")),f(this,c,a,b,!1)},e.prototype.unshift=function(a){var b=this._readableState;return f(this,b,a,"",!0)},e.prototype.isPaused=function(){return this._readableState.flowing===!1},e.prototype.setEncoding=function(b){return H||(H=a("string_decoder/").StringDecoder),this._readableState.decoder=new H(b),this._readableState.encoding=b,this};var J=8388608;e.prototype.read=function(a){G("read",a);var b=this._readableState,c=a;if(("number"!=typeof a||a>0)&&(b.emittedReadable=!1),0===a&&b.needReadable&&(b.length>=b.highWaterMark||b.ended))return G("read: emitReadable",b.length,b.ended),0===b.length&&b.ended?v(this):l(this),null;if(a=i(a,b),0===a&&b.ended)return 0===b.length&&v(this),null;var d=b.needReadable;G("need readable",d),(0===b.length||b.length-a<b.highWaterMark)&&(d=!0,G("length less than watermark",d)),(b.ended||b.reading)&&(d=!1,G("reading or ended",d)),d&&(G("do read"),b.reading=!0,b.sync=!0,0===b.length&&(b.needReadable=!0),this._read(b.highWaterMark),b.sync=!1),d&&!b.reading&&(a=i(c,b));var e;return e=a>0?u(a,b):null,null===e&&(b.needReadable=!0,a=0),b.length-=a,0!==b.length||b.ended||(b.needReadable=!0),c!==a&&b.ended&&0===b.length&&v(this),null!==e&&this.emit("data",e),e},e.prototype._read=function(a){this.emit("error",new Error("not implemented"))},e.prototype.pipe=function(a,b){function d(a){G("onunpipe"),a===l&&f()}function e(){G("onend"),a.end()}function f(){G("cleanup"),a.removeListener("close",i),a.removeListener("finish",j),a.removeListener("drain",q),a.removeListener("error",h),a.removeListener("unpipe",d),l.removeListener("end",e),l.removeListener("end",f),l.removeListener("data",g),r=!0,!m.awaitDrain||a._writableState&&!a._writableState.needDrain||q()}function g(b){G("ondata");var c=a.write(b);!1===c&&(1!==m.pipesCount||m.pipes[0]!==a||1!==l.listenerCount("data")||r||(G("false write response, pause",l._readableState.awaitDrain),l._readableState.awaitDrain++),l.pause())}function h(b){G("onerror",b),k(),a.removeListener("error",h),0===D(a,"error")&&a.emit("error",b)}function i(){a.removeListener("finish",j),k()}function j(){G("onfinish"),a.removeListener("close",i),k()}function k(){G("unpipe"),l.unpipe(a)}var l=this,m=this._readableState;switch(m.pipesCount){case 0:m.pipes=a;break;case 1:m.pipes=[m.pipes,a];break;default:m.pipes.push(a)}m.pipesCount+=1,G("pipe count=%d opts=%j",m.pipesCount,b);var n=(!b||b.end!==!1)&&a!==c.stdout&&a!==c.stderr,o=n?e:f;m.endEmitted?z(o):l.once("end",o),a.on("unpipe",d);var q=p(l);a.on("drain",q);var r=!1;return l.on("data",g),a._events&&a._events.error?A(a._events.error)?a._events.error.unshift(h):a._events.error=[h,a._events.error]:a.on("error",h),a.once("close",i),a.once("finish",j),a.emit("pipe",l),m.flowing||(G("pipe resume"),l.resume()),a},e.prototype.unpipe=function(a){var b=this._readableState;if(0===b.pipesCount)return this;if(1===b.pipesCount)return a&&a!==b.pipes?this:(a||(a=b.pipes),b.pipes=null,b.pipesCount=0,b.flowing=!1,a&&a.emit("unpipe",this),this);if(!a){var c=b.pipes,d=b.pipesCount;b.pipes=null,b.pipesCount=0,b.flowing=!1;for(var e=0;d>e;e++)c[e].emit("unpipe",this);return this}var f=y(b.pipes,a);return-1===f?this:(b.pipes.splice(f,1),b.pipesCount-=1,1===b.pipesCount&&(b.pipes=b.pipes[0]),a.emit("unpipe",this),this)},e.prototype.on=function(a,b){var c=C.prototype.on.call(this,a,b);if("data"===a&&!1!==this._readableState.flowing&&this.resume(),"readable"===a&&!this._readableState.endEmitted){var d=this._readableState;d.readableListening||(d.readableListening=!0,d.emittedReadable=!1,d.needReadable=!0,d.reading?d.length&&l(this,d):z(q,this))}return c},e.prototype.addListener=e.prototype.on,e.prototype.resume=function(){var a=this._readableState;return a.flowing||(G("resume"),a.flowing=!0,r(this,a)),this},e.prototype.pause=function(){return G("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(G("pause"),this._readableState.flowing=!1,this.emit("pause")),this},e.prototype.wrap=function(a){var b=this._readableState,c=!1,d=this;a.on("end",function(){if(G("wrapped end"),b.decoder&&!b.ended){var a=b.decoder.end();a&&a.length&&d.push(a)}d.push(null)}),a.on("data",function(e){if(G("wrapped data"),b.decoder&&(e=b.decoder.write(e)),(!b.objectMode||null!==e&&void 0!==e)&&(b.objectMode||e&&e.length)){var f=d.push(e);f||(c=!0,a.pause())}});for(var e in a)void 0===this[e]&&"function"==typeof a[e]&&(this[e]=function(b){return function(){return a[b].apply(a,arguments)}}(e));var f=["error","close","destroy","pause","resume"];return x(f,function(b){
+a.on(b,d.emit.bind(d,b))}),d._read=function(b){G("wrapped _read",b),c&&(c=!1,a.resume())},d},e._fromList=u}).call(this,a("_process"))},{"./_stream_duplex":96,_process:90,buffer:5,"core-util-is":78,events:79,inherits:83,isarray:85,"process-nextick-args":89,"string_decoder/":127,util:3}],99:[function(a,b,c){"use strict";function d(a){this.afterTransform=function(b,c){return e(a,b,c)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null,this.writeencoding=null}function e(a,b,c){var d=a._transformState;d.transforming=!1;var e=d.writecb;if(!e)return a.emit("error",new Error("no writecb in Transform class"));d.writechunk=null,d.writecb=null,null!==c&&void 0!==c&&a.push(c),e(b);var f=a._readableState;f.reading=!1,(f.needReadable||f.length<f.highWaterMark)&&a._read(f.highWaterMark)}function f(a){if(!(this instanceof f))return new f(a);h.call(this,a),this._transformState=new d(this);var b=this;this._readableState.needReadable=!0,this._readableState.sync=!1,a&&("function"==typeof a.transform&&(this._transform=a.transform),"function"==typeof a.flush&&(this._flush=a.flush)),this.once("prefinish",function(){"function"==typeof this._flush?this._flush(function(a){g(b,a)}):g(b)})}function g(a,b){if(b)return a.emit("error",b);var c=a._writableState,d=a._transformState;if(c.length)throw new Error("calling transform done when ws.length != 0");if(d.transforming)throw new Error("calling transform done when still transforming");return a.push(null)}b.exports=f;var h=a("./_stream_duplex"),i=a("core-util-is");i.inherits=a("inherits"),i.inherits(f,h),f.prototype.push=function(a,b){return this._transformState.needTransform=!1,h.prototype.push.call(this,a,b)},f.prototype._transform=function(a,b,c){throw new Error("not implemented")},f.prototype._write=function(a,b,c){var d=this._transformState;if(d.writecb=c,d.writechunk=a,d.writeencoding=b,!d.transforming){var e=this._readableState;(d.needTransform||e.needReadable||e.length<e.highWaterMark)&&this._read(e.highWaterMark)}},f.prototype._read=function(a){var b=this._transformState;null!==b.writechunk&&b.writecb&&!b.transforming?(b.transforming=!0,this._transform(b.writechunk,b.writeencoding,b.afterTransform)):b.needTransform=!0}},{"./_stream_duplex":96,"core-util-is":78,inherits:83}],100:[function(a,b,c){(function(c){"use strict";function d(){}function e(a,b,c){this.chunk=a,this.encoding=b,this.callback=c,this.next=null}function f(b,c){D=D||a("./_stream_duplex"),b=b||{},this.objectMode=!!b.objectMode,c instanceof D&&(this.objectMode=this.objectMode||!!b.writableObjectMode);var d=b.highWaterMark,e=this.objectMode?16:16384;this.highWaterMark=d||0===d?d:e,this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1;var f=b.decodeStrings===!1;this.decodeStrings=!f,this.defaultEncoding=b.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(a){o(c,a)},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 w(this),this.corkedRequestsFree.next=new w(this)}function g(b){return D=D||a("./_stream_duplex"),this instanceof g||this instanceof D?(this._writableState=new f(b,this),this.writable=!0,b&&("function"==typeof b.write&&(this._write=b.write),"function"==typeof b.writev&&(this._writev=b.writev)),void B.call(this)):new g(b)}function h(a,b){var c=new Error("write after end");a.emit("error",c),x(b,c)}function i(a,b,c,d){var e=!0;if(!z.isBuffer(c)&&"string"!=typeof c&&null!==c&&void 0!==c&&!b.objectMode){var f=new TypeError("Invalid non-string/buffer chunk");a.emit("error",f),x(d,f),e=!1}return e}function j(a,b,c){return a.objectMode||a.decodeStrings===!1||"string"!=typeof b||(b=new z(b,c)),b}function k(a,b,c,d,f){c=j(b,c,d),z.isBuffer(c)&&(d="buffer");var g=b.objectMode?1:c.length;b.length+=g;var h=b.length<b.highWaterMark;if(h||(b.needDrain=!0),b.writing||b.corked){var i=b.lastBufferedRequest;b.lastBufferedRequest=new e(c,d,f),i?i.next=b.lastBufferedRequest:b.bufferedRequest=b.lastBufferedRequest,b.bufferedRequestCount+=1}else l(a,b,!1,g,c,d,f);return h}function l(a,b,c,d,e,f,g){b.writelen=d,b.writecb=g,b.writing=!0,b.sync=!0,c?a._writev(e,b.onwrite):a._write(e,f,b.onwrite),b.sync=!1}function m(a,b,c,d,e){--b.pendingcb,c?x(e,d):e(d),a._writableState.errorEmitted=!0,a.emit("error",d)}function n(a){a.writing=!1,a.writecb=null,a.length-=a.writelen,a.writelen=0}function o(a,b){var c=a._writableState,d=c.sync,e=c.writecb;if(n(c),b)m(a,c,d,b,e);else{var f=s(c);f||c.corked||c.bufferProcessing||!c.bufferedRequest||r(a,c),d?y(p,a,c,f,e):p(a,c,f,e)}}function p(a,b,c,d){c||q(a,b),b.pendingcb--,d(),u(a,b)}function q(a,b){0===b.length&&b.needDrain&&(b.needDrain=!1,a.emit("drain"))}function r(a,b){b.bufferProcessing=!0;var c=b.bufferedRequest;if(a._writev&&c&&c.next){var d=b.bufferedRequestCount,e=new Array(d),f=b.corkedRequestsFree;f.entry=c;for(var g=0;c;)e[g]=c,c=c.next,g+=1;l(a,b,!0,b.length,e,"",f.finish),b.pendingcb++,b.lastBufferedRequest=null,b.corkedRequestsFree=f.next,f.next=null}else{for(;c;){var h=c.chunk,i=c.encoding,j=c.callback,k=b.objectMode?1:h.length;if(l(a,b,!1,k,h,i,j),c=c.next,b.writing)break}null===c&&(b.lastBufferedRequest=null)}b.bufferedRequestCount=0,b.bufferedRequest=c,b.bufferProcessing=!1}function s(a){return a.ending&&0===a.length&&null===a.bufferedRequest&&!a.finished&&!a.writing}function t(a,b){b.prefinished||(b.prefinished=!0,a.emit("prefinish"))}function u(a,b){var c=s(b);return c&&(0===b.pendingcb?(t(a,b),b.finished=!0,a.emit("finish")):t(a,b)),c}function v(a,b,c){b.ending=!0,u(a,b),c&&(b.finished?x(c):a.once("finish",c)),b.ended=!0,a.writable=!1}function w(a){var b=this;this.next=null,this.entry=null,this.finish=function(c){var d=b.entry;for(b.entry=null;d;){var e=d.callback;a.pendingcb--,e(c),d=d.next}a.corkedRequestsFree?a.corkedRequestsFree.next=b:a.corkedRequestsFree=b}}b.exports=g;var x=a("process-nextick-args"),y=!c.browser&&["v0.10","v0.9."].indexOf(c.version.slice(0,5))>-1?setImmediate:x,z=a("buffer").Buffer;g.WritableState=f;var A=a("core-util-is");A.inherits=a("inherits");var B,C={deprecate:a("util-deprecate")};!function(){try{B=a("stream")}catch(b){}finally{B||(B=a("events").EventEmitter)}}();var z=a("buffer").Buffer;A.inherits(g,B);var D;f.prototype.getBuffer=function(){for(var a=this.bufferedRequest,b=[];a;)b.push(a),a=a.next;return b},function(){try{Object.defineProperty(f.prototype,"buffer",{get:C.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.")})}catch(a){}}();var D;g.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe. Not readable."))},g.prototype.write=function(a,b,c){var e=this._writableState,f=!1;return"function"==typeof b&&(c=b,b=null),z.isBuffer(a)?b="buffer":b||(b=e.defaultEncoding),"function"!=typeof c&&(c=d),e.ended?h(this,c):i(this,e,a,c)&&(e.pendingcb++,f=k(this,e,a,b,c)),f},g.prototype.cork=function(){var a=this._writableState;a.corked++},g.prototype.uncork=function(){var a=this._writableState;a.corked&&(a.corked--,a.writing||a.corked||a.finished||a.bufferProcessing||!a.bufferedRequest||r(this,a))},g.prototype.setDefaultEncoding=function(a){if("string"==typeof a&&(a=a.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((a+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+a);this._writableState.defaultEncoding=a},g.prototype._write=function(a,b,c){c(new Error("not implemented"))},g.prototype._writev=null,g.prototype.end=function(a,b,c){var d=this._writableState;"function"==typeof a?(c=a,a=null,b=null):"function"==typeof b&&(c=b,b=null),null!==a&&void 0!==a&&this.write(a,b),d.corked&&(d.corked=1,this.uncork()),d.ending||d.finished||v(this,d,c)}}).call(this,a("_process"))},{"./_stream_duplex":96,_process:90,buffer:5,"core-util-is":78,events:79,inherits:83,"process-nextick-args":89,"util-deprecate":143}],101:[function(a,b,c){b.exports=a("./lib/_stream_passthrough.js")},{"./lib/_stream_passthrough.js":97}],102:[function(a,b,c){var d=function(){try{return a("stream")}catch(b){}}();c=b.exports=a("./lib/_stream_readable.js"),c.Stream=d||c,c.Readable=c,c.Writable=a("./lib/_stream_writable.js"),c.Duplex=a("./lib/_stream_duplex.js"),c.Transform=a("./lib/_stream_transform.js"),c.PassThrough=a("./lib/_stream_passthrough.js")},{"./lib/_stream_duplex.js":96,"./lib/_stream_passthrough.js":97,"./lib/_stream_readable.js":98,"./lib/_stream_transform.js":99,"./lib/_stream_writable.js":100}],103:[function(a,b,c){b.exports=a("./lib/_stream_transform.js")},{"./lib/_stream_transform.js":99}],104:[function(a,b,c){b.exports=a("./lib/_stream_writable.js")},{"./lib/_stream_writable.js":100}],105:[function(a,b,c){"use strict";b.exports={ABSOLUTE:"absolute",PATH_RELATIVE:"pathRelative",ROOT_RELATIVE:"rootRelative",SHORTEST:"shortest"}},{}],106:[function(a,b,c){"use strict";function d(a,b){return!a.auth||b.removeAuth||!a.extra.relation.maximumHost&&b.output!==p.ABSOLUTE?"":a.auth+"@"}function e(a,b){return a.hash?a.hash:""}function f(a,b){return a.host.full&&(a.extra.relation.maximumAuth||b.output===p.ABSOLUTE)?a.host.full:""}function g(a,b){var c="",d=a.path.absolute.string,e=a.path.relative.string,f=o(a,b);if(a.extra.relation.maximumHost||b.output===p.ABSOLUTE||b.output===p.ROOT_RELATIVE)c=d;else if(e.length<=d.length&&b.output===p.SHORTEST||b.output===p.PATH_RELATIVE){if(c=e,""===c){var g=n(a,b)&&!!m(a,b);a.extra.relation.maximumPath&&!f?c="./":!a.extra.relation.overridesQuery||f||g||(c="./")}}else c=d;return"/"!==c||f||!b.removeRootTrailingSlash||a.extra.relation.minimumPort&&b.output!==p.ABSOLUTE||(c=""),c}function h(a,b){return a.port&&!a.extra.portIsDefault&&a.extra.relation.maximumHost?":"+a.port:""}function i(a,b){return n(a,b)?m(a,b):""}function j(a,b){return o(a,b)?a.resource:""}function k(a,b){var c="";return(a.extra.relation.maximumHost||b.output===p.ABSOLUTE)&&(c+=a.extra.relation.minimumScheme&&b.schemeRelative&&b.output!==p.ABSOLUTE?"//":a.scheme+"://"),c}function l(a,b){var c="";return c+=k(a,b),c+=d(a,b),c+=f(a,b),c+=h(a,b),c+=g(a,b),c+=j(a,b),c+=i(a,b),c+=e(a,b)}function m(a,b){var c=b.removeEmptyQueries&&a.extra.relation.minimumPort;return a.query.string[c?"stripped":"full"]}function n(a,b){return!a.extra.relation.minimumQuery||b.output===p.ABSOLUTE||b.output===p.ROOT_RELATIVE}function o(a,b){var c=b.removeDirectoryIndexes&&a.extra.resourceIsIndex,d=a.extra.relation.minimumResource&&b.output!==p.ABSOLUTE&&b.output!==p.ROOT_RELATIVE;return!!a.resource&&!d&&!c}var p=a("./constants");b.exports=l},{"./constants":105}],107:[function(a,b,c){"use strict";function d(a,b){this.options=g(b,{defaultPorts:{ftp:21,http:80,https:443},directoryIndexes:["index.html"],ignore_www:!1,output:d.SHORTEST,rejectedSchemes:["data","javascript","mailto"],removeAuth:!1,removeDirectoryIndexes:!0,removeEmptyQueries:!1,removeRootTrailingSlash:!0,schemeRelative:!0,site:void 0,slashesDenoteHost:!0}),this.from=i.from(a,this.options,null)}var e=a("./constants"),f=a("./format"),g=a("./options"),h=a("./util/object"),i=a("./parse"),j=a("./relate");d.prototype.relate=function(a,b,c){if(h.isPlainObject(b)?(c=b,b=a,a=null):b||(b=a,a=null),c=g(c,this.options),a=a||c.site,a=i.from(a,c,this.from),!a||!a.href)throw new Error("from value not defined.");if(a.extra.hrefInfo.minimumPathOnly)throw new Error("from value supplied is not absolute: "+a.href);return b=i.to(b,c),b.valid===!1?b.href:(b=j(a,b,c),b=f(b,c))},d.relate=function(a,b,c){return(new d).relate(a,b,c)},h.shallowMerge(d,e),b.exports=d},{"./constants":105,"./format":106,"./options":108,"./parse":111,"./relate":118,"./util/object":120}],108:[function(a,b,c){"use strict";function d(a,b){if(f.isPlainObject(a)){var c={};for(var d in b)b.hasOwnProperty(d)&&(void 0!==a[d]?c[d]=e(a[d],b[d]):c[d]=b[d]);return c}return b}function e(a,b){return b instanceof Object&&a instanceof Object?b instanceof Array&&a instanceof Array?b.concat(a):f.shallowMerge(a,b):a}var f=a("./util/object");b.exports=d},{"./util/object":120}],109:[function(a,b,c){"use strict";function d(a,b){if(b.ignore_www){var c=a.host.full;if(c){var d=c;0===c.indexOf("www.")&&(d=c.substr(4)),a.host.stripped=d}}}b.exports=d},{}],110:[function(a,b,c){"use strict";function d(a){var b=!(a.scheme||a.auth||a.host.full||a.port),c=b&&!a.path.absolute.string,d=c&&!a.resource,e=d&&!a.query.string.full.length,f=e&&!a.hash;a.extra.hrefInfo.minimumPathOnly=b,a.extra.hrefInfo.minimumResourceOnly=c,a.extra.hrefInfo.minimumQueryOnly=d,a.extra.hrefInfo.minimumHashOnly=e,a.extra.hrefInfo.empty=f}b.exports=d},{}],111:[function(a,b,c){"use strict";function d(a,b,c){if(a){var d=e(a,b),f=l.resolveDotSegments(d.path.absolute.array);return d.path.absolute.array=f,d.path.absolute.string="/"+l.join(f),d}return c}function e(a,b){var c=k(a,b);return c.valid===!1?c:(g(c,b),i(c,b),h(c,b),j(c,b),f(c),c)}var f=a("./hrefInfo"),g=a("./host"),h=a("./path"),i=a("./port"),j=a("./query"),k=a("./urlstring"),l=a("../util/path");b.exports={from:d,to:e}},{"../util/path":121,"./host":109,"./hrefInfo":110,"./path":112,"./port":113,"./query":114,"./urlstring":115}],112:[function(a,b,c){"use strict";function d(a,b){var c=!1;return b.directoryIndexes.every(function(b){return b===a?(c=!0,!1):!0}),c}function e(a,b){var c=a.path.absolute.string;if(c){var e=c.lastIndexOf("/");if(e>-1){if(++e<c.length){var g=c.substr(e);"."!==g&&".."!==g?(a.resource=g,c=c.substr(0,e)):c+="/"}a.path.absolute.string=c,a.path.absolute.array=f(c)}else"."===c||".."===c?(c+="/",a.path.absolute.string=c,a.path.absolute.array=f(c)):(a.resource=c,a.path.absolute.string=null);a.extra.resourceIsIndex=d(a.resource,b)}}function f(a){if("/"!==a){var b=[];return a.split("/").forEach(function(a){""!==a&&b.push(a)}),b}return[]}b.exports=e},{}],113:[function(a,b,c){"use strict";function d(a,b){var c=-1;for(var d in b.defaultPorts)if(d===a.scheme&&b.defaultPorts.hasOwnProperty(d)){c=b.defaultPorts[d];break}c>-1&&(c=c.toString(),null===a.port&&(a.port=c),a.extra.portIsDefault=a.port===c)}b.exports=d},{}],114:[function(a,b,c){"use strict";function d(a,b){a.query.string.full=e(a.query.object,!1),b.removeEmptyQueries&&(a.query.string.stripped=e(a.query.object,!0))}function e(a,b){var c=0,d="";for(var e in a)if(""!==e&&a.hasOwnProperty(e)){var f=a[e];""===f&&b||(d+=1===++c?"?":"&",e=encodeURIComponent(e),d+=""!==f?e+"="+encodeURIComponent(f).replace(/%20/g,"+"):e)}return d}b.exports=d},{}],115:[function(a,b,c){"use strict";function d(a){var b=a.protocol;return b&&b.indexOf(":")===b.length-1&&(b=b.substr(0,b.length-1)),a.host={full:a.hostname,stripped:null},a.path={absolute:{array:null,string:a.pathname},relative:{array:null,string:null}},a.query={object:a.query,string:{full:null,stripped:null}},a.extra={hrefInfo:{minimumPathOnly:null,minimumResourceOnly:null,minimumQueryOnly:null,minimumHashOnly:null,empty:null,separatorOnlyQuery:"?"===a.search},portIsDefault:null,relation:{maximumScheme:null,maximumAuth:null,maximumHost:null,maximumPort:null,maximumPath:null,maximumResource:null,maximumQuery:null,maximumHash:null,minimumScheme:null,minimumAuth:null,minimumHost:null,minimumPort:null,minimumPath:null,minimumResource:null,minimumQuery:null,minimumHash:null,overridesQuery:null},resourceIsIndex:null,slashes:a.slashes},a.resource=null,a.scheme=b,delete a.hostname,delete a.pathname,delete a.protocol,delete a.search,delete a.slashes,a}function e(a,b){var c=!0;return b.rejectedSchemes.every(function(b){return c=!(0===a.indexOf(b+":"))}),c}function f(a,b){return e(a,b)?d(g(a,!0,b.slashesDenoteHost)):{href:a,valid:!1}}var g=a("url").parse;b.exports=f},{url:141}],116:[function(a,b,c){"use strict";function d(a,b,c){h.upToPath(a,b,c),a.extra.relation.minimumScheme&&(a.scheme=b.scheme),a.extra.relation.minimumAuth&&(a.auth=b.auth),a.extra.relation.minimumHost&&(a.host=i.clone(b.host)),a.extra.relation.minimumPort&&f(a,b),a.extra.relation.minimumScheme&&e(a,b),h.pathOn(a,b,c),a.extra.relation.minimumResource&&g(a,b),a.extra.relation.minimumQuery&&(a.query=i.clone(b.query)),a.extra.relation.minimumHash&&(a.hash=b.hash)}function e(a,b){if(a.extra.relation.maximumHost||!a.extra.hrefInfo.minimumResourceOnly){var c=a.path.absolute.array,d="/";c?(a.extra.hrefInfo.minimumPathOnly&&0!==a.path.absolute.string.indexOf("/")&&(c=b.path.absolute.array.concat(c)),c=j.resolveDotSegments(c),d+=j.join(c)):c=[],a.path.absolute.array=c,a.path.absolute.string=d}else a.path=i.clone(b.path)}function f(a,b){a.port=b.port,a.extra.portIsDefault=b.extra.portIsDefault}function g(a,b){a.resource=b.resource,a.extra.resourceIsIndex=b.extra.resourceIsIndex}var h=a("./findRelation"),i=a("../util/object"),j=a("../util/path");b.exports=d},{"../util/object":120,"../util/path":121,"./findRelation":117}],117:[function(a,b,c){"use strict";function d(a,b,c){var d=a.extra.hrefInfo.minimumPathOnly,e=a.scheme===b.scheme||!a.scheme,f=e&&(a.auth===b.auth||c.removeAuth||d),g=c.ignore_www?"stripped":"full",h=f&&(a.host[g]===b.host[g]||d),i=h&&(a.port===b.port||d);a.extra.relation.minimumScheme=e,a.extra.relation.minimumAuth=f,a.extra.relation.minimumHost=h,a.extra.relation.minimumPort=i,a.extra.relation.maximumScheme=!e||e&&!f,a.extra.relation.maximumAuth=!e||e&&!h,a.extra.relation.maximumHost=!e||e&&!i}function e(a,b,c){var d=a.extra.hrefInfo.minimumQueryOnly,e=a.extra.hrefInfo.minimumHashOnly,f=a.extra.hrefInfo.empty,g=a.extra.relation.minimumPort,h=a.extra.relation.minimumScheme,i=g&&a.path.absolute.string===b.path.absolute.string,j=a.resource===b.resource||!a.resource&&b.extra.resourceIsIndex||c.removeDirectoryIndexes&&a.extra.resourceIsIndex&&!b.resource,k=i&&(j||d||e||f),l=c.removeEmptyQueries?"stripped":"full",m=a.query.string[l],n=b.query.string[l],o=k&&!!m&&m===n||(e||f)&&!a.extra.hrefInfo.separatorOnlyQuery,p=o&&a.hash===b.hash;a.extra.relation.minimumPath=i,a.extra.relation.minimumResource=k,a.extra.relation.minimumQuery=o,a.extra.relation.minimumHash=p,a.extra.relation.maximumPort=!h||h&&!i,a.extra.relation.maximumPath=!h||h&&!k,a.extra.relation.maximumResource=!h||h&&!o,a.extra.relation.maximumQuery=!h||h&&!p,a.extra.relation.maximumHash=!h||h&&!p,a.extra.relation.overridesQuery=i&&a.extra.relation.maximumResource&&!o&&!!n}b.exports={pathOn:e,upToPath:d}},{}],118:[function(a,b,c){"use strict";function d(a,b,c){return e(b,a,c),f(b,a,c),b}var e=a("./absolutize"),f=a("./relativize");b.exports=d},{"./absolutize":116,"./relativize":119}],119:[function(a,b,c){"use strict";function d(a,b){var c=[],d=!0,e=-1;return b.forEach(function(b,f){d&&(a[f]!==b?d=!1:e=f),d||c.push("..")}),a.forEach(function(a,b){b>e&&c.push(a)}),c}function e(a,b,c){if(a.extra.relation.minimumScheme){var e=d(a.path.absolute.array,b.path.absolute.array);a.path.relative.array=e,a.path.relative.string=f.join(e)}}var f=a("../util/path");b.exports=e},{"../util/path":121}],120:[function(a,b,c){"use strict";function d(a){if(a instanceof Object){var b=a instanceof Array?[]:{};for(var c in a)a.hasOwnProperty(c)&&(b[c]=d(a[c]));return b}return a}function e(a){return!!a&&"object"==typeof a&&a.constructor===Object}function f(a,b){if(a instanceof Object&&b instanceof Object)for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}b.exports={clone:d,isPlainObject:e,shallowMerge:f}},{}],121:[function(a,b,c){"use strict";function d(a){return a.length?a.join("/")+"/":""}function e(a){var b=[];return a.forEach(function(a){".."!==a?"."!==a&&b.push(a):b.length&&b.splice(b.length-1,1)}),b}b.exports={join:d,resolveDotSegments:e}},{}],122:[function(a,b,c){function d(){e.call(this)}b.exports=d;var e=a("events").EventEmitter,f=a("inherits");f(d,e),d.Readable=a("readable-stream/readable.js"),d.Writable=a("readable-stream/writable.js"),d.Duplex=a("readable-stream/duplex.js"),d.Transform=a("readable-stream/transform.js"),d.PassThrough=a("readable-stream/passthrough.js"),d.Stream=d,d.prototype.pipe=function(a,b){function c(b){a.writable&&!1===a.write(b)&&j.pause&&j.pause()}function d(){j.readable&&j.resume&&j.resume()}function f(){k||(k=!0,a.end())}function g(){k||(k=!0,"function"==typeof a.destroy&&a.destroy())}function h(a){if(i(),0===e.listenerCount(this,"error"))throw a}function i(){j.removeListener("data",c),a.removeListener("drain",d),j.removeListener("end",f),j.removeListener("close",g),j.removeListener("error",h),a.removeListener("error",h),j.removeListener("end",i),j.removeListener("close",i),a.removeListener("close",i)}var j=this;j.on("data",c),a.on("drain",d),a._isStdio||b&&b.end===!1||(j.on("end",f),j.on("close",g));var k=!1;return j.on("error",h),a.on("error",h),j.on("end",i),j.on("close",i),a.on("close",i),a.emit("pipe",j),a}},{events:79,inherits:83,"readable-stream/duplex.js":95,"readable-stream/passthrough.js":101,"readable-stream/readable.js":102,"readable-stream/transform.js":103,"readable-stream/writable.js":104}],123:[function(a,b,c){(function(b){var d=a("./lib/request"),e=a("xtend"),f=a("builtin-status-codes"),g=a("url"),h=c;h.request=function(a,c){a="string"==typeof a?g.parse(a):e(a);var f=-1===b.location.protocol.search(/^https?:$/)?"http:":"",h=a.protocol||f,i=a.hostname||a.host,j=a.port,k=a.path||"/";i&&-1!==i.indexOf(":")&&(i="["+i+"]"),a.url=(i?h+"//"+i:"")+(j?":"+j:"")+k,a.method=(a.method||"GET").toUpperCase(),a.headers=a.headers||{};var l=new d(a);return c&&l.on("response",c),l},h.get=function(a,b){var c=h.request(a,b);return c.end(),c},h.Agent=function(){},h.Agent.defaultMaxSockets=4,h.STATUS_CODES=f,h.METHODS=["CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","REPORT","SEARCH","SUBSCRIBE","TRACE","UNLOCK","UNSUBSCRIBE"]}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./lib/request":125,"builtin-status-codes":6,url:141,xtend:147}],124:[function(a,b,c){(function(a){function b(a){try{return f.responseType=a,f.responseType===a}catch(b){}return!1}function d(a){return"function"==typeof a}c.fetch=d(a.fetch)&&d(a.ReadableByteStream),c.blobConstructor=!1;try{new Blob([new ArrayBuffer(1)]),c.blobConstructor=!0}catch(e){}var f=new a.XMLHttpRequest;f.open("GET",a.location.host?"/":"https://example.com");var g="undefined"!=typeof a.ArrayBuffer,h=g&&d(a.ArrayBuffer.prototype.slice);c.arraybuffer=g&&b("arraybuffer"),c.msstream=!c.fetch&&h&&b("ms-stream"),c.mozchunkedarraybuffer=!c.fetch&&g&&b("moz-chunked-arraybuffer"),c.overrideMimeType=d(f.overrideMimeType),c.vbArray=d(a.VBArray),f=null}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],125:[function(a,b,c){(function(c,d,e){function f(a){return h.fetch?"fetch":h.mozchunkedarraybuffer?"moz-chunked-arraybuffer":h.msstream?"ms-stream":h.arraybuffer&&a?"arraybuffer":h.vbArray&&a?"text:vbarray":"text"}function g(a){try{var b=a.status;return null!==b&&0!==b}catch(c){return!1}}var h=a("./capability"),i=a("inherits"),j=a("./response"),k=a("stream"),l=a("to-arraybuffer"),m=j.IncomingMessage,n=j.readyStates,o=b.exports=function(a){var b=this;k.Writable.call(b),b._opts=a,b._body=[],b._headers={},a.auth&&b.setHeader("Authorization","Basic "+new e(a.auth).toString("base64")),Object.keys(a.headers).forEach(function(c){b.setHeader(c,a.headers[c])});var c;if("prefer-streaming"===a.mode)c=!1;else if("allow-wrong-content-type"===a.mode)c=!h.overrideMimeType;else{if(a.mode&&"default"!==a.mode&&"prefer-fast"!==a.mode)throw new Error("Invalid value for opts.mode");c=!0}b._mode=f(c),b.on("finish",function(){b._onFinish()})};i(o,k.Writable),o.prototype.setHeader=function(a,b){var c=this,d=a.toLowerCase();-1===p.indexOf(d)&&(c._headers[d]={name:a,value:b})},o.prototype.getHeader=function(a){var b=this;return b._headers[a.toLowerCase()].value},o.prototype.removeHeader=function(a){var b=this;delete b._headers[a.toLowerCase()]},o.prototype._onFinish=function(){var a=this;if(!a._destroyed){var b,f=a._opts,g=a._headers;if("POST"!==f.method&&"PUT"!==f.method&&"PATCH"!==f.method||(b=h.blobConstructor?new d.Blob(a._body.map(function(a){return l(a)}),{type:(g["content-type"]||{}).value||""}):e.concat(a._body).toString()),"fetch"===a._mode){var i=Object.keys(g).map(function(a){return[g[a].name,g[a].value]});d.fetch(a._opts.url,{method:a._opts.method,headers:i,body:b,mode:"cors",credentials:f.withCredentials?"include":"same-origin"}).then(function(b){a._fetchResponse=b,a._connect()},function(b){a.emit("error",b)})}else{var j=a._xhr=new d.XMLHttpRequest;try{j.open(a._opts.method,a._opts.url,!0)}catch(k){return void c.nextTick(function(){a.emit("error",k)})}"responseType"in j&&(j.responseType=a._mode.split(":")[0]),"withCredentials"in j&&(j.withCredentials=!!f.withCredentials),"text"===a._mode&&"overrideMimeType"in j&&j.overrideMimeType("text/plain; charset=x-user-defined"),Object.keys(g).forEach(function(a){j.setRequestHeader(g[a].name,g[a].value)}),a._response=null,j.onreadystatechange=function(){switch(j.readyState){case n.LOADING:case n.DONE:a._onXHRProgress()}},"moz-chunked-arraybuffer"===a._mode&&(j.onprogress=function(){a._onXHRProgress()}),j.onerror=function(){a._destroyed||a.emit("error",new Error("XHR error"))};try{j.send(b)}catch(k){return void c.nextTick(function(){a.emit("error",k)})}}}},o.prototype._onXHRProgress=function(){var a=this;g(a._xhr)&&!a._destroyed&&(a._response||a._connect(),a._response._onXHRProgress())},o.prototype._connect=function(){var a=this;a._destroyed||(a._response=new m(a._xhr,a._fetchResponse,a._mode),a.emit("response",a._response))},o.prototype._write=function(a,b,c){var d=this;d._body.push(a),c()},o.prototype.abort=o.prototype.destroy=function(){var a=this;a._destroyed=!0,a._response&&(a._response._destroyed=!0),a._xhr&&a._xhr.abort()},o.prototype.end=function(a,b,c){var d=this;"function"==typeof a&&(c=a,a=void 0),k.Writable.prototype.end.call(d,a,b,c)},o.prototype.flushHeaders=function(){},o.prototype.setTimeout=function(){},o.prototype.setNoDelay=function(){},o.prototype.setSocketKeepAlive=function(){};var p=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","cookie","cookie2","date","dnt","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","user-agent","via"]}).call(this,a("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},a("buffer").Buffer)},{"./capability":124,"./response":126,_process:90,buffer:5,inherits:83,stream:122,"to-arraybuffer":128}],126:[function(a,b,c){(function(b,d,e){var f=a("./capability"),g=a("inherits"),h=a("stream"),i=c.readyStates={UNSENT:0,OPENED:1,HEADERS_RECEIVED:2,LOADING:3,DONE:4},j=c.IncomingMessage=function(a,c,d){function g(){m.read().then(function(a){if(!i._destroyed){if(a.done)return void i.push(null);i.push(new e(a.value)),g()}})}var i=this;if(h.Readable.call(i),i._mode=d,i.headers={},i.rawHeaders=[],i.trailers={},i.rawTrailers=[],i.on("end",function(){b.nextTick(function(){i.emit("close")})}),"fetch"===d){i._fetchResponse=c,i.statusCode=c.status,i.statusMessage=c.statusText;for(var j,k,l=c.headers[Symbol.iterator]();j=(k=l.next()).value,!k.done;)i.headers[j[0].toLowerCase()]=j[1],i.rawHeaders.push(j[0],j[1]);var m=c.body.getReader();g()}else{i._xhr=a,i._pos=0,i.statusCode=a.status,i.statusMessage=a.statusText;var n=a.getAllResponseHeaders().split(/\r?\n/);if(n.forEach(function(a){var b=a.match(/^([^:]+):\s*(.*)/);if(b){var c=b[1].toLowerCase();"set-cookie"===c?(void 0===i.headers[c]&&(i.headers[c]=[]),i.headers[c].push(b[2])):void 0!==i.headers[c]?i.headers[c]+=", "+b[2]:i.headers[c]=b[2],i.rawHeaders.push(b[1],b[2])}}),i._charset="x-user-defined",!f.overrideMimeType){var o=i.rawHeaders["mime-type"];if(o){var p=o.match(/;\s*charset=([^;])(;|$)/);p&&(i._charset=p[1].toLowerCase())}i._charset||(i._charset="utf-8")}}};g(j,h.Readable),j.prototype._read=function(){},j.prototype._onXHRProgress=function(){var a=this,b=a._xhr,c=null;switch(a._mode){case"text:vbarray":if(b.readyState!==i.DONE)break;try{c=new d.VBArray(b.responseBody).toArray()}catch(f){}if(null!==c){a.push(new e(c));break}case"text":try{c=b.responseText}catch(f){a._mode="text:vbarray";break}if(c.length>a._pos){var g=c.substr(a._pos);if("x-user-defined"===a._charset){for(var h=new e(g.length),j=0;j<g.length;j++)h[j]=255&g.charCodeAt(j);a.push(h)}else a.push(g,a._charset);a._pos=c.length}break;case"arraybuffer":if(b.readyState!==i.DONE)break;c=b.response,a.push(new e(new Uint8Array(c)));break;case"moz-chunked-arraybuffer":if(c=b.response,b.readyState!==i.LOADING||!c)break;a.push(new e(new Uint8Array(c)));break;case"ms-stream":if(c=b.response,b.readyState!==i.LOADING)break;var k=new d.MSStreamReader;k.onprogress=function(){k.result.byteLength>a._pos&&(a.push(new e(new Uint8Array(k.result.slice(a._pos)))),a._pos=k.result.byteLength)},k.onload=function(){a.push(null)},k.readAsArrayBuffer(c)}a._xhr.readyState===i.DONE&&"ms-stream"!==a._mode&&a.push(null)}}).call(this,a("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},a("buffer").Buffer)},{"./capability":124,_process:90,buffer:5,inherits:83,stream:122}],127:[function(a,b,c){function d(a){if(a&&!i(a))throw new Error("Unknown encoding: "+a)}function e(a){return a.toString(this.encoding)}function f(a){this.charReceived=a.length%2,this.charLength=this.charReceived?2:0}function g(a){this.charReceived=a.length%3,this.charLength=this.charReceived?3:0}var h=a("buffer").Buffer,i=h.isEncoding||function(a){switch(a&&a.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}},j=c.StringDecoder=function(a){switch(this.encoding=(a||"utf8").toLowerCase().replace(/[-_]/,""),d(a),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=f;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=g;break;default:return void(this.write=e)}this.charBuffer=new h(6),this.charReceived=0,this.charLength=0};j.prototype.write=function(a){for(var b="";this.charLength;){var c=a.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:a.length;if(a.copy(this.charBuffer,this.charReceived,0,c),this.charReceived+=c,this.charReceived<this.charLength)return"";a=a.slice(c,a.length),b=this.charBuffer.slice(0,this.charLength).toString(this.encoding);var d=b.charCodeAt(b.length-1);if(!(d>=55296&&56319>=d)){if(this.charReceived=this.charLength=0,0===a.length)return b;break}this.charLength+=this.surrogateSize,b=""}this.detectIncompleteChar(a);var e=a.length;this.charLength&&(a.copy(this.charBuffer,0,a.length-this.charReceived,e),e-=this.charReceived),b+=a.toString(this.encoding,0,e);var e=b.length-1,d=b.charCodeAt(e);if(d>=55296&&56319>=d){var f=this.surrogateSize;return this.charLength+=f,this.charReceived+=f,this.charBuffer.copy(this.charBuffer,f,0,f),a.copy(this.charBuffer,0,0,f),b.substring(0,e)}return b},j.prototype.detectIncompleteChar=function(a){for(var b=a.length>=3?3:a.length;b>0;b--){var c=a[a.length-b];if(1==b&&c>>5==6){this.charLength=2;break}if(2>=b&&c>>4==14){this.charLength=3;break}if(3>=b&&c>>3==30){this.charLength=4;break}}this.charReceived=b},j.prototype.end=function(a){var b="";if(a&&a.length&&(b=this.write(a)),this.charReceived){var c=this.charReceived,d=this.charBuffer,e=this.encoding;b+=d.slice(0,c).toString(e)}return b}},{buffer:5}],128:[function(a,b,c){var d=a("buffer").Buffer;b.exports=function(a){if(a instanceof Uint8Array){if(0===a.byteOffset&&a.byteLength===a.buffer.byteLength)return a.buffer;if("function"==typeof a.buffer.slice)return a.buffer.slice(a.byteOffset,a.byteOffset+a.byteLength)}if(d.isBuffer(a)){for(var b=new Uint8Array(a.length),c=a.length,e=0;c>e;e++)b[e]=a[e];return b.buffer}throw new Error("Argument must be a Buffer");
+}},{buffer:5}],129:[function(a,b,c){function d(){this._array=[],this._set={}}var e=a("./util");d.fromArray=function(a,b){for(var c=new d,e=0,f=a.length;f>e;e++)c.add(a[e],b);return c},d.prototype.size=function(){return Object.getOwnPropertyNames(this._set).length},d.prototype.add=function(a,b){var c=e.toSetString(a),d=this._set.hasOwnProperty(c),f=this._array.length;d&&!b||this._array.push(a),d||(this._set[c]=f)},d.prototype.has=function(a){var b=e.toSetString(a);return this._set.hasOwnProperty(b)},d.prototype.indexOf=function(a){var b=e.toSetString(a);if(this._set.hasOwnProperty(b))return this._set[b];throw new Error('"'+a+'" is not in the set.')},d.prototype.at=function(a){if(a>=0&&a<this._array.length)return this._array[a];throw new Error("No element indexed by "+a)},d.prototype.toArray=function(){return this._array.slice()},c.ArraySet=d},{"./util":138}],130:[function(a,b,c){function d(a){return 0>a?(-a<<1)+1:(a<<1)+0}function e(a){var b=1===(1&a),c=a>>1;return b?-c:c}var f=a("./base64"),g=5,h=1<<g,i=h-1,j=h;c.encode=function(a){var b,c="",e=d(a);do b=e&i,e>>>=g,e>0&&(b|=j),c+=f.encode(b);while(e>0);return c},c.decode=function(a,b,c){var d,h,k=a.length,l=0,m=0;do{if(b>=k)throw new Error("Expected more digits in base 64 VLQ value.");if(h=f.decode(a.charCodeAt(b++)),-1===h)throw new Error("Invalid base64 digit: "+a.charAt(b-1));d=!!(h&j),h&=i,l+=h<<m,m+=g}while(d);c.value=e(l),c.rest=b}},{"./base64":131}],131:[function(a,b,c){var d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");c.encode=function(a){if(a>=0&&a<d.length)return d[a];throw new TypeError("Must be between 0 and 63: "+a)},c.decode=function(a){var b=65,c=90,d=97,e=122,f=48,g=57,h=43,i=47,j=26,k=52;return a>=b&&c>=a?a-b:a>=d&&e>=a?a-d+j:a>=f&&g>=a?a-f+k:a==h?62:a==i?63:-1}},{}],132:[function(a,b,c){function d(a,b,e,f,g,h){var i=Math.floor((b-a)/2)+a,j=g(e,f[i],!0);return 0===j?i:j>0?b-i>1?d(i,b,e,f,g,h):h==c.LEAST_UPPER_BOUND?b<f.length?b:-1:i:i-a>1?d(a,i,e,f,g,h):h==c.LEAST_UPPER_BOUND?i:0>a?-1:a}c.GREATEST_LOWER_BOUND=1,c.LEAST_UPPER_BOUND=2,c.search=function(a,b,e,f){if(0===b.length)return-1;var g=d(-1,b.length,a,b,e,f||c.GREATEST_LOWER_BOUND);if(0>g)return-1;for(;g-1>=0&&0===e(b[g],b[g-1],!0);)--g;return g}},{}],133:[function(a,b,c){function d(a,b){var c=a.generatedLine,d=b.generatedLine,e=a.generatedColumn,g=b.generatedColumn;return d>c||d==c&&g>=e||f.compareByGeneratedPositionsInflated(a,b)<=0}function e(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}var f=a("./util");e.prototype.unsortedForEach=function(a,b){this._array.forEach(a,b)},e.prototype.add=function(a){d(this._last,a)?(this._last=a,this._array.push(a)):(this._sorted=!1,this._array.push(a))},e.prototype.toArray=function(){return this._sorted||(this._array.sort(f.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},c.MappingList=e},{"./util":138}],134:[function(a,b,c){function d(a,b,c){var d=a[b];a[b]=a[c],a[c]=d}function e(a,b){return Math.round(a+Math.random()*(b-a))}function f(a,b,c,g){if(g>c){var h=e(c,g),i=c-1;d(a,h,g);for(var j=a[g],k=c;g>k;k++)b(a[k],j)<=0&&(i+=1,d(a,i,k));d(a,i+1,k);var l=i+1;f(a,b,c,l-1),f(a,b,l+1,g)}}c.quickSort=function(a,b){f(a,b,0,a.length-1)}},{}],135:[function(a,b,c){function d(a){var b=a;return"string"==typeof a&&(b=JSON.parse(a.replace(/^\)\]\}'/,""))),null!=b.sections?new g(b):new e(b)}function e(a){var b=a;"string"==typeof a&&(b=JSON.parse(a.replace(/^\)\]\}'/,"")));var c=h.getArg(b,"version"),d=h.getArg(b,"sources"),e=h.getArg(b,"names",[]),f=h.getArg(b,"sourceRoot",null),g=h.getArg(b,"sourcesContent",null),i=h.getArg(b,"mappings"),k=h.getArg(b,"file",null);if(c!=this._version)throw new Error("Unsupported version: "+c);d=d.map(h.normalize).map(function(a){return f&&h.isAbsolute(f)&&h.isAbsolute(a)?h.relative(f,a):a}),this._names=j.fromArray(e,!0),this._sources=j.fromArray(d,!0),this.sourceRoot=f,this.sourcesContent=g,this._mappings=i,this.file=k}function f(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function g(a){var b=a;"string"==typeof a&&(b=JSON.parse(a.replace(/^\)\]\}'/,"")));var c=h.getArg(b,"version"),e=h.getArg(b,"sections");if(c!=this._version)throw new Error("Unsupported version: "+c);this._sources=new j,this._names=new j;var f={line:-1,column:0};this._sections=e.map(function(a){if(a.url)throw new Error("Support for url field in sections not implemented.");var b=h.getArg(a,"offset"),c=h.getArg(b,"line"),e=h.getArg(b,"column");if(c<f.line||c===f.line&&e<f.column)throw new Error("Section offsets must be ordered and non-overlapping.");return f=b,{generatedOffset:{generatedLine:c+1,generatedColumn:e+1},consumer:new d(h.getArg(a,"map"))}})}var h=a("./util"),i=a("./binary-search"),j=a("./array-set").ArraySet,k=a("./base64-vlq"),l=a("./quick-sort").quickSort;d.fromSourceMap=function(a){return e.fromSourceMap(a)},d.prototype._version=3,d.prototype.__generatedMappings=null,Object.defineProperty(d.prototype,"_generatedMappings",{get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),d.prototype.__originalMappings=null,Object.defineProperty(d.prototype,"_originalMappings",{get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),d.prototype._charIsMappingSeparator=function(a,b){var c=a.charAt(b);return";"===c||","===c},d.prototype._parseMappings=function(a,b){throw new Error("Subclasses must implement _parseMappings")},d.GENERATED_ORDER=1,d.ORIGINAL_ORDER=2,d.GREATEST_LOWER_BOUND=1,d.LEAST_UPPER_BOUND=2,d.prototype.eachMapping=function(a,b,c){var e,f=b||null,g=c||d.GENERATED_ORDER;switch(g){case d.GENERATED_ORDER:e=this._generatedMappings;break;case d.ORIGINAL_ORDER:e=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var i=this.sourceRoot;e.map(function(a){var b=null===a.source?null:this._sources.at(a.source);return null!=b&&null!=i&&(b=h.join(i,b)),{source:b,generatedLine:a.generatedLine,generatedColumn:a.generatedColumn,originalLine:a.originalLine,originalColumn:a.originalColumn,name:null===a.name?null:this._names.at(a.name)}},this).forEach(a,f)},d.prototype.allGeneratedPositionsFor=function(a){var b=h.getArg(a,"line"),c={source:h.getArg(a,"source"),originalLine:b,originalColumn:h.getArg(a,"column",0)};if(null!=this.sourceRoot&&(c.source=h.relative(this.sourceRoot,c.source)),!this._sources.has(c.source))return[];c.source=this._sources.indexOf(c.source);var d=[],e=this._findMapping(c,this._originalMappings,"originalLine","originalColumn",h.compareByOriginalPositions,i.LEAST_UPPER_BOUND);if(e>=0){var f=this._originalMappings[e];if(void 0===a.column)for(var g=f.originalLine;f&&f.originalLine===g;)d.push({line:h.getArg(f,"generatedLine",null),column:h.getArg(f,"generatedColumn",null),lastColumn:h.getArg(f,"lastGeneratedColumn",null)}),f=this._originalMappings[++e];else for(var j=f.originalColumn;f&&f.originalLine===b&&f.originalColumn==j;)d.push({line:h.getArg(f,"generatedLine",null),column:h.getArg(f,"generatedColumn",null),lastColumn:h.getArg(f,"lastGeneratedColumn",null)}),f=this._originalMappings[++e]}return d},c.SourceMapConsumer=d,e.prototype=Object.create(d.prototype),e.prototype.consumer=d,e.fromSourceMap=function(a){var b=Object.create(e.prototype),c=b._names=j.fromArray(a._names.toArray(),!0),d=b._sources=j.fromArray(a._sources.toArray(),!0);b.sourceRoot=a._sourceRoot,b.sourcesContent=a._generateSourcesContent(b._sources.toArray(),b.sourceRoot),b.file=a._file;for(var g=a._mappings.toArray().slice(),i=b.__generatedMappings=[],k=b.__originalMappings=[],m=0,n=g.length;n>m;m++){var o=g[m],p=new f;p.generatedLine=o.generatedLine,p.generatedColumn=o.generatedColumn,o.source&&(p.source=d.indexOf(o.source),p.originalLine=o.originalLine,p.originalColumn=o.originalColumn,o.name&&(p.name=c.indexOf(o.name)),k.push(p)),i.push(p)}return l(b.__originalMappings,h.compareByOriginalPositions),b},e.prototype._version=3,Object.defineProperty(e.prototype,"sources",{get:function(){return this._sources.toArray().map(function(a){return null!=this.sourceRoot?h.join(this.sourceRoot,a):a},this)}}),e.prototype._parseMappings=function(a,b){for(var c,d,e,g,i,j=1,m=0,n=0,o=0,p=0,q=0,r=a.length,s=0,t={},u={},v=[],w=[];r>s;)if(";"===a.charAt(s))j++,s++,m=0;else if(","===a.charAt(s))s++;else{for(c=new f,c.generatedLine=j,g=s;r>g&&!this._charIsMappingSeparator(a,g);g++);if(d=a.slice(s,g),e=t[d])s+=d.length;else{for(e=[];g>s;)k.decode(a,s,u),i=u.value,s=u.rest,e.push(i);if(2===e.length)throw new Error("Found a source, but no line and column");if(3===e.length)throw new Error("Found a source and line, but no column");t[d]=e}c.generatedColumn=m+e[0],m=c.generatedColumn,e.length>1&&(c.source=p+e[1],p+=e[1],c.originalLine=n+e[2],n=c.originalLine,c.originalLine+=1,c.originalColumn=o+e[3],o=c.originalColumn,e.length>4&&(c.name=q+e[4],q+=e[4])),w.push(c),"number"==typeof c.originalLine&&v.push(c)}l(w,h.compareByGeneratedPositionsDeflated),this.__generatedMappings=w,l(v,h.compareByOriginalPositions),this.__originalMappings=v},e.prototype._findMapping=function(a,b,c,d,e,f){if(a[c]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+a[c]);if(a[d]<0)throw new TypeError("Column must be greater than or equal to 0, got "+a[d]);return i.search(a,b,e,f)},e.prototype.computeColumnSpans=function(){for(var a=0;a<this._generatedMappings.length;++a){var b=this._generatedMappings[a];if(a+1<this._generatedMappings.length){var c=this._generatedMappings[a+1];if(b.generatedLine===c.generatedLine){b.lastGeneratedColumn=c.generatedColumn-1;continue}}b.lastGeneratedColumn=1/0}},e.prototype.originalPositionFor=function(a){var b={generatedLine:h.getArg(a,"line"),generatedColumn:h.getArg(a,"column")},c=this._findMapping(b,this._generatedMappings,"generatedLine","generatedColumn",h.compareByGeneratedPositionsDeflated,h.getArg(a,"bias",d.GREATEST_LOWER_BOUND));if(c>=0){var e=this._generatedMappings[c];if(e.generatedLine===b.generatedLine){var f=h.getArg(e,"source",null);null!==f&&(f=this._sources.at(f),null!=this.sourceRoot&&(f=h.join(this.sourceRoot,f)));var g=h.getArg(e,"name",null);return null!==g&&(g=this._names.at(g)),{source:f,line:h.getArg(e,"originalLine",null),column:h.getArg(e,"originalColumn",null),name:g}}}return{source:null,line:null,column:null,name:null}},e.prototype.hasContentsOfAllSources=function(){return this.sourcesContent?this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(a){return null==a}):!1},e.prototype.sourceContentFor=function(a,b){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(a=h.relative(this.sourceRoot,a)),this._sources.has(a))return this.sourcesContent[this._sources.indexOf(a)];var c;if(null!=this.sourceRoot&&(c=h.urlParse(this.sourceRoot))){var d=a.replace(/^file:\/\//,"");if("file"==c.scheme&&this._sources.has(d))return this.sourcesContent[this._sources.indexOf(d)];if((!c.path||"/"==c.path)&&this._sources.has("/"+a))return this.sourcesContent[this._sources.indexOf("/"+a)]}if(b)return null;throw new Error('"'+a+'" is not in the SourceMap.')},e.prototype.generatedPositionFor=function(a){var b=h.getArg(a,"source");if(null!=this.sourceRoot&&(b=h.relative(this.sourceRoot,b)),!this._sources.has(b))return{line:null,column:null,lastColumn:null};b=this._sources.indexOf(b);var c={source:b,originalLine:h.getArg(a,"line"),originalColumn:h.getArg(a,"column")},e=this._findMapping(c,this._originalMappings,"originalLine","originalColumn",h.compareByOriginalPositions,h.getArg(a,"bias",d.GREATEST_LOWER_BOUND));if(e>=0){var f=this._originalMappings[e];if(f.source===c.source)return{line:h.getArg(f,"generatedLine",null),column:h.getArg(f,"generatedColumn",null),lastColumn:h.getArg(f,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},c.BasicSourceMapConsumer=e,g.prototype=Object.create(d.prototype),g.prototype.constructor=d,g.prototype._version=3,Object.defineProperty(g.prototype,"sources",{get:function(){for(var a=[],b=0;b<this._sections.length;b++)for(var c=0;c<this._sections[b].consumer.sources.length;c++)a.push(this._sections[b].consumer.sources[c]);return a}}),g.prototype.originalPositionFor=function(a){var b={generatedLine:h.getArg(a,"line"),generatedColumn:h.getArg(a,"column")},c=i.search(b,this._sections,function(a,b){var c=a.generatedLine-b.generatedOffset.generatedLine;return c?c:a.generatedColumn-b.generatedOffset.generatedColumn}),d=this._sections[c];return d?d.consumer.originalPositionFor({line:b.generatedLine-(d.generatedOffset.generatedLine-1),column:b.generatedColumn-(d.generatedOffset.generatedLine===b.generatedLine?d.generatedOffset.generatedColumn-1:0),bias:a.bias}):{source:null,line:null,column:null,name:null}},g.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(a){return a.consumer.hasContentsOfAllSources()})},g.prototype.sourceContentFor=function(a,b){for(var c=0;c<this._sections.length;c++){var d=this._sections[c],e=d.consumer.sourceContentFor(a,!0);if(e)return e}if(b)return null;throw new Error('"'+a+'" is not in the SourceMap.')},g.prototype.generatedPositionFor=function(a){for(var b=0;b<this._sections.length;b++){var c=this._sections[b];if(-1!==c.consumer.sources.indexOf(h.getArg(a,"source"))){var d=c.consumer.generatedPositionFor(a);if(d){var e={line:d.line+(c.generatedOffset.generatedLine-1),column:d.column+(c.generatedOffset.generatedLine===d.line?c.generatedOffset.generatedColumn-1:0)};return e}}}return{line:null,column:null}},g.prototype._parseMappings=function(a,b){this.__generatedMappings=[],this.__originalMappings=[];for(var c=0;c<this._sections.length;c++)for(var d=this._sections[c],e=d.consumer._generatedMappings,f=0;f<e.length;f++){var g=e[f],i=d.consumer._sources.at(g.source);null!==d.consumer.sourceRoot&&(i=h.join(d.consumer.sourceRoot,i)),this._sources.add(i),i=this._sources.indexOf(i);var j=d.consumer._names.at(g.name);this._names.add(j),j=this._names.indexOf(j);var k={source:i,generatedLine:g.generatedLine+(d.generatedOffset.generatedLine-1),generatedColumn:g.generatedColumn+(d.generatedOffset.generatedLine===g.generatedLine?d.generatedOffset.generatedColumn-1:0),originalLine:g.originalLine,originalColumn:g.originalColumn,name:j};this.__generatedMappings.push(k),"number"==typeof k.originalLine&&this.__originalMappings.push(k)}l(this.__generatedMappings,h.compareByGeneratedPositionsDeflated),l(this.__originalMappings,h.compareByOriginalPositions)},c.IndexedSourceMapConsumer=g},{"./array-set":129,"./base64-vlq":130,"./binary-search":132,"./quick-sort":134,"./util":138}],136:[function(a,b,c){function d(a){a||(a={}),this._file=f.getArg(a,"file",null),this._sourceRoot=f.getArg(a,"sourceRoot",null),this._skipValidation=f.getArg(a,"skipValidation",!1),this._sources=new g,this._names=new g,this._mappings=new h,this._sourcesContents=null}var e=a("./base64-vlq"),f=a("./util"),g=a("./array-set").ArraySet,h=a("./mapping-list").MappingList;d.prototype._version=3,d.fromSourceMap=function(a){var b=a.sourceRoot,c=new d({file:a.file,sourceRoot:b});return a.eachMapping(function(a){var d={generated:{line:a.generatedLine,column:a.generatedColumn}};null!=a.source&&(d.source=a.source,null!=b&&(d.source=f.relative(b,d.source)),d.original={line:a.originalLine,column:a.originalColumn},null!=a.name&&(d.name=a.name)),c.addMapping(d)}),a.sources.forEach(function(b){var d=a.sourceContentFor(b);null!=d&&c.setSourceContent(b,d)}),c},d.prototype.addMapping=function(a){var b=f.getArg(a,"generated"),c=f.getArg(a,"original",null),d=f.getArg(a,"source",null),e=f.getArg(a,"name",null);this._skipValidation||this._validateMapping(b,c,d,e),null==d||this._sources.has(d)||this._sources.add(d),null==e||this._names.has(e)||this._names.add(e),this._mappings.add({generatedLine:b.line,generatedColumn:b.column,originalLine:null!=c&&c.line,originalColumn:null!=c&&c.column,source:d,name:e})},d.prototype.setSourceContent=function(a,b){var c=a;null!=this._sourceRoot&&(c=f.relative(this._sourceRoot,c)),null!=b?(this._sourcesContents||(this._sourcesContents={}),this._sourcesContents[f.toSetString(c)]=b):this._sourcesContents&&(delete this._sourcesContents[f.toSetString(c)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},d.prototype.applySourceMap=function(a,b,c){var d=b;if(null==b){if(null==a.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');d=a.file}var e=this._sourceRoot;null!=e&&(d=f.relative(e,d));var h=new g,i=new g;this._mappings.unsortedForEach(function(b){if(b.source===d&&null!=b.originalLine){var g=a.originalPositionFor({line:b.originalLine,column:b.originalColumn});null!=g.source&&(b.source=g.source,null!=c&&(b.source=f.join(c,b.source)),null!=e&&(b.source=f.relative(e,b.source)),b.originalLine=g.line,b.originalColumn=g.column,null!=g.name&&(b.name=g.name))}var j=b.source;null==j||h.has(j)||h.add(j);var k=b.name;null==k||i.has(k)||i.add(k)},this),this._sources=h,this._names=i,a.sources.forEach(function(b){var d=a.sourceContentFor(b);null!=d&&(null!=c&&(b=f.join(c,b)),null!=e&&(b=f.relative(e,b)),this.setSourceContent(b,d))},this)},d.prototype._validateMapping=function(a,b,c,d){if((!(a&&"line"in a&&"column"in a&&a.line>0&&a.column>=0)||b||c||d)&&!(a&&"line"in a&&"column"in a&&b&&"line"in b&&"column"in b&&a.line>0&&a.column>=0&&b.line>0&&b.column>=0&&c))throw new Error("Invalid mapping: "+JSON.stringify({generated:a,source:c,original:b,name:d}))},d.prototype._serializeMappings=function(){for(var a,b,c,d=0,g=1,h=0,i=0,j=0,k=0,l="",m=this._mappings.toArray(),n=0,o=m.length;o>n;n++){if(a=m[n],a.generatedLine!==g)for(d=0;a.generatedLine!==g;)l+=";",g++;else if(n>0){if(!f.compareByGeneratedPositionsInflated(a,m[n-1]))continue;l+=","}l+=e.encode(a.generatedColumn-d),d=a.generatedColumn,null!=a.source&&(c=this._sources.indexOf(a.source),l+=e.encode(c-k),k=c,l+=e.encode(a.originalLine-1-i),i=a.originalLine-1,l+=e.encode(a.originalColumn-h),h=a.originalColumn,null!=a.name&&(b=this._names.indexOf(a.name),l+=e.encode(b-j),j=b))}return l},d.prototype._generateSourcesContent=function(a,b){return a.map(function(a){if(!this._sourcesContents)return null;null!=b&&(a=f.relative(b,a));var c=f.toSetString(a);return Object.prototype.hasOwnProperty.call(this._sourcesContents,c)?this._sourcesContents[c]:null},this)},d.prototype.toJSON=function(){var a={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(a.file=this._file),null!=this._sourceRoot&&(a.sourceRoot=this._sourceRoot),this._sourcesContents&&(a.sourcesContent=this._generateSourcesContent(a.sources,a.sourceRoot)),a},d.prototype.toString=function(){return JSON.stringify(this.toJSON())},c.SourceMapGenerator=d},{"./array-set":129,"./base64-vlq":130,"./mapping-list":133,"./util":138}],137:[function(a,b,c){function d(a,b,c,d,e){this.children=[],this.sourceContents={},this.line=null==a?null:a,this.column=null==b?null:b,this.source=null==c?null:c,this.name=null==e?null:e,this[i]=!0,null!=d&&this.add(d)}var e=a("./source-map-generator").SourceMapGenerator,f=a("./util"),g=/(\r?\n)/,h=10,i="$$$isSourceNode$$$";d.fromStringWithSourceMap=function(a,b,c){function e(a,b){if(null===a||void 0===a.source)h.add(b);else{var e=c?f.join(c,a.source):a.source;h.add(new d(a.originalLine,a.originalColumn,e,b,a.name))}}var h=new d,i=a.split(g),j=function(){var a=i.shift(),b=i.shift()||"";return a+b},k=1,l=0,m=null;return b.eachMapping(function(a){if(null!==m){if(!(k<a.generatedLine)){var b=i[0],c=b.substr(0,a.generatedColumn-l);return i[0]=b.substr(a.generatedColumn-l),l=a.generatedColumn,e(m,c),void(m=a)}e(m,j()),k++,l=0}for(;k<a.generatedLine;)h.add(j()),k++;if(l<a.generatedColumn){var b=i[0];h.add(b.substr(0,a.generatedColumn)),i[0]=b.substr(a.generatedColumn),l=a.generatedColumn}m=a},this),i.length>0&&(m&&e(m,j()),h.add(i.join(""))),b.sources.forEach(function(a){var d=b.sourceContentFor(a);null!=d&&(null!=c&&(a=f.join(c,a)),h.setSourceContent(a,d))}),h},d.prototype.add=function(a){if(Array.isArray(a))a.forEach(function(a){this.add(a)},this);else{if(!a[i]&&"string"!=typeof a)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+a);a&&this.children.push(a)}return this},d.prototype.prepend=function(a){if(Array.isArray(a))for(var b=a.length-1;b>=0;b--)this.prepend(a[b]);else{if(!a[i]&&"string"!=typeof a)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+a);this.children.unshift(a)}return this},d.prototype.walk=function(a){for(var b,c=0,d=this.children.length;d>c;c++)b=this.children[c],b[i]?b.walk(a):""!==b&&a(b,{source:this.source,line:this.line,column:this.column,name:this.name})},d.prototype.join=function(a){var b,c,d=this.children.length;if(d>0){for(b=[],c=0;d-1>c;c++)b.push(this.children[c]),b.push(a);b.push(this.children[c]),this.children=b}return this},d.prototype.replaceRight=function(a,b){var c=this.children[this.children.length-1];return c[i]?c.replaceRight(a,b):"string"==typeof c?this.children[this.children.length-1]=c.replace(a,b):this.children.push("".replace(a,b)),this},d.prototype.setSourceContent=function(a,b){this.sourceContents[f.toSetString(a)]=b},d.prototype.walkSourceContents=function(a){for(var b=0,c=this.children.length;c>b;b++)this.children[b][i]&&this.children[b].walkSourceContents(a);for(var d=Object.keys(this.sourceContents),b=0,c=d.length;c>b;b++)a(f.fromSetString(d[b]),this.sourceContents[d[b]])},d.prototype.toString=function(){var a="";return this.walk(function(b){a+=b}),a},d.prototype.toStringWithSourceMap=function(a){var b={code:"",line:1,column:0},c=new e(a),d=!1,f=null,g=null,i=null,j=null;return this.walk(function(a,e){b.code+=a,null!==e.source&&null!==e.line&&null!==e.column?(f===e.source&&g===e.line&&i===e.column&&j===e.name||c.addMapping({source:e.source,original:{line:e.line,column:e.column},generated:{line:b.line,column:b.column},name:e.name}),f=e.source,g=e.line,i=e.column,j=e.name,d=!0):d&&(c.addMapping({generated:{line:b.line,column:b.column}}),f=null,d=!1);for(var k=0,l=a.length;l>k;k++)a.charCodeAt(k)===h?(b.line++,b.column=0,k+1===l?(f=null,d=!1):d&&c.addMapping({source:e.source,original:{line:e.line,column:e.column},generated:{line:b.line,column:b.column},name:e.name})):b.column++}),this.walkSourceContents(function(a,b){c.setSourceContent(a,b)}),{code:b.code,map:c}},c.SourceNode=d},{"./source-map-generator":136,"./util":138}],138:[function(a,b,c){function d(a,b,c){if(b in a)return a[b];if(3===arguments.length)return c;throw new Error('"'+b+'" is a required argument.')}function e(a){var b=a.match(p);return b?{scheme:b[1],auth:b[2],host:b[3],port:b[4],path:b[5]}:null}function f(a){var b="";return a.scheme&&(b+=a.scheme+":"),b+="//",a.auth&&(b+=a.auth+"@"),a.host&&(b+=a.host),a.port&&(b+=":"+a.port),a.path&&(b+=a.path),b}function g(a){var b=a,d=e(a);if(d){if(!d.path)return a;b=d.path}for(var g,h=c.isAbsolute(b),i=b.split(/\/+/),j=0,k=i.length-1;k>=0;k--)g=i[k],"."===g?i.splice(k,1):".."===g?j++:j>0&&(""===g?(i.splice(k+1,j),j=0):(i.splice(k,2),j--));return b=i.join("/"),""===b&&(b=h?"/":"."),d?(d.path=b,f(d)):b}function h(a,b){""===a&&(a="."),""===b&&(b=".");var c=e(b),d=e(a);if(d&&(a=d.path||"/"),c&&!c.scheme)return d&&(c.scheme=d.scheme),f(c);if(c||b.match(q))return b;if(d&&!d.host&&!d.path)return d.host=b,f(d);var h="/"===b.charAt(0)?b:g(a.replace(/\/+$/,"")+"/"+b);return d?(d.path=h,f(d)):h}function i(a,b){""===a&&(a="."),a=a.replace(/\/$/,"");for(var c=0;0!==b.indexOf(a+"/");){var d=a.lastIndexOf("/");if(0>d)return b;if(a=a.slice(0,d),a.match(/^([^\/]+:\/)?\/*$/))return b;++c}return Array(c+1).join("../")+b.substr(a.length+1)}function j(a){return"$"+a}function k(a){return a.substr(1)}function l(a,b,c){var d=a.source-b.source;return 0!==d?d:(d=a.originalLine-b.originalLine,0!==d?d:(d=a.originalColumn-b.originalColumn,0!==d||c?d:(d=a.generatedColumn-b.generatedColumn,0!==d?d:(d=a.generatedLine-b.generatedLine,0!==d?d:a.name-b.name))))}function m(a,b,c){var d=a.generatedLine-b.generatedLine;return 0!==d?d:(d=a.generatedColumn-b.generatedColumn,0!==d||c?d:(d=a.source-b.source,0!==d?d:(d=a.originalLine-b.originalLine,0!==d?d:(d=a.originalColumn-b.originalColumn,0!==d?d:a.name-b.name))))}function n(a,b){return a===b?0:a>b?1:-1}function o(a,b){var c=a.generatedLine-b.generatedLine;return 0!==c?c:(c=a.generatedColumn-b.generatedColumn,0!==c?c:(c=n(a.source,b.source),0!==c?c:(c=a.originalLine-b.originalLine,0!==c?c:(c=a.originalColumn-b.originalColumn,0!==c?c:n(a.name,b.name)))))}c.getArg=d;var p=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,q=/^data:.+\,.+$/;c.urlParse=e,c.urlGenerate=f,c.normalize=g,c.join=h,c.isAbsolute=function(a){return"/"===a.charAt(0)||!!a.match(p)},c.relative=i,c.toSetString=j,c.fromSetString=k,c.compareByOriginalPositions=l,c.compareByGeneratedPositionsDeflated=m,c.compareByGeneratedPositionsInflated=o},{}],139:[function(a,b,c){c.SourceMapGenerator=a("./lib/source-map-generator").SourceMapGenerator,c.SourceMapConsumer=a("./lib/source-map-consumer").SourceMapConsumer,c.SourceNode=a("./lib/source-node").SourceNode},{"./lib/source-map-consumer":135,"./lib/source-map-generator":136,"./lib/source-node":137}],140:[function(a,b,c){function d(a){for(var b=Object.create(null),c=0;c<a.length;++c)b[a[c]]=!0;return b}function e(a,b){return Array.prototype.slice.call(a,b||0)}function f(a){return a.split("")}function g(a,b){for(var c=b.length;--c>=0;)if(b[c]==a)return!0;return!1}function h(a,b){for(var c=0,d=b.length;d>c;++c)if(a(b[c]))return b[c]}function i(a,b){if(0>=b)return"";if(1==b)return a;var c=i(a,b>>1);return c+=c,1&b&&(c+=a),c}function j(a,b){Error.call(this,a),this.msg=a,this.defs=b}function k(a,b,c){a===!0&&(a={});var d=a||{};if(c)for(var e in d)d.hasOwnProperty(e)&&!b.hasOwnProperty(e)&&j.croak("`"+e+"` is not a supported option",b);for(var e in b)b.hasOwnProperty(e)&&(d[e]=a&&a.hasOwnProperty(e)?a[e]:b[e]);return d}function l(a,b){var c=0;for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d],c++);return c}function m(){}function n(a,b){a.indexOf(b)<0&&a.push(b)}function o(a,b){return a.replace(/\{(.+?)\}/g,function(a,c){return b[c]})}function p(a,b){for(var c=a.length;--c>=0;)a[c]===b&&a.splice(c,1)}function q(a,b){function c(a,c){for(var d=[],e=0,f=0,g=0;e<a.length&&f<c.length;)b(a[e],c[f])<=0?d[g++]=a[e++]:d[g++]=c[f++];return e<a.length&&d.push.apply(d,a.slice(e)),f<c.length&&d.push.apply(d,c.slice(f)),d}function d(a){if(a.length<=1)return a;var b=Math.floor(a.length/2),e=a.slice(0,b),f=a.slice(b);return e=d(e),f=d(f),c(e,f)}return a.length<2?a.slice():d(a)}function r(a,b){return a.filter(function(a){return b.indexOf(a)<0})}function s(a,b){return a.filter(function(a){return b.indexOf(a)>=0})}function t(a){function b(a){if(1==a.length)return c+="return str === "+JSON.stringify(a[0])+";";c+="switch(str){";for(var b=0;b<a.length;++b)c+="case "+JSON.stringify(a[b])+":";c+="return true}return false;"}a instanceof Array||(a=a.split(" "));var c="",d=[];a:for(var e=0;e<a.length;++e){for(var f=0;f<d.length;++f)if(d[f][0].length==a[e].length){d[f].push(a[e]);continue a}d.push([a[e]])}if(d.length>3){d.sort(function(a,b){return b.length-a.length}),c+="switch(str.length){";for(var e=0;e<d.length;++e){var g=d[e];c+="case "+g[0].length+":",b(g)}c+="}"}else b(a);return new Function("str",c)}function u(a,b){for(var c=a.length;--c>=0;)if(!b(a[c]))return!1;return!0}function v(){this._values=Object.create(null),this._size=0}function w(a,b,d,e){arguments.length<4&&(e=_),b=b?b.split(/\s+/):[];var f=b;e&&e.PROPS&&(b=b.concat(e.PROPS));for(var g="return function AST_"+a+"(props){ if (props) { ",h=b.length;--h>=0;)g+="this."+b[h]+" = props."+b[h]+";";var i=e&&new e;(i&&i.initialize||d&&d.initialize)&&(g+="this.initialize();"),g+="}}";var j=new Function(g)();if(i&&(j.prototype=i,j.BASE=e),e&&e.SUBCLASSES.push(j),j.prototype.CTOR=j,j.PROPS=b||null,j.SELF_PROPS=f,j.SUBCLASSES=[],a&&(j.prototype.TYPE=j.TYPE=a),d)for(h in d)d.hasOwnProperty(h)&&(/^\$/.test(h)?j[h.substr(1)]=d[h]:j.prototype[h]=d[h]);return j.DEFMETHOD=function(a,b){this.prototype[a]=b},c["AST_"+a]=j,j}function x(a,b){a.body instanceof aa?a.body._walk(b):a.body.forEach(function(a){a._walk(b)})}function y(a){this.visit=a,this.stack=[],this.directives=Object.create(null)}function z(a){return a>=97&&122>=a||a>=65&&90>=a||a>=170&&Rb.letter.test(String.fromCharCode(a))}function A(a){return a>=48&&57>=a}function B(a){return A(a)||z(a)}function C(a){return Rb.digit.test(String.fromCharCode(a))}function D(a){return Rb.non_spacing_mark.test(a)||Rb.space_combining_mark.test(a)}function E(a){return Rb.connector_punctuation.test(a)}function F(a){return!Hb(a)&&/^[a-z_$][a-z0-9_$]*$/i.test(a)}function G(a){return 36==a||95==a||z(a)}function H(a){var b=a.charCodeAt(0);return G(b)||A(b)||8204==b||8205==b||D(a)||E(a)||C(b)}function I(a){return/^[a-z_$][a-z0-9_$]*$/i.test(a)}function J(a){if(Kb.test(a))return parseInt(a.substr(2),16);if(Lb.test(a))return parseInt(a.substr(1),8);var b=parseFloat(a);return b==a?b:void 0}function K(a,b,c,d,e){this.message=a,this.filename=b,this.line=c,this.col=d,this.pos=e,this.stack=(new Error).stack}function L(a,b,c,d,e){throw new K(a,b,c,d,e)}function M(a,b,c){return a.type==b&&(null==c||a.value==c)}function N(a,b,c,d){function e(){return z.text.charAt(z.pos)}function f(a,b){var c=z.text.charAt(z.pos++);if(a&&!c)throw Sb;return"\r\n\u2028\u2029".indexOf(c)>=0?(z.newline_before=z.newline_before||!b,++z.line,z.col=0,b||"\r"!=c||"\n"!=e()||(++z.pos,c="\n")):++z.col,c}function g(a){for(;a-- >0;)f()}function h(a){return z.text.substr(z.pos,a.length)==a}function i(a,b){var c=z.text.indexOf(a,z.pos);if(b&&-1==c)throw Sb;return c}function j(){z.tokline=z.line,z.tokcol=z.col,z.tokpos=z.pos}function k(c,d,e){z.regex_allowed="operator"==c&&!Ub(d)||"keyword"==c&&Ib(d)||"punc"==c&&Ob(d),C="punc"==c&&"."==d;var f={type:c,value:d,line:z.tokline,col:z.tokcol,pos:z.tokpos,endline:z.line,endcol:z.col,endpos:z.pos,nlb:z.newline_before,file:b};if(/^(?:num|string|regexp)$/i.test(c)&&(f.raw=a.substring(f.pos,f.endpos)),!e){f.comments_before=z.comments_before,z.comments_before=[];for(var g=0,h=f.comments_before.length;h>g;g++)f.nlb=f.nlb||f.comments_before[g].nlb}return z.newline_before=!1,new $(f)}function l(){for(var a;Nb(a=e())||"\u2028"==a||"\u2029"==a;)f()}function m(a){for(var b,c="",d=0;(b=e())&&a(b,d++);)c+=f();return c}function n(a){L(a,b,z.tokline,z.tokcol,z.tokpos)}function o(a){var b=!1,c=!1,d=!1,e="."==a,f=m(function(f,g){var h=f.charCodeAt(0);switch(h){case 120:case 88:return d?!1:d=!0;case 101:case 69:return d?!0:b?!1:b=c=!0;case 45:return c||0==g&&!a;case 43:return c;case c=!1,46:return e||d||b?!1:e=!0}return B(h)});a&&(f=a+f);var g=J(f);return isNaN(g)?void n("Invalid syntax: "+f):k("num",g)}function p(a){var b=f(!0,a);switch(b.charCodeAt(0)){case 110:return"\n";case 114:return"\r";case 116:return" ";case 98:return"\b";case 118:return"\x0B";case 102:return"\f";case 48:return"\x00";case 120:return String.fromCharCode(q(2));case 117:return String.fromCharCode(q(4));case 10:return"";case 13:if("\n"==e())return f(!0,a),""}return b}function q(a){for(var b=0;a>0;--a){var c=parseInt(f(!0),16);isNaN(c)&&n("Invalid hex-character pattern in string"),b=b<<4|c}return b}function r(a){var b,c=z.regex_allowed,d=i("\n");return-1==d?(b=z.text.substr(z.pos),z.pos=z.text.length):(b=z.text.substring(z.pos,d),z.pos=d),z.col=z.tokcol+(z.pos-z.tokpos),z.comments_before.push(k(a,b,!0)),z.regex_allowed=c,y()}function s(){for(var a,b,c=!1,d="",g=!1;null!=(a=e());)if(c)"u"!=a&&n("Expecting UnicodeEscapeSequence -- uXXXX"),a=p(),H(a)||n("Unicode char: "+a.charCodeAt(0)+" is not valid in identifier"),d+=a,c=!1;else if("\\"==a)g=c=!0,f();else{if(!H(a))break;d+=f()}return Fb(d)&&g&&(b=d.charCodeAt(0).toString(16).toUpperCase(),d="\\u"+"0000".substr(b.length)+b+d.slice(1)),d}function t(a){function b(a){
+if(!e())return a;var c=a+e();return Mb(c)?(f(),b(c)):a}return k("operator",b(a||f()))}function u(){switch(f(),e()){case"/":return f(),r("comment1");case"*":return f(),E()}return z.regex_allowed?F(""):t("/")}function v(){return f(),A(e().charCodeAt(0))?o("."):k("punc",".")}function w(){var a=s();return C?k("name",a):Gb(a)?k("atom",a):Fb(a)?Mb(a)?k("operator",a):k("keyword",a):k("name",a)}function x(a,b){return function(c){try{return b(c)}catch(d){if(d!==Sb)throw d;n(a)}}}function y(a){if(null!=a)return F(a);if(l(),j(),c){if(h("<!--"))return g(4),r("comment3");if(h("-->")&&z.newline_before)return g(3),r("comment4")}var b=e();if(!b)return k("eof");var i=b.charCodeAt(0);switch(i){case 34:case 39:return D(b);case 46:return v();case 47:return u()}return A(i)?o():Pb(b)?k("punc",f()):Jb(b)?t():92==i||G(i)?w():d&&0==z.pos&&h("#!")?(g(2),r("comment5")):void n("Unexpected character '"+b+"'")}var z={text:a,filename:b,pos:0,tokpos:0,line:1,tokline:0,col:0,tokcol:0,newline_before:!1,regex_allowed:!1,comments_before:[]},C=!1,D=x("Unterminated string constant",function(a){for(var b=f(),c="";;){var d=f(!0,!0);if("\\"==d){var e=0,g=null;d=m(function(a){if(a>="0"&&"7">=a){if(!g)return g=a,++e;if("3">=g&&2>=e)return++e;if(g>="4"&&1>=e)return++e}return!1}),d=e>0?String.fromCharCode(parseInt(d,8)):p(!0)}else if("\r\n\u2028\u2029".indexOf(d)>=0)n("Unterminated string constant");else if(d==b)break;c+=d}var h=k("string",c);return h.quote=a,h}),E=x("Unterminated multiline comment",function(){var a=z.regex_allowed,b=i("*/",!0),c=z.text.substring(z.pos,b),d=c.split("\n"),e=d.length;z.pos=b+2,z.line+=e-1,e>1?z.col=d[e-1].length:z.col+=d[e-1].length,z.col+=2;var f=z.newline_before=z.newline_before||c.indexOf("\n")>=0;return z.comments_before.push(k("comment2",c,!0)),z.regex_allowed=a,z.newline_before=f,y()}),F=x("Unterminated regular expression",function(a){for(var b,c=!1,d=!1;b=f(!0);)if(c)a+="\\"+b,c=!1;else if("["==b)d=!0,a+=b;else if("]"==b&&d)d=!1,a+=b;else{if("/"==b&&!d)break;"\\"==b?c=!0:a+=b}var e=s();try{return k("regexp",new RegExp(a,e))}catch(g){n(g.message)}});return y.context=function(a){return a&&(z=a),z},y}function O(a,b){function c(a,b){return M(S.token,a,b)}function d(){return S.peeked||(S.peeked=S.input())}function e(){return S.prev=S.token,S.peeked?(S.token=S.peeked,S.peeked=null):S.token=S.input(),S.in_directives=S.in_directives&&("string"==S.token.type||c("punc",";")),S.token}function f(){return S.prev}function g(a,b,c,d){var e=S.input.context();L(a,e.filename,null!=b?b:e.tokline,null!=c?c:e.tokcol,null!=d?d:e.tokpos)}function i(a,b){g(b,a.line,a.col)}function j(a){null==a&&(a=S.token),i(a,"Unexpected token: "+a.type+" ("+a.value+")")}function l(a,b){return c(a,b)?e():void i(S.token,"Unexpected token "+S.token.type+" «"+S.token.value+"», expected "+a+" «"+b+"»")}function m(a){return l("punc",a)}function n(){return!b.strict&&(S.token.nlb||c("eof")||c("punc","}"))}function o(a){c("punc",";")?e():a||n()||j()}function p(){m("(");var a=qa(!0);return m(")"),a}function q(a){return function(){var b=S.token,c=a(),d=f();return c.start=b,c.end=d,c}}function r(){(c("operator","/")||c("operator","/="))&&(S.peeked=null,S.token=S.input(S.token.value.substr(1)))}function s(){var a=J(ob);h(function(b){return b.name==a.name},S.labels)&&g("Label "+a.name+" defined twice"),m(":"),S.labels.push(a);var b=T();return S.labels.pop(),b instanceof ja||a.references.forEach(function(b){b instanceof Ca&&(b=b.label.start,g("Continue label `"+a.name+"` refers to non-IterationStatement.",b.line,b.col,b.pos))}),new ia({body:b,label:a})}function t(a){return new da({body:(a=qa(!0),o(),a)})}function u(a){var b,c=null;n()||(c=J(qb,!0)),null!=c?(b=h(function(a){return a.name==c.name},S.labels),b||g("Undefined label "+c.name),c.thedef=b):0==S.in_loop&&g(a.TYPE+" not inside a loop or switch"),o();var d=new a({label:c});return b&&b.references.push(d),d}function v(){m("(");var a=null;return!c("punc",";")&&(a=c("keyword","var")?(e(),V(!0)):qa(!0,!0),c("operator","in"))?(a instanceof Ma&&a.definitions.length>1&&g("Only one variable declaration allowed in for..in loop"),e(),x(a)):w(a)}function w(a){m(";");var b=c("punc",";")?null:qa(!0);m(";");var d=c("punc",")")?null:qa(!0);return m(")"),new na({init:a,condition:b,step:d,body:R(T)})}function x(a){var b=a instanceof Ma?a.definitions[0].name:null,c=qa(!0);return m(")"),new oa({init:a,name:b,object:c,body:R(T)})}function y(){var a=p(),b=T(),d=null;return c("keyword","else")&&(e(),d=T()),new Da({condition:a,body:b,alternative:d})}function z(){m("{");for(var a=[];!c("punc","}");)c("eof")&&j(),a.push(T());return e(),a}function A(){m("{");for(var a,b=[],d=null,g=null;!c("punc","}");)c("eof")&&j(),c("keyword","case")?(g&&(g.end=f()),d=[],g=new Ha({start:(a=S.token,e(),a),expression:qa(!0),body:d}),b.push(g),m(":")):c("keyword","default")?(g&&(g.end=f()),d=[],g=new Ga({start:(a=S.token,e(),m(":"),a),body:d}),b.push(g)):(d||j(),d.push(T()));return g&&(g.end=f()),e(),b}function B(){var a=z(),b=null,d=null;if(c("keyword","catch")){var h=S.token;e(),m("(");var i=J(nb);m(")"),b=new Ja({start:h,argname:i,body:z(),end:f()})}if(c("keyword","finally")){var h=S.token;e(),d=new Ka({start:h,body:z(),end:f()})}return b||d||g("Missing catch/finally blocks"),new Ia({body:a,bcatch:b,bfinally:d})}function C(a,b){for(var d=[];d.push(new Oa({start:S.token,name:J(b?jb:ib),value:c("operator","=")?(e(),qa(!1,a)):null,end:f()})),c("punc",",");)e();return d}function D(){var a,b=S.token;switch(b.type){case"name":case"keyword":a=H(pb);break;case"num":a=new ub({start:b,end:b,value:b.value});break;case"string":a=new tb({start:b,end:b,value:b.value,quote:b.quote});break;case"regexp":a=new vb({start:b,end:b,value:b.value});break;case"atom":switch(b.value){case"false":a=new Db({start:b,end:b});break;case"true":a=new Eb({start:b,end:b});break;case"null":a=new xb({start:b,end:b})}break;case"operator":if(!I(b.value))throw new K("Invalid getter/setter name: "+b.value,b.file,b.line,b.col,b.pos);a=H(pb)}return e(),a}function E(a,b,d){for(var f=!0,g=[];!c("punc",a)&&(f?f=!1:m(","),!b||!c("punc",a));)c("punc",",")&&d?g.push(new Ab({start:S.token,end:S.token})):g.push(qa(!1));return e(),g}function F(){var a=S.token;switch(e(),a.type){case"num":case"string":case"name":case"operator":case"keyword":case"atom":return a.value;default:j()}}function G(){var a=S.token;switch(e(),a.type){case"name":case"operator":case"keyword":case"atom":return a.value;default:j()}}function H(a){var b=S.token.value;return new("this"==b?rb:a)({name:String(b),start:S.token,end:S.token})}function J(a,b){if(!c("name"))return b||g("Name expected"),null;var d=H(a);return e(),d}function O(a,b,c){return"++"!=b&&"--"!=b||Q(c)||g("Invalid use of "+b+" operator"),new a({operator:b,expression:c})}function P(a){return ea(aa(!0),0,a)}function Q(a){return b.strict?a instanceof rb?!1:a instanceof Sa||a instanceof fb:!0}function R(a){++S.in_loop;var b=a();return--S.in_loop,b}b=k(b,{strict:!1,filename:null,toplevel:null,expression:!1,html5_comments:!0,bare_returns:!1,shebang:!0});var S={input:"string"==typeof a?N(a,b.filename,b.html5_comments,b.shebang):a,token:null,prev:null,peeked:null,in_function:0,in_directives:!0,in_loop:0,labels:[]};S.token=e();var T=q(function(){var a;switch(r(),S.token.type){case"string":var h=S.in_directives,i=t();return h&&i.body instanceof tb&&!c("punc",",")?new ca({start:i.body.start,end:i.body.end,quote:i.body.quote,value:i.body.value}):i;case"num":case"regexp":case"operator":case"atom":return t();case"name":return M(d(),"punc",":")?s():t();case"punc":switch(S.token.value){case"{":return new fa({start:S.token,body:z(),end:f()});case"[":case"(":return t();case";":return e(),new ga;default:j()}case"keyword":switch(a=S.token.value,e(),a){case"break":return u(Ba);case"continue":return u(Ca);case"debugger":return o(),new ba;case"do":return new la({body:R(T),condition:(l("keyword","while"),a=p(),o(!0),a)});case"while":return new ma({condition:p(),body:R(T)});case"for":return v();case"function":return U(va);case"if":return y();case"return":return 0!=S.in_function||b.bare_returns||g("'return' outside of function"),new ya({value:c("punc",";")?(e(),null):n()?null:(a=qa(!0),o(),a)});case"switch":return new Ea({expression:p(),body:R(A)});case"throw":return S.token.nlb&&g("Illegal newline after 'throw'"),new za({value:(a=qa(!0),o(),a)});case"try":return B();case"var":return a=V(),o(),a;case"const":return a=W(),o(),a;case"with":return new pa({expression:p(),body:T()});default:j()}}}),U=function(a){var b=a===va,d=c("name")?J(b?lb:mb):null;return b&&!d&&j(),m("("),new a({name:d,argnames:function(a,b){for(;!c("punc",")");)a?a=!1:m(","),b.push(J(kb));return e(),b}(!0,[]),body:function(a,b){++S.in_function,S.in_directives=!0,S.in_loop=0,S.labels=[];var c=z();return--S.in_function,S.in_loop=a,S.labels=b,c}(S.in_loop,S.labels)})},V=function(a){return new Ma({start:f(),definitions:C(a,!1),end:f()})},W=function(){return new Na({start:f(),definitions:C(!1,!0),end:f()})},X=function(a){var b=S.token;l("operator","new");var d,g=Y(!1);return c("punc","(")?(e(),d=E(")")):d=[],_(new Qa({start:b,expression:g,args:d,end:f()}),a)},Y=function(a){if(c("operator","new"))return X(a);var b=S.token;if(c("punc")){switch(b.value){case"(":e();var d=qa(!0);return d.start=b,d.end=S.token,m(")"),_(d,a);case"[":return _(Z(),a);case"{":return _($(),a)}j()}if(c("keyword","function")){e();var g=U(ua);return g.start=b,g.end=f(),_(g,a)}return Yb[S.token.type]?_(D(),a):void j()},Z=q(function(){return m("["),new _a({elements:E("]",!b.strict,!0)})}),$=q(function(){m("{");for(var a=!0,d=[];!c("punc","}")&&(a?a=!1:m(","),b.strict||!c("punc","}"));){var g=S.token,h=g.type,i=F();if("name"==h&&!c("punc",":")){if("get"==i){d.push(new eb({start:g,key:D(),value:U(ta),end:f()}));continue}if("set"==i){d.push(new db({start:g,key:D(),value:U(ta),end:f()}));continue}}m(":"),d.push(new cb({start:g,quote:g.quote,key:i,value:qa(!1),end:f()}))}return e(),new ab({properties:d})}),_=function(a,b){var d=a.start;if(c("punc","."))return e(),_(new Ta({start:d,expression:a,property:G(),end:f()}),b);if(c("punc","[")){e();var g=qa(!0);return m("]"),_(new Ua({start:d,expression:a,property:g,end:f()}),b)}return b&&c("punc","(")?(e(),_(new Pa({start:d,expression:a,args:E(")"),end:f()}),!0)):a},aa=function(a){var b=S.token;if(c("operator")&&Tb(b.value)){e(),r();var d=O(Wa,b.value,aa(a));return d.start=b,d.end=f(),d}for(var g=Y(a);c("operator")&&Ub(S.token.value)&&!S.token.nlb;)g=O(Xa,S.token.value,g),g.start=b,g.end=S.token,e();return g},ea=function(a,b,d){var f=c("operator")?S.token.value:null;"in"==f&&d&&(f=null);var g=null!=f?Wb[f]:null;if(null!=g&&g>b){e();var h=ea(aa(!0),g,d);return ea(new Ya({start:a.start,left:a,operator:f,right:h,end:h.end}),b,d)}return a},ha=function(a){var b=S.token,d=P(a);if(c("operator","?")){e();var g=qa(!1);return m(":"),new Za({start:b,condition:d,consequent:g,alternative:qa(!1,a),end:f()})}return d},ka=function(a){var b=S.token,d=ha(a),h=S.token.value;if(c("operator")&&Vb(h)){if(Q(d))return e(),new $a({start:b,left:d,operator:h,right:ka(a),end:f()});g("Invalid assignment")}return d},qa=function(a,b){var f=S.token,g=ka(b);return a&&c("punc",",")?(e(),new Ra({start:f,car:g,cdr:qa(!0,b),end:d()})):g};return b.expression?qa(!0):function(){for(var a=S.token,d=[];!c("eof");)d.push(T());var e=f(),g=b.toplevel;return g?(g.body=g.body.concat(d),g.end=e):g=new ra({start:a,body:d,end:e}),g}()}function P(a,b){y.call(this),this.before=a,this.after=b}function Q(a,b,c){this.name=c.name,this.orig=[c],this.scope=a,this.references=[],this.global=!1,this.mangled_name=null,this.undeclared=!1,this.constant=!1,this.index=b}function R(a){function b(a,b){return a.replace(/[\u0080-\uffff]/g,function(a){var c=a.charCodeAt(0).toString(16);if(c.length<=2&&!b){for(;c.length<2;)c="0"+c;return"\\x"+c}for(;c.length<4;)c="0"+c;return"\\u"+c})}function c(c,d){function e(){return"'"+c.replace(/\x27/g,"\\'")+"'"}function f(){return'"'+c.replace(/\x22/g,'\\"')+'"'}var g=0,h=0;switch(c=c.replace(/[\\\b\f\n\r\v\t\x22\x27\u2028\u2029\0\ufeff]/g,function(b){switch(b){case"\\":return"\\\\";case"\b":return"\\b";case"\f":return"\\f";case"\n":return"\\n";case"\r":return"\\r";case"\x0B":return a.screw_ie8?"\\v":"\\x0B";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029";case'"':return++g,'"';case"'":return++h,"'";case"\x00":return"\\x00";case"\ufeff":return"\\ufeff"}return b}),a.ascii_only&&(c=b(c)),a.quote_style){case 1:return e();case 2:return f();case 3:return"'"==d?e():f();default:return g>h?e():f()}}function d(b,d){var e=c(b,d);return a.inline_script&&(e=e.replace(/<\x2fscript([>\/\t\n\f\r ])/gi,"<\\/script$1"),e=e.replace(/\x3c!--/g,"\\x3c!--"),e=e.replace(/--\x3e/g,"--\\x3e")),e}function e(c){return c=c.toString(),a.ascii_only&&(c=b(c,!0)),c}function f(b){return i(" ",a.indent_start+v-b*a.indent_level)}function g(){return C.charAt(C.length-1)}function h(){a.max_line_len&&w>a.max_line_len&&j("\n")}function j(b){b=String(b);var c=b.charAt(0);if(B&&(B=!1,c&&!(";}".indexOf(c)<0)||/[;]$/.test(C)||(a.semicolons||D(c)?(z+=";",w++,y++):(z+="\n",y++,x++,w=0,/^\s+$/.test(b)&&(B=!0)),a.beautify||(A=!1))),!a.beautify&&a.preserve_line&&L[L.length-1])for(var d=L[L.length-1].start.line;d>x;)z+="\n",y++,x++,w=0,A=!1;if(A){var e=g();(H(e)&&(H(c)||"\\"==c)||/^[\+\-\/]$/.test(c)&&c==e)&&(z+=" ",w++,y++),A=!1}var f=b.split(/\r?\n/),h=f.length-1;x+=h,0==h?w+=f[h].length:w=f[h].length,y+=b.length,C=b,z+=b}function l(){B=!1,j(";")}function n(){return v+a.indent_level}function o(a){var b;return j("{"),I(),G(n(),function(){b=a()}),F(),j("}"),b}function p(a){j("(");var b=a();return j(")"),b}function q(a){j("[");var b=a();return j("]"),b}function r(){j(","),E()}function s(){j(":"),a.space_colon&&E()}function u(){return z}a=k(a,{indent_start:0,indent_level:4,quote_keys:!1,space_colon:!0,ascii_only:!1,unescape_regexps:!1,inline_script:!1,width:80,max_line_len:32e3,beautify:!1,source_map:null,bracketize:!1,semicolons:!0,comments:!1,shebang:!0,preserve_line:!1,screw_ie8:!1,preamble:null,quote_style:0},!0);var v=0,w=0,x=1,y=0,z="",A=!1,B=!1,C=null,D=t("( [ + * / - , ."),E=a.beautify?function(){j(" ")}:function(){A=!0},F=a.beautify?function(b){a.beautify&&j(f(b?.5:0))}:m,G=a.beautify?function(a,b){a===!0&&(a=n());var c=v;v=a;var d=b();return v=c,d}:function(a,b){return b()},I=a.beautify?function(){j("\n")}:h,J=a.beautify?function(){j(";")}:function(){B=!0},K=a.source_map?function(b,c){try{b&&a.source_map.add(b.file||"?",x,w,b.line,b.col,c||"name"!=b.type?c:b.value)}catch(d){_.warn("Couldn't figure out mapping for {file}:{line},{col} → {cline},{ccol} [{name}]",{file:b.file,line:b.line,col:b.col,cline:x,ccol:w,name:c||""})}}:m;a.preamble&&j(a.preamble.replace(/\r\n?|[\n\u2028\u2029]|\s*$/g,"\n"));var L=[];return{get:u,toString:u,indent:F,indentation:function(){return v},current_width:function(){return w-v},should_break:function(){return a.width&&this.current_width()>=a.width},newline:I,print:j,space:E,comma:r,colon:s,last:function(){return C},semicolon:J,force_semicolon:l,to_ascii:b,print_name:function(a){j(e(a))},print_string:function(a,b){j(d(a,b))},next_indent:n,with_indent:G,with_block:o,with_parens:p,with_square:q,add_mapping:K,option:function(b){return a[b]},line:function(){return x},col:function(){return w},pos:function(){return y},push_node:function(a){L.push(a)},pop_node:function(){return L.pop()},stack:function(){return L},parent:function(a){return L[L.length-2-(a||0)]}}}function S(a,b){return this instanceof S?(P.call(this,this.before,this.after),void(this.options=k(a,{sequences:!b,properties:!b,dead_code:!b,drop_debugger:!b,unsafe:!1,unsafe_comps:!1,conditionals:!b,comparisons:!b,evaluate:!b,booleans:!b,loops:!b,unused:!b,hoist_funs:!b,keep_fargs:!0,keep_fnames:!1,hoist_vars:!1,if_return:!b,join_vars:!b,collapse_vars:!1,cascade:!b,side_effects:!b,pure_getters:!1,pure_funcs:null,negate_iife:!b,screw_ie8:!1,drop_console:!1,angular:!1,warnings:!0,global_defs:{}},!0))):new S(a,b)}function T(a){function b(b,e,f,g,h,i){if(d){var j=d.originalPositionFor({line:g,column:h});if(null===j.source)return;b=j.source,g=j.line,h=j.column,i=j.name||i}c.addMapping({generated:{line:e+a.dest_line_diff,column:f},original:{line:g+a.orig_line_diff,column:h},source:b,name:i})}a=k(a,{file:null,root:null,orig:null,orig_line_diff:0,dest_line_diff:0});var c=new X.SourceMapGenerator({file:a.file,sourceRoot:a.root}),d=a.orig&&new X.SourceMapConsumer(a.orig);return{add:b,get:function(){return c},toString:function(){return JSON.stringify(c.toJSON())}}}function U(){function a(a){n(b,a)}var b=[];return[Object,Array,Function,Number,String,Boolean,Error,Math,Date,RegExp].forEach(function(b){Object.getOwnPropertyNames(b).map(a),b.prototype&&Object.getOwnPropertyNames(b.prototype).map(a)}),b}function V(a,b){function c(a){return o.indexOf(a)>=0?!1:i.indexOf(a)>=0?!1:b.only_cache?j.props.has(a):!/^[0-9.]+$/.test(a)}function d(a){return l&&!l.test(a)?!1:i.indexOf(a)>=0?!1:j.props.has(a)||m.indexOf(a)>=0}function e(a){c(a)&&n(m,a),d(a)||n(o,a)}function f(a){if(!d(a))return a;var b=j.props.get(a);if(!b){do b=Zb(++j.cname);while(!c(b));j.props.set(a,b)}return b}function g(a){var b={};try{!function d(a){a.walk(new y(function(a){if(a instanceof Ra)return d(a.cdr),!0;if(a instanceof tb)return e(a.value),!0;if(a instanceof Za)return d(a.consequent),d(a.alternative),!0;throw b}))}(a)}catch(c){if(c!==b)throw c}}function h(a){return a.transform(new P(function(a){return a instanceof Ra?a.cdr=h(a.cdr):a instanceof tb?a.value=f(a.value):a instanceof Za&&(a.consequent=h(a.consequent),a.alternative=h(a.alternative)),a}))}b=k(b,{reserved:null,cache:null,only_cache:!1,regex:null});var i=b.reserved;null==i&&(i=U());var j=b.cache;null==j&&(j={cname:-1,props:new v});var l=b.regex,m=[],o=[];return a.walk(new y(function(a){a instanceof cb?e(a.key):a instanceof bb?e(a.key.name):a instanceof Ta?this.parent()instanceof $a&&e(a.property):a instanceof Ua&&this.parent()instanceof $a&&g(a.property)})),a.transform(new P(function(a){a instanceof cb?a.key=f(a.key):a instanceof bb?a.key.name=f(a.key.name):a instanceof Ta?a.property=f(a.property):a instanceof Ua&&(a.property=h(a.property))}))}var W=a("util"),X=a("source-map"),Y=c;j.prototype=Object.create(Error.prototype),j.prototype.constructor=j,j.croak=function(a,b){throw new j(a,b)};var Z=function(){function a(a,f,g){function h(){var h=f(a[i],i),l=h instanceof d;return l&&(h=h.v),h instanceof b?(h=h.v,h instanceof c?k.push.apply(k,g?h.v.slice().reverse():h.v):k.push(h)):h!==e&&(h instanceof c?j.push.apply(j,g?h.v.slice().reverse():h.v):j.push(h)),l}var i,j=[],k=[];if(a instanceof Array)if(g){for(i=a.length;--i>=0&&!h(););j.reverse(),k.reverse()}else for(i=0;i<a.length&&!h();++i);else for(i in a)if(a.hasOwnProperty(i)&&h())break;return k.concat(j)}function b(a){this.v=a}function c(a){this.v=a}function d(a){this.v=a}a.at_top=function(a){return new b(a)},a.splice=function(a){return new c(a)},a.last=function(a){return new d(a)};var e=a.skip={};return a}();v.prototype={set:function(a,b){return this.has(a)||++this._size,this._values["$"+a]=b,this},add:function(a,b){return this.has(a)?this.get(a).push(b):this.set(a,[b]),this},get:function(a){return this._values["$"+a]},del:function(a){return this.has(a)&&(--this._size,delete this._values["$"+a]),this},has:function(a){return"$"+a in this._values},each:function(a){for(var b in this._values)a(this._values[b],b.substr(1))},size:function(){return this._size},map:function(a){var b=[];for(var c in this._values)b.push(a(this._values[c],c.substr(1)));return b},toObject:function(){return this._values}},v.fromObject=function(a){var b=new v;return b._size=l(b._values,a),b};var $=w("Token","type value line col pos endline endcol endpos nlb comments_before file raw",{},null),_=w("Node","start end",{clone:function(){return new this.CTOR(this)},$documentation:"Base class of all AST nodes",$propdoc:{start:"[AST_Token] The first token of this node",end:"[AST_Token] The last token of this node"},_walk:function(a){return a._visit(this)},walk:function(a){return this._walk(a)}},null);_.warn_function=null,_.warn=function(a,b){_.warn_function&&_.warn_function(o(a,b))};var aa=w("Statement",null,{$documentation:"Base class of all statements"}),ba=w("Debugger",null,{$documentation:"Represents a debugger statement"},aa),ca=w("Directive","value scope quote",{$documentation:'Represents a directive, like "use strict";',$propdoc:{value:"[string] The value of this directive as a plain string (it's not an AST_String!)",scope:"[AST_Scope/S] The scope that this directive affects",quote:"[string] the original quote character"}},aa),da=w("SimpleStatement","body",{$documentation:"A statement consisting of an expression, i.e. a = 1 + 2",$propdoc:{body:"[AST_Node] an expression node (should not be instanceof AST_Statement)"},_walk:function(a){return a._visit(this,function(){this.body._walk(a)})}},aa),ea=w("Block","body",{$documentation:"A body of statements (usually bracketed)",$propdoc:{body:"[AST_Statement*] an array of statements"},_walk:function(a){return a._visit(this,function(){x(this,a)})}},aa),fa=w("BlockStatement",null,{$documentation:"A block statement"},ea),ga=w("EmptyStatement",null,{$documentation:"The empty statement (empty block or simply a semicolon)",_walk:function(a){return a._visit(this)}},aa),ha=w("StatementWithBody","body",{$documentation:"Base class for all statements that contain one nested body: `For`, `ForIn`, `Do`, `While`, `With`",$propdoc:{body:"[AST_Statement] the body; this should always be present, even if it's an AST_EmptyStatement"},_walk:function(a){return a._visit(this,function(){this.body._walk(a)})}},aa),ia=w("LabeledStatement","label",{$documentation:"Statement with a label",$propdoc:{label:"[AST_Label] a label definition"},_walk:function(a){return a._visit(this,function(){this.label._walk(a),this.body._walk(a)})}},ha),ja=w("IterationStatement",null,{$documentation:"Internal class.  All loops inherit from it."},ha),ka=w("DWLoop","condition",{$documentation:"Base class for do/while statements",$propdoc:{condition:"[AST_Node] the loop condition.  Should not be instanceof AST_Statement"}},ja),la=w("Do",null,{$documentation:"A `do` statement",_walk:function(a){return a._visit(this,function(){this.body._walk(a),this.condition._walk(a)})}},ka),ma=w("While",null,{$documentation:"A `while` statement",_walk:function(a){return a._visit(this,function(){this.condition._walk(a),this.body._walk(a)})}},ka),na=w("For","init condition step",{$documentation:"A `for` statement",$propdoc:{init:"[AST_Node?] the `for` initialization code, or null if empty",condition:"[AST_Node?] the `for` termination clause, or null if empty",step:"[AST_Node?] the `for` update clause, or null if empty"},_walk:function(a){return a._visit(this,function(){this.init&&this.init._walk(a),this.condition&&this.condition._walk(a),this.step&&this.step._walk(a),this.body._walk(a)})}},ja),oa=w("ForIn","init name object",{$documentation:"A `for ... in` statement",$propdoc:{init:"[AST_Node] the `for/in` initialization code",name:"[AST_SymbolRef?] the loop variable, only if `init` is AST_Var",object:"[AST_Node] the object that we're looping through"},_walk:function(a){return a._visit(this,function(){this.init._walk(a),this.object._walk(a),this.body._walk(a)})}},ja),pa=w("With","expression",{$documentation:"A `with` statement",$propdoc:{expression:"[AST_Node] the `with` expression"},_walk:function(a){return a._visit(this,function(){this.expression._walk(a),this.body._walk(a)})}},ha),qa=w("Scope","directives variables functions uses_with uses_eval parent_scope enclosed cname",{$documentation:"Base class for all statements introducing a lexical scope",$propdoc:{directives:"[string*/S] an array of directives declared in this scope",variables:"[Object/S] a map of name -> SymbolDef for all variables/functions defined in this scope",functions:"[Object/S] like `variables`, but only lists function declarations",uses_with:"[boolean/S] tells whether this scope uses the `with` statement",uses_eval:"[boolean/S] tells whether this scope contains a direct call to the global `eval`",parent_scope:"[AST_Scope?/S] link to the parent scope",enclosed:"[SymbolDef*/S] a list of all symbol definitions that are accessed from this scope or any subscopes",cname:"[integer/S] current index for mangling variables (used internally by the mangler)"}},ea),ra=w("Toplevel","globals",{$documentation:"The toplevel scope",$propdoc:{globals:"[Object/S] a map of name -> SymbolDef for all undeclared names"},wrap_enclose:function(a){var b=this,c=[],d=[];a.forEach(function(a){var b=a.lastIndexOf(":");c.push(a.substr(0,b)),d.push(a.substr(b+1))});var e="(function("+d.join(",")+"){ '$ORIG'; })("+c.join(",")+")";return e=O(e),e=e.transform(new P(function(a){return a instanceof ca&&"$ORIG"==a.value?Z.splice(b.body):void 0}))},wrap_commonjs:function(a,b){var c=this,d=[];b&&(c.figure_out_scope(),c.walk(new y(function(a){a instanceof hb&&a.definition().global&&(h(function(b){return b.name==a.name},d)||d.push(a))})));var e="(function(exports, global){ '$ORIG'; '$EXPORTS'; global['"+a+"'] = exports; }({}, (function(){return this}())))";return e=O(e),e=e.transform(new P(function(a){if(a instanceof ca)switch(a.value){case"$ORIG":return Z.splice(c.body);case"$EXPORTS":var b=[];return d.forEach(function(a){b.push(new da({body:new $a({left:new Ua({expression:new pb({name:"exports"}),property:new tb({value:a.name})}),operator:"=",right:new pb(a)})}))}),Z.splice(b)}}))}},qa),sa=w("Lambda","name argnames uses_arguments",{$documentation:"Base class for functions",$propdoc:{name:"[AST_SymbolDeclaration?] the name of this function",argnames:"[AST_SymbolFunarg*] array of function arguments",uses_arguments:"[boolean/S] tells whether this function accesses the arguments array"},_walk:function(a){return a._visit(this,function(){this.name&&this.name._walk(a),this.argnames.forEach(function(b){b._walk(a)}),x(this,a)})}},qa),ta=w("Accessor",null,{$documentation:"A setter/getter function.  The `name` property is always null."},sa),ua=w("Function",null,{$documentation:"A function expression"},sa),va=w("Defun",null,{$documentation:"A function definition"},sa),wa=w("Jump",null,{$documentation:"Base class for “jumps” (for now that's `return`, `throw`, `break` and `continue`)"},aa),xa=w("Exit","value",{$documentation:"Base class for “exits” (`return` and `throw`)",$propdoc:{value:"[AST_Node?] the value returned or thrown by this statement; could be null for AST_Return"},_walk:function(a){return a._visit(this,this.value&&function(){this.value._walk(a)})}},wa),ya=w("Return",null,{$documentation:"A `return` statement"},xa),za=w("Throw",null,{$documentation:"A `throw` statement"},xa),Aa=w("LoopControl","label",{$documentation:"Base class for loop control statements (`break` and `continue`)",$propdoc:{label:"[AST_LabelRef?] the label, or null if none"},_walk:function(a){return a._visit(this,this.label&&function(){this.label._walk(a)})}},wa),Ba=w("Break",null,{$documentation:"A `break` statement"},Aa),Ca=w("Continue",null,{$documentation:"A `continue` statement"},Aa),Da=w("If","condition alternative",{$documentation:"A `if` statement",$propdoc:{condition:"[AST_Node] the `if` condition",alternative:"[AST_Statement?] the `else` part, or null if not present"},_walk:function(a){return a._visit(this,function(){this.condition._walk(a),this.body._walk(a),this.alternative&&this.alternative._walk(a)})}},ha),Ea=w("Switch","expression",{$documentation:"A `switch` statement",$propdoc:{expression:"[AST_Node] the `switch` “discriminant”"},_walk:function(a){return a._visit(this,function(){this.expression._walk(a),x(this,a)})}},ea),Fa=w("SwitchBranch",null,{$documentation:"Base class for `switch` branches"},ea),Ga=w("Default",null,{$documentation:"A `default` switch branch"},Fa),Ha=w("Case","expression",{$documentation:"A `case` switch branch",$propdoc:{expression:"[AST_Node] the `case` expression"},_walk:function(a){return a._visit(this,function(){this.expression._walk(a),x(this,a)})}},Fa),Ia=w("Try","bcatch bfinally",{$documentation:"A `try` statement",$propdoc:{bcatch:"[AST_Catch?] the catch block, or null if not present",bfinally:"[AST_Finally?] the finally block, or null if not present"},_walk:function(a){return a._visit(this,function(){x(this,a),this.bcatch&&this.bcatch._walk(a),this.bfinally&&this.bfinally._walk(a)})}},ea),Ja=w("Catch","argname",{$documentation:"A `catch` node; only makes sense as part of a `try` statement",$propdoc:{argname:"[AST_SymbolCatch] symbol for the exception"},_walk:function(a){return a._visit(this,function(){this.argname._walk(a),x(this,a)})}},ea),Ka=w("Finally",null,{$documentation:"A `finally` node; only makes sense as part of a `try` statement"},ea),La=w("Definitions","definitions",{$documentation:"Base class for `var` or `const` nodes (variable declarations/initializations)",$propdoc:{definitions:"[AST_VarDef*] array of variable definitions"},_walk:function(a){return a._visit(this,function(){this.definitions.forEach(function(b){b._walk(a)})})}},aa),Ma=w("Var",null,{$documentation:"A `var` statement"},La),Na=w("Const",null,{$documentation:"A `const` statement"},La),Oa=w("VarDef","name value",{$documentation:"A variable declaration; only appears in a AST_Definitions node",$propdoc:{name:"[AST_SymbolVar|AST_SymbolConst] name of the variable",value:"[AST_Node?] initializer, or null of there's no initializer"},_walk:function(a){return a._visit(this,function(){this.name._walk(a),this.value&&this.value._walk(a)})}}),Pa=w("Call","expression args",{$documentation:"A function call expression",$propdoc:{expression:"[AST_Node] expression to invoke as function",args:"[AST_Node*] array of arguments"},_walk:function(a){return a._visit(this,function(){this.expression._walk(a),this.args.forEach(function(b){b._walk(a)})})}}),Qa=w("New",null,{$documentation:"An object instantiation.  Derives from a function call since it has exactly the same properties"},Pa),Ra=w("Seq","car cdr",{$documentation:"A sequence expression (two comma-separated expressions)",$propdoc:{car:"[AST_Node] first element in sequence",cdr:"[AST_Node] second element in sequence"},$cons:function(a,b){var c=new Ra(a);return c.car=a,c.cdr=b,c},$from_array:function(a){if(0==a.length)return null;if(1==a.length)return a[0].clone();for(var b=null,c=a.length;--c>=0;)b=Ra.cons(a[c],b);for(var d=b;d;){if(d.cdr&&!d.cdr.cdr){d.cdr=d.cdr.car;break}d=d.cdr}return b},to_array:function(){for(var a=this,b=[];a;){if(b.push(a.car),a.cdr&&!(a.cdr instanceof Ra)){b.push(a.cdr);break}a=a.cdr}return b},add:function(a){for(var b=this;b;){if(!(b.cdr instanceof Ra)){var c=Ra.cons(b.cdr,a);return b.cdr=c}b=b.cdr}},_walk:function(a){return a._visit(this,function(){this.car._walk(a),this.cdr&&this.cdr._walk(a)})}}),Sa=w("PropAccess","expression property",{$documentation:'Base class for property access expressions, i.e. `a.foo` or `a["foo"]`',$propdoc:{expression:"[AST_Node] the “container” expression",property:"[AST_Node|string] the property to access.  For AST_Dot this is always a plain string, while for AST_Sub it's an arbitrary AST_Node"}}),Ta=w("Dot",null,{$documentation:"A dotted property access expression",_walk:function(a){return a._visit(this,function(){this.expression._walk(a)})}},Sa),Ua=w("Sub",null,{$documentation:'Index-style property access, i.e. `a["foo"]`',_walk:function(a){return a._visit(this,function(){this.expression._walk(a),this.property._walk(a)})}},Sa),Va=w("Unary","operator expression",{$documentation:"Base class for unary expressions",$propdoc:{operator:"[string] the operator",expression:"[AST_Node] expression that this unary operator applies to"},_walk:function(a){return a._visit(this,function(){this.expression._walk(a)})}}),Wa=w("UnaryPrefix",null,{$documentation:"Unary prefix expression, i.e. `typeof i` or `++i`"},Va),Xa=w("UnaryPostfix",null,{$documentation:"Unary postfix expression, i.e. `i++`"},Va),Ya=w("Binary","left operator right",{$documentation:"Binary expression, i.e. `a + b`",$propdoc:{left:"[AST_Node] left-hand side expression",operator:"[string] the operator",right:"[AST_Node] right-hand side expression"
+},_walk:function(a){return a._visit(this,function(){this.left._walk(a),this.right._walk(a)})}}),Za=w("Conditional","condition consequent alternative",{$documentation:"Conditional expression using the ternary operator, i.e. `a ? b : c`",$propdoc:{condition:"[AST_Node]",consequent:"[AST_Node]",alternative:"[AST_Node]"},_walk:function(a){return a._visit(this,function(){this.condition._walk(a),this.consequent._walk(a),this.alternative._walk(a)})}}),$a=w("Assign",null,{$documentation:"An assignment expression — `a = b + 5`"},Ya),_a=w("Array","elements",{$documentation:"An array literal",$propdoc:{elements:"[AST_Node*] array of elements"},_walk:function(a){return a._visit(this,function(){this.elements.forEach(function(b){b._walk(a)})})}}),ab=w("Object","properties",{$documentation:"An object literal",$propdoc:{properties:"[AST_ObjectProperty*] array of properties"},_walk:function(a){return a._visit(this,function(){this.properties.forEach(function(b){b._walk(a)})})}}),bb=w("ObjectProperty","key value",{$documentation:"Base class for literal object properties",$propdoc:{key:"[string] the property name converted to a string for ObjectKeyVal.  For setters and getters this is an arbitrary AST_Node.",value:"[AST_Node] property value.  For setters and getters this is an AST_Function."},_walk:function(a){return a._visit(this,function(){this.value._walk(a)})}}),cb=w("ObjectKeyVal","quote",{$documentation:"A key: value object property",$propdoc:{quote:"[string] the original quote character"}},bb),db=w("ObjectSetter",null,{$documentation:"An object setter property"},bb),eb=w("ObjectGetter",null,{$documentation:"An object getter property"},bb),fb=w("Symbol","scope name thedef",{$propdoc:{name:"[string] name of this symbol",scope:"[AST_Scope/S] the current scope (not necessarily the definition scope)",thedef:"[SymbolDef/S] the definition of this symbol"},$documentation:"Base class for all symbols"}),gb=w("SymbolAccessor",null,{$documentation:"The name of a property accessor (setter/getter function)"},fb),hb=w("SymbolDeclaration","init",{$documentation:"A declaration symbol (symbol in var/const, function name or argument, symbol in catch)",$propdoc:{init:"[AST_Node*/S] array of initializers for this declaration."}},fb),ib=w("SymbolVar",null,{$documentation:"Symbol defining a variable"},hb),jb=w("SymbolConst",null,{$documentation:"A constant declaration"},hb),kb=w("SymbolFunarg",null,{$documentation:"Symbol naming a function argument"},ib),lb=w("SymbolDefun",null,{$documentation:"Symbol defining a function"},hb),mb=w("SymbolLambda",null,{$documentation:"Symbol naming a function expression"},hb),nb=w("SymbolCatch",null,{$documentation:"Symbol naming the exception in catch"},hb),ob=w("Label","references",{$documentation:"Symbol naming a label (declaration)",$propdoc:{references:"[AST_LoopControl*] a list of nodes referring to this label"},initialize:function(){this.references=[],this.thedef=this}},fb),pb=w("SymbolRef",null,{$documentation:"Reference to some symbol (not definition/declaration)"},fb),qb=w("LabelRef",null,{$documentation:"Reference to a label symbol"},fb),rb=w("This",null,{$documentation:"The `this` symbol"},fb),sb=w("Constant",null,{$documentation:"Base class for all constants",getValue:function(){return this.value}}),tb=w("String","value quote",{$documentation:"A string literal",$propdoc:{value:"[string] the contents of this string",quote:"[string] the original quote character"}},sb),ub=w("Number","value literal",{$documentation:"A number literal",$propdoc:{value:"[number] the numeric value",literal:"[string] numeric value as string (optional)"}},sb),vb=w("RegExp","value",{$documentation:"A regexp literal",$propdoc:{value:"[RegExp] the actual regexp"}},sb),wb=w("Atom",null,{$documentation:"Base class for atoms"},sb),xb=w("Null",null,{$documentation:"The `null` atom",value:null},wb),yb=w("NaN",null,{$documentation:"The impossible value",value:NaN},wb),zb=w("Undefined",null,{$documentation:"The `undefined` value",value:void 0},wb),Ab=w("Hole",null,{$documentation:"A hole in an array",value:void 0},wb),Bb=w("Infinity",null,{$documentation:"The `Infinity` value",value:1/0},wb),Cb=w("Boolean",null,{$documentation:"Base class for booleans"},wb),Db=w("False",null,{$documentation:"The `false` atom",value:!1},Cb),Eb=w("True",null,{$documentation:"The `true` atom",value:!0},Cb);y.prototype={_visit:function(a,b){this.push(a);var c=this.visit(a,b?function(){b.call(a)}:m);return!c&&b&&b.call(a),this.pop(a),c},parent:function(a){return this.stack[this.stack.length-2-(a||0)]},push:function(a){a instanceof sa?this.directives=Object.create(this.directives):a instanceof ca&&(this.directives[a.value]=this.directives[a.value]?"up":!0),this.stack.push(a)},pop:function(a){this.stack.pop(),a instanceof sa&&(this.directives=Object.getPrototypeOf(this.directives))},self:function(){return this.stack[this.stack.length-1]},find_parent:function(a){for(var b=this.stack,c=b.length;--c>=0;){var d=b[c];if(d instanceof a)return d}},has_directive:function(a){var b=this.directives[a];if(b)return b;var c=this.stack[this.stack.length-1];if(c instanceof qa)for(var d=0;d<c.body.length;++d){var e=c.body[d];if(!(e instanceof ca))break;if(e.value==a)return!0}},in_boolean_context:function(){for(var a=this.stack,b=a.length,c=a[--b];b>0;){var d=a[--b];if(d instanceof Da&&d.condition===c||d instanceof Za&&d.condition===c||d instanceof ka&&d.condition===c||d instanceof na&&d.condition===c||d instanceof Wa&&"!"==d.operator&&d.expression===c)return!0;if(!(d instanceof Ya)||"&&"!=d.operator&&"||"!=d.operator)return!1;c=d}},loopcontrol_target:function(a){var b=this.stack;if(a)for(var c=b.length;--c>=0;){var d=b[c];if(d instanceof ia&&d.label.name==a.name)return d.body}else for(var c=b.length;--c>=0;){var d=b[c];if(d instanceof Ea||d instanceof ja)return d}}};var Fb="break case catch const continue debugger default delete do else finally for function if in instanceof new return switch throw try typeof var void while with",Gb="false null true",Hb="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 this throws transient volatile yield "+Gb+" "+Fb,Ib="return new delete throw else case";Fb=t(Fb),Hb=t(Hb),Ib=t(Ib),Gb=t(Gb);var Jb=t(f("+-*&%=<>!?|~^")),Kb=/^0x[0-9a-f]+$/i,Lb=/^0[0-7]+$/,Mb=t(["in","instanceof","typeof","new","void","delete","++","--","+","-","!","~","&","|","^","*","/","%",">>","<<",">>>","<",">","<=",">=","==","===","!=","!==","?","=","+=","-=","/=","*=","%=",">>=","<<=",">>>=","|=","^=","&=","&&","||"]),Nb=t(f("  \n\r       \f\x0B​᠎              \ufeff")),Ob=t(f("[{(,.;:")),Pb=t(f("[]{}(),;:")),Qb=t(f("gmsiy")),Rb={letter:new RegExp("[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\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-\\u1310\\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\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\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\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\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]"),digit:new RegExp("[\\u0030-\\u0039\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0BE6-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F\\u0DE6-\\u0DEF\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049\\u1090-\\u1099\\u17E0-\\u17E9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19D9\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\uA620-\\uA629\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uA9F0-\\uA9F9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19]"),non_spacing_mark:new RegExp("[\\u0300-\\u036F\\u0483-\\u0487\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065E\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0900-\\u0902\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0955\\u0962\\u0963\\u0981\\u09BC\\u09C1-\\u09C4\\u09CD\\u09E2\\u09E3\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0B01\\u0B3C\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B56\\u0B62\\u0B63\\u0B82\\u0BC0\\u0BCD\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0CBC\\u0CBF\\u0CC6\\u0CCC\\u0CCD\\u0CE2\\u0CE3\\u0D41-\\u0D44\\u0D4D\\u0D62\\u0D63\\u0DCA\\u0DD2-\\u0DD4\\u0DD6\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F90-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1A17\\u1A18\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1B00-\\u1B03\\u1B34\\u1B36-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1DC0-\\u1DE6\\u1DFD-\\u1DFF\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2CEF-\\u2CF1\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F\\uA67C\\uA67D\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE26]"),space_combining_mark:new RegExp("[\\u0903\\u093E-\\u0940\\u0949-\\u094C\\u094E\\u0982\\u0983\\u09BE-\\u09C0\\u09C7\\u09C8\\u09CB\\u09CC\\u09D7\\u0A03\\u0A3E-\\u0A40\\u0A83\\u0ABE-\\u0AC0\\u0AC9\\u0ACB\\u0ACC\\u0B02\\u0B03\\u0B3E\\u0B40\\u0B47\\u0B48\\u0B4B\\u0B4C\\u0B57\\u0BBE\\u0BBF\\u0BC1\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCC\\u0BD7\\u0C01-\\u0C03\\u0C41-\\u0C44\\u0C82\\u0C83\\u0CBE\\u0CC0-\\u0CC4\\u0CC7\\u0CC8\\u0CCA\\u0CCB\\u0CD5\\u0CD6\\u0D02\\u0D03\\u0D3E-\\u0D40\\u0D46-\\u0D48\\u0D4A-\\u0D4C\\u0D57\\u0D82\\u0D83\\u0DCF-\\u0DD1\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0F3E\\u0F3F\\u0F7F\\u102B\\u102C\\u1031\\u1038\\u103B\\u103C\\u1056\\u1057\\u1062-\\u1064\\u1067-\\u106D\\u1083\\u1084\\u1087-\\u108C\\u108F\\u109A-\\u109C\\u17B6\\u17BE-\\u17C5\\u17C7\\u17C8\\u1923-\\u1926\\u1929-\\u192B\\u1930\\u1931\\u1933-\\u1938\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A19-\\u1A1B\\u1A55\\u1A57\\u1A61\\u1A63\\u1A64\\u1A6D-\\u1A72\\u1B04\\u1B35\\u1B3B\\u1B3D-\\u1B41\\u1B43\\u1B44\\u1B82\\u1BA1\\u1BA6\\u1BA7\\u1BAA\\u1C24-\\u1C2B\\u1C34\\u1C35\\u1CE1\\u1CF2\\uA823\\uA824\\uA827\\uA880\\uA881\\uA8B4-\\uA8C3\\uA952\\uA953\\uA983\\uA9B4\\uA9B5\\uA9BA\\uA9BB\\uA9BD-\\uA9C0\\uAA2F\\uAA30\\uAA33\\uAA34\\uAA4D\\uAA7B\\uABE3\\uABE4\\uABE6\\uABE7\\uABE9\\uABEA\\uABEC]"),connector_punctuation:new RegExp("[\\u005F\\u203F\\u2040\\u2054\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFF3F]")};K.prototype.toString=function(){return this.message+" (line: "+this.line+", col: "+this.col+", pos: "+this.pos+")\n\n"+this.stack};var Sb={},Tb=t(["typeof","void","delete","--","++","!","~","-","+"]),Ub=t(["--","++"]),Vb=t(["=","+=","-=","/=","*=","%=",">>=","<<=",">>>=","|=","^=","&="]),Wb=function(a,b){for(var c=0;c<a.length;++c)for(var d=a[c],e=0;e<d.length;++e)b[d[e]]=c+1;return b}([["||"],["&&"],["|"],["^"],["&"],["==","===","!=","!=="],["<",">","<=",">=","in","instanceof"],[">>","<<",">>>"],["+","-"],["*","/","%"]],{}),Xb=d(["for","do","while","switch"]),Yb=d(["atom","num","string","regexp","name"]);P.prototype=new y,function(a){function b(b,c){b.DEFMETHOD("transform",function(b,d){var e,f;return b.push(this),b.before&&(e=b.before(this,c,d)),e===a&&(b.after?(b.stack[b.stack.length-1]=e=this,c(e,b),f=b.after(e,d),f!==a&&(e=f)):(e=this,c(e,b))),b.pop(this),e})}function c(a,b){return Z(a,function(a){return a.transform(b,!0)})}b(_,m),b(ia,function(a,b){a.label=a.label.transform(b),a.body=a.body.transform(b)}),b(da,function(a,b){a.body=a.body.transform(b)}),b(ea,function(a,b){a.body=c(a.body,b)}),b(ka,function(a,b){a.condition=a.condition.transform(b),a.body=a.body.transform(b)}),b(na,function(a,b){a.init&&(a.init=a.init.transform(b)),a.condition&&(a.condition=a.condition.transform(b)),a.step&&(a.step=a.step.transform(b)),a.body=a.body.transform(b)}),b(oa,function(a,b){a.init=a.init.transform(b),a.object=a.object.transform(b),a.body=a.body.transform(b)}),b(pa,function(a,b){a.expression=a.expression.transform(b),a.body=a.body.transform(b)}),b(xa,function(a,b){a.value&&(a.value=a.value.transform(b))}),b(Aa,function(a,b){a.label&&(a.label=a.label.transform(b))}),b(Da,function(a,b){a.condition=a.condition.transform(b),a.body=a.body.transform(b),a.alternative&&(a.alternative=a.alternative.transform(b))}),b(Ea,function(a,b){a.expression=a.expression.transform(b),a.body=c(a.body,b)}),b(Ha,function(a,b){a.expression=a.expression.transform(b),a.body=c(a.body,b)}),b(Ia,function(a,b){a.body=c(a.body,b),a.bcatch&&(a.bcatch=a.bcatch.transform(b)),a.bfinally&&(a.bfinally=a.bfinally.transform(b))}),b(Ja,function(a,b){a.argname=a.argname.transform(b),a.body=c(a.body,b)}),b(La,function(a,b){a.definitions=c(a.definitions,b)}),b(Oa,function(a,b){a.name=a.name.transform(b),a.value&&(a.value=a.value.transform(b))}),b(sa,function(a,b){a.name&&(a.name=a.name.transform(b)),a.argnames=c(a.argnames,b),a.body=c(a.body,b)}),b(Pa,function(a,b){a.expression=a.expression.transform(b),a.args=c(a.args,b)}),b(Ra,function(a,b){a.car=a.car.transform(b),a.cdr=a.cdr.transform(b)}),b(Ta,function(a,b){a.expression=a.expression.transform(b)}),b(Ua,function(a,b){a.expression=a.expression.transform(b),a.property=a.property.transform(b)}),b(Va,function(a,b){a.expression=a.expression.transform(b)}),b(Ya,function(a,b){a.left=a.left.transform(b),a.right=a.right.transform(b)}),b(Za,function(a,b){a.condition=a.condition.transform(b),a.consequent=a.consequent.transform(b),a.alternative=a.alternative.transform(b)}),b(_a,function(a,b){a.elements=c(a.elements,b)}),b(ab,function(a,b){a.properties=c(a.properties,b)}),b(bb,function(a,b){a.value=a.value.transform(b)})}(),Q.prototype={unmangleable:function(a){return a||(a={}),this.global&&!a.toplevel||this.undeclared||!a.eval&&(this.scope.uses_eval||this.scope.uses_with)||a.keep_fnames&&(this.orig[0]instanceof mb||this.orig[0]instanceof lb)},mangle:function(a){var b=a.cache&&a.cache.props;if(this.global&&b&&b.has(this.name))this.mangled_name=b.get(this.name);else if(!this.mangled_name&&!this.unmangleable(a)){var c=this.scope;!a.screw_ie8&&this.orig[0]instanceof mb&&(c=c.parent_scope),this.mangled_name=c.next_mangled(a,this),this.global&&b&&b.set(this.name,this.mangled_name)}}},ra.DEFMETHOD("figure_out_scope",function(a){a=k(a,{screw_ie8:!1,cache:null});var b=this,c=b.parent_scope=null,d=new v,e=null,f=!1,g=0,h=new y(function(b,i){if(a.screw_ie8&&b instanceof Ja){var j=c;return c=new qa(b),c.init_scope_vars(g),c.parent_scope=j,i(),c=j,!0}if(b instanceof qa){b.init_scope_vars(g);var j=b.parent_scope=c,k=e,l=d;return e=c=b,d=new v,++g,i(),--g,c=j,e=k,d=l,!0}if(b instanceof ia){var m=b.label;if(d.has(m.name))throw new Error(o("Label {name} defined twice",m));return d.set(m.name,m),i(),d.del(m.name),!0}if(b instanceof pa)for(var n=c;n;n=n.parent_scope)n.uses_with=!0;else if(b instanceof fb&&(b.scope=c),b instanceof ob&&(b.thedef=b,b.references=[]),b instanceof mb)e.def_function(b);else if(b instanceof lb)(b.scope=e.parent_scope).def_function(b);else if(b instanceof Ma)f=b.has_const_pragma();else if(b instanceof ib||b instanceof jb){var p=e.def_variable(b);p.constant=b instanceof jb||f,p.init=h.parent().value}else if(b instanceof nb)(a.screw_ie8?c:e).def_variable(b);else if(b instanceof qb){var q=d.get(b.name);if(!q)throw new Error(o("Undefined label {name} [{line},{col}]",{name:b.name,line:b.start.line,col:b.start.col}));b.thedef=q}});b.walk(h);var i=null,j=b.globals=new v,h=new y(function(a,c){if(a instanceof sa){var d=i;return i=a,c(),i=d,!0}if(a instanceof Aa&&a.label)return a.label.thedef.references.push(a),!0;if(a instanceof pb){var e=a.name;if("eval"==e&&h.parent()instanceof Pa)for(var f=a.scope;f&&!f.uses_eval;f=f.parent_scope)f.uses_eval=!0;var g=a.scope.find_variable(e);if(g)a.thedef=g;else{var k;j.has(e)?k=j.get(e):(k=new Q(b,j.size(),a),k.undeclared=!0,k.global=!0,j.set(e,k)),a.thedef=k,i&&"arguments"==e&&(i.uses_arguments=!0)}return a.reference(),!0}});b.walk(h),a.cache&&(this.cname=a.cache.cname)}),qa.DEFMETHOD("init_scope_vars",function(a){this.variables=new v,this.functions=new v,this.uses_with=!1,this.uses_eval=!1,this.parent_scope=null,this.enclosed=[],this.cname=-1,this.nesting=a}),sa.DEFMETHOD("init_scope_vars",function(){qa.prototype.init_scope_vars.apply(this,arguments),this.uses_arguments=!1;var a=new Oa({name:"arguments",start:this.start,end:this.end}),b=new Q(this,this.variables.size(),a);this.variables.set(a.name,b)}),pb.DEFMETHOD("reference",function(){var a=this.definition();a.references.push(this);for(var b=this.scope;b&&(n(b.enclosed,a),b!==a.scope);)b=b.parent_scope;this.frame=this.scope.nesting-a.scope.nesting}),qa.DEFMETHOD("find_variable",function(a){return a instanceof fb&&(a=a.name),this.variables.get(a)||this.parent_scope&&this.parent_scope.find_variable(a)}),qa.DEFMETHOD("def_function",function(a){this.functions.set(a.name,this.def_variable(a))}),qa.DEFMETHOD("def_variable",function(a){var b;return this.variables.has(a.name)?(b=this.variables.get(a.name),b.orig.push(a)):(b=new Q(this,this.variables.size(),a),this.variables.set(a.name,b),b.global=!this.parent_scope),a.thedef=b}),qa.DEFMETHOD("next_mangled",function(a){var b=this.enclosed;a:for(;;){var c=Zb(++this.cname);if(F(c)&&!(a.except.indexOf(c)>=0)){for(var d=b.length;--d>=0;){var e=b[d],f=e.mangled_name||e.unmangleable(a)&&e.name;if(c==f)continue a}return c}}}),ua.DEFMETHOD("next_mangled",function(a,b){for(var c=b.orig[0]instanceof kb&&this.name&&this.name.definition();;){var d=sa.prototype.next_mangled.call(this,a,b);if(!c||c.mangled_name!=d)return d}}),qa.DEFMETHOD("references",function(a){return a instanceof fb&&(a=a.definition()),this.enclosed.indexOf(a)<0?null:a}),fb.DEFMETHOD("unmangleable",function(a){return this.definition().unmangleable(a)}),gb.DEFMETHOD("unmangleable",function(){return!0}),ob.DEFMETHOD("unmangleable",function(){return!1}),fb.DEFMETHOD("unreferenced",function(){return 0==this.definition().references.length&&!(this.scope.uses_eval||this.scope.uses_with)}),fb.DEFMETHOD("undeclared",function(){return this.definition().undeclared}),qb.DEFMETHOD("undeclared",function(){return!1}),ob.DEFMETHOD("undeclared",function(){return!1}),fb.DEFMETHOD("definition",function(){return this.thedef}),fb.DEFMETHOD("global",function(){return this.definition().global}),Ma.DEFMETHOD("has_const_pragma",function(){var a=this.start&&this.start.comments_before,b=a&&a[a.length-1];return b&&/@const\b/.test(b.value)}),ra.DEFMETHOD("_default_mangler_options",function(a){return k(a,{except:[],eval:!1,sort:!1,toplevel:!1,screw_ie8:!1,keep_fnames:!1})}),ra.DEFMETHOD("mangle_names",function(a){a=this._default_mangler_options(a),a.except.push("arguments");var b=-1,c=[];a.cache&&this.globals.each(function(b){a.except.indexOf(b.name)<0&&c.push(b)});var d=new y(function(e,f){if(e instanceof ia){var g=b;return f(),b=g,!0}if(e instanceof qa){var h=(d.parent(),[]);return e.variables.each(function(b){a.except.indexOf(b.name)<0&&h.push(b)}),a.sort&&h.sort(function(a,b){return b.references.length-a.references.length}),void c.push.apply(c,h)}if(e instanceof ob){var i;do i=Zb(++b);while(!F(i));return e.mangled_name=i,!0}return a.screw_ie8&&e instanceof nb?void c.push(e.definition()):void 0});this.walk(d),c.forEach(function(b){b.mangle(a)}),a.cache&&(a.cache.cname=this.cname)}),ra.DEFMETHOD("compute_char_frequency",function(a){a=this._default_mangler_options(a);var b=new y(function(b){b instanceof sb?Zb.consider(b.print_to_string()):b instanceof ya?Zb.consider("return"):b instanceof za?Zb.consider("throw"):b instanceof Ca?Zb.consider("continue"):b instanceof Ba?Zb.consider("break"):b instanceof ba?Zb.consider("debugger"):b instanceof ca?Zb.consider(b.value):b instanceof ma?Zb.consider("while"):b instanceof la?Zb.consider("do while"):b instanceof Da?(Zb.consider("if"),b.alternative&&Zb.consider("else")):b instanceof Ma?Zb.consider("var"):b instanceof Na?Zb.consider("const"):b instanceof sa?Zb.consider("function"):b instanceof na?Zb.consider("for"):b instanceof oa?Zb.consider("for in"):b instanceof Ea?Zb.consider("switch"):b instanceof Ha?Zb.consider("case"):b instanceof Ga?Zb.consider("default"):b instanceof pa?Zb.consider("with"):b instanceof db?Zb.consider("set"+b.key):b instanceof eb?Zb.consider("get"+b.key):b instanceof cb?Zb.consider(b.key):b instanceof Qa?Zb.consider("new"):b instanceof rb?Zb.consider("this"):b instanceof Ia?Zb.consider("try"):b instanceof Ja?Zb.consider("catch"):b instanceof Ka?Zb.consider("finally"):b instanceof fb&&b.unmangleable(a)?Zb.consider(b.name):b instanceof Va||b instanceof Ya?Zb.consider(b.operator):b instanceof Ta&&Zb.consider(b.property)});this.walk(b),Zb.sort()});var Zb=function(){function a(){d=Object.create(null),c=e.split("").map(function(a){return a.charCodeAt(0)}),c.forEach(function(a){d[a]=0})}function b(a){var b="",d=54;a++;do a--,b+=String.fromCharCode(c[a%d]),a=Math.floor(a/d),d=64;while(a>0);return b}var c,d,e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_0123456789";return b.consider=function(a){for(var b=a.length;--b>=0;){var c=a.charCodeAt(b);c in d&&++d[c]}},b.sort=function(){c=q(c,function(a,b){return A(a)&&!A(b)?1:A(b)&&!A(a)?-1:d[b]-d[a]})},b.reset=a,a(),b.get=function(){return c},b.freq=function(){return d},b}();ra.DEFMETHOD("scope_warnings",function(a){a=k(a,{undeclared:!1,unreferenced:!0,assign_to_global:!0,func_arguments:!0,nested_defuns:!0,eval:!0});var b=new y(function(c){if(a.undeclared&&c instanceof pb&&c.undeclared()&&_.warn("Undeclared symbol: {name} [{file}:{line},{col}]",{name:c.name,file:c.start.file,line:c.start.line,col:c.start.col}),a.assign_to_global){var d=null;c instanceof $a&&c.left instanceof pb?d=c.left:c instanceof oa&&c.init instanceof pb&&(d=c.init),d&&(d.undeclared()||d.global()&&d.scope!==d.definition().scope)&&_.warn("{msg}: {name} [{file}:{line},{col}]",{msg:d.undeclared()?"Accidental global?":"Assignment to global",name:d.name,file:d.start.file,line:d.start.line,col:d.start.col})}a.eval&&c instanceof pb&&c.undeclared()&&"eval"==c.name&&_.warn("Eval is used [{file}:{line},{col}]",c.start),a.unreferenced&&(c instanceof hb||c instanceof ob)&&!(c instanceof nb)&&c.unreferenced()&&_.warn("{type} {name} is declared but not referenced [{file}:{line},{col}]",{type:c instanceof ob?"Label":"Symbol",name:c.name,file:c.start.file,line:c.start.line,col:c.start.col}),a.func_arguments&&c instanceof sa&&c.uses_arguments&&_.warn("arguments used in function {name} [{file}:{line},{col}]",{name:c.name?c.name.name:"anonymous",file:c.start.file,line:c.start.line,col:c.start.col}),a.nested_defuns&&c instanceof va&&!(b.parent()instanceof qa)&&_.warn('Function {name} declared in nested statement "{type}" [{file}:{line},{col}]',{name:c.name.name,type:b.parent().TYPE,file:c.start.file,line:c.start.line,col:c.start.col})});this.walk(b)}),function(){function a(a,b){a.DEFMETHOD("_codegen",b)}function b(a,c){Array.isArray(a)?a.forEach(function(a){b(a,c)}):a.DEFMETHOD("needs_parens",c)}function c(a,b,c){var d=a.length-1;a.forEach(function(a,e){a instanceof ga||(c.indent(),a.print(c),e==d&&b||(c.newline(),b&&c.newline()))})}function d(a,b){a.length>0?b.with_block(function(){c(a,!1,b)}):b.print("{}")}function e(a,b){if(b.option("bracketize"))return void n(a.body,b);if(!a.body)return b.force_semicolon();if(a.body instanceof la&&!b.option("screw_ie8"))return void n(a.body,b);for(var c=a.body;;)if(c instanceof Da){if(!c.alternative)return void n(a.body,b);c=c.alternative}else{if(!(c instanceof ha))break;c=c.body}h(a.body,b)}function f(a,b,c){if(c)try{a.walk(new y(function(a){if(a instanceof Ya&&"in"==a.operator)throw b})),a.print(b)}catch(d){if(d!==b)throw d;a.print(b,!0)}else a.print(b)}function g(a){return[92,47,46,43,42,63,40,41,91,93,123,125,36,94,58,124,33,10,13,0,65279,8232,8233].indexOf(a)<0}function h(a,b){b.option("bracketize")?!a||a instanceof ga?b.print("{}"):a instanceof fa?a.print(b):b.with_block(function(){b.indent(),a.print(b),b.newline()}):!a||a instanceof ga?b.force_semicolon():a.print(b)}function i(a){for(var b=a.stack(),c=b.length,d=b[--c],e=b[--c];c>0;){if(e instanceof aa&&e.body===d)return!0;if(!(e instanceof Ra&&e.car===d||e instanceof Pa&&e.expression===d&&!(e instanceof Qa)||e instanceof Ta&&e.expression===d||e instanceof Ua&&e.expression===d||e instanceof Za&&e.condition===d||e instanceof Ya&&e.left===d||e instanceof Xa&&e.expression===d))return!1;d=e,e=b[--c]}}function j(a,b){return 0==a.args.length&&!b.option("beautify")}function k(a){for(var b=a[0],c=b.length,d=1;d<a.length;++d)a[d].length<c&&(b=a[d],c=b.length);return b}function l(a){var b,c=a.toString(10),d=[c.replace(/^0\./,".").replace("e+","e")];return Math.floor(a)===a?(a>=0?d.push("0x"+a.toString(16).toLowerCase(),"0"+a.toString(8)):d.push("-0x"+(-a).toString(16).toLowerCase(),"-0"+(-a).toString(8)),(b=/^(.*?)(0+)$/.exec(a))&&d.push(b[1]+"e"+b[2].length)):(b=/^0?\.(0+)(.*)$/.exec(a))&&d.push(b[2]+"e-"+(b[1].length+b[2].length),c.substr(c.indexOf("."))),k(d)}function n(a,b){return a instanceof fa?void a.print(b):void b.with_block(function(){b.indent(),a.print(b),b.newline()})}function o(a,b){a.DEFMETHOD("add_source_map",function(a){b(this,a)})}function p(a,b){b.add_mapping(a.start)}var q=!1;_.DEFMETHOD("print",function(a,b){function c(){d.add_comments(a),d.add_source_map(a),e(d,a)}var d=this,e=d._codegen,f=q;d instanceof ca&&"use asm"==d.value&&(q=!0),a.push_node(d),b||d.needs_parens(a)?a.with_parens(c):c(),a.pop_node(),d instanceof sa&&(q=f)}),_.DEFMETHOD("print_to_string",function(a){var b=R(a);return this.print(b),b.get()}),_.DEFMETHOD("add_comments",function(a){var b=a.option("comments"),c=this,d=c.start;if(d&&!d._comments_dumped){d._comments_dumped=!0;var e=d.comments_before||[];c instanceof xa&&c.value&&c.value.walk(new y(function(a){return a.start&&a.start.comments_before&&(e=e.concat(a.start.comments_before),a.start.comments_before=[]),a instanceof ua||a instanceof _a||a instanceof ab?!0:void 0})),b?b.test?e=e.filter(function(a){return"comment5"==a.type||b.test(a.value)}):"function"==typeof b&&(e=e.filter(function(a){return"comment5"==a.type||b(c,a)})):e=e.filter(function(a){return"comment5"==a.type}),!a.option("beautify")&&e.length>0&&/comment[134]/.test(e[0].type)&&0!==a.col()&&e[0].nlb&&a.print("\n"),e.forEach(function(b){/comment[134]/.test(b.type)?(a.print("//"+b.value+"\n"),a.indent()):"comment2"==b.type?(a.print("/*"+b.value+"*/"),d.nlb?(a.print("\n"),a.indent()):a.space()):0===a.pos()&&"comment5"==b.type&&a.option("shebang")&&(a.print("#!"+b.value+"\n"),a.indent())})}}),b(_,function(){return!1}),b(ua,function(a){return i(a)}),b(ab,function(a){return i(a)}),b([Va,zb],function(a){var b=a.parent();return b instanceof Sa&&b.expression===this}),b(Ra,function(a){var b=a.parent();return b instanceof Pa||b instanceof Va||b instanceof Ya||b instanceof Oa||b instanceof Sa||b instanceof _a||b instanceof bb||b instanceof Za;
 }),b(Ya,function(a){var b=a.parent();if(b instanceof Pa&&b.expression===this)return!0;if(b instanceof Va)return!0;if(b instanceof Sa&&b.expression===this)return!0;if(b instanceof Ya){var c=b.operator,d=Wb[c],e=this.operator,f=Wb[e];if(d>f||d==f&&this===b.right)return!0}}),b(Sa,function(a){var b=a.parent();if(b instanceof Qa&&b.expression===this)try{this.walk(new y(function(a){if(a instanceof Pa)throw b}))}catch(c){if(c!==b)throw c;return!0}}),b(Pa,function(a){var b,c=a.parent();return c instanceof Qa&&c.expression===this?!0:this.expression instanceof ua&&c instanceof Sa&&c.expression===this&&(b=a.parent(1))instanceof $a&&b.left===c}),b(Qa,function(a){var b=a.parent();return j(this,a)&&(b instanceof Sa||b instanceof Pa&&b.expression===this)?!0:void 0}),b(ub,function(a){var b=a.parent();return this.getValue()<0&&b instanceof Sa&&b.expression===this?!0:void 0}),b([$a,Za],function(a){var b=a.parent();return b instanceof Va?!0:b instanceof Ya&&!(b instanceof $a)?!0:b instanceof Pa&&b.expression===this?!0:b instanceof Za&&b.condition===this?!0:b instanceof Sa&&b.expression===this?!0:void 0}),a(ca,function(a,b){b.print_string(a.value,a.quote),b.semicolon()}),a(ba,function(a,b){b.print("debugger"),b.semicolon()}),ha.DEFMETHOD("_do_print_body",function(a){h(this.body,a)}),a(aa,function(a,b){a.body.print(b),b.semicolon()}),a(ra,function(a,b){c(a.body,!0,b),b.print("")}),a(ia,function(a,b){a.label.print(b),b.colon(),a.body.print(b)}),a(da,function(a,b){a.body.print(b),b.semicolon()}),a(fa,function(a,b){d(a.body,b)}),a(ga,function(a,b){b.semicolon()}),a(la,function(a,b){b.print("do"),b.space(),a._do_print_body(b),b.space(),b.print("while"),b.space(),b.with_parens(function(){a.condition.print(b)}),b.semicolon()}),a(ma,function(a,b){b.print("while"),b.space(),b.with_parens(function(){a.condition.print(b)}),b.space(),a._do_print_body(b)}),a(na,function(a,b){b.print("for"),b.space(),b.with_parens(function(){!a.init||a.init instanceof ga?b.print(";"):(a.init instanceof La?a.init.print(b):f(a.init,b,!0),b.print(";"),b.space()),a.condition?(a.condition.print(b),b.print(";"),b.space()):b.print(";"),a.step&&a.step.print(b)}),b.space(),a._do_print_body(b)}),a(oa,function(a,b){b.print("for"),b.space(),b.with_parens(function(){a.init.print(b),b.space(),b.print("in"),b.space(),a.object.print(b)}),b.space(),a._do_print_body(b)}),a(pa,function(a,b){b.print("with"),b.space(),b.with_parens(function(){a.expression.print(b)}),b.space(),a._do_print_body(b)}),sa.DEFMETHOD("_do_print",function(a,b){var c=this;b||a.print("function"),c.name&&(a.space(),c.name.print(a)),a.with_parens(function(){c.argnames.forEach(function(b,c){c&&a.comma(),b.print(a)})}),a.space(),d(c.body,a)}),a(sa,function(a,b){a._do_print(b)}),xa.DEFMETHOD("_do_print",function(a,b){a.print(b),this.value&&(a.space(),this.value.print(a)),a.semicolon()}),a(ya,function(a,b){a._do_print(b,"return")}),a(za,function(a,b){a._do_print(b,"throw")}),Aa.DEFMETHOD("_do_print",function(a,b){a.print(b),this.label&&(a.space(),this.label.print(a)),a.semicolon()}),a(Ba,function(a,b){a._do_print(b,"break")}),a(Ca,function(a,b){a._do_print(b,"continue")}),a(Da,function(a,b){b.print("if"),b.space(),b.with_parens(function(){a.condition.print(b)}),b.space(),a.alternative?(e(a,b),b.space(),b.print("else"),b.space(),h(a.alternative,b)):a._do_print_body(b)}),a(Ea,function(a,b){b.print("switch"),b.space(),b.with_parens(function(){a.expression.print(b)}),b.space(),a.body.length>0?b.with_block(function(){a.body.forEach(function(a,c){c&&b.newline(),b.indent(!0),a.print(b)})}):b.print("{}")}),Fa.DEFMETHOD("_do_print_body",function(a){this.body.length>0&&(a.newline(),this.body.forEach(function(b){a.indent(),b.print(a),a.newline()}))}),a(Ga,function(a,b){b.print("default:"),a._do_print_body(b)}),a(Ha,function(a,b){b.print("case"),b.space(),a.expression.print(b),b.print(":"),a._do_print_body(b)}),a(Ia,function(a,b){b.print("try"),b.space(),d(a.body,b),a.bcatch&&(b.space(),a.bcatch.print(b)),a.bfinally&&(b.space(),a.bfinally.print(b))}),a(Ja,function(a,b){b.print("catch"),b.space(),b.with_parens(function(){a.argname.print(b)}),b.space(),d(a.body,b)}),a(Ka,function(a,b){b.print("finally"),b.space(),d(a.body,b)}),La.DEFMETHOD("_do_print",function(a,b){a.print(b),a.space(),this.definitions.forEach(function(b,c){c&&a.comma(),b.print(a)});var c=a.parent(),d=c instanceof na||c instanceof oa,e=d&&c.init===this;e||a.semicolon()}),a(Ma,function(a,b){a._do_print(b,"var")}),a(Na,function(a,b){a._do_print(b,"const")}),a(Oa,function(a,b){if(a.name.print(b),a.value){b.space(),b.print("="),b.space();var c=b.parent(1),d=c instanceof na||c instanceof oa;f(a.value,b,d)}}),a(Pa,function(a,b){a.expression.print(b),a instanceof Qa&&j(a,b)||b.with_parens(function(){a.args.forEach(function(a,c){c&&b.comma(),a.print(b)})})}),a(Qa,function(a,b){b.print("new"),b.space(),Pa.prototype._codegen(a,b)}),Ra.DEFMETHOD("_do_print",function(a){this.car.print(a),this.cdr&&(a.comma(),a.should_break()&&(a.newline(),a.indent()),this.cdr.print(a))}),a(Ra,function(a,b){a._do_print(b)}),a(Ta,function(a,b){var c=a.expression;c.print(b),c instanceof ub&&c.getValue()>=0&&(/[xa-f.]/i.test(b.last())||b.print(".")),b.print("."),b.add_mapping(a.end),b.print_name(a.property)}),a(Ua,function(a,b){a.expression.print(b),b.print("["),a.property.print(b),b.print("]")}),a(Wa,function(a,b){var c=a.operator;b.print(c),(/^[a-z]/i.test(c)||/[+-]$/.test(c)&&a.expression instanceof Wa&&/^[+-]/.test(a.expression.operator))&&b.space(),a.expression.print(b)}),a(Xa,function(a,b){a.expression.print(b),b.print(a.operator)}),a(Ya,function(a,b){var c=a.operator;a.left.print(b),">"==c[0]&&a.left instanceof Xa&&"--"==a.left.operator?b.print(" "):b.space(),b.print(c),("<"==c||"<<"==c)&&a.right instanceof Wa&&"!"==a.right.operator&&a.right.expression instanceof Wa&&"--"==a.right.expression.operator?b.print(" "):b.space(),a.right.print(b)}),a(Za,function(a,b){a.condition.print(b),b.space(),b.print("?"),b.space(),a.consequent.print(b),b.space(),b.colon(),a.alternative.print(b)}),a(_a,function(a,b){b.with_square(function(){var c=a.elements,d=c.length;d>0&&b.space(),c.forEach(function(a,c){c&&b.comma(),a.print(b),c===d-1&&a instanceof Ab&&b.comma()}),d>0&&b.space()})}),a(ab,function(a,b){a.properties.length>0?b.with_block(function(){a.properties.forEach(function(a,c){c&&(b.print(","),b.newline()),b.indent(),a.print(b)}),b.newline()}):b.print("{}")}),a(cb,function(a,b){var c=a.key,d=a.quote;b.option("quote_keys")?b.print_string(c+""):("number"==typeof c||!b.option("beautify")&&+c+""==c)&&parseFloat(c)>=0?b.print(l(c)):(Hb(c)?b.option("screw_ie8"):I(c))?b.print_name(c):b.print_string(c,d),b.colon(),a.value.print(b)}),a(db,function(a,b){b.print("set"),b.space(),a.key.print(b),a.value._do_print(b,!0)}),a(eb,function(a,b){b.print("get"),b.space(),a.key.print(b),a.value._do_print(b,!0)}),a(fb,function(a,b){var c=a.definition();b.print_name(c?c.mangled_name||c.name:a.name)}),a(zb,function(a,b){b.print("void 0")}),a(Ab,m),a(Bb,function(a,b){b.print("Infinity")}),a(yb,function(a,b){b.print("NaN")}),a(rb,function(a,b){b.print("this")}),a(sb,function(a,b){b.print(a.getValue())}),a(tb,function(a,b){b.print_string(a.getValue(),a.quote)}),a(ub,function(a,b){q&&null!=a.start.raw?b.print(a.start.raw):b.print(l(a.getValue()))}),a(vb,function(a,b){var c=a.getValue().toString();b.option("ascii_only")?c=b.to_ascii(c):b.option("unescape_regexps")&&(c=c.split("\\\\").map(function(a){return a.replace(/\\u[0-9a-fA-F]{4}|\\x[0-9a-fA-F]{2}/g,function(a){var b=parseInt(a.substr(2),16);return g(b)?String.fromCharCode(b):a})}).join("\\\\")),b.print(c);var d=b.parent();d instanceof Ya&&/^in/.test(d.operator)&&d.left===a&&b.print(" ")}),o(_,m),o(ca,p),o(ba,p),o(fb,p),o(wa,p),o(ha,p),o(ia,m),o(sa,p),o(Ea,p),o(Fa,p),o(fa,p),o(ra,m),o(Qa,p),o(Ia,p),o(Ja,p),o(Ka,p),o(La,p),o(sb,p),o(db,function(a,b){b.add_mapping(a.start,a.key.name)}),o(eb,function(a,b){b.add_mapping(a.start,a.key.name)}),o(bb,function(a,b){b.add_mapping(a.start,a.key)})}(),S.prototype=new P,l(S.prototype,{option:function(a){return this.options[a]},warn:function(){this.options.warnings&&_.warn.apply(_,arguments)},before:function(a,b,c){if(a._squeezed)return a;var d=!1;return a instanceof qa&&(a=a.hoist_declarations(this),d=!0),b(a,this),a=a.optimize(this),d&&a instanceof qa&&(a.drop_unused(this),b(a,this)),a._squeezed=!0,a}}),function(){function a(a,b){a.DEFMETHOD("optimize",function(a){var c=this;if(c._optimized)return c;if(a.has_directive("use asm"))return c;var d=b(c,a);return d._optimized=!0,d===c?d:d.transform(a)})}function b(a,b,c){return c||(c={}),b&&(c.start||(c.start=b.start),c.end||(c.end=b.end)),new a(c)}function c(a,c,d){if(c instanceof _)return c.transform(a);switch(typeof c){case"string":return b(tb,d,{value:c}).optimize(a);case"number":return b(isNaN(c)?yb:ub,d,{value:c}).optimize(a);case"boolean":return b(c?Eb:Db,d).optimize(a);case"undefined":return b(zb,d).optimize(a);default:if(null===c)return b(xb,d,{value:null}).optimize(a);if(c instanceof RegExp)return b(vb,d,{value:c}).optimize(a);throw new Error(o("Can't handle constant of type: {type}",{type:typeof c}))}}function d(a,c,d){return a instanceof Pa&&a.expression===c&&(d instanceof Sa||d instanceof pb&&"eval"===d.name)?b(Ra,c,{car:b(ub,c,{value:0}),cdr:d}):d}function e(a){if(null===a)return[];if(a instanceof fa)return a.body;if(a instanceof ga)return[];if(a instanceof aa)return[a];throw new Error("Can't convert thing to statement array")}function f(a){return null===a?!0:a instanceof ga?!0:a instanceof fa?0==a.body.length:!1}function i(a){return a instanceof Ea?a:(a instanceof na||a instanceof oa||a instanceof ka)&&a.body instanceof fa?a.body:a}function j(a,c){function f(a,c){function e(a,b){return a instanceof pb&&(b instanceof $a&&a===b.left||b instanceof Va&&b.expression===a&&("++"==b.operator||"--"==b.operator))}function g(f,g,j){if(e(f,g))return f;var m=d(g,f,u.value);return u.value=null,n.splice(t,1),0===n.length&&(a[l]=b(ga,h),i=!0),k.walk(new y(function(a){delete a._squeezed,delete a._optimized})),c.warn("Replacing "+(j?"constant":"variable")+" "+v+" [{file}:{line},{col}]",f.start),s=!0,m}for(var h=c.self(),i=!1,j=a.length;--j>=0;){var k=a[j];if(!(k instanceof La)){if([k,k.body,k.alternative,k.bcatch,k.bfinally].forEach(function(a){a&&a.body&&f(a.body,c)}),0>=j)break;var l=j-1,m=a[l];if(m instanceof La){var n=m.definitions;if(null!=n)for(var o={},p=!1,q=!1,r={},t=n.length;--t>=0;){var u=n[t];if(null==u.value)break;var v=u.name.name;if(!v||!v.length)break;if(v in o)break;o[v]=!0;var w=h.find_variable&&h.find_variable(v);if(w&&w.references&&1===w.references.length&&"arguments"!=v){var x=w.references[0];if(x.scope.uses_eval||x.scope.uses_with)break;if(u.value.is_constant(c)){var z=new P(function(a){return a===x?g(a,z.parent(),!0):void 0});k.transform(z)}else if(!(p|=q))if(x.scope===h){var A=new y(function(a){a instanceof pb&&e(a,A.parent())&&(r[a.name]=q=!0)});u.value.walk(A);var B=!1,C=new P(function(a){if(B)return a;var b=C.parent();return a instanceof sa||a instanceof Ia||a instanceof pa||a instanceof Ha||a instanceof ja||b instanceof Da&&a!==b.condition||b instanceof Za&&a!==b.condition||b instanceof Ya&&("&&"==b.operator||"||"==b.operator)&&a===b.right||b instanceof Ea&&a!==b.expression?(p=B=!0,a):void 0},function(a){return B?a:a===x?(B=!0,g(a,C.parent(),!1)):(p|=a.has_side_effects(c))?(B=!0,a):q&&a instanceof pb&&a.name in r?(p=!0,B=!0,a):void 0});k.transform(C)}else p|=u.value.has_side_effects(c)}else p=!0}}}}if(i)for(var D=a.length;--D>=0;)a.length>1&&a[D]instanceof ga&&a.splice(D,1);return a}function g(a){function d(a){return/@ngInject/.test(a.value)}function e(a){return a.argnames.map(function(a){return b(tb,a,{value:a.name})})}function f(a,c){return b(_a,a,{elements:c})}function g(a,c){return b(da,a,{body:b($a,a,{operator:"=",left:b(Ta,c,{expression:b(pb,c,c),property:"$inject"}),right:f(a,e(a))})})}function h(a){a&&a.args&&(a.args.forEach(function(a,b,c){var g=a.start.comments_before;a instanceof sa&&g.length&&d(g[0])&&(c[b]=f(a,e(a).concat(a)))}),a.expression&&a.expression.expression&&h(a.expression.expression))}return a.reduce(function(a,b){if(a.push(b),b.body&&b.body.args)h(b.body);else{var e=b.start,f=e.comments_before;if(f&&f.length>0){var i=f.pop();d(i)&&(b instanceof va?a.push(g(b,b.name)):b instanceof La?b.definitions.forEach(function(b){b.value&&b.value instanceof sa&&a.push(g(b.value,b.name))}):c.warn("Unknown statement marked with @ngInject [{file}:{line},{col}]",e))}}return a},[])}function h(a){var b=[];return a.reduce(function(a,c){return c instanceof fa?(s=!0,a.push.apply(a,h(c.body))):c instanceof ga?s=!0:c instanceof ca?b.indexOf(c.value)<0?(a.push(c),b.push(c.value)):s=!0:a.push(c),a},[])}function j(a,c){var d=c.self(),f=d instanceof sa,g=[];a:for(var h=a.length;--h>=0;){var j=a[h];switch(!0){case f&&j instanceof ya&&!j.value&&0==g.length:s=!0;continue a;case j instanceof Da:if(j.body instanceof ya){if((f&&0==g.length||g[0]instanceof ya&&!g[0].value)&&!j.body.value&&!j.alternative){s=!0;var k=b(da,j.condition,{body:j.condition});g.unshift(k);continue a}if(g[0]instanceof ya&&j.body.value&&g[0].value&&!j.alternative){s=!0,j=j.clone(),j.alternative=g[0],g[0]=j.transform(c);continue a}if((0==g.length||g[0]instanceof ya)&&j.body.value&&!j.alternative&&f){s=!0,j=j.clone(),j.alternative=g[0]||b(ya,j,{value:b(zb,j)}),g[0]=j.transform(c);continue a}if(!j.body.value&&f){s=!0,j=j.clone(),j.condition=j.condition.negate(c),j.body=b(fa,j,{body:e(j.alternative).concat(g)}),j.alternative=null,g=[j.transform(c)];continue a}if(c.option("sequences")&&1==g.length&&f&&g[0]instanceof da&&(!j.alternative||j.alternative instanceof da)){s=!0,g.push(b(ya,g[0],{value:b(zb,g[0])}).transform(c)),g=e(j.alternative).concat(g),g.unshift(j);continue a}}var l=m(j.body),n=l instanceof Aa?c.loopcontrol_target(l.label):null;if(l&&(l instanceof ya&&!l.value&&f||l instanceof Ca&&d===i(n)||l instanceof Ba&&n instanceof fa&&d===n)){l.label&&p(l.label.thedef.references,l),s=!0;var o=e(j.body).slice(0,-1);j=j.clone(),j.condition=j.condition.negate(c),j.body=b(fa,j,{body:e(j.alternative).concat(g)}),j.alternative=b(fa,j,{body:o}),g=[j.transform(c)];continue a}var l=m(j.alternative),n=l instanceof Aa?c.loopcontrol_target(l.label):null;if(l&&(l instanceof ya&&!l.value&&f||l instanceof Ca&&d===i(n)||l instanceof Ba&&n instanceof fa&&d===n)){l.label&&p(l.label.thedef.references,l),s=!0,j=j.clone(),j.body=b(fa,j.body,{body:e(j.body).concat(g)}),j.alternative=b(fa,j.alternative,{body:e(j.alternative).slice(0,-1)}),g=[j.transform(c)];continue a}g.unshift(j);break;default:g.unshift(j)}}return g}function l(a,b){var c=!1,d=a.length,e=b.self();return a=a.reduce(function(a,d){if(c)k(b,d,a);else{if(d instanceof Aa){var f=b.loopcontrol_target(d.label);d instanceof Ba&&f instanceof fa&&i(f)===e||d instanceof Ca&&i(f)===e?d.label&&p(d.label.thedef.references,d):a.push(d)}else a.push(d);m(d)&&(c=!0)}return a},[]),s=a.length!=d,a}function n(a,c){function d(){e=Ra.from_array(e),e&&f.push(b(da,e,{body:e})),e=[]}if(a.length<2)return a;var e=[],f=[];return a.forEach(function(a){a instanceof da&&e.length<2e3?e.push(a.body):(d(),f.push(a))}),d(),f=o(f,c),s=f.length!=a.length,f}function o(a,c){function d(a){e.pop();var b=f.body;return b instanceof Ra?b.add(a):b=Ra.cons(b,a),b.transform(c)}var e=[],f=null;return a.forEach(function(a){if(f)if(a instanceof na){var c={};try{f.body.walk(new y(function(a){if(a instanceof Ya&&"in"==a.operator)throw c})),!a.init||a.init instanceof La?a.init||(a.init=f.body,e.pop()):a.init=d(a.init)}catch(g){if(g!==c)throw g}}else a instanceof Da?a.condition=d(a.condition):a instanceof pa?a.expression=d(a.expression):a instanceof xa&&a.value?a.value=d(a.value):a instanceof xa?a.value=d(b(zb,a)):a instanceof Ea&&(a.expression=d(a.expression));e.push(a),f=a instanceof da?a:null}),e}function q(a,b){var c=null;return a.reduce(function(a,b){return b instanceof La&&c&&c.TYPE==b.TYPE?(c.definitions=c.definitions.concat(b.definitions),s=!0):b instanceof na&&c instanceof La&&(!b.init||b.init.TYPE==c.TYPE)?(s=!0,a.pop(),b.init?b.init.definitions=c.definitions.concat(b.init.definitions):b.init=c,a.push(b),c=b):(c=b,a.push(b)),a},[])}function r(a,c){a.forEach(function(a){a instanceof da&&(a.body=function c(a){return a.transform(new P(function(a){if(a instanceof Pa&&a.expression instanceof ua)return b(Wa,a,{operator:"!",expression:a});if(a instanceof Pa)a.expression=c(a.expression);else if(a instanceof Ra)a.car=c(a.car);else if(a instanceof Za){var d=c(a.condition);if(d!==a.condition){a.condition=d;var e=a.consequent;a.consequent=a.alternative,a.alternative=e}}return a}))}(a.body))})}var s,t=10;do s=!1,c.option("angular")&&(a=g(a)),a=h(a),c.option("dead_code")&&(a=l(a,c)),c.option("if_return")&&(a=j(a,c)),c.option("sequences")&&(a=n(a,c)),c.option("join_vars")&&(a=q(a,c)),c.option("collapse_vars")&&(a=f(a,c));while(s&&t-- >0);return c.option("negate_iife")&&r(a,c),a}function k(a,b,c){a.warn("Dropping unreachable code [{file}:{line},{col}]",b.start),b.walk(new y(function(b){return b instanceof La?(a.warn("Declarations in unreachable code! [{file}:{line},{col}]",b.start),b.remove_initializers(),c.push(b),!0):b instanceof va?(c.push(b),!0):b instanceof qa?!0:void 0}))}function l(a,b){return a.print_to_string().length>b.print_to_string().length?b:a}function m(a){return a&&a.aborts()}function r(a,c){function d(d){d=e(d),a.body instanceof fa?(a.body=a.body.clone(),a.body.body=d.concat(a.body.body.slice(1)),a.body=a.body.transform(c)):a.body=b(fa,a.body,{body:d}).transform(c),r(a,c)}var f=a.body instanceof fa?a.body.body[0]:a.body;f instanceof Da&&(f.body instanceof Ba&&c.loopcontrol_target(f.body.label)===a?(a.condition?a.condition=b(Ya,a.condition,{left:a.condition,operator:"&&",right:f.condition.negate(c)}):a.condition=f.condition.negate(c),d(f.alternative)):f.alternative instanceof Ba&&c.loopcontrol_target(f.alternative.label)===a&&(a.condition?a.condition=b(Ya,a.condition,{left:a.condition,operator:"&&",right:f.condition}):a.condition=f.condition,d(f.body)))}function s(a,b){var c=b.option("pure_getters");b.options.pure_getters=!1;var d=a.has_side_effects(b);return b.options.pure_getters=c,d}function w(a,c){return c.option("booleans")&&c.in_boolean_context()&&!a.has_side_effects(c)?b(Eb,a):a}a(_,function(a,b){return a}),_.DEFMETHOD("equivalent_to",function(a){return this.print_to_string()==a.print_to_string()}),function(a){var b=["!","delete"],c=["in","instanceof","==","!=","===","!==","<","<=",">=",">"];a(_,function(){return!1}),a(Wa,function(){return g(this.operator,b)}),a(Ya,function(){return g(this.operator,c)||("&&"==this.operator||"||"==this.operator)&&this.left.is_boolean()&&this.right.is_boolean()}),a(Za,function(){return this.consequent.is_boolean()&&this.alternative.is_boolean()}),a($a,function(){return"="==this.operator&&this.right.is_boolean()}),a(Ra,function(){return this.cdr.is_boolean()}),a(Eb,function(){return!0}),a(Db,function(){return!0})}(function(a,b){a.DEFMETHOD("is_boolean",b)}),function(a){a(_,function(){return!1}),a(tb,function(){return!0}),a(Wa,function(){return"typeof"==this.operator}),a(Ya,function(a){return"+"==this.operator&&(this.left.is_string(a)||this.right.is_string(a))}),a($a,function(a){return("="==this.operator||"+="==this.operator)&&this.right.is_string(a)}),a(Ra,function(a){return this.cdr.is_string(a)}),a(Za,function(a){return this.consequent.is_string(a)&&this.alternative.is_string(a)}),a(Pa,function(a){return a.option("unsafe")&&this.expression instanceof pb&&"String"==this.expression.name&&this.expression.undeclared()})}(function(a,b){a.DEFMETHOD("is_string",b)}),function(a){function b(a,b){if(!b)throw new Error("Compressor must be passed");return a._eval(b)}_.DEFMETHOD("evaluate",function(b){if(!b.option("evaluate"))return[this];try{var d=this._eval(b);return[l(c(b,d,this),this),d]}catch(e){if(e!==a)throw e;return[this]}}),_.DEFMETHOD("is_constant",function(a){return this instanceof sb||this instanceof Wa&&"!"==this.operator&&this.expression instanceof sb||this.evaluate(a).length>1}),_.DEFMETHOD("constant_value",function(a){if(this instanceof sb)return this.value;if(this instanceof Wa&&"!"==this.operator&&this.expression instanceof sb)return!this.expression.value;var b=this.evaluate(a);return b.length>1?b[1]:void 0}),a(aa,function(){throw new Error(o("Cannot evaluate a statement [{file}:{line},{col}]",this.start))}),a(ua,function(){throw a}),a(_,function(){throw a}),a(sb,function(){return this.getValue()}),a(Wa,function(c){var d=this.expression;switch(this.operator){case"!":return!b(d,c);case"typeof":if(d instanceof ua)return"function";if(d=b(d,c),d instanceof RegExp)throw a;return typeof d;case"void":return void b(d,c);case"~":return~b(d,c);case"-":if(d=b(d,c),0===d)throw a;return-d;case"+":return+b(d,c)}throw a}),a(Ya,function(c){var d=this.left,e=this.right;switch(this.operator){case"&&":return b(d,c)&&b(e,c);case"||":return b(d,c)||b(e,c);case"|":return b(d,c)|b(e,c);case"&":return b(d,c)&b(e,c);case"^":return b(d,c)^b(e,c);case"+":return b(d,c)+b(e,c);case"*":return b(d,c)*b(e,c);case"/":return b(d,c)/b(e,c);case"%":return b(d,c)%b(e,c);case"-":return b(d,c)-b(e,c);case"<<":return b(d,c)<<b(e,c);case">>":return b(d,c)>>b(e,c);case">>>":return b(d,c)>>>b(e,c);case"==":return b(d,c)==b(e,c);case"===":return b(d,c)===b(e,c);case"!=":return b(d,c)!=b(e,c);case"!==":return b(d,c)!==b(e,c);case"<":return b(d,c)<b(e,c);case"<=":return b(d,c)<=b(e,c);case">":return b(d,c)>b(e,c);case">=":return b(d,c)>=b(e,c);case"in":return b(d,c)in b(e,c);case"instanceof":return b(d,c)instanceof b(e,c)}throw a}),a(Za,function(a){return b(this.condition,a)?b(this.consequent,a):b(this.alternative,a)}),a(pb,function(c){var d=this.definition();if(d&&d.constant&&d.init)return b(d.init,c);throw a}),a(Ta,function(c){if(c.option("unsafe")&&"length"==this.property){var d=b(this.expression,c);if("string"==typeof d)return d.length}throw a})}(function(a,b){a.DEFMETHOD("_eval",b)}),function(a){function c(a){return b(Wa,a,{operator:"!",expression:a})}a(_,function(){return c(this)}),a(aa,function(){throw new Error("Cannot negate a statement")}),a(ua,function(){return c(this)}),a(Wa,function(){return"!"==this.operator?this.expression:c(this)}),a(Ra,function(a){var b=this.clone();return b.cdr=b.cdr.negate(a),b}),a(Za,function(a){var b=this.clone();return b.consequent=b.consequent.negate(a),b.alternative=b.alternative.negate(a),l(c(this),b)}),a(Ya,function(a){var b=this.clone(),d=this.operator;if(a.option("unsafe_comps"))switch(d){case"<=":return b.operator=">",b;case"<":return b.operator=">=",b;case">=":return b.operator="<",b;case">":return b.operator="<=",b}switch(d){case"==":return b.operator="!=",b;case"!=":return b.operator="==",b;case"===":return b.operator="!==",b;case"!==":return b.operator="===",b;case"&&":return b.operator="||",b.left=b.left.negate(a),b.right=b.right.negate(a),l(c(this),b);case"||":return b.operator="&&",b.left=b.left.negate(a),b.right=b.right.negate(a),l(c(this),b)}return c(this)})}(function(a,b){a.DEFMETHOD("negate",function(a){return b.call(this,a)})}),function(a){a(_,function(a){return!0}),a(ga,function(a){return!1}),a(sb,function(a){return!1}),a(rb,function(a){return!1}),a(Pa,function(a){var b=a.option("pure_funcs");return b?"function"==typeof b?b(this):b.indexOf(this.expression.print_to_string())<0:!0}),a(ea,function(a){for(var b=this.body.length;--b>=0;)if(this.body[b].has_side_effects(a))return!0;return!1}),a(da,function(a){return this.body.has_side_effects(a)}),a(va,function(a){return!0}),a(ua,function(a){return!1}),a(Ya,function(a){return this.left.has_side_effects(a)||this.right.has_side_effects(a)}),a($a,function(a){return!0}),a(Za,function(a){return this.condition.has_side_effects(a)||this.consequent.has_side_effects(a)||this.alternative.has_side_effects(a)}),a(Va,function(a){return"delete"==this.operator||"++"==this.operator||"--"==this.operator||this.expression.has_side_effects(a)}),a(pb,function(a){return this.global()&&this.undeclared()}),a(ab,function(a){for(var b=this.properties.length;--b>=0;)if(this.properties[b].has_side_effects(a))return!0;return!1}),a(bb,function(a){return this.value.has_side_effects(a)}),a(_a,function(a){for(var b=this.elements.length;--b>=0;)if(this.elements[b].has_side_effects(a))return!0;return!1}),a(Ta,function(a){return a.option("pure_getters")?this.expression.has_side_effects(a):!0}),a(Ua,function(a){return a.option("pure_getters")?this.expression.has_side_effects(a)||this.property.has_side_effects(a):!0}),a(Sa,function(a){return!a.option("pure_getters")}),a(Ra,function(a){return this.car.has_side_effects(a)||this.cdr.has_side_effects(a)})}(function(a,b){a.DEFMETHOD("has_side_effects",b)}),function(a){function b(){var a=this.body.length;return a>0&&m(this.body[a-1])}a(aa,function(){return null}),a(wa,function(){return this}),a(fa,b),a(Fa,b),a(Da,function(){return this.alternative&&m(this.body)&&m(this.alternative)&&this})}(function(a,b){a.DEFMETHOD("aborts",b)}),a(ca,function(a,c){return"up"===c.has_directive(a.value)?b(ga,a):a}),a(ba,function(a,c){return c.option("drop_debugger")?b(ga,a):a}),a(ia,function(a,c){return a.body instanceof Ba&&c.loopcontrol_target(a.body.label)===a.body?b(ga,a):0==a.label.references.length?a.body:a}),a(ea,function(a,b){return a.body=j(a.body,b),a}),a(fa,function(a,c){switch(a.body=j(a.body,c),a.body.length){case 1:return a.body[0];case 0:return b(ga,a)}return a}),qa.DEFMETHOD("drop_unused",function(a){var c=this;if(a.has_directive("use asm"))return c;if(a.option("unused")&&!(c instanceof ra)&&!c.uses_eval){var d=[],e=new v,f=this,h=new y(function(b,g){if(b!==c){if(b instanceof va)return e.add(b.name.name,b),!0;if(b instanceof La&&f===c)return b.definitions.forEach(function(b){b.value&&(e.add(b.name.name,b.value),b.value.has_side_effects(a)&&b.value.walk(h))}),!0;if(b instanceof pb)return n(d,b.definition()),!0;if(b instanceof qa){var i=f;return f=b,g(),f=i,!0}}});c.walk(h);for(var i=0;i<d.length;++i)d[i].orig.forEach(function(a){var b=e.get(a.name);b&&b.forEach(function(a){var b=new y(function(a){a instanceof pb&&n(d,a.definition())});a.walk(b)})});var j=new P(function(e,f,h){if(e instanceof sa&&!(e instanceof ta)&&!a.option("keep_fargs"))for(var i=e.argnames,k=i.length;--k>=0;){var l=i[k];if(!l.unreferenced())break;i.pop(),a.warn("Dropping unused function argument {name} [{file}:{line},{col}]",{name:l.name,file:l.start.file,line:l.start.line,col:l.start.col})}if(e instanceof va&&e!==c)return g(e.name.definition(),d)?e:(a.warn("Dropping unused function {name} [{file}:{line},{col}]",{name:e.name.name,file:e.name.start.file,line:e.name.start.line,col:e.name.start.col}),b(ga,e));if(e instanceof La&&!(j.parent()instanceof oa)){var m=e.definitions.filter(function(b){if(g(b.name.definition(),d))return!0;var c={name:b.name.name,file:b.name.start.file,line:b.name.start.line,col:b.name.start.col};return b.value&&b.value.has_side_effects(a)?(b._unused_side_effects=!0,a.warn("Side effects in initialization of unused variable {name} [{file}:{line},{col}]",c),!0):(a.warn("Dropping unused variable {name} [{file}:{line},{col}]",c),!1)});m=q(m,function(a,b){return!a.value&&b.value?-1:!b.value&&a.value?1:0});for(var n=[],k=0;k<m.length;){var o=m[k];o._unused_side_effects?(n.push(o.value),m.splice(k,1)):(n.length>0&&(n.push(o.value),o.value=Ra.from_array(n),n=[]),++k)}return n=n.length>0?b(fa,e,{body:[b(da,e,{body:Ra.from_array(n)})]}):null,0!=m.length||n?0==m.length?h?Z.splice(n.body):n:(e.definitions=m,n?(n.body.unshift(e),h?Z.splice(n.body):n):e):b(ga,e)}if(e instanceof na&&(f(e,this),e.init instanceof fa)){var p=e.init.body.slice(0,-1);return e.init=e.init.body.slice(-1)[0].body,p.push(e),h?Z.splice(p):b(fa,e,{body:p})}return e instanceof qa&&e!==c?e:void 0});c.transform(j)}}),qa.DEFMETHOD("hoist_declarations",function(a){var c=this;if(a.has_directive("use asm"))return c;var d=a.option("hoist_funs"),e=a.option("hoist_vars");if(d||e){var f=[],g=[],i=new v,j=0,k=0;c.walk(new y(function(a){return a instanceof qa&&a!==c?!0:a instanceof Ma?(++k,!0):void 0})),e=e&&k>1;var l=new P(function(a){if(a!==c){if(a instanceof ca)return f.push(a),b(ga,a);if(a instanceof va&&d)return g.push(a),b(ga,a);if(a instanceof Ma&&e){a.definitions.forEach(function(a){i.set(a.name.name,a),++j});var h=a.to_assignments(),k=l.parent();if(k instanceof oa&&k.init===a){if(null==h){var m=a.definitions[0].name;return b(pb,m,m)}return h}return k instanceof na&&k.init===a?h:h?b(da,a,{body:h}):b(ga,a)}if(a instanceof qa)return a}});if(c=c.transform(l),j>0){var m=[];if(i.each(function(a,b){c instanceof sa&&h(function(b){return b.name==a.name.name},c.argnames)?i.del(b):(a=a.clone(),a.value=null,m.push(a),i.set(b,a))}),m.length>0){for(var n=0;n<c.body.length;){if(c.body[n]instanceof da){var o,q,r=c.body[n].body;if(r instanceof $a&&"="==r.operator&&(o=r.left)instanceof fb&&i.has(o.name)){var s=i.get(o.name);if(s.value)break;s.value=r.right,p(m,s),m.push(s),c.body.splice(n,1);continue}if(r instanceof Ra&&(q=r.car)instanceof $a&&"="==q.operator&&(o=q.left)instanceof fb&&i.has(o.name)){var s=i.get(o.name);if(s.value)break;s.value=q.right,p(m,s),m.push(s),c.body[n].body=r.cdr;continue}}if(c.body[n]instanceof ga)c.body.splice(n,1);else{if(!(c.body[n]instanceof fa))break;var t=[n,1].concat(c.body[n].body);c.body.splice.apply(c.body,t)}}m=b(Ma,c,{definitions:m}),g.push(m)}}c.body=f.concat(g,c.body)}return c}),a(da,function(a,c){return c.option("side_effects")&&!a.body.has_side_effects(c)?(c.warn("Dropping side-effect-free statement [{file}:{line},{col}]",a.start),b(ga,a)):a}),a(ka,function(a,c){var d=a.condition.evaluate(c);if(a.condition=d[0],!c.option("loops"))return a;if(d.length>1){if(d[1])return b(na,a,{body:a.body});if(a instanceof ma&&c.option("dead_code")){var e=[];return k(c,a.body,e),b(fa,a,{body:e})}}return a}),a(ma,function(a,c){return c.option("loops")?(a=ka.prototype.optimize.call(a,c),a instanceof ma&&(r(a,c),a=b(na,a,a).transform(c)),a):a}),a(na,function(a,c){var d=a.condition;if(d&&(d=d.evaluate(c),a.condition=d[0]),!c.option("loops"))return a;if(d&&d.length>1&&!d[1]&&c.option("dead_code")){var e=[];return a.init instanceof aa?e.push(a.init):a.init&&e.push(b(da,a.init,{body:a.init})),k(c,a.body,e),b(fa,a,{body:e})}return r(a,c),a}),a(Da,function(a,c){if(!c.option("conditionals"))return a;var d=a.condition.evaluate(c);if(a.condition=d[0],d.length>1)if(d[1]){if(c.warn("Condition always true [{file}:{line},{col}]",a.condition.start),c.option("dead_code")){var e=[];return a.alternative&&k(c,a.alternative,e),e.push(a.body),b(fa,a,{body:e}).transform(c)}}else if(c.warn("Condition always false [{file}:{line},{col}]",a.condition.start),c.option("dead_code")){var e=[];return k(c,a.body,e),a.alternative&&e.push(a.alternative),b(fa,a,{body:e}).transform(c)}f(a.alternative)&&(a.alternative=null);var g=a.condition.negate(c),h=a.condition.print_to_string().length,i=g.print_to_string().length,j=h>i;if(a.alternative&&j){j=!1,a.condition=g;var l=a.body;a.body=a.alternative||b(ga),a.alternative=l}if(f(a.body)&&f(a.alternative))return b(da,a.condition,{body:a.condition}).transform(c);if(a.body instanceof da&&a.alternative instanceof da)return b(da,a,{body:b(Za,a,{condition:a.condition,consequent:a.body.body,alternative:a.alternative.body})}).transform(c);if(f(a.alternative)&&a.body instanceof da)return h===i&&!j&&a.condition instanceof Ya&&"||"==a.condition.operator&&(j=!0),j?b(da,a,{body:b(Ya,a,{operator:"||",left:g,right:a.body.body})}).transform(c):b(da,a,{body:b(Ya,a,{operator:"&&",left:a.condition,right:a.body.body})}).transform(c);if(a.body instanceof ga&&a.alternative&&a.alternative instanceof da)return b(da,a,{body:b(Ya,a,{operator:"||",left:a.condition,right:a.alternative.body})}).transform(c);if(a.body instanceof xa&&a.alternative instanceof xa&&a.body.TYPE==a.alternative.TYPE)return b(a.body.CTOR,a,{value:b(Za,a,{condition:a.condition,consequent:a.body.value||b(zb,a.body).optimize(c),alternative:a.alternative.value||b(zb,a.alternative).optimize(c)})}).transform(c);if(a.body instanceof Da&&!a.body.alternative&&!a.alternative&&(a.condition=b(Ya,a.condition,{
 operator:"&&",left:a.condition,right:a.body.condition}).transform(c),a.body=a.body.body),m(a.body)&&a.alternative){var n=a.alternative;return a.alternative=null,b(fa,a,{body:[a,n]}).transform(c)}if(m(a.alternative)){var o=a.body;return a.body=a.alternative,a.condition=j?g:a.condition.negate(c),a.alternative=null,b(fa,a,{body:[a,o]}).transform(c)}return a}),a(Ea,function(a,c){if(0==a.body.length&&c.option("conditionals"))return b(da,a,{body:a.expression}).transform(c);for(;;){var d=a.body[a.body.length-1];if(d){var e=d.body[d.body.length-1];if(e instanceof Ba&&i(c.loopcontrol_target(e.label))===a&&d.body.pop(),d instanceof Ga&&0==d.body.length){a.body.pop();continue}}break}var f=a.expression.evaluate(c);a:if(2==f.length)try{if(a.expression=f[0],!c.option("dead_code"))break a;var g=f[1],h=!1,j=!1,k=!1,l=!1,n=!1,o=new P(function(d,e,f){if(d instanceof sa||d instanceof da)return d;if(d instanceof Ea&&d===a)return d=d.clone(),e(d,this),n?d:b(fa,d,{body:d.body.reduce(function(a,b){return a.concat(b.body)},[])}).transform(c);if(d instanceof Da||d instanceof Ia){var i=h;return h=!j,e(d,this),h=i,d}if(d instanceof ha||d instanceof Ea){var i=j;return j=!0,e(d,this),j=i,d}if(d instanceof Ba&&this.loopcontrol_target(d.label)===a)return h?(n=!0,d):j?d:(l=!0,f?Z.skip:b(ga,d));if(d instanceof Fa&&this.parent()===a){if(l)return Z.skip;if(d instanceof Ha){var o=d.expression.evaluate(c);if(o.length<2)throw a;return o[1]===g||k?(k=!0,m(d)&&(l=!0),e(d,this),d):Z.skip}return e(d,this),d}});o.stack=c.stack.slice(),a=a.transform(o)}catch(p){if(p!==a)throw p}return a}),a(Ha,function(a,b){return a.body=j(a.body,b),a}),a(Ia,function(a,b){return a.body=j(a.body,b),a}),La.DEFMETHOD("remove_initializers",function(){this.definitions.forEach(function(a){a.value=null})}),La.DEFMETHOD("to_assignments",function(){var a=this.definitions.reduce(function(a,c){if(c.value){var d=b(pb,c.name,c.name);a.push(b($a,c,{operator:"=",left:d,right:c.value}))}return a},[]);return 0==a.length?null:Ra.from_array(a)}),a(La,function(a,c){return 0==a.definitions.length?b(ga,a):a}),a(ua,function(a,b){return a=sa.prototype.optimize.call(a,b),b.option("unused")&&!b.option("keep_fnames")&&a.name&&a.name.unreferenced()&&(a.name=null),a}),a(Pa,function(a,d){if(d.option("unsafe")){var e=a.expression;if(e instanceof pb&&e.undeclared())switch(e.name){case"Array":if(1!=a.args.length)return b(_a,a,{elements:a.args}).transform(d);break;case"Object":if(0==a.args.length)return b(ab,a,{properties:[]});break;case"String":if(0==a.args.length)return b(tb,a,{value:""});if(a.args.length<=1)return b(Ya,a,{left:a.args[0],operator:"+",right:b(tb,a,{value:""})}).transform(d);break;case"Number":if(0==a.args.length)return b(ub,a,{value:0});if(1==a.args.length)return b(Wa,a,{expression:a.args[0],operator:"+"}).transform(d);case"Boolean":if(0==a.args.length)return b(Db,a);if(1==a.args.length)return b(Wa,a,{expression:b(Wa,null,{expression:a.args[0],operator:"!"}),operator:"!"}).transform(d);break;case"Function":if(0==a.args.length)return b(ua,a,{argnames:[],body:[]});if(u(a.args,function(a){return a instanceof tb}))try{var f="(function("+a.args.slice(0,-1).map(function(a){return a.value}).join(",")+"){"+a.args[a.args.length-1].value+"})()",g=O(f);g.figure_out_scope({screw_ie8:d.option("screw_ie8")});var h=new S(d.options);g=g.transform(h),g.figure_out_scope({screw_ie8:d.option("screw_ie8")}),g.mangle_names();var i;try{g.walk(new y(function(a){if(a instanceof sa)throw i=a,g}))}catch(j){if(j!==g)throw j}if(!i)return a;var k=i.argnames.map(function(c,d){return b(tb,a.args[d],{value:c.print_to_string()})}),f=R();return fa.prototype._codegen.call(i,i,f),f=f.toString().replace(/^\{|\}$/g,""),k.push(b(tb,a.args[a.args.length-1],{value:f})),a.args=k,a}catch(j){if(!(j instanceof K))throw console.log(j),j;d.warn("Error parsing code passed to new Function [{file}:{line},{col}]",a.args[a.args.length-1].start),d.warn(j.toString())}}else{if(e instanceof Ta&&"toString"==e.property&&0==a.args.length)return b(Ya,a,{left:b(tb,a,{value:""}),operator:"+",right:e.expression}).transform(d);if(e instanceof Ta&&e.expression instanceof _a&&"join"==e.property){var m=0==a.args.length?",":a.args[0].evaluate(d)[1];if(null!=m){var n=e.expression.elements.reduce(function(a,b){if(b=b.evaluate(d),0==a.length||1==b.length)a.push(b);else{var e=a[a.length-1];if(2==e.length){var f=""+e[1]+m+b[1];a[a.length-1]=[c(d,f,e[0]),f]}else a.push(b)}return a},[]);if(0==n.length)return b(tb,a,{value:""});if(1==n.length)return n[0][0];if(""==m){var o;return o=n[0][0]instanceof tb||n[1][0]instanceof tb?n.shift()[0]:b(tb,a,{value:""}),n.reduce(function(a,c){return b(Ya,c[0],{operator:"+",left:a,right:c[0]})},o).transform(d)}var p=a.clone();return p.expression=p.expression.clone(),p.expression.expression=p.expression.expression.clone(),p.expression.expression.elements=n.map(function(a){return a[0]}),l(a,p)}}}}if(d.option("side_effects")&&a.expression instanceof ua&&0==a.args.length&&!ea.prototype.has_side_effects.call(a.expression,d))return b(zb,a).transform(d);if(d.option("drop_console")&&a.expression instanceof Sa){for(var q=a.expression.expression;q.expression;)q=q.expression;if(q instanceof pb&&"console"==q.name&&q.undeclared())return b(zb,a).transform(d)}return a.evaluate(d)[0]}),a(Qa,function(a,c){if(c.option("unsafe")){var d=a.expression;if(d instanceof pb&&d.undeclared())switch(d.name){case"Object":case"RegExp":case"Function":case"Error":case"Array":return b(Pa,a,a).transform(c)}}return a}),a(Ra,function(a,c){if(!c.option("side_effects"))return a;if(!a.car.has_side_effects(c))return d(c.parent(),a,a.cdr);if(c.option("cascade")){if(a.car instanceof $a&&!a.car.left.has_side_effects(c)){if(a.car.left.equivalent_to(a.cdr))return a.car;if(a.cdr instanceof Pa&&a.cdr.expression.equivalent_to(a.car.left))return a.cdr.expression=a.car,a.cdr}if(!a.car.has_side_effects(c)&&!a.cdr.has_side_effects(c)&&a.car.equivalent_to(a.cdr))return a.car}return a.cdr instanceof Wa&&"void"==a.cdr.operator&&!a.cdr.expression.has_side_effects(c)?(a.cdr.expression=a.car,a.cdr):a.cdr instanceof zb?b(Wa,a,{operator:"void",expression:a.car}):a}),Va.DEFMETHOD("lift_sequences",function(a){if(a.option("sequences")&&this.expression instanceof Ra){var b=this.expression,c=b.to_array();return this.expression=c.pop(),c.push(this),b=Ra.from_array(c).transform(a)}return this}),a(Xa,function(a,b){return a.lift_sequences(b)}),a(Wa,function(a,c){a=a.lift_sequences(c);var d=a.expression;if(c.option("booleans")&&c.in_boolean_context()){switch(a.operator){case"!":if(d instanceof Wa&&"!"==d.operator)return d.expression;break;case"typeof":return c.warn("Boolean expression always true [{file}:{line},{col}]",a.start),b(Eb,a)}d instanceof Ya&&"!"==a.operator&&(a=l(a,d.negate(c)))}return a.evaluate(c)[0]}),Ya.DEFMETHOD("lift_sequences",function(a){if(a.option("sequences")){if(this.left instanceof Ra){var b=this.left,c=b.to_array();return this.left=c.pop(),c.push(this),b=Ra.from_array(c).transform(a)}if(this.right instanceof Ra&&this instanceof $a&&!s(this.left,a)){var b=this.right,c=b.to_array();return this.right=c.pop(),c.push(this),b=Ra.from_array(c).transform(a)}}return this});var x=t("== === != !== * & | ^");a(Ya,function(a,c){function e(b,d){if(d||!a.left.has_side_effects(c)&&!a.right.has_side_effects(c)){b&&(a.operator=b);var e=a.left;a.left=a.right,a.right=e}}if(x(a.operator)&&(a.right instanceof sb&&!(a.left instanceof sb)&&(a.left instanceof Ya&&Wb[a.left.operator]>=Wb[a.operator]||e(null,!0)),/^[!=]==?$/.test(a.operator))){if(a.left instanceof pb&&a.right instanceof Za){if(a.right.consequent instanceof pb&&a.right.consequent.definition()===a.left.definition()){if(/^==/.test(a.operator))return a.right.condition;if(/^!=/.test(a.operator))return a.right.condition.negate(c)}if(a.right.alternative instanceof pb&&a.right.alternative.definition()===a.left.definition()){if(/^==/.test(a.operator))return a.right.condition.negate(c);if(/^!=/.test(a.operator))return a.right.condition}}if(a.right instanceof pb&&a.left instanceof Za){if(a.left.consequent instanceof pb&&a.left.consequent.definition()===a.right.definition()){if(/^==/.test(a.operator))return a.left.condition;if(/^!=/.test(a.operator))return a.left.condition.negate(c)}if(a.left.alternative instanceof pb&&a.left.alternative.definition()===a.right.definition()){if(/^==/.test(a.operator))return a.left.condition.negate(c);if(/^!=/.test(a.operator))return a.left.condition}}}if(a=a.lift_sequences(c),c.option("comparisons"))switch(a.operator){case"===":case"!==":(a.left.is_string(c)&&a.right.is_string(c)||a.left.is_boolean()&&a.right.is_boolean())&&(a.operator=a.operator.substr(0,2));case"==":case"!=":a.left instanceof tb&&"undefined"==a.left.value&&a.right instanceof Wa&&"typeof"==a.right.operator&&c.option("unsafe")&&(a.right.expression instanceof pb&&a.right.expression.undeclared()||(a.right=a.right.expression,a.left=b(zb,a.left).optimize(c),2==a.operator.length&&(a.operator+="=")))}if(c.option("conditionals"))if("&&"==a.operator){var f=a.left.evaluate(c);if(f.length>1)return f[1]?(c.warn("Condition left of && always true [{file}:{line},{col}]",a.start),d(c.parent(),a,a.right.evaluate(c)[0])):(c.warn("Condition left of && always false [{file}:{line},{col}]",a.start),d(c.parent(),a,f[0]))}else if("||"==a.operator){var f=a.left.evaluate(c);if(f.length>1)return f[1]?(c.warn("Condition left of || always true [{file}:{line},{col}]",a.start),d(c.parent(),a,f[0])):(c.warn("Condition left of || always false [{file}:{line},{col}]",a.start),d(c.parent(),a,a.right.evaluate(c)[0]))}if(c.option("booleans")&&c.in_boolean_context())switch(a.operator){case"&&":var f=a.left.evaluate(c),g=a.right.evaluate(c);if(f.length>1&&!f[1]||g.length>1&&!g[1])return c.warn("Boolean && always false [{file}:{line},{col}]",a.start),a.left.has_side_effects(c)?b(Ra,a,{car:a.left,cdr:b(Db)}).optimize(c):b(Db,a);if(f.length>1&&f[1])return g[0];if(g.length>1&&g[1])return f[0];break;case"||":var f=a.left.evaluate(c),g=a.right.evaluate(c);if(f.length>1&&f[1]||g.length>1&&g[1])return c.warn("Boolean || always true [{file}:{line},{col}]",a.start),a.left.has_side_effects(c)?b(Ra,a,{car:a.left,cdr:b(Eb)}).optimize(c):b(Eb,a);if(f.length>1&&!f[1])return g[0];if(g.length>1&&!g[1])return f[0];break;case"+":var f=a.left.evaluate(c),g=a.right.evaluate(c);if(f.length>1&&f[0]instanceof tb&&f[1]||g.length>1&&g[0]instanceof tb&&g[1])return c.warn("+ in boolean context always true [{file}:{line},{col}]",a.start),b(Eb,a)}if(c.option("comparisons")&&a.is_boolean()){if(!(c.parent()instanceof Ya)||c.parent()instanceof $a){var h=b(Wa,a,{operator:"!",expression:a.negate(c)});a=l(a,h)}switch(a.operator){case"<":e(">");break;case"<=":e(">=")}}return"+"==a.operator&&a.right instanceof tb&&""===a.right.getValue()&&a.left instanceof Ya&&"+"==a.left.operator&&a.left.is_string(c)?a.left:(c.option("evaluate")&&"+"==a.operator&&(a.left instanceof sb&&a.right instanceof Ya&&"+"==a.right.operator&&a.right.left instanceof sb&&a.right.is_string(c)&&(a=b(Ya,a,{operator:"+",left:b(tb,null,{value:""+a.left.getValue()+a.right.left.getValue(),start:a.left.start,end:a.right.left.end}),right:a.right.right})),a.right instanceof sb&&a.left instanceof Ya&&"+"==a.left.operator&&a.left.right instanceof sb&&a.left.is_string(c)&&(a=b(Ya,a,{operator:"+",left:a.left.left,right:b(tb,null,{value:""+a.left.right.getValue()+a.right.getValue(),start:a.left.right.start,end:a.right.end})})),a.left instanceof Ya&&"+"==a.left.operator&&a.left.is_string(c)&&a.left.right instanceof sb&&a.right instanceof Ya&&"+"==a.right.operator&&a.right.left instanceof sb&&a.right.is_string(c)&&(a=b(Ya,a,{operator:"+",left:b(Ya,a.left,{operator:"+",left:a.left.left,right:b(tb,null,{value:""+a.left.right.getValue()+a.right.left.getValue(),start:a.left.right.start,end:a.right.left.end})}),right:a.right.right}))),a.right instanceof Ya&&a.right.operator==a.operator&&("&&"==a.operator||"||"==a.operator)?(a.left=b(Ya,a.left,{operator:a.operator,left:a.left,right:a.right.left}),a.right=a.right.right,a.transform(c)):a.evaluate(c)[0])}),a(pb,function(a,d){function e(a,b){return b instanceof Ya&&"="===b.operator&&b.left===a}if(a.undeclared()&&!e(a,d.parent())){var f=d.option("global_defs");if(f&&f.hasOwnProperty(a.name))return c(d,f[a.name],a);switch(a.name){case"undefined":return b(zb,a);case"NaN":return b(yb,a).transform(d);case"Infinity":return b(Bb,a).transform(d)}}return a}),a(Bb,function(a,c){return b(Ya,a,{operator:"/",left:b(ub,a,{value:1}),right:b(ub,a,{value:0})})}),a(zb,function(a,c){if(c.option("unsafe")){var d=c.find_parent(qa),e=d.find_variable("undefined");if(e){var f=b(pb,a,{name:"undefined",scope:d,thedef:e});return f.reference(),f}}return a});var z=["+","-","/","*","%",">>","<<",">>>","|","^","&"];a($a,function(a,b){return a=a.lift_sequences(b),"="==a.operator&&a.left instanceof pb&&a.right instanceof Ya&&a.right.left instanceof pb&&a.right.left.name==a.left.name&&g(a.right.operator,z)&&(a.operator=a.right.operator+"=",a.right=a.right.right),a}),a(Za,function(a,e){function f(a){return a instanceof Eb||a instanceof Wa&&"!"==a.operator&&a.expression instanceof sb&&!a.expression.value}function g(a){return a instanceof Db||a instanceof Wa&&"!"==a.operator&&a.expression instanceof sb&&!!a.expression.value}if(!e.option("conditionals"))return a;if(a.condition instanceof Ra){var h=a.condition.car;return a.condition=a.condition.cdr,Ra.cons(h,a)}var i=a.condition.evaluate(e);if(i.length>1)return i[1]?(e.warn("Condition always true [{file}:{line},{col}]",a.start),d(e.parent(),a,a.consequent)):(e.warn("Condition always false [{file}:{line},{col}]",a.start),d(e.parent(),a,a.alternative));var j=i[0].negate(e);l(i[0],j)===j&&(a=b(Za,a,{condition:j,consequent:a.alternative,alternative:a.consequent}));var k=a.consequent,m=a.alternative;if(k instanceof $a&&m instanceof $a&&k.operator==m.operator&&k.left.equivalent_to(m.left)&&!k.left.has_side_effects(e))return b($a,a,{operator:k.operator,left:k.left,right:b(Za,a,{condition:a.condition,consequent:k.right,alternative:m.right})});if(k instanceof Pa&&m.TYPE===k.TYPE&&k.args.length==m.args.length&&!k.expression.has_side_effects(e)&&k.expression.equivalent_to(m.expression)){if(0==k.args.length)return b(Ra,a,{car:a.condition,cdr:k});if(1==k.args.length)return k.args[0]=b(Za,a,{condition:a.condition,consequent:k.args[0],alternative:m.args[0]}),k}if(k instanceof Za&&k.alternative.equivalent_to(m))return b(Za,a,{condition:b(Ya,a,{left:a.condition,operator:"&&",right:k.condition}),consequent:k.consequent,alternative:m});if(k.is_constant(e)&&m.is_constant(e)&&k.equivalent_to(m)){var n=k.constant_value();return a.condition.has_side_effects(e)?Ra.from_array([a.condition,c(e,n,a)]):c(e,n,a)}return f(k)&&g(m)?a.condition.is_boolean()?a.condition:(a.condition=a.condition.negate(e),b(Wa,a.condition,{operator:"!",expression:a.condition})):g(k)&&f(m)?a.condition.negate(e):a}),a(Cb,function(a,c){if(c.option("booleans")){var d=c.parent();return d instanceof Ya&&("=="==d.operator||"!="==d.operator)?(c.warn("Non-strict equality against boolean: {operator} {value} [{file}:{line},{col}]",{operator:d.operator,value:a.value,file:d.start.file,line:d.start.line,col:d.start.col}),b(ub,a,{value:+a.value})):b(Wa,a,{operator:"!",expression:b(ub,a,{value:1-a.value})})}return a}),a(Ua,function(a,c){var d=a.property;if(d instanceof tb&&c.option("properties")){if(d=d.getValue(),Hb(d)?c.option("screw_ie8"):I(d))return b(Ta,a,{expression:a.expression,property:d}).optimize(c);var e=parseFloat(d);isNaN(e)||e.toString()!=d||(a.property=b(ub,a.property,{value:e}))}return a}),a(Ta,function(a,c){var d=a.property;return Hb(d)&&!c.option("screw_ie8")?b(Ua,a,{expression:a.expression,property:b(tb,a,{value:d})}).optimize(c):a.evaluate(c)[0]}),a(_a,w),a(ab,w),a(vb,w),a(ya,function(a,b){return a.value instanceof zb&&(a.value=null),a})}(),function(){function a(a){return"Literal"==a.type?null!=a.raw?a.raw:a.value+"":void 0}function b(b){var c=b.loc,d=c&&c.start,e=b.range;return new $({file:c&&c.source,line:d&&d.line,col:d&&d.column,pos:e?e[0]:b.start,endline:d&&d.line,endcol:d&&d.column,endpos:e?e[0]:b.start,raw:a(b)})}function d(b){var c=b.loc,d=c&&c.end,e=b.range;return new $({file:c&&c.source,line:d&&d.line,col:d&&d.column,pos:e?e[1]:b.end,endline:d&&d.line,endcol:d&&d.column,endpos:e?e[1]:b.end,raw:a(b)})}function e(a,e,g){var l="function From_Moz_"+a+"(M){\n";l+="return new U2."+e.name+"({\nstart: my_start_token(M),\nend: my_end_token(M)";var m="function To_Moz_"+a+"(M){\n";m+="return {\ntype: "+JSON.stringify(a),g&&g.split(/\s*,\s*/).forEach(function(a){var b=/([a-z0-9$_]+)(=|@|>|%)([a-z0-9$_]+)/i.exec(a);if(!b)throw new Error("Can't understand property map: "+a);var c=b[1],d=b[2],e=b[3];switch(l+=",\n"+e+": ",m+=",\n"+c+": ",d){case"@":l+="M."+c+".map(from_moz)",m+="M."+e+".map(to_moz)";break;case">":l+="from_moz(M."+c+")",m+="to_moz(M."+e+")";break;case"=":l+="M."+c,m+="M."+e;break;case"%":l+="from_moz(M."+c+").body",m+="to_moz_block(M)";break;default:throw new Error("Can't understand operator in propmap: "+a)}}),l+="\n})\n}",m+="\n}\n}",l=new Function("U2","my_start_token","my_end_token","from_moz","return("+l+")")(c,b,d,f),m=new Function("to_moz","to_moz_block","return("+m+")")(i,j),k[a]=l,h(e,m)}function f(a){l.push(a);var b=null!=a?k[a.type](a):null;return l.pop(),b}function g(a,b,c){var d=a.start,e=a.end;return null!=d.pos&&null!=e.endpos&&(b.range=[d.pos,e.endpos]),d.line&&(b.loc={start:{line:d.line,column:d.col},end:e.endline?{line:e.endline,column:e.endcol}:null},d.file&&(b.loc.source=d.file)),b}function h(a,b){a.DEFMETHOD("to_mozilla_ast",function(){return g(this,b(this))})}function i(a){return null!=a?a.to_mozilla_ast():null}function j(a){return{type:"BlockStatement",body:a.body.map(i)}}var k={ExpressionStatement:function(a){var c=a.expression;return"Literal"===c.type&&"string"==typeof c.value?new ca({start:b(a),end:d(a),value:c.value}):new da({start:b(a),end:d(a),body:f(c)})},TryStatement:function(a){var c=a.handlers||[a.handler];if(c.length>1||a.guardedHandlers&&a.guardedHandlers.length)throw new Error("Multiple catch clauses are not supported.");return new Ia({start:b(a),end:d(a),body:f(a.block).body,bcatch:f(c[0]),bfinally:a.finalizer?new Ka(f(a.finalizer)):null})},Property:function(a){var c=a.key,e="Identifier"==c.type?c.name:c.value,g={start:b(c),end:d(a.value),key:e,value:f(a.value)};switch(a.kind){case"init":return new cb(g);case"set":return g.value.name=f(c),new db(g);case"get":return g.value.name=f(c),new eb(g)}},ObjectExpression:function(a){return new ab({start:b(a),end:d(a),properties:a.properties.map(function(a){return a.type="Property",f(a)})})},SequenceExpression:function(a){return Ra.from_array(a.expressions.map(f))},MemberExpression:function(a){return new(a.computed?Ua:Ta)({start:b(a),end:d(a),property:a.computed?f(a.property):a.property.name,expression:f(a.object)})},SwitchCase:function(a){return new(a.test?Ha:Ga)({start:b(a),end:d(a),expression:f(a.test),body:a.consequent.map(f)})},VariableDeclaration:function(a){return new("const"===a.kind?Na:Ma)({start:b(a),end:d(a),definitions:a.declarations.map(f)})},Literal:function(a){var c=a.value,e={start:b(a),end:d(a)};if(null===c)return new xb(e);switch(typeof c){case"string":return e.value=c,new tb(e);case"number":return e.value=c,new ub(e);case"boolean":return new(c?Eb:Db)(e);default:var f=a.regex;return f&&f.pattern?e.value=new RegExp(f.pattern,f.flags).toString():e.value=a.regex&&a.raw?a.raw:c,new vb(e)}},Identifier:function(a){var c=l[l.length-2];return new("LabeledStatement"==c.type?ob:"VariableDeclarator"==c.type&&c.id===a?"const"==c.kind?jb:ib:"FunctionExpression"==c.type?c.id===a?mb:kb:"FunctionDeclaration"==c.type?c.id===a?lb:kb:"CatchClause"==c.type?nb:"BreakStatement"==c.type||"ContinueStatement"==c.type?qb:pb)({start:b(a),end:d(a),name:a.name})}};k.UpdateExpression=k.UnaryExpression=function(a){var c="prefix"in a?a.prefix:"UnaryExpression"==a.type;return new(c?Wa:Xa)({start:b(a),end:d(a),operator:a.operator,expression:f(a.argument)})},e("Program",ra,"body@body"),e("EmptyStatement",ga),e("BlockStatement",fa,"body@body"),e("IfStatement",Da,"test>condition, consequent>body, alternate>alternative"),e("LabeledStatement",ia,"label>label, body>body"),e("BreakStatement",Ba,"label>label"),e("ContinueStatement",Ca,"label>label"),e("WithStatement",pa,"object>expression, body>body"),e("SwitchStatement",Ea,"discriminant>expression, cases@body"),e("ReturnStatement",ya,"argument>value"),e("ThrowStatement",za,"argument>value"),e("WhileStatement",ma,"test>condition, body>body"),e("DoWhileStatement",la,"test>condition, body>body"),e("ForStatement",na,"init>init, test>condition, update>step, body>body"),e("ForInStatement",oa,"left>init, right>object, body>body"),e("DebuggerStatement",ba),e("FunctionDeclaration",va,"id>name, params@argnames, body%body"),e("VariableDeclarator",Oa,"id>name, init>value"),e("CatchClause",Ja,"param>argname, body%body"),e("ThisExpression",rb),e("ArrayExpression",_a,"elements@elements"),e("FunctionExpression",ua,"id>name, params@argnames, body%body"),e("BinaryExpression",Ya,"operator=operator, left>left, right>right"),e("LogicalExpression",Ya,"operator=operator, left>left, right>right"),e("AssignmentExpression",$a,"operator=operator, left>left, right>right"),e("ConditionalExpression",Za,"test>condition, consequent>consequent, alternate>alternative"),e("NewExpression",Qa,"callee>expression, arguments@args"),e("CallExpression",Pa,"callee>expression, arguments@args"),h(ca,function(a){return{type:"ExpressionStatement",expression:{type:"Literal",value:a.value}}}),h(da,function(a){return{type:"ExpressionStatement",expression:i(a.body)}}),h(Fa,function(a){return{type:"SwitchCase",test:i(a.expression),consequent:a.body.map(i)}}),h(Ia,function(a){return{type:"TryStatement",block:j(a),handler:i(a.bcatch),guardedHandlers:[],finalizer:i(a.bfinally)}}),h(Ja,function(a){return{type:"CatchClause",param:i(a.argname),guard:null,body:j(a)}}),h(La,function(a){return{type:"VariableDeclaration",kind:a instanceof Na?"const":"var",declarations:a.definitions.map(i)}}),h(Ra,function(a){return{type:"SequenceExpression",expressions:a.to_array().map(i)}}),h(Sa,function(a){var b=a instanceof Ua;return{type:"MemberExpression",object:i(a.expression),computed:b,property:b?i(a.property):{type:"Identifier",name:a.property}}}),h(Va,function(a){return{type:"++"==a.operator||"--"==a.operator?"UpdateExpression":"UnaryExpression",operator:a.operator,prefix:a instanceof Wa,argument:i(a.expression)}}),h(Ya,function(a){return{type:"&&"==a.operator||"||"==a.operator?"LogicalExpression":"BinaryExpression",left:i(a.left),operator:a.operator,right:i(a.right)}}),h(ab,function(a){return{type:"ObjectExpression",properties:a.properties.map(i)}}),h(bb,function(a){var b,c=F(a.key)?{type:"Identifier",name:a.key}:{type:"Literal",value:a.key};return a instanceof cb?b="init":a instanceof eb?b="get":a instanceof db&&(b="set"),{type:"Property",kind:b,key:c,value:i(a.value)}}),h(fb,function(a){var b=a.definition();return{type:"Identifier",name:b?b.mangled_name||b.name:a.name}}),h(vb,function(a){var b=a.value;return{type:"Literal",value:b,raw:b.toString(),regex:{pattern:b.source,flags:b.toString().match(/[gimuy]*$/)[0]}}}),h(sb,function(a){var b=a.value;return"number"==typeof b&&(0>b||0===b&&0>1/b)?{type:"UnaryExpression",operator:"-",prefix:!0,argument:{type:"Literal",value:-b,raw:a.start.raw}}:{type:"Literal",value:b,raw:a.start.raw}}),h(wb,function(a){return{type:"Identifier",name:String(a.value)}}),Cb.DEFMETHOD("to_mozilla_ast",sb.prototype.to_mozilla_ast),xb.DEFMETHOD("to_mozilla_ast",sb.prototype.to_mozilla_ast),Ab.DEFMETHOD("to_mozilla_ast",function(){return null}),ea.DEFMETHOD("to_mozilla_ast",fa.prototype.to_mozilla_ast),sa.DEFMETHOD("to_mozilla_ast",ua.prototype.to_mozilla_ast);var l=null;_.from_mozilla_ast=function(a){var b=l;l=[];var c=f(a);return l=b,c}}(),c.Compressor=S,c.DefaultsError=j,c.Dictionary=v,c.JS_Parse_Error=K,c.MAP=Z,c.OutputStream=R,c.SourceMap=T,c.TreeTransformer=P,c.TreeWalker=y,c.base54=Zb,c.defaults=k,c.mangle_properties=V,c.merge=l,c.parse=O,c.push_uniq=n,c.string_template=o,c.is_identifier=F,c.SymbolDef=Q,c.sys=W,c.MOZ_SourceMap=X,c.UglifyJS=Y,c.array_to_hash=d,c.slice=e,c.characters=f,c.member=g,c.find_if=h,c.repeat_string=i,c.DefaultsError=j,c.defaults=k,c.merge=l,c.noop=m,c.MAP=Z,c.push_uniq=n,c.string_template=o,c.remove=p,c.mergeSort=q,c.set_difference=r,c.set_intersection=s,c.makePredicate=t,c.all=u,c.Dictionary=v,c.DEFNODE=w,c.AST_Token=$,c.AST_Node=_,c.AST_Statement=aa,c.AST_Debugger=ba,c.AST_Directive=ca,c.AST_SimpleStatement=da,c.walk_body=x,c.AST_Block=ea,c.AST_BlockStatement=fa,c.AST_EmptyStatement=ga,c.AST_StatementWithBody=ha,c.AST_LabeledStatement=ia,c.AST_IterationStatement=ja,c.AST_DWLoop=ka,c.AST_Do=la,c.AST_While=ma,c.AST_For=na,c.AST_ForIn=oa,c.AST_With=pa,c.AST_Scope=qa,c.AST_Toplevel=ra,c.AST_Lambda=sa,c.AST_Accessor=ta,c.AST_Function=ua,c.AST_Defun=va,c.AST_Jump=wa,c.AST_Exit=xa,c.AST_Return=ya,c.AST_Throw=za,c.AST_LoopControl=Aa,c.AST_Break=Ba,c.AST_Continue=Ca,c.AST_If=Da,c.AST_Switch=Ea,c.AST_SwitchBranch=Fa,c.AST_Default=Ga,c.AST_Case=Ha,c.AST_Try=Ia,c.AST_Catch=Ja,c.AST_Finally=Ka,c.AST_Definitions=La,c.AST_Var=Ma,c.AST_Const=Na,c.AST_VarDef=Oa,c.AST_Call=Pa,c.AST_New=Qa,c.AST_Seq=Ra,c.AST_PropAccess=Sa,c.AST_Dot=Ta,c.AST_Sub=Ua,c.AST_Unary=Va,c.AST_UnaryPrefix=Wa,c.AST_UnaryPostfix=Xa,c.AST_Binary=Ya,c.AST_Conditional=Za,c.AST_Assign=$a,c.AST_Array=_a,c.AST_Object=ab,c.AST_ObjectProperty=bb,c.AST_ObjectKeyVal=cb,c.AST_ObjectSetter=db,c.AST_ObjectGetter=eb,c.AST_Symbol=fb,c.AST_SymbolAccessor=gb,c.AST_SymbolDeclaration=hb,c.AST_SymbolVar=ib,c.AST_SymbolConst=jb,c.AST_SymbolFunarg=kb,c.AST_SymbolDefun=lb,c.AST_SymbolLambda=mb,c.AST_SymbolCatch=nb,c.AST_Label=ob,c.AST_SymbolRef=pb,c.AST_LabelRef=qb,c.AST_This=rb,c.AST_Constant=sb,c.AST_String=tb,c.AST_Number=ub,c.AST_RegExp=vb,c.AST_Atom=wb,c.AST_Null=xb,c.AST_NaN=yb,c.AST_Undefined=zb,c.AST_Hole=Ab,c.AST_Infinity=Bb,c.AST_Boolean=Cb,c.AST_False=Db,c.AST_True=Eb,c.TreeWalker=y,c.KEYWORDS=Fb,c.KEYWORDS_ATOM=Gb,c.RESERVED_WORDS=Hb,c.KEYWORDS_BEFORE_EXPRESSION=Ib,c.OPERATOR_CHARS=Jb,c.RE_HEX_NUMBER=Kb,c.RE_OCT_NUMBER=Lb,c.OPERATORS=Mb,c.WHITESPACE_CHARS=Nb,c.PUNC_BEFORE_EXPRESSION=Ob,c.PUNC_CHARS=Pb,c.REGEXP_MODIFIERS=Qb,c.UNICODE=Rb,c.is_letter=z,c.is_digit=A,c.is_alphanumeric_char=B,c.is_unicode_digit=C,c.is_unicode_combining_mark=D,c.is_unicode_connector_punctuation=E,c.is_identifier=F,c.is_identifier_start=G,c.is_identifier_char=H,c.is_identifier_string=I,c.parse_js_number=J,c.JS_Parse_Error=K,c.js_error=L,c.is_token=M,c.EX_EOF=Sb,c.tokenizer=N,c.UNARY_PREFIX=Tb,c.UNARY_POSTFIX=Ub,c.ASSIGNMENT=Vb,c.PRECEDENCE=Wb,c.STATEMENTS_WITH_LABELS=Xb,c.ATOMIC_START_TOKEN=Yb,c.parse=O,c.TreeTransformer=P,c.SymbolDef=Q,c.base54=Zb,c.OutputStream=R,c.Compressor=S,c.SourceMap=T,c.find_builtins=U,c.mangle_properties=V,c.AST_Node.warn_function=function(a){"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(a)},c.minify=function(a,b){b=Y.defaults(b,{spidermonkey:!1,outSourceMap:null,sourceRoot:null,inSourceMap:null,fromString:!1,warnings:!1,mangle:{},mangleProperties:!1,nameCache:null,output:null,compress:{},parse:{}}),Y.base54.reset();var c=null,d={};if(b.spidermonkey?c=Y.AST_Node.from_mozilla_ast(a):("string"==typeof a&&(a=[a]),a.forEach(function(a,e){var f=b.fromString?a:fs.readFileSync(a,"utf8");d[a]=f,c=Y.parse(f,{filename:b.fromString?e:a,toplevel:c,bare_returns:b.parse?b.parse.bare_returns:void 0})})),b.wrap&&(c=c.wrap_commonjs(b.wrap,b.exportAll)),b.compress){var e={warnings:b.warnings};Y.merge(e,b.compress),c.figure_out_scope();var f=Y.Compressor(e);c=c.transform(f)}(b.mangleProperties||b.nameCache)&&(b.mangleProperties.cache=Y.readNameCache(b.nameCache,"props"),c=Y.mangle_properties(c,b.mangleProperties),Y.writeNameCache(b.nameCache,"props",b.mangleProperties.cache)),b.mangle&&(c.figure_out_scope(b.mangle),c.compute_char_frequency(b.mangle),c.mangle_names(b.mangle));var g=b.inSourceMap,h={};if("string"==typeof b.inSourceMap&&(g=fs.readFileSync(b.inSourceMap,"utf8")),b.outSourceMap&&(h.source_map=Y.SourceMap({file:b.outSourceMap,orig:g,root:b.sourceRoot}),b.sourceMapIncludeSources))for(var i in d)d.hasOwnProperty(i)&&h.source_map.get().setSourceContent(i,d[i]);b.output&&Y.merge(h,b.output);var j=Y.OutputStream(h);c.print(j),b.outSourceMap&&"string"==typeof b.outSourceMap&&(j+="\n//# sourceMappingURL="+b.outSourceMap);var k=h.source_map;return k&&(k+=""),{code:j+"",map:k}},c.describe_ast=function(){function a(c){b.print("AST_"+c.TYPE);var d=c.SELF_PROPS.filter(function(a){return!/^\$/.test(a)});d.length>0&&(b.space(),b.with_parens(function(){d.forEach(function(a,c){c&&b.space(),b.print(a)})})),c.documentation&&(b.space(),b.print_string(c.documentation)),c.SUBCLASSES.length>0&&(b.space(),b.with_block(function(){c.SUBCLASSES.forEach(function(c,d){b.indent(),a(c),b.newline()})}))}var b=Y.OutputStream({beautify:!0});return a(Y.AST_Node),b+""}},{"source-map":139,util:145}],141:[function(a,b,c){"use strict";function d(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}function e(a,b,c){if(a&&j.isObject(a)&&a instanceof d)return a;var e=new d;return e.parse(a,b,c),e}function f(a){return j.isString(a)&&(a=e(a)),a instanceof d?a.format():d.prototype.format.call(a)}function g(a,b){return e(a,!1,!0).resolve(b)}function h(a,b){return a?e(a,!1,!0).resolveObject(b):b}var i=a("punycode"),j=a("./util");c.parse=e,c.resolve=g,c.resolveObject=h,c.format=f,c.Url=d;var k=/^([a-z0-9.+-]+:)/i,l=/:[0-9]*$/,m=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,n=["<",">",'"',"`"," ","\r","\n","   "],o=["{","}","|","\\","^","`"].concat(n),p=["'"].concat(o),q=["%","/","?",";","#"].concat(p),r=["/","?","#"],s=255,t=/^[+a-z0-9A-Z_-]{0,63}$/,u=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,v={javascript:!0,"javascript:":!0},w={javascript:!0,"javascript:":!0},x={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},y=a("querystring");d.prototype.parse=function(a,b,c){if(!j.isString(a))throw new TypeError("Parameter 'url' must be a string, not "+typeof a);var d=a.indexOf("?"),e=-1!==d&&d<a.indexOf("#")?"?":"#",f=a.split(e),g=/\\/g;f[0]=f[0].replace(g,"/"),a=f.join(e);var h=a;if(h=h.trim(),!c&&1===a.split("#").length){var l=m.exec(h);if(l)return this.path=h,this.href=h,this.pathname=l[1],l[2]?(this.search=l[2],b?this.query=y.parse(this.search.substr(1)):this.query=this.search.substr(1)):b&&(this.search="",this.query={}),this}var n=k.exec(h);if(n){n=n[0];var o=n.toLowerCase();this.protocol=o,h=h.substr(n.length)}if(c||n||h.match(/^\/\/[^@\/]+@[^@\/]+/)){var z="//"===h.substr(0,2);!z||n&&w[n]||(h=h.substr(2),this.slashes=!0)}if(!w[n]&&(z||n&&!x[n])){for(var A=-1,B=0;B<r.length;B++){var C=h.indexOf(r[B]);-1!==C&&(-1===A||A>C)&&(A=C)}var D,E;E=-1===A?h.lastIndexOf("@"):h.lastIndexOf("@",A),-1!==E&&(D=h.slice(0,E),h=h.slice(E+1),this.auth=decodeURIComponent(D)),A=-1;for(var B=0;B<q.length;B++){var C=h.indexOf(q[B]);-1!==C&&(-1===A||A>C)&&(A=C)}-1===A&&(A=h.length),this.host=h.slice(0,A),h=h.slice(A),this.parseHost(),this.hostname=this.hostname||"";var F="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!F)for(var G=this.hostname.split(/\./),B=0,H=G.length;H>B;B++){var I=G[B];if(I&&!I.match(t)){for(var J="",K=0,L=I.length;L>K;K++)J+=I.charCodeAt(K)>127?"x":I[K];if(!J.match(t)){var M=G.slice(0,B),N=G.slice(B+1),O=I.match(u);O&&(M.push(O[1]),N.unshift(O[2])),N.length&&(h="/"+N.join(".")+h),this.hostname=M.join(".");break}}}this.hostname.length>s?this.hostname="":this.hostname=this.hostname.toLowerCase(),F||(this.hostname=i.toASCII(this.hostname));var P=this.port?":"+this.port:"",Q=this.hostname||"";this.host=Q+P,this.href+=this.host,F&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==h[0]&&(h="/"+h))}if(!v[o])for(var B=0,H=p.length;H>B;B++){var R=p[B];if(-1!==h.indexOf(R)){var S=encodeURIComponent(R);S===R&&(S=escape(R)),
-h=h.split(R).join(S)}}var T=h.indexOf("#");-1!==T&&(this.hash=h.substr(T),h=h.slice(0,T));var U=h.indexOf("?");if(-1!==U?(this.search=h.substr(U),this.query=h.substr(U+1),b&&(this.query=y.parse(this.query)),h=h.slice(0,U)):b&&(this.search="",this.query={}),h&&(this.pathname=h),x[o]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){var P=this.pathname||"",V=this.search||"";this.path=P+V}return this.href=this.format(),this},d.prototype.format=function(){var a=this.auth||"";a&&(a=encodeURIComponent(a),a=a.replace(/%3A/i,":"),a+="@");var b=this.protocol||"",c=this.pathname||"",d=this.hash||"",e=!1,f="";this.host?e=a+this.host:this.hostname&&(e=a+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(e+=":"+this.port)),this.query&&j.isObject(this.query)&&Object.keys(this.query).length&&(f=y.stringify(this.query));var g=this.search||f&&"?"+f||"";return b&&":"!==b.substr(-1)&&(b+=":"),this.slashes||(!b||x[b])&&e!==!1?(e="//"+(e||""),c&&"/"!==c.charAt(0)&&(c="/"+c)):e||(e=""),d&&"#"!==d.charAt(0)&&(d="#"+d),g&&"?"!==g.charAt(0)&&(g="?"+g),c=c.replace(/[?#]/g,function(a){return encodeURIComponent(a)}),g=g.replace("#","%23"),b+e+c+g+d},d.prototype.resolve=function(a){return this.resolveObject(e(a,!1,!0)).format()},d.prototype.resolveObject=function(a){if(j.isString(a)){var b=new d;b.parse(a,!1,!0),a=b}for(var c=new d,e=Object.keys(this),f=0;f<e.length;f++){var g=e[f];c[g]=this[g]}if(c.hash=a.hash,""===a.href)return c.href=c.format(),c;if(a.slashes&&!a.protocol){for(var h=Object.keys(a),i=0;i<h.length;i++){var k=h[i];"protocol"!==k&&(c[k]=a[k])}return x[c.protocol]&&c.hostname&&!c.pathname&&(c.path=c.pathname="/"),c.href=c.format(),c}if(a.protocol&&a.protocol!==c.protocol){if(!x[a.protocol]){for(var l=Object.keys(a),m=0;m<l.length;m++){var n=l[m];c[n]=a[n]}return c.href=c.format(),c}if(c.protocol=a.protocol,a.host||w[a.protocol])c.pathname=a.pathname;else{for(var o=(a.pathname||"").split("/");o.length&&!(a.host=o.shift()););a.host||(a.host=""),a.hostname||(a.hostname=""),""!==o[0]&&o.unshift(""),o.length<2&&o.unshift(""),c.pathname=o.join("/")}if(c.search=a.search,c.query=a.query,c.host=a.host||"",c.auth=a.auth,c.hostname=a.hostname||a.host,c.port=a.port,c.pathname||c.search){var p=c.pathname||"",q=c.search||"";c.path=p+q}return c.slashes=c.slashes||a.slashes,c.href=c.format(),c}var r=c.pathname&&"/"===c.pathname.charAt(0),s=a.host||a.pathname&&"/"===a.pathname.charAt(0),t=s||r||c.host&&a.pathname,u=t,v=c.pathname&&c.pathname.split("/")||[],o=a.pathname&&a.pathname.split("/")||[],y=c.protocol&&!x[c.protocol];if(y&&(c.hostname="",c.port=null,c.host&&(""===v[0]?v[0]=c.host:v.unshift(c.host)),c.host="",a.protocol&&(a.hostname=null,a.port=null,a.host&&(""===o[0]?o[0]=a.host:o.unshift(a.host)),a.host=null),t=t&&(""===o[0]||""===v[0])),s)c.host=a.host||""===a.host?a.host:c.host,c.hostname=a.hostname||""===a.hostname?a.hostname:c.hostname,c.search=a.search,c.query=a.query,v=o;else if(o.length)v||(v=[]),v.pop(),v=v.concat(o),c.search=a.search,c.query=a.query;else if(!j.isNullOrUndefined(a.search)){if(y){c.hostname=c.host=v.shift();var z=c.host&&c.host.indexOf("@")>0?c.host.split("@"):!1;z&&(c.auth=z.shift(),c.host=c.hostname=z.shift())}return c.search=a.search,c.query=a.query,j.isNull(c.pathname)&&j.isNull(c.search)||(c.path=(c.pathname?c.pathname:"")+(c.search?c.search:"")),c.href=c.format(),c}if(!v.length)return c.pathname=null,c.search?c.path="/"+c.search:c.path=null,c.href=c.format(),c;for(var A=v.slice(-1)[0],B=(c.host||a.host||v.length>1)&&("."===A||".."===A)||""===A,C=0,D=v.length;D>=0;D--)A=v[D],"."===A?v.splice(D,1):".."===A?(v.splice(D,1),C++):C&&(v.splice(D,1),C--);if(!t&&!u)for(;C--;C)v.unshift("..");!t||""===v[0]||v[0]&&"/"===v[0].charAt(0)||v.unshift(""),B&&"/"!==v.join("/").substr(-1)&&v.push("");var E=""===v[0]||v[0]&&"/"===v[0].charAt(0);if(y){c.hostname=c.host=E?"":v.length?v.shift():"";var z=c.host&&c.host.indexOf("@")>0?c.host.split("@"):!1;z&&(c.auth=z.shift(),c.host=c.hostname=z.shift())}return t=t||c.host&&v.length,t&&!E&&v.unshift(""),v.length?c.pathname=v.join("/"):(c.pathname=null,c.path=null),j.isNull(c.pathname)&&j.isNull(c.search)||(c.path=(c.pathname?c.pathname:"")+(c.search?c.search:"")),c.auth=a.auth||c.auth,c.slashes=c.slashes||a.slashes,c.href=c.format(),c},d.prototype.parseHost=function(){var a=this.host,b=l.exec(a);b&&(b=b[0],":"!==b&&(this.port=b.substr(1)),a=a.substr(0,a.length-b.length)),a&&(this.hostname=a)}},{"./util":142,punycode:80,querystring:83}],142:[function(a,b,c){"use strict";b.exports={isString:function(a){return"string"==typeof a},isObject:function(a){return"object"==typeof a&&null!==a},isNull:function(a){return null===a},isNullOrUndefined:function(a){return null==a}}},{}],143:[function(a,b,c){(function(a){function c(a,b){function c(){if(!e){if(d("throwDeprecation"))throw new Error(b);d("traceDeprecation")?console.trace(b):console.warn(b),e=!0}return a.apply(this,arguments)}if(d("noDeprecation"))return a;var e=!1;return c}function d(b){try{if(!a.localStorage)return!1}catch(c){return!1}var d=a.localStorage[b];return null==d?!1:"true"===String(d).toLowerCase()}b.exports=c}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],144:[function(a,b,c){b.exports=function(a){return a&&"object"==typeof a&&"function"==typeof a.copy&&"function"==typeof a.fill&&"function"==typeof a.readUInt8}},{}],145:[function(a,b,c){(function(b,d){function e(a,b){var d={seen:[],stylize:g};return arguments.length>=3&&(d.depth=arguments[2]),arguments.length>=4&&(d.colors=arguments[3]),p(b)?d.showHidden=b:b&&c._extend(d,b),v(d.showHidden)&&(d.showHidden=!1),v(d.depth)&&(d.depth=2),v(d.colors)&&(d.colors=!1),v(d.customInspect)&&(d.customInspect=!0),d.colors&&(d.stylize=f),i(d,a,d.depth)}function f(a,b){var c=e.styles[b];return c?"\e["+e.colors[c][0]+"m"+a+"\e["+e.colors[c][1]+"m":a}function g(a,b){return a}function h(a){var b={};return a.forEach(function(a,c){b[a]=!0}),b}function i(a,b,d){if(a.customInspect&&b&&A(b.inspect)&&b.inspect!==c.inspect&&(!b.constructor||b.constructor.prototype!==b)){var e=b.inspect(d,a);return t(e)||(e=i(a,e,d)),e}var f=j(a,b);if(f)return f;var g=Object.keys(b),p=h(g);if(a.showHidden&&(g=Object.getOwnPropertyNames(b)),z(b)&&(g.indexOf("message")>=0||g.indexOf("description")>=0))return k(b);if(0===g.length){if(A(b)){var q=b.name?": "+b.name:"";return a.stylize("[Function"+q+"]","special")}if(w(b))return a.stylize(RegExp.prototype.toString.call(b),"regexp");if(y(b))return a.stylize(Date.prototype.toString.call(b),"date");if(z(b))return k(b)}var r="",s=!1,u=["{","}"];if(o(b)&&(s=!0,u=["[","]"]),A(b)){var v=b.name?": "+b.name:"";r=" [Function"+v+"]"}if(w(b)&&(r=" "+RegExp.prototype.toString.call(b)),y(b)&&(r=" "+Date.prototype.toUTCString.call(b)),z(b)&&(r=" "+k(b)),0===g.length&&(!s||0==b.length))return u[0]+r+u[1];if(0>d)return w(b)?a.stylize(RegExp.prototype.toString.call(b),"regexp"):a.stylize("[Object]","special");a.seen.push(b);var x;return x=s?l(a,b,d,p,g):g.map(function(c){return m(a,b,d,p,c,s)}),a.seen.pop(),n(x,r,u)}function j(a,b){if(v(b))return a.stylize("undefined","undefined");if(t(b)){var c="'"+JSON.stringify(b).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return a.stylize(c,"string")}return s(b)?a.stylize(""+b,"number"):p(b)?a.stylize(""+b,"boolean"):q(b)?a.stylize("null","null"):void 0}function k(a){return"["+Error.prototype.toString.call(a)+"]"}function l(a,b,c,d,e){for(var f=[],g=0,h=b.length;h>g;++g)F(b,String(g))?f.push(m(a,b,c,d,String(g),!0)):f.push("");return e.forEach(function(e){e.match(/^\d+$/)||f.push(m(a,b,c,d,e,!0))}),f}function m(a,b,c,d,e,f){var g,h,j;if(j=Object.getOwnPropertyDescriptor(b,e)||{value:b[e]},j.get?h=j.set?a.stylize("[Getter/Setter]","special"):a.stylize("[Getter]","special"):j.set&&(h=a.stylize("[Setter]","special")),F(d,e)||(g="["+e+"]"),h||(a.seen.indexOf(j.value)<0?(h=q(c)?i(a,j.value,null):i(a,j.value,c-1),h.indexOf("\n")>-1&&(h=f?h.split("\n").map(function(a){return"  "+a}).join("\n").substr(2):"\n"+h.split("\n").map(function(a){return"   "+a}).join("\n"))):h=a.stylize("[Circular]","special")),v(g)){if(f&&e.match(/^\d+$/))return h;g=JSON.stringify(""+e),g.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(g=g.substr(1,g.length-2),g=a.stylize(g,"name")):(g=g.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),g=a.stylize(g,"string"))}return g+": "+h}function n(a,b,c){var d=0,e=a.reduce(function(a,b){return d++,b.indexOf("\n")>=0&&d++,a+b.replace(/\u001b\[\d\d?m/g,"").length+1},0);return e>60?c[0]+(""===b?"":b+"\n ")+" "+a.join(",\n  ")+" "+c[1]:c[0]+b+" "+a.join(", ")+" "+c[1]}function o(a){return Array.isArray(a)}function p(a){return"boolean"==typeof a}function q(a){return null===a}function r(a){return null==a}function s(a){return"number"==typeof a}function t(a){return"string"==typeof a}function u(a){return"symbol"==typeof a}function v(a){return void 0===a}function w(a){return x(a)&&"[object RegExp]"===C(a)}function x(a){return"object"==typeof a&&null!==a}function y(a){return x(a)&&"[object Date]"===C(a)}function z(a){return x(a)&&("[object Error]"===C(a)||a instanceof Error)}function A(a){return"function"==typeof a}function B(a){return null===a||"boolean"==typeof a||"number"==typeof a||"string"==typeof a||"symbol"==typeof a||"undefined"==typeof a}function C(a){return Object.prototype.toString.call(a)}function D(a){return 10>a?"0"+a.toString(10):a.toString(10)}function E(){var a=new Date,b=[D(a.getHours()),D(a.getMinutes()),D(a.getSeconds())].join(":");return[a.getDate(),J[a.getMonth()],b].join(" ")}function F(a,b){return Object.prototype.hasOwnProperty.call(a,b)}var G=/%[sdj%]/g;c.format=function(a){if(!t(a)){for(var b=[],c=0;c<arguments.length;c++)b.push(e(arguments[c]));return b.join(" ")}for(var c=1,d=arguments,f=d.length,g=String(a).replace(G,function(a){if("%%"===a)return"%";if(c>=f)return a;switch(a){case"%s":return String(d[c++]);case"%d":return Number(d[c++]);case"%j":try{return JSON.stringify(d[c++])}catch(b){return"[Circular]"}default:return a}}),h=d[c];f>c;h=d[++c])g+=q(h)||!x(h)?" "+h:" "+e(h);return g},c.deprecate=function(a,e){function f(){if(!g){if(b.throwDeprecation)throw new Error(e);b.traceDeprecation?console.trace(e):console.error(e),g=!0}return a.apply(this,arguments)}if(v(d.process))return function(){return c.deprecate(a,e).apply(this,arguments)};if(b.noDeprecation===!0)return a;var g=!1;return f};var H,I={};c.debuglog=function(a){if(v(H)&&(H=b.env.NODE_DEBUG||""),a=a.toUpperCase(),!I[a])if(new RegExp("\\b"+a+"\\b","i").test(H)){var d=b.pid;I[a]=function(){var b=c.format.apply(c,arguments);console.error("%s %d: %s",a,d,b)}}else I[a]=function(){};return I[a]},c.inspect=e,e.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]},e.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},c.isArray=o,c.isBoolean=p,c.isNull=q,c.isNullOrUndefined=r,c.isNumber=s,c.isString=t,c.isSymbol=u,c.isUndefined=v,c.isRegExp=w,c.isObject=x,c.isDate=y,c.isError=z,c.isFunction=A,c.isPrimitive=B,c.isBuffer=a("./support/isBuffer");var J=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];c.log=function(){console.log("%s - %s",E(),c.format.apply(c,arguments))},c.inherits=a("inherits"),c._extend=function(a,b){if(!b||!x(b))return a;for(var c=Object.keys(b),d=c.length;d--;)a[c[d]]=b[c[d]];return a}}).call(this,a("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":144,_process:79,inherits:72}],146:[function(a,b,c){c.baseChar=/[A-Za-z\xC0-\xD6\xD8-\xF6\xF8-\u0131\u0134-\u013E\u0141-\u0148\u014A-\u017E\u0180-\u01C3\u01CD-\u01F0\u01F4\u01F5\u01FA-\u0217\u0250-\u02A8\u02BB-\u02C1\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03CE\u03D0-\u03D6\u03DA\u03DC\u03DE\u03E0\u03E2-\u03F3\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E-\u0481\u0490-\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0-\u04EB\u04EE-\u04F5\u04F8\u04F9\u0531-\u0556\u0559\u0561-\u0586\u05D0-\u05EA\u05F0-\u05F2\u0621-\u063A\u0641-\u064A\u0671-\u06B7\u06BA-\u06BE\u06C0-\u06CE\u06D0-\u06D3\u06D5\u06E5\u06E6\u0905-\u0939\u093D\u0958-\u0961\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\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-\u0A8B\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AE0\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B36-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB5\u0BB7-\u0BB9\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CDE\u0CE0\u0CE1\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D60\u0D61\u0E01-\u0E2E\u0E30\u0E32\u0E33\u0E40-\u0E45\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0F40-\u0F47\u0F49-\u0F69\u10A0-\u10C5\u10D0-\u10F6\u1100\u1102\u1103\u1105-\u1107\u1109\u110B\u110C\u110E-\u1112\u113C\u113E\u1140\u114C\u114E\u1150\u1154\u1155\u1159\u115F-\u1161\u1163\u1165\u1167\u1169\u116D\u116E\u1172\u1173\u1175\u119E\u11A8\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BC-\u11C2\u11EB\u11F0\u11F9\u1E00-\u1E9B\u1EA0-\u1EF9\u1F00-\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\u2126\u212A\u212B\u212E\u2180-\u2182\u3041-\u3094\u30A1-\u30FA\u3105-\u312C\uAC00-\uD7A3]/,c.ideographic=/[\u3007\u3021-\u3029\u4E00-\u9FA5]/,c.letter=/[A-Za-z\xC0-\xD6\xD8-\xF6\xF8-\u0131\u0134-\u013E\u0141-\u0148\u014A-\u017E\u0180-\u01C3\u01CD-\u01F0\u01F4\u01F5\u01FA-\u0217\u0250-\u02A8\u02BB-\u02C1\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03CE\u03D0-\u03D6\u03DA\u03DC\u03DE\u03E0\u03E2-\u03F3\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E-\u0481\u0490-\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0-\u04EB\u04EE-\u04F5\u04F8\u04F9\u0531-\u0556\u0559\u0561-\u0586\u05D0-\u05EA\u05F0-\u05F2\u0621-\u063A\u0641-\u064A\u0671-\u06B7\u06BA-\u06BE\u06C0-\u06CE\u06D0-\u06D3\u06D5\u06E5\u06E6\u0905-\u0939\u093D\u0958-\u0961\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\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-\u0A8B\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AE0\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B36-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB5\u0BB7-\u0BB9\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CDE\u0CE0\u0CE1\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D60\u0D61\u0E01-\u0E2E\u0E30\u0E32\u0E33\u0E40-\u0E45\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0F40-\u0F47\u0F49-\u0F69\u10A0-\u10C5\u10D0-\u10F6\u1100\u1102\u1103\u1105-\u1107\u1109\u110B\u110C\u110E-\u1112\u113C\u113E\u1140\u114C\u114E\u1150\u1154\u1155\u1159\u115F-\u1161\u1163\u1165\u1167\u1169\u116D\u116E\u1172\u1173\u1175\u119E\u11A8\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BC-\u11C2\u11EB\u11F0\u11F9\u1E00-\u1E9B\u1EA0-\u1EF9\u1F00-\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\u2126\u212A\u212B\u212E\u2180-\u2182\u3007\u3021-\u3029\u3041-\u3094\u30A1-\u30FA\u3105-\u312C\u4E00-\u9FA5\uAC00-\uD7A3]/,c.combiningChar=/[\u0300-\u0345\u0360\u0361\u0483-\u0486\u0591-\u05A1\u05A3-\u05B9\u05BB-\u05BD\u05BF\u05C1\u05C2\u05C4\u064B-\u0652\u0670\u06D6-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0901-\u0903\u093C\u093E-\u094D\u0951-\u0954\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A02\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A70\u0A71\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0B01-\u0B03\u0B3C\u0B3E-\u0B43\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B82\u0B83\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C01-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C82\u0C83\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0D02\u0D03\u0D3E-\u0D43\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86-\u0F8B\u0F90-\u0F95\u0F97\u0F99-\u0FAD\u0FB1-\u0FB7\u0FB9\u20D0-\u20DC\u20E1\u302A-\u302F\u3099\u309A]/,c.digit=/[0-9\u0660-\u0669\u06F0-\u06F9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE7-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29]/,c.extender=/[\xB7\u02D0\u02D1\u0387\u0640\u0E46\u0EC6\u3005\u3031-\u3035\u309D\u309E\u30FC-\u30FE]/},{}],147:[function(a,b,c){function d(){for(var a={},b=0;b<arguments.length;b++){var c=arguments[b];for(var d in c)e.call(c,d)&&(a[d]=c[d])}return a}b.exports=d;var e=Object.prototype.hasOwnProperty},{}],148:[function(a,b,c){"use strict";function d(a){return h(a,!0)}function e(a){var b=i.source+"(?:\\s*("+f(a)+")\\s*(?:"+l.join("|")+"))?";if(a.customAttrSurround){for(var c=[],d=a.customAttrSurround.length-1;d>=0;d--)c[d]="(?:("+a.customAttrSurround[d][0].source+")\\s*"+b+"\\s*("+a.customAttrSurround[d][1].source+"))";c.push("(?:"+b+")"),b="(?:"+c.join("|")+")"}return new RegExp("^\\s*"+b)}function f(a){return k.concat(a.customAttrAssign||[]).map(function(a){return"(?:"+a.source+")"}).join("|")}function g(a,b){function c(a){var b=a.match(n);if(b){var c={tagName:b[1],attrs:[]};a=a.slice(b[0].length);for(var d,e;!(d=a.match(o))&&(e=a.match(l));)a=a.slice(e[0].length),c.attrs.push(e);if(d)return c.unarySlash=d[1],c.rest=a.slice(d[0].length),c}}function d(a){var c=a.tagName,d=a.unarySlash;if(b.html5&&"p"===g&&x(c)&&f("",g),!b.html5)for(;g&&t(g);)f("",g);u(c)&&g===c&&f("",c);var e=s(c)||"html"===c&&"head"===g||!!d,h=a.attrs.map(function(a){function c(b){return h=a[b],e=a[b+1],"undefined"!=typeof e?'"':(e=a[b+2],"undefined"!=typeof e?"'":(e=a[b+3],"undefined"==typeof e&&v(d)&&(e=d),""))}var d,e,f,g,h,i,j=7;r&&-1===a[0].indexOf('""')&&(""===a[3]&&delete a[3],""===a[4]&&delete a[4],""===a[5]&&delete a[5]);var k=1;if(b.customAttrSurround)for(var l=0,m=b.customAttrSurround.length;m>l;l++,k+=j)if(d=a[k+1]){i=c(k+2),f=a[k],g=a[k+6];break}return!d&&(d=a[k])&&(i=c(k+1)),{name:d,value:e,customAssign:h||"=",customOpen:f||"",customClose:g||"",quote:i||""}});e||(k.push({tag:c,attrs:h}),g=c,d=""),b.start&&b.start(c,h,e,d)}function f(a,c){var d;if(c){var e=c.toLowerCase();for(d=k.length-1;d>=0&&k[d].tag.toLowerCase()!==e;d--);}else d=0;if(d>=0){for(var f=k.length-1;f>=d;f--)b.end&&b.end(k[f].tag,k[f].attrs,f>d||!a);k.length=d,g=d&&k[d-1].tag}else"br"===c.toLowerCase()?b.start&&b.start(c,[],!0,""):"p"===c.toLowerCase()&&(b.start&&b.start(c,[],!1,"",!0),b.end&&b.end(c,[]))}for(var g,h,i,j,k=[],l=e(b);a;){if(h=a,g&&w(g)){var m=g.toLowerCase(),z=y[m]||(y[m]=new RegExp("([\\s\\S]*?)</"+m+"[^>]*>","i"));a=a.replace(z,function(a,c){return"script"!==m&&"style"!==m&&"noscript"!==m&&(c=c.replace(/<!--([\s\S]*?)-->/g,"$1").replace(/<!\[CDATA\[([\s\S]*?)\]\]>/g,"$1")),b.chars&&b.chars(c),""}),f("</"+m+">",m)}else{var A=a.indexOf("<");if(0===A){if(/^<!--/.test(a)){var B=a.indexOf("-->");if(B>=0){b.comment&&b.comment(a.substring(4,B)),a=a.substring(B+3),i="";continue}}if(/^<!\[/.test(a)){var C=a.indexOf("]>");if(C>=0){b.comment&&b.comment(a.substring(2,C+1),!0),a=a.substring(C+2),i="";continue}}var D=a.match(q);if(D){b.doctype&&b.doctype(D[0]),a=a.substring(D[0].length),i="";continue}var E=a.match(p);if(E){a=a.substring(E[0].length),E[0].replace(p,f),i="/"+E[1].toLowerCase();continue}var F=c(a);if(F){a=F.rest,d(F),i=F.tagName.toLowerCase();continue}}var G;A>=0?(G=a.substring(0,A),a=a.substring(A)):(G=a,a="");var H=c(a);H?j=H.tagName:(H=a.match(p),j=H?"/"+H[1]:""),b.chars&&b.chars(G,i,j),i=""}if(a===h)throw new Error("Parse Error: "+a)}b.partialMarkup||f()}var h=a("./utils").createMapFromString,i=/([^\s"'<>\/=]+)/,j=/=/,k=[j],l=[/"([^"]*)"+/.source,/'([^']*)'+/.source,/([^\s"'=<>`]+)/.source],m=function(){var b=a("ncname").source.slice(1,-1);return"((?:"+b+"\\:)?"+b+")"}(),n=new RegExp("^<"+m),o=/^\s*(\/?)>/,p=new RegExp("^<\\/"+m+"[^>]*>"),q=/^<!DOCTYPE [^>]+>/i,r=!1;"x".replace(/x(.)?/g,function(a,b){r=""===b});var s=d("area,base,basefont,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),t=d("a,abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,noscript,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,svg,textarea,tt,u,var"),u=d("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),v=d("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected"),w=d("script,style"),x=d("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),y={};c.HTMLParser=g,c.HTMLtoXML=function(a){var b="";return new g(a,{start:function(a,c,d){b+="<"+a;for(var e=0,f=c.length;f>e;e++)b+=" "+c[e].name+'="'+(c[e].value||"").replace(/"/g,"&#34;")+'"';b+=(d?"/":"")+">"},end:function(a){b+="</"+a+">"},chars:function(a){b+=a},comment:function(a){b+="<!--"+a+"-->"},ignore:function(a){b+=a}}),b},c.HTMLtoDOM=function(a,b){var c={html:!0,head:!0,body:!0,title:!0},d={link:"head",base:"head"};b?b=b.ownerDocument||b.getOwnerDocument&&b.getOwnerDocument()||b:"undefined"!=typeof DOMDocument?b=new DOMDocument:"undefined"!=typeof document&&document.implementation&&document.implementation.createDocument?b=document.implementation.createDocument("","",null):"undefined"!=typeof ActiveX&&(b=new ActiveXObject("Msxml.DOMDocument"));var e=[],f=b.documentElement||b.getDocumentElement&&b.getDocumentElement();if(!f&&b.createElement&&!function(){var a=b.createElement("html"),c=b.createElement("head");c.appendChild(b.createElement("title")),a.appendChild(c),a.appendChild(b.createElement("body")),b.appendChild(a)}(),b.getElementsByTagName)for(var h in c)c[h]=b.getElementsByTagName(h)[0];var i=c.body;return new g(a,{start:function(a,f,g){if(c[a])return void(i=c[a]);var h=b.createElement(a);for(var j in f)h.setAttribute(f[j].name,f[j].value);d[a]&&"boolean"!=typeof c[d[a]]?c[d[a]].appendChild(h):i&&i.appendChild&&i.appendChild(h),g||(e.push(h),i=h)},end:function(){e.length-=1,i=e[e.length-1]},chars:function(a){i.appendChild(b.createTextNode(a))},comment:function(){},ignore:function(){}}),b}},{"./utils":150,ncname:75}],149:[function(a,b,c){"use strict";function d(a){this.tokens=a}function e(){}d.prototype.sort=function(a,b){b=b||0;for(var c=0,d=this.tokens.length;d>c;c++){var e=this.tokens[c],f=a.indexOf(e,b);if(-1!==f){do f!==b&&(a.splice(f,1),a.splice(b,0,e)),b++;while(-1!==(f=a.indexOf(e,b)));return this[e].sort(a,b)}}return a},e.prototype={add:function(a){var b=this;a.forEach(function(c){(b[c]||(b[c]=[])).push(a)})},createSorter:function(){var a=this,b=new d(Object.keys(this).sort(function(b,c){var d=a[b].length,e=a[c].length;return e>d?1:d>e?-1:c>b?-1:b>c?1:0}));return b.tokens.forEach(function(c){var d=new e;a[c].forEach(function(a){for(var b;-1!==(b=a.indexOf(c));)a.splice(b,1);d.add(a.slice(0))}),b[c]=d.createSorter()}),b}},b.exports=e},{}],150:[function(a,b,c){"use strict";function d(a,b){var c={};return a.forEach(function(a){c[a]=1}),b?function(a){return 1===c[a.toLowerCase()]}:function(a){return 1===c[a]}}c.createMap=d,c.createMapFromString=function(a,b){return d(a.split(/,/),b)}},{}],"html-minifier/src/htmllint":[function(a,b,c){"use strict";function d(a){return/^(?:big|small|hr|blink|marquee)$/.test(a)}function e(a){return/^(?:applet|basefont|center|dir|font|isindex|strike)$/.test(a)}function f(a){return/^on[a-z]+/.test(a)}function g(a){return"style"===a.toLowerCase()}function h(a,b){return"align"===b&&/^(?:caption|applet|iframe|img|imput|object|legend|table|hr|div|h[1-6]|p)$/.test(a)||"alink"===b&&"body"===a||"alt"===b&&"applet"===a||"archive"===b&&"applet"===a||"background"===b&&"body"===a||"bgcolor"===b&&/^(?:table|t[rdh]|body)$/.test(a)||"border"===b&&/^(?:img|object)$/.test(a)||"clear"===b&&"br"===a||"code"===b&&"applet"===a||"codebase"===b&&"applet"===a||"color"===b&&/^(?:base(?:font)?)$/.test(a)||"compact"===b&&/^(?:dir|[dou]l|menu)$/.test(a)||"face"===b&&/^base(?:font)?$/.test(a)||"height"===b&&/^(?:t[dh]|applet)$/.test(a)||"hspace"===b&&/^(?:applet|img|object)$/.test(a)||"language"===b&&"script"===a||"link"===b&&"body"===a||"name"===b&&"applet"===a||"noshade"===b&&"hr"===a||"nowrap"===b&&/^t[dh]$/.test(a)||"object"===b&&"applet"===a||"prompt"===b&&"isindex"===a||"size"===b&&/^(?:hr|font|basefont)$/.test(a)||"start"===b&&"ol"===a||"text"===b&&"body"===a||"type"===b&&/^(?:li|ol|ul)$/.test(a)||"value"===b&&"li"===a||"version"===b&&"html"===a||"vlink"===b&&"body"===a||"vspace"===b&&/^(?:applet|img|object)$/.test(a)||"width"===b&&/^(?:hr|td|th|applet|pre)$/.test(a)}function i(a,b){return"href"===a&&/^\s*javascript\s*:\s*void\s*(\s+0|\(\s*0\s*\))\s*$/i.test(b)}function j(){this.log=[],this._lastElement=null,this._isElementRepeated=!1}j.prototype.testElement=function(a){this._attributes=Object.create(null),e(a)?this.log.push('Found <span class="deprecated-element">deprecated</span> <strong><code>&lt;'+a+"&gt;</code></strong> element"):d(a)?this.log.push('Found <span class="presentational-element">presentational</span> <strong><code>&lt;'+a+"&gt;</code></strong> element"):this.checkRepeatingElement(a)},j.prototype.checkRepeatingElement=function(a){"br"===a&&"br"===this._lastElement?this._isElementRepeated=!0:this._isElementRepeated&&(this._reportRepeatingElement(),this._isElementRepeated=!1),this._lastElement=a},j.prototype._reportRepeatingElement=function(){this.log.push("Found <code>&lt;br></code> sequence. Try replacing it with styling.")},j.prototype.testAttribute=function(a,b,c){this._attributes[b]?this.log.push('Found <span class="repeating-attribute">repeating attribute</span> (<strong>'+b+"</strong>) on <strong><code>&lt;"+a+"&gt;</code></strong> element."):this._attributes[b]=!0,f(b)?this.log.push('Found <span class="event-attribute">event attribute</span> (<strong>'+b+"</strong>) on <strong><code>&lt;"+a+"&gt;</code></strong> element."):h(a,b)?this.log.push('Found <span class="deprecated-attribute">deprecated</span> <strong>'+b+"</strong> attribute on <strong><code>&lt;"+a+"&gt;</code></strong> element."):g(b)?this.log.push('Found <span class="style-attribute">style attribute</span> on <strong><code>&lt;'+a+"&gt;</code></strong> element."):i(b,c)&&this.log.push('Found <span class="inaccessible-attribute">inaccessible attribute</span> (on <strong><code>&lt;'+a+"&gt;</code></strong> element).")},j.prototype.testChars=function(a){this._lastElement="",/(&nbsp;\s*){2,}/.test(a)&&this.log.push("Found repeating <strong><code>&amp;nbsp;</code></strong> sequence. Try replacing it with styling.")},j.prototype.test=function(a,b,c){this.testElement(a),this.testAttribute(a,b,c)},j.prototype.testDoctype=function(a){this._doctype=a},j.prototype.populate=function(a){this._doctype||this.log.push("No DOCTYPE found."),this._isElementRepeated&&this._reportRepeatingElement();var b;a?(b=this.log.map(function(a){return"<li>"+a+"</li>"}).join(""),a.innerHTML="<ol>"+b+"</ol>"):this.log.length&&(b=this.log.join("\n - ").replace(/<[^>]+>/g,""),console.log(" - "+b.replace(/&lt;/g,"<").replace(/&gt;/g,">")))},c.HTMLLint=j},{}],"html-minifier":[function(a,b,c){"use strict";function d(a){return"  "===a?a:" "}function e(a){return a?a.replace(/[\t\n\r ]+/g,d):a}function f(a,b,c,f,g){var h="",i="";return b.preserveLineBreaks&&(a=a.replace(/^[\t ]*[\n\r][\t\n\r ]*/,function(){return h="\n",""}).replace(/[\t\n\r ]*[\n\r][\t ]*$/,function(){return i="\n",""})),c&&(a=a.replace(/^\s+/,!h&&b.conservativeCollapse?d:"")),f&&(a=a.replace(/\s+$/,!i&&b.conservativeCollapse?d:"")),g&&(a=e(a)),h+a+i}function g(a,b,c,d){var e=b&&!da(b);e&&!d.collapseInlineTagWhitespace&&(e="/"===b.charAt(0)?!ba(b.slice(1)):!ca(b));var g=c&&!da(c);return g&&!d.collapseInlineTagWhitespace&&(g="/"===c.charAt(0)?!ca(c.slice(1)):!ba(c)),f(a,d,e,g,b&&c)}function h(a){return/^\[if\s[^\]]+\]|\[endif\]$/.test(a)}function i(a,b){if(/^!/.test(a))return!0;if(b.ignoreCustomComments)for(var c=0,d=b.ignoreCustomComments.length;d>c;c++)if(b.ignoreCustomComments[c].test(a))return!0;return!1}function j(a,b){var c=b.customEventAttributes;if(c){for(var d=c.length;d--;)if(c[d].test(a))return!0;return!1}return/^on[a-z]{3,}$/.test(a)}function k(a){return/^[^ \t\n\f\r"'`=<>]+$/.test(a)}function l(a,b){for(var c=a.length;c--;)if(a[c].name.toLowerCase()===b)return!0;return!1}function m(a,b,c,d){return c=c?_(c.toLowerCase()):"","script"===a&&"language"===b&&"javascript"===c||"form"===a&&"method"===b&&"get"===c||"input"===a&&"type"===b&&"text"===c||"script"===a&&"charset"===b&&!l(d,"src")||"a"===a&&"name"===b&&l(d,"id")||"area"===a&&"shape"===b&&"rect"===c}function n(a){return a=_(a.split(/;/,2)[0]).toLowerCase(),""===a||ea(a)}function o(a,b){if("script"!==a)return!1;for(var c=0,d=b.length;d>c;c++){var e=b[c].name.toLowerCase();if("type"===e)return n(b[c].value)}return!0}function p(a){return a=_(a).toLowerCase(),""===a||"text/css"===a}function q(a,b){if("style"!==a)return!1;for(var c=0,d=b.length;d>c;c++){var e=b[c].name.toLowerCase();if("type"===e)return p(b[c].value)}return!0}function r(a,b){return fa(a)||"draggable"===a&&!ga(b)}function s(a,b){return/^(?:a|area|link|base)$/.test(b)&&"href"===a||"img"===b&&/^(?:src|longdesc|usemap)$/.test(a)||"object"===b&&/^(?:classid|codebase|data|usemap)$/.test(a)||"q"===b&&"cite"===a||"blockquote"===b&&"cite"===a||("ins"===b||"del"===b)&&"cite"===a||"form"===b&&"action"===a||"input"===b&&("src"===a||"usemap"===a)||"head"===b&&"profile"===a||"script"===b&&("src"===a||"for"===a)}function t(a,b){return/^(?:a|area|object|button)$/.test(b)&&"tabindex"===a||"input"===b&&("maxlength"===a||"tabindex"===a)||"select"===b&&("size"===a||"tabindex"===a)||"textarea"===b&&/^(?:rows|cols|tabindex)$/.test(a)||"colgroup"===b&&"span"===a||"col"===b&&"span"===a||("th"===b||"td"===b)&&("rowspan"===a||"colspan"===a)}function u(a,b){if("link"!==a)return!1;for(var c=0,d=b.length;d>c;c++)if("rel"===b[c].name&&"canonical"===b[c].value)return!0}function v(a,b,c,d,f){if(c&&j(b,d)){if(c=_(c).replace(/^javascript:\s*/i,"").replace(/\s*;$/,""),d.minifyJS){var g=N(ha+c+ia,d.minifyJS);return g.slice(ha.length,-ia.length)}return c}return"class"===b?(c=_(c),c=d.sortClassName?d.sortClassName(c):e(c)):s(b,a)?(c=_(c),d.minifyURLs&&!u(a,f)?M(c,d.minifyURLs):c):t(b,a)?_(c):"style"===b?(c=_(c),c&&/;$/.test(c)&&!/&#?[0-9a-zA-Z]+;$/.test(c)&&(c=c.replace(/\s*;$/,"")),d.minifyCSS?O(c,d.minifyCSS,!0):c):(w(a,f)&&"content"===b?c=c.replace(/\s+/g,"").replace(/[0-9]+\.[0-9]+/g,function(a){return(+a).toString()}):c&&d.customAttrCollapse&&d.customAttrCollapse.test(b)?c=c.replace(/\n+|\r+|\s{2,}/g,""):"script"===a&&"type"===b&&(c=_(c.replace(/\s*;\s*/g,";"))),c)}function w(a,b){if("meta"!==a)return!1;for(var c=0,d=b.length;d>c;c++)if("name"===b[c].name&&"viewport"===b[c].value)return!0}function x(a){return"*{"+a+"}";
-}function y(a){var b=a.match(/^\*\{([\s\S]*)\}$/m);return b&&b[1]?b[1]:a}function z(a,b){return b.processConditionalComments?a.replace(/^(\[if\s[^\]]+\]>)([\s\S]*?)(<!\[endif\])$/,function(a,c,d,e){return c+R(d,b,!0)+e}):a}function A(a,b,c){for(var d=0,e=c.length;e>d;d++)if("type"===c[d].name.toLowerCase()&&b.processScripts.indexOf(c[d].value)>-1)return R(a,b);return a}function B(a,b){switch(a){case"html":case"head":return!0;case"body":return!la(b);case"colgroup":return"col"===b;case"tbody":return"tr"===b}return!1}function C(a,b){switch(b){case"colgroup":return"colgroup"===a;case"tbody":return ta(a)}return!1}function D(a,b){switch(a){case"html":case"head":case"body":case"colgroup":case"caption":return!0;case"li":case"optgroup":case"tr":return b===a;case"dt":case"dd":return ma(b);case"p":return na(b);case"rb":case"rt":case"rp":return pa(b);case"rtc":return qa(b);case"option":return ra(b);case"thead":case"tbody":return sa(b);case"tfoot":return"tbody"===b;case"td":case"th":return ua(b)}return!1}function E(a,b,c){var d=!c||/^\s*$/.test(c);return d?"input"===a&&"value"===b||Aa.test(b):!1}function F(a,b){for(var c=b.length-1;c>=0;c--)if(b[c].name===a)return!0;return!1}function G(a,b){switch(a){case"textarea":return!1;case"audio":case"script":case"video":if(F("src",b))return!1;break;case"iframe":if(F("src",b)||F("srcdoc",b))return!1;break;case"object":if(F("data",b))return!1;break;case"applet":if(F("code",b))return!1}return!0}function H(a){return!/^(?:script|style|pre|textarea)$/.test(a)}function I(a){return!/^(?:pre|textarea)$/.test(a)}function J(a,b,c,d){var e=d.caseSensitive?a.name:a.name.toLowerCase(),f=a.value;return d.decodeEntities&&f&&(f=V(f,{isAttributeValue:!0})),d.removeRedundantAttributes&&m(c,e,f,b)||d.removeScriptTypeAttributes&&"script"===c&&"type"===e&&n(f)||d.removeStyleLinkTypeAttributes&&("style"===c||"link"===c)&&"type"===e&&p(f)||(f=v(c,e,f,d,b),d.removeEmptyAttributes&&E(c,e,f))?void 0:(d.decodeEntities&&f&&(f=f.replace(/&(#?[0-9a-zA-Z]+;)/g,"&amp;$1")),{attr:a,name:e,value:f})}function K(a,b,c,d){var e,f,g=a.name,h=a.value,i=a.attr,j=i.quote;if("undefined"!=typeof h&&!c.removeAttributeQuotes||!k(h)){if(!c.preventAttributesEscaping){if("undefined"==typeof c.quoteCharacter){var l=(h.match(/'/g)||[]).length,m=(h.match(/"/g)||[]).length;j=m>l?"'":'"'}else j="'"===c.quoteCharacter?"'":'"';h='"'===j?h.replace(/"/g,"&#34;"):h.replace(/'/g,"&#39;")}f=j+h+j,d||c.removeTagWhitespace||(f+=" ")}else f=!d||b||/\/$/.test(h)?h+" ":h;return"undefined"==typeof h||c.collapseBooleanAttributes&&r(g.toLowerCase(),h.toLowerCase())?(e=g,d||(e+=" ")):e=g+i.customAssign+f,i.customOpen+e+i.customClose}function L(a){"includeAutoGeneratedTags"in a||(a.includeAutoGeneratedTags=!0);for(var b=["canCollapseWhitespace","canTrimWhitespace"],c=0,d=b.length;d>c;c++)a[b[c]]||(a[b[c]]=function(){return!1});a.minifyURLs&&"object"!=typeof a.minifyURLs&&(a.minifyURLs={}),a.minifyJS&&("object"!=typeof a.minifyJS&&(a.minifyJS={}),a.minifyJS.fromString=!0,(a.minifyJS.output||(a.minifyJS.output={})).inline_script=!0),a.minifyCSS&&("object"!=typeof a.minifyCSS&&(a.minifyCSS={}),"undefined"==typeof a.minifyCSS.advanced&&(a.minifyCSS.advanced=!1))}function M(a,b){try{return X.relate(a,b)}catch(c){return T(c),a}}function N(a,b){var c=a.match(/^\s*<!--.*/),d=c?a.slice(c[0].length).replace(/\n\s*-->\s*$/,""):a;try{return Z.minify(d,b).code}catch(e){return T(e),a}}function O(a,b,c){var d=a.match(/^\s*<!--/),e=d?a.slice(d[0].length).replace(/-->\s*$/,""):a;try{var f=new U(b);return c?y(f.minify(x(e)).styles):f.minify(e).styles}catch(g){return T(g),a}}function P(a){var b;do b=Math.random().toString(36).slice(2);while(~a.indexOf(b));return b}function Q(a,b,c,d){function e(a){return a.map(function(a){return b.caseSensitive?a.name:a.name.toLowerCase()})}function f(a,b){return!b||-1===a.indexOf(b)}function g(a){return f(a,c)&&f(a,d)}function h(a){var c,d;new W(a,{start:function(a,f){i&&(i[a]||(i[a]=new Y),i[a].add(e(f).filter(g)));for(var h=0,k=f.length;k>h;h++){var l=f[h];j&&"class"===(b.caseSensitive?l.name:l.name.toLowerCase())?j.add(_(l.value).split(/\s+/).filter(g)):b.processScripts&&"type"===l.name.toLowerCase()&&(c=a,d=l.value)}},end:function(){c=""},chars:function(a){b.processScripts&&Ba(c)&&b.processScripts.indexOf(d)>-1&&h(a)}})}var i=b.sortAttributes&&Object.create(null),j=b.sortClassName&&new Y;if(b.sortAttributes=!1,b.sortClassName=!1,h(R(a,b)),i){var k=Object.create(null);for(var l in i)k[l]=i[l].createSorter();b.sortAttributes=function(a,b){var c=k[a];if(c){var d=Object.create(null),f=e(b);f.forEach(function(a,c){(d[a]||(d[a]=[])).push(b[c])}),c.sort(f).forEach(function(a,c){b[c]=d[a].shift()})}}}if(j){var m=j.createSorter();b.sortClassName=function(a){return m.sort(a.split(/\s+/)).join(" ")}}}function R(a,b,c){function d(a,c){return H(a)||b.canCollapseWhitespace(a,c)}function j(a,c){return I(a)||b.canTrimWhitespace(a,c)}function k(){for(var a=u.length-1;a>0&&!/^<[^\/!]/.test(u[a]);)a--;u.length=Math.max(0,a)}function l(){for(var a=u.length-1;a>0&&!/^<\//.test(u[a]);)a--;u.length=Math.max(0,a)}function m(a){var c;u.length>1&&/^(?:<!|$)/.test(u[u.length-1])&&/\s$/.test(u[u.length-2])?c=u.length-2:u.length>0&&/\s$/.test(u[u.length-1])&&(c=u.length-1),c>0&&(u[c]=u[c].replace(/\s+$/,function(c){return g(c,"comment",a,b)}))}b=b||{};var n=[];L(b),a=b.collapseWhitespace?_(a):a;var p,r,s,t,u=[],v="",w="",x=[],y=[],E=[],F="",M="",R=b.lint,U=Date.now(),X=[],Y=[];a=a.replace(/<!-- htmlmin:ignore -->([\s\S]*?)<!-- htmlmin:ignore -->/g,function(b,c){s||(s=P(a));var d="<!--!"+s+X.length+"-->";return X.push(c),d});var Z=(b.ignoreCustomFragments||[/<%[\s\S]*?%>/,/<\?[\s\S]*?\?>/]).map(function(a){return a.source});if(Z.length){var $=new RegExp("\\s*(?:"+Z.join("|")+")+\\s*","g");a=a.replace($,function(b){t||(t=P(a));var c=t+Y.length;return Y.push(b),"     "+c+"   "})}(b.sortAttributes&&"function"!=typeof b.sortAttributes||b.sortClassName&&"function"!=typeof b.sortClassName)&&(Q(a,b,s,t),R=null),new W(a,{partialMarkup:c,html5:"undefined"==typeof b.html5?!0:b.html5,start:function(a,c,e,f,g){var h=a.toLowerCase();if("svg"===h){n.push(b);var i={};for(var o in b)i[o]=b[o];i.keepClosingSlash=!0,i.caseSensitive=!0,b=i}a=b.caseSensitive?a:h,w=a,p=a,ca(a)||(v=""),r=!1,x=c;var q=b.removeOptionalTags;if(q){var s=za(a);s&&B(F,a)&&k(),F="",s&&D(M,a)&&(l(),q=!C(M,a)),M=""}b.collapseWhitespace&&(y.length||m(a),j(a,c)||y.push(a),d(a,c)||E.push(a));var t="<"+a,z=f&&b.keepClosingSlash;u.push(t),R&&R.testElement(a),b.sortAttributes&&b.sortAttributes(a,c);for(var A=[],G=c.length,H=!0;--G>=0;){var I=c[G];R&&R.testAttribute(a,I.name.toLowerCase(),I.value);var L=J(I,c,a,b);L&&(A.unshift(K(L,z,b,H)),H=!1)}A.length>0?(u.push(" "),u.push.apply(u,A)):q&&ja(a)&&(F=a),u.push(u.pop()+(z?"/":"")+">"),g&&!b.includeAutoGeneratedTags&&k()},end:function(a,c,d){var e=a.toLowerCase();"svg"===e&&(b=n.pop()),a=b.caseSensitive?a:e,b.collapseWhitespace&&(y.length?a===y[y.length-1]&&y.pop():m("/"+a),E.length&&a===E[E.length-1]&&E.pop());var f=!1;a===w&&(w="",f=!r),b.removeOptionalTags&&(f&&va(F)&&k(),F="",!za(a)||!M||ya(M)||"p"===M&&oa(a)||l(),M=ka(a)?a:""),b.removeEmptyElements&&f&&G(a,c)?(k(),F="",M=""):(!b.includeAutoGeneratedTags&&d||u.push("</"+a+">"),p="/"+a,ba(a)?f&&(v+="|"):v="")},chars:function(a,c,d){if(c=""===c?"comment":c,d=""===d?"comment":d,b.decodeEntities&&a&&!Ba(w)&&(a=V(a)),b.collapseWhitespace){if(!y.length){if("comment"===c){var h=""===u[u.length-1];if(h&&(c=p),u.length>1&&(h||/ $/.test(v))){var i=u.length-2;u[i]=u[i].replace(/\s+$/,function(b){return a=b+a,""})}}if(c&&ca("/"===c.charAt(0)?c.slice(1):c)&&(a=f(a,b,/(?:^|\s)$/.test(v))),a=c||d?g(a,c,d,b):_(a),!a&&/\s$/.test(v)&&c&&"/"===c.charAt(0))for(var m=u.length-2,n=c.slice(1);m>=0&&j(n);m--){var s=u[m],t=s.match(/^<\/([\w:-]+)>$/);if(t)n=t[1];else if(/>$/.test(s)||(u[m]=g(s,null,d,b)))break}}E.length||(a=c&&d||"html"===d?a:e(a))}b.processScripts&&Ba(w)&&(a=A(a,b,x)),b.minifyJS&&o(w,x)&&(a=N(a,b.minifyJS),/;$/.test(a)&&(a=a.slice(0,-1))),b.minifyCSS&&q(w,x)&&(a=O(a,b.minifyCSS)),b.removeOptionalTags&&a&&(("html"===F||"body"===F&&!/^\s/.test(a))&&k(),F="",(wa(M)||xa(M)&&!/^\s/.test(a))&&l(),M=""),p=/^\s*$/.test(a)?c:"comment",b.decodeEntities&&a&&!Ba(w)&&(a=a.replace(/&(#?[0-9a-zA-Z]+;)/g,"&amp$1").replace(/</g,"&lt;")),v+=a,a&&(r=!0),R&&R.testChars(a),u.push(a)},comment:function(a,c){var d=c?"<!":"<!--",e=c?">":"-->";a=h(a)?d+z(a,b)+e:b.removeComments?i(a,b)?"<!--"+a+"-->":"":d+a+e,b.removeOptionalTags&&a&&(F="",M=""),u.push(a)},doctype:function(a){R&&R.testDoctype(a),u.push(b.useShortDoctype?"<!DOCTYPE html>":e(a))},customAttrAssign:b.customAttrAssign,customAttrSurround:b.customAttrSurround}),b.removeOptionalTags&&(va(F)&&k(),M&&!ya(M)&&l());var aa=S(u,b);return t&&(aa=aa.replace(new RegExp("(\\s*)"+t+"([0-9]+)(\\s*)","g"),function(a,c,d,e){var g=Y[+d];return b.collapseWhitespace?("      "!==c&&(g=c+g),"        "!==e&&(g+=e),f(g,{preserveLineBreaks:b.preserveLineBreaks,conservativeCollapse:!0},/^\s/.test(g),/\s$/.test(g))):g})),s&&(aa=aa.replace(new RegExp("<!--!"+s+"([0-9]+)-->","g"),function(a,b){return X[+b]})),T("minified in: "+(Date.now()-U)+"ms"),aa}function S(a,b){var c,d=b.maxLineLength;if(d){for(var e,f=[],g="",h=0,i=a.length;i>h;h++)e=a[h],g.length+e.length<d?g+=e:(f.push(g.replace(/^\n/,"")),g=e);f.push(g),c=f.join("\n")}else c=a.join("");return b.collapseWhitespace?_(c):c}var T,U=a("clean-css"),V=a("he").decode,W=a("./htmlparser").HTMLParser,X=a("relateurl"),Y=a("./tokenchain"),Z=a("uglify-js"),$=a("./utils");T="undefined"!=typeof window&&"undefined"!=typeof console&&"function"==typeof console.log?function(a){console.log(a)}:function(){};var _=String.prototype.trim?function(a){return"string"!=typeof a?a:a.trim()}:function(a){return"string"!=typeof a?a:a.replace(/^\s+/,"").replace(/\s+$/,"")},aa=$.createMapFromString,ba=aa("a,abbr,acronym,b,bdi,bdo,big,button,cite,code,del,dfn,em,font,i,ins,kbd,mark,math,q,rt,rp,s,samp,small,span,strike,strong,sub,sup,svg,time,tt,u,var"),ca=aa("a,abbr,acronym,b,big,del,em,font,i,ins,kbd,mark,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var"),da=aa("comment,img,input"),ea=$.createMap(["text/javascript","text/ecmascript","text/jscript","application/javascript","application/x-javascript","application/ecmascript"]),fa=aa("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),ga=aa("true,false"),ha="!function(){",ia="}();",ja=aa("html,head,body,colgroup,tbody"),ka=aa("html,head,body,li,dt,dd,p,rb,rt,rtc,rp,optgroup,option,colgroup,caption,thead,tbody,tfoot,tr,td,th"),la=aa("meta,link,script,style,template,noscript"),ma=aa("dt,dd"),na=aa("address,article,aside,blockquote,details,div,dl,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,main,menu,nav,ol,p,pre,section,table,ul"),oa=aa("a,audio,del,ins,map,noscript,video"),pa=aa("rb,rt,rtc,rp"),qa=aa("rb,rtc,rp"),ra=aa("option,optgroup"),sa=aa("tbody,tfoot"),ta=aa("thead,tbody,tfoot"),ua=aa("td,th"),va=aa("html,head,body"),wa=aa("html,body"),xa=aa("head,colgroup,caption"),ya=aa("dt,thead"),za=aa("a,abbr,acronym,address,applet,area,article,aside,audio,b,base,basefont,bdi,bdo,bgsound,big,blink,blockquote,body,br,button,canvas,caption,center,cite,code,col,colgroup,command,content,data,datalist,dd,del,details,dfn,dialog,dir,div,dl,dt,element,em,embed,fieldset,figcaption,figure,font,footer,form,frame,frameset,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,i,iframe,image,img,input,ins,isindex,kbd,keygen,label,legend,li,link,listing,main,map,mark,marquee,menu,menuitem,meta,meter,multicol,nav,nobr,noembed,noframes,noscript,object,ol,optgroup,option,output,p,param,picture,plaintext,pre,progress,q,rp,rt,rtc,ruby,s,samp,script,section,select,shadow,small,source,spacer,span,strike,strong,style,sub,summary,sup,table,tbody,td,template,textarea,tfoot,th,thead,time,title,tr,track,tt,u,ul,var,video,wbr,xmp"),Aa=new RegExp("^(?:class|id|style|title|lang|dir|on(?:focus|blur|change|click|dblclick|mouse(?:down|up|over|move|out)|key(?:press|down|up)))$"),Ba=aa("script,style");c.minify=function(a,b){return R(a,b)}},{"./htmlparser":148,"./tokenchain":149,"./utils":150,"clean-css":7,he:69,relateurl:96,"uglify-js":140}]},{},["html-minifier"]);
\ No newline at end of file
+h=h.split(R).join(S)}}var T=h.indexOf("#");-1!==T&&(this.hash=h.substr(T),h=h.slice(0,T));var U=h.indexOf("?");if(-1!==U?(this.search=h.substr(U),this.query=h.substr(U+1),b&&(this.query=y.parse(this.query)),h=h.slice(0,U)):b&&(this.search="",this.query={}),h&&(this.pathname=h),x[o]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){var P=this.pathname||"",V=this.search||"";this.path=P+V}return this.href=this.format(),this},d.prototype.format=function(){var a=this.auth||"";a&&(a=encodeURIComponent(a),a=a.replace(/%3A/i,":"),a+="@");var b=this.protocol||"",c=this.pathname||"",d=this.hash||"",e=!1,f="";this.host?e=a+this.host:this.hostname&&(e=a+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(e+=":"+this.port)),this.query&&j.isObject(this.query)&&Object.keys(this.query).length&&(f=y.stringify(this.query));var g=this.search||f&&"?"+f||"";return b&&":"!==b.substr(-1)&&(b+=":"),this.slashes||(!b||x[b])&&e!==!1?(e="//"+(e||""),c&&"/"!==c.charAt(0)&&(c="/"+c)):e||(e=""),d&&"#"!==d.charAt(0)&&(d="#"+d),g&&"?"!==g.charAt(0)&&(g="?"+g),c=c.replace(/[?#]/g,function(a){return encodeURIComponent(a)}),g=g.replace("#","%23"),b+e+c+g+d},d.prototype.resolve=function(a){return this.resolveObject(e(a,!1,!0)).format()},d.prototype.resolveObject=function(a){if(j.isString(a)){var b=new d;b.parse(a,!1,!0),a=b}for(var c=new d,e=Object.keys(this),f=0;f<e.length;f++){var g=e[f];c[g]=this[g]}if(c.hash=a.hash,""===a.href)return c.href=c.format(),c;if(a.slashes&&!a.protocol){for(var h=Object.keys(a),i=0;i<h.length;i++){var k=h[i];"protocol"!==k&&(c[k]=a[k])}return x[c.protocol]&&c.hostname&&!c.pathname&&(c.path=c.pathname="/"),c.href=c.format(),c}if(a.protocol&&a.protocol!==c.protocol){if(!x[a.protocol]){for(var l=Object.keys(a),m=0;m<l.length;m++){var n=l[m];c[n]=a[n]}return c.href=c.format(),c}if(c.protocol=a.protocol,a.host||w[a.protocol])c.pathname=a.pathname;else{for(var o=(a.pathname||"").split("/");o.length&&!(a.host=o.shift()););a.host||(a.host=""),a.hostname||(a.hostname=""),""!==o[0]&&o.unshift(""),o.length<2&&o.unshift(""),c.pathname=o.join("/")}if(c.search=a.search,c.query=a.query,c.host=a.host||"",c.auth=a.auth,c.hostname=a.hostname||a.host,c.port=a.port,c.pathname||c.search){var p=c.pathname||"",q=c.search||"";c.path=p+q}return c.slashes=c.slashes||a.slashes,c.href=c.format(),c}var r=c.pathname&&"/"===c.pathname.charAt(0),s=a.host||a.pathname&&"/"===a.pathname.charAt(0),t=s||r||c.host&&a.pathname,u=t,v=c.pathname&&c.pathname.split("/")||[],o=a.pathname&&a.pathname.split("/")||[],y=c.protocol&&!x[c.protocol];if(y&&(c.hostname="",c.port=null,c.host&&(""===v[0]?v[0]=c.host:v.unshift(c.host)),c.host="",a.protocol&&(a.hostname=null,a.port=null,a.host&&(""===o[0]?o[0]=a.host:o.unshift(a.host)),a.host=null),t=t&&(""===o[0]||""===v[0])),s)c.host=a.host||""===a.host?a.host:c.host,c.hostname=a.hostname||""===a.hostname?a.hostname:c.hostname,c.search=a.search,c.query=a.query,v=o;else if(o.length)v||(v=[]),v.pop(),v=v.concat(o),c.search=a.search,c.query=a.query;else if(!j.isNullOrUndefined(a.search)){if(y){c.hostname=c.host=v.shift();var z=c.host&&c.host.indexOf("@")>0?c.host.split("@"):!1;z&&(c.auth=z.shift(),c.host=c.hostname=z.shift())}return c.search=a.search,c.query=a.query,j.isNull(c.pathname)&&j.isNull(c.search)||(c.path=(c.pathname?c.pathname:"")+(c.search?c.search:"")),c.href=c.format(),c}if(!v.length)return c.pathname=null,c.search?c.path="/"+c.search:c.path=null,c.href=c.format(),c;for(var A=v.slice(-1)[0],B=(c.host||a.host||v.length>1)&&("."===A||".."===A)||""===A,C=0,D=v.length;D>=0;D--)A=v[D],"."===A?v.splice(D,1):".."===A?(v.splice(D,1),C++):C&&(v.splice(D,1),C--);if(!t&&!u)for(;C--;C)v.unshift("..");!t||""===v[0]||v[0]&&"/"===v[0].charAt(0)||v.unshift(""),B&&"/"!==v.join("/").substr(-1)&&v.push("");var E=""===v[0]||v[0]&&"/"===v[0].charAt(0);if(y){c.hostname=c.host=E?"":v.length?v.shift():"";var z=c.host&&c.host.indexOf("@")>0?c.host.split("@"):!1;z&&(c.auth=z.shift(),c.host=c.hostname=z.shift())}return t=t||c.host&&v.length,t&&!E&&v.unshift(""),v.length?c.pathname=v.join("/"):(c.pathname=null,c.path=null),j.isNull(c.pathname)&&j.isNull(c.search)||(c.path=(c.pathname?c.pathname:"")+(c.search?c.search:"")),c.auth=a.auth||c.auth,c.slashes=c.slashes||a.slashes,c.href=c.format(),c},d.prototype.parseHost=function(){var a=this.host,b=l.exec(a);b&&(b=b[0],":"!==b&&(this.port=b.substr(1)),a=a.substr(0,a.length-b.length)),a&&(this.hostname=a)}},{"./util":142,punycode:91,querystring:94}],142:[function(a,b,c){"use strict";b.exports={isString:function(a){return"string"==typeof a},isObject:function(a){return"object"==typeof a&&null!==a},isNull:function(a){return null===a},isNullOrUndefined:function(a){return null==a}}},{}],143:[function(a,b,c){(function(a){function c(a,b){function c(){if(!e){if(d("throwDeprecation"))throw new Error(b);d("traceDeprecation")?console.trace(b):console.warn(b),e=!0}return a.apply(this,arguments)}if(d("noDeprecation"))return a;var e=!1;return c}function d(b){try{if(!a.localStorage)return!1}catch(c){return!1}var d=a.localStorage[b];return null==d?!1:"true"===String(d).toLowerCase()}b.exports=c}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],144:[function(a,b,c){b.exports=function(a){return a&&"object"==typeof a&&"function"==typeof a.copy&&"function"==typeof a.fill&&"function"==typeof a.readUInt8}},{}],145:[function(a,b,c){(function(b,d){function e(a,b){var d={seen:[],stylize:g};return arguments.length>=3&&(d.depth=arguments[2]),arguments.length>=4&&(d.colors=arguments[3]),p(b)?d.showHidden=b:b&&c._extend(d,b),v(d.showHidden)&&(d.showHidden=!1),v(d.depth)&&(d.depth=2),v(d.colors)&&(d.colors=!1),v(d.customInspect)&&(d.customInspect=!0),d.colors&&(d.stylize=f),i(d,a,d.depth)}function f(a,b){var c=e.styles[b];return c?"\e["+e.colors[c][0]+"m"+a+"\e["+e.colors[c][1]+"m":a}function g(a,b){return a}function h(a){var b={};return a.forEach(function(a,c){b[a]=!0}),b}function i(a,b,d){if(a.customInspect&&b&&A(b.inspect)&&b.inspect!==c.inspect&&(!b.constructor||b.constructor.prototype!==b)){var e=b.inspect(d,a);return t(e)||(e=i(a,e,d)),e}var f=j(a,b);if(f)return f;var g=Object.keys(b),p=h(g);if(a.showHidden&&(g=Object.getOwnPropertyNames(b)),z(b)&&(g.indexOf("message")>=0||g.indexOf("description")>=0))return k(b);if(0===g.length){if(A(b)){var q=b.name?": "+b.name:"";return a.stylize("[Function"+q+"]","special")}if(w(b))return a.stylize(RegExp.prototype.toString.call(b),"regexp");if(y(b))return a.stylize(Date.prototype.toString.call(b),"date");if(z(b))return k(b)}var r="",s=!1,u=["{","}"];if(o(b)&&(s=!0,u=["[","]"]),A(b)){var v=b.name?": "+b.name:"";r=" [Function"+v+"]"}if(w(b)&&(r=" "+RegExp.prototype.toString.call(b)),y(b)&&(r=" "+Date.prototype.toUTCString.call(b)),z(b)&&(r=" "+k(b)),0===g.length&&(!s||0==b.length))return u[0]+r+u[1];if(0>d)return w(b)?a.stylize(RegExp.prototype.toString.call(b),"regexp"):a.stylize("[Object]","special");a.seen.push(b);var x;return x=s?l(a,b,d,p,g):g.map(function(c){return m(a,b,d,p,c,s)}),a.seen.pop(),n(x,r,u)}function j(a,b){if(v(b))return a.stylize("undefined","undefined");if(t(b)){var c="'"+JSON.stringify(b).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return a.stylize(c,"string")}return s(b)?a.stylize(""+b,"number"):p(b)?a.stylize(""+b,"boolean"):q(b)?a.stylize("null","null"):void 0}function k(a){return"["+Error.prototype.toString.call(a)+"]"}function l(a,b,c,d,e){for(var f=[],g=0,h=b.length;h>g;++g)F(b,String(g))?f.push(m(a,b,c,d,String(g),!0)):f.push("");return e.forEach(function(e){e.match(/^\d+$/)||f.push(m(a,b,c,d,e,!0))}),f}function m(a,b,c,d,e,f){var g,h,j;if(j=Object.getOwnPropertyDescriptor(b,e)||{value:b[e]},j.get?h=j.set?a.stylize("[Getter/Setter]","special"):a.stylize("[Getter]","special"):j.set&&(h=a.stylize("[Setter]","special")),F(d,e)||(g="["+e+"]"),h||(a.seen.indexOf(j.value)<0?(h=q(c)?i(a,j.value,null):i(a,j.value,c-1),h.indexOf("\n")>-1&&(h=f?h.split("\n").map(function(a){return"  "+a}).join("\n").substr(2):"\n"+h.split("\n").map(function(a){return"   "+a}).join("\n"))):h=a.stylize("[Circular]","special")),v(g)){if(f&&e.match(/^\d+$/))return h;g=JSON.stringify(""+e),g.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(g=g.substr(1,g.length-2),g=a.stylize(g,"name")):(g=g.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),g=a.stylize(g,"string"))}return g+": "+h}function n(a,b,c){var d=0,e=a.reduce(function(a,b){return d++,b.indexOf("\n")>=0&&d++,a+b.replace(/\u001b\[\d\d?m/g,"").length+1},0);return e>60?c[0]+(""===b?"":b+"\n ")+" "+a.join(",\n  ")+" "+c[1]:c[0]+b+" "+a.join(", ")+" "+c[1]}function o(a){return Array.isArray(a)}function p(a){return"boolean"==typeof a}function q(a){return null===a}function r(a){return null==a}function s(a){return"number"==typeof a}function t(a){return"string"==typeof a}function u(a){return"symbol"==typeof a}function v(a){return void 0===a}function w(a){return x(a)&&"[object RegExp]"===C(a)}function x(a){return"object"==typeof a&&null!==a}function y(a){return x(a)&&"[object Date]"===C(a)}function z(a){return x(a)&&("[object Error]"===C(a)||a instanceof Error)}function A(a){return"function"==typeof a}function B(a){return null===a||"boolean"==typeof a||"number"==typeof a||"string"==typeof a||"symbol"==typeof a||"undefined"==typeof a}function C(a){return Object.prototype.toString.call(a)}function D(a){return 10>a?"0"+a.toString(10):a.toString(10)}function E(){var a=new Date,b=[D(a.getHours()),D(a.getMinutes()),D(a.getSeconds())].join(":");return[a.getDate(),J[a.getMonth()],b].join(" ")}function F(a,b){return Object.prototype.hasOwnProperty.call(a,b)}var G=/%[sdj%]/g;c.format=function(a){if(!t(a)){for(var b=[],c=0;c<arguments.length;c++)b.push(e(arguments[c]));return b.join(" ")}for(var c=1,d=arguments,f=d.length,g=String(a).replace(G,function(a){if("%%"===a)return"%";if(c>=f)return a;switch(a){case"%s":return String(d[c++]);case"%d":return Number(d[c++]);case"%j":try{return JSON.stringify(d[c++])}catch(b){return"[Circular]"}default:return a}}),h=d[c];f>c;h=d[++c])g+=q(h)||!x(h)?" "+h:" "+e(h);return g},c.deprecate=function(a,e){function f(){if(!g){if(b.throwDeprecation)throw new Error(e);b.traceDeprecation?console.trace(e):console.error(e),g=!0}return a.apply(this,arguments)}if(v(d.process))return function(){return c.deprecate(a,e).apply(this,arguments)};if(b.noDeprecation===!0)return a;var g=!1;return f};var H,I={};c.debuglog=function(a){if(v(H)&&(H=b.env.NODE_DEBUG||""),a=a.toUpperCase(),!I[a])if(new RegExp("\\b"+a+"\\b","i").test(H)){var d=b.pid;I[a]=function(){var b=c.format.apply(c,arguments);console.error("%s %d: %s",a,d,b)}}else I[a]=function(){};return I[a]},c.inspect=e,e.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]},e.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},c.isArray=o,c.isBoolean=p,c.isNull=q,c.isNullOrUndefined=r,c.isNumber=s,c.isString=t,c.isSymbol=u,c.isUndefined=v,c.isRegExp=w,c.isObject=x,c.isDate=y,c.isError=z,c.isFunction=A,c.isPrimitive=B,c.isBuffer=a("./support/isBuffer");var J=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];c.log=function(){console.log("%s - %s",E(),c.format.apply(c,arguments))},c.inherits=a("inherits"),c._extend=function(a,b){if(!b||!x(b))return a;for(var c=Object.keys(b),d=c.length;d--;)a[c[d]]=b[c[d]];return a}}).call(this,a("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":144,_process:90,inherits:83}],146:[function(a,b,c){c.baseChar=/[A-Za-z\xC0-\xD6\xD8-\xF6\xF8-\u0131\u0134-\u013E\u0141-\u0148\u014A-\u017E\u0180-\u01C3\u01CD-\u01F0\u01F4\u01F5\u01FA-\u0217\u0250-\u02A8\u02BB-\u02C1\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03CE\u03D0-\u03D6\u03DA\u03DC\u03DE\u03E0\u03E2-\u03F3\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E-\u0481\u0490-\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0-\u04EB\u04EE-\u04F5\u04F8\u04F9\u0531-\u0556\u0559\u0561-\u0586\u05D0-\u05EA\u05F0-\u05F2\u0621-\u063A\u0641-\u064A\u0671-\u06B7\u06BA-\u06BE\u06C0-\u06CE\u06D0-\u06D3\u06D5\u06E5\u06E6\u0905-\u0939\u093D\u0958-\u0961\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\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-\u0A8B\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AE0\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B36-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB5\u0BB7-\u0BB9\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CDE\u0CE0\u0CE1\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D60\u0D61\u0E01-\u0E2E\u0E30\u0E32\u0E33\u0E40-\u0E45\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0F40-\u0F47\u0F49-\u0F69\u10A0-\u10C5\u10D0-\u10F6\u1100\u1102\u1103\u1105-\u1107\u1109\u110B\u110C\u110E-\u1112\u113C\u113E\u1140\u114C\u114E\u1150\u1154\u1155\u1159\u115F-\u1161\u1163\u1165\u1167\u1169\u116D\u116E\u1172\u1173\u1175\u119E\u11A8\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BC-\u11C2\u11EB\u11F0\u11F9\u1E00-\u1E9B\u1EA0-\u1EF9\u1F00-\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\u2126\u212A\u212B\u212E\u2180-\u2182\u3041-\u3094\u30A1-\u30FA\u3105-\u312C\uAC00-\uD7A3]/,c.ideographic=/[\u3007\u3021-\u3029\u4E00-\u9FA5]/,c.letter=/[A-Za-z\xC0-\xD6\xD8-\xF6\xF8-\u0131\u0134-\u013E\u0141-\u0148\u014A-\u017E\u0180-\u01C3\u01CD-\u01F0\u01F4\u01F5\u01FA-\u0217\u0250-\u02A8\u02BB-\u02C1\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03CE\u03D0-\u03D6\u03DA\u03DC\u03DE\u03E0\u03E2-\u03F3\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E-\u0481\u0490-\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0-\u04EB\u04EE-\u04F5\u04F8\u04F9\u0531-\u0556\u0559\u0561-\u0586\u05D0-\u05EA\u05F0-\u05F2\u0621-\u063A\u0641-\u064A\u0671-\u06B7\u06BA-\u06BE\u06C0-\u06CE\u06D0-\u06D3\u06D5\u06E5\u06E6\u0905-\u0939\u093D\u0958-\u0961\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\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-\u0A8B\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AE0\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B36-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB5\u0BB7-\u0BB9\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CDE\u0CE0\u0CE1\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D60\u0D61\u0E01-\u0E2E\u0E30\u0E32\u0E33\u0E40-\u0E45\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0F40-\u0F47\u0F49-\u0F69\u10A0-\u10C5\u10D0-\u10F6\u1100\u1102\u1103\u1105-\u1107\u1109\u110B\u110C\u110E-\u1112\u113C\u113E\u1140\u114C\u114E\u1150\u1154\u1155\u1159\u115F-\u1161\u1163\u1165\u1167\u1169\u116D\u116E\u1172\u1173\u1175\u119E\u11A8\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BC-\u11C2\u11EB\u11F0\u11F9\u1E00-\u1E9B\u1EA0-\u1EF9\u1F00-\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\u2126\u212A\u212B\u212E\u2180-\u2182\u3007\u3021-\u3029\u3041-\u3094\u30A1-\u30FA\u3105-\u312C\u4E00-\u9FA5\uAC00-\uD7A3]/,c.combiningChar=/[\u0300-\u0345\u0360\u0361\u0483-\u0486\u0591-\u05A1\u05A3-\u05B9\u05BB-\u05BD\u05BF\u05C1\u05C2\u05C4\u064B-\u0652\u0670\u06D6-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0901-\u0903\u093C\u093E-\u094D\u0951-\u0954\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A02\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A70\u0A71\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0B01-\u0B03\u0B3C\u0B3E-\u0B43\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B82\u0B83\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C01-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C82\u0C83\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0D02\u0D03\u0D3E-\u0D43\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86-\u0F8B\u0F90-\u0F95\u0F97\u0F99-\u0FAD\u0FB1-\u0FB7\u0FB9\u20D0-\u20DC\u20E1\u302A-\u302F\u3099\u309A]/,c.digit=/[0-9\u0660-\u0669\u06F0-\u06F9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE7-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29]/,c.extender=/[\xB7\u02D0\u02D1\u0387\u0640\u0E46\u0EC6\u3005\u3031-\u3035\u309D\u309E\u30FC-\u30FE]/},{}],147:[function(a,b,c){function d(){for(var a={},b=0;b<arguments.length;b++){var c=arguments[b];for(var d in c)e.call(c,d)&&(a[d]=c[d])}return a}b.exports=d;var e=Object.prototype.hasOwnProperty},{}],148:[function(a,b,c){"use strict";function d(a){return h(a,!0)}function e(a){var b=i.source+"(?:\\s*("+f(a)+")\\s*(?:"+l.join("|")+"))?";if(a.customAttrSurround){for(var c=[],d=a.customAttrSurround.length-1;d>=0;d--)c[d]="(?:("+a.customAttrSurround[d][0].source+")\\s*"+b+"\\s*("+a.customAttrSurround[d][1].source+"))";c.push("(?:"+b+")"),b="(?:"+c.join("|")+")"}return new RegExp("^\\s*"+b)}function f(a){return k.concat(a.customAttrAssign||[]).map(function(a){return"(?:"+a.source+")"}).join("|")}function g(a,b){function c(a){var b=a.match(n);if(b){var c={tagName:b[1],attrs:[]};a=a.slice(b[0].length);for(var d,e;!(d=a.match(o))&&(e=a.match(l));)a=a.slice(e[0].length),c.attrs.push(e);if(d)return c.unarySlash=d[1],c.rest=a.slice(d[0].length),c}}function d(a){var c=a.tagName,d=a.unarySlash;if(b.html5&&"p"===g&&x(c)&&f("",g),!b.html5)for(;g&&t(g);)f("",g);u(c)&&g===c&&f("",c);var e=s(c)||"html"===c&&"head"===g||!!d,h=a.attrs.map(function(a){function c(b){return h=a[b],e=a[b+1],"undefined"!=typeof e?'"':(e=a[b+2],"undefined"!=typeof e?"'":(e=a[b+3],"undefined"==typeof e&&v(d)&&(e=d),""))}var d,e,f,g,h,i,j=7;r&&-1===a[0].indexOf('""')&&(""===a[3]&&delete a[3],""===a[4]&&delete a[4],""===a[5]&&delete a[5]);var k=1;if(b.customAttrSurround)for(var l=0,m=b.customAttrSurround.length;m>l;l++,k+=j)if(d=a[k+1]){i=c(k+2),f=a[k],g=a[k+6];break}return!d&&(d=a[k])&&(i=c(k+1)),{name:d,value:e,customAssign:h||"=",customOpen:f||"",customClose:g||"",quote:i||""}});e||(k.push({tag:c,attrs:h}),g=c,d=""),b.start&&b.start(c,h,e,d)}function f(a,c){var d;if(c){var e=c.toLowerCase();for(d=k.length-1;d>=0&&k[d].tag.toLowerCase()!==e;d--);}else d=0;if(d>=0){for(var f=k.length-1;f>=d;f--)b.end&&b.end(k[f].tag,k[f].attrs,f>d||!a);k.length=d,g=d&&k[d-1].tag}else"br"===c.toLowerCase()?b.start&&b.start(c,[],!0,""):"p"===c.toLowerCase()&&(b.start&&b.start(c,[],!1,"",!0),b.end&&b.end(c,[]))}for(var g,h,i,j,k=[],l=e(b);a;){if(h=a,g&&w(g)){var m=g.toLowerCase(),z=y[m]||(y[m]=new RegExp("([\\s\\S]*?)</"+m+"[^>]*>","i"));a=a.replace(z,function(a,c){return"script"!==m&&"style"!==m&&"noscript"!==m&&(c=c.replace(/<!--([\s\S]*?)-->/g,"$1").replace(/<!\[CDATA\[([\s\S]*?)\]\]>/g,"$1")),b.chars&&b.chars(c),""}),f("</"+m+">",m)}else{var A=a.indexOf("<");if(0===A){if(/^<!--/.test(a)){var B=a.indexOf("-->");if(B>=0){b.comment&&b.comment(a.substring(4,B)),a=a.substring(B+3),i="";continue}}if(/^<!\[/.test(a)){var C=a.indexOf("]>");if(C>=0){b.comment&&b.comment(a.substring(2,C+1),!0),a=a.substring(C+2),i="";continue}}var D=a.match(q);if(D){b.doctype&&b.doctype(D[0]),a=a.substring(D[0].length),i="";continue}var E=a.match(p);if(E){a=a.substring(E[0].length),E[0].replace(p,f),i="/"+E[1].toLowerCase();continue}var F=c(a);if(F){a=F.rest,d(F),i=F.tagName.toLowerCase();continue}}var G;A>=0?(G=a.substring(0,A),a=a.substring(A)):(G=a,a="");var H=c(a);H?j=H.tagName:(H=a.match(p),j=H?"/"+H[1]:""),b.chars&&b.chars(G,i,j),i=""}if(a===h)throw new Error("Parse Error: "+a)}b.partialMarkup||f()}var h=a("./utils").createMapFromString,i=/([^\s"'<>\/=]+)/,j=/=/,k=[j],l=[/"([^"]*)"+/.source,/'([^']*)'+/.source,/([^\s"'=<>`]+)/.source],m=function(){var b=a("ncname").source.slice(1,-1);return"((?:"+b+"\\:)?"+b+")"}(),n=new RegExp("^<"+m),o=/^\s*(\/?)>/,p=new RegExp("^<\\/"+m+"[^>]*>"),q=/^<!DOCTYPE [^>]+>/i,r=!1;"x".replace(/x(.)?/g,function(a,b){r=""===b});var s=d("area,base,basefont,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),t=d("a,abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,noscript,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,svg,textarea,tt,u,var"),u=d("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),v=d("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected"),w=d("script,style"),x=d("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),y={};c.HTMLParser=g,c.HTMLtoXML=function(a){var b="";return new g(a,{start:function(a,c,d){b+="<"+a;for(var e=0,f=c.length;f>e;e++)b+=" "+c[e].name+'="'+(c[e].value||"").replace(/"/g,"&#34;")+'"';b+=(d?"/":"")+">"},end:function(a){b+="</"+a+">"},chars:function(a){b+=a},comment:function(a){b+="<!--"+a+"-->"},ignore:function(a){b+=a}}),b},c.HTMLtoDOM=function(a,b){var c={html:!0,head:!0,body:!0,title:!0},d={link:"head",base:"head"};b?b=b.ownerDocument||b.getOwnerDocument&&b.getOwnerDocument()||b:"undefined"!=typeof DOMDocument?b=new DOMDocument:"undefined"!=typeof document&&document.implementation&&document.implementation.createDocument?b=document.implementation.createDocument("","",null):"undefined"!=typeof ActiveX&&(b=new ActiveXObject("Msxml.DOMDocument"));var e=[],f=b.documentElement||b.getDocumentElement&&b.getDocumentElement();if(!f&&b.createElement&&!function(){var a=b.createElement("html"),c=b.createElement("head");c.appendChild(b.createElement("title")),a.appendChild(c),a.appendChild(b.createElement("body")),b.appendChild(a)}(),b.getElementsByTagName)for(var h in c)c[h]=b.getElementsByTagName(h)[0];var i=c.body;return new g(a,{start:function(a,f,g){if(c[a])return void(i=c[a]);var h=b.createElement(a);for(var j in f)h.setAttribute(f[j].name,f[j].value);d[a]&&"boolean"!=typeof c[d[a]]?c[d[a]].appendChild(h):i&&i.appendChild&&i.appendChild(h),g||(e.push(h),i=h)},end:function(){e.length-=1,i=e[e.length-1]},chars:function(a){i.appendChild(b.createTextNode(a))},comment:function(){},ignore:function(){}}),b}},{"./utils":150,ncname:86}],149:[function(a,b,c){"use strict";function d(a){this.tokens=a}function e(){}d.prototype.sort=function(a,b){b=b||0;for(var c=0,d=this.tokens.length;d>c;c++){var e=this.tokens[c],f=a.indexOf(e,b);if(-1!==f){do f!==b&&(a.splice(f,1),a.splice(b,0,e)),b++;while(-1!==(f=a.indexOf(e,b)));return this[e].sort(a,b)}}return a},e.prototype={add:function(a){var b=this;a.forEach(function(c){(b[c]||(b[c]=[])).push(a)})},createSorter:function(){var a=this,b=new d(Object.keys(this).sort(function(b,c){var d=a[b].length,e=a[c].length;return e>d?1:d>e?-1:c>b?-1:b>c?1:0}));return b.tokens.forEach(function(c){var d=new e;a[c].forEach(function(a){for(var b;-1!==(b=a.indexOf(c));)a.splice(b,1);d.add(a.slice(0))}),b[c]=d.createSorter()}),b}},b.exports=e},{}],150:[function(a,b,c){"use strict";function d(a,b){var c={};return a.forEach(function(a){c[a]=1}),b?function(a){return 1===c[a.toLowerCase()]}:function(a){return 1===c[a]}}c.createMap=d,c.createMapFromString=function(a,b){return d(a.split(/,/),b)}},{}],"html-minifier":[function(a,b,c){"use strict";function d(a){return" "===a?a:" "}function e(a){return a?a.replace(/[\t\n\r ]+/g,d):a}function f(a,b,c,f,g){var h="",i="";return b.preserveLineBreaks&&(a=a.replace(/^[\t ]*[\n\r][\t\n\r ]*/,function(){return h="\n",""}).replace(/[\t\n\r ]*[\n\r][\t ]*$/,function(){return i="\n",""})),c&&(a=a.replace(/^\s+/,!h&&b.conservativeCollapse?d:"")),f&&(a=a.replace(/\s+$/,!i&&b.conservativeCollapse?d:"")),g&&(a=e(a)),h+a+i}function g(a,b,c,d){var e=b&&!ea(b);e&&!d.collapseInlineTagWhitespace&&(e="/"===b.charAt(0)?!ca(b.slice(1)):!da(b));var g=c&&!ea(c);return g&&!d.collapseInlineTagWhitespace&&(g="/"===c.charAt(0)?!da(c.slice(1)):!ca(c)),f(a,d,e,g,b&&c)}function h(a){return/^\[if\s[^\]]+\]|\[endif\]$/.test(a)}function i(a,b){if(/^!/.test(a))return!0;if(b.ignoreCustomComments)for(var c=0,d=b.ignoreCustomComments.length;d>c;c++)if(b.ignoreCustomComments[c].test(a))return!0;return!1}function j(a,b){var c=b.customEventAttributes;if(c){for(var d=c.length;d--;)if(c[d].test(a))return!0;return!1}return/^on[a-z]{3,}$/.test(a)}function k(a){return/^[^ \t\n\f\r"'`=<>]+$/.test(a)}function l(a,b){for(var c=a.length;c--;)if(a[c].name.toLowerCase()===b)return!0;return!1}function m(a,b,c,d){return c=c?aa(c.toLowerCase()):"","script"===a&&"language"===b&&"javascript"===c||"form"===a&&"method"===b&&"get"===c||"input"===a&&"type"===b&&"text"===c||"script"===a&&"charset"===b&&!l(d,"src")||"a"===a&&"name"===b&&l(d,"id")||"area"===a&&"shape"===b&&"rect"===c}function n(a){return a=aa(a.split(/;/,2)[0]).toLowerCase(),""===a||fa(a)}function o(a,b){if("script"!==a)return!1;for(var c=0,d=b.length;d>c;c++){var e=b[c].name.toLowerCase();if("type"===e)return n(b[c].value)}return!0}function p(a){return a=aa(a).toLowerCase(),""===a||"text/css"===a}function q(a,b){if("style"!==a)return!1;for(var c=0,d=b.length;d>c;c++){var e=b[c].name.toLowerCase();if("type"===e)return p(b[c].value)}return!0}function r(a,b){return ga(a)||"draggable"===a&&!ha(b)}function s(a,b){return/^(?:a|area|link|base)$/.test(b)&&"href"===a||"img"===b&&/^(?:src|longdesc|usemap)$/.test(a)||"object"===b&&/^(?:classid|codebase|data|usemap)$/.test(a)||"q"===b&&"cite"===a||"blockquote"===b&&"cite"===a||("ins"===b||"del"===b)&&"cite"===a||"form"===b&&"action"===a||"input"===b&&("src"===a||"usemap"===a)||"head"===b&&"profile"===a||"script"===b&&("src"===a||"for"===a)}function t(a,b){return/^(?:a|area|object|button)$/.test(b)&&"tabindex"===a||"input"===b&&("maxlength"===a||"tabindex"===a)||"select"===b&&("size"===a||"tabindex"===a)||"textarea"===b&&/^(?:rows|cols|tabindex)$/.test(a)||"colgroup"===b&&"span"===a||"col"===b&&"span"===a||("th"===b||"td"===b)&&("rowspan"===a||"colspan"===a)}function u(a,b){if("link"!==a)return!1;for(var c=0,d=b.length;d>c;c++)if("rel"===b[c].name&&"canonical"===b[c].value)return!0}function v(a,b,c,d,f){if(c&&j(b,d)){if(c=aa(c).replace(/^javascript:\s*/i,"").replace(/\s*;$/,""),d.minifyJS){var g=N(ia+c+ja,d.minifyJS);return g.slice(ia.length,-ja.length)}return c}return"class"===b?(c=aa(c),c=d.sortClassName?d.sortClassName(c):e(c)):s(b,a)?(c=aa(c),d.minifyURLs&&!u(a,f)?M(c,d.minifyURLs):c):t(b,a)?aa(c):"style"===b?(c=aa(c),c&&/;$/.test(c)&&!/&#?[0-9a-zA-Z]+;$/.test(c)&&(c=c.replace(/\s*;$/,"")),d.minifyCSS?P(c,d,!0):c):(w(a,f)&&"content"===b?c=c.replace(/\s+/g,"").replace(/[0-9]+\.[0-9]+/g,function(a){return(+a).toString()}):c&&d.customAttrCollapse&&d.customAttrCollapse.test(b)?c=c.replace(/\n+|\r+|\s{2,}/g,""):"script"===a&&"type"===b&&(c=aa(c.replace(/\s*;\s*/g,";"))),c)}function w(a,b){if("meta"!==a)return!1;for(var c=0,d=b.length;d>c;c++)if("name"===b[c].name&&"viewport"===b[c].value)return!0}function x(a){return"*{"+a+"}"}function y(a){var b=a.match(/^\*\{([\s\S]*)\}$/m);return b&&b[1]?b[1]:a}function z(a,b){return b.processConditionalComments?a.replace(/^(\[if\s[^\]]+\]>)([\s\S]*?)(<!\[endif\])$/,function(a,c,d,e){return c+S(d,b,!0)+e}):a}function A(a,b,c){for(var d=0,e=c.length;e>d;d++)if("type"===c[d].name.toLowerCase()&&b.processScripts.indexOf(c[d].value)>-1)return S(a,b);return a}function B(a,b){switch(a){case"html":case"head":return!0;case"body":return!ma(b);case"colgroup":return"col"===b;case"tbody":return"tr"===b}return!1}function C(a,b){switch(b){case"colgroup":return"colgroup"===a;case"tbody":return ua(a)}return!1}function D(a,b){switch(a){case"html":case"head":case"body":case"colgroup":case"caption":return!0;case"li":case"optgroup":case"tr":return b===a;case"dt":case"dd":return na(b);case"p":return oa(b);case"rb":case"rt":case"rp":return qa(b);case"rtc":return ra(b);case"option":return sa(b);case"thead":case"tbody":return ta(b);case"tfoot":return"tbody"===b;case"td":case"th":return va(b)}return!1}function E(a,b,c){var d=!c||/^\s*$/.test(c);return d?"input"===a&&"value"===b||Ba.test(b):!1}function F(a,b){for(var c=b.length-1;c>=0;c--)if(b[c].name===a)return!0;return!1}function G(a,b){switch(a){case"textarea":return!1;case"audio":case"script":case"video":if(F("src",b))return!1;break;case"iframe":if(F("src",b)||F("srcdoc",b))return!1;break;case"object":if(F("data",b))return!1;break;case"applet":if(F("code",b))return!1}return!0}function H(a){return!/^(?:script|style|pre|textarea)$/.test(a)}function I(a){return!/^(?:pre|textarea)$/.test(a)}function J(a,b,c,d){var e=d.caseSensitive?a.name:a.name.toLowerCase(),f=a.value;return d.decodeEntities&&f&&(f=W(f,{isAttributeValue:!0})),d.removeRedundantAttributes&&m(c,e,f,b)||d.removeScriptTypeAttributes&&"script"===c&&"type"===e&&n(f)||d.removeStyleLinkTypeAttributes&&("style"===c||"link"===c)&&"type"===e&&p(f)||(f=v(c,e,f,d,b),d.removeEmptyAttributes&&E(c,e,f))?void 0:(d.decodeEntities&&f&&(f=f.replace(/&(#?[0-9a-zA-Z]+;)/g,"&amp;$1")),{attr:a,name:e,value:f})}function K(a,b,c,d){var e,f,g=a.name,h=a.value,i=a.attr,j=i.quote;if("undefined"!=typeof h&&!c.removeAttributeQuotes||!k(h)){if(!c.preventAttributesEscaping){if("undefined"==typeof c.quoteCharacter){var l=(h.match(/'/g)||[]).length,m=(h.match(/"/g)||[]).length;j=m>l?"'":'"'}else j="'"===c.quoteCharacter?"'":'"';h='"'===j?h.replace(/"/g,"&#34;"):h.replace(/'/g,"&#39;")}f=j+h+j,d||c.removeTagWhitespace||(f+=" ")}else f=!d||b||/\/$/.test(h)?h+" ":h;return"undefined"==typeof h||c.collapseBooleanAttributes&&r(g.toLowerCase(),h.toLowerCase())?(e=g,d||(e+=" ")):e=g+i.customAssign+f,i.customOpen+e+i.customClose}function L(a){["html5","includeAutoGeneratedTags"].forEach(function(b){b in a||(a[b]=!0)});for(var b=["canCollapseWhitespace","canTrimWhitespace"],c=0,d=b.length;d>c;c++)a[b[c]]||(a[b[c]]=function(){return!1});a.minifyURLs&&"object"!=typeof a.minifyURLs&&(a.minifyURLs={}),a.minifyJS&&("object"!=typeof a.minifyJS&&(a.minifyJS={}),a.minifyJS.fromString=!0,(a.minifyJS.output||(a.minifyJS.output={})).inline_script=!0),a.minifyCSS&&("object"!=typeof a.minifyCSS&&(a.minifyCSS={}),"undefined"==typeof a.minifyCSS.advanced&&(a.minifyCSS.advanced=!1))}function M(a,b){try{return Y.relate(a,b)}catch(c){return U(c),a}}function N(a,b){var c=a.match(/^\s*<!--.*/),d=c?a.slice(c[0].length).replace(/\n\s*-->\s*$/,""):a;try{return $.minify(d,b).code}catch(e){return U(e),a}}function O(a,b,c){var d=a.match(/^\s*<!--/),e=d?a.slice(d[0].length).replace(/-->\s*$/,""):a;try{var f=new V(b);return c?y(f.minify(x(e)).styles):f.minify(e).styles}catch(g){return U(g),a}}function P(a,b,c){return b.minifyURLs&&(a=a.replace(/(url\s*\(\s*)("|'|)(.*?)\2(\s*\))/gi,function(a,c,d,e,f){return c+d+M(e,b.minifyURLs)+d+f})),O(a,b.minifyCSS,c)}function Q(a){var b;do b=Math.random().toString(36).slice(2);while(~a.indexOf(b));return b}function R(a,b,c,d){function e(a){return a.map(function(a){
+return b.caseSensitive?a.name:a.name.toLowerCase()})}function f(a,b){return!b||-1===a.indexOf(b)}function g(a){return f(a,c)&&f(a,d)}function h(a){var c,d;new X(a,{start:function(a,f){i&&(i[a]||(i[a]=new Z),i[a].add(e(f).filter(g)));for(var h=0,k=f.length;k>h;h++){var l=f[h];j&&"class"===(b.caseSensitive?l.name:l.name.toLowerCase())?j.add(aa(l.value).split(/\s+/).filter(g)):b.processScripts&&"type"===l.name.toLowerCase()&&(c=a,d=l.value)}},end:function(){c=""},chars:function(a){b.processScripts&&Ca(c)&&b.processScripts.indexOf(d)>-1&&h(a)}})}var i=b.sortAttributes&&Object.create(null),j=b.sortClassName&&new Z;if(b.sortAttributes=!1,b.sortClassName=!1,h(S(a,b)),i){var k=Object.create(null);for(var l in i)k[l]=i[l].createSorter();b.sortAttributes=function(a,b){var c=k[a];if(c){var d=Object.create(null),f=e(b);f.forEach(function(a,c){(d[a]||(d[a]=[])).push(b[c])}),c.sort(f).forEach(function(a,c){b[c]=d[a].shift()})}}}if(j){var m=j.createSorter();b.sortClassName=function(a){return m.sort(a.split(/\s+/)).join(" ")}}}function S(a,b,c){function d(a,c){return H(a)||b.canCollapseWhitespace(a,c)}function j(a,c){return I(a)||b.canTrimWhitespace(a,c)}function k(){for(var a=v.length-1;a>0&&!/^<[^\/!]/.test(v[a]);)a--;v.length=Math.max(0,a)}function l(){for(var a=v.length-1;a>0&&!/^<\//.test(v[a]);)a--;v.length=Math.max(0,a)}function m(a,c){for(var d=null;a>=0&&j(d);a--){var e=v[a],f=e.match(/^<\/([\w:-]+)>$/);if(f)d=f[1];else if(/>$/.test(e)||(v[a]=g(e,null,c,b)))break}}function n(a){var b=v.length-1;if(v.length>1){var c=v[v.length-1];/^(?:<!|$)/.test(c)&&-1===c.indexOf(t)&&b--}m(b,a)}b=b||{};var p=[];L(b),a=b.collapseWhitespace?aa(a):a;var r,s,t,u,v=[],w="",x="",y=[],E=[],F=[],M="",O="",S=Date.now(),V=[],Y=[];a=a.replace(/<!-- htmlmin:ignore -->([\s\S]*?)<!-- htmlmin:ignore -->/g,function(b,c){t||(t=Q(a));var d="<!--!"+t+V.length+"-->";return V.push(c),d});var Z=(b.ignoreCustomFragments||[/<%[\s\S]*?%>/,/<\?[\s\S]*?\?>/]).map(function(a){return a.source});if(Z.length){var $=new RegExp("\\s*(?:"+Z.join("|")+")+\\s*","g");a=a.replace($,function(b){u||(u=Q(a));var c=u+Y.length;return Y.push(b),"  "+c+"   "})}(b.sortAttributes&&"function"!=typeof b.sortAttributes||b.sortClassName&&"function"!=typeof b.sortClassName)&&R(a,b,t,u),new X(a,{partialMarkup:c,html5:b.html5,start:function(a,c,e,f,g){var h=a.toLowerCase();if("svg"===h){p.push(b);var i={};for(var m in b)i[m]=b[m];i.keepClosingSlash=!0,i.caseSensitive=!0,b=i}a=b.caseSensitive?a:h,x=a,r=a,da(a)||(w=""),s=!1,y=c;var o=b.removeOptionalTags;if(o){var q=Aa(a);q&&B(M,a)&&k(),M="",q&&D(O,a)&&(l(),o=!C(O,a)),O=""}b.collapseWhitespace&&(E.length||n(a),j(a,c)||E.push(a),d(a,c)||F.push(a));var t="<"+a,u=f&&b.keepClosingSlash;v.push(t),b.sortAttributes&&b.sortAttributes(a,c);for(var z=[],A=c.length,G=!0;--A>=0;){var H=J(c[A],c,a,b);H&&(z.unshift(K(H,u,b,G)),G=!1)}z.length>0?(v.push(" "),v.push.apply(v,z)):o&&ka(a)&&(M=a),v.push(v.pop()+(u?"/":"")+">"),g&&!b.includeAutoGeneratedTags&&(k(),M="")},end:function(a,c,d){var e=a.toLowerCase();"svg"===e&&(b=p.pop()),a=b.caseSensitive?a:e,b.collapseWhitespace&&(E.length?a===E[E.length-1]&&E.pop():n("/"+a),F.length&&a===F[F.length-1]&&F.pop());var f=!1;a===x&&(x="",f=!s),b.removeOptionalTags&&(f&&wa(M)&&k(),M="",!Aa(a)||!O||za(O)||"p"===O&&pa(a)||l(),O=la(a)?a:""),b.removeEmptyElements&&f&&G(a,c)?(k(),M="",O=""):(d&&!b.includeAutoGeneratedTags?O="":v.push("</"+a+">"),r="/"+a,ca(a)?f&&(w+="|"):w="")},chars:function(a,c,d){if(c=""===c?"comment":c,d=""===d?"comment":d,b.decodeEntities&&a&&!Ca(x)&&(a=W(a)),b.collapseWhitespace){if(!E.length){if("comment"===c){var h=""===v[v.length-1];if(h&&(c=r),v.length>1&&(h||/ $/.test(w))){var i=v.length-2;v[i]=v[i].replace(/\s+$/,function(b){return a=b+a,""})}}c&&("/nobr"===c?/^\s/.test(a)&&m(v.length-1,"br"):da("/"===c.charAt(0)?c.slice(1):c)&&(a=f(a,b,/(?:^|\s)$/.test(w)))),a=c||d?g(a,c,d,b):aa(a),!a&&/\s$/.test(w)&&c&&"/"===c.charAt(0)&&m(v.length-1,d)}F.length||(a=c&&d||"html"===d?a:e(a))}b.processScripts&&Ca(x)&&(a=A(a,b,y)),b.minifyJS&&o(x,y)&&(a=N(a,b.minifyJS),/;$/.test(a)&&(a=a.slice(0,-1))),b.minifyCSS&&q(x,y)&&(a=P(a,b)),b.removeOptionalTags&&a&&(("html"===M||"body"===M&&!/^\s/.test(a))&&k(),M="",(xa(O)||ya(O)&&!/^\s/.test(a))&&l(),O=""),r=/^\s*$/.test(a)?c:"comment",b.decodeEntities&&a&&!Ca(x)&&(a=a.replace(/&(#?[0-9a-zA-Z]+;)/g,"&amp$1").replace(/</g,"&lt;")),w+=a,a&&(s=!0),v.push(a)},comment:function(a,c){var d=c?"<!":"<!--",e=c?">":"-->";a=h(a)?d+z(a,b)+e:b.removeComments?i(a,b)?"<!--"+a+"-->":"":d+a+e,b.removeOptionalTags&&a&&(M="",O=""),v.push(a)},doctype:function(a){v.push(b.useShortDoctype?"<!DOCTYPE html>":e(a))},customAttrAssign:b.customAttrAssign,customAttrSurround:b.customAttrSurround}),b.removeOptionalTags&&(wa(M)&&k(),O&&!za(O)&&l()),b.collapseWhitespace&&n("br");var _=T(v,b);return u&&(_=_.replace(new RegExp("(\\s*)"+u+"([0-9]+)(\\s*)","g"),function(a,c,d,e){var g=Y[+d];return b.collapseWhitespace?("        "!==c&&(g=c+g),"        "!==e&&(g+=e),f(g,{preserveLineBreaks:b.preserveLineBreaks,conservativeCollapse:!0},/^\s/.test(g),/\s$/.test(g))):g})),t&&(_=_.replace(new RegExp("<!--!"+t+"([0-9]+)-->","g"),function(a,b){return V[+b]})),U("minified in: "+(Date.now()-S)+"ms"),_}function T(a,b){var c,d=b.maxLineLength;if(d){for(var e,f=[],g="",h=0,i=a.length;i>h;h++)e=a[h],g.length+e.length<d?g+=e:(f.push(g.replace(/^\n/,"")),g=e);f.push(g),c=f.join("\n")}else c=a.join("");return b.collapseWhitespace?aa(c):c}var U,V=a("clean-css"),W=a("he").decode,X=a("./htmlparser").HTMLParser,Y=a("relateurl"),Z=a("./tokenchain"),$=a("uglify-js"),_=a("./utils");U="undefined"!=typeof window&&"undefined"!=typeof console&&"function"==typeof console.log?function(a){console.log(a)}:function(){};var aa=String.prototype.trim?function(a){return"string"!=typeof a?a:a.trim()}:function(a){return"string"!=typeof a?a:a.replace(/^\s+/,"").replace(/\s+$/,"")},ba=_.createMapFromString,ca=ba("a,abbr,acronym,b,bdi,bdo,big,button,cite,code,del,dfn,em,font,i,ins,kbd,mark,math,nobr,q,rt,rp,s,samp,small,span,strike,strong,sub,sup,svg,time,tt,u,var"),da=ba("a,abbr,acronym,b,big,del,em,font,i,ins,kbd,mark,nobr,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var"),ea=ba("comment,img,input"),fa=_.createMap(["text/javascript","text/ecmascript","text/jscript","application/javascript","application/x-javascript","application/ecmascript"]),ga=ba("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),ha=ba("true,false"),ia="!function(){",ja="}();",ka=ba("html,head,body,colgroup,tbody"),la=ba("html,head,body,li,dt,dd,p,rb,rt,rtc,rp,optgroup,option,colgroup,caption,thead,tbody,tfoot,tr,td,th"),ma=ba("meta,link,script,style,template,noscript"),na=ba("dt,dd"),oa=ba("address,article,aside,blockquote,details,div,dl,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,main,menu,nav,ol,p,pre,section,table,ul"),pa=ba("a,audio,del,ins,map,noscript,video"),qa=ba("rb,rt,rtc,rp"),ra=ba("rb,rtc,rp"),sa=ba("option,optgroup"),ta=ba("tbody,tfoot"),ua=ba("thead,tbody,tfoot"),va=ba("td,th"),wa=ba("html,head,body"),xa=ba("html,body"),ya=ba("head,colgroup,caption"),za=ba("dt,thead"),Aa=ba("a,abbr,acronym,address,applet,area,article,aside,audio,b,base,basefont,bdi,bdo,bgsound,big,blink,blockquote,body,br,button,canvas,caption,center,cite,code,col,colgroup,command,content,data,datalist,dd,del,details,dfn,dialog,dir,div,dl,dt,element,em,embed,fieldset,figcaption,figure,font,footer,form,frame,frameset,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,i,iframe,image,img,input,ins,isindex,kbd,keygen,label,legend,li,link,listing,main,map,mark,marquee,menu,menuitem,meta,meter,multicol,nav,nobr,noembed,noframes,noscript,object,ol,optgroup,option,output,p,param,picture,plaintext,pre,progress,q,rp,rt,rtc,ruby,s,samp,script,section,select,shadow,small,source,spacer,span,strike,strong,style,sub,summary,sup,table,tbody,td,template,textarea,tfoot,th,thead,time,title,tr,track,tt,u,ul,var,video,wbr,xmp"),Ba=new RegExp("^(?:class|id|style|title|lang|dir|on(?:focus|blur|change|click|dblclick|mouse(?:down|up|over|move|out)|key(?:press|down|up)))$"),Ca=ba("script,style");c.minify=function(a,b){return S(a,b)}},{"./htmlparser":148,"./tokenchain":149,"./utils":150,"clean-css":7,he:80,relateurl:107,"uglify-js":140}]},{},["html-minifier"]);
\ No newline at end of file
index afc455a..c1bc3d3 100644 (file)
         <textarea rows="8" cols="40" id="output" readonly></textarea>
 
         <p id="stats"></p>
-        <div id="lint-report">
-          LINT REPORT:
-          <div id="report"></div>
-        </div>
       </div>
       <div id="options">
         <ul>
               Keep the trailing slash on singleton elements
             </span>
           </li>
-          <li>
-            <input type="checkbox" id="lint" checked>
-            <label for="lint">
-              Toggle linting
-            </label>
-          </li>
           <li>
             <label for="maxLineLength">
               Max. line length
index 31c64bd..321edbc 100644 (file)
@@ -1,11 +1,13 @@
 {
   "name": "html-minifier",
-  "description": "HTML minifier with lint-like capabilities.",
+  "description": "Highly configurable, well-tested, JavaScript-based HTML minifier.",
   "version": "1.5.0",
   "keywords": [
+    "compress",
     "html",
     "minifier",
-    "lint"
+    "minify",
+    "optimize"
   ],
   "homepage": "http://kangax.github.io/html-minifier/",
   "author": "Juriy \"kangax\" Zaytsev",
index 823afd8..2ad4d9a 100644 (file)
@@ -14,7 +14,6 @@
   ],
   "includeAutoGeneratedTags": false,
   "keepClosingSlash": false,
-  "lint": false,
   "maxLineLength": 0,
   "minifyCSS": true,
   "minifyJS": true,
diff --git a/src/htmllint.js b/src/htmllint.js
deleted file mode 100644 (file)
index 77b28e6..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-/*!
- * HTMLLint (to be used in conjunction with HTMLMinifier)
- *
- * Copyright (c) 2010-2016 Juriy "kangax" Zaytsev
- * Licensed under the MIT license.
- *
- */
-
-'use strict';
-
-function isPresentationalElement(tag) {
-  return /^(?:big|small|hr|blink|marquee)$/.test(tag);
-}
-function isDeprecatedElement(tag) {
-  return /^(?:applet|basefont|center|dir|font|isindex|strike)$/.test(tag);
-}
-function isEventAttribute(attrName) {
-  return /^on[a-z]+/.test(attrName);
-}
-function isStyleAttribute(attrName) {
-  return attrName.toLowerCase() === 'style';
-}
-function isDeprecatedAttribute(tag, attrName) {
-  return (
-    attrName === 'align' &&
-    /^(?:caption|applet|iframe|img|imput|object|legend|table|hr|div|h[1-6]|p)$/.test(tag) ||
-    attrName === 'alink' && tag === 'body' ||
-    attrName === 'alt' && tag === 'applet' ||
-    attrName === 'archive' && tag === 'applet' ||
-    attrName === 'background' && tag === 'body' ||
-    attrName === 'bgcolor' && /^(?:table|t[rdh]|body)$/.test(tag) ||
-    attrName === 'border' && /^(?:img|object)$/.test(tag) ||
-    attrName === 'clear' && tag === 'br' ||
-    attrName === 'code' && tag === 'applet' ||
-    attrName === 'codebase' && tag === 'applet' ||
-    attrName === 'color' && /^(?:base(?:font)?)$/.test(tag) ||
-    attrName === 'compact' && /^(?:dir|[dou]l|menu)$/.test(tag) ||
-    attrName === 'face' && /^base(?:font)?$/.test(tag) ||
-    attrName === 'height' && /^(?:t[dh]|applet)$/.test(tag) ||
-    attrName === 'hspace' && /^(?:applet|img|object)$/.test(tag) ||
-    attrName === 'language' && tag === 'script' ||
-    attrName === 'link' && tag === 'body' ||
-    attrName === 'name' && tag === 'applet' ||
-    attrName === 'noshade' && tag === 'hr' ||
-    attrName === 'nowrap' && /^t[dh]$/.test(tag) ||
-    attrName === 'object' && tag === 'applet' ||
-    attrName === 'prompt' && tag === 'isindex' ||
-    attrName === 'size' && /^(?:hr|font|basefont)$/.test(tag) ||
-    attrName === 'start' && tag === 'ol' ||
-    attrName === 'text' && tag === 'body' ||
-    attrName === 'type' && /^(?:li|ol|ul)$/.test(tag) ||
-    attrName === 'value' && tag === 'li' ||
-    attrName === 'version' && tag === 'html' ||
-    attrName === 'vlink' && tag === 'body' ||
-    attrName === 'vspace' && /^(?:applet|img|object)$/.test(tag) ||
-    attrName === 'width' && /^(?:hr|td|th|applet|pre)$/.test(tag)
-  );
-}
-function isInaccessibleAttribute(attrName, attrValue) {
-  return attrName === 'href' && /^\s*javascript\s*:\s*void\s*(\s+0|\(\s*0\s*\))\s*$/i.test(attrValue);
-}
-
-function Lint() {
-  this.log = [];
-  this._lastElement = null;
-  this._isElementRepeated = false;
-}
-
-Lint.prototype.testElement = function(tag) {
-  this._attributes = Object.create(null);
-  if (isDeprecatedElement(tag)) {
-    this.log.push(
-      'Found <span class="deprecated-element">deprecated</span> <strong><code>&lt;' +
-        tag + '&gt;</code></strong> element'
-    );
-  }
-  else if (isPresentationalElement(tag)) {
-    this.log.push(
-      'Found <span class="presentational-element">presentational</span> <strong><code>&lt;' +
-        tag + '&gt;</code></strong> element'
-    );
-  }
-  else {
-    this.checkRepeatingElement(tag);
-  }
-};
-
-Lint.prototype.checkRepeatingElement = function(tag) {
-  if (tag === 'br' && this._lastElement === 'br') {
-    this._isElementRepeated = true;
-  }
-  else if (this._isElementRepeated) {
-    this._reportRepeatingElement();
-    this._isElementRepeated = false;
-  }
-  this._lastElement = tag;
-};
-
-Lint.prototype._reportRepeatingElement = function() {
-  this.log.push('Found <code>&lt;br></code> sequence. Try replacing it with styling.');
-};
-
-Lint.prototype.testAttribute = function(tag, attrName, attrValue) {
-  if (this._attributes[attrName]) {
-    this.log.push(
-      'Found <span class="repeating-attribute">repeating attribute</span> (<strong>' +
-      attrName + '</strong>) on <strong><code>&lt;' + tag + '&gt;</code></strong> element.'
-    );
-  }
-  else {
-    this._attributes[attrName] = true;
-  }
-  if (isEventAttribute(attrName)) {
-    this.log.push(
-      'Found <span class="event-attribute">event attribute</span> (<strong>' +
-      attrName + '</strong>) on <strong><code>&lt;' + tag + '&gt;</code></strong> element.'
-    );
-  }
-  else if (isDeprecatedAttribute(tag, attrName)) {
-    this.log.push(
-      'Found <span class="deprecated-attribute">deprecated</span> <strong>' +
-        attrName + '</strong> attribute on <strong><code>&lt;' + tag + '&gt;</code></strong> element.'
-    );
-  }
-  else if (isStyleAttribute(attrName)) {
-    this.log.push(
-      'Found <span class="style-attribute">style attribute</span> on <strong><code>&lt;' +
-        tag + '&gt;</code></strong> element.'
-    );
-  }
-  else if (isInaccessibleAttribute(attrName, attrValue)) {
-    this.log.push(
-      'Found <span class="inaccessible-attribute">inaccessible attribute</span> ' +
-        '(on <strong><code>&lt;' + tag + '&gt;</code></strong> element).'
-    );
-  }
-};
-
-Lint.prototype.testChars = function(chars) {
-  this._lastElement = '';
-  if (/(&nbsp;\s*){2,}/.test(chars)) {
-    this.log.push('Found repeating <strong><code>&amp;nbsp;</code></strong> sequence. Try replacing it with styling.');
-  }
-};
-
-Lint.prototype.test = function(tag, attrName, attrValue) {
-  this.testElement(tag);
-  this.testAttribute(tag, attrName, attrValue);
-};
-
-Lint.prototype.testDoctype = function(doctype) {
-  this._doctype = doctype;
-};
-
-Lint.prototype.populate = function(writeToElement) {
-  if (!this._doctype) {
-    this.log.push('No DOCTYPE found.');
-  }
-
-  if (this._isElementRepeated) {
-    this._reportRepeatingElement();
-  }
-
-  var output;
-  if (writeToElement) {
-    output = this.log.map(function(line) {
-      return '<li>' + line + '</li>';
-    }).join('');
-    writeToElement.innerHTML = '<ol>' + output + '</ol>';
-  }
-  else if (this.log.length) {
-    output = this.log.join('\n - ').replace(/<[^>]+>/g, '');
-    console.log(' - ' + output.replace(/&lt;/g, '<').replace(/&gt;/g, '>'));
-  }
-};
-
-exports.HTMLLint = Lint;
index f3db4f5..71726b4 100644 (file)
@@ -781,7 +781,6 @@ function minify(value, options, partialMarkup) {
       stackNoCollapseWhitespace = [],
       optionalStartTag = '',
       optionalEndTag = '',
-      lint = options.lint,
       t = Date.now(),
       ignoredMarkupChunks = [],
       ignoredCustomMarkupChunks = [],
@@ -823,7 +822,6 @@ function minify(value, options, partialMarkup) {
   if (options.sortAttributes && typeof options.sortAttributes !== 'function' ||
       options.sortClassName && typeof options.sortClassName !== 'function') {
     createSortFns(value, options, uidIgnore, uidAttr);
-    lint = null;
   }
 
   function _canCollapseWhitespace(tag, attrs) {
@@ -946,21 +944,13 @@ function minify(value, options, partialMarkup) {
 
       buffer.push(openTag);
 
-      if (lint) {
-        lint.testElement(tag);
-      }
-
       if (options.sortAttributes) {
         options.sortAttributes(tag, attrs);
       }
 
       var parts = [];
       for (var i = attrs.length, isLast = true; --i >= 0;) {
-        var attr = attrs[i];
-        if (lint) {
-          lint.testAttribute(tag, attr.name.toLowerCase(), attr.value);
-        }
-        var normalized = normalizeAttr(attr, attrs, tag, options);
+        var normalized = normalizeAttr(attrs[i], attrs, tag, options);
         if (normalized) {
           parts.unshift(buildAttr(normalized, hasUnarySlash, options, isLast));
           isLast = false;
@@ -1125,9 +1115,6 @@ function minify(value, options, partialMarkup) {
       if (text) {
         hasChars = true;
       }
-      if (lint) {
-        lint.testChars(text);
-      }
       buffer.push(text);
     },
     comment: function(text, nonStandard) {
@@ -1155,9 +1142,6 @@ function minify(value, options, partialMarkup) {
       buffer.push(text);
     },
     doctype: function(doctype) {
-      if (lint) {
-        lint.testDoctype(doctype);
-      }
       buffer.push(options.useShortDoctype ? '<!DOCTYPE html>' : collapseWhitespaceAll(doctype));
     },
     customAttrAssign: options.customAttrAssign,
diff --git a/test.js b/test.js
index dc5fd70..4601963 100644 (file)
--- a/test.js
+++ b/test.js
@@ -26,7 +26,6 @@ function hook() {
 }
 
 if (typeof phantom === 'undefined') {
-  load('./src/htmllint');
   load('./src/htmlminifier');
   hook();
   require(process.argv[2]);
diff --git a/tests/lint-tests.html b/tests/lint-tests.html
deleted file mode 100644 (file)
index 978f417..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-  <head>
-    <meta charset="utf-8">
-    <title>HTML Lint Tests</title>
-    <link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-1.23.1.css">
-  </head>
-  <body>
-    <div id="qunit"></div>
-    <div id="qunit-fixture"></div>
-    <script src="https://code.jquery.com/qunit/qunit-1.23.1.js"></script>
-    <script src="../dist/htmlminifier.js"></script>
-    <script src="lint.js"></script>
-  </body>
-</html>
diff --git a/tests/lint.js b/tests/lint.js
deleted file mode 100644 (file)
index 79c5042..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
- /* global minify, HTMLLint */
-'use strict';
-
-if (typeof minify === 'undefined') {
-  self.minify = require('html-minifier').minify;
-}
-if (typeof HTMLLint === 'undefined') {
-  self.HTMLLint = require('html-minifier/src/htmllint').HTMLLint;
-}
-
-test('lint exists', function() {
-  ok(minify);
-  ok(HTMLLint);
-});
-
-test('lint is instance of HTMLLint', function() {
-  var lint = new HTMLLint();
-  ok(lint instanceof HTMLLint);
-});
-
-test('lint API', function() {
-  var lint = new HTMLLint();
-  equal(0, lint.log.length, '`log` property exists');
-  equal('function', typeof lint.populate, '`populate` method exists');
-  equal('function', typeof lint.test, '`test` method exists');
-  equal('function', typeof lint.testElement, '`testElement` method exists');
-  equal('function', typeof lint.testAttribute, '`testAttribute` method exists');
-});
-
-function process(input, options) {
-  options = options || {};
-  var lint = new HTMLLint();
-  options.lint = lint;
-  minify(input, options);
-  var element = {};
-  lint.populate(element);
-  return element.innerHTML || '';
-}
-
-function match(log, str, count) {
-  var index = -str.length;
-  var n = 0;
-  do {
-    index = log.indexOf(str, index + str.length);
-  } while (index !== -1 && ++n);
-  equal(n, count);
-}
-
-test('deprecated attribute', function() {
-  var log = process('<script language="javascript">foo();</script>');
-  match(log, 'script', 1);
-  match(log, 'language', 1);
-  match(log, 'deprecated-attribute', 1);
-  log = process('<script type="text/javascript">foo();</script>');
-  match(log, 'script', 0);
-  match(log, 'language', 0);
-  match(log, 'deprecated-attribute', 0);
-});
-
-test('deprecated element', function() {
-  var log = process('<font>foo</font>');
-  match(log, 'font', 1);
-  match(log, 'deprecated-element', 1);
-  log = process('<span>foo</span>');
-  match(log, 'span', 0);
-  match(log, 'deprecated-element', 0);
-});
-
-test('missing DOCTYPE', function() {
-  var log = process('<html><head><title>foo</title></head><body>bar</body></html>');
-  match(log, 'DOCTYPE', 1);
-  log = process('<!DOCTYPE html><html><head><title>foo</title></head><body>bar</body></html>');
-  match(log, 'DOCTYPE', 0);
-});
-
-test('repeating attribute', function() {
-  var log = process('<a data-foo="bar" href="/" data-foo="baz">click</a>');
-  match(log, 'data-foo', 1);
-  match(log, 'repeating-attribute', 1);
-  log = process('<a data-foo="bar" href="/" ng-foo="baz">click</a>');
-  match(log, 'repeating-attribute', 0);
-});
-
-test('duplicate errors', function() {
-  var log = process('<font>foo</font>');
-  match(log, 'DOCTYPE', 1);
-  match(log, 'font', 1);
-  match(log, 'deprecated-element', 1);
-  log = process('<font>foo</font>', { sortAttributes: true });
-  match(log, 'DOCTYPE', 1);
-  match(log, 'font', 1);
-  match(log, 'deprecated-element', 1);
-  log = process('<font>foo</font>', { sortClassName: true });
-  match(log, 'DOCTYPE', 1);
-  match(log, 'font', 1);
-  match(log, 'deprecated-element', 1);
-});