').get(0),P=h+S+"-el",A=h+T+"-el",L=P+" "+(h+S),O=A+" "+(h+T);g=n('
').get(0),m=n('
').get(0),v=n('
').get(0),y=n('
').get(0),b=n('
').get(0),x=n('
').get(0),w=n('
').get(0),C=n('
').get(0),this["marginT"+o]=g,this["marginB"+o]=m,this["marginL"+o]=v,this["marginR"+o]=y,this["padT"+o]=b,this["padB"+o]=x,this["padL"+o]=w,this["padR"+o]=C,M.appendChild(g),M.appendChild(m),M.appendChild(v),M.appendChild(y),E.appendChild(b),E.appendChild(x),E.appendChild(w),E.appendChild(C),p.appendChild(M),p.appendChild(E),this[d]="1"}var N=u.marginLeft.replace("px",""),D=parseInt(u.marginTop.replace("px","")),I=parseInt(u.marginBottom.replace("px","")),_=g.style,F=m.style,$=v.style,z=y.style,R=b.style,H=x.style,V=w.style,j=C.style,B=parseInt(c.left);_.height=u.marginTop,_.width=u.width,_.top=c.top-u.marginTop.replace("px","")+"px",_.left=B+"px",F.height=u.marginBottom,F.width=u.width,F.top=c.top+c.height+"px",F.left=B+"px";var W=c.height+D+I+"px",U=c.top-D+"px";$.height=W,$.width=u.marginLeft,$.top=U,$.left=B-N+"px",z.height=W,z.width=u.marginRight,z.top=U,z.left=B+c.width+"px";var q=parseInt(u.paddingTop.replace("px",""));R.height=u.paddingTop,R.width=u.width,R.top=c.top+"px",R.left=B+"px";var K=parseInt(u.paddingBottom.replace("px",""));H.height=u.paddingBottom,H.width=u.width,H.top=c.top+c.height-K+"px",H.left=B+"px";var G=c.height-K-q+"px",Y=c.top+q+"px";V.height=G,V.width=u.paddingLeft,V.top=Y,V.left=c.left+"px";var X=parseInt(u.paddingRight.replace("px",""));j.height=G,j.width=u.paddingRight,j.top=Y,j.left=c.left+c.width-X+"px"}},stop:function(t,e,n){var i=n||{},r=i.state||"",o=this.getOffsetMethod(r);t.Canvas[o]().style.display="none"}}}).call(e,n(0))},function(t,e,n){"use strict";t.exports={run:function(t){var e=t.getSelected(),n=e&&e.collection;n&&n.parent&&t.select(n.parent)}}},function(t,e,n){"use strict";t.exports={isEnabled:function(){var t=document;return t.fullscreenElement||t.webkitFullscreenElement||t.mozFullScreenElement?1:0},enable:function(t){var e="";return t.requestFullscreen?t.requestFullscreen():t.webkitRequestFullscreen?(e="webkit",t.webkitRequestFullscreen()):t.mozRequestFullScreen?(e="moz",t.mozRequestFullScreen()):t.msRequestFullscreen?t.msRequestFullscreen():console.warn("Fullscreen not supported"),e},disable:function(){var t=document;t.exitFullscreen?t.exitFullscreen():t.webkitExitFullscreen?t.webkitExitFullscreen():t.mozCancelFullScreen?t.mozCancelFullScreen():t.msExitFullscreen&&t.msExitFullscreen()},fsChanged:function(t,e){var n=(document,(t||"")+"fullscreenchange");this.isEnabled()||(this.stop(null,this.sender),document.removeEventListener(n,this.fsChanged))},run:function(t,e){this.sender=e;var n=this.enable(t.getContainer());this.fsChanged=this.fsChanged.bind(this,n),document.addEventListener(n+"fullscreenchange",this.fsChanged),t&&t.trigger("change:canvasOffset")},stop:function(t,e){e&&e.set&&e.set("active",!1),this.disable(),t&&t.trigger("change:canvasOffset")}}},function(t,e,n){"use strict";(function(e){t.exports={getPanels:function(t){return this.panels||(this.panels=t.Panels.getPanelsEl()),this.panels},tglPointers:function(t,n){var i=t.Canvas.getBody().querySelectorAll("."+this.ppfx+"no-pointer");e.each(i,function(t){t.style.pointerEvents=n?"":"all"})},run:function(t,e){e&&e.set&&e.set("active",!1),t.stopCommand("sw-visibility"),t.getModel().stopDefault();var n=this,i=this.getPanels(t),r=t.Canvas.getElement(),o=t.getEl(),s=t.Config.stylePrefix;this.helper||(this.helper=document.createElement("span"),this.helper.className=s+"off-prv fa fa-eye-slash",o.appendChild(this.helper),this.helper.onclick=function(){n.stop(t)}),this.helper.style.display="inline-block",this.tglPointers(t),i.style.display="none";var a=r.style;a.width="100%",a.height="100%",a.top="0",a.left="0",a.padding="0",a.margin="0",t.trigger("change:canvasOffset")},stop:function(t,e){var n=this.getPanels(t);t.runCommand("sw-visibility"),t.getModel().runDefault(),n.style.display="block",t.Canvas.getElement().setAttribute("style",""),this.helper&&(this.helper.style.display="none"),t.trigger("change:canvasOffset"),this.tglPointers(t,1)}}}).call(e,n(1))},function(t,e,n){"use strict";t.exports={run:function(t,e,n){var i=n||{},r=i.el||"",o=t.Canvas,s=this.canvasResizer,a=i.options||{},l=o.getCanvasView();return a.ratioDefault=1,a.appendTo=o.getResizerEl(),a.prefix=t.getConfig().stylePrefix,a.posFetcher=l.getElementPos.bind(l),a.mousePosFetcher=o.getMouseRelativePos,s&&!i.forceNew||(this.canvasResizer=t.Utils.Resizer.init(a),s=this.canvasResizer),s.setOptions(a),s.focus(r),s},stop:function(){var t=this.canvasResizer;t&&t.blur()}}},function(t,e,n){"use strict";t.exports={run:function(t,e,n){var i=n&&n.el||"",r=t.Canvas,o=this.dragger,s=n.options||{},a=r.getCanvasView();return s.prefix=t.getConfig().stylePrefix,s.mousePosFetcher=r.getMouseRelativePos,s.posFetcher=a.getElementPos.bind(a),o||(o=t.Utils.Dragger.init(s),this.dragger=o),o.setOptions(s),o.focus(i),s.event&&o.start(s.event),o},stop:function(){this.canvasResizer&&this.canvasResizer.blur()}}},function(t,e,n){"use strict";t.exports=function(){var t,e,i,r={},o=n(201),s=n(202),a=n(204),l=n(205),c=[];return{name:"BlockManager",init:function(n){r=n||{};var u=r.em;for(var h in o)h in r||(r[h]=o[h]);return t=new s([]),e=new s([]),c=new a,i=new l({collection:e,categories:c},r),t.listenTo(t,"add",function(t){e.add(t),u&&u.trigger("block:add",t)}),t.listenTo(t,"remove",function(t){e.remove(t),u&&u.trigger("block:remove",t)}),t.listenTo(t,"reset",function(t){e.reset(t.models)}),this},getConfig:function(){return r},onLoad:function(){var t=this.getAll();!t.length&&t.reset(r.blocks)},add:function(e,n){var i=n||{};return i.id=e,t.add(i)},get:function(e){return t.get(e)},getAll:function(){return t},getAllVisible:function(){return e},remove:function(e){return t.remove(e)},getCategories:function(){return c},getContainer:function(){return i.el},render:function(t){var e=t||this.getAll().models;i.rendered||(i.render(),i.rendered=1),i.collection.reset(e)}}}},function(t,e,n){"use strict";t.exports={blocks:[],appendTo:""}},function(t,e,n){"use strict";var i=n(0),r=n(203);t.exports=i.Collection.extend({model:r})},function(t,e,n){"use strict";var i=n(0),r=n(57);t.exports=i.Model.extend({defaults:{label:"",content:"",category:"",attributes:{}},initialize:function(){var t=(arguments.length>0&&void 0!==arguments[0]&&arguments[0],this.get("category"));if(t&&"string"==typeof t){new r({id:t,label:t})}}})},function(t,e,n){"use strict";var i=n(0);t.exports=i.Collection.extend({model:n(57)})},function(t,e,n){"use strict";(function(e){var i=n(0),r=n(206),o=n(207);t.exports=i.View.extend({initialize:function(t,n){e.bindAll(this,"getSorter","onDrag","onDrop"),this.config=n||{},this.categories=t.categories||"",this.renderedCategories=[];var i=this.config.pStylePrefix||"";this.ppfx=i,this.noCatClass=i+"blocks-no-cat",this.blockContClass=i+"blocks-c",this.catsClass=i+"block-categories";var r=this.collection;this.listenTo(r,"add",this.addTo),this.listenTo(r,"reset",this.render),this.em=this.config.em,this.tac="test-tac",this.grabbingCls=this.ppfx+"grabbing",this.em&&(this.config.getSorter=this.getSorter,this.canvas=this.em.get("Canvas"))},getSorter:function(){if(this.em){if(!this.sorter){var t=this.em.get("Utils"),e=this.canvas;this.sorter=new t.Sorter({container:e.getBody(),placer:e.getPlacerEl(),containerSel:"*",itemSel:"*",pfx:this.ppfx,onStart:this.onDrag,onEndMove:this.onDrop,onMove:this.onMove,document:e.getFrameEl().contentDocument,direction:"a",wmargin:1,nested:1,em:this.em,canvasRelative:1})}return this.sorter}},onDrag:function(t){this.em.stopDefault(),this.em.trigger("block:drag:start",t)},onMove:function(t){this.em.trigger("block:drag:move",t)},onDrop:function(t){var e=this.em;e.runDefault(),t&&t.get&&(t.get("activeOnRender")&&(t.trigger("active"),t.set("activeOnRender",0)),e.initChildrenComp(t),e.trigger("block:drag:stop",t))},addTo:function(t){this.add(t)},add:function(t,e){var n=e||null,i=new r({model:t,attributes:t.get("attributes")},this.config),s=i.render().el,a=t.get("category");if(a&&this.categories){"string"==typeof a&&(a={id:a,label:a});var l=this.categories.add(a),c=l.get("id"),u=this.renderedCategories[c],h=this.getCategoriesEl();return t.set("category",l),!u&&h&&(u=new o({model:l},this.config).render(),this.renderedCategories[c]=u,h.appendChild(u.el)),void(u&&u.append(s))}n?n.appendChild(s):this.append(s)},getCategoriesEl:function(){return this.catsEl||(this.catsEl=this.el.querySelector("."+this.catsClass)),this.catsEl},getBlocksEl:function(){return this.blocksEl||(this.blocksEl=this.el.querySelector("."+this.noCatClass+" ."+this.blockContClass)),this.blocksEl},append:function(t){var e=this.getBlocksEl();e&&e.appendChild(t)},render:function(){var t=this,e=document.createDocumentFragment();return this.catsEl=null,this.blocksEl=null,this.renderedCategories=[],this.el.innerHTML='\n
\n
\n ',this.collection.each(function(n){return t.add(n,e)}),this.append(e),this.$el.addClass(this.blockContClass+"s"),this}})}).call(e,n(1))},function(t,e,n){"use strict";(function(e){var i=n(2);t.exports=e.View.extend({events:{mousedown:"startDrag"},initialize:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.config=e,this.endDrag=this.endDrag.bind(this),this.ppfx=e.pStylePrefix||"",this.listenTo(this.model,"destroy remove",this.remove)},startDrag:function(t){if(0===t.button&&this.config.getSorter){this.config.em.refreshCanvas();var e=this.config.getSorter();e.setDragHelper(this.el,t),e.setDropContent(this.model.get("content")),e.startSort(this.el),(0,i.on)(document,"mouseup",this.endDrag)}},endDrag:function(t){(0,i.off)(document,"mouseup",this.endDrag);var e=this.config.getSorter();e.moved=0,e.endMove()},render:function(){var t=this.el,e=this.ppfx+"block";return t.className+=" "+e,t.innerHTML='
'+this.model.get("label")+"
",this}})}).call(e,n(0))},function(t,e,n){"use strict";(function(e){var i=n(0);t.exports=i.View.extend({template:e.template('\n
\n \n <%= label %>\n
\n
\n '),events:{},initialize:function(){var t=(arguments.length>0&&void 0!==arguments[0]&&arguments[0],arguments.length>1&&void 0!==arguments[1]?arguments[1]:{});this.config=t;var e=this.config.pStylePrefix||"";this.pfx=e,this.caretR="fa fa-caret-right",this.caretD="fa fa-caret-down",this.iconClass=e+"caret-icon",this.activeClass=e+"open",this.className=e+"block-category",this.events["click ."+e+"title"]="toggle",this.listenTo(this.model,"change:open",this.updateVisibility),this.delegateEvents()},updateVisibility:function(){this.model.get("open")?this.open():this.close()},open:function(){this.el.className=this.className+" "+this.activeClass,this.getIconEl().className=this.iconClass+" "+this.caretD,this.getBlocksEl().style.display=""},close:function(){this.el.className=this.className,this.getIconEl().className=this.iconClass+" "+this.caretR,this.getBlocksEl().style.display="none"},toggle:function(){var t=this.model;t.set("open",!t.get("open"))},getIconEl:function(){return this.iconEl||(this.iconEl=this.el.querySelector("."+this.iconClass)),this.iconEl},getBlocksEl:function(){return this.blocksEl||(this.blocksEl=this.el.querySelector("."+this.pfx+"blocks-c")),this.blocksEl},append:function(t){this.getBlocksEl().appendChild(t)},render:function(){return this.el.innerHTML=this.template({pfx:this.pfx,label:this.model.get("label")}),this.el.className=this.className,this.updateVisibility(),this}})}).call(e,n(1))},function(t,e,n){var i,r,o;/*!
* Backbone.Undo.js v0.2
*
* Copyright (c)2013 Oliver Sartun
diff --git a/js/grapesjs-mjml.min.js b/js/grapesjs-mjml.min.js
index f0893fddf..ca7776e01 100644
--- a/js/grapesjs-mjml.min.js
+++ b/js/grapesjs-mjml.min.js
@@ -1,14 +1,14 @@
-/*! grapesjs-mjml - 0.0.24 */
+/*! grapesjs-mjml - 0.0.26 */
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
- module.exports = factory();
+ module.exports = factory(require("grapesjs"));
else if(typeof define === 'function' && define.amd)
- define([], factory);
+ define(["grapesjs"], factory);
else if(typeof exports === 'object')
- exports["grapesjs-mjml"] = factory();
+ exports["grapesjs-mjml"] = factory(require("grapesjs"));
else
- root["grapesjs-mjml"] = factory();
-})(this, function() {
+ root["grapesjs-mjml"] = factory(root["grapesjs"]);
+})(this, function(__WEBPACK_EXTERNAL_MODULE_336__) {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
@@ -71,7 +71,7 @@ return /******/ (function(modules) { // webpackBootstrap
/******/ __webpack_require__.p = "";
/******/
/******/ // Load entry module and return exports
-/******/ return __webpack_require__(__webpack_require__.s = 341);
+/******/ return __webpack_require__(__webpack_require__.s = 335);
/******/ })
/************************************************************************/
/******/ ([
@@ -266,6 +266,289 @@ process.umask = function() { return 0; };
/***/ }),
/* 1 */
+/***/ (function(module, exports) {
+
+if (typeof Object.create === 'function') {
+ // implementation from standard node.js 'util' module
+ module.exports = function inherits(ctor, superCtor) {
+ ctor.super_ = superCtor
+ ctor.prototype = Object.create(superCtor.prototype, {
+ constructor: {
+ value: ctor,
+ enumerable: false,
+ writable: true,
+ configurable: true
+ }
+ });
+ };
+} else {
+ // old school shim for old browsers
+ module.exports = function inherits(ctor, superCtor) {
+ ctor.super_ = superCtor
+ var TempCtor = function () {}
+ TempCtor.prototype = superCtor.prototype
+ ctor.prototype = new TempCtor()
+ ctor.prototype.constructor = ctor
+ }
+}
+
+
+/***/ }),
+/* 2 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(process) {/**
+ * Copyright (c) 2013-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ */
+
+
+
+/**
+ * Use invariant() to assert state which your program assumes to be true.
+ *
+ * Provide sprintf-style format (only %s is supported) and arguments
+ * to provide information about what broke and what you were
+ * expecting.
+ *
+ * The invariant message will be stripped in production, but the invariant
+ * will remain to ensure logic does not differ in production.
+ */
+
+var validateFormat = function validateFormat(format) {};
+
+if (process.env.NODE_ENV !== 'production') {
+ validateFormat = function validateFormat(format) {
+ if (format === undefined) {
+ throw new Error('invariant requires an error message argument');
+ }
+ };
+}
+
+function invariant(condition, format, a, b, c, d, e, f) {
+ validateFormat(format);
+
+ if (!condition) {
+ var error;
+ if (format === undefined) {
+ error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');
+ } else {
+ var args = [a, b, c, d, e, f];
+ var argIndex = 0;
+ error = new Error(format.replace(/%s/g, function () {
+ return args[argIndex++];
+ }));
+ error.name = 'Invariant Violation';
+ }
+
+ error.framesToPop = 1; // we don't care about invariant's own frame
+ throw error;
+ }
+}
+
+module.exports = invariant;
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
+
+/***/ }),
+/* 3 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.mjml2html = exports.MJMLValidator = exports.version = exports.mjIncludeRegexp = exports.documentParser = exports.rulesCollection = exports.registerMJRule = exports.formatValidationError = exports.MJMLHeadElements = exports.registerMJHeadElement = exports.helpers = exports.elements = exports.registerMJElement = exports.MJMLRenderer = exports.MJMLElement = undefined;
+
+var _includeExternal = __webpack_require__(187);
+
+Object.defineProperty(exports, 'mjIncludeRegexp', {
+ enumerable: true,
+ get: function get() {
+ return _includeExternal.includes;
+ }
+});
+
+var _MJMLRenderer = __webpack_require__(340);
+
+var _MJMLRenderer2 = _interopRequireDefault(_MJMLRenderer);
+
+var _mjmlValidator = __webpack_require__(133);
+
+var _mjmlValidator2 = _interopRequireDefault(_mjmlValidator);
+
+var _MJMLElementsCollection = __webpack_require__(41);
+
+var _MJMLElementsCollection2 = _interopRequireDefault(_MJMLElementsCollection);
+
+var _MJMLHead = __webpack_require__(143);
+
+var _MJMLHead2 = _interopRequireDefault(_MJMLHead);
+
+var _helpers = __webpack_require__(296);
+
+var helpers = _interopRequireWildcard(_helpers);
+
+var _MJMLElement2 = __webpack_require__(639);
+
+var _MJMLElement3 = _interopRequireDefault(_MJMLElement2);
+
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+exports.MJMLElement = _MJMLElement3.default;
+exports.MJMLRenderer = _MJMLRenderer2.default;
+exports.registerMJElement = _MJMLElementsCollection.registerMJElement;
+exports.elements = _MJMLElementsCollection2.default;
+exports.helpers = helpers;
+exports.registerMJHeadElement = _MJMLHead.registerMJHeadElement;
+exports.MJMLHeadElements = _MJMLHead2.default;
+exports.formatValidationError = _mjmlValidator.formatValidationError;
+exports.registerMJRule = _mjmlValidator.registerMJRule;
+exports.rulesCollection = _mjmlValidator.rulesCollection;
+var documentParser = exports.documentParser = function documentParser(content, attributes) {
+ var documentParser = __webpack_require__(243).default;
+
+ return documentParser(content, attributes);
+};
+var version = exports.version = function version() {
+ return '3.3.5';
+};
+var MJMLValidator = exports.MJMLValidator = _mjmlValidator2.default;
+var mjml2html = exports.mjml2html = function mjml2html(mjml) {
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+ return new _MJMLRenderer2.default(mjml, options).render();
+};
+
+/***/ }),
+/* 4 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(process) {/**
+ * Copyright (c) 2014-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ */
+
+
+
+var emptyFunction = __webpack_require__(21);
+
+/**
+ * Similar to invariant but only logs a warning if the condition is not met.
+ * This can be used to log issues in development environments in critical
+ * paths. Removing the logging code for production environments will keep the
+ * same logic and follow the same code paths.
+ */
+
+var warning = emptyFunction;
+
+if (process.env.NODE_ENV !== 'production') {
+ var printWarning = function printWarning(format) {
+ for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ args[_key - 1] = arguments[_key];
+ }
+
+ var argIndex = 0;
+ var message = 'Warning: ' + format.replace(/%s/g, function () {
+ return args[argIndex++];
+ });
+ if (typeof console !== 'undefined') {
+ console.error(message);
+ }
+ try {
+ // --- Welcome to debugging React ---
+ // This error was thrown as a convenience so that you can use this stack
+ // to find the callsite that caused this warning to fire.
+ throw new Error(message);
+ } catch (x) {}
+ };
+
+ warning = function warning(condition, format) {
+ if (format === undefined) {
+ throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');
+ }
+
+ if (format.indexOf('Failed Composite propType: ') === 0) {
+ return; // Ignore CompositeComponent proptype check.
+ }
+
+ if (!condition) {
+ for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
+ args[_key2 - 2] = arguments[_key2];
+ }
+
+ printWarning.apply(undefined, [format].concat(args));
+ }
+ };
+}
+
+module.exports = warning;
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
+
+/***/ }),
+/* 5 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+module.exports = __webpack_require__(43);
+
+
+/***/ }),
+/* 6 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/**
+ * Copyright (c) 2013-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ *
+ */
+
+
+/**
+ * WARNING: DO NOT manually require this module.
+ * This is a replacement for `invariant(...)` used by the error code system
+ * and will _only_ be required by the corresponding babel pass.
+ * It always throws.
+ */
+
+function reactProdInvariant(code) {
+ var argCount = arguments.length - 1;
+
+ var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code;
+
+ for (var argIdx = 0; argIdx < argCount; argIdx++) {
+ message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]);
+ }
+
+ message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.';
+
+ var error = new Error(message);
+ error.name = 'Invariant Violation';
+ error.framesToPop = 1; // we don't care about reactProdInvariant's own frame
+
+ throw error;
+}
+
+module.exports = reactProdInvariant;
+
+/***/ }),
+/* 7 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -279,9 +562,9 @@ process.umask = function() { return 0; };
-var base64 = __webpack_require__(583)
-var ieee754 = __webpack_require__(584)
-var isArray = __webpack_require__(281)
+var base64 = __webpack_require__(580)
+var ieee754 = __webpack_require__(581)
+var isArray = __webpack_require__(279)
exports.Buffer = Buffer
exports.SlowBuffer = SlowBuffer
@@ -2059,425 +2342,202 @@ function isnan (val) {
return val !== val // eslint-disable-line no-self-compare
}
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(9)))
-
-/***/ }),
-/* 2 */
-/***/ (function(module, exports) {
-
-if (typeof Object.create === 'function') {
- // implementation from standard node.js 'util' module
- module.exports = function inherits(ctor, superCtor) {
- ctor.super_ = superCtor
- ctor.prototype = Object.create(superCtor.prototype, {
- constructor: {
- value: ctor,
- enumerable: false,
- writable: true,
- configurable: true
- }
- });
- };
-} else {
- // old school shim for old browsers
- module.exports = function inherits(ctor, superCtor) {
- ctor.super_ = superCtor
- var TempCtor = function () {}
- TempCtor.prototype = superCtor.prototype
- ctor.prototype = new TempCtor()
- ctor.prototype.constructor = ctor
- }
-}
-
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10)))
/***/ }),
-/* 3 */
+/* 8 */
/***/ (function(module, exports, __webpack_require__) {
-"use strict";
-/* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright (c) 2013-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- */
-
+/* eslint-disable node/no-deprecated-api */
+var buffer = __webpack_require__(7)
+var Buffer = buffer.Buffer
+// alternative to using Object.keys for old browsers
+function copyProps (src, dst) {
+ for (var key in src) {
+ dst[key] = src[key]
+ }
+}
+if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
+ module.exports = buffer
+} else {
+ // Copy properties from require('buffer')
+ copyProps(buffer, exports)
+ exports.Buffer = SafeBuffer
+}
-/**
- * Use invariant() to assert state which your program assumes to be true.
- *
- * Provide sprintf-style format (only %s is supported) and arguments
- * to provide information about what broke and what you were
- * expecting.
- *
- * The invariant message will be stripped in production, but the invariant
- * will remain to ensure logic does not differ in production.
- */
+function SafeBuffer (arg, encodingOrOffset, length) {
+ return Buffer(arg, encodingOrOffset, length)
+}
-var validateFormat = function validateFormat(format) {};
+// Copy static methods from Buffer
+copyProps(Buffer, SafeBuffer)
-if (process.env.NODE_ENV !== 'production') {
- validateFormat = function validateFormat(format) {
- if (format === undefined) {
- throw new Error('invariant requires an error message argument');
- }
- };
+SafeBuffer.from = function (arg, encodingOrOffset, length) {
+ if (typeof arg === 'number') {
+ throw new TypeError('Argument must not be a number')
+ }
+ return Buffer(arg, encodingOrOffset, length)
}
-function invariant(condition, format, a, b, c, d, e, f) {
- validateFormat(format);
-
- if (!condition) {
- var error;
- if (format === undefined) {
- error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');
+SafeBuffer.alloc = function (size, fill, encoding) {
+ if (typeof size !== 'number') {
+ throw new TypeError('Argument must be a number')
+ }
+ var buf = Buffer(size)
+ if (fill !== undefined) {
+ if (typeof encoding === 'string') {
+ buf.fill(fill, encoding)
} else {
- var args = [a, b, c, d, e, f];
- var argIndex = 0;
- error = new Error(format.replace(/%s/g, function () {
- return args[argIndex++];
- }));
- error.name = 'Invariant Violation';
+ buf.fill(fill)
}
+ } else {
+ buf.fill(0)
+ }
+ return buf
+}
- error.framesToPop = 1; // we don't care about invariant's own frame
- throw error;
+SafeBuffer.allocUnsafe = function (size) {
+ if (typeof size !== 'number') {
+ throw new TypeError('Argument must be a number')
}
+ return Buffer(size)
+}
+
+SafeBuffer.allocUnsafeSlow = function (size) {
+ if (typeof size !== 'number') {
+ throw new TypeError('Argument must be a number')
+ }
+ return buffer.SlowBuffer(size)
}
-module.exports = invariant;
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
-/* 4 */
+/* 9 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-/* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2014-2015, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- */
-
+/*
+object-assign
+(c) Sindre Sorhus
+@license MIT
+*/
-var emptyFunction = __webpack_require__(20);
+/* eslint-disable no-unused-vars */
+var getOwnPropertySymbols = Object.getOwnPropertySymbols;
+var hasOwnProperty = Object.prototype.hasOwnProperty;
+var propIsEnumerable = Object.prototype.propertyIsEnumerable;
-/**
- * Similar to invariant but only logs a warning if the condition is not met.
- * This can be used to log issues in development environments in critical
- * paths. Removing the logging code for production environments will keep the
- * same logic and follow the same code paths.
- */
+function toObject(val) {
+ if (val === null || val === undefined) {
+ throw new TypeError('Object.assign cannot be called with null or undefined');
+ }
-var warning = emptyFunction;
+ return Object(val);
+}
-if (process.env.NODE_ENV !== 'production') {
- (function () {
- var printWarning = function printWarning(format) {
- for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- args[_key - 1] = arguments[_key];
- }
+function shouldUseNative() {
+ try {
+ if (!Object.assign) {
+ return false;
+ }
- var argIndex = 0;
- var message = 'Warning: ' + format.replace(/%s/g, function () {
- return args[argIndex++];
- });
- if (typeof console !== 'undefined') {
- console.error(message);
- }
- try {
- // --- Welcome to debugging React ---
- // This error was thrown as a convenience so that you can use this stack
- // to find the callsite that caused this warning to fire.
- throw new Error(message);
- } catch (x) {}
- };
+ // Detect buggy property enumeration order in older V8 versions.
- warning = function warning(condition, format) {
- if (format === undefined) {
- throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');
- }
+ // https://bugs.chromium.org/p/v8/issues/detail?id=4118
+ var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
+ test1[5] = 'de';
+ if (Object.getOwnPropertyNames(test1)[0] === '5') {
+ return false;
+ }
- if (format.indexOf('Failed Composite propType: ') === 0) {
- return; // Ignore CompositeComponent proptype check.
- }
+ // https://bugs.chromium.org/p/v8/issues/detail?id=3056
+ var test2 = {};
+ for (var i = 0; i < 10; i++) {
+ test2['_' + String.fromCharCode(i)] = i;
+ }
+ var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
+ return test2[n];
+ });
+ if (order2.join('') !== '0123456789') {
+ return false;
+ }
- if (!condition) {
- for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
- args[_key2 - 2] = arguments[_key2];
- }
+ // https://bugs.chromium.org/p/v8/issues/detail?id=3056
+ var test3 = {};
+ 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
+ test3[letter] = letter;
+ });
+ if (Object.keys(Object.assign({}, test3)).join('') !==
+ 'abcdefghijklmnopqrst') {
+ return false;
+ }
- printWarning.apply(undefined, [format].concat(args));
- }
- };
- })();
+ return true;
+ } catch (err) {
+ // We don't expect any of the above to throw, but better to be safe.
+ return false;
+ }
}
-module.exports = warning;
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
+module.exports = shouldUseNative() ? Object.assign : function (target, source) {
+ var from;
+ var to = toObject(target);
+ var symbols;
-/***/ }),
-/* 5 */
-/***/ (function(module, exports, __webpack_require__) {
+ for (var s = 1; s < arguments.length; s++) {
+ from = Object(arguments[s]);
-"use strict";
+ for (var key in from) {
+ if (hasOwnProperty.call(from, key)) {
+ to[key] = from[key];
+ }
+ }
+ if (getOwnPropertySymbols) {
+ symbols = getOwnPropertySymbols(from);
+ for (var i = 0; i < symbols.length; i++) {
+ if (propIsEnumerable.call(from, symbols[i])) {
+ to[symbols[i]] = from[symbols[i]];
+ }
+ }
+ }
+ }
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.mjml2html = exports.MJMLValidator = exports.version = exports.mjIncludeRegexp = exports.documentParser = exports.rulesCollection = exports.registerMJRule = exports.formatValidationError = exports.MJMLHeadElements = exports.registerMJHeadElement = exports.helpers = exports.elements = exports.registerMJElement = exports.MJMLRenderer = exports.MJMLElement = undefined;
+ return to;
+};
-var _includeExternal = __webpack_require__(190);
-Object.defineProperty(exports, 'mjIncludeRegexp', {
- enumerable: true,
- get: function get() {
- return _includeExternal.includes;
- }
-});
+/***/ }),
+/* 10 */
+/***/ (function(module, exports) {
-var _MJMLRenderer = __webpack_require__(345);
+var g;
-var _MJMLRenderer2 = _interopRequireDefault(_MJMLRenderer);
+// This works in non-strict mode
+g = (function() {
+ return this;
+})();
-var _mjmlValidator = __webpack_require__(134);
+try {
+ // This works if eval is allowed (see CSP)
+ g = g || Function("return this")() || (1,eval)("this");
+} catch(e) {
+ // This works if the window reference is available
+ if(typeof window === "object")
+ g = window;
+}
-var _mjmlValidator2 = _interopRequireDefault(_mjmlValidator);
+// g can still be undefined, but nothing to do about it...
+// We return undefined, instead of nothing here, so it's
+// easier to handle this case. if(!global) { ...}
-var _MJMLElementsCollection = __webpack_require__(41);
-
-var _MJMLElementsCollection2 = _interopRequireDefault(_MJMLElementsCollection);
-
-var _MJMLHead = __webpack_require__(144);
-
-var _MJMLHead2 = _interopRequireDefault(_MJMLHead);
-
-var _helpers = __webpack_require__(297);
-
-var helpers = _interopRequireWildcard(_helpers);
-
-var _MJMLElement2 = __webpack_require__(643);
-
-var _MJMLElement3 = _interopRequireDefault(_MJMLElement2);
-
-function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-exports.MJMLElement = _MJMLElement3.default;
-exports.MJMLRenderer = _MJMLRenderer2.default;
-exports.registerMJElement = _MJMLElementsCollection.registerMJElement;
-exports.elements = _MJMLElementsCollection2.default;
-exports.helpers = helpers;
-exports.registerMJHeadElement = _MJMLHead.registerMJHeadElement;
-exports.MJMLHeadElements = _MJMLHead2.default;
-exports.formatValidationError = _mjmlValidator.formatValidationError;
-exports.registerMJRule = _mjmlValidator.registerMJRule;
-exports.rulesCollection = _mjmlValidator.rulesCollection;
-var documentParser = exports.documentParser = function documentParser(content, attributes) {
- var documentParser = __webpack_require__(246).default;
-
- return documentParser(content, attributes);
-};
-var version = exports.version = function version() {
- return '3.3.5';
-};
-var MJMLValidator = exports.MJMLValidator = _mjmlValidator2.default;
-var mjml2html = exports.mjml2html = function mjml2html(mjml) {
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
- return new _MJMLRenderer2.default(mjml, options).render();
-};
-
-/***/ }),
-/* 6 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-module.exports = __webpack_require__(43);
+module.exports = g;
/***/ }),
-/* 7 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-/**
- * Copyright (c) 2013-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- *
- */
-
-
-/**
- * WARNING: DO NOT manually require this module.
- * This is a replacement for `invariant(...)` used by the error code system
- * and will _only_ be required by the corresponding babel pass.
- * It always throws.
- */
-
-function reactProdInvariant(code) {
- var argCount = arguments.length - 1;
-
- var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code;
-
- for (var argIdx = 0; argIdx < argCount; argIdx++) {
- message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]);
- }
-
- message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.';
-
- var error = new Error(message);
- error.name = 'Invariant Violation';
- error.framesToPop = 1; // we don't care about reactProdInvariant's own frame
-
- throw error;
-}
-
-module.exports = reactProdInvariant;
-
-/***/ }),
-/* 8 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-/*
-object-assign
-(c) Sindre Sorhus
-@license MIT
-*/
-
-
-/* eslint-disable no-unused-vars */
-var getOwnPropertySymbols = Object.getOwnPropertySymbols;
-var hasOwnProperty = Object.prototype.hasOwnProperty;
-var propIsEnumerable = Object.prototype.propertyIsEnumerable;
-
-function toObject(val) {
- if (val === null || val === undefined) {
- throw new TypeError('Object.assign cannot be called with null or undefined');
- }
-
- return Object(val);
-}
-
-function shouldUseNative() {
- try {
- if (!Object.assign) {
- return false;
- }
-
- // Detect buggy property enumeration order in older V8 versions.
-
- // https://bugs.chromium.org/p/v8/issues/detail?id=4118
- var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
- test1[5] = 'de';
- if (Object.getOwnPropertyNames(test1)[0] === '5') {
- return false;
- }
-
- // https://bugs.chromium.org/p/v8/issues/detail?id=3056
- var test2 = {};
- for (var i = 0; i < 10; i++) {
- test2['_' + String.fromCharCode(i)] = i;
- }
- var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
- return test2[n];
- });
- if (order2.join('') !== '0123456789') {
- return false;
- }
-
- // https://bugs.chromium.org/p/v8/issues/detail?id=3056
- var test3 = {};
- 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
- test3[letter] = letter;
- });
- if (Object.keys(Object.assign({}, test3)).join('') !==
- 'abcdefghijklmnopqrst') {
- return false;
- }
-
- return true;
- } catch (err) {
- // We don't expect any of the above to throw, but better to be safe.
- return false;
- }
-}
-
-module.exports = shouldUseNative() ? Object.assign : function (target, source) {
- var from;
- var to = toObject(target);
- var symbols;
-
- for (var s = 1; s < arguments.length; s++) {
- from = Object(arguments[s]);
-
- for (var key in from) {
- if (hasOwnProperty.call(from, key)) {
- to[key] = from[key];
- }
- }
-
- if (getOwnPropertySymbols) {
- symbols = getOwnPropertySymbols(from);
- for (var i = 0; i < symbols.length; i++) {
- if (propIsEnumerable.call(from, symbols[i])) {
- to[symbols[i]] = from[symbols[i]];
- }
- }
- }
- }
-
- return to;
-};
-
-
-/***/ }),
-/* 9 */
-/***/ (function(module, exports) {
-
-var g;
-
-// This works in non-strict mode
-g = (function() {
- return this;
-})();
-
-try {
- // This works if eval is allowed (see CSP)
- g = g || Function("return this")() || (1,eval)("this");
-} catch(e) {
- // This works if the window reference is available
- if(typeof window === "object")
- g = window;
-}
-
-// g can still be undefined, but nothing to do about it...
-// We return undefined, instead of nothing here, so it's
-// easier to handle this case. if(!global) { ...}
-
-module.exports = g;
-
-
-/***/ }),
-/* 10 */
+/* 11 */
/***/ (function(module, exports) {
/**
@@ -2509,7 +2569,7 @@ module.exports = isArray;
/***/ }),
-/* 11 */
+/* 12 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(module) {(function (module, exports) {
@@ -5940,31 +6000,29 @@ module.exports = isArray;
};
})(typeof module === 'undefined' || module, this);
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16)(module)))
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(17)(module)))
/***/ }),
-/* 12 */
+/* 13 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*/
-var _prodInvariant = __webpack_require__(7);
+var _prodInvariant = __webpack_require__(6);
var DOMProperty = __webpack_require__(61);
-var ReactDOMComponentFlags = __webpack_require__(260);
+var ReactDOMComponentFlags = __webpack_require__(257);
-var invariant = __webpack_require__(3);
+var invariant = __webpack_require__(2);
var ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;
var Flags = ReactDOMComponentFlags;
@@ -6144,17 +6202,15 @@ module.exports = ReactDOMComponentTree;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
-/* 13 */
+/* 14 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/**
* Copyright (c) 2013-present, Facebook, Inc.
- * All rights reserved.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*/
@@ -6185,10 +6241,10 @@ var ExecutionEnvironment = {
module.exports = ExecutionEnvironment;
/***/ }),
-/* 14 */
+/* 15 */
/***/ (function(module, exports, __webpack_require__) {
-var freeGlobal = __webpack_require__(196);
+var freeGlobal = __webpack_require__(193);
/** Detect free variable `self`. */
var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
@@ -6200,7 +6256,7 @@ module.exports = root;
/***/ }),
-/* 15 */
+/* 16 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -6210,8 +6266,8 @@ var elliptic = exports;
elliptic.version = __webpack_require__(729).version;
elliptic.utils = __webpack_require__(730);
-elliptic.rand = __webpack_require__(326);
-elliptic.curve = __webpack_require__(113);
+elliptic.rand = __webpack_require__(322);
+elliptic.curve = __webpack_require__(112);
elliptic.curves = __webpack_require__(735);
// Protocols
@@ -6220,35 +6276,35 @@ elliptic.eddsa = __webpack_require__(747);
/***/ }),
-/* 16 */
+/* 17 */
/***/ (function(module, exports) {
-module.exports = function(module) {
- if(!module.webpackPolyfill) {
- module.deprecate = function() {};
- module.paths = [];
- // module.parent = undefined by default
- if(!module.children) module.children = [];
- Object.defineProperty(module, "loaded", {
- enumerable: true,
- get: function() {
- return module.l;
- }
- });
- Object.defineProperty(module, "id", {
- enumerable: true,
- get: function() {
- return module.i;
- }
- });
- module.webpackPolyfill = 1;
- }
- return module;
-};
+module.exports = function(module) {
+ if(!module.webpackPolyfill) {
+ module.deprecate = function() {};
+ module.paths = [];
+ // module.parent = undefined by default
+ if(!module.children) module.children = [];
+ Object.defineProperty(module, "loaded", {
+ enumerable: true,
+ get: function() {
+ return module.l;
+ }
+ });
+ Object.defineProperty(module, "id", {
+ enumerable: true,
+ get: function() {
+ return module.i;
+ }
+ });
+ module.webpackPolyfill = 1;
+ }
+ return module;
+};
/***/ }),
-/* 17 */
+/* 18 */
/***/ (function(module, exports) {
/**
@@ -6285,7 +6341,7 @@ module.exports = isObject;
/***/ }),
-/* 18 */
+/* 19 */
/***/ (function(module, exports) {
module.exports = assert;
@@ -6302,11 +6358,11 @@ assert.equal = function assertEqual(l, r, msg) {
/***/ }),
-/* 19 */
+/* 20 */
/***/ (function(module, exports, __webpack_require__) {
-var isFunction = __webpack_require__(117),
- isLength = __webpack_require__(123);
+var isFunction = __webpack_require__(116),
+ isLength = __webpack_require__(122);
/**
* Checks if `value` is array-like. A value is considered array-like if it's
@@ -6341,7 +6397,7 @@ module.exports = isArrayLike;
/***/ }),
-/* 20 */
+/* 21 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -6349,11 +6405,9 @@ module.exports = isArrayLike;
/**
* Copyright (c) 2013-present, Facebook, Inc.
- * All rights reserved.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*
*/
@@ -6385,17 +6439,15 @@ emptyFunction.thatReturnsArgument = function (arg) {
module.exports = emptyFunction;
/***/ }),
-/* 21 */
+/* 22 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2016-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2016-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*
*/
@@ -6407,7 +6459,7 @@ module.exports = emptyFunction;
var debugTool = null;
if (process.env.NODE_ENV !== 'production') {
- var ReactDebugTool = __webpack_require__(509);
+ var ReactDebugTool = __webpack_require__(506);
debugTool = ReactDebugTool;
}
@@ -6415,28 +6467,26 @@ module.exports = { debugTool: debugTool };
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
-/* 22 */
+/* 23 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2016-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2016-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*
*/
-var _prodInvariant = __webpack_require__(34);
+var _prodInvariant = __webpack_require__(44);
-var ReactCurrentOwner = __webpack_require__(29);
+var ReactCurrentOwner = __webpack_require__(30);
-var invariant = __webpack_require__(3);
+var invariant = __webpack_require__(2);
var warning = __webpack_require__(4);
function isNative(fn) {
@@ -6445,11 +6495,11 @@ function isNative(fn) {
var hasOwnProperty = Object.prototype.hasOwnProperty;
var reIsNative = RegExp('^' + funcToString
// Take an example native function source for comparison
- .call(hasOwnProperty)
+ .call(hasOwnProperty
// Strip regex characters so we can use it for regex
- .replace(/[\\^$.*+?()[\]{}|]/g, '\\$&')
+ ).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&'
// Remove hasOwnProperty from the template to make it generic
- .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$');
+ ).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$');
try {
var source = funcToString.call(fn);
return reIsNative.test(source);
@@ -6748,21 +6798,66 @@ var ReactComponentTreeHook = {
getRootIDs: getRootIDs,
- getRegisteredIDs: getItemIDs
+ getRegisteredIDs: getItemIDs,
+
+ pushNonStandardWarningStack: function (isCreatingElement, currentSource) {
+ if (typeof console.reactStack !== 'function') {
+ return;
+ }
+
+ var stack = [];
+ var currentOwner = ReactCurrentOwner.current;
+ var id = currentOwner && currentOwner._debugID;
+
+ try {
+ if (isCreatingElement) {
+ stack.push({
+ name: id ? ReactComponentTreeHook.getDisplayName(id) : null,
+ fileName: currentSource ? currentSource.fileName : null,
+ lineNumber: currentSource ? currentSource.lineNumber : null
+ });
+ }
+
+ while (id) {
+ var element = ReactComponentTreeHook.getElement(id);
+ var parentID = ReactComponentTreeHook.getParentID(id);
+ var ownerID = ReactComponentTreeHook.getOwnerID(id);
+ var ownerName = ownerID ? ReactComponentTreeHook.getDisplayName(ownerID) : null;
+ var source = element && element._source;
+ stack.push({
+ name: ownerName,
+ fileName: source ? source.fileName : null,
+ lineNumber: source ? source.lineNumber : null
+ });
+ id = parentID;
+ }
+ } catch (err) {
+ // Internal state is messed up.
+ // Stop building the stack (it's just a nice to have).
+ }
+
+ console.reactStack(stack);
+ },
+ popNonStandardWarningStack: function () {
+ if (typeof console.reactStackEnd !== 'function') {
+ return;
+ }
+ console.reactStackEnd();
+ }
};
module.exports = ReactComponentTreeHook;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
-/* 23 */
+/* 24 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-var assert = __webpack_require__(18);
-var inherits = __webpack_require__(2);
+var assert = __webpack_require__(19);
+var inherits = __webpack_require__(1);
exports.inherits = inherits;
@@ -7015,7 +7110,7 @@ exports.shr64_lo = shr64_lo;
/***/ }),
-/* 24 */
+/* 25 */
/***/ (function(module, exports) {
/**
@@ -7050,12 +7145,12 @@ module.exports = isObjectLike;
/***/ }),
-/* 25 */
+/* 26 */
/***/ (function(module, exports, __webpack_require__) {
-var arrayLikeKeys = __webpack_require__(207),
- baseKeys = __webpack_require__(209),
- isArrayLike = __webpack_require__(19);
+var arrayLikeKeys = __webpack_require__(204),
+ baseKeys = __webpack_require__(206),
+ isArrayLike = __webpack_require__(20);
/**
* Creates an array of the own enumerable property names of `object`.
@@ -7093,27 +7188,25 @@ module.exports = keys;
/***/ }),
-/* 26 */
+/* 27 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*/
-var _assign = __webpack_require__(8);
+var _assign = __webpack_require__(9);
var PooledClass = __webpack_require__(36);
-var emptyFunction = __webpack_require__(20);
+var emptyFunction = __webpack_require__(21);
var warning = __webpack_require__(4);
var didWarnForAddedNewProperty = false;
@@ -7201,7 +7294,6 @@ function SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeEventTarg
}
_assign(SyntheticEvent.prototype, {
-
preventDefault: function () {
this.defaultPrevented = true;
var event = this.nativeEvent;
@@ -7211,8 +7303,8 @@ _assign(SyntheticEvent.prototype, {
if (event.preventDefault) {
event.preventDefault();
+ // eslint-disable-next-line valid-typeof
} else if (typeof event.returnValue !== 'unknown') {
- // eslint-disable-line valid-typeof
event.returnValue = false;
}
this.isDefaultPrevented = emptyFunction.thatReturnsTrue;
@@ -7226,8 +7318,8 @@ _assign(SyntheticEvent.prototype, {
if (event.stopPropagation) {
event.stopPropagation();
+ // eslint-disable-next-line valid-typeof
} else if (typeof event.cancelBubble !== 'unknown') {
- // eslint-disable-line valid-typeof
// The ChangeEventPlugin registers a "propertychange" event for
// IE. This event does not support bubbling or cancelling, and
// any references to cancelBubble throw "Member not found". A
@@ -7276,34 +7368,10 @@ _assign(SyntheticEvent.prototype, {
Object.defineProperty(this, 'stopPropagation', getPooledWarningPropertyDefinition('stopPropagation', emptyFunction));
}
}
-
});
SyntheticEvent.Interface = EventInterface;
-if (process.env.NODE_ENV !== 'production') {
- if (isProxySupported) {
- /*eslint-disable no-func-assign */
- SyntheticEvent = new Proxy(SyntheticEvent, {
- construct: function (target, args) {
- return this.apply(target, Object.create(target.prototype), args);
- },
- apply: function (constructor, that, args) {
- return new Proxy(constructor.apply(that, args), {
- set: function (target, prop, value) {
- if (prop !== 'isPersistent' && !target.constructor.Interface.hasOwnProperty(prop) && shouldBeReleasedProperties.indexOf(prop) === -1) {
- process.env.NODE_ENV !== 'production' ? warning(didWarnForAddedNewProperty || target.isPersistent(), 'This synthetic event is reused for performance reasons. If you\'re ' + 'seeing this, you\'re adding a new property in the synthetic event object. ' + 'The property is never released. See ' + 'https://fb.me/react-event-pooling for more information.') : void 0;
- didWarnForAddedNewProperty = true;
- }
- target[prop] = value;
- return true;
- }
- });
- }
- });
- /*eslint-enable no-func-assign */
- }
-}
/**
* Helper to reduce boilerplate when creating subclasses.
*
@@ -7327,6 +7395,34 @@ SyntheticEvent.augmentClass = function (Class, Interface) {
PooledClass.addPoolingTo(Class, PooledClass.fourArgumentPooler);
};
+/** Proxying after everything set on SyntheticEvent
+ * to resolve Proxy issue on some WebKit browsers
+ * in which some Event properties are set to undefined (GH#10010)
+ */
+if (process.env.NODE_ENV !== 'production') {
+ if (isProxySupported) {
+ /*eslint-disable no-func-assign */
+ SyntheticEvent = new Proxy(SyntheticEvent, {
+ construct: function (target, args) {
+ return this.apply(target, Object.create(target.prototype), args);
+ },
+ apply: function (constructor, that, args) {
+ return new Proxy(constructor.apply(that, args), {
+ set: function (target, prop, value) {
+ if (prop !== 'isPersistent' && !target.constructor.Interface.hasOwnProperty(prop) && shouldBeReleasedProperties.indexOf(prop) === -1) {
+ process.env.NODE_ENV !== 'production' ? warning(didWarnForAddedNewProperty || target.isPersistent(), "This synthetic event is reused for performance reasons. If you're " + "seeing this, you're adding a new property in the synthetic event object. " + 'The property is never released. See ' + 'https://fb.me/react-event-pooling for more information.') : void 0;
+ didWarnForAddedNewProperty = true;
+ }
+ target[prop] = value;
+ return true;
+ }
+ });
+ }
+ });
+ /*eslint-enable no-func-assign */
+ }
+}
+
PooledClass.addPoolingTo(SyntheticEvent, PooledClass.fourArgumentPooler);
module.exports = SyntheticEvent;
@@ -7361,38 +7457,36 @@ function getPooledWarningPropertyDefinition(propName, getVal) {
function warn(action, result) {
var warningCondition = false;
- process.env.NODE_ENV !== 'production' ? warning(warningCondition, 'This synthetic event is reused for performance reasons. If you\'re seeing this, ' + 'you\'re %s `%s` on a released/nullified synthetic event. %s. ' + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result) : void 0;
+ process.env.NODE_ENV !== 'production' ? warning(warningCondition, "This synthetic event is reused for performance reasons. If you're seeing this, " + "you're %s `%s` on a released/nullified synthetic event. %s. " + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result) : void 0;
}
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
-/* 27 */
+/* 28 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*/
-var _prodInvariant = __webpack_require__(7),
- _assign = __webpack_require__(8);
+var _prodInvariant = __webpack_require__(6),
+ _assign = __webpack_require__(9);
-var CallbackQueue = __webpack_require__(261);
+var CallbackQueue = __webpack_require__(258);
var PooledClass = __webpack_require__(36);
-var ReactFeatureFlags = __webpack_require__(506);
+var ReactFeatureFlags = __webpack_require__(503);
var ReactReconciler = __webpack_require__(62);
var Transaction = __webpack_require__(102);
-var invariant = __webpack_require__(3);
+var invariant = __webpack_require__(2);
var dirtyComponents = [];
var updateBatchNumber = 0;
@@ -7585,7 +7679,7 @@ function enqueueUpdate(component) {
* if no updates are currently being performed.
*/
function asap(callback, context) {
- !batchingStrategy.isBatchingUpdates ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates.asap: Can\'t enqueue an asap callback in a context whereupdates are not being batched.') : _prodInvariant('125') : void 0;
+ invariant(batchingStrategy.isBatchingUpdates, "ReactUpdates.asap: Can't enqueue an asap callback in a context where" + 'updates are not being batched.');
asapCallbackQueue.enqueue(callback, context);
asapEnqueued = true;
}
@@ -7624,11 +7718,11 @@ module.exports = ReactUpdates;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
-/* 28 */
+/* 29 */
/***/ (function(module, exports, __webpack_require__) {
-var assignValue = __webpack_require__(124),
- baseAssignValue = __webpack_require__(81);
+var assignValue = __webpack_require__(123),
+ baseAssignValue = __webpack_require__(80);
/**
* Copies properties of `source` to `object`.
@@ -7670,17 +7764,15 @@ module.exports = copyObject;
/***/ }),
-/* 29 */
+/* 30 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*
*/
@@ -7694,25 +7786,23 @@ module.exports = copyObject;
* currently being constructed.
*/
var ReactCurrentOwner = {
-
/**
* @internal
* @type {ReactComponent}
*/
current: null
-
};
module.exports = ReactCurrentOwner;
/***/ }),
-/* 30 */
+/* 31 */
/***/ (function(module, exports, __webpack_require__) {
-var Buffer = __webpack_require__(48).Buffer
+var Buffer = __webpack_require__(8).Buffer
var Transform = __webpack_require__(66).Transform
-var StringDecoder = __webpack_require__(107).StringDecoder
-var inherits = __webpack_require__(2)
+var StringDecoder = __webpack_require__(108).StringDecoder
+var inherits = __webpack_require__(1)
function CipherBase (hashMode) {
Transform.call(this)
@@ -7811,11 +7901,11 @@ module.exports = CipherBase
/***/ }),
-/* 31 */
+/* 32 */
/***/ (function(module, exports, __webpack_require__) {
-var baseIsNative = __webpack_require__(351),
- getValue = __webpack_require__(356);
+var baseIsNative = __webpack_require__(346),
+ getValue = __webpack_require__(351);
/**
* Gets the native function at `key` of `object`.
@@ -7834,12 +7924,12 @@ module.exports = getNative;
/***/ }),
-/* 32 */
+/* 33 */
/***/ (function(module, exports, __webpack_require__) {
-var Symbol = __webpack_require__(33),
- getRawTag = __webpack_require__(352),
- objectToString = __webpack_require__(353);
+var Symbol = __webpack_require__(34),
+ getRawTag = __webpack_require__(347),
+ objectToString = __webpack_require__(348);
/** `Object#toString` result references. */
var nullTag = '[object Null]',
@@ -7868,10 +7958,10 @@ module.exports = baseGetTag;
/***/ }),
-/* 33 */
+/* 34 */
/***/ (function(module, exports, __webpack_require__) {
-var root = __webpack_require__(14);
+var root = __webpack_require__(15);
/** Built-in value references. */
var Symbol = root.Symbol;
@@ -7879,76 +7969,30 @@ var Symbol = root.Symbol;
module.exports = Symbol;
-/***/ }),
-/* 34 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-/**
- * Copyright (c) 2013-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- *
- */
-
-
-/**
- * WARNING: DO NOT manually require this module.
- * This is a replacement for `invariant(...)` used by the error code system
- * and will _only_ be required by the corresponding babel pass.
- * It always throws.
- */
-
-function reactProdInvariant(code) {
- var argCount = arguments.length - 1;
-
- var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code;
-
- for (var argIdx = 0; argIdx < argCount; argIdx++) {
- message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]);
- }
-
- message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.';
-
- var error = new Error(message);
- error.name = 'Invariant Violation';
- error.framesToPop = 1; // we don't care about reactProdInvariant's own frame
-
- throw error;
-}
-
-module.exports = reactProdInvariant;
-
/***/ }),
/* 35 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2014-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2014-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*/
-var _assign = __webpack_require__(8);
+var _assign = __webpack_require__(9);
-var ReactCurrentOwner = __webpack_require__(29);
+var ReactCurrentOwner = __webpack_require__(30);
var warning = __webpack_require__(4);
-var canDefineProperty = __webpack_require__(101);
+var canDefineProperty = __webpack_require__(100);
var hasOwnProperty = Object.prototype.hasOwnProperty;
-var REACT_ELEMENT_TYPE = __webpack_require__(250);
+var REACT_ELEMENT_TYPE = __webpack_require__(248);
var RESERVED_PROPS = {
key: true,
@@ -8276,21 +8320,19 @@ module.exports = ReactElement;
"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*
*/
-var _prodInvariant = __webpack_require__(7);
+var _prodInvariant = __webpack_require__(6);
-var invariant = __webpack_require__(3);
+var invariant = __webpack_require__(2);
/**
* Static poolers. Several custom versions for each potential number of
@@ -8393,6 +8435,27 @@ module.exports = PooledClass;
/***/ (function(module, exports, __webpack_require__) {
"use strict";
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
// a duplex stream is just a stream that is both readable and writable.
// Since JS doesn't have multiple prototypal inheritance, this class
// prototypally inherits from Readable, and then parasitically from
@@ -8402,6 +8465,10 @@ module.exports = PooledClass;
/*
*/
+var processNextTick = __webpack_require__(107);
+/**/
+
+/*
*/
var objectKeys = Object.keys || function (obj) {
var keys = [];
for (var key in obj) {
@@ -8412,17 +8479,13 @@ var objectKeys = Object.keys || function (obj) {
module.exports = Duplex;
-/**/
-var processNextTick = __webpack_require__(172);
-/**/
-
/**/
var util = __webpack_require__(67);
-util.inherits = __webpack_require__(2);
+util.inherits = __webpack_require__(1);
/**/
-var Readable = __webpack_require__(288);
-var Writable = __webpack_require__(174);
+var Readable = __webpack_require__(286);
+var Writable = __webpack_require__(170);
util.inherits(Duplex, Readable);
@@ -8463,6 +8526,34 @@ function onEndNT(self) {
self.end();
}
+Object.defineProperty(Duplex.prototype, 'destroyed', {
+ get: function () {
+ if (this._readableState === undefined || this._writableState === undefined) {
+ return false;
+ }
+ return this._readableState.destroyed && this._writableState.destroyed;
+ },
+ set: function (value) {
+ // we ignore the value if the stream
+ // has not been initialized yet
+ if (this._readableState === undefined || this._writableState === undefined) {
+ return;
+ }
+
+ // backward compatibility, the user is explicitly
+ // managing destroyed
+ this._readableState.destroyed = value;
+ this._writableState.destroyed = value;
+ }
+});
+
+Duplex.prototype._destroy = function (err, cb) {
+ this.push(null);
+ this.end();
+
+ processNextTick(cb, err);
+};
+
function forEach(xs, f) {
for (var i = 0, l = xs.length; i < l; i++) {
f(xs[i], i);
@@ -8577,11 +8668,11 @@ Object.defineProperty(exports, "__esModule", {
});
exports.registerMJElement = exports.postRenders = exports.endingTags = undefined;
-var _warning = __webpack_require__(88);
+var _warning = __webpack_require__(87);
var _warning2 = _interopRequireDefault(_warning);
-var _lodash = __webpack_require__(125);
+var _lodash = __webpack_require__(124);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -8612,11 +8703,11 @@ exports.default = MJMLElementsCollection;
/* 42 */
/***/ (function(module, exports, __webpack_require__) {
-var baseMatches = __webpack_require__(411),
- baseMatchesProperty = __webpack_require__(419),
+var baseMatches = __webpack_require__(406),
+ baseMatchesProperty = __webpack_require__(414),
identity = __webpack_require__(38),
- isArray = __webpack_require__(10),
- property = __webpack_require__(427);
+ isArray = __webpack_require__(11),
+ property = __webpack_require__(422);
/**
* The base implementation of `_.iteratee`.
@@ -8651,38 +8742,35 @@ module.exports = baseIteratee;
"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*/
-var _assign = __webpack_require__(8);
+var _assign = __webpack_require__(9);
-var ReactChildren = __webpack_require__(484);
-var ReactComponent = __webpack_require__(148);
-var ReactPureComponent = __webpack_require__(488);
-var ReactClass = __webpack_require__(489);
-var ReactDOMFactories = __webpack_require__(490);
+var ReactBaseClasses = __webpack_require__(246);
+var ReactChildren = __webpack_require__(480);
+var ReactDOMFactories = __webpack_require__(484);
var ReactElement = __webpack_require__(35);
-var ReactPropTypes = __webpack_require__(493);
-var ReactVersion = __webpack_require__(496);
+var ReactPropTypes = __webpack_require__(488);
+var ReactVersion = __webpack_require__(491);
-var onlyChild = __webpack_require__(497);
-var warning = __webpack_require__(4);
+var createReactClass = __webpack_require__(492);
+var onlyChild = __webpack_require__(494);
var createElement = ReactElement.createElement;
var createFactory = ReactElement.createFactory;
var cloneElement = ReactElement.cloneElement;
if (process.env.NODE_ENV !== 'production') {
- var canDefineProperty = __webpack_require__(101);
- var ReactElementValidator = __webpack_require__(253);
+ var lowPriorityWarning = __webpack_require__(147);
+ var canDefineProperty = __webpack_require__(100);
+ var ReactElementValidator = __webpack_require__(250);
var didWarnPropTypesDeprecated = false;
createElement = ReactElementValidator.createElement;
createFactory = ReactElementValidator.createFactory;
@@ -8690,18 +8778,27 @@ if (process.env.NODE_ENV !== 'production') {
}
var __spread = _assign;
+var createMixin = function (mixin) {
+ return mixin;
+};
if (process.env.NODE_ENV !== 'production') {
- var warned = false;
+ var warnedForSpread = false;
+ var warnedForCreateMixin = false;
__spread = function () {
- process.env.NODE_ENV !== 'production' ? warning(warned, 'React.__spread is deprecated and should not be used. Use ' + 'Object.assign directly or another helper function with similar ' + 'semantics. You may be seeing this warning due to your compiler. ' + 'See https://fb.me/react-spread-deprecation for more details.') : void 0;
- warned = true;
+ lowPriorityWarning(warnedForSpread, 'React.__spread is deprecated and should not be used. Use ' + 'Object.assign directly or another helper function with similar ' + 'semantics. You may be seeing this warning due to your compiler. ' + 'See https://fb.me/react-spread-deprecation for more details.');
+ warnedForSpread = true;
return _assign.apply(null, arguments);
};
+
+ createMixin = function (mixin) {
+ lowPriorityWarning(warnedForCreateMixin, 'React.createMixin is deprecated and should not be used. ' + 'In React v16.0, it will be removed. ' + 'You can use this mixin directly instead. ' + 'See https://fb.me/createmixin-was-never-implemented for more info.');
+ warnedForCreateMixin = true;
+ return mixin;
+ };
}
var React = {
-
// Modern
Children: {
@@ -8712,8 +8809,8 @@ var React = {
only: onlyChild
},
- Component: ReactComponent,
- PureComponent: ReactPureComponent,
+ Component: ReactBaseClasses.Component,
+ PureComponent: ReactBaseClasses.PureComponent,
createElement: createElement,
cloneElement: cloneElement,
@@ -8722,12 +8819,9 @@ var React = {
// Classic
PropTypes: ReactPropTypes,
- createClass: ReactClass.createClass,
+ createClass: createReactClass,
createFactory: createFactory,
- createMixin: function (mixin) {
- // Currently a noop. Will be used to validate and trace mixins.
- return mixin;
- },
+ createMixin: createMixin,
// This looks DOM specific but these are actually isomorphic helpers
// since they are just generating DOM strings.
@@ -8739,17 +8833,40 @@ var React = {
__spread: __spread
};
-// TODO: Fix tests so that this deprecation warning doesn't cause failures.
if (process.env.NODE_ENV !== 'production') {
+ var warnedForCreateClass = false;
if (canDefineProperty) {
Object.defineProperty(React, 'PropTypes', {
get: function () {
- process.env.NODE_ENV !== 'production' ? warning(didWarnPropTypesDeprecated, 'Accessing PropTypes via the main React package is deprecated. Use ' + 'the prop-types package from npm instead.') : void 0;
+ lowPriorityWarning(didWarnPropTypesDeprecated, 'Accessing PropTypes via the main React package is deprecated,' + ' and will be removed in React v16.0.' + ' Use the latest available v15.* prop-types package from npm instead.' + ' For info on usage, compatibility, migration and more, see ' + 'https://fb.me/prop-types-docs');
didWarnPropTypesDeprecated = true;
return ReactPropTypes;
}
});
+
+ Object.defineProperty(React, 'createClass', {
+ get: function () {
+ lowPriorityWarning(warnedForCreateClass, 'Accessing createClass via the main React package is deprecated,' + ' and will be removed in React v16.0.' + " Use a plain JavaScript class instead. If you're not yet " + 'ready to migrate, create-react-class v15.* is available ' + 'on npm as a temporary, drop-in replacement. ' + 'For more info see https://fb.me/react-create-class');
+ warnedForCreateClass = true;
+ return createReactClass;
+ }
+ });
}
+
+ // React.DOM factories are deprecated. Wrap these methods so that
+ // invocations of the React.DOM namespace and alert users to switch
+ // to the `react-dom-factories` package.
+ React.DOM = {};
+ var warnedForFactories = false;
+ Object.keys(ReactDOMFactories).forEach(function (factory) {
+ React.DOM[factory] = function () {
+ if (!warnedForFactories) {
+ lowPriorityWarning(false, 'Accessing factories like React.DOM.%s has been deprecated ' + 'and will be removed in v16.0+. Use the ' + 'react-dom-factories package instead. ' + ' Version 1.0 provides a drop-in replacement.' + ' For more info, see https://fb.me/react-dom-factories', factory);
+ warnedForFactories = true;
+ }
+ return ReactDOMFactories[factory].apply(ReactDOMFactories, arguments);
+ };
+ });
}
module.exports = React;
@@ -8759,8 +8876,50 @@ module.exports = React;
/* 44 */
/***/ (function(module, exports, __webpack_require__) {
-var Parser = __webpack_require__(282),
- DomHandler = __webpack_require__(586);
+"use strict";
+/**
+ * Copyright (c) 2013-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ *
+ */
+
+
+/**
+ * WARNING: DO NOT manually require this module.
+ * This is a replacement for `invariant(...)` used by the error code system
+ * and will _only_ be required by the corresponding babel pass.
+ * It always throws.
+ */
+
+function reactProdInvariant(code) {
+ var argCount = arguments.length - 1;
+
+ var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code;
+
+ for (var argIdx = 0; argIdx < argCount; argIdx++) {
+ message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]);
+ }
+
+ message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.';
+
+ var error = new Error(message);
+ error.name = 'Invariant Violation';
+ error.framesToPop = 1; // we don't care about reactProdInvariant's own frame
+
+ throw error;
+}
+
+module.exports = reactProdInvariant;
+
+/***/ }),
+/* 45 */
+/***/ (function(module, exports, __webpack_require__) {
+
+var Parser = __webpack_require__(280),
+ DomHandler = __webpack_require__(583);
function defineProp(name, value){
delete module.exports[name];
@@ -8770,26 +8929,26 @@ function defineProp(name, value){
module.exports = {
Parser: Parser,
- Tokenizer: __webpack_require__(283),
+ Tokenizer: __webpack_require__(281),
ElementType: __webpack_require__(65),
DomHandler: DomHandler,
get FeedHandler(){
- return defineProp("FeedHandler", __webpack_require__(588));
+ return defineProp("FeedHandler", __webpack_require__(585));
},
get Stream(){
- return defineProp("Stream", __webpack_require__(589));
+ return defineProp("Stream", __webpack_require__(586));
},
get WritableStream(){
- return defineProp("WritableStream", __webpack_require__(287));
+ return defineProp("WritableStream", __webpack_require__(285));
},
get ProxyHandler(){
- return defineProp("ProxyHandler", __webpack_require__(601));
+ return defineProp("ProxyHandler", __webpack_require__(598));
},
get DomUtils(){
- return defineProp("DomUtils", __webpack_require__(45));
+ return defineProp("DomUtils", __webpack_require__(46));
},
get CollectingHandler(){
- return defineProp("CollectingHandler", __webpack_require__(612));
+ return defineProp("CollectingHandler", __webpack_require__(609));
},
// For legacy support
DefaultHandler: DomHandler,
@@ -8830,18 +8989,18 @@ module.exports = {
/***/ }),
-/* 45 */
+/* 46 */
/***/ (function(module, exports, __webpack_require__) {
var DomUtils = module.exports;
[
- __webpack_require__(602),
+ __webpack_require__(599),
+ __webpack_require__(604),
+ __webpack_require__(605),
+ __webpack_require__(606),
__webpack_require__(607),
- __webpack_require__(608),
- __webpack_require__(609),
- __webpack_require__(610),
- __webpack_require__(611)
+ __webpack_require__(608)
].forEach(function(ext){
Object.keys(ext).forEach(function(key){
DomUtils[key] = ext[key].bind(DomUtils);
@@ -8850,7 +9009,7 @@ var DomUtils = module.exports;
/***/ }),
-/* 46 */
+/* 47 */
/***/ (function(module, exports, __webpack_require__) {
var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -8905,69 +9064,127 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
/***/ }),
-/* 47 */
+/* 48 */
/***/ (function(module, exports, __webpack_require__) {
-/* WEBPACK VAR INJECTION */(function(Buffer) {// prototype class for hash functions
+"use strict";
+/* WEBPACK VAR INJECTION */(function(global, process) {
+
+function oldBrowser () {
+ throw new Error('secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11')
+}
+
+var Buffer = __webpack_require__(8).Buffer
+var crypto = global.crypto || global.msCrypto
+
+if (crypto && crypto.getRandomValues) {
+ module.exports = randomBytes
+} else {
+ module.exports = oldBrowser
+}
+
+function randomBytes (size, cb) {
+ // phantomjs needs to throw
+ if (size > 65536) throw new Error('requested too many random bytes')
+ // in case browserify isn't using the Uint8Array version
+ var rawBytes = new global.Uint8Array(size)
+
+ // This will not work in older browsers.
+ // See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
+ if (size > 0) { // getRandomValues fails on IE if size == 0
+ crypto.getRandomValues(rawBytes)
+ }
+
+ // XXX: phantomjs doesn't like a buffer being passed here
+ var bytes = Buffer.from(rawBytes.buffer)
+
+ if (typeof cb === 'function') {
+ return process.nextTick(function () {
+ cb(null, bytes)
+ })
+ }
+
+ return bytes
+}
+
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10), __webpack_require__(0)))
+
+/***/ }),
+/* 49 */
+/***/ (function(module, exports, __webpack_require__) {
+
+var Buffer = __webpack_require__(8).Buffer
+
+// prototype class for hash functions
function Hash (blockSize, finalSize) {
- this._block = new Buffer(blockSize)
+ this._block = Buffer.alloc(blockSize)
this._finalSize = finalSize
this._blockSize = blockSize
this._len = 0
- this._s = 0
}
Hash.prototype.update = function (data, enc) {
if (typeof data === 'string') {
enc = enc || 'utf8'
- data = new Buffer(data, enc)
+ data = Buffer.from(data, enc)
}
- var l = this._len += data.length
- var s = this._s || 0
- var f = 0
- var buffer = this._block
+ var block = this._block
+ var blockSize = this._blockSize
+ var length = data.length
+ var accum = this._len
- while (s < l) {
- var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
- var ch = (t - f)
+ for (var offset = 0; offset < length;) {
+ var assigned = accum % blockSize
+ var remainder = Math.min(length - offset, blockSize - assigned)
- for (var i = 0; i < ch; i++) {
- buffer[(s % this._blockSize) + i] = data[i + f]
+ for (var i = 0; i < remainder; i++) {
+ block[assigned + i] = data[offset + i]
}
- s += ch
- f += ch
+ accum += remainder
+ offset += remainder
- if ((s % this._blockSize) === 0) {
- this._update(buffer)
+ if ((accum % blockSize) === 0) {
+ this._update(block)
}
}
- this._s = s
+ this._len += length
return this
}
Hash.prototype.digest = function (enc) {
- // Suppose the length of the message M, in bits, is l
- var l = this._len * 8
+ var rem = this._len % this._blockSize
- // Append the bit 1 to the end of the message
- this._block[this._len % this._blockSize] = 0x80
+ this._block[rem] = 0x80
- // and then k zero bits, where k is the smallest non-negative solution to the equation (l + 1 + k) === finalSize mod blockSize
- this._block.fill(0, this._len % this._blockSize + 1)
+ // zero (rem + 1) trailing bits, where (rem + 1) is the smallest
+ // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize
+ this._block.fill(0, rem + 1)
- if (l % (this._blockSize * 8) >= this._finalSize * 8) {
+ if (rem >= this._finalSize) {
this._update(this._block)
this._block.fill(0)
}
- // to this append the block which is equal to the number l written in binary
- // TODO: handle case where l is > Math.pow(2, 29)
- this._block.writeInt32BE(l, this._blockSize - 4)
+ var bits = this._len * 8
- var hash = this._update(this._block) || this._hash()
+ // uint32
+ if (bits <= 0xffffffff) {
+ this._block.writeUInt32BE(bits, this._blockSize - 4)
+
+ // uint64
+ } else {
+ var lowBits = bits & 0xffffffff
+ var highBits = (bits - lowBits) / 0x100000000
+
+ this._block.writeUInt32BE(highBits, this._blockSize - 8)
+ this._block.writeUInt32BE(lowBits, this._blockSize - 4)
+ }
+
+ this._update(this._block)
+ var hash = this._hash()
return enc ? hash.toString(enc) : hash
}
@@ -8978,17 +9195,9 @@ Hash.prototype._update = function () {
module.exports = Hash
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1).Buffer))
/***/ }),
-/* 48 */
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__(1)
-
-
-/***/ }),
-/* 49 */
+/* 50 */
/***/ (function(module, exports) {
/**
@@ -9015,7 +9224,7 @@ module.exports = apply;
/***/ }),
-/* 50 */
+/* 51 */
/***/ (function(module, exports) {
/** Used for built-in method references. */
@@ -9039,11 +9248,11 @@ module.exports = isPrototype;
/***/ }),
-/* 51 */
+/* 52 */
/***/ (function(module, exports, __webpack_require__) {
-var baseIsArguments = __webpack_require__(382),
- isObjectLike = __webpack_require__(24);
+var baseIsArguments = __webpack_require__(377),
+ isObjectLike = __webpack_require__(25);
/** Used for built-in method references. */
var objectProto = Object.prototype;
@@ -9081,11 +9290,11 @@ module.exports = isArguments;
/***/ }),
-/* 52 */
+/* 53 */
/***/ (function(module, exports, __webpack_require__) {
-/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(14),
- stubFalse = __webpack_require__(384);
+/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(15),
+ stubFalse = __webpack_require__(379);
/** Detect free variable `exports`. */
var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
@@ -9123,15 +9332,15 @@ var isBuffer = nativeIsBuffer || stubFalse;
module.exports = isBuffer;
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16)(module)))
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(17)(module)))
/***/ }),
-/* 53 */
+/* 54 */
/***/ (function(module, exports, __webpack_require__) {
-var arrayLikeKeys = __webpack_require__(207),
- baseKeysIn = __webpack_require__(390),
- isArrayLike = __webpack_require__(19);
+var arrayLikeKeys = __webpack_require__(204),
+ baseKeysIn = __webpack_require__(385),
+ isArrayLike = __webpack_require__(20);
/**
* Creates an array of the own and inherited enumerable property names of `object`.
@@ -9164,7 +9373,7 @@ module.exports = keysIn;
/***/ }),
-/* 54 */
+/* 55 */
/***/ (function(module, exports) {
/**
@@ -9188,11 +9397,11 @@ module.exports = setToArray;
/***/ }),
-/* 55 */
+/* 56 */
/***/ (function(module, exports, __webpack_require__) {
-var baseGetTag = __webpack_require__(32),
- isObjectLike = __webpack_require__(24);
+var baseGetTag = __webpack_require__(33),
+ isObjectLike = __webpack_require__(25);
/** `Object#toString` result references. */
var symbolTag = '[object Symbol]';
@@ -9223,10 +9432,10 @@ module.exports = isSymbol;
/***/ }),
-/* 56 */
+/* 57 */
/***/ (function(module, exports, __webpack_require__) {
-var isSymbol = __webpack_require__(55);
+var isSymbol = __webpack_require__(56);
/** Used as references for various `Number` constants. */
var INFINITY = 1 / 0;
@@ -9250,10 +9459,10 @@ module.exports = toKey;
/***/ }),
-/* 57 */
+/* 58 */
/***/ (function(module, exports, __webpack_require__) {
-var toFinite = __webpack_require__(227);
+var toFinite = __webpack_require__(224);
/**
* Converts `value` to an integer.
@@ -9291,54 +9500,26 @@ function toInteger(value) {
module.exports = toInteger;
-/***/ }),
-/* 58 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-/* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright (c) 2013-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- */
-
-
-
-var emptyObject = {};
-
-if (process.env.NODE_ENV !== 'production') {
- Object.freeze(emptyObject);
-}
-
-module.exports = emptyObject;
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
-
/***/ }),
/* 59 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*/
var EventPluginHub = __webpack_require__(60);
-var EventPluginUtils = __webpack_require__(151);
+var EventPluginUtils = __webpack_require__(149);
-var accumulateInto = __webpack_require__(257);
-var forEachAccumulated = __webpack_require__(258);
+var accumulateInto = __webpack_require__(254);
+var forEachAccumulated = __webpack_require__(255);
var warning = __webpack_require__(4);
var getListener = EventPluginHub.getListener;
@@ -9463,26 +9644,24 @@ module.exports = EventPropagators;
"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*/
-var _prodInvariant = __webpack_require__(7);
+var _prodInvariant = __webpack_require__(6);
-var EventPluginRegistry = __webpack_require__(150);
-var EventPluginUtils = __webpack_require__(151);
-var ReactErrorUtils = __webpack_require__(152);
+var EventPluginRegistry = __webpack_require__(148);
+var EventPluginUtils = __webpack_require__(149);
+var ReactErrorUtils = __webpack_require__(150);
-var accumulateInto = __webpack_require__(257);
-var forEachAccumulated = __webpack_require__(258);
-var invariant = __webpack_require__(3);
+var accumulateInto = __webpack_require__(254);
+var forEachAccumulated = __webpack_require__(255);
+var invariant = __webpack_require__(2);
/**
* Internal store for event listeners
@@ -9569,12 +9748,10 @@ function shouldPreventMouseEvent(name, type, props) {
* @public
*/
var EventPluginHub = {
-
/**
* Methods for injecting dependencies.
*/
injection: {
-
/**
* @param {array} InjectedEventPluginOrder
* @public
@@ -9585,7 +9762,6 @@ var EventPluginHub = {
* @param {object} injectedNamesToPlugins Map from names to plugin modules.
*/
injectEventPluginsByName: EventPluginRegistry.injectEventPluginsByName
-
},
/**
@@ -9735,7 +9911,6 @@ var EventPluginHub = {
__getListenerBank: function () {
return listenerBank;
}
-
};
module.exports = EventPluginHub;
@@ -9747,20 +9922,18 @@ module.exports = EventPluginHub;
"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*/
-var _prodInvariant = __webpack_require__(7);
+var _prodInvariant = __webpack_require__(6);
-var invariant = __webpack_require__(3);
+var invariant = __webpack_require__(2);
function checkMask(value, bitmask) {
return (value & bitmask) === bitmask;
@@ -9884,7 +10057,6 @@ var ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\
* @see http://jsperf.com/key-missing
*/
var DOMProperty = {
-
ID_ATTRIBUTE_NAME: 'data-reactid',
ROOT_ATTRIBUTE_NAME: 'data-reactroot',
@@ -9963,19 +10135,17 @@ module.exports = DOMProperty;
"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*/
-var ReactRef = __webpack_require__(507);
-var ReactInstrumentation = __webpack_require__(21);
+var ReactRef = __webpack_require__(504);
+var ReactInstrumentation = __webpack_require__(22);
var warning = __webpack_require__(4);
@@ -9988,7 +10158,6 @@ function attachRefs() {
}
var ReactReconciler = {
-
/**
* Initializes the component, renders markup, and registers event listeners.
*
@@ -10000,8 +10169,8 @@ var ReactReconciler = {
* @final
* @internal
*/
- mountComponent: function (internalInstance, transaction, hostParent, hostContainerInfo, context, parentDebugID // 0 in production and for roots
- ) {
+ mountComponent: function (internalInstance, transaction, hostParent, hostContainerInfo, context, parentDebugID) // 0 in production and for roots
+ {
if (process.env.NODE_ENV !== 'production') {
if (internalInstance._debugID !== 0) {
ReactInstrumentation.debugTool.onBeforeMountComponent(internalInstance._debugID, internalInstance._currentElement, parentDebugID);
@@ -10125,7 +10294,6 @@ var ReactReconciler = {
}
}
}
-
};
module.exports = ReactReconciler;
@@ -10137,20 +10305,18 @@ module.exports = ReactReconciler;
"use strict";
/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*/
-var SyntheticEvent = __webpack_require__(26);
+var SyntheticEvent = __webpack_require__(27);
-var getEventTarget = __webpack_require__(153);
+var getEventTarget = __webpack_require__(151);
/**
* @interface UIEvent
@@ -10201,22 +10367,20 @@ module.exports = SyntheticUIEvent;
"use strict";
/**
- * Copyright 2015-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2015-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*/
-var DOMNamespaces = __webpack_require__(157);
-var setInnerHTML = __webpack_require__(158);
+var DOMNamespaces = __webpack_require__(155);
+var setInnerHTML = __webpack_require__(156);
-var createMicrosoftUnsafeLocalFunction = __webpack_require__(159);
-var setTextContent = __webpack_require__(264);
+var createMicrosoftUnsafeLocalFunction = __webpack_require__(157);
+var setTextContent = __webpack_require__(262);
var ELEMENT_NODE_TYPE = 1;
var DOCUMENT_FRAGMENT_NODE_TYPE = 11;
@@ -10367,14 +10531,14 @@ module.exports = {
module.exports = Stream;
var EE = __webpack_require__(106).EventEmitter;
-var inherits = __webpack_require__(2);
+var inherits = __webpack_require__(1);
inherits(Stream, EE);
-Stream.Readable = __webpack_require__(171);
-Stream.Writable = __webpack_require__(596);
-Stream.Duplex = __webpack_require__(597);
-Stream.Transform = __webpack_require__(598);
-Stream.PassThrough = __webpack_require__(599);
+Stream.Readable = __webpack_require__(169);
+Stream.Writable = __webpack_require__(593);
+Stream.Duplex = __webpack_require__(594);
+Stream.Transform = __webpack_require__(595);
+Stream.PassThrough = __webpack_require__(596);
// Backwards-compat with node 0.4.x
Stream.Stream = Stream;
@@ -10584,14 +10748,14 @@ function objectToString(o) {
return Object.prototype.toString.call(o);
}
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1).Buffer))
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(7).Buffer))
/***/ }),
/* 68 */
/***/ (function(module, exports, __webpack_require__) {
var parse = __webpack_require__(105),
- render = __webpack_require__(175);
+ render = __webpack_require__(171);
/**
* HTML Tags
@@ -10692,60 +10856,14 @@ module.exports = {
/* 70 */
/***/ (function(module, exports, __webpack_require__) {
-"use strict";
-/* WEBPACK VAR INJECTION */(function(global, process) {
-
-function oldBrowser () {
- throw new Error('secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11')
-}
-
-var Buffer = __webpack_require__(698).Buffer
-var crypto = global.crypto || global.msCrypto
-
-if (crypto && crypto.getRandomValues) {
- module.exports = randomBytes
-} else {
- module.exports = oldBrowser
-}
-
-function randomBytes (size, cb) {
- // phantomjs needs to throw
- if (size > 65536) throw new Error('requested too many random bytes')
- // in case browserify isn't using the Uint8Array version
- var rawBytes = new global.Uint8Array(size)
-
- // This will not work in older browsers.
- // See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
- if (size > 0) { // getRandomValues fails on IE if size == 0
- crypto.getRandomValues(rawBytes)
- }
-
- // XXX: phantomjs doesn't like a buffer being passed here
- var bytes = Buffer.from(rawBytes.buffer)
-
- if (typeof cb === 'function') {
- return process.nextTick(function () {
- cb(null, bytes)
- })
- }
-
- return bytes
-}
-
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(9), __webpack_require__(0)))
-
-/***/ }),
-/* 71 */
-/***/ (function(module, exports, __webpack_require__) {
-
"use strict";
/* WEBPACK VAR INJECTION */(function(Buffer) {
-var inherits = __webpack_require__(2)
-var md5 = __webpack_require__(182)
-var RIPEMD160 = __webpack_require__(183)
-var sha = __webpack_require__(184)
+var inherits = __webpack_require__(1)
+var md5 = __webpack_require__(178)
+var RIPEMD160 = __webpack_require__(179)
+var sha = __webpack_require__(180)
-var Base = __webpack_require__(30)
+var Base = __webpack_require__(31)
function HashNoConstructor (hash) {
Base.call(this, 'digest')
@@ -10792,10 +10910,10 @@ module.exports = function createHash (alg) {
return new Hash(sha(alg))
}
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1).Buffer))
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(7).Buffer))
/***/ }),
-/* 72 */
+/* 71 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {module.exports = function xor (a, b) {
@@ -10809,17 +10927,17 @@ module.exports = function createHash (alg) {
return buffer
}
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1).Buffer))
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(7).Buffer))
/***/ }),
-/* 73 */
+/* 72 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-var utils = __webpack_require__(23);
-var assert = __webpack_require__(18);
+var utils = __webpack_require__(24);
+var assert = __webpack_require__(19);
function BlockHash() {
this.pending = null;
@@ -10911,42 +11029,42 @@ BlockHash.prototype._pad = function pad() {
/***/ }),
-/* 74 */
+/* 73 */
/***/ (function(module, exports, __webpack_require__) {
var asn1 = exports;
-asn1.bignum = __webpack_require__(11);
+asn1.bignum = __webpack_require__(12);
asn1.define = __webpack_require__(751).define;
-asn1.base = __webpack_require__(75);
-asn1.constants = __webpack_require__(332);
+asn1.base = __webpack_require__(74);
+asn1.constants = __webpack_require__(328);
asn1.decoders = __webpack_require__(757);
asn1.encoders = __webpack_require__(759);
/***/ }),
-/* 75 */
+/* 74 */
/***/ (function(module, exports, __webpack_require__) {
var base = exports;
base.Reporter = __webpack_require__(754).Reporter;
-base.DecoderBuffer = __webpack_require__(331).DecoderBuffer;
-base.EncoderBuffer = __webpack_require__(331).EncoderBuffer;
+base.DecoderBuffer = __webpack_require__(327).DecoderBuffer;
+base.EncoderBuffer = __webpack_require__(327).EncoderBuffer;
base.Node = __webpack_require__(755);
/***/ }),
-/* 76 */
+/* 75 */
/***/ (function(module, exports, __webpack_require__) {
-var ListCache = __webpack_require__(77),
- stackClear = __webpack_require__(363),
- stackDelete = __webpack_require__(364),
- stackGet = __webpack_require__(365),
- stackHas = __webpack_require__(366),
- stackSet = __webpack_require__(367);
+var ListCache = __webpack_require__(76),
+ stackClear = __webpack_require__(358),
+ stackDelete = __webpack_require__(359),
+ stackGet = __webpack_require__(360),
+ stackHas = __webpack_require__(361),
+ stackSet = __webpack_require__(362);
/**
* Creates a stack cache object to store key-value pairs.
@@ -10971,14 +11089,14 @@ module.exports = Stack;
/***/ }),
-/* 77 */
+/* 76 */
/***/ (function(module, exports, __webpack_require__) {
-var listCacheClear = __webpack_require__(358),
- listCacheDelete = __webpack_require__(359),
- listCacheGet = __webpack_require__(360),
- listCacheHas = __webpack_require__(361),
- listCacheSet = __webpack_require__(362);
+var listCacheClear = __webpack_require__(353),
+ listCacheDelete = __webpack_require__(354),
+ listCacheGet = __webpack_require__(355),
+ listCacheHas = __webpack_require__(356),
+ listCacheSet = __webpack_require__(357);
/**
* Creates an list cache object.
@@ -11009,7 +11127,7 @@ module.exports = ListCache;
/***/ }),
-/* 78 */
+/* 77 */
/***/ (function(module, exports, __webpack_require__) {
var eq = __webpack_require__(39);
@@ -11036,10 +11154,10 @@ module.exports = assocIndexOf;
/***/ }),
-/* 79 */
+/* 78 */
/***/ (function(module, exports, __webpack_require__) {
-var getNative = __webpack_require__(31);
+var getNative = __webpack_require__(32);
/* Built-in method references that are verified to be native. */
var nativeCreate = getNative(Object, 'create');
@@ -11048,10 +11166,10 @@ module.exports = nativeCreate;
/***/ }),
-/* 80 */
+/* 79 */
/***/ (function(module, exports, __webpack_require__) {
-var isKeyable = __webpack_require__(376);
+var isKeyable = __webpack_require__(371);
/**
* Gets the data for `map`.
@@ -11072,10 +11190,10 @@ module.exports = getMapData;
/***/ }),
-/* 81 */
+/* 80 */
/***/ (function(module, exports, __webpack_require__) {
-var defineProperty = __webpack_require__(195);
+var defineProperty = __webpack_require__(192);
/**
* The base implementation of `assignValue` and `assignMergeValue` without
@@ -11103,10 +11221,10 @@ module.exports = baseAssignValue;
/***/ }),
-/* 82 */
+/* 81 */
/***/ (function(module, exports, __webpack_require__) {
-var isObject = __webpack_require__(17);
+var isObject = __webpack_require__(18);
/** Built-in value references. */
var objectCreate = Object.create;
@@ -11139,12 +11257,12 @@ module.exports = baseCreate;
/***/ }),
-/* 83 */
+/* 82 */
/***/ (function(module, exports, __webpack_require__) {
-var baseIsTypedArray = __webpack_require__(385),
- baseUnary = __webpack_require__(386),
- nodeUtil = __webpack_require__(387);
+var baseIsTypedArray = __webpack_require__(380),
+ baseUnary = __webpack_require__(381),
+ nodeUtil = __webpack_require__(382);
/* Node.js helper references. */
var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
@@ -11172,7 +11290,7 @@ module.exports = isTypedArray;
/***/ }),
-/* 84 */
+/* 83 */
/***/ (function(module, exports) {
/** Used as references for various `Number` constants. */
@@ -11200,11 +11318,11 @@ module.exports = isIndex;
/***/ }),
-/* 85 */
+/* 84 */
/***/ (function(module, exports, __webpack_require__) {
-var baseRest = __webpack_require__(115),
- isIterateeCall = __webpack_require__(86);
+var baseRest = __webpack_require__(114),
+ isIterateeCall = __webpack_require__(85);
/**
* Creates a function like `_.assign`.
@@ -11243,13 +11361,13 @@ module.exports = createAssigner;
/***/ }),
-/* 86 */
+/* 85 */
/***/ (function(module, exports, __webpack_require__) {
var eq = __webpack_require__(39),
- isArrayLike = __webpack_require__(19),
- isIndex = __webpack_require__(84),
- isObject = __webpack_require__(17);
+ isArrayLike = __webpack_require__(20),
+ isIndex = __webpack_require__(83),
+ isObject = __webpack_require__(18);
/**
* Checks if the given arguments are from an iteratee call.
@@ -11279,11 +11397,11 @@ module.exports = isIterateeCall;
/***/ }),
-/* 87 */
+/* 86 */
/***/ (function(module, exports, __webpack_require__) {
-var baseMerge = __webpack_require__(118),
- createAssigner = __webpack_require__(85);
+var baseMerge = __webpack_require__(117),
+ createAssigner = __webpack_require__(84);
/**
* This method is like `_.assign` except that it recursively merges own and
@@ -11324,7 +11442,7 @@ module.exports = merge;
/***/ }),
-/* 88 */
+/* 87 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -11392,7 +11510,7 @@ module.exports = warning;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
-/* 89 */
+/* 88 */
/***/ (function(module, exports) {
/**
@@ -11418,16 +11536,16 @@ module.exports = arrayPush;
/***/ }),
-/* 90 */
+/* 89 */
/***/ (function(module, exports, __webpack_require__) {
-var DataView = __webpack_require__(397),
- Map = __webpack_require__(119),
- Promise = __webpack_require__(398),
- Set = __webpack_require__(216),
- WeakMap = __webpack_require__(217),
- baseGetTag = __webpack_require__(32),
- toSource = __webpack_require__(197);
+var DataView = __webpack_require__(392),
+ Map = __webpack_require__(118),
+ Promise = __webpack_require__(393),
+ Set = __webpack_require__(213),
+ WeakMap = __webpack_require__(214),
+ baseGetTag = __webpack_require__(33),
+ toSource = __webpack_require__(194);
/** `Object#toString` result references. */
var mapTag = '[object Map]',
@@ -11482,13 +11600,13 @@ module.exports = getTag;
/***/ }),
-/* 91 */
+/* 90 */
/***/ (function(module, exports, __webpack_require__) {
-var isArray = __webpack_require__(10),
- isKey = __webpack_require__(132),
- stringToPath = __webpack_require__(421),
- toString = __webpack_require__(92);
+var isArray = __webpack_require__(11),
+ isKey = __webpack_require__(131),
+ stringToPath = __webpack_require__(416),
+ toString = __webpack_require__(91);
/**
* Casts `value` to a path array if it's not one.
@@ -11509,10 +11627,10 @@ module.exports = castPath;
/***/ }),
-/* 92 */
+/* 91 */
/***/ (function(module, exports, __webpack_require__) {
-var baseToString = __webpack_require__(133);
+var baseToString = __webpack_require__(132);
/**
* Converts `value` to a string. An empty string is returned for `null`
@@ -11543,7 +11661,7 @@ module.exports = toString;
/***/ }),
-/* 93 */
+/* 92 */
/***/ (function(module, exports) {
/**
@@ -11570,11 +11688,11 @@ module.exports = arrayMap;
/***/ }),
-/* 94 */
+/* 93 */
/***/ (function(module, exports, __webpack_require__) {
-var baseForOwn = __webpack_require__(226),
- createBaseEach = __webpack_require__(431);
+var baseForOwn = __webpack_require__(223),
+ createBaseEach = __webpack_require__(426);
/**
* The base implementation of `_.forEach` without support for iteratee shorthands.
@@ -11590,13 +11708,13 @@ module.exports = baseEach;
/***/ }),
-/* 95 */
+/* 94 */
/***/ (function(module, exports, __webpack_require__) {
-var arrayFilter = __webpack_require__(210),
- baseFilter = __webpack_require__(437),
+var arrayFilter = __webpack_require__(207),
+ baseFilter = __webpack_require__(432),
baseIteratee = __webpack_require__(42),
- isArray = __webpack_require__(10);
+ isArray = __webpack_require__(11);
/**
* Iterates over elements of `collection`, returning an array of all elements
@@ -11644,7 +11762,7 @@ module.exports = filter;
/***/ }),
-/* 96 */
+/* 95 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -11668,12 +11786,12 @@ exports.default = function (message, element) {
};
/***/ }),
-/* 97 */
+/* 96 */
/***/ (function(module, exports, __webpack_require__) {
-var baseFindIndex = __webpack_require__(229),
- baseIsNaN = __webpack_require__(442),
- strictIndexOf = __webpack_require__(443);
+var baseFindIndex = __webpack_require__(226),
+ baseIsNaN = __webpack_require__(437),
+ strictIndexOf = __webpack_require__(438);
/**
* The base implementation of `_.indexOf` without `fromIndex` bounds checks.
@@ -11694,11 +11812,11 @@ module.exports = baseIndexOf;
/***/ }),
-/* 98 */
+/* 97 */
/***/ (function(module, exports, __webpack_require__) {
-var baseCreate = __webpack_require__(82),
- isObject = __webpack_require__(17);
+var baseCreate = __webpack_require__(81),
+ isObject = __webpack_require__(18);
/**
* Creates a function that produces an instance of `Ctor` regardless of
@@ -11737,14 +11855,14 @@ module.exports = createCtor;
/***/ }),
-/* 99 */
+/* 98 */
/***/ (function(module, exports, __webpack_require__) {
-module.exports = __webpack_require__(245);
+module.exports = __webpack_require__(242);
/***/ }),
-/* 100 */
+/* 99 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -11754,7 +11872,7 @@ Object.defineProperty(exports, "__esModule", {
value: true
});
-var _isBrowser = __webpack_require__(145);
+var _isBrowser = __webpack_require__(144);
var _isBrowser2 = _interopRequireDefault(_isBrowser);
@@ -11763,7 +11881,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
var dom = {};
if ((0, _isBrowser2.default)()) {
- var jquery = __webpack_require__(247);
+ var jquery = __webpack_require__(459);
var parseMarkup = function parseMarkup(str) {
var context = jquery(str);
@@ -11815,7 +11933,7 @@ if ((0, _isBrowser2.default)()) {
return '' + markup.documentElement.outerHTML;
};
} else {
- var cheerio = __webpack_require__(464);
+ var cheerio = __webpack_require__(460);
var $ = cheerio.load('', { decodeEntities: false });
@@ -11859,17 +11977,15 @@ if ((0, _isBrowser2.default)()) {
exports.default = dom;
/***/ }),
-/* 101 */
+/* 100 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*
*/
@@ -11890,27 +12006,49 @@ if (process.env.NODE_ENV !== 'production') {
module.exports = canDefineProperty;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
+/***/ }),
+/* 101 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(process) {/**
+ * Copyright (c) 2013-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ */
+
+
+
+var emptyObject = {};
+
+if (process.env.NODE_ENV !== 'production') {
+ Object.freeze(emptyObject);
+}
+
+module.exports = emptyObject;
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
+
/***/ }),
/* 102 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*
*/
-var _prodInvariant = __webpack_require__(7);
+var _prodInvariant = __webpack_require__(6);
-var invariant = __webpack_require__(3);
+var invariant = __webpack_require__(2);
var OBSERVED_ERROR = {};
@@ -12005,6 +12143,8 @@ var TransactionImpl = {
return !!this._isInTransaction;
},
+ /* eslint-disable space-before-function-paren */
+
/**
* Executes the function within a safety window. Use this for the top level
* methods that result in large amounts of computation/mutations that would
@@ -12023,6 +12163,7 @@ var TransactionImpl = {
* @return {*} Return value from `method`.
*/
perform: function (method, scope, a, b, c, d, e, f) {
+ /* eslint-enable space-before-function-paren */
!!this.isInTransaction() ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Transaction.perform(...): Cannot initialize a transaction when there is already an outstanding transaction.') : _prodInvariant('27') : void 0;
var errorThrown;
var ret;
@@ -12127,21 +12268,19 @@ module.exports = TransactionImpl;
"use strict";
/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*/
var SyntheticUIEvent = __webpack_require__(63);
-var ViewportMetrics = __webpack_require__(263);
+var ViewportMetrics = __webpack_require__(261);
-var getEventModifierState = __webpack_require__(155);
+var getEventModifierState = __webpack_require__(153);
/**
* @interface MouseEvent
@@ -12204,12 +12343,10 @@ module.exports = SyntheticMouseEvent;
"use strict";
/**
- * Copyright 2016-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2016-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
* Based on the escape-html library, which is used under the MIT License below:
*
@@ -12307,7 +12444,6 @@ function escapeHtml(string) {
}
// end code copied and modified from escape-html
-
/**
* Escapes text to prevent scripting attacks.
*
@@ -12333,7 +12469,7 @@ module.exports = escapeTextContentForBrowser;
/* WEBPACK VAR INJECTION */(function(Buffer) {/*
Module Dependencies
*/
-var htmlparser = __webpack_require__(44);
+var htmlparser = __webpack_require__(45);
/*
Parser
@@ -12417,7 +12553,7 @@ exports.update = function(arr, parent) {
// module.exports = $.extend(exports);
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1).Buffer))
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(7).Buffer))
/***/ }),
/* 106 */
@@ -12731,6 +12867,57 @@ function isUndefined(arg) {
/* 107 */
/***/ (function(module, exports, __webpack_require__) {
+"use strict";
+/* WEBPACK VAR INJECTION */(function(process) {
+
+if (!process.version ||
+ process.version.indexOf('v0.') === 0 ||
+ process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {
+ module.exports = nextTick;
+} else {
+ module.exports = process.nextTick;
+}
+
+function nextTick(fn, arg1, arg2, arg3) {
+ if (typeof fn !== 'function') {
+ throw new TypeError('"callback" argument must be a function');
+ }
+ var len = arguments.length;
+ var args, i;
+ switch (len) {
+ case 0:
+ case 1:
+ return process.nextTick(fn);
+ case 2:
+ return process.nextTick(function afterTickOne() {
+ fn.call(null, arg1);
+ });
+ case 3:
+ return process.nextTick(function afterTickTwo() {
+ fn.call(null, arg1, arg2);
+ });
+ case 4:
+ return process.nextTick(function afterTickThree() {
+ fn.call(null, arg1, arg2, arg3);
+ });
+ default:
+ args = new Array(len - 1);
+ i = 0;
+ while (i < args.length) {
+ args[i++] = arguments[i];
+ }
+ return process.nextTick(function afterTick() {
+ fn.apply(null, args);
+ });
+ }
+}
+
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
+
+/***/ }),
+/* 108 */
+/***/ (function(module, exports, __webpack_require__) {
+
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
@@ -12752,7 +12939,7 @@ function isUndefined(arg) {
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
-var Buffer = __webpack_require__(1).Buffer;
+var Buffer = __webpack_require__(7).Buffer;
var isBufferEncoding = Buffer.isEncoding
|| function(encoding) {
@@ -12955,7 +13142,7 @@ function base64DetectIncompleteChar(buffer) {
/***/ }),
-/* 108 */
+/* 109 */
/***/ (function(module, exports) {
/**
@@ -13526,22 +13713,23 @@ module.exports = forEach;
/***/ }),
-/* 109 */
+/* 110 */
/***/ (function(module, exports, __webpack_require__) {
-var Buffer = __webpack_require__(709).Buffer
-var MD5 = __webpack_require__(710)
+var Buffer = __webpack_require__(8).Buffer
+var MD5 = __webpack_require__(704)
/* eslint-disable camelcase */
-function EVP_BytesToKey (password, salt, keyLen, ivLen) {
+function EVP_BytesToKey (password, salt, keyBits, ivLen) {
if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')
if (salt) {
if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')
if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')
}
+ var keyLen = keyBits / 8
var key = Buffer.alloc(keyLen)
- var iv = Buffer.alloc(ivLen)
+ var iv = Buffer.alloc(ivLen || 0)
var tmp = Buffer.alloc(0)
while (keyLen > 0 || ivLen > 0) {
@@ -13576,71 +13764,118 @@ module.exports = EVP_BytesToKey
/***/ }),
-/* 110 */
+/* 111 */
/***/ (function(module, exports, __webpack_require__) {
-/* WEBPACK VAR INJECTION */(function(Buffer) {// based on the aes implimentation in triple sec
+// based on the aes implimentation in triple sec
// https://github.com/keybase/triplesec
-
// which is in turn based on the one from crypto-js
// https://code.google.com/p/crypto-js/
-var uint_max = Math.pow(2, 32)
-function fixup_uint32 (x) {
- var ret, x_pos
- ret = x > uint_max || x < 0 ? (x_pos = Math.abs(x) % uint_max, x < 0 ? uint_max - x_pos : x_pos) : x
- return ret
+var Buffer = __webpack_require__(8).Buffer
+
+function asUInt32Array (buf) {
+ if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)
+
+ var len = (buf.length / 4) | 0
+ var out = new Array(len)
+
+ for (var i = 0; i < len; i++) {
+ out[i] = buf.readUInt32BE(i * 4)
+ }
+
+ return out
}
-function scrub_vec (v) {
+
+function scrubVec (v) {
for (var i = 0; i < v.length; v++) {
v[i] = 0
}
- return false
}
-function Global () {
- this.SBOX = []
- this.INV_SBOX = []
- this.SUB_MIX = [[], [], [], []]
- this.INV_SUB_MIX = [[], [], [], []]
- this.init()
- this.RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]
-}
+function cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {
+ var SUB_MIX0 = SUB_MIX[0]
+ var SUB_MIX1 = SUB_MIX[1]
+ var SUB_MIX2 = SUB_MIX[2]
+ var SUB_MIX3 = SUB_MIX[3]
-Global.prototype.init = function () {
- var d, i, sx, t, x, x2, x4, x8, xi, _i
- d = (function () {
- var _i, _results
- _results = []
- for (i = _i = 0; _i < 256; i = ++_i) {
- if (i < 128) {
- _results.push(i << 1)
- } else {
- _results.push((i << 1) ^ 0x11b)
- }
+ var s0 = M[0] ^ keySchedule[0]
+ var s1 = M[1] ^ keySchedule[1]
+ var s2 = M[2] ^ keySchedule[2]
+ var s3 = M[3] ^ keySchedule[3]
+ var t0, t1, t2, t3
+ var ksRow = 4
+
+ for (var round = 1; round < nRounds; round++) {
+ t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]
+ t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]
+ t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]
+ t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]
+ s0 = t0
+ s1 = t1
+ s2 = t2
+ s3 = t3
+ }
+
+ t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]
+ t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]
+ t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]
+ t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]
+ t0 = t0 >>> 0
+ t1 = t1 >>> 0
+ t2 = t2 >>> 0
+ t3 = t3 >>> 0
+
+ return [t0, t1, t2, t3]
+}
+
+// AES constants
+var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]
+var G = (function () {
+ // Compute double table
+ var d = new Array(256)
+ for (var j = 0; j < 256; j++) {
+ if (j < 128) {
+ d[j] = j << 1
+ } else {
+ d[j] = (j << 1) ^ 0x11b
}
- return _results
- })()
- x = 0
- xi = 0
- for (i = _i = 0; _i < 256; i = ++_i) {
- sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)
+ }
+
+ var SBOX = []
+ var INV_SBOX = []
+ var SUB_MIX = [[], [], [], []]
+ var INV_SUB_MIX = [[], [], [], []]
+
+ // Walk GF(2^8)
+ var x = 0
+ var xi = 0
+ for (var i = 0; i < 256; ++i) {
+ // Compute sbox
+ var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)
sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63
- this.SBOX[x] = sx
- this.INV_SBOX[sx] = x
- x2 = d[x]
- x4 = d[x2]
- x8 = d[x4]
- t = (d[sx] * 0x101) ^ (sx * 0x1010100)
- this.SUB_MIX[0][x] = (t << 24) | (t >>> 8)
- this.SUB_MIX[1][x] = (t << 16) | (t >>> 16)
- this.SUB_MIX[2][x] = (t << 8) | (t >>> 24)
- this.SUB_MIX[3][x] = t
+ SBOX[x] = sx
+ INV_SBOX[sx] = x
+
+ // Compute multiplication
+ var x2 = d[x]
+ var x4 = d[x2]
+ var x8 = d[x4]
+
+ // Compute sub bytes, mix columns tables
+ var t = (d[sx] * 0x101) ^ (sx * 0x1010100)
+ SUB_MIX[0][x] = (t << 24) | (t >>> 8)
+ SUB_MIX[1][x] = (t << 16) | (t >>> 16)
+ SUB_MIX[2][x] = (t << 8) | (t >>> 24)
+ SUB_MIX[3][x] = t
+
+ // Compute inv sub bytes, inv mix columns tables
t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)
- this.INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)
- this.INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)
- this.INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)
- this.INV_SUB_MIX[3][sx] = t
+ INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)
+ INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)
+ INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)
+ INV_SUB_MIX[3][sx] = t
+
if (x === 0) {
x = xi = 1
} else {
@@ -13648,56 +13883,87 @@ Global.prototype.init = function () {
xi ^= d[d[xi]]
}
}
- return true
-}
-
-var G = new Global()
-AES.blockSize = 4 * 4
+ return {
+ SBOX: SBOX,
+ INV_SBOX: INV_SBOX,
+ SUB_MIX: SUB_MIX,
+ INV_SUB_MIX: INV_SUB_MIX
+ }
+})()
-AES.prototype.blockSize = AES.blockSize
+function AES (key) {
+ this._key = asUInt32Array(key)
+ this._reset()
+}
+AES.blockSize = 4 * 4
AES.keySize = 256 / 8
-
+AES.prototype.blockSize = AES.blockSize
AES.prototype.keySize = AES.keySize
+AES.prototype._reset = function () {
+ var keyWords = this._key
+ var keySize = keyWords.length
+ var nRounds = keySize + 6
+ var ksRows = (nRounds + 1) * 4
-function bufferToArray (buf) {
- var len = buf.length / 4
- var out = new Array(len)
- var i = -1
- while (++i < len) {
- out[i] = buf.readUInt32BE(i * 4)
+ var keySchedule = []
+ for (var k = 0; k < keySize; k++) {
+ keySchedule[k] = keyWords[k]
}
- return out
-}
-function AES (key) {
- this._key = bufferToArray(key)
- this._doReset()
-}
-AES.prototype._doReset = function () {
- var invKsRow, keySize, keyWords, ksRow, ksRows, t
- keyWords = this._key
- keySize = keyWords.length
- this._nRounds = keySize + 6
- ksRows = (this._nRounds + 1) * 4
- this._keySchedule = []
- for (ksRow = 0; ksRow < ksRows; ksRow++) {
- this._keySchedule[ksRow] = ksRow < keySize ? keyWords[ksRow] : (t = this._keySchedule[ksRow - 1], (ksRow % keySize) === 0 ? (t = (t << 8) | (t >>> 24), t = (G.SBOX[t >>> 24] << 24) | (G.SBOX[(t >>> 16) & 0xff] << 16) | (G.SBOX[(t >>> 8) & 0xff] << 8) | G.SBOX[t & 0xff], t ^= G.RCON[(ksRow / keySize) | 0] << 24) : keySize > 6 && ksRow % keySize === 4 ? t = (G.SBOX[t >>> 24] << 24) | (G.SBOX[(t >>> 16) & 0xff] << 16) | (G.SBOX[(t >>> 8) & 0xff] << 8) | G.SBOX[t & 0xff] : void 0, this._keySchedule[ksRow - keySize] ^ t)
+ for (k = keySize; k < ksRows; k++) {
+ var t = keySchedule[k - 1]
+
+ if (k % keySize === 0) {
+ t = (t << 8) | (t >>> 24)
+ t =
+ (G.SBOX[t >>> 24] << 24) |
+ (G.SBOX[(t >>> 16) & 0xff] << 16) |
+ (G.SBOX[(t >>> 8) & 0xff] << 8) |
+ (G.SBOX[t & 0xff])
+
+ t ^= RCON[(k / keySize) | 0] << 24
+ } else if (keySize > 6 && k % keySize === 4) {
+ t =
+ (G.SBOX[t >>> 24] << 24) |
+ (G.SBOX[(t >>> 16) & 0xff] << 16) |
+ (G.SBOX[(t >>> 8) & 0xff] << 8) |
+ (G.SBOX[t & 0xff])
+ }
+
+ keySchedule[k] = keySchedule[k - keySize] ^ t
}
- this._invKeySchedule = []
- for (invKsRow = 0; invKsRow < ksRows; invKsRow++) {
- ksRow = ksRows - invKsRow
- t = this._keySchedule[ksRow - (invKsRow % 4 ? 0 : 4)]
- this._invKeySchedule[invKsRow] = invKsRow < 4 || ksRow <= 4 ? t : G.INV_SUB_MIX[0][G.SBOX[t >>> 24]] ^ G.INV_SUB_MIX[1][G.SBOX[(t >>> 16) & 0xff]] ^ G.INV_SUB_MIX[2][G.SBOX[(t >>> 8) & 0xff]] ^ G.INV_SUB_MIX[3][G.SBOX[t & 0xff]]
+
+ var invKeySchedule = []
+ for (var ik = 0; ik < ksRows; ik++) {
+ var ksR = ksRows - ik
+ var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]
+
+ if (ik < 4 || ksR <= 4) {
+ invKeySchedule[ik] = tt
+ } else {
+ invKeySchedule[ik] =
+ G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^
+ G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^
+ G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^
+ G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]
+ }
}
- return true
+
+ this._nRounds = nRounds
+ this._keySchedule = keySchedule
+ this._invKeySchedule = invKeySchedule
+}
+
+AES.prototype.encryptBlockRaw = function (M) {
+ M = asUInt32Array(M)
+ return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)
}
AES.prototype.encryptBlock = function (M) {
- M = bufferToArray(new Buffer(M))
- var out = this._doCryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX)
- var buf = new Buffer(16)
+ var out = this.encryptBlockRaw(M)
+ var buf = Buffer.allocUnsafe(16)
buf.writeUInt32BE(out[0], 0)
buf.writeUInt32BE(out[1], 4)
buf.writeUInt32BE(out[2], 8)
@@ -13706,12 +13972,15 @@ AES.prototype.encryptBlock = function (M) {
}
AES.prototype.decryptBlock = function (M) {
- M = bufferToArray(new Buffer(M))
- var temp = [M[3], M[1]]
- M[1] = temp[0]
- M[3] = temp[1]
- var out = this._doCryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX)
- var buf = new Buffer(16)
+ M = asUInt32Array(M)
+
+ // swap
+ var m1 = M[1]
+ M[1] = M[3]
+ M[3] = m1
+
+ var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)
+ var buf = Buffer.allocUnsafe(16)
buf.writeUInt32BE(out[0], 0)
buf.writeUInt32BE(out[3], 4)
buf.writeUInt32BE(out[2], 8)
@@ -13720,264 +13989,18 @@ AES.prototype.decryptBlock = function (M) {
}
AES.prototype.scrub = function () {
- scrub_vec(this._keySchedule)
- scrub_vec(this._invKeySchedule)
- scrub_vec(this._key)
-}
-
-AES.prototype._doCryptBlock = function (M, keySchedule, SUB_MIX, SBOX) {
- var ksRow, s0, s1, s2, s3, t0, t1, t2, t3
-
- s0 = M[0] ^ keySchedule[0]
- s1 = M[1] ^ keySchedule[1]
- s2 = M[2] ^ keySchedule[2]
- s3 = M[3] ^ keySchedule[3]
- ksRow = 4
- for (var round = 1; round < this._nRounds; round++) {
- t0 = SUB_MIX[0][s0 >>> 24] ^ SUB_MIX[1][(s1 >>> 16) & 0xff] ^ SUB_MIX[2][(s2 >>> 8) & 0xff] ^ SUB_MIX[3][s3 & 0xff] ^ keySchedule[ksRow++]
- t1 = SUB_MIX[0][s1 >>> 24] ^ SUB_MIX[1][(s2 >>> 16) & 0xff] ^ SUB_MIX[2][(s3 >>> 8) & 0xff] ^ SUB_MIX[3][s0 & 0xff] ^ keySchedule[ksRow++]
- t2 = SUB_MIX[0][s2 >>> 24] ^ SUB_MIX[1][(s3 >>> 16) & 0xff] ^ SUB_MIX[2][(s0 >>> 8) & 0xff] ^ SUB_MIX[3][s1 & 0xff] ^ keySchedule[ksRow++]
- t3 = SUB_MIX[0][s3 >>> 24] ^ SUB_MIX[1][(s0 >>> 16) & 0xff] ^ SUB_MIX[2][(s1 >>> 8) & 0xff] ^ SUB_MIX[3][s2 & 0xff] ^ keySchedule[ksRow++]
- s0 = t0
- s1 = t1
- s2 = t2
- s3 = t3
- }
- t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]
- t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]
- t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]
- t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]
- return [
- fixup_uint32(t0),
- fixup_uint32(t1),
- fixup_uint32(t2),
- fixup_uint32(t3)
- ]
+ scrubVec(this._keySchedule)
+ scrubVec(this._invKeySchedule)
+ scrubVec(this._key)
}
-exports.AES = AES
-
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1).Buffer))
-
-/***/ }),
-/* 111 */
-/***/ (function(module, exports) {
-
-exports['aes-128-ecb'] = {
- cipher: 'AES',
- key: 128,
- iv: 0,
- mode: 'ECB',
- type: 'block'
-}
-exports['aes-192-ecb'] = {
- cipher: 'AES',
- key: 192,
- iv: 0,
- mode: 'ECB',
- type: 'block'
-}
-exports['aes-256-ecb'] = {
- cipher: 'AES',
- key: 256,
- iv: 0,
- mode: 'ECB',
- type: 'block'
-}
-exports['aes-128-cbc'] = {
- cipher: 'AES',
- key: 128,
- iv: 16,
- mode: 'CBC',
- type: 'block'
-}
-exports['aes-192-cbc'] = {
- cipher: 'AES',
- key: 192,
- iv: 16,
- mode: 'CBC',
- type: 'block'
-}
-exports['aes-256-cbc'] = {
- cipher: 'AES',
- key: 256,
- iv: 16,
- mode: 'CBC',
- type: 'block'
-}
-exports['aes128'] = exports['aes-128-cbc']
-exports['aes192'] = exports['aes-192-cbc']
-exports['aes256'] = exports['aes-256-cbc']
-exports['aes-128-cfb'] = {
- cipher: 'AES',
- key: 128,
- iv: 16,
- mode: 'CFB',
- type: 'stream'
-}
-exports['aes-192-cfb'] = {
- cipher: 'AES',
- key: 192,
- iv: 16,
- mode: 'CFB',
- type: 'stream'
-}
-exports['aes-256-cfb'] = {
- cipher: 'AES',
- key: 256,
- iv: 16,
- mode: 'CFB',
- type: 'stream'
-}
-exports['aes-128-cfb8'] = {
- cipher: 'AES',
- key: 128,
- iv: 16,
- mode: 'CFB8',
- type: 'stream'
-}
-exports['aes-192-cfb8'] = {
- cipher: 'AES',
- key: 192,
- iv: 16,
- mode: 'CFB8',
- type: 'stream'
-}
-exports['aes-256-cfb8'] = {
- cipher: 'AES',
- key: 256,
- iv: 16,
- mode: 'CFB8',
- type: 'stream'
-}
-exports['aes-128-cfb1'] = {
- cipher: 'AES',
- key: 128,
- iv: 16,
- mode: 'CFB1',
- type: 'stream'
-}
-exports['aes-192-cfb1'] = {
- cipher: 'AES',
- key: 192,
- iv: 16,
- mode: 'CFB1',
- type: 'stream'
-}
-exports['aes-256-cfb1'] = {
- cipher: 'AES',
- key: 256,
- iv: 16,
- mode: 'CFB1',
- type: 'stream'
-}
-exports['aes-128-ofb'] = {
- cipher: 'AES',
- key: 128,
- iv: 16,
- mode: 'OFB',
- type: 'stream'
-}
-exports['aes-192-ofb'] = {
- cipher: 'AES',
- key: 192,
- iv: 16,
- mode: 'OFB',
- type: 'stream'
-}
-exports['aes-256-ofb'] = {
- cipher: 'AES',
- key: 256,
- iv: 16,
- mode: 'OFB',
- type: 'stream'
-}
-exports['aes-128-ctr'] = {
- cipher: 'AES',
- key: 128,
- iv: 16,
- mode: 'CTR',
- type: 'stream'
-}
-exports['aes-192-ctr'] = {
- cipher: 'AES',
- key: 192,
- iv: 16,
- mode: 'CTR',
- type: 'stream'
-}
-exports['aes-256-ctr'] = {
- cipher: 'AES',
- key: 256,
- iv: 16,
- mode: 'CTR',
- type: 'stream'
-}
-exports['aes-128-gcm'] = {
- cipher: 'AES',
- key: 128,
- iv: 12,
- mode: 'GCM',
- type: 'auth'
-}
-exports['aes-192-gcm'] = {
- cipher: 'AES',
- key: 192,
- iv: 12,
- mode: 'GCM',
- type: 'auth'
-}
-exports['aes-256-gcm'] = {
- cipher: 'AES',
- key: 256,
- iv: 12,
- mode: 'GCM',
- type: 'auth'
-}
+module.exports.AES = AES
/***/ }),
/* 112 */
/***/ (function(module, exports, __webpack_require__) {
-/* WEBPACK VAR INJECTION */(function(Buffer) {var xor = __webpack_require__(72)
-
-function incr32 (iv) {
- var len = iv.length
- var item
- while (len--) {
- item = iv.readUInt8(len)
- if (item === 255) {
- iv.writeUInt8(0, len)
- } else {
- item++
- iv.writeUInt8(item, len)
- break
- }
- }
-}
-
-function getBlock (self) {
- var out = self._cipher.encryptBlock(self._prev)
- incr32(self._prev)
- return out
-}
-
-exports.encrypt = function (self, chunk) {
- while (self._cache.length < chunk.length) {
- self._cache = Buffer.concat([self._cache, getBlock(self)])
- }
- var pad = self._cache.slice(0, chunk.length)
- self._cache = self._cache.slice(chunk.length)
- return xor(chunk, pad)
-}
-
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1).Buffer))
-
-/***/ }),
-/* 113 */
-/***/ (function(module, exports, __webpack_require__) {
-
"use strict";
@@ -13990,14 +14013,14 @@ curve.edwards = __webpack_require__(734);
/***/ }),
-/* 114 */
+/* 113 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {var asn1 = __webpack_require__(750)
var aesid = __webpack_require__(762)
var fixProc = __webpack_require__(763)
-var ciphers = __webpack_require__(185)
-var compat = __webpack_require__(312)
+var ciphers = __webpack_require__(181)
+var compat = __webpack_require__(311)
module.exports = parseKeys
function parseKeys (buffer) {
@@ -14100,15 +14123,15 @@ function decrypt (data, password) {
return Buffer.concat(out)
}
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1).Buffer))
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(7).Buffer))
/***/ }),
-/* 115 */
+/* 114 */
/***/ (function(module, exports, __webpack_require__) {
var identity = __webpack_require__(38),
- overRest = __webpack_require__(194),
- setToString = __webpack_require__(116);
+ overRest = __webpack_require__(191),
+ setToString = __webpack_require__(115);
/**
* The base implementation of `_.rest` which doesn't validate or coerce arguments.
@@ -14126,11 +14149,11 @@ module.exports = baseRest;
/***/ }),
-/* 116 */
+/* 115 */
/***/ (function(module, exports, __webpack_require__) {
-var baseSetToString = __webpack_require__(349),
- shortOut = __webpack_require__(198);
+var baseSetToString = __webpack_require__(344),
+ shortOut = __webpack_require__(195);
/**
* Sets the `toString` method of `func` to return `string`.
@@ -14146,11 +14169,11 @@ module.exports = setToString;
/***/ }),
-/* 117 */
+/* 116 */
/***/ (function(module, exports, __webpack_require__) {
-var baseGetTag = __webpack_require__(32),
- isObject = __webpack_require__(17);
+var baseGetTag = __webpack_require__(33),
+ isObject = __webpack_require__(18);
/** `Object#toString` result references. */
var asyncTag = '[object AsyncFunction]',
@@ -14189,15 +14212,15 @@ module.exports = isFunction;
/***/ }),
-/* 118 */
+/* 117 */
/***/ (function(module, exports, __webpack_require__) {
-var Stack = __webpack_require__(76),
- assignMergeValue = __webpack_require__(199),
- baseFor = __webpack_require__(200),
- baseMergeDeep = __webpack_require__(381),
- isObject = __webpack_require__(17),
- keysIn = __webpack_require__(53);
+var Stack = __webpack_require__(75),
+ assignMergeValue = __webpack_require__(196),
+ baseFor = __webpack_require__(197),
+ baseMergeDeep = __webpack_require__(376),
+ isObject = __webpack_require__(18),
+ keysIn = __webpack_require__(54);
/**
* The base implementation of `_.merge` without support for multiple sources.
@@ -14236,11 +14259,11 @@ module.exports = baseMerge;
/***/ }),
-/* 119 */
+/* 118 */
/***/ (function(module, exports, __webpack_require__) {
-var getNative = __webpack_require__(31),
- root = __webpack_require__(14);
+var getNative = __webpack_require__(32),
+ root = __webpack_require__(15);
/* Built-in method references that are verified to be native. */
var Map = getNative(root, 'Map');
@@ -14249,14 +14272,14 @@ module.exports = Map;
/***/ }),
-/* 120 */
+/* 119 */
/***/ (function(module, exports, __webpack_require__) {
-var mapCacheClear = __webpack_require__(368),
- mapCacheDelete = __webpack_require__(375),
- mapCacheGet = __webpack_require__(377),
- mapCacheHas = __webpack_require__(378),
- mapCacheSet = __webpack_require__(379);
+var mapCacheClear = __webpack_require__(363),
+ mapCacheDelete = __webpack_require__(370),
+ mapCacheGet = __webpack_require__(372),
+ mapCacheHas = __webpack_require__(373),
+ mapCacheSet = __webpack_require__(374);
/**
* Creates a map cache object to store key-value pairs.
@@ -14287,10 +14310,10 @@ module.exports = MapCache;
/***/ }),
-/* 121 */
+/* 120 */
/***/ (function(module, exports, __webpack_require__) {
-var Uint8Array = __webpack_require__(203);
+var Uint8Array = __webpack_require__(200);
/**
* Creates a clone of `arrayBuffer`.
@@ -14309,10 +14332,10 @@ module.exports = cloneArrayBuffer;
/***/ }),
-/* 122 */
+/* 121 */
/***/ (function(module, exports, __webpack_require__) {
-var overArg = __webpack_require__(205);
+var overArg = __webpack_require__(202);
/** Built-in value references. */
var getPrototype = overArg(Object.getPrototypeOf, Object);
@@ -14321,7 +14344,7 @@ module.exports = getPrototype;
/***/ }),
-/* 123 */
+/* 122 */
/***/ (function(module, exports) {
/** Used as references for various `Number` constants. */
@@ -14362,10 +14385,10 @@ module.exports = isLength;
/***/ }),
-/* 124 */
+/* 123 */
/***/ (function(module, exports, __webpack_require__) {
-var baseAssignValue = __webpack_require__(81),
+var baseAssignValue = __webpack_require__(80),
eq = __webpack_require__(39);
/** Used for built-in method references. */
@@ -14396,7 +14419,7 @@ module.exports = assignValue;
/***/ }),
-/* 125 */
+/* 124 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global, module) {var __WEBPACK_AMD_DEFINE_RESULT__;/**
@@ -31485,13 +31508,13 @@ module.exports = assignValue;
}
}.call(this));
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(9), __webpack_require__(16)(module)))
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10), __webpack_require__(17)(module)))
/***/ }),
-/* 126 */
+/* 125 */
/***/ (function(module, exports, __webpack_require__) {
-var baseClone = __webpack_require__(127);
+var baseClone = __webpack_require__(126);
/** Used to compose bitmasks for cloning. */
var CLONE_DEEP_FLAG = 1,
@@ -31523,28 +31546,28 @@ module.exports = cloneDeep;
/***/ }),
-/* 127 */
+/* 126 */
/***/ (function(module, exports, __webpack_require__) {
-var Stack = __webpack_require__(76),
- arrayEach = __webpack_require__(128),
- assignValue = __webpack_require__(124),
- baseAssign = __webpack_require__(392),
- baseAssignIn = __webpack_require__(394),
- cloneBuffer = __webpack_require__(201),
+var Stack = __webpack_require__(75),
+ arrayEach = __webpack_require__(127),
+ assignValue = __webpack_require__(123),
+ baseAssign = __webpack_require__(387),
+ baseAssignIn = __webpack_require__(389),
+ cloneBuffer = __webpack_require__(198),
copyArray = __webpack_require__(40),
- copySymbols = __webpack_require__(395),
- copySymbolsIn = __webpack_require__(396),
- getAllKeys = __webpack_require__(213),
- getAllKeysIn = __webpack_require__(215),
- getTag = __webpack_require__(90),
- initCloneArray = __webpack_require__(399),
- initCloneByTag = __webpack_require__(400),
- initCloneObject = __webpack_require__(204),
- isArray = __webpack_require__(10),
- isBuffer = __webpack_require__(52),
- isObject = __webpack_require__(17),
- keys = __webpack_require__(25);
+ copySymbols = __webpack_require__(390),
+ copySymbolsIn = __webpack_require__(391),
+ getAllKeys = __webpack_require__(210),
+ getAllKeysIn = __webpack_require__(212),
+ getTag = __webpack_require__(89),
+ initCloneArray = __webpack_require__(394),
+ initCloneByTag = __webpack_require__(395),
+ initCloneObject = __webpack_require__(201),
+ isArray = __webpack_require__(11),
+ isBuffer = __webpack_require__(53),
+ isObject = __webpack_require__(18),
+ keys = __webpack_require__(26);
/** Used to compose bitmasks for cloning. */
var CLONE_DEEP_FLAG = 1,
@@ -31682,7 +31705,7 @@ module.exports = baseClone;
/***/ }),
-/* 128 */
+/* 127 */
/***/ (function(module, exports) {
/**
@@ -31710,11 +31733,11 @@ module.exports = arrayEach;
/***/ }),
-/* 129 */
+/* 128 */
/***/ (function(module, exports, __webpack_require__) {
-var arrayFilter = __webpack_require__(210),
- stubArray = __webpack_require__(211);
+var arrayFilter = __webpack_require__(207),
+ stubArray = __webpack_require__(208);
/** Used for built-in method references. */
var objectProto = Object.prototype;
@@ -31746,7 +31769,7 @@ module.exports = getSymbols;
/***/ }),
-/* 130 */
+/* 129 */
/***/ (function(module, exports) {
/**
@@ -31770,11 +31793,11 @@ module.exports = mapToArray;
/***/ }),
-/* 131 */
+/* 130 */
/***/ (function(module, exports, __webpack_require__) {
-var castPath = __webpack_require__(91),
- toKey = __webpack_require__(56);
+var castPath = __webpack_require__(90),
+ toKey = __webpack_require__(57);
/**
* The base implementation of `_.get` without support for default values.
@@ -31800,11 +31823,11 @@ module.exports = baseGet;
/***/ }),
-/* 132 */
+/* 131 */
/***/ (function(module, exports, __webpack_require__) {
-var isArray = __webpack_require__(10),
- isSymbol = __webpack_require__(55);
+var isArray = __webpack_require__(11),
+ isSymbol = __webpack_require__(56);
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
@@ -31835,13 +31858,13 @@ module.exports = isKey;
/***/ }),
-/* 133 */
+/* 132 */
/***/ (function(module, exports, __webpack_require__) {
-var Symbol = __webpack_require__(33),
- arrayMap = __webpack_require__(93),
- isArray = __webpack_require__(10),
- isSymbol = __webpack_require__(55);
+var Symbol = __webpack_require__(34),
+ arrayMap = __webpack_require__(92),
+ isArray = __webpack_require__(11),
+ isSymbol = __webpack_require__(56);
/** Used as references for various `Number` constants. */
var INFINITY = 1 / 0;
@@ -31878,7 +31901,7 @@ module.exports = baseToString;
/***/ }),
-/* 134 */
+/* 133 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -31889,23 +31912,23 @@ Object.defineProperty(exports, "__esModule", {
});
exports.formatValidationError = exports.registerMJRule = exports.rulesCollection = undefined;
-var _concat = __webpack_require__(135);
+var _concat = __webpack_require__(134);
var _concat2 = _interopRequireDefault(_concat);
-var _filter = __webpack_require__(95);
+var _filter = __webpack_require__(94);
var _filter2 = _interopRequireDefault(_filter);
-var _values = __webpack_require__(136);
+var _values = __webpack_require__(135);
var _values2 = _interopRequireDefault(_values);
-var _ruleError = __webpack_require__(96);
+var _ruleError = __webpack_require__(95);
var _ruleError2 = _interopRequireDefault(_ruleError);
-var _MJMLRulesCollection = __webpack_require__(439);
+var _MJMLRulesCollection = __webpack_require__(434);
var _MJMLRulesCollection2 = _interopRequireDefault(_MJMLRulesCollection);
@@ -31937,13 +31960,13 @@ var validateNode = function validateNode(element) {
exports.default = validateNode;
/***/ }),
-/* 135 */
+/* 134 */
/***/ (function(module, exports, __webpack_require__) {
-var arrayPush = __webpack_require__(89),
- baseFlatten = __webpack_require__(228),
+var arrayPush = __webpack_require__(88),
+ baseFlatten = __webpack_require__(225),
copyArray = __webpack_require__(40),
- isArray = __webpack_require__(10);
+ isArray = __webpack_require__(11);
/**
* Creates a new array concatenating `array` with any additional arrays
@@ -31986,11 +32009,11 @@ module.exports = concat;
/***/ }),
-/* 136 */
+/* 135 */
/***/ (function(module, exports, __webpack_require__) {
-var baseValues = __webpack_require__(438),
- keys = __webpack_require__(25);
+var baseValues = __webpack_require__(433),
+ keys = __webpack_require__(26);
/**
* Creates an array of the own enumerable string keyed property values of `object`.
@@ -32026,14 +32049,14 @@ module.exports = values;
/***/ }),
-/* 137 */
+/* 136 */
/***/ (function(module, exports, __webpack_require__) {
-var baseIndexOf = __webpack_require__(97),
- isArrayLike = __webpack_require__(19),
- isString = __webpack_require__(230),
- toInteger = __webpack_require__(57),
- values = __webpack_require__(136);
+var baseIndexOf = __webpack_require__(96),
+ isArrayLike = __webpack_require__(20),
+ isString = __webpack_require__(227),
+ toInteger = __webpack_require__(58),
+ values = __webpack_require__(135);
/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeMax = Math.max;
@@ -32085,11 +32108,11 @@ module.exports = includes;
/***/ }),
-/* 138 */
+/* 137 */
/***/ (function(module, exports, __webpack_require__) {
-var baseCreate = __webpack_require__(82),
- baseLodash = __webpack_require__(139);
+var baseCreate = __webpack_require__(81),
+ baseLodash = __webpack_require__(138);
/** Used as references for the maximum length and index of an array. */
var MAX_ARRAY_LENGTH = 4294967295;
@@ -32119,7 +32142,7 @@ module.exports = LazyWrapper;
/***/ }),
-/* 139 */
+/* 138 */
/***/ (function(module, exports) {
/**
@@ -32135,11 +32158,11 @@ module.exports = baseLodash;
/***/ }),
-/* 140 */
+/* 139 */
/***/ (function(module, exports, __webpack_require__) {
-var metaMap = __webpack_require__(233),
- noop = __webpack_require__(239);
+var metaMap = __webpack_require__(230),
+ noop = __webpack_require__(236);
/**
* Gets metadata for `func`.
@@ -32156,11 +32179,11 @@ module.exports = getData;
/***/ }),
-/* 141 */
+/* 140 */
/***/ (function(module, exports, __webpack_require__) {
-var baseCreate = __webpack_require__(82),
- baseLodash = __webpack_require__(139);
+var baseCreate = __webpack_require__(81),
+ baseLodash = __webpack_require__(138);
/**
* The base constructor for creating `lodash` wrapper objects.
@@ -32184,7 +32207,7 @@ module.exports = LodashWrapper;
/***/ }),
-/* 142 */
+/* 141 */
/***/ (function(module, exports) {
/** Used as the internal argument placeholder. */
@@ -32219,11 +32242,11 @@ module.exports = replaceHolders;
/***/ }),
-/* 143 */
+/* 142 */
/***/ (function(module, exports, __webpack_require__) {
-var createFind = __webpack_require__(461),
- findIndex = __webpack_require__(462);
+var createFind = __webpack_require__(456),
+ findIndex = __webpack_require__(457);
/**
* Iterates over elements of `collection`, returning the first element
@@ -32267,7 +32290,7 @@ module.exports = find;
/***/ }),
-/* 144 */
+/* 143 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -32278,7 +32301,7 @@ Object.defineProperty(exports, "__esModule", {
});
exports.registerMJHeadElement = exports.endingTags = undefined;
-var _lodash = __webpack_require__(125);
+var _lodash = __webpack_require__(124);
var endingTags = exports.endingTags = [];
var registerMJHeadElement = exports.registerMJHeadElement = function registerMJHeadElement() {
@@ -32311,7 +32334,7 @@ var MJMLHeadElementsCollection = {};
exports.default = MJMLHeadElementsCollection;
/***/ }),
-/* 145 */
+/* 144 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -32328,10 +32351,12 @@ exports.default = function () {
};
/***/ }),
-/* 146 */
+/* 145 */
/***/ (function(module, exports, __webpack_require__) {
-var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*jshint curly:true, eqeqeq:true, laxbreak:true, noempty:false */
+var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*jshint curly:false, eqeqeq:true, laxbreak:true, noempty:false */
+/* AUTO-GENERATED. DO NOT MODIFY. */
+/* see js/src/javascript/index.js */
/*
The MIT License (MIT)
@@ -32418,2407 +32443,2746 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*jshint curly:t
*/
-// Object.values polyfill found here:
-// http://tokenposts.blogspot.com.au/2012/04/javascript-objectkeys-browser.html
-if (!Object.values) {
- Object.values = function(o) {
- if (o !== Object(o)) {
- throw new TypeError('Object.values called on a non-object');
- }
- var k = [],
- p;
- for (p in o) {
- if (Object.prototype.hasOwnProperty.call(o, p)) {
- k.push(o[p]);
- }
- }
- return k;
- };
-}
-
(function() {
+var legacy_beautify_js =
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // identity function for calling harmony imports with the correct context
+/******/ __webpack_require__.i = function(value) { return value; };
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = 6);
+/******/ })
+/************************************************************************/
+/******/ ([
+/* 0 */
+/***/ (function(module, exports) {
- function mergeOpts(allOptions, targetType) {
- var finalOpts = {};
- var name;
+/* jshint curly: false */
+// This section of code is taken from acorn.
+//
+// Acorn was written by Marijn Haverbeke and released under an MIT
+// license. The Unicode regexps (for identifiers and whitespace) were
+// taken from [Esprima](http://esprima.org) by Ariya Hidayat.
+//
+// Git repositories for Acorn are available at
+//
+// http://marijnhaverbeke.nl/git/acorn
+// https://github.com/marijnh/acorn.git
- for (name in allOptions) {
- if (name !== targetType) {
- finalOpts[name] = allOptions[name];
- }
- }
+// ## Character categories
- //merge in the per type settings for the targetType
- if (targetType in allOptions) {
- for (name in allOptions[targetType]) {
- finalOpts[name] = allOptions[targetType][name];
- }
- }
- return finalOpts;
- }
+// Big ugly regular expressions that match characters in the
+// whitespace, identifier, and identifier-start categories. These
+// are only applied when a character is found to actually have a
+// code point above 128.
- function js_beautify(js_source_text, options) {
+var nonASCIIwhitespace = /[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/; // jshint ignore:line
+var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc";
+var nonASCIIidentifierChars = "\u0300-\u036f\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u0620-\u0649\u0672-\u06d3\u06e7-\u06e8\u06fb-\u06fc\u0730-\u074a\u0800-\u0814\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0840-\u0857\u08e4-\u08fe\u0900-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962-\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09d7\u09df-\u09e0\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2-\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b5f-\u0b60\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62-\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2-\u0ce3\u0ce6-\u0cef\u0d02\u0d03\u0d46-\u0d48\u0d57\u0d62-\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e34-\u0e3a\u0e40-\u0e45\u0e50-\u0e59\u0eb4-\u0eb9\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f41-\u0f47\u0f71-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1029\u1040-\u1049\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u170e-\u1710\u1720-\u1730\u1740-\u1750\u1772\u1773\u1780-\u17b2\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1920-\u192b\u1930-\u193b\u1951-\u196d\u19b0-\u19c0\u19c8-\u19c9\u19d0-\u19d9\u1a00-\u1a15\u1a20-\u1a53\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1b46-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1bb0-\u1bb9\u1be6-\u1bf3\u1c00-\u1c22\u1c40-\u1c49\u1c5b-\u1c7d\u1cd0-\u1cd2\u1d00-\u1dbe\u1e01-\u1f15\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2d81-\u2d96\u2de0-\u2dff\u3021-\u3028\u3099\u309a\ua640-\ua66d\ua674-\ua67d\ua69f\ua6f0-\ua6f1\ua7f8-\ua800\ua806\ua80b\ua823-\ua827\ua880-\ua881\ua8b4-\ua8c4\ua8d0-\ua8d9\ua8f3-\ua8f7\ua900-\ua909\ua926-\ua92d\ua930-\ua945\ua980-\ua983\ua9b3-\ua9c0\uaa00-\uaa27\uaa40-\uaa41\uaa4c-\uaa4d\uaa50-\uaa59\uaa7b\uaae0-\uaae9\uaaf2-\uaaf3\uabc0-\uabe1\uabec\uabed\uabf0-\uabf9\ufb20-\ufb28\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f";
+var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
+var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
- var acorn = {};
- (function(exports) {
- /* jshint curly: false */
- // This section of code is taken from acorn.
- //
- // Acorn was written by Marijn Haverbeke and released under an MIT
- // license. The Unicode regexps (for identifiers and whitespace) were
- // taken from [Esprima](http://esprima.org) by Ariya Hidayat.
- //
- // Git repositories for Acorn are available at
- //
- // http://marijnhaverbeke.nl/git/acorn
- // https://github.com/marijnh/acorn.git
+// Whether a single character denotes a newline.
- // ## Character categories
+exports.newline = /[\n\r\u2028\u2029]/;
- // Big ugly regular expressions that match characters in the
- // whitespace, identifier, and identifier-start categories. These
- // are only applied when a character is found to actually have a
- // code point above 128.
+// Matches a whole line break (where CRLF is considered a single
+// line break). Used to count lines.
- var nonASCIIwhitespace = /[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/; // jshint ignore:line
- var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc";
- var nonASCIIidentifierChars = "\u0300-\u036f\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u0620-\u0649\u0672-\u06d3\u06e7-\u06e8\u06fb-\u06fc\u0730-\u074a\u0800-\u0814\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0840-\u0857\u08e4-\u08fe\u0900-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962-\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09d7\u09df-\u09e0\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2-\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b5f-\u0b60\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62-\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2-\u0ce3\u0ce6-\u0cef\u0d02\u0d03\u0d46-\u0d48\u0d57\u0d62-\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e34-\u0e3a\u0e40-\u0e45\u0e50-\u0e59\u0eb4-\u0eb9\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f41-\u0f47\u0f71-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1029\u1040-\u1049\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u170e-\u1710\u1720-\u1730\u1740-\u1750\u1772\u1773\u1780-\u17b2\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1920-\u192b\u1930-\u193b\u1951-\u196d\u19b0-\u19c0\u19c8-\u19c9\u19d0-\u19d9\u1a00-\u1a15\u1a20-\u1a53\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1b46-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1bb0-\u1bb9\u1be6-\u1bf3\u1c00-\u1c22\u1c40-\u1c49\u1c5b-\u1c7d\u1cd0-\u1cd2\u1d00-\u1dbe\u1e01-\u1f15\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2d81-\u2d96\u2de0-\u2dff\u3021-\u3028\u3099\u309a\ua640-\ua66d\ua674-\ua67d\ua69f\ua6f0-\ua6f1\ua7f8-\ua800\ua806\ua80b\ua823-\ua827\ua880-\ua881\ua8b4-\ua8c4\ua8d0-\ua8d9\ua8f3-\ua8f7\ua900-\ua909\ua926-\ua92d\ua930-\ua945\ua980-\ua983\ua9b3-\ua9c0\uaa00-\uaa27\uaa40-\uaa41\uaa4c-\uaa4d\uaa50-\uaa59\uaa7b\uaae0-\uaae9\uaaf2-\uaaf3\uabc0-\uabe1\uabec\uabed\uabf0-\uabf9\ufb20-\ufb28\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f";
- var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
- var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
+// in javascript, these two differ
+// in python they are the same, different methods are called on them
+exports.lineBreak = new RegExp('\r\n|' + exports.newline.source);
+exports.allLineBreaks = new RegExp(exports.lineBreak.source, 'g');
- // Whether a single character denotes a newline.
- exports.newline = /[\n\r\u2028\u2029]/;
+// Test whether a given character code starts an identifier.
- // Matches a whole line break (where CRLF is considered a single
- // line break). Used to count lines.
+exports.isIdentifierStart = function(code) {
+ // permit $ (36) and @ (64). @ is used in ES7 decorators.
+ if (code < 65) return code === 36 || code === 64;
+ // 65 through 91 are uppercase letters.
+ if (code < 91) return true;
+ // permit _ (95).
+ if (code < 97) return code === 95;
+ // 97 through 123 are lowercase letters.
+ if (code < 123) return true;
+ return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code));
+};
- // in javascript, these two differ
- // in python they are the same, different methods are called on them
- exports.lineBreak = new RegExp('\r\n|' + exports.newline.source);
- exports.allLineBreaks = new RegExp(exports.lineBreak.source, 'g');
+// Test whether a given character is part of an identifier.
+exports.isIdentifierChar = function(code) {
+ if (code < 48) return code === 36;
+ if (code < 58) return true;
+ if (code < 65) return false;
+ if (code < 91) return true;
+ if (code < 97) return code === 95;
+ if (code < 123) return true;
+ return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));
+};
- // Test whether a given character code starts an identifier.
- exports.isIdentifierStart = function(code) {
- // permit $ (36) and @ (64). @ is used in ES7 decorators.
- if (code < 65) return code === 36 || code === 64;
- // 65 through 91 are uppercase letters.
- if (code < 91) return true;
- // permit _ (95).
- if (code < 97) return code === 95;
- // 97 through 123 are lowercase letters.
- if (code < 123) return true;
- return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code));
- };
+/***/ }),
+/* 1 */
+/***/ (function(module, exports, __webpack_require__) {
- // Test whether a given character is part of an identifier.
+/*jshint curly:true, eqeqeq:true, laxbreak:true, noempty:false */
+/*
- exports.isIdentifierChar = function(code) {
- if (code < 48) return code === 36;
- if (code < 58) return true;
- if (code < 65) return false;
- if (code < 91) return true;
- if (code < 97) return code === 95;
- if (code < 123) return true;
- return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));
- };
- })(acorn);
- /* jshint curly: true */
+ The MIT License (MIT)
+
+ Copyright (c) 2007-2017 Einar Lielmanis, Liam Newman, and contributors.
+
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation files
+ (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge,
+ publish, distribute, sublicense, and/or sell copies of the Software,
+ and to permit persons to whom the Software is furnished to do so,
+ subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
- function in_array(what, arr) {
- for (var i = 0; i < arr.length; i += 1) {
- if (arr[i] === what) {
- return true;
- }
- }
- return false;
- }
+var mergeOpts = __webpack_require__(3).mergeOpts;
+var acorn = __webpack_require__(0);
+var Output = __webpack_require__(4).Output;
+var Tokenizer = __webpack_require__(7).Tokenizer;
- function trim(s) {
- return s.replace(/^\s+|\s+$/g, '');
- }
+function remove_redundant_indentation(output, frame) {
+ // This implementation is effective but has some issues:
+ // - can cause line wrap to happen too soon due to indent removal
+ // after wrap points are calculated
+ // These issues are minor compared to ugly indentation.
- function ltrim(s) {
- return s.replace(/^\s+/g, '');
- }
+ if (frame.multiline_frame ||
+ frame.mode === MODE.ForInitializer ||
+ frame.mode === MODE.Conditional) {
+ return;
+ }
- // function rtrim(s) {
- // return s.replace(/\s+$/g, '');
- // }
+ // remove one indent from each line inside this section
+ var start_index = frame.start_line_index;
- function sanitizeOperatorPosition(opPosition) {
- opPosition = opPosition || OPERATOR_POSITION.before_newline;
+ output.remove_indent(start_index);
+}
- var validPositionValues = Object.values(OPERATOR_POSITION);
+function in_array(what, arr) {
+ for (var i = 0; i < arr.length; i += 1) {
+ if (arr[i] === what) {
+ return true;
+ }
+ }
+ return false;
+}
- if (!in_array(opPosition, validPositionValues)) {
- throw new Error("Invalid Option Value: The option 'operator_position' must be one of the following values\n" +
- validPositionValues +
- "\nYou passed in: '" + opPosition + "'");
- }
+function trim(s) {
+ return s.replace(/^\s+|\s+$/g, '');
+}
- return opPosition;
- }
+function ltrim(s) {
+ return s.replace(/^\s+/g, '');
+}
- var OPERATOR_POSITION = {
- before_newline: 'before-newline',
- after_newline: 'after-newline',
- preserve_newline: 'preserve-newline',
- };
+// function rtrim(s) {
+// return s.replace(/\s+$/g, '');
+// }
- var OPERATOR_POSITION_BEFORE_OR_PRESERVE = [OPERATOR_POSITION.before_newline, OPERATOR_POSITION.preserve_newline];
- var MODE = {
- BlockStatement: 'BlockStatement', // 'BLOCK'
- Statement: 'Statement', // 'STATEMENT'
- ObjectLiteral: 'ObjectLiteral', // 'OBJECT',
- ArrayLiteral: 'ArrayLiteral', //'[EXPRESSION]',
- ForInitializer: 'ForInitializer', //'(FOR-EXPRESSION)',
- Conditional: 'Conditional', //'(COND-EXPRESSION)',
- Expression: 'Expression' //'(EXPRESSION)'
- };
+function generateMapFromStrings(list) {
+ var result = {};
+ for (var x = 0; x < list.length; x++) {
+ // make the mapped names underscored instead of dash
+ result[list[x].replace(/-/g, '_')] = list[x];
+ }
+ return result;
+}
- function Beautifier(js_source_text, options) {
- "use strict";
- var output;
- var tokens = [],
- token_pos;
- var Tokenizer;
- var current_token;
- var last_type, last_last_text, indent_string;
- var flags, previous_flags, flag_store;
- var prefix;
-
- var handlers, opt;
- var baseIndentString = '';
-
- handlers = {
- 'TK_START_EXPR': handle_start_expr,
- 'TK_END_EXPR': handle_end_expr,
- 'TK_START_BLOCK': handle_start_block,
- 'TK_END_BLOCK': handle_end_block,
- 'TK_WORD': handle_word,
- 'TK_RESERVED': handle_word,
- 'TK_SEMICOLON': handle_semicolon,
- 'TK_STRING': handle_string,
- 'TK_EQUALS': handle_equals,
- 'TK_OPERATOR': handle_operator,
- 'TK_COMMA': handle_comma,
- 'TK_BLOCK_COMMENT': handle_block_comment,
- 'TK_COMMENT': handle_comment,
- 'TK_DOT': handle_dot,
- 'TK_UNKNOWN': handle_unknown,
- 'TK_EOF': handle_eof
- };
+function sanitizeOperatorPosition(opPosition) {
+ opPosition = opPosition || OPERATOR_POSITION.before_newline;
- function create_flags(flags_base, mode) {
- var next_indent_level = 0;
- if (flags_base) {
- next_indent_level = flags_base.indentation_level;
- if (!output.just_added_newline() &&
- flags_base.line_indent_level > next_indent_level) {
- next_indent_level = flags_base.line_indent_level;
- }
- }
+ if (!in_array(opPosition, validPositionValues)) {
+ throw new Error("Invalid Option Value: The option 'operator_position' must be one of the following values\n" +
+ validPositionValues +
+ "\nYou passed in: '" + opPosition + "'");
+ }
- var next_flags = {
- mode: mode,
- parent: flags_base,
- last_text: flags_base ? flags_base.last_text : '', // last token text
- last_word: flags_base ? flags_base.last_word : '', // last 'TK_WORD' passed
- declaration_statement: false,
- declaration_assignment: false,
- multiline_frame: false,
- inline_frame: false,
- if_block: false,
- else_block: false,
- do_block: false,
- do_while: false,
- import_block: false,
- in_case_statement: false, // switch(..){ INSIDE HERE }
- in_case: false, // we're on the exact line with "case 0:"
- case_body: false, // the indented case-action block
- indentation_level: next_indent_level,
- line_indent_level: flags_base ? flags_base.line_indent_level : next_indent_level,
- start_line_index: output.get_line_number(),
- ternary_depth: 0
- };
- return next_flags;
- }
+ return opPosition;
+}
- // Some interpreters have unexpected results with foo = baz || bar;
- options = options ? options : {};
+var validPositionValues = ['before-newline', 'after-newline', 'preserve-newline'];
- // Allow the setting of language/file-type specific options
- // with inheritance of overall settings
- options = mergeOpts(options, 'js');
+// Generate map from array
+var OPERATOR_POSITION = generateMapFromStrings(validPositionValues);
- opt = {};
+var OPERATOR_POSITION_BEFORE_OR_PRESERVE = [OPERATOR_POSITION.before_newline, OPERATOR_POSITION.preserve_newline];
- // compatibility, re
- if (options.brace_style === "expand-strict") { //graceful handling of deprecated option
- options.brace_style = "expand";
- } else if (options.brace_style === "collapse-preserve-inline") { //graceful handling of deprecated option
- options.brace_style = "collapse,preserve-inline";
- } else if (options.braces_on_own_line !== undefined) { //graceful handling of deprecated option
- options.brace_style = options.braces_on_own_line ? "expand" : "collapse";
- } else if (!options.brace_style) //Nothing exists to set it
- {
- options.brace_style = "collapse";
- }
+var MODE = {
+ BlockStatement: 'BlockStatement', // 'BLOCK'
+ Statement: 'Statement', // 'STATEMENT'
+ ObjectLiteral: 'ObjectLiteral', // 'OBJECT',
+ ArrayLiteral: 'ArrayLiteral', //'[EXPRESSION]',
+ ForInitializer: 'ForInitializer', //'(FOR-EXPRESSION)',
+ Conditional: 'Conditional', //'(COND-EXPRESSION)',
+ Expression: 'Expression' //'(EXPRESSION)'
+};
+function Beautifier(js_source_text, options) {
+ "use strict";
+ var output;
+ var tokens = [],
+ token_pos;
+ var tokenizer;
+ var current_token;
+ var last_type, last_last_text, indent_string;
+ var flags, previous_flags, flag_store;
+ var prefix;
+
+ var handlers, opt;
+ var baseIndentString = '';
+
+ handlers = {
+ 'TK_START_EXPR': handle_start_expr,
+ 'TK_END_EXPR': handle_end_expr,
+ 'TK_START_BLOCK': handle_start_block,
+ 'TK_END_BLOCK': handle_end_block,
+ 'TK_WORD': handle_word,
+ 'TK_RESERVED': handle_word,
+ 'TK_SEMICOLON': handle_semicolon,
+ 'TK_STRING': handle_string,
+ 'TK_EQUALS': handle_equals,
+ 'TK_OPERATOR': handle_operator,
+ 'TK_COMMA': handle_comma,
+ 'TK_BLOCK_COMMENT': handle_block_comment,
+ 'TK_COMMENT': handle_comment,
+ 'TK_DOT': handle_dot,
+ 'TK_UNKNOWN': handle_unknown,
+ 'TK_EOF': handle_eof
+ };
- var brace_style_split = options.brace_style.split(/[^a-zA-Z0-9_\-]+/);
- opt.brace_style = brace_style_split[0];
- opt.brace_preserve_inline = brace_style_split[1] ? brace_style_split[1] : false;
-
- opt.indent_size = options.indent_size ? parseInt(options.indent_size, 10) : 4;
- opt.indent_char = options.indent_char ? options.indent_char : ' ';
- opt.eol = options.eol ? options.eol : 'auto';
- opt.preserve_newlines = (options.preserve_newlines === undefined) ? true : options.preserve_newlines;
- opt.break_chained_methods = (options.break_chained_methods === undefined) ? false : options.break_chained_methods;
- opt.max_preserve_newlines = (options.max_preserve_newlines === undefined) ? 0 : parseInt(options.max_preserve_newlines, 10);
- opt.space_in_paren = (options.space_in_paren === undefined) ? false : options.space_in_paren;
- opt.space_in_empty_paren = (options.space_in_empty_paren === undefined) ? false : options.space_in_empty_paren;
- opt.jslint_happy = (options.jslint_happy === undefined) ? false : options.jslint_happy;
- opt.space_after_anon_function = (options.space_after_anon_function === undefined) ? false : options.space_after_anon_function;
- opt.keep_array_indentation = (options.keep_array_indentation === undefined) ? false : options.keep_array_indentation;
- opt.space_before_conditional = (options.space_before_conditional === undefined) ? true : options.space_before_conditional;
- opt.unescape_strings = (options.unescape_strings === undefined) ? false : options.unescape_strings;
- opt.wrap_line_length = (options.wrap_line_length === undefined) ? 0 : parseInt(options.wrap_line_length, 10);
- opt.e4x = (options.e4x === undefined) ? false : options.e4x;
- opt.end_with_newline = (options.end_with_newline === undefined) ? false : options.end_with_newline;
- opt.comma_first = (options.comma_first === undefined) ? false : options.comma_first;
- opt.operator_position = sanitizeOperatorPosition(options.operator_position);
-
- // For testing of beautify ignore:start directive
- opt.test_output_raw = (options.test_output_raw === undefined) ? false : options.test_output_raw;
-
- // force opt.space_after_anon_function to true if opt.jslint_happy
- if (opt.jslint_happy) {
- opt.space_after_anon_function = true;
+ function create_flags(flags_base, mode) {
+ var next_indent_level = 0;
+ if (flags_base) {
+ next_indent_level = flags_base.indentation_level;
+ if (!output.just_added_newline() &&
+ flags_base.line_indent_level > next_indent_level) {
+ next_indent_level = flags_base.line_indent_level;
}
+ }
- if (options.indent_with_tabs) {
- opt.indent_char = '\t';
- opt.indent_size = 1;
- }
+ var next_flags = {
+ mode: mode,
+ parent: flags_base,
+ last_text: flags_base ? flags_base.last_text : '', // last token text
+ last_word: flags_base ? flags_base.last_word : '', // last 'TK_WORD' passed
+ declaration_statement: false,
+ declaration_assignment: false,
+ multiline_frame: false,
+ inline_frame: false,
+ if_block: false,
+ else_block: false,
+ do_block: false,
+ do_while: false,
+ import_block: false,
+ in_case_statement: false, // switch(..){ INSIDE HERE }
+ in_case: false, // we're on the exact line with "case 0:"
+ case_body: false, // the indented case-action block
+ indentation_level: next_indent_level,
+ line_indent_level: flags_base ? flags_base.line_indent_level : next_indent_level,
+ start_line_index: output.get_line_number(),
+ ternary_depth: 0
+ };
+ return next_flags;
+ }
- if (opt.eol === 'auto') {
- opt.eol = '\n';
- if (js_source_text && acorn.lineBreak.test(js_source_text || '')) {
- opt.eol = js_source_text.match(acorn.lineBreak)[0];
- }
- }
+ // Some interpreters have unexpected results with foo = baz || bar;
+ options = options ? options : {};
- opt.eol = opt.eol.replace(/\\r/, '\r').replace(/\\n/, '\n');
+ // Allow the setting of language/file-type specific options
+ // with inheritance of overall settings
+ options = mergeOpts(options, 'js');
- //----------------------------------
- indent_string = '';
- while (opt.indent_size > 0) {
- indent_string += opt.indent_char;
- opt.indent_size -= 1;
- }
+ opt = {};
- var preindent_index = 0;
- if (js_source_text && js_source_text.length) {
- while ((js_source_text.charAt(preindent_index) === ' ' ||
- js_source_text.charAt(preindent_index) === '\t')) {
- baseIndentString += js_source_text.charAt(preindent_index);
- preindent_index += 1;
- }
- js_source_text = js_source_text.substring(preindent_index);
- }
+ // compatibility, re
+ if (options.brace_style === "expand-strict") { //graceful handling of deprecated option
+ options.brace_style = "expand";
+ } else if (options.brace_style === "collapse-preserve-inline") { //graceful handling of deprecated option
+ options.brace_style = "collapse,preserve-inline";
+ } else if (options.braces_on_own_line !== undefined) { //graceful handling of deprecated option
+ options.brace_style = options.braces_on_own_line ? "expand" : "collapse";
+ } else if (!options.brace_style) //Nothing exists to set it
+ {
+ options.brace_style = "collapse";
+ }
- last_type = 'TK_START_BLOCK'; // last token type
- last_last_text = ''; // pre-last token text
- output = new Output(indent_string, baseIndentString);
-
- // If testing the ignore directive, start with output disable set to true
- output.raw = opt.test_output_raw;
-
-
- // Stack of parsing/formatting states, including MODE.
- // We tokenize, parse, and output in an almost purely a forward-only stream of token input
- // and formatted output. This makes the beautifier less accurate than full parsers
- // but also far more tolerant of syntax errors.
- //
- // For example, the default mode is MODE.BlockStatement. If we see a '{' we push a new frame of type
- // MODE.BlockStatement on the the stack, even though it could be object literal. If we later
- // encounter a ":", we'll switch to to MODE.ObjectLiteral. If we then see a ";",
- // most full parsers would die, but the beautifier gracefully falls back to
- // MODE.BlockStatement and continues on.
- flag_store = [];
- set_mode(MODE.BlockStatement);
- this.beautify = function() {
+ var brace_style_split = options.brace_style.split(/[^a-zA-Z0-9_\-]+/);
+ opt.brace_style = brace_style_split[0];
+ opt.brace_preserve_inline = brace_style_split[1] ? brace_style_split[1] : false;
- /*jshint onevar:true */
- var sweet_code;
- Tokenizer = new tokenizer(js_source_text, opt, indent_string);
- tokens = Tokenizer.tokenize();
- token_pos = 0;
+ opt.indent_size = options.indent_size ? parseInt(options.indent_size, 10) : 4;
+ opt.indent_char = options.indent_char ? options.indent_char : ' ';
+ opt.eol = options.eol ? options.eol : 'auto';
+ opt.preserve_newlines = (options.preserve_newlines === undefined) ? true : options.preserve_newlines;
+ opt.unindent_chained_methods = (options.unindent_chained_methods === undefined) ? false : options.unindent_chained_methods;
+ opt.break_chained_methods = (options.break_chained_methods === undefined) ? false : options.break_chained_methods;
+ opt.max_preserve_newlines = (options.max_preserve_newlines === undefined) ? 0 : parseInt(options.max_preserve_newlines, 10);
+ opt.space_in_paren = (options.space_in_paren === undefined) ? false : options.space_in_paren;
+ opt.space_in_empty_paren = (options.space_in_empty_paren === undefined) ? false : options.space_in_empty_paren;
+ opt.jslint_happy = (options.jslint_happy === undefined) ? false : options.jslint_happy;
+ opt.space_after_anon_function = (options.space_after_anon_function === undefined) ? false : options.space_after_anon_function;
+ opt.keep_array_indentation = (options.keep_array_indentation === undefined) ? false : options.keep_array_indentation;
+ opt.space_before_conditional = (options.space_before_conditional === undefined) ? true : options.space_before_conditional;
+ opt.unescape_strings = (options.unescape_strings === undefined) ? false : options.unescape_strings;
+ opt.wrap_line_length = (options.wrap_line_length === undefined) ? 0 : parseInt(options.wrap_line_length, 10);
+ opt.e4x = (options.e4x === undefined) ? false : options.e4x;
+ opt.end_with_newline = (options.end_with_newline === undefined) ? false : options.end_with_newline;
+ opt.comma_first = (options.comma_first === undefined) ? false : options.comma_first;
+ opt.operator_position = sanitizeOperatorPosition(options.operator_position);
- current_token = get_token();
- while (current_token) {
- handlers[current_token.type]();
+ // For testing of beautify ignore:start directive
+ opt.test_output_raw = (options.test_output_raw === undefined) ? false : options.test_output_raw;
- last_last_text = flags.last_text;
- last_type = current_token.type;
- flags.last_text = current_token.text;
+ // force opt.space_after_anon_function to true if opt.jslint_happy
+ if (opt.jslint_happy) {
+ opt.space_after_anon_function = true;
+ }
- token_pos += 1;
- current_token = get_token();
- }
+ if (options.indent_with_tabs) {
+ opt.indent_char = '\t';
+ opt.indent_size = 1;
+ }
- sweet_code = output.get_code();
- if (opt.end_with_newline) {
- sweet_code += '\n';
- }
+ if (opt.eol === 'auto') {
+ opt.eol = '\n';
+ if (js_source_text && acorn.lineBreak.test(js_source_text || '')) {
+ opt.eol = js_source_text.match(acorn.lineBreak)[0];
+ }
+ }
- if (opt.eol !== '\n') {
- sweet_code = sweet_code.replace(/[\n]/g, opt.eol);
- }
+ opt.eol = opt.eol.replace(/\\r/, '\r').replace(/\\n/, '\n');
- return sweet_code;
- };
+ //----------------------------------
+ indent_string = '';
+ while (opt.indent_size > 0) {
+ indent_string += opt.indent_char;
+ opt.indent_size -= 1;
+ }
- function handle_whitespace_and_comments(local_token, preserve_statement_flags) {
- var newlines = local_token.newlines;
- var keep_whitespace = opt.keep_array_indentation && is_array(flags.mode);
- var temp_token = current_token;
-
- for (var h = 0; h < local_token.comments_before.length; h++) {
- // The cleanest handling of inline comments is to treat them as though they aren't there.
- // Just continue formatting and the behavior should be logical.
- // Also ignore unknown tokens. Again, this should result in better behavior.
- current_token = local_token.comments_before[h];
- handle_whitespace_and_comments(current_token, preserve_statement_flags);
- handlers[current_token.type](preserve_statement_flags);
- }
- current_token = temp_token;
+ var preindent_index = 0;
+ if (js_source_text && js_source_text.length) {
+ while ((js_source_text.charAt(preindent_index) === ' ' ||
+ js_source_text.charAt(preindent_index) === '\t')) {
+ preindent_index += 1;
+ }
+ baseIndentString = js_source_text.substring(0, preindent_index);
+ js_source_text = js_source_text.substring(preindent_index);
+ }
- if (keep_whitespace) {
- for (var i = 0; i < newlines; i += 1) {
- print_newline(i > 0, preserve_statement_flags);
- }
- } else {
- if (opt.max_preserve_newlines && newlines > opt.max_preserve_newlines) {
- newlines = opt.max_preserve_newlines;
- }
+ last_type = 'TK_START_BLOCK'; // last token type
+ last_last_text = ''; // pre-last token text
+ output = new Output(indent_string, baseIndentString);
- if (opt.preserve_newlines) {
- if (local_token.newlines > 1) {
- print_newline(false, preserve_statement_flags);
- for (var j = 1; j < newlines; j += 1) {
- print_newline(true, preserve_statement_flags);
- }
- }
- }
- }
+ // If testing the ignore directive, start with output disable set to true
+ output.raw = opt.test_output_raw;
- }
- // we could use just string.split, but
- // IE doesn't like returning empty strings
- function split_linebreaks(s) {
- //return s.split(/\x0d\x0a|\x0a/);
-
- s = s.replace(acorn.allLineBreaks, '\n');
- var out = [],
- idx = s.indexOf("\n");
- while (idx !== -1) {
- out.push(s.substring(0, idx));
- s = s.substring(idx + 1);
- idx = s.indexOf("\n");
- }
- if (s.length) {
- out.push(s);
- }
- return out;
- }
+ // Stack of parsing/formatting states, including MODE.
+ // We tokenize, parse, and output in an almost purely a forward-only stream of token input
+ // and formatted output. This makes the beautifier less accurate than full parsers
+ // but also far more tolerant of syntax errors.
+ //
+ // For example, the default mode is MODE.BlockStatement. If we see a '{' we push a new frame of type
+ // MODE.BlockStatement on the the stack, even though it could be object literal. If we later
+ // encounter a ":", we'll switch to to MODE.ObjectLiteral. If we then see a ";",
+ // most full parsers would die, but the beautifier gracefully falls back to
+ // MODE.BlockStatement and continues on.
+ flag_store = [];
+ set_mode(MODE.BlockStatement);
- var newline_restricted_tokens = ['break', 'continue', 'return', 'throw'];
+ this.beautify = function() {
- function allow_wrap_or_preserved_newline(force_linewrap) {
- force_linewrap = (force_linewrap === undefined) ? false : force_linewrap;
+ /*jshint onevar:true */
+ var sweet_code;
+ tokenizer = new Tokenizer(js_source_text, opt, indent_string);
+ tokens = tokenizer.tokenize();
+ token_pos = 0;
- // Never wrap the first token on a line
- if (output.just_added_newline()) {
- return;
- }
+ current_token = get_token();
+ while (current_token) {
+ handlers[current_token.type]();
- var shouldPreserveOrForce = (opt.preserve_newlines && current_token.wanted_newline) || force_linewrap;
- var operatorLogicApplies = in_array(flags.last_text, Tokenizer.positionable_operators) || in_array(current_token.text, Tokenizer.positionable_operators);
+ last_last_text = flags.last_text;
+ last_type = current_token.type;
+ flags.last_text = current_token.text;
- if (operatorLogicApplies) {
- var shouldPrintOperatorNewline = (
- in_array(flags.last_text, Tokenizer.positionable_operators) &&
- in_array(opt.operator_position, OPERATOR_POSITION_BEFORE_OR_PRESERVE)
- ) ||
- in_array(current_token.text, Tokenizer.positionable_operators);
- shouldPreserveOrForce = shouldPreserveOrForce && shouldPrintOperatorNewline;
- }
+ token_pos += 1;
+ current_token = get_token();
+ }
- if (shouldPreserveOrForce) {
- print_newline(false, true);
- } else if (opt.wrap_line_length) {
- if (last_type === 'TK_RESERVED' && in_array(flags.last_text, newline_restricted_tokens)) {
- // These tokens should never have a newline inserted
- // between them and the following expression.
- return;
- }
- var proposed_line_length = output.current_line.get_character_count() + current_token.text.length +
- (output.space_before_token ? 1 : 0);
- if (proposed_line_length >= opt.wrap_line_length) {
- print_newline(false, true);
- }
- }
- }
+ sweet_code = output.get_code(opt.end_with_newline, opt.eol);
- function print_newline(force_newline, preserve_statement_flags) {
- if (!preserve_statement_flags) {
- if (flags.last_text !== ';' && flags.last_text !== ',' && flags.last_text !== '=' && last_type !== 'TK_OPERATOR') {
- var next_token = get_token(1);
- while (flags.mode === MODE.Statement &&
- !(flags.if_block && next_token && next_token.type === 'TK_RESERVED' && next_token.text === 'else') &&
- !flags.do_block) {
- restore_mode();
- }
- }
- }
+ return sweet_code;
+ };
- if (output.add_new_line(force_newline)) {
- flags.multiline_frame = true;
- }
+ function handle_whitespace_and_comments(local_token, preserve_statement_flags) {
+ var newlines = local_token.newlines;
+ var keep_whitespace = opt.keep_array_indentation && is_array(flags.mode);
+ var temp_token = current_token;
+
+ for (var h = 0; h < local_token.comments_before.length; h++) {
+ // The cleanest handling of inline comments is to treat them as though they aren't there.
+ // Just continue formatting and the behavior should be logical.
+ // Also ignore unknown tokens. Again, this should result in better behavior.
+ current_token = local_token.comments_before[h];
+ handle_whitespace_and_comments(current_token, preserve_statement_flags);
+ handlers[current_token.type](preserve_statement_flags);
+ }
+ current_token = temp_token;
+
+ if (keep_whitespace) {
+ for (var i = 0; i < newlines; i += 1) {
+ print_newline(i > 0, preserve_statement_flags);
+ }
+ } else {
+ if (opt.max_preserve_newlines && newlines > opt.max_preserve_newlines) {
+ newlines = opt.max_preserve_newlines;
}
- function print_token_line_indentation() {
- if (output.just_added_newline()) {
- if (opt.keep_array_indentation && is_array(flags.mode) && current_token.wanted_newline) {
- output.current_line.push(current_token.whitespace_before);
- output.space_before_token = false;
- } else if (output.set_indent(flags.indentation_level)) {
- flags.line_indent_level = flags.indentation_level;
+ if (opt.preserve_newlines) {
+ if (local_token.newlines > 1) {
+ print_newline(false, preserve_statement_flags);
+ for (var j = 1; j < newlines; j += 1) {
+ print_newline(true, preserve_statement_flags);
}
}
}
+ }
- function print_token(printable_token) {
- if (output.raw) {
- output.add_raw_token(current_token);
- return;
- }
+ }
- if (opt.comma_first && last_type === 'TK_COMMA' &&
- output.just_added_newline()) {
- if (output.previous_line.last() === ',') {
- var popped = output.previous_line.pop();
- // if the comma was already at the start of the line,
- // pull back onto that line and reprint the indentation
- if (output.previous_line.is_empty()) {
- output.previous_line.push(popped);
- output.trim(true);
- output.current_line.pop();
- output.trim();
- }
+ // we could use just string.split, but
+ // IE doesn't like returning empty strings
+ function split_linebreaks(s) {
+ //return s.split(/\x0d\x0a|\x0a/);
- // add the comma in front of the next token
- print_token_line_indentation();
- output.add_token(',');
- output.space_before_token = true;
- }
- }
+ s = s.replace(acorn.allLineBreaks, '\n');
+ var out = [],
+ idx = s.indexOf("\n");
+ while (idx !== -1) {
+ out.push(s.substring(0, idx));
+ s = s.substring(idx + 1);
+ idx = s.indexOf("\n");
+ }
+ if (s.length) {
+ out.push(s);
+ }
+ return out;
+ }
- printable_token = printable_token || current_token.text;
- print_token_line_indentation();
- output.add_token(printable_token);
- }
+ var newline_restricted_tokens = ['break', 'continue', 'return', 'throw', 'yield'];
- function indent() {
- flags.indentation_level += 1;
- }
+ function allow_wrap_or_preserved_newline(force_linewrap) {
+ force_linewrap = (force_linewrap === undefined) ? false : force_linewrap;
- function deindent() {
- if (flags.indentation_level > 0 &&
- ((!flags.parent) || flags.indentation_level > flags.parent.indentation_level)) {
- flags.indentation_level -= 1;
+ // Never wrap the first token on a line
+ if (output.just_added_newline()) {
+ return;
+ }
- }
- }
+ var shouldPreserveOrForce = (opt.preserve_newlines && current_token.wanted_newline) || force_linewrap;
+ var operatorLogicApplies = in_array(flags.last_text, tokenizer.positionable_operators) || in_array(current_token.text, tokenizer.positionable_operators);
- function set_mode(mode) {
- if (flags) {
- flag_store.push(flags);
- previous_flags = flags;
- } else {
- previous_flags = create_flags(null, mode);
- }
+ if (operatorLogicApplies) {
+ var shouldPrintOperatorNewline = (
+ in_array(flags.last_text, tokenizer.positionable_operators) &&
+ in_array(opt.operator_position, OPERATOR_POSITION_BEFORE_OR_PRESERVE)
+ ) ||
+ in_array(current_token.text, tokenizer.positionable_operators);
+ shouldPreserveOrForce = shouldPreserveOrForce && shouldPrintOperatorNewline;
+ }
- flags = create_flags(previous_flags, mode);
+ if (shouldPreserveOrForce) {
+ print_newline(false, true);
+ } else if (opt.wrap_line_length) {
+ if (last_type === 'TK_RESERVED' && in_array(flags.last_text, newline_restricted_tokens)) {
+ // These tokens should never have a newline inserted
+ // between them and the following expression.
+ return;
}
+ var proposed_line_length = output.current_line.get_character_count() + current_token.text.length +
+ (output.space_before_token ? 1 : 0);
+ if (proposed_line_length >= opt.wrap_line_length) {
+ print_newline(false, true);
+ }
+ }
+ }
- function is_array(mode) {
- return mode === MODE.ArrayLiteral;
+ function print_newline(force_newline, preserve_statement_flags) {
+ if (!preserve_statement_flags) {
+ if (flags.last_text !== ';' && flags.last_text !== ',' && flags.last_text !== '=' && last_type !== 'TK_OPERATOR') {
+ var next_token = get_token(1);
+ while (flags.mode === MODE.Statement &&
+ !(flags.if_block && next_token && next_token.type === 'TK_RESERVED' && next_token.text === 'else') &&
+ !flags.do_block) {
+ restore_mode();
+ }
}
+ }
+
+ if (output.add_new_line(force_newline)) {
+ flags.multiline_frame = true;
+ }
+ }
- function is_expression(mode) {
- return in_array(mode, [MODE.Expression, MODE.ForInitializer, MODE.Conditional]);
+ function print_token_line_indentation() {
+ if (output.just_added_newline()) {
+ if (opt.keep_array_indentation && is_array(flags.mode) && current_token.wanted_newline) {
+ output.current_line.push(current_token.whitespace_before);
+ output.space_before_token = false;
+ } else if (output.set_indent(flags.indentation_level)) {
+ flags.line_indent_level = flags.indentation_level;
}
+ }
+ }
- function restore_mode() {
- if (flag_store.length > 0) {
- previous_flags = flags;
- flags = flag_store.pop();
- if (previous_flags.mode === MODE.Statement) {
- output.remove_redundant_indentation(previous_flags);
- }
+ function print_token(printable_token) {
+ if (output.raw) {
+ output.add_raw_token(current_token);
+ return;
+ }
+
+ if (opt.comma_first && last_type === 'TK_COMMA' &&
+ output.just_added_newline()) {
+ if (output.previous_line.last() === ',') {
+ var popped = output.previous_line.pop();
+ // if the comma was already at the start of the line,
+ // pull back onto that line and reprint the indentation
+ if (output.previous_line.is_empty()) {
+ output.previous_line.push(popped);
+ output.trim(true);
+ output.current_line.pop();
+ output.trim();
}
- }
- function start_of_object_property() {
- return flags.parent.mode === MODE.ObjectLiteral && flags.mode === MODE.Statement && (
- (flags.last_text === ':' && flags.ternary_depth === 0) || (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['get', 'set'])));
+ // add the comma in front of the next token
+ print_token_line_indentation();
+ output.add_token(',');
+ output.space_before_token = true;
}
+ }
- function start_of_statement() {
- if (
- (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['var', 'let', 'const']) && current_token.type === 'TK_WORD') ||
- (last_type === 'TK_RESERVED' && flags.last_text === 'do') ||
- (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['return', 'throw']) && !current_token.wanted_newline) ||
- (last_type === 'TK_RESERVED' && flags.last_text === 'else' &&
- !(current_token.type === 'TK_RESERVED' && current_token.text === 'if' && !current_token.comments_before.length)) ||
- (last_type === 'TK_END_EXPR' && (previous_flags.mode === MODE.ForInitializer || previous_flags.mode === MODE.Conditional)) ||
- (last_type === 'TK_WORD' && flags.mode === MODE.BlockStatement &&
- !flags.in_case &&
- !(current_token.text === '--' || current_token.text === '++') &&
- last_last_text !== 'function' &&
- current_token.type !== 'TK_WORD' && current_token.type !== 'TK_RESERVED') ||
- (flags.mode === MODE.ObjectLiteral && (
- (flags.last_text === ':' && flags.ternary_depth === 0) || (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['get', 'set']))))
- ) {
+ printable_token = printable_token || current_token.text;
+ print_token_line_indentation();
+ output.add_token(printable_token);
+ }
- set_mode(MODE.Statement);
- indent();
+ function indent() {
+ flags.indentation_level += 1;
+ }
- handle_whitespace_and_comments(current_token, true);
+ function deindent() {
+ if (flags.indentation_level > 0 &&
+ ((!flags.parent) || flags.indentation_level > flags.parent.indentation_level)) {
+ flags.indentation_level -= 1;
- // Issue #276:
- // If starting a new statement with [if, for, while, do], push to a new line.
- // if (a) if (b) if(c) d(); else e(); else f();
- if (!start_of_object_property()) {
- allow_wrap_or_preserved_newline(
- current_token.type === 'TK_RESERVED' && in_array(current_token.text, ['do', 'for', 'if', 'while']));
- }
+ }
+ }
- return true;
- }
- return false;
- }
+ function set_mode(mode) {
+ if (flags) {
+ flag_store.push(flags);
+ previous_flags = flags;
+ } else {
+ previous_flags = create_flags(null, mode);
+ }
- function all_lines_start_with(lines, c) {
- for (var i = 0; i < lines.length; i++) {
- var line = trim(lines[i]);
- if (line.charAt(0) !== c) {
- return false;
- }
- }
- return true;
- }
+ flags = create_flags(previous_flags, mode);
+ }
- function each_line_matches_indent(lines, indent) {
- var i = 0,
- len = lines.length,
- line;
- for (; i < len; i++) {
- line = lines[i];
- // allow empty lines to pass through
- if (line && line.indexOf(indent) !== 0) {
- return false;
- }
- }
- return true;
- }
+ function is_array(mode) {
+ return mode === MODE.ArrayLiteral;
+ }
+
+ function is_expression(mode) {
+ return in_array(mode, [MODE.Expression, MODE.ForInitializer, MODE.Conditional]);
+ }
- function is_special_word(word) {
- return in_array(word, ['case', 'return', 'do', 'if', 'throw', 'else']);
+ function restore_mode() {
+ if (flag_store.length > 0) {
+ previous_flags = flags;
+ flags = flag_store.pop();
+ if (previous_flags.mode === MODE.Statement && !opt.unindent_chained_methods) {
+ remove_redundant_indentation(output, previous_flags);
}
+ }
+ }
+
+ function start_of_object_property() {
+ return flags.parent.mode === MODE.ObjectLiteral && flags.mode === MODE.Statement && (
+ (flags.last_text === ':' && flags.ternary_depth === 0) || (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['get', 'set'])));
+ }
- function get_token(offset) {
- var index = token_pos + (offset || 0);
- return (index < 0 || index >= tokens.length) ? null : tokens[index];
+ function start_of_statement() {
+ if (
+ (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['var', 'let', 'const']) && current_token.type === 'TK_WORD') ||
+ (last_type === 'TK_RESERVED' && flags.last_text === 'do') ||
+ (last_type === 'TK_RESERVED' && in_array(flags.last_text, newline_restricted_tokens) && !current_token.wanted_newline) ||
+ (last_type === 'TK_RESERVED' && flags.last_text === 'else' &&
+ !(current_token.type === 'TK_RESERVED' && current_token.text === 'if' && !current_token.comments_before.length)) ||
+ (last_type === 'TK_END_EXPR' && (previous_flags.mode === MODE.ForInitializer || previous_flags.mode === MODE.Conditional)) ||
+ (last_type === 'TK_WORD' && flags.mode === MODE.BlockStatement &&
+ !flags.in_case &&
+ !(current_token.text === '--' || current_token.text === '++') &&
+ last_last_text !== 'function' &&
+ current_token.type !== 'TK_WORD' && current_token.type !== 'TK_RESERVED') ||
+ (flags.mode === MODE.ObjectLiteral && (
+ (flags.last_text === ':' && flags.ternary_depth === 0) || (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['get', 'set']))))
+ ) {
+
+ set_mode(MODE.Statement);
+ if (!opt.unindent_chained_methods) {
+ indent();
}
- function handle_start_expr() {
- // The conditional starts the statement if appropriate.
- if (!start_of_statement()) {
- handle_whitespace_and_comments(current_token);
- }
+ handle_whitespace_and_comments(current_token, true);
- var next_mode = MODE.Expression;
- if (current_token.text === '[') {
+ // Issue #276:
+ // If starting a new statement with [if, for, while, do], push to a new line.
+ // if (a) if (b) if(c) d(); else e(); else f();
+ if (!start_of_object_property()) {
+ allow_wrap_or_preserved_newline(
+ current_token.type === 'TK_RESERVED' && in_array(current_token.text, ['do', 'for', 'if', 'while']));
+ }
- if (last_type === 'TK_WORD' || flags.last_text === ')') {
- // this is array index specifier, break immediately
- // a[x], fn()[x]
- if (last_type === 'TK_RESERVED' && in_array(flags.last_text, Tokenizer.line_starters)) {
- output.space_before_token = true;
- }
- set_mode(next_mode);
- print_token();
- indent();
- if (opt.space_in_paren) {
- output.space_before_token = true;
- }
- return;
- }
+ return true;
+ }
+ return false;
+ }
- next_mode = MODE.ArrayLiteral;
- if (is_array(flags.mode)) {
- if (flags.last_text === '[' ||
- (flags.last_text === ',' && (last_last_text === ']' || last_last_text === '}'))) {
- // ], [ goes to new line
- // }, [ goes to new line
- if (!opt.keep_array_indentation) {
- print_newline();
- }
- }
- }
+ function all_lines_start_with(lines, c) {
+ for (var i = 0; i < lines.length; i++) {
+ var line = trim(lines[i]);
+ if (line.charAt(0) !== c) {
+ return false;
+ }
+ }
+ return true;
+ }
- } else {
- if (last_type === 'TK_RESERVED' && flags.last_text === 'for') {
- next_mode = MODE.ForInitializer;
- } else if (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['if', 'while'])) {
- next_mode = MODE.Conditional;
- } else {
- // next_mode = MODE.Expression;
- }
- }
+ function each_line_matches_indent(lines, indent) {
+ var i = 0,
+ len = lines.length,
+ line;
+ for (; i < len; i++) {
+ line = lines[i];
+ // allow empty lines to pass through
+ if (line && line.indexOf(indent) !== 0) {
+ return false;
+ }
+ }
+ return true;
+ }
- if (flags.last_text === ';' || last_type === 'TK_START_BLOCK') {
- print_newline();
- } else if (last_type === 'TK_END_EXPR' || last_type === 'TK_START_EXPR' || last_type === 'TK_END_BLOCK' || flags.last_text === '.') {
- // TODO: Consider whether forcing this is required. Review failing tests when removed.
- allow_wrap_or_preserved_newline(current_token.wanted_newline);
- // do nothing on (( and )( and ][ and ]( and .(
- } else if (!(last_type === 'TK_RESERVED' && current_token.text === '(') && last_type !== 'TK_WORD' && last_type !== 'TK_OPERATOR') {
- output.space_before_token = true;
- } else if ((last_type === 'TK_RESERVED' && (flags.last_word === 'function' || flags.last_word === 'typeof')) ||
- (flags.last_text === '*' &&
- (in_array(last_last_text, ['function', 'yield']) ||
- (flags.mode === MODE.ObjectLiteral && in_array(last_last_text, ['{', ',']))))) {
- // function() vs function ()
- // yield*() vs yield* ()
- // function*() vs function* ()
- if (opt.space_after_anon_function) {
- output.space_before_token = true;
- }
- } else if (last_type === 'TK_RESERVED' && (in_array(flags.last_text, Tokenizer.line_starters) || flags.last_text === 'catch')) {
- if (opt.space_before_conditional) {
- output.space_before_token = true;
- }
- }
+ function is_special_word(word) {
+ return in_array(word, ['case', 'return', 'do', 'if', 'throw', 'else']);
+ }
- // Should be a space between await and an IIFE
- if (current_token.text === '(' && last_type === 'TK_RESERVED' && flags.last_word === 'await') {
- output.space_before_token = true;
- }
+ function get_token(offset) {
+ var index = token_pos + (offset || 0);
+ return (index < 0 || index >= tokens.length) ? null : tokens[index];
+ }
- // Support of this kind of newline preservation.
- // a = (b &&
- // (c || d));
- if (current_token.text === '(') {
- if (last_type === 'TK_EQUALS' || last_type === 'TK_OPERATOR') {
- if (!start_of_object_property()) {
- allow_wrap_or_preserved_newline();
- }
- }
- }
+ function handle_start_expr() {
+ // The conditional starts the statement if appropriate.
+ if (!start_of_statement()) {
+ handle_whitespace_and_comments(current_token);
+ }
- // Support preserving wrapped arrow function expressions
- // a.b('c',
- // () => d.e
- // )
- if (current_token.text === '(' && last_type !== 'TK_WORD' && last_type !== 'TK_RESERVED') {
- allow_wrap_or_preserved_newline();
- }
+ var next_mode = MODE.Expression;
+ if (current_token.text === '[') {
+ if (last_type === 'TK_WORD' || flags.last_text === ')') {
+ // this is array index specifier, break immediately
+ // a[x], fn()[x]
+ if (last_type === 'TK_RESERVED' && in_array(flags.last_text, tokenizer.line_starters)) {
+ output.space_before_token = true;
+ }
set_mode(next_mode);
print_token();
+ indent();
if (opt.space_in_paren) {
output.space_before_token = true;
}
-
- // In all cases, if we newline while inside an expression it should be indented.
- indent();
+ return;
}
- function handle_end_expr() {
- // statements inside expressions are not valid syntax, but...
- // statements must all be closed when their container closes
- while (flags.mode === MODE.Statement) {
- restore_mode();
+ next_mode = MODE.ArrayLiteral;
+ if (is_array(flags.mode)) {
+ if (flags.last_text === '[' ||
+ (flags.last_text === ',' && (last_last_text === ']' || last_last_text === '}'))) {
+ // ], [ goes to new line
+ // }, [ goes to new line
+ if (!opt.keep_array_indentation) {
+ print_newline();
+ }
}
+ }
- handle_whitespace_and_comments(current_token);
+ } else {
+ if (last_type === 'TK_RESERVED' && flags.last_text === 'for') {
+ next_mode = MODE.ForInitializer;
+ } else if (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['if', 'while'])) {
+ next_mode = MODE.Conditional;
+ } else {
+ // next_mode = MODE.Expression;
+ }
+ }
- if (flags.multiline_frame) {
- allow_wrap_or_preserved_newline(current_token.text === ']' && is_array(flags.mode) && !opt.keep_array_indentation);
- }
+ if (flags.last_text === ';' || last_type === 'TK_START_BLOCK') {
+ print_newline();
+ } else if (last_type === 'TK_END_EXPR' || last_type === 'TK_START_EXPR' || last_type === 'TK_END_BLOCK' || flags.last_text === '.') {
+ // TODO: Consider whether forcing this is required. Review failing tests when removed.
+ allow_wrap_or_preserved_newline(current_token.wanted_newline);
+ // do nothing on (( and )( and ][ and ]( and .(
+ } else if (!(last_type === 'TK_RESERVED' && current_token.text === '(') && last_type !== 'TK_WORD' && last_type !== 'TK_OPERATOR') {
+ output.space_before_token = true;
+ } else if ((last_type === 'TK_RESERVED' && (flags.last_word === 'function' || flags.last_word === 'typeof')) ||
+ (flags.last_text === '*' &&
+ (in_array(last_last_text, ['function', 'yield']) ||
+ (flags.mode === MODE.ObjectLiteral && in_array(last_last_text, ['{', ',']))))) {
+ // function() vs function ()
+ // yield*() vs yield* ()
+ // function*() vs function* ()
+ if (opt.space_after_anon_function) {
+ output.space_before_token = true;
+ }
+ } else if (last_type === 'TK_RESERVED' && (in_array(flags.last_text, tokenizer.line_starters) || flags.last_text === 'catch')) {
+ if (opt.space_before_conditional) {
+ output.space_before_token = true;
+ }
+ }
- if (opt.space_in_paren) {
- if (last_type === 'TK_START_EXPR' && !opt.space_in_empty_paren) {
- // () [] no inner space in empty parens like these, ever, ref #320
- output.trim();
- output.space_before_token = false;
- } else {
- output.space_before_token = true;
- }
- }
- if (current_token.text === ']' && opt.keep_array_indentation) {
- print_token();
- restore_mode();
- } else {
- restore_mode();
- print_token();
- }
- output.remove_redundant_indentation(previous_flags);
-
- // do {} while () // no statement required after
- if (flags.do_while && previous_flags.mode === MODE.Conditional) {
- previous_flags.mode = MODE.Expression;
- flags.do_block = false;
- flags.do_while = false;
+ // Should be a space between await and an IIFE, or async and an arrow function
+ if (current_token.text === '(' && last_type === 'TK_RESERVED' && in_array(flags.last_word, ['await', 'async'])) {
+ output.space_before_token = true;
+ }
+ // Support of this kind of newline preservation.
+ // a = (b &&
+ // (c || d));
+ if (current_token.text === '(') {
+ if (last_type === 'TK_EQUALS' || last_type === 'TK_OPERATOR') {
+ if (!start_of_object_property()) {
+ allow_wrap_or_preserved_newline();
}
}
+ }
- function handle_start_block() {
- handle_whitespace_and_comments(current_token);
+ // Support preserving wrapped arrow function expressions
+ // a.b('c',
+ // () => d.e
+ // )
+ if (current_token.text === '(' && last_type !== 'TK_WORD' && last_type !== 'TK_RESERVED') {
+ allow_wrap_or_preserved_newline();
+ }
- // Check if this is should be treated as a ObjectLiteral
- var next_token = get_token(1);
- var second_token = get_token(2);
- if (second_token && (
- (in_array(second_token.text, [':', ',']) && in_array(next_token.type, ['TK_STRING', 'TK_WORD', 'TK_RESERVED'])) ||
- (in_array(next_token.text, ['get', 'set', '...']) && in_array(second_token.type, ['TK_WORD', 'TK_RESERVED']))
- )) {
- // We don't support TypeScript,but we didn't break it for a very long time.
- // We'll try to keep not breaking it.
- if (!in_array(last_last_text, ['class', 'interface'])) {
- set_mode(MODE.ObjectLiteral);
- } else {
- set_mode(MODE.BlockStatement);
- }
- } else if (last_type === 'TK_OPERATOR' && flags.last_text === '=>') {
- // arrow function: (param1, paramN) => { statements }
- set_mode(MODE.BlockStatement);
- } else if (in_array(last_type, ['TK_EQUALS', 'TK_START_EXPR', 'TK_COMMA', 'TK_OPERATOR']) ||
- (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['return', 'throw', 'import', 'default']))
- ) {
- // Detecting shorthand function syntax is difficult by scanning forward,
- // so check the surrounding context.
- // If the block is being returned, imported, export default, passed as arg,
- // assigned with = or assigned in a nested object, treat as an ObjectLiteral.
- set_mode(MODE.ObjectLiteral);
- } else {
- set_mode(MODE.BlockStatement);
- }
+ set_mode(next_mode);
+ print_token();
+ if (opt.space_in_paren) {
+ output.space_before_token = true;
+ }
- var empty_braces = !next_token.comments_before.length && next_token.text === '}';
- var empty_anonymous_function = empty_braces && flags.last_word === 'function' &&
- last_type === 'TK_END_EXPR';
-
- if (opt.brace_preserve_inline) // check for inline, set inline_frame if so
- {
- // search forward for a newline wanted inside this block
- var index = 0;
- var check_token = null;
- flags.inline_frame = true;
- do {
- index += 1;
- check_token = get_token(index);
- if (check_token.wanted_newline) {
- flags.inline_frame = false;
- break;
- }
- } while (check_token.type !== 'TK_EOF' &&
- !(check_token.type === 'TK_END_BLOCK' && check_token.opened === current_token));
- }
+ // In all cases, if we newline while inside an expression it should be indented.
+ indent();
+ }
- if ((opt.brace_style === "expand" ||
- (opt.brace_style === "none" && current_token.wanted_newline)) &&
- !flags.inline_frame) {
- if (last_type !== 'TK_OPERATOR' &&
- (empty_anonymous_function ||
- last_type === 'TK_EQUALS' ||
- (last_type === 'TK_RESERVED' && is_special_word(flags.last_text) && flags.last_text !== 'else'))) {
- output.space_before_token = true;
- } else {
- print_newline(false, true);
- }
- } else { // collapse || inline_frame
- if (is_array(previous_flags.mode) && (last_type === 'TK_START_EXPR' || last_type === 'TK_COMMA')) {
- if (last_type === 'TK_COMMA' || opt.space_in_paren) {
- output.space_before_token = true;
- }
+ function handle_end_expr() {
+ // statements inside expressions are not valid syntax, but...
+ // statements must all be closed when their container closes
+ while (flags.mode === MODE.Statement) {
+ restore_mode();
+ }
- if (last_type === 'TK_COMMA' || (last_type === 'TK_START_EXPR' && flags.inline_frame)) {
- allow_wrap_or_preserved_newline();
- previous_flags.multiline_frame = previous_flags.multiline_frame || flags.multiline_frame;
- flags.multiline_frame = false;
- }
- }
- if (last_type !== 'TK_OPERATOR' && last_type !== 'TK_START_EXPR') {
- if (last_type === 'TK_START_BLOCK' && !flags.inline_frame) {
- print_newline();
- } else {
- output.space_before_token = true;
- }
- }
- }
- print_token();
- indent();
- }
+ handle_whitespace_and_comments(current_token);
- function handle_end_block() {
- // statements must all be closed when their container closes
- handle_whitespace_and_comments(current_token);
+ if (flags.multiline_frame) {
+ allow_wrap_or_preserved_newline(current_token.text === ']' && is_array(flags.mode) && !opt.keep_array_indentation);
+ }
- while (flags.mode === MODE.Statement) {
- restore_mode();
- }
+ if (opt.space_in_paren) {
+ if (last_type === 'TK_START_EXPR' && !opt.space_in_empty_paren) {
+ // () [] no inner space in empty parens like these, ever, ref #320
+ output.trim();
+ output.space_before_token = false;
+ } else {
+ output.space_before_token = true;
+ }
+ }
+ if (current_token.text === ']' && opt.keep_array_indentation) {
+ print_token();
+ restore_mode();
+ } else {
+ restore_mode();
+ print_token();
+ }
+ remove_redundant_indentation(output, previous_flags);
- var empty_braces = last_type === 'TK_START_BLOCK';
+ // do {} while () // no statement required after
+ if (flags.do_while && previous_flags.mode === MODE.Conditional) {
+ previous_flags.mode = MODE.Expression;
+ flags.do_block = false;
+ flags.do_while = false;
- if (flags.inline_frame && !empty_braces) { // try inline_frame (only set if opt.braces-preserve-inline) first
- output.space_before_token = true;
- } else if (opt.brace_style === "expand") {
- if (!empty_braces) {
- print_newline();
- }
- } else {
- // skip {}
- if (!empty_braces) {
- if (is_array(flags.mode) && opt.keep_array_indentation) {
- // we REALLY need a newline here, but newliner would skip that
- opt.keep_array_indentation = false;
- print_newline();
- opt.keep_array_indentation = true;
+ }
+ }
- } else {
- print_newline();
- }
- }
- }
- restore_mode();
- print_token();
+ function handle_start_block() {
+ handle_whitespace_and_comments(current_token);
+
+ // Check if this is should be treated as a ObjectLiteral
+ var next_token = get_token(1);
+ var second_token = get_token(2);
+ if (second_token && (
+ (in_array(second_token.text, [':', ',']) && in_array(next_token.type, ['TK_STRING', 'TK_WORD', 'TK_RESERVED'])) ||
+ (in_array(next_token.text, ['get', 'set', '...']) && in_array(second_token.type, ['TK_WORD', 'TK_RESERVED']))
+ )) {
+ // We don't support TypeScript,but we didn't break it for a very long time.
+ // We'll try to keep not breaking it.
+ if (!in_array(last_last_text, ['class', 'interface'])) {
+ set_mode(MODE.ObjectLiteral);
+ } else {
+ set_mode(MODE.BlockStatement);
}
+ } else if (last_type === 'TK_OPERATOR' && flags.last_text === '=>') {
+ // arrow function: (param1, paramN) => { statements }
+ set_mode(MODE.BlockStatement);
+ } else if (in_array(last_type, ['TK_EQUALS', 'TK_START_EXPR', 'TK_COMMA', 'TK_OPERATOR']) ||
+ (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['return', 'throw', 'import', 'default']))
+ ) {
+ // Detecting shorthand function syntax is difficult by scanning forward,
+ // so check the surrounding context.
+ // If the block is being returned, imported, export default, passed as arg,
+ // assigned with = or assigned in a nested object, treat as an ObjectLiteral.
+ set_mode(MODE.ObjectLiteral);
+ } else {
+ set_mode(MODE.BlockStatement);
+ }
- function handle_word() {
- if (current_token.type === 'TK_RESERVED') {
- if (in_array(current_token.text, ['set', 'get']) && flags.mode !== MODE.ObjectLiteral) {
- current_token.type = 'TK_WORD';
- } else if (in_array(current_token.text, ['as', 'from']) && !flags.import_block) {
- current_token.type = 'TK_WORD';
- } else if (flags.mode === MODE.ObjectLiteral) {
- var next_token = get_token(1);
- if (next_token.text === ':') {
- current_token.type = 'TK_WORD';
- }
- }
- }
+ var empty_braces = !next_token.comments_before.length && next_token.text === '}';
+ var empty_anonymous_function = empty_braces && flags.last_word === 'function' &&
+ last_type === 'TK_END_EXPR';
- if (start_of_statement()) {
- // The conditional starts the statement if appropriate.
- if (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['var', 'let', 'const']) && current_token.type === 'TK_WORD') {
- flags.declaration_statement = true;
- }
- } else if (current_token.wanted_newline && !is_expression(flags.mode) &&
- (last_type !== 'TK_OPERATOR' || (flags.last_text === '--' || flags.last_text === '++')) &&
- last_type !== 'TK_EQUALS' &&
- (opt.preserve_newlines || !(last_type === 'TK_RESERVED' && in_array(flags.last_text, ['var', 'let', 'const', 'set', 'get'])))) {
- handle_whitespace_and_comments(current_token);
- print_newline();
- } else {
- handle_whitespace_and_comments(current_token);
+ if (opt.brace_preserve_inline) // check for inline, set inline_frame if so
+ {
+ // search forward for a newline wanted inside this block
+ var index = 0;
+ var check_token = null;
+ flags.inline_frame = true;
+ do {
+ index += 1;
+ check_token = get_token(index);
+ if (check_token.wanted_newline) {
+ flags.inline_frame = false;
+ break;
}
+ } while (check_token.type !== 'TK_EOF' &&
+ !(check_token.type === 'TK_END_BLOCK' && check_token.opened === current_token));
+ }
- if (flags.do_block && !flags.do_while) {
- if (current_token.type === 'TK_RESERVED' && current_token.text === 'while') {
- // do {} ## while ()
- output.space_before_token = true;
- print_token();
- output.space_before_token = true;
- flags.do_while = true;
- return;
- } else {
- // do {} should always have while as the next word.
- // if we don't see the expected while, recover
- print_newline();
- flags.do_block = false;
- }
+ if ((opt.brace_style === "expand" ||
+ (opt.brace_style === "none" && current_token.wanted_newline)) &&
+ !flags.inline_frame) {
+ if (last_type !== 'TK_OPERATOR' &&
+ (empty_anonymous_function ||
+ last_type === 'TK_EQUALS' ||
+ (last_type === 'TK_RESERVED' && is_special_word(flags.last_text) && flags.last_text !== 'else'))) {
+ output.space_before_token = true;
+ } else {
+ print_newline(false, true);
+ }
+ } else { // collapse || inline_frame
+ if (is_array(previous_flags.mode) && (last_type === 'TK_START_EXPR' || last_type === 'TK_COMMA')) {
+ if (last_type === 'TK_COMMA' || opt.space_in_paren) {
+ output.space_before_token = true;
}
- // if may be followed by else, or not
- // Bare/inline ifs are tricky
- // Need to unwind the modes correctly: if (a) if (b) c(); else d(); else e();
- if (flags.if_block) {
- if (!flags.else_block && (current_token.type === 'TK_RESERVED' && current_token.text === 'else')) {
- flags.else_block = true;
- } else {
- while (flags.mode === MODE.Statement) {
- restore_mode();
- }
- flags.if_block = false;
- flags.else_block = false;
- }
+ if (last_type === 'TK_COMMA' || (last_type === 'TK_START_EXPR' && flags.inline_frame)) {
+ allow_wrap_or_preserved_newline();
+ previous_flags.multiline_frame = previous_flags.multiline_frame || flags.multiline_frame;
+ flags.multiline_frame = false;
}
-
- if (current_token.type === 'TK_RESERVED' && (current_token.text === 'case' || (current_token.text === 'default' && flags.in_case_statement))) {
+ }
+ if (last_type !== 'TK_OPERATOR' && last_type !== 'TK_START_EXPR') {
+ if (last_type === 'TK_START_BLOCK' && !flags.inline_frame) {
print_newline();
- if (flags.case_body || opt.jslint_happy) {
- // switch cases following one another
- deindent();
- flags.case_body = false;
- }
- print_token();
- flags.in_case = true;
- flags.in_case_statement = true;
- return;
- }
-
- if (last_type === 'TK_COMMA' || last_type === 'TK_START_EXPR' || last_type === 'TK_EQUALS' || last_type === 'TK_OPERATOR') {
- if (!start_of_object_property()) {
- allow_wrap_or_preserved_newline();
- }
+ } else {
+ output.space_before_token = true;
}
+ }
+ }
+ print_token();
+ indent();
+ }
- if (current_token.type === 'TK_RESERVED' && current_token.text === 'function') {
- if (in_array(flags.last_text, ['}', ';']) ||
- (output.just_added_newline() && !(in_array(flags.last_text, ['(', '[', '{', ':', '=', ',']) || last_type === 'TK_OPERATOR'))) {
- // make sure there is a nice clean space of at least one blank line
- // before a new function definition
- if (!output.just_added_blankline() && !current_token.comments_before.length) {
- print_newline();
- print_newline(true);
- }
- }
- if (last_type === 'TK_RESERVED' || last_type === 'TK_WORD') {
- if (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['get', 'set', 'new', 'return', 'export', 'async'])) {
- output.space_before_token = true;
- } else if (last_type === 'TK_RESERVED' && flags.last_text === 'default' && last_last_text === 'export') {
- output.space_before_token = true;
- } else {
- print_newline();
- }
- } else if (last_type === 'TK_OPERATOR' || flags.last_text === '=') {
- // foo = function
- output.space_before_token = true;
- } else if (!flags.multiline_frame && (is_expression(flags.mode) || is_array(flags.mode))) {
- // (function
- } else {
- print_newline();
- }
+ function handle_end_block() {
+ // statements must all be closed when their container closes
+ handle_whitespace_and_comments(current_token);
- print_token();
- flags.last_word = current_token.text;
- return;
- }
+ while (flags.mode === MODE.Statement) {
+ restore_mode();
+ }
- prefix = 'NONE';
+ var empty_braces = last_type === 'TK_START_BLOCK';
- if (last_type === 'TK_END_BLOCK') {
+ if (flags.inline_frame && !empty_braces) { // try inline_frame (only set if opt.braces-preserve-inline) first
+ output.space_before_token = true;
+ } else if (opt.brace_style === "expand") {
+ if (!empty_braces) {
+ print_newline();
+ }
+ } else {
+ // skip {}
+ if (!empty_braces) {
+ if (is_array(flags.mode) && opt.keep_array_indentation) {
+ // we REALLY need a newline here, but newliner would skip that
+ opt.keep_array_indentation = false;
+ print_newline();
+ opt.keep_array_indentation = true;
- if (previous_flags.inline_frame) {
- prefix = 'SPACE';
- } else if (!(current_token.type === 'TK_RESERVED' && in_array(current_token.text, ['else', 'catch', 'finally', 'from']))) {
- prefix = 'NEWLINE';
- } else {
- if (opt.brace_style === "expand" ||
- opt.brace_style === "end-expand" ||
- (opt.brace_style === "none" && current_token.wanted_newline)) {
- prefix = 'NEWLINE';
- } else {
- prefix = 'SPACE';
- output.space_before_token = true;
- }
- }
- } else if (last_type === 'TK_SEMICOLON' && flags.mode === MODE.BlockStatement) {
- // TODO: Should this be for STATEMENT as well?
- prefix = 'NEWLINE';
- } else if (last_type === 'TK_SEMICOLON' && is_expression(flags.mode)) {
- prefix = 'SPACE';
- } else if (last_type === 'TK_STRING') {
- prefix = 'NEWLINE';
- } else if (last_type === 'TK_RESERVED' || last_type === 'TK_WORD' ||
- (flags.last_text === '*' &&
- (in_array(last_last_text, ['function', 'yield']) ||
- (flags.mode === MODE.ObjectLiteral && in_array(last_last_text, ['{', ',']))))) {
- prefix = 'SPACE';
- } else if (last_type === 'TK_START_BLOCK') {
- if (flags.inline_frame) {
- prefix = 'SPACE';
- } else {
- prefix = 'NEWLINE';
- }
- } else if (last_type === 'TK_END_EXPR') {
- output.space_before_token = true;
- prefix = 'NEWLINE';
+ } else {
+ print_newline();
}
+ }
+ }
+ restore_mode();
+ print_token();
+ }
- if (current_token.type === 'TK_RESERVED' && in_array(current_token.text, Tokenizer.line_starters) && flags.last_text !== ')') {
- if (flags.inline_frame || flags.last_text === 'else' || flags.last_text === 'export') {
- prefix = 'SPACE';
- } else {
- prefix = 'NEWLINE';
- }
-
+ function handle_word() {
+ if (current_token.type === 'TK_RESERVED') {
+ if (in_array(current_token.text, ['set', 'get']) && flags.mode !== MODE.ObjectLiteral) {
+ current_token.type = 'TK_WORD';
+ } else if (in_array(current_token.text, ['as', 'from']) && !flags.import_block) {
+ current_token.type = 'TK_WORD';
+ } else if (flags.mode === MODE.ObjectLiteral) {
+ var next_token = get_token(1);
+ if (next_token.text === ':') {
+ current_token.type = 'TK_WORD';
}
+ }
+ }
- if (current_token.type === 'TK_RESERVED' && in_array(current_token.text, ['else', 'catch', 'finally'])) {
- if ((!(last_type === 'TK_END_BLOCK' && previous_flags.mode === MODE.BlockStatement) ||
- opt.brace_style === "expand" ||
- opt.brace_style === "end-expand" ||
- (opt.brace_style === "none" && current_token.wanted_newline)) &&
- !flags.inline_frame) {
- print_newline();
- } else {
- output.trim(true);
- var line = output.current_line;
- // If we trimmed and there's something other than a close block before us
- // put a newline back in. Handles '} // comment' scenario.
- if (line.last() !== '}') {
- print_newline();
- }
- output.space_before_token = true;
- }
- } else if (prefix === 'NEWLINE') {
- if (last_type === 'TK_RESERVED' && is_special_word(flags.last_text)) {
- // no newline between 'return nnn'
- output.space_before_token = true;
- } else if (last_type !== 'TK_END_EXPR') {
- if ((last_type !== 'TK_START_EXPR' || !(current_token.type === 'TK_RESERVED' && in_array(current_token.text, ['var', 'let', 'const']))) && flags.last_text !== ':') {
- // no need to force newline on 'var': for (var x = 0...)
- if (current_token.type === 'TK_RESERVED' && current_token.text === 'if' && flags.last_text === 'else') {
- // no newline for } else if {
- output.space_before_token = true;
- } else {
- print_newline();
- }
- }
- } else if (current_token.type === 'TK_RESERVED' && in_array(current_token.text, Tokenizer.line_starters) && flags.last_text !== ')') {
- print_newline();
- }
- } else if (flags.multiline_frame && is_array(flags.mode) && flags.last_text === ',' && last_last_text === '}') {
- print_newline(); // }, in lists get a newline treatment
- } else if (prefix === 'SPACE') {
- output.space_before_token = true;
- }
- print_token();
- flags.last_word = current_token.text;
-
- if (current_token.type === 'TK_RESERVED') {
- if (current_token.text === 'do') {
- flags.do_block = true;
- } else if (current_token.text === 'if') {
- flags.if_block = true;
- } else if (current_token.text === 'import') {
- flags.import_block = true;
- } else if (flags.import_block && current_token.type === 'TK_RESERVED' && current_token.text === 'from') {
- flags.import_block = false;
- }
- }
+ if (start_of_statement()) {
+ // The conditional starts the statement if appropriate.
+ if (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['var', 'let', 'const']) && current_token.type === 'TK_WORD') {
+ flags.declaration_statement = true;
}
+ } else if (current_token.wanted_newline && !is_expression(flags.mode) &&
+ (last_type !== 'TK_OPERATOR' || (flags.last_text === '--' || flags.last_text === '++')) &&
+ last_type !== 'TK_EQUALS' &&
+ (opt.preserve_newlines || !(last_type === 'TK_RESERVED' && in_array(flags.last_text, ['var', 'let', 'const', 'set', 'get'])))) {
+ handle_whitespace_and_comments(current_token);
+ print_newline();
+ } else {
+ handle_whitespace_and_comments(current_token);
+ }
- function handle_semicolon() {
- if (start_of_statement()) {
- // The conditional starts the statement if appropriate.
- // Semicolon can be the start (and end) of a statement
- output.space_before_token = false;
- } else {
- handle_whitespace_and_comments(current_token);
- }
+ if (flags.do_block && !flags.do_while) {
+ if (current_token.type === 'TK_RESERVED' && current_token.text === 'while') {
+ // do {} ## while ()
+ output.space_before_token = true;
+ print_token();
+ output.space_before_token = true;
+ flags.do_while = true;
+ return;
+ } else {
+ // do {} should always have while as the next word.
+ // if we don't see the expected while, recover
+ print_newline();
+ flags.do_block = false;
+ }
+ }
- var next_token = get_token(1);
- while (flags.mode === MODE.Statement &&
- !(flags.if_block && next_token && next_token.type === 'TK_RESERVED' && next_token.text === 'else') &&
- !flags.do_block) {
+ // if may be followed by else, or not
+ // Bare/inline ifs are tricky
+ // Need to unwind the modes correctly: if (a) if (b) c(); else d(); else e();
+ if (flags.if_block) {
+ if (!flags.else_block && (current_token.type === 'TK_RESERVED' && current_token.text === 'else')) {
+ flags.else_block = true;
+ } else {
+ while (flags.mode === MODE.Statement) {
restore_mode();
}
+ flags.if_block = false;
+ flags.else_block = false;
+ }
+ }
- // hacky but effective for the moment
- if (flags.import_block) {
- flags.import_block = false;
- }
- print_token();
+ if (current_token.type === 'TK_RESERVED' && (current_token.text === 'case' || (current_token.text === 'default' && flags.in_case_statement))) {
+ print_newline();
+ if (flags.case_body || opt.jslint_happy) {
+ // switch cases following one another
+ deindent();
+ flags.case_body = false;
+ }
+ print_token();
+ flags.in_case = true;
+ flags.in_case_statement = true;
+ return;
+ }
+
+ if (last_type === 'TK_COMMA' || last_type === 'TK_START_EXPR' || last_type === 'TK_EQUALS' || last_type === 'TK_OPERATOR') {
+ if (!start_of_object_property()) {
+ allow_wrap_or_preserved_newline();
}
+ }
- function handle_string() {
- if (start_of_statement()) {
- // The conditional starts the statement if appropriate.
- // One difference - strings want at least a space before
+ if (current_token.type === 'TK_RESERVED' && current_token.text === 'function') {
+ if (in_array(flags.last_text, ['}', ';']) ||
+ (output.just_added_newline() && !(in_array(flags.last_text, ['(', '[', '{', ':', '=', ',']) || last_type === 'TK_OPERATOR'))) {
+ // make sure there is a nice clean space of at least one blank line
+ // before a new function definition
+ if (!output.just_added_blankline() && !current_token.comments_before.length) {
+ print_newline();
+ print_newline(true);
+ }
+ }
+ if (last_type === 'TK_RESERVED' || last_type === 'TK_WORD') {
+ if (last_type === 'TK_RESERVED' && (
+ in_array(flags.last_text, ['get', 'set', 'new', 'export', 'async']) ||
+ in_array(flags.last_text, newline_restricted_tokens))) {
+ output.space_before_token = true;
+ } else if (last_type === 'TK_RESERVED' && flags.last_text === 'default' && last_last_text === 'export') {
output.space_before_token = true;
} else {
- handle_whitespace_and_comments(current_token);
- if (last_type === 'TK_RESERVED' || last_type === 'TK_WORD' || flags.inline_frame) {
- output.space_before_token = true;
- } else if (last_type === 'TK_COMMA' || last_type === 'TK_START_EXPR' || last_type === 'TK_EQUALS' || last_type === 'TK_OPERATOR') {
- if (!start_of_object_property()) {
- allow_wrap_or_preserved_newline();
- }
- } else {
- print_newline();
- }
+ print_newline();
}
- print_token();
+ } else if (last_type === 'TK_OPERATOR' || flags.last_text === '=') {
+ // foo = function
+ output.space_before_token = true;
+ } else if (!flags.multiline_frame && (is_expression(flags.mode) || is_array(flags.mode))) {
+ // (function
+ } else {
+ print_newline();
}
- function handle_equals() {
- if (start_of_statement()) {
- // The conditional starts the statement if appropriate.
+ print_token();
+ flags.last_word = current_token.text;
+ return;
+ }
+
+ prefix = 'NONE';
+
+ if (last_type === 'TK_END_BLOCK') {
+
+ if (previous_flags.inline_frame) {
+ prefix = 'SPACE';
+ } else if (!(current_token.type === 'TK_RESERVED' && in_array(current_token.text, ['else', 'catch', 'finally', 'from']))) {
+ prefix = 'NEWLINE';
+ } else {
+ if (opt.brace_style === "expand" ||
+ opt.brace_style === "end-expand" ||
+ (opt.brace_style === "none" && current_token.wanted_newline)) {
+ prefix = 'NEWLINE';
} else {
- handle_whitespace_and_comments(current_token);
+ prefix = 'SPACE';
+ output.space_before_token = true;
}
+ }
+ } else if (last_type === 'TK_SEMICOLON' && flags.mode === MODE.BlockStatement) {
+ // TODO: Should this be for STATEMENT as well?
+ prefix = 'NEWLINE';
+ } else if (last_type === 'TK_SEMICOLON' && is_expression(flags.mode)) {
+ prefix = 'SPACE';
+ } else if (last_type === 'TK_STRING') {
+ prefix = 'NEWLINE';
+ } else if (last_type === 'TK_RESERVED' || last_type === 'TK_WORD' ||
+ (flags.last_text === '*' &&
+ (in_array(last_last_text, ['function', 'yield']) ||
+ (flags.mode === MODE.ObjectLiteral && in_array(last_last_text, ['{', ',']))))) {
+ prefix = 'SPACE';
+ } else if (last_type === 'TK_START_BLOCK') {
+ if (flags.inline_frame) {
+ prefix = 'SPACE';
+ } else {
+ prefix = 'NEWLINE';
+ }
+ } else if (last_type === 'TK_END_EXPR') {
+ output.space_before_token = true;
+ prefix = 'NEWLINE';
+ }
- if (flags.declaration_statement) {
- // just got an '=' in a var-line, different formatting/line-breaking, etc will now be done
- flags.declaration_assignment = true;
- }
- output.space_before_token = true;
- print_token();
- output.space_before_token = true;
+ if (current_token.type === 'TK_RESERVED' && in_array(current_token.text, tokenizer.line_starters) && flags.last_text !== ')') {
+ if (flags.inline_frame || flags.last_text === 'else' || flags.last_text === 'export') {
+ prefix = 'SPACE';
+ } else {
+ prefix = 'NEWLINE';
}
- function handle_comma() {
- handle_whitespace_and_comments(current_token, true);
+ }
- print_token();
+ if (current_token.type === 'TK_RESERVED' && in_array(current_token.text, ['else', 'catch', 'finally'])) {
+ if ((!(last_type === 'TK_END_BLOCK' && previous_flags.mode === MODE.BlockStatement) ||
+ opt.brace_style === "expand" ||
+ opt.brace_style === "end-expand" ||
+ (opt.brace_style === "none" && current_token.wanted_newline)) &&
+ !flags.inline_frame) {
+ print_newline();
+ } else {
+ output.trim(true);
+ var line = output.current_line;
+ // If we trimmed and there's something other than a close block before us
+ // put a newline back in. Handles '} // comment' scenario.
+ if (line.last() !== '}') {
+ print_newline();
+ }
output.space_before_token = true;
- if (flags.declaration_statement) {
- if (is_expression(flags.parent.mode)) {
- // do not break on comma, for(var a = 1, b = 2)
- flags.declaration_assignment = false;
- }
-
- if (flags.declaration_assignment) {
- flags.declaration_assignment = false;
- print_newline(false, true);
- } else if (opt.comma_first) {
- // for comma-first, we want to allow a newline before the comma
- // to turn into a newline after the comma, which we will fixup later
- allow_wrap_or_preserved_newline();
- }
- } else if (flags.mode === MODE.ObjectLiteral ||
- (flags.mode === MODE.Statement && flags.parent.mode === MODE.ObjectLiteral)) {
- if (flags.mode === MODE.Statement) {
- restore_mode();
- }
-
- if (!flags.inline_frame) {
+ }
+ } else if (prefix === 'NEWLINE') {
+ if (last_type === 'TK_RESERVED' && is_special_word(flags.last_text)) {
+ // no newline between 'return nnn'
+ output.space_before_token = true;
+ } else if (last_type !== 'TK_END_EXPR') {
+ if ((last_type !== 'TK_START_EXPR' || !(current_token.type === 'TK_RESERVED' && in_array(current_token.text, ['var', 'let', 'const']))) && flags.last_text !== ':') {
+ // no need to force newline on 'var': for (var x = 0...)
+ if (current_token.type === 'TK_RESERVED' && current_token.text === 'if' && flags.last_text === 'else') {
+ // no newline for } else if {
+ output.space_before_token = true;
+ } else {
print_newline();
}
- } else if (opt.comma_first) {
- // EXPR or DO_BLOCK
- // for comma-first, we want to allow a newline before the comma
- // to turn into a newline after the comma, which we will fixup later
- allow_wrap_or_preserved_newline();
}
+ } else if (current_token.type === 'TK_RESERVED' && in_array(current_token.text, tokenizer.line_starters) && flags.last_text !== ')') {
+ print_newline();
}
+ } else if (flags.multiline_frame && is_array(flags.mode) && flags.last_text === ',' && last_last_text === '}') {
+ print_newline(); // }, in lists get a newline treatment
+ } else if (prefix === 'SPACE') {
+ output.space_before_token = true;
+ }
+ print_token();
+ flags.last_word = current_token.text;
+
+ if (current_token.type === 'TK_RESERVED') {
+ if (current_token.text === 'do') {
+ flags.do_block = true;
+ } else if (current_token.text === 'if') {
+ flags.if_block = true;
+ } else if (current_token.text === 'import') {
+ flags.import_block = true;
+ } else if (flags.import_block && current_token.type === 'TK_RESERVED' && current_token.text === 'from') {
+ flags.import_block = false;
+ }
+ }
+ }
- function handle_operator() {
- var isGeneratorAsterisk = current_token.text === '*' &&
- ((last_type === 'TK_RESERVED' && in_array(flags.last_text, ['function', 'yield'])) ||
- (in_array(last_type, ['TK_START_BLOCK', 'TK_COMMA', 'TK_END_BLOCK', 'TK_SEMICOLON']))
- );
- var isUnary = in_array(current_token.text, ['-', '+']) && (
- in_array(last_type, ['TK_START_BLOCK', 'TK_START_EXPR', 'TK_EQUALS', 'TK_OPERATOR']) ||
- in_array(flags.last_text, Tokenizer.line_starters) ||
- flags.last_text === ','
- );
-
- if (start_of_statement()) {
- // The conditional starts the statement if appropriate.
- } else {
- var preserve_statement_flags = !isGeneratorAsterisk;
- handle_whitespace_and_comments(current_token, preserve_statement_flags);
- }
-
- if (last_type === 'TK_RESERVED' && is_special_word(flags.last_text)) {
- // "return" had a special handling in TK_WORD. Now we need to return the favor
- output.space_before_token = true;
- print_token();
- return;
- }
+ function handle_semicolon() {
+ if (start_of_statement()) {
+ // The conditional starts the statement if appropriate.
+ // Semicolon can be the start (and end) of a statement
+ output.space_before_token = false;
+ } else {
+ handle_whitespace_and_comments(current_token);
+ }
- // hack for actionscript's import .*;
- if (current_token.text === '*' && last_type === 'TK_DOT') {
- print_token();
- return;
- }
+ var next_token = get_token(1);
+ while (flags.mode === MODE.Statement &&
+ !(flags.if_block && next_token && next_token.type === 'TK_RESERVED' && next_token.text === 'else') &&
+ !flags.do_block) {
+ restore_mode();
+ }
- if (current_token.text === '::') {
- // no spaces around exotic namespacing syntax operator
- print_token();
- return;
- }
+ // hacky but effective for the moment
+ if (flags.import_block) {
+ flags.import_block = false;
+ }
+ print_token();
+ }
- // Allow line wrapping between operators when operator_position is
- // set to before or preserve
- if (last_type === 'TK_OPERATOR' && in_array(opt.operator_position, OPERATOR_POSITION_BEFORE_OR_PRESERVE)) {
+ function handle_string() {
+ if (start_of_statement()) {
+ // The conditional starts the statement if appropriate.
+ // One difference - strings want at least a space before
+ output.space_before_token = true;
+ } else {
+ handle_whitespace_and_comments(current_token);
+ if (last_type === 'TK_RESERVED' || last_type === 'TK_WORD' || flags.inline_frame) {
+ output.space_before_token = true;
+ } else if (last_type === 'TK_COMMA' || last_type === 'TK_START_EXPR' || last_type === 'TK_EQUALS' || last_type === 'TK_OPERATOR') {
+ if (!start_of_object_property()) {
allow_wrap_or_preserved_newline();
}
+ } else {
+ print_newline();
+ }
+ }
+ print_token();
+ }
- if (current_token.text === ':' && flags.in_case) {
- flags.case_body = true;
- indent();
- print_token();
- print_newline();
- flags.in_case = false;
- return;
- }
+ function handle_equals() {
+ if (start_of_statement()) {
+ // The conditional starts the statement if appropriate.
+ } else {
+ handle_whitespace_and_comments(current_token);
+ }
- var space_before = true;
- var space_after = true;
- var in_ternary = false;
- if (current_token.text === ':') {
- if (flags.ternary_depth === 0) {
- // Colon is invalid javascript outside of ternary and object, but do our best to guess what was meant.
- space_before = false;
- } else {
- flags.ternary_depth -= 1;
- in_ternary = true;
- }
- } else if (current_token.text === '?') {
- flags.ternary_depth += 1;
- }
+ if (flags.declaration_statement) {
+ // just got an '=' in a var-line, different formatting/line-breaking, etc will now be done
+ flags.declaration_assignment = true;
+ }
+ output.space_before_token = true;
+ print_token();
+ output.space_before_token = true;
+ }
- // let's handle the operator_position option prior to any conflicting logic
- if (!isUnary && !isGeneratorAsterisk && opt.preserve_newlines && in_array(current_token.text, Tokenizer.positionable_operators)) {
- var isColon = current_token.text === ':';
- var isTernaryColon = (isColon && in_ternary);
- var isOtherColon = (isColon && !in_ternary);
+ function handle_comma() {
+ handle_whitespace_and_comments(current_token, true);
- switch (opt.operator_position) {
- case OPERATOR_POSITION.before_newline:
- // if the current token is : and it's not a ternary statement then we set space_before to false
- output.space_before_token = !isOtherColon;
+ print_token();
+ output.space_before_token = true;
+ if (flags.declaration_statement) {
+ if (is_expression(flags.parent.mode)) {
+ // do not break on comma, for(var a = 1, b = 2)
+ flags.declaration_assignment = false;
+ }
- print_token();
+ if (flags.declaration_assignment) {
+ flags.declaration_assignment = false;
+ print_newline(false, true);
+ } else if (opt.comma_first) {
+ // for comma-first, we want to allow a newline before the comma
+ // to turn into a newline after the comma, which we will fixup later
+ allow_wrap_or_preserved_newline();
+ }
+ } else if (flags.mode === MODE.ObjectLiteral ||
+ (flags.mode === MODE.Statement && flags.parent.mode === MODE.ObjectLiteral)) {
+ if (flags.mode === MODE.Statement) {
+ restore_mode();
+ }
- if (!isColon || isTernaryColon) {
- allow_wrap_or_preserved_newline();
- }
+ if (!flags.inline_frame) {
+ print_newline();
+ }
+ } else if (opt.comma_first) {
+ // EXPR or DO_BLOCK
+ // for comma-first, we want to allow a newline before the comma
+ // to turn into a newline after the comma, which we will fixup later
+ allow_wrap_or_preserved_newline();
+ }
+ }
- output.space_before_token = true;
- return;
+ function handle_operator() {
+ var isGeneratorAsterisk = current_token.text === '*' &&
+ ((last_type === 'TK_RESERVED' && in_array(flags.last_text, ['function', 'yield'])) ||
+ (in_array(last_type, ['TK_START_BLOCK', 'TK_COMMA', 'TK_END_BLOCK', 'TK_SEMICOLON']))
+ );
+ var isUnary = in_array(current_token.text, ['-', '+']) && (
+ in_array(last_type, ['TK_START_BLOCK', 'TK_START_EXPR', 'TK_EQUALS', 'TK_OPERATOR']) ||
+ in_array(flags.last_text, tokenizer.line_starters) ||
+ flags.last_text === ','
+ );
- case OPERATOR_POSITION.after_newline:
- // if the current token is anything but colon, or (via deduction) it's a colon and in a ternary statement,
- // then print a newline.
+ if (start_of_statement()) {
+ // The conditional starts the statement if appropriate.
+ } else {
+ var preserve_statement_flags = !isGeneratorAsterisk;
+ handle_whitespace_and_comments(current_token, preserve_statement_flags);
+ }
- output.space_before_token = true;
+ if (last_type === 'TK_RESERVED' && is_special_word(flags.last_text)) {
+ // "return" had a special handling in TK_WORD. Now we need to return the favor
+ output.space_before_token = true;
+ print_token();
+ return;
+ }
- if (!isColon || isTernaryColon) {
- if (get_token(1).wanted_newline) {
- print_newline(false, true);
- } else {
- allow_wrap_or_preserved_newline();
- }
- } else {
- output.space_before_token = false;
- }
+ // hack for actionscript's import .*;
+ if (current_token.text === '*' && last_type === 'TK_DOT') {
+ print_token();
+ return;
+ }
- print_token();
+ if (current_token.text === '::') {
+ // no spaces around exotic namespacing syntax operator
+ print_token();
+ return;
+ }
- output.space_before_token = true;
- return;
+ // Allow line wrapping between operators when operator_position is
+ // set to before or preserve
+ if (last_type === 'TK_OPERATOR' && in_array(opt.operator_position, OPERATOR_POSITION_BEFORE_OR_PRESERVE)) {
+ allow_wrap_or_preserved_newline();
+ }
- case OPERATOR_POSITION.preserve_newline:
- if (!isOtherColon) {
- allow_wrap_or_preserved_newline();
- }
+ if (current_token.text === ':' && flags.in_case) {
+ flags.case_body = true;
+ indent();
+ print_token();
+ print_newline();
+ flags.in_case = false;
+ return;
+ }
- // if we just added a newline, or the current token is : and it's not a ternary statement,
- // then we set space_before to false
- space_before = !(output.just_added_newline() || isOtherColon);
+ var space_before = true;
+ var space_after = true;
+ var in_ternary = false;
+ if (current_token.text === ':') {
+ if (flags.ternary_depth === 0) {
+ // Colon is invalid javascript outside of ternary and object, but do our best to guess what was meant.
+ space_before = false;
+ } else {
+ flags.ternary_depth -= 1;
+ in_ternary = true;
+ }
+ } else if (current_token.text === '?') {
+ flags.ternary_depth += 1;
+ }
- output.space_before_token = space_before;
- print_token();
- output.space_before_token = true;
- return;
- }
- }
+ // let's handle the operator_position option prior to any conflicting logic
+ if (!isUnary && !isGeneratorAsterisk && opt.preserve_newlines && in_array(current_token.text, tokenizer.positionable_operators)) {
+ var isColon = current_token.text === ':';
+ var isTernaryColon = (isColon && in_ternary);
+ var isOtherColon = (isColon && !in_ternary);
- if (isGeneratorAsterisk) {
- allow_wrap_or_preserved_newline();
- space_before = false;
- var next_token = get_token(1);
- space_after = next_token && in_array(next_token.type, ['TK_WORD', 'TK_RESERVED']);
- } else if (current_token.text === '...') {
- allow_wrap_or_preserved_newline();
- space_before = last_type === 'TK_START_BLOCK';
- space_after = false;
- } else if (in_array(current_token.text, ['--', '++', '!', '~']) || isUnary) {
- // unary operators (and binary +/- pretending to be unary) special cases
-
- space_before = false;
- space_after = false;
-
- // http://www.ecma-international.org/ecma-262/5.1/#sec-7.9.1
- // if there is a newline between -- or ++ and anything else we should preserve it.
- if (current_token.wanted_newline && (current_token.text === '--' || current_token.text === '++')) {
- print_newline(false, true);
- }
+ switch (opt.operator_position) {
+ case OPERATOR_POSITION.before_newline:
+ // if the current token is : and it's not a ternary statement then we set space_before to false
+ output.space_before_token = !isOtherColon;
- if (flags.last_text === ';' && is_expression(flags.mode)) {
- // for (;; ++i)
- // ^^^
- space_before = true;
- }
+ print_token();
- if (last_type === 'TK_RESERVED') {
- space_before = true;
- } else if (last_type === 'TK_END_EXPR') {
- space_before = !(flags.last_text === ']' && (current_token.text === '--' || current_token.text === '++'));
- } else if (last_type === 'TK_OPERATOR') {
- // a++ + ++b;
- // a - -b
- space_before = in_array(current_token.text, ['--', '-', '++', '+']) && in_array(flags.last_text, ['--', '-', '++', '+']);
- // + and - are not unary when preceeded by -- or ++ operator
- // a-- + b
- // a * +b
- // a - -b
- if (in_array(current_token.text, ['+', '-']) && in_array(flags.last_text, ['--', '++'])) {
- space_after = true;
- }
+ if (!isColon || isTernaryColon) {
+ allow_wrap_or_preserved_newline();
}
+ output.space_before_token = true;
+ return;
- if (((flags.mode === MODE.BlockStatement && !flags.inline_frame) || flags.mode === MODE.Statement) &&
- (flags.last_text === '{' || flags.last_text === ';')) {
- // { foo; --i }
- // foo(); --bar;
- print_newline();
- }
- }
+ case OPERATOR_POSITION.after_newline:
+ // if the current token is anything but colon, or (via deduction) it's a colon and in a ternary statement,
+ // then print a newline.
- output.space_before_token = output.space_before_token || space_before;
- print_token();
- output.space_before_token = space_after;
- }
+ output.space_before_token = true;
- function handle_block_comment(preserve_statement_flags) {
- if (output.raw) {
- output.add_raw_token(current_token);
- if (current_token.directives && current_token.directives.preserve === 'end') {
- // If we're testing the raw output behavior, do not allow a directive to turn it off.
- output.raw = opt.test_output_raw;
+ if (!isColon || isTernaryColon) {
+ if (get_token(1).wanted_newline) {
+ print_newline(false, true);
+ } else {
+ allow_wrap_or_preserved_newline();
+ }
+ } else {
+ output.space_before_token = false;
}
- return;
- }
- if (current_token.directives) {
- print_newline(false, preserve_statement_flags);
print_token();
- if (current_token.directives.preserve === 'start') {
- output.raw = true;
- }
- print_newline(false, true);
- return;
- }
- // inline block
- if (!acorn.newline.test(current_token.text) && !current_token.wanted_newline) {
- output.space_before_token = true;
- print_token();
output.space_before_token = true;
return;
- }
-
- var lines = split_linebreaks(current_token.text);
- var j; // iterator for this case
- var javadoc = false;
- var starless = false;
- var lastIndent = current_token.whitespace_before;
- var lastIndentLength = lastIndent.length;
-
- // block comment starts with a new line
- print_newline(false, preserve_statement_flags);
- if (lines.length > 1) {
- javadoc = all_lines_start_with(lines.slice(1), '*');
- starless = each_line_matches_indent(lines.slice(1), lastIndent);
- }
- // first line always indented
- print_token(lines[0]);
- for (j = 1; j < lines.length; j++) {
- print_newline(false, true);
- if (javadoc) {
- // javadoc: reformat and re-indent
- print_token(' ' + ltrim(lines[j]));
- } else if (starless && lines[j].length > lastIndentLength) {
- // starless: re-indent non-empty content, avoiding trim
- print_token(lines[j].substring(lastIndentLength));
- } else {
- // normal comments output raw
- output.add_token(lines[j]);
+ case OPERATOR_POSITION.preserve_newline:
+ if (!isOtherColon) {
+ allow_wrap_or_preserved_newline();
}
- }
- // for comments of more than one line, make sure there's a new line after
- print_newline(false, preserve_statement_flags);
+ // if we just added a newline, or the current token is : and it's not a ternary statement,
+ // then we set space_before to false
+ space_before = !(output.just_added_newline() || isOtherColon);
+
+ output.space_before_token = space_before;
+ print_token();
+ output.space_before_token = true;
+ return;
}
+ }
- function handle_comment(preserve_statement_flags) {
- if (current_token.wanted_newline) {
- print_newline(false, preserve_statement_flags);
- } else {
- output.trim(true);
- }
+ if (isGeneratorAsterisk) {
+ allow_wrap_or_preserved_newline();
+ space_before = false;
+ var next_token = get_token(1);
+ space_after = next_token && in_array(next_token.type, ['TK_WORD', 'TK_RESERVED']);
+ } else if (current_token.text === '...') {
+ allow_wrap_or_preserved_newline();
+ space_before = last_type === 'TK_START_BLOCK';
+ space_after = false;
+ } else if (in_array(current_token.text, ['--', '++', '!', '~']) || isUnary) {
+ // unary operators (and binary +/- pretending to be unary) special cases
+
+ space_before = false;
+ space_after = false;
+
+ // http://www.ecma-international.org/ecma-262/5.1/#sec-7.9.1
+ // if there is a newline between -- or ++ and anything else we should preserve it.
+ if (current_token.wanted_newline && (current_token.text === '--' || current_token.text === '++')) {
+ print_newline(false, true);
+ }
- output.space_before_token = true;
- print_token();
- print_newline(false, preserve_statement_flags);
+ if (flags.last_text === ';' && is_expression(flags.mode)) {
+ // for (;; ++i)
+ // ^^^
+ space_before = true;
}
- function handle_dot() {
- if (start_of_statement()) {
- // The conditional starts the statement if appropriate.
- } else {
- handle_whitespace_and_comments(current_token, true);
+ if (last_type === 'TK_RESERVED') {
+ space_before = true;
+ } else if (last_type === 'TK_END_EXPR') {
+ space_before = !(flags.last_text === ']' && (current_token.text === '--' || current_token.text === '++'));
+ } else if (last_type === 'TK_OPERATOR') {
+ // a++ + ++b;
+ // a - -b
+ space_before = in_array(current_token.text, ['--', '-', '++', '+']) && in_array(flags.last_text, ['--', '-', '++', '+']);
+ // + and - are not unary when preceeded by -- or ++ operator
+ // a-- + b
+ // a * +b
+ // a - -b
+ if (in_array(current_token.text, ['+', '-']) && in_array(flags.last_text, ['--', '++'])) {
+ space_after = true;
}
+ }
- if (last_type === 'TK_RESERVED' && is_special_word(flags.last_text)) {
- output.space_before_token = true;
- } else {
- // allow preserved newlines before dots in general
- // force newlines on dots after close paren when break_chained - for bar().baz()
- allow_wrap_or_preserved_newline(flags.last_text === ')' && opt.break_chained_methods);
- }
- print_token();
+ if (((flags.mode === MODE.BlockStatement && !flags.inline_frame) || flags.mode === MODE.Statement) &&
+ (flags.last_text === '{' || flags.last_text === ';')) {
+ // { foo; --i }
+ // foo(); --bar;
+ print_newline();
}
+ }
- function handle_unknown(preserve_statement_flags) {
- print_token();
+ output.space_before_token = output.space_before_token || space_before;
+ print_token();
+ output.space_before_token = space_after;
+ }
- if (current_token.text[current_token.text.length - 1] === '\n') {
- print_newline(false, preserve_statement_flags);
- }
+ function handle_block_comment(preserve_statement_flags) {
+ if (output.raw) {
+ output.add_raw_token(current_token);
+ if (current_token.directives && current_token.directives.preserve === 'end') {
+ // If we're testing the raw output behavior, do not allow a directive to turn it off.
+ output.raw = opt.test_output_raw;
}
+ return;
+ }
- function handle_eof() {
- // Unwind any open statements
- while (flags.mode === MODE.Statement) {
- restore_mode();
- }
- handle_whitespace_and_comments(current_token);
+ if (current_token.directives) {
+ print_newline(false, preserve_statement_flags);
+ print_token();
+ if (current_token.directives.preserve === 'start') {
+ output.raw = true;
}
+ print_newline(false, true);
+ return;
}
+ // inline block
+ if (!acorn.newline.test(current_token.text) && !current_token.wanted_newline) {
+ output.space_before_token = true;
+ print_token();
+ output.space_before_token = true;
+ return;
+ }
- function OutputLine(parent) {
- var _character_count = 0;
- // use indent_count as a marker for lines that have preserved indentation
- var _indent_count = -1;
-
- var _items = [];
- var _empty = true;
-
- this.set_indent = function(level) {
- _character_count = parent.baseIndentLength + level * parent.indent_length;
- _indent_count = level;
- };
+ var lines = split_linebreaks(current_token.text);
+ var j; // iterator for this case
+ var javadoc = false;
+ var starless = false;
+ var lastIndent = current_token.whitespace_before;
+ var lastIndentLength = lastIndent.length;
+
+ // block comment starts with a new line
+ print_newline(false, preserve_statement_flags);
+ if (lines.length > 1) {
+ javadoc = all_lines_start_with(lines.slice(1), '*');
+ starless = each_line_matches_indent(lines.slice(1), lastIndent);
+ }
+
+ // first line always indented
+ print_token(lines[0]);
+ for (j = 1; j < lines.length; j++) {
+ print_newline(false, true);
+ if (javadoc) {
+ // javadoc: reformat and re-indent
+ print_token(' ' + ltrim(lines[j]));
+ } else if (starless && lines[j].length > lastIndentLength) {
+ // starless: re-indent non-empty content, avoiding trim
+ print_token(lines[j].substring(lastIndentLength));
+ } else {
+ // normal comments output raw
+ output.add_token(lines[j]);
+ }
+ }
- this.get_character_count = function() {
- return _character_count;
- };
+ // for comments of more than one line, make sure there's a new line after
+ print_newline(false, preserve_statement_flags);
+ }
- this.is_empty = function() {
- return _empty;
- };
+ function handle_comment(preserve_statement_flags) {
+ if (current_token.wanted_newline) {
+ print_newline(false, preserve_statement_flags);
+ } else {
+ output.trim(true);
+ }
- this.last = function() {
- if (!this._empty) {
- return _items[_items.length - 1];
- } else {
- return null;
- }
- };
+ output.space_before_token = true;
+ print_token();
+ print_newline(false, preserve_statement_flags);
+ }
- this.push = function(input) {
- _items.push(input);
- _character_count += input.length;
- _empty = false;
- };
+ function handle_dot() {
+ if (start_of_statement()) {
+ // The conditional starts the statement if appropriate.
+ } else {
+ handle_whitespace_and_comments(current_token, true);
+ }
- this.pop = function() {
- var item = null;
- if (!_empty) {
- item = _items.pop();
- _character_count -= item.length;
- _empty = _items.length === 0;
- }
- return item;
- };
+ if (last_type === 'TK_RESERVED' && is_special_word(flags.last_text)) {
+ output.space_before_token = true;
+ } else {
+ // allow preserved newlines before dots in general
+ // force newlines on dots after close paren when break_chained - for bar().baz()
+ allow_wrap_or_preserved_newline(flags.last_text === ')' && opt.break_chained_methods);
+ }
- this.remove_indent = function() {
- if (_indent_count > 0) {
- _indent_count -= 1;
- _character_count -= parent.indent_length;
- }
- };
+ print_token();
+ }
- this.trim = function() {
- while (this.last() === ' ') {
- _items.pop();
- _character_count -= 1;
- }
- _empty = _items.length === 0;
- };
+ function handle_unknown(preserve_statement_flags) {
+ print_token();
- this.toString = function() {
- var result = '';
- if (!this._empty) {
- if (_indent_count >= 0) {
- result = parent.indent_cache[_indent_count];
- }
- result += _items.join('');
- }
- return result;
- };
+ if (current_token.text[current_token.text.length - 1] === '\n') {
+ print_newline(false, preserve_statement_flags);
}
+ }
- function Output(indent_string, baseIndentString) {
- baseIndentString = baseIndentString || '';
- this.indent_cache = [baseIndentString];
- this.baseIndentLength = baseIndentString.length;
- this.indent_length = indent_string.length;
- this.raw = false;
-
- var lines = [];
- this.baseIndentString = baseIndentString;
- this.indent_string = indent_string;
- this.previous_line = null;
- this.current_line = null;
- this.space_before_token = false;
-
- this.add_outputline = function() {
- this.previous_line = this.current_line;
- this.current_line = new OutputLine(this);
- lines.push(this.current_line);
- };
-
- // initialize
- this.add_outputline();
+ function handle_eof() {
+ // Unwind any open statements
+ while (flags.mode === MODE.Statement) {
+ restore_mode();
+ }
+ handle_whitespace_and_comments(current_token);
+ }
+}
+module.exports.Beautifier = Beautifier;
- this.get_line_number = function() {
- return lines.length;
- };
+/***/ }),
+/* 2 */
+/***/ (function(module, exports) {
- // Using object instead of string to allow for later expansion of info about each line
- this.add_new_line = function(force_newline) {
- if (this.get_line_number() === 1 && this.just_added_newline()) {
- return false; // no newline on start of file
- }
+/*jshint curly:true, eqeqeq:true, laxbreak:true, noempty:false */
+/*
- if (force_newline || !this.just_added_newline()) {
- if (!this.raw) {
- this.add_outputline();
- }
- return true;
- }
+ The MIT License (MIT)
- return false;
- };
+ Copyright (c) 2007-2017 Einar Lielmanis, Liam Newman, and contributors.
- this.get_code = function() {
- var sweet_code = lines.join('\n').replace(/[\r\n\t ]+$/, '');
- return sweet_code;
- };
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation files
+ (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge,
+ publish, distribute, sublicense, and/or sell copies of the Software,
+ and to permit persons to whom the Software is furnished to do so,
+ subject to the following conditions:
- this.set_indent = function(level) {
- // Never indent your first output indent at the start of the file
- if (lines.length > 1) {
- while (level >= this.indent_cache.length) {
- this.indent_cache.push(this.indent_cache[this.indent_cache.length - 1] + this.indent_string);
- }
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
- this.current_line.set_indent(level);
- return true;
- }
- this.current_line.set_indent(0);
- return false;
- };
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
- this.add_raw_token = function(token) {
- for (var x = 0; x < token.newlines; x++) {
- this.add_outputline();
- }
- this.current_line.push(token.whitespace_before);
- this.current_line.push(token.text);
- this.space_before_token = false;
- };
+function InputScanner(input) {
+ var _input = input;
+ var _input_length = _input.length;
+ var _position = 0;
- this.add_token = function(printable_token) {
- this.add_space_before_token();
- this.current_line.push(printable_token);
- };
+ this.back = function() {
+ _position -= 1;
+ };
- this.add_space_before_token = function() {
- if (this.space_before_token && !this.just_added_newline()) {
- this.current_line.push(' ');
- }
- this.space_before_token = false;
- };
+ this.hasNext = function() {
+ return _position < _input_length;
+ };
- this.remove_redundant_indentation = function(frame) {
- // This implementation is effective but has some issues:
- // - can cause line wrap to happen too soon due to indent removal
- // after wrap points are calculated
- // These issues are minor compared to ugly indentation.
+ this.next = function() {
+ var val = null;
+ if (this.hasNext()) {
+ val = _input.charAt(_position);
+ _position += 1;
+ }
+ return val;
+ };
- if (frame.multiline_frame ||
- frame.mode === MODE.ForInitializer ||
- frame.mode === MODE.Conditional) {
- return;
- }
+ this.peek = function(index) {
+ var val = null;
+ index = index || 0;
+ index += _position;
+ if (index >= 0 && index < _input_length) {
+ val = _input.charAt(index);
+ }
+ return val;
+ };
- // remove one indent from each line inside this section
- var index = frame.start_line_index;
+ this.peekCharCode = function(index) {
+ var val = 0;
+ index = index || 0;
+ index += _position;
+ if (index >= 0 && index < _input_length) {
+ val = _input.charCodeAt(index);
+ }
+ return val;
+ };
- var output_length = lines.length;
- while (index < output_length) {
- lines[index].remove_indent();
- index++;
- }
- };
+ this.test = function(pattern, index) {
+ index = index || 0;
+ pattern.lastIndex = _position + index;
+ return pattern.test(_input);
+ };
- this.trim = function(eat_newlines) {
- eat_newlines = (eat_newlines === undefined) ? false : eat_newlines;
+ this.testChar = function(pattern, index) {
+ var val = this.peek(index);
+ return val !== null && pattern.test(val);
+ };
- this.current_line.trim(indent_string, baseIndentString);
+ this.match = function(pattern) {
+ pattern.lastIndex = _position;
+ var pattern_match = pattern.exec(_input);
+ if (pattern_match && pattern_match.index === _position) {
+ _position += pattern_match[0].length;
+ } else {
+ pattern_match = null;
+ }
+ return pattern_match;
+ };
+}
- while (eat_newlines && lines.length > 1 &&
- this.current_line.is_empty()) {
- lines.pop();
- this.current_line = lines[lines.length - 1];
- this.current_line.trim();
- }
- this.previous_line = lines.length > 1 ? lines[lines.length - 2] : null;
- };
+module.exports.InputScanner = InputScanner;
- this.just_added_newline = function() {
- return this.current_line.is_empty();
- };
- this.just_added_blankline = function() {
- if (this.just_added_newline()) {
- if (lines.length === 1) {
- return true; // start of the file and newline = blank
- }
+/***/ }),
+/* 3 */
+/***/ (function(module, exports) {
- var line = lines[lines.length - 2];
- return line.is_empty();
- }
- return false;
- };
- }
+/*jshint curly:true, eqeqeq:true, laxbreak:true, noempty:false */
+/*
- var InputScanner = function(input) {
- var _input = input;
- var _input_length = _input.length;
- var _position = 0;
+ The MIT License (MIT)
+
+ Copyright (c) 2007-2017 Einar Lielmanis, Liam Newman, and contributors.
+
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation files
+ (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge,
+ publish, distribute, sublicense, and/or sell copies of the Software,
+ and to permit persons to whom the Software is furnished to do so,
+ subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
- this.back = function() {
- _position -= 1;
- };
+function mergeOpts(allOptions, targetType) {
+ var finalOpts = {};
+ var name;
- this.hasNext = function() {
- return _position < _input_length;
- };
+ for (name in allOptions) {
+ if (name !== targetType) {
+ finalOpts[name] = allOptions[name];
+ }
+ }
- this.next = function() {
- var val = null;
- if (this.hasNext()) {
- val = _input.charAt(_position);
- _position += 1;
- }
- return val;
- };
+ //merge in the per type settings for the targetType
+ if (targetType in allOptions) {
+ for (name in allOptions[targetType]) {
+ finalOpts[name] = allOptions[targetType][name];
+ }
+ }
+ return finalOpts;
+}
- this.peek = function(index) {
- var val = null;
- index = index || 0;
- index += _position;
- if (index >= 0 && index < _input_length) {
- val = _input.charAt(index);
- }
- return val;
- };
+module.exports.mergeOpts = mergeOpts;
- this.peekCharCode = function(index) {
- var val = 0;
- index = index || 0;
- index += _position;
- if (index >= 0 && index < _input_length) {
- val = _input.charCodeAt(index);
- }
- return val;
- };
- this.test = function(pattern, index) {
- index = index || 0;
- pattern.lastIndex = _position + index;
- return pattern.test(_input);
- };
+/***/ }),
+/* 4 */
+/***/ (function(module, exports) {
- this.testChar = function(pattern, index) {
- var val = this.peek(index);
- return val !== null && pattern.test(val);
- };
+/*jshint curly:true, eqeqeq:true, laxbreak:true, noempty:false */
+/*
- this.match = function(pattern) {
- pattern.lastIndex = _position;
- var pattern_match = pattern.exec(_input);
- if (pattern_match && pattern_match.index === _position) {
- _position += pattern_match[0].length;
- } else {
- pattern_match = null;
- }
- return pattern_match;
- };
- };
+ The MIT License (MIT)
- var Token = function(type, text, newlines, whitespace_before, parent) {
- this.type = type;
- this.text = text;
+ Copyright (c) 2007-2017 Einar Lielmanis, Liam Newman, and contributors.
- // comments_before are
- // comments that have a new line before them
- // and may or may not have a newline after
- // this is a set of comments before
- this.comments_before = /* inline comment*/ [];
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation files
+ (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge,
+ publish, distribute, sublicense, and/or sell copies of the Software,
+ and to permit persons to whom the Software is furnished to do so,
+ subject to the following conditions:
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
- this.comments_after = []; // no new line before and newline after
- this.newlines = newlines || 0;
- this.wanted_newline = newlines > 0;
- this.whitespace_before = whitespace_before || '';
- this.parent = parent || null;
- this.opened = null;
- this.directives = null;
- };
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
- function tokenizer(input_string, opts) {
+function OutputLine(parent) {
+ var _character_count = 0;
+ // use indent_count as a marker for lines that have preserved indentation
+ var _indent_count = -1;
- var whitespace = "\n\r\t ".split('');
- var digit = /[0-9]/;
- var digit_bin = /[01]/;
- var digit_oct = /[01234567]/;
- var digit_hex = /[0123456789abcdefABCDEF]/;
+ var _items = [];
+ var _empty = true;
- this.positionable_operators = '!= !== % & && * ** + - / : < << <= == === > >= >> >>> ? ^ | ||'.split(' ');
- var punct = this.positionable_operators.concat(
- // non-positionable operators - these do not follow operator position settings
- '! %= &= *= **= ++ += , -- -= /= :: <<= = => >>= >>>= ^= |= ~ ...'.split(' '));
+ this.set_indent = function(level) {
+ _character_count = parent.baseIndentLength + level * parent.indent_length;
+ _indent_count = level;
+ };
- // words which should always start on new line.
- this.line_starters = 'continue,try,throw,return,var,let,const,if,switch,case,default,for,while,break,function,import,export'.split(',');
- var reserved_words = this.line_starters.concat(['do', 'in', 'of', 'else', 'get', 'set', 'new', 'catch', 'finally', 'typeof', 'yield', 'async', 'await', 'from', 'as']);
+ this.get_character_count = function() {
+ return _character_count;
+ };
- // /* ... */ comment ends with nearest */ or end of file
- var block_comment_pattern = /([\s\S]*?)((?:\*\/)|$)/g;
+ this.is_empty = function() {
+ return _empty;
+ };
- // comment ends just before nearest linefeed or end of file
- var comment_pattern = /([^\n\r\u2028\u2029]*)/g;
+ this.last = function() {
+ if (!this._empty) {
+ return _items[_items.length - 1];
+ } else {
+ return null;
+ }
+ };
- var directives_block_pattern = /\/\* beautify( \w+[:]\w+)+ \*\//g;
- var directive_pattern = / (\w+)[:](\w+)/g;
- var directives_end_ignore_pattern = /([\s\S]*?)((?:\/\*\sbeautify\signore:end\s\*\/)|$)/g;
+ this.push = function(input) {
+ _items.push(input);
+ _character_count += input.length;
+ _empty = false;
+ };
- var template_pattern = /((<\?php|<\?=)[\s\S]*?\?>)|(<%[\s\S]*?%>)/g;
+ this.pop = function() {
+ var item = null;
+ if (!_empty) {
+ item = _items.pop();
+ _character_count -= item.length;
+ _empty = _items.length === 0;
+ }
+ return item;
+ };
- var n_newlines, whitespace_before_token, in_html_comment, tokens;
- var input;
+ this.remove_indent = function() {
+ if (_indent_count > 0) {
+ _indent_count -= 1;
+ _character_count -= parent.indent_length;
+ }
+ };
- this.tokenize = function() {
- input = new InputScanner(input_string);
- in_html_comment = false;
- tokens = [];
+ this.trim = function() {
+ while (this.last() === ' ') {
+ _items.pop();
+ _character_count -= 1;
+ }
+ _empty = _items.length === 0;
+ };
- var next, last;
- var token_values;
- var open = null;
- var open_stack = [];
- var comments = [];
+ this.toString = function() {
+ var result = '';
+ if (!this._empty) {
+ if (_indent_count >= 0) {
+ result = parent.indent_cache[_indent_count];
+ }
+ result += _items.join('');
+ }
+ return result;
+ };
+}
- while (!(last && last.type === 'TK_EOF')) {
- token_values = tokenize_next();
- next = new Token(token_values[1], token_values[0], n_newlines, whitespace_before_token);
- while (next.type === 'TK_COMMENT' || next.type === 'TK_BLOCK_COMMENT' || next.type === 'TK_UNKNOWN') {
- if (next.type === 'TK_BLOCK_COMMENT') {
- next.directives = token_values[2];
- }
- comments.push(next);
- token_values = tokenize_next();
- next = new Token(token_values[1], token_values[0], n_newlines, whitespace_before_token);
- }
+function Output(indent_string, baseIndentString) {
+ baseIndentString = baseIndentString || '';
+ this.indent_cache = [baseIndentString];
+ this.baseIndentLength = baseIndentString.length;
+ this.indent_length = indent_string.length;
+ this.raw = false;
+
+ var lines = [];
+ this.baseIndentString = baseIndentString;
+ this.indent_string = indent_string;
+ this.previous_line = null;
+ this.current_line = null;
+ this.space_before_token = false;
+
+ this.add_outputline = function() {
+ this.previous_line = this.current_line;
+ this.current_line = new OutputLine(this);
+ lines.push(this.current_line);
+ };
- if (comments.length) {
- next.comments_before = comments;
- comments = [];
- }
+ // initialize
+ this.add_outputline();
- if (next.type === 'TK_START_BLOCK' || next.type === 'TK_START_EXPR') {
- next.parent = last;
- open_stack.push(open);
- open = next;
- } else if ((next.type === 'TK_END_BLOCK' || next.type === 'TK_END_EXPR') &&
- (open && (
- (next.text === ']' && open.text === '[') ||
- (next.text === ')' && open.text === '(') ||
- (next.text === '}' && open.text === '{')))) {
- next.parent = open.parent;
- next.opened = open;
-
- open = open_stack.pop();
- }
- tokens.push(next);
- last = next;
- }
+ this.get_line_number = function() {
+ return lines.length;
+ };
- return tokens;
- };
+ // Using object instead of string to allow for later expansion of info about each line
+ this.add_new_line = function(force_newline) {
+ if (this.get_line_number() === 1 && this.just_added_newline()) {
+ return false; // no newline on start of file
+ }
- function get_directives(text) {
- if (!text.match(directives_block_pattern)) {
- return null;
- }
+ if (force_newline || !this.just_added_newline()) {
+ if (!this.raw) {
+ this.add_outputline();
+ }
+ return true;
+ }
+
+ return false;
+ };
- var directives = {};
- directive_pattern.lastIndex = 0;
- var directive_match = directive_pattern.exec(text);
+ this.get_code = function(end_with_newline, eol) {
+ var sweet_code = lines.join('\n').replace(/[\r\n\t ]+$/, '');
- while (directive_match) {
- directives[directive_match[1]] = directive_match[2];
- directive_match = directive_pattern.exec(text);
- }
+ if (end_with_newline) {
+ sweet_code += '\n';
+ }
+
+ if (eol !== '\n') {
+ sweet_code = sweet_code.replace(/[\n]/g, eol);
+ }
+
+ return sweet_code;
+ };
+
+ this.set_indent = function(level) {
+ // Never indent your first output indent at the start of the file
+ if (lines.length > 1) {
+ while (level >= this.indent_cache.length) {
+ this.indent_cache.push(this.indent_cache[this.indent_cache.length - 1] + this.indent_string);
+ }
+
+ this.current_line.set_indent(level);
+ return true;
+ }
+ this.current_line.set_indent(0);
+ return false;
+ };
+
+ this.add_raw_token = function(token) {
+ for (var x = 0; x < token.newlines; x++) {
+ this.add_outputline();
+ }
+ this.current_line.push(token.whitespace_before);
+ this.current_line.push(token.text);
+ this.space_before_token = false;
+ };
+
+ this.add_token = function(printable_token) {
+ this.add_space_before_token();
+ this.current_line.push(printable_token);
+ };
+
+ this.add_space_before_token = function() {
+ if (this.space_before_token && !this.just_added_newline()) {
+ this.current_line.push(' ');
+ }
+ this.space_before_token = false;
+ };
+
+ this.remove_indent = function(index) {
+ var output_length = lines.length;
+ while (index < output_length) {
+ lines[index].remove_indent();
+ index++;
+ }
+ };
+
+ this.trim = function(eat_newlines) {
+ eat_newlines = (eat_newlines === undefined) ? false : eat_newlines;
+
+ this.current_line.trim(indent_string, baseIndentString);
+
+ while (eat_newlines && lines.length > 1 &&
+ this.current_line.is_empty()) {
+ lines.pop();
+ this.current_line = lines[lines.length - 1];
+ this.current_line.trim();
+ }
+
+ this.previous_line = lines.length > 1 ? lines[lines.length - 2] : null;
+ };
+
+ this.just_added_newline = function() {
+ return this.current_line.is_empty();
+ };
- return directives;
+ this.just_added_blankline = function() {
+ if (this.just_added_newline()) {
+ if (lines.length === 1) {
+ return true; // start of the file and newline = blank
}
- function tokenize_next() {
- var resulting_string;
- var whitespace_on_this_line = [];
+ var line = lines[lines.length - 2];
+ return line.is_empty();
+ }
+ return false;
+ };
+}
- n_newlines = 0;
- whitespace_before_token = '';
+module.exports.Output = Output;
- var c = input.next();
- if (c === null) {
- return ['', 'TK_EOF'];
- }
+/***/ }),
+/* 5 */
+/***/ (function(module, exports) {
- var last_token;
- if (tokens.length) {
- last_token = tokens[tokens.length - 1];
- } else {
- // For the sake of tokenizing we can pretend that there was on open brace to start
- last_token = new Token('TK_START_BLOCK', '{');
- }
+/*jshint curly:true, eqeqeq:true, laxbreak:true, noempty:false */
+/*
- while (in_array(c, whitespace)) {
+ The MIT License (MIT)
- if (acorn.newline.test(c)) {
- if (!(c === '\n' && input.peek(-2) === '\r')) {
- n_newlines += 1;
- whitespace_on_this_line = [];
- }
- } else {
- whitespace_on_this_line.push(c);
- }
+ Copyright (c) 2007-2017 Einar Lielmanis, Liam Newman, and contributors.
- c = input.next();
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation files
+ (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge,
+ publish, distribute, sublicense, and/or sell copies of the Software,
+ and to permit persons to whom the Software is furnished to do so,
+ subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
+
+function Token(type, text, newlines, whitespace_before, parent) {
+ this.type = type;
+ this.text = text;
+
+ // comments_before are
+ // comments that have a new line before them
+ // and may or may not have a newline after
+ // this is a set of comments before
+ this.comments_before = /* inline comment*/ [];
+
+
+ this.comments_after = []; // no new line before and newline after
+ this.newlines = newlines || 0;
+ this.wanted_newline = newlines > 0;
+ this.whitespace_before = whitespace_before || '';
+ this.parent = parent || null;
+ this.opened = null;
+ this.directives = null;
+}
+
+module.exports.Token = Token;
- if (c === null) {
- return ['', 'TK_EOF'];
- }
- }
- if (whitespace_on_this_line.length) {
- whitespace_before_token = whitespace_on_this_line.join('');
+/***/ }),
+/* 6 */
+/***/ (function(module, exports, __webpack_require__) {
+
+/*jshint curly:true, eqeqeq:true, laxbreak:true, noempty:false */
+/*
+
+ The MIT License (MIT)
+
+ Copyright (c) 2007-2017 Einar Lielmanis, Liam Newman, and contributors.
+
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation files
+ (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge,
+ publish, distribute, sublicense, and/or sell copies of the Software,
+ and to permit persons to whom the Software is furnished to do so,
+ subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
+
+var Beautifier = __webpack_require__(1).Beautifier;
+
+function js_beautify(js_source_text, options) {
+ var beautifier = new Beautifier(js_source_text, options);
+ return beautifier.beautify();
+}
+
+module.exports = js_beautify;
+
+/***/ }),
+/* 7 */
+/***/ (function(module, exports, __webpack_require__) {
+
+/*jshint curly:true, eqeqeq:true, laxbreak:true, noempty:false */
+/*
+
+ The MIT License (MIT)
+
+ Copyright (c) 2007-2017 Einar Lielmanis, Liam Newman, and contributors.
+
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation files
+ (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge,
+ publish, distribute, sublicense, and/or sell copies of the Software,
+ and to permit persons to whom the Software is furnished to do so,
+ subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
+
+var InputScanner = __webpack_require__(2).InputScanner;
+var Token = __webpack_require__(5).Token;
+var acorn = __webpack_require__(0);
+
+function trim(s) {
+ return s.replace(/^\s+|\s+$/g, '');
+}
+
+function in_array(what, arr) {
+ for (var i = 0; i < arr.length; i += 1) {
+ if (arr[i] === what) {
+ return true;
+ }
+ }
+ return false;
+}
+
+function Tokenizer(input_string, opts) {
+
+ var whitespace = "\n\r\t ".split('');
+ var digit = /[0-9]/;
+ var digit_bin = /[01]/;
+ var digit_oct = /[01234567]/;
+ var digit_hex = /[0123456789abcdefABCDEF]/;
+
+ this.positionable_operators = '!= !== % & && * ** + - / : < << <= == === > >= >> >>> ? ^ | ||'.split(' ');
+ var punct = this.positionable_operators.concat(
+ // non-positionable operators - these do not follow operator position settings
+ '! %= &= *= **= ++ += , -- -= /= :: <<= = => >>= >>>= ^= |= ~ ...'.split(' '));
+
+ // words which should always start on new line.
+ this.line_starters = 'continue,try,throw,return,var,let,const,if,switch,case,default,for,while,break,function,import,export'.split(',');
+ var reserved_words = this.line_starters.concat(['do', 'in', 'of', 'else', 'get', 'set', 'new', 'catch', 'finally', 'typeof', 'yield', 'async', 'await', 'from', 'as']);
+
+ // /* ... */ comment ends with nearest */ or end of file
+ var block_comment_pattern = /([\s\S]*?)((?:\*\/)|$)/g;
+
+ // comment ends just before nearest linefeed or end of file
+ var comment_pattern = /([^\n\r\u2028\u2029]*)/g;
+
+ var directives_block_pattern = /\/\* beautify( \w+[:]\w+)+ \*\//g;
+ var directive_pattern = / (\w+)[:](\w+)/g;
+ var directives_end_ignore_pattern = /([\s\S]*?)((?:\/\*\sbeautify\signore:end\s\*\/)|$)/g;
+
+ var template_pattern = /((<\?php|<\?=)[\s\S]*?\?>)|(<%[\s\S]*?%>)/g;
+
+ var n_newlines, whitespace_before_token, in_html_comment, tokens;
+ var input;
+
+ this.tokenize = function() {
+ input = new InputScanner(input_string);
+ in_html_comment = false;
+ tokens = [];
+
+ var next, last;
+ var token_values;
+ var open = null;
+ var open_stack = [];
+ var comments = [];
+
+ while (!(last && last.type === 'TK_EOF')) {
+ token_values = tokenize_next();
+ next = new Token(token_values[1], token_values[0], n_newlines, whitespace_before_token);
+ while (next.type === 'TK_COMMENT' || next.type === 'TK_BLOCK_COMMENT' || next.type === 'TK_UNKNOWN') {
+ if (next.type === 'TK_BLOCK_COMMENT') {
+ next.directives = token_values[2];
}
+ comments.push(next);
+ token_values = tokenize_next();
+ next = new Token(token_values[1], token_values[0], n_newlines, whitespace_before_token);
+ }
- if (digit.test(c) || (c === '.' && input.testChar(digit))) {
- var allow_decimal = true;
- var allow_e = true;
- var local_digit = digit;
-
- if (c === '0' && input.testChar(/[XxOoBb]/)) {
- // switch to hex/oct/bin number, no decimal or e, just hex/oct/bin digits
- allow_decimal = false;
- allow_e = false;
- if (input.testChar(/[Bb]/)) {
- local_digit = digit_bin;
- } else if (input.testChar(/[Oo]/)) {
- local_digit = digit_oct;
- } else {
- local_digit = digit_hex;
- }
- c += input.next();
- } else if (c === '.') {
- // Already have a decimal for this literal, don't allow another
- allow_decimal = false;
- } else {
- // we know this first loop will run. It keeps the logic simpler.
- c = '';
- input.back();
- }
+ if (comments.length) {
+ next.comments_before = comments;
+ comments = [];
+ }
- // Add the digits
- while (input.testChar(local_digit)) {
- c += input.next();
+ if (next.type === 'TK_START_BLOCK' || next.type === 'TK_START_EXPR') {
+ next.parent = last;
+ open_stack.push(open);
+ open = next;
+ } else if ((next.type === 'TK_END_BLOCK' || next.type === 'TK_END_EXPR') &&
+ (open && (
+ (next.text === ']' && open.text === '[') ||
+ (next.text === ')' && open.text === '(') ||
+ (next.text === '}' && open.text === '{')))) {
+ next.parent = open.parent;
+ next.opened = open;
+
+ open = open_stack.pop();
+ }
- if (allow_decimal && input.peek() === '.') {
- c += input.next();
- allow_decimal = false;
- }
+ tokens.push(next);
+ last = next;
+ }
- // a = 1.e-7 is valid, so we test for . then e in one loop
- if (allow_e && input.testChar(/[Ee]/)) {
- c += input.next();
+ return tokens;
+ };
- if (input.testChar(/[+-]/)) {
- c += input.next();
- }
+ function get_directives(text) {
+ if (!text.match(directives_block_pattern)) {
+ return null;
+ }
- allow_e = false;
- allow_decimal = false;
- }
- }
+ var directives = {};
+ directive_pattern.lastIndex = 0;
+ var directive_match = directive_pattern.exec(text);
+
+ while (directive_match) {
+ directives[directive_match[1]] = directive_match[2];
+ directive_match = directive_pattern.exec(text);
+ }
+
+ return directives;
+ }
+
+ function tokenize_next() {
+ var resulting_string;
+ var whitespace_on_this_line = [];
+
+ n_newlines = 0;
+ whitespace_before_token = '';
+
+ var c = input.next();
- return [c, 'TK_WORD'];
+ if (c === null) {
+ return ['', 'TK_EOF'];
+ }
+
+ var last_token;
+ if (tokens.length) {
+ last_token = tokens[tokens.length - 1];
+ } else {
+ // For the sake of tokenizing we can pretend that there was on open brace to start
+ last_token = new Token('TK_START_BLOCK', '{');
+ }
+
+ while (in_array(c, whitespace)) {
+
+ if (acorn.newline.test(c)) {
+ if (!(c === '\n' && input.peek(-2) === '\r')) {
+ n_newlines += 1;
+ whitespace_on_this_line = [];
}
+ } else {
+ whitespace_on_this_line.push(c);
+ }
- if (acorn.isIdentifierStart(input.peekCharCode(-1))) {
- if (input.hasNext()) {
- while (acorn.isIdentifierChar(input.peekCharCode())) {
- c += input.next();
- if (!input.hasNext()) {
- break;
- }
- }
- }
+ c = input.next();
- if (!(last_token.type === 'TK_DOT' ||
- (last_token.type === 'TK_RESERVED' && in_array(last_token.text, ['set', 'get']))) &&
- in_array(c, reserved_words)) {
- if (c === 'in' || c === 'of') { // hack for 'in' and 'of' operators
- return [c, 'TK_OPERATOR'];
- }
- return [c, 'TK_RESERVED'];
- }
+ if (c === null) {
+ return ['', 'TK_EOF'];
+ }
+ }
- return [c, 'TK_WORD'];
+ if (whitespace_on_this_line.length) {
+ whitespace_before_token = whitespace_on_this_line.join('');
+ }
+
+ if (digit.test(c) || (c === '.' && input.testChar(digit))) {
+ var allow_decimal = true;
+ var allow_e = true;
+ var local_digit = digit;
+
+ if (c === '0' && input.testChar(/[XxOoBb]/)) {
+ // switch to hex/oct/bin number, no decimal or e, just hex/oct/bin digits
+ allow_decimal = false;
+ allow_e = false;
+ if (input.testChar(/[Bb]/)) {
+ local_digit = digit_bin;
+ } else if (input.testChar(/[Oo]/)) {
+ local_digit = digit_oct;
+ } else {
+ local_digit = digit_hex;
}
+ c += input.next();
+ } else if (c === '.') {
+ // Already have a decimal for this literal, don't allow another
+ allow_decimal = false;
+ } else {
+ // we know this first loop will run. It keeps the logic simpler.
+ c = '';
+ input.back();
+ }
- if (c === '(' || c === '[') {
- return [c, 'TK_START_EXPR'];
+ // Add the digits
+ while (input.testChar(local_digit)) {
+ c += input.next();
+
+ if (allow_decimal && input.peek() === '.') {
+ c += input.next();
+ allow_decimal = false;
}
- if (c === ')' || c === ']') {
- return [c, 'TK_END_EXPR'];
+ // a = 1.e-7 is valid, so we test for . then e in one loop
+ if (allow_e && input.testChar(/[Ee]/)) {
+ c += input.next();
+
+ if (input.testChar(/[+-]/)) {
+ c += input.next();
+ }
+
+ allow_e = false;
+ allow_decimal = false;
}
+ }
- if (c === '{') {
- return [c, 'TK_START_BLOCK'];
+ return [c, 'TK_WORD'];
+ }
+
+ if (acorn.isIdentifierStart(input.peekCharCode(-1))) {
+ if (input.hasNext()) {
+ while (acorn.isIdentifierChar(input.peekCharCode())) {
+ c += input.next();
+ if (!input.hasNext()) {
+ break;
+ }
}
+ }
- if (c === '}') {
- return [c, 'TK_END_BLOCK'];
+ if (!(last_token.type === 'TK_DOT' ||
+ (last_token.type === 'TK_RESERVED' && in_array(last_token.text, ['set', 'get']))) &&
+ in_array(c, reserved_words)) {
+ if (c === 'in' || c === 'of') { // hack for 'in' and 'of' operators
+ return [c, 'TK_OPERATOR'];
}
+ return [c, 'TK_RESERVED'];
+ }
+
+ return [c, 'TK_WORD'];
+ }
+
+ if (c === '(' || c === '[') {
+ return [c, 'TK_START_EXPR'];
+ }
+
+ if (c === ')' || c === ']') {
+ return [c, 'TK_END_EXPR'];
+ }
- if (c === ';') {
- return [c, 'TK_SEMICOLON'];
+ if (c === '{') {
+ return [c, 'TK_START_BLOCK'];
+ }
+
+ if (c === '}') {
+ return [c, 'TK_END_BLOCK'];
+ }
+
+ if (c === ';') {
+ return [c, 'TK_SEMICOLON'];
+ }
+
+ if (c === '/') {
+ var comment = '';
+ var comment_match;
+ // peek for comment /* ... */
+ if (input.peek() === '*') {
+ input.next();
+ comment_match = input.match(block_comment_pattern);
+ comment = '/*' + comment_match[0];
+ var directives = get_directives(comment);
+ if (directives && directives.ignore === 'start') {
+ comment_match = input.match(directives_end_ignore_pattern);
+ comment += comment_match[0];
}
+ comment = comment.replace(acorn.allLineBreaks, '\n');
+ return [comment, 'TK_BLOCK_COMMENT', directives];
+ }
+ // peek for comment // ...
+ if (input.peek() === '/') {
+ input.next();
+ comment_match = input.match(comment_pattern);
+ comment = '//' + comment_match[0];
+ return [comment, 'TK_COMMENT'];
+ }
- if (c === '/') {
- var comment = '';
- var comment_match;
- // peek for comment /* ... */
- if (input.peek() === '*') {
- input.next();
- comment_match = input.match(block_comment_pattern);
- comment = '/*' + comment_match[0];
- var directives = get_directives(comment);
- if (directives && directives.ignore === 'start') {
- comment_match = input.match(directives_end_ignore_pattern);
- comment += comment_match[0];
+ }
+
+ var startXmlRegExp = /<()([-a-zA-Z:0-9_.]+|{[\s\S]+?}|!\[CDATA\[[\s\S]*?\]\])(\s+{[\s\S]+?}|\s+[-a-zA-Z:0-9_.]+|\s+[-a-zA-Z:0-9_.]+\s*=\s*('[^']*'|"[^"]*"|{[\s\S]+?}))*\s*(\/?)\s*>/g;
+
+ if (c === '`' || c === "'" || c === '"' || // string
+ (
+ (c === '/') || // regexp
+ (opts.e4x && c === "<" && input.test(startXmlRegExp, -1)) // xml
+ ) && ( // regex and xml can only appear in specific locations during parsing
+ (last_token.type === 'TK_RESERVED' && in_array(last_token.text, ['return', 'case', 'throw', 'else', 'do', 'typeof', 'yield'])) ||
+ (last_token.type === 'TK_END_EXPR' && last_token.text === ')' &&
+ last_token.parent && last_token.parent.type === 'TK_RESERVED' && in_array(last_token.parent.text, ['if', 'while', 'for'])) ||
+ (in_array(last_token.type, ['TK_COMMENT', 'TK_START_EXPR', 'TK_START_BLOCK',
+ 'TK_END_BLOCK', 'TK_OPERATOR', 'TK_EQUALS', 'TK_EOF', 'TK_SEMICOLON', 'TK_COMMA'
+ ]))
+ )) {
+
+ var sep = c,
+ esc = false,
+ has_char_escapes = false;
+
+ resulting_string = c;
+
+ if (sep === '/') {
+ //
+ // handle regexp
+ //
+ var in_char_class = false;
+ while (input.hasNext() &&
+ ((esc || in_char_class || input.peek() !== sep) &&
+ !input.testChar(acorn.newline))) {
+ resulting_string += input.peek();
+ if (!esc) {
+ esc = input.peek() === '\\';
+ if (input.peek() === '[') {
+ in_char_class = true;
+ } else if (input.peek() === ']') {
+ in_char_class = false;
}
- comment = comment.replace(acorn.allLineBreaks, '\n');
- return [comment, 'TK_BLOCK_COMMENT', directives];
- }
- // peek for comment // ...
- if (input.peek() === '/') {
- input.next();
- comment_match = input.match(comment_pattern);
- comment = '//' + comment_match[0];
- return [comment, 'TK_COMMENT'];
+ } else {
+ esc = false;
}
-
+ input.next();
}
-
- var startXmlRegExp = /<()([-a-zA-Z:0-9_.]+|{[\s\S]+?}|!\[CDATA\[[\s\S]*?\]\])(\s+{[\s\S]+?}|\s+[-a-zA-Z:0-9_.]+|\s+[-a-zA-Z:0-9_.]+\s*=\s*('[^']*'|"[^"]*"|{[\s\S]+?}))*\s*(\/?)\s*>/g;
-
- if (c === '`' || c === "'" || c === '"' || // string
- (
- (c === '/') || // regexp
- (opts.e4x && c === "<" && input.test(startXmlRegExp, -1)) // xml
- ) && ( // regex and xml can only appear in specific locations during parsing
- (last_token.type === 'TK_RESERVED' && in_array(last_token.text, ['return', 'case', 'throw', 'else', 'do', 'typeof', 'yield'])) ||
- (last_token.type === 'TK_END_EXPR' && last_token.text === ')' &&
- last_token.parent && last_token.parent.type === 'TK_RESERVED' && in_array(last_token.parent.text, ['if', 'while', 'for'])) ||
- (in_array(last_token.type, ['TK_COMMENT', 'TK_START_EXPR', 'TK_START_BLOCK',
- 'TK_END_BLOCK', 'TK_OPERATOR', 'TK_EQUALS', 'TK_EOF', 'TK_SEMICOLON', 'TK_COMMA'
- ]))
- )) {
-
- var sep = c,
- esc = false,
- has_char_escapes = false;
-
- resulting_string = c;
-
- if (sep === '/') {
- //
- // handle regexp
- //
- var in_char_class = false;
- while (input.hasNext() &&
- ((esc || in_char_class || input.peek() !== sep) &&
- !input.testChar(acorn.newline))) {
- resulting_string += input.peek();
- if (!esc) {
- esc = input.peek() === '\\';
- if (input.peek() === '[') {
- in_char_class = true;
- } else if (input.peek() === ']') {
- in_char_class = false;
- }
+ } else if (opts.e4x && sep === '<') {
+ //
+ // handle e4x xml literals
+ //
+
+ var xmlRegExp = /[\s\S]*?<(\/?)([-a-zA-Z:0-9_.]+|{[\s\S]+?}|!\[CDATA\[[\s\S]*?\]\])(\s+{[\s\S]+?}|\s+[-a-zA-Z:0-9_.]+|\s+[-a-zA-Z:0-9_.]+\s*=\s*('[^']*'|"[^"]*"|{[\s\S]+?}))*\s*(\/?)\s*>/g;
+ input.back();
+ var xmlStr = '';
+ var match = input.match(startXmlRegExp);
+ if (match) {
+ // Trim root tag to attempt to
+ var rootTag = match[2].replace(/^{\s+/, '{').replace(/\s+}$/, '}');
+ var isCurlyRoot = rootTag.indexOf('{') === 0;
+ var depth = 0;
+ while (match) {
+ var isEndTag = !!match[1];
+ var tagName = match[2];
+ var isSingletonTag = (!!match[match.length - 1]) || (tagName.slice(0, 8) === "![CDATA[");
+ if (!isSingletonTag &&
+ (tagName === rootTag || (isCurlyRoot && tagName.replace(/^{\s+/, '{').replace(/\s+}$/, '}')))) {
+ if (isEndTag) {
+ --depth;
} else {
- esc = false;
+ ++depth;
}
- input.next();
}
- } else if (opts.e4x && sep === '<') {
- //
- // handle e4x xml literals
- //
-
- var xmlRegExp = /[\s\S]*?<(\/?)([-a-zA-Z:0-9_.]+|{[\s\S]+?}|!\[CDATA\[[\s\S]*?\]\])(\s+{[\s\S]+?}|\s+[-a-zA-Z:0-9_.]+|\s+[-a-zA-Z:0-9_.]+\s*=\s*('[^']*'|"[^"]*"|{[\s\S]+?}))*\s*(\/?)\s*>/g;
- input.back();
- var xmlStr = '';
- var match = input.match(startXmlRegExp);
- if (match) {
- // Trim root tag to attempt to
- var rootTag = match[2].replace(/^{\s+/, '{').replace(/\s+}$/, '}');
- var isCurlyRoot = rootTag.indexOf('{') === 0;
- var depth = 0;
- while (match) {
- var isEndTag = !!match[1];
- var tagName = match[2];
- var isSingletonTag = (!!match[match.length - 1]) || (tagName.slice(0, 8) === "![CDATA[");
- if (!isSingletonTag &&
- (tagName === rootTag || (isCurlyRoot && tagName.replace(/^{\s+/, '{').replace(/\s+}$/, '}')))) {
- if (isEndTag) {
- --depth;
- } else {
- ++depth;
- }
- }
- xmlStr += match[0];
- if (depth <= 0) {
- break;
- }
- match = input.match(xmlRegExp);
- }
- // if we didn't close correctly, keep unformatted.
- if (!match) {
- xmlStr += input.match(/[\s\S]*/g)[0];
- }
- xmlStr = xmlStr.replace(acorn.allLineBreaks, '\n');
- return [xmlStr, "TK_STRING"];
+ xmlStr += match[0];
+ if (depth <= 0) {
+ break;
+ }
+ match = input.match(xmlRegExp);
+ }
+ // if we didn't close correctly, keep unformatted.
+ if (!match) {
+ xmlStr += input.match(/[\s\S]*/g)[0];
+ }
+ xmlStr = xmlStr.replace(acorn.allLineBreaks, '\n');
+ return [xmlStr, "TK_STRING"];
+ }
+ } else {
+ //
+ // handle string
+ //
+ var parse_string = function(delimiter, allow_unescaped_newlines, start_sub) {
+ // Template strings can travers lines without escape characters.
+ // Other strings cannot
+ var current_char;
+ while (input.hasNext()) {
+ current_char = input.peek();
+ if (!(esc || (current_char !== delimiter &&
+ (allow_unescaped_newlines || !acorn.newline.test(current_char))))) {
+ break;
}
- } else {
- //
- // handle string
- //
- var parse_string = function(delimiter, allow_unescaped_newlines, start_sub) {
- // Template strings can travers lines without escape characters.
- // Other strings cannot
- var current_char;
- while (input.hasNext()) {
- current_char = input.peek();
- if (!(esc || (current_char !== delimiter &&
- (allow_unescaped_newlines || !acorn.newline.test(current_char))))) {
- break;
- }
-
- // Handle \r\n linebreaks after escapes or in template strings
- if ((esc || allow_unescaped_newlines) && acorn.newline.test(current_char)) {
- if (current_char === '\r' && input.peek(1) === '\n') {
- input.next();
- current_char = input.peek();
- }
- resulting_string += '\n';
- } else {
- resulting_string += current_char;
- }
-
- if (esc) {
- if (current_char === 'x' || current_char === 'u') {
- has_char_escapes = true;
- }
- esc = false;
- } else {
- esc = current_char === '\\';
- }
+ // Handle \r\n linebreaks after escapes or in template strings
+ if ((esc || allow_unescaped_newlines) && acorn.newline.test(current_char)) {
+ if (current_char === '\r' && input.peek(1) === '\n') {
input.next();
-
- if (start_sub && resulting_string.indexOf(start_sub, resulting_string.length - start_sub.length) !== -1) {
- if (delimiter === '`') {
- parse_string('}', allow_unescaped_newlines, '`');
- } else {
- parse_string('`', allow_unescaped_newlines, '${');
- }
-
- if (input.hasNext()) {
- resulting_string += input.next();
- }
- }
+ current_char = input.peek();
}
- };
-
- if (sep === '`') {
- parse_string('`', true, '${');
+ resulting_string += '\n';
} else {
- parse_string(sep);
+ resulting_string += current_char;
}
- }
- if (has_char_escapes && opts.unescape_strings) {
- resulting_string = unescape_string(resulting_string);
- }
+ if (esc) {
+ if (current_char === 'x' || current_char === 'u') {
+ has_char_escapes = true;
+ }
+ esc = false;
+ } else {
+ esc = current_char === '\\';
+ }
- if (input.peek() === sep) {
- resulting_string += sep;
input.next();
- if (sep === '/') {
- // regexps may have modifiers /regexp/MOD , so fetch those, too
- // Only [gim] are valid, but if the user puts in garbage, do what we can to take it.
- while (input.hasNext() && acorn.isIdentifierStart(input.peekCharCode())) {
+ if (start_sub && resulting_string.indexOf(start_sub, resulting_string.length - start_sub.length) !== -1) {
+ if (delimiter === '`') {
+ parse_string('}', allow_unescaped_newlines, '`');
+ } else {
+ parse_string('`', allow_unescaped_newlines, '${');
+ }
+
+ if (input.hasNext()) {
resulting_string += input.next();
}
}
}
- return [resulting_string, 'TK_STRING'];
- }
-
- if (c === '#') {
+ };
- if (tokens.length === 0 && input.peek() === '!') {
- // shebang
- resulting_string = c;
- while (input.hasNext() && c !== '\n') {
- c = input.next();
- resulting_string += c;
- }
- return [trim(resulting_string) + '\n', 'TK_UNKNOWN'];
- }
+ if (sep === '`') {
+ parse_string('`', true, '${');
+ } else {
+ parse_string(sep);
+ }
+ }
+ if (has_char_escapes && opts.unescape_strings) {
+ resulting_string = unescape_string(resulting_string);
+ }
+ if (input.peek() === sep) {
+ resulting_string += sep;
+ input.next();
- // Spidermonkey-specific sharp variables for circular references
- // https://developer.mozilla.org/En/Sharp_variables_in_JavaScript
- // http://mxr.mozilla.org/mozilla-central/source/js/src/jsscan.cpp around line 1935
- var sharp = '#';
- if (input.hasNext() && input.testChar(digit)) {
- do {
- c = input.next();
- sharp += c;
- } while (input.hasNext() && c !== '#' && c !== '=');
- if (c === '#') {
- //
- } else if (input.peek() === '[' && input.peek(1) === ']') {
- sharp += '[]';
- input.next();
- input.next();
- } else if (input.peek() === '{' && input.peek(1) === '}') {
- sharp += '{}';
- input.next();
- input.next();
- }
- return [sharp, 'TK_WORD'];
+ if (sep === '/') {
+ // regexps may have modifiers /regexp/MOD , so fetch those, too
+ // Only [gim] are valid, but if the user puts in garbage, do what we can to take it.
+ while (input.hasNext() && acorn.isIdentifierStart(input.peekCharCode())) {
+ resulting_string += input.next();
}
}
+ }
+ return [resulting_string, 'TK_STRING'];
+ }
- if (c === '<' && (input.peek() === '?' || input.peek() === '%')) {
- input.back();
- var template_match = input.match(template_pattern);
- if (template_match) {
- c = template_match[0];
- c = c.replace(acorn.allLineBreaks, '\n');
- return [c, 'TK_STRING'];
- }
- }
+ if (c === '#') {
- if (c === '<' && input.match(/\!--/g)) {
- c = '', 'TK_COMMENT'];
- }
- if (c === '.') {
- if (input.peek() === '.' && input.peek(1) === '.') {
- c += input.next() + input.next();
- return [c, 'TK_OPERATOR'];
- }
- return [c, 'TK_DOT'];
+
+ // Spidermonkey-specific sharp variables for circular references
+ // https://developer.mozilla.org/En/Sharp_variables_in_JavaScript
+ // http://mxr.mozilla.org/mozilla-central/source/js/src/jsscan.cpp around line 1935
+ var sharp = '#';
+ if (input.hasNext() && input.testChar(digit)) {
+ do {
+ c = input.next();
+ sharp += c;
+ } while (input.hasNext() && c !== '#' && c !== '=');
+ if (c === '#') {
+ //
+ } else if (input.peek() === '[' && input.peek(1) === ']') {
+ sharp += '[]';
+ input.next();
+ input.next();
+ } else if (input.peek() === '{' && input.peek(1) === '}') {
+ sharp += '{}';
+ input.next();
+ input.next();
}
+ return [sharp, 'TK_WORD'];
+ }
+ }
- if (in_array(c, punct)) {
- while (input.hasNext() && in_array(c + input.peek(), punct)) {
- c += input.next();
- if (!input.hasNext()) {
- break;
- }
- }
+ if (c === '<' && (input.peek() === '?' || input.peek() === '%')) {
+ input.back();
+ var template_match = input.match(template_pattern);
+ if (template_match) {
+ c = template_match[0];
+ c = c.replace(acorn.allLineBreaks, '\n');
+ return [c, 'TK_STRING'];
+ }
+ }
- if (c === ',') {
- return [c, 'TK_COMMA'];
- } else if (c === '=') {
- return [c, 'TK_EQUALS'];
- } else {
- return [c, 'TK_OPERATOR'];
- }
- }
+ if (c === '<' && input.match(/\!--/g)) {
+ c = '', 'TK_COMMENT'];
+ }
+
+ if (c === '.') {
+ if (input.peek() === '.' && input.peek(1) === '.') {
+ c += input.next() + input.next();
+ return [c, 'TK_OPERATOR'];
+ }
+ return [c, 'TK_DOT'];
+ }
- return [c, 'TK_UNKNOWN'];
+ if (in_array(c, punct)) {
+ while (input.hasNext() && in_array(c + input.peek(), punct)) {
+ c += input.next();
+ if (!input.hasNext()) {
+ break;
+ }
}
+ if (c === ',') {
+ return [c, 'TK_COMMA'];
+ } else if (c === '=') {
+ return [c, 'TK_EQUALS'];
+ } else {
+ return [c, 'TK_OPERATOR'];
+ }
+ }
- function unescape_string(s) {
- // You think that a regex would work for this
- // return s.replace(/\\x([0-9a-f]{2})/gi, function(match, val) {
- // return String.fromCharCode(parseInt(val, 16));
- // })
- // However, dealing with '\xff', '\\xff', '\\\xff' makes this more fun.
- var out = '',
- escaped = 0;
+ return [c, 'TK_UNKNOWN'];
+ }
- var input_scan = new InputScanner(s);
- var matched = null;
- while (input_scan.hasNext()) {
- // Keep any whitespace, non-slash characters
- // also keep slash pairs.
- matched = input_scan.match(/([\s]|[^\\]|\\\\)+/g);
+ function unescape_string(s) {
+ // You think that a regex would work for this
+ // return s.replace(/\\x([0-9a-f]{2})/gi, function(match, val) {
+ // return String.fromCharCode(parseInt(val, 16));
+ // })
+ // However, dealing with '\xff', '\\xff', '\\\xff' makes this more fun.
+ var out = '',
+ escaped = 0;
- if (matched) {
- out += matched[0];
- }
+ var input_scan = new InputScanner(s);
+ var matched = null;
- if (input_scan.peek() === '\\') {
- input_scan.next();
- if (input_scan.peek() === 'x') {
- matched = input_scan.match(/x([0-9A-Fa-f]{2})/g);
- } else if (input_scan.peek() === 'u') {
- matched = input_scan.match(/u([0-9A-Fa-f]{4})/g);
- } else {
- out += '\\';
- if (input_scan.hasNext()) {
- out += input_scan.next();
- }
- continue;
- }
+ while (input_scan.hasNext()) {
+ // Keep any whitespace, non-slash characters
+ // also keep slash pairs.
+ matched = input_scan.match(/([\s]|[^\\]|\\\\)+/g);
- // If there's some error decoding, return the original string
- if (!matched) {
- return s;
- }
+ if (matched) {
+ out += matched[0];
+ }
- escaped = parseInt(matched[1], 16);
-
- if (escaped > 0x7e && escaped <= 0xff && matched[0].indexOf('x') === 0) {
- // we bail out on \x7f..\xff,
- // leaving whole string escaped,
- // as it's probably completely binary
- return s;
- } else if (escaped >= 0x00 && escaped < 0x20) {
- // leave 0x00...0x1f escaped
- out += '\\' + matched[0];
- continue;
- } else if (escaped === 0x22 || escaped === 0x27 || escaped === 0x5c) {
- // single-quote, apostrophe, backslash - escape these
- out += '\\' + String.fromCharCode(escaped);
- } else {
- out += String.fromCharCode(escaped);
- }
+ if (input_scan.peek() === '\\') {
+ input_scan.next();
+ if (input_scan.peek() === 'x') {
+ matched = input_scan.match(/x([0-9A-Fa-f]{2})/g);
+ } else if (input_scan.peek() === 'u') {
+ matched = input_scan.match(/u([0-9A-Fa-f]{4})/g);
+ } else {
+ out += '\\';
+ if (input_scan.hasNext()) {
+ out += input_scan.next();
}
+ continue;
+ }
+
+ // If there's some error decoding, return the original string
+ if (!matched) {
+ return s;
}
- return out;
+ escaped = parseInt(matched[1], 16);
+
+ if (escaped > 0x7e && escaped <= 0xff && matched[0].indexOf('x') === 0) {
+ // we bail out on \x7f..\xff,
+ // leaving whole string escaped,
+ // as it's probably completely binary
+ return s;
+ } else if (escaped >= 0x00 && escaped < 0x20) {
+ // leave 0x00...0x1f escaped
+ out += '\\' + matched[0];
+ continue;
+ } else if (escaped === 0x22 || escaped === 0x27 || escaped === 0x5c) {
+ // single-quote, apostrophe, backslash - escape these
+ out += '\\' + String.fromCharCode(escaped);
+ } else {
+ out += String.fromCharCode(escaped);
+ }
}
}
- var beautifier = new Beautifier(js_source_text, options);
- return beautifier.beautify();
-
+ return out;
}
+}
- if (true) {
- // Add support for AMD ( https://github.com/amdjs/amdjs-api/wiki/AMD#defineamd-property- )
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() {
- return { js_beautify: js_beautify };
- }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
+module.exports.Tokenizer = Tokenizer;
+
+/***/ })
+/******/ ]);
+var js_beautify = legacy_beautify_js;
+/* Footer */
+if (true) {
+ // Add support for AMD ( https://github.com/amdjs/amdjs-api/wiki/AMD#defineamd-property- )
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() {
+ return { js_beautify: js_beautify };
+ }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
- } else if (typeof exports !== "undefined") {
- // Add support for CommonJS. Just put this file somewhere on your require.paths
- // and you will be able to `var js_beautify = require("beautify").js_beautify`.
- exports.js_beautify = js_beautify;
- } else if (typeof window !== "undefined") {
- // If we're running a web page and don't have either of the above, add our one global
- window.js_beautify = js_beautify;
- } else if (typeof global !== "undefined") {
- // If we don't even have window, try global.
- global.js_beautify = js_beautify;
- }
+} else if (typeof exports !== "undefined") {
+ // Add support for CommonJS. Just put this file somewhere on your require.paths
+ // and you will be able to `var js_beautify = require("beautify").js_beautify`.
+ exports.js_beautify = js_beautify;
+} else if (typeof window !== "undefined") {
+ // If we're running a web page and don't have either of the above, add our one global
+ window.js_beautify = js_beautify;
+} else if (typeof global !== "undefined") {
+ // If we don't even have window, try global.
+ global.js_beautify = js_beautify;
+}
}());
+
/***/ }),
-/* 147 */
+/* 146 */
/***/ (function(module, exports, __webpack_require__) {
-var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*jshint curly:true, eqeqeq:true, laxbreak:true, noempty:false */
+var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*jshint curly:false, eqeqeq:true, laxbreak:true, noempty:false */
+/* AUTO-GENERATED. DO NOT MODIFY. */
/*
The MIT License (MIT)
@@ -34861,7 +35225,6 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*jshint curly:t
The options are (default in brackets):
indent_size (4) — indentation size,
indent_char (space) — character to indent with,
- preserve_newlines (default false) - whether existing line breaks should be preserved,
selector_separator_newline (true) - separate selectors with newline or
not (e.g. "a,\nbr" or "a, br")
end_with_newline (false) - end with a newline
@@ -34884,256 +35247,320 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*jshint curly:t
// http://www.w3.org/TR/css3-syntax/
(function() {
+var legacy_beautify_css =
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // identity function for calling harmony imports with the correct context
+/******/ __webpack_require__.i = function(value) { return value; };
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = 4);
+/******/ })
+/************************************************************************/
+/******/ ([
+/* 0 */
+/***/ (function(module, exports, __webpack_require__) {
- function mergeOpts(allOptions, targetType) {
- var finalOpts = {};
- var name;
+/*jshint curly:true, eqeqeq:true, laxbreak:true, noempty:false */
+/*
- for (name in allOptions) {
- if (name !== targetType) {
- finalOpts[name] = allOptions[name];
- }
- }
+ The MIT License (MIT)
+ Copyright (c) 2007-2017 Einar Lielmanis, Liam Newman, and contributors.
- //merge in the per type settings for the targetType
- if (targetType in allOptions) {
- for (name in allOptions[targetType]) {
- finalOpts[name] = allOptions[targetType][name];
- }
- }
- return finalOpts;
- }
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation files
+ (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge,
+ publish, distribute, sublicense, and/or sell copies of the Software,
+ and to permit persons to whom the Software is furnished to do so,
+ subject to the following conditions:
- var lineBreak = /\r\n|[\n\r\u2028\u2029]/;
- var allLineBreaks = new RegExp(lineBreak.source, 'g');
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
- function css_beautify(source_text, options) {
- options = options || {};
+var mergeOpts = __webpack_require__(2).mergeOpts;
+var acorn = __webpack_require__(1);
+var Output = __webpack_require__(3).Output;
- // Allow the setting of language/file-type specific options
- // with inheritance of overall settings
- options = mergeOpts(options, 'css');
- source_text = source_text || '';
+var lineBreak = acorn.lineBreak;
+var allLineBreaks = acorn.allLineBreaks;
- var newlinesFromLastWSEat = 0;
- var indentSize = options.indent_size ? parseInt(options.indent_size, 10) : 4;
- var indentCharacter = options.indent_char || ' ';
- var preserve_newlines = (options.preserve_newlines === undefined) ? false : options.preserve_newlines;
- var selectorSeparatorNewline = (options.selector_separator_newline === undefined) ? true : options.selector_separator_newline;
- var end_with_newline = (options.end_with_newline === undefined) ? false : options.end_with_newline;
- var newline_between_rules = (options.newline_between_rules === undefined) ? true : options.newline_between_rules;
- var space_around_combinator = (options.space_around_combinator === undefined) ? false : options.space_around_combinator;
- space_around_combinator = space_around_combinator || ((options.space_around_selector_separator === undefined) ? false : options.space_around_selector_separator);
- var eol = options.eol ? options.eol : 'auto';
+function Beautifier(source_text, options) {
+ options = options || {};
- if (options.indent_with_tabs) {
- indentCharacter = '\t';
- indentSize = 1;
- }
+ // Allow the setting of language/file-type specific options
+ // with inheritance of overall settings
+ options = mergeOpts(options, 'css');
- if (eol === 'auto') {
- eol = '\n';
- if (source_text && lineBreak.test(source_text || '')) {
- eol = source_text.match(lineBreak)[0];
- }
+ source_text = source_text || '';
+
+ var newlinesFromLastWSEat = 0;
+ var indentSize = options.indent_size ? parseInt(options.indent_size, 10) : 4;
+ var indentCharacter = options.indent_char || ' ';
+ var preserve_newlines = (options.preserve_newlines === undefined) ? false : options.preserve_newlines;
+ var selectorSeparatorNewline = (options.selector_separator_newline === undefined) ? true : options.selector_separator_newline;
+ var end_with_newline = (options.end_with_newline === undefined) ? false : options.end_with_newline;
+ var newline_between_rules = (options.newline_between_rules === undefined) ? true : options.newline_between_rules;
+ var space_around_combinator = (options.space_around_combinator === undefined) ? false : options.space_around_combinator;
+ space_around_combinator = space_around_combinator || ((options.space_around_selector_separator === undefined) ? false : options.space_around_selector_separator);
+ var eol = options.eol ? options.eol : 'auto';
+
+ if (options.indent_with_tabs) {
+ indentCharacter = '\t';
+ indentSize = 1;
+ }
+
+ if (eol === 'auto') {
+ eol = '\n';
+ if (source_text && lineBreak.test(source_text || '')) {
+ eol = source_text.match(lineBreak)[0];
}
+ }
+
+ eol = eol.replace(/\\r/, '\r').replace(/\\n/, '\n');
- eol = eol.replace(/\\r/, '\r').replace(/\\n/, '\n');
+ // HACK: newline parsing inconsistent. This brute force normalizes the input.
+ source_text = source_text.replace(allLineBreaks, '\n');
- // HACK: newline parsing inconsistent. This brute force normalizes the input.
- source_text = source_text.replace(allLineBreaks, '\n');
+ // tokenizer
+ var whiteRe = /^\s+$/;
- // tokenizer
- var whiteRe = /^\s+$/;
+ var pos = -1,
+ ch;
+ var parenLevel = 0;
- var pos = -1,
- ch;
- var parenLevel = 0;
+ function next() {
+ ch = source_text.charAt(++pos);
+ return ch || '';
+ }
- function next() {
- ch = source_text.charAt(++pos);
- return ch || '';
+ function peek(skipWhitespace) {
+ var result = '';
+ var prev_pos = pos;
+ if (skipWhitespace) {
+ eatWhitespace();
}
+ result = source_text.charAt(pos + 1) || '';
+ pos = prev_pos - 1;
+ next();
+ return result;
+ }
- function peek(skipWhitespace) {
- var result = '';
- var prev_pos = pos;
- if (skipWhitespace) {
- eatWhitespace();
+ function eatString(endChars) {
+ var start = pos;
+ while (next()) {
+ if (ch === "\\") {
+ next();
+ } else if (endChars.indexOf(ch) !== -1) {
+ break;
+ } else if (ch === "\n") {
+ break;
}
- result = source_text.charAt(pos + 1) || '';
- pos = prev_pos - 1;
- next();
- return result;
}
+ return source_text.substring(start, pos + 1);
+ }
- function eatString(endChars) {
- var start = pos;
- while (next()) {
- if (ch === "\\") {
- next();
- } else if (endChars.indexOf(ch) !== -1) {
- break;
- } else if (ch === "\n") {
- break;
- }
+ function peekString(endChar) {
+ var prev_pos = pos;
+ var str = eatString(endChar);
+ pos = prev_pos - 1;
+ next();
+ return str;
+ }
+
+ function eatWhitespace(preserve_newlines_local) {
+ var result = 0;
+ while (whiteRe.test(peek())) {
+ next();
+ if (ch === '\n' && preserve_newlines_local && preserve_newlines) {
+ output.add_new_line(true);
+ result++;
}
- return source_text.substring(start, pos + 1);
}
+ newlinesFromLastWSEat = result;
+ return result;
+ }
- function peekString(endChar) {
- var prev_pos = pos;
- var str = eatString(endChar);
- pos = prev_pos - 1;
- next();
- return str;
+ function skipWhitespace() {
+ var result = '';
+ if (ch && whiteRe.test(ch)) {
+ result = ch;
}
+ while (whiteRe.test(next())) {
+ result += ch;
+ }
+ return result;
+ }
- function eatWhitespace(preserve_newlines_local) {
- var result = 0;
- while (whiteRe.test(peek())) {
+ function eatComment() {
+ var start = pos;
+ var singleLine = peek() === "/";
+ next();
+ while (next()) {
+ if (!singleLine && ch === "*" && peek() === "/") {
next();
- if (ch === '\n' && preserve_newlines_local && preserve_newlines) {
- print.newLine(true);
- result++;
- }
+ break;
+ } else if (singleLine && ch === "\n") {
+ return source_text.substring(start, pos);
}
- newlinesFromLastWSEat = result;
- return result;
}
- function skipWhitespace() {
- var result = '';
- if (ch && whiteRe.test(ch)) {
- result = ch;
- }
- while (whiteRe.test(next())) {
- result += ch;
- }
- return result;
- }
+ return source_text.substring(start, pos) + ch;
+ }
- function eatComment(singleLine) {
- var start = pos;
- singleLine = peek() === "/";
- next();
- while (next()) {
- if (!singleLine && ch === "*" && peek() === "/") {
- next();
- break;
- } else if (singleLine && ch === "\n") {
- return source_text.substring(start, pos);
+
+ function lookBack(str) {
+ return source_text.substring(pos - str.length, pos).toLowerCase() ===
+ str;
+ }
+
+ // Nested pseudo-class if we are insideRule
+ // and the next special character found opens
+ // a new block
+ function foundNestedPseudoClass() {
+ var openParen = 0;
+ for (var i = pos + 1; i < source_text.length; i++) {
+ var ch = source_text.charAt(i);
+ if (ch === "{") {
+ return true;
+ } else if (ch === '(') {
+ // pseudoclasses can contain ()
+ openParen += 1;
+ } else if (ch === ')') {
+ if (openParen === 0) {
+ return false;
}
+ openParen -= 1;
+ } else if (ch === ";" || ch === "}") {
+ return false;
}
+ }
+ return false;
+ }
- return source_text.substring(start, pos) + ch;
+ // printer
+ var baseIndentString = '';
+ var preindent_index = 0;
+ if (source_text && source_text.length) {
+ while ((source_text.charAt(preindent_index) === ' ' ||
+ source_text.charAt(preindent_index) === '\t')) {
+ preindent_index += 1;
}
+ baseIndentString = source_text.substring(0, preindent_index);
+ js_source_text = source_text.substring(preindent_index);
+ }
- function lookBack(str) {
- return source_text.substring(pos - str.length, pos).toLowerCase() ===
- str;
- }
+ var singleIndent = new Array(indentSize + 1).join(indentCharacter);
+ var indentLevel;
+ var nestedLevel;
+ var output;
- // Nested pseudo-class if we are insideRule
- // and the next special character found opens
- // a new block
- function foundNestedPseudoClass() {
- var openParen = 0;
- for (var i = pos + 1; i < source_text.length; i++) {
- var ch = source_text.charAt(i);
- if (ch === "{") {
- return true;
- } else if (ch === '(') {
- // pseudoclasses can contain ()
- openParen += 1;
- } else if (ch === ')') {
- if (openParen === 0) {
- return false;
- }
- openParen -= 1;
- } else if (ch === ";" || ch === "}") {
- return false;
- }
- }
- return false;
+ function print_string(output_string) {
+ if (output.just_added_newline()) {
+ output.set_indent(indentLevel);
}
+ output.add_token(output_string);
+ }
- // printer
- var basebaseIndentString = source_text.match(/^[\t ]*/)[0];
- var singleIndent = new Array(indentSize + 1).join(indentCharacter);
- var indentLevel = 0;
- var nestedLevel = 0;
-
- function indent() {
- indentLevel++;
- basebaseIndentString += singleIndent;
+ function preserveSingleSpace(isAfterSpace) {
+ if (isAfterSpace) {
+ output.space_before_token = true;
}
+ }
+
+ function indent() {
+ indentLevel++;
+ }
- function outdent() {
+ function outdent() {
+ if (indentLevel > 0) {
indentLevel--;
- basebaseIndentString = basebaseIndentString.slice(0, -indentSize);
}
+ }
- var print = {};
- print["{"] = function(ch) {
- print.singleSpace();
- output.push(ch);
- if (!eatWhitespace(true)) {
- print.newLine();
- }
- };
- print["}"] = function(newline) {
- if (newline) {
- print.newLine();
- }
- output.push('}');
- if (!eatWhitespace(true)) {
- print.newLine();
- }
- };
-
- print._lastCharWhitespace = function() {
- return whiteRe.test(output[output.length - 1]);
- };
-
- print.newLine = function(keepWhitespace) {
- if (output.length) {
- if (!keepWhitespace && output[output.length - 1] !== '\n') {
- print.trim();
- } else if (output[output.length - 1] === basebaseIndentString) {
- output.pop();
- }
- output.push('\n');
-
- if (basebaseIndentString) {
- output.push(basebaseIndentString);
- }
- }
- };
- print.singleSpace = function() {
- if (output.length && !print._lastCharWhitespace()) {
- output.push(' ');
- }
- };
-
- print.preserveSingleSpace = function() {
- if (isAfterSpace) {
- print.singleSpace();
- }
- };
-
- print.trim = function() {
- while (print._lastCharWhitespace()) {
- output.pop();
- }
- };
+ /*_____________________--------------------_____________________*/
+ this.beautify = function() {
+ // reset
+ output = new Output(singleIndent, baseIndentString);
+ indentLevel = 0;
+ nestedLevel = 0;
- var output = [];
- /*_____________________--------------------_____________________*/
+ pos = -1;
+ ch = null;
+ parenLevel = 0;
var insideRule = false;
var insidePropertyValue = false;
@@ -35154,29 +35581,29 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*jshint curly:t
var header = indentLevel === 0;
if (isAfterNewline || header) {
- print.newLine();
+ output.add_new_line();
}
- output.push(eatComment());
- print.newLine();
+ print_string(eatComment());
+ output.add_new_line();
if (header) {
- print.newLine(true);
+ output.add_new_line(true);
}
} else if (ch === '/' && peek() === '/') { // single line comment
if (!isAfterNewline && last_top_ch !== '{') {
- print.trim();
+ output.trim(true);
}
- print.singleSpace();
- output.push(eatComment());
- print.newLine();
+ output.space_before_token = true;
+ print_string(eatComment());
+ output.add_new_line();
} else if (ch === '@') {
- print.preserveSingleSpace();
+ preserveSingleSpace(isAfterSpace);
// deal with less propery mixins @{...}
if (peek() === '{') {
- output.push(eatString('}'));
+ print_string(eatString('}'));
} else {
- output.push(ch);
+ print_string(ch);
// strip trailing space, if present, for hash property checks
var variableOrRule = peekString(": ,;{}()[]/='\"");
@@ -35185,36 +35612,44 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*jshint curly:t
// we have a variable or pseudo-class, add it and insert one space before continuing
next();
variableOrRule = eatString(": ").replace(/\s$/, '');
- output.push(variableOrRule);
- print.singleSpace();
+ print_string(variableOrRule);
+ output.space_before_token = true;
}
variableOrRule = variableOrRule.replace(/\s$/, '');
// might be a nesting at-rule
- if (variableOrRule in css_beautify.NESTED_AT_RULE) {
+ if (variableOrRule in this.NESTED_AT_RULE) {
nestedLevel += 1;
- if (variableOrRule in css_beautify.CONDITIONAL_GROUP_RULE) {
+ if (variableOrRule in this.CONDITIONAL_GROUP_RULE) {
enteringConditionalGroup = true;
}
}
}
} else if (ch === '#' && peek() === '{') {
- print.preserveSingleSpace();
- output.push(eatString('}'));
+ preserveSingleSpace(isAfterSpace);
+ print_string(eatString('}'));
} else if (ch === '{') {
if (peek(true) === '}') {
eatWhitespace();
next();
- print.singleSpace();
- output.push("{");
- print['}'](false);
+ output.space_before_token = true;
+ print_string("{}");
+ if (!eatWhitespace(true)) {
+ output.add_new_line();
+ }
+
if (newlinesFromLastWSEat < 2 && newline_between_rules && indentLevel === 0) {
- print.newLine(true);
+ output.add_new_line(true);
}
} else {
indent();
- print["{"](ch);
+ output.space_before_token = true;
+ print_string(ch);
+ if (!eatWhitespace(true)) {
+ output.add_new_line();
+ }
+
// when entering conditional groups, only rulesets are allowed
if (enteringConditionalGroup) {
enteringConditionalGroup = false;
@@ -35226,14 +35661,20 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*jshint curly:t
}
} else if (ch === '}') {
outdent();
- print["}"](true);
+ output.add_new_line();
+ print_string(ch);
insideRule = false;
insidePropertyValue = false;
if (nestedLevel) {
nestedLevel--;
}
+
+ if (!eatWhitespace(true)) {
+ output.add_new_line();
+ }
+
if (newlinesFromLastWSEat < 2 && newline_between_rules && indentLevel === 0) {
- print.newLine(true);
+ output.add_new_line(true);
}
} else if (ch === ":") {
eatWhitespace();
@@ -35242,73 +35683,73 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*jshint curly:t
!lookBack("(")) {
// 'property: value' delimiter
// which could be in a conditional group query
- output.push(':');
+ print_string(':');
if (!insidePropertyValue) {
insidePropertyValue = true;
- print.singleSpace();
+ output.space_before_token = true;
}
} else {
// sass/less parent reference don't use a space
// sass nested pseudo-class don't use a space
// preserve space before pseudoclasses/pseudoelements, as it means "in any child"
- if (lookBack(" ") && output[output.length - 1] !== " ") {
- output.push(" ");
+ if (lookBack(" ")) {
+ output.space_before_token = true;
}
if (peek() === ":") {
// pseudo-element
next();
- output.push("::");
+ print_string("::");
} else {
// pseudo-class
- output.push(':');
+ print_string(':');
}
}
} else if (ch === '"' || ch === '\'') {
- print.preserveSingleSpace();
- output.push(eatString(ch));
+ preserveSingleSpace(isAfterSpace);
+ print_string(eatString(ch));
} else if (ch === ';') {
insidePropertyValue = false;
- output.push(ch);
+ print_string(ch);
if (!eatWhitespace(true)) {
- print.newLine();
+ output.add_new_line();
}
} else if (ch === '(') { // may be a url
if (lookBack("url")) {
- output.push(ch);
+ print_string(ch);
eatWhitespace();
if (next()) {
if (ch !== ')' && ch !== '"' && ch !== '\'') {
- output.push(eatString(')'));
+ print_string(eatString(')'));
} else {
pos--;
}
}
} else {
parenLevel++;
- print.preserveSingleSpace();
- output.push(ch);
+ preserveSingleSpace(isAfterSpace);
+ print_string(ch);
eatWhitespace();
}
} else if (ch === ')') {
- output.push(ch);
+ print_string(ch);
parenLevel--;
} else if (ch === ',') {
- output.push(ch);
+ print_string(ch);
if (!eatWhitespace(true) && selectorSeparatorNewline && !insidePropertyValue && parenLevel < 1) {
- print.newLine();
+ output.add_new_line();
} else {
- print.singleSpace();
+ output.space_before_token = true;
}
} else if ((ch === '>' || ch === '+' || ch === '~') &&
!insidePropertyValue && parenLevel < 1) {
//handle combinator spacing
if (space_around_combinator) {
- print.singleSpace();
- output.push(ch);
- print.singleSpace();
+ output.space_before_token = true;
+ print_string(ch);
+ output.space_before_token = true;
} else {
- output.push(ch);
+ print_string(ch);
eatWhitespace();
// squash extra whitespace
if (ch && whiteRe.test(ch)) {
@@ -35316,44 +35757,30 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*jshint curly:t
}
}
} else if (ch === ']') {
- output.push(ch);
+ print_string(ch);
} else if (ch === '[') {
- print.preserveSingleSpace();
- output.push(ch);
+ preserveSingleSpace(isAfterSpace);
+ print_string(ch);
} else if (ch === '=') { // no whitespace before or after
eatWhitespace();
- output.push('=');
+ print_string('=');
if (whiteRe.test(ch)) {
ch = '';
}
+
} else {
- print.preserveSingleSpace();
- output.push(ch);
+ preserveSingleSpace(isAfterSpace);
+ print_string(ch);
}
}
-
- var sweetCode = '';
- if (basebaseIndentString) {
- sweetCode += basebaseIndentString;
- }
-
- sweetCode += output.join('').replace(/[\r\n\t ]+$/, '');
-
- // establish end_with_newline
- if (end_with_newline) {
- sweetCode += '\n';
- }
-
- if (eol !== '\n') {
- sweetCode = sweetCode.replace(/[\n]/g, eol);
- }
+ var sweetCode = output.get_code(end_with_newline, eol);
return sweetCode;
- }
+ };
// https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule
- css_beautify.NESTED_AT_RULE = {
+ this.NESTED_AT_RULE = {
"@page": true,
"@font-face": true,
"@keyframes": true,
@@ -35362,282 +35789,535 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*jshint curly:t
"@supports": true,
"@document": true
};
- css_beautify.CONDITIONAL_GROUP_RULE = {
+ this.CONDITIONAL_GROUP_RULE = {
"@media": true,
"@supports": true,
"@document": true
};
+}
- /*global define */
- if (true) {
- // Add support for AMD ( https://github.com/amdjs/amdjs-api/wiki/AMD#defineamd-property- )
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() {
- return {
- css_beautify: css_beautify
- };
- }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
- __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
- } else if (typeof exports !== "undefined") {
- // Add support for CommonJS. Just put this file somewhere on your require.paths
- // and you will be able to `var html_beautify = require("beautify").html_beautify`.
- exports.css_beautify = css_beautify;
- } else if (typeof window !== "undefined") {
- // If we're running a web page and don't have either of the above, add our one global
- window.css_beautify = css_beautify;
- } else if (typeof global !== "undefined") {
- // If we don't even have window, try global.
- global.css_beautify = css_beautify;
- }
+module.exports.Beautifier = Beautifier;
-}());
/***/ }),
-/* 148 */
-/***/ (function(module, exports, __webpack_require__) {
+/* 1 */
+/***/ (function(module, exports) {
-"use strict";
-/* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- */
+/* jshint curly: false */
+// This section of code is taken from acorn.
+//
+// Acorn was written by Marijn Haverbeke and released under an MIT
+// license. The Unicode regexps (for identifiers and whitespace) were
+// taken from [Esprima](http://esprima.org) by Ariya Hidayat.
+//
+// Git repositories for Acorn are available at
+//
+// http://marijnhaverbeke.nl/git/acorn
+// https://github.com/marijnh/acorn.git
+// ## Character categories
+// Big ugly regular expressions that match characters in the
+// whitespace, identifier, and identifier-start categories. These
+// are only applied when a character is found to actually have a
+// code point above 128.
-var _prodInvariant = __webpack_require__(34);
+var nonASCIIwhitespace = /[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/; // jshint ignore:line
+var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc";
+var nonASCIIidentifierChars = "\u0300-\u036f\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u0620-\u0649\u0672-\u06d3\u06e7-\u06e8\u06fb-\u06fc\u0730-\u074a\u0800-\u0814\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0840-\u0857\u08e4-\u08fe\u0900-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962-\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09d7\u09df-\u09e0\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2-\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b5f-\u0b60\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62-\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2-\u0ce3\u0ce6-\u0cef\u0d02\u0d03\u0d46-\u0d48\u0d57\u0d62-\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e34-\u0e3a\u0e40-\u0e45\u0e50-\u0e59\u0eb4-\u0eb9\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f41-\u0f47\u0f71-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1029\u1040-\u1049\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u170e-\u1710\u1720-\u1730\u1740-\u1750\u1772\u1773\u1780-\u17b2\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1920-\u192b\u1930-\u193b\u1951-\u196d\u19b0-\u19c0\u19c8-\u19c9\u19d0-\u19d9\u1a00-\u1a15\u1a20-\u1a53\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1b46-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1bb0-\u1bb9\u1be6-\u1bf3\u1c00-\u1c22\u1c40-\u1c49\u1c5b-\u1c7d\u1cd0-\u1cd2\u1d00-\u1dbe\u1e01-\u1f15\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2d81-\u2d96\u2de0-\u2dff\u3021-\u3028\u3099\u309a\ua640-\ua66d\ua674-\ua67d\ua69f\ua6f0-\ua6f1\ua7f8-\ua800\ua806\ua80b\ua823-\ua827\ua880-\ua881\ua8b4-\ua8c4\ua8d0-\ua8d9\ua8f3-\ua8f7\ua900-\ua909\ua926-\ua92d\ua930-\ua945\ua980-\ua983\ua9b3-\ua9c0\uaa00-\uaa27\uaa40-\uaa41\uaa4c-\uaa4d\uaa50-\uaa59\uaa7b\uaae0-\uaae9\uaaf2-\uaaf3\uabc0-\uabe1\uabec\uabed\uabf0-\uabf9\ufb20-\ufb28\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f";
+var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
+var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
-var ReactNoopUpdateQueue = __webpack_require__(149);
+// Whether a single character denotes a newline.
-var canDefineProperty = __webpack_require__(101);
-var emptyObject = __webpack_require__(58);
-var invariant = __webpack_require__(3);
-var warning = __webpack_require__(4);
+exports.newline = /[\n\r\u2028\u2029]/;
-/**
- * Base class helpers for the updating state of a component.
- */
-function ReactComponent(props, context, updater) {
- this.props = props;
- this.context = context;
- this.refs = emptyObject;
- // We initialize the default updater but the real one gets injected by the
- // renderer.
- this.updater = updater || ReactNoopUpdateQueue;
-}
+// Matches a whole line break (where CRLF is considered a single
+// line break). Used to count lines.
-ReactComponent.prototype.isReactComponent = {};
+// in javascript, these two differ
+// in python they are the same, different methods are called on them
+exports.lineBreak = new RegExp('\r\n|' + exports.newline.source);
+exports.allLineBreaks = new RegExp(exports.lineBreak.source, 'g');
-/**
- * Sets a subset of the state. Always use this to mutate
- * state. You should treat `this.state` as immutable.
- *
- * There is no guarantee that `this.state` will be immediately updated, so
- * accessing `this.state` after calling this method may return the old value.
- *
- * There is no guarantee that calls to `setState` will run synchronously,
- * as they may eventually be batched together. You can provide an optional
- * callback that will be executed when the call to setState is actually
- * completed.
- *
- * When a function is provided to setState, it will be called at some point in
- * the future (not synchronously). It will be called with the up to date
- * component arguments (state, props, context). These values can be different
- * from this.* because your function may be called after receiveProps but before
- * shouldComponentUpdate, and this new state, props, and context will not yet be
- * assigned to this.
- *
- * @param {object|function} partialState Next partial state or function to
- * produce next partial state to be merged with current state.
- * @param {?function} callback Called after state is updated.
- * @final
- * @protected
- */
-ReactComponent.prototype.setState = function (partialState, callback) {
- !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'setState(...): takes an object of state variables to update or a function which returns an object of state variables.') : _prodInvariant('85') : void 0;
- this.updater.enqueueSetState(this, partialState);
- if (callback) {
- this.updater.enqueueCallback(this, callback, 'setState');
- }
+
+// Test whether a given character code starts an identifier.
+
+exports.isIdentifierStart = function(code) {
+ // permit $ (36) and @ (64). @ is used in ES7 decorators.
+ if (code < 65) return code === 36 || code === 64;
+ // 65 through 91 are uppercase letters.
+ if (code < 91) return true;
+ // permit _ (95).
+ if (code < 97) return code === 95;
+ // 97 through 123 are lowercase letters.
+ if (code < 123) return true;
+ return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code));
};
-/**
- * Forces an update. This should only be invoked when it is known with
- * certainty that we are **not** in a DOM transaction.
- *
- * You may want to call this when you know that some deeper aspect of the
- * component's state has changed but `setState` was not called.
- *
- * This will not invoke `shouldComponentUpdate`, but it will invoke
- * `componentWillUpdate` and `componentDidUpdate`.
- *
- * @param {?function} callback Called after update is complete.
- * @final
- * @protected
- */
-ReactComponent.prototype.forceUpdate = function (callback) {
- this.updater.enqueueForceUpdate(this);
- if (callback) {
- this.updater.enqueueCallback(this, callback, 'forceUpdate');
- }
+// Test whether a given character is part of an identifier.
+
+exports.isIdentifierChar = function(code) {
+ if (code < 48) return code === 36;
+ if (code < 58) return true;
+ if (code < 65) return false;
+ if (code < 91) return true;
+ if (code < 97) return code === 95;
+ if (code < 123) return true;
+ return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));
};
-/**
- * Deprecated APIs. These APIs used to exist on classic React classes but since
- * we would like to deprecate them, we're not going to move them over to this
- * modern base class. Instead, we define a getter that warns if it's accessed.
- */
-if (process.env.NODE_ENV !== 'production') {
- var deprecatedAPIs = {
- isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],
- replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']
- };
- var defineDeprecationWarning = function (methodName, info) {
- if (canDefineProperty) {
- Object.defineProperty(ReactComponent.prototype, methodName, {
- get: function () {
- process.env.NODE_ENV !== 'production' ? warning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]) : void 0;
- return undefined;
+
+/***/ }),
+/* 2 */
+/***/ (function(module, exports) {
+
+/*jshint curly:true, eqeqeq:true, laxbreak:true, noempty:false */
+/*
+
+ The MIT License (MIT)
+
+ Copyright (c) 2007-2017 Einar Lielmanis, Liam Newman, and contributors.
+
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation files
+ (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge,
+ publish, distribute, sublicense, and/or sell copies of the Software,
+ and to permit persons to whom the Software is furnished to do so,
+ subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
+
+function mergeOpts(allOptions, targetType) {
+ var finalOpts = {};
+ var name;
+
+ for (name in allOptions) {
+ if (name !== targetType) {
+ finalOpts[name] = allOptions[name];
}
- });
}
- };
- for (var fnName in deprecatedAPIs) {
- if (deprecatedAPIs.hasOwnProperty(fnName)) {
- defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);
+
+ //merge in the per type settings for the targetType
+ if (targetType in allOptions) {
+ for (name in allOptions[targetType]) {
+ finalOpts[name] = allOptions[targetType][name];
+ }
}
- }
+ return finalOpts;
}
-module.exports = ReactComponent;
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
+module.exports.mergeOpts = mergeOpts;
+
/***/ }),
-/* 149 */
+/* 3 */
+/***/ (function(module, exports) {
+
+/*jshint curly:true, eqeqeq:true, laxbreak:true, noempty:false */
+/*
+
+ The MIT License (MIT)
+
+ Copyright (c) 2007-2017 Einar Lielmanis, Liam Newman, and contributors.
+
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation files
+ (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge,
+ publish, distribute, sublicense, and/or sell copies of the Software,
+ and to permit persons to whom the Software is furnished to do so,
+ subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
+
+function OutputLine(parent) {
+ var _character_count = 0;
+ // use indent_count as a marker for lines that have preserved indentation
+ var _indent_count = -1;
+
+ var _items = [];
+ var _empty = true;
+
+ this.set_indent = function(level) {
+ _character_count = parent.baseIndentLength + level * parent.indent_length;
+ _indent_count = level;
+ };
+
+ this.get_character_count = function() {
+ return _character_count;
+ };
+
+ this.is_empty = function() {
+ return _empty;
+ };
+
+ this.last = function() {
+ if (!this._empty) {
+ return _items[_items.length - 1];
+ } else {
+ return null;
+ }
+ };
+
+ this.push = function(input) {
+ _items.push(input);
+ _character_count += input.length;
+ _empty = false;
+ };
+
+ this.pop = function() {
+ var item = null;
+ if (!_empty) {
+ item = _items.pop();
+ _character_count -= item.length;
+ _empty = _items.length === 0;
+ }
+ return item;
+ };
+
+ this.remove_indent = function() {
+ if (_indent_count > 0) {
+ _indent_count -= 1;
+ _character_count -= parent.indent_length;
+ }
+ };
+
+ this.trim = function() {
+ while (this.last() === ' ') {
+ _items.pop();
+ _character_count -= 1;
+ }
+ _empty = _items.length === 0;
+ };
+
+ this.toString = function() {
+ var result = '';
+ if (!this._empty) {
+ if (_indent_count >= 0) {
+ result = parent.indent_cache[_indent_count];
+ }
+ result += _items.join('');
+ }
+ return result;
+ };
+}
+
+function Output(indent_string, baseIndentString) {
+ baseIndentString = baseIndentString || '';
+ this.indent_cache = [baseIndentString];
+ this.baseIndentLength = baseIndentString.length;
+ this.indent_length = indent_string.length;
+ this.raw = false;
+
+ var lines = [];
+ this.baseIndentString = baseIndentString;
+ this.indent_string = indent_string;
+ this.previous_line = null;
+ this.current_line = null;
+ this.space_before_token = false;
+
+ this.add_outputline = function() {
+ this.previous_line = this.current_line;
+ this.current_line = new OutputLine(this);
+ lines.push(this.current_line);
+ };
+
+ // initialize
+ this.add_outputline();
+
+
+ this.get_line_number = function() {
+ return lines.length;
+ };
+
+ // Using object instead of string to allow for later expansion of info about each line
+ this.add_new_line = function(force_newline) {
+ if (this.get_line_number() === 1 && this.just_added_newline()) {
+ return false; // no newline on start of file
+ }
+
+ if (force_newline || !this.just_added_newline()) {
+ if (!this.raw) {
+ this.add_outputline();
+ }
+ return true;
+ }
+
+ return false;
+ };
+
+ this.get_code = function(end_with_newline, eol) {
+ var sweet_code = lines.join('\n').replace(/[\r\n\t ]+$/, '');
+
+ if (end_with_newline) {
+ sweet_code += '\n';
+ }
+
+ if (eol !== '\n') {
+ sweet_code = sweet_code.replace(/[\n]/g, eol);
+ }
+
+ return sweet_code;
+ };
+
+ this.set_indent = function(level) {
+ // Never indent your first output indent at the start of the file
+ if (lines.length > 1) {
+ while (level >= this.indent_cache.length) {
+ this.indent_cache.push(this.indent_cache[this.indent_cache.length - 1] + this.indent_string);
+ }
+
+ this.current_line.set_indent(level);
+ return true;
+ }
+ this.current_line.set_indent(0);
+ return false;
+ };
+
+ this.add_raw_token = function(token) {
+ for (var x = 0; x < token.newlines; x++) {
+ this.add_outputline();
+ }
+ this.current_line.push(token.whitespace_before);
+ this.current_line.push(token.text);
+ this.space_before_token = false;
+ };
+
+ this.add_token = function(printable_token) {
+ this.add_space_before_token();
+ this.current_line.push(printable_token);
+ };
+
+ this.add_space_before_token = function() {
+ if (this.space_before_token && !this.just_added_newline()) {
+ this.current_line.push(' ');
+ }
+ this.space_before_token = false;
+ };
+
+ this.remove_indent = function(index) {
+ var output_length = lines.length;
+ while (index < output_length) {
+ lines[index].remove_indent();
+ index++;
+ }
+ };
+
+ this.trim = function(eat_newlines) {
+ eat_newlines = (eat_newlines === undefined) ? false : eat_newlines;
+
+ this.current_line.trim(indent_string, baseIndentString);
+
+ while (eat_newlines && lines.length > 1 &&
+ this.current_line.is_empty()) {
+ lines.pop();
+ this.current_line = lines[lines.length - 1];
+ this.current_line.trim();
+ }
+
+ this.previous_line = lines.length > 1 ? lines[lines.length - 2] : null;
+ };
+
+ this.just_added_newline = function() {
+ return this.current_line.is_empty();
+ };
+
+ this.just_added_blankline = function() {
+ if (this.just_added_newline()) {
+ if (lines.length === 1) {
+ return true; // start of the file and newline = blank
+ }
+
+ var line = lines[lines.length - 2];
+ return line.is_empty();
+ }
+ return false;
+ };
+}
+
+module.exports.Output = Output;
+
+
+/***/ }),
+/* 4 */
+/***/ (function(module, exports, __webpack_require__) {
+
+/*jshint curly:true, eqeqeq:true, laxbreak:true, noempty:false */
+/*
+
+ The MIT License (MIT)
+
+ Copyright (c) 2007-2017 Einar Lielmanis, Liam Newman, and contributors.
+
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation files
+ (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge,
+ publish, distribute, sublicense, and/or sell copies of the Software,
+ and to permit persons to whom the Software is furnished to do so,
+ subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
+
+var Beautifier = __webpack_require__(0).Beautifier;
+
+function css_beautify(source_text, options) {
+ var beautifier = new Beautifier(source_text, options);
+ return beautifier.beautify();
+}
+
+module.exports = css_beautify;
+
+/***/ })
+/******/ ]);
+var css_beautify = legacy_beautify_css;
+/* Footer */
+if (true) {
+ // Add support for AMD ( https://github.com/amdjs/amdjs-api/wiki/AMD#defineamd-property- )
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() {
+ return {
+ css_beautify: css_beautify
+ };
+ }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
+} else if (typeof exports !== "undefined") {
+ // Add support for CommonJS. Just put this file somewhere on your require.paths
+ // and you will be able to `var html_beautify = require("beautify").html_beautify`.
+ exports.css_beautify = css_beautify;
+} else if (typeof window !== "undefined") {
+ // If we're running a web page and don't have either of the above, add our one global
+ window.css_beautify = css_beautify;
+} else if (typeof global !== "undefined") {
+ // If we don't even have window, try global.
+ global.css_beautify = css_beautify;
+}
+
+}());
+
+
+/***/ }),
+/* 147 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2015-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2014-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*/
-var warning = __webpack_require__(4);
-
-function warnNoop(publicInstance, callerName) {
- if (process.env.NODE_ENV !== 'production') {
- var constructor = publicInstance.constructor;
- process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0;
- }
-}
-
/**
- * This is the abstract API for an update queue.
+ * Forked from fbjs/warning:
+ * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js
+ *
+ * Only change is we use console.warn instead of console.error,
+ * and do nothing when 'console' is not supported.
+ * This really simplifies the code.
+ * ---
+ * Similar to invariant but only logs a warning if the condition is not met.
+ * This can be used to log issues in development environments in critical
+ * paths. Removing the logging code for production environments will keep the
+ * same logic and follow the same code paths.
*/
-var ReactNoopUpdateQueue = {
- /**
- * Checks whether or not this composite component is mounted.
- * @param {ReactClass} publicInstance The instance we want to test.
- * @return {boolean} True if mounted, false otherwise.
- * @protected
- * @final
- */
- isMounted: function (publicInstance) {
- return false;
- },
+var lowPriorityWarning = function () {};
- /**
- * Enqueue a callback that will be executed after all the pending updates
- * have processed.
- *
- * @param {ReactClass} publicInstance The instance to use as `this` context.
- * @param {?function} callback Called after state is updated.
- * @internal
- */
- enqueueCallback: function (publicInstance, callback) {},
+if (process.env.NODE_ENV !== 'production') {
+ var printWarning = function (format) {
+ for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ args[_key - 1] = arguments[_key];
+ }
- /**
- * Forces an update. This should only be invoked when it is known with
- * certainty that we are **not** in a DOM transaction.
- *
- * You may want to call this when you know that some deeper aspect of the
- * component's state has changed but `setState` was not called.
- *
- * This will not invoke `shouldComponentUpdate`, but it will invoke
- * `componentWillUpdate` and `componentDidUpdate`.
- *
- * @param {ReactClass} publicInstance The instance that should rerender.
- * @internal
- */
- enqueueForceUpdate: function (publicInstance) {
- warnNoop(publicInstance, 'forceUpdate');
- },
+ var argIndex = 0;
+ var message = 'Warning: ' + format.replace(/%s/g, function () {
+ return args[argIndex++];
+ });
+ if (typeof console !== 'undefined') {
+ console.warn(message);
+ }
+ try {
+ // --- Welcome to debugging React ---
+ // This error was thrown as a convenience so that you can use this stack
+ // to find the callsite that caused this warning to fire.
+ throw new Error(message);
+ } catch (x) {}
+ };
- /**
- * Replaces all of the state. Always use this or `setState` to mutate state.
- * You should treat `this.state` as immutable.
- *
- * There is no guarantee that `this.state` will be immediately updated, so
- * accessing `this.state` after calling this method may return the old value.
- *
- * @param {ReactClass} publicInstance The instance that should rerender.
- * @param {object} completeState Next state.
- * @internal
- */
- enqueueReplaceState: function (publicInstance, completeState) {
- warnNoop(publicInstance, 'replaceState');
- },
+ lowPriorityWarning = function (condition, format) {
+ if (format === undefined) {
+ throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');
+ }
+ if (!condition) {
+ for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
+ args[_key2 - 2] = arguments[_key2];
+ }
- /**
- * Sets a subset of the state. This only exists because _pendingState is
- * internal. This provides a merging strategy that is not available to deep
- * properties which is confusing. TODO: Expose pendingState or don't use it
- * during the merge.
- *
- * @param {ReactClass} publicInstance The instance that should rerender.
- * @param {object} partialState Next partial state to be merged with state.
- * @internal
- */
- enqueueSetState: function (publicInstance, partialState) {
- warnNoop(publicInstance, 'setState');
- }
-};
+ printWarning.apply(undefined, [format].concat(args));
+ }
+ };
+}
-module.exports = ReactNoopUpdateQueue;
+module.exports = lowPriorityWarning;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
-/* 150 */
+/* 148 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*
*/
-var _prodInvariant = __webpack_require__(7);
+var _prodInvariant = __webpack_require__(6);
-var invariant = __webpack_require__(3);
+var invariant = __webpack_require__(2);
/**
* Injectable ordering of event plugins.
@@ -35732,7 +36412,6 @@ function publishRegistrationName(registrationName, pluginModule, eventName) {
* @see {EventPluginHub}
*/
var EventPluginRegistry = {
-
/**
* Ordered list of injected plugins.
*/
@@ -35872,34 +36551,31 @@ var EventPluginRegistry = {
}
}
}
-
};
module.exports = EventPluginRegistry;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
-/* 151 */
+/* 149 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*/
-var _prodInvariant = __webpack_require__(7);
+var _prodInvariant = __webpack_require__(6);
-var ReactErrorUtils = __webpack_require__(152);
+var ReactErrorUtils = __webpack_require__(150);
-var invariant = __webpack_require__(3);
+var invariant = __webpack_require__(2);
var warning = __webpack_require__(4);
/**
@@ -36111,17 +36787,15 @@ module.exports = EventPluginUtils;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
-/* 152 */
+/* 150 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*
*/
@@ -36178,7 +36852,9 @@ if (process.env.NODE_ENV !== 'production') {
if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {
var fakeNode = document.createElement('react');
ReactErrorUtils.invokeGuardedCallback = function (name, func, a) {
- var boundFunc = func.bind(null, a);
+ var boundFunc = function () {
+ func(a);
+ };
var evtType = 'react-' + name;
fakeNode.addEventListener(evtType, boundFunc, false);
var evt = document.createEvent('Event');
@@ -36193,17 +36869,15 @@ module.exports = ReactErrorUtils;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
-/* 153 */
+/* 151 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*/
@@ -36233,23 +36907,21 @@ function getEventTarget(nativeEvent) {
module.exports = getEventTarget;
/***/ }),
-/* 154 */
+/* 152 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*/
-var ExecutionEnvironment = __webpack_require__(13);
+var ExecutionEnvironment = __webpack_require__(14);
var useHasFeature;
if (ExecutionEnvironment.canUseDOM) {
@@ -36298,17 +36970,15 @@ function isEventSupported(eventNameSuffix, capture) {
module.exports = isEventSupported;
/***/ }),
-/* 155 */
+/* 153 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*/
@@ -36320,10 +36990,10 @@ module.exports = isEventSupported;
*/
var modifierKeyToProp = {
- 'Alt': 'altKey',
- 'Control': 'ctrlKey',
- 'Meta': 'metaKey',
- 'Shift': 'shiftKey'
+ Alt: 'altKey',
+ Control: 'ctrlKey',
+ Meta: 'metaKey',
+ Shift: 'shiftKey'
};
// IE8 does not implement getModifierState so we simply map it to the only
@@ -36346,30 +37016,28 @@ function getEventModifierState(nativeEvent) {
module.exports = getEventModifierState;
/***/ }),
-/* 156 */
+/* 154 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*/
var DOMLazyTree = __webpack_require__(64);
-var Danger = __webpack_require__(518);
-var ReactDOMComponentTree = __webpack_require__(12);
-var ReactInstrumentation = __webpack_require__(21);
+var Danger = __webpack_require__(515);
+var ReactDOMComponentTree = __webpack_require__(13);
+var ReactInstrumentation = __webpack_require__(22);
-var createMicrosoftUnsafeLocalFunction = __webpack_require__(159);
-var setInnerHTML = __webpack_require__(158);
-var setTextContent = __webpack_require__(264);
+var createMicrosoftUnsafeLocalFunction = __webpack_require__(157);
+var setInnerHTML = __webpack_require__(156);
+var setTextContent = __webpack_require__(262);
function getNodeAfter(parentNode, node) {
// Special case for text components, which return [open, close] comments
@@ -36497,7 +37165,6 @@ if (process.env.NODE_ENV !== 'production') {
* Operations for updating with DOM children.
*/
var DOMChildrenOperations = {
-
dangerouslyReplaceNodeWithMarkup: dangerouslyReplaceNodeWithMarkup,
replaceDelimitedText: replaceDelimitedText,
@@ -36523,7 +37190,10 @@ var DOMChildrenOperations = {
ReactInstrumentation.debugTool.onHostOperation({
instanceID: parentNodeDebugID,
type: 'insert child',
- payload: { toIndex: update.toIndex, content: update.content.toString() }
+ payload: {
+ toIndex: update.toIndex,
+ content: update.content.toString()
+ }
});
}
break;
@@ -36570,24 +37240,21 @@ var DOMChildrenOperations = {
}
}
}
-
};
module.exports = DOMChildrenOperations;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
-/* 157 */
+/* 155 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*/
@@ -36602,29 +37269,27 @@ var DOMNamespaces = {
module.exports = DOMNamespaces;
/***/ }),
-/* 158 */
+/* 156 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*/
-var ExecutionEnvironment = __webpack_require__(13);
-var DOMNamespaces = __webpack_require__(157);
+var ExecutionEnvironment = __webpack_require__(14);
+var DOMNamespaces = __webpack_require__(155);
var WHITESPACE_TEST = /^[ \r\n\t\f]/;
var NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/;
-var createMicrosoftUnsafeLocalFunction = __webpack_require__(159);
+var createMicrosoftUnsafeLocalFunction = __webpack_require__(157);
// SVG temp container for IE lacking innerHTML
var reusableSVGContainer;
@@ -36684,7 +37349,7 @@ if (ExecutionEnvironment.canUseDOM) {
// in hopes that this is preserved even if "\uFEFF" is transformed to
// the actual Unicode character (by Babel, for example).
// https://github.com/mishoo/UglifyJS2/blob/v2.4.20/lib/parse.js#L216
- node.innerHTML = String.fromCharCode(0xFEFF) + html;
+ node.innerHTML = String.fromCharCode(0xfeff) + html;
// deleteData leaves an empty `TextNode` which offsets the index of all
// children. Definitely want to avoid this.
@@ -36705,17 +37370,15 @@ if (ExecutionEnvironment.canUseDOM) {
module.exports = setInnerHTML;
/***/ }),
-/* 159 */
+/* 157 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*/
@@ -36742,30 +37405,28 @@ var createMicrosoftUnsafeLocalFunction = function (func) {
module.exports = createMicrosoftUnsafeLocalFunction;
/***/ }),
-/* 160 */
+/* 158 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*/
-var _assign = __webpack_require__(8);
+var _assign = __webpack_require__(9);
-var EventPluginRegistry = __webpack_require__(150);
-var ReactEventEmitterMixin = __webpack_require__(533);
-var ViewportMetrics = __webpack_require__(263);
+var EventPluginRegistry = __webpack_require__(148);
+var ReactEventEmitterMixin = __webpack_require__(530);
+var ViewportMetrics = __webpack_require__(261);
-var getVendorPrefixedEventName = __webpack_require__(534);
-var isEventSupported = __webpack_require__(154);
+var getVendorPrefixedEventName = __webpack_require__(531);
+var isEventSupported = __webpack_require__(152);
/**
* Summary of `ReactBrowserEventEmitter` event handling:
@@ -36923,7 +37584,6 @@ function getListeningForDocument(mountAt) {
* @internal
*/
var ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, {
-
/**
* Injectable event backend
*/
@@ -36997,14 +37657,12 @@ var ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, {
ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'DOMMouseScroll', mountAt);
}
} else if (dependency === 'topScroll') {
-
if (isEventSupported('scroll', true)) {
ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topScroll', 'scroll', mountAt);
} else {
ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topScroll', 'scroll', ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE);
}
} else if (dependency === 'topFocus' || dependency === 'topBlur') {
-
if (isEventSupported('focus', true)) {
ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topFocus', 'focus', mountAt);
ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topBlur', 'blur', mountAt);
@@ -37069,47 +37727,44 @@ var ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, {
isMonitoringScrollValue = true;
}
}
-
});
module.exports = ReactBrowserEventEmitter;
/***/ }),
-/* 161 */
+/* 159 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*/
-var _prodInvariant = __webpack_require__(7);
+var _prodInvariant = __webpack_require__(6);
-var ReactPropTypesSecret = __webpack_require__(268);
-var propTypesFactory = __webpack_require__(254);
+var ReactPropTypesSecret = __webpack_require__(266);
+var propTypesFactory = __webpack_require__(251);
var React = __webpack_require__(43);
var PropTypes = propTypesFactory(React.isValidElement);
-var invariant = __webpack_require__(3);
+var invariant = __webpack_require__(2);
var warning = __webpack_require__(4);
var hasReadOnlyValue = {
- 'button': true,
- 'checkbox': true,
- 'image': true,
- 'hidden': true,
- 'radio': true,
- 'reset': true,
- 'submit': true
+ button: true,
+ checkbox: true,
+ image: true,
+ hidden: true,
+ radio: true,
+ reset: true,
+ submit: true
};
function _assertSingleLink(inputProps) {
@@ -37219,31 +37874,28 @@ module.exports = LinkedValueUtils;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
-/* 162 */
+/* 160 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2014-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2014-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*
*/
-var _prodInvariant = __webpack_require__(7);
+var _prodInvariant = __webpack_require__(6);
-var invariant = __webpack_require__(3);
+var invariant = __webpack_require__(2);
var injected = false;
var ReactComponentEnvironment = {
-
/**
* Optionally injectable hook for swapping out mount images in the middle of
* the tree.
@@ -37264,24 +37916,21 @@ var ReactComponentEnvironment = {
injected = true;
}
}
-
};
module.exports = ReactComponentEnvironment;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
-/* 163 */
+/* 161 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*/
@@ -37297,7 +37946,6 @@ module.exports = ReactComponentEnvironment;
// TODO: Replace this with ES6: var ReactInstanceMap = new Map();
var ReactInstanceMap = {
-
/**
* This API should be called `delete` but we'd have to make sure to always
* transform these to strings for IE support. When this transform is fully
@@ -37318,23 +37966,20 @@ var ReactInstanceMap = {
set: function (key, value) {
key._reactInternalInstance = value;
}
-
};
module.exports = ReactInstanceMap;
/***/ }),
-/* 164 */
+/* 162 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/**
* Copyright (c) 2013-present, Facebook, Inc.
- * All rights reserved.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
* @typechecks
*
@@ -37397,17 +38042,15 @@ function shallowEqual(objA, objB) {
module.exports = shallowEqual;
/***/ }),
-/* 165 */
+/* 163 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*
*/
@@ -37461,25 +38104,23 @@ var KeyEscapeUtils = {
module.exports = KeyEscapeUtils;
/***/ }),
-/* 166 */
+/* 164 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2015-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2015-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*/
-var _assign = __webpack_require__(8);
+var _assign = __webpack_require__(9);
-var emptyFunction = __webpack_require__(20);
+var emptyFunction = __webpack_require__(21);
var warning = __webpack_require__(4);
var validateDOMNesting = emptyFunction;
@@ -37588,7 +38229,6 @@ if (process.env.NODE_ENV !== 'production') {
// but
case 'option':
return tag === '#text';
-
// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd
// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption
// No special behavior since these rules fall back to "in body" mode for
@@ -37597,25 +38237,20 @@ if (process.env.NODE_ENV !== 'production') {
// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr
case 'tr':
return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template';
-
// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody
case 'tbody':
case 'thead':
case 'tfoot':
return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template';
-
// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup
case 'colgroup':
return tag === 'col' || tag === 'template';
-
// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable
case 'table':
return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template';
-
// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead
case 'head':
return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template';
-
// https://html.spec.whatwg.org/multipage/semantics.html#the-html-element
case 'html':
return tag === 'head' || tag === 'body';
@@ -37811,7 +38446,7 @@ if (process.env.NODE_ENV !== 'production') {
tagDisplayName = 'Text nodes';
} else {
tagDisplayName = 'Whitespace text nodes';
- whitespaceInfo = ' Make sure you don\'t have any extra whitespace between tags on ' + 'each line of your source code.';
+ whitespaceInfo = " Make sure you don't have any extra whitespace between tags on " + 'each line of your source code.';
}
} else {
tagDisplayName = '<' + childTag + '>';
@@ -37844,17 +38479,15 @@ module.exports = validateDOMNesting;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
-/* 167 */
+/* 165 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*
*/
@@ -37899,7 +38532,7 @@ function getEventCharCode(nativeEvent) {
module.exports = getEventCharCode;
/***/ }),
-/* 168 */
+/* 166 */
/***/ (function(module, exports, __webpack_require__) {
/*
@@ -37909,10 +38542,10 @@ module.exports = getEventCharCode;
var parse = __webpack_require__(105),
isHtml = __webpack_require__(68).isHtml,
_ = {
- extend: __webpack_require__(291),
- bind: __webpack_require__(176),
- forEach: __webpack_require__(108),
- defaults: __webpack_require__(292)
+ extend: __webpack_require__(290),
+ bind: __webpack_require__(172),
+ forEach: __webpack_require__(109),
+ defaults: __webpack_require__(291)
};
/*
@@ -37920,11 +38553,11 @@ var parse = __webpack_require__(105),
*/
var api = [
- __webpack_require__(613),
- __webpack_require__(623),
- __webpack_require__(627),
- __webpack_require__(629),
- __webpack_require__(631)
+ __webpack_require__(610),
+ __webpack_require__(620),
+ __webpack_require__(624),
+ __webpack_require__(626),
+ __webpack_require__(628)
];
/*
@@ -37994,7 +38627,7 @@ var Cheerio = module.exports = function(selector, context, root, options) {
* Mix in `static`
*/
-_.extend(Cheerio, __webpack_require__(177));
+_.extend(Cheerio, __webpack_require__(173));
/*
* Set a signature of the object
@@ -38053,2345 +38686,89 @@ var isNode = function(obj) {
/***/ }),
-/* 169 */
+/* 167 */
/***/ (function(module, exports) {
-module.exports = {
- "Aacute": "Á",
- "aacute": "á",
- "Abreve": "Ă",
- "abreve": "ă",
- "ac": "∾",
- "acd": "∿",
- "acE": "∾̳",
- "Acirc": "Â",
- "acirc": "â",
- "acute": "´",
- "Acy": "А",
- "acy": "а",
- "AElig": "Æ",
- "aelig": "æ",
- "af": "",
- "Afr": "𝔄",
- "afr": "𝔞",
- "Agrave": "À",
- "agrave": "à",
- "alefsym": "ℵ",
- "aleph": "ℵ",
- "Alpha": "Α",
- "alpha": "α",
- "Amacr": "Ā",
- "amacr": "ā",
- "amalg": "⨿",
- "amp": "&",
- "AMP": "&",
- "andand": "⩕",
- "And": "⩓",
- "and": "∧",
- "andd": "⩜",
- "andslope": "⩘",
- "andv": "⩚",
- "ang": "∠",
- "ange": "⦤",
- "angle": "∠",
- "angmsdaa": "⦨",
- "angmsdab": "⦩",
- "angmsdac": "⦪",
- "angmsdad": "⦫",
- "angmsdae": "⦬",
- "angmsdaf": "⦭",
- "angmsdag": "⦮",
- "angmsdah": "⦯",
- "angmsd": "∡",
- "angrt": "∟",
- "angrtvb": "⊾",
- "angrtvbd": "⦝",
- "angsph": "∢",
- "angst": "Å",
- "angzarr": "⍼",
- "Aogon": "Ą",
- "aogon": "ą",
- "Aopf": "𝔸",
- "aopf": "𝕒",
- "apacir": "⩯",
- "ap": "≈",
- "apE": "⩰",
- "ape": "≊",
- "apid": "≋",
- "apos": "'",
- "ApplyFunction": "",
- "approx": "≈",
- "approxeq": "≊",
- "Aring": "Å",
- "aring": "å",
- "Ascr": "𝒜",
- "ascr": "𝒶",
- "Assign": "≔",
- "ast": "*",
- "asymp": "≈",
- "asympeq": "≍",
- "Atilde": "Ã",
- "atilde": "ã",
- "Auml": "Ä",
- "auml": "ä",
- "awconint": "∳",
- "awint": "⨑",
- "backcong": "≌",
- "backepsilon": "϶",
- "backprime": "‵",
- "backsim": "∽",
- "backsimeq": "⋍",
- "Backslash": "∖",
- "Barv": "⫧",
- "barvee": "⊽",
- "barwed": "⌅",
- "Barwed": "⌆",
- "barwedge": "⌅",
- "bbrk": "⎵",
- "bbrktbrk": "⎶",
- "bcong": "≌",
- "Bcy": "Б",
- "bcy": "б",
- "bdquo": "„",
- "becaus": "∵",
- "because": "∵",
- "Because": "∵",
- "bemptyv": "⦰",
- "bepsi": "϶",
- "bernou": "ℬ",
- "Bernoullis": "ℬ",
- "Beta": "Β",
- "beta": "β",
- "beth": "ℶ",
- "between": "≬",
- "Bfr": "𝔅",
- "bfr": "𝔟",
- "bigcap": "⋂",
- "bigcirc": "◯",
- "bigcup": "⋃",
- "bigodot": "⨀",
- "bigoplus": "⨁",
- "bigotimes": "⨂",
- "bigsqcup": "⨆",
- "bigstar": "★",
- "bigtriangledown": "▽",
- "bigtriangleup": "△",
- "biguplus": "⨄",
- "bigvee": "⋁",
- "bigwedge": "⋀",
- "bkarow": "⤍",
- "blacklozenge": "⧫",
- "blacksquare": "▪",
- "blacktriangle": "▴",
- "blacktriangledown": "▾",
- "blacktriangleleft": "◂",
- "blacktriangleright": "▸",
- "blank": "␣",
- "blk12": "▒",
- "blk14": "░",
- "blk34": "▓",
- "block": "█",
- "bne": "=⃥",
- "bnequiv": "≡⃥",
- "bNot": "⫭",
- "bnot": "⌐",
- "Bopf": "𝔹",
- "bopf": "𝕓",
- "bot": "⊥",
- "bottom": "⊥",
- "bowtie": "⋈",
- "boxbox": "⧉",
- "boxdl": "┐",
- "boxdL": "╕",
- "boxDl": "╖",
- "boxDL": "╗",
- "boxdr": "┌",
- "boxdR": "╒",
- "boxDr": "╓",
- "boxDR": "╔",
- "boxh": "─",
- "boxH": "═",
- "boxhd": "┬",
- "boxHd": "╤",
- "boxhD": "╥",
- "boxHD": "╦",
- "boxhu": "┴",
- "boxHu": "╧",
- "boxhU": "╨",
- "boxHU": "╩",
- "boxminus": "⊟",
- "boxplus": "⊞",
- "boxtimes": "⊠",
- "boxul": "┘",
- "boxuL": "╛",
- "boxUl": "╜",
- "boxUL": "╝",
- "boxur": "└",
- "boxuR": "╘",
- "boxUr": "╙",
- "boxUR": "╚",
- "boxv": "│",
- "boxV": "║",
- "boxvh": "┼",
- "boxvH": "╪",
- "boxVh": "╫",
- "boxVH": "╬",
- "boxvl": "┤",
- "boxvL": "╡",
- "boxVl": "╢",
- "boxVL": "╣",
- "boxvr": "├",
- "boxvR": "╞",
- "boxVr": "╟",
- "boxVR": "╠",
- "bprime": "‵",
- "breve": "˘",
- "Breve": "˘",
- "brvbar": "¦",
- "bscr": "𝒷",
- "Bscr": "ℬ",
- "bsemi": "⁏",
- "bsim": "∽",
- "bsime": "⋍",
- "bsolb": "⧅",
- "bsol": "\\",
- "bsolhsub": "⟈",
- "bull": "•",
- "bullet": "•",
- "bump": "≎",
- "bumpE": "⪮",
- "bumpe": "≏",
- "Bumpeq": "≎",
- "bumpeq": "≏",
- "Cacute": "Ć",
- "cacute": "ć",
- "capand": "⩄",
- "capbrcup": "⩉",
- "capcap": "⩋",
- "cap": "∩",
- "Cap": "⋒",
- "capcup": "⩇",
- "capdot": "⩀",
- "CapitalDifferentialD": "ⅅ",
- "caps": "∩︀",
- "caret": "⁁",
- "caron": "ˇ",
- "Cayleys": "ℭ",
- "ccaps": "⩍",
- "Ccaron": "Č",
- "ccaron": "č",
- "Ccedil": "Ç",
- "ccedil": "ç",
- "Ccirc": "Ĉ",
- "ccirc": "ĉ",
- "Cconint": "∰",
- "ccups": "⩌",
- "ccupssm": "⩐",
- "Cdot": "Ċ",
- "cdot": "ċ",
- "cedil": "¸",
- "Cedilla": "¸",
- "cemptyv": "⦲",
- "cent": "¢",
- "centerdot": "·",
- "CenterDot": "·",
- "cfr": "𝔠",
- "Cfr": "ℭ",
- "CHcy": "Ч",
- "chcy": "ч",
- "check": "✓",
- "checkmark": "✓",
- "Chi": "Χ",
- "chi": "χ",
- "circ": "ˆ",
- "circeq": "≗",
- "circlearrowleft": "↺",
- "circlearrowright": "↻",
- "circledast": "⊛",
- "circledcirc": "⊚",
- "circleddash": "⊝",
- "CircleDot": "⊙",
- "circledR": "®",
- "circledS": "Ⓢ",
- "CircleMinus": "⊖",
- "CirclePlus": "⊕",
- "CircleTimes": "⊗",
- "cir": "○",
- "cirE": "⧃",
- "cire": "≗",
- "cirfnint": "⨐",
- "cirmid": "⫯",
- "cirscir": "⧂",
- "ClockwiseContourIntegral": "∲",
- "CloseCurlyDoubleQuote": "”",
- "CloseCurlyQuote": "’",
- "clubs": "♣",
- "clubsuit": "♣",
- "colon": ":",
- "Colon": "∷",
- "Colone": "⩴",
- "colone": "≔",
- "coloneq": "≔",
- "comma": ",",
- "commat": "@",
- "comp": "∁",
- "compfn": "∘",
- "complement": "∁",
- "complexes": "ℂ",
- "cong": "≅",
- "congdot": "⩭",
- "Congruent": "≡",
- "conint": "∮",
- "Conint": "∯",
- "ContourIntegral": "∮",
- "copf": "𝕔",
- "Copf": "ℂ",
- "coprod": "∐",
- "Coproduct": "∐",
- "copy": "©",
- "COPY": "©",
- "copysr": "℗",
- "CounterClockwiseContourIntegral": "∳",
- "crarr": "↵",
- "cross": "✗",
- "Cross": "⨯",
- "Cscr": "𝒞",
- "cscr": "𝒸",
- "csub": "⫏",
- "csube": "⫑",
- "csup": "⫐",
- "csupe": "⫒",
- "ctdot": "⋯",
- "cudarrl": "⤸",
- "cudarrr": "⤵",
- "cuepr": "⋞",
- "cuesc": "⋟",
- "cularr": "↶",
- "cularrp": "⤽",
- "cupbrcap": "⩈",
- "cupcap": "⩆",
- "CupCap": "≍",
- "cup": "∪",
- "Cup": "⋓",
- "cupcup": "⩊",
- "cupdot": "⊍",
- "cupor": "⩅",
- "cups": "∪︀",
- "curarr": "↷",
- "curarrm": "⤼",
- "curlyeqprec": "⋞",
- "curlyeqsucc": "⋟",
- "curlyvee": "⋎",
- "curlywedge": "⋏",
- "curren": "¤",
- "curvearrowleft": "↶",
- "curvearrowright": "↷",
- "cuvee": "⋎",
- "cuwed": "⋏",
- "cwconint": "∲",
- "cwint": "∱",
- "cylcty": "⌭",
- "dagger": "†",
- "Dagger": "‡",
- "daleth": "ℸ",
- "darr": "↓",
- "Darr": "↡",
- "dArr": "⇓",
- "dash": "‐",
- "Dashv": "⫤",
- "dashv": "⊣",
- "dbkarow": "⤏",
- "dblac": "˝",
- "Dcaron": "Ď",
- "dcaron": "ď",
- "Dcy": "Д",
- "dcy": "д",
- "ddagger": "‡",
- "ddarr": "⇊",
- "DD": "ⅅ",
- "dd": "ⅆ",
- "DDotrahd": "⤑",
- "ddotseq": "⩷",
- "deg": "°",
- "Del": "∇",
- "Delta": "Δ",
- "delta": "δ",
- "demptyv": "⦱",
- "dfisht": "⥿",
- "Dfr": "𝔇",
- "dfr": "𝔡",
- "dHar": "⥥",
- "dharl": "⇃",
- "dharr": "⇂",
- "DiacriticalAcute": "´",
- "DiacriticalDot": "˙",
- "DiacriticalDoubleAcute": "˝",
- "DiacriticalGrave": "`",
- "DiacriticalTilde": "˜",
- "diam": "⋄",
- "diamond": "⋄",
- "Diamond": "⋄",
- "diamondsuit": "♦",
- "diams": "♦",
- "die": "¨",
- "DifferentialD": "ⅆ",
- "digamma": "ϝ",
- "disin": "⋲",
- "div": "÷",
- "divide": "÷",
- "divideontimes": "⋇",
- "divonx": "⋇",
- "DJcy": "Ђ",
- "djcy": "ђ",
- "dlcorn": "⌞",
- "dlcrop": "⌍",
- "dollar": "$",
- "Dopf": "𝔻",
- "dopf": "𝕕",
- "Dot": "¨",
- "dot": "˙",
- "DotDot": "⃜",
- "doteq": "≐",
- "doteqdot": "≑",
- "DotEqual": "≐",
- "dotminus": "∸",
- "dotplus": "∔",
- "dotsquare": "⊡",
- "doublebarwedge": "⌆",
- "DoubleContourIntegral": "∯",
- "DoubleDot": "¨",
- "DoubleDownArrow": "⇓",
- "DoubleLeftArrow": "⇐",
- "DoubleLeftRightArrow": "⇔",
- "DoubleLeftTee": "⫤",
- "DoubleLongLeftArrow": "⟸",
- "DoubleLongLeftRightArrow": "⟺",
- "DoubleLongRightArrow": "⟹",
- "DoubleRightArrow": "⇒",
- "DoubleRightTee": "⊨",
- "DoubleUpArrow": "⇑",
- "DoubleUpDownArrow": "⇕",
- "DoubleVerticalBar": "∥",
- "DownArrowBar": "⤓",
- "downarrow": "↓",
- "DownArrow": "↓",
- "Downarrow": "⇓",
- "DownArrowUpArrow": "⇵",
- "DownBreve": "̑",
- "downdownarrows": "⇊",
- "downharpoonleft": "⇃",
- "downharpoonright": "⇂",
- "DownLeftRightVector": "⥐",
- "DownLeftTeeVector": "⥞",
- "DownLeftVectorBar": "⥖",
- "DownLeftVector": "↽",
- "DownRightTeeVector": "⥟",
- "DownRightVectorBar": "⥗",
- "DownRightVector": "⇁",
- "DownTeeArrow": "↧",
- "DownTee": "⊤",
- "drbkarow": "⤐",
- "drcorn": "⌟",
- "drcrop": "⌌",
- "Dscr": "𝒟",
- "dscr": "𝒹",
- "DScy": "Ѕ",
- "dscy": "ѕ",
- "dsol": "⧶",
- "Dstrok": "Đ",
- "dstrok": "đ",
- "dtdot": "⋱",
- "dtri": "▿",
- "dtrif": "▾",
- "duarr": "⇵",
- "duhar": "⥯",
- "dwangle": "⦦",
- "DZcy": "Џ",
- "dzcy": "џ",
- "dzigrarr": "⟿",
- "Eacute": "É",
- "eacute": "é",
- "easter": "⩮",
- "Ecaron": "Ě",
- "ecaron": "ě",
- "Ecirc": "Ê",
- "ecirc": "ê",
- "ecir": "≖",
- "ecolon": "≕",
- "Ecy": "Э",
- "ecy": "э",
- "eDDot": "⩷",
- "Edot": "Ė",
- "edot": "ė",
- "eDot": "≑",
- "ee": "ⅇ",
- "efDot": "≒",
- "Efr": "𝔈",
- "efr": "𝔢",
- "eg": "⪚",
- "Egrave": "È",
- "egrave": "è",
- "egs": "⪖",
- "egsdot": "⪘",
- "el": "⪙",
- "Element": "∈",
- "elinters": "⏧",
- "ell": "ℓ",
- "els": "⪕",
- "elsdot": "⪗",
- "Emacr": "Ē",
- "emacr": "ē",
- "empty": "∅",
- "emptyset": "∅",
- "EmptySmallSquare": "◻",
- "emptyv": "∅",
- "EmptyVerySmallSquare": "▫",
- "emsp13": " ",
- "emsp14": " ",
- "emsp": " ",
- "ENG": "Ŋ",
- "eng": "ŋ",
- "ensp": " ",
- "Eogon": "Ę",
- "eogon": "ę",
- "Eopf": "𝔼",
- "eopf": "𝕖",
- "epar": "⋕",
- "eparsl": "⧣",
- "eplus": "⩱",
- "epsi": "ε",
- "Epsilon": "Ε",
- "epsilon": "ε",
- "epsiv": "ϵ",
- "eqcirc": "≖",
- "eqcolon": "≕",
- "eqsim": "≂",
- "eqslantgtr": "⪖",
- "eqslantless": "⪕",
- "Equal": "⩵",
- "equals": "=",
- "EqualTilde": "≂",
- "equest": "≟",
- "Equilibrium": "⇌",
- "equiv": "≡",
- "equivDD": "⩸",
- "eqvparsl": "⧥",
- "erarr": "⥱",
- "erDot": "≓",
- "escr": "ℯ",
- "Escr": "ℰ",
- "esdot": "≐",
- "Esim": "⩳",
- "esim": "≂",
- "Eta": "Η",
- "eta": "η",
- "ETH": "Ð",
- "eth": "ð",
- "Euml": "Ë",
- "euml": "ë",
- "euro": "€",
- "excl": "!",
- "exist": "∃",
- "Exists": "∃",
- "expectation": "ℰ",
- "exponentiale": "ⅇ",
- "ExponentialE": "ⅇ",
- "fallingdotseq": "≒",
- "Fcy": "Ф",
- "fcy": "ф",
- "female": "♀",
- "ffilig": "ffi",
- "fflig": "ff",
- "ffllig": "ffl",
- "Ffr": "𝔉",
- "ffr": "𝔣",
- "filig": "fi",
- "FilledSmallSquare": "◼",
- "FilledVerySmallSquare": "▪",
- "fjlig": "fj",
- "flat": "♭",
- "fllig": "fl",
- "fltns": "▱",
- "fnof": "ƒ",
- "Fopf": "𝔽",
- "fopf": "𝕗",
- "forall": "∀",
- "ForAll": "∀",
- "fork": "⋔",
- "forkv": "⫙",
- "Fouriertrf": "ℱ",
- "fpartint": "⨍",
- "frac12": "½",
- "frac13": "⅓",
- "frac14": "¼",
- "frac15": "⅕",
- "frac16": "⅙",
- "frac18": "⅛",
- "frac23": "⅔",
- "frac25": "⅖",
- "frac34": "¾",
- "frac35": "⅗",
- "frac38": "⅜",
- "frac45": "⅘",
- "frac56": "⅚",
- "frac58": "⅝",
- "frac78": "⅞",
- "frasl": "⁄",
- "frown": "⌢",
- "fscr": "𝒻",
- "Fscr": "ℱ",
- "gacute": "ǵ",
- "Gamma": "Γ",
- "gamma": "γ",
- "Gammad": "Ϝ",
- "gammad": "ϝ",
- "gap": "⪆",
- "Gbreve": "Ğ",
- "gbreve": "ğ",
- "Gcedil": "Ģ",
- "Gcirc": "Ĝ",
- "gcirc": "ĝ",
- "Gcy": "Г",
- "gcy": "г",
- "Gdot": "Ġ",
- "gdot": "ġ",
- "ge": "≥",
- "gE": "≧",
- "gEl": "⪌",
- "gel": "⋛",
- "geq": "≥",
- "geqq": "≧",
- "geqslant": "⩾",
- "gescc": "⪩",
- "ges": "⩾",
- "gesdot": "⪀",
- "gesdoto": "⪂",
- "gesdotol": "⪄",
- "gesl": "⋛︀",
- "gesles": "⪔",
- "Gfr": "𝔊",
- "gfr": "𝔤",
- "gg": "≫",
- "Gg": "⋙",
- "ggg": "⋙",
- "gimel": "ℷ",
- "GJcy": "Ѓ",
- "gjcy": "ѓ",
- "gla": "⪥",
- "gl": "≷",
- "glE": "⪒",
- "glj": "⪤",
- "gnap": "⪊",
- "gnapprox": "⪊",
- "gne": "⪈",
- "gnE": "≩",
- "gneq": "⪈",
- "gneqq": "≩",
- "gnsim": "⋧",
- "Gopf": "𝔾",
- "gopf": "𝕘",
- "grave": "`",
- "GreaterEqual": "≥",
- "GreaterEqualLess": "⋛",
- "GreaterFullEqual": "≧",
- "GreaterGreater": "⪢",
- "GreaterLess": "≷",
- "GreaterSlantEqual": "⩾",
- "GreaterTilde": "≳",
- "Gscr": "𝒢",
- "gscr": "ℊ",
- "gsim": "≳",
- "gsime": "⪎",
- "gsiml": "⪐",
- "gtcc": "⪧",
- "gtcir": "⩺",
- "gt": ">",
- "GT": ">",
- "Gt": "≫",
- "gtdot": "⋗",
- "gtlPar": "⦕",
- "gtquest": "⩼",
- "gtrapprox": "⪆",
- "gtrarr": "⥸",
- "gtrdot": "⋗",
- "gtreqless": "⋛",
- "gtreqqless": "⪌",
- "gtrless": "≷",
- "gtrsim": "≳",
- "gvertneqq": "≩︀",
- "gvnE": "≩︀",
- "Hacek": "ˇ",
- "hairsp": " ",
- "half": "½",
- "hamilt": "ℋ",
- "HARDcy": "Ъ",
- "hardcy": "ъ",
- "harrcir": "⥈",
- "harr": "↔",
- "hArr": "⇔",
- "harrw": "↭",
- "Hat": "^",
- "hbar": "ℏ",
- "Hcirc": "Ĥ",
- "hcirc": "ĥ",
- "hearts": "♥",
- "heartsuit": "♥",
- "hellip": "…",
- "hercon": "⊹",
- "hfr": "𝔥",
- "Hfr": "ℌ",
- "HilbertSpace": "ℋ",
- "hksearow": "⤥",
- "hkswarow": "⤦",
- "hoarr": "⇿",
- "homtht": "∻",
- "hookleftarrow": "↩",
- "hookrightarrow": "↪",
- "hopf": "𝕙",
- "Hopf": "ℍ",
- "horbar": "―",
- "HorizontalLine": "─",
- "hscr": "𝒽",
- "Hscr": "ℋ",
- "hslash": "ℏ",
- "Hstrok": "Ħ",
- "hstrok": "ħ",
- "HumpDownHump": "≎",
- "HumpEqual": "≏",
- "hybull": "⁃",
- "hyphen": "‐",
- "Iacute": "Í",
- "iacute": "í",
- "ic": "",
- "Icirc": "Î",
- "icirc": "î",
- "Icy": "И",
- "icy": "и",
- "Idot": "İ",
- "IEcy": "Е",
- "iecy": "е",
- "iexcl": "¡",
- "iff": "⇔",
- "ifr": "𝔦",
- "Ifr": "ℑ",
- "Igrave": "Ì",
- "igrave": "ì",
- "ii": "ⅈ",
- "iiiint": "⨌",
- "iiint": "∭",
- "iinfin": "⧜",
- "iiota": "℩",
- "IJlig": "IJ",
- "ijlig": "ij",
- "Imacr": "Ī",
- "imacr": "ī",
- "image": "ℑ",
- "ImaginaryI": "ⅈ",
- "imagline": "ℐ",
- "imagpart": "ℑ",
- "imath": "ı",
- "Im": "ℑ",
- "imof": "⊷",
- "imped": "Ƶ",
- "Implies": "⇒",
- "incare": "℅",
- "in": "∈",
- "infin": "∞",
- "infintie": "⧝",
- "inodot": "ı",
- "intcal": "⊺",
- "int": "∫",
- "Int": "∬",
- "integers": "ℤ",
- "Integral": "∫",
- "intercal": "⊺",
- "Intersection": "⋂",
- "intlarhk": "⨗",
- "intprod": "⨼",
- "InvisibleComma": "",
- "InvisibleTimes": "",
- "IOcy": "Ё",
- "iocy": "ё",
- "Iogon": "Į",
- "iogon": "į",
- "Iopf": "𝕀",
- "iopf": "𝕚",
- "Iota": "Ι",
- "iota": "ι",
- "iprod": "⨼",
- "iquest": "¿",
- "iscr": "𝒾",
- "Iscr": "ℐ",
- "isin": "∈",
- "isindot": "⋵",
- "isinE": "⋹",
- "isins": "⋴",
- "isinsv": "⋳",
- "isinv": "∈",
- "it": "",
- "Itilde": "Ĩ",
- "itilde": "ĩ",
- "Iukcy": "І",
- "iukcy": "і",
- "Iuml": "Ï",
- "iuml": "ï",
- "Jcirc": "Ĵ",
- "jcirc": "ĵ",
- "Jcy": "Й",
- "jcy": "й",
- "Jfr": "𝔍",
- "jfr": "𝔧",
- "jmath": "ȷ",
- "Jopf": "𝕁",
- "jopf": "𝕛",
- "Jscr": "𝒥",
- "jscr": "𝒿",
- "Jsercy": "Ј",
- "jsercy": "ј",
- "Jukcy": "Є",
- "jukcy": "є",
- "Kappa": "Κ",
- "kappa": "κ",
- "kappav": "ϰ",
- "Kcedil": "Ķ",
- "kcedil": "ķ",
- "Kcy": "К",
- "kcy": "к",
- "Kfr": "𝔎",
- "kfr": "𝔨",
- "kgreen": "ĸ",
- "KHcy": "Х",
- "khcy": "х",
- "KJcy": "Ќ",
- "kjcy": "ќ",
- "Kopf": "𝕂",
- "kopf": "𝕜",
- "Kscr": "𝒦",
- "kscr": "𝓀",
- "lAarr": "⇚",
- "Lacute": "Ĺ",
- "lacute": "ĺ",
- "laemptyv": "⦴",
- "lagran": "ℒ",
- "Lambda": "Λ",
- "lambda": "λ",
- "lang": "⟨",
- "Lang": "⟪",
- "langd": "⦑",
- "langle": "⟨",
- "lap": "⪅",
- "Laplacetrf": "ℒ",
- "laquo": "«",
- "larrb": "⇤",
- "larrbfs": "⤟",
- "larr": "←",
- "Larr": "↞",
- "lArr": "⇐",
- "larrfs": "⤝",
- "larrhk": "↩",
- "larrlp": "↫",
- "larrpl": "⤹",
- "larrsim": "⥳",
- "larrtl": "↢",
- "latail": "⤙",
- "lAtail": "⤛",
- "lat": "⪫",
- "late": "⪭",
- "lates": "⪭︀",
- "lbarr": "⤌",
- "lBarr": "⤎",
- "lbbrk": "❲",
- "lbrace": "{",
- "lbrack": "[",
- "lbrke": "⦋",
- "lbrksld": "⦏",
- "lbrkslu": "⦍",
- "Lcaron": "Ľ",
- "lcaron": "ľ",
- "Lcedil": "Ļ",
- "lcedil": "ļ",
- "lceil": "⌈",
- "lcub": "{",
- "Lcy": "Л",
- "lcy": "л",
- "ldca": "⤶",
- "ldquo": "“",
- "ldquor": "„",
- "ldrdhar": "⥧",
- "ldrushar": "⥋",
- "ldsh": "↲",
- "le": "≤",
- "lE": "≦",
- "LeftAngleBracket": "⟨",
- "LeftArrowBar": "⇤",
- "leftarrow": "←",
- "LeftArrow": "←",
- "Leftarrow": "⇐",
- "LeftArrowRightArrow": "⇆",
- "leftarrowtail": "↢",
- "LeftCeiling": "⌈",
- "LeftDoubleBracket": "⟦",
- "LeftDownTeeVector": "⥡",
- "LeftDownVectorBar": "⥙",
- "LeftDownVector": "⇃",
- "LeftFloor": "⌊",
- "leftharpoondown": "↽",
- "leftharpoonup": "↼",
- "leftleftarrows": "⇇",
- "leftrightarrow": "↔",
- "LeftRightArrow": "↔",
- "Leftrightarrow": "⇔",
- "leftrightarrows": "⇆",
- "leftrightharpoons": "⇋",
- "leftrightsquigarrow": "↭",
- "LeftRightVector": "⥎",
- "LeftTeeArrow": "↤",
- "LeftTee": "⊣",
- "LeftTeeVector": "⥚",
- "leftthreetimes": "⋋",
- "LeftTriangleBar": "⧏",
- "LeftTriangle": "⊲",
- "LeftTriangleEqual": "⊴",
- "LeftUpDownVector": "⥑",
- "LeftUpTeeVector": "⥠",
- "LeftUpVectorBar": "⥘",
- "LeftUpVector": "↿",
- "LeftVectorBar": "⥒",
- "LeftVector": "↼",
- "lEg": "⪋",
- "leg": "⋚",
- "leq": "≤",
- "leqq": "≦",
- "leqslant": "⩽",
- "lescc": "⪨",
- "les": "⩽",
- "lesdot": "⩿",
- "lesdoto": "⪁",
- "lesdotor": "⪃",
- "lesg": "⋚︀",
- "lesges": "⪓",
- "lessapprox": "⪅",
- "lessdot": "⋖",
- "lesseqgtr": "⋚",
- "lesseqqgtr": "⪋",
- "LessEqualGreater": "⋚",
- "LessFullEqual": "≦",
- "LessGreater": "≶",
- "lessgtr": "≶",
- "LessLess": "⪡",
- "lesssim": "≲",
- "LessSlantEqual": "⩽",
- "LessTilde": "≲",
- "lfisht": "⥼",
- "lfloor": "⌊",
- "Lfr": "𝔏",
- "lfr": "𝔩",
- "lg": "≶",
- "lgE": "⪑",
- "lHar": "⥢",
- "lhard": "↽",
- "lharu": "↼",
- "lharul": "⥪",
- "lhblk": "▄",
- "LJcy": "Љ",
- "ljcy": "љ",
- "llarr": "⇇",
- "ll": "≪",
- "Ll": "⋘",
- "llcorner": "⌞",
- "Lleftarrow": "⇚",
- "llhard": "⥫",
- "lltri": "◺",
- "Lmidot": "Ŀ",
- "lmidot": "ŀ",
- "lmoustache": "⎰",
- "lmoust": "⎰",
- "lnap": "⪉",
- "lnapprox": "⪉",
- "lne": "⪇",
- "lnE": "≨",
- "lneq": "⪇",
- "lneqq": "≨",
- "lnsim": "⋦",
- "loang": "⟬",
- "loarr": "⇽",
- "lobrk": "⟦",
- "longleftarrow": "⟵",
- "LongLeftArrow": "⟵",
- "Longleftarrow": "⟸",
- "longleftrightarrow": "⟷",
- "LongLeftRightArrow": "⟷",
- "Longleftrightarrow": "⟺",
- "longmapsto": "⟼",
- "longrightarrow": "⟶",
- "LongRightArrow": "⟶",
- "Longrightarrow": "⟹",
- "looparrowleft": "↫",
- "looparrowright": "↬",
- "lopar": "⦅",
- "Lopf": "𝕃",
- "lopf": "𝕝",
- "loplus": "⨭",
- "lotimes": "⨴",
- "lowast": "∗",
- "lowbar": "_",
- "LowerLeftArrow": "↙",
- "LowerRightArrow": "↘",
- "loz": "◊",
- "lozenge": "◊",
- "lozf": "⧫",
- "lpar": "(",
- "lparlt": "⦓",
- "lrarr": "⇆",
- "lrcorner": "⌟",
- "lrhar": "⇋",
- "lrhard": "⥭",
- "lrm": "",
- "lrtri": "⊿",
- "lsaquo": "‹",
- "lscr": "𝓁",
- "Lscr": "ℒ",
- "lsh": "↰",
- "Lsh": "↰",
- "lsim": "≲",
- "lsime": "⪍",
- "lsimg": "⪏",
- "lsqb": "[",
- "lsquo": "‘",
- "lsquor": "‚",
- "Lstrok": "Ł",
- "lstrok": "ł",
- "ltcc": "⪦",
- "ltcir": "⩹",
- "lt": "<",
- "LT": "<",
- "Lt": "≪",
- "ltdot": "⋖",
- "lthree": "⋋",
- "ltimes": "⋉",
- "ltlarr": "⥶",
- "ltquest": "⩻",
- "ltri": "◃",
- "ltrie": "⊴",
- "ltrif": "◂",
- "ltrPar": "⦖",
- "lurdshar": "⥊",
- "luruhar": "⥦",
- "lvertneqq": "≨︀",
- "lvnE": "≨︀",
- "macr": "¯",
- "male": "♂",
- "malt": "✠",
- "maltese": "✠",
- "Map": "⤅",
- "map": "↦",
- "mapsto": "↦",
- "mapstodown": "↧",
- "mapstoleft": "↤",
- "mapstoup": "↥",
- "marker": "▮",
- "mcomma": "⨩",
- "Mcy": "М",
- "mcy": "м",
- "mdash": "—",
- "mDDot": "∺",
- "measuredangle": "∡",
- "MediumSpace": " ",
- "Mellintrf": "ℳ",
- "Mfr": "𝔐",
- "mfr": "𝔪",
- "mho": "℧",
- "micro": "µ",
- "midast": "*",
- "midcir": "⫰",
- "mid": "∣",
- "middot": "·",
- "minusb": "⊟",
- "minus": "−",
- "minusd": "∸",
- "minusdu": "⨪",
- "MinusPlus": "∓",
- "mlcp": "⫛",
- "mldr": "…",
- "mnplus": "∓",
- "models": "⊧",
- "Mopf": "𝕄",
- "mopf": "𝕞",
- "mp": "∓",
- "mscr": "𝓂",
- "Mscr": "ℳ",
- "mstpos": "∾",
- "Mu": "Μ",
- "mu": "μ",
- "multimap": "⊸",
- "mumap": "⊸",
- "nabla": "∇",
- "Nacute": "Ń",
- "nacute": "ń",
- "nang": "∠⃒",
- "nap": "≉",
- "napE": "⩰̸",
- "napid": "≋̸",
- "napos": "ʼn",
- "napprox": "≉",
- "natural": "♮",
- "naturals": "ℕ",
- "natur": "♮",
- "nbsp": " ",
- "nbump": "≎̸",
- "nbumpe": "≏̸",
- "ncap": "⩃",
- "Ncaron": "Ň",
- "ncaron": "ň",
- "Ncedil": "Ņ",
- "ncedil": "ņ",
- "ncong": "≇",
- "ncongdot": "⩭̸",
- "ncup": "⩂",
- "Ncy": "Н",
- "ncy": "н",
- "ndash": "–",
- "nearhk": "⤤",
- "nearr": "↗",
- "neArr": "⇗",
- "nearrow": "↗",
- "ne": "≠",
- "nedot": "≐̸",
- "NegativeMediumSpace": "",
- "NegativeThickSpace": "",
- "NegativeThinSpace": "",
- "NegativeVeryThinSpace": "",
- "nequiv": "≢",
- "nesear": "⤨",
- "nesim": "≂̸",
- "NestedGreaterGreater": "≫",
- "NestedLessLess": "≪",
- "NewLine": "\n",
- "nexist": "∄",
- "nexists": "∄",
- "Nfr": "𝔑",
- "nfr": "𝔫",
- "ngE": "≧̸",
- "nge": "≱",
- "ngeq": "≱",
- "ngeqq": "≧̸",
- "ngeqslant": "⩾̸",
- "nges": "⩾̸",
- "nGg": "⋙̸",
- "ngsim": "≵",
- "nGt": "≫⃒",
- "ngt": "≯",
- "ngtr": "≯",
- "nGtv": "≫̸",
- "nharr": "↮",
- "nhArr": "⇎",
- "nhpar": "⫲",
- "ni": "∋",
- "nis": "⋼",
- "nisd": "⋺",
- "niv": "∋",
- "NJcy": "Њ",
- "njcy": "њ",
- "nlarr": "↚",
- "nlArr": "⇍",
- "nldr": "‥",
- "nlE": "≦̸",
- "nle": "≰",
- "nleftarrow": "↚",
- "nLeftarrow": "⇍",
- "nleftrightarrow": "↮",
- "nLeftrightarrow": "⇎",
- "nleq": "≰",
- "nleqq": "≦̸",
- "nleqslant": "⩽̸",
- "nles": "⩽̸",
- "nless": "≮",
- "nLl": "⋘̸",
- "nlsim": "≴",
- "nLt": "≪⃒",
- "nlt": "≮",
- "nltri": "⋪",
- "nltrie": "⋬",
- "nLtv": "≪̸",
- "nmid": "∤",
- "NoBreak": "",
- "NonBreakingSpace": " ",
- "nopf": "𝕟",
- "Nopf": "ℕ",
- "Not": "⫬",
- "not": "¬",
- "NotCongruent": "≢",
- "NotCupCap": "≭",
- "NotDoubleVerticalBar": "∦",
- "NotElement": "∉",
- "NotEqual": "≠",
- "NotEqualTilde": "≂̸",
- "NotExists": "∄",
- "NotGreater": "≯",
- "NotGreaterEqual": "≱",
- "NotGreaterFullEqual": "≧̸",
- "NotGreaterGreater": "≫̸",
- "NotGreaterLess": "≹",
- "NotGreaterSlantEqual": "⩾̸",
- "NotGreaterTilde": "≵",
- "NotHumpDownHump": "≎̸",
- "NotHumpEqual": "≏̸",
- "notin": "∉",
- "notindot": "⋵̸",
- "notinE": "⋹̸",
- "notinva": "∉",
- "notinvb": "⋷",
- "notinvc": "⋶",
- "NotLeftTriangleBar": "⧏̸",
- "NotLeftTriangle": "⋪",
- "NotLeftTriangleEqual": "⋬",
- "NotLess": "≮",
- "NotLessEqual": "≰",
- "NotLessGreater": "≸",
- "NotLessLess": "≪̸",
- "NotLessSlantEqual": "⩽̸",
- "NotLessTilde": "≴",
- "NotNestedGreaterGreater": "⪢̸",
- "NotNestedLessLess": "⪡̸",
- "notni": "∌",
- "notniva": "∌",
- "notnivb": "⋾",
- "notnivc": "⋽",
- "NotPrecedes": "⊀",
- "NotPrecedesEqual": "⪯̸",
- "NotPrecedesSlantEqual": "⋠",
- "NotReverseElement": "∌",
- "NotRightTriangleBar": "⧐̸",
- "NotRightTriangle": "⋫",
- "NotRightTriangleEqual": "⋭",
- "NotSquareSubset": "⊏̸",
- "NotSquareSubsetEqual": "⋢",
- "NotSquareSuperset": "⊐̸",
- "NotSquareSupersetEqual": "⋣",
- "NotSubset": "⊂⃒",
- "NotSubsetEqual": "⊈",
- "NotSucceeds": "⊁",
- "NotSucceedsEqual": "⪰̸",
- "NotSucceedsSlantEqual": "⋡",
- "NotSucceedsTilde": "≿̸",
- "NotSuperset": "⊃⃒",
- "NotSupersetEqual": "⊉",
- "NotTilde": "≁",
- "NotTildeEqual": "≄",
- "NotTildeFullEqual": "≇",
- "NotTildeTilde": "≉",
- "NotVerticalBar": "∤",
- "nparallel": "∦",
- "npar": "∦",
- "nparsl": "⫽⃥",
- "npart": "∂̸",
- "npolint": "⨔",
- "npr": "⊀",
- "nprcue": "⋠",
- "nprec": "⊀",
- "npreceq": "⪯̸",
- "npre": "⪯̸",
- "nrarrc": "⤳̸",
- "nrarr": "↛",
- "nrArr": "⇏",
- "nrarrw": "↝̸",
- "nrightarrow": "↛",
- "nRightarrow": "⇏",
- "nrtri": "⋫",
- "nrtrie": "⋭",
- "nsc": "⊁",
- "nsccue": "⋡",
- "nsce": "⪰̸",
- "Nscr": "𝒩",
- "nscr": "𝓃",
- "nshortmid": "∤",
- "nshortparallel": "∦",
- "nsim": "≁",
- "nsime": "≄",
- "nsimeq": "≄",
- "nsmid": "∤",
- "nspar": "∦",
- "nsqsube": "⋢",
- "nsqsupe": "⋣",
- "nsub": "⊄",
- "nsubE": "⫅̸",
- "nsube": "⊈",
- "nsubset": "⊂⃒",
- "nsubseteq": "⊈",
- "nsubseteqq": "⫅̸",
- "nsucc": "⊁",
- "nsucceq": "⪰̸",
- "nsup": "⊅",
- "nsupE": "⫆̸",
- "nsupe": "⊉",
- "nsupset": "⊃⃒",
- "nsupseteq": "⊉",
- "nsupseteqq": "⫆̸",
- "ntgl": "≹",
- "Ntilde": "Ñ",
- "ntilde": "ñ",
- "ntlg": "≸",
- "ntriangleleft": "⋪",
- "ntrianglelefteq": "⋬",
- "ntriangleright": "⋫",
- "ntrianglerighteq": "⋭",
- "Nu": "Ν",
- "nu": "ν",
- "num": "#",
- "numero": "№",
- "numsp": " ",
- "nvap": "≍⃒",
- "nvdash": "⊬",
- "nvDash": "⊭",
- "nVdash": "⊮",
- "nVDash": "⊯",
- "nvge": "≥⃒",
- "nvgt": ">⃒",
- "nvHarr": "⤄",
- "nvinfin": "⧞",
- "nvlArr": "⤂",
- "nvle": "≤⃒",
- "nvlt": "<⃒",
- "nvltrie": "⊴⃒",
- "nvrArr": "⤃",
- "nvrtrie": "⊵⃒",
- "nvsim": "∼⃒",
- "nwarhk": "⤣",
- "nwarr": "↖",
- "nwArr": "⇖",
- "nwarrow": "↖",
- "nwnear": "⤧",
- "Oacute": "Ó",
- "oacute": "ó",
- "oast": "⊛",
- "Ocirc": "Ô",
- "ocirc": "ô",
- "ocir": "⊚",
- "Ocy": "О",
- "ocy": "о",
- "odash": "⊝",
- "Odblac": "Ő",
- "odblac": "ő",
- "odiv": "⨸",
- "odot": "⊙",
- "odsold": "⦼",
- "OElig": "Œ",
- "oelig": "œ",
- "ofcir": "⦿",
- "Ofr": "𝔒",
- "ofr": "𝔬",
- "ogon": "˛",
- "Ograve": "Ò",
- "ograve": "ò",
- "ogt": "⧁",
- "ohbar": "⦵",
- "ohm": "Ω",
- "oint": "∮",
- "olarr": "↺",
- "olcir": "⦾",
- "olcross": "⦻",
- "oline": "‾",
- "olt": "⧀",
- "Omacr": "Ō",
- "omacr": "ō",
- "Omega": "Ω",
- "omega": "ω",
- "Omicron": "Ο",
- "omicron": "ο",
- "omid": "⦶",
- "ominus": "⊖",
- "Oopf": "𝕆",
- "oopf": "𝕠",
- "opar": "⦷",
- "OpenCurlyDoubleQuote": "“",
- "OpenCurlyQuote": "‘",
- "operp": "⦹",
- "oplus": "⊕",
- "orarr": "↻",
- "Or": "⩔",
- "or": "∨",
- "ord": "⩝",
- "order": "ℴ",
- "orderof": "ℴ",
- "ordf": "ª",
- "ordm": "º",
- "origof": "⊶",
- "oror": "⩖",
- "orslope": "⩗",
- "orv": "⩛",
- "oS": "Ⓢ",
- "Oscr": "𝒪",
- "oscr": "ℴ",
- "Oslash": "Ø",
- "oslash": "ø",
- "osol": "⊘",
- "Otilde": "Õ",
- "otilde": "õ",
- "otimesas": "⨶",
- "Otimes": "⨷",
- "otimes": "⊗",
- "Ouml": "Ö",
- "ouml": "ö",
- "ovbar": "⌽",
- "OverBar": "‾",
- "OverBrace": "⏞",
- "OverBracket": "⎴",
- "OverParenthesis": "⏜",
- "para": "¶",
- "parallel": "∥",
- "par": "∥",
- "parsim": "⫳",
- "parsl": "⫽",
- "part": "∂",
- "PartialD": "∂",
- "Pcy": "П",
- "pcy": "п",
- "percnt": "%",
- "period": ".",
- "permil": "‰",
- "perp": "⊥",
- "pertenk": "‱",
- "Pfr": "𝔓",
- "pfr": "𝔭",
- "Phi": "Φ",
- "phi": "φ",
- "phiv": "ϕ",
- "phmmat": "ℳ",
- "phone": "☎",
- "Pi": "Π",
- "pi": "π",
- "pitchfork": "⋔",
- "piv": "ϖ",
- "planck": "ℏ",
- "planckh": "ℎ",
- "plankv": "ℏ",
- "plusacir": "⨣",
- "plusb": "⊞",
- "pluscir": "⨢",
- "plus": "+",
- "plusdo": "∔",
- "plusdu": "⨥",
- "pluse": "⩲",
- "PlusMinus": "±",
- "plusmn": "±",
- "plussim": "⨦",
- "plustwo": "⨧",
- "pm": "±",
- "Poincareplane": "ℌ",
- "pointint": "⨕",
- "popf": "𝕡",
- "Popf": "ℙ",
- "pound": "£",
- "prap": "⪷",
- "Pr": "⪻",
- "pr": "≺",
- "prcue": "≼",
- "precapprox": "⪷",
- "prec": "≺",
- "preccurlyeq": "≼",
- "Precedes": "≺",
- "PrecedesEqual": "⪯",
- "PrecedesSlantEqual": "≼",
- "PrecedesTilde": "≾",
- "preceq": "⪯",
- "precnapprox": "⪹",
- "precneqq": "⪵",
- "precnsim": "⋨",
- "pre": "⪯",
- "prE": "⪳",
- "precsim": "≾",
- "prime": "′",
- "Prime": "″",
- "primes": "ℙ",
- "prnap": "⪹",
- "prnE": "⪵",
- "prnsim": "⋨",
- "prod": "∏",
- "Product": "∏",
- "profalar": "⌮",
- "profline": "⌒",
- "profsurf": "⌓",
- "prop": "∝",
- "Proportional": "∝",
- "Proportion": "∷",
- "propto": "∝",
- "prsim": "≾",
- "prurel": "⊰",
- "Pscr": "𝒫",
- "pscr": "𝓅",
- "Psi": "Ψ",
- "psi": "ψ",
- "puncsp": " ",
- "Qfr": "𝔔",
- "qfr": "𝔮",
- "qint": "⨌",
- "qopf": "𝕢",
- "Qopf": "ℚ",
- "qprime": "⁗",
- "Qscr": "𝒬",
- "qscr": "𝓆",
- "quaternions": "ℍ",
- "quatint": "⨖",
- "quest": "?",
- "questeq": "≟",
- "quot": "\"",
- "QUOT": "\"",
- "rAarr": "⇛",
- "race": "∽̱",
- "Racute": "Ŕ",
- "racute": "ŕ",
- "radic": "√",
- "raemptyv": "⦳",
- "rang": "⟩",
- "Rang": "⟫",
- "rangd": "⦒",
- "range": "⦥",
- "rangle": "⟩",
- "raquo": "»",
- "rarrap": "⥵",
- "rarrb": "⇥",
- "rarrbfs": "⤠",
- "rarrc": "⤳",
- "rarr": "→",
- "Rarr": "↠",
- "rArr": "⇒",
- "rarrfs": "⤞",
- "rarrhk": "↪",
- "rarrlp": "↬",
- "rarrpl": "⥅",
- "rarrsim": "⥴",
- "Rarrtl": "⤖",
- "rarrtl": "↣",
- "rarrw": "↝",
- "ratail": "⤚",
- "rAtail": "⤜",
- "ratio": "∶",
- "rationals": "ℚ",
- "rbarr": "⤍",
- "rBarr": "⤏",
- "RBarr": "⤐",
- "rbbrk": "❳",
- "rbrace": "}",
- "rbrack": "]",
- "rbrke": "⦌",
- "rbrksld": "⦎",
- "rbrkslu": "⦐",
- "Rcaron": "Ř",
- "rcaron": "ř",
- "Rcedil": "Ŗ",
- "rcedil": "ŗ",
- "rceil": "⌉",
- "rcub": "}",
- "Rcy": "Р",
- "rcy": "р",
- "rdca": "⤷",
- "rdldhar": "⥩",
- "rdquo": "”",
- "rdquor": "”",
- "rdsh": "↳",
- "real": "ℜ",
- "realine": "ℛ",
- "realpart": "ℜ",
- "reals": "ℝ",
- "Re": "ℜ",
- "rect": "▭",
- "reg": "®",
- "REG": "®",
- "ReverseElement": "∋",
- "ReverseEquilibrium": "⇋",
- "ReverseUpEquilibrium": "⥯",
- "rfisht": "⥽",
- "rfloor": "⌋",
- "rfr": "𝔯",
- "Rfr": "ℜ",
- "rHar": "⥤",
- "rhard": "⇁",
- "rharu": "⇀",
- "rharul": "⥬",
- "Rho": "Ρ",
- "rho": "ρ",
- "rhov": "ϱ",
- "RightAngleBracket": "⟩",
- "RightArrowBar": "⇥",
- "rightarrow": "→",
- "RightArrow": "→",
- "Rightarrow": "⇒",
- "RightArrowLeftArrow": "⇄",
- "rightarrowtail": "↣",
- "RightCeiling": "⌉",
- "RightDoubleBracket": "⟧",
- "RightDownTeeVector": "⥝",
- "RightDownVectorBar": "⥕",
- "RightDownVector": "⇂",
- "RightFloor": "⌋",
- "rightharpoondown": "⇁",
- "rightharpoonup": "⇀",
- "rightleftarrows": "⇄",
- "rightleftharpoons": "⇌",
- "rightrightarrows": "⇉",
- "rightsquigarrow": "↝",
- "RightTeeArrow": "↦",
- "RightTee": "⊢",
- "RightTeeVector": "⥛",
- "rightthreetimes": "⋌",
- "RightTriangleBar": "⧐",
- "RightTriangle": "⊳",
- "RightTriangleEqual": "⊵",
- "RightUpDownVector": "⥏",
- "RightUpTeeVector": "⥜",
- "RightUpVectorBar": "⥔",
- "RightUpVector": "↾",
- "RightVectorBar": "⥓",
- "RightVector": "⇀",
- "ring": "˚",
- "risingdotseq": "≓",
- "rlarr": "⇄",
- "rlhar": "⇌",
- "rlm": "",
- "rmoustache": "⎱",
- "rmoust": "⎱",
- "rnmid": "⫮",
- "roang": "⟭",
- "roarr": "⇾",
- "robrk": "⟧",
- "ropar": "⦆",
- "ropf": "𝕣",
- "Ropf": "ℝ",
- "roplus": "⨮",
- "rotimes": "⨵",
- "RoundImplies": "⥰",
- "rpar": ")",
- "rpargt": "⦔",
- "rppolint": "⨒",
- "rrarr": "⇉",
- "Rrightarrow": "⇛",
- "rsaquo": "›",
- "rscr": "𝓇",
- "Rscr": "ℛ",
- "rsh": "↱",
- "Rsh": "↱",
- "rsqb": "]",
- "rsquo": "’",
- "rsquor": "’",
- "rthree": "⋌",
- "rtimes": "⋊",
- "rtri": "▹",
- "rtrie": "⊵",
- "rtrif": "▸",
- "rtriltri": "⧎",
- "RuleDelayed": "⧴",
- "ruluhar": "⥨",
- "rx": "℞",
- "Sacute": "Ś",
- "sacute": "ś",
- "sbquo": "‚",
- "scap": "⪸",
- "Scaron": "Š",
- "scaron": "š",
- "Sc": "⪼",
- "sc": "≻",
- "sccue": "≽",
- "sce": "⪰",
- "scE": "⪴",
- "Scedil": "Ş",
- "scedil": "ş",
- "Scirc": "Ŝ",
- "scirc": "ŝ",
- "scnap": "⪺",
- "scnE": "⪶",
- "scnsim": "⋩",
- "scpolint": "⨓",
- "scsim": "≿",
- "Scy": "С",
- "scy": "с",
- "sdotb": "⊡",
- "sdot": "⋅",
- "sdote": "⩦",
- "searhk": "⤥",
- "searr": "↘",
- "seArr": "⇘",
- "searrow": "↘",
- "sect": "§",
- "semi": ";",
- "seswar": "⤩",
- "setminus": "∖",
- "setmn": "∖",
- "sext": "✶",
- "Sfr": "𝔖",
- "sfr": "𝔰",
- "sfrown": "⌢",
- "sharp": "♯",
- "SHCHcy": "Щ",
- "shchcy": "щ",
- "SHcy": "Ш",
- "shcy": "ш",
- "ShortDownArrow": "↓",
- "ShortLeftArrow": "←",
- "shortmid": "∣",
- "shortparallel": "∥",
- "ShortRightArrow": "→",
- "ShortUpArrow": "↑",
- "shy": "",
- "Sigma": "Σ",
- "sigma": "σ",
- "sigmaf": "ς",
- "sigmav": "ς",
- "sim": "∼",
- "simdot": "⩪",
- "sime": "≃",
- "simeq": "≃",
- "simg": "⪞",
- "simgE": "⪠",
- "siml": "⪝",
- "simlE": "⪟",
- "simne": "≆",
- "simplus": "⨤",
- "simrarr": "⥲",
- "slarr": "←",
- "SmallCircle": "∘",
- "smallsetminus": "∖",
- "smashp": "⨳",
- "smeparsl": "⧤",
- "smid": "∣",
- "smile": "⌣",
- "smt": "⪪",
- "smte": "⪬",
- "smtes": "⪬︀",
- "SOFTcy": "Ь",
- "softcy": "ь",
- "solbar": "⌿",
- "solb": "⧄",
- "sol": "/",
- "Sopf": "𝕊",
- "sopf": "𝕤",
- "spades": "♠",
- "spadesuit": "♠",
- "spar": "∥",
- "sqcap": "⊓",
- "sqcaps": "⊓︀",
- "sqcup": "⊔",
- "sqcups": "⊔︀",
- "Sqrt": "√",
- "sqsub": "⊏",
- "sqsube": "⊑",
- "sqsubset": "⊏",
- "sqsubseteq": "⊑",
- "sqsup": "⊐",
- "sqsupe": "⊒",
- "sqsupset": "⊐",
- "sqsupseteq": "⊒",
- "square": "□",
- "Square": "□",
- "SquareIntersection": "⊓",
- "SquareSubset": "⊏",
- "SquareSubsetEqual": "⊑",
- "SquareSuperset": "⊐",
- "SquareSupersetEqual": "⊒",
- "SquareUnion": "⊔",
- "squarf": "▪",
- "squ": "□",
- "squf": "▪",
- "srarr": "→",
- "Sscr": "𝒮",
- "sscr": "𝓈",
- "ssetmn": "∖",
- "ssmile": "⌣",
- "sstarf": "⋆",
- "Star": "⋆",
- "star": "☆",
- "starf": "★",
- "straightepsilon": "ϵ",
- "straightphi": "ϕ",
- "strns": "¯",
- "sub": "⊂",
- "Sub": "⋐",
- "subdot": "⪽",
- "subE": "⫅",
- "sube": "⊆",
- "subedot": "⫃",
- "submult": "⫁",
- "subnE": "⫋",
- "subne": "⊊",
- "subplus": "⪿",
- "subrarr": "⥹",
- "subset": "⊂",
- "Subset": "⋐",
- "subseteq": "⊆",
- "subseteqq": "⫅",
- "SubsetEqual": "⊆",
- "subsetneq": "⊊",
- "subsetneqq": "⫋",
- "subsim": "⫇",
- "subsub": "⫕",
- "subsup": "⫓",
- "succapprox": "⪸",
- "succ": "≻",
- "succcurlyeq": "≽",
- "Succeeds": "≻",
- "SucceedsEqual": "⪰",
- "SucceedsSlantEqual": "≽",
- "SucceedsTilde": "≿",
- "succeq": "⪰",
- "succnapprox": "⪺",
- "succneqq": "⪶",
- "succnsim": "⋩",
- "succsim": "≿",
- "SuchThat": "∋",
- "sum": "∑",
- "Sum": "∑",
- "sung": "♪",
- "sup1": "¹",
- "sup2": "²",
- "sup3": "³",
- "sup": "⊃",
- "Sup": "⋑",
- "supdot": "⪾",
- "supdsub": "⫘",
- "supE": "⫆",
- "supe": "⊇",
- "supedot": "⫄",
- "Superset": "⊃",
- "SupersetEqual": "⊇",
- "suphsol": "⟉",
- "suphsub": "⫗",
- "suplarr": "⥻",
- "supmult": "⫂",
- "supnE": "⫌",
- "supne": "⊋",
- "supplus": "⫀",
- "supset": "⊃",
- "Supset": "⋑",
- "supseteq": "⊇",
- "supseteqq": "⫆",
- "supsetneq": "⊋",
- "supsetneqq": "⫌",
- "supsim": "⫈",
- "supsub": "⫔",
- "supsup": "⫖",
- "swarhk": "⤦",
- "swarr": "↙",
- "swArr": "⇙",
- "swarrow": "↙",
- "swnwar": "⤪",
- "szlig": "ß",
- "Tab": "\t",
- "target": "⌖",
- "Tau": "Τ",
- "tau": "τ",
- "tbrk": "⎴",
- "Tcaron": "Ť",
- "tcaron": "ť",
- "Tcedil": "Ţ",
- "tcedil": "ţ",
- "Tcy": "Т",
- "tcy": "т",
- "tdot": "⃛",
- "telrec": "⌕",
- "Tfr": "𝔗",
- "tfr": "𝔱",
- "there4": "∴",
- "therefore": "∴",
- "Therefore": "∴",
- "Theta": "Θ",
- "theta": "θ",
- "thetasym": "ϑ",
- "thetav": "ϑ",
- "thickapprox": "≈",
- "thicksim": "∼",
- "ThickSpace": " ",
- "ThinSpace": " ",
- "thinsp": " ",
- "thkap": "≈",
- "thksim": "∼",
- "THORN": "Þ",
- "thorn": "þ",
- "tilde": "˜",
- "Tilde": "∼",
- "TildeEqual": "≃",
- "TildeFullEqual": "≅",
- "TildeTilde": "≈",
- "timesbar": "⨱",
- "timesb": "⊠",
- "times": "×",
- "timesd": "⨰",
- "tint": "∭",
- "toea": "⤨",
- "topbot": "⌶",
- "topcir": "⫱",
- "top": "⊤",
- "Topf": "𝕋",
- "topf": "𝕥",
- "topfork": "⫚",
- "tosa": "⤩",
- "tprime": "‴",
- "trade": "™",
- "TRADE": "™",
- "triangle": "▵",
- "triangledown": "▿",
- "triangleleft": "◃",
- "trianglelefteq": "⊴",
- "triangleq": "≜",
- "triangleright": "▹",
- "trianglerighteq": "⊵",
- "tridot": "◬",
- "trie": "≜",
- "triminus": "⨺",
- "TripleDot": "⃛",
- "triplus": "⨹",
- "trisb": "⧍",
- "tritime": "⨻",
- "trpezium": "⏢",
- "Tscr": "𝒯",
- "tscr": "𝓉",
- "TScy": "Ц",
- "tscy": "ц",
- "TSHcy": "Ћ",
- "tshcy": "ћ",
- "Tstrok": "Ŧ",
- "tstrok": "ŧ",
- "twixt": "≬",
- "twoheadleftarrow": "↞",
- "twoheadrightarrow": "↠",
- "Uacute": "Ú",
- "uacute": "ú",
- "uarr": "↑",
- "Uarr": "↟",
- "uArr": "⇑",
- "Uarrocir": "⥉",
- "Ubrcy": "Ў",
- "ubrcy": "ў",
- "Ubreve": "Ŭ",
- "ubreve": "ŭ",
- "Ucirc": "Û",
- "ucirc": "û",
- "Ucy": "У",
- "ucy": "у",
- "udarr": "⇅",
- "Udblac": "Ű",
- "udblac": "ű",
- "udhar": "⥮",
- "ufisht": "⥾",
- "Ufr": "𝔘",
- "ufr": "𝔲",
- "Ugrave": "Ù",
- "ugrave": "ù",
- "uHar": "⥣",
- "uharl": "↿",
- "uharr": "↾",
- "uhblk": "▀",
- "ulcorn": "⌜",
- "ulcorner": "⌜",
- "ulcrop": "⌏",
- "ultri": "◸",
- "Umacr": "Ū",
- "umacr": "ū",
- "uml": "¨",
- "UnderBar": "_",
- "UnderBrace": "⏟",
- "UnderBracket": "⎵",
- "UnderParenthesis": "⏝",
- "Union": "⋃",
- "UnionPlus": "⊎",
- "Uogon": "Ų",
- "uogon": "ų",
- "Uopf": "𝕌",
- "uopf": "𝕦",
- "UpArrowBar": "⤒",
- "uparrow": "↑",
- "UpArrow": "↑",
- "Uparrow": "⇑",
- "UpArrowDownArrow": "⇅",
- "updownarrow": "↕",
- "UpDownArrow": "↕",
- "Updownarrow": "⇕",
- "UpEquilibrium": "⥮",
- "upharpoonleft": "↿",
- "upharpoonright": "↾",
- "uplus": "⊎",
- "UpperLeftArrow": "↖",
- "UpperRightArrow": "↗",
- "upsi": "υ",
- "Upsi": "ϒ",
- "upsih": "ϒ",
- "Upsilon": "Υ",
- "upsilon": "υ",
- "UpTeeArrow": "↥",
- "UpTee": "⊥",
- "upuparrows": "⇈",
- "urcorn": "⌝",
- "urcorner": "⌝",
- "urcrop": "⌎",
- "Uring": "Ů",
- "uring": "ů",
- "urtri": "◹",
- "Uscr": "𝒰",
- "uscr": "𝓊",
- "utdot": "⋰",
- "Utilde": "Ũ",
- "utilde": "ũ",
- "utri": "▵",
- "utrif": "▴",
- "uuarr": "⇈",
- "Uuml": "Ü",
- "uuml": "ü",
- "uwangle": "⦧",
- "vangrt": "⦜",
- "varepsilon": "ϵ",
- "varkappa": "ϰ",
- "varnothing": "∅",
- "varphi": "ϕ",
- "varpi": "ϖ",
- "varpropto": "∝",
- "varr": "↕",
- "vArr": "⇕",
- "varrho": "ϱ",
- "varsigma": "ς",
- "varsubsetneq": "⊊︀",
- "varsubsetneqq": "⫋︀",
- "varsupsetneq": "⊋︀",
- "varsupsetneqq": "⫌︀",
- "vartheta": "ϑ",
- "vartriangleleft": "⊲",
- "vartriangleright": "⊳",
- "vBar": "⫨",
- "Vbar": "⫫",
- "vBarv": "⫩",
- "Vcy": "В",
- "vcy": "в",
- "vdash": "⊢",
- "vDash": "⊨",
- "Vdash": "⊩",
- "VDash": "⊫",
- "Vdashl": "⫦",
- "veebar": "⊻",
- "vee": "∨",
- "Vee": "⋁",
- "veeeq": "≚",
- "vellip": "⋮",
- "verbar": "|",
- "Verbar": "‖",
- "vert": "|",
- "Vert": "‖",
- "VerticalBar": "∣",
- "VerticalLine": "|",
- "VerticalSeparator": "❘",
- "VerticalTilde": "≀",
- "VeryThinSpace": " ",
- "Vfr": "𝔙",
- "vfr": "𝔳",
- "vltri": "⊲",
- "vnsub": "⊂⃒",
- "vnsup": "⊃⃒",
- "Vopf": "𝕍",
- "vopf": "𝕧",
- "vprop": "∝",
- "vrtri": "⊳",
- "Vscr": "𝒱",
- "vscr": "𝓋",
- "vsubnE": "⫋︀",
- "vsubne": "⊊︀",
- "vsupnE": "⫌︀",
- "vsupne": "⊋︀",
- "Vvdash": "⊪",
- "vzigzag": "⦚",
- "Wcirc": "Ŵ",
- "wcirc": "ŵ",
- "wedbar": "⩟",
- "wedge": "∧",
- "Wedge": "⋀",
- "wedgeq": "≙",
- "weierp": "℘",
- "Wfr": "𝔚",
- "wfr": "𝔴",
- "Wopf": "𝕎",
- "wopf": "𝕨",
- "wp": "℘",
- "wr": "≀",
- "wreath": "≀",
- "Wscr": "𝒲",
- "wscr": "𝓌",
- "xcap": "⋂",
- "xcirc": "◯",
- "xcup": "⋃",
- "xdtri": "▽",
- "Xfr": "𝔛",
- "xfr": "𝔵",
- "xharr": "⟷",
- "xhArr": "⟺",
- "Xi": "Ξ",
- "xi": "ξ",
- "xlarr": "⟵",
- "xlArr": "⟸",
- "xmap": "⟼",
- "xnis": "⋻",
- "xodot": "⨀",
- "Xopf": "𝕏",
- "xopf": "𝕩",
- "xoplus": "⨁",
- "xotime": "⨂",
- "xrarr": "⟶",
- "xrArr": "⟹",
- "Xscr": "𝒳",
- "xscr": "𝓍",
- "xsqcup": "⨆",
- "xuplus": "⨄",
- "xutri": "△",
- "xvee": "⋁",
- "xwedge": "⋀",
- "Yacute": "Ý",
- "yacute": "ý",
- "YAcy": "Я",
- "yacy": "я",
- "Ycirc": "Ŷ",
- "ycirc": "ŷ",
- "Ycy": "Ы",
- "ycy": "ы",
- "yen": "¥",
- "Yfr": "𝔜",
- "yfr": "𝔶",
- "YIcy": "Ї",
- "yicy": "ї",
- "Yopf": "𝕐",
- "yopf": "𝕪",
- "Yscr": "𝒴",
- "yscr": "𝓎",
- "YUcy": "Ю",
- "yucy": "ю",
- "yuml": "ÿ",
- "Yuml": "Ÿ",
- "Zacute": "Ź",
- "zacute": "ź",
- "Zcaron": "Ž",
- "zcaron": "ž",
- "Zcy": "З",
- "zcy": "з",
- "Zdot": "Ż",
- "zdot": "ż",
- "zeetrf": "ℨ",
- "ZeroWidthSpace": "",
- "Zeta": "Ζ",
- "zeta": "ζ",
- "zfr": "𝔷",
- "Zfr": "ℨ",
- "ZHcy": "Ж",
- "zhcy": "ж",
- "zigrarr": "⇝",
- "zopf": "𝕫",
- "Zopf": "ℤ",
- "Zscr": "𝒵",
- "zscr": "𝓏",
- "zwj": "",
- "zwnj": ""
-};
+module.exports = {"Aacute":"Á","aacute":"á","Abreve":"Ă","abreve":"ă","ac":"∾","acd":"∿","acE":"∾̳","Acirc":"Â","acirc":"â","acute":"´","Acy":"А","acy":"а","AElig":"Æ","aelig":"æ","af":"","Afr":"𝔄","afr":"𝔞","Agrave":"À","agrave":"à","alefsym":"ℵ","aleph":"ℵ","Alpha":"Α","alpha":"α","Amacr":"Ā","amacr":"ā","amalg":"⨿","amp":"&","AMP":"&","andand":"⩕","And":"⩓","and":"∧","andd":"⩜","andslope":"⩘","andv":"⩚","ang":"∠","ange":"⦤","angle":"∠","angmsdaa":"⦨","angmsdab":"⦩","angmsdac":"⦪","angmsdad":"⦫","angmsdae":"⦬","angmsdaf":"⦭","angmsdag":"⦮","angmsdah":"⦯","angmsd":"∡","angrt":"∟","angrtvb":"⊾","angrtvbd":"⦝","angsph":"∢","angst":"Å","angzarr":"⍼","Aogon":"Ą","aogon":"ą","Aopf":"𝔸","aopf":"𝕒","apacir":"⩯","ap":"≈","apE":"⩰","ape":"≊","apid":"≋","apos":"'","ApplyFunction":"","approx":"≈","approxeq":"≊","Aring":"Å","aring":"å","Ascr":"𝒜","ascr":"𝒶","Assign":"≔","ast":"*","asymp":"≈","asympeq":"≍","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","awconint":"∳","awint":"⨑","backcong":"≌","backepsilon":"϶","backprime":"‵","backsim":"∽","backsimeq":"⋍","Backslash":"∖","Barv":"⫧","barvee":"⊽","barwed":"⌅","Barwed":"⌆","barwedge":"⌅","bbrk":"⎵","bbrktbrk":"⎶","bcong":"≌","Bcy":"Б","bcy":"б","bdquo":"„","becaus":"∵","because":"∵","Because":"∵","bemptyv":"⦰","bepsi":"϶","bernou":"ℬ","Bernoullis":"ℬ","Beta":"Β","beta":"β","beth":"ℶ","between":"≬","Bfr":"𝔅","bfr":"𝔟","bigcap":"⋂","bigcirc":"◯","bigcup":"⋃","bigodot":"⨀","bigoplus":"⨁","bigotimes":"⨂","bigsqcup":"⨆","bigstar":"★","bigtriangledown":"▽","bigtriangleup":"△","biguplus":"⨄","bigvee":"⋁","bigwedge":"⋀","bkarow":"⤍","blacklozenge":"⧫","blacksquare":"▪","blacktriangle":"▴","blacktriangledown":"▾","blacktriangleleft":"◂","blacktriangleright":"▸","blank":"␣","blk12":"▒","blk14":"░","blk34":"▓","block":"█","bne":"=⃥","bnequiv":"≡⃥","bNot":"⫭","bnot":"⌐","Bopf":"𝔹","bopf":"𝕓","bot":"⊥","bottom":"⊥","bowtie":"⋈","boxbox":"⧉","boxdl":"┐","boxdL":"╕","boxDl":"╖","boxDL":"╗","boxdr":"┌","boxdR":"╒","boxDr":"╓","boxDR":"╔","boxh":"─","boxH":"═","boxhd":"┬","boxHd":"╤","boxhD":"╥","boxHD":"╦","boxhu":"┴","boxHu":"╧","boxhU":"╨","boxHU":"╩","boxminus":"⊟","boxplus":"⊞","boxtimes":"⊠","boxul":"┘","boxuL":"╛","boxUl":"╜","boxUL":"╝","boxur":"└","boxuR":"╘","boxUr":"╙","boxUR":"╚","boxv":"│","boxV":"║","boxvh":"┼","boxvH":"╪","boxVh":"╫","boxVH":"╬","boxvl":"┤","boxvL":"╡","boxVl":"╢","boxVL":"╣","boxvr":"├","boxvR":"╞","boxVr":"╟","boxVR":"╠","bprime":"‵","breve":"˘","Breve":"˘","brvbar":"¦","bscr":"𝒷","Bscr":"ℬ","bsemi":"⁏","bsim":"∽","bsime":"⋍","bsolb":"⧅","bsol":"\\","bsolhsub":"⟈","bull":"•","bullet":"•","bump":"≎","bumpE":"⪮","bumpe":"≏","Bumpeq":"≎","bumpeq":"≏","Cacute":"Ć","cacute":"ć","capand":"⩄","capbrcup":"⩉","capcap":"⩋","cap":"∩","Cap":"⋒","capcup":"⩇","capdot":"⩀","CapitalDifferentialD":"ⅅ","caps":"∩︀","caret":"⁁","caron":"ˇ","Cayleys":"ℭ","ccaps":"⩍","Ccaron":"Č","ccaron":"č","Ccedil":"Ç","ccedil":"ç","Ccirc":"Ĉ","ccirc":"ĉ","Cconint":"∰","ccups":"⩌","ccupssm":"⩐","Cdot":"Ċ","cdot":"ċ","cedil":"¸","Cedilla":"¸","cemptyv":"⦲","cent":"¢","centerdot":"·","CenterDot":"·","cfr":"𝔠","Cfr":"ℭ","CHcy":"Ч","chcy":"ч","check":"✓","checkmark":"✓","Chi":"Χ","chi":"χ","circ":"ˆ","circeq":"≗","circlearrowleft":"↺","circlearrowright":"↻","circledast":"⊛","circledcirc":"⊚","circleddash":"⊝","CircleDot":"⊙","circledR":"®","circledS":"Ⓢ","CircleMinus":"⊖","CirclePlus":"⊕","CircleTimes":"⊗","cir":"○","cirE":"⧃","cire":"≗","cirfnint":"⨐","cirmid":"⫯","cirscir":"⧂","ClockwiseContourIntegral":"∲","CloseCurlyDoubleQuote":"”","CloseCurlyQuote":"’","clubs":"♣","clubsuit":"♣","colon":":","Colon":"∷","Colone":"⩴","colone":"≔","coloneq":"≔","comma":",","commat":"@","comp":"∁","compfn":"∘","complement":"∁","complexes":"ℂ","cong":"≅","congdot":"⩭","Congruent":"≡","conint":"∮","Conint":"∯","ContourIntegral":"∮","copf":"𝕔","Copf":"ℂ","coprod":"∐","Coproduct":"∐","copy":"©","COPY":"©","copysr":"℗","CounterClockwiseContourIntegral":"∳","crarr":"↵","cross":"✗","Cross":"⨯","Cscr":"𝒞","cscr":"𝒸","csub":"⫏","csube":"⫑","csup":"⫐","csupe":"⫒","ctdot":"⋯","cudarrl":"⤸","cudarrr":"⤵","cuepr":"⋞","cuesc":"⋟","cularr":"↶","cularrp":"⤽","cupbrcap":"⩈","cupcap":"⩆","CupCap":"≍","cup":"∪","Cup":"⋓","cupcup":"⩊","cupdot":"⊍","cupor":"⩅","cups":"∪︀","curarr":"↷","curarrm":"⤼","curlyeqprec":"⋞","curlyeqsucc":"⋟","curlyvee":"⋎","curlywedge":"⋏","curren":"¤","curvearrowleft":"↶","curvearrowright":"↷","cuvee":"⋎","cuwed":"⋏","cwconint":"∲","cwint":"∱","cylcty":"⌭","dagger":"†","Dagger":"‡","daleth":"ℸ","darr":"↓","Darr":"↡","dArr":"⇓","dash":"‐","Dashv":"⫤","dashv":"⊣","dbkarow":"⤏","dblac":"˝","Dcaron":"Ď","dcaron":"ď","Dcy":"Д","dcy":"д","ddagger":"‡","ddarr":"⇊","DD":"ⅅ","dd":"ⅆ","DDotrahd":"⤑","ddotseq":"⩷","deg":"°","Del":"∇","Delta":"Δ","delta":"δ","demptyv":"⦱","dfisht":"⥿","Dfr":"𝔇","dfr":"𝔡","dHar":"⥥","dharl":"⇃","dharr":"⇂","DiacriticalAcute":"´","DiacriticalDot":"˙","DiacriticalDoubleAcute":"˝","DiacriticalGrave":"`","DiacriticalTilde":"˜","diam":"⋄","diamond":"⋄","Diamond":"⋄","diamondsuit":"♦","diams":"♦","die":"¨","DifferentialD":"ⅆ","digamma":"ϝ","disin":"⋲","div":"÷","divide":"÷","divideontimes":"⋇","divonx":"⋇","DJcy":"Ђ","djcy":"ђ","dlcorn":"⌞","dlcrop":"⌍","dollar":"$","Dopf":"𝔻","dopf":"𝕕","Dot":"¨","dot":"˙","DotDot":"⃜","doteq":"≐","doteqdot":"≑","DotEqual":"≐","dotminus":"∸","dotplus":"∔","dotsquare":"⊡","doublebarwedge":"⌆","DoubleContourIntegral":"∯","DoubleDot":"¨","DoubleDownArrow":"⇓","DoubleLeftArrow":"⇐","DoubleLeftRightArrow":"⇔","DoubleLeftTee":"⫤","DoubleLongLeftArrow":"⟸","DoubleLongLeftRightArrow":"⟺","DoubleLongRightArrow":"⟹","DoubleRightArrow":"⇒","DoubleRightTee":"⊨","DoubleUpArrow":"⇑","DoubleUpDownArrow":"⇕","DoubleVerticalBar":"∥","DownArrowBar":"⤓","downarrow":"↓","DownArrow":"↓","Downarrow":"⇓","DownArrowUpArrow":"⇵","DownBreve":"̑","downdownarrows":"⇊","downharpoonleft":"⇃","downharpoonright":"⇂","DownLeftRightVector":"⥐","DownLeftTeeVector":"⥞","DownLeftVectorBar":"⥖","DownLeftVector":"↽","DownRightTeeVector":"⥟","DownRightVectorBar":"⥗","DownRightVector":"⇁","DownTeeArrow":"↧","DownTee":"⊤","drbkarow":"⤐","drcorn":"⌟","drcrop":"⌌","Dscr":"𝒟","dscr":"𝒹","DScy":"Ѕ","dscy":"ѕ","dsol":"⧶","Dstrok":"Đ","dstrok":"đ","dtdot":"⋱","dtri":"▿","dtrif":"▾","duarr":"⇵","duhar":"⥯","dwangle":"⦦","DZcy":"Џ","dzcy":"џ","dzigrarr":"⟿","Eacute":"É","eacute":"é","easter":"⩮","Ecaron":"Ě","ecaron":"ě","Ecirc":"Ê","ecirc":"ê","ecir":"≖","ecolon":"≕","Ecy":"Э","ecy":"э","eDDot":"⩷","Edot":"Ė","edot":"ė","eDot":"≑","ee":"ⅇ","efDot":"≒","Efr":"𝔈","efr":"𝔢","eg":"⪚","Egrave":"È","egrave":"è","egs":"⪖","egsdot":"⪘","el":"⪙","Element":"∈","elinters":"⏧","ell":"ℓ","els":"⪕","elsdot":"⪗","Emacr":"Ē","emacr":"ē","empty":"∅","emptyset":"∅","EmptySmallSquare":"◻","emptyv":"∅","EmptyVerySmallSquare":"▫","emsp13":" ","emsp14":" ","emsp":" ","ENG":"Ŋ","eng":"ŋ","ensp":" ","Eogon":"Ę","eogon":"ę","Eopf":"𝔼","eopf":"𝕖","epar":"⋕","eparsl":"⧣","eplus":"⩱","epsi":"ε","Epsilon":"Ε","epsilon":"ε","epsiv":"ϵ","eqcirc":"≖","eqcolon":"≕","eqsim":"≂","eqslantgtr":"⪖","eqslantless":"⪕","Equal":"⩵","equals":"=","EqualTilde":"≂","equest":"≟","Equilibrium":"⇌","equiv":"≡","equivDD":"⩸","eqvparsl":"⧥","erarr":"⥱","erDot":"≓","escr":"ℯ","Escr":"ℰ","esdot":"≐","Esim":"⩳","esim":"≂","Eta":"Η","eta":"η","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","euro":"€","excl":"!","exist":"∃","Exists":"∃","expectation":"ℰ","exponentiale":"ⅇ","ExponentialE":"ⅇ","fallingdotseq":"≒","Fcy":"Ф","fcy":"ф","female":"♀","ffilig":"ffi","fflig":"ff","ffllig":"ffl","Ffr":"𝔉","ffr":"𝔣","filig":"fi","FilledSmallSquare":"◼","FilledVerySmallSquare":"▪","fjlig":"fj","flat":"♭","fllig":"fl","fltns":"▱","fnof":"ƒ","Fopf":"𝔽","fopf":"𝕗","forall":"∀","ForAll":"∀","fork":"⋔","forkv":"⫙","Fouriertrf":"ℱ","fpartint":"⨍","frac12":"½","frac13":"⅓","frac14":"¼","frac15":"⅕","frac16":"⅙","frac18":"⅛","frac23":"⅔","frac25":"⅖","frac34":"¾","frac35":"⅗","frac38":"⅜","frac45":"⅘","frac56":"⅚","frac58":"⅝","frac78":"⅞","frasl":"⁄","frown":"⌢","fscr":"𝒻","Fscr":"ℱ","gacute":"ǵ","Gamma":"Γ","gamma":"γ","Gammad":"Ϝ","gammad":"ϝ","gap":"⪆","Gbreve":"Ğ","gbreve":"ğ","Gcedil":"Ģ","Gcirc":"Ĝ","gcirc":"ĝ","Gcy":"Г","gcy":"г","Gdot":"Ġ","gdot":"ġ","ge":"≥","gE":"≧","gEl":"⪌","gel":"⋛","geq":"≥","geqq":"≧","geqslant":"⩾","gescc":"⪩","ges":"⩾","gesdot":"⪀","gesdoto":"⪂","gesdotol":"⪄","gesl":"⋛︀","gesles":"⪔","Gfr":"𝔊","gfr":"𝔤","gg":"≫","Gg":"⋙","ggg":"⋙","gimel":"ℷ","GJcy":"Ѓ","gjcy":"ѓ","gla":"⪥","gl":"≷","glE":"⪒","glj":"⪤","gnap":"⪊","gnapprox":"⪊","gne":"⪈","gnE":"≩","gneq":"⪈","gneqq":"≩","gnsim":"⋧","Gopf":"𝔾","gopf":"𝕘","grave":"`","GreaterEqual":"≥","GreaterEqualLess":"⋛","GreaterFullEqual":"≧","GreaterGreater":"⪢","GreaterLess":"≷","GreaterSlantEqual":"⩾","GreaterTilde":"≳","Gscr":"𝒢","gscr":"ℊ","gsim":"≳","gsime":"⪎","gsiml":"⪐","gtcc":"⪧","gtcir":"⩺","gt":">","GT":">","Gt":"≫","gtdot":"⋗","gtlPar":"⦕","gtquest":"⩼","gtrapprox":"⪆","gtrarr":"⥸","gtrdot":"⋗","gtreqless":"⋛","gtreqqless":"⪌","gtrless":"≷","gtrsim":"≳","gvertneqq":"≩︀","gvnE":"≩︀","Hacek":"ˇ","hairsp":" ","half":"½","hamilt":"ℋ","HARDcy":"Ъ","hardcy":"ъ","harrcir":"⥈","harr":"↔","hArr":"⇔","harrw":"↭","Hat":"^","hbar":"ℏ","Hcirc":"Ĥ","hcirc":"ĥ","hearts":"♥","heartsuit":"♥","hellip":"…","hercon":"⊹","hfr":"𝔥","Hfr":"ℌ","HilbertSpace":"ℋ","hksearow":"⤥","hkswarow":"⤦","hoarr":"⇿","homtht":"∻","hookleftarrow":"↩","hookrightarrow":"↪","hopf":"𝕙","Hopf":"ℍ","horbar":"―","HorizontalLine":"─","hscr":"𝒽","Hscr":"ℋ","hslash":"ℏ","Hstrok":"Ħ","hstrok":"ħ","HumpDownHump":"≎","HumpEqual":"≏","hybull":"⁃","hyphen":"‐","Iacute":"Í","iacute":"í","ic":"","Icirc":"Î","icirc":"î","Icy":"И","icy":"и","Idot":"İ","IEcy":"Е","iecy":"е","iexcl":"¡","iff":"⇔","ifr":"𝔦","Ifr":"ℑ","Igrave":"Ì","igrave":"ì","ii":"ⅈ","iiiint":"⨌","iiint":"∭","iinfin":"⧜","iiota":"℩","IJlig":"IJ","ijlig":"ij","Imacr":"Ī","imacr":"ī","image":"ℑ","ImaginaryI":"ⅈ","imagline":"ℐ","imagpart":"ℑ","imath":"ı","Im":"ℑ","imof":"⊷","imped":"Ƶ","Implies":"⇒","incare":"℅","in":"∈","infin":"∞","infintie":"⧝","inodot":"ı","intcal":"⊺","int":"∫","Int":"∬","integers":"ℤ","Integral":"∫","intercal":"⊺","Intersection":"⋂","intlarhk":"⨗","intprod":"⨼","InvisibleComma":"","InvisibleTimes":"","IOcy":"Ё","iocy":"ё","Iogon":"Į","iogon":"į","Iopf":"𝕀","iopf":"𝕚","Iota":"Ι","iota":"ι","iprod":"⨼","iquest":"¿","iscr":"𝒾","Iscr":"ℐ","isin":"∈","isindot":"⋵","isinE":"⋹","isins":"⋴","isinsv":"⋳","isinv":"∈","it":"","Itilde":"Ĩ","itilde":"ĩ","Iukcy":"І","iukcy":"і","Iuml":"Ï","iuml":"ï","Jcirc":"Ĵ","jcirc":"ĵ","Jcy":"Й","jcy":"й","Jfr":"𝔍","jfr":"𝔧","jmath":"ȷ","Jopf":"𝕁","jopf":"𝕛","Jscr":"𝒥","jscr":"𝒿","Jsercy":"Ј","jsercy":"ј","Jukcy":"Є","jukcy":"є","Kappa":"Κ","kappa":"κ","kappav":"ϰ","Kcedil":"Ķ","kcedil":"ķ","Kcy":"К","kcy":"к","Kfr":"𝔎","kfr":"𝔨","kgreen":"ĸ","KHcy":"Х","khcy":"х","KJcy":"Ќ","kjcy":"ќ","Kopf":"𝕂","kopf":"𝕜","Kscr":"𝒦","kscr":"𝓀","lAarr":"⇚","Lacute":"Ĺ","lacute":"ĺ","laemptyv":"⦴","lagran":"ℒ","Lambda":"Λ","lambda":"λ","lang":"⟨","Lang":"⟪","langd":"⦑","langle":"⟨","lap":"⪅","Laplacetrf":"ℒ","laquo":"«","larrb":"⇤","larrbfs":"⤟","larr":"←","Larr":"↞","lArr":"⇐","larrfs":"⤝","larrhk":"↩","larrlp":"↫","larrpl":"⤹","larrsim":"⥳","larrtl":"↢","latail":"⤙","lAtail":"⤛","lat":"⪫","late":"⪭","lates":"⪭︀","lbarr":"⤌","lBarr":"⤎","lbbrk":"❲","lbrace":"{","lbrack":"[","lbrke":"⦋","lbrksld":"⦏","lbrkslu":"⦍","Lcaron":"Ľ","lcaron":"ľ","Lcedil":"Ļ","lcedil":"ļ","lceil":"⌈","lcub":"{","Lcy":"Л","lcy":"л","ldca":"⤶","ldquo":"“","ldquor":"„","ldrdhar":"⥧","ldrushar":"⥋","ldsh":"↲","le":"≤","lE":"≦","LeftAngleBracket":"⟨","LeftArrowBar":"⇤","leftarrow":"←","LeftArrow":"←","Leftarrow":"⇐","LeftArrowRightArrow":"⇆","leftarrowtail":"↢","LeftCeiling":"⌈","LeftDoubleBracket":"⟦","LeftDownTeeVector":"⥡","LeftDownVectorBar":"⥙","LeftDownVector":"⇃","LeftFloor":"⌊","leftharpoondown":"↽","leftharpoonup":"↼","leftleftarrows":"⇇","leftrightarrow":"↔","LeftRightArrow":"↔","Leftrightarrow":"⇔","leftrightarrows":"⇆","leftrightharpoons":"⇋","leftrightsquigarrow":"↭","LeftRightVector":"⥎","LeftTeeArrow":"↤","LeftTee":"⊣","LeftTeeVector":"⥚","leftthreetimes":"⋋","LeftTriangleBar":"⧏","LeftTriangle":"⊲","LeftTriangleEqual":"⊴","LeftUpDownVector":"⥑","LeftUpTeeVector":"⥠","LeftUpVectorBar":"⥘","LeftUpVector":"↿","LeftVectorBar":"⥒","LeftVector":"↼","lEg":"⪋","leg":"⋚","leq":"≤","leqq":"≦","leqslant":"⩽","lescc":"⪨","les":"⩽","lesdot":"⩿","lesdoto":"⪁","lesdotor":"⪃","lesg":"⋚︀","lesges":"⪓","lessapprox":"⪅","lessdot":"⋖","lesseqgtr":"⋚","lesseqqgtr":"⪋","LessEqualGreater":"⋚","LessFullEqual":"≦","LessGreater":"≶","lessgtr":"≶","LessLess":"⪡","lesssim":"≲","LessSlantEqual":"⩽","LessTilde":"≲","lfisht":"⥼","lfloor":"⌊","Lfr":"𝔏","lfr":"𝔩","lg":"≶","lgE":"⪑","lHar":"⥢","lhard":"↽","lharu":"↼","lharul":"⥪","lhblk":"▄","LJcy":"Љ","ljcy":"љ","llarr":"⇇","ll":"≪","Ll":"⋘","llcorner":"⌞","Lleftarrow":"⇚","llhard":"⥫","lltri":"◺","Lmidot":"Ŀ","lmidot":"ŀ","lmoustache":"⎰","lmoust":"⎰","lnap":"⪉","lnapprox":"⪉","lne":"⪇","lnE":"≨","lneq":"⪇","lneqq":"≨","lnsim":"⋦","loang":"⟬","loarr":"⇽","lobrk":"⟦","longleftarrow":"⟵","LongLeftArrow":"⟵","Longleftarrow":"⟸","longleftrightarrow":"⟷","LongLeftRightArrow":"⟷","Longleftrightarrow":"⟺","longmapsto":"⟼","longrightarrow":"⟶","LongRightArrow":"⟶","Longrightarrow":"⟹","looparrowleft":"↫","looparrowright":"↬","lopar":"⦅","Lopf":"𝕃","lopf":"𝕝","loplus":"⨭","lotimes":"⨴","lowast":"∗","lowbar":"_","LowerLeftArrow":"↙","LowerRightArrow":"↘","loz":"◊","lozenge":"◊","lozf":"⧫","lpar":"(","lparlt":"⦓","lrarr":"⇆","lrcorner":"⌟","lrhar":"⇋","lrhard":"⥭","lrm":"","lrtri":"⊿","lsaquo":"‹","lscr":"𝓁","Lscr":"ℒ","lsh":"↰","Lsh":"↰","lsim":"≲","lsime":"⪍","lsimg":"⪏","lsqb":"[","lsquo":"‘","lsquor":"‚","Lstrok":"Ł","lstrok":"ł","ltcc":"⪦","ltcir":"⩹","lt":"<","LT":"<","Lt":"≪","ltdot":"⋖","lthree":"⋋","ltimes":"⋉","ltlarr":"⥶","ltquest":"⩻","ltri":"◃","ltrie":"⊴","ltrif":"◂","ltrPar":"⦖","lurdshar":"⥊","luruhar":"⥦","lvertneqq":"≨︀","lvnE":"≨︀","macr":"¯","male":"♂","malt":"✠","maltese":"✠","Map":"⤅","map":"↦","mapsto":"↦","mapstodown":"↧","mapstoleft":"↤","mapstoup":"↥","marker":"▮","mcomma":"⨩","Mcy":"М","mcy":"м","mdash":"—","mDDot":"∺","measuredangle":"∡","MediumSpace":" ","Mellintrf":"ℳ","Mfr":"𝔐","mfr":"𝔪","mho":"℧","micro":"µ","midast":"*","midcir":"⫰","mid":"∣","middot":"·","minusb":"⊟","minus":"−","minusd":"∸","minusdu":"⨪","MinusPlus":"∓","mlcp":"⫛","mldr":"…","mnplus":"∓","models":"⊧","Mopf":"𝕄","mopf":"𝕞","mp":"∓","mscr":"𝓂","Mscr":"ℳ","mstpos":"∾","Mu":"Μ","mu":"μ","multimap":"⊸","mumap":"⊸","nabla":"∇","Nacute":"Ń","nacute":"ń","nang":"∠⃒","nap":"≉","napE":"⩰̸","napid":"≋̸","napos":"ʼn","napprox":"≉","natural":"♮","naturals":"ℕ","natur":"♮","nbsp":" ","nbump":"≎̸","nbumpe":"≏̸","ncap":"⩃","Ncaron":"Ň","ncaron":"ň","Ncedil":"Ņ","ncedil":"ņ","ncong":"≇","ncongdot":"⩭̸","ncup":"⩂","Ncy":"Н","ncy":"н","ndash":"–","nearhk":"⤤","nearr":"↗","neArr":"⇗","nearrow":"↗","ne":"≠","nedot":"≐̸","NegativeMediumSpace":"","NegativeThickSpace":"","NegativeThinSpace":"","NegativeVeryThinSpace":"","nequiv":"≢","nesear":"⤨","nesim":"≂̸","NestedGreaterGreater":"≫","NestedLessLess":"≪","NewLine":"\n","nexist":"∄","nexists":"∄","Nfr":"𝔑","nfr":"𝔫","ngE":"≧̸","nge":"≱","ngeq":"≱","ngeqq":"≧̸","ngeqslant":"⩾̸","nges":"⩾̸","nGg":"⋙̸","ngsim":"≵","nGt":"≫⃒","ngt":"≯","ngtr":"≯","nGtv":"≫̸","nharr":"↮","nhArr":"⇎","nhpar":"⫲","ni":"∋","nis":"⋼","nisd":"⋺","niv":"∋","NJcy":"Њ","njcy":"њ","nlarr":"↚","nlArr":"⇍","nldr":"‥","nlE":"≦̸","nle":"≰","nleftarrow":"↚","nLeftarrow":"⇍","nleftrightarrow":"↮","nLeftrightarrow":"⇎","nleq":"≰","nleqq":"≦̸","nleqslant":"⩽̸","nles":"⩽̸","nless":"≮","nLl":"⋘̸","nlsim":"≴","nLt":"≪⃒","nlt":"≮","nltri":"⋪","nltrie":"⋬","nLtv":"≪̸","nmid":"∤","NoBreak":"","NonBreakingSpace":" ","nopf":"𝕟","Nopf":"ℕ","Not":"⫬","not":"¬","NotCongruent":"≢","NotCupCap":"≭","NotDoubleVerticalBar":"∦","NotElement":"∉","NotEqual":"≠","NotEqualTilde":"≂̸","NotExists":"∄","NotGreater":"≯","NotGreaterEqual":"≱","NotGreaterFullEqual":"≧̸","NotGreaterGreater":"≫̸","NotGreaterLess":"≹","NotGreaterSlantEqual":"⩾̸","NotGreaterTilde":"≵","NotHumpDownHump":"≎̸","NotHumpEqual":"≏̸","notin":"∉","notindot":"⋵̸","notinE":"⋹̸","notinva":"∉","notinvb":"⋷","notinvc":"⋶","NotLeftTriangleBar":"⧏̸","NotLeftTriangle":"⋪","NotLeftTriangleEqual":"⋬","NotLess":"≮","NotLessEqual":"≰","NotLessGreater":"≸","NotLessLess":"≪̸","NotLessSlantEqual":"⩽̸","NotLessTilde":"≴","NotNestedGreaterGreater":"⪢̸","NotNestedLessLess":"⪡̸","notni":"∌","notniva":"∌","notnivb":"⋾","notnivc":"⋽","NotPrecedes":"⊀","NotPrecedesEqual":"⪯̸","NotPrecedesSlantEqual":"⋠","NotReverseElement":"∌","NotRightTriangleBar":"⧐̸","NotRightTriangle":"⋫","NotRightTriangleEqual":"⋭","NotSquareSubset":"⊏̸","NotSquareSubsetEqual":"⋢","NotSquareSuperset":"⊐̸","NotSquareSupersetEqual":"⋣","NotSubset":"⊂⃒","NotSubsetEqual":"⊈","NotSucceeds":"⊁","NotSucceedsEqual":"⪰̸","NotSucceedsSlantEqual":"⋡","NotSucceedsTilde":"≿̸","NotSuperset":"⊃⃒","NotSupersetEqual":"⊉","NotTilde":"≁","NotTildeEqual":"≄","NotTildeFullEqual":"≇","NotTildeTilde":"≉","NotVerticalBar":"∤","nparallel":"∦","npar":"∦","nparsl":"⫽⃥","npart":"∂̸","npolint":"⨔","npr":"⊀","nprcue":"⋠","nprec":"⊀","npreceq":"⪯̸","npre":"⪯̸","nrarrc":"⤳̸","nrarr":"↛","nrArr":"⇏","nrarrw":"↝̸","nrightarrow":"↛","nRightarrow":"⇏","nrtri":"⋫","nrtrie":"⋭","nsc":"⊁","nsccue":"⋡","nsce":"⪰̸","Nscr":"𝒩","nscr":"𝓃","nshortmid":"∤","nshortparallel":"∦","nsim":"≁","nsime":"≄","nsimeq":"≄","nsmid":"∤","nspar":"∦","nsqsube":"⋢","nsqsupe":"⋣","nsub":"⊄","nsubE":"⫅̸","nsube":"⊈","nsubset":"⊂⃒","nsubseteq":"⊈","nsubseteqq":"⫅̸","nsucc":"⊁","nsucceq":"⪰̸","nsup":"⊅","nsupE":"⫆̸","nsupe":"⊉","nsupset":"⊃⃒","nsupseteq":"⊉","nsupseteqq":"⫆̸","ntgl":"≹","Ntilde":"Ñ","ntilde":"ñ","ntlg":"≸","ntriangleleft":"⋪","ntrianglelefteq":"⋬","ntriangleright":"⋫","ntrianglerighteq":"⋭","Nu":"Ν","nu":"ν","num":"#","numero":"№","numsp":" ","nvap":"≍⃒","nvdash":"⊬","nvDash":"⊭","nVdash":"⊮","nVDash":"⊯","nvge":"≥⃒","nvgt":">⃒","nvHarr":"⤄","nvinfin":"⧞","nvlArr":"⤂","nvle":"≤⃒","nvlt":"<⃒","nvltrie":"⊴⃒","nvrArr":"⤃","nvrtrie":"⊵⃒","nvsim":"∼⃒","nwarhk":"⤣","nwarr":"↖","nwArr":"⇖","nwarrow":"↖","nwnear":"⤧","Oacute":"Ó","oacute":"ó","oast":"⊛","Ocirc":"Ô","ocirc":"ô","ocir":"⊚","Ocy":"О","ocy":"о","odash":"⊝","Odblac":"Ő","odblac":"ő","odiv":"⨸","odot":"⊙","odsold":"⦼","OElig":"Œ","oelig":"œ","ofcir":"⦿","Ofr":"𝔒","ofr":"𝔬","ogon":"˛","Ograve":"Ò","ograve":"ò","ogt":"⧁","ohbar":"⦵","ohm":"Ω","oint":"∮","olarr":"↺","olcir":"⦾","olcross":"⦻","oline":"‾","olt":"⧀","Omacr":"Ō","omacr":"ō","Omega":"Ω","omega":"ω","Omicron":"Ο","omicron":"ο","omid":"⦶","ominus":"⊖","Oopf":"𝕆","oopf":"𝕠","opar":"⦷","OpenCurlyDoubleQuote":"“","OpenCurlyQuote":"‘","operp":"⦹","oplus":"⊕","orarr":"↻","Or":"⩔","or":"∨","ord":"⩝","order":"ℴ","orderof":"ℴ","ordf":"ª","ordm":"º","origof":"⊶","oror":"⩖","orslope":"⩗","orv":"⩛","oS":"Ⓢ","Oscr":"𝒪","oscr":"ℴ","Oslash":"Ø","oslash":"ø","osol":"⊘","Otilde":"Õ","otilde":"õ","otimesas":"⨶","Otimes":"⨷","otimes":"⊗","Ouml":"Ö","ouml":"ö","ovbar":"⌽","OverBar":"‾","OverBrace":"⏞","OverBracket":"⎴","OverParenthesis":"⏜","para":"¶","parallel":"∥","par":"∥","parsim":"⫳","parsl":"⫽","part":"∂","PartialD":"∂","Pcy":"П","pcy":"п","percnt":"%","period":".","permil":"‰","perp":"⊥","pertenk":"‱","Pfr":"𝔓","pfr":"𝔭","Phi":"Φ","phi":"φ","phiv":"ϕ","phmmat":"ℳ","phone":"☎","Pi":"Π","pi":"π","pitchfork":"⋔","piv":"ϖ","planck":"ℏ","planckh":"ℎ","plankv":"ℏ","plusacir":"⨣","plusb":"⊞","pluscir":"⨢","plus":"+","plusdo":"∔","plusdu":"⨥","pluse":"⩲","PlusMinus":"±","plusmn":"±","plussim":"⨦","plustwo":"⨧","pm":"±","Poincareplane":"ℌ","pointint":"⨕","popf":"𝕡","Popf":"ℙ","pound":"£","prap":"⪷","Pr":"⪻","pr":"≺","prcue":"≼","precapprox":"⪷","prec":"≺","preccurlyeq":"≼","Precedes":"≺","PrecedesEqual":"⪯","PrecedesSlantEqual":"≼","PrecedesTilde":"≾","preceq":"⪯","precnapprox":"⪹","precneqq":"⪵","precnsim":"⋨","pre":"⪯","prE":"⪳","precsim":"≾","prime":"′","Prime":"″","primes":"ℙ","prnap":"⪹","prnE":"⪵","prnsim":"⋨","prod":"∏","Product":"∏","profalar":"⌮","profline":"⌒","profsurf":"⌓","prop":"∝","Proportional":"∝","Proportion":"∷","propto":"∝","prsim":"≾","prurel":"⊰","Pscr":"𝒫","pscr":"𝓅","Psi":"Ψ","psi":"ψ","puncsp":" ","Qfr":"𝔔","qfr":"𝔮","qint":"⨌","qopf":"𝕢","Qopf":"ℚ","qprime":"⁗","Qscr":"𝒬","qscr":"𝓆","quaternions":"ℍ","quatint":"⨖","quest":"?","questeq":"≟","quot":"\"","QUOT":"\"","rAarr":"⇛","race":"∽̱","Racute":"Ŕ","racute":"ŕ","radic":"√","raemptyv":"⦳","rang":"⟩","Rang":"⟫","rangd":"⦒","range":"⦥","rangle":"⟩","raquo":"»","rarrap":"⥵","rarrb":"⇥","rarrbfs":"⤠","rarrc":"⤳","rarr":"→","Rarr":"↠","rArr":"⇒","rarrfs":"⤞","rarrhk":"↪","rarrlp":"↬","rarrpl":"⥅","rarrsim":"⥴","Rarrtl":"⤖","rarrtl":"↣","rarrw":"↝","ratail":"⤚","rAtail":"⤜","ratio":"∶","rationals":"ℚ","rbarr":"⤍","rBarr":"⤏","RBarr":"⤐","rbbrk":"❳","rbrace":"}","rbrack":"]","rbrke":"⦌","rbrksld":"⦎","rbrkslu":"⦐","Rcaron":"Ř","rcaron":"ř","Rcedil":"Ŗ","rcedil":"ŗ","rceil":"⌉","rcub":"}","Rcy":"Р","rcy":"р","rdca":"⤷","rdldhar":"⥩","rdquo":"”","rdquor":"”","rdsh":"↳","real":"ℜ","realine":"ℛ","realpart":"ℜ","reals":"ℝ","Re":"ℜ","rect":"▭","reg":"®","REG":"®","ReverseElement":"∋","ReverseEquilibrium":"⇋","ReverseUpEquilibrium":"⥯","rfisht":"⥽","rfloor":"⌋","rfr":"𝔯","Rfr":"ℜ","rHar":"⥤","rhard":"⇁","rharu":"⇀","rharul":"⥬","Rho":"Ρ","rho":"ρ","rhov":"ϱ","RightAngleBracket":"⟩","RightArrowBar":"⇥","rightarrow":"→","RightArrow":"→","Rightarrow":"⇒","RightArrowLeftArrow":"⇄","rightarrowtail":"↣","RightCeiling":"⌉","RightDoubleBracket":"⟧","RightDownTeeVector":"⥝","RightDownVectorBar":"⥕","RightDownVector":"⇂","RightFloor":"⌋","rightharpoondown":"⇁","rightharpoonup":"⇀","rightleftarrows":"⇄","rightleftharpoons":"⇌","rightrightarrows":"⇉","rightsquigarrow":"↝","RightTeeArrow":"↦","RightTee":"⊢","RightTeeVector":"⥛","rightthreetimes":"⋌","RightTriangleBar":"⧐","RightTriangle":"⊳","RightTriangleEqual":"⊵","RightUpDownVector":"⥏","RightUpTeeVector":"⥜","RightUpVectorBar":"⥔","RightUpVector":"↾","RightVectorBar":"⥓","RightVector":"⇀","ring":"˚","risingdotseq":"≓","rlarr":"⇄","rlhar":"⇌","rlm":"","rmoustache":"⎱","rmoust":"⎱","rnmid":"⫮","roang":"⟭","roarr":"⇾","robrk":"⟧","ropar":"⦆","ropf":"𝕣","Ropf":"ℝ","roplus":"⨮","rotimes":"⨵","RoundImplies":"⥰","rpar":")","rpargt":"⦔","rppolint":"⨒","rrarr":"⇉","Rrightarrow":"⇛","rsaquo":"›","rscr":"𝓇","Rscr":"ℛ","rsh":"↱","Rsh":"↱","rsqb":"]","rsquo":"’","rsquor":"’","rthree":"⋌","rtimes":"⋊","rtri":"▹","rtrie":"⊵","rtrif":"▸","rtriltri":"⧎","RuleDelayed":"⧴","ruluhar":"⥨","rx":"℞","Sacute":"Ś","sacute":"ś","sbquo":"‚","scap":"⪸","Scaron":"Š","scaron":"š","Sc":"⪼","sc":"≻","sccue":"≽","sce":"⪰","scE":"⪴","Scedil":"Ş","scedil":"ş","Scirc":"Ŝ","scirc":"ŝ","scnap":"⪺","scnE":"⪶","scnsim":"⋩","scpolint":"⨓","scsim":"≿","Scy":"С","scy":"с","sdotb":"⊡","sdot":"⋅","sdote":"⩦","searhk":"⤥","searr":"↘","seArr":"⇘","searrow":"↘","sect":"§","semi":";","seswar":"⤩","setminus":"∖","setmn":"∖","sext":"✶","Sfr":"𝔖","sfr":"𝔰","sfrown":"⌢","sharp":"♯","SHCHcy":"Щ","shchcy":"щ","SHcy":"Ш","shcy":"ш","ShortDownArrow":"↓","ShortLeftArrow":"←","shortmid":"∣","shortparallel":"∥","ShortRightArrow":"→","ShortUpArrow":"↑","shy":"","Sigma":"Σ","sigma":"σ","sigmaf":"ς","sigmav":"ς","sim":"∼","simdot":"⩪","sime":"≃","simeq":"≃","simg":"⪞","simgE":"⪠","siml":"⪝","simlE":"⪟","simne":"≆","simplus":"⨤","simrarr":"⥲","slarr":"←","SmallCircle":"∘","smallsetminus":"∖","smashp":"⨳","smeparsl":"⧤","smid":"∣","smile":"⌣","smt":"⪪","smte":"⪬","smtes":"⪬︀","SOFTcy":"Ь","softcy":"ь","solbar":"⌿","solb":"⧄","sol":"/","Sopf":"𝕊","sopf":"𝕤","spades":"♠","spadesuit":"♠","spar":"∥","sqcap":"⊓","sqcaps":"⊓︀","sqcup":"⊔","sqcups":"⊔︀","Sqrt":"√","sqsub":"⊏","sqsube":"⊑","sqsubset":"⊏","sqsubseteq":"⊑","sqsup":"⊐","sqsupe":"⊒","sqsupset":"⊐","sqsupseteq":"⊒","square":"□","Square":"□","SquareIntersection":"⊓","SquareSubset":"⊏","SquareSubsetEqual":"⊑","SquareSuperset":"⊐","SquareSupersetEqual":"⊒","SquareUnion":"⊔","squarf":"▪","squ":"□","squf":"▪","srarr":"→","Sscr":"𝒮","sscr":"𝓈","ssetmn":"∖","ssmile":"⌣","sstarf":"⋆","Star":"⋆","star":"☆","starf":"★","straightepsilon":"ϵ","straightphi":"ϕ","strns":"¯","sub":"⊂","Sub":"⋐","subdot":"⪽","subE":"⫅","sube":"⊆","subedot":"⫃","submult":"⫁","subnE":"⫋","subne":"⊊","subplus":"⪿","subrarr":"⥹","subset":"⊂","Subset":"⋐","subseteq":"⊆","subseteqq":"⫅","SubsetEqual":"⊆","subsetneq":"⊊","subsetneqq":"⫋","subsim":"⫇","subsub":"⫕","subsup":"⫓","succapprox":"⪸","succ":"≻","succcurlyeq":"≽","Succeeds":"≻","SucceedsEqual":"⪰","SucceedsSlantEqual":"≽","SucceedsTilde":"≿","succeq":"⪰","succnapprox":"⪺","succneqq":"⪶","succnsim":"⋩","succsim":"≿","SuchThat":"∋","sum":"∑","Sum":"∑","sung":"♪","sup1":"¹","sup2":"²","sup3":"³","sup":"⊃","Sup":"⋑","supdot":"⪾","supdsub":"⫘","supE":"⫆","supe":"⊇","supedot":"⫄","Superset":"⊃","SupersetEqual":"⊇","suphsol":"⟉","suphsub":"⫗","suplarr":"⥻","supmult":"⫂","supnE":"⫌","supne":"⊋","supplus":"⫀","supset":"⊃","Supset":"⋑","supseteq":"⊇","supseteqq":"⫆","supsetneq":"⊋","supsetneqq":"⫌","supsim":"⫈","supsub":"⫔","supsup":"⫖","swarhk":"⤦","swarr":"↙","swArr":"⇙","swarrow":"↙","swnwar":"⤪","szlig":"ß","Tab":"\t","target":"⌖","Tau":"Τ","tau":"τ","tbrk":"⎴","Tcaron":"Ť","tcaron":"ť","Tcedil":"Ţ","tcedil":"ţ","Tcy":"Т","tcy":"т","tdot":"⃛","telrec":"⌕","Tfr":"𝔗","tfr":"𝔱","there4":"∴","therefore":"∴","Therefore":"∴","Theta":"Θ","theta":"θ","thetasym":"ϑ","thetav":"ϑ","thickapprox":"≈","thicksim":"∼","ThickSpace":" ","ThinSpace":" ","thinsp":" ","thkap":"≈","thksim":"∼","THORN":"Þ","thorn":"þ","tilde":"˜","Tilde":"∼","TildeEqual":"≃","TildeFullEqual":"≅","TildeTilde":"≈","timesbar":"⨱","timesb":"⊠","times":"×","timesd":"⨰","tint":"∭","toea":"⤨","topbot":"⌶","topcir":"⫱","top":"⊤","Topf":"𝕋","topf":"𝕥","topfork":"⫚","tosa":"⤩","tprime":"‴","trade":"™","TRADE":"™","triangle":"▵","triangledown":"▿","triangleleft":"◃","trianglelefteq":"⊴","triangleq":"≜","triangleright":"▹","trianglerighteq":"⊵","tridot":"◬","trie":"≜","triminus":"⨺","TripleDot":"⃛","triplus":"⨹","trisb":"⧍","tritime":"⨻","trpezium":"⏢","Tscr":"𝒯","tscr":"𝓉","TScy":"Ц","tscy":"ц","TSHcy":"Ћ","tshcy":"ћ","Tstrok":"Ŧ","tstrok":"ŧ","twixt":"≬","twoheadleftarrow":"↞","twoheadrightarrow":"↠","Uacute":"Ú","uacute":"ú","uarr":"↑","Uarr":"↟","uArr":"⇑","Uarrocir":"⥉","Ubrcy":"Ў","ubrcy":"ў","Ubreve":"Ŭ","ubreve":"ŭ","Ucirc":"Û","ucirc":"û","Ucy":"У","ucy":"у","udarr":"⇅","Udblac":"Ű","udblac":"ű","udhar":"⥮","ufisht":"⥾","Ufr":"𝔘","ufr":"𝔲","Ugrave":"Ù","ugrave":"ù","uHar":"⥣","uharl":"↿","uharr":"↾","uhblk":"▀","ulcorn":"⌜","ulcorner":"⌜","ulcrop":"⌏","ultri":"◸","Umacr":"Ū","umacr":"ū","uml":"¨","UnderBar":"_","UnderBrace":"⏟","UnderBracket":"⎵","UnderParenthesis":"⏝","Union":"⋃","UnionPlus":"⊎","Uogon":"Ų","uogon":"ų","Uopf":"𝕌","uopf":"𝕦","UpArrowBar":"⤒","uparrow":"↑","UpArrow":"↑","Uparrow":"⇑","UpArrowDownArrow":"⇅","updownarrow":"↕","UpDownArrow":"↕","Updownarrow":"⇕","UpEquilibrium":"⥮","upharpoonleft":"↿","upharpoonright":"↾","uplus":"⊎","UpperLeftArrow":"↖","UpperRightArrow":"↗","upsi":"υ","Upsi":"ϒ","upsih":"ϒ","Upsilon":"Υ","upsilon":"υ","UpTeeArrow":"↥","UpTee":"⊥","upuparrows":"⇈","urcorn":"⌝","urcorner":"⌝","urcrop":"⌎","Uring":"Ů","uring":"ů","urtri":"◹","Uscr":"𝒰","uscr":"𝓊","utdot":"⋰","Utilde":"Ũ","utilde":"ũ","utri":"▵","utrif":"▴","uuarr":"⇈","Uuml":"Ü","uuml":"ü","uwangle":"⦧","vangrt":"⦜","varepsilon":"ϵ","varkappa":"ϰ","varnothing":"∅","varphi":"ϕ","varpi":"ϖ","varpropto":"∝","varr":"↕","vArr":"⇕","varrho":"ϱ","varsigma":"ς","varsubsetneq":"⊊︀","varsubsetneqq":"⫋︀","varsupsetneq":"⊋︀","varsupsetneqq":"⫌︀","vartheta":"ϑ","vartriangleleft":"⊲","vartriangleright":"⊳","vBar":"⫨","Vbar":"⫫","vBarv":"⫩","Vcy":"В","vcy":"в","vdash":"⊢","vDash":"⊨","Vdash":"⊩","VDash":"⊫","Vdashl":"⫦","veebar":"⊻","vee":"∨","Vee":"⋁","veeeq":"≚","vellip":"⋮","verbar":"|","Verbar":"‖","vert":"|","Vert":"‖","VerticalBar":"∣","VerticalLine":"|","VerticalSeparator":"❘","VerticalTilde":"≀","VeryThinSpace":" ","Vfr":"𝔙","vfr":"𝔳","vltri":"⊲","vnsub":"⊂⃒","vnsup":"⊃⃒","Vopf":"𝕍","vopf":"𝕧","vprop":"∝","vrtri":"⊳","Vscr":"𝒱","vscr":"𝓋","vsubnE":"⫋︀","vsubne":"⊊︀","vsupnE":"⫌︀","vsupne":"⊋︀","Vvdash":"⊪","vzigzag":"⦚","Wcirc":"Ŵ","wcirc":"ŵ","wedbar":"⩟","wedge":"∧","Wedge":"⋀","wedgeq":"≙","weierp":"℘","Wfr":"𝔚","wfr":"𝔴","Wopf":"𝕎","wopf":"𝕨","wp":"℘","wr":"≀","wreath":"≀","Wscr":"𝒲","wscr":"𝓌","xcap":"⋂","xcirc":"◯","xcup":"⋃","xdtri":"▽","Xfr":"𝔛","xfr":"𝔵","xharr":"⟷","xhArr":"⟺","Xi":"Ξ","xi":"ξ","xlarr":"⟵","xlArr":"⟸","xmap":"⟼","xnis":"⋻","xodot":"⨀","Xopf":"𝕏","xopf":"𝕩","xoplus":"⨁","xotime":"⨂","xrarr":"⟶","xrArr":"⟹","Xscr":"𝒳","xscr":"𝓍","xsqcup":"⨆","xuplus":"⨄","xutri":"△","xvee":"⋁","xwedge":"⋀","Yacute":"Ý","yacute":"ý","YAcy":"Я","yacy":"я","Ycirc":"Ŷ","ycirc":"ŷ","Ycy":"Ы","ycy":"ы","yen":"¥","Yfr":"𝔜","yfr":"𝔶","YIcy":"Ї","yicy":"ї","Yopf":"𝕐","yopf":"𝕪","Yscr":"𝒴","yscr":"𝓎","YUcy":"Ю","yucy":"ю","yuml":"ÿ","Yuml":"Ÿ","Zacute":"Ź","zacute":"ź","Zcaron":"Ž","zcaron":"ž","Zcy":"З","zcy":"з","Zdot":"Ż","zdot":"ż","zeetrf":"ℨ","ZeroWidthSpace":"","Zeta":"Ζ","zeta":"ζ","zfr":"𝔷","Zfr":"ℨ","ZHcy":"Ж","zhcy":"ж","zigrarr":"⇝","zopf":"𝕫","Zopf":"ℤ","Zscr":"𝒵","zscr":"𝓏","zwj":"","zwnj":""}
/***/ }),
-/* 170 */
+/* 168 */
/***/ (function(module, exports) {
-module.exports = {
- "amp": "&",
- "apos": "'",
- "gt": ">",
- "lt": "<",
- "quot": "\""
-};
+module.exports = {"amp":"&","apos":"'","gt":">","lt":"<","quot":"\""}
/***/ }),
-/* 171 */
+/* 169 */
/***/ (function(module, exports, __webpack_require__) {
-exports = module.exports = __webpack_require__(288);
+exports = module.exports = __webpack_require__(286);
exports.Stream = exports;
exports.Readable = exports;
-exports.Writable = __webpack_require__(174);
+exports.Writable = __webpack_require__(170);
exports.Duplex = __webpack_require__(37);
-exports.Transform = __webpack_require__(290);
-exports.PassThrough = __webpack_require__(595);
+exports.Transform = __webpack_require__(289);
+exports.PassThrough = __webpack_require__(592);
/***/ }),
-/* 172 */
+/* 170 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-/* WEBPACK VAR INJECTION */(function(process) {
+/* WEBPACK VAR INJECTION */(function(process, setImmediate, global) {// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
-if (!process.version ||
- process.version.indexOf('v0.') === 0 ||
- process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {
- module.exports = nextTick;
-} else {
- module.exports = process.nextTick;
-}
+// A bit simpler than readable streams.
+// Implement an async ._write(chunk, encoding, cb), and it'll handle all
+// the drain event emission and buffering.
-function nextTick(fn, arg1, arg2, arg3) {
- if (typeof fn !== 'function') {
- throw new TypeError('"callback" argument must be a function');
- }
- var len = arguments.length;
- var args, i;
- switch (len) {
- case 0:
- case 1:
- return process.nextTick(fn);
- case 2:
- return process.nextTick(function afterTickOne() {
- fn.call(null, arg1);
- });
- case 3:
- return process.nextTick(function afterTickTwo() {
- fn.call(null, arg1, arg2);
- });
- case 4:
- return process.nextTick(function afterTickThree() {
- fn.call(null, arg1, arg2, arg3);
- });
- default:
- args = new Array(len - 1);
- i = 0;
- while (i < args.length) {
- args[i++] = arguments[i];
- }
- return process.nextTick(function afterTick() {
- fn.apply(null, args);
- });
- }
-}
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
-/***/ }),
-/* 173 */
-/***/ (function(module, exports, __webpack_require__) {
+/**/
-"use strict";
-/* WEBPACK VAR INJECTION */(function(global) {
+var processNextTick = __webpack_require__(107);
+/**/
-var buffer = __webpack_require__(1);
-var Buffer = buffer.Buffer;
-var SlowBuffer = buffer.SlowBuffer;
-var MAX_LEN = buffer.kMaxLength || 2147483647;
-exports.alloc = function alloc(size, fill, encoding) {
- if (typeof Buffer.alloc === 'function') {
- return Buffer.alloc(size, fill, encoding);
- }
- if (typeof encoding === 'number') {
- throw new TypeError('encoding must not be number');
- }
- if (typeof size !== 'number') {
- throw new TypeError('size must be a number');
- }
- if (size > MAX_LEN) {
- throw new RangeError('size is too large');
- }
- var enc = encoding;
- var _fill = fill;
- if (_fill === undefined) {
- enc = undefined;
- _fill = 0;
- }
- var buf = new Buffer(size);
- if (typeof _fill === 'string') {
- var fillBuf = new Buffer(_fill, enc);
- var flen = fillBuf.length;
- var i = -1;
- while (++i < size) {
- buf[i] = fillBuf[i % flen];
- }
- } else {
- buf.fill(_fill);
- }
- return buf;
-}
-exports.allocUnsafe = function allocUnsafe(size) {
- if (typeof Buffer.allocUnsafe === 'function') {
- return Buffer.allocUnsafe(size);
- }
- if (typeof size !== 'number') {
- throw new TypeError('size must be a number');
- }
- if (size > MAX_LEN) {
- throw new RangeError('size is too large');
- }
- return new Buffer(size);
-}
-exports.from = function from(value, encodingOrOffset, length) {
- if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
- return Buffer.from(value, encodingOrOffset, length);
- }
- if (typeof value === 'number') {
- throw new TypeError('"value" argument must not be a number');
- }
- if (typeof value === 'string') {
- return new Buffer(value, encodingOrOffset);
- }
- if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
- var offset = encodingOrOffset;
- if (arguments.length === 1) {
- return new Buffer(value);
- }
- if (typeof offset === 'undefined') {
- offset = 0;
- }
- var len = length;
- if (typeof len === 'undefined') {
- len = value.byteLength - offset;
- }
- if (offset >= value.byteLength) {
- throw new RangeError('\'offset\' is out of bounds');
- }
- if (len > value.byteLength - offset) {
- throw new RangeError('\'length\' is out of bounds');
- }
- return new Buffer(value.slice(offset, offset + len));
- }
- if (Buffer.isBuffer(value)) {
- var out = new Buffer(value.length);
- value.copy(out, 0, 0, value.length);
- return out;
- }
- if (value) {
- if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
- return new Buffer(value);
- }
- if (value.type === 'Buffer' && Array.isArray(value.data)) {
- return new Buffer(value.data);
- }
- }
+module.exports = Writable;
- throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
-}
-exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
- if (typeof Buffer.allocUnsafeSlow === 'function') {
- return Buffer.allocUnsafeSlow(size);
- }
- if (typeof size !== 'number') {
- throw new TypeError('size must be a number');
- }
- if (size >= MAX_LEN) {
- throw new RangeError('size is too large');
- }
- return new SlowBuffer(size);
+/* */
+function WriteReq(chunk, encoding, cb) {
+ this.chunk = chunk;
+ this.encoding = encoding;
+ this.callback = cb;
+ this.next = null;
}
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(9)))
-
-/***/ }),
-/* 174 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-/* WEBPACK VAR INJECTION */(function(process, setImmediate) {// A bit simpler than readable streams.
-// Implement an async ._write(chunk, encoding, cb), and it'll handle all
-// the drain event emission and buffering.
-
-
-
-module.exports = Writable;
+// It seems a linked list but it is not
+// there will be only 2 of these for each stream
+function CorkedRequest(state) {
+ var _this = this;
-/**/
-var processNextTick = __webpack_require__(172);
-/**/
+ this.next = null;
+ this.entry = null;
+ this.finish = function () {
+ onCorkedFinish(_this, state);
+ };
+}
+/* */
/**/
var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick;
@@ -40405,35 +38782,36 @@ Writable.WritableState = WritableState;
/**/
var util = __webpack_require__(67);
-util.inherits = __webpack_require__(2);
+util.inherits = __webpack_require__(1);
/**/
/**/
var internalUtil = {
- deprecate: __webpack_require__(594)
+ deprecate: __webpack_require__(591)
};
/**/
/**/
-var Stream = __webpack_require__(289);
+var Stream = __webpack_require__(287);
/**/
-var Buffer = __webpack_require__(1).Buffer;
/**/
-var bufferShim = __webpack_require__(173);
+var Buffer = __webpack_require__(8).Buffer;
+var OurUint8Array = global.Uint8Array || function () {};
+function _uint8ArrayToBuffer(chunk) {
+ return Buffer.from(chunk);
+}
+function _isUint8Array(obj) {
+ return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
+}
/**/
+var destroyImpl = __webpack_require__(288);
+
util.inherits(Writable, Stream);
function nop() {}
-function WriteReq(chunk, encoding, cb) {
- this.chunk = chunk;
- this.encoding = encoding;
- this.callback = cb;
- this.next = null;
-}
-
function WritableState(options, stream) {
Duplex = Duplex || __webpack_require__(37);
@@ -40453,7 +38831,10 @@ function WritableState(options, stream) {
this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
// cast to ints.
- this.highWaterMark = ~~this.highWaterMark;
+ this.highWaterMark = Math.floor(this.highWaterMark);
+
+ // if _final has been called
+ this.finalCalled = false;
// drain event flag.
this.needDrain = false;
@@ -40464,6 +38845,9 @@ function WritableState(options, stream) {
// when 'finish' is emitted
this.finished = false;
+ // has it been destroyed
+ this.destroyed = false;
+
// should we decode strings into buffers before passing to _write?
// this is here so that some node-core streams can optimize string
// handling at a lower level.
@@ -40545,7 +38929,7 @@ WritableState.prototype.getBuffer = function getBuffer() {
Object.defineProperty(WritableState.prototype, 'buffer', {
get: internalUtil.deprecate(function () {
return this.getBuffer();
- }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
+ }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')
});
} catch (_) {}
})();
@@ -40591,6 +38975,10 @@ function Writable(options) {
if (typeof options.write === 'function') this._write = options.write;
if (typeof options.writev === 'function') this._writev = options.writev;
+
+ if (typeof options.destroy === 'function') this._destroy = options.destroy;
+
+ if (typeof options.final === 'function') this._final = options.final;
}
Stream.call(this);
@@ -40631,7 +39019,11 @@ function validChunk(stream, state, chunk, cb) {
Writable.prototype.write = function (chunk, encoding, cb) {
var state = this._writableState;
var ret = false;
- var isBuf = Buffer.isBuffer(chunk);
+ var isBuf = _isUint8Array(chunk) && !state.objectMode;
+
+ if (isBuf && !Buffer.isBuffer(chunk)) {
+ chunk = _uint8ArrayToBuffer(chunk);
+ }
if (typeof encoding === 'function') {
cb = encoding;
@@ -40676,7 +39068,7 @@ Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
function decodeChunk(state, chunk, encoding) {
if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
- chunk = bufferShim.from(chunk, encoding);
+ chunk = Buffer.from(chunk, encoding);
}
return chunk;
}
@@ -40686,8 +39078,12 @@ function decodeChunk(state, chunk, encoding) {
// If we return false, then we need a drain event, so set that flag.
function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
if (!isBuf) {
- chunk = decodeChunk(state, chunk, encoding);
- if (Buffer.isBuffer(chunk)) encoding = 'buffer';
+ var newChunk = decodeChunk(state, chunk, encoding);
+ if (chunk !== newChunk) {
+ isBuf = true;
+ encoding = 'buffer';
+ chunk = newChunk;
+ }
}
var len = state.objectMode ? 1 : chunk.length;
@@ -40699,7 +39095,13 @@ function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
if (state.writing || state.corked) {
var last = state.lastBufferedRequest;
- state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
+ state.lastBufferedRequest = {
+ chunk: chunk,
+ encoding: encoding,
+ isBuf: isBuf,
+ callback: cb,
+ next: null
+ };
if (last) {
last.next = state.lastBufferedRequest;
} else {
@@ -40724,10 +39126,26 @@ function doWrite(stream, state, writev, len, chunk, encoding, cb) {
function onwriteError(stream, state, sync, er, cb) {
--state.pendingcb;
- if (sync) processNextTick(cb, er);else cb(er);
- stream._writableState.errorEmitted = true;
- stream.emit('error', er);
+ if (sync) {
+ // defer the callback if we are being called synchronously
+ // to avoid piling up things on the stack
+ processNextTick(cb, er);
+ // this can emit finish, and it will always happen
+ // after error
+ processNextTick(finishMaybe, stream, state);
+ stream._writableState.errorEmitted = true;
+ stream.emit('error', er);
+ } else {
+ // the caller expect this to happen before if
+ // it is async
+ cb(er);
+ stream._writableState.errorEmitted = true;
+ stream.emit('error', er);
+ // this can emit finish, but finish must
+ // always follow error
+ finishMaybe(stream, state);
+ }
}
function onwriteStateUpdate(state) {
@@ -40792,11 +39210,14 @@ function clearBuffer(stream, state) {
holder.entry = entry;
var count = 0;
+ var allBuffers = true;
while (entry) {
buffer[count] = entry;
+ if (!entry.isBuf) allBuffers = false;
entry = entry.next;
count += 1;
}
+ buffer.allBuffers = allBuffers;
doWrite(stream, state, true, state.length, buffer, '', holder.finish);
@@ -40870,23 +39291,37 @@ Writable.prototype.end = function (chunk, encoding, cb) {
function needFinish(state) {
return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;
}
-
-function prefinish(stream, state) {
- if (!state.prefinished) {
+function callFinal(stream, state) {
+ stream._final(function (err) {
+ state.pendingcb--;
+ if (err) {
+ stream.emit('error', err);
+ }
state.prefinished = true;
stream.emit('prefinish');
+ finishMaybe(stream, state);
+ });
+}
+function prefinish(stream, state) {
+ if (!state.prefinished && !state.finalCalled) {
+ if (typeof stream._final === 'function') {
+ state.pendingcb++;
+ state.finalCalled = true;
+ processNextTick(callFinal, stream, state);
+ } else {
+ state.prefinished = true;
+ stream.emit('prefinish');
+ }
}
}
function finishMaybe(stream, state) {
var need = needFinish(state);
if (need) {
+ prefinish(stream, state);
if (state.pendingcb === 0) {
- prefinish(stream, state);
state.finished = true;
stream.emit('finish');
- } else {
- prefinish(stream, state);
}
}
return need;
@@ -40902,40 +39337,59 @@ function endWritable(stream, state, cb) {
stream.writable = false;
}
-// It seems a linked list but it is not
-// there will be only 2 of these for each stream
-function CorkedRequest(state) {
- var _this = this;
+function onCorkedFinish(corkReq, state, err) {
+ var entry = corkReq.entry;
+ corkReq.entry = null;
+ while (entry) {
+ var cb = entry.callback;
+ state.pendingcb--;
+ cb(err);
+ entry = entry.next;
+ }
+ if (state.corkedRequestsFree) {
+ state.corkedRequestsFree.next = corkReq;
+ } else {
+ state.corkedRequestsFree = corkReq;
+ }
+}
- this.next = null;
- this.entry = null;
- this.finish = function (err) {
- var entry = _this.entry;
- _this.entry = null;
- while (entry) {
- var cb = entry.callback;
- state.pendingcb--;
- cb(err);
- entry = entry.next;
+Object.defineProperty(Writable.prototype, 'destroyed', {
+ get: function () {
+ if (this._writableState === undefined) {
+ return false;
}
- if (state.corkedRequestsFree) {
- state.corkedRequestsFree.next = _this;
- } else {
- state.corkedRequestsFree = _this;
+ return this._writableState.destroyed;
+ },
+ set: function (value) {
+ // we ignore the value if the stream
+ // has not been initialized yet
+ if (!this._writableState) {
+ return;
}
- };
-}
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0), __webpack_require__(592).setImmediate))
+
+ // backward compatibility, the user is explicitly
+ // managing destroyed
+ this._writableState.destroyed = value;
+ }
+});
+
+Writable.prototype.destroy = destroyImpl.destroy;
+Writable.prototype._undestroy = destroyImpl.undestroy;
+Writable.prototype._destroy = function (err, cb) {
+ this.end();
+ cb(err);
+};
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0), __webpack_require__(589).setImmediate, __webpack_require__(10)))
/***/ }),
-/* 175 */
+/* 171 */
/***/ (function(module, exports, __webpack_require__) {
/*
Module dependencies
*/
-var ElementType = __webpack_require__(603);
-var entities = __webpack_require__(604);
+var ElementType = __webpack_require__(600);
+var entities = __webpack_require__(601);
/*
Boolean Attributes
@@ -41112,7 +39566,7 @@ function renderComment(elem) {
/***/ }),
-/* 176 */
+/* 172 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {/**
@@ -42370,22 +40824,22 @@ bind.placeholder = {};
module.exports = bind;
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(9)))
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10)))
/***/ }),
-/* 177 */
+/* 173 */
/***/ (function(module, exports, __webpack_require__) {
/**
* Module dependencies
*/
-var serialize = __webpack_require__(175),
- select = __webpack_require__(293),
+var serialize = __webpack_require__(171),
+ select = __webpack_require__(292),
parse = __webpack_require__(105),
_ = {
- merge: __webpack_require__(621),
- defaults: __webpack_require__(292)
+ merge: __webpack_require__(618),
+ defaults: __webpack_require__(291)
};
/**
@@ -42393,7 +40847,7 @@ var serialize = __webpack_require__(175),
*/
exports.load = function(content, options) {
- var Cheerio = __webpack_require__(168);
+ var Cheerio = __webpack_require__(166);
options = _.defaults(options || {}, Cheerio.prototype.options);
@@ -42453,7 +40907,7 @@ function render(that, dom, options) {
*/
exports.html = function(dom, options) {
- var Cheerio = __webpack_require__(168);
+ var Cheerio = __webpack_require__(166);
// be flexible about parameters, sometimes we call html(),
// with options as only parameter
@@ -42566,7 +41020,7 @@ exports.contains = function(container, contained) {
/***/ }),
-/* 178 */
+/* 174 */
/***/ (function(module, exports, __webpack_require__) {
/*
@@ -42582,7 +41036,7 @@ exports.contains = function(container, contained) {
they need to return a boolean
*/
-var DomUtils = __webpack_require__(45),
+var DomUtils = __webpack_require__(46),
isTag = DomUtils.isTag,
getText = DomUtils.getText,
getParent = DomUtils.getParent,
@@ -42591,8 +41045,8 @@ var DomUtils = __webpack_require__(45),
hasAttrib = DomUtils.hasAttrib,
getName = DomUtils.getName,
getAttribute= DomUtils.getAttributeValue,
- getNCheck = __webpack_require__(614),
- checkAttrib = __webpack_require__(294).rules.equals,
+ getNCheck = __webpack_require__(611),
+ checkAttrib = __webpack_require__(293).rules.equals,
BaseFuncs = __webpack_require__(69),
trueFunc = BaseFuncs.trueFunc,
falseFunc = BaseFuncs.falseFunc;
@@ -42965,181 +41419,182 @@ module.exports = {
/***/ }),
-/* 179 */
+/* 175 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-
-
-/**
- * Module dependencies.
- */
-
-var mensch = __webpack_require__(634);
-var own = {}.hasOwnProperty;
-var os = __webpack_require__(637);
-var Selector = __webpack_require__(638);
-var Property = __webpack_require__(640);
-
-exports.Selector = Selector;
-exports.Property = Property;
-
-/**
- * Returns an array of the selectors.
- *
- * @license Sizzle CSS Selector Engine - MIT
- * @param {String} selectorText from mensch
- * @api public
- */
-
-exports.extract = function extract(selectorText) {
- var attr = 0;
- var sels = [];
- var sel = '';
-
- for (var i = 0, l = selectorText.length; i < l; i++) {
- var c = selectorText.charAt(i);
-
- if (attr) {
- if (']' === c || ')' === c) { attr--; }
- sel += c;
- } else {
- if (',' === c) {
- sels.push(sel);
- sel = '';
- } else {
- if ('[' === c || '(' === c) { attr++; }
- if (sel.length || (c !== ',' && c !== '\n' && c !== ' ')) { sel += c; }
- }
- }
- }
-
- if (sel.length) {
- sels.push(sel);
- }
-
- return sels;
-};
-
-/**
- * Returns a parse tree for a CSS source.
- * If it encounters multiple selectors separated by a comma, it splits the
- * tree.
- *
- * @param {String} css source
- * @api public
- */
-
-exports.parseCSS = function(css) {
- var parsed = mensch.parse(css, {position: true, comments: true});
- var rules = typeof parsed.stylesheet != 'undefined' && parsed.stylesheet.rules ? parsed.stylesheet.rules : [];
- var ret = [];
-
- for (var i = 0, l = rules.length; i < l; i++) {
- if (rules[i].type == 'rule') {
- var rule = rules[i];
- var selectors = rule.selectors;
-
- for (var ii = 0, ll = selectors.length; ii < ll; ii++) {
- ret.push([selectors[ii], rule.declarations]);
- }
- }
- }
-
- return ret;
-};
-
-/**
- * Returns preserved text for a CSS source.
- *
- * @param {String} css source
- * @param {Object} options
- * @api public
- */
-
-exports.getPreservedText = function(css, options) {
- var parsed = mensch.parse(css, {position: true, comments: true});
- var rules = typeof parsed.stylesheet != 'undefined' && parsed.stylesheet.rules ? parsed.stylesheet.rules : [];
- var preserved = [];
- var lastStart = null;
-
- for (var i = rules.length - 1; i >= 0; i--) {
- if ((options.fontFaces && rules[i].type === 'font-face') ||
- (options.mediaQueries && rules[i].type === 'media')) {
- preserved.push(
- mensch.stringify(
- { stylesheet: { rules: [ rules[i] ] }},
- { comments: false, indentation: ' ' }
- )
- );
- }
- lastStart = rules[i].position.start;
- }
-
- if (preserved.length === 0) return false;
- return os.EOL+preserved.join(os.EOL)+os.EOL;
-};
-
-exports.normalizeLineEndings = function(text) {
- return text.replace(/\r\n/g, '\n').replace(/\n/g, '\r\n');
-};
-
-
-/**
- * Compares two specificity vectors, returning the winning one.
- *
- * @param {Array} vector a
- * @param {Array} vector b
- * @return {Array}
- * @api public
- */
-
-exports.compareFunc = function(a, b) {
- var min = Math.min(a.length, b.length);
- for (var i = 0; i < min; i++) {
- if (a[i] === b[i]) { continue; }
- if (a[i] > b[i]) { return 1; }
- return -1;
- }
-
- return a.length-b.length;
-};
-
-exports.compare = function(a, b) {
- return exports.compareFunc(a, b) == 1 ? a : b;
-};
-
-exports.extend = function(obj, src) {
- for (var key in src) {
- if (own.call(src, key)) {
- obj[key] = src[key];
- }
- }
- return obj;
-};
-
-exports.getDefaultOptions = function(options) {
- var result = exports.extend({
- extraCss: '',
- insertPreservedExtraCss: true,
- applyStyleTags: true,
- removeStyleTags: true,
- preserveMediaQueries: true,
- preserveFontFaces: true,
- applyWidthAttributes: true,
- applyHeightAttributes: true,
- applyAttributesTableElements: true,
- url: ''
- }, options);
-
- result.webResources = result.webResources || {};
-
- return result;
-};
+
+
+/**
+ * Module dependencies.
+ */
+
+var mensch = __webpack_require__(631);
+var own = {}.hasOwnProperty;
+var Selector = __webpack_require__(634);
+var Property = __webpack_require__(636);
+
+exports.Selector = Selector;
+exports.Property = Property;
+
+/**
+ * Returns an array of the selectors.
+ *
+ * @license Sizzle CSS Selector Engine - MIT
+ * @param {String} selectorText from mensch
+ * @api public
+ */
+
+exports.extract = function extract(selectorText) {
+ var attr = 0;
+ var sels = [];
+ var sel = '';
+
+ for (var i = 0, l = selectorText.length; i < l; i++) {
+ var c = selectorText.charAt(i);
+
+ if (attr) {
+ if (']' === c || ')' === c) { attr--; }
+ sel += c;
+ } else {
+ if (',' === c) {
+ sels.push(sel);
+ sel = '';
+ } else {
+ if ('[' === c || '(' === c) { attr++; }
+ if (sel.length || (c !== ',' && c !== '\n' && c !== ' ')) { sel += c; }
+ }
+ }
+ }
+
+ if (sel.length) {
+ sels.push(sel);
+ }
+
+ return sels;
+};
+
+/**
+ * Returns a parse tree for a CSS source.
+ * If it encounters multiple selectors separated by a comma, it splits the
+ * tree.
+ *
+ * @param {String} css source
+ * @api public
+ */
+
+exports.parseCSS = function(css) {
+ var parsed = mensch.parse(css, {position: true, comments: true});
+ var rules = typeof parsed.stylesheet != 'undefined' && parsed.stylesheet.rules ? parsed.stylesheet.rules : [];
+ var ret = [];
+
+ for (var i = 0, l = rules.length; i < l; i++) {
+ if (rules[i].type == 'rule') {
+ var rule = rules[i];
+ var selectors = rule.selectors;
+
+ for (var ii = 0, ll = selectors.length; ii < ll; ii++) {
+ ret.push([selectors[ii], rule.declarations]);
+ }
+ }
+ }
+
+ return ret;
+};
+
+/**
+ * Returns preserved text for a CSS source.
+ *
+ * @param {String} css source
+ * @param {Object} options
+ * @api public
+ */
+
+exports.getPreservedText = function(css, options) {
+ var parsed = mensch.parse(css, {position: true, comments: true});
+ var rules = typeof parsed.stylesheet != 'undefined' && parsed.stylesheet.rules ? parsed.stylesheet.rules : [];
+ var preserved = [];
+ var lastStart = null;
+
+ for (var i = rules.length - 1; i >= 0; i--) {
+ if ((options.fontFaces && rules[i].type === 'font-face') ||
+ (options.mediaQueries && rules[i].type === 'media')) {
+ preserved.unshift(
+ mensch.stringify(
+ { stylesheet: { rules: [ rules[i] ] }},
+ { comments: false, indentation: ' ' }
+ )
+ );
+ }
+ lastStart = rules[i].position.start;
+ }
+
+ if (preserved.length === 0) {
+ return false;
+ }
+ return '\n' + preserved.join('\n') + '\n';
+};
+
+exports.normalizeLineEndings = function(text) {
+ return text.replace(/\r\n/g, '\n').replace(/\n/g, '\r\n');
+};
+
+
+/**
+ * Compares two specificity vectors, returning the winning one.
+ *
+ * @param {Array} vector a
+ * @param {Array} vector b
+ * @return {Array}
+ * @api public
+ */
+
+exports.compareFunc = function(a, b) {
+ var min = Math.min(a.length, b.length);
+ for (var i = 0; i < min; i++) {
+ if (a[i] === b[i]) { continue; }
+ if (a[i] > b[i]) { return 1; }
+ return -1;
+ }
+
+ return a.length - b.length;
+};
+
+exports.compare = function(a, b) {
+ return exports.compareFunc(a, b) == 1 ? a : b;
+};
+
+exports.extend = function(obj, src) {
+ for (var key in src) {
+ if (own.call(src, key)) {
+ obj[key] = src[key];
+ }
+ }
+ return obj;
+};
+
+exports.getDefaultOptions = function(options) {
+ var result = exports.extend({
+ extraCss: '',
+ insertPreservedExtraCss: true,
+ applyStyleTags: true,
+ removeStyleTags: true,
+ preserveMediaQueries: true,
+ preserveFontFaces: true,
+ applyWidthAttributes: true,
+ applyHeightAttributes: true,
+ applyAttributesTableElements: true,
+ url: ''
+ }, options);
+
+ result.webResources = result.webResources || {};
+
+ return result;
+};
/***/ }),
-/* 180 */
+/* 176 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(process) {exports = module.exports = debug;
@@ -43156,7 +41611,7 @@ function _debug(label) {
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
-/* 181 */
+/* 177 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -43172,13 +41627,13 @@ var _createClass = function () { function defineProperties(target, props) { for
var _class;
-var _mjmlCore = __webpack_require__(5);
+var _mjmlCore = __webpack_require__(3);
-var _cloneDeep = __webpack_require__(126);
+var _cloneDeep = __webpack_require__(125);
var _cloneDeep2 = _interopRequireDefault(_cloneDeep);
-var _react = __webpack_require__(6);
+var _react = __webpack_require__(5);
var _react2 = _interopRequireDefault(_react);
@@ -43448,7 +41903,7 @@ Section.postRender = postRender;
exports.default = Section;
/***/ }),
-/* 182 */
+/* 178 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -43462,7 +41917,7 @@ exports.default = Section;
* See http://pajhome.org.uk/crypt/md5 for more info.
*/
-var makeHash = __webpack_require__(699)
+var makeHash = __webpack_require__(694)
/*
* Calculate the MD5 of an array of little-endian words, and a bit length
@@ -43606,13 +42061,13 @@ module.exports = function md5 (buf) {
/***/ }),
-/* 183 */
+/* 179 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(Buffer) {
-var inherits = __webpack_require__(2)
-var HashBase = __webpack_require__(700)
+var inherits = __webpack_require__(1)
+var HashBase = __webpack_require__(695)
function RIPEMD160 () {
HashBase.call(this, 64)
@@ -43902,10 +42357,10 @@ function fn5 (a, b, c, d, e, m, k, s) {
module.exports = RIPEMD160
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1).Buffer))
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(7).Buffer))
/***/ }),
-/* 184 */
+/* 180 */
/***/ (function(module, exports, __webpack_require__) {
var exports = module.exports = function SHA (algorithm) {
@@ -43917,33 +42372,59 @@ var exports = module.exports = function SHA (algorithm) {
return new Algorithm()
}
-exports.sha = __webpack_require__(701)
-exports.sha1 = __webpack_require__(702)
-exports.sha224 = __webpack_require__(703)
-exports.sha256 = __webpack_require__(308)
-exports.sha384 = __webpack_require__(704)
-exports.sha512 = __webpack_require__(309)
+exports.sha = __webpack_require__(696)
+exports.sha1 = __webpack_require__(697)
+exports.sha224 = __webpack_require__(698)
+exports.sha256 = __webpack_require__(307)
+exports.sha384 = __webpack_require__(699)
+exports.sha512 = __webpack_require__(308)
/***/ }),
-/* 185 */
+/* 181 */
/***/ (function(module, exports, __webpack_require__) {
-var ciphers = __webpack_require__(712)
-exports.createCipher = exports.Cipher = ciphers.createCipher
-exports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv
+var ciphers = __webpack_require__(706)
var deciphers = __webpack_require__(714)
-exports.createDecipher = exports.Decipher = deciphers.createDecipher
-exports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv
-var modes = __webpack_require__(111)
+var modes = __webpack_require__(317)
+
function getCiphers () {
return Object.keys(modes)
}
+
+exports.createCipher = exports.Cipher = ciphers.createCipher
+exports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv
+exports.createDecipher = exports.Decipher = deciphers.createDecipher
+exports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv
exports.listCiphers = exports.getCiphers = getCiphers
/***/ }),
-/* 186 */
+/* 182 */
+/***/ (function(module, exports, __webpack_require__) {
+
+var modeModules = {
+ ECB: __webpack_require__(707),
+ CBC: __webpack_require__(708),
+ CFB: __webpack_require__(709),
+ CFB8: __webpack_require__(710),
+ CFB1: __webpack_require__(711),
+ OFB: __webpack_require__(712),
+ CTR: __webpack_require__(315),
+ GCM: __webpack_require__(315)
+}
+
+var modes = __webpack_require__(317)
+
+for (var key in modes) {
+ modes[key].module = modeModules[modes[key].mode]
+}
+
+module.exports = modes
+
+
+/***/ }),
+/* 183 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -43957,11 +42438,11 @@ exports.EDE = __webpack_require__(720);
/***/ }),
-/* 187 */
+/* 184 */
/***/ (function(module, exports, __webpack_require__) {
-/* WEBPACK VAR INJECTION */(function(Buffer) {var bn = __webpack_require__(11);
-var randomBytes = __webpack_require__(70);
+/* WEBPACK VAR INJECTION */(function(Buffer) {var bn = __webpack_require__(12);
+var randomBytes = __webpack_require__(48);
module.exports = crt;
function blind(priv) {
var r = getr(priv);
@@ -44001,16 +42482,16 @@ function getr(priv) {
return r;
}
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1).Buffer))
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(7).Buffer))
/***/ }),
-/* 188 */
+/* 185 */
/***/ (function(module, exports, __webpack_require__) {
var hash = exports;
-hash.utils = __webpack_require__(23);
-hash.common = __webpack_require__(73);
+hash.utils = __webpack_require__(24);
+hash.common = __webpack_require__(72);
hash.sha = __webpack_require__(736);
hash.ripemd = __webpack_require__(740);
hash.hmac = __webpack_require__(741);
@@ -44025,7 +42506,7 @@ hash.ripemd160 = hash.ripemd.ripemd160;
/***/ }),
-/* 189 */
+/* 186 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -44035,7 +42516,7 @@ Object.defineProperty(exports, "__esModule", {
value: true
});
-var _mjmlCore = __webpack_require__(5);
+var _mjmlCore = __webpack_require__(3);
Object.keys(_mjmlCore).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
@@ -44047,111 +42528,111 @@ Object.keys(_mjmlCore).forEach(function (key) {
});
});
-var _each = __webpack_require__(99);
+var _each = __webpack_require__(98);
var _each2 = _interopRequireDefault(_each);
-var _mjmlButton = __webpack_require__(649);
+var _mjmlButton = __webpack_require__(645);
var _mjmlButton2 = _interopRequireDefault(_mjmlButton);
-var _mjmlColumn = __webpack_require__(650);
+var _mjmlColumn = __webpack_require__(646);
var _mjmlColumn2 = _interopRequireDefault(_mjmlColumn);
-var _mjmlContainer = __webpack_require__(655);
+var _mjmlContainer = __webpack_require__(651);
var _mjmlContainer2 = _interopRequireDefault(_mjmlContainer);
-var _mjmlDivider = __webpack_require__(656);
+var _mjmlDivider = __webpack_require__(652);
var _mjmlDivider2 = _interopRequireDefault(_mjmlDivider);
-var _mjmlGroup = __webpack_require__(657);
+var _mjmlGroup = __webpack_require__(653);
var _mjmlGroup2 = _interopRequireDefault(_mjmlGroup);
-var _mjmlHtml = __webpack_require__(658);
+var _mjmlHtml = __webpack_require__(654);
var _mjmlHtml2 = _interopRequireDefault(_mjmlHtml);
-var _mjmlImage = __webpack_require__(300);
+var _mjmlImage = __webpack_require__(299);
var _mjmlImage2 = _interopRequireDefault(_mjmlImage);
-var _mjmlList = __webpack_require__(661);
+var _mjmlList = __webpack_require__(657);
var _mjmlList2 = _interopRequireDefault(_mjmlList);
-var _mjmlLocation = __webpack_require__(662);
+var _mjmlLocation = __webpack_require__(658);
var _mjmlLocation2 = _interopRequireDefault(_mjmlLocation);
-var _mjmlAccordion = __webpack_require__(663);
+var _mjmlAccordion = __webpack_require__(659);
var _mjmlAccordion2 = _interopRequireDefault(_mjmlAccordion);
-var _mjmlCarousel = __webpack_require__(666);
+var _mjmlCarousel = __webpack_require__(662);
var _mjmlCarousel2 = _interopRequireDefault(_mjmlCarousel);
-var _mjmlHero = __webpack_require__(674);
+var _mjmlHero = __webpack_require__(670);
var _mjmlHero2 = _interopRequireDefault(_mjmlHero);
-var _mjmlInvoice = __webpack_require__(677);
+var _mjmlInvoice = __webpack_require__(673);
var _mjmlInvoice2 = _interopRequireDefault(_mjmlInvoice);
-var _mjmlNavbar = __webpack_require__(688);
+var _mjmlNavbar = __webpack_require__(684);
var _mjmlNavbar2 = _interopRequireDefault(_mjmlNavbar);
-var _mjmlRaw = __webpack_require__(770);
+var _mjmlRaw = __webpack_require__(771);
var _mjmlRaw2 = _interopRequireDefault(_mjmlRaw);
-var _mjmlSection = __webpack_require__(181);
+var _mjmlSection = __webpack_require__(177);
var _mjmlSection2 = _interopRequireDefault(_mjmlSection);
-var _mjmlSocial = __webpack_require__(771);
+var _mjmlSocial = __webpack_require__(772);
var _mjmlSocial2 = _interopRequireDefault(_mjmlSocial);
-var _mjmlSpacer = __webpack_require__(774);
+var _mjmlSpacer = __webpack_require__(775);
var _mjmlSpacer2 = _interopRequireDefault(_mjmlSpacer);
-var _mjmlTable = __webpack_require__(305);
+var _mjmlTable = __webpack_require__(304);
var _mjmlTable2 = _interopRequireDefault(_mjmlTable);
-var _mjmlText = __webpack_require__(302);
+var _mjmlText = __webpack_require__(301);
var _mjmlText2 = _interopRequireDefault(_mjmlText);
-var _mjmlWrapper = __webpack_require__(775);
+var _mjmlWrapper = __webpack_require__(776);
var _mjmlWrapper2 = _interopRequireDefault(_mjmlWrapper);
-var _mjmlHeadAttributes = __webpack_require__(776);
+var _mjmlHeadAttributes = __webpack_require__(777);
var _mjmlHeadAttributes2 = _interopRequireDefault(_mjmlHeadAttributes);
-var _mjmlHeadFont = __webpack_require__(778);
+var _mjmlHeadFont = __webpack_require__(779);
var _mjmlHeadFont2 = _interopRequireDefault(_mjmlHeadFont);
-var _mjmlHeadStyle = __webpack_require__(779);
+var _mjmlHeadStyle = __webpack_require__(780);
var _mjmlHeadStyle2 = _interopRequireDefault(_mjmlHeadStyle);
-var _mjmlHeadTitle = __webpack_require__(780);
+var _mjmlHeadTitle = __webpack_require__(781);
var _mjmlHeadTitle2 = _interopRequireDefault(_mjmlHeadTitle);
-var _mjmlHeadPreview = __webpack_require__(781);
+var _mjmlHeadPreview = __webpack_require__(782);
var _mjmlHeadPreview2 = _interopRequireDefault(_mjmlHeadPreview);
@@ -44179,7 +42660,7 @@ var Navbar = _mjmlNavbar2.default.Navbar,
});
/***/ }),
-/* 190 */
+/* 187 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -44190,11 +42671,11 @@ Object.defineProperty(exports, "__esModule", {
});
exports.includes = undefined;
-var _fs = __webpack_require__(344);
+var _fs = __webpack_require__(339);
var _fs2 = _interopRequireDefault(_fs);
-var _path = __webpack_require__(191);
+var _path = __webpack_require__(188);
var _path2 = _interopRequireDefault(_path);
@@ -44278,7 +42759,7 @@ exports.default = function (baseMjml, _ref) {
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
-/* 191 */
+/* 188 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors.
@@ -44509,7 +42990,7 @@ var substr = 'ab'.substr(-1) === 'b'
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
-/* 192 */
+/* 189 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -44601,16 +43082,14 @@ var MJMLValidationError = function () {
exports.MJMLValidationError = MJMLValidationError;
/***/ }),
-/* 193 */
+/* 190 */
/***/ (function(module, exports, __webpack_require__) {
/**
- * Copyright (c) 2014-2015, Facebook, Inc.
- * All rights reserved.
+ * Copyright (c) 2014-present, Facebook, Inc.
*
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*/
(function (global, factory) {
@@ -49585,10 +48064,10 @@ exports.MJMLValidationError = MJMLValidationError;
}));
/***/ }),
-/* 194 */
+/* 191 */
/***/ (function(module, exports, __webpack_require__) {
-var apply = __webpack_require__(49);
+var apply = __webpack_require__(50);
/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeMax = Math.max;
@@ -49627,10 +48106,10 @@ module.exports = overRest;
/***/ }),
-/* 195 */
+/* 192 */
/***/ (function(module, exports, __webpack_require__) {
-var getNative = __webpack_require__(31);
+var getNative = __webpack_require__(32);
var defineProperty = (function() {
try {
@@ -49644,7 +48123,7 @@ module.exports = defineProperty;
/***/ }),
-/* 196 */
+/* 193 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */
@@ -49652,10 +48131,10 @@ var freeGlobal = typeof global == 'object' && global && global.Object === Object
module.exports = freeGlobal;
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(9)))
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10)))
/***/ }),
-/* 197 */
+/* 194 */
/***/ (function(module, exports) {
/** Used for built-in method references. */
@@ -49687,7 +48166,7 @@ module.exports = toSource;
/***/ }),
-/* 198 */
+/* 195 */
/***/ (function(module, exports) {
/** Used to detect hot functions by number of calls within a span of milliseconds. */
@@ -49730,10 +48209,10 @@ module.exports = shortOut;
/***/ }),
-/* 199 */
+/* 196 */
/***/ (function(module, exports, __webpack_require__) {
-var baseAssignValue = __webpack_require__(81),
+var baseAssignValue = __webpack_require__(80),
eq = __webpack_require__(39);
/**
@@ -49756,10 +48235,10 @@ module.exports = assignMergeValue;
/***/ }),
-/* 200 */
+/* 197 */
/***/ (function(module, exports, __webpack_require__) {
-var createBaseFor = __webpack_require__(380);
+var createBaseFor = __webpack_require__(375);
/**
* The base implementation of `baseForOwn` which iterates over `object`
@@ -49778,10 +48257,10 @@ module.exports = baseFor;
/***/ }),
-/* 201 */
+/* 198 */
/***/ (function(module, exports, __webpack_require__) {
-/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(14);
+/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(15);
/** Detect free variable `exports`. */
var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
@@ -49817,13 +48296,13 @@ function cloneBuffer(buffer, isDeep) {
module.exports = cloneBuffer;
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16)(module)))
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(17)(module)))
/***/ }),
-/* 202 */
+/* 199 */
/***/ (function(module, exports, __webpack_require__) {
-var cloneArrayBuffer = __webpack_require__(121);
+var cloneArrayBuffer = __webpack_require__(120);
/**
* Creates a clone of `typedArray`.
@@ -49842,10 +48321,10 @@ module.exports = cloneTypedArray;
/***/ }),
-/* 203 */
+/* 200 */
/***/ (function(module, exports, __webpack_require__) {
-var root = __webpack_require__(14);
+var root = __webpack_require__(15);
/** Built-in value references. */
var Uint8Array = root.Uint8Array;
@@ -49854,12 +48333,12 @@ module.exports = Uint8Array;
/***/ }),
-/* 204 */
+/* 201 */
/***/ (function(module, exports, __webpack_require__) {
-var baseCreate = __webpack_require__(82),
- getPrototype = __webpack_require__(122),
- isPrototype = __webpack_require__(50);
+var baseCreate = __webpack_require__(81),
+ getPrototype = __webpack_require__(121),
+ isPrototype = __webpack_require__(51);
/**
* Initializes an object clone.
@@ -49878,7 +48357,7 @@ module.exports = initCloneObject;
/***/ }),
-/* 205 */
+/* 202 */
/***/ (function(module, exports) {
/**
@@ -49899,12 +48378,12 @@ module.exports = overArg;
/***/ }),
-/* 206 */
+/* 203 */
/***/ (function(module, exports, __webpack_require__) {
-var baseGetTag = __webpack_require__(32),
- getPrototype = __webpack_require__(122),
- isObjectLike = __webpack_require__(24);
+var baseGetTag = __webpack_require__(33),
+ getPrototype = __webpack_require__(121),
+ isObjectLike = __webpack_require__(25);
/** `Object#toString` result references. */
var objectTag = '[object Object]';
@@ -49967,15 +48446,15 @@ module.exports = isPlainObject;
/***/ }),
-/* 207 */
+/* 204 */
/***/ (function(module, exports, __webpack_require__) {
-var baseTimes = __webpack_require__(389),
- isArguments = __webpack_require__(51),
- isArray = __webpack_require__(10),
- isBuffer = __webpack_require__(52),
- isIndex = __webpack_require__(84),
- isTypedArray = __webpack_require__(83);
+var baseTimes = __webpack_require__(384),
+ isArguments = __webpack_require__(52),
+ isArray = __webpack_require__(11),
+ isBuffer = __webpack_require__(53),
+ isIndex = __webpack_require__(83),
+ isTypedArray = __webpack_require__(82);
/** Used for built-in method references. */
var objectProto = Object.prototype;
@@ -50022,11 +48501,11 @@ module.exports = arrayLikeKeys;
/***/ }),
-/* 208 */
+/* 205 */
/***/ (function(module, exports, __webpack_require__) {
-var baseMerge = __webpack_require__(118),
- createAssigner = __webpack_require__(85);
+var baseMerge = __webpack_require__(117),
+ createAssigner = __webpack_require__(84);
/**
* This method is like `_.merge` except that it accepts `customizer` which
@@ -50067,11 +48546,11 @@ module.exports = mergeWith;
/***/ }),
-/* 209 */
+/* 206 */
/***/ (function(module, exports, __webpack_require__) {
-var isPrototype = __webpack_require__(50),
- nativeKeys = __webpack_require__(393);
+var isPrototype = __webpack_require__(51),
+ nativeKeys = __webpack_require__(388);
/** Used for built-in method references. */
var objectProto = Object.prototype;
@@ -50103,7 +48582,7 @@ module.exports = baseKeys;
/***/ }),
-/* 210 */
+/* 207 */
/***/ (function(module, exports) {
/**
@@ -50134,7 +48613,7 @@ module.exports = arrayFilter;
/***/ }),
-/* 211 */
+/* 208 */
/***/ (function(module, exports) {
/**
@@ -50163,13 +48642,13 @@ module.exports = stubArray;
/***/ }),
-/* 212 */
+/* 209 */
/***/ (function(module, exports, __webpack_require__) {
-var arrayPush = __webpack_require__(89),
- getPrototype = __webpack_require__(122),
- getSymbols = __webpack_require__(129),
- stubArray = __webpack_require__(211);
+var arrayPush = __webpack_require__(88),
+ getPrototype = __webpack_require__(121),
+ getSymbols = __webpack_require__(128),
+ stubArray = __webpack_require__(208);
/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeGetSymbols = Object.getOwnPropertySymbols;
@@ -50194,12 +48673,12 @@ module.exports = getSymbolsIn;
/***/ }),
-/* 213 */
+/* 210 */
/***/ (function(module, exports, __webpack_require__) {
-var baseGetAllKeys = __webpack_require__(214),
- getSymbols = __webpack_require__(129),
- keys = __webpack_require__(25);
+var baseGetAllKeys = __webpack_require__(211),
+ getSymbols = __webpack_require__(128),
+ keys = __webpack_require__(26);
/**
* Creates an array of own enumerable property names and symbols of `object`.
@@ -50216,11 +48695,11 @@ module.exports = getAllKeys;
/***/ }),
-/* 214 */
+/* 211 */
/***/ (function(module, exports, __webpack_require__) {
-var arrayPush = __webpack_require__(89),
- isArray = __webpack_require__(10);
+var arrayPush = __webpack_require__(88),
+ isArray = __webpack_require__(11);
/**
* The base implementation of `getAllKeys` and `getAllKeysIn` which uses
@@ -50242,12 +48721,12 @@ module.exports = baseGetAllKeys;
/***/ }),
-/* 215 */
+/* 212 */
/***/ (function(module, exports, __webpack_require__) {
-var baseGetAllKeys = __webpack_require__(214),
- getSymbolsIn = __webpack_require__(212),
- keysIn = __webpack_require__(53);
+var baseGetAllKeys = __webpack_require__(211),
+ getSymbolsIn = __webpack_require__(209),
+ keysIn = __webpack_require__(54);
/**
* Creates an array of own and inherited enumerable property names and
@@ -50265,11 +48744,11 @@ module.exports = getAllKeysIn;
/***/ }),
-/* 216 */
+/* 213 */
/***/ (function(module, exports, __webpack_require__) {
-var getNative = __webpack_require__(31),
- root = __webpack_require__(14);
+var getNative = __webpack_require__(32),
+ root = __webpack_require__(15);
/* Built-in method references that are verified to be native. */
var Set = getNative(root, 'Set');
@@ -50278,11 +48757,11 @@ module.exports = Set;
/***/ }),
-/* 217 */
+/* 214 */
/***/ (function(module, exports, __webpack_require__) {
-var getNative = __webpack_require__(31),
- root = __webpack_require__(14);
+var getNative = __webpack_require__(32),
+ root = __webpack_require__(15);
/* Built-in method references that are verified to be native. */
var WeakMap = getNative(root, 'WeakMap');
@@ -50291,7 +48770,7 @@ module.exports = WeakMap;
/***/ }),
-/* 218 */
+/* 215 */
/***/ (function(module, exports) {
/**
@@ -50323,7 +48802,7 @@ module.exports = arrayReduce;
/***/ }),
-/* 219 */
+/* 216 */
/***/ (function(module, exports) {
/**
@@ -50352,11 +48831,11 @@ module.exports = arraySome;
/***/ }),
-/* 220 */
+/* 217 */
/***/ (function(module, exports, __webpack_require__) {
-var baseIsEqualDeep = __webpack_require__(413),
- isObjectLike = __webpack_require__(24);
+var baseIsEqualDeep = __webpack_require__(408),
+ isObjectLike = __webpack_require__(25);
/**
* The base implementation of `_.isEqual` which supports partial comparisons
@@ -50386,12 +48865,12 @@ module.exports = baseIsEqual;
/***/ }),
-/* 221 */
+/* 218 */
/***/ (function(module, exports, __webpack_require__) {
-var SetCache = __webpack_require__(222),
- arraySome = __webpack_require__(219),
- cacheHas = __webpack_require__(223);
+var SetCache = __webpack_require__(219),
+ arraySome = __webpack_require__(216),
+ cacheHas = __webpack_require__(220);
/** Used to compose bitmasks for value comparisons. */
var COMPARE_PARTIAL_FLAG = 1,
@@ -50475,12 +48954,12 @@ module.exports = equalArrays;
/***/ }),
-/* 222 */
+/* 219 */
/***/ (function(module, exports, __webpack_require__) {
-var MapCache = __webpack_require__(120),
- setCacheAdd = __webpack_require__(414),
- setCacheHas = __webpack_require__(415);
+var MapCache = __webpack_require__(119),
+ setCacheAdd = __webpack_require__(409),
+ setCacheHas = __webpack_require__(410);
/**
*
@@ -50508,7 +48987,7 @@ module.exports = SetCache;
/***/ }),
-/* 223 */
+/* 220 */
/***/ (function(module, exports) {
/**
@@ -50527,10 +49006,10 @@ module.exports = cacheHas;
/***/ }),
-/* 224 */
+/* 221 */
/***/ (function(module, exports, __webpack_require__) {
-var isObject = __webpack_require__(17);
+var isObject = __webpack_require__(18);
/**
* Checks if `value` is suitable for strict equality comparisons, i.e. `===`.
@@ -50548,7 +49027,7 @@ module.exports = isStrictComparable;
/***/ }),
-/* 225 */
+/* 222 */
/***/ (function(module, exports) {
/**
@@ -50574,11 +49053,11 @@ module.exports = matchesStrictComparable;
/***/ }),
-/* 226 */
+/* 223 */
/***/ (function(module, exports, __webpack_require__) {
-var baseFor = __webpack_require__(200),
- keys = __webpack_require__(25);
+var baseFor = __webpack_require__(197),
+ keys = __webpack_require__(26);
/**
* The base implementation of `_.forOwn` without support for iteratee shorthands.
@@ -50596,10 +49075,10 @@ module.exports = baseForOwn;
/***/ }),
-/* 227 */
+/* 224 */
/***/ (function(module, exports, __webpack_require__) {
-var toNumber = __webpack_require__(434);
+var toNumber = __webpack_require__(429);
/** Used as references for various `Number` constants. */
var INFINITY = 1 / 0,
@@ -50644,11 +49123,11 @@ module.exports = toFinite;
/***/ }),
-/* 228 */
+/* 225 */
/***/ (function(module, exports, __webpack_require__) {
-var arrayPush = __webpack_require__(89),
- isFlattenable = __webpack_require__(436);
+var arrayPush = __webpack_require__(88),
+ isFlattenable = __webpack_require__(431);
/**
* The base implementation of `_.flatten` with support for restricting flattening.
@@ -50688,7 +49167,7 @@ module.exports = baseFlatten;
/***/ }),
-/* 229 */
+/* 226 */
/***/ (function(module, exports) {
/**
@@ -50718,12 +49197,12 @@ module.exports = baseFindIndex;
/***/ }),
-/* 230 */
+/* 227 */
/***/ (function(module, exports, __webpack_require__) {
-var baseGetTag = __webpack_require__(32),
- isArray = __webpack_require__(10),
- isObjectLike = __webpack_require__(24);
+var baseGetTag = __webpack_require__(33),
+ isArray = __webpack_require__(11),
+ isObjectLike = __webpack_require__(25);
/** `Object#toString` result references. */
var stringTag = '[object String]';
@@ -50754,7 +49233,7 @@ module.exports = isString;
/***/ }),
-/* 231 */
+/* 228 */
/***/ (function(module, exports) {
function webpackEmptyContext(req) {
@@ -50763,14 +49242,14 @@ function webpackEmptyContext(req) {
webpackEmptyContext.keys = function() { return []; };
webpackEmptyContext.resolve = webpackEmptyContext;
module.exports = webpackEmptyContext;
-webpackEmptyContext.id = 231;
+webpackEmptyContext.id = 228;
/***/ }),
-/* 232 */
+/* 229 */
/***/ (function(module, exports, __webpack_require__) {
var identity = __webpack_require__(38),
- metaMap = __webpack_require__(233);
+ metaMap = __webpack_require__(230);
/**
* The base implementation of `setData` without support for hot loop shorting.
@@ -50789,10 +49268,10 @@ module.exports = baseSetData;
/***/ }),
-/* 233 */
+/* 230 */
/***/ (function(module, exports, __webpack_require__) {
-var WeakMap = __webpack_require__(217);
+var WeakMap = __webpack_require__(214);
/** Used to store function metadata. */
var metaMap = WeakMap && new WeakMap;
@@ -50801,18 +49280,18 @@ module.exports = metaMap;
/***/ }),
-/* 234 */
+/* 231 */
/***/ (function(module, exports, __webpack_require__) {
-var composeArgs = __webpack_require__(235),
- composeArgsRight = __webpack_require__(236),
- countHolders = __webpack_require__(450),
- createCtor = __webpack_require__(98),
- createRecurry = __webpack_require__(237),
- getHolder = __webpack_require__(244),
- reorder = __webpack_require__(457),
- replaceHolders = __webpack_require__(142),
- root = __webpack_require__(14);
+var composeArgs = __webpack_require__(232),
+ composeArgsRight = __webpack_require__(233),
+ countHolders = __webpack_require__(445),
+ createCtor = __webpack_require__(97),
+ createRecurry = __webpack_require__(234),
+ getHolder = __webpack_require__(241),
+ reorder = __webpack_require__(452),
+ replaceHolders = __webpack_require__(141),
+ root = __webpack_require__(15);
/** Used to compose bitmasks for function metadata. */
var WRAP_BIND_FLAG = 1,
@@ -50899,7 +49378,7 @@ module.exports = createHybrid;
/***/ }),
-/* 235 */
+/* 232 */
/***/ (function(module, exports) {
/* Built-in method references for those with the same name as other `lodash` methods. */
@@ -50944,7 +49423,7 @@ module.exports = composeArgs;
/***/ }),
-/* 236 */
+/* 233 */
/***/ (function(module, exports) {
/* Built-in method references for those with the same name as other `lodash` methods. */
@@ -50991,12 +49470,12 @@ module.exports = composeArgsRight;
/***/ }),
-/* 237 */
+/* 234 */
/***/ (function(module, exports, __webpack_require__) {
-var isLaziable = __webpack_require__(238),
- setData = __webpack_require__(241),
- setWrapToString = __webpack_require__(242);
+var isLaziable = __webpack_require__(235),
+ setData = __webpack_require__(238),
+ setWrapToString = __webpack_require__(239);
/** Used to compose bitmasks for function metadata. */
var WRAP_BIND_FLAG = 1,
@@ -51053,13 +49532,13 @@ module.exports = createRecurry;
/***/ }),
-/* 238 */
+/* 235 */
/***/ (function(module, exports, __webpack_require__) {
-var LazyWrapper = __webpack_require__(138),
- getData = __webpack_require__(140),
- getFuncName = __webpack_require__(240),
- lodash = __webpack_require__(452);
+var LazyWrapper = __webpack_require__(137),
+ getData = __webpack_require__(139),
+ getFuncName = __webpack_require__(237),
+ lodash = __webpack_require__(447);
/**
* Checks if `func` has a lazy counterpart.
@@ -51087,7 +49566,7 @@ module.exports = isLaziable;
/***/ }),
-/* 239 */
+/* 236 */
/***/ (function(module, exports) {
/**
@@ -51110,10 +49589,10 @@ module.exports = noop;
/***/ }),
-/* 240 */
+/* 237 */
/***/ (function(module, exports, __webpack_require__) {
-var realNames = __webpack_require__(451);
+var realNames = __webpack_require__(446);
/** Used for built-in method references. */
var objectProto = Object.prototype;
@@ -51147,11 +49626,11 @@ module.exports = getFuncName;
/***/ }),
-/* 241 */
+/* 238 */
/***/ (function(module, exports, __webpack_require__) {
-var baseSetData = __webpack_require__(232),
- shortOut = __webpack_require__(198);
+var baseSetData = __webpack_require__(229),
+ shortOut = __webpack_require__(195);
/**
* Sets metadata for `func`.
@@ -51173,13 +49652,13 @@ module.exports = setData;
/***/ }),
-/* 242 */
+/* 239 */
/***/ (function(module, exports, __webpack_require__) {
-var getWrapDetails = __webpack_require__(454),
- insertWrapDetails = __webpack_require__(455),
- setToString = __webpack_require__(116),
- updateWrapDetails = __webpack_require__(456);
+var getWrapDetails = __webpack_require__(449),
+ insertWrapDetails = __webpack_require__(450),
+ setToString = __webpack_require__(115),
+ updateWrapDetails = __webpack_require__(451);
/**
* Sets the `toString` method of `wrapper` to mimic the source of `reference`
@@ -51200,10 +49679,10 @@ module.exports = setWrapToString;
/***/ }),
-/* 243 */
+/* 240 */
/***/ (function(module, exports, __webpack_require__) {
-var baseIndexOf = __webpack_require__(97);
+var baseIndexOf = __webpack_require__(96);
/**
* A specialized version of `_.includes` for arrays without support for
@@ -51223,7 +49702,7 @@ module.exports = arrayIncludes;
/***/ }),
-/* 244 */
+/* 241 */
/***/ (function(module, exports) {
/**
@@ -51242,13 +49721,13 @@ module.exports = getHolder;
/***/ }),
-/* 245 */
+/* 242 */
/***/ (function(module, exports, __webpack_require__) {
-var arrayEach = __webpack_require__(128),
- baseEach = __webpack_require__(94),
- castFunction = __webpack_require__(460),
- isArray = __webpack_require__(10);
+var arrayEach = __webpack_require__(127),
+ baseEach = __webpack_require__(93),
+ castFunction = __webpack_require__(455),
+ isArray = __webpack_require__(11);
/**
* Iterates over elements of `collection` and invokes `iteratee` for each element.
@@ -51289,7 +49768,7 @@ module.exports = forEach;
/***/ }),
-/* 246 */
+/* 243 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -51305,53 +49784,53 @@ var _MJMLElementsCollection = __webpack_require__(41);
var _MJMLElementsCollection2 = _interopRequireDefault(_MJMLElementsCollection);
-var _MJMLHead = __webpack_require__(144);
+var _MJMLHead = __webpack_require__(143);
var _MJMLHead2 = _interopRequireDefault(_MJMLHead);
-var _Error = __webpack_require__(192);
+var _Error = __webpack_require__(189);
-var _compact = __webpack_require__(463);
+var _compact = __webpack_require__(458);
var _compact2 = _interopRequireDefault(_compact);
-var _concat = __webpack_require__(135);
+var _concat = __webpack_require__(134);
var _concat2 = _interopRequireDefault(_concat);
-var _dom = __webpack_require__(100);
+var _dom = __webpack_require__(99);
var _dom2 = _interopRequireDefault(_dom);
-var _filter = __webpack_require__(95);
+var _filter = __webpack_require__(94);
var _filter2 = _interopRequireDefault(_filter);
-var _forEach = __webpack_require__(245);
+var _forEach = __webpack_require__(242);
var _forEach2 = _interopRequireDefault(_forEach);
-var _includes = __webpack_require__(137);
+var _includes = __webpack_require__(136);
var _includes2 = _interopRequireDefault(_includes);
-var _map = __webpack_require__(465);
+var _map = __webpack_require__(461);
var _map2 = _interopRequireDefault(_map);
-var _mapValues = __webpack_require__(467);
+var _mapValues = __webpack_require__(463);
var _mapValues2 = _interopRequireDefault(_mapValues);
-var _parseAttributes = __webpack_require__(468);
+var _parseAttributes = __webpack_require__(464);
var _parseAttributes2 = _interopRequireDefault(_parseAttributes);
-var _removeCDATA = __webpack_require__(469);
+var _removeCDATA = __webpack_require__(465);
var _removeCDATA2 = _interopRequireDefault(_removeCDATA);
-var _toArray = __webpack_require__(470);
+var _toArray = __webpack_require__(466);
var _toArray2 = _interopRequireDefault(_toArray);
@@ -51484,52594 +49963,13524 @@ var documentParser = function documentParser(content) {
exports.default = documentParser;
/***/ }),
-/* 247 */
+/* 244 */
/***/ (function(module, exports, __webpack_require__) {
-var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
- * jQuery JavaScript Library v3.2.1
- * https://jquery.com/
- *
- * Includes Sizzle.js
- * https://sizzlejs.com/
- *
- * Copyright JS Foundation and other contributors
- * Released under the MIT license
- * https://jquery.org/license
+var asciiToArray = __webpack_require__(468),
+ hasUnicode = __webpack_require__(469),
+ unicodeToArray = __webpack_require__(470);
+
+/**
+ * Converts `string` to an array.
*
- * Date: 2017-03-20T18:59Z
+ * @private
+ * @param {string} string The string to convert.
+ * @returns {Array} Returns the converted array.
*/
-( function( global, factory ) {
-
- "use strict";
-
- if ( typeof module === "object" && typeof module.exports === "object" ) {
-
- // For CommonJS and CommonJS-like environments where a proper `window`
- // is present, execute the factory and get jQuery.
- // For environments that do not have a `window` with a `document`
- // (such as Node.js), expose a factory as module.exports.
- // This accentuates the need for the creation of a real `window`.
- // e.g. var jQuery = require("jquery")(window);
- // See ticket #14549 for more info.
- module.exports = global.document ?
- factory( global, true ) :
- function( w ) {
- if ( !w.document ) {
- throw new Error( "jQuery requires a window with a document" );
- }
- return factory( w );
- };
- } else {
- factory( global );
- }
-
-// Pass this if window is not defined yet
-} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
-
-// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1
-// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode
-// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common
-// enough that all such attempts are guarded in a try block.
-"use strict";
-
-var arr = [];
+function stringToArray(string) {
+ return hasUnicode(string)
+ ? unicodeToArray(string)
+ : asciiToArray(string);
+}
-var document = window.document;
+module.exports = stringToArray;
-var getProto = Object.getPrototypeOf;
-var slice = arr.slice;
+/***/ }),
+/* 245 */
+/***/ (function(module, exports, __webpack_require__) {
-var concat = arr.concat;
+/* WEBPACK VAR INJECTION */(function(module, global) {var __WEBPACK_AMD_DEFINE_RESULT__;/*! https://mths.be/he v1.1.1 by @mathias | MIT license */
+;(function(root) {
-var push = arr.push;
+ // Detect free variables `exports`.
+ var freeExports = typeof exports == 'object' && exports;
-var indexOf = arr.indexOf;
+ // Detect free variable `module`.
+ var freeModule = typeof module == 'object' && module &&
+ module.exports == freeExports && module;
-var class2type = {};
+ // Detect free variable `global`, from Node.js or Browserified code,
+ // and use it as `root`.
+ var freeGlobal = typeof global == 'object' && global;
+ if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {
+ root = freeGlobal;
+ }
-var toString = class2type.toString;
+ /*--------------------------------------------------------------------------*/
-var hasOwn = class2type.hasOwnProperty;
+ // All astral symbols.
+ var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
+ // All ASCII symbols (not just printable ASCII) except those listed in the
+ // first column of the overrides table.
+ // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides
+ var regexAsciiWhitelist = /[\x01-\x7F]/g;
+ // All BMP symbols that are not ASCII newlines, printable ASCII symbols, or
+ // code points listed in the first column of the overrides table on
+ // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.
+ var regexBmpWhitelist = /[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g;
-var fnToString = hasOwn.toString;
+ var regexEncodeNonAscii = /<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g;
+ var encodeMap = {'\xAD':'shy','\u200C':'zwnj','\u200D':'zwj','\u200E':'lrm','\u2063':'ic','\u2062':'it','\u2061':'af','\u200F':'rlm','\u200B':'ZeroWidthSpace','\u2060':'NoBreak','\u0311':'DownBreve','\u20DB':'tdot','\u20DC':'DotDot','\t':'Tab','\n':'NewLine','\u2008':'puncsp','\u205F':'MediumSpace','\u2009':'thinsp','\u200A':'hairsp','\u2004':'emsp13','\u2002':'ensp','\u2005':'emsp14','\u2003':'emsp','\u2007':'numsp','\xA0':'nbsp','\u205F\u200A':'ThickSpace','\u203E':'oline','_':'lowbar','\u2010':'dash','\u2013':'ndash','\u2014':'mdash','\u2015':'horbar',',':'comma',';':'semi','\u204F':'bsemi',':':'colon','\u2A74':'Colone','!':'excl','\xA1':'iexcl','?':'quest','\xBF':'iquest','.':'period','\u2025':'nldr','\u2026':'mldr','\xB7':'middot','\'':'apos','\u2018':'lsquo','\u2019':'rsquo','\u201A':'sbquo','\u2039':'lsaquo','\u203A':'rsaquo','"':'quot','\u201C':'ldquo','\u201D':'rdquo','\u201E':'bdquo','\xAB':'laquo','\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\u2308':'lceil','\u2309':'rceil','\u230A':'lfloor','\u230B':'rfloor','\u2985':'lopar','\u2986':'ropar','\u298B':'lbrke','\u298C':'rbrke','\u298D':'lbrkslu','\u298E':'rbrksld','\u298F':'lbrksld','\u2990':'rbrkslu','\u2991':'langd','\u2992':'rangd','\u2993':'lparlt','\u2994':'rpargt','\u2995':'gtlPar','\u2996':'ltrPar','\u27E6':'lobrk','\u27E7':'robrk','\u27E8':'lang','\u27E9':'rang','\u27EA':'Lang','\u27EB':'Rang','\u27EC':'loang','\u27ED':'roang','\u2772':'lbbrk','\u2773':'rbbrk','\u2016':'Vert','\xA7':'sect','\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\u2030':'permil','\u2031':'pertenk','\u2020':'dagger','\u2021':'Dagger','\u2022':'bull','\u2043':'hybull','\u2032':'prime','\u2033':'Prime','\u2034':'tprime','\u2057':'qprime','\u2035':'bprime','\u2041':'caret','`':'grave','\xB4':'acute','\u02DC':'tilde','^':'Hat','\xAF':'macr','\u02D8':'breve','\u02D9':'dot','\xA8':'die','\u02DA':'ring','\u02DD':'dblac','\xB8':'cedil','\u02DB':'ogon','\u02C6':'circ','\u02C7':'caron','\xB0':'deg','\xA9':'copy','\xAE':'reg','\u2117':'copysr','\u2118':'wp','\u211E':'rx','\u2127':'mho','\u2129':'iiota','\u2190':'larr','\u219A':'nlarr','\u2192':'rarr','\u219B':'nrarr','\u2191':'uarr','\u2193':'darr','\u2194':'harr','\u21AE':'nharr','\u2195':'varr','\u2196':'nwarr','\u2197':'nearr','\u2198':'searr','\u2199':'swarr','\u219D':'rarrw','\u219D\u0338':'nrarrw','\u219E':'Larr','\u219F':'Uarr','\u21A0':'Rarr','\u21A1':'Darr','\u21A2':'larrtl','\u21A3':'rarrtl','\u21A4':'mapstoleft','\u21A5':'mapstoup','\u21A6':'map','\u21A7':'mapstodown','\u21A9':'larrhk','\u21AA':'rarrhk','\u21AB':'larrlp','\u21AC':'rarrlp','\u21AD':'harrw','\u21B0':'lsh','\u21B1':'rsh','\u21B2':'ldsh','\u21B3':'rdsh','\u21B5':'crarr','\u21B6':'cularr','\u21B7':'curarr','\u21BA':'olarr','\u21BB':'orarr','\u21BC':'lharu','\u21BD':'lhard','\u21BE':'uharr','\u21BF':'uharl','\u21C0':'rharu','\u21C1':'rhard','\u21C2':'dharr','\u21C3':'dharl','\u21C4':'rlarr','\u21C5':'udarr','\u21C6':'lrarr','\u21C7':'llarr','\u21C8':'uuarr','\u21C9':'rrarr','\u21CA':'ddarr','\u21CB':'lrhar','\u21CC':'rlhar','\u21D0':'lArr','\u21CD':'nlArr','\u21D1':'uArr','\u21D2':'rArr','\u21CF':'nrArr','\u21D3':'dArr','\u21D4':'iff','\u21CE':'nhArr','\u21D5':'vArr','\u21D6':'nwArr','\u21D7':'neArr','\u21D8':'seArr','\u21D9':'swArr','\u21DA':'lAarr','\u21DB':'rAarr','\u21DD':'zigrarr','\u21E4':'larrb','\u21E5':'rarrb','\u21F5':'duarr','\u21FD':'loarr','\u21FE':'roarr','\u21FF':'hoarr','\u2200':'forall','\u2201':'comp','\u2202':'part','\u2202\u0338':'npart','\u2203':'exist','\u2204':'nexist','\u2205':'empty','\u2207':'Del','\u2208':'in','\u2209':'notin','\u220B':'ni','\u220C':'notni','\u03F6':'bepsi','\u220F':'prod','\u2210':'coprod','\u2211':'sum','+':'plus','\xB1':'pm','\xF7':'div','\xD7':'times','<':'lt','\u226E':'nlt','<\u20D2':'nvlt','=':'equals','\u2260':'ne','=\u20E5':'bne','\u2A75':'Equal','>':'gt','\u226F':'ngt','>\u20D2':'nvgt','\xAC':'not','|':'vert','\xA6':'brvbar','\u2212':'minus','\u2213':'mp','\u2214':'plusdo','\u2044':'frasl','\u2216':'setmn','\u2217':'lowast','\u2218':'compfn','\u221A':'Sqrt','\u221D':'prop','\u221E':'infin','\u221F':'angrt','\u2220':'ang','\u2220\u20D2':'nang','\u2221':'angmsd','\u2222':'angsph','\u2223':'mid','\u2224':'nmid','\u2225':'par','\u2226':'npar','\u2227':'and','\u2228':'or','\u2229':'cap','\u2229\uFE00':'caps','\u222A':'cup','\u222A\uFE00':'cups','\u222B':'int','\u222C':'Int','\u222D':'tint','\u2A0C':'qint','\u222E':'oint','\u222F':'Conint','\u2230':'Cconint','\u2231':'cwint','\u2232':'cwconint','\u2233':'awconint','\u2234':'there4','\u2235':'becaus','\u2236':'ratio','\u2237':'Colon','\u2238':'minusd','\u223A':'mDDot','\u223B':'homtht','\u223C':'sim','\u2241':'nsim','\u223C\u20D2':'nvsim','\u223D':'bsim','\u223D\u0331':'race','\u223E':'ac','\u223E\u0333':'acE','\u223F':'acd','\u2240':'wr','\u2242':'esim','\u2242\u0338':'nesim','\u2243':'sime','\u2244':'nsime','\u2245':'cong','\u2247':'ncong','\u2246':'simne','\u2248':'ap','\u2249':'nap','\u224A':'ape','\u224B':'apid','\u224B\u0338':'napid','\u224C':'bcong','\u224D':'CupCap','\u226D':'NotCupCap','\u224D\u20D2':'nvap','\u224E':'bump','\u224E\u0338':'nbump','\u224F':'bumpe','\u224F\u0338':'nbumpe','\u2250':'doteq','\u2250\u0338':'nedot','\u2251':'eDot','\u2252':'efDot','\u2253':'erDot','\u2254':'colone','\u2255':'ecolon','\u2256':'ecir','\u2257':'cire','\u2259':'wedgeq','\u225A':'veeeq','\u225C':'trie','\u225F':'equest','\u2261':'equiv','\u2262':'nequiv','\u2261\u20E5':'bnequiv','\u2264':'le','\u2270':'nle','\u2264\u20D2':'nvle','\u2265':'ge','\u2271':'nge','\u2265\u20D2':'nvge','\u2266':'lE','\u2266\u0338':'nlE','\u2267':'gE','\u2267\u0338':'ngE','\u2268\uFE00':'lvnE','\u2268':'lnE','\u2269':'gnE','\u2269\uFE00':'gvnE','\u226A':'ll','\u226A\u0338':'nLtv','\u226A\u20D2':'nLt','\u226B':'gg','\u226B\u0338':'nGtv','\u226B\u20D2':'nGt','\u226C':'twixt','\u2272':'lsim','\u2274':'nlsim','\u2273':'gsim','\u2275':'ngsim','\u2276':'lg','\u2278':'ntlg','\u2277':'gl','\u2279':'ntgl','\u227A':'pr','\u2280':'npr','\u227B':'sc','\u2281':'nsc','\u227C':'prcue','\u22E0':'nprcue','\u227D':'sccue','\u22E1':'nsccue','\u227E':'prsim','\u227F':'scsim','\u227F\u0338':'NotSucceedsTilde','\u2282':'sub','\u2284':'nsub','\u2282\u20D2':'vnsub','\u2283':'sup','\u2285':'nsup','\u2283\u20D2':'vnsup','\u2286':'sube','\u2288':'nsube','\u2287':'supe','\u2289':'nsupe','\u228A\uFE00':'vsubne','\u228A':'subne','\u228B\uFE00':'vsupne','\u228B':'supne','\u228D':'cupdot','\u228E':'uplus','\u228F':'sqsub','\u228F\u0338':'NotSquareSubset','\u2290':'sqsup','\u2290\u0338':'NotSquareSuperset','\u2291':'sqsube','\u22E2':'nsqsube','\u2292':'sqsupe','\u22E3':'nsqsupe','\u2293':'sqcap','\u2293\uFE00':'sqcaps','\u2294':'sqcup','\u2294\uFE00':'sqcups','\u2295':'oplus','\u2296':'ominus','\u2297':'otimes','\u2298':'osol','\u2299':'odot','\u229A':'ocir','\u229B':'oast','\u229D':'odash','\u229E':'plusb','\u229F':'minusb','\u22A0':'timesb','\u22A1':'sdotb','\u22A2':'vdash','\u22AC':'nvdash','\u22A3':'dashv','\u22A4':'top','\u22A5':'bot','\u22A7':'models','\u22A8':'vDash','\u22AD':'nvDash','\u22A9':'Vdash','\u22AE':'nVdash','\u22AA':'Vvdash','\u22AB':'VDash','\u22AF':'nVDash','\u22B0':'prurel','\u22B2':'vltri','\u22EA':'nltri','\u22B3':'vrtri','\u22EB':'nrtri','\u22B4':'ltrie','\u22EC':'nltrie','\u22B4\u20D2':'nvltrie','\u22B5':'rtrie','\u22ED':'nrtrie','\u22B5\u20D2':'nvrtrie','\u22B6':'origof','\u22B7':'imof','\u22B8':'mumap','\u22B9':'hercon','\u22BA':'intcal','\u22BB':'veebar','\u22BD':'barvee','\u22BE':'angrtvb','\u22BF':'lrtri','\u22C0':'Wedge','\u22C1':'Vee','\u22C2':'xcap','\u22C3':'xcup','\u22C4':'diam','\u22C5':'sdot','\u22C6':'Star','\u22C7':'divonx','\u22C8':'bowtie','\u22C9':'ltimes','\u22CA':'rtimes','\u22CB':'lthree','\u22CC':'rthree','\u22CD':'bsime','\u22CE':'cuvee','\u22CF':'cuwed','\u22D0':'Sub','\u22D1':'Sup','\u22D2':'Cap','\u22D3':'Cup','\u22D4':'fork','\u22D5':'epar','\u22D6':'ltdot','\u22D7':'gtdot','\u22D8':'Ll','\u22D8\u0338':'nLl','\u22D9':'Gg','\u22D9\u0338':'nGg','\u22DA\uFE00':'lesg','\u22DA':'leg','\u22DB':'gel','\u22DB\uFE00':'gesl','\u22DE':'cuepr','\u22DF':'cuesc','\u22E6':'lnsim','\u22E7':'gnsim','\u22E8':'prnsim','\u22E9':'scnsim','\u22EE':'vellip','\u22EF':'ctdot','\u22F0':'utdot','\u22F1':'dtdot','\u22F2':'disin','\u22F3':'isinsv','\u22F4':'isins','\u22F5':'isindot','\u22F5\u0338':'notindot','\u22F6':'notinvc','\u22F7':'notinvb','\u22F9':'isinE','\u22F9\u0338':'notinE','\u22FA':'nisd','\u22FB':'xnis','\u22FC':'nis','\u22FD':'notnivc','\u22FE':'notnivb','\u2305':'barwed','\u2306':'Barwed','\u230C':'drcrop','\u230D':'dlcrop','\u230E':'urcrop','\u230F':'ulcrop','\u2310':'bnot','\u2312':'profline','\u2313':'profsurf','\u2315':'telrec','\u2316':'target','\u231C':'ulcorn','\u231D':'urcorn','\u231E':'dlcorn','\u231F':'drcorn','\u2322':'frown','\u2323':'smile','\u232D':'cylcty','\u232E':'profalar','\u2336':'topbot','\u233D':'ovbar','\u233F':'solbar','\u237C':'angzarr','\u23B0':'lmoust','\u23B1':'rmoust','\u23B4':'tbrk','\u23B5':'bbrk','\u23B6':'bbrktbrk','\u23DC':'OverParenthesis','\u23DD':'UnderParenthesis','\u23DE':'OverBrace','\u23DF':'UnderBrace','\u23E2':'trpezium','\u23E7':'elinters','\u2423':'blank','\u2500':'boxh','\u2502':'boxv','\u250C':'boxdr','\u2510':'boxdl','\u2514':'boxur','\u2518':'boxul','\u251C':'boxvr','\u2524':'boxvl','\u252C':'boxhd','\u2534':'boxhu','\u253C':'boxvh','\u2550':'boxH','\u2551':'boxV','\u2552':'boxdR','\u2553':'boxDr','\u2554':'boxDR','\u2555':'boxdL','\u2556':'boxDl','\u2557':'boxDL','\u2558':'boxuR','\u2559':'boxUr','\u255A':'boxUR','\u255B':'boxuL','\u255C':'boxUl','\u255D':'boxUL','\u255E':'boxvR','\u255F':'boxVr','\u2560':'boxVR','\u2561':'boxvL','\u2562':'boxVl','\u2563':'boxVL','\u2564':'boxHd','\u2565':'boxhD','\u2566':'boxHD','\u2567':'boxHu','\u2568':'boxhU','\u2569':'boxHU','\u256A':'boxvH','\u256B':'boxVh','\u256C':'boxVH','\u2580':'uhblk','\u2584':'lhblk','\u2588':'block','\u2591':'blk14','\u2592':'blk12','\u2593':'blk34','\u25A1':'squ','\u25AA':'squf','\u25AB':'EmptyVerySmallSquare','\u25AD':'rect','\u25AE':'marker','\u25B1':'fltns','\u25B3':'xutri','\u25B4':'utrif','\u25B5':'utri','\u25B8':'rtrif','\u25B9':'rtri','\u25BD':'xdtri','\u25BE':'dtrif','\u25BF':'dtri','\u25C2':'ltrif','\u25C3':'ltri','\u25CA':'loz','\u25CB':'cir','\u25EC':'tridot','\u25EF':'xcirc','\u25F8':'ultri','\u25F9':'urtri','\u25FA':'lltri','\u25FB':'EmptySmallSquare','\u25FC':'FilledSmallSquare','\u2605':'starf','\u2606':'star','\u260E':'phone','\u2640':'female','\u2642':'male','\u2660':'spades','\u2663':'clubs','\u2665':'hearts','\u2666':'diams','\u266A':'sung','\u2713':'check','\u2717':'cross','\u2720':'malt','\u2736':'sext','\u2758':'VerticalSeparator','\u27C8':'bsolhsub','\u27C9':'suphsol','\u27F5':'xlarr','\u27F6':'xrarr','\u27F7':'xharr','\u27F8':'xlArr','\u27F9':'xrArr','\u27FA':'xhArr','\u27FC':'xmap','\u27FF':'dzigrarr','\u2902':'nvlArr','\u2903':'nvrArr','\u2904':'nvHarr','\u2905':'Map','\u290C':'lbarr','\u290D':'rbarr','\u290E':'lBarr','\u290F':'rBarr','\u2910':'RBarr','\u2911':'DDotrahd','\u2912':'UpArrowBar','\u2913':'DownArrowBar','\u2916':'Rarrtl','\u2919':'latail','\u291A':'ratail','\u291B':'lAtail','\u291C':'rAtail','\u291D':'larrfs','\u291E':'rarrfs','\u291F':'larrbfs','\u2920':'rarrbfs','\u2923':'nwarhk','\u2924':'nearhk','\u2925':'searhk','\u2926':'swarhk','\u2927':'nwnear','\u2928':'toea','\u2929':'tosa','\u292A':'swnwar','\u2933':'rarrc','\u2933\u0338':'nrarrc','\u2935':'cudarrr','\u2936':'ldca','\u2937':'rdca','\u2938':'cudarrl','\u2939':'larrpl','\u293C':'curarrm','\u293D':'cularrp','\u2945':'rarrpl','\u2948':'harrcir','\u2949':'Uarrocir','\u294A':'lurdshar','\u294B':'ldrushar','\u294E':'LeftRightVector','\u294F':'RightUpDownVector','\u2950':'DownLeftRightVector','\u2951':'LeftUpDownVector','\u2952':'LeftVectorBar','\u2953':'RightVectorBar','\u2954':'RightUpVectorBar','\u2955':'RightDownVectorBar','\u2956':'DownLeftVectorBar','\u2957':'DownRightVectorBar','\u2958':'LeftUpVectorBar','\u2959':'LeftDownVectorBar','\u295A':'LeftTeeVector','\u295B':'RightTeeVector','\u295C':'RightUpTeeVector','\u295D':'RightDownTeeVector','\u295E':'DownLeftTeeVector','\u295F':'DownRightTeeVector','\u2960':'LeftUpTeeVector','\u2961':'LeftDownTeeVector','\u2962':'lHar','\u2963':'uHar','\u2964':'rHar','\u2965':'dHar','\u2966':'luruhar','\u2967':'ldrdhar','\u2968':'ruluhar','\u2969':'rdldhar','\u296A':'lharul','\u296B':'llhard','\u296C':'rharul','\u296D':'lrhard','\u296E':'udhar','\u296F':'duhar','\u2970':'RoundImplies','\u2971':'erarr','\u2972':'simrarr','\u2973':'larrsim','\u2974':'rarrsim','\u2975':'rarrap','\u2976':'ltlarr','\u2978':'gtrarr','\u2979':'subrarr','\u297B':'suplarr','\u297C':'lfisht','\u297D':'rfisht','\u297E':'ufisht','\u297F':'dfisht','\u299A':'vzigzag','\u299C':'vangrt','\u299D':'angrtvbd','\u29A4':'ange','\u29A5':'range','\u29A6':'dwangle','\u29A7':'uwangle','\u29A8':'angmsdaa','\u29A9':'angmsdab','\u29AA':'angmsdac','\u29AB':'angmsdad','\u29AC':'angmsdae','\u29AD':'angmsdaf','\u29AE':'angmsdag','\u29AF':'angmsdah','\u29B0':'bemptyv','\u29B1':'demptyv','\u29B2':'cemptyv','\u29B3':'raemptyv','\u29B4':'laemptyv','\u29B5':'ohbar','\u29B6':'omid','\u29B7':'opar','\u29B9':'operp','\u29BB':'olcross','\u29BC':'odsold','\u29BE':'olcir','\u29BF':'ofcir','\u29C0':'olt','\u29C1':'ogt','\u29C2':'cirscir','\u29C3':'cirE','\u29C4':'solb','\u29C5':'bsolb','\u29C9':'boxbox','\u29CD':'trisb','\u29CE':'rtriltri','\u29CF':'LeftTriangleBar','\u29CF\u0338':'NotLeftTriangleBar','\u29D0':'RightTriangleBar','\u29D0\u0338':'NotRightTriangleBar','\u29DC':'iinfin','\u29DD':'infintie','\u29DE':'nvinfin','\u29E3':'eparsl','\u29E4':'smeparsl','\u29E5':'eqvparsl','\u29EB':'lozf','\u29F4':'RuleDelayed','\u29F6':'dsol','\u2A00':'xodot','\u2A01':'xoplus','\u2A02':'xotime','\u2A04':'xuplus','\u2A06':'xsqcup','\u2A0D':'fpartint','\u2A10':'cirfnint','\u2A11':'awint','\u2A12':'rppolint','\u2A13':'scpolint','\u2A14':'npolint','\u2A15':'pointint','\u2A16':'quatint','\u2A17':'intlarhk','\u2A22':'pluscir','\u2A23':'plusacir','\u2A24':'simplus','\u2A25':'plusdu','\u2A26':'plussim','\u2A27':'plustwo','\u2A29':'mcomma','\u2A2A':'minusdu','\u2A2D':'loplus','\u2A2E':'roplus','\u2A2F':'Cross','\u2A30':'timesd','\u2A31':'timesbar','\u2A33':'smashp','\u2A34':'lotimes','\u2A35':'rotimes','\u2A36':'otimesas','\u2A37':'Otimes','\u2A38':'odiv','\u2A39':'triplus','\u2A3A':'triminus','\u2A3B':'tritime','\u2A3C':'iprod','\u2A3F':'amalg','\u2A40':'capdot','\u2A42':'ncup','\u2A43':'ncap','\u2A44':'capand','\u2A45':'cupor','\u2A46':'cupcap','\u2A47':'capcup','\u2A48':'cupbrcap','\u2A49':'capbrcup','\u2A4A':'cupcup','\u2A4B':'capcap','\u2A4C':'ccups','\u2A4D':'ccaps','\u2A50':'ccupssm','\u2A53':'And','\u2A54':'Or','\u2A55':'andand','\u2A56':'oror','\u2A57':'orslope','\u2A58':'andslope','\u2A5A':'andv','\u2A5B':'orv','\u2A5C':'andd','\u2A5D':'ord','\u2A5F':'wedbar','\u2A66':'sdote','\u2A6A':'simdot','\u2A6D':'congdot','\u2A6D\u0338':'ncongdot','\u2A6E':'easter','\u2A6F':'apacir','\u2A70':'apE','\u2A70\u0338':'napE','\u2A71':'eplus','\u2A72':'pluse','\u2A73':'Esim','\u2A77':'eDDot','\u2A78':'equivDD','\u2A79':'ltcir','\u2A7A':'gtcir','\u2A7B':'ltquest','\u2A7C':'gtquest','\u2A7D':'les','\u2A7D\u0338':'nles','\u2A7E':'ges','\u2A7E\u0338':'nges','\u2A7F':'lesdot','\u2A80':'gesdot','\u2A81':'lesdoto','\u2A82':'gesdoto','\u2A83':'lesdotor','\u2A84':'gesdotol','\u2A85':'lap','\u2A86':'gap','\u2A87':'lne','\u2A88':'gne','\u2A89':'lnap','\u2A8A':'gnap','\u2A8B':'lEg','\u2A8C':'gEl','\u2A8D':'lsime','\u2A8E':'gsime','\u2A8F':'lsimg','\u2A90':'gsiml','\u2A91':'lgE','\u2A92':'glE','\u2A93':'lesges','\u2A94':'gesles','\u2A95':'els','\u2A96':'egs','\u2A97':'elsdot','\u2A98':'egsdot','\u2A99':'el','\u2A9A':'eg','\u2A9D':'siml','\u2A9E':'simg','\u2A9F':'simlE','\u2AA0':'simgE','\u2AA1':'LessLess','\u2AA1\u0338':'NotNestedLessLess','\u2AA2':'GreaterGreater','\u2AA2\u0338':'NotNestedGreaterGreater','\u2AA4':'glj','\u2AA5':'gla','\u2AA6':'ltcc','\u2AA7':'gtcc','\u2AA8':'lescc','\u2AA9':'gescc','\u2AAA':'smt','\u2AAB':'lat','\u2AAC':'smte','\u2AAC\uFE00':'smtes','\u2AAD':'late','\u2AAD\uFE00':'lates','\u2AAE':'bumpE','\u2AAF':'pre','\u2AAF\u0338':'npre','\u2AB0':'sce','\u2AB0\u0338':'nsce','\u2AB3':'prE','\u2AB4':'scE','\u2AB5':'prnE','\u2AB6':'scnE','\u2AB7':'prap','\u2AB8':'scap','\u2AB9':'prnap','\u2ABA':'scnap','\u2ABB':'Pr','\u2ABC':'Sc','\u2ABD':'subdot','\u2ABE':'supdot','\u2ABF':'subplus','\u2AC0':'supplus','\u2AC1':'submult','\u2AC2':'supmult','\u2AC3':'subedot','\u2AC4':'supedot','\u2AC5':'subE','\u2AC5\u0338':'nsubE','\u2AC6':'supE','\u2AC6\u0338':'nsupE','\u2AC7':'subsim','\u2AC8':'supsim','\u2ACB\uFE00':'vsubnE','\u2ACB':'subnE','\u2ACC\uFE00':'vsupnE','\u2ACC':'supnE','\u2ACF':'csub','\u2AD0':'csup','\u2AD1':'csube','\u2AD2':'csupe','\u2AD3':'subsup','\u2AD4':'supsub','\u2AD5':'subsub','\u2AD6':'supsup','\u2AD7':'suphsub','\u2AD8':'supdsub','\u2AD9':'forkv','\u2ADA':'topfork','\u2ADB':'mlcp','\u2AE4':'Dashv','\u2AE6':'Vdashl','\u2AE7':'Barv','\u2AE8':'vBar','\u2AE9':'vBarv','\u2AEB':'Vbar','\u2AEC':'Not','\u2AED':'bNot','\u2AEE':'rnmid','\u2AEF':'cirmid','\u2AF0':'midcir','\u2AF1':'topcir','\u2AF2':'nhpar','\u2AF3':'parsim','\u2AFD':'parsl','\u2AFD\u20E5':'nparsl','\u266D':'flat','\u266E':'natur','\u266F':'sharp','\xA4':'curren','\xA2':'cent','$':'dollar','\xA3':'pound','\xA5':'yen','\u20AC':'euro','\xB9':'sup1','\xBD':'half','\u2153':'frac13','\xBC':'frac14','\u2155':'frac15','\u2159':'frac16','\u215B':'frac18','\xB2':'sup2','\u2154':'frac23','\u2156':'frac25','\xB3':'sup3','\xBE':'frac34','\u2157':'frac35','\u215C':'frac38','\u2158':'frac45','\u215A':'frac56','\u215D':'frac58','\u215E':'frac78','\uD835\uDCB6':'ascr','\uD835\uDD52':'aopf','\uD835\uDD1E':'afr','\uD835\uDD38':'Aopf','\uD835\uDD04':'Afr','\uD835\uDC9C':'Ascr','\xAA':'ordf','\xE1':'aacute','\xC1':'Aacute','\xE0':'agrave','\xC0':'Agrave','\u0103':'abreve','\u0102':'Abreve','\xE2':'acirc','\xC2':'Acirc','\xE5':'aring','\xC5':'angst','\xE4':'auml','\xC4':'Auml','\xE3':'atilde','\xC3':'Atilde','\u0105':'aogon','\u0104':'Aogon','\u0101':'amacr','\u0100':'Amacr','\xE6':'aelig','\xC6':'AElig','\uD835\uDCB7':'bscr','\uD835\uDD53':'bopf','\uD835\uDD1F':'bfr','\uD835\uDD39':'Bopf','\u212C':'Bscr','\uD835\uDD05':'Bfr','\uD835\uDD20':'cfr','\uD835\uDCB8':'cscr','\uD835\uDD54':'copf','\u212D':'Cfr','\uD835\uDC9E':'Cscr','\u2102':'Copf','\u0107':'cacute','\u0106':'Cacute','\u0109':'ccirc','\u0108':'Ccirc','\u010D':'ccaron','\u010C':'Ccaron','\u010B':'cdot','\u010A':'Cdot','\xE7':'ccedil','\xC7':'Ccedil','\u2105':'incare','\uD835\uDD21':'dfr','\u2146':'dd','\uD835\uDD55':'dopf','\uD835\uDCB9':'dscr','\uD835\uDC9F':'Dscr','\uD835\uDD07':'Dfr','\u2145':'DD','\uD835\uDD3B':'Dopf','\u010F':'dcaron','\u010E':'Dcaron','\u0111':'dstrok','\u0110':'Dstrok','\xF0':'eth','\xD0':'ETH','\u2147':'ee','\u212F':'escr','\uD835\uDD22':'efr','\uD835\uDD56':'eopf','\u2130':'Escr','\uD835\uDD08':'Efr','\uD835\uDD3C':'Eopf','\xE9':'eacute','\xC9':'Eacute','\xE8':'egrave','\xC8':'Egrave','\xEA':'ecirc','\xCA':'Ecirc','\u011B':'ecaron','\u011A':'Ecaron','\xEB':'euml','\xCB':'Euml','\u0117':'edot','\u0116':'Edot','\u0119':'eogon','\u0118':'Eogon','\u0113':'emacr','\u0112':'Emacr','\uD835\uDD23':'ffr','\uD835\uDD57':'fopf','\uD835\uDCBB':'fscr','\uD835\uDD09':'Ffr','\uD835\uDD3D':'Fopf','\u2131':'Fscr','\uFB00':'fflig','\uFB03':'ffilig','\uFB04':'ffllig','\uFB01':'filig','fj':'fjlig','\uFB02':'fllig','\u0192':'fnof','\u210A':'gscr','\uD835\uDD58':'gopf','\uD835\uDD24':'gfr','\uD835\uDCA2':'Gscr','\uD835\uDD3E':'Gopf','\uD835\uDD0A':'Gfr','\u01F5':'gacute','\u011F':'gbreve','\u011E':'Gbreve','\u011D':'gcirc','\u011C':'Gcirc','\u0121':'gdot','\u0120':'Gdot','\u0122':'Gcedil','\uD835\uDD25':'hfr','\u210E':'planckh','\uD835\uDCBD':'hscr','\uD835\uDD59':'hopf','\u210B':'Hscr','\u210C':'Hfr','\u210D':'Hopf','\u0125':'hcirc','\u0124':'Hcirc','\u210F':'hbar','\u0127':'hstrok','\u0126':'Hstrok','\uD835\uDD5A':'iopf','\uD835\uDD26':'ifr','\uD835\uDCBE':'iscr','\u2148':'ii','\uD835\uDD40':'Iopf','\u2110':'Iscr','\u2111':'Im','\xED':'iacute','\xCD':'Iacute','\xEC':'igrave','\xCC':'Igrave','\xEE':'icirc','\xCE':'Icirc','\xEF':'iuml','\xCF':'Iuml','\u0129':'itilde','\u0128':'Itilde','\u0130':'Idot','\u012F':'iogon','\u012E':'Iogon','\u012B':'imacr','\u012A':'Imacr','\u0133':'ijlig','\u0132':'IJlig','\u0131':'imath','\uD835\uDCBF':'jscr','\uD835\uDD5B':'jopf','\uD835\uDD27':'jfr','\uD835\uDCA5':'Jscr','\uD835\uDD0D':'Jfr','\uD835\uDD41':'Jopf','\u0135':'jcirc','\u0134':'Jcirc','\u0237':'jmath','\uD835\uDD5C':'kopf','\uD835\uDCC0':'kscr','\uD835\uDD28':'kfr','\uD835\uDCA6':'Kscr','\uD835\uDD42':'Kopf','\uD835\uDD0E':'Kfr','\u0137':'kcedil','\u0136':'Kcedil','\uD835\uDD29':'lfr','\uD835\uDCC1':'lscr','\u2113':'ell','\uD835\uDD5D':'lopf','\u2112':'Lscr','\uD835\uDD0F':'Lfr','\uD835\uDD43':'Lopf','\u013A':'lacute','\u0139':'Lacute','\u013E':'lcaron','\u013D':'Lcaron','\u013C':'lcedil','\u013B':'Lcedil','\u0142':'lstrok','\u0141':'Lstrok','\u0140':'lmidot','\u013F':'Lmidot','\uD835\uDD2A':'mfr','\uD835\uDD5E':'mopf','\uD835\uDCC2':'mscr','\uD835\uDD10':'Mfr','\uD835\uDD44':'Mopf','\u2133':'Mscr','\uD835\uDD2B':'nfr','\uD835\uDD5F':'nopf','\uD835\uDCC3':'nscr','\u2115':'Nopf','\uD835\uDCA9':'Nscr','\uD835\uDD11':'Nfr','\u0144':'nacute','\u0143':'Nacute','\u0148':'ncaron','\u0147':'Ncaron','\xF1':'ntilde','\xD1':'Ntilde','\u0146':'ncedil','\u0145':'Ncedil','\u2116':'numero','\u014B':'eng','\u014A':'ENG','\uD835\uDD60':'oopf','\uD835\uDD2C':'ofr','\u2134':'oscr','\uD835\uDCAA':'Oscr','\uD835\uDD12':'Ofr','\uD835\uDD46':'Oopf','\xBA':'ordm','\xF3':'oacute','\xD3':'Oacute','\xF2':'ograve','\xD2':'Ograve','\xF4':'ocirc','\xD4':'Ocirc','\xF6':'ouml','\xD6':'Ouml','\u0151':'odblac','\u0150':'Odblac','\xF5':'otilde','\xD5':'Otilde','\xF8':'oslash','\xD8':'Oslash','\u014D':'omacr','\u014C':'Omacr','\u0153':'oelig','\u0152':'OElig','\uD835\uDD2D':'pfr','\uD835\uDCC5':'pscr','\uD835\uDD61':'popf','\u2119':'Popf','\uD835\uDD13':'Pfr','\uD835\uDCAB':'Pscr','\uD835\uDD62':'qopf','\uD835\uDD2E':'qfr','\uD835\uDCC6':'qscr','\uD835\uDCAC':'Qscr','\uD835\uDD14':'Qfr','\u211A':'Qopf','\u0138':'kgreen','\uD835\uDD2F':'rfr','\uD835\uDD63':'ropf','\uD835\uDCC7':'rscr','\u211B':'Rscr','\u211C':'Re','\u211D':'Ropf','\u0155':'racute','\u0154':'Racute','\u0159':'rcaron','\u0158':'Rcaron','\u0157':'rcedil','\u0156':'Rcedil','\uD835\uDD64':'sopf','\uD835\uDCC8':'sscr','\uD835\uDD30':'sfr','\uD835\uDD4A':'Sopf','\uD835\uDD16':'Sfr','\uD835\uDCAE':'Sscr','\u24C8':'oS','\u015B':'sacute','\u015A':'Sacute','\u015D':'scirc','\u015C':'Scirc','\u0161':'scaron','\u0160':'Scaron','\u015F':'scedil','\u015E':'Scedil','\xDF':'szlig','\uD835\uDD31':'tfr','\uD835\uDCC9':'tscr','\uD835\uDD65':'topf','\uD835\uDCAF':'Tscr','\uD835\uDD17':'Tfr','\uD835\uDD4B':'Topf','\u0165':'tcaron','\u0164':'Tcaron','\u0163':'tcedil','\u0162':'Tcedil','\u2122':'trade','\u0167':'tstrok','\u0166':'Tstrok','\uD835\uDCCA':'uscr','\uD835\uDD66':'uopf','\uD835\uDD32':'ufr','\uD835\uDD4C':'Uopf','\uD835\uDD18':'Ufr','\uD835\uDCB0':'Uscr','\xFA':'uacute','\xDA':'Uacute','\xF9':'ugrave','\xD9':'Ugrave','\u016D':'ubreve','\u016C':'Ubreve','\xFB':'ucirc','\xDB':'Ucirc','\u016F':'uring','\u016E':'Uring','\xFC':'uuml','\xDC':'Uuml','\u0171':'udblac','\u0170':'Udblac','\u0169':'utilde','\u0168':'Utilde','\u0173':'uogon','\u0172':'Uogon','\u016B':'umacr','\u016A':'Umacr','\uD835\uDD33':'vfr','\uD835\uDD67':'vopf','\uD835\uDCCB':'vscr','\uD835\uDD19':'Vfr','\uD835\uDD4D':'Vopf','\uD835\uDCB1':'Vscr','\uD835\uDD68':'wopf','\uD835\uDCCC':'wscr','\uD835\uDD34':'wfr','\uD835\uDCB2':'Wscr','\uD835\uDD4E':'Wopf','\uD835\uDD1A':'Wfr','\u0175':'wcirc','\u0174':'Wcirc','\uD835\uDD35':'xfr','\uD835\uDCCD':'xscr','\uD835\uDD69':'xopf','\uD835\uDD4F':'Xopf','\uD835\uDD1B':'Xfr','\uD835\uDCB3':'Xscr','\uD835\uDD36':'yfr','\uD835\uDCCE':'yscr','\uD835\uDD6A':'yopf','\uD835\uDCB4':'Yscr','\uD835\uDD1C':'Yfr','\uD835\uDD50':'Yopf','\xFD':'yacute','\xDD':'Yacute','\u0177':'ycirc','\u0176':'Ycirc','\xFF':'yuml','\u0178':'Yuml','\uD835\uDCCF':'zscr','\uD835\uDD37':'zfr','\uD835\uDD6B':'zopf','\u2128':'Zfr','\u2124':'Zopf','\uD835\uDCB5':'Zscr','\u017A':'zacute','\u0179':'Zacute','\u017E':'zcaron','\u017D':'Zcaron','\u017C':'zdot','\u017B':'Zdot','\u01B5':'imped','\xFE':'thorn','\xDE':'THORN','\u0149':'napos','\u03B1':'alpha','\u0391':'Alpha','\u03B2':'beta','\u0392':'Beta','\u03B3':'gamma','\u0393':'Gamma','\u03B4':'delta','\u0394':'Delta','\u03B5':'epsi','\u03F5':'epsiv','\u0395':'Epsilon','\u03DD':'gammad','\u03DC':'Gammad','\u03B6':'zeta','\u0396':'Zeta','\u03B7':'eta','\u0397':'Eta','\u03B8':'theta','\u03D1':'thetav','\u0398':'Theta','\u03B9':'iota','\u0399':'Iota','\u03BA':'kappa','\u03F0':'kappav','\u039A':'Kappa','\u03BB':'lambda','\u039B':'Lambda','\u03BC':'mu','\xB5':'micro','\u039C':'Mu','\u03BD':'nu','\u039D':'Nu','\u03BE':'xi','\u039E':'Xi','\u03BF':'omicron','\u039F':'Omicron','\u03C0':'pi','\u03D6':'piv','\u03A0':'Pi','\u03C1':'rho','\u03F1':'rhov','\u03A1':'Rho','\u03C3':'sigma','\u03A3':'Sigma','\u03C2':'sigmaf','\u03C4':'tau','\u03A4':'Tau','\u03C5':'upsi','\u03A5':'Upsilon','\u03D2':'Upsi','\u03C6':'phi','\u03D5':'phiv','\u03A6':'Phi','\u03C7':'chi','\u03A7':'Chi','\u03C8':'psi','\u03A8':'Psi','\u03C9':'omega','\u03A9':'ohm','\u0430':'acy','\u0410':'Acy','\u0431':'bcy','\u0411':'Bcy','\u0432':'vcy','\u0412':'Vcy','\u0433':'gcy','\u0413':'Gcy','\u0453':'gjcy','\u0403':'GJcy','\u0434':'dcy','\u0414':'Dcy','\u0452':'djcy','\u0402':'DJcy','\u0435':'iecy','\u0415':'IEcy','\u0451':'iocy','\u0401':'IOcy','\u0454':'jukcy','\u0404':'Jukcy','\u0436':'zhcy','\u0416':'ZHcy','\u0437':'zcy','\u0417':'Zcy','\u0455':'dscy','\u0405':'DScy','\u0438':'icy','\u0418':'Icy','\u0456':'iukcy','\u0406':'Iukcy','\u0457':'yicy','\u0407':'YIcy','\u0439':'jcy','\u0419':'Jcy','\u0458':'jsercy','\u0408':'Jsercy','\u043A':'kcy','\u041A':'Kcy','\u045C':'kjcy','\u040C':'KJcy','\u043B':'lcy','\u041B':'Lcy','\u0459':'ljcy','\u0409':'LJcy','\u043C':'mcy','\u041C':'Mcy','\u043D':'ncy','\u041D':'Ncy','\u045A':'njcy','\u040A':'NJcy','\u043E':'ocy','\u041E':'Ocy','\u043F':'pcy','\u041F':'Pcy','\u0440':'rcy','\u0420':'Rcy','\u0441':'scy','\u0421':'Scy','\u0442':'tcy','\u0422':'Tcy','\u045B':'tshcy','\u040B':'TSHcy','\u0443':'ucy','\u0423':'Ucy','\u045E':'ubrcy','\u040E':'Ubrcy','\u0444':'fcy','\u0424':'Fcy','\u0445':'khcy','\u0425':'KHcy','\u0446':'tscy','\u0426':'TScy','\u0447':'chcy','\u0427':'CHcy','\u045F':'dzcy','\u040F':'DZcy','\u0448':'shcy','\u0428':'SHcy','\u0449':'shchcy','\u0429':'SHCHcy','\u044A':'hardcy','\u042A':'HARDcy','\u044B':'ycy','\u042B':'Ycy','\u044C':'softcy','\u042C':'SOFTcy','\u044D':'ecy','\u042D':'Ecy','\u044E':'yucy','\u042E':'YUcy','\u044F':'yacy','\u042F':'YAcy','\u2135':'aleph','\u2136':'beth','\u2137':'gimel','\u2138':'daleth'};
-var ObjectFunctionString = fnToString.call( Object );
+ var regexEscape = /["&'<>`]/g;
+ var escapeMap = {
+ '"': '"',
+ '&': '&',
+ '\'': ''',
+ '<': '<',
+ // See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the
+ // following is not strictly necessary unless it’s part of a tag or an
+ // unquoted attribute value. We’re only escaping it to support those
+ // situations, and for XML support.
+ '>': '>',
+ // In Internet Explorer ≤ 8, the backtick character can be used
+ // to break out of (un)quoted attribute values or HTML comments.
+ // See http://html5sec.org/#102, http://html5sec.org/#108, and
+ // http://html5sec.org/#133.
+ '`': '`'
+ };
-var support = {};
+ var regexInvalidEntity = /(?:[xX][^a-fA-F0-9]|[^0-9xX])/;
+ var regexInvalidRawCodePoint = /[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
+ var regexDecode = /([0-9]+)(;?)|[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)([=a-zA-Z0-9])?/g;
+ var decodeMap = {'aacute':'\xE1','Aacute':'\xC1','abreve':'\u0103','Abreve':'\u0102','ac':'\u223E','acd':'\u223F','acE':'\u223E\u0333','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','acy':'\u0430','Acy':'\u0410','aelig':'\xE6','AElig':'\xC6','af':'\u2061','afr':'\uD835\uDD1E','Afr':'\uD835\uDD04','agrave':'\xE0','Agrave':'\xC0','alefsym':'\u2135','aleph':'\u2135','alpha':'\u03B1','Alpha':'\u0391','amacr':'\u0101','Amacr':'\u0100','amalg':'\u2A3F','amp':'&','AMP':'&','and':'\u2227','And':'\u2A53','andand':'\u2A55','andd':'\u2A5C','andslope':'\u2A58','andv':'\u2A5A','ang':'\u2220','ange':'\u29A4','angle':'\u2220','angmsd':'\u2221','angmsdaa':'\u29A8','angmsdab':'\u29A9','angmsdac':'\u29AA','angmsdad':'\u29AB','angmsdae':'\u29AC','angmsdaf':'\u29AD','angmsdag':'\u29AE','angmsdah':'\u29AF','angrt':'\u221F','angrtvb':'\u22BE','angrtvbd':'\u299D','angsph':'\u2222','angst':'\xC5','angzarr':'\u237C','aogon':'\u0105','Aogon':'\u0104','aopf':'\uD835\uDD52','Aopf':'\uD835\uDD38','ap':'\u2248','apacir':'\u2A6F','ape':'\u224A','apE':'\u2A70','apid':'\u224B','apos':'\'','ApplyFunction':'\u2061','approx':'\u2248','approxeq':'\u224A','aring':'\xE5','Aring':'\xC5','ascr':'\uD835\uDCB6','Ascr':'\uD835\uDC9C','Assign':'\u2254','ast':'*','asymp':'\u2248','asympeq':'\u224D','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','awconint':'\u2233','awint':'\u2A11','backcong':'\u224C','backepsilon':'\u03F6','backprime':'\u2035','backsim':'\u223D','backsimeq':'\u22CD','Backslash':'\u2216','Barv':'\u2AE7','barvee':'\u22BD','barwed':'\u2305','Barwed':'\u2306','barwedge':'\u2305','bbrk':'\u23B5','bbrktbrk':'\u23B6','bcong':'\u224C','bcy':'\u0431','Bcy':'\u0411','bdquo':'\u201E','becaus':'\u2235','because':'\u2235','Because':'\u2235','bemptyv':'\u29B0','bepsi':'\u03F6','bernou':'\u212C','Bernoullis':'\u212C','beta':'\u03B2','Beta':'\u0392','beth':'\u2136','between':'\u226C','bfr':'\uD835\uDD1F','Bfr':'\uD835\uDD05','bigcap':'\u22C2','bigcirc':'\u25EF','bigcup':'\u22C3','bigodot':'\u2A00','bigoplus':'\u2A01','bigotimes':'\u2A02','bigsqcup':'\u2A06','bigstar':'\u2605','bigtriangledown':'\u25BD','bigtriangleup':'\u25B3','biguplus':'\u2A04','bigvee':'\u22C1','bigwedge':'\u22C0','bkarow':'\u290D','blacklozenge':'\u29EB','blacksquare':'\u25AA','blacktriangle':'\u25B4','blacktriangledown':'\u25BE','blacktriangleleft':'\u25C2','blacktriangleright':'\u25B8','blank':'\u2423','blk12':'\u2592','blk14':'\u2591','blk34':'\u2593','block':'\u2588','bne':'=\u20E5','bnequiv':'\u2261\u20E5','bnot':'\u2310','bNot':'\u2AED','bopf':'\uD835\uDD53','Bopf':'\uD835\uDD39','bot':'\u22A5','bottom':'\u22A5','bowtie':'\u22C8','boxbox':'\u29C9','boxdl':'\u2510','boxdL':'\u2555','boxDl':'\u2556','boxDL':'\u2557','boxdr':'\u250C','boxdR':'\u2552','boxDr':'\u2553','boxDR':'\u2554','boxh':'\u2500','boxH':'\u2550','boxhd':'\u252C','boxhD':'\u2565','boxHd':'\u2564','boxHD':'\u2566','boxhu':'\u2534','boxhU':'\u2568','boxHu':'\u2567','boxHU':'\u2569','boxminus':'\u229F','boxplus':'\u229E','boxtimes':'\u22A0','boxul':'\u2518','boxuL':'\u255B','boxUl':'\u255C','boxUL':'\u255D','boxur':'\u2514','boxuR':'\u2558','boxUr':'\u2559','boxUR':'\u255A','boxv':'\u2502','boxV':'\u2551','boxvh':'\u253C','boxvH':'\u256A','boxVh':'\u256B','boxVH':'\u256C','boxvl':'\u2524','boxvL':'\u2561','boxVl':'\u2562','boxVL':'\u2563','boxvr':'\u251C','boxvR':'\u255E','boxVr':'\u255F','boxVR':'\u2560','bprime':'\u2035','breve':'\u02D8','Breve':'\u02D8','brvbar':'\xA6','bscr':'\uD835\uDCB7','Bscr':'\u212C','bsemi':'\u204F','bsim':'\u223D','bsime':'\u22CD','bsol':'\\','bsolb':'\u29C5','bsolhsub':'\u27C8','bull':'\u2022','bullet':'\u2022','bump':'\u224E','bumpe':'\u224F','bumpE':'\u2AAE','bumpeq':'\u224F','Bumpeq':'\u224E','cacute':'\u0107','Cacute':'\u0106','cap':'\u2229','Cap':'\u22D2','capand':'\u2A44','capbrcup':'\u2A49','capcap':'\u2A4B','capcup':'\u2A47','capdot':'\u2A40','CapitalDifferentialD':'\u2145','caps':'\u2229\uFE00','caret':'\u2041','caron':'\u02C7','Cayleys':'\u212D','ccaps':'\u2A4D','ccaron':'\u010D','Ccaron':'\u010C','ccedil':'\xE7','Ccedil':'\xC7','ccirc':'\u0109','Ccirc':'\u0108','Cconint':'\u2230','ccups':'\u2A4C','ccupssm':'\u2A50','cdot':'\u010B','Cdot':'\u010A','cedil':'\xB8','Cedilla':'\xB8','cemptyv':'\u29B2','cent':'\xA2','centerdot':'\xB7','CenterDot':'\xB7','cfr':'\uD835\uDD20','Cfr':'\u212D','chcy':'\u0447','CHcy':'\u0427','check':'\u2713','checkmark':'\u2713','chi':'\u03C7','Chi':'\u03A7','cir':'\u25CB','circ':'\u02C6','circeq':'\u2257','circlearrowleft':'\u21BA','circlearrowright':'\u21BB','circledast':'\u229B','circledcirc':'\u229A','circleddash':'\u229D','CircleDot':'\u2299','circledR':'\xAE','circledS':'\u24C8','CircleMinus':'\u2296','CirclePlus':'\u2295','CircleTimes':'\u2297','cire':'\u2257','cirE':'\u29C3','cirfnint':'\u2A10','cirmid':'\u2AEF','cirscir':'\u29C2','ClockwiseContourIntegral':'\u2232','CloseCurlyDoubleQuote':'\u201D','CloseCurlyQuote':'\u2019','clubs':'\u2663','clubsuit':'\u2663','colon':':','Colon':'\u2237','colone':'\u2254','Colone':'\u2A74','coloneq':'\u2254','comma':',','commat':'@','comp':'\u2201','compfn':'\u2218','complement':'\u2201','complexes':'\u2102','cong':'\u2245','congdot':'\u2A6D','Congruent':'\u2261','conint':'\u222E','Conint':'\u222F','ContourIntegral':'\u222E','copf':'\uD835\uDD54','Copf':'\u2102','coprod':'\u2210','Coproduct':'\u2210','copy':'\xA9','COPY':'\xA9','copysr':'\u2117','CounterClockwiseContourIntegral':'\u2233','crarr':'\u21B5','cross':'\u2717','Cross':'\u2A2F','cscr':'\uD835\uDCB8','Cscr':'\uD835\uDC9E','csub':'\u2ACF','csube':'\u2AD1','csup':'\u2AD0','csupe':'\u2AD2','ctdot':'\u22EF','cudarrl':'\u2938','cudarrr':'\u2935','cuepr':'\u22DE','cuesc':'\u22DF','cularr':'\u21B6','cularrp':'\u293D','cup':'\u222A','Cup':'\u22D3','cupbrcap':'\u2A48','cupcap':'\u2A46','CupCap':'\u224D','cupcup':'\u2A4A','cupdot':'\u228D','cupor':'\u2A45','cups':'\u222A\uFE00','curarr':'\u21B7','curarrm':'\u293C','curlyeqprec':'\u22DE','curlyeqsucc':'\u22DF','curlyvee':'\u22CE','curlywedge':'\u22CF','curren':'\xA4','curvearrowleft':'\u21B6','curvearrowright':'\u21B7','cuvee':'\u22CE','cuwed':'\u22CF','cwconint':'\u2232','cwint':'\u2231','cylcty':'\u232D','dagger':'\u2020','Dagger':'\u2021','daleth':'\u2138','darr':'\u2193','dArr':'\u21D3','Darr':'\u21A1','dash':'\u2010','dashv':'\u22A3','Dashv':'\u2AE4','dbkarow':'\u290F','dblac':'\u02DD','dcaron':'\u010F','Dcaron':'\u010E','dcy':'\u0434','Dcy':'\u0414','dd':'\u2146','DD':'\u2145','ddagger':'\u2021','ddarr':'\u21CA','DDotrahd':'\u2911','ddotseq':'\u2A77','deg':'\xB0','Del':'\u2207','delta':'\u03B4','Delta':'\u0394','demptyv':'\u29B1','dfisht':'\u297F','dfr':'\uD835\uDD21','Dfr':'\uD835\uDD07','dHar':'\u2965','dharl':'\u21C3','dharr':'\u21C2','DiacriticalAcute':'\xB4','DiacriticalDot':'\u02D9','DiacriticalDoubleAcute':'\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\u02DC','diam':'\u22C4','diamond':'\u22C4','Diamond':'\u22C4','diamondsuit':'\u2666','diams':'\u2666','die':'\xA8','DifferentialD':'\u2146','digamma':'\u03DD','disin':'\u22F2','div':'\xF7','divide':'\xF7','divideontimes':'\u22C7','divonx':'\u22C7','djcy':'\u0452','DJcy':'\u0402','dlcorn':'\u231E','dlcrop':'\u230D','dollar':'$','dopf':'\uD835\uDD55','Dopf':'\uD835\uDD3B','dot':'\u02D9','Dot':'\xA8','DotDot':'\u20DC','doteq':'\u2250','doteqdot':'\u2251','DotEqual':'\u2250','dotminus':'\u2238','dotplus':'\u2214','dotsquare':'\u22A1','doublebarwedge':'\u2306','DoubleContourIntegral':'\u222F','DoubleDot':'\xA8','DoubleDownArrow':'\u21D3','DoubleLeftArrow':'\u21D0','DoubleLeftRightArrow':'\u21D4','DoubleLeftTee':'\u2AE4','DoubleLongLeftArrow':'\u27F8','DoubleLongLeftRightArrow':'\u27FA','DoubleLongRightArrow':'\u27F9','DoubleRightArrow':'\u21D2','DoubleRightTee':'\u22A8','DoubleUpArrow':'\u21D1','DoubleUpDownArrow':'\u21D5','DoubleVerticalBar':'\u2225','downarrow':'\u2193','Downarrow':'\u21D3','DownArrow':'\u2193','DownArrowBar':'\u2913','DownArrowUpArrow':'\u21F5','DownBreve':'\u0311','downdownarrows':'\u21CA','downharpoonleft':'\u21C3','downharpoonright':'\u21C2','DownLeftRightVector':'\u2950','DownLeftTeeVector':'\u295E','DownLeftVector':'\u21BD','DownLeftVectorBar':'\u2956','DownRightTeeVector':'\u295F','DownRightVector':'\u21C1','DownRightVectorBar':'\u2957','DownTee':'\u22A4','DownTeeArrow':'\u21A7','drbkarow':'\u2910','drcorn':'\u231F','drcrop':'\u230C','dscr':'\uD835\uDCB9','Dscr':'\uD835\uDC9F','dscy':'\u0455','DScy':'\u0405','dsol':'\u29F6','dstrok':'\u0111','Dstrok':'\u0110','dtdot':'\u22F1','dtri':'\u25BF','dtrif':'\u25BE','duarr':'\u21F5','duhar':'\u296F','dwangle':'\u29A6','dzcy':'\u045F','DZcy':'\u040F','dzigrarr':'\u27FF','eacute':'\xE9','Eacute':'\xC9','easter':'\u2A6E','ecaron':'\u011B','Ecaron':'\u011A','ecir':'\u2256','ecirc':'\xEA','Ecirc':'\xCA','ecolon':'\u2255','ecy':'\u044D','Ecy':'\u042D','eDDot':'\u2A77','edot':'\u0117','eDot':'\u2251','Edot':'\u0116','ee':'\u2147','efDot':'\u2252','efr':'\uD835\uDD22','Efr':'\uD835\uDD08','eg':'\u2A9A','egrave':'\xE8','Egrave':'\xC8','egs':'\u2A96','egsdot':'\u2A98','el':'\u2A99','Element':'\u2208','elinters':'\u23E7','ell':'\u2113','els':'\u2A95','elsdot':'\u2A97','emacr':'\u0113','Emacr':'\u0112','empty':'\u2205','emptyset':'\u2205','EmptySmallSquare':'\u25FB','emptyv':'\u2205','EmptyVerySmallSquare':'\u25AB','emsp':'\u2003','emsp13':'\u2004','emsp14':'\u2005','eng':'\u014B','ENG':'\u014A','ensp':'\u2002','eogon':'\u0119','Eogon':'\u0118','eopf':'\uD835\uDD56','Eopf':'\uD835\uDD3C','epar':'\u22D5','eparsl':'\u29E3','eplus':'\u2A71','epsi':'\u03B5','epsilon':'\u03B5','Epsilon':'\u0395','epsiv':'\u03F5','eqcirc':'\u2256','eqcolon':'\u2255','eqsim':'\u2242','eqslantgtr':'\u2A96','eqslantless':'\u2A95','Equal':'\u2A75','equals':'=','EqualTilde':'\u2242','equest':'\u225F','Equilibrium':'\u21CC','equiv':'\u2261','equivDD':'\u2A78','eqvparsl':'\u29E5','erarr':'\u2971','erDot':'\u2253','escr':'\u212F','Escr':'\u2130','esdot':'\u2250','esim':'\u2242','Esim':'\u2A73','eta':'\u03B7','Eta':'\u0397','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','euro':'\u20AC','excl':'!','exist':'\u2203','Exists':'\u2203','expectation':'\u2130','exponentiale':'\u2147','ExponentialE':'\u2147','fallingdotseq':'\u2252','fcy':'\u0444','Fcy':'\u0424','female':'\u2640','ffilig':'\uFB03','fflig':'\uFB00','ffllig':'\uFB04','ffr':'\uD835\uDD23','Ffr':'\uD835\uDD09','filig':'\uFB01','FilledSmallSquare':'\u25FC','FilledVerySmallSquare':'\u25AA','fjlig':'fj','flat':'\u266D','fllig':'\uFB02','fltns':'\u25B1','fnof':'\u0192','fopf':'\uD835\uDD57','Fopf':'\uD835\uDD3D','forall':'\u2200','ForAll':'\u2200','fork':'\u22D4','forkv':'\u2AD9','Fouriertrf':'\u2131','fpartint':'\u2A0D','frac12':'\xBD','frac13':'\u2153','frac14':'\xBC','frac15':'\u2155','frac16':'\u2159','frac18':'\u215B','frac23':'\u2154','frac25':'\u2156','frac34':'\xBE','frac35':'\u2157','frac38':'\u215C','frac45':'\u2158','frac56':'\u215A','frac58':'\u215D','frac78':'\u215E','frasl':'\u2044','frown':'\u2322','fscr':'\uD835\uDCBB','Fscr':'\u2131','gacute':'\u01F5','gamma':'\u03B3','Gamma':'\u0393','gammad':'\u03DD','Gammad':'\u03DC','gap':'\u2A86','gbreve':'\u011F','Gbreve':'\u011E','Gcedil':'\u0122','gcirc':'\u011D','Gcirc':'\u011C','gcy':'\u0433','Gcy':'\u0413','gdot':'\u0121','Gdot':'\u0120','ge':'\u2265','gE':'\u2267','gel':'\u22DB','gEl':'\u2A8C','geq':'\u2265','geqq':'\u2267','geqslant':'\u2A7E','ges':'\u2A7E','gescc':'\u2AA9','gesdot':'\u2A80','gesdoto':'\u2A82','gesdotol':'\u2A84','gesl':'\u22DB\uFE00','gesles':'\u2A94','gfr':'\uD835\uDD24','Gfr':'\uD835\uDD0A','gg':'\u226B','Gg':'\u22D9','ggg':'\u22D9','gimel':'\u2137','gjcy':'\u0453','GJcy':'\u0403','gl':'\u2277','gla':'\u2AA5','glE':'\u2A92','glj':'\u2AA4','gnap':'\u2A8A','gnapprox':'\u2A8A','gne':'\u2A88','gnE':'\u2269','gneq':'\u2A88','gneqq':'\u2269','gnsim':'\u22E7','gopf':'\uD835\uDD58','Gopf':'\uD835\uDD3E','grave':'`','GreaterEqual':'\u2265','GreaterEqualLess':'\u22DB','GreaterFullEqual':'\u2267','GreaterGreater':'\u2AA2','GreaterLess':'\u2277','GreaterSlantEqual':'\u2A7E','GreaterTilde':'\u2273','gscr':'\u210A','Gscr':'\uD835\uDCA2','gsim':'\u2273','gsime':'\u2A8E','gsiml':'\u2A90','gt':'>','Gt':'\u226B','GT':'>','gtcc':'\u2AA7','gtcir':'\u2A7A','gtdot':'\u22D7','gtlPar':'\u2995','gtquest':'\u2A7C','gtrapprox':'\u2A86','gtrarr':'\u2978','gtrdot':'\u22D7','gtreqless':'\u22DB','gtreqqless':'\u2A8C','gtrless':'\u2277','gtrsim':'\u2273','gvertneqq':'\u2269\uFE00','gvnE':'\u2269\uFE00','Hacek':'\u02C7','hairsp':'\u200A','half':'\xBD','hamilt':'\u210B','hardcy':'\u044A','HARDcy':'\u042A','harr':'\u2194','hArr':'\u21D4','harrcir':'\u2948','harrw':'\u21AD','Hat':'^','hbar':'\u210F','hcirc':'\u0125','Hcirc':'\u0124','hearts':'\u2665','heartsuit':'\u2665','hellip':'\u2026','hercon':'\u22B9','hfr':'\uD835\uDD25','Hfr':'\u210C','HilbertSpace':'\u210B','hksearow':'\u2925','hkswarow':'\u2926','hoarr':'\u21FF','homtht':'\u223B','hookleftarrow':'\u21A9','hookrightarrow':'\u21AA','hopf':'\uD835\uDD59','Hopf':'\u210D','horbar':'\u2015','HorizontalLine':'\u2500','hscr':'\uD835\uDCBD','Hscr':'\u210B','hslash':'\u210F','hstrok':'\u0127','Hstrok':'\u0126','HumpDownHump':'\u224E','HumpEqual':'\u224F','hybull':'\u2043','hyphen':'\u2010','iacute':'\xED','Iacute':'\xCD','ic':'\u2063','icirc':'\xEE','Icirc':'\xCE','icy':'\u0438','Icy':'\u0418','Idot':'\u0130','iecy':'\u0435','IEcy':'\u0415','iexcl':'\xA1','iff':'\u21D4','ifr':'\uD835\uDD26','Ifr':'\u2111','igrave':'\xEC','Igrave':'\xCC','ii':'\u2148','iiiint':'\u2A0C','iiint':'\u222D','iinfin':'\u29DC','iiota':'\u2129','ijlig':'\u0133','IJlig':'\u0132','Im':'\u2111','imacr':'\u012B','Imacr':'\u012A','image':'\u2111','ImaginaryI':'\u2148','imagline':'\u2110','imagpart':'\u2111','imath':'\u0131','imof':'\u22B7','imped':'\u01B5','Implies':'\u21D2','in':'\u2208','incare':'\u2105','infin':'\u221E','infintie':'\u29DD','inodot':'\u0131','int':'\u222B','Int':'\u222C','intcal':'\u22BA','integers':'\u2124','Integral':'\u222B','intercal':'\u22BA','Intersection':'\u22C2','intlarhk':'\u2A17','intprod':'\u2A3C','InvisibleComma':'\u2063','InvisibleTimes':'\u2062','iocy':'\u0451','IOcy':'\u0401','iogon':'\u012F','Iogon':'\u012E','iopf':'\uD835\uDD5A','Iopf':'\uD835\uDD40','iota':'\u03B9','Iota':'\u0399','iprod':'\u2A3C','iquest':'\xBF','iscr':'\uD835\uDCBE','Iscr':'\u2110','isin':'\u2208','isindot':'\u22F5','isinE':'\u22F9','isins':'\u22F4','isinsv':'\u22F3','isinv':'\u2208','it':'\u2062','itilde':'\u0129','Itilde':'\u0128','iukcy':'\u0456','Iukcy':'\u0406','iuml':'\xEF','Iuml':'\xCF','jcirc':'\u0135','Jcirc':'\u0134','jcy':'\u0439','Jcy':'\u0419','jfr':'\uD835\uDD27','Jfr':'\uD835\uDD0D','jmath':'\u0237','jopf':'\uD835\uDD5B','Jopf':'\uD835\uDD41','jscr':'\uD835\uDCBF','Jscr':'\uD835\uDCA5','jsercy':'\u0458','Jsercy':'\u0408','jukcy':'\u0454','Jukcy':'\u0404','kappa':'\u03BA','Kappa':'\u039A','kappav':'\u03F0','kcedil':'\u0137','Kcedil':'\u0136','kcy':'\u043A','Kcy':'\u041A','kfr':'\uD835\uDD28','Kfr':'\uD835\uDD0E','kgreen':'\u0138','khcy':'\u0445','KHcy':'\u0425','kjcy':'\u045C','KJcy':'\u040C','kopf':'\uD835\uDD5C','Kopf':'\uD835\uDD42','kscr':'\uD835\uDCC0','Kscr':'\uD835\uDCA6','lAarr':'\u21DA','lacute':'\u013A','Lacute':'\u0139','laemptyv':'\u29B4','lagran':'\u2112','lambda':'\u03BB','Lambda':'\u039B','lang':'\u27E8','Lang':'\u27EA','langd':'\u2991','langle':'\u27E8','lap':'\u2A85','Laplacetrf':'\u2112','laquo':'\xAB','larr':'\u2190','lArr':'\u21D0','Larr':'\u219E','larrb':'\u21E4','larrbfs':'\u291F','larrfs':'\u291D','larrhk':'\u21A9','larrlp':'\u21AB','larrpl':'\u2939','larrsim':'\u2973','larrtl':'\u21A2','lat':'\u2AAB','latail':'\u2919','lAtail':'\u291B','late':'\u2AAD','lates':'\u2AAD\uFE00','lbarr':'\u290C','lBarr':'\u290E','lbbrk':'\u2772','lbrace':'{','lbrack':'[','lbrke':'\u298B','lbrksld':'\u298F','lbrkslu':'\u298D','lcaron':'\u013E','Lcaron':'\u013D','lcedil':'\u013C','Lcedil':'\u013B','lceil':'\u2308','lcub':'{','lcy':'\u043B','Lcy':'\u041B','ldca':'\u2936','ldquo':'\u201C','ldquor':'\u201E','ldrdhar':'\u2967','ldrushar':'\u294B','ldsh':'\u21B2','le':'\u2264','lE':'\u2266','LeftAngleBracket':'\u27E8','leftarrow':'\u2190','Leftarrow':'\u21D0','LeftArrow':'\u2190','LeftArrowBar':'\u21E4','LeftArrowRightArrow':'\u21C6','leftarrowtail':'\u21A2','LeftCeiling':'\u2308','LeftDoubleBracket':'\u27E6','LeftDownTeeVector':'\u2961','LeftDownVector':'\u21C3','LeftDownVectorBar':'\u2959','LeftFloor':'\u230A','leftharpoondown':'\u21BD','leftharpoonup':'\u21BC','leftleftarrows':'\u21C7','leftrightarrow':'\u2194','Leftrightarrow':'\u21D4','LeftRightArrow':'\u2194','leftrightarrows':'\u21C6','leftrightharpoons':'\u21CB','leftrightsquigarrow':'\u21AD','LeftRightVector':'\u294E','LeftTee':'\u22A3','LeftTeeArrow':'\u21A4','LeftTeeVector':'\u295A','leftthreetimes':'\u22CB','LeftTriangle':'\u22B2','LeftTriangleBar':'\u29CF','LeftTriangleEqual':'\u22B4','LeftUpDownVector':'\u2951','LeftUpTeeVector':'\u2960','LeftUpVector':'\u21BF','LeftUpVectorBar':'\u2958','LeftVector':'\u21BC','LeftVectorBar':'\u2952','leg':'\u22DA','lEg':'\u2A8B','leq':'\u2264','leqq':'\u2266','leqslant':'\u2A7D','les':'\u2A7D','lescc':'\u2AA8','lesdot':'\u2A7F','lesdoto':'\u2A81','lesdotor':'\u2A83','lesg':'\u22DA\uFE00','lesges':'\u2A93','lessapprox':'\u2A85','lessdot':'\u22D6','lesseqgtr':'\u22DA','lesseqqgtr':'\u2A8B','LessEqualGreater':'\u22DA','LessFullEqual':'\u2266','LessGreater':'\u2276','lessgtr':'\u2276','LessLess':'\u2AA1','lesssim':'\u2272','LessSlantEqual':'\u2A7D','LessTilde':'\u2272','lfisht':'\u297C','lfloor':'\u230A','lfr':'\uD835\uDD29','Lfr':'\uD835\uDD0F','lg':'\u2276','lgE':'\u2A91','lHar':'\u2962','lhard':'\u21BD','lharu':'\u21BC','lharul':'\u296A','lhblk':'\u2584','ljcy':'\u0459','LJcy':'\u0409','ll':'\u226A','Ll':'\u22D8','llarr':'\u21C7','llcorner':'\u231E','Lleftarrow':'\u21DA','llhard':'\u296B','lltri':'\u25FA','lmidot':'\u0140','Lmidot':'\u013F','lmoust':'\u23B0','lmoustache':'\u23B0','lnap':'\u2A89','lnapprox':'\u2A89','lne':'\u2A87','lnE':'\u2268','lneq':'\u2A87','lneqq':'\u2268','lnsim':'\u22E6','loang':'\u27EC','loarr':'\u21FD','lobrk':'\u27E6','longleftarrow':'\u27F5','Longleftarrow':'\u27F8','LongLeftArrow':'\u27F5','longleftrightarrow':'\u27F7','Longleftrightarrow':'\u27FA','LongLeftRightArrow':'\u27F7','longmapsto':'\u27FC','longrightarrow':'\u27F6','Longrightarrow':'\u27F9','LongRightArrow':'\u27F6','looparrowleft':'\u21AB','looparrowright':'\u21AC','lopar':'\u2985','lopf':'\uD835\uDD5D','Lopf':'\uD835\uDD43','loplus':'\u2A2D','lotimes':'\u2A34','lowast':'\u2217','lowbar':'_','LowerLeftArrow':'\u2199','LowerRightArrow':'\u2198','loz':'\u25CA','lozenge':'\u25CA','lozf':'\u29EB','lpar':'(','lparlt':'\u2993','lrarr':'\u21C6','lrcorner':'\u231F','lrhar':'\u21CB','lrhard':'\u296D','lrm':'\u200E','lrtri':'\u22BF','lsaquo':'\u2039','lscr':'\uD835\uDCC1','Lscr':'\u2112','lsh':'\u21B0','Lsh':'\u21B0','lsim':'\u2272','lsime':'\u2A8D','lsimg':'\u2A8F','lsqb':'[','lsquo':'\u2018','lsquor':'\u201A','lstrok':'\u0142','Lstrok':'\u0141','lt':'<','Lt':'\u226A','LT':'<','ltcc':'\u2AA6','ltcir':'\u2A79','ltdot':'\u22D6','lthree':'\u22CB','ltimes':'\u22C9','ltlarr':'\u2976','ltquest':'\u2A7B','ltri':'\u25C3','ltrie':'\u22B4','ltrif':'\u25C2','ltrPar':'\u2996','lurdshar':'\u294A','luruhar':'\u2966','lvertneqq':'\u2268\uFE00','lvnE':'\u2268\uFE00','macr':'\xAF','male':'\u2642','malt':'\u2720','maltese':'\u2720','map':'\u21A6','Map':'\u2905','mapsto':'\u21A6','mapstodown':'\u21A7','mapstoleft':'\u21A4','mapstoup':'\u21A5','marker':'\u25AE','mcomma':'\u2A29','mcy':'\u043C','Mcy':'\u041C','mdash':'\u2014','mDDot':'\u223A','measuredangle':'\u2221','MediumSpace':'\u205F','Mellintrf':'\u2133','mfr':'\uD835\uDD2A','Mfr':'\uD835\uDD10','mho':'\u2127','micro':'\xB5','mid':'\u2223','midast':'*','midcir':'\u2AF0','middot':'\xB7','minus':'\u2212','minusb':'\u229F','minusd':'\u2238','minusdu':'\u2A2A','MinusPlus':'\u2213','mlcp':'\u2ADB','mldr':'\u2026','mnplus':'\u2213','models':'\u22A7','mopf':'\uD835\uDD5E','Mopf':'\uD835\uDD44','mp':'\u2213','mscr':'\uD835\uDCC2','Mscr':'\u2133','mstpos':'\u223E','mu':'\u03BC','Mu':'\u039C','multimap':'\u22B8','mumap':'\u22B8','nabla':'\u2207','nacute':'\u0144','Nacute':'\u0143','nang':'\u2220\u20D2','nap':'\u2249','napE':'\u2A70\u0338','napid':'\u224B\u0338','napos':'\u0149','napprox':'\u2249','natur':'\u266E','natural':'\u266E','naturals':'\u2115','nbsp':'\xA0','nbump':'\u224E\u0338','nbumpe':'\u224F\u0338','ncap':'\u2A43','ncaron':'\u0148','Ncaron':'\u0147','ncedil':'\u0146','Ncedil':'\u0145','ncong':'\u2247','ncongdot':'\u2A6D\u0338','ncup':'\u2A42','ncy':'\u043D','Ncy':'\u041D','ndash':'\u2013','ne':'\u2260','nearhk':'\u2924','nearr':'\u2197','neArr':'\u21D7','nearrow':'\u2197','nedot':'\u2250\u0338','NegativeMediumSpace':'\u200B','NegativeThickSpace':'\u200B','NegativeThinSpace':'\u200B','NegativeVeryThinSpace':'\u200B','nequiv':'\u2262','nesear':'\u2928','nesim':'\u2242\u0338','NestedGreaterGreater':'\u226B','NestedLessLess':'\u226A','NewLine':'\n','nexist':'\u2204','nexists':'\u2204','nfr':'\uD835\uDD2B','Nfr':'\uD835\uDD11','nge':'\u2271','ngE':'\u2267\u0338','ngeq':'\u2271','ngeqq':'\u2267\u0338','ngeqslant':'\u2A7E\u0338','nges':'\u2A7E\u0338','nGg':'\u22D9\u0338','ngsim':'\u2275','ngt':'\u226F','nGt':'\u226B\u20D2','ngtr':'\u226F','nGtv':'\u226B\u0338','nharr':'\u21AE','nhArr':'\u21CE','nhpar':'\u2AF2','ni':'\u220B','nis':'\u22FC','nisd':'\u22FA','niv':'\u220B','njcy':'\u045A','NJcy':'\u040A','nlarr':'\u219A','nlArr':'\u21CD','nldr':'\u2025','nle':'\u2270','nlE':'\u2266\u0338','nleftarrow':'\u219A','nLeftarrow':'\u21CD','nleftrightarrow':'\u21AE','nLeftrightarrow':'\u21CE','nleq':'\u2270','nleqq':'\u2266\u0338','nleqslant':'\u2A7D\u0338','nles':'\u2A7D\u0338','nless':'\u226E','nLl':'\u22D8\u0338','nlsim':'\u2274','nlt':'\u226E','nLt':'\u226A\u20D2','nltri':'\u22EA','nltrie':'\u22EC','nLtv':'\u226A\u0338','nmid':'\u2224','NoBreak':'\u2060','NonBreakingSpace':'\xA0','nopf':'\uD835\uDD5F','Nopf':'\u2115','not':'\xAC','Not':'\u2AEC','NotCongruent':'\u2262','NotCupCap':'\u226D','NotDoubleVerticalBar':'\u2226','NotElement':'\u2209','NotEqual':'\u2260','NotEqualTilde':'\u2242\u0338','NotExists':'\u2204','NotGreater':'\u226F','NotGreaterEqual':'\u2271','NotGreaterFullEqual':'\u2267\u0338','NotGreaterGreater':'\u226B\u0338','NotGreaterLess':'\u2279','NotGreaterSlantEqual':'\u2A7E\u0338','NotGreaterTilde':'\u2275','NotHumpDownHump':'\u224E\u0338','NotHumpEqual':'\u224F\u0338','notin':'\u2209','notindot':'\u22F5\u0338','notinE':'\u22F9\u0338','notinva':'\u2209','notinvb':'\u22F7','notinvc':'\u22F6','NotLeftTriangle':'\u22EA','NotLeftTriangleBar':'\u29CF\u0338','NotLeftTriangleEqual':'\u22EC','NotLess':'\u226E','NotLessEqual':'\u2270','NotLessGreater':'\u2278','NotLessLess':'\u226A\u0338','NotLessSlantEqual':'\u2A7D\u0338','NotLessTilde':'\u2274','NotNestedGreaterGreater':'\u2AA2\u0338','NotNestedLessLess':'\u2AA1\u0338','notni':'\u220C','notniva':'\u220C','notnivb':'\u22FE','notnivc':'\u22FD','NotPrecedes':'\u2280','NotPrecedesEqual':'\u2AAF\u0338','NotPrecedesSlantEqual':'\u22E0','NotReverseElement':'\u220C','NotRightTriangle':'\u22EB','NotRightTriangleBar':'\u29D0\u0338','NotRightTriangleEqual':'\u22ED','NotSquareSubset':'\u228F\u0338','NotSquareSubsetEqual':'\u22E2','NotSquareSuperset':'\u2290\u0338','NotSquareSupersetEqual':'\u22E3','NotSubset':'\u2282\u20D2','NotSubsetEqual':'\u2288','NotSucceeds':'\u2281','NotSucceedsEqual':'\u2AB0\u0338','NotSucceedsSlantEqual':'\u22E1','NotSucceedsTilde':'\u227F\u0338','NotSuperset':'\u2283\u20D2','NotSupersetEqual':'\u2289','NotTilde':'\u2241','NotTildeEqual':'\u2244','NotTildeFullEqual':'\u2247','NotTildeTilde':'\u2249','NotVerticalBar':'\u2224','npar':'\u2226','nparallel':'\u2226','nparsl':'\u2AFD\u20E5','npart':'\u2202\u0338','npolint':'\u2A14','npr':'\u2280','nprcue':'\u22E0','npre':'\u2AAF\u0338','nprec':'\u2280','npreceq':'\u2AAF\u0338','nrarr':'\u219B','nrArr':'\u21CF','nrarrc':'\u2933\u0338','nrarrw':'\u219D\u0338','nrightarrow':'\u219B','nRightarrow':'\u21CF','nrtri':'\u22EB','nrtrie':'\u22ED','nsc':'\u2281','nsccue':'\u22E1','nsce':'\u2AB0\u0338','nscr':'\uD835\uDCC3','Nscr':'\uD835\uDCA9','nshortmid':'\u2224','nshortparallel':'\u2226','nsim':'\u2241','nsime':'\u2244','nsimeq':'\u2244','nsmid':'\u2224','nspar':'\u2226','nsqsube':'\u22E2','nsqsupe':'\u22E3','nsub':'\u2284','nsube':'\u2288','nsubE':'\u2AC5\u0338','nsubset':'\u2282\u20D2','nsubseteq':'\u2288','nsubseteqq':'\u2AC5\u0338','nsucc':'\u2281','nsucceq':'\u2AB0\u0338','nsup':'\u2285','nsupe':'\u2289','nsupE':'\u2AC6\u0338','nsupset':'\u2283\u20D2','nsupseteq':'\u2289','nsupseteqq':'\u2AC6\u0338','ntgl':'\u2279','ntilde':'\xF1','Ntilde':'\xD1','ntlg':'\u2278','ntriangleleft':'\u22EA','ntrianglelefteq':'\u22EC','ntriangleright':'\u22EB','ntrianglerighteq':'\u22ED','nu':'\u03BD','Nu':'\u039D','num':'#','numero':'\u2116','numsp':'\u2007','nvap':'\u224D\u20D2','nvdash':'\u22AC','nvDash':'\u22AD','nVdash':'\u22AE','nVDash':'\u22AF','nvge':'\u2265\u20D2','nvgt':'>\u20D2','nvHarr':'\u2904','nvinfin':'\u29DE','nvlArr':'\u2902','nvle':'\u2264\u20D2','nvlt':'<\u20D2','nvltrie':'\u22B4\u20D2','nvrArr':'\u2903','nvrtrie':'\u22B5\u20D2','nvsim':'\u223C\u20D2','nwarhk':'\u2923','nwarr':'\u2196','nwArr':'\u21D6','nwarrow':'\u2196','nwnear':'\u2927','oacute':'\xF3','Oacute':'\xD3','oast':'\u229B','ocir':'\u229A','ocirc':'\xF4','Ocirc':'\xD4','ocy':'\u043E','Ocy':'\u041E','odash':'\u229D','odblac':'\u0151','Odblac':'\u0150','odiv':'\u2A38','odot':'\u2299','odsold':'\u29BC','oelig':'\u0153','OElig':'\u0152','ofcir':'\u29BF','ofr':'\uD835\uDD2C','Ofr':'\uD835\uDD12','ogon':'\u02DB','ograve':'\xF2','Ograve':'\xD2','ogt':'\u29C1','ohbar':'\u29B5','ohm':'\u03A9','oint':'\u222E','olarr':'\u21BA','olcir':'\u29BE','olcross':'\u29BB','oline':'\u203E','olt':'\u29C0','omacr':'\u014D','Omacr':'\u014C','omega':'\u03C9','Omega':'\u03A9','omicron':'\u03BF','Omicron':'\u039F','omid':'\u29B6','ominus':'\u2296','oopf':'\uD835\uDD60','Oopf':'\uD835\uDD46','opar':'\u29B7','OpenCurlyDoubleQuote':'\u201C','OpenCurlyQuote':'\u2018','operp':'\u29B9','oplus':'\u2295','or':'\u2228','Or':'\u2A54','orarr':'\u21BB','ord':'\u2A5D','order':'\u2134','orderof':'\u2134','ordf':'\xAA','ordm':'\xBA','origof':'\u22B6','oror':'\u2A56','orslope':'\u2A57','orv':'\u2A5B','oS':'\u24C8','oscr':'\u2134','Oscr':'\uD835\uDCAA','oslash':'\xF8','Oslash':'\xD8','osol':'\u2298','otilde':'\xF5','Otilde':'\xD5','otimes':'\u2297','Otimes':'\u2A37','otimesas':'\u2A36','ouml':'\xF6','Ouml':'\xD6','ovbar':'\u233D','OverBar':'\u203E','OverBrace':'\u23DE','OverBracket':'\u23B4','OverParenthesis':'\u23DC','par':'\u2225','para':'\xB6','parallel':'\u2225','parsim':'\u2AF3','parsl':'\u2AFD','part':'\u2202','PartialD':'\u2202','pcy':'\u043F','Pcy':'\u041F','percnt':'%','period':'.','permil':'\u2030','perp':'\u22A5','pertenk':'\u2031','pfr':'\uD835\uDD2D','Pfr':'\uD835\uDD13','phi':'\u03C6','Phi':'\u03A6','phiv':'\u03D5','phmmat':'\u2133','phone':'\u260E','pi':'\u03C0','Pi':'\u03A0','pitchfork':'\u22D4','piv':'\u03D6','planck':'\u210F','planckh':'\u210E','plankv':'\u210F','plus':'+','plusacir':'\u2A23','plusb':'\u229E','pluscir':'\u2A22','plusdo':'\u2214','plusdu':'\u2A25','pluse':'\u2A72','PlusMinus':'\xB1','plusmn':'\xB1','plussim':'\u2A26','plustwo':'\u2A27','pm':'\xB1','Poincareplane':'\u210C','pointint':'\u2A15','popf':'\uD835\uDD61','Popf':'\u2119','pound':'\xA3','pr':'\u227A','Pr':'\u2ABB','prap':'\u2AB7','prcue':'\u227C','pre':'\u2AAF','prE':'\u2AB3','prec':'\u227A','precapprox':'\u2AB7','preccurlyeq':'\u227C','Precedes':'\u227A','PrecedesEqual':'\u2AAF','PrecedesSlantEqual':'\u227C','PrecedesTilde':'\u227E','preceq':'\u2AAF','precnapprox':'\u2AB9','precneqq':'\u2AB5','precnsim':'\u22E8','precsim':'\u227E','prime':'\u2032','Prime':'\u2033','primes':'\u2119','prnap':'\u2AB9','prnE':'\u2AB5','prnsim':'\u22E8','prod':'\u220F','Product':'\u220F','profalar':'\u232E','profline':'\u2312','profsurf':'\u2313','prop':'\u221D','Proportion':'\u2237','Proportional':'\u221D','propto':'\u221D','prsim':'\u227E','prurel':'\u22B0','pscr':'\uD835\uDCC5','Pscr':'\uD835\uDCAB','psi':'\u03C8','Psi':'\u03A8','puncsp':'\u2008','qfr':'\uD835\uDD2E','Qfr':'\uD835\uDD14','qint':'\u2A0C','qopf':'\uD835\uDD62','Qopf':'\u211A','qprime':'\u2057','qscr':'\uD835\uDCC6','Qscr':'\uD835\uDCAC','quaternions':'\u210D','quatint':'\u2A16','quest':'?','questeq':'\u225F','quot':'"','QUOT':'"','rAarr':'\u21DB','race':'\u223D\u0331','racute':'\u0155','Racute':'\u0154','radic':'\u221A','raemptyv':'\u29B3','rang':'\u27E9','Rang':'\u27EB','rangd':'\u2992','range':'\u29A5','rangle':'\u27E9','raquo':'\xBB','rarr':'\u2192','rArr':'\u21D2','Rarr':'\u21A0','rarrap':'\u2975','rarrb':'\u21E5','rarrbfs':'\u2920','rarrc':'\u2933','rarrfs':'\u291E','rarrhk':'\u21AA','rarrlp':'\u21AC','rarrpl':'\u2945','rarrsim':'\u2974','rarrtl':'\u21A3','Rarrtl':'\u2916','rarrw':'\u219D','ratail':'\u291A','rAtail':'\u291C','ratio':'\u2236','rationals':'\u211A','rbarr':'\u290D','rBarr':'\u290F','RBarr':'\u2910','rbbrk':'\u2773','rbrace':'}','rbrack':']','rbrke':'\u298C','rbrksld':'\u298E','rbrkslu':'\u2990','rcaron':'\u0159','Rcaron':'\u0158','rcedil':'\u0157','Rcedil':'\u0156','rceil':'\u2309','rcub':'}','rcy':'\u0440','Rcy':'\u0420','rdca':'\u2937','rdldhar':'\u2969','rdquo':'\u201D','rdquor':'\u201D','rdsh':'\u21B3','Re':'\u211C','real':'\u211C','realine':'\u211B','realpart':'\u211C','reals':'\u211D','rect':'\u25AD','reg':'\xAE','REG':'\xAE','ReverseElement':'\u220B','ReverseEquilibrium':'\u21CB','ReverseUpEquilibrium':'\u296F','rfisht':'\u297D','rfloor':'\u230B','rfr':'\uD835\uDD2F','Rfr':'\u211C','rHar':'\u2964','rhard':'\u21C1','rharu':'\u21C0','rharul':'\u296C','rho':'\u03C1','Rho':'\u03A1','rhov':'\u03F1','RightAngleBracket':'\u27E9','rightarrow':'\u2192','Rightarrow':'\u21D2','RightArrow':'\u2192','RightArrowBar':'\u21E5','RightArrowLeftArrow':'\u21C4','rightarrowtail':'\u21A3','RightCeiling':'\u2309','RightDoubleBracket':'\u27E7','RightDownTeeVector':'\u295D','RightDownVector':'\u21C2','RightDownVectorBar':'\u2955','RightFloor':'\u230B','rightharpoondown':'\u21C1','rightharpoonup':'\u21C0','rightleftarrows':'\u21C4','rightleftharpoons':'\u21CC','rightrightarrows':'\u21C9','rightsquigarrow':'\u219D','RightTee':'\u22A2','RightTeeArrow':'\u21A6','RightTeeVector':'\u295B','rightthreetimes':'\u22CC','RightTriangle':'\u22B3','RightTriangleBar':'\u29D0','RightTriangleEqual':'\u22B5','RightUpDownVector':'\u294F','RightUpTeeVector':'\u295C','RightUpVector':'\u21BE','RightUpVectorBar':'\u2954','RightVector':'\u21C0','RightVectorBar':'\u2953','ring':'\u02DA','risingdotseq':'\u2253','rlarr':'\u21C4','rlhar':'\u21CC','rlm':'\u200F','rmoust':'\u23B1','rmoustache':'\u23B1','rnmid':'\u2AEE','roang':'\u27ED','roarr':'\u21FE','robrk':'\u27E7','ropar':'\u2986','ropf':'\uD835\uDD63','Ropf':'\u211D','roplus':'\u2A2E','rotimes':'\u2A35','RoundImplies':'\u2970','rpar':')','rpargt':'\u2994','rppolint':'\u2A12','rrarr':'\u21C9','Rrightarrow':'\u21DB','rsaquo':'\u203A','rscr':'\uD835\uDCC7','Rscr':'\u211B','rsh':'\u21B1','Rsh':'\u21B1','rsqb':']','rsquo':'\u2019','rsquor':'\u2019','rthree':'\u22CC','rtimes':'\u22CA','rtri':'\u25B9','rtrie':'\u22B5','rtrif':'\u25B8','rtriltri':'\u29CE','RuleDelayed':'\u29F4','ruluhar':'\u2968','rx':'\u211E','sacute':'\u015B','Sacute':'\u015A','sbquo':'\u201A','sc':'\u227B','Sc':'\u2ABC','scap':'\u2AB8','scaron':'\u0161','Scaron':'\u0160','sccue':'\u227D','sce':'\u2AB0','scE':'\u2AB4','scedil':'\u015F','Scedil':'\u015E','scirc':'\u015D','Scirc':'\u015C','scnap':'\u2ABA','scnE':'\u2AB6','scnsim':'\u22E9','scpolint':'\u2A13','scsim':'\u227F','scy':'\u0441','Scy':'\u0421','sdot':'\u22C5','sdotb':'\u22A1','sdote':'\u2A66','searhk':'\u2925','searr':'\u2198','seArr':'\u21D8','searrow':'\u2198','sect':'\xA7','semi':';','seswar':'\u2929','setminus':'\u2216','setmn':'\u2216','sext':'\u2736','sfr':'\uD835\uDD30','Sfr':'\uD835\uDD16','sfrown':'\u2322','sharp':'\u266F','shchcy':'\u0449','SHCHcy':'\u0429','shcy':'\u0448','SHcy':'\u0428','ShortDownArrow':'\u2193','ShortLeftArrow':'\u2190','shortmid':'\u2223','shortparallel':'\u2225','ShortRightArrow':'\u2192','ShortUpArrow':'\u2191','shy':'\xAD','sigma':'\u03C3','Sigma':'\u03A3','sigmaf':'\u03C2','sigmav':'\u03C2','sim':'\u223C','simdot':'\u2A6A','sime':'\u2243','simeq':'\u2243','simg':'\u2A9E','simgE':'\u2AA0','siml':'\u2A9D','simlE':'\u2A9F','simne':'\u2246','simplus':'\u2A24','simrarr':'\u2972','slarr':'\u2190','SmallCircle':'\u2218','smallsetminus':'\u2216','smashp':'\u2A33','smeparsl':'\u29E4','smid':'\u2223','smile':'\u2323','smt':'\u2AAA','smte':'\u2AAC','smtes':'\u2AAC\uFE00','softcy':'\u044C','SOFTcy':'\u042C','sol':'/','solb':'\u29C4','solbar':'\u233F','sopf':'\uD835\uDD64','Sopf':'\uD835\uDD4A','spades':'\u2660','spadesuit':'\u2660','spar':'\u2225','sqcap':'\u2293','sqcaps':'\u2293\uFE00','sqcup':'\u2294','sqcups':'\u2294\uFE00','Sqrt':'\u221A','sqsub':'\u228F','sqsube':'\u2291','sqsubset':'\u228F','sqsubseteq':'\u2291','sqsup':'\u2290','sqsupe':'\u2292','sqsupset':'\u2290','sqsupseteq':'\u2292','squ':'\u25A1','square':'\u25A1','Square':'\u25A1','SquareIntersection':'\u2293','SquareSubset':'\u228F','SquareSubsetEqual':'\u2291','SquareSuperset':'\u2290','SquareSupersetEqual':'\u2292','SquareUnion':'\u2294','squarf':'\u25AA','squf':'\u25AA','srarr':'\u2192','sscr':'\uD835\uDCC8','Sscr':'\uD835\uDCAE','ssetmn':'\u2216','ssmile':'\u2323','sstarf':'\u22C6','star':'\u2606','Star':'\u22C6','starf':'\u2605','straightepsilon':'\u03F5','straightphi':'\u03D5','strns':'\xAF','sub':'\u2282','Sub':'\u22D0','subdot':'\u2ABD','sube':'\u2286','subE':'\u2AC5','subedot':'\u2AC3','submult':'\u2AC1','subne':'\u228A','subnE':'\u2ACB','subplus':'\u2ABF','subrarr':'\u2979','subset':'\u2282','Subset':'\u22D0','subseteq':'\u2286','subseteqq':'\u2AC5','SubsetEqual':'\u2286','subsetneq':'\u228A','subsetneqq':'\u2ACB','subsim':'\u2AC7','subsub':'\u2AD5','subsup':'\u2AD3','succ':'\u227B','succapprox':'\u2AB8','succcurlyeq':'\u227D','Succeeds':'\u227B','SucceedsEqual':'\u2AB0','SucceedsSlantEqual':'\u227D','SucceedsTilde':'\u227F','succeq':'\u2AB0','succnapprox':'\u2ABA','succneqq':'\u2AB6','succnsim':'\u22E9','succsim':'\u227F','SuchThat':'\u220B','sum':'\u2211','Sum':'\u2211','sung':'\u266A','sup':'\u2283','Sup':'\u22D1','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','supdot':'\u2ABE','supdsub':'\u2AD8','supe':'\u2287','supE':'\u2AC6','supedot':'\u2AC4','Superset':'\u2283','SupersetEqual':'\u2287','suphsol':'\u27C9','suphsub':'\u2AD7','suplarr':'\u297B','supmult':'\u2AC2','supne':'\u228B','supnE':'\u2ACC','supplus':'\u2AC0','supset':'\u2283','Supset':'\u22D1','supseteq':'\u2287','supseteqq':'\u2AC6','supsetneq':'\u228B','supsetneqq':'\u2ACC','supsim':'\u2AC8','supsub':'\u2AD4','supsup':'\u2AD6','swarhk':'\u2926','swarr':'\u2199','swArr':'\u21D9','swarrow':'\u2199','swnwar':'\u292A','szlig':'\xDF','Tab':'\t','target':'\u2316','tau':'\u03C4','Tau':'\u03A4','tbrk':'\u23B4','tcaron':'\u0165','Tcaron':'\u0164','tcedil':'\u0163','Tcedil':'\u0162','tcy':'\u0442','Tcy':'\u0422','tdot':'\u20DB','telrec':'\u2315','tfr':'\uD835\uDD31','Tfr':'\uD835\uDD17','there4':'\u2234','therefore':'\u2234','Therefore':'\u2234','theta':'\u03B8','Theta':'\u0398','thetasym':'\u03D1','thetav':'\u03D1','thickapprox':'\u2248','thicksim':'\u223C','ThickSpace':'\u205F\u200A','thinsp':'\u2009','ThinSpace':'\u2009','thkap':'\u2248','thksim':'\u223C','thorn':'\xFE','THORN':'\xDE','tilde':'\u02DC','Tilde':'\u223C','TildeEqual':'\u2243','TildeFullEqual':'\u2245','TildeTilde':'\u2248','times':'\xD7','timesb':'\u22A0','timesbar':'\u2A31','timesd':'\u2A30','tint':'\u222D','toea':'\u2928','top':'\u22A4','topbot':'\u2336','topcir':'\u2AF1','topf':'\uD835\uDD65','Topf':'\uD835\uDD4B','topfork':'\u2ADA','tosa':'\u2929','tprime':'\u2034','trade':'\u2122','TRADE':'\u2122','triangle':'\u25B5','triangledown':'\u25BF','triangleleft':'\u25C3','trianglelefteq':'\u22B4','triangleq':'\u225C','triangleright':'\u25B9','trianglerighteq':'\u22B5','tridot':'\u25EC','trie':'\u225C','triminus':'\u2A3A','TripleDot':'\u20DB','triplus':'\u2A39','trisb':'\u29CD','tritime':'\u2A3B','trpezium':'\u23E2','tscr':'\uD835\uDCC9','Tscr':'\uD835\uDCAF','tscy':'\u0446','TScy':'\u0426','tshcy':'\u045B','TSHcy':'\u040B','tstrok':'\u0167','Tstrok':'\u0166','twixt':'\u226C','twoheadleftarrow':'\u219E','twoheadrightarrow':'\u21A0','uacute':'\xFA','Uacute':'\xDA','uarr':'\u2191','uArr':'\u21D1','Uarr':'\u219F','Uarrocir':'\u2949','ubrcy':'\u045E','Ubrcy':'\u040E','ubreve':'\u016D','Ubreve':'\u016C','ucirc':'\xFB','Ucirc':'\xDB','ucy':'\u0443','Ucy':'\u0423','udarr':'\u21C5','udblac':'\u0171','Udblac':'\u0170','udhar':'\u296E','ufisht':'\u297E','ufr':'\uD835\uDD32','Ufr':'\uD835\uDD18','ugrave':'\xF9','Ugrave':'\xD9','uHar':'\u2963','uharl':'\u21BF','uharr':'\u21BE','uhblk':'\u2580','ulcorn':'\u231C','ulcorner':'\u231C','ulcrop':'\u230F','ultri':'\u25F8','umacr':'\u016B','Umacr':'\u016A','uml':'\xA8','UnderBar':'_','UnderBrace':'\u23DF','UnderBracket':'\u23B5','UnderParenthesis':'\u23DD','Union':'\u22C3','UnionPlus':'\u228E','uogon':'\u0173','Uogon':'\u0172','uopf':'\uD835\uDD66','Uopf':'\uD835\uDD4C','uparrow':'\u2191','Uparrow':'\u21D1','UpArrow':'\u2191','UpArrowBar':'\u2912','UpArrowDownArrow':'\u21C5','updownarrow':'\u2195','Updownarrow':'\u21D5','UpDownArrow':'\u2195','UpEquilibrium':'\u296E','upharpoonleft':'\u21BF','upharpoonright':'\u21BE','uplus':'\u228E','UpperLeftArrow':'\u2196','UpperRightArrow':'\u2197','upsi':'\u03C5','Upsi':'\u03D2','upsih':'\u03D2','upsilon':'\u03C5','Upsilon':'\u03A5','UpTee':'\u22A5','UpTeeArrow':'\u21A5','upuparrows':'\u21C8','urcorn':'\u231D','urcorner':'\u231D','urcrop':'\u230E','uring':'\u016F','Uring':'\u016E','urtri':'\u25F9','uscr':'\uD835\uDCCA','Uscr':'\uD835\uDCB0','utdot':'\u22F0','utilde':'\u0169','Utilde':'\u0168','utri':'\u25B5','utrif':'\u25B4','uuarr':'\u21C8','uuml':'\xFC','Uuml':'\xDC','uwangle':'\u29A7','vangrt':'\u299C','varepsilon':'\u03F5','varkappa':'\u03F0','varnothing':'\u2205','varphi':'\u03D5','varpi':'\u03D6','varpropto':'\u221D','varr':'\u2195','vArr':'\u21D5','varrho':'\u03F1','varsigma':'\u03C2','varsubsetneq':'\u228A\uFE00','varsubsetneqq':'\u2ACB\uFE00','varsupsetneq':'\u228B\uFE00','varsupsetneqq':'\u2ACC\uFE00','vartheta':'\u03D1','vartriangleleft':'\u22B2','vartriangleright':'\u22B3','vBar':'\u2AE8','Vbar':'\u2AEB','vBarv':'\u2AE9','vcy':'\u0432','Vcy':'\u0412','vdash':'\u22A2','vDash':'\u22A8','Vdash':'\u22A9','VDash':'\u22AB','Vdashl':'\u2AE6','vee':'\u2228','Vee':'\u22C1','veebar':'\u22BB','veeeq':'\u225A','vellip':'\u22EE','verbar':'|','Verbar':'\u2016','vert':'|','Vert':'\u2016','VerticalBar':'\u2223','VerticalLine':'|','VerticalSeparator':'\u2758','VerticalTilde':'\u2240','VeryThinSpace':'\u200A','vfr':'\uD835\uDD33','Vfr':'\uD835\uDD19','vltri':'\u22B2','vnsub':'\u2282\u20D2','vnsup':'\u2283\u20D2','vopf':'\uD835\uDD67','Vopf':'\uD835\uDD4D','vprop':'\u221D','vrtri':'\u22B3','vscr':'\uD835\uDCCB','Vscr':'\uD835\uDCB1','vsubne':'\u228A\uFE00','vsubnE':'\u2ACB\uFE00','vsupne':'\u228B\uFE00','vsupnE':'\u2ACC\uFE00','Vvdash':'\u22AA','vzigzag':'\u299A','wcirc':'\u0175','Wcirc':'\u0174','wedbar':'\u2A5F','wedge':'\u2227','Wedge':'\u22C0','wedgeq':'\u2259','weierp':'\u2118','wfr':'\uD835\uDD34','Wfr':'\uD835\uDD1A','wopf':'\uD835\uDD68','Wopf':'\uD835\uDD4E','wp':'\u2118','wr':'\u2240','wreath':'\u2240','wscr':'\uD835\uDCCC','Wscr':'\uD835\uDCB2','xcap':'\u22C2','xcirc':'\u25EF','xcup':'\u22C3','xdtri':'\u25BD','xfr':'\uD835\uDD35','Xfr':'\uD835\uDD1B','xharr':'\u27F7','xhArr':'\u27FA','xi':'\u03BE','Xi':'\u039E','xlarr':'\u27F5','xlArr':'\u27F8','xmap':'\u27FC','xnis':'\u22FB','xodot':'\u2A00','xopf':'\uD835\uDD69','Xopf':'\uD835\uDD4F','xoplus':'\u2A01','xotime':'\u2A02','xrarr':'\u27F6','xrArr':'\u27F9','xscr':'\uD835\uDCCD','Xscr':'\uD835\uDCB3','xsqcup':'\u2A06','xuplus':'\u2A04','xutri':'\u25B3','xvee':'\u22C1','xwedge':'\u22C0','yacute':'\xFD','Yacute':'\xDD','yacy':'\u044F','YAcy':'\u042F','ycirc':'\u0177','Ycirc':'\u0176','ycy':'\u044B','Ycy':'\u042B','yen':'\xA5','yfr':'\uD835\uDD36','Yfr':'\uD835\uDD1C','yicy':'\u0457','YIcy':'\u0407','yopf':'\uD835\uDD6A','Yopf':'\uD835\uDD50','yscr':'\uD835\uDCCE','Yscr':'\uD835\uDCB4','yucy':'\u044E','YUcy':'\u042E','yuml':'\xFF','Yuml':'\u0178','zacute':'\u017A','Zacute':'\u0179','zcaron':'\u017E','Zcaron':'\u017D','zcy':'\u0437','Zcy':'\u0417','zdot':'\u017C','Zdot':'\u017B','zeetrf':'\u2128','ZeroWidthSpace':'\u200B','zeta':'\u03B6','Zeta':'\u0396','zfr':'\uD835\uDD37','Zfr':'\u2128','zhcy':'\u0436','ZHcy':'\u0416','zigrarr':'\u21DD','zopf':'\uD835\uDD6B','Zopf':'\u2124','zscr':'\uD835\uDCCF','Zscr':'\uD835\uDCB5','zwj':'\u200D','zwnj':'\u200C'};
+ var decodeMapLegacy = {'aacute':'\xE1','Aacute':'\xC1','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','aelig':'\xE6','AElig':'\xC6','agrave':'\xE0','Agrave':'\xC0','amp':'&','AMP':'&','aring':'\xE5','Aring':'\xC5','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','brvbar':'\xA6','ccedil':'\xE7','Ccedil':'\xC7','cedil':'\xB8','cent':'\xA2','copy':'\xA9','COPY':'\xA9','curren':'\xA4','deg':'\xB0','divide':'\xF7','eacute':'\xE9','Eacute':'\xC9','ecirc':'\xEA','Ecirc':'\xCA','egrave':'\xE8','Egrave':'\xC8','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','frac12':'\xBD','frac14':'\xBC','frac34':'\xBE','gt':'>','GT':'>','iacute':'\xED','Iacute':'\xCD','icirc':'\xEE','Icirc':'\xCE','iexcl':'\xA1','igrave':'\xEC','Igrave':'\xCC','iquest':'\xBF','iuml':'\xEF','Iuml':'\xCF','laquo':'\xAB','lt':'<','LT':'<','macr':'\xAF','micro':'\xB5','middot':'\xB7','nbsp':'\xA0','not':'\xAC','ntilde':'\xF1','Ntilde':'\xD1','oacute':'\xF3','Oacute':'\xD3','ocirc':'\xF4','Ocirc':'\xD4','ograve':'\xF2','Ograve':'\xD2','ordf':'\xAA','ordm':'\xBA','oslash':'\xF8','Oslash':'\xD8','otilde':'\xF5','Otilde':'\xD5','ouml':'\xF6','Ouml':'\xD6','para':'\xB6','plusmn':'\xB1','pound':'\xA3','quot':'"','QUOT':'"','raquo':'\xBB','reg':'\xAE','REG':'\xAE','sect':'\xA7','shy':'\xAD','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','szlig':'\xDF','thorn':'\xFE','THORN':'\xDE','times':'\xD7','uacute':'\xFA','Uacute':'\xDA','ucirc':'\xFB','Ucirc':'\xDB','ugrave':'\xF9','Ugrave':'\xD9','uml':'\xA8','uuml':'\xFC','Uuml':'\xDC','yacute':'\xFD','Yacute':'\xDD','yen':'\xA5','yuml':'\xFF'};
+ var decodeMapNumeric = {'0':'\uFFFD','128':'\u20AC','130':'\u201A','131':'\u0192','132':'\u201E','133':'\u2026','134':'\u2020','135':'\u2021','136':'\u02C6','137':'\u2030','138':'\u0160','139':'\u2039','140':'\u0152','142':'\u017D','145':'\u2018','146':'\u2019','147':'\u201C','148':'\u201D','149':'\u2022','150':'\u2013','151':'\u2014','152':'\u02DC','153':'\u2122','154':'\u0161','155':'\u203A','156':'\u0153','158':'\u017E','159':'\u0178'};
+ var invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111];
+ /*--------------------------------------------------------------------------*/
+ var stringFromCharCode = String.fromCharCode;
- function DOMEval( code, doc ) {
- doc = doc || document;
+ var object = {};
+ var hasOwnProperty = object.hasOwnProperty;
+ var has = function(object, propertyName) {
+ return hasOwnProperty.call(object, propertyName);
+ };
- var script = doc.createElement( "script" );
+ var contains = function(array, value) {
+ var index = -1;
+ var length = array.length;
+ while (++index < length) {
+ if (array[index] == value) {
+ return true;
+ }
+ }
+ return false;
+ };
- script.text = code;
- doc.head.appendChild( script ).parentNode.removeChild( script );
- }
-/* global Symbol */
-// Defining this global in .eslintrc.json would create a danger of using the global
-// unguarded in another place, it seems safer to define global only for this module
+ var merge = function(options, defaults) {
+ if (!options) {
+ return defaults;
+ }
+ var result = {};
+ var key;
+ for (key in defaults) {
+ // A `hasOwnProperty` check is not needed here, since only recognized
+ // option names are used anyway. Any others are ignored.
+ result[key] = has(options, key) ? options[key] : defaults[key];
+ }
+ return result;
+ };
+ // Modified version of `ucs2encode`; see https://mths.be/punycode.
+ var codePointToSymbol = function(codePoint, strict) {
+ var output = '';
+ if ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) {
+ // See issue #4:
+ // “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is
+ // greater than 0x10FFFF, then this is a parse error. Return a U+FFFD
+ // REPLACEMENT CHARACTER.”
+ if (strict) {
+ parseError('character reference outside the permissible Unicode range');
+ }
+ return '\uFFFD';
+ }
+ if (has(decodeMapNumeric, codePoint)) {
+ if (strict) {
+ parseError('disallowed character reference');
+ }
+ return decodeMapNumeric[codePoint];
+ }
+ if (strict && contains(invalidReferenceCodePoints, codePoint)) {
+ parseError('disallowed character reference');
+ }
+ if (codePoint > 0xFFFF) {
+ codePoint -= 0x10000;
+ output += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);
+ codePoint = 0xDC00 | codePoint & 0x3FF;
+ }
+ output += stringFromCharCode(codePoint);
+ return output;
+ };
+ var hexEscape = function(codePoint) {
+ return '' + codePoint.toString(16).toUpperCase() + ';';
+ };
-var
- version = "3.2.1",
+ var decEscape = function(codePoint) {
+ return '' + codePoint + ';';
+ };
- // Define a local copy of jQuery
- jQuery = function( selector, context ) {
+ var parseError = function(message) {
+ throw Error('Parse error: ' + message);
+ };
- // The jQuery object is actually just the init constructor 'enhanced'
- // Need init if jQuery is called (just allow error to be thrown if not included)
- return new jQuery.fn.init( selector, context );
- },
+ /*--------------------------------------------------------------------------*/
- // Support: Android <=4.0 only
- // Make sure we trim BOM and NBSP
- rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
+ var encode = function(string, options) {
+ options = merge(options, encode.options);
+ var strict = options.strict;
+ if (strict && regexInvalidRawCodePoint.test(string)) {
+ parseError('forbidden code point');
+ }
+ var encodeEverything = options.encodeEverything;
+ var useNamedReferences = options.useNamedReferences;
+ var allowUnsafeSymbols = options.allowUnsafeSymbols;
+ var escapeCodePoint = options.decimal ? decEscape : hexEscape;
- // Matches dashed string for camelizing
- rmsPrefix = /^-ms-/,
- rdashAlpha = /-([a-z])/g,
+ var escapeBmpSymbol = function(symbol) {
+ return escapeCodePoint(symbol.charCodeAt(0));
+ };
- // Used by jQuery.camelCase as callback to replace()
- fcamelCase = function( all, letter ) {
- return letter.toUpperCase();
+ if (encodeEverything) {
+ // Encode ASCII symbols.
+ string = string.replace(regexAsciiWhitelist, function(symbol) {
+ // Use named references if requested & possible.
+ if (useNamedReferences && has(encodeMap, symbol)) {
+ return '&' + encodeMap[symbol] + ';';
+ }
+ return escapeBmpSymbol(symbol);
+ });
+ // Shorten a few escapes that represent two symbols, of which at least one
+ // is within the ASCII range.
+ if (useNamedReferences) {
+ string = string
+ .replace(/>\u20D2/g, '>⃒')
+ .replace(/<\u20D2/g, '<⃒')
+ .replace(/fj/g, 'fj');
+ }
+ // Encode non-ASCII symbols.
+ if (useNamedReferences) {
+ // Encode non-ASCII symbols that can be replaced with a named reference.
+ string = string.replace(regexEncodeNonAscii, function(string) {
+ // Note: there is no need to check `has(encodeMap, string)` here.
+ return '&' + encodeMap[string] + ';';
+ });
+ }
+ // Note: any remaining non-ASCII symbols are handled outside of the `if`.
+ } else if (useNamedReferences) {
+ // Apply named character references.
+ // Encode `<>"'&` using named character references.
+ if (!allowUnsafeSymbols) {
+ string = string.replace(regexEscape, function(string) {
+ return '&' + encodeMap[string] + ';'; // no need to check `has()` here
+ });
+ }
+ // Shorten escapes that represent two symbols, of which at least one is
+ // `<>"'&`.
+ string = string
+ .replace(/>\u20D2/g, '>⃒')
+ .replace(/<\u20D2/g, '<⃒');
+ // Encode non-ASCII symbols that can be replaced with a named reference.
+ string = string.replace(regexEncodeNonAscii, function(string) {
+ // Note: there is no need to check `has(encodeMap, string)` here.
+ return '&' + encodeMap[string] + ';';
+ });
+ } else if (!allowUnsafeSymbols) {
+ // Encode `<>"'&` using hexadecimal escapes, now that they’re not handled
+ // using named character references.
+ string = string.replace(regexEscape, escapeBmpSymbol);
+ }
+ return string
+ // Encode astral symbols.
+ .replace(regexAstralSymbols, function($0) {
+ // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
+ var high = $0.charCodeAt(0);
+ var low = $0.charCodeAt(1);
+ var codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;
+ return escapeCodePoint(codePoint);
+ })
+ // Encode any remaining BMP symbols that are not printable ASCII symbols
+ // using a hexadecimal escape.
+ .replace(regexBmpWhitelist, escapeBmpSymbol);
+ };
+ // Expose default options (so they can be overridden globally).
+ encode.options = {
+ 'allowUnsafeSymbols': false,
+ 'encodeEverything': false,
+ 'strict': false,
+ 'useNamedReferences': false,
+ 'decimal' : false
};
-jQuery.fn = jQuery.prototype = {
+ var decode = function(html, options) {
+ options = merge(options, decode.options);
+ var strict = options.strict;
+ if (strict && regexInvalidEntity.test(html)) {
+ parseError('malformed character reference');
+ }
+ return html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7) {
+ var codePoint;
+ var semicolon;
+ var decDigits;
+ var hexDigits;
+ var reference;
+ var next;
+ if ($1) {
+ // Decode decimal escapes, e.g. `𝌆`.
+ decDigits = $1;
+ semicolon = $2;
+ if (strict && !semicolon) {
+ parseError('character reference was not terminated by a semicolon');
+ }
+ codePoint = parseInt(decDigits, 10);
+ return codePointToSymbol(codePoint, strict);
+ }
+ if ($3) {
+ // Decode hexadecimal escapes, e.g. `𝌆`.
+ hexDigits = $3;
+ semicolon = $4;
+ if (strict && !semicolon) {
+ parseError('character reference was not terminated by a semicolon');
+ }
+ codePoint = parseInt(hexDigits, 16);
+ return codePointToSymbol(codePoint, strict);
+ }
+ if ($5) {
+ // Decode named character references with trailing `;`, e.g. `©`.
+ reference = $5;
+ if (has(decodeMap, reference)) {
+ return decodeMap[reference];
+ } else {
+ // Ambiguous ampersand. https://mths.be/notes/ambiguous-ampersands
+ if (strict) {
+ parseError(
+ 'named character reference was not terminated by a semicolon'
+ );
+ }
+ return $0;
+ }
+ }
+ // If we’re still here, it’s a legacy reference for sure. No need for an
+ // extra `if` check.
+ // Decode named character references without trailing `;`, e.g. `&`
+ // This is only a parse error if it gets converted to `&`, or if it is
+ // followed by `=` in an attribute context.
+ reference = $6;
+ next = $7;
+ if (next && options.isAttributeValue) {
+ if (strict && next == '=') {
+ parseError('`&` did not start a character reference');
+ }
+ return $0;
+ } else {
+ if (strict) {
+ parseError(
+ 'named character reference was not terminated by a semicolon'
+ );
+ }
+ // Note: there is no need to check `has(decodeMapLegacy, reference)`.
+ return decodeMapLegacy[reference] + (next || '');
+ }
+ });
+ };
+ // Expose default options (so they can be overridden globally).
+ decode.options = {
+ 'isAttributeValue': false,
+ 'strict': false
+ };
- // The current version of jQuery being used
- jquery: version,
+ var escape = function(string) {
+ return string.replace(regexEscape, function($0) {
+ // Note: there is no need to check `has(escapeMap, $0)` here.
+ return escapeMap[$0];
+ });
+ };
- constructor: jQuery,
+ /*--------------------------------------------------------------------------*/
- // The default length of a jQuery object is 0
- length: 0,
+ var he = {
+ 'version': '1.1.1',
+ 'encode': encode,
+ 'decode': decode,
+ 'escape': escape,
+ 'unescape': decode
+ };
- toArray: function() {
- return slice.call( this );
- },
-
- // Get the Nth element in the matched element set OR
- // Get the whole matched element set as a clean array
- get: function( num ) {
-
- // Return all the elements in a clean array
- if ( num == null ) {
- return slice.call( this );
+ // Some AMD build optimizers, like r.js, check for specific condition patterns
+ // like the following:
+ if (
+ true
+ ) {
+ !(__WEBPACK_AMD_DEFINE_RESULT__ = function() {
+ return he;
+ }.call(exports, __webpack_require__, exports, module),
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
+ } else if (freeExports && !freeExports.nodeType) {
+ if (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+
+ freeModule.exports = he;
+ } else { // in Narwhal or RingoJS v0.7.0-
+ for (var key in he) {
+ has(he, key) && (freeExports[key] = he[key]);
+ }
}
+ } else { // in Rhino or a web browser
+ root.he = he;
+ }
- // Return just the one element from the set
- return num < 0 ? this[ num + this.length ] : this[ num ];
- },
+}(this));
- // Take an array of elements and push it onto the stack
- // (returning the new matched element set)
- pushStack: function( elems ) {
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(17)(module), __webpack_require__(10)))
- // Build a new jQuery matched element set
- var ret = jQuery.merge( this.constructor(), elems );
+/***/ }),
+/* 246 */
+/***/ (function(module, exports, __webpack_require__) {
- // Add the old object onto the stack (as a reference)
- ret.prevObject = this;
+"use strict";
+/* WEBPACK VAR INJECTION */(function(process) {/**
+ * Copyright (c) 2013-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ */
- // Return the newly-formed element set
- return ret;
- },
- // Execute a callback for every element in the matched set.
- each: function( callback ) {
- return jQuery.each( this, callback );
- },
- map: function( callback ) {
- return this.pushStack( jQuery.map( this, function( elem, i ) {
- return callback.call( elem, i, elem );
- } ) );
- },
+var _prodInvariant = __webpack_require__(44),
+ _assign = __webpack_require__(9);
- slice: function() {
- return this.pushStack( slice.apply( this, arguments ) );
- },
+var ReactNoopUpdateQueue = __webpack_require__(247);
- first: function() {
- return this.eq( 0 );
- },
+var canDefineProperty = __webpack_require__(100);
+var emptyObject = __webpack_require__(101);
+var invariant = __webpack_require__(2);
+var lowPriorityWarning = __webpack_require__(147);
- last: function() {
- return this.eq( -1 );
- },
+/**
+ * Base class helpers for the updating state of a component.
+ */
+function ReactComponent(props, context, updater) {
+ this.props = props;
+ this.context = context;
+ this.refs = emptyObject;
+ // We initialize the default updater but the real one gets injected by the
+ // renderer.
+ this.updater = updater || ReactNoopUpdateQueue;
+}
- eq: function( i ) {
- var len = this.length,
- j = +i + ( i < 0 ? len : 0 );
- return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
- },
+ReactComponent.prototype.isReactComponent = {};
- end: function() {
- return this.prevObject || this.constructor();
- },
+/**
+ * Sets a subset of the state. Always use this to mutate
+ * state. You should treat `this.state` as immutable.
+ *
+ * There is no guarantee that `this.state` will be immediately updated, so
+ * accessing `this.state` after calling this method may return the old value.
+ *
+ * There is no guarantee that calls to `setState` will run synchronously,
+ * as they may eventually be batched together. You can provide an optional
+ * callback that will be executed when the call to setState is actually
+ * completed.
+ *
+ * When a function is provided to setState, it will be called at some point in
+ * the future (not synchronously). It will be called with the up to date
+ * component arguments (state, props, context). These values can be different
+ * from this.* because your function may be called after receiveProps but before
+ * shouldComponentUpdate, and this new state, props, and context will not yet be
+ * assigned to this.
+ *
+ * @param {object|function} partialState Next partial state or function to
+ * produce next partial state to be merged with current state.
+ * @param {?function} callback Called after state is updated.
+ * @final
+ * @protected
+ */
+ReactComponent.prototype.setState = function (partialState, callback) {
+ !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'setState(...): takes an object of state variables to update or a function which returns an object of state variables.') : _prodInvariant('85') : void 0;
+ this.updater.enqueueSetState(this, partialState);
+ if (callback) {
+ this.updater.enqueueCallback(this, callback, 'setState');
+ }
+};
- // For internal use only.
- // Behaves like an Array's method, not like a jQuery method.
- push: push,
- sort: arr.sort,
- splice: arr.splice
+/**
+ * Forces an update. This should only be invoked when it is known with
+ * certainty that we are **not** in a DOM transaction.
+ *
+ * You may want to call this when you know that some deeper aspect of the
+ * component's state has changed but `setState` was not called.
+ *
+ * This will not invoke `shouldComponentUpdate`, but it will invoke
+ * `componentWillUpdate` and `componentDidUpdate`.
+ *
+ * @param {?function} callback Called after update is complete.
+ * @final
+ * @protected
+ */
+ReactComponent.prototype.forceUpdate = function (callback) {
+ this.updater.enqueueForceUpdate(this);
+ if (callback) {
+ this.updater.enqueueCallback(this, callback, 'forceUpdate');
+ }
};
-jQuery.extend = jQuery.fn.extend = function() {
- var options, name, src, copy, copyIsArray, clone,
- target = arguments[ 0 ] || {},
- i = 1,
- length = arguments.length,
- deep = false;
+/**
+ * Deprecated APIs. These APIs used to exist on classic React classes but since
+ * we would like to deprecate them, we're not going to move them over to this
+ * modern base class. Instead, we define a getter that warns if it's accessed.
+ */
+if (process.env.NODE_ENV !== 'production') {
+ var deprecatedAPIs = {
+ isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],
+ replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']
+ };
+ var defineDeprecationWarning = function (methodName, info) {
+ if (canDefineProperty) {
+ Object.defineProperty(ReactComponent.prototype, methodName, {
+ get: function () {
+ lowPriorityWarning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);
+ return undefined;
+ }
+ });
+ }
+ };
+ for (var fnName in deprecatedAPIs) {
+ if (deprecatedAPIs.hasOwnProperty(fnName)) {
+ defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);
+ }
+ }
+}
- // Handle a deep copy situation
- if ( typeof target === "boolean" ) {
- deep = target;
+/**
+ * Base class helpers for the updating state of a component.
+ */
+function ReactPureComponent(props, context, updater) {
+ // Duplicated from ReactComponent.
+ this.props = props;
+ this.context = context;
+ this.refs = emptyObject;
+ // We initialize the default updater but the real one gets injected by the
+ // renderer.
+ this.updater = updater || ReactNoopUpdateQueue;
+}
- // Skip the boolean and the target
- target = arguments[ i ] || {};
- i++;
- }
+function ComponentDummy() {}
+ComponentDummy.prototype = ReactComponent.prototype;
+ReactPureComponent.prototype = new ComponentDummy();
+ReactPureComponent.prototype.constructor = ReactPureComponent;
+// Avoid an extra prototype jump for these methods.
+_assign(ReactPureComponent.prototype, ReactComponent.prototype);
+ReactPureComponent.prototype.isPureReactComponent = true;
- // Handle case when target is a string or something (possible in deep copy)
- if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
- target = {};
- }
+module.exports = {
+ Component: ReactComponent,
+ PureComponent: ReactPureComponent
+};
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
- // Extend jQuery itself if only one argument is passed
- if ( i === length ) {
- target = this;
- i--;
- }
+/***/ }),
+/* 247 */
+/***/ (function(module, exports, __webpack_require__) {
- for ( ; i < length; i++ ) {
+"use strict";
+/* WEBPACK VAR INJECTION */(function(process) {/**
+ * Copyright (c) 2015-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ */
- // Only deal with non-null/undefined values
- if ( ( options = arguments[ i ] ) != null ) {
- // Extend the base object
- for ( name in options ) {
- src = target[ name ];
- copy = options[ name ];
- // Prevent never-ending loop
- if ( target === copy ) {
- continue;
- }
+var warning = __webpack_require__(4);
- // Recurse if we're merging plain objects or arrays
- if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
- ( copyIsArray = Array.isArray( copy ) ) ) ) {
+function warnNoop(publicInstance, callerName) {
+ if (process.env.NODE_ENV !== 'production') {
+ var constructor = publicInstance.constructor;
+ process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0;
+ }
+}
- if ( copyIsArray ) {
- copyIsArray = false;
- clone = src && Array.isArray( src ) ? src : [];
+/**
+ * This is the abstract API for an update queue.
+ */
+var ReactNoopUpdateQueue = {
+ /**
+ * Checks whether or not this composite component is mounted.
+ * @param {ReactClass} publicInstance The instance we want to test.
+ * @return {boolean} True if mounted, false otherwise.
+ * @protected
+ * @final
+ */
+ isMounted: function (publicInstance) {
+ return false;
+ },
- } else {
- clone = src && jQuery.isPlainObject( src ) ? src : {};
- }
+ /**
+ * Enqueue a callback that will be executed after all the pending updates
+ * have processed.
+ *
+ * @param {ReactClass} publicInstance The instance to use as `this` context.
+ * @param {?function} callback Called after state is updated.
+ * @internal
+ */
+ enqueueCallback: function (publicInstance, callback) {},
- // Never move original objects, clone them
- target[ name ] = jQuery.extend( deep, clone, copy );
+ /**
+ * Forces an update. This should only be invoked when it is known with
+ * certainty that we are **not** in a DOM transaction.
+ *
+ * You may want to call this when you know that some deeper aspect of the
+ * component's state has changed but `setState` was not called.
+ *
+ * This will not invoke `shouldComponentUpdate`, but it will invoke
+ * `componentWillUpdate` and `componentDidUpdate`.
+ *
+ * @param {ReactClass} publicInstance The instance that should rerender.
+ * @internal
+ */
+ enqueueForceUpdate: function (publicInstance) {
+ warnNoop(publicInstance, 'forceUpdate');
+ },
- // Don't bring in undefined values
- } else if ( copy !== undefined ) {
- target[ name ] = copy;
- }
- }
- }
- }
+ /**
+ * Replaces all of the state. Always use this or `setState` to mutate state.
+ * You should treat `this.state` as immutable.
+ *
+ * There is no guarantee that `this.state` will be immediately updated, so
+ * accessing `this.state` after calling this method may return the old value.
+ *
+ * @param {ReactClass} publicInstance The instance that should rerender.
+ * @param {object} completeState Next state.
+ * @internal
+ */
+ enqueueReplaceState: function (publicInstance, completeState) {
+ warnNoop(publicInstance, 'replaceState');
+ },
- // Return the modified object
- return target;
+ /**
+ * Sets a subset of the state. This only exists because _pendingState is
+ * internal. This provides a merging strategy that is not available to deep
+ * properties which is confusing. TODO: Expose pendingState or don't use it
+ * during the merge.
+ *
+ * @param {ReactClass} publicInstance The instance that should rerender.
+ * @param {object} partialState Next partial state to be merged with state.
+ * @internal
+ */
+ enqueueSetState: function (publicInstance, partialState) {
+ warnNoop(publicInstance, 'setState');
+ }
};
-jQuery.extend( {
+module.exports = ReactNoopUpdateQueue;
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
- // Unique for each copy of jQuery on the page
- expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
+/***/ }),
+/* 248 */
+/***/ (function(module, exports, __webpack_require__) {
- // Assume jQuery is ready without the ready module
- isReady: true,
+"use strict";
+/**
+ * Copyright (c) 2014-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ *
+ */
- error: function( msg ) {
- throw new Error( msg );
- },
- noop: function() {},
- isFunction: function( obj ) {
- return jQuery.type( obj ) === "function";
- },
+// The Symbol used to tag the ReactElement type. If there is no native Symbol
+// nor polyfill, then a plain number is used for performance.
- isWindow: function( obj ) {
- return obj != null && obj === obj.window;
- },
+var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7;
- isNumeric: function( obj ) {
+module.exports = REACT_ELEMENT_TYPE;
- // As of jQuery 3.0, isNumeric is limited to
- // strings and numbers (primitives or objects)
- // that can be coerced to finite numbers (gh-2662)
- var type = jQuery.type( obj );
- return ( type === "number" || type === "string" ) &&
+/***/ }),
+/* 249 */
+/***/ (function(module, exports, __webpack_require__) {
- // parseFloat NaNs numeric-cast false positives ("")
- // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
- // subtraction forces infinities to NaN
- !isNaN( obj - parseFloat( obj ) );
- },
+"use strict";
+/**
+ * Copyright (c) 2013-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ *
+ */
- isPlainObject: function( obj ) {
- var proto, Ctor;
- // Detect obvious negatives
- // Use toString instead of jQuery.type to catch host objects
- if ( !obj || toString.call( obj ) !== "[object Object]" ) {
- return false;
- }
- proto = getProto( obj );
+/* global Symbol */
- // Objects with no prototype (e.g., `Object.create( null )`) are plain
- if ( !proto ) {
- return true;
- }
+var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
+var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
- // Objects with prototype are plain iff they were constructed by a global Object function
- Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
- return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
- },
+/**
+ * Returns the iterator method function contained on the iterable object.
+ *
+ * Be sure to invoke the function with the iterable as context:
+ *
+ * var iteratorFn = getIteratorFn(myIterable);
+ * if (iteratorFn) {
+ * var iterator = iteratorFn.call(myIterable);
+ * ...
+ * }
+ *
+ * @param {?object} maybeIterable
+ * @return {?function}
+ */
+function getIteratorFn(maybeIterable) {
+ var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
+ if (typeof iteratorFn === 'function') {
+ return iteratorFn;
+ }
+}
- isEmptyObject: function( obj ) {
+module.exports = getIteratorFn;
- /* eslint-disable no-unused-vars */
- // See https://github.com/eslint/eslint/issues/6125
- var name;
+/***/ }),
+/* 250 */
+/***/ (function(module, exports, __webpack_require__) {
- for ( name in obj ) {
- return false;
- }
- return true;
- },
+"use strict";
+/* WEBPACK VAR INJECTION */(function(process) {/**
+ * Copyright (c) 2014-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ */
- type: function( obj ) {
- if ( obj == null ) {
- return obj + "";
- }
+/**
+ * ReactElementValidator provides a wrapper around a element factory
+ * which validates the props passed to the element. This is intended to be
+ * used only in DEV and could be replaced by a static type checker for languages
+ * that support it.
+ */
- // Support: Android <=2.3 only (functionish RegExp)
- return typeof obj === "object" || typeof obj === "function" ?
- class2type[ toString.call( obj ) ] || "object" :
- typeof obj;
- },
- // Evaluates a script in a global context
- globalEval: function( code ) {
- DOMEval( code );
- },
- // Convert dashed to camelCase; used by the css and data modules
- // Support: IE <=9 - 11, Edge 12 - 13
- // Microsoft forgot to hump their vendor prefix (#9572)
- camelCase: function( string ) {
- return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
- },
+var ReactCurrentOwner = __webpack_require__(30);
+var ReactComponentTreeHook = __webpack_require__(23);
+var ReactElement = __webpack_require__(35);
- each: function( obj, callback ) {
- var length, i = 0;
+var checkReactTypeSpec = __webpack_require__(485);
- if ( isArrayLike( obj ) ) {
- length = obj.length;
- for ( ; i < length; i++ ) {
- if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
- break;
- }
- }
- } else {
- for ( i in obj ) {
- if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
- break;
- }
- }
- }
+var canDefineProperty = __webpack_require__(100);
+var getIteratorFn = __webpack_require__(249);
+var warning = __webpack_require__(4);
+var lowPriorityWarning = __webpack_require__(147);
- return obj;
- },
+function getDeclarationErrorAddendum() {
+ if (ReactCurrentOwner.current) {
+ var name = ReactCurrentOwner.current.getName();
+ if (name) {
+ return ' Check the render method of `' + name + '`.';
+ }
+ }
+ return '';
+}
- // Support: Android <=4.0 only
- trim: function( text ) {
- return text == null ?
- "" :
- ( text + "" ).replace( rtrim, "" );
- },
+function getSourceInfoErrorAddendum(elementProps) {
+ if (elementProps !== null && elementProps !== undefined && elementProps.__source !== undefined) {
+ var source = elementProps.__source;
+ var fileName = source.fileName.replace(/^.*[\\\/]/, '');
+ var lineNumber = source.lineNumber;
+ return ' Check your code at ' + fileName + ':' + lineNumber + '.';
+ }
+ return '';
+}
- // results is for internal usage only
- makeArray: function( arr, results ) {
- var ret = results || [];
+/**
+ * Warn if there's no key explicitly set on dynamic arrays of children or
+ * object keys are not valid. This allows us to keep track of children between
+ * updates.
+ */
+var ownerHasKeyUseWarning = {};
- if ( arr != null ) {
- if ( isArrayLike( Object( arr ) ) ) {
- jQuery.merge( ret,
- typeof arr === "string" ?
- [ arr ] : arr
- );
- } else {
- push.call( ret, arr );
- }
- }
+function getCurrentComponentErrorInfo(parentType) {
+ var info = getDeclarationErrorAddendum();
- return ret;
- },
+ if (!info) {
+ var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;
+ if (parentName) {
+ info = ' Check the top-level render call using <' + parentName + '>.';
+ }
+ }
+ return info;
+}
- inArray: function( elem, arr, i ) {
- return arr == null ? -1 : indexOf.call( arr, elem, i );
- },
+/**
+ * Warn if the element doesn't have an explicit key assigned to it.
+ * This element is in an array. The array could grow and shrink or be
+ * reordered. All children that haven't already been validated are required to
+ * have a "key" property assigned to it. Error statuses are cached so a warning
+ * will only be shown once.
+ *
+ * @internal
+ * @param {ReactElement} element Element that requires a key.
+ * @param {*} parentType element's parent's type.
+ */
+function validateExplicitKey(element, parentType) {
+ if (!element._store || element._store.validated || element.key != null) {
+ return;
+ }
+ element._store.validated = true;
- // Support: Android <=4.0 only, PhantomJS 1 only
- // push.apply(_, arraylike) throws on ancient WebKit
- merge: function( first, second ) {
- var len = +second.length,
- j = 0,
- i = first.length;
+ var memoizer = ownerHasKeyUseWarning.uniqueKey || (ownerHasKeyUseWarning.uniqueKey = {});
- for ( ; j < len; j++ ) {
- first[ i++ ] = second[ j ];
- }
+ var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);
+ if (memoizer[currentComponentErrorInfo]) {
+ return;
+ }
+ memoizer[currentComponentErrorInfo] = true;
- first.length = i;
+ // Usually the current owner is the offender, but if it accepts children as a
+ // property, it may be the creator of the child that's responsible for
+ // assigning it a key.
+ var childOwner = '';
+ if (element && element._owner && element._owner !== ReactCurrentOwner.current) {
+ // Give the component that originally created this child.
+ childOwner = ' It was passed a child from ' + element._owner.getName() + '.';
+ }
- return first;
- },
+ process.env.NODE_ENV !== 'production' ? warning(false, 'Each child in an array or iterator should have a unique "key" prop.' + '%s%s See https://fb.me/react-warning-keys for more information.%s', currentComponentErrorInfo, childOwner, ReactComponentTreeHook.getCurrentStackAddendum(element)) : void 0;
+}
- grep: function( elems, callback, invert ) {
- var callbackInverse,
- matches = [],
- i = 0,
- length = elems.length,
- callbackExpect = !invert;
+/**
+ * Ensure that every element either is passed in a static location, in an
+ * array with an explicit keys property defined, or in an object literal
+ * with valid key property.
+ *
+ * @internal
+ * @param {ReactNode} node Statically passed child of any type.
+ * @param {*} parentType node's parent's type.
+ */
+function validateChildKeys(node, parentType) {
+ if (typeof node !== 'object') {
+ return;
+ }
+ if (Array.isArray(node)) {
+ for (var i = 0; i < node.length; i++) {
+ var child = node[i];
+ if (ReactElement.isValidElement(child)) {
+ validateExplicitKey(child, parentType);
+ }
+ }
+ } else if (ReactElement.isValidElement(node)) {
+ // This element was passed in a valid location.
+ if (node._store) {
+ node._store.validated = true;
+ }
+ } else if (node) {
+ var iteratorFn = getIteratorFn(node);
+ // Entry iterators provide implicit keys.
+ if (iteratorFn) {
+ if (iteratorFn !== node.entries) {
+ var iterator = iteratorFn.call(node);
+ var step;
+ while (!(step = iterator.next()).done) {
+ if (ReactElement.isValidElement(step.value)) {
+ validateExplicitKey(step.value, parentType);
+ }
+ }
+ }
+ }
+ }
+}
- // Go through the array, only saving the items
- // that pass the validator function
- for ( ; i < length; i++ ) {
- callbackInverse = !callback( elems[ i ], i );
- if ( callbackInverse !== callbackExpect ) {
- matches.push( elems[ i ] );
- }
- }
+/**
+ * Given an element, validate that its props follow the propTypes definition,
+ * provided by the type.
+ *
+ * @param {ReactElement} element
+ */
+function validatePropTypes(element) {
+ var componentClass = element.type;
+ if (typeof componentClass !== 'function') {
+ return;
+ }
+ var name = componentClass.displayName || componentClass.name;
+ if (componentClass.propTypes) {
+ checkReactTypeSpec(componentClass.propTypes, element.props, 'prop', name, element, null);
+ }
+ if (typeof componentClass.getDefaultProps === 'function') {
+ process.env.NODE_ENV !== 'production' ? warning(componentClass.getDefaultProps.isReactClassApproved, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.') : void 0;
+ }
+}
- return matches;
- },
+var ReactElementValidator = {
+ createElement: function (type, props, children) {
+ var validType = typeof type === 'string' || typeof type === 'function';
+ // We warn in this case but don't throw. We expect the element creation to
+ // succeed and there will likely be errors in render.
+ if (!validType) {
+ if (typeof type !== 'function' && typeof type !== 'string') {
+ var info = '';
+ if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {
+ info += ' You likely forgot to export your component from the file ' + "it's defined in.";
+ }
- // arg is for internal usage only
- map: function( elems, callback, arg ) {
- var length, value,
- i = 0,
- ret = [];
+ var sourceInfo = getSourceInfoErrorAddendum(props);
+ if (sourceInfo) {
+ info += sourceInfo;
+ } else {
+ info += getDeclarationErrorAddendum();
+ }
- // Go through the array, translating each of the items to their new values
- if ( isArrayLike( elems ) ) {
- length = elems.length;
- for ( ; i < length; i++ ) {
- value = callback( elems[ i ], i, arg );
+ info += ReactComponentTreeHook.getCurrentStackAddendum();
- if ( value != null ) {
- ret.push( value );
- }
- }
+ var currentSource = props !== null && props !== undefined && props.__source !== undefined ? props.__source : null;
+ ReactComponentTreeHook.pushNonStandardWarningStack(true, currentSource);
+ process.env.NODE_ENV !== 'production' ? warning(false, 'React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', type == null ? type : typeof type, info) : void 0;
+ ReactComponentTreeHook.popNonStandardWarningStack();
+ }
+ }
- // Go through every key on the object,
- } else {
- for ( i in elems ) {
- value = callback( elems[ i ], i, arg );
+ var element = ReactElement.createElement.apply(this, arguments);
- if ( value != null ) {
- ret.push( value );
- }
- }
- }
+ // The result can be nullish if a mock or a custom function is used.
+ // TODO: Drop this when these are no longer allowed as the type argument.
+ if (element == null) {
+ return element;
+ }
- // Flatten any nested arrays
- return concat.apply( [], ret );
- },
+ // Skip key warning if the type isn't valid since our key validation logic
+ // doesn't expect a non-string/function type and can throw confusing errors.
+ // We don't want exception behavior to differ between dev and prod.
+ // (Rendering will throw with a helpful message and as soon as the type is
+ // fixed, the key warnings will appear.)
+ if (validType) {
+ for (var i = 2; i < arguments.length; i++) {
+ validateChildKeys(arguments[i], type);
+ }
+ }
- // A global GUID counter for objects
- guid: 1,
+ validatePropTypes(element);
- // Bind a function to a context, optionally partially applying any
- // arguments.
- proxy: function( fn, context ) {
- var tmp, args, proxy;
+ return element;
+ },
- if ( typeof context === "string" ) {
- tmp = fn[ context ];
- context = fn;
- fn = tmp;
- }
+ createFactory: function (type) {
+ var validatedFactory = ReactElementValidator.createElement.bind(null, type);
+ // Legacy hook TODO: Warn if this is accessed
+ validatedFactory.type = type;
- // Quick check to determine if target is callable, in the spec
- // this throws a TypeError, but we will just return undefined.
- if ( !jQuery.isFunction( fn ) ) {
- return undefined;
- }
+ if (process.env.NODE_ENV !== 'production') {
+ if (canDefineProperty) {
+ Object.defineProperty(validatedFactory, 'type', {
+ enumerable: false,
+ get: function () {
+ lowPriorityWarning(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');
+ Object.defineProperty(this, 'type', {
+ value: type
+ });
+ return type;
+ }
+ });
+ }
+ }
- // Simulated bind
- args = slice.call( arguments, 2 );
- proxy = function() {
- return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
- };
+ return validatedFactory;
+ },
- // Set the guid of unique handler to the same of original handler, so it can be removed
- proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+ cloneElement: function (element, props, children) {
+ var newElement = ReactElement.cloneElement.apply(this, arguments);
+ for (var i = 2; i < arguments.length; i++) {
+ validateChildKeys(arguments[i], newElement.type);
+ }
+ validatePropTypes(newElement);
+ return newElement;
+ }
+};
- return proxy;
- },
+module.exports = ReactElementValidator;
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
- now: Date.now,
+/***/ }),
+/* 251 */
+/***/ (function(module, exports, __webpack_require__) {
- // jQuery.support is not used in Core but other projects attach their
- // properties to it so it needs to exist.
- support: support
-} );
+"use strict";
+/**
+ * Copyright (c) 2013-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
-if ( typeof Symbol === "function" ) {
- jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
-}
-// Populate the class2type map
-jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
-function( i, name ) {
- class2type[ "[object " + name + "]" ] = name.toLowerCase();
-} );
-function isArrayLike( obj ) {
+// React 15.5 references this module, and assumes PropTypes are still callable in production.
+// Therefore we re-export development-only version with all the PropTypes checks here.
+// However if one is migrating to the `prop-types` npm library, they will go through the
+// `index.js` entry point, and it will branch depending on the environment.
+var factory = __webpack_require__(489);
+module.exports = function(isValidElement) {
+ // It is still allowed in 15.5.
+ var throwOnDirectAccess = false;
+ return factory(isValidElement, throwOnDirectAccess);
+};
- // Support: real iOS 8.2 only (not reproducible in simulator)
- // `in` check used to prevent JIT error (gh-2145)
- // hasOwn isn't used here due to false negatives
- // regarding Nodelist length in IE
- var length = !!obj && "length" in obj && obj.length,
- type = jQuery.type( obj );
- if ( type === "function" || jQuery.isWindow( obj ) ) {
- return false;
- }
+/***/ }),
+/* 252 */
+/***/ (function(module, exports, __webpack_require__) {
- return type === "array" || length === 0 ||
- typeof length === "number" && length > 0 && ( length - 1 ) in obj;
-}
-var Sizzle =
-/*!
- * Sizzle CSS Selector Engine v2.3.3
- * https://sizzlejs.com/
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license
- * http://jquery.org/license
+"use strict";
+/**
+ * Copyright (c) 2013-present, Facebook, Inc.
*
- * Date: 2016-08-08
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*/
-(function( window ) {
-var i,
- support,
- Expr,
- getText,
- isXML,
- tokenize,
- compile,
- select,
- outermostContext,
- sortInput,
- hasDuplicate,
- // Local document vars
- setDocument,
- document,
- docElem,
- documentIsHTML,
- rbuggyQSA,
- rbuggyMatches,
- matches,
- contains,
- // Instance-specific data
- expando = "sizzle" + 1 * new Date(),
- preferredDoc = window.document,
- dirruns = 0,
- done = 0,
- classCache = createCache(),
- tokenCache = createCache(),
- compilerCache = createCache(),
- sortOrder = function( a, b ) {
- if ( a === b ) {
- hasDuplicate = true;
- }
- return 0;
- },
+var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
- // Instance methods
- hasOwn = ({}).hasOwnProperty,
- arr = [],
- pop = arr.pop,
- push_native = arr.push,
- push = arr.push,
- slice = arr.slice,
- // Use a stripped-down indexOf as it's faster than native
- // https://jsperf.com/thor-indexof-vs-for/5
- indexOf = function( list, elem ) {
- var i = 0,
- len = list.length;
- for ( ; i < len; i++ ) {
- if ( list[i] === elem ) {
- return i;
- }
- }
- return -1;
- },
+module.exports = ReactPropTypesSecret;
- booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
- // Regular expressions
+/***/ }),
+/* 253 */
+/***/ (function(module, exports, __webpack_require__) {
- // http://www.w3.org/TR/css3-selectors/#whitespace
- whitespace = "[\\x20\\t\\r\\n\\f]",
+"use strict";
- // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
- identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
- // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
- attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
- // Operator (capture 2)
- "*([*^$|!~]?=)" + whitespace +
- // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
- "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
- "*\\]",
+module.exports = __webpack_require__(495);
- pseudos = ":(" + identifier + ")(?:\\((" +
- // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
- // 1. quoted (capture 3; capture 4 or capture 5)
- "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
- // 2. simple (capture 6)
- "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
- // 3. anything else (capture 2)
- ".*" +
- ")\\)|)",
- // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
- rwhitespace = new RegExp( whitespace + "+", "g" ),
- rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+/***/ }),
+/* 254 */
+/***/ (function(module, exports, __webpack_require__) {
- rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
- rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+"use strict";
+/* WEBPACK VAR INJECTION */(function(process) {/**
+ * Copyright (c) 2014-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ *
+ */
- rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
- rpseudo = new RegExp( pseudos ),
- ridentifier = new RegExp( "^" + identifier + "$" ),
- matchExpr = {
- "ID": new RegExp( "^#(" + identifier + ")" ),
- "CLASS": new RegExp( "^\\.(" + identifier + ")" ),
- "TAG": new RegExp( "^(" + identifier + "|[*])" ),
- "ATTR": new RegExp( "^" + attributes ),
- "PSEUDO": new RegExp( "^" + pseudos ),
- "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
- "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
- "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
- "bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
- // For use in libraries implementing .is()
- // We use this for POS matching in `select`
- "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
- whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
- },
+var _prodInvariant = __webpack_require__(6);
- rinputs = /^(?:input|select|textarea|button)$/i,
- rheader = /^h\d$/i,
+var invariant = __webpack_require__(2);
- rnative = /^[^{]+\{\s*\[native \w/,
+/**
+ * Accumulates items that must not be null or undefined into the first one. This
+ * is used to conserve memory by avoiding array allocations, and thus sacrifices
+ * API cleanness. Since `current` can be null before being passed in and not
+ * null after this function, make sure to assign it back to `current`:
+ *
+ * `a = accumulateInto(a, b);`
+ *
+ * This API should be sparingly used. Try `accumulate` for something cleaner.
+ *
+ * @return {*|array<*>} An accumulation of items.
+ */
- // Easily-parseable/retrievable ID or TAG or CLASS selectors
- rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+function accumulateInto(current, next) {
+ !(next != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'accumulateInto(...): Accumulated items must not be null or undefined.') : _prodInvariant('30') : void 0;
- rsibling = /[+~]/,
+ if (current == null) {
+ return next;
+ }
- // CSS escapes
- // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
- runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
- funescape = function( _, escaped, escapedWhitespace ) {
- var high = "0x" + escaped - 0x10000;
- // NaN means non-codepoint
- // Support: Firefox<24
- // Workaround erroneous numeric interpretation of +"0x"
- return high !== high || escapedWhitespace ?
- escaped :
- high < 0 ?
- // BMP codepoint
- String.fromCharCode( high + 0x10000 ) :
- // Supplemental Plane codepoint (surrogate pair)
- String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
- },
+ // Both are not empty. Warning: Never call x.concat(y) when you are not
+ // certain that x is an Array (x could be a string with concat method).
+ if (Array.isArray(current)) {
+ if (Array.isArray(next)) {
+ current.push.apply(current, next);
+ return current;
+ }
+ current.push(next);
+ return current;
+ }
- // CSS string/identifier serialization
- // https://drafts.csswg.org/cssom/#common-serializing-idioms
- rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
- fcssescape = function( ch, asCodePoint ) {
- if ( asCodePoint ) {
+ if (Array.isArray(next)) {
+ // A bit too dangerous to mutate `next`.
+ return [current].concat(next);
+ }
- // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
- if ( ch === "\0" ) {
- return "\uFFFD";
- }
+ return [current, next];
+}
- // Control characters and (dependent upon position) numbers get escaped as code points
- return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
- }
+module.exports = accumulateInto;
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
- // Other potentially-special ASCII characters get backslash-escaped
- return "\\" + ch;
- },
+/***/ }),
+/* 255 */
+/***/ (function(module, exports, __webpack_require__) {
- // Used for iframes
- // See setDocument()
- // Removing the function wrapper causes a "Permission Denied"
- // error in IE
- unloadHandler = function() {
- setDocument();
- },
+"use strict";
+/**
+ * Copyright (c) 2013-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ *
+ */
- disabledAncestor = addCombinator(
- function( elem ) {
- return elem.disabled === true && ("form" in elem || "label" in elem);
- },
- { dir: "parentNode", next: "legend" }
- );
-// Optimize for push.apply( _, NodeList )
-try {
- push.apply(
- (arr = slice.call( preferredDoc.childNodes )),
- preferredDoc.childNodes
- );
- // Support: Android<4.0
- // Detect silently failing push.apply
- arr[ preferredDoc.childNodes.length ].nodeType;
-} catch ( e ) {
- push = { apply: arr.length ?
- // Leverage slice if possible
- function( target, els ) {
- push_native.apply( target, slice.call(els) );
- } :
+/**
+ * @param {array} arr an "accumulation" of items which is either an Array or
+ * a single item. Useful when paired with the `accumulate` module. This is a
+ * simple utility that allows us to reason about a collection of items, but
+ * handling the case when there is exactly one item (and we do not need to
+ * allocate an array).
+ */
- // Support: IE<9
- // Otherwise append directly
- function( target, els ) {
- var j = target.length,
- i = 0;
- // Can't trust NodeList.length
- while ( (target[j++] = els[i++]) ) {}
- target.length = j - 1;
- }
- };
+function forEachAccumulated(arr, cb, scope) {
+ if (Array.isArray(arr)) {
+ arr.forEach(cb, scope);
+ } else if (arr) {
+ cb.call(scope, arr);
+ }
}
-function Sizzle( selector, context, results, seed ) {
- var m, i, elem, nid, match, groups, newSelector,
- newContext = context && context.ownerDocument,
+module.exports = forEachAccumulated;
- // nodeType defaults to 9, since context defaults to document
- nodeType = context ? context.nodeType : 9;
+/***/ }),
+/* 256 */
+/***/ (function(module, exports, __webpack_require__) {
- results = results || [];
+"use strict";
+/**
+ * Copyright (c) 2013-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ */
- // Return early from calls with invalid selector or context
- if ( typeof selector !== "string" || !selector ||
- nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
- return results;
- }
- // Try to shortcut find operations (as opposed to filters) in HTML documents
- if ( !seed ) {
+var ExecutionEnvironment = __webpack_require__(14);
- if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
- setDocument( context );
- }
- context = context || document;
+var contentKey = null;
- if ( documentIsHTML ) {
+/**
+ * Gets the key used to access text content on a DOM node.
+ *
+ * @return {?string} Key used to access text content.
+ * @internal
+ */
+function getTextContentAccessor() {
+ if (!contentKey && ExecutionEnvironment.canUseDOM) {
+ // Prefer textContent to innerText because many browsers support both but
+ // SVG elements don't support innerText even when does.
+ contentKey = 'textContent' in document.documentElement ? 'textContent' : 'innerText';
+ }
+ return contentKey;
+}
- // If the selector is sufficiently simple, try using a "get*By*" DOM method
- // (excepting DocumentFragment context, where the methods don't exist)
- if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
+module.exports = getTextContentAccessor;
- // ID selector
- if ( (m = match[1]) ) {
+/***/ }),
+/* 257 */
+/***/ (function(module, exports, __webpack_require__) {
- // Document context
- if ( nodeType === 9 ) {
- if ( (elem = context.getElementById( m )) ) {
+"use strict";
+/**
+ * Copyright (c) 2015-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ */
- // Support: IE, Opera, Webkit
- // TODO: identify versions
- // getElementById can match elements by name instead of ID
- if ( elem.id === m ) {
- results.push( elem );
- return results;
- }
- } else {
- return results;
- }
- // Element context
- } else {
- // Support: IE, Opera, Webkit
- // TODO: identify versions
- // getElementById can match elements by name instead of ID
- if ( newContext && (elem = newContext.getElementById( m )) &&
- contains( context, elem ) &&
- elem.id === m ) {
+var ReactDOMComponentFlags = {
+ hasCachedChildNodes: 1 << 0
+};
- results.push( elem );
- return results;
- }
- }
+module.exports = ReactDOMComponentFlags;
- // Type selector
- } else if ( match[2] ) {
- push.apply( results, context.getElementsByTagName( selector ) );
- return results;
+/***/ }),
+/* 258 */
+/***/ (function(module, exports, __webpack_require__) {
- // Class selector
- } else if ( (m = match[3]) && support.getElementsByClassName &&
- context.getElementsByClassName ) {
+"use strict";
+/* WEBPACK VAR INJECTION */(function(process) {/**
+ * Copyright (c) 2013-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ *
+ */
- push.apply( results, context.getElementsByClassName( m ) );
- return results;
- }
- }
- // Take advantage of querySelectorAll
- if ( support.qsa &&
- !compilerCache[ selector + " " ] &&
- (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
- if ( nodeType !== 1 ) {
- newContext = context;
- newSelector = selector;
+var _prodInvariant = __webpack_require__(6);
- // qSA looks outside Element context, which is not what we want
- // Thanks to Andrew Dupont for this workaround technique
- // Support: IE <=8
- // Exclude object elements
- } else if ( context.nodeName.toLowerCase() !== "object" ) {
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- // Capture the context ID, setting it first if necessary
- if ( (nid = context.getAttribute( "id" )) ) {
- nid = nid.replace( rcssescape, fcssescape );
- } else {
- context.setAttribute( "id", (nid = expando) );
- }
+var PooledClass = __webpack_require__(36);
- // Prefix every selector in the list
- groups = tokenize( selector );
- i = groups.length;
- while ( i-- ) {
- groups[i] = "#" + nid + " " + toSelector( groups[i] );
- }
- newSelector = groups.join( "," );
+var invariant = __webpack_require__(2);
- // Expand context for sibling selectors
- newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
- context;
- }
+/**
+ * A specialized pseudo-event module to help keep track of components waiting to
+ * be notified when their DOM representations are available for use.
+ *
+ * This implements `PooledClass`, so you should never need to instantiate this.
+ * Instead, use `CallbackQueue.getPooled()`.
+ *
+ * @class ReactMountReady
+ * @implements PooledClass
+ * @internal
+ */
- if ( newSelector ) {
- try {
- push.apply( results,
- newContext.querySelectorAll( newSelector )
- );
- return results;
- } catch ( qsaError ) {
- } finally {
- if ( nid === expando ) {
- context.removeAttribute( "id" );
- }
- }
- }
- }
- }
- }
+var CallbackQueue = function () {
+ function CallbackQueue(arg) {
+ _classCallCheck(this, CallbackQueue);
- // All others
- return select( selector.replace( rtrim, "$1" ), context, results, seed );
-}
+ this._callbacks = null;
+ this._contexts = null;
+ this._arg = arg;
+ }
-/**
- * Create key-value caches of limited size
- * @returns {function(string, object)} Returns the Object data after storing it on itself with
- * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
- * deleting the oldest entry
- */
-function createCache() {
- var keys = [];
+ /**
+ * Enqueues a callback to be invoked when `notifyAll` is invoked.
+ *
+ * @param {function} callback Invoked when `notifyAll` is invoked.
+ * @param {?object} context Context to call `callback` with.
+ * @internal
+ */
- function cache( key, value ) {
- // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
- if ( keys.push( key + " " ) > Expr.cacheLength ) {
- // Only keep the most recent entries
- delete cache[ keys.shift() ];
- }
- return (cache[ key + " " ] = value);
- }
- return cache;
-}
-/**
- * Mark a function for special use by Sizzle
- * @param {Function} fn The function to mark
- */
-function markFunction( fn ) {
- fn[ expando ] = true;
- return fn;
-}
+ CallbackQueue.prototype.enqueue = function enqueue(callback, context) {
+ this._callbacks = this._callbacks || [];
+ this._callbacks.push(callback);
+ this._contexts = this._contexts || [];
+ this._contexts.push(context);
+ };
-/**
- * Support testing using an element
- * @param {Function} fn Passed the created element and returns a boolean result
- */
-function assert( fn ) {
- var el = document.createElement("fieldset");
+ /**
+ * Invokes all enqueued callbacks and clears the queue. This is invoked after
+ * the DOM representation of a component has been created or updated.
+ *
+ * @internal
+ */
- try {
- return !!fn( el );
- } catch (e) {
- return false;
- } finally {
- // Remove from its parent by default
- if ( el.parentNode ) {
- el.parentNode.removeChild( el );
- }
- // release memory in IE
- el = null;
- }
-}
-/**
- * Adds the same handler for all of the specified attrs
- * @param {String} attrs Pipe-separated list of attributes
- * @param {Function} handler The method that will be applied
- */
-function addHandle( attrs, handler ) {
- var arr = attrs.split("|"),
- i = arr.length;
+ CallbackQueue.prototype.notifyAll = function notifyAll() {
+ var callbacks = this._callbacks;
+ var contexts = this._contexts;
+ var arg = this._arg;
+ if (callbacks && contexts) {
+ !(callbacks.length === contexts.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Mismatched list of contexts in callback queue') : _prodInvariant('24') : void 0;
+ this._callbacks = null;
+ this._contexts = null;
+ for (var i = 0; i < callbacks.length; i++) {
+ callbacks[i].call(contexts[i], arg);
+ }
+ callbacks.length = 0;
+ contexts.length = 0;
+ }
+ };
- while ( i-- ) {
- Expr.attrHandle[ arr[i] ] = handler;
- }
-}
+ CallbackQueue.prototype.checkpoint = function checkpoint() {
+ return this._callbacks ? this._callbacks.length : 0;
+ };
-/**
- * Checks document order of two siblings
- * @param {Element} a
- * @param {Element} b
- * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
- */
-function siblingCheck( a, b ) {
- var cur = b && a,
- diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
- a.sourceIndex - b.sourceIndex;
+ CallbackQueue.prototype.rollback = function rollback(len) {
+ if (this._callbacks && this._contexts) {
+ this._callbacks.length = len;
+ this._contexts.length = len;
+ }
+ };
- // Use IE sourceIndex if available on both nodes
- if ( diff ) {
- return diff;
- }
+ /**
+ * Resets the internal queue.
+ *
+ * @internal
+ */
- // Check if b follows a
- if ( cur ) {
- while ( (cur = cur.nextSibling) ) {
- if ( cur === b ) {
- return -1;
- }
- }
- }
- return a ? 1 : -1;
-}
+ CallbackQueue.prototype.reset = function reset() {
+ this._callbacks = null;
+ this._contexts = null;
+ };
-/**
- * Returns a function to use in pseudos for input types
- * @param {String} type
- */
-function createInputPseudo( type ) {
- return function( elem ) {
- var name = elem.nodeName.toLowerCase();
- return name === "input" && elem.type === type;
- };
-}
+ /**
+ * `PooledClass` looks for this.
+ */
-/**
- * Returns a function to use in pseudos for buttons
- * @param {String} type
- */
-function createButtonPseudo( type ) {
- return function( elem ) {
- var name = elem.nodeName.toLowerCase();
- return (name === "input" || name === "button") && elem.type === type;
- };
-}
-/**
- * Returns a function to use in pseudos for :enabled/:disabled
- * @param {Boolean} disabled true for :disabled; false for :enabled
- */
-function createDisabledPseudo( disabled ) {
+ CallbackQueue.prototype.destructor = function destructor() {
+ this.reset();
+ };
- // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
- return function( elem ) {
+ return CallbackQueue;
+}();
- // Only certain elements can match :enabled or :disabled
- // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
- // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
- if ( "form" in elem ) {
+module.exports = PooledClass.addPoolingTo(CallbackQueue);
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
- // Check for inherited disabledness on relevant non-disabled elements:
- // * listed form-associated elements in a disabled fieldset
- // https://html.spec.whatwg.org/multipage/forms.html#category-listed
- // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled
- // * option elements in a disabled optgroup
- // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
- // All such elements have a "form" property.
- if ( elem.parentNode && elem.disabled === false ) {
+/***/ }),
+/* 259 */
+/***/ (function(module, exports, __webpack_require__) {
- // Option elements defer to a parent optgroup if present
- if ( "label" in elem ) {
- if ( "label" in elem.parentNode ) {
- return elem.parentNode.disabled === disabled;
- } else {
- return elem.disabled === disabled;
- }
- }
+"use strict";
+/**
+ * Copyright (c) 2013-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ */
- // Support: IE 6 - 11
- // Use the isDisabled shortcut property to check for disabled fieldset ancestors
- return elem.isDisabled === disabled ||
- // Where there is no isDisabled, check manually
- /* jshint -W018 */
- elem.isDisabled !== !disabled &&
- disabledAncestor( elem ) === disabled;
- }
- return elem.disabled === disabled;
+var ReactDOMComponentTree = __webpack_require__(13);
- // Try to winnow out elements that can't be disabled before trusting the disabled property.
- // Some victims get caught in our net (label, legend, menu, track), but it shouldn't
- // even exist on them, let alone have a boolean value.
- } else if ( "label" in elem ) {
- return elem.disabled === disabled;
- }
+function isCheckable(elem) {
+ var type = elem.type;
+ var nodeName = elem.nodeName;
+ return nodeName && nodeName.toLowerCase() === 'input' && (type === 'checkbox' || type === 'radio');
+}
- // Remaining elements are neither :enabled nor :disabled
- return false;
- };
+function getTracker(inst) {
+ return inst._wrapperState.valueTracker;
}
-/**
- * Returns a function to use in pseudos for positionals
- * @param {Function} fn
- */
-function createPositionalPseudo( fn ) {
- return markFunction(function( argument ) {
- argument = +argument;
- return markFunction(function( seed, matches ) {
- var j,
- matchIndexes = fn( [], seed.length, argument ),
- i = matchIndexes.length;
+function attachTracker(inst, tracker) {
+ inst._wrapperState.valueTracker = tracker;
+}
- // Match elements found at the specified indexes
- while ( i-- ) {
- if ( seed[ (j = matchIndexes[i]) ] ) {
- seed[j] = !(matches[j] = seed[j]);
- }
- }
- });
- });
+function detachTracker(inst) {
+ inst._wrapperState.valueTracker = null;
}
-/**
- * Checks a node for validity as a Sizzle context
- * @param {Element|Object=} context
- * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
- */
-function testContext( context ) {
- return context && typeof context.getElementsByTagName !== "undefined" && context;
+function getValueFromNode(node) {
+ var value;
+ if (node) {
+ value = isCheckable(node) ? '' + node.checked : node.value;
+ }
+ return value;
}
-// Expose support vars for convenience
-support = Sizzle.support = {};
+var inputValueTracking = {
+ // exposed for testing
+ _getTrackerFromNode: function (node) {
+ return getTracker(ReactDOMComponentTree.getInstanceFromNode(node));
+ },
-/**
- * Detects XML nodes
- * @param {Element|Object} elem An element or a document
- * @returns {Boolean} True iff elem is a non-HTML XML node
- */
-isXML = Sizzle.isXML = function( elem ) {
- // documentElement is verified for cases where it doesn't yet exist
- // (such as loading iframes in IE - #4833)
- var documentElement = elem && (elem.ownerDocument || elem).documentElement;
- return documentElement ? documentElement.nodeName !== "HTML" : false;
-};
-/**
- * Sets document-related variables once based on the current document
- * @param {Element|Object} [doc] An element or document object to use to set the document
- * @returns {Object} Returns the current document
- */
-setDocument = Sizzle.setDocument = function( node ) {
- var hasCompare, subWindow,
- doc = node ? node.ownerDocument || node : preferredDoc;
+ track: function (inst) {
+ if (getTracker(inst)) {
+ return;
+ }
- // Return early if doc is invalid or already selected
- if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
- return document;
- }
+ var node = ReactDOMComponentTree.getNodeFromInstance(inst);
+ var valueField = isCheckable(node) ? 'checked' : 'value';
+ var descriptor = Object.getOwnPropertyDescriptor(node.constructor.prototype, valueField);
- // Update global variables
- document = doc;
- docElem = document.documentElement;
- documentIsHTML = !isXML( document );
-
- // Support: IE 9-11, Edge
- // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
- if ( preferredDoc !== document &&
- (subWindow = document.defaultView) && subWindow.top !== subWindow ) {
-
- // Support: IE 11, Edge
- if ( subWindow.addEventListener ) {
- subWindow.addEventListener( "unload", unloadHandler, false );
+ var currentValue = '' + node[valueField];
- // Support: IE 9 - 10 only
- } else if ( subWindow.attachEvent ) {
- subWindow.attachEvent( "onunload", unloadHandler );
- }
- }
+ // if someone has already defined a value or Safari, then bail
+ // and don't track value will cause over reporting of changes,
+ // but it's better then a hard failure
+ // (needed for certain tests that spyOn input values and Safari)
+ if (node.hasOwnProperty(valueField) || typeof descriptor.get !== 'function' || typeof descriptor.set !== 'function') {
+ return;
+ }
- /* Attributes
- ---------------------------------------------------------------------- */
+ Object.defineProperty(node, valueField, {
+ enumerable: descriptor.enumerable,
+ configurable: true,
+ get: function () {
+ return descriptor.get.call(this);
+ },
+ set: function (value) {
+ currentValue = '' + value;
+ descriptor.set.call(this, value);
+ }
+ });
- // Support: IE<8
- // Verify that getAttribute really returns attributes and not properties
- // (excepting IE8 booleans)
- support.attributes = assert(function( el ) {
- el.className = "i";
- return !el.getAttribute("className");
- });
+ attachTracker(inst, {
+ getValue: function () {
+ return currentValue;
+ },
+ setValue: function (value) {
+ currentValue = '' + value;
+ },
+ stopTracking: function () {
+ detachTracker(inst);
+ delete node[valueField];
+ }
+ });
+ },
- /* getElement(s)By*
- ---------------------------------------------------------------------- */
+ updateValueIfChanged: function (inst) {
+ if (!inst) {
+ return false;
+ }
+ var tracker = getTracker(inst);
- // Check if getElementsByTagName("*") returns only elements
- support.getElementsByTagName = assert(function( el ) {
- el.appendChild( document.createComment("") );
- return !el.getElementsByTagName("*").length;
- });
+ if (!tracker) {
+ inputValueTracking.track(inst);
+ return true;
+ }
- // Support: IE<9
- support.getElementsByClassName = rnative.test( document.getElementsByClassName );
+ var lastValue = tracker.getValue();
+ var nextValue = getValueFromNode(ReactDOMComponentTree.getNodeFromInstance(inst));
- // Support: IE<10
- // Check if getElementById returns elements by name
- // The broken getElementById methods don't pick up programmatically-set names,
- // so use a roundabout getElementsByName test
- support.getById = assert(function( el ) {
- docElem.appendChild( el ).id = expando;
- return !document.getElementsByName || !document.getElementsByName( expando ).length;
- });
+ if (nextValue !== lastValue) {
+ tracker.setValue(nextValue);
+ return true;
+ }
- // ID filter and find
- if ( support.getById ) {
- Expr.filter["ID"] = function( id ) {
- var attrId = id.replace( runescape, funescape );
- return function( elem ) {
- return elem.getAttribute("id") === attrId;
- };
- };
- Expr.find["ID"] = function( id, context ) {
- if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
- var elem = context.getElementById( id );
- return elem ? [ elem ] : [];
- }
- };
- } else {
- Expr.filter["ID"] = function( id ) {
- var attrId = id.replace( runescape, funescape );
- return function( elem ) {
- var node = typeof elem.getAttributeNode !== "undefined" &&
- elem.getAttributeNode("id");
- return node && node.value === attrId;
- };
- };
+ return false;
+ },
+ stopTracking: function (inst) {
+ var tracker = getTracker(inst);
+ if (tracker) {
+ tracker.stopTracking();
+ }
+ }
+};
- // Support: IE 6 - 7 only
- // getElementById is not reliable as a find shortcut
- Expr.find["ID"] = function( id, context ) {
- if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
- var node, i, elems,
- elem = context.getElementById( id );
+module.exports = inputValueTracking;
- if ( elem ) {
+/***/ }),
+/* 260 */
+/***/ (function(module, exports, __webpack_require__) {
- // Verify the id attribute
- node = elem.getAttributeNode("id");
- if ( node && node.value === id ) {
- return [ elem ];
- }
+"use strict";
+/**
+ * Copyright (c) 2013-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ *
+ */
- // Fall back on getElementsByName
- elems = context.getElementsByName( id );
- i = 0;
- while ( (elem = elems[i++]) ) {
- node = elem.getAttributeNode("id");
- if ( node && node.value === id ) {
- return [ elem ];
- }
- }
- }
- return [];
- }
- };
- }
- // Tag
- Expr.find["TAG"] = support.getElementsByTagName ?
- function( tag, context ) {
- if ( typeof context.getElementsByTagName !== "undefined" ) {
- return context.getElementsByTagName( tag );
+/**
+ * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary
+ */
- // DocumentFragment nodes don't have gEBTN
- } else if ( support.qsa ) {
- return context.querySelectorAll( tag );
- }
- } :
+var supportedInputTypes = {
+ color: true,
+ date: true,
+ datetime: true,
+ 'datetime-local': true,
+ email: true,
+ month: true,
+ number: true,
+ password: true,
+ range: true,
+ search: true,
+ tel: true,
+ text: true,
+ time: true,
+ url: true,
+ week: true
+};
- function( tag, context ) {
- var elem,
- tmp = [],
- i = 0,
- // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
- results = context.getElementsByTagName( tag );
+function isTextInputElement(elem) {
+ var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();
- // Filter out possible comments
- if ( tag === "*" ) {
- while ( (elem = results[i++]) ) {
- if ( elem.nodeType === 1 ) {
- tmp.push( elem );
- }
- }
+ if (nodeName === 'input') {
+ return !!supportedInputTypes[elem.type];
+ }
- return tmp;
- }
- return results;
- };
+ if (nodeName === 'textarea') {
+ return true;
+ }
- // Class
- Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
- if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
- return context.getElementsByClassName( className );
- }
- };
+ return false;
+}
- /* QSA/matchesSelector
- ---------------------------------------------------------------------- */
+module.exports = isTextInputElement;
- // QSA and matchesSelector support
+/***/ }),
+/* 261 */
+/***/ (function(module, exports, __webpack_require__) {
- // matchesSelector(:active) reports false when true (IE9/Opera 11.5)
- rbuggyMatches = [];
+"use strict";
+/**
+ * Copyright (c) 2013-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ */
- // qSa(:focus) reports false when true (Chrome 21)
- // We allow this because of a bug in IE8/9 that throws an error
- // whenever `document.activeElement` is accessed on an iframe
- // So, we allow :focus to pass through QSA all the time to avoid the IE error
- // See https://bugs.jquery.com/ticket/13378
- rbuggyQSA = [];
- if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
- // Build QSA regex
- // Regex strategy adopted from Diego Perini
- assert(function( el ) {
- // Select is set to empty string on purpose
- // This is to test IE's treatment of not explicitly
- // setting a boolean content attribute,
- // since its presence should be enough
- // https://bugs.jquery.com/ticket/12359
- docElem.appendChild( el ).innerHTML = "
" +
- "
";
- // Support: IE8, Opera 11-12.16
- // Nothing should be selected when empty strings follow ^= or $= or *=
- // The test attribute must be unknown in Opera but "safe" for WinRT
- // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
- if ( el.querySelectorAll("[msallowcapture^='']").length ) {
- rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
- }
+var ViewportMetrics = {
+ currentScrollLeft: 0,
- // Support: IE8
- // Boolean attributes and "value" are not treated correctly
- if ( !el.querySelectorAll("[selected]").length ) {
- rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
- }
+ currentScrollTop: 0,
- // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
- if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
- rbuggyQSA.push("~=");
- }
+ refreshScrollValues: function (scrollPosition) {
+ ViewportMetrics.currentScrollLeft = scrollPosition.x;
+ ViewportMetrics.currentScrollTop = scrollPosition.y;
+ }
+};
- // Webkit/Opera - :checked should return selected option elements
- // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
- // IE8 throws error here and will not see later tests
- if ( !el.querySelectorAll(":checked").length ) {
- rbuggyQSA.push(":checked");
- }
+module.exports = ViewportMetrics;
- // Support: Safari 8+, iOS 8+
- // https://bugs.webkit.org/show_bug.cgi?id=136851
- // In-page `selector#id sibling-combinator selector` fails
- if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
- rbuggyQSA.push(".#.+[+~]");
- }
- });
+/***/ }),
+/* 262 */
+/***/ (function(module, exports, __webpack_require__) {
- assert(function( el ) {
- el.innerHTML = "
" +
- "
";
+"use strict";
+/**
+ * Copyright (c) 2013-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ */
- // Support: Windows 8 Native Apps
- // The type and name attributes are restricted during .innerHTML assignment
- var input = document.createElement("input");
- input.setAttribute( "type", "hidden" );
- el.appendChild( input ).setAttribute( "name", "D" );
- // Support: IE8
- // Enforce case-sensitivity of name attribute
- if ( el.querySelectorAll("[name=d]").length ) {
- rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
- }
- // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
- // IE8 throws error here and will not see later tests
- if ( el.querySelectorAll(":enabled").length !== 2 ) {
- rbuggyQSA.push( ":enabled", ":disabled" );
- }
+var ExecutionEnvironment = __webpack_require__(14);
+var escapeTextContentForBrowser = __webpack_require__(104);
+var setInnerHTML = __webpack_require__(156);
- // Support: IE9-11+
- // IE's :disabled selector does not pick up the children of disabled fieldsets
- docElem.appendChild( el ).disabled = true;
- if ( el.querySelectorAll(":disabled").length !== 2 ) {
- rbuggyQSA.push( ":enabled", ":disabled" );
- }
+/**
+ * Set the textContent property of a node, ensuring that whitespace is preserved
+ * even in IE8. innerText is a poor substitute for textContent and, among many
+ * issues, inserts
instead of the literal newline chars. innerHTML behaves
+ * as it should.
+ *
+ * @param {DOMElement} node
+ * @param {string} text
+ * @internal
+ */
+var setTextContent = function (node, text) {
+ if (text) {
+ var firstChild = node.firstChild;
- // Opera 10-11 does not throw on post-comma invalid pseudos
- el.querySelectorAll("*,:x");
- rbuggyQSA.push(",.*:");
- });
- }
+ if (firstChild && firstChild === node.lastChild && firstChild.nodeType === 3) {
+ firstChild.nodeValue = text;
+ return;
+ }
+ }
+ node.textContent = text;
+};
- if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
- docElem.webkitMatchesSelector ||
- docElem.mozMatchesSelector ||
- docElem.oMatchesSelector ||
- docElem.msMatchesSelector) )) ) {
+if (ExecutionEnvironment.canUseDOM) {
+ if (!('textContent' in document.documentElement)) {
+ setTextContent = function (node, text) {
+ if (node.nodeType === 3) {
+ node.nodeValue = text;
+ return;
+ }
+ setInnerHTML(node, escapeTextContentForBrowser(text));
+ };
+ }
+}
- assert(function( el ) {
- // Check to see if it's possible to do matchesSelector
- // on a disconnected node (IE 9)
- support.disconnectedMatch = matches.call( el, "*" );
+module.exports = setTextContent;
- // This should fail with an exception
- // Gecko does not error, returns false instead
- matches.call( el, "[s!='']:x" );
- rbuggyMatches.push( "!=", pseudos );
- });
- }
+/***/ }),
+/* 263 */
+/***/ (function(module, exports, __webpack_require__) {
- rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
- rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
+"use strict";
+/**
+ * Copyright (c) 2013-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ */
- /* Contains
- ---------------------------------------------------------------------- */
- hasCompare = rnative.test( docElem.compareDocumentPosition );
- // Element contains another
- // Purposefully self-exclusive
- // As in, an element does not contain itself
- contains = hasCompare || rnative.test( docElem.contains ) ?
- function( a, b ) {
- var adown = a.nodeType === 9 ? a.documentElement : a,
- bup = b && b.parentNode;
- return a === bup || !!( bup && bup.nodeType === 1 && (
- adown.contains ?
- adown.contains( bup ) :
- a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
- ));
- } :
- function( a, b ) {
- if ( b ) {
- while ( (b = b.parentNode) ) {
- if ( b === a ) {
- return true;
- }
- }
- }
- return false;
- };
- /* Sorting
- ---------------------------------------------------------------------- */
+/**
+ * @param {DOMElement} node input/textarea to focus
+ */
- // Document order sorting
- sortOrder = hasCompare ?
- function( a, b ) {
+function focusNode(node) {
+ // IE8 can throw "Can't move focus to the control because it is invisible,
+ // not enabled, or of a type that does not accept the focus." for all kinds of
+ // reasons that are too expensive and fragile to test.
+ try {
+ node.focus();
+ } catch (e) {}
+}
- // Flag for duplicate removal
- if ( a === b ) {
- hasDuplicate = true;
- return 0;
- }
+module.exports = focusNode;
- // Sort on method existence if only one input has compareDocumentPosition
- var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
- if ( compare ) {
- return compare;
- }
+/***/ }),
+/* 264 */
+/***/ (function(module, exports, __webpack_require__) {
- // Calculate position if both inputs belong to the same document
- compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
- a.compareDocumentPosition( b ) :
+"use strict";
+/**
+ * Copyright (c) 2013-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ */
- // Otherwise we know they are disconnected
- 1;
- // Disconnected nodes
- if ( compare & 1 ||
- (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
- // Choose the first element that is related to our preferred document
- if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
- return -1;
- }
- if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
- return 1;
- }
+/**
+ * CSS properties which accept numbers but are not in units of "px".
+ */
- // Maintain original order
- return sortInput ?
- ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
- 0;
- }
+var isUnitlessNumber = {
+ animationIterationCount: true,
+ borderImageOutset: true,
+ borderImageSlice: true,
+ borderImageWidth: true,
+ boxFlex: true,
+ boxFlexGroup: true,
+ boxOrdinalGroup: true,
+ columnCount: true,
+ columns: true,
+ flex: true,
+ flexGrow: true,
+ flexPositive: true,
+ flexShrink: true,
+ flexNegative: true,
+ flexOrder: true,
+ gridRow: true,
+ gridRowEnd: true,
+ gridRowSpan: true,
+ gridRowStart: true,
+ gridColumn: true,
+ gridColumnEnd: true,
+ gridColumnSpan: true,
+ gridColumnStart: true,
+ fontWeight: true,
+ lineClamp: true,
+ lineHeight: true,
+ opacity: true,
+ order: true,
+ orphans: true,
+ tabSize: true,
+ widows: true,
+ zIndex: true,
+ zoom: true,
- return compare & 4 ? -1 : 1;
- } :
- function( a, b ) {
- // Exit early if the nodes are identical
- if ( a === b ) {
- hasDuplicate = true;
- return 0;
- }
+ // SVG-related properties
+ fillOpacity: true,
+ floodOpacity: true,
+ stopOpacity: true,
+ strokeDasharray: true,
+ strokeDashoffset: true,
+ strokeMiterlimit: true,
+ strokeOpacity: true,
+ strokeWidth: true
+};
- var cur,
- i = 0,
- aup = a.parentNode,
- bup = b.parentNode,
- ap = [ a ],
- bp = [ b ];
+/**
+ * @param {string} prefix vendor-specific prefix, eg: Webkit
+ * @param {string} key style name, eg: transitionDuration
+ * @return {string} style name prefixed with `prefix`, properly camelCased, eg:
+ * WebkitTransitionDuration
+ */
+function prefixKey(prefix, key) {
+ return prefix + key.charAt(0).toUpperCase() + key.substring(1);
+}
- // Parentless nodes are either documents or disconnected
- if ( !aup || !bup ) {
- return a === document ? -1 :
- b === document ? 1 :
- aup ? -1 :
- bup ? 1 :
- sortInput ?
- ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
- 0;
+/**
+ * Support style names that may come passed in prefixed by adding permutations
+ * of vendor prefixes.
+ */
+var prefixes = ['Webkit', 'ms', 'Moz', 'O'];
- // If the nodes are siblings, we can do a quick check
- } else if ( aup === bup ) {
- return siblingCheck( a, b );
- }
+// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an
+// infinite loop, because it iterates over the newly added props too.
+Object.keys(isUnitlessNumber).forEach(function (prop) {
+ prefixes.forEach(function (prefix) {
+ isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];
+ });
+});
- // Otherwise we need full lists of their ancestors for comparison
- cur = a;
- while ( (cur = cur.parentNode) ) {
- ap.unshift( cur );
- }
- cur = b;
- while ( (cur = cur.parentNode) ) {
- bp.unshift( cur );
- }
-
- // Walk down the tree looking for a discrepancy
- while ( ap[i] === bp[i] ) {
- i++;
- }
-
- return i ?
- // Do a sibling check if the nodes have a common ancestor
- siblingCheck( ap[i], bp[i] ) :
-
- // Otherwise nodes in our document sort first
- ap[i] === preferredDoc ? -1 :
- bp[i] === preferredDoc ? 1 :
- 0;
- };
-
- return document;
+/**
+ * Most style properties can be unset by doing .style[prop] = '' but IE8
+ * doesn't like doing that with shorthand properties so for the properties that
+ * IE8 breaks on, which are listed here, we instead unset each of the
+ * individual properties. See http://bugs.jquery.com/ticket/12385.
+ * The 4-value 'clock' properties like margin, padding, border-width seem to
+ * behave without any problems. Curiously, list-style works too without any
+ * special prodding.
+ */
+var shorthandPropertyExpansions = {
+ background: {
+ backgroundAttachment: true,
+ backgroundColor: true,
+ backgroundImage: true,
+ backgroundPositionX: true,
+ backgroundPositionY: true,
+ backgroundRepeat: true
+ },
+ backgroundPosition: {
+ backgroundPositionX: true,
+ backgroundPositionY: true
+ },
+ border: {
+ borderWidth: true,
+ borderStyle: true,
+ borderColor: true
+ },
+ borderBottom: {
+ borderBottomWidth: true,
+ borderBottomStyle: true,
+ borderBottomColor: true
+ },
+ borderLeft: {
+ borderLeftWidth: true,
+ borderLeftStyle: true,
+ borderLeftColor: true
+ },
+ borderRight: {
+ borderRightWidth: true,
+ borderRightStyle: true,
+ borderRightColor: true
+ },
+ borderTop: {
+ borderTopWidth: true,
+ borderTopStyle: true,
+ borderTopColor: true
+ },
+ font: {
+ fontStyle: true,
+ fontVariant: true,
+ fontWeight: true,
+ fontSize: true,
+ lineHeight: true,
+ fontFamily: true
+ },
+ outline: {
+ outlineWidth: true,
+ outlineStyle: true,
+ outlineColor: true
+ }
};
-Sizzle.matches = function( expr, elements ) {
- return Sizzle( expr, null, null, elements );
+var CSSProperty = {
+ isUnitlessNumber: isUnitlessNumber,
+ shorthandPropertyExpansions: shorthandPropertyExpansions
};
-Sizzle.matchesSelector = function( elem, expr ) {
- // Set document vars if needed
- if ( ( elem.ownerDocument || elem ) !== document ) {
- setDocument( elem );
- }
-
- // Make sure that attribute selectors are quoted
- expr = expr.replace( rattributeQuotes, "='$1']" );
-
- if ( support.matchesSelector && documentIsHTML &&
- !compilerCache[ expr + " " ] &&
- ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
- ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
+module.exports = CSSProperty;
- try {
- var ret = matches.call( elem, expr );
+/***/ }),
+/* 265 */
+/***/ (function(module, exports, __webpack_require__) {
- // IE 9's matchesSelector returns false on disconnected nodes
- if ( ret || support.disconnectedMatch ||
- // As well, disconnected nodes are said to be in a document
- // fragment in IE 9
- elem.document && elem.document.nodeType !== 11 ) {
- return ret;
- }
- } catch (e) {}
- }
+"use strict";
+/* WEBPACK VAR INJECTION */(function(process) {/**
+ * Copyright (c) 2013-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ */
- return Sizzle( expr, document, null, [ elem ] ).length > 0;
-};
-Sizzle.contains = function( context, elem ) {
- // Set document vars if needed
- if ( ( context.ownerDocument || context ) !== document ) {
- setDocument( context );
- }
- return contains( context, elem );
-};
-Sizzle.attr = function( elem, name ) {
- // Set document vars if needed
- if ( ( elem.ownerDocument || elem ) !== document ) {
- setDocument( elem );
- }
+var DOMProperty = __webpack_require__(61);
+var ReactDOMComponentTree = __webpack_require__(13);
+var ReactInstrumentation = __webpack_require__(22);
- var fn = Expr.attrHandle[ name.toLowerCase() ],
- // Don't get fooled by Object.prototype properties (jQuery #13807)
- val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
- fn( elem, name, !documentIsHTML ) :
- undefined;
+var quoteAttributeValueForBrowser = __webpack_require__(529);
+var warning = __webpack_require__(4);
- return val !== undefined ?
- val :
- support.attributes || !documentIsHTML ?
- elem.getAttribute( name ) :
- (val = elem.getAttributeNode(name)) && val.specified ?
- val.value :
- null;
-};
+var VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + DOMProperty.ATTRIBUTE_NAME_START_CHAR + '][' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$');
+var illegalAttributeNameCache = {};
+var validatedAttributeNameCache = {};
-Sizzle.escape = function( sel ) {
- return (sel + "").replace( rcssescape, fcssescape );
-};
+function isAttributeNameSafe(attributeName) {
+ if (validatedAttributeNameCache.hasOwnProperty(attributeName)) {
+ return true;
+ }
+ if (illegalAttributeNameCache.hasOwnProperty(attributeName)) {
+ return false;
+ }
+ if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {
+ validatedAttributeNameCache[attributeName] = true;
+ return true;
+ }
+ illegalAttributeNameCache[attributeName] = true;
+ process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid attribute name: `%s`', attributeName) : void 0;
+ return false;
+}
-Sizzle.error = function( msg ) {
- throw new Error( "Syntax error, unrecognized expression: " + msg );
-};
+function shouldIgnoreValue(propertyInfo, value) {
+ return value == null || propertyInfo.hasBooleanValue && !value || propertyInfo.hasNumericValue && isNaN(value) || propertyInfo.hasPositiveNumericValue && value < 1 || propertyInfo.hasOverloadedBooleanValue && value === false;
+}
/**
- * Document sorting and removing duplicates
- * @param {ArrayLike} results
+ * Operations for dealing with DOM properties.
*/
-Sizzle.uniqueSort = function( results ) {
- var elem,
- duplicates = [],
- j = 0,
- i = 0;
+var DOMPropertyOperations = {
+ /**
+ * Creates markup for the ID property.
+ *
+ * @param {string} id Unescaped ID.
+ * @return {string} Markup string.
+ */
+ createMarkupForID: function (id) {
+ return DOMProperty.ID_ATTRIBUTE_NAME + '=' + quoteAttributeValueForBrowser(id);
+ },
- // Unless we *know* we can detect duplicates, assume their presence
- hasDuplicate = !support.detectDuplicates;
- sortInput = !support.sortStable && results.slice( 0 );
- results.sort( sortOrder );
+ setAttributeForID: function (node, id) {
+ node.setAttribute(DOMProperty.ID_ATTRIBUTE_NAME, id);
+ },
- if ( hasDuplicate ) {
- while ( (elem = results[i++]) ) {
- if ( elem === results[ i ] ) {
- j = duplicates.push( i );
- }
- }
- while ( j-- ) {
- results.splice( duplicates[ j ], 1 );
- }
- }
+ createMarkupForRoot: function () {
+ return DOMProperty.ROOT_ATTRIBUTE_NAME + '=""';
+ },
- // Clear input after sorting to release objects
- // See https://github.com/jquery/sizzle/pull/225
- sortInput = null;
+ setAttributeForRoot: function (node) {
+ node.setAttribute(DOMProperty.ROOT_ATTRIBUTE_NAME, '');
+ },
- return results;
-};
+ /**
+ * Creates markup for a property.
+ *
+ * @param {string} name
+ * @param {*} value
+ * @return {?string} Markup string, or null if the property was invalid.
+ */
+ createMarkupForProperty: function (name, value) {
+ var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;
+ if (propertyInfo) {
+ if (shouldIgnoreValue(propertyInfo, value)) {
+ return '';
+ }
+ var attributeName = propertyInfo.attributeName;
+ if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) {
+ return attributeName + '=""';
+ }
+ return attributeName + '=' + quoteAttributeValueForBrowser(value);
+ } else if (DOMProperty.isCustomAttribute(name)) {
+ if (value == null) {
+ return '';
+ }
+ return name + '=' + quoteAttributeValueForBrowser(value);
+ }
+ return null;
+ },
-/**
- * Utility function for retrieving the text value of an array of DOM nodes
- * @param {Array|Element} elem
- */
-getText = Sizzle.getText = function( elem ) {
- var node,
- ret = "",
- i = 0,
- nodeType = elem.nodeType;
+ /**
+ * Creates markup for a custom property.
+ *
+ * @param {string} name
+ * @param {*} value
+ * @return {string} Markup string, or empty string if the property was invalid.
+ */
+ createMarkupForCustomAttribute: function (name, value) {
+ if (!isAttributeNameSafe(name) || value == null) {
+ return '';
+ }
+ return name + '=' + quoteAttributeValueForBrowser(value);
+ },
- if ( !nodeType ) {
- // If no nodeType, this is expected to be an array
- while ( (node = elem[i++]) ) {
- // Do not traverse comment nodes
- ret += getText( node );
- }
- } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
- // Use textContent for elements
- // innerText usage removed for consistency of new lines (jQuery #11153)
- if ( typeof elem.textContent === "string" ) {
- return elem.textContent;
- } else {
- // Traverse its children
- for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
- ret += getText( elem );
- }
- }
- } else if ( nodeType === 3 || nodeType === 4 ) {
- return elem.nodeValue;
- }
- // Do not include comment or processing instruction nodes
+ /**
+ * Sets the value for a property on a node.
+ *
+ * @param {DOMElement} node
+ * @param {string} name
+ * @param {*} value
+ */
+ setValueForProperty: function (node, name, value) {
+ var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;
+ if (propertyInfo) {
+ var mutationMethod = propertyInfo.mutationMethod;
+ if (mutationMethod) {
+ mutationMethod(node, value);
+ } else if (shouldIgnoreValue(propertyInfo, value)) {
+ this.deleteValueForProperty(node, name);
+ return;
+ } else if (propertyInfo.mustUseProperty) {
+ // Contrary to `setAttribute`, object properties are properly
+ // `toString`ed by IE8/9.
+ node[propertyInfo.propertyName] = value;
+ } else {
+ var attributeName = propertyInfo.attributeName;
+ var namespace = propertyInfo.attributeNamespace;
+ // `setAttribute` with objects becomes only `[object]` in IE8/9,
+ // ('' + value) makes it output the correct toString()-value.
+ if (namespace) {
+ node.setAttributeNS(namespace, attributeName, '' + value);
+ } else if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) {
+ node.setAttribute(attributeName, '');
+ } else {
+ node.setAttribute(attributeName, '' + value);
+ }
+ }
+ } else if (DOMProperty.isCustomAttribute(name)) {
+ DOMPropertyOperations.setValueForAttribute(node, name, value);
+ return;
+ }
- return ret;
-};
+ if (process.env.NODE_ENV !== 'production') {
+ var payload = {};
+ payload[name] = value;
+ ReactInstrumentation.debugTool.onHostOperation({
+ instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,
+ type: 'update attribute',
+ payload: payload
+ });
+ }
+ },
-Expr = Sizzle.selectors = {
+ setValueForAttribute: function (node, name, value) {
+ if (!isAttributeNameSafe(name)) {
+ return;
+ }
+ if (value == null) {
+ node.removeAttribute(name);
+ } else {
+ node.setAttribute(name, '' + value);
+ }
- // Can be adjusted by the user
- cacheLength: 50,
+ if (process.env.NODE_ENV !== 'production') {
+ var payload = {};
+ payload[name] = value;
+ ReactInstrumentation.debugTool.onHostOperation({
+ instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,
+ type: 'update attribute',
+ payload: payload
+ });
+ }
+ },
- createPseudo: markFunction,
+ /**
+ * Deletes an attributes from a node.
+ *
+ * @param {DOMElement} node
+ * @param {string} name
+ */
+ deleteValueForAttribute: function (node, name) {
+ node.removeAttribute(name);
+ if (process.env.NODE_ENV !== 'production') {
+ ReactInstrumentation.debugTool.onHostOperation({
+ instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,
+ type: 'remove attribute',
+ payload: name
+ });
+ }
+ },
- match: matchExpr,
+ /**
+ * Deletes the value for a property on a node.
+ *
+ * @param {DOMElement} node
+ * @param {string} name
+ */
+ deleteValueForProperty: function (node, name) {
+ var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;
+ if (propertyInfo) {
+ var mutationMethod = propertyInfo.mutationMethod;
+ if (mutationMethod) {
+ mutationMethod(node, undefined);
+ } else if (propertyInfo.mustUseProperty) {
+ var propName = propertyInfo.propertyName;
+ if (propertyInfo.hasBooleanValue) {
+ node[propName] = false;
+ } else {
+ node[propName] = '';
+ }
+ } else {
+ node.removeAttribute(propertyInfo.attributeName);
+ }
+ } else if (DOMProperty.isCustomAttribute(name)) {
+ node.removeAttribute(name);
+ }
- attrHandle: {},
+ if (process.env.NODE_ENV !== 'production') {
+ ReactInstrumentation.debugTool.onHostOperation({
+ instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,
+ type: 'remove attribute',
+ payload: name
+ });
+ }
+ }
+};
- find: {},
+module.exports = DOMPropertyOperations;
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
- relative: {
- ">": { dir: "parentNode", first: true },
- " ": { dir: "parentNode" },
- "+": { dir: "previousSibling", first: true },
- "~": { dir: "previousSibling" }
- },
+/***/ }),
+/* 266 */
+/***/ (function(module, exports, __webpack_require__) {
- preFilter: {
- "ATTR": function( match ) {
- match[1] = match[1].replace( runescape, funescape );
+"use strict";
+/**
+ * Copyright (c) 2013-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ *
+ */
- // Move the given value to match[3] whether quoted or unquoted
- match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
- if ( match[2] === "~=" ) {
- match[3] = " " + match[3] + " ";
- }
- return match.slice( 0, 4 );
- },
+var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
- "CHILD": function( match ) {
- /* matches from matchExpr["CHILD"]
- 1 type (only|nth|...)
- 2 what (child|of-type)
- 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
- 4 xn-component of xn+y argument ([+-]?\d*n|)
- 5 sign of xn-component
- 6 x of xn-component
- 7 sign of y-component
- 8 y of y-component
- */
- match[1] = match[1].toLowerCase();
+module.exports = ReactPropTypesSecret;
- if ( match[1].slice( 0, 3 ) === "nth" ) {
- // nth-* requires argument
- if ( !match[3] ) {
- Sizzle.error( match[0] );
- }
+/***/ }),
+/* 267 */
+/***/ (function(module, exports, __webpack_require__) {
- // numeric x and y parameters for Expr.filter.CHILD
- // remember that false/true cast respectively to 0/1
- match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
- match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+"use strict";
+/* WEBPACK VAR INJECTION */(function(process) {/**
+ * Copyright (c) 2013-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ */
- // other types prohibit arguments
- } else if ( match[3] ) {
- Sizzle.error( match[0] );
- }
- return match;
- },
- "PSEUDO": function( match ) {
- var excess,
- unquoted = !match[6] && match[2];
+var _assign = __webpack_require__(9);
- if ( matchExpr["CHILD"].test( match[0] ) ) {
- return null;
- }
+var LinkedValueUtils = __webpack_require__(159);
+var ReactDOMComponentTree = __webpack_require__(13);
+var ReactUpdates = __webpack_require__(28);
- // Accept quoted arguments as-is
- if ( match[3] ) {
- match[2] = match[4] || match[5] || "";
+var warning = __webpack_require__(4);
- // Strip excess characters from unquoted arguments
- } else if ( unquoted && rpseudo.test( unquoted ) &&
- // Get excess from tokenize (recursively)
- (excess = tokenize( unquoted, true )) &&
- // advance to the next closing parenthesis
- (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+var didWarnValueLink = false;
+var didWarnValueDefaultValue = false;
- // excess is a negative index
- match[0] = match[0].slice( 0, excess );
- match[2] = unquoted.slice( 0, excess );
- }
+function updateOptionsIfPendingUpdateAndMounted() {
+ if (this._rootNodeID && this._wrapperState.pendingUpdate) {
+ this._wrapperState.pendingUpdate = false;
- // Return only captures needed by the pseudo filter method (type and argument)
- return match.slice( 0, 3 );
- }
- },
-
- filter: {
+ var props = this._currentElement.props;
+ var value = LinkedValueUtils.getValue(props);
- "TAG": function( nodeNameSelector ) {
- var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
- return nodeNameSelector === "*" ?
- function() { return true; } :
- function( elem ) {
- return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
- };
- },
+ if (value != null) {
+ updateOptions(this, Boolean(props.multiple), value);
+ }
+ }
+}
- "CLASS": function( className ) {
- var pattern = classCache[ className + " " ];
+function getDeclarationErrorAddendum(owner) {
+ if (owner) {
+ var name = owner.getName();
+ if (name) {
+ return ' Check the render method of `' + name + '`.';
+ }
+ }
+ return '';
+}
- return pattern ||
- (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
- classCache( className, function( elem ) {
- return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
- });
- },
+var valuePropNames = ['value', 'defaultValue'];
- "ATTR": function( name, operator, check ) {
- return function( elem ) {
- var result = Sizzle.attr( elem, name );
+/**
+ * Validation function for `value` and `defaultValue`.
+ * @private
+ */
+function checkSelectPropTypes(inst, props) {
+ var owner = inst._currentElement._owner;
+ LinkedValueUtils.checkPropTypes('select', props, owner);
- if ( result == null ) {
- return operator === "!=";
- }
- if ( !operator ) {
- return true;
- }
+ if (props.valueLink !== undefined && !didWarnValueLink) {
+ process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `select` is deprecated; set `value` and `onChange` instead.') : void 0;
+ didWarnValueLink = true;
+ }
- result += "";
+ for (var i = 0; i < valuePropNames.length; i++) {
+ var propName = valuePropNames[i];
+ if (props[propName] == null) {
+ continue;
+ }
+ var isArray = Array.isArray(props[propName]);
+ if (props.multiple && !isArray) {
+ process.env.NODE_ENV !== 'production' ? warning(false, 'The `%s` prop supplied to