mocha 3.4.2 → 3.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/mocha.js CHANGED
@@ -1464,6 +1464,7 @@ Mocha.prototype.ui = function (name) {
1464
1464
  exports.before = context.before || context.suiteSetup;
1465
1465
  exports.describe = context.describe || context.suite;
1466
1466
  exports.it = context.it || context.test;
1467
+ exports.xit = context.xit || context.test.skip;
1467
1468
  exports.setup = context.setup || context.beforeEach;
1468
1469
  exports.suiteSetup = context.suiteSetup || context.before;
1469
1470
  exports.suiteTeardown = context.suiteTeardown || context.after;
@@ -1743,6 +1744,24 @@ Mocha.prototype.delay = function delay () {
1743
1744
  return this;
1744
1745
  };
1745
1746
 
1747
+ /**
1748
+ * Tests marked only fail the suite
1749
+ * @returns {Mocha}
1750
+ */
1751
+ Mocha.prototype.forbidOnly = function () {
1752
+ this.options.forbidOnly = true;
1753
+ return this;
1754
+ };
1755
+
1756
+ /**
1757
+ * Pending tests and tests marked skip fail the suite
1758
+ * @returns {Mocha}
1759
+ */
1760
+ Mocha.prototype.forbidPending = function () {
1761
+ this.options.forbidPending = true;
1762
+ return this;
1763
+ };
1764
+
1746
1765
  /**
1747
1766
  * Run tests and invoke `fn()` when complete.
1748
1767
  *
@@ -1764,6 +1783,8 @@ Mocha.prototype.run = function (fn) {
1764
1783
  runner.hasOnly = options.hasOnly;
1765
1784
  runner.asyncOnly = options.asyncOnly;
1766
1785
  runner.allowUncaught = options.allowUncaught;
1786
+ runner.forbidOnly = options.forbidOnly;
1787
+ runner.forbidPending = options.forbidPending;
1767
1788
  if (options.grep) {
1768
1789
  runner.grep(options.grep, options.invert);
1769
1790
  }
@@ -1790,7 +1811,7 @@ Mocha.prototype.run = function (fn) {
1790
1811
  };
1791
1812
 
1792
1813
  }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},"/lib")
1793
- },{"./context":6,"./hook":7,"./interfaces":11,"./reporters":21,"./runnable":33,"./runner":34,"./suite":35,"./test":36,"./utils":38,"_process":82,"escape-string-regexp":62,"growl":64,"path":42}],15:[function(require,module,exports){
1814
+ },{"./context":6,"./hook":7,"./interfaces":11,"./reporters":21,"./runnable":33,"./runner":34,"./suite":35,"./test":36,"./utils":38,"_process":82,"escape-string-regexp":61,"growl":63,"path":42}],15:[function(require,module,exports){
1794
1815
  'use strict';
1795
1816
 
1796
1817
  /**
@@ -2100,7 +2121,7 @@ exports.cursor = {
2100
2121
  };
2101
2122
 
2102
2123
  /**
2103
- * Outut the given `failures` as a list.
2124
+ * Output the given `failures` as a list.
2104
2125
  *
2105
2126
  * @param {Array} failures
2106
2127
  * @api public
@@ -2435,7 +2456,7 @@ function sameType (a, b) {
2435
2456
  }
2436
2457
 
2437
2458
  }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
2438
- },{"../ms":15,"../utils":38,"_process":82,"diff":56,"supports-color":42,"tty":5}],18:[function(require,module,exports){
2459
+ },{"../ms":15,"../utils":38,"_process":82,"diff":55,"supports-color":42,"tty":5}],18:[function(require,module,exports){
2439
2460
  'use strict';
2440
2461
 
2441
2462
  /**
@@ -2925,7 +2946,7 @@ function on (el, event, fn) {
2925
2946
  }
2926
2947
 
2927
2948
  }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
2928
- },{"../browser/progress":4,"../utils":38,"./base":17,"escape-string-regexp":62}],21:[function(require,module,exports){
2949
+ },{"../browser/progress":4,"../utils":38,"./base":17,"escape-string-regexp":61}],21:[function(require,module,exports){
2929
2950
  'use strict';
2930
2951
 
2931
2952
  // Alias exports to a their normalized format Mocha#reporter to prevent a need
@@ -5325,6 +5346,12 @@ Runner.prototype.run = function (fn) {
5325
5346
 
5326
5347
  // callback
5327
5348
  this.on('end', function () {
5349
+ if (self.forbidOnly && self.hasOnly) {
5350
+ self.failures += self.stats.tests;
5351
+ }
5352
+ if (self.forbidPending) {
5353
+ self.failures += self.stats.pending;
5354
+ }
5328
5355
  debug('end');
5329
5356
  process.removeListener('uncaughtException', uncaught);
5330
5357
  fn(self.failures);
@@ -5986,6 +6013,7 @@ var statSync = require('fs').statSync;
5986
6013
  var watchFile = require('fs').watchFile;
5987
6014
  var lstatSync = require('fs').lstatSync;
5988
6015
  var toISOString = require('./to-iso-string');
6016
+ var he = require('he');
5989
6017
 
5990
6018
  /**
5991
6019
  * Ignored directories.
@@ -6003,11 +6031,7 @@ exports.inherits = require('util').inherits;
6003
6031
  * @return {string}
6004
6032
  */
6005
6033
  exports.escape = function (html) {
6006
- return String(html)
6007
- .replace(/&/g, '&')
6008
- .replace(/"/g, '"')
6009
- .replace(/</g, '&lt;')
6010
- .replace(/>/g, '&gt;');
6034
+ return he.encode(String(html), { useNamedReferences: false });
6011
6035
  };
6012
6036
 
6013
6037
  /**
@@ -6775,7 +6799,7 @@ exports.isPromise = function isPromise (value) {
6775
6799
  exports.noop = function () {};
6776
6800
 
6777
6801
  }).call(this,require('_process'),require("buffer").Buffer)
6778
- },{"./to-iso-string":37,"_process":82,"buffer":44,"debug":2,"fs":42,"glob":42,"json3":69,"path":42,"util":99}],39:[function(require,module,exports){
6802
+ },{"./to-iso-string":37,"_process":82,"buffer":43,"debug":2,"fs":42,"glob":42,"he":64,"json3":69,"path":42,"util":102}],39:[function(require,module,exports){
6779
6803
  'use strict'
6780
6804
 
6781
6805
  exports.byteLength = byteLength
@@ -6811,22 +6835,22 @@ function placeHoldersCount (b64) {
6811
6835
 
6812
6836
  function byteLength (b64) {
6813
6837
  // base64 is 4/3 + up to two characters of the original data
6814
- return b64.length * 3 / 4 - placeHoldersCount(b64)
6838
+ return (b64.length * 3 / 4) - placeHoldersCount(b64)
6815
6839
  }
6816
6840
 
6817
6841
  function toByteArray (b64) {
6818
- var i, j, l, tmp, placeHolders, arr
6842
+ var i, l, tmp, placeHolders, arr
6819
6843
  var len = b64.length
6820
6844
  placeHolders = placeHoldersCount(b64)
6821
6845
 
6822
- arr = new Arr(len * 3 / 4 - placeHolders)
6846
+ arr = new Arr((len * 3 / 4) - placeHolders)
6823
6847
 
6824
6848
  // if there are placeholders, only get up to the last complete 4 chars
6825
6849
  l = placeHolders > 0 ? len - 4 : len
6826
6850
 
6827
6851
  var L = 0
6828
6852
 
6829
- for (i = 0, j = 0; i < l; i += 4, j += 3) {
6853
+ for (i = 0; i < l; i += 4) {
6830
6854
  tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]
6831
6855
  arr[L++] = (tmp >> 16) & 0xFF
6832
6856
  arr[L++] = (tmp >> 8) & 0xFF
@@ -6922,122 +6946,10 @@ BrowserStdout.prototype._write = function(chunks, encoding, cb) {
6922
6946
  }
6923
6947
 
6924
6948
  }).call(this,require('_process'))
6925
- },{"_process":82,"stream":94,"util":99}],42:[function(require,module,exports){
6949
+ },{"_process":82,"stream":96,"util":102}],42:[function(require,module,exports){
6926
6950
  arguments[4][40][0].apply(exports,arguments)
6927
6951
  },{"dup":40}],43:[function(require,module,exports){
6928
6952
  (function (global){
6929
- 'use strict';
6930
-
6931
- var buffer = require('buffer');
6932
- var Buffer = buffer.Buffer;
6933
- var SlowBuffer = buffer.SlowBuffer;
6934
- var MAX_LEN = buffer.kMaxLength || 2147483647;
6935
- exports.alloc = function alloc(size, fill, encoding) {
6936
- if (typeof Buffer.alloc === 'function') {
6937
- return Buffer.alloc(size, fill, encoding);
6938
- }
6939
- if (typeof encoding === 'number') {
6940
- throw new TypeError('encoding must not be number');
6941
- }
6942
- if (typeof size !== 'number') {
6943
- throw new TypeError('size must be a number');
6944
- }
6945
- if (size > MAX_LEN) {
6946
- throw new RangeError('size is too large');
6947
- }
6948
- var enc = encoding;
6949
- var _fill = fill;
6950
- if (_fill === undefined) {
6951
- enc = undefined;
6952
- _fill = 0;
6953
- }
6954
- var buf = new Buffer(size);
6955
- if (typeof _fill === 'string') {
6956
- var fillBuf = new Buffer(_fill, enc);
6957
- var flen = fillBuf.length;
6958
- var i = -1;
6959
- while (++i < size) {
6960
- buf[i] = fillBuf[i % flen];
6961
- }
6962
- } else {
6963
- buf.fill(_fill);
6964
- }
6965
- return buf;
6966
- }
6967
- exports.allocUnsafe = function allocUnsafe(size) {
6968
- if (typeof Buffer.allocUnsafe === 'function') {
6969
- return Buffer.allocUnsafe(size);
6970
- }
6971
- if (typeof size !== 'number') {
6972
- throw new TypeError('size must be a number');
6973
- }
6974
- if (size > MAX_LEN) {
6975
- throw new RangeError('size is too large');
6976
- }
6977
- return new Buffer(size);
6978
- }
6979
- exports.from = function from(value, encodingOrOffset, length) {
6980
- if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
6981
- return Buffer.from(value, encodingOrOffset, length);
6982
- }
6983
- if (typeof value === 'number') {
6984
- throw new TypeError('"value" argument must not be a number');
6985
- }
6986
- if (typeof value === 'string') {
6987
- return new Buffer(value, encodingOrOffset);
6988
- }
6989
- if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
6990
- var offset = encodingOrOffset;
6991
- if (arguments.length === 1) {
6992
- return new Buffer(value);
6993
- }
6994
- if (typeof offset === 'undefined') {
6995
- offset = 0;
6996
- }
6997
- var len = length;
6998
- if (typeof len === 'undefined') {
6999
- len = value.byteLength - offset;
7000
- }
7001
- if (offset >= value.byteLength) {
7002
- throw new RangeError('\'offset\' is out of bounds');
7003
- }
7004
- if (len > value.byteLength - offset) {
7005
- throw new RangeError('\'length\' is out of bounds');
7006
- }
7007
- return new Buffer(value.slice(offset, offset + len));
7008
- }
7009
- if (Buffer.isBuffer(value)) {
7010
- var out = new Buffer(value.length);
7011
- value.copy(out, 0, 0, value.length);
7012
- return out;
7013
- }
7014
- if (value) {
7015
- if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
7016
- return new Buffer(value);
7017
- }
7018
- if (value.type === 'Buffer' && Array.isArray(value.data)) {
7019
- return new Buffer(value.data);
7020
- }
7021
- }
7022
-
7023
- throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
7024
- }
7025
- exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
7026
- if (typeof Buffer.allocUnsafeSlow === 'function') {
7027
- return Buffer.allocUnsafeSlow(size);
7028
- }
7029
- if (typeof size !== 'number') {
7030
- throw new TypeError('size must be a number');
7031
- }
7032
- if (size >= MAX_LEN) {
7033
- throw new RangeError('size is too large');
7034
- }
7035
- return new SlowBuffer(size);
7036
- }
7037
-
7038
- }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
7039
- },{"buffer":44}],44:[function(require,module,exports){
7040
- (function (global){
7041
6953
  /*!
7042
6954
  * The buffer module from node.js, for the browser.
7043
6955
  *
@@ -8829,7 +8741,7 @@ function isnan (val) {
8829
8741
  }
8830
8742
 
8831
8743
  }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
8832
- },{"base64-js":39,"ieee754":65,"isarray":68}],45:[function(require,module,exports){
8744
+ },{"base64-js":39,"ieee754":65,"isarray":68}],44:[function(require,module,exports){
8833
8745
  (function (Buffer){
8834
8746
  // Copyright Joyent, Inc. and other Node contributors.
8835
8747
  //
@@ -8940,7 +8852,7 @@ function objectToString(o) {
8940
8852
  }
8941
8853
 
8942
8854
  }).call(this,{"isBuffer":require("../../is-buffer/index.js")})
8943
- },{"../../is-buffer/index.js":67}],46:[function(require,module,exports){
8855
+ },{"../../is-buffer/index.js":67}],45:[function(require,module,exports){
8944
8856
  /*istanbul ignore start*/"use strict";
8945
8857
 
8946
8858
  exports.__esModule = true;
@@ -8966,7 +8878,7 @@ function convertChangesToDMP(changes) {
8966
8878
  }
8967
8879
 
8968
8880
 
8969
- },{}],47:[function(require,module,exports){
8881
+ },{}],46:[function(require,module,exports){
8970
8882
  /*istanbul ignore start*/'use strict';
8971
8883
 
8972
8884
  exports.__esModule = true;
@@ -9003,7 +8915,7 @@ function escapeHTML(s) {
9003
8915
  }
9004
8916
 
9005
8917
 
9006
- },{}],48:[function(require,module,exports){
8918
+ },{}],47:[function(require,module,exports){
9007
8919
  /*istanbul ignore start*/'use strict';
9008
8920
 
9009
8921
  exports.__esModule = true;
@@ -9027,7 +8939,7 @@ function diffArrays(oldArr, newArr, callback) {
9027
8939
  }
9028
8940
 
9029
8941
 
9030
- },{"./base":49}],49:[function(require,module,exports){
8942
+ },{"./base":48}],48:[function(require,module,exports){
9031
8943
  /*istanbul ignore start*/'use strict';
9032
8944
 
9033
8945
  exports.__esModule = true;
@@ -9259,7 +9171,7 @@ function clonePath(path) {
9259
9171
  }
9260
9172
 
9261
9173
 
9262
- },{}],50:[function(require,module,exports){
9174
+ },{}],49:[function(require,module,exports){
9263
9175
  /*istanbul ignore start*/'use strict';
9264
9176
 
9265
9177
  exports.__esModule = true;
@@ -9279,7 +9191,7 @@ function diffChars(oldStr, newStr, callback) {
9279
9191
  }
9280
9192
 
9281
9193
 
9282
- },{"./base":49}],51:[function(require,module,exports){
9194
+ },{"./base":48}],50:[function(require,module,exports){
9283
9195
  /*istanbul ignore start*/'use strict';
9284
9196
 
9285
9197
  exports.__esModule = true;
@@ -9303,7 +9215,7 @@ function diffCss(oldStr, newStr, callback) {
9303
9215
  }
9304
9216
 
9305
9217
 
9306
- },{"./base":49}],52:[function(require,module,exports){
9218
+ },{"./base":48}],51:[function(require,module,exports){
9307
9219
  /*istanbul ignore start*/'use strict';
9308
9220
 
9309
9221
  exports.__esModule = true;
@@ -9414,7 +9326,7 @@ function canonicalize(obj, stack, replacementStack) {
9414
9326
  }
9415
9327
 
9416
9328
 
9417
- },{"./base":49,"./line":53}],53:[function(require,module,exports){
9329
+ },{"./base":48,"./line":52}],52:[function(require,module,exports){
9418
9330
  /*istanbul ignore start*/'use strict';
9419
9331
 
9420
9332
  exports.__esModule = true;
@@ -9469,7 +9381,7 @@ function diffTrimmedLines(oldStr, newStr, callback) {
9469
9381
  }
9470
9382
 
9471
9383
 
9472
- },{"../util/params":61,"./base":49}],54:[function(require,module,exports){
9384
+ },{"../util/params":60,"./base":48}],53:[function(require,module,exports){
9473
9385
  /*istanbul ignore start*/'use strict';
9474
9386
 
9475
9387
  exports.__esModule = true;
@@ -9493,7 +9405,7 @@ function diffSentences(oldStr, newStr, callback) {
9493
9405
  }
9494
9406
 
9495
9407
 
9496
- },{"./base":49}],55:[function(require,module,exports){
9408
+ },{"./base":48}],54:[function(require,module,exports){
9497
9409
  /*istanbul ignore start*/'use strict';
9498
9410
 
9499
9411
  exports.__esModule = true;
@@ -9565,7 +9477,7 @@ function diffWordsWithSpace(oldStr, newStr, callback) {
9565
9477
  }
9566
9478
 
9567
9479
 
9568
- },{"../util/params":61,"./base":49}],56:[function(require,module,exports){
9480
+ },{"../util/params":60,"./base":48}],55:[function(require,module,exports){
9569
9481
  /*istanbul ignore start*/'use strict';
9570
9482
 
9571
9483
  exports.__esModule = true;
@@ -9640,7 +9552,7 @@ exports. /*istanbul ignore end*/Diff = _base2['default'];
9640
9552
  */
9641
9553
 
9642
9554
 
9643
- },{"./convert/dmp":46,"./convert/xml":47,"./diff/array":48,"./diff/base":49,"./diff/character":50,"./diff/css":51,"./diff/json":52,"./diff/line":53,"./diff/sentence":54,"./diff/word":55,"./patch/apply":57,"./patch/create":58,"./patch/parse":59}],57:[function(require,module,exports){
9555
+ },{"./convert/dmp":45,"./convert/xml":46,"./diff/array":47,"./diff/base":48,"./diff/character":49,"./diff/css":50,"./diff/json":51,"./diff/line":52,"./diff/sentence":53,"./diff/word":54,"./patch/apply":56,"./patch/create":57,"./patch/parse":58}],56:[function(require,module,exports){
9644
9556
  /*istanbul ignore start*/'use strict';
9645
9557
 
9646
9558
  exports.__esModule = true;
@@ -9819,7 +9731,7 @@ function applyPatches(uniDiff, options) {
9819
9731
  }
9820
9732
 
9821
9733
 
9822
- },{"../util/distance-iterator":60,"./parse":59}],58:[function(require,module,exports){
9734
+ },{"../util/distance-iterator":59,"./parse":58}],57:[function(require,module,exports){
9823
9735
  /*istanbul ignore start*/'use strict';
9824
9736
 
9825
9737
  exports.__esModule = true;
@@ -9977,7 +9889,7 @@ function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {
9977
9889
  }
9978
9890
 
9979
9891
 
9980
- },{"../diff/line":53}],59:[function(require,module,exports){
9892
+ },{"../diff/line":52}],58:[function(require,module,exports){
9981
9893
  /*istanbul ignore start*/'use strict';
9982
9894
 
9983
9895
  exports.__esModule = true;
@@ -10122,7 +10034,7 @@ function parsePatch(uniDiff) {
10122
10034
  }
10123
10035
 
10124
10036
 
10125
- },{}],60:[function(require,module,exports){
10037
+ },{}],59:[function(require,module,exports){
10126
10038
  /*istanbul ignore start*/"use strict";
10127
10039
 
10128
10040
  exports.__esModule = true;
@@ -10171,7 +10083,7 @@ exports["default"] = /*istanbul ignore end*/function (start, minLine, maxLine) {
10171
10083
  };
10172
10084
 
10173
10085
 
10174
- },{}],61:[function(require,module,exports){
10086
+ },{}],60:[function(require,module,exports){
10175
10087
  /*istanbul ignore start*/'use strict';
10176
10088
 
10177
10089
  exports.__esModule = true;
@@ -10191,7 +10103,7 @@ function generateOptions(options, defaults) {
10191
10103
  }
10192
10104
 
10193
10105
 
10194
- },{}],62:[function(require,module,exports){
10106
+ },{}],61:[function(require,module,exports){
10195
10107
  'use strict';
10196
10108
 
10197
10109
  var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g;
@@ -10204,7 +10116,7 @@ module.exports = function (str) {
10204
10116
  return str.replace(matchOperatorsRe, '\\$&');
10205
10117
  };
10206
10118
 
10207
- },{}],63:[function(require,module,exports){
10119
+ },{}],62:[function(require,module,exports){
10208
10120
  // Copyright Joyent, Inc. and other Node contributors.
10209
10121
  //
10210
10122
  // Permission is hereby granted, free of charge, to any person obtaining a
@@ -10508,7 +10420,7 @@ function isUndefined(arg) {
10508
10420
  return arg === void 0;
10509
10421
  }
10510
10422
 
10511
- },{}],64:[function(require,module,exports){
10423
+ },{}],63:[function(require,module,exports){
10512
10424
  (function (process){
10513
10425
  // Growl - Copyright TJ Holowaychuk <tj@vision-media.ca> (MIT Licensed)
10514
10426
 
@@ -10802,7 +10714,351 @@ function growl(msg, options, fn) {
10802
10714
  };
10803
10715
 
10804
10716
  }).call(this,require('_process'))
10805
- },{"_process":82,"child_process":42,"fs":42,"os":80,"path":42}],65:[function(require,module,exports){
10717
+ },{"_process":82,"child_process":42,"fs":42,"os":80,"path":42}],64:[function(require,module,exports){
10718
+ (function (global){
10719
+ /*! https://mths.be/he v1.1.1 by @mathias | MIT license */
10720
+ ;(function(root) {
10721
+
10722
+ // Detect free variables `exports`.
10723
+ var freeExports = typeof exports == 'object' && exports;
10724
+
10725
+ // Detect free variable `module`.
10726
+ var freeModule = typeof module == 'object' && module &&
10727
+ module.exports == freeExports && module;
10728
+
10729
+ // Detect free variable `global`, from Node.js or Browserified code,
10730
+ // and use it as `root`.
10731
+ var freeGlobal = typeof global == 'object' && global;
10732
+ if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {
10733
+ root = freeGlobal;
10734
+ }
10735
+
10736
+ /*--------------------------------------------------------------------------*/
10737
+
10738
+ // All astral symbols.
10739
+ var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
10740
+ // All ASCII symbols (not just printable ASCII) except those listed in the
10741
+ // first column of the overrides table.
10742
+ // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides
10743
+ var regexAsciiWhitelist = /[\x01-\x7F]/g;
10744
+ // All BMP symbols that are not ASCII newlines, printable ASCII symbols, or
10745
+ // code points listed in the first column of the overrides table on
10746
+ // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.
10747
+ var regexBmpWhitelist = /[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g;
10748
+
10749
+ 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;
10750
+ 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'};
10751
+
10752
+ var regexEscape = /["&'<>`]/g;
10753
+ var escapeMap = {
10754
+ '"': '&quot;',
10755
+ '&': '&amp;',
10756
+ '\'': '&#x27;',
10757
+ '<': '&lt;',
10758
+ // See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the
10759
+ // following is not strictly necessary unless it’s part of a tag or an
10760
+ // unquoted attribute value. We’re only escaping it to support those
10761
+ // situations, and for XML support.
10762
+ '>': '&gt;',
10763
+ // In Internet Explorer ≤ 8, the backtick character can be used
10764
+ // to break out of (un)quoted attribute values or HTML comments.
10765
+ // See http://html5sec.org/#102, http://html5sec.org/#108, and
10766
+ // http://html5sec.org/#133.
10767
+ '`': '&#x60;'
10768
+ };
10769
+
10770
+ var regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;
10771
+ 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]/;
10772
+ 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;
10773
+ 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'};
10774
+ 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'};
10775
+ 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'};
10776
+ 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];
10777
+
10778
+ /*--------------------------------------------------------------------------*/
10779
+
10780
+ var stringFromCharCode = String.fromCharCode;
10781
+
10782
+ var object = {};
10783
+ var hasOwnProperty = object.hasOwnProperty;
10784
+ var has = function(object, propertyName) {
10785
+ return hasOwnProperty.call(object, propertyName);
10786
+ };
10787
+
10788
+ var contains = function(array, value) {
10789
+ var index = -1;
10790
+ var length = array.length;
10791
+ while (++index < length) {
10792
+ if (array[index] == value) {
10793
+ return true;
10794
+ }
10795
+ }
10796
+ return false;
10797
+ };
10798
+
10799
+ var merge = function(options, defaults) {
10800
+ if (!options) {
10801
+ return defaults;
10802
+ }
10803
+ var result = {};
10804
+ var key;
10805
+ for (key in defaults) {
10806
+ // A `hasOwnProperty` check is not needed here, since only recognized
10807
+ // option names are used anyway. Any others are ignored.
10808
+ result[key] = has(options, key) ? options[key] : defaults[key];
10809
+ }
10810
+ return result;
10811
+ };
10812
+
10813
+ // Modified version of `ucs2encode`; see https://mths.be/punycode.
10814
+ var codePointToSymbol = function(codePoint, strict) {
10815
+ var output = '';
10816
+ if ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) {
10817
+ // See issue #4:
10818
+ // “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is
10819
+ // greater than 0x10FFFF, then this is a parse error. Return a U+FFFD
10820
+ // REPLACEMENT CHARACTER.”
10821
+ if (strict) {
10822
+ parseError('character reference outside the permissible Unicode range');
10823
+ }
10824
+ return '\uFFFD';
10825
+ }
10826
+ if (has(decodeMapNumeric, codePoint)) {
10827
+ if (strict) {
10828
+ parseError('disallowed character reference');
10829
+ }
10830
+ return decodeMapNumeric[codePoint];
10831
+ }
10832
+ if (strict && contains(invalidReferenceCodePoints, codePoint)) {
10833
+ parseError('disallowed character reference');
10834
+ }
10835
+ if (codePoint > 0xFFFF) {
10836
+ codePoint -= 0x10000;
10837
+ output += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);
10838
+ codePoint = 0xDC00 | codePoint & 0x3FF;
10839
+ }
10840
+ output += stringFromCharCode(codePoint);
10841
+ return output;
10842
+ };
10843
+
10844
+ var hexEscape = function(codePoint) {
10845
+ return '&#x' + codePoint.toString(16).toUpperCase() + ';';
10846
+ };
10847
+
10848
+ var decEscape = function(codePoint) {
10849
+ return '&#' + codePoint + ';';
10850
+ };
10851
+
10852
+ var parseError = function(message) {
10853
+ throw Error('Parse error: ' + message);
10854
+ };
10855
+
10856
+ /*--------------------------------------------------------------------------*/
10857
+
10858
+ var encode = function(string, options) {
10859
+ options = merge(options, encode.options);
10860
+ var strict = options.strict;
10861
+ if (strict && regexInvalidRawCodePoint.test(string)) {
10862
+ parseError('forbidden code point');
10863
+ }
10864
+ var encodeEverything = options.encodeEverything;
10865
+ var useNamedReferences = options.useNamedReferences;
10866
+ var allowUnsafeSymbols = options.allowUnsafeSymbols;
10867
+ var escapeCodePoint = options.decimal ? decEscape : hexEscape;
10868
+
10869
+ var escapeBmpSymbol = function(symbol) {
10870
+ return escapeCodePoint(symbol.charCodeAt(0));
10871
+ };
10872
+
10873
+ if (encodeEverything) {
10874
+ // Encode ASCII symbols.
10875
+ string = string.replace(regexAsciiWhitelist, function(symbol) {
10876
+ // Use named references if requested & possible.
10877
+ if (useNamedReferences && has(encodeMap, symbol)) {
10878
+ return '&' + encodeMap[symbol] + ';';
10879
+ }
10880
+ return escapeBmpSymbol(symbol);
10881
+ });
10882
+ // Shorten a few escapes that represent two symbols, of which at least one
10883
+ // is within the ASCII range.
10884
+ if (useNamedReferences) {
10885
+ string = string
10886
+ .replace(/&gt;\u20D2/g, '&nvgt;')
10887
+ .replace(/&lt;\u20D2/g, '&nvlt;')
10888
+ .replace(/&#x66;&#x6A;/g, '&fjlig;');
10889
+ }
10890
+ // Encode non-ASCII symbols.
10891
+ if (useNamedReferences) {
10892
+ // Encode non-ASCII symbols that can be replaced with a named reference.
10893
+ string = string.replace(regexEncodeNonAscii, function(string) {
10894
+ // Note: there is no need to check `has(encodeMap, string)` here.
10895
+ return '&' + encodeMap[string] + ';';
10896
+ });
10897
+ }
10898
+ // Note: any remaining non-ASCII symbols are handled outside of the `if`.
10899
+ } else if (useNamedReferences) {
10900
+ // Apply named character references.
10901
+ // Encode `<>"'&` using named character references.
10902
+ if (!allowUnsafeSymbols) {
10903
+ string = string.replace(regexEscape, function(string) {
10904
+ return '&' + encodeMap[string] + ';'; // no need to check `has()` here
10905
+ });
10906
+ }
10907
+ // Shorten escapes that represent two symbols, of which at least one is
10908
+ // `<>"'&`.
10909
+ string = string
10910
+ .replace(/&gt;\u20D2/g, '&nvgt;')
10911
+ .replace(/&lt;\u20D2/g, '&nvlt;');
10912
+ // Encode non-ASCII symbols that can be replaced with a named reference.
10913
+ string = string.replace(regexEncodeNonAscii, function(string) {
10914
+ // Note: there is no need to check `has(encodeMap, string)` here.
10915
+ return '&' + encodeMap[string] + ';';
10916
+ });
10917
+ } else if (!allowUnsafeSymbols) {
10918
+ // Encode `<>"'&` using hexadecimal escapes, now that they’re not handled
10919
+ // using named character references.
10920
+ string = string.replace(regexEscape, escapeBmpSymbol);
10921
+ }
10922
+ return string
10923
+ // Encode astral symbols.
10924
+ .replace(regexAstralSymbols, function($0) {
10925
+ // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
10926
+ var high = $0.charCodeAt(0);
10927
+ var low = $0.charCodeAt(1);
10928
+ var codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;
10929
+ return escapeCodePoint(codePoint);
10930
+ })
10931
+ // Encode any remaining BMP symbols that are not printable ASCII symbols
10932
+ // using a hexadecimal escape.
10933
+ .replace(regexBmpWhitelist, escapeBmpSymbol);
10934
+ };
10935
+ // Expose default options (so they can be overridden globally).
10936
+ encode.options = {
10937
+ 'allowUnsafeSymbols': false,
10938
+ 'encodeEverything': false,
10939
+ 'strict': false,
10940
+ 'useNamedReferences': false,
10941
+ 'decimal' : false
10942
+ };
10943
+
10944
+ var decode = function(html, options) {
10945
+ options = merge(options, decode.options);
10946
+ var strict = options.strict;
10947
+ if (strict && regexInvalidEntity.test(html)) {
10948
+ parseError('malformed character reference');
10949
+ }
10950
+ return html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7) {
10951
+ var codePoint;
10952
+ var semicolon;
10953
+ var decDigits;
10954
+ var hexDigits;
10955
+ var reference;
10956
+ var next;
10957
+ if ($1) {
10958
+ // Decode decimal escapes, e.g. `&#119558;`.
10959
+ decDigits = $1;
10960
+ semicolon = $2;
10961
+ if (strict && !semicolon) {
10962
+ parseError('character reference was not terminated by a semicolon');
10963
+ }
10964
+ codePoint = parseInt(decDigits, 10);
10965
+ return codePointToSymbol(codePoint, strict);
10966
+ }
10967
+ if ($3) {
10968
+ // Decode hexadecimal escapes, e.g. `&#x1D306;`.
10969
+ hexDigits = $3;
10970
+ semicolon = $4;
10971
+ if (strict && !semicolon) {
10972
+ parseError('character reference was not terminated by a semicolon');
10973
+ }
10974
+ codePoint = parseInt(hexDigits, 16);
10975
+ return codePointToSymbol(codePoint, strict);
10976
+ }
10977
+ if ($5) {
10978
+ // Decode named character references with trailing `;`, e.g. `&copy;`.
10979
+ reference = $5;
10980
+ if (has(decodeMap, reference)) {
10981
+ return decodeMap[reference];
10982
+ } else {
10983
+ // Ambiguous ampersand. https://mths.be/notes/ambiguous-ampersands
10984
+ if (strict) {
10985
+ parseError(
10986
+ 'named character reference was not terminated by a semicolon'
10987
+ );
10988
+ }
10989
+ return $0;
10990
+ }
10991
+ }
10992
+ // If we’re still here, it’s a legacy reference for sure. No need for an
10993
+ // extra `if` check.
10994
+ // Decode named character references without trailing `;`, e.g. `&amp`
10995
+ // This is only a parse error if it gets converted to `&`, or if it is
10996
+ // followed by `=` in an attribute context.
10997
+ reference = $6;
10998
+ next = $7;
10999
+ if (next && options.isAttributeValue) {
11000
+ if (strict && next == '=') {
11001
+ parseError('`&` did not start a character reference');
11002
+ }
11003
+ return $0;
11004
+ } else {
11005
+ if (strict) {
11006
+ parseError(
11007
+ 'named character reference was not terminated by a semicolon'
11008
+ );
11009
+ }
11010
+ // Note: there is no need to check `has(decodeMapLegacy, reference)`.
11011
+ return decodeMapLegacy[reference] + (next || '');
11012
+ }
11013
+ });
11014
+ };
11015
+ // Expose default options (so they can be overridden globally).
11016
+ decode.options = {
11017
+ 'isAttributeValue': false,
11018
+ 'strict': false
11019
+ };
11020
+
11021
+ var escape = function(string) {
11022
+ return string.replace(regexEscape, function($0) {
11023
+ // Note: there is no need to check `has(escapeMap, $0)` here.
11024
+ return escapeMap[$0];
11025
+ });
11026
+ };
11027
+
11028
+ /*--------------------------------------------------------------------------*/
11029
+
11030
+ var he = {
11031
+ 'version': '1.1.1',
11032
+ 'encode': encode,
11033
+ 'decode': decode,
11034
+ 'escape': escape,
11035
+ 'unescape': decode
11036
+ };
11037
+
11038
+ // Some AMD build optimizers, like r.js, check for specific condition patterns
11039
+ // like the following:
11040
+ if (
11041
+ false
11042
+ ) {
11043
+ define(function() {
11044
+ return he;
11045
+ });
11046
+ } else if (freeExports && !freeExports.nodeType) {
11047
+ if (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+
11048
+ freeModule.exports = he;
11049
+ } else { // in Narwhal or RingoJS v0.7.0-
11050
+ for (var key in he) {
11051
+ has(he, key) && (freeExports[key] = he[key]);
11052
+ }
11053
+ }
11054
+ } else { // in Rhino or a web browser
11055
+ root.he = he;
11056
+ }
11057
+
11058
+ }(this));
11059
+
11060
+ }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
11061
+ },{}],65:[function(require,module,exports){
10806
11062
  exports.read = function (buffer, offset, isLE, mLen, nBytes) {
10807
11063
  var e, m
10808
11064
  var eLen = nBytes * 8 - mLen - 1
@@ -13319,6 +13575,10 @@ process.off = noop;
13319
13575
  process.removeListener = noop;
13320
13576
  process.removeAllListeners = noop;
13321
13577
  process.emit = noop;
13578
+ process.prependListener = noop;
13579
+ process.prependOnceListener = noop;
13580
+
13581
+ process.listeners = function (name) { return [] }
13322
13582
 
13323
13583
  process.binding = function (name) {
13324
13584
  throw new Error('process.binding is not supported');
@@ -13331,7 +13591,7 @@ process.chdir = function (dir) {
13331
13591
  process.umask = function() { return 0; };
13332
13592
 
13333
13593
  },{}],83:[function(require,module,exports){
13334
- module.exports = require("./lib/_stream_duplex.js")
13594
+ module.exports = require('./lib/_stream_duplex.js');
13335
13595
 
13336
13596
  },{"./lib/_stream_duplex.js":84}],84:[function(require,module,exports){
13337
13597
  // a duplex stream is just a stream that is both readable and writable.
@@ -13409,7 +13669,7 @@ function forEach(xs, f) {
13409
13669
  f(xs[i], i);
13410
13670
  }
13411
13671
  }
13412
- },{"./_stream_readable":86,"./_stream_writable":88,"core-util-is":45,"inherits":66,"process-nextick-args":81}],85:[function(require,module,exports){
13672
+ },{"./_stream_readable":86,"./_stream_writable":88,"core-util-is":44,"inherits":66,"process-nextick-args":81}],85:[function(require,module,exports){
13413
13673
  // a passthrough stream.
13414
13674
  // basically just the most minimal sort of Transform stream.
13415
13675
  // Every written chunk gets output as-is.
@@ -13436,7 +13696,7 @@ function PassThrough(options) {
13436
13696
  PassThrough.prototype._transform = function (chunk, encoding, cb) {
13437
13697
  cb(null, chunk);
13438
13698
  };
13439
- },{"./_stream_transform":87,"core-util-is":45,"inherits":66}],86:[function(require,module,exports){
13699
+ },{"./_stream_transform":87,"core-util-is":44,"inherits":66}],86:[function(require,module,exports){
13440
13700
  (function (process){
13441
13701
  'use strict';
13442
13702
 
@@ -13450,6 +13710,10 @@ var processNextTick = require('process-nextick-args');
13450
13710
  var isArray = require('isarray');
13451
13711
  /*</replacement>*/
13452
13712
 
13713
+ /*<replacement>*/
13714
+ var Duplex;
13715
+ /*</replacement>*/
13716
+
13453
13717
  Readable.ReadableState = ReadableState;
13454
13718
 
13455
13719
  /*<replacement>*/
@@ -13461,19 +13725,11 @@ var EElistenerCount = function (emitter, type) {
13461
13725
  /*</replacement>*/
13462
13726
 
13463
13727
  /*<replacement>*/
13464
- var Stream;
13465
- (function () {
13466
- try {
13467
- Stream = require('st' + 'ream');
13468
- } catch (_) {} finally {
13469
- if (!Stream) Stream = require('events').EventEmitter;
13470
- }
13471
- })();
13728
+ var Stream = require('./internal/streams/stream');
13472
13729
  /*</replacement>*/
13473
13730
 
13474
- var Buffer = require('buffer').Buffer;
13475
13731
  /*<replacement>*/
13476
- var bufferShim = require('buffer-shims');
13732
+ var Buffer = require('safe-buffer').Buffer;
13477
13733
  /*</replacement>*/
13478
13734
 
13479
13735
  /*<replacement>*/
@@ -13496,7 +13752,11 @@ var StringDecoder;
13496
13752
 
13497
13753
  util.inherits(Readable, Stream);
13498
13754
 
13755
+ var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];
13756
+
13499
13757
  function prependListener(emitter, event, fn) {
13758
+ // Sadly this is not cacheable as some libraries bundle their own
13759
+ // event emitter implementation with them.
13500
13760
  if (typeof emitter.prependListener === 'function') {
13501
13761
  return emitter.prependListener(event, fn);
13502
13762
  } else {
@@ -13508,7 +13768,6 @@ function prependListener(emitter, event, fn) {
13508
13768
  }
13509
13769
  }
13510
13770
 
13511
- var Duplex;
13512
13771
  function ReadableState(options, stream) {
13513
13772
  Duplex = Duplex || require('./_stream_duplex');
13514
13773
 
@@ -13527,7 +13786,7 @@ function ReadableState(options, stream) {
13527
13786
  this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
13528
13787
 
13529
13788
  // cast to ints.
13530
- this.highWaterMark = ~ ~this.highWaterMark;
13789
+ this.highWaterMark = ~~this.highWaterMark;
13531
13790
 
13532
13791
  // A linked list is used to store data chunks instead of an array because the
13533
13792
  // linked list can remove elements from the beginning faster than
@@ -13578,7 +13837,6 @@ function ReadableState(options, stream) {
13578
13837
  }
13579
13838
  }
13580
13839
 
13581
- var Duplex;
13582
13840
  function Readable(options) {
13583
13841
  Duplex = Duplex || require('./_stream_duplex');
13584
13842
 
@@ -13604,7 +13862,7 @@ Readable.prototype.push = function (chunk, encoding) {
13604
13862
  if (!state.objectMode && typeof chunk === 'string') {
13605
13863
  encoding = encoding || state.defaultEncoding;
13606
13864
  if (encoding !== state.encoding) {
13607
- chunk = bufferShim.from(chunk, encoding);
13865
+ chunk = Buffer.from(chunk, encoding);
13608
13866
  encoding = '';
13609
13867
  }
13610
13868
  }
@@ -13901,7 +14159,7 @@ function maybeReadMore_(stream, state) {
13901
14159
  // for virtual (non-string, non-buffer) streams, "length" is somewhat
13902
14160
  // arbitrary, and perhaps not very meaningful.
13903
14161
  Readable.prototype._read = function (n) {
13904
- this.emit('error', new Error('not implemented'));
14162
+ this.emit('error', new Error('_read() is not implemented'));
13905
14163
  };
13906
14164
 
13907
14165
  Readable.prototype.pipe = function (dest, pipeOpts) {
@@ -13924,7 +14182,7 @@ Readable.prototype.pipe = function (dest, pipeOpts) {
13924
14182
 
13925
14183
  var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
13926
14184
 
13927
- var endFn = doEnd ? onend : cleanup;
14185
+ var endFn = doEnd ? onend : unpipe;
13928
14186
  if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
13929
14187
 
13930
14188
  dest.on('unpipe', onunpipe);
@@ -13957,7 +14215,7 @@ Readable.prototype.pipe = function (dest, pipeOpts) {
13957
14215
  dest.removeListener('error', onerror);
13958
14216
  dest.removeListener('unpipe', onunpipe);
13959
14217
  src.removeListener('end', onend);
13960
- src.removeListener('end', cleanup);
14218
+ src.removeListener('end', unpipe);
13961
14219
  src.removeListener('data', ondata);
13962
14220
 
13963
14221
  cleanedUp = true;
@@ -14079,16 +14337,16 @@ Readable.prototype.unpipe = function (dest) {
14079
14337
  state.pipesCount = 0;
14080
14338
  state.flowing = false;
14081
14339
 
14082
- for (var _i = 0; _i < len; _i++) {
14083
- dests[_i].emit('unpipe', this);
14340
+ for (var i = 0; i < len; i++) {
14341
+ dests[i].emit('unpipe', this);
14084
14342
  }return this;
14085
14343
  }
14086
14344
 
14087
14345
  // try to find the right one.
14088
- var i = indexOf(state.pipes, dest);
14089
- if (i === -1) return this;
14346
+ var index = indexOf(state.pipes, dest);
14347
+ if (index === -1) return this;
14090
14348
 
14091
- state.pipes.splice(i, 1);
14349
+ state.pipes.splice(index, 1);
14092
14350
  state.pipesCount -= 1;
14093
14351
  if (state.pipesCount === 1) state.pipes = state.pipes[0];
14094
14352
 
@@ -14220,10 +14478,9 @@ Readable.prototype.wrap = function (stream) {
14220
14478
  }
14221
14479
 
14222
14480
  // proxy certain important events.
14223
- var events = ['error', 'close', 'destroy', 'pause', 'resume'];
14224
- forEach(events, function (ev) {
14225
- stream.on(ev, self.emit.bind(self, ev));
14226
- });
14481
+ for (var n = 0; n < kProxyEvents.length; n++) {
14482
+ stream.on(kProxyEvents[n], self.emit.bind(self, kProxyEvents[n]));
14483
+ }
14227
14484
 
14228
14485
  // when we try to consume some more bytes, simply unpause the
14229
14486
  // underlying stream.
@@ -14315,7 +14572,7 @@ function copyFromBufferString(n, list) {
14315
14572
  // This function is designed to be inlinable, so please take care when making
14316
14573
  // changes to the function body.
14317
14574
  function copyFromBuffer(n, list) {
14318
- var ret = bufferShim.allocUnsafe(n);
14575
+ var ret = Buffer.allocUnsafe(n);
14319
14576
  var p = list.head;
14320
14577
  var c = 1;
14321
14578
  p.data.copy(ret);
@@ -14376,7 +14633,7 @@ function indexOf(xs, x) {
14376
14633
  return -1;
14377
14634
  }
14378
14635
  }).call(this,require('_process'))
14379
- },{"./_stream_duplex":84,"./internal/streams/BufferList":89,"_process":82,"buffer":44,"buffer-shims":43,"core-util-is":45,"events":63,"inherits":66,"isarray":68,"process-nextick-args":81,"string_decoder/":95,"util":40}],87:[function(require,module,exports){
14636
+ },{"./_stream_duplex":84,"./internal/streams/BufferList":89,"./internal/streams/stream":90,"_process":82,"core-util-is":44,"events":62,"inherits":66,"isarray":68,"process-nextick-args":81,"safe-buffer":95,"string_decoder/":97,"util":40}],87:[function(require,module,exports){
14380
14637
  // a transform stream is a readable/writable stream where you do
14381
14638
  // something with the data. Sometimes it's called a "filter",
14382
14639
  // but that's not a great name for it, since that implies a thing where
@@ -14473,7 +14730,6 @@ function Transform(options) {
14473
14730
 
14474
14731
  this._transformState = new TransformState(this);
14475
14732
 
14476
- // when the writable side finishes, then flush out anything remaining.
14477
14733
  var stream = this;
14478
14734
 
14479
14735
  // start out asking for a readable event once data is transformed.
@@ -14490,9 +14746,10 @@ function Transform(options) {
14490
14746
  if (typeof options.flush === 'function') this._flush = options.flush;
14491
14747
  }
14492
14748
 
14749
+ // When the writable side finishes, then flush out anything remaining.
14493
14750
  this.once('prefinish', function () {
14494
- if (typeof this._flush === 'function') this._flush(function (er) {
14495
- done(stream, er);
14751
+ if (typeof this._flush === 'function') this._flush(function (er, data) {
14752
+ done(stream, er, data);
14496
14753
  });else done(stream);
14497
14754
  });
14498
14755
  }
@@ -14513,7 +14770,7 @@ Transform.prototype.push = function (chunk, encoding) {
14513
14770
  // an error, then that'll put the hurt on the whole operation. If you
14514
14771
  // never call cb(), then you'll never get another chunk.
14515
14772
  Transform.prototype._transform = function (chunk, encoding, cb) {
14516
- throw new Error('Not implemented');
14773
+ throw new Error('_transform() is not implemented');
14517
14774
  };
14518
14775
 
14519
14776
  Transform.prototype._write = function (chunk, encoding, cb) {
@@ -14543,9 +14800,11 @@ Transform.prototype._read = function (n) {
14543
14800
  }
14544
14801
  };
14545
14802
 
14546
- function done(stream, er) {
14803
+ function done(stream, er, data) {
14547
14804
  if (er) return stream.emit('error', er);
14548
14805
 
14806
+ if (data !== null && data !== undefined) stream.push(data);
14807
+
14549
14808
  // if there's nothing in the write buffer, then that means
14550
14809
  // that nothing more will ever be provided
14551
14810
  var ws = stream._writableState;
@@ -14557,7 +14816,7 @@ function done(stream, er) {
14557
14816
 
14558
14817
  return stream.push(null);
14559
14818
  }
14560
- },{"./_stream_duplex":84,"core-util-is":45,"inherits":66}],88:[function(require,module,exports){
14819
+ },{"./_stream_duplex":84,"core-util-is":44,"inherits":66}],88:[function(require,module,exports){
14561
14820
  (function (process){
14562
14821
  // A bit simpler than readable streams.
14563
14822
  // Implement an async ._write(chunk, encoding, cb), and it'll handle all
@@ -14575,6 +14834,10 @@ var processNextTick = require('process-nextick-args');
14575
14834
  var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick;
14576
14835
  /*</replacement>*/
14577
14836
 
14837
+ /*<replacement>*/
14838
+ var Duplex;
14839
+ /*</replacement>*/
14840
+
14578
14841
  Writable.WritableState = WritableState;
14579
14842
 
14580
14843
  /*<replacement>*/
@@ -14589,19 +14852,11 @@ var internalUtil = {
14589
14852
  /*</replacement>*/
14590
14853
 
14591
14854
  /*<replacement>*/
14592
- var Stream;
14593
- (function () {
14594
- try {
14595
- Stream = require('st' + 'ream');
14596
- } catch (_) {} finally {
14597
- if (!Stream) Stream = require('events').EventEmitter;
14598
- }
14599
- })();
14855
+ var Stream = require('./internal/streams/stream');
14600
14856
  /*</replacement>*/
14601
14857
 
14602
- var Buffer = require('buffer').Buffer;
14603
14858
  /*<replacement>*/
14604
- var bufferShim = require('buffer-shims');
14859
+ var Buffer = require('safe-buffer').Buffer;
14605
14860
  /*</replacement>*/
14606
14861
 
14607
14862
  util.inherits(Writable, Stream);
@@ -14615,7 +14870,6 @@ function WriteReq(chunk, encoding, cb) {
14615
14870
  this.next = null;
14616
14871
  }
14617
14872
 
14618
- var Duplex;
14619
14873
  function WritableState(options, stream) {
14620
14874
  Duplex = Duplex || require('./_stream_duplex');
14621
14875
 
@@ -14635,8 +14889,9 @@ function WritableState(options, stream) {
14635
14889
  this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
14636
14890
 
14637
14891
  // cast to ints.
14638
- this.highWaterMark = ~ ~this.highWaterMark;
14892
+ this.highWaterMark = ~~this.highWaterMark;
14639
14893
 
14894
+ // drain event flag.
14640
14895
  this.needDrain = false;
14641
14896
  // at the start of calling end()
14642
14897
  this.ending = false;
@@ -14711,7 +14966,7 @@ function WritableState(options, stream) {
14711
14966
  this.corkedRequestsFree = new CorkedRequest(this);
14712
14967
  }
14713
14968
 
14714
- WritableState.prototype.getBuffer = function writableStateGetBuffer() {
14969
+ WritableState.prototype.getBuffer = function getBuffer() {
14715
14970
  var current = this.bufferedRequest;
14716
14971
  var out = [];
14717
14972
  while (current) {
@@ -14731,13 +14986,37 @@ WritableState.prototype.getBuffer = function writableStateGetBuffer() {
14731
14986
  } catch (_) {}
14732
14987
  })();
14733
14988
 
14734
- var Duplex;
14989
+ // Test _writableState for inheritance to account for Duplex streams,
14990
+ // whose prototype chain only points to Readable.
14991
+ var realHasInstance;
14992
+ if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
14993
+ realHasInstance = Function.prototype[Symbol.hasInstance];
14994
+ Object.defineProperty(Writable, Symbol.hasInstance, {
14995
+ value: function (object) {
14996
+ if (realHasInstance.call(this, object)) return true;
14997
+
14998
+ return object && object._writableState instanceof WritableState;
14999
+ }
15000
+ });
15001
+ } else {
15002
+ realHasInstance = function (object) {
15003
+ return object instanceof this;
15004
+ };
15005
+ }
15006
+
14735
15007
  function Writable(options) {
14736
15008
  Duplex = Duplex || require('./_stream_duplex');
14737
15009
 
14738
- // Writable ctor is applied to Duplexes, though they're not
14739
- // instanceof Writable, they're instanceof Readable.
14740
- if (!(this instanceof Writable) && !(this instanceof Duplex)) return new Writable(options);
15010
+ // Writable ctor is applied to Duplexes, too.
15011
+ // `realHasInstance` is necessary because using plain `instanceof`
15012
+ // would return false, as no `_writableState` property is attached.
15013
+
15014
+ // Trying to use the custom `instanceof` for Writable here will also break the
15015
+ // Node.js LazyTransform implementation, which has a non-trivial getter for
15016
+ // `_writableState` that would lead to infinite recursion.
15017
+ if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
15018
+ return new Writable(options);
15019
+ }
14741
15020
 
14742
15021
  this._writableState = new WritableState(options, this);
14743
15022
 
@@ -14765,20 +15044,16 @@ function writeAfterEnd(stream, cb) {
14765
15044
  processNextTick(cb, er);
14766
15045
  }
14767
15046
 
14768
- // If we get something that is not a buffer, string, null, or undefined,
14769
- // and we're not in objectMode, then that's an error.
14770
- // Otherwise stream chunks are all considered to be of length=1, and the
14771
- // watermarks determine how many objects to keep in the buffer, rather than
14772
- // how many bytes or characters.
15047
+ // Checks that a user-supplied chunk is valid, especially for the particular
15048
+ // mode the stream is in. Currently this means that `null` is never accepted
15049
+ // and undefined/non-string values are only allowed in object mode.
14773
15050
  function validChunk(stream, state, chunk, cb) {
14774
15051
  var valid = true;
14775
15052
  var er = false;
14776
- // Always throw error if a null is written
14777
- // if we are not in object mode then throw
14778
- // if it is not a buffer, string, or undefined.
15053
+
14779
15054
  if (chunk === null) {
14780
15055
  er = new TypeError('May not write null values to stream');
14781
- } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
15056
+ } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
14782
15057
  er = new TypeError('Invalid non-string/buffer chunk');
14783
15058
  }
14784
15059
  if (er) {
@@ -14792,19 +15067,20 @@ function validChunk(stream, state, chunk, cb) {
14792
15067
  Writable.prototype.write = function (chunk, encoding, cb) {
14793
15068
  var state = this._writableState;
14794
15069
  var ret = false;
15070
+ var isBuf = Buffer.isBuffer(chunk);
14795
15071
 
14796
15072
  if (typeof encoding === 'function') {
14797
15073
  cb = encoding;
14798
15074
  encoding = null;
14799
15075
  }
14800
15076
 
14801
- if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
15077
+ if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
14802
15078
 
14803
15079
  if (typeof cb !== 'function') cb = nop;
14804
15080
 
14805
- if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
15081
+ if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {
14806
15082
  state.pendingcb++;
14807
- ret = writeOrBuffer(this, state, chunk, encoding, cb);
15083
+ ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);
14808
15084
  }
14809
15085
 
14810
15086
  return ret;
@@ -14836,7 +15112,7 @@ Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
14836
15112
 
14837
15113
  function decodeChunk(state, chunk, encoding) {
14838
15114
  if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
14839
- chunk = bufferShim.from(chunk, encoding);
15115
+ chunk = Buffer.from(chunk, encoding);
14840
15116
  }
14841
15117
  return chunk;
14842
15118
  }
@@ -14844,10 +15120,11 @@ function decodeChunk(state, chunk, encoding) {
14844
15120
  // if we're already writing something, then just put this
14845
15121
  // in the queue, and wait our turn. Otherwise, call _write
14846
15122
  // If we return false, then we need a drain event, so set that flag.
14847
- function writeOrBuffer(stream, state, chunk, encoding, cb) {
14848
- chunk = decodeChunk(state, chunk, encoding);
14849
-
14850
- if (Buffer.isBuffer(chunk)) encoding = 'buffer';
15123
+ function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
15124
+ if (!isBuf) {
15125
+ chunk = decodeChunk(state, chunk, encoding);
15126
+ if (Buffer.isBuffer(chunk)) encoding = 'buffer';
15127
+ }
14851
15128
  var len = state.objectMode ? 1 : chunk.length;
14852
15129
 
14853
15130
  state.length += len;
@@ -14916,8 +15193,8 @@ function onwrite(stream, er) {
14916
15193
  asyncWrite(afterWrite, stream, state, finished, cb);
14917
15194
  /*</replacement>*/
14918
15195
  } else {
14919
- afterWrite(stream, state, finished, cb);
14920
- }
15196
+ afterWrite(stream, state, finished, cb);
15197
+ }
14921
15198
  }
14922
15199
  }
14923
15200
 
@@ -14997,7 +15274,7 @@ function clearBuffer(stream, state) {
14997
15274
  }
14998
15275
 
14999
15276
  Writable.prototype._write = function (chunk, encoding, cb) {
15000
- cb(new Error('not implemented'));
15277
+ cb(new Error('_write() is not implemented'));
15001
15278
  };
15002
15279
 
15003
15280
  Writable.prototype._writev = null;
@@ -15068,7 +15345,6 @@ function CorkedRequest(state) {
15068
15345
 
15069
15346
  this.next = null;
15070
15347
  this.entry = null;
15071
-
15072
15348
  this.finish = function (err) {
15073
15349
  var entry = _this.entry;
15074
15350
  _this.entry = null;
@@ -15086,12 +15362,12 @@ function CorkedRequest(state) {
15086
15362
  };
15087
15363
  }
15088
15364
  }).call(this,require('_process'))
15089
- },{"./_stream_duplex":84,"_process":82,"buffer":44,"buffer-shims":43,"core-util-is":45,"events":63,"inherits":66,"process-nextick-args":81,"util-deprecate":96}],89:[function(require,module,exports){
15365
+ },{"./_stream_duplex":84,"./internal/streams/stream":90,"_process":82,"core-util-is":44,"inherits":66,"process-nextick-args":81,"safe-buffer":95,"util-deprecate":99}],89:[function(require,module,exports){
15090
15366
  'use strict';
15091
15367
 
15092
- var Buffer = require('buffer').Buffer;
15093
15368
  /*<replacement>*/
15094
- var bufferShim = require('buffer-shims');
15369
+
15370
+ var Buffer = require('safe-buffer').Buffer;
15095
15371
  /*</replacement>*/
15096
15372
 
15097
15373
  module.exports = BufferList;
@@ -15139,9 +15415,9 @@ BufferList.prototype.join = function (s) {
15139
15415
  };
15140
15416
 
15141
15417
  BufferList.prototype.concat = function (n) {
15142
- if (this.length === 0) return bufferShim.alloc(0);
15418
+ if (this.length === 0) return Buffer.alloc(0);
15143
15419
  if (this.length === 1) return this.head.data;
15144
- var ret = bufferShim.allocUnsafe(n >>> 0);
15420
+ var ret = Buffer.allocUnsafe(n >>> 0);
15145
15421
  var p = this.head;
15146
15422
  var i = 0;
15147
15423
  while (p) {
@@ -15151,36 +15427,31 @@ BufferList.prototype.concat = function (n) {
15151
15427
  }
15152
15428
  return ret;
15153
15429
  };
15154
- },{"buffer":44,"buffer-shims":43}],90:[function(require,module,exports){
15155
- module.exports = require("./lib/_stream_passthrough.js")
15430
+ },{"safe-buffer":95}],90:[function(require,module,exports){
15431
+ module.exports = require('events').EventEmitter;
15156
15432
 
15157
- },{"./lib/_stream_passthrough.js":85}],91:[function(require,module,exports){
15158
- (function (process){
15159
- var Stream = (function (){
15160
- try {
15161
- return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify
15162
- } catch(_){}
15163
- }());
15433
+ },{"events":62}],91:[function(require,module,exports){
15434
+ module.exports = require('./readable').PassThrough
15435
+
15436
+ },{"./readable":92}],92:[function(require,module,exports){
15164
15437
  exports = module.exports = require('./lib/_stream_readable.js');
15165
- exports.Stream = Stream || exports;
15438
+ exports.Stream = exports;
15166
15439
  exports.Readable = exports;
15167
15440
  exports.Writable = require('./lib/_stream_writable.js');
15168
15441
  exports.Duplex = require('./lib/_stream_duplex.js');
15169
15442
  exports.Transform = require('./lib/_stream_transform.js');
15170
15443
  exports.PassThrough = require('./lib/_stream_passthrough.js');
15171
15444
 
15172
- if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) {
15173
- module.exports = Stream;
15174
- }
15445
+ },{"./lib/_stream_duplex.js":84,"./lib/_stream_passthrough.js":85,"./lib/_stream_readable.js":86,"./lib/_stream_transform.js":87,"./lib/_stream_writable.js":88}],93:[function(require,module,exports){
15446
+ module.exports = require('./readable').Transform
15175
15447
 
15176
- }).call(this,require('_process'))
15177
- },{"./lib/_stream_duplex.js":84,"./lib/_stream_passthrough.js":85,"./lib/_stream_readable.js":86,"./lib/_stream_transform.js":87,"./lib/_stream_writable.js":88,"_process":82}],92:[function(require,module,exports){
15178
- module.exports = require("./lib/_stream_transform.js")
15448
+ },{"./readable":92}],94:[function(require,module,exports){
15449
+ module.exports = require('./lib/_stream_writable.js');
15179
15450
 
15180
- },{"./lib/_stream_transform.js":87}],93:[function(require,module,exports){
15181
- module.exports = require("./lib/_stream_writable.js")
15451
+ },{"./lib/_stream_writable.js":88}],95:[function(require,module,exports){
15452
+ module.exports = require('buffer')
15182
15453
 
15183
- },{"./lib/_stream_writable.js":88}],94:[function(require,module,exports){
15454
+ },{"buffer":43}],96:[function(require,module,exports){
15184
15455
  // Copyright Joyent, Inc. and other Node contributors.
15185
15456
  //
15186
15457
  // Permission is hereby granted, free of charge, to any person obtaining a
@@ -15309,230 +15580,344 @@ Stream.prototype.pipe = function(dest, options) {
15309
15580
  return dest;
15310
15581
  };
15311
15582
 
15312
- },{"events":63,"inherits":66,"readable-stream/duplex.js":83,"readable-stream/passthrough.js":90,"readable-stream/readable.js":91,"readable-stream/transform.js":92,"readable-stream/writable.js":93}],95:[function(require,module,exports){
15313
- // Copyright Joyent, Inc. and other Node contributors.
15314
- //
15315
- // Permission is hereby granted, free of charge, to any person obtaining a
15316
- // copy of this software and associated documentation files (the
15317
- // "Software"), to deal in the Software without restriction, including
15318
- // without limitation the rights to use, copy, modify, merge, publish,
15319
- // distribute, sublicense, and/or sell copies of the Software, and to permit
15320
- // persons to whom the Software is furnished to do so, subject to the
15321
- // following conditions:
15322
- //
15323
- // The above copyright notice and this permission notice shall be included
15324
- // in all copies or substantial portions of the Software.
15325
- //
15326
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15327
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
15328
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
15329
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
15330
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
15331
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
15332
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
15333
-
15334
- var Buffer = require('buffer').Buffer;
15583
+ },{"events":62,"inherits":66,"readable-stream/duplex.js":83,"readable-stream/passthrough.js":91,"readable-stream/readable.js":92,"readable-stream/transform.js":93,"readable-stream/writable.js":94}],97:[function(require,module,exports){
15584
+ 'use strict';
15335
15585
 
15336
- var isBufferEncoding = Buffer.isEncoding
15337
- || function(encoding) {
15338
- switch (encoding && encoding.toLowerCase()) {
15339
- 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 true;
15340
- default: return false;
15341
- }
15342
- }
15586
+ var Buffer = require('safe-buffer').Buffer;
15343
15587
 
15588
+ var isEncoding = Buffer.isEncoding || function (encoding) {
15589
+ encoding = '' + encoding;
15590
+ switch (encoding && encoding.toLowerCase()) {
15591
+ 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':
15592
+ return true;
15593
+ default:
15594
+ return false;
15595
+ }
15596
+ };
15344
15597
 
15345
- function assertEncoding(encoding) {
15346
- if (encoding && !isBufferEncoding(encoding)) {
15347
- throw new Error('Unknown encoding: ' + encoding);
15598
+ function _normalizeEncoding(enc) {
15599
+ if (!enc) return 'utf8';
15600
+ var retried;
15601
+ while (true) {
15602
+ switch (enc) {
15603
+ case 'utf8':
15604
+ case 'utf-8':
15605
+ return 'utf8';
15606
+ case 'ucs2':
15607
+ case 'ucs-2':
15608
+ case 'utf16le':
15609
+ case 'utf-16le':
15610
+ return 'utf16le';
15611
+ case 'latin1':
15612
+ case 'binary':
15613
+ return 'latin1';
15614
+ case 'base64':
15615
+ case 'ascii':
15616
+ case 'hex':
15617
+ return enc;
15618
+ default:
15619
+ if (retried) return; // undefined
15620
+ enc = ('' + enc).toLowerCase();
15621
+ retried = true;
15622
+ }
15348
15623
  }
15624
+ };
15625
+
15626
+ // Do not cache `Buffer.isEncoding` when checking encoding names as some
15627
+ // modules monkey-patch it to support additional encodings
15628
+ function normalizeEncoding(enc) {
15629
+ var nenc = _normalizeEncoding(enc);
15630
+ if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);
15631
+ return nenc || enc;
15349
15632
  }
15350
15633
 
15351
15634
  // StringDecoder provides an interface for efficiently splitting a series of
15352
15635
  // buffers into a series of JS strings without breaking apart multi-byte
15353
- // characters. CESU-8 is handled as part of the UTF-8 encoding.
15354
- //
15355
- // @TODO Handling all encodings inside a single object makes it very difficult
15356
- // to reason about this code, so it should be split up in the future.
15357
- // @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code
15358
- // points as used by CESU-8.
15359
- var StringDecoder = exports.StringDecoder = function(encoding) {
15360
- this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
15361
- assertEncoding(encoding);
15636
+ // characters.
15637
+ exports.StringDecoder = StringDecoder;
15638
+ function StringDecoder(encoding) {
15639
+ this.encoding = normalizeEncoding(encoding);
15640
+ var nb;
15362
15641
  switch (this.encoding) {
15363
- case 'utf8':
15364
- // CESU-8 represents each of Surrogate Pair by 3-bytes
15365
- this.surrogateSize = 3;
15366
- break;
15367
- case 'ucs2':
15368
15642
  case 'utf16le':
15369
- // UTF-16 represents each of Surrogate Pair by 2-bytes
15370
- this.surrogateSize = 2;
15371
- this.detectIncompleteChar = utf16DetectIncompleteChar;
15643
+ this.text = utf16Text;
15644
+ this.end = utf16End;
15645
+ nb = 4;
15646
+ break;
15647
+ case 'utf8':
15648
+ this.fillLast = utf8FillLast;
15649
+ nb = 4;
15372
15650
  break;
15373
15651
  case 'base64':
15374
- // Base-64 stores 3 bytes in 4 chars, and pads the remainder.
15375
- this.surrogateSize = 3;
15376
- this.detectIncompleteChar = base64DetectIncompleteChar;
15652
+ this.text = base64Text;
15653
+ this.end = base64End;
15654
+ nb = 3;
15377
15655
  break;
15378
15656
  default:
15379
- this.write = passThroughWrite;
15657
+ this.write = simpleWrite;
15658
+ this.end = simpleEnd;
15380
15659
  return;
15381
15660
  }
15661
+ this.lastNeed = 0;
15662
+ this.lastTotal = 0;
15663
+ this.lastChar = Buffer.allocUnsafe(nb);
15664
+ }
15665
+
15666
+ StringDecoder.prototype.write = function (buf) {
15667
+ if (buf.length === 0) return '';
15668
+ var r;
15669
+ var i;
15670
+ if (this.lastNeed) {
15671
+ r = this.fillLast(buf);
15672
+ if (r === undefined) return '';
15673
+ i = this.lastNeed;
15674
+ this.lastNeed = 0;
15675
+ } else {
15676
+ i = 0;
15677
+ }
15678
+ if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);
15679
+ return r || '';
15680
+ };
15681
+
15682
+ StringDecoder.prototype.end = utf8End;
15382
15683
 
15383
- // Enough space to store all bytes of a single character. UTF-8 needs 4
15384
- // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).
15385
- this.charBuffer = new Buffer(6);
15386
- // Number of bytes received for the current incomplete multi-byte character.
15387
- this.charReceived = 0;
15388
- // Number of bytes expected for the current incomplete multi-byte character.
15389
- this.charLength = 0;
15684
+ // Returns only complete characters in a Buffer
15685
+ StringDecoder.prototype.text = utf8Text;
15686
+
15687
+ // Attempts to complete a partial non-UTF-8 character using bytes from a Buffer
15688
+ StringDecoder.prototype.fillLast = function (buf) {
15689
+ if (this.lastNeed <= buf.length) {
15690
+ buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);
15691
+ return this.lastChar.toString(this.encoding, 0, this.lastTotal);
15692
+ }
15693
+ buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);
15694
+ this.lastNeed -= buf.length;
15390
15695
  };
15391
15696
 
15697
+ // Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a
15698
+ // continuation byte.
15699
+ function utf8CheckByte(byte) {
15700
+ if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;
15701
+ return -1;
15702
+ }
15392
15703
 
15393
- // write decodes the given buffer and returns it as JS string that is
15394
- // guaranteed to not contain any partial multi-byte characters. Any partial
15395
- // character found at the end of the buffer is buffered up, and will be
15396
- // returned when calling write again with the remaining bytes.
15397
- //
15398
- // Note: Converting a Buffer containing an orphan surrogate to a String
15399
- // currently works, but converting a String to a Buffer (via `new Buffer`, or
15400
- // Buffer#write) will replace incomplete surrogates with the unicode
15401
- // replacement character. See https://codereview.chromium.org/121173009/ .
15402
- StringDecoder.prototype.write = function(buffer) {
15403
- var charStr = '';
15404
- // if our last write ended with an incomplete multibyte character
15405
- while (this.charLength) {
15406
- // determine how many remaining bytes this buffer has to offer for this char
15407
- var available = (buffer.length >= this.charLength - this.charReceived) ?
15408
- this.charLength - this.charReceived :
15409
- buffer.length;
15410
-
15411
- // add the new bytes to the char buffer
15412
- buffer.copy(this.charBuffer, this.charReceived, 0, available);
15413
- this.charReceived += available;
15414
-
15415
- if (this.charReceived < this.charLength) {
15416
- // still not enough chars in this buffer? wait for more ...
15417
- return '';
15418
- }
15419
-
15420
- // remove bytes belonging to the current character from the buffer
15421
- buffer = buffer.slice(available, buffer.length);
15422
-
15423
- // get the character that was split
15424
- charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);
15425
-
15426
- // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character
15427
- var charCode = charStr.charCodeAt(charStr.length - 1);
15428
- if (charCode >= 0xD800 && charCode <= 0xDBFF) {
15429
- this.charLength += this.surrogateSize;
15430
- charStr = '';
15431
- continue;
15704
+ // Checks at most 3 bytes at the end of a Buffer in order to detect an
15705
+ // incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)
15706
+ // needed to complete the UTF-8 character (if applicable) are returned.
15707
+ function utf8CheckIncomplete(self, buf, i) {
15708
+ var j = buf.length - 1;
15709
+ if (j < i) return 0;
15710
+ var nb = utf8CheckByte(buf[j]);
15711
+ if (nb >= 0) {
15712
+ if (nb > 0) self.lastNeed = nb - 1;
15713
+ return nb;
15714
+ }
15715
+ if (--j < i) return 0;
15716
+ nb = utf8CheckByte(buf[j]);
15717
+ if (nb >= 0) {
15718
+ if (nb > 0) self.lastNeed = nb - 2;
15719
+ return nb;
15720
+ }
15721
+ if (--j < i) return 0;
15722
+ nb = utf8CheckByte(buf[j]);
15723
+ if (nb >= 0) {
15724
+ if (nb > 0) {
15725
+ if (nb === 2) nb = 0;else self.lastNeed = nb - 3;
15432
15726
  }
15433
- this.charReceived = this.charLength = 0;
15727
+ return nb;
15728
+ }
15729
+ return 0;
15730
+ }
15434
15731
 
15435
- // if there are no more bytes in this buffer, just emit our char
15436
- if (buffer.length === 0) {
15437
- return charStr;
15732
+ // Validates as many continuation bytes for a multi-byte UTF-8 character as
15733
+ // needed or are available. If we see a non-continuation byte where we expect
15734
+ // one, we "replace" the validated continuation bytes we've seen so far with
15735
+ // UTF-8 replacement characters ('\ufffd'), to match v8's UTF-8 decoding
15736
+ // behavior. The continuation byte check is included three times in the case
15737
+ // where all of the continuation bytes for a character exist in the same buffer.
15738
+ // It is also done this way as a slight performance increase instead of using a
15739
+ // loop.
15740
+ function utf8CheckExtraBytes(self, buf, p) {
15741
+ if ((buf[0] & 0xC0) !== 0x80) {
15742
+ self.lastNeed = 0;
15743
+ return '\ufffd'.repeat(p);
15744
+ }
15745
+ if (self.lastNeed > 1 && buf.length > 1) {
15746
+ if ((buf[1] & 0xC0) !== 0x80) {
15747
+ self.lastNeed = 1;
15748
+ return '\ufffd'.repeat(p + 1);
15749
+ }
15750
+ if (self.lastNeed > 2 && buf.length > 2) {
15751
+ if ((buf[2] & 0xC0) !== 0x80) {
15752
+ self.lastNeed = 2;
15753
+ return '\ufffd'.repeat(p + 2);
15754
+ }
15438
15755
  }
15439
- break;
15440
15756
  }
15757
+ }
15441
15758
 
15442
- // determine and set charLength / charReceived
15443
- this.detectIncompleteChar(buffer);
15444
-
15445
- var end = buffer.length;
15446
- if (this.charLength) {
15447
- // buffer the incomplete character bytes we got
15448
- buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);
15449
- end -= this.charReceived;
15759
+ // Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.
15760
+ function utf8FillLast(buf) {
15761
+ var p = this.lastTotal - this.lastNeed;
15762
+ var r = utf8CheckExtraBytes(this, buf, p);
15763
+ if (r !== undefined) return r;
15764
+ if (this.lastNeed <= buf.length) {
15765
+ buf.copy(this.lastChar, p, 0, this.lastNeed);
15766
+ return this.lastChar.toString(this.encoding, 0, this.lastTotal);
15767
+ }
15768
+ buf.copy(this.lastChar, p, 0, buf.length);
15769
+ this.lastNeed -= buf.length;
15770
+ }
15771
+
15772
+ // Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a
15773
+ // partial character, the character's bytes are buffered until the required
15774
+ // number of bytes are available.
15775
+ function utf8Text(buf, i) {
15776
+ var total = utf8CheckIncomplete(this, buf, i);
15777
+ if (!this.lastNeed) return buf.toString('utf8', i);
15778
+ this.lastTotal = total;
15779
+ var end = buf.length - (total - this.lastNeed);
15780
+ buf.copy(this.lastChar, 0, end);
15781
+ return buf.toString('utf8', i, end);
15782
+ }
15783
+
15784
+ // For UTF-8, a replacement character for each buffered byte of a (partial)
15785
+ // character needs to be added to the output.
15786
+ function utf8End(buf) {
15787
+ var r = buf && buf.length ? this.write(buf) : '';
15788
+ if (this.lastNeed) return r + '\ufffd'.repeat(this.lastTotal - this.lastNeed);
15789
+ return r;
15790
+ }
15791
+
15792
+ // UTF-16LE typically needs two bytes per character, but even if we have an even
15793
+ // number of bytes available, we need to check if we end on a leading/high
15794
+ // surrogate. In that case, we need to wait for the next two bytes in order to
15795
+ // decode the last character properly.
15796
+ function utf16Text(buf, i) {
15797
+ if ((buf.length - i) % 2 === 0) {
15798
+ var r = buf.toString('utf16le', i);
15799
+ if (r) {
15800
+ var c = r.charCodeAt(r.length - 1);
15801
+ if (c >= 0xD800 && c <= 0xDBFF) {
15802
+ this.lastNeed = 2;
15803
+ this.lastTotal = 4;
15804
+ this.lastChar[0] = buf[buf.length - 2];
15805
+ this.lastChar[1] = buf[buf.length - 1];
15806
+ return r.slice(0, -1);
15807
+ }
15808
+ }
15809
+ return r;
15450
15810
  }
15811
+ this.lastNeed = 1;
15812
+ this.lastTotal = 2;
15813
+ this.lastChar[0] = buf[buf.length - 1];
15814
+ return buf.toString('utf16le', i, buf.length - 1);
15815
+ }
15451
15816
 
15452
- charStr += buffer.toString(this.encoding, 0, end);
15817
+ // For UTF-16LE we do not explicitly append special replacement characters if we
15818
+ // end on a partial character, we simply let v8 handle that.
15819
+ function utf16End(buf) {
15820
+ var r = buf && buf.length ? this.write(buf) : '';
15821
+ if (this.lastNeed) {
15822
+ var end = this.lastTotal - this.lastNeed;
15823
+ return r + this.lastChar.toString('utf16le', 0, end);
15824
+ }
15825
+ return r;
15826
+ }
15453
15827
 
15454
- var end = charStr.length - 1;
15455
- var charCode = charStr.charCodeAt(end);
15456
- // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character
15457
- if (charCode >= 0xD800 && charCode <= 0xDBFF) {
15458
- var size = this.surrogateSize;
15459
- this.charLength += size;
15460
- this.charReceived += size;
15461
- this.charBuffer.copy(this.charBuffer, size, 0, size);
15462
- buffer.copy(this.charBuffer, 0, 0, size);
15463
- return charStr.substring(0, end);
15828
+ function base64Text(buf, i) {
15829
+ var n = (buf.length - i) % 3;
15830
+ if (n === 0) return buf.toString('base64', i);
15831
+ this.lastNeed = 3 - n;
15832
+ this.lastTotal = 3;
15833
+ if (n === 1) {
15834
+ this.lastChar[0] = buf[buf.length - 1];
15835
+ } else {
15836
+ this.lastChar[0] = buf[buf.length - 2];
15837
+ this.lastChar[1] = buf[buf.length - 1];
15464
15838
  }
15839
+ return buf.toString('base64', i, buf.length - n);
15840
+ }
15465
15841
 
15466
- // or just emit the charStr
15467
- return charStr;
15468
- };
15842
+ function base64End(buf) {
15843
+ var r = buf && buf.length ? this.write(buf) : '';
15844
+ if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);
15845
+ return r;
15846
+ }
15469
15847
 
15470
- // detectIncompleteChar determines if there is an incomplete UTF-8 character at
15471
- // the end of the given buffer. If so, it sets this.charLength to the byte
15472
- // length that character, and sets this.charReceived to the number of bytes
15473
- // that are available for this character.
15474
- StringDecoder.prototype.detectIncompleteChar = function(buffer) {
15475
- // determine how many bytes we have to check at the end of this buffer
15476
- var i = (buffer.length >= 3) ? 3 : buffer.length;
15848
+ // Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)
15849
+ function simpleWrite(buf) {
15850
+ return buf.toString(this.encoding);
15851
+ }
15477
15852
 
15478
- // Figure out if one of the last i bytes of our buffer announces an
15479
- // incomplete char.
15480
- for (; i > 0; i--) {
15481
- var c = buffer[buffer.length - i];
15853
+ function simpleEnd(buf) {
15854
+ return buf && buf.length ? this.write(buf) : '';
15855
+ }
15856
+ },{"safe-buffer":98}],98:[function(require,module,exports){
15857
+ /* eslint-disable node/no-deprecated-api */
15858
+ var buffer = require('buffer')
15859
+ var Buffer = buffer.Buffer
15482
15860
 
15483
- // See http://en.wikipedia.org/wiki/UTF-8#Description
15861
+ // alternative to using Object.keys for old browsers
15862
+ function copyProps (src, dst) {
15863
+ for (var key in src) {
15864
+ dst[key] = src[key]
15865
+ }
15866
+ }
15867
+ if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
15868
+ module.exports = buffer
15869
+ } else {
15870
+ // Copy properties from require('buffer')
15871
+ copyProps(buffer, exports)
15872
+ exports.Buffer = SafeBuffer
15873
+ }
15484
15874
 
15485
- // 110XXXXX
15486
- if (i == 1 && c >> 5 == 0x06) {
15487
- this.charLength = 2;
15488
- break;
15489
- }
15875
+ function SafeBuffer (arg, encodingOrOffset, length) {
15876
+ return Buffer(arg, encodingOrOffset, length)
15877
+ }
15490
15878
 
15491
- // 1110XXXX
15492
- if (i <= 2 && c >> 4 == 0x0E) {
15493
- this.charLength = 3;
15494
- break;
15495
- }
15879
+ // Copy static methods from Buffer
15880
+ copyProps(Buffer, SafeBuffer)
15496
15881
 
15497
- // 11110XXX
15498
- if (i <= 3 && c >> 3 == 0x1E) {
15499
- this.charLength = 4;
15500
- break;
15501
- }
15882
+ SafeBuffer.from = function (arg, encodingOrOffset, length) {
15883
+ if (typeof arg === 'number') {
15884
+ throw new TypeError('Argument must not be a number')
15502
15885
  }
15503
- this.charReceived = i;
15504
- };
15505
-
15506
- StringDecoder.prototype.end = function(buffer) {
15507
- var res = '';
15508
- if (buffer && buffer.length)
15509
- res = this.write(buffer);
15886
+ return Buffer(arg, encodingOrOffset, length)
15887
+ }
15510
15888
 
15511
- if (this.charReceived) {
15512
- var cr = this.charReceived;
15513
- var buf = this.charBuffer;
15514
- var enc = this.encoding;
15515
- res += buf.slice(0, cr).toString(enc);
15889
+ SafeBuffer.alloc = function (size, fill, encoding) {
15890
+ if (typeof size !== 'number') {
15891
+ throw new TypeError('Argument must be a number')
15516
15892
  }
15517
-
15518
- return res;
15519
- };
15520
-
15521
- function passThroughWrite(buffer) {
15522
- return buffer.toString(this.encoding);
15893
+ var buf = Buffer(size)
15894
+ if (fill !== undefined) {
15895
+ if (typeof encoding === 'string') {
15896
+ buf.fill(fill, encoding)
15897
+ } else {
15898
+ buf.fill(fill)
15899
+ }
15900
+ } else {
15901
+ buf.fill(0)
15902
+ }
15903
+ return buf
15523
15904
  }
15524
15905
 
15525
- function utf16DetectIncompleteChar(buffer) {
15526
- this.charReceived = buffer.length % 2;
15527
- this.charLength = this.charReceived ? 2 : 0;
15906
+ SafeBuffer.allocUnsafe = function (size) {
15907
+ if (typeof size !== 'number') {
15908
+ throw new TypeError('Argument must be a number')
15909
+ }
15910
+ return Buffer(size)
15528
15911
  }
15529
15912
 
15530
- function base64DetectIncompleteChar(buffer) {
15531
- this.charReceived = buffer.length % 3;
15532
- this.charLength = this.charReceived ? 3 : 0;
15913
+ SafeBuffer.allocUnsafeSlow = function (size) {
15914
+ if (typeof size !== 'number') {
15915
+ throw new TypeError('Argument must be a number')
15916
+ }
15917
+ return buffer.SlowBuffer(size)
15533
15918
  }
15534
15919
 
15535
- },{"buffer":44}],96:[function(require,module,exports){
15920
+ },{"buffer":43}],99:[function(require,module,exports){
15536
15921
  (function (global){
15537
15922
 
15538
15923
  /**
@@ -15603,16 +15988,16 @@ function config (name) {
15603
15988
  }
15604
15989
 
15605
15990
  }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
15606
- },{}],97:[function(require,module,exports){
15991
+ },{}],100:[function(require,module,exports){
15607
15992
  arguments[4][66][0].apply(exports,arguments)
15608
- },{"dup":66}],98:[function(require,module,exports){
15993
+ },{"dup":66}],101:[function(require,module,exports){
15609
15994
  module.exports = function isBuffer(arg) {
15610
15995
  return arg && typeof arg === 'object'
15611
15996
  && typeof arg.copy === 'function'
15612
15997
  && typeof arg.fill === 'function'
15613
15998
  && typeof arg.readUInt8 === 'function';
15614
15999
  }
15615
- },{}],99:[function(require,module,exports){
16000
+ },{}],102:[function(require,module,exports){
15616
16001
  (function (process,global){
15617
16002
  // Copyright Joyent, Inc. and other Node contributors.
15618
16003
  //
@@ -16202,4 +16587,4 @@ function hasOwnProperty(obj, prop) {
16202
16587
  }
16203
16588
 
16204
16589
  }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
16205
- },{"./support/isBuffer":98,"_process":82,"inherits":97}]},{},[1]);
16590
+ },{"./support/isBuffer":101,"_process":82,"inherits":100}]},{},[1]);