@esri/hub-common 9.31.0 → 9.31.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.
@@ -1,5 +1,5 @@
1
1
  /* @preserve
2
- * @esri/hub-common - v9.30.1 - Thu May 12 2022 14:13:55 GMT+0000 (Coordinated Universal Time)
2
+ * @esri/hub-common - v9.31.2 - Thu May 12 2022 23:19:02 GMT+0000 (Coordinated Universal Time)
3
3
  * Copyright (c) 2022 Environmental Systems Research Institute, Inc.
4
4
  * Apache-2.0
5
5
  */
@@ -6547,7 +6547,9 @@
6547
6547
  var family;
6548
6548
  // override default behavior for the rows that are highlighted in yellow here:
6549
6549
  // https://esriis.sharepoint.com/:x:/r/sites/ArcGISHub/_layouts/15/Doc.aspx?sourcedoc=%7BADA1C9DC-4F6C-4DE4-92C6-693EF9571CFA%7D&file=Hub%20Routes.xlsx&nav=MTBfe0VENEREQzI4LUZFMDctNEI0Ri04NjcyLThCQUE2MTA0MEZGRn1fezIwMTIwMEJFLTA4MEQtNEExRC05QzA4LTE5MTAzOUQwMEE1RH0&action=default&mobileredirect=true&cid=df1c874b-c367-4cea-bc13-7bebfad3f2ac
6550
- switch (type.toLowerCase()) {
6550
+ // DEPRECATED: we should make type a required parameter
6551
+ // and just do type.toLowerCase() at the next breaking change
6552
+ switch ((type || "").toLowerCase()) {
6551
6553
  case "image service":
6552
6554
  family = "dataset";
6553
6555
  break;
@@ -8222,8 +8224,6 @@
8222
8224
  return msg;
8223
8225
  }
8224
8226
 
8225
- var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
8226
-
8227
8227
  function createCommonjsModule(fn, basedir, module) {
8228
8228
  return module = {
8229
8229
  path: basedir,
@@ -8239,52 +8239,56 @@
8239
8239
  }
8240
8240
 
8241
8241
  var util = createCommonjsModule(function (module, exports) {
8242
- var getAllMatches = function(string, regex) {
8243
- var matches = [];
8244
- var match = regex.exec(string);
8242
+
8243
+ const nameStartChar = ':A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD';
8244
+ const nameChar = nameStartChar + '\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040';
8245
+ const nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*';
8246
+ const regexName = new RegExp('^' + nameRegexp + '$');
8247
+
8248
+ const getAllMatches = function(string, regex) {
8249
+ const matches = [];
8250
+ let match = regex.exec(string);
8245
8251
  while (match) {
8246
- var allmatches = [];
8247
- var len = match.length;
8248
- for (var index = 0; index < len; index++) {
8249
- allmatches.push(match[index]);
8250
- }
8252
+ const allmatches = [];
8253
+ allmatches.startIndex = regex.lastIndex - match[0].length;
8254
+ const len = match.length;
8255
+ for (let index = 0; index < len; index++) {
8256
+ allmatches.push(match[index]);
8257
+ }
8251
8258
  matches.push(allmatches);
8252
8259
  match = regex.exec(string);
8253
8260
  }
8254
8261
  return matches;
8255
8262
  };
8256
8263
 
8257
-
8258
- var doesMatch = function(string,regex){
8259
- var match = regex.exec(string);
8260
- if(match === null || typeof match === "undefined") return false;
8261
- else return true;
8262
- };
8263
-
8264
- var doesNotMatch = function(string,regex){
8265
- return !doesMatch(string,regex);
8264
+ const isName = function(string) {
8265
+ const match = regexName.exec(string);
8266
+ return !(match === null || typeof match === 'undefined');
8266
8267
  };
8267
8268
 
8268
-
8269
- exports.isExist= function(v){
8270
- return typeof v !== "undefined";
8269
+ exports.isExist = function(v) {
8270
+ return typeof v !== 'undefined';
8271
8271
  };
8272
8272
 
8273
- exports.isEmptyObject= function(obj) {
8274
- return Object.keys(obj).length === 0
8273
+ exports.isEmptyObject = function(obj) {
8274
+ return Object.keys(obj).length === 0;
8275
8275
  };
8276
8276
 
8277
8277
  /**
8278
8278
  * Copy all the properties of a into b.
8279
8279
  * @param {*} target
8280
- * @param {*} a
8281
- */
8282
- exports.merge =function (target,a){
8283
- if(a){
8284
- var keys = Object.keys(a); // will return an array of own properties
8285
- var len = keys.length; //don't make it inline
8286
- for(var i = 0; i < len; i++){
8287
- target[keys[i]] = a[keys[i]] ;
8280
+ * @param {*} a
8281
+ */
8282
+ exports.merge = function(target, a, arrayMode) {
8283
+ if (a) {
8284
+ const keys = Object.keys(a); // will return an array of own properties
8285
+ const len = keys.length; //don't make it inline
8286
+ for (let i = 0; i < len; i++) {
8287
+ if (arrayMode === 'strict') {
8288
+ target[keys[i]] = [ a[keys[i]] ];
8289
+ } else {
8290
+ target[keys[i]] = a[keys[i]];
8291
+ }
8288
8292
  }
8289
8293
  }
8290
8294
  };
@@ -8292,597 +8296,1520 @@
8292
8296
  return Object.assign(b,a);
8293
8297
  } */
8294
8298
 
8295
- exports.getValue = function (v){
8296
- if(exports.isExist(v)){
8297
- return v;
8298
- }else {
8299
- return "";
8299
+ exports.getValue = function(v) {
8300
+ if (exports.isExist(v)) {
8301
+ return v;
8302
+ } else {
8303
+ return '';
8304
+ }
8305
+ };
8306
+
8307
+ // const fakeCall = function(a) {return a;};
8308
+ // const fakeCallNoReturn = function() {};
8309
+
8310
+ exports.buildOptions = function(options, defaultOptions, props) {
8311
+ let newOptions = {};
8312
+ if (!options) {
8313
+ return defaultOptions; //if there are not options
8314
+ }
8315
+
8316
+ for (let i = 0; i < props.length; i++) {
8317
+ if (options[props[i]] !== undefined) {
8318
+ newOptions[props[i]] = options[props[i]];
8319
+ } else {
8320
+ newOptions[props[i]] = defaultOptions[props[i]];
8321
+ }
8300
8322
  }
8323
+ return newOptions;
8301
8324
  };
8302
8325
 
8303
- exports.doesMatch = doesMatch;
8304
- exports.doesNotMatch = doesNotMatch;
8326
+ /**
8327
+ * Check if a tag name should be treated as array
8328
+ *
8329
+ * @param tagName the node tagname
8330
+ * @param arrayMode the array mode option
8331
+ * @param parentTagName the parent tag name
8332
+ * @returns {boolean} true if node should be parsed as array
8333
+ */
8334
+ exports.isTagNameInArrayMode = function (tagName, arrayMode, parentTagName) {
8335
+ if (arrayMode === false) {
8336
+ return false;
8337
+ } else if (arrayMode instanceof RegExp) {
8338
+ return arrayMode.test(tagName);
8339
+ } else if (typeof arrayMode === 'function') {
8340
+ return !!arrayMode(tagName, parentTagName);
8341
+ }
8342
+
8343
+ return arrayMode === "strict";
8344
+ };
8345
+
8346
+ exports.isName = isName;
8305
8347
  exports.getAllMatches = getAllMatches;
8348
+ exports.nameRegexp = nameRegexp;
8306
8349
  });
8307
8350
 
8308
- var xmlNode = function(tagname,parent,val){
8309
- this.tagname = tagname;
8310
- this.parent = parent;
8311
- this.child = [];//child tags
8312
- this.attrsMap;//attributes map
8313
- this.val = val;//text only
8314
- this.addChild = function (child){
8315
- this.child.push(child);
8316
- };
8317
- };
8351
+ const convertToJson = function(node, options, parentTagName) {
8352
+ const jObj = {};
8318
8353
 
8319
- var he = createCommonjsModule(function (module, exports) {
8320
- (function(root) {
8321
-
8322
- // Detect free variables `exports`.
8323
- var freeExports = exports;
8324
-
8325
- // Detect free variable `module`.
8326
- var freeModule = module &&
8327
- module.exports == freeExports && module;
8328
-
8329
- // Detect free variable `global`, from Node.js or Browserified code,
8330
- // and use it as `root`.
8331
- var freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal;
8332
- if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {
8333
- root = freeGlobal;
8334
- }
8335
-
8336
- /*--------------------------------------------------------------------------*/
8337
-
8338
- // All astral symbols.
8339
- var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
8340
- // All ASCII symbols (not just printable ASCII) except those listed in the
8341
- // first column of the overrides table.
8342
- // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides
8343
- var regexAsciiWhitelist = /[\x01-\x7F]/g;
8344
- // All BMP symbols that are not ASCII newlines, printable ASCII symbols, or
8345
- // code points listed in the first column of the overrides table on
8346
- // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.
8347
- var regexBmpWhitelist = /[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g;
8348
-
8349
- 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;
8350
- 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'};
8351
-
8352
- var regexEscape = /["&'<>`]/g;
8353
- var escapeMap = {
8354
- '"': '&quot;',
8355
- '&': '&amp;',
8356
- '\'': '&#x27;',
8357
- '<': '&lt;',
8358
- // See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the
8359
- // following is not strictly necessary unless it’s part of a tag or an
8360
- // unquoted attribute value. We’re only escaping it to support those
8361
- // situations, and for XML support.
8362
- '>': '&gt;',
8363
- // In Internet Explorer ≤ 8, the backtick character can be used
8364
- // to break out of (un)quoted attribute values or HTML comments.
8365
- // See http://html5sec.org/#102, http://html5sec.org/#108, and
8366
- // http://html5sec.org/#133.
8367
- '`': '&#x60;'
8368
- };
8369
-
8370
- var regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;
8371
- 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]/;
8372
- 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;
8373
- 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'};
8374
- 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'};
8375
- 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'};
8376
- 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];
8377
-
8378
- /*--------------------------------------------------------------------------*/
8379
-
8380
- var stringFromCharCode = String.fromCharCode;
8381
-
8382
- var object = {};
8383
- var hasOwnProperty = object.hasOwnProperty;
8384
- var has = function(object, propertyName) {
8385
- return hasOwnProperty.call(object, propertyName);
8386
- };
8387
-
8388
- var contains = function(array, value) {
8389
- var index = -1;
8390
- var length = array.length;
8391
- while (++index < length) {
8392
- if (array[index] == value) {
8393
- return true;
8394
- }
8395
- }
8396
- return false;
8397
- };
8354
+ // when no child node or attr is present
8355
+ if (!options.alwaysCreateTextNode && (!node.child || util.isEmptyObject(node.child)) && (!node.attrsMap || util.isEmptyObject(node.attrsMap))) {
8356
+ return util.isExist(node.val) ? node.val : '';
8357
+ }
8398
8358
 
8399
- var merge = function(options, defaults) {
8400
- if (!options) {
8401
- return defaults;
8402
- }
8403
- var result = {};
8404
- var key;
8405
- for (key in defaults) {
8406
- // A `hasOwnProperty` check is not needed here, since only recognized
8407
- // option names are used anyway. Any others are ignored.
8408
- result[key] = has(options, key) ? options[key] : defaults[key];
8409
- }
8410
- return result;
8411
- };
8412
-
8413
- // Modified version of `ucs2encode`; see https://mths.be/punycode.
8414
- var codePointToSymbol = function(codePoint, strict) {
8415
- var output = '';
8416
- if ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) {
8417
- // See issue #4:
8418
- // “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is
8419
- // greater than 0x10FFFF, then this is a parse error. Return a U+FFFD
8420
- // REPLACEMENT CHARACTER.”
8421
- if (strict) {
8422
- parseError('character reference outside the permissible Unicode range');
8423
- }
8424
- return '\uFFFD';
8425
- }
8426
- if (has(decodeMapNumeric, codePoint)) {
8427
- if (strict) {
8428
- parseError('disallowed character reference');
8429
- }
8430
- return decodeMapNumeric[codePoint];
8431
- }
8432
- if (strict && contains(invalidReferenceCodePoints, codePoint)) {
8433
- parseError('disallowed character reference');
8434
- }
8435
- if (codePoint > 0xFFFF) {
8436
- codePoint -= 0x10000;
8437
- output += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);
8438
- codePoint = 0xDC00 | codePoint & 0x3FF;
8439
- }
8440
- output += stringFromCharCode(codePoint);
8441
- return output;
8442
- };
8359
+ // otherwise create a textnode if node has some text
8360
+ if (util.isExist(node.val) && !(typeof node.val === 'string' && (node.val === '' || node.val === options.cdataPositionChar))) {
8361
+ const asArray = util.isTagNameInArrayMode(node.tagname, options.arrayMode, parentTagName);
8362
+ jObj[options.textNodeName] = asArray ? [node.val] : node.val;
8363
+ }
8443
8364
 
8444
- var hexEscape = function(codePoint) {
8445
- return '&#x' + codePoint.toString(16).toUpperCase() + ';';
8446
- };
8365
+ util.merge(jObj, node.attrsMap, options.arrayMode);
8447
8366
 
8448
- var decEscape = function(codePoint) {
8449
- return '&#' + codePoint + ';';
8450
- };
8367
+ const keys = Object.keys(node.child);
8368
+ for (let index = 0; index < keys.length; index++) {
8369
+ const tagName = keys[index];
8370
+ if (node.child[tagName] && node.child[tagName].length > 1) {
8371
+ jObj[tagName] = [];
8372
+ for (let tag in node.child[tagName]) {
8373
+ if (node.child[tagName].hasOwnProperty(tag)) {
8374
+ jObj[tagName].push(convertToJson(node.child[tagName][tag], options, tagName));
8375
+ }
8376
+ }
8377
+ } else {
8378
+ const result = convertToJson(node.child[tagName][0], options, tagName);
8379
+ const asArray = (options.arrayMode === true && typeof result === 'object') || util.isTagNameInArrayMode(tagName, options.arrayMode, parentTagName);
8380
+ jObj[tagName] = asArray ? [result] : result;
8381
+ }
8382
+ }
8451
8383
 
8452
- var parseError = function(message) {
8453
- throw Error('Parse error: ' + message);
8454
- };
8384
+ //add value
8385
+ return jObj;
8386
+ };
8455
8387
 
8456
- /*--------------------------------------------------------------------------*/
8388
+ var convertToJson_1 = convertToJson;
8457
8389
 
8458
- var encode = function(string, options) {
8459
- options = merge(options, encode.options);
8460
- var strict = options.strict;
8461
- if (strict && regexInvalidRawCodePoint.test(string)) {
8462
- parseError('forbidden code point');
8463
- }
8464
- var encodeEverything = options.encodeEverything;
8465
- var useNamedReferences = options.useNamedReferences;
8466
- var allowUnsafeSymbols = options.allowUnsafeSymbols;
8467
- var escapeCodePoint = options.decimal ? decEscape : hexEscape;
8468
-
8469
- var escapeBmpSymbol = function(symbol) {
8470
- return escapeCodePoint(symbol.charCodeAt(0));
8471
- };
8472
-
8473
- if (encodeEverything) {
8474
- // Encode ASCII symbols.
8475
- string = string.replace(regexAsciiWhitelist, function(symbol) {
8476
- // Use named references if requested & possible.
8477
- if (useNamedReferences && has(encodeMap, symbol)) {
8478
- return '&' + encodeMap[symbol] + ';';
8479
- }
8480
- return escapeBmpSymbol(symbol);
8481
- });
8482
- // Shorten a few escapes that represent two symbols, of which at least one
8483
- // is within the ASCII range.
8484
- if (useNamedReferences) {
8485
- string = string
8486
- .replace(/&gt;\u20D2/g, '&nvgt;')
8487
- .replace(/&lt;\u20D2/g, '&nvlt;')
8488
- .replace(/&#x66;&#x6A;/g, '&fjlig;');
8489
- }
8490
- // Encode non-ASCII symbols.
8491
- if (useNamedReferences) {
8492
- // Encode non-ASCII symbols that can be replaced with a named reference.
8493
- string = string.replace(regexEncodeNonAscii, function(string) {
8494
- // Note: there is no need to check `has(encodeMap, string)` here.
8495
- return '&' + encodeMap[string] + ';';
8496
- });
8497
- }
8498
- // Note: any remaining non-ASCII symbols are handled outside of the `if`.
8499
- } else if (useNamedReferences) {
8500
- // Apply named character references.
8501
- // Encode `<>"'&` using named character references.
8502
- if (!allowUnsafeSymbols) {
8503
- string = string.replace(regexEscape, function(string) {
8504
- return '&' + encodeMap[string] + ';'; // no need to check `has()` here
8505
- });
8506
- }
8507
- // Shorten escapes that represent two symbols, of which at least one is
8508
- // `<>"'&`.
8509
- string = string
8510
- .replace(/&gt;\u20D2/g, '&nvgt;')
8511
- .replace(/&lt;\u20D2/g, '&nvlt;');
8512
- // Encode non-ASCII symbols that can be replaced with a named reference.
8513
- string = string.replace(regexEncodeNonAscii, function(string) {
8514
- // Note: there is no need to check `has(encodeMap, string)` here.
8515
- return '&' + encodeMap[string] + ';';
8516
- });
8517
- } else if (!allowUnsafeSymbols) {
8518
- // Encode `<>"'&` using hexadecimal escapes, now that they’re not handled
8519
- // using named character references.
8520
- string = string.replace(regexEscape, escapeBmpSymbol);
8521
- }
8522
- return string
8523
- // Encode astral symbols.
8524
- .replace(regexAstralSymbols, function($0) {
8525
- // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
8526
- var high = $0.charCodeAt(0);
8527
- var low = $0.charCodeAt(1);
8528
- var codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;
8529
- return escapeCodePoint(codePoint);
8530
- })
8531
- // Encode any remaining BMP symbols that are not printable ASCII symbols
8532
- // using a hexadecimal escape.
8533
- .replace(regexBmpWhitelist, escapeBmpSymbol);
8534
- };
8535
- // Expose default options (so they can be overridden globally).
8536
- encode.options = {
8537
- 'allowUnsafeSymbols': false,
8538
- 'encodeEverything': false,
8539
- 'strict': false,
8540
- 'useNamedReferences': false,
8541
- 'decimal' : false
8542
- };
8543
-
8544
- var decode = function(html, options) {
8545
- options = merge(options, decode.options);
8546
- var strict = options.strict;
8547
- if (strict && regexInvalidEntity.test(html)) {
8548
- parseError('malformed character reference');
8549
- }
8550
- return html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7) {
8551
- var codePoint;
8552
- var semicolon;
8553
- var decDigits;
8554
- var hexDigits;
8555
- var reference;
8556
- var next;
8557
- if ($1) {
8558
- // Decode decimal escapes, e.g. `&#119558;`.
8559
- decDigits = $1;
8560
- semicolon = $2;
8561
- if (strict && !semicolon) {
8562
- parseError('character reference was not terminated by a semicolon');
8563
- }
8564
- codePoint = parseInt(decDigits, 10);
8565
- return codePointToSymbol(codePoint, strict);
8566
- }
8567
- if ($3) {
8568
- // Decode hexadecimal escapes, e.g. `&#x1D306;`.
8569
- hexDigits = $3;
8570
- semicolon = $4;
8571
- if (strict && !semicolon) {
8572
- parseError('character reference was not terminated by a semicolon');
8573
- }
8574
- codePoint = parseInt(hexDigits, 16);
8575
- return codePointToSymbol(codePoint, strict);
8576
- }
8577
- if ($5) {
8578
- // Decode named character references with trailing `;`, e.g. `&copy;`.
8579
- reference = $5;
8580
- if (has(decodeMap, reference)) {
8581
- return decodeMap[reference];
8582
- } else {
8583
- // Ambiguous ampersand. https://mths.be/notes/ambiguous-ampersands
8584
- if (strict) {
8585
- parseError(
8586
- 'named character reference was not terminated by a semicolon'
8587
- );
8588
- }
8589
- return $0;
8590
- }
8591
- }
8592
- // If we’re still here, it’s a legacy reference for sure. No need for an
8593
- // extra `if` check.
8594
- // Decode named character references without trailing `;`, e.g. `&amp`
8595
- // This is only a parse error if it gets converted to `&`, or if it is
8596
- // followed by `=` in an attribute context.
8597
- reference = $6;
8598
- next = $7;
8599
- if (next && options.isAttributeValue) {
8600
- if (strict && next == '=') {
8601
- parseError('`&` did not start a character reference');
8602
- }
8603
- return $0;
8604
- } else {
8605
- if (strict) {
8606
- parseError(
8607
- 'named character reference was not terminated by a semicolon'
8608
- );
8609
- }
8610
- // Note: there is no need to check `has(decodeMapLegacy, reference)`.
8611
- return decodeMapLegacy[reference] + (next || '');
8612
- }
8613
- });
8614
- };
8615
- // Expose default options (so they can be overridden globally).
8616
- decode.options = {
8617
- 'isAttributeValue': false,
8618
- 'strict': false
8619
- };
8620
-
8621
- var escape = function(string) {
8622
- return string.replace(regexEscape, function($0) {
8623
- // Note: there is no need to check `has(escapeMap, $0)` here.
8624
- return escapeMap[$0];
8625
- });
8626
- };
8627
-
8628
- /*--------------------------------------------------------------------------*/
8629
-
8630
- var he = {
8631
- 'version': '1.1.1',
8632
- 'encode': encode,
8633
- 'decode': decode,
8634
- 'escape': escape,
8635
- 'unescape': decode
8636
- };
8637
-
8638
- // Some AMD build optimizers, like r.js, check for specific condition patterns
8639
- // like the following:
8640
- if (freeExports && !freeExports.nodeType) {
8641
- if (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+
8642
- freeModule.exports = he;
8643
- } else { // in Narwhal or RingoJS v0.7.0-
8644
- for (var key in he) {
8645
- has(he, key) && (freeExports[key] = he[key]);
8646
- }
8647
- }
8648
- } else { // in Rhino or a web browser
8649
- root.he = he;
8650
- }
8390
+ var node2json = {
8391
+ convertToJson: convertToJson_1
8392
+ };
8651
8393
 
8652
- }(commonjsGlobal));
8653
- });
8394
+ var xmlNode = function(tagname, parent, val) {
8395
+ this.tagname = tagname;
8396
+ this.parent = parent;
8397
+ this.child = {}; //child tags
8398
+ this.attrsMap = {}; //attributes map
8399
+ this.val = val; //text only
8400
+ this.addChild = function(child) {
8401
+ if (Array.isArray(this.child[child.tagname])) {
8402
+ //already presents
8403
+ this.child[child.tagname].push(child);
8404
+ } else {
8405
+ this.child[child.tagname] = [child];
8406
+ }
8407
+ };
8408
+ };
8409
+
8410
+ const hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;
8411
+ const numRegex = /^([\-\+])?(0*)(\.[0-9]+([eE]\-?[0-9]+)?|[0-9]+(\.[0-9]+([eE]\-?[0-9]+)?)?)$/;
8412
+ // const octRegex = /0x[a-z0-9]+/;
8413
+ // const binRegex = /0x[a-z0-9]+/;
8414
+
8415
+
8416
+ //polyfill
8417
+ if (!Number.parseInt && window.parseInt) {
8418
+ Number.parseInt = window.parseInt;
8419
+ }
8420
+ if (!Number.parseFloat && window.parseFloat) {
8421
+ Number.parseFloat = window.parseFloat;
8422
+ }
8654
8423
 
8655
- var TagType = {"OPENING":1, "CLOSING":2, "SELF":3, "CDATA": 4};
8656
-
8657
- //var tagsRegx = new RegExp("<(\\/?[\\w:\\-\._]+)([^>]*)>(\\s*"+cdataRegx+")*([^<]+)?","g");
8658
- //var tagsRegx = new RegExp("<(\\/?)((\\w*:)?([\\w:\\-\._]+))([^>]*)>([^<]*)("+cdataRegx+"([^<]*))*([^<]+)?","g");
8659
-
8660
- //treat cdata as a tag
8661
-
8662
-
8663
- var defaultOptions = {
8664
- attributeNamePrefix : "@_",
8665
- attrNodeName: false,
8666
- textNodeName : "#text",
8667
- ignoreAttributes : true,
8668
- ignoreNameSpace : false,
8669
- allowBooleanAttributes : false, //a tag can have attributes without any value
8670
- //ignoreRootElement : false,
8671
- parseNodeValue : true,
8672
- parseAttributeValue : false,
8673
- arrayMode : false,
8674
- trimValues: true, //Trim string values of tag and attributes
8675
- decodeHTMLchar: false,
8676
- cdataTagName: false,
8677
- cdataPositionChar: "\\c"
8678
- //decodeStrict: false,
8424
+
8425
+ const consider = {
8426
+ hex : true,
8427
+ leadingZeros: true,
8428
+ decimalPoint: "\.",
8429
+ eNotation: true
8430
+ //skipLike: /regex/
8679
8431
  };
8680
8432
 
8681
- var getTraversalObj =function (xmlData,options){
8682
- //options = buildOptions(options);
8683
- options = Object.assign({},defaultOptions,options);
8684
- //xmlData = xmlData.replace(/\r?\n/g, " ");//make it single line
8685
- xmlData = xmlData.replace(/<!--[\s\S]*?-->/g, "");//Remove comments
8686
-
8687
- var xmlObj = new xmlNode('!xml');
8688
- var currentNode = xmlObj;
8689
-
8690
- var tagsRegx = new RegExp("<((!\\[CDATA\\[([\\s\\S]*?)(\\]\\]>))|(([\\w:\\-\\._]*:)?([\\w:\\-\\._]+))([^>]*)>|((\\/)(([\\w:\\-\\._]*:)?([\\w:\\-\\._]+))>))([^<]*)","g");
8691
- var tag = tagsRegx.exec(xmlData);
8692
- var nextTag = tagsRegx.exec(xmlData);
8693
- while (tag) {
8694
- var tagType = checkForTagType(tag);
8695
-
8696
- if(tagType === TagType.CLOSING){
8697
- //add parsed data to parent node
8698
- if(currentNode.parent && tag[14]){
8699
- currentNode.parent.val = util.getValue(currentNode.parent.val) + "" + processTagValue(tag[14],options);
8700
- }
8433
+ function toNumber(str, options = {}){
8434
+ // const options = Object.assign({}, consider);
8435
+ // if(opt.leadingZeros === false){
8436
+ // options.leadingZeros = false;
8437
+ // }else if(opt.hex === false){
8438
+ // options.hex = false;
8439
+ // }
8701
8440
 
8702
- currentNode = currentNode.parent;
8703
- }else if(tagType === TagType.CDATA){
8704
- if(options.cdataTagName){
8705
- //add cdata node
8706
- var childNode = new xmlNode( options.cdataTagName,currentNode,tag[3]);
8707
- childNode.attrsMap = buildAttributesMap(tag[8],options);
8708
- currentNode.addChild(childNode);
8709
- //for backtracking
8710
- currentNode.val = util.getValue(currentNode.val) + options.cdataPositionChar;
8711
- //add rest value to parent node
8712
- if(tag[14]){
8713
- currentNode.val += processTagValue(tag[14],options);
8441
+ options = Object.assign({}, consider, options );
8442
+ if(!str || typeof str !== "string" ) return str;
8443
+
8444
+ let trimmedStr = str.trim();
8445
+ // if(trimmedStr === "0.0") return 0;
8446
+ // else if(trimmedStr === "+0.0") return 0;
8447
+ // else if(trimmedStr === "-0.0") return -0;
8448
+
8449
+ if(options.skipLike !== undefined && options.skipLike.test(trimmedStr)) return str;
8450
+ else if (options.hex && hexRegex.test(trimmedStr)) {
8451
+ return Number.parseInt(trimmedStr, 16);
8452
+ // } else if (options.parseOct && octRegex.test(str)) {
8453
+ // return Number.parseInt(val, 8);
8454
+ // }else if (options.parseBin && binRegex.test(str)) {
8455
+ // return Number.parseInt(val, 2);
8456
+ }else {
8457
+ //separate negative sign, leading zeros, and rest number
8458
+ const match = numRegex.exec(trimmedStr);
8459
+ if(match){
8460
+ const sign = match[1];
8461
+ const leadingZeros = match[2];
8462
+ let numTrimmedByZeros = trimZeros(match[3]); //complete num without leading zeros
8463
+ //trim ending zeros for floating number
8464
+
8465
+ const eNotation = match[4] || match[6];
8466
+ if(!options.leadingZeros && leadingZeros.length > 0 && sign && trimmedStr[2] !== ".") return str; //-0123
8467
+ else if(!options.leadingZeros && leadingZeros.length > 0 && !sign && trimmedStr[1] !== ".") return str; //0123
8468
+ else {//no leading zeros or leading zeros are allowed
8469
+ const num = Number(trimmedStr);
8470
+ const numStr = "" + num;
8471
+ if(numStr.search(/[eE]/) !== -1){ //given number is long and parsed to eNotation
8472
+ if(options.eNotation) return num;
8473
+ else return str;
8474
+ }else if(eNotation){ //given number has enotation
8475
+ if(options.eNotation) return num;
8476
+ else return str;
8477
+ }else if(trimmedStr.indexOf(".") !== -1){ //floating number
8478
+ // const decimalPart = match[5].substr(1);
8479
+ // const intPart = trimmedStr.substr(0,trimmedStr.indexOf("."));
8480
+
8481
+
8482
+ // const p = numStr.indexOf(".");
8483
+ // const givenIntPart = numStr.substr(0,p);
8484
+ // const givenDecPart = numStr.substr(p+1);
8485
+ if(numStr === "0" && (numTrimmedByZeros === "") ) return num; //0.0
8486
+ else if(numStr === numTrimmedByZeros) return num; //0.456. 0.79000
8487
+ else if( sign && numStr === "-"+numTrimmedByZeros) return num;
8488
+ else return str;
8714
8489
  }
8715
- }else {
8716
- currentNode.val = (currentNode.val || "") + (tag[3] || "") + processTagValue(tag[14],options);
8717
- }
8718
- }else if(tagType === TagType.SELF){
8719
- var childNode = new xmlNode( options.ignoreNameSpace ? tag[7] : tag[5],currentNode, "");
8720
- if(tag[8] && tag[8].length > 1){
8721
- tag[8] = tag[8].substr(0,tag[8].length -1);
8490
+
8491
+ if(leadingZeros){
8492
+ // if(numTrimmedByZeros === numStr){
8493
+ // if(options.leadingZeros) return num;
8494
+ // else return str;
8495
+ // }else return str;
8496
+ if(numTrimmedByZeros === numStr) return num;
8497
+ else if(sign+numTrimmedByZeros === numStr) return num;
8498
+ else return str;
8499
+ }
8500
+
8501
+ if(trimmedStr === numStr) return num;
8502
+ else if(trimmedStr === sign+numStr) return num;
8503
+ // else{
8504
+ // //number with +/- sign
8505
+ // trimmedStr.test(/[-+][0-9]);
8506
+
8507
+ // }
8508
+ return str;
8722
8509
  }
8723
- childNode.attrsMap = buildAttributesMap(tag[8],options);
8724
- currentNode.addChild(childNode);
8725
- }else {//TagType.OPENING
8726
- var childNode = new xmlNode( options.ignoreNameSpace ? tag[7] : tag[5],currentNode,processTagValue(tag[14],options));
8727
- childNode.attrsMap = buildAttributesMap(tag[8],options);
8728
- currentNode.addChild(childNode);
8729
- currentNode = childNode;
8510
+ // else if(!eNotation && trimmedStr && trimmedStr !== Number(trimmedStr) ) return str;
8511
+
8512
+ }else { //non-numeric string
8513
+ return str;
8730
8514
  }
8515
+ }
8516
+ }
8731
8517
 
8732
- tag = nextTag;
8733
- nextTag = tagsRegx.exec(xmlData);
8518
+ /**
8519
+ *
8520
+ * @param {string} numStr without leading zeros
8521
+ * @returns
8522
+ */
8523
+ function trimZeros(numStr){
8524
+ if(numStr && numStr.indexOf(".") !== -1){//float
8525
+ numStr = numStr.replace(/0+$/, ""); //remove ending zeros
8526
+ if(numStr === ".") numStr = "0";
8527
+ else if(numStr[0] === ".") numStr = "0"+numStr;
8528
+ else if(numStr[numStr.length-1] === ".") numStr = numStr.substr(0,numStr.length-1);
8529
+ return numStr;
8734
8530
  }
8531
+ return numStr;
8532
+ }
8533
+ var strnum = toNumber;
8534
+
8535
+ const buildOptions$3 = util.buildOptions;
8536
+
8537
+
8538
+
8539
+ '<((!\\[CDATA\\[([\\s\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\/)(NAME)\\s*>))([^<]*)'
8540
+ .replace(/NAME/g, util.nameRegexp);
8541
+
8542
+ //const tagsRegx = new RegExp("<(\\/?[\\w:\\-\._]+)([^>]*)>(\\s*"+cdataRegx+")*([^<]+)?","g");
8543
+ //const tagsRegx = new RegExp("<(\\/?)((\\w*:)?([\\w:\\-\._]+))([^>]*)>([^<]*)("+cdataRegx+"([^<]*))*([^<]+)?","g");
8735
8544
 
8736
- return xmlObj;
8545
+ //polyfill
8546
+ if (!Number.parseInt && window.parseInt) {
8547
+ Number.parseInt = window.parseInt;
8548
+ }
8549
+ if (!Number.parseFloat && window.parseFloat) {
8550
+ Number.parseFloat = window.parseFloat;
8551
+ }
8552
+
8553
+ const defaultOptions$2 = {
8554
+ attributeNamePrefix: '@_',
8555
+ attrNodeName: false,
8556
+ textNodeName: '#text',
8557
+ ignoreAttributes: true,
8558
+ ignoreNameSpace: false,
8559
+ allowBooleanAttributes: false, //a tag can have attributes without any value
8560
+ //ignoreRootElement : false,
8561
+ parseNodeValue: true,
8562
+ parseAttributeValue: false,
8563
+ arrayMode: false,
8564
+ trimValues: true, //Trim string values of tag and attributes
8565
+ cdataTagName: false,
8566
+ cdataPositionChar: '\\c',
8567
+ numParseOptions: {
8568
+ hex: true,
8569
+ leadingZeros: true
8570
+ },
8571
+ tagValueProcessor: function(a, tagName) {
8572
+ return a;
8573
+ },
8574
+ attrValueProcessor: function(a, attrName) {
8575
+ return a;
8576
+ },
8577
+ stopNodes: [],
8578
+ alwaysCreateTextNode: false
8579
+ //decodeStrict: false,
8737
8580
  };
8738
8581
 
8739
- function processTagValue(val,options){
8740
- if(val){
8741
- if(options.trimValues){
8742
- val = val.trim();
8743
- }
8744
- if(options.decodeHTMLchar){
8745
- val = he.decode(val);
8746
- }
8747
- val = parseValue(val,options.parseNodeValue);
8582
+ var defaultOptions_1 = defaultOptions$2;
8583
+
8584
+ const props$2 = [
8585
+ 'attributeNamePrefix',
8586
+ 'attrNodeName',
8587
+ 'textNodeName',
8588
+ 'ignoreAttributes',
8589
+ 'ignoreNameSpace',
8590
+ 'allowBooleanAttributes',
8591
+ 'parseNodeValue',
8592
+ 'parseAttributeValue',
8593
+ 'arrayMode',
8594
+ 'trimValues',
8595
+ 'cdataTagName',
8596
+ 'cdataPositionChar',
8597
+ 'tagValueProcessor',
8598
+ 'attrValueProcessor',
8599
+ 'parseTrueNumberOnly',
8600
+ 'numParseOptions',
8601
+ 'stopNodes',
8602
+ 'alwaysCreateTextNode'
8603
+ ];
8604
+ var props_1 = props$2;
8605
+
8606
+ /**
8607
+ * Trim -> valueProcessor -> parse value
8608
+ * @param {string} tagName
8609
+ * @param {string} val
8610
+ * @param {object} options
8611
+ */
8612
+ function processTagValue(tagName, val, options) {
8613
+ if (val) {
8614
+ if (options.trimValues) {
8615
+ val = val.trim();
8748
8616
  }
8617
+ val = options.tagValueProcessor(val, tagName);
8618
+ val = parseValue(val, options.parseNodeValue, options.numParseOptions);
8619
+ }
8749
8620
 
8750
- return val;
8621
+ return val;
8751
8622
  }
8752
8623
 
8753
- function checkForTagType(match){
8754
- if(match[4] === "]]>"){
8755
- return TagType.CDATA;
8756
- }else if(match[10] === "/"){
8757
- return TagType.CLOSING;
8758
- }else if(typeof match[8] !== "undefined" && match[8].substr(match[8].length-1) === "/"){
8759
- return TagType.SELF;
8760
- }else {
8761
- return TagType.OPENING;
8624
+ function resolveNameSpace(tagname, options) {
8625
+ if (options.ignoreNameSpace) {
8626
+ const tags = tagname.split(':');
8627
+ const prefix = tagname.charAt(0) === '/' ? '/' : '';
8628
+ if (tags[0] === 'xmlns') {
8629
+ return '';
8630
+ }
8631
+ if (tags.length === 2) {
8632
+ tagname = prefix + tags[1];
8762
8633
  }
8634
+ }
8635
+ return tagname;
8763
8636
  }
8764
8637
 
8765
- var xml2json = function (xmlData,options){
8766
- options = Object.assign({},defaultOptions,options);
8767
- return convertToJson(getTraversalObj(xmlData,options), options);
8768
- };
8638
+ function parseValue(val, shouldParse, options) {
8639
+ if (shouldParse && typeof val === 'string') {
8640
+ //console.log(options)
8641
+ const newval = val.trim();
8642
+ if(newval === 'true' ) return true;
8643
+ else if(newval === 'false' ) return false;
8644
+ else return strnum(val, options);
8645
+ } else {
8646
+ if (util.isExist(val)) {
8647
+ return val;
8648
+ } else {
8649
+ return '';
8650
+ }
8651
+ }
8652
+ }
8769
8653
 
8770
- function resolveNameSpace(tagname,options){
8771
- if(options.ignoreNameSpace ){
8772
- var tags = tagname.split(":");
8773
- var prefix = tagname.charAt(0) === "/" ? "/" : "";
8774
- if(tags[0] === "xmlns") {
8775
- return "";
8776
- }
8777
- if(tags.length === 2) {
8778
- tagname = prefix + tags[1];
8654
+ //TODO: change regex to capture NS
8655
+ //const attrsRegx = new RegExp("([\\w\\-\\.\\:]+)\\s*=\\s*(['\"])((.|\n)*?)\\2","gm");
8656
+ const attrsRegx = new RegExp('([^\\s=]+)\\s*(=\\s*([\'"])(.*?)\\3)?', 'g');
8657
+
8658
+ function buildAttributesMap(attrStr, options) {
8659
+ if (!options.ignoreAttributes && typeof attrStr === 'string') {
8660
+ attrStr = attrStr.replace(/\r?\n/g, ' ');
8661
+ //attrStr = attrStr || attrStr.trim();
8662
+
8663
+ const matches = util.getAllMatches(attrStr, attrsRegx);
8664
+ const len = matches.length; //don't make it inline
8665
+ const attrs = {};
8666
+ for (let i = 0; i < len; i++) {
8667
+ const attrName = resolveNameSpace(matches[i][1], options);
8668
+ if (attrName.length) {
8669
+ if (matches[i][4] !== undefined) {
8670
+ if (options.trimValues) {
8671
+ matches[i][4] = matches[i][4].trim();
8672
+ }
8673
+ matches[i][4] = options.attrValueProcessor(matches[i][4], attrName);
8674
+ attrs[options.attributeNamePrefix + attrName] = parseValue(
8675
+ matches[i][4],
8676
+ options.parseAttributeValue,
8677
+ options.numParseOptions
8678
+ );
8679
+ } else if (options.allowBooleanAttributes) {
8680
+ attrs[options.attributeNamePrefix + attrName] = true;
8779
8681
  }
8682
+ }
8683
+ }
8684
+ if (!Object.keys(attrs).length) {
8685
+ return;
8686
+ }
8687
+ if (options.attrNodeName) {
8688
+ const attrCollection = {};
8689
+ attrCollection[options.attrNodeName] = attrs;
8690
+ return attrCollection;
8780
8691
  }
8781
- return tagname;
8692
+ return attrs;
8693
+ }
8782
8694
  }
8783
8695
 
8784
- function parseValue(val,shouldParse){
8785
- if(shouldParse && typeof val === "string"){
8786
- if(val.trim() === "" || isNaN(val)){
8787
- val = val === "true" ? true : val === "false" ? false : val;
8696
+ const getTraversalObj = function(xmlData, options) {
8697
+ xmlData = xmlData.replace(/\r\n?/g, "\n");
8698
+ options = buildOptions$3(options, defaultOptions$2, props$2);
8699
+ const xmlObj = new xmlNode('!xml');
8700
+ let currentNode = xmlObj;
8701
+ let textData = "";
8702
+
8703
+ //function match(xmlData){
8704
+ for(let i=0; i< xmlData.length; i++){
8705
+ const ch = xmlData[i];
8706
+ if(ch === '<'){
8707
+ if( xmlData[i+1] === '/') {//Closing Tag
8708
+ const closeIndex = findClosingIndex(xmlData, ">", i, "Closing Tag is not closed.");
8709
+ let tagName = xmlData.substring(i+2,closeIndex).trim();
8710
+
8711
+ if(options.ignoreNameSpace){
8712
+ const colonIndex = tagName.indexOf(":");
8713
+ if(colonIndex !== -1){
8714
+ tagName = tagName.substr(colonIndex+1);
8715
+ }
8716
+ }
8717
+
8718
+ /* if (currentNode.parent) {
8719
+ currentNode.parent.val = util.getValue(currentNode.parent.val) + '' + processTagValue2(tagName, textData , options);
8720
+ } */
8721
+ if(currentNode){
8722
+ if(currentNode.val){
8723
+ currentNode.val = util.getValue(currentNode.val) + '' + processTagValue(tagName, textData , options);
8724
+ }else {
8725
+ currentNode.val = processTagValue(tagName, textData , options);
8726
+ }
8727
+ }
8728
+
8729
+ if (options.stopNodes.length && options.stopNodes.includes(currentNode.tagname)) {
8730
+ currentNode.child = [];
8731
+ if (currentNode.attrsMap == undefined) { currentNode.attrsMap = {};}
8732
+ currentNode.val = xmlData.substr(currentNode.startIndex + 1, i - currentNode.startIndex - 1);
8733
+ }
8734
+ currentNode = currentNode.parent;
8735
+ textData = "";
8736
+ i = closeIndex;
8737
+ } else if( xmlData[i+1] === '?') {
8738
+ i = findClosingIndex(xmlData, "?>", i, "Pi Tag is not closed.");
8739
+ } else if(xmlData.substr(i + 1, 3) === '!--') {
8740
+ i = findClosingIndex(xmlData, "-->", i, "Comment is not closed.");
8741
+ } else if( xmlData.substr(i + 1, 2) === '!D') {
8742
+ const closeIndex = findClosingIndex(xmlData, ">", i, "DOCTYPE is not closed.");
8743
+ const tagExp = xmlData.substring(i, closeIndex);
8744
+ if(tagExp.indexOf("[") >= 0){
8745
+ i = xmlData.indexOf("]>", i) + 1;
8788
8746
  }else {
8789
- if(val.indexOf(".") !== -1){
8790
- val = Number.parseFloat(val);
8791
- }else {
8792
- val = Number.parseInt(val,10);
8793
- }
8747
+ i = closeIndex;
8748
+ }
8749
+ }else if(xmlData.substr(i + 1, 2) === '![') {
8750
+ const closeIndex = findClosingIndex(xmlData, "]]>", i, "CDATA is not closed.") - 2;
8751
+ const tagExp = xmlData.substring(i + 9,closeIndex);
8752
+
8753
+ //considerations
8754
+ //1. CDATA will always have parent node
8755
+ //2. A tag with CDATA is not a leaf node so it's value would be string type.
8756
+ if(textData){
8757
+ currentNode.val = util.getValue(currentNode.val) + '' + processTagValue(currentNode.tagname, textData , options);
8758
+ textData = "";
8759
+ }
8760
+
8761
+ if (options.cdataTagName) {
8762
+ //add cdata node
8763
+ const childNode = new xmlNode(options.cdataTagName, currentNode, tagExp);
8764
+ currentNode.addChild(childNode);
8765
+ //for backtracking
8766
+ currentNode.val = util.getValue(currentNode.val) + options.cdataPositionChar;
8767
+ //add rest value to parent node
8768
+ if (tagExp) {
8769
+ childNode.val = tagExp;
8770
+ }
8771
+ } else {
8772
+ currentNode.val = (currentNode.val || '') + (tagExp || '');
8773
+ }
8774
+
8775
+ i = closeIndex + 2;
8776
+ }else {//Opening tag
8777
+ const result = closingIndexForOpeningTag(xmlData, i+1);
8778
+ let tagExp = result.data;
8779
+ const closeIndex = result.index;
8780
+ const separatorIndex = tagExp.indexOf(" ");
8781
+ let tagName = tagExp;
8782
+ let shouldBuildAttributesMap = true;
8783
+ if(separatorIndex !== -1){
8784
+ tagName = tagExp.substr(0, separatorIndex).replace(/\s\s*$/, '');
8785
+ tagExp = tagExp.substr(separatorIndex + 1);
8786
+ }
8787
+
8788
+ if(options.ignoreNameSpace){
8789
+ const colonIndex = tagName.indexOf(":");
8790
+ if(colonIndex !== -1){
8791
+ tagName = tagName.substr(colonIndex+1);
8792
+ shouldBuildAttributesMap = tagName !== result.data.substr(colonIndex + 1);
8793
+ }
8794
+ }
8795
+
8796
+ //save text to parent node
8797
+ if (currentNode && textData) {
8798
+ if(currentNode.tagname !== '!xml'){
8799
+ currentNode.val = util.getValue(currentNode.val) + '' + processTagValue( currentNode.tagname, textData, options);
8800
+ }
8801
+ }
8802
+
8803
+ if(tagExp.length > 0 && tagExp.lastIndexOf("/") === tagExp.length - 1){//selfClosing tag
8804
+
8805
+ if(tagName[tagName.length - 1] === "/"){ //remove trailing '/'
8806
+ tagName = tagName.substr(0, tagName.length - 1);
8807
+ tagExp = tagName;
8808
+ }else {
8809
+ tagExp = tagExp.substr(0, tagExp.length - 1);
8810
+ }
8811
+
8812
+ const childNode = new xmlNode(tagName, currentNode, '');
8813
+ if(tagName !== tagExp){
8814
+ childNode.attrsMap = buildAttributesMap(tagExp, options);
8815
+ }
8816
+ currentNode.addChild(childNode);
8817
+ }else {//opening tag
8818
+
8819
+ const childNode = new xmlNode( tagName, currentNode );
8820
+ if (options.stopNodes.length && options.stopNodes.includes(childNode.tagname)) {
8821
+ childNode.startIndex=closeIndex;
8822
+ }
8823
+ if(tagName !== tagExp && shouldBuildAttributesMap){
8824
+ childNode.attrsMap = buildAttributesMap(tagExp, options);
8825
+ }
8826
+ currentNode.addChild(childNode);
8827
+ currentNode = childNode;
8794
8828
  }
8795
- return val;
8829
+ textData = "";
8830
+ i = closeIndex;
8831
+ }
8796
8832
  }else {
8797
- if(util.isExist(val)) return val;
8798
- else return "";
8833
+ textData += xmlData[i];
8834
+ }
8835
+ }
8836
+ return xmlObj;
8837
+ };
8838
+
8839
+ function closingIndexForOpeningTag(data, i){
8840
+ let attrBoundary;
8841
+ let tagExp = "";
8842
+ for (let index = i; index < data.length; index++) {
8843
+ let ch = data[index];
8844
+ if (attrBoundary) {
8845
+ if (ch === attrBoundary) attrBoundary = "";//reset
8846
+ } else if (ch === '"' || ch === "'") {
8847
+ attrBoundary = ch;
8848
+ } else if (ch === '>') {
8849
+ return {
8850
+ data: tagExp,
8851
+ index: index
8852
+ }
8853
+ } else if (ch === '\t') {
8854
+ ch = " ";
8799
8855
  }
8856
+ tagExp += ch;
8857
+ }
8800
8858
  }
8801
8859
 
8802
- //TODO: change regex to capture NS
8803
- //var attrsRegx = new RegExp("([\\w\\-\\.\\:]+)\\s*=\\s*(['\"])((.|\n)*?)\\2","gm");
8804
- var attrsRegx = new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])(.*?)\\3)?","g");
8805
- function buildAttributesMap(attrStr,options){
8806
- if( !options.ignoreAttributes && typeof attrStr === "string" ){
8807
- attrStr = attrStr.replace(/\r?\n/g, " ");
8808
- //attrStr = attrStr || attrStr.trim();
8809
-
8810
- var matches = util.getAllMatches(attrStr,attrsRegx);
8811
- var len = matches.length; //don't make it inline
8812
- var attrs = {};
8813
- for (var i = 0; i < len ; i++) {
8814
- var attrName = resolveNameSpace(matches[i][1],options);
8815
- if(attrName.length) {
8816
- if(matches[i][4] !== undefined){
8817
- if(options.trimValues){
8818
- matches[i][4] = matches[i][4].trim();
8819
- }
8820
- if(options.decodeHTMLchar){
8821
- matches[i][4] = he.decode(matches[i][4], {isAttributeValue : true});
8822
- }
8823
- attrs[options.attributeNamePrefix + attrName] = parseValue(matches[i][4],options.parseAttributeValue);
8824
- }else if(options.allowBooleanAttributes){
8825
- attrs[options.attributeNamePrefix + attrName] = true;
8826
- }
8827
-
8860
+ function findClosingIndex(xmlData, str, i, errMsg){
8861
+ const closingIndex = xmlData.indexOf(str, i);
8862
+ if(closingIndex === -1){
8863
+ throw new Error(errMsg)
8864
+ }else {
8865
+ return closingIndex + str.length - 1;
8866
+ }
8867
+ }
8868
+
8869
+ var getTraversalObj_1 = getTraversalObj;
8870
+
8871
+ var xmlstr2xmlnode = {
8872
+ defaultOptions: defaultOptions_1,
8873
+ props: props_1,
8874
+ getTraversalObj: getTraversalObj_1
8875
+ };
8876
+
8877
+ const defaultOptions$1 = {
8878
+ allowBooleanAttributes: false, //A tag can have attributes without any value
8879
+ };
8880
+
8881
+ const props$1 = ['allowBooleanAttributes'];
8882
+
8883
+ //const tagsPattern = new RegExp("<\\/?([\\w:\\-_\.]+)\\s*\/?>","g");
8884
+ var validate = function (xmlData, options) {
8885
+ options = util.buildOptions(options, defaultOptions$1, props$1);
8886
+
8887
+ //xmlData = xmlData.replace(/(\r\n|\n|\r)/gm,"");//make it single line
8888
+ //xmlData = xmlData.replace(/(^\s*<\?xml.*?\?>)/g,"");//Remove XML starting tag
8889
+ //xmlData = xmlData.replace(/(<!DOCTYPE[\s\w\"\.\/\-\:]+(\[.*\])*\s*>)/g,"");//Remove DOCTYPE
8890
+ const tags = [];
8891
+ let tagFound = false;
8892
+
8893
+ //indicates that the root tag has been closed (aka. depth 0 has been reached)
8894
+ let reachedRoot = false;
8895
+
8896
+ if (xmlData[0] === '\ufeff') {
8897
+ // check for byte order mark (BOM)
8898
+ xmlData = xmlData.substr(1);
8899
+ }
8900
+
8901
+ for (let i = 0; i < xmlData.length; i++) {
8902
+
8903
+ if (xmlData[i] === '<' && xmlData[i+1] === '?') {
8904
+ i+=2;
8905
+ i = readPI(xmlData,i);
8906
+ if (i.err) return i;
8907
+ }else if (xmlData[i] === '<') {
8908
+ //starting of tag
8909
+ //read until you reach to '>' avoiding any '>' in attribute value
8910
+ let tagStartPos = i;
8911
+ i++;
8912
+
8913
+ if (xmlData[i] === '!') {
8914
+ i = readCommentAndCDATA(xmlData, i);
8915
+ continue;
8916
+ } else {
8917
+ let closingTag = false;
8918
+ if (xmlData[i] === '/') {
8919
+ //closing tag
8920
+ closingTag = true;
8921
+ i++;
8922
+ }
8923
+ //read tagname
8924
+ let tagName = '';
8925
+ for (; i < xmlData.length &&
8926
+ xmlData[i] !== '>' &&
8927
+ xmlData[i] !== ' ' &&
8928
+ xmlData[i] !== '\t' &&
8929
+ xmlData[i] !== '\n' &&
8930
+ xmlData[i] !== '\r'; i++
8931
+ ) {
8932
+ tagName += xmlData[i];
8933
+ }
8934
+ tagName = tagName.trim();
8935
+ //console.log(tagName);
8936
+
8937
+ if (tagName[tagName.length - 1] === '/') {
8938
+ //self closing tag without attributes
8939
+ tagName = tagName.substring(0, tagName.length - 1);
8940
+ //continue;
8941
+ i--;
8942
+ }
8943
+ if (!validateTagName(tagName)) {
8944
+ let msg;
8945
+ if (tagName.trim().length === 0) {
8946
+ msg = "Invalid space after '<'.";
8947
+ } else {
8948
+ msg = "Tag '"+tagName+"' is an invalid name.";
8949
+ }
8950
+ return getErrorObject('InvalidTag', msg, getLineNumberForPosition(xmlData, i));
8951
+ }
8952
+
8953
+ const result = readAttributeStr(xmlData, i);
8954
+ if (result === false) {
8955
+ return getErrorObject('InvalidAttr', "Attributes for '"+tagName+"' have open quote.", getLineNumberForPosition(xmlData, i));
8956
+ }
8957
+ let attrStr = result.value;
8958
+ i = result.index;
8959
+
8960
+ if (attrStr[attrStr.length - 1] === '/') {
8961
+ //self closing tag
8962
+ const attrStrStart = i - attrStr.length;
8963
+ attrStr = attrStr.substring(0, attrStr.length - 1);
8964
+ const isValid = validateAttributeString(attrStr, options);
8965
+ if (isValid === true) {
8966
+ tagFound = true;
8967
+ //continue; //text may presents after self closing tag
8968
+ } else {
8969
+ //the result from the nested function returns the position of the error within the attribute
8970
+ //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute
8971
+ //this gives us the absolute index in the entire xml, which we can use to find the line at last
8972
+ return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));
8973
+ }
8974
+ } else if (closingTag) {
8975
+ if (!result.tagClosed) {
8976
+ return getErrorObject('InvalidTag', "Closing tag '"+tagName+"' doesn't have proper closing.", getLineNumberForPosition(xmlData, i));
8977
+ } else if (attrStr.trim().length > 0) {
8978
+ return getErrorObject('InvalidTag', "Closing tag '"+tagName+"' can't have attributes or invalid starting.", getLineNumberForPosition(xmlData, tagStartPos));
8979
+ } else {
8980
+ const otg = tags.pop();
8981
+ if (tagName !== otg.tagName) {
8982
+ let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);
8983
+ return getErrorObject('InvalidTag',
8984
+ "Expected closing tag '"+otg.tagName+"' (opened in line "+openPos.line+", col "+openPos.col+") instead of closing tag '"+tagName+"'.",
8985
+ getLineNumberForPosition(xmlData, tagStartPos));
8986
+ }
8987
+
8988
+ //when there are no more tags, we reached the root level.
8989
+ if (tags.length == 0) {
8990
+ reachedRoot = true;
8828
8991
  }
8992
+ }
8993
+ } else {
8994
+ const isValid = validateAttributeString(attrStr, options);
8995
+ if (isValid !== true) {
8996
+ //the result from the nested function returns the position of the error within the attribute
8997
+ //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute
8998
+ //this gives us the absolute index in the entire xml, which we can use to find the line at last
8999
+ return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i - attrStr.length + isValid.err.line));
9000
+ }
9001
+
9002
+ //if the root level has been reached before ...
9003
+ if (reachedRoot === true) {
9004
+ return getErrorObject('InvalidXml', 'Multiple possible root nodes found.', getLineNumberForPosition(xmlData, i));
9005
+ } else {
9006
+ tags.push({tagName, tagStartPos});
9007
+ }
9008
+ tagFound = true;
8829
9009
  }
8830
- if(!Object.keys(attrs).length){
8831
- return;
9010
+
9011
+ //skip tag text value
9012
+ //It may include comments and CDATA value
9013
+ for (i++; i < xmlData.length; i++) {
9014
+ if (xmlData[i] === '<') {
9015
+ if (xmlData[i + 1] === '!') {
9016
+ //comment or CADATA
9017
+ i++;
9018
+ i = readCommentAndCDATA(xmlData, i);
9019
+ continue;
9020
+ } else if (xmlData[i+1] === '?') {
9021
+ i = readPI(xmlData, ++i);
9022
+ if (i.err) return i;
9023
+ } else {
9024
+ break;
9025
+ }
9026
+ } else if (xmlData[i] === '&') {
9027
+ const afterAmp = validateAmpersand(xmlData, i);
9028
+ if (afterAmp == -1)
9029
+ return getErrorObject('InvalidChar', "char '&' is not expected.", getLineNumberForPosition(xmlData, i));
9030
+ i = afterAmp;
9031
+ }
9032
+ } //end of reading tag text value
9033
+ if (xmlData[i] === '<') {
9034
+ i--;
8832
9035
  }
8833
- if(options.attrNodeName){
8834
- var attrCollection = {};
8835
- attrCollection[options.attrNodeName] = attrs;
8836
- return attrCollection;
9036
+ }
9037
+ } else {
9038
+ if (xmlData[i] === ' ' || xmlData[i] === '\t' || xmlData[i] === '\n' || xmlData[i] === '\r') {
9039
+ continue;
9040
+ }
9041
+ return getErrorObject('InvalidChar', "char '"+xmlData[i]+"' is not expected.", getLineNumberForPosition(xmlData, i));
9042
+ }
9043
+ }
9044
+
9045
+ if (!tagFound) {
9046
+ return getErrorObject('InvalidXml', 'Start tag expected.', 1);
9047
+ }else if (tags.length == 1) {
9048
+ return getErrorObject('InvalidTag', "Unclosed tag '"+tags[0].tagName+"'.", getLineNumberForPosition(xmlData, tags[0].tagStartPos));
9049
+ }else if (tags.length > 0) {
9050
+ return getErrorObject('InvalidXml', "Invalid '"+
9051
+ JSON.stringify(tags.map(t => t.tagName), null, 4).replace(/\r?\n/g, '')+
9052
+ "' found.", {line: 1, col: 1});
9053
+ }
9054
+
9055
+ return true;
9056
+ };
9057
+
9058
+ /**
9059
+ * Read Processing insstructions and skip
9060
+ * @param {*} xmlData
9061
+ * @param {*} i
9062
+ */
9063
+ function readPI(xmlData, i) {
9064
+ const start = i;
9065
+ for (; i < xmlData.length; i++) {
9066
+ if (xmlData[i] == '?' || xmlData[i] == ' ') {
9067
+ //tagname
9068
+ const tagname = xmlData.substr(start, i - start);
9069
+ if (i > 5 && tagname === 'xml') {
9070
+ return getErrorObject('InvalidXml', 'XML declaration allowed only at the start of the document.', getLineNumberForPosition(xmlData, i));
9071
+ } else if (xmlData[i] == '?' && xmlData[i + 1] == '>') {
9072
+ //check if valid attribut string
9073
+ i++;
9074
+ break;
9075
+ } else {
9076
+ continue;
9077
+ }
9078
+ }
9079
+ }
9080
+ return i;
9081
+ }
9082
+
9083
+ function readCommentAndCDATA(xmlData, i) {
9084
+ if (xmlData.length > i + 5 && xmlData[i + 1] === '-' && xmlData[i + 2] === '-') {
9085
+ //comment
9086
+ for (i += 3; i < xmlData.length; i++) {
9087
+ if (xmlData[i] === '-' && xmlData[i + 1] === '-' && xmlData[i + 2] === '>') {
9088
+ i += 2;
9089
+ break;
9090
+ }
9091
+ }
9092
+ } else if (
9093
+ xmlData.length > i + 8 &&
9094
+ xmlData[i + 1] === 'D' &&
9095
+ xmlData[i + 2] === 'O' &&
9096
+ xmlData[i + 3] === 'C' &&
9097
+ xmlData[i + 4] === 'T' &&
9098
+ xmlData[i + 5] === 'Y' &&
9099
+ xmlData[i + 6] === 'P' &&
9100
+ xmlData[i + 7] === 'E'
9101
+ ) {
9102
+ let angleBracketsCount = 1;
9103
+ for (i += 8; i < xmlData.length; i++) {
9104
+ if (xmlData[i] === '<') {
9105
+ angleBracketsCount++;
9106
+ } else if (xmlData[i] === '>') {
9107
+ angleBracketsCount--;
9108
+ if (angleBracketsCount === 0) {
9109
+ break;
8837
9110
  }
8838
- return attrs;
9111
+ }
8839
9112
  }
9113
+ } else if (
9114
+ xmlData.length > i + 9 &&
9115
+ xmlData[i + 1] === '[' &&
9116
+ xmlData[i + 2] === 'C' &&
9117
+ xmlData[i + 3] === 'D' &&
9118
+ xmlData[i + 4] === 'A' &&
9119
+ xmlData[i + 5] === 'T' &&
9120
+ xmlData[i + 6] === 'A' &&
9121
+ xmlData[i + 7] === '['
9122
+ ) {
9123
+ for (i += 8; i < xmlData.length; i++) {
9124
+ if (xmlData[i] === ']' && xmlData[i + 1] === ']' && xmlData[i + 2] === '>') {
9125
+ i += 2;
9126
+ break;
9127
+ }
9128
+ }
9129
+ }
9130
+
9131
+ return i;
8840
9132
  }
8841
9133
 
8842
- var convertToJson = function (node, options){
8843
- var jObj = {};
9134
+ const doubleQuote = '"';
9135
+ const singleQuote = "'";
8844
9136
 
8845
- //traver through all the children
8846
- for (var index = 0; index < node.child.length; index++) {
8847
- var prop = node.child[index].tagname;
8848
- var obj = convertToJson(node.child[index],options);
8849
- if(typeof jObj[prop] !== "undefined"){
8850
- if(!Array.isArray(jObj[prop])){
8851
- var swap = jObj[prop];
8852
- jObj[prop] = [];
8853
- jObj[prop].push(swap);
8854
- }
8855
- jObj[prop].push(obj);
8856
- }else {
8857
- jObj[prop] = options.arrayMode ? [obj] : obj;
8858
- }
9137
+ /**
9138
+ * Keep reading xmlData until '<' is found outside the attribute value.
9139
+ * @param {string} xmlData
9140
+ * @param {number} i
9141
+ */
9142
+ function readAttributeStr(xmlData, i) {
9143
+ let attrStr = '';
9144
+ let startChar = '';
9145
+ let tagClosed = false;
9146
+ for (; i < xmlData.length; i++) {
9147
+ if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) {
9148
+ if (startChar === '') {
9149
+ startChar = xmlData[i];
9150
+ } else if (startChar !== xmlData[i]) ; else {
9151
+ startChar = '';
9152
+ }
9153
+ } else if (xmlData[i] === '>') {
9154
+ if (startChar === '') {
9155
+ tagClosed = true;
9156
+ break;
9157
+ }
8859
9158
  }
8860
- util.merge(jObj,node.attrsMap);
8861
- //add attrsMap as new children
8862
- if(util.isEmptyObject(jObj)){
8863
- return util.isExist(node.val)? node.val : "";
8864
- }else {
8865
- if(util.isExist(node.val)){
8866
- if(!(typeof node.val === "string" && (node.val === "" || node.val === options.cdataPositionChar))){
8867
- jObj[options.textNodeName] = node.val;
8868
- }
9159
+ attrStr += xmlData[i];
9160
+ }
9161
+ if (startChar !== '') {
9162
+ return false;
9163
+ }
9164
+
9165
+ return {
9166
+ value: attrStr,
9167
+ index: i,
9168
+ tagClosed: tagClosed
9169
+ };
9170
+ }
9171
+
9172
+ /**
9173
+ * Select all the attributes whether valid or invalid.
9174
+ */
9175
+ const validAttrStrRegxp = new RegExp('(\\s*)([^\\s=]+)(\\s*=)?(\\s*([\'"])(([\\s\\S])*?)\\5)?', 'g');
9176
+
9177
+ //attr, ="sd", a="amit's", a="sd"b="saf", ab cd=""
9178
+
9179
+ function validateAttributeString(attrStr, options) {
9180
+ //console.log("start:"+attrStr+":end");
9181
+
9182
+ //if(attrStr.trim().length === 0) return true; //empty string
9183
+
9184
+ const matches = util.getAllMatches(attrStr, validAttrStrRegxp);
9185
+ const attrNames = {};
9186
+
9187
+ for (let i = 0; i < matches.length; i++) {
9188
+ if (matches[i][1].length === 0) {
9189
+ //nospace before attribute name: a="sd"b="saf"
9190
+ return getErrorObject('InvalidAttr', "Attribute '"+matches[i][2]+"' has no space in starting.", getPositionFromMatch(matches[i]))
9191
+ } else if (matches[i][3] === undefined && !options.allowBooleanAttributes) {
9192
+ //independent attribute: ab
9193
+ return getErrorObject('InvalidAttr', "boolean attribute '"+matches[i][2]+"' is not allowed.", getPositionFromMatch(matches[i]));
9194
+ }
9195
+ /* else if(matches[i][6] === undefined){//attribute without value: ab=
9196
+ return { err: { code:"InvalidAttr",msg:"attribute " + matches[i][2] + " has no value assigned."}};
9197
+ } */
9198
+ const attrName = matches[i][2];
9199
+ if (!validateAttrName(attrName)) {
9200
+ return getErrorObject('InvalidAttr', "Attribute '"+attrName+"' is an invalid name.", getPositionFromMatch(matches[i]));
9201
+ }
9202
+ if (!attrNames.hasOwnProperty(attrName)) {
9203
+ //check for duplicate attribute.
9204
+ attrNames[attrName] = 1;
9205
+ } else {
9206
+ return getErrorObject('InvalidAttr', "Attribute '"+attrName+"' is repeated.", getPositionFromMatch(matches[i]));
9207
+ }
9208
+ }
9209
+
9210
+ return true;
9211
+ }
9212
+
9213
+ function validateNumberAmpersand(xmlData, i) {
9214
+ let re = /\d/;
9215
+ if (xmlData[i] === 'x') {
9216
+ i++;
9217
+ re = /[\da-fA-F]/;
9218
+ }
9219
+ for (; i < xmlData.length; i++) {
9220
+ if (xmlData[i] === ';')
9221
+ return i;
9222
+ if (!xmlData[i].match(re))
9223
+ break;
9224
+ }
9225
+ return -1;
9226
+ }
9227
+
9228
+ function validateAmpersand(xmlData, i) {
9229
+ // https://www.w3.org/TR/xml/#dt-charref
9230
+ i++;
9231
+ if (xmlData[i] === ';')
9232
+ return -1;
9233
+ if (xmlData[i] === '#') {
9234
+ i++;
9235
+ return validateNumberAmpersand(xmlData, i);
9236
+ }
9237
+ let count = 0;
9238
+ for (; i < xmlData.length; i++, count++) {
9239
+ if (xmlData[i].match(/\w/) && count < 20)
9240
+ continue;
9241
+ if (xmlData[i] === ';')
9242
+ break;
9243
+ return -1;
9244
+ }
9245
+ return i;
9246
+ }
9247
+
9248
+ function getErrorObject(code, message, lineNumber) {
9249
+ return {
9250
+ err: {
9251
+ code: code,
9252
+ msg: message,
9253
+ line: lineNumber.line || lineNumber,
9254
+ col: lineNumber.col,
9255
+ },
9256
+ };
9257
+ }
9258
+
9259
+ function validateAttrName(attrName) {
9260
+ return util.isName(attrName);
9261
+ }
9262
+
9263
+ // const startsWithXML = /^xml/i;
9264
+
9265
+ function validateTagName(tagname) {
9266
+ return util.isName(tagname) /* && !tagname.match(startsWithXML) */;
9267
+ }
9268
+
9269
+ //this function returns the line number for the character at the given index
9270
+ function getLineNumberForPosition(xmlData, index) {
9271
+ const lines = xmlData.substring(0, index).split(/\r?\n/);
9272
+ return {
9273
+ line: lines.length,
9274
+
9275
+ // column number is last line's length + 1, because column numbering starts at 1:
9276
+ col: lines[lines.length - 1].length + 1
9277
+ };
9278
+ }
9279
+
9280
+ //this function returns the position of the first character of match within attrStr
9281
+ function getPositionFromMatch(match) {
9282
+ return match.startIndex + match[1].length;
9283
+ }
9284
+
9285
+ var validator = {
9286
+ validate: validate
9287
+ };
9288
+
9289
+ const char = function(a) {
9290
+ return String.fromCharCode(a);
9291
+ };
9292
+
9293
+ const chars = {
9294
+ nilChar: char(176),
9295
+ missingChar: char(201),
9296
+ nilPremitive: char(175),
9297
+ missingPremitive: char(200),
9298
+
9299
+ emptyChar: char(178),
9300
+ emptyValue: char(177), //empty Premitive
9301
+
9302
+ boundryChar: char(179),
9303
+
9304
+ objStart: char(198),
9305
+ arrStart: char(204),
9306
+ arrayEnd: char(185),
9307
+ };
9308
+
9309
+ const charsArr = [
9310
+ chars.nilChar,
9311
+ chars.nilPremitive,
9312
+ chars.missingChar,
9313
+ chars.missingPremitive,
9314
+ chars.boundryChar,
9315
+ chars.emptyChar,
9316
+ chars.emptyValue,
9317
+ chars.arrayEnd,
9318
+ chars.objStart,
9319
+ chars.arrStart,
9320
+ ];
9321
+
9322
+ const _e = function(node, e_schema, options) {
9323
+ if (typeof e_schema === 'string') {
9324
+ //premitive
9325
+ if (node && node[0] && node[0].val !== undefined) {
9326
+ return getValue(node[0].val);
9327
+ } else {
9328
+ return getValue(node);
9329
+ }
9330
+ } else {
9331
+ const hasValidData = hasData(node);
9332
+ if (hasValidData === true) {
9333
+ let str = '';
9334
+ if (Array.isArray(e_schema)) {
9335
+ //attributes can't be repeated. hence check in children tags only
9336
+ str += chars.arrStart;
9337
+ const itemSchema = e_schema[0];
9338
+ //const itemSchemaType = itemSchema;
9339
+ const arr_len = node.length;
9340
+
9341
+ if (typeof itemSchema === 'string') {
9342
+ for (let arr_i = 0; arr_i < arr_len; arr_i++) {
9343
+ const r = getValue(node[arr_i].val);
9344
+ str = processValue(str, r);
9345
+ }
9346
+ } else {
9347
+ for (let arr_i = 0; arr_i < arr_len; arr_i++) {
9348
+ const r = _e(node[arr_i], itemSchema, options);
9349
+ str = processValue(str, r);
9350
+ }
9351
+ }
9352
+ str += chars.arrayEnd; //indicates that next item is not array item
9353
+ } else {
9354
+ //object
9355
+ str += chars.objStart;
9356
+ const keys = Object.keys(e_schema);
9357
+ if (Array.isArray(node)) {
9358
+ node = node[0];
9359
+ }
9360
+ for (let i in keys) {
9361
+ const key = keys[i];
9362
+ //a property defined in schema can be present either in attrsMap or children tags
9363
+ //options.textNodeName will not present in both maps, take it's value from val
9364
+ //options.attrNodeName will be present in attrsMap
9365
+ let r;
9366
+ if (!options.ignoreAttributes && node.attrsMap && node.attrsMap[key]) {
9367
+ r = _e(node.attrsMap[key], e_schema[key], options);
9368
+ } else if (key === options.textNodeName) {
9369
+ r = _e(node.val, e_schema[key], options);
9370
+ } else {
9371
+ r = _e(node.child[key], e_schema[key], options);
9372
+ }
9373
+ str = processValue(str, r);
8869
9374
  }
9375
+ }
9376
+ return str;
9377
+ } else {
9378
+ return hasValidData;
8870
9379
  }
8871
- //add value
8872
- return jObj;
9380
+ }
8873
9381
  };
8874
9382
 
8875
- var parse$1 = xml2json;
8876
- var getTraversalObj_1 = getTraversalObj;
8877
- var convertToJson_1 = convertToJson;
9383
+ const getValue = function(a /*, type*/) {
9384
+ switch (a) {
9385
+ case undefined:
9386
+ return chars.missingPremitive;
9387
+ case null:
9388
+ return chars.nilPremitive;
9389
+ case '':
9390
+ return chars.emptyValue;
9391
+ default:
9392
+ return a;
9393
+ }
9394
+ };
8878
9395
 
8879
- var x2j = {
8880
- parse: parse$1,
8881
- getTraversalObj: getTraversalObj_1,
8882
- convertToJson: convertToJson_1
9396
+ const processValue = function(str, r) {
9397
+ if (!isAppChar(r[0]) && !isAppChar(str[str.length - 1])) {
9398
+ str += chars.boundryChar;
9399
+ }
9400
+ return str + r;
9401
+ };
9402
+
9403
+ const isAppChar = function(ch) {
9404
+ return charsArr.indexOf(ch) !== -1;
9405
+ };
9406
+
9407
+ function hasData(jObj) {
9408
+ if (jObj === undefined) {
9409
+ return chars.missingChar;
9410
+ } else if (jObj === null) {
9411
+ return chars.nilChar;
9412
+ } else if (
9413
+ jObj.child &&
9414
+ Object.keys(jObj.child).length === 0 &&
9415
+ (!jObj.attrsMap || Object.keys(jObj.attrsMap).length === 0)
9416
+ ) {
9417
+ return chars.emptyChar;
9418
+ } else {
9419
+ return true;
9420
+ }
9421
+ }
9422
+
9423
+
9424
+ const buildOptions$2 = util.buildOptions;
9425
+
9426
+ const convert2nimn = function(node, e_schema, options) {
9427
+ options = buildOptions$2(options, xmlstr2xmlnode.defaultOptions, xmlstr2xmlnode.props);
9428
+ return _e(node, e_schema, options);
8883
9429
  };
8884
9430
 
8885
- var parse = x2j.parse;
9431
+ var convert2nimn_1 = convert2nimn;
9432
+
9433
+ var nimndata = {
9434
+ convert2nimn: convert2nimn_1
9435
+ };
9436
+
9437
+ const buildOptions$1 = util.buildOptions;
9438
+
9439
+
9440
+ //TODO: do it later
9441
+ const convertToJsonString = function(node, options) {
9442
+ options = buildOptions$1(options, xmlstr2xmlnode.defaultOptions, xmlstr2xmlnode.props);
9443
+
9444
+ options.indentBy = options.indentBy || '';
9445
+ return _cToJsonStr(node, options);
9446
+ };
9447
+
9448
+ const _cToJsonStr = function(node, options, level) {
9449
+ let jObj = '{';
9450
+
9451
+ //traver through all the children
9452
+ const keys = Object.keys(node.child);
9453
+
9454
+ for (let index = 0; index < keys.length; index++) {
9455
+ const tagname = keys[index];
9456
+ if (node.child[tagname] && node.child[tagname].length > 1) {
9457
+ jObj += '"' + tagname + '" : [ ';
9458
+ for (let tag in node.child[tagname]) {
9459
+ jObj += _cToJsonStr(node.child[tagname][tag], options) + ' , ';
9460
+ }
9461
+ jObj = jObj.substr(0, jObj.length - 1) + ' ] '; //remove extra comma in last
9462
+ } else {
9463
+ jObj += '"' + tagname + '" : ' + _cToJsonStr(node.child[tagname][0], options) + ' ,';
9464
+ }
9465
+ }
9466
+ util.merge(jObj, node.attrsMap);
9467
+ //add attrsMap as new children
9468
+ if (util.isEmptyObject(jObj)) {
9469
+ return util.isExist(node.val) ? node.val : '';
9470
+ } else {
9471
+ if (util.isExist(node.val)) {
9472
+ if (!(typeof node.val === 'string' && (node.val === '' || node.val === options.cdataPositionChar))) {
9473
+ jObj += '"' + options.textNodeName + '" : ' + stringval(node.val);
9474
+ }
9475
+ }
9476
+ }
9477
+ //add value
9478
+ if (jObj[jObj.length - 1] === ',') {
9479
+ jObj = jObj.substr(0, jObj.length - 2);
9480
+ }
9481
+ return jObj + '}';
9482
+ };
9483
+
9484
+ function stringval(v) {
9485
+ if (v === true || v === false || !isNaN(v)) {
9486
+ return v;
9487
+ } else {
9488
+ return '"' + v + '"';
9489
+ }
9490
+ }
9491
+
9492
+ var convertToJsonString_1 = convertToJsonString;
9493
+
9494
+ var node2json_str = {
9495
+ convertToJsonString: convertToJsonString_1
9496
+ };
9497
+
9498
+ //parse Empty Node as self closing node
9499
+ const buildOptions = util.buildOptions;
9500
+
9501
+ const defaultOptions = {
9502
+ attributeNamePrefix: '@_',
9503
+ attrNodeName: false,
9504
+ textNodeName: '#text',
9505
+ ignoreAttributes: true,
9506
+ cdataTagName: false,
9507
+ cdataPositionChar: '\\c',
9508
+ format: false,
9509
+ indentBy: ' ',
9510
+ supressEmptyNode: false,
9511
+ tagValueProcessor: function(a) {
9512
+ return a;
9513
+ },
9514
+ attrValueProcessor: function(a) {
9515
+ return a;
9516
+ },
9517
+ };
9518
+
9519
+ const props = [
9520
+ 'attributeNamePrefix',
9521
+ 'attrNodeName',
9522
+ 'textNodeName',
9523
+ 'ignoreAttributes',
9524
+ 'cdataTagName',
9525
+ 'cdataPositionChar',
9526
+ 'format',
9527
+ 'indentBy',
9528
+ 'supressEmptyNode',
9529
+ 'tagValueProcessor',
9530
+ 'attrValueProcessor',
9531
+ 'rootNodeName', //when array as root
9532
+ ];
9533
+
9534
+ function Parser(options) {
9535
+ this.options = buildOptions(options, defaultOptions, props);
9536
+ if (this.options.ignoreAttributes || this.options.attrNodeName) {
9537
+ this.isAttribute = function(/*a*/) {
9538
+ return false;
9539
+ };
9540
+ } else {
9541
+ this.attrPrefixLen = this.options.attributeNamePrefix.length;
9542
+ this.isAttribute = isAttribute;
9543
+ }
9544
+ if (this.options.cdataTagName) {
9545
+ this.isCDATA = isCDATA;
9546
+ } else {
9547
+ this.isCDATA = function(/*a*/) {
9548
+ return false;
9549
+ };
9550
+ }
9551
+ this.replaceCDATAstr = replaceCDATAstr;
9552
+ this.replaceCDATAarr = replaceCDATAarr;
9553
+
9554
+ this.processTextOrObjNode = processTextOrObjNode;
9555
+
9556
+ if (this.options.format) {
9557
+ this.indentate = indentate;
9558
+ this.tagEndChar = '>\n';
9559
+ this.newLine = '\n';
9560
+ } else {
9561
+ this.indentate = function() {
9562
+ return '';
9563
+ };
9564
+ this.tagEndChar = '>';
9565
+ this.newLine = '';
9566
+ }
9567
+
9568
+ if (this.options.supressEmptyNode) {
9569
+ this.buildTextNode = buildEmptyTextNode;
9570
+ this.buildObjNode = buildEmptyObjNode;
9571
+ } else {
9572
+ this.buildTextNode = buildTextValNode;
9573
+ this.buildObjNode = buildObjectNode;
9574
+ }
9575
+
9576
+ this.buildTextValNode = buildTextValNode;
9577
+ this.buildObjectNode = buildObjectNode;
9578
+ }
9579
+
9580
+ Parser.prototype.parse = function(jObj) {
9581
+ if(Array.isArray(jObj) && this.options.rootNodeName && this.options.rootNodeName.length > 1){
9582
+ jObj = {
9583
+ [this.options.rootNodeName] : jObj
9584
+ };
9585
+ }
9586
+ return this.j2x(jObj, 0).val;
9587
+ };
9588
+
9589
+ Parser.prototype.j2x = function(jObj, level) {
9590
+ let attrStr = '';
9591
+ let val = '';
9592
+ for (let key in jObj) {
9593
+ if (typeof jObj[key] === 'undefined') ; else if (jObj[key] === null) {
9594
+ val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;
9595
+ } else if (jObj[key] instanceof Date) {
9596
+ val += this.buildTextNode(jObj[key], key, '', level);
9597
+ } else if (typeof jObj[key] !== 'object') {
9598
+ //premitive type
9599
+ const attr = this.isAttribute(key);
9600
+ if (attr) {
9601
+ attrStr += ' ' + attr + '="' + this.options.attrValueProcessor('' + jObj[key]) + '"';
9602
+ } else if (this.isCDATA(key)) {
9603
+ if (jObj[this.options.textNodeName]) {
9604
+ val += this.replaceCDATAstr(jObj[this.options.textNodeName], jObj[key]);
9605
+ } else {
9606
+ val += this.replaceCDATAstr('', jObj[key]);
9607
+ }
9608
+ } else {
9609
+ //tag value
9610
+ if (key === this.options.textNodeName) {
9611
+ if (jObj[this.options.cdataTagName]) ; else {
9612
+ val += this.options.tagValueProcessor('' + jObj[key]);
9613
+ }
9614
+ } else {
9615
+ val += this.buildTextNode(jObj[key], key, '', level);
9616
+ }
9617
+ }
9618
+ } else if (Array.isArray(jObj[key])) {
9619
+ //repeated nodes
9620
+ if (this.isCDATA(key)) {
9621
+ val += this.indentate(level);
9622
+ if (jObj[this.options.textNodeName]) {
9623
+ val += this.replaceCDATAarr(jObj[this.options.textNodeName], jObj[key]);
9624
+ } else {
9625
+ val += this.replaceCDATAarr('', jObj[key]);
9626
+ }
9627
+ } else {
9628
+ //nested nodes
9629
+ const arrLen = jObj[key].length;
9630
+ for (let j = 0; j < arrLen; j++) {
9631
+ const item = jObj[key][j];
9632
+ if (typeof item === 'undefined') ; else if (item === null) {
9633
+ val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;
9634
+ } else if (typeof item === 'object') {
9635
+ val += this.processTextOrObjNode(item, key, level);
9636
+ } else {
9637
+ val += this.buildTextNode(item, key, '', level);
9638
+ }
9639
+ }
9640
+ }
9641
+ } else {
9642
+ //nested node
9643
+ if (this.options.attrNodeName && key === this.options.attrNodeName) {
9644
+ const Ks = Object.keys(jObj[key]);
9645
+ const L = Ks.length;
9646
+ for (let j = 0; j < L; j++) {
9647
+ attrStr += ' ' + Ks[j] + '="' + this.options.attrValueProcessor('' + jObj[key][Ks[j]]) + '"';
9648
+ }
9649
+ } else {
9650
+ val += this.processTextOrObjNode(jObj[key], key, level);
9651
+ }
9652
+ }
9653
+ }
9654
+ return {attrStr: attrStr, val: val};
9655
+ };
9656
+
9657
+ function processTextOrObjNode (object, key, level) {
9658
+ const result = this.j2x(object, level + 1);
9659
+ if (object[this.options.textNodeName] !== undefined && Object.keys(object).length === 1) {
9660
+ return this.buildTextNode(result.val, key, result.attrStr, level);
9661
+ } else {
9662
+ return this.buildObjNode(result.val, key, result.attrStr, level);
9663
+ }
9664
+ }
9665
+
9666
+ function replaceCDATAstr(str, cdata) {
9667
+ str = this.options.tagValueProcessor('' + str);
9668
+ if (this.options.cdataPositionChar === '' || str === '') {
9669
+ return str + '<![CDATA[' + cdata + ']]' + this.tagEndChar;
9670
+ } else {
9671
+ return str.replace(this.options.cdataPositionChar, '<![CDATA[' + cdata + ']]' + this.tagEndChar);
9672
+ }
9673
+ }
9674
+
9675
+ function replaceCDATAarr(str, cdata) {
9676
+ str = this.options.tagValueProcessor('' + str);
9677
+ if (this.options.cdataPositionChar === '' || str === '') {
9678
+ return str + '<![CDATA[' + cdata.join(']]><![CDATA[') + ']]' + this.tagEndChar;
9679
+ } else {
9680
+ for (let v in cdata) {
9681
+ str = str.replace(this.options.cdataPositionChar, '<![CDATA[' + cdata[v] + ']]>');
9682
+ }
9683
+ return str + this.newLine;
9684
+ }
9685
+ }
9686
+
9687
+ function buildObjectNode(val, key, attrStr, level) {
9688
+ if (attrStr && val.indexOf('<') === -1) {
9689
+ return (
9690
+ this.indentate(level) +
9691
+ '<' +
9692
+ key +
9693
+ attrStr +
9694
+ '>' +
9695
+ val +
9696
+ //+ this.newLine
9697
+ // + this.indentate(level)
9698
+ '</' +
9699
+ key +
9700
+ this.tagEndChar
9701
+ );
9702
+ } else {
9703
+ return (
9704
+ this.indentate(level) +
9705
+ '<' +
9706
+ key +
9707
+ attrStr +
9708
+ this.tagEndChar +
9709
+ val +
9710
+ //+ this.newLine
9711
+ this.indentate(level) +
9712
+ '</' +
9713
+ key +
9714
+ this.tagEndChar
9715
+ );
9716
+ }
9717
+ }
9718
+
9719
+ function buildEmptyObjNode(val, key, attrStr, level) {
9720
+ if (val !== '') {
9721
+ return this.buildObjectNode(val, key, attrStr, level);
9722
+ } else {
9723
+ return this.indentate(level) + '<' + key + attrStr + '/' + this.tagEndChar;
9724
+ //+ this.newLine
9725
+ }
9726
+ }
9727
+
9728
+ function buildTextValNode(val, key, attrStr, level) {
9729
+ return (
9730
+ this.indentate(level) +
9731
+ '<' +
9732
+ key +
9733
+ attrStr +
9734
+ '>' +
9735
+ this.options.tagValueProcessor(val) +
9736
+ '</' +
9737
+ key +
9738
+ this.tagEndChar
9739
+ );
9740
+ }
9741
+
9742
+ function buildEmptyTextNode(val, key, attrStr, level) {
9743
+ if (val !== '') {
9744
+ return this.buildTextValNode(val, key, attrStr, level);
9745
+ } else {
9746
+ return this.indentate(level) + '<' + key + attrStr + '/' + this.tagEndChar;
9747
+ }
9748
+ }
9749
+
9750
+ function indentate(level) {
9751
+ return this.options.indentBy.repeat(level);
9752
+ }
9753
+
9754
+ function isAttribute(name /*, options*/) {
9755
+ if (name.startsWith(this.options.attributeNamePrefix)) {
9756
+ return name.substr(this.attrPrefixLen);
9757
+ } else {
9758
+ return false;
9759
+ }
9760
+ }
9761
+
9762
+ function isCDATA(name) {
9763
+ return name === this.options.cdataTagName;
9764
+ }
9765
+
9766
+ //formatting
9767
+ //indentation
9768
+ //\n after each closing or self closing tag
9769
+
9770
+ var json2xml = Parser;
9771
+
9772
+ var parser = createCommonjsModule(function (module, exports) {
9773
+
9774
+
9775
+
9776
+ const x2xmlnode = xmlstr2xmlnode;
9777
+ const buildOptions = util.buildOptions;
9778
+
9779
+
9780
+ exports.parse = function(xmlData, givenOptions = {}, validationOption) {
9781
+ if( validationOption){
9782
+ if(validationOption === true) validationOption = {};
9783
+
9784
+ const result = validator.validate(xmlData, validationOption);
9785
+ if (result !== true) {
9786
+ throw Error( result.err.msg)
9787
+ }
9788
+ }
9789
+ if(givenOptions.parseTrueNumberOnly
9790
+ && givenOptions.parseNodeValue !== false
9791
+ && !givenOptions.numParseOptions){
9792
+
9793
+ givenOptions.numParseOptions = {
9794
+ leadingZeros: false,
9795
+ };
9796
+ }
9797
+ let options = buildOptions(givenOptions, x2xmlnode.defaultOptions, x2xmlnode.props);
9798
+
9799
+ const traversableObj = xmlstr2xmlnode.getTraversalObj(xmlData, options);
9800
+ //print(traversableObj, " ");
9801
+ return node2json.convertToJson(traversableObj, options);
9802
+ };
9803
+ exports.convertTonimn = nimndata.convert2nimn;
9804
+ exports.getTraversalObj = xmlstr2xmlnode.getTraversalObj;
9805
+ exports.convertToJson = node2json.convertToJson;
9806
+ exports.convertToJsonString = node2json_str.convertToJsonString;
9807
+ exports.validate = validator.validate;
9808
+ exports.j2xParser = json2xml;
9809
+ exports.parseToNimn = function(xmlData, schema, options) {
9810
+ return exports.convertTonimn(exports.getTraversalObj(xmlData, options), schema, options);
9811
+ };
9812
+ });
8886
9813
 
8887
9814
  function parseMetadataXml(metadataXml) {
8888
9815
  var opts = {
@@ -8891,7 +9818,7 @@
8891
9818
  attributeNamePrefix: "@_",
8892
9819
  textNodeName: "#value",
8893
9820
  };
8894
- return parse(metadataXml, opts);
9821
+ return parser.parse(metadataXml, opts);
8895
9822
  }
8896
9823
  /**
8897
9824
  * Fetch an [item's metadata](https://doc.arcgis.com/en/arcgis-online/manage-data/metadata.htm) from a portal
@@ -11823,9 +12750,11 @@
11823
12750
  return __generator(this, function (_a) {
11824
12751
  switch (_a.label) {
11825
12752
  case 0:
11826
- file = cloneObject$1(item.file);
11827
- // and remove the file object so
11828
- // that it won't trigger the direct upload at the createContent request
12753
+ file = item.file;
12754
+ // make a shadow copy of the item parameter and remove the file object
12755
+ // so that it won't trigger the direct upload at the createContent
12756
+ // request
12757
+ item = Object.assign({}, item);
11829
12758
  delete item.file;
11830
12759
  return [4 /*yield*/, createItem(__assign({ item: item, filename: file.name, async: true, multipart: true, overwrite: true }, requestOptions))];
11831
12760
  case 1: