From 4dd863d61b2c96fe7cea21bfc2ee0d61e584969e Mon Sep 17 00:00:00 2001 From: xAlpharax <42233094+xAlpharax@users.noreply.github.com> Date: Wed, 7 Feb 2024 03:13:29 +0200 Subject: SEO changes + some other functionalities. Link Previews work now. Changes to be committed: new file: sass/katex.css renamed: katex.min.css -> sass/katex.min.css new file: static/Alphara.png new file: static/js/clipboard.js renamed: clipboard.min.js -> static/js/clipboard.min.js new file: static/js/katex.js new file: static/js/katex.min.js modified: static/safari-pinned-tab.svg modified: templates/index.html modified: templates/page.html --- static/js/clipboard.js | 453 +++ static/js/clipboard.min.js | 7 + static/js/katex.js | 8872 ++++++++++++++++++++++++++++++++++++++++++++ static/js/katex.min.js | 1 + 4 files changed, 9333 insertions(+) create mode 100644 static/js/clipboard.js create mode 100644 static/js/clipboard.min.js create mode 100644 static/js/katex.js create mode 100644 static/js/katex.min.js (limited to 'static/js') diff --git a/static/js/clipboard.js b/static/js/clipboard.js new file mode 100644 index 0000000..c34773e --- /dev/null +++ b/static/js/clipboard.js @@ -0,0 +1,453 @@ +/*! + * clipboard.js v2.0.6 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */ +!(function (t, e) { + "object" == typeof exports && "object" == typeof module ? (module.exports = e()) : "function" == typeof define && define.amd ? define([], e) : "object" == typeof exports ? (exports.ClipboardJS = e()) : (t.ClipboardJS = e()); +})(this, function () { + return ( + (o = {}), + (r.m = n = [ + function (t, e) { + t.exports = function (t) { + var e; + if ("SELECT" === t.nodeName) t.focus(), (e = t.value); + else if ("INPUT" === t.nodeName || "TEXTAREA" === t.nodeName) { + var n = t.hasAttribute("readonly"); + n || t.setAttribute("readonly", ""), t.select(), t.setSelectionRange(0, t.value.length), n || t.removeAttribute("readonly"), (e = t.value); + } else { + t.hasAttribute("contenteditable") && t.focus(); + var o = window.getSelection(), + r = document.createRange(); + r.selectNodeContents(t), o.removeAllRanges(), o.addRange(r), (e = o.toString()); + } + return e; + }; + }, + function (t, e) { + function n() {} + (n.prototype = { + on: function (t, e, n) { + var o = this.e || (this.e = {}); + return (o[t] || (o[t] = [])).push({ fn: e, ctx: n }), this; + }, + once: function (t, e, n) { + var o = this; + function r() { + o.off(t, r), e.apply(n, arguments); + } + return (r._ = e), this.on(t, r, n); + }, + emit: function (t) { + for (var e = [].slice.call(arguments, 1), n = ((this.e || (this.e = {}))[t] || []).slice(), o = 0, r = n.length; o < r; o++) n[o].fn.apply(n[o].ctx, e); + return this; + }, + off: function (t, e) { + var n = this.e || (this.e = {}), + o = n[t], + r = []; + if (o && e) for (var i = 0, a = o.length; i < a; i++) o[i].fn !== e && o[i].fn._ !== e && r.push(o[i]); + return r.length ? (n[t] = r) : delete n[t], this; + }, + }), + (t.exports = n), + (t.exports.TinyEmitter = n); + }, + function (t, e, n) { + var d = n(3), + h = n(4); + t.exports = function (t, e, n) { + if (!t && !e && !n) throw new Error("Missing required arguments"); + if (!d.string(e)) throw new TypeError("Second argument must be a String"); + if (!d.fn(n)) throw new TypeError("Third argument must be a Function"); + if (d.node(t)) + return ( + (s = e), + (f = n), + (u = t).addEventListener(s, f), + { + destroy: function () { + u.removeEventListener(s, f); + }, + } + ); + if (d.nodeList(t)) + return ( + (a = t), + (c = e), + (l = n), + Array.prototype.forEach.call(a, function (t) { + t.addEventListener(c, l); + }), + { + destroy: function () { + Array.prototype.forEach.call(a, function (t) { + t.removeEventListener(c, l); + }); + }, + } + ); + if (d.string(t)) return (o = t), (r = e), (i = n), h(document.body, o, r, i); + throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList"); + var o, r, i, a, c, l, u, s, f; + }; + }, + function (t, n) { + (n.node = function (t) { + return void 0 !== t && t instanceof HTMLElement && 1 === t.nodeType; + }), + (n.nodeList = function (t) { + var e = Object.prototype.toString.call(t); + return void 0 !== t && ("[object NodeList]" === e || "[object HTMLCollection]" === e) && "length" in t && (0 === t.length || n.node(t[0])); + }), + (n.string = function (t) { + return "string" == typeof t || t instanceof String; + }), + (n.fn = function (t) { + return "[object Function]" === Object.prototype.toString.call(t); + }); + }, + function (t, e, n) { + var a = n(5); + function i(t, e, n, o, r) { + var i = function (e, n, t, o) { + return function (t) { + (t.delegateTarget = a(t.target, n)), t.delegateTarget && o.call(e, t); + }; + }.apply(this, arguments); + return ( + t.addEventListener(n, i, r), + { + destroy: function () { + t.removeEventListener(n, i, r); + }, + } + ); + } + t.exports = function (t, e, n, o, r) { + return "function" == typeof t.addEventListener + ? i.apply(null, arguments) + : "function" == typeof n + ? i.bind(null, document).apply(null, arguments) + : ("string" == typeof t && (t = document.querySelectorAll(t)), + Array.prototype.map.call(t, function (t) { + return i(t, e, n, o, r); + })); + }; + }, + function (t, e) { + if ("undefined" != typeof Element && !Element.prototype.matches) { + var n = Element.prototype; + n.matches = n.matchesSelector || n.mozMatchesSelector || n.msMatchesSelector || n.oMatchesSelector || n.webkitMatchesSelector; + } + t.exports = function (t, e) { + for (; t && 9 !== t.nodeType; ) { + if ("function" == typeof t.matches && t.matches(e)) return t; + t = t.parentNode; + } + }; + }, + function (t, e, n) { + "use strict"; + n.r(e); + var o = n(0), + r = n.n(o), + i = + "function" == typeof Symbol && "symbol" == typeof Symbol.iterator + ? function (t) { + return typeof t; + } + : function (t) { + return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; + }; + function a(t, e) { + for (var n = 0; n < e.length; n++) { + var o = e[n]; + (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); + } + } + function c(t) { + !(function (t, e) { + if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); + })(this, c), + this.resolveOptions(t), + this.initSelection(); + } + var l = + ((function (t, e, n) { + return e && a(t.prototype, e), n && a(t, n), t; + })(c, [ + { + key: "resolveOptions", + value: function (t) { + var e = 0 < arguments.length && void 0 !== t ? t : {}; + (this.action = e.action), (this.container = e.container), (this.emitter = e.emitter), (this.target = e.target), (this.text = e.text), (this.trigger = e.trigger), (this.selectedText = ""); + }, + }, + { + key: "initSelection", + value: function () { + this.text ? this.selectFake() : this.target && this.selectTarget(); + }, + }, + { + key: "selectFake", + value: function () { + var t = this, + e = "rtl" == document.documentElement.getAttribute("dir"); + this.removeFake(), + (this.fakeHandlerCallback = function () { + return t.removeFake(); + }), + (this.fakeHandler = this.container.addEventListener("click", this.fakeHandlerCallback) || !0), + (this.fakeElem = document.createElement("textarea")), + (this.fakeElem.style.fontSize = "12pt"), + (this.fakeElem.style.border = "0"), + (this.fakeElem.style.padding = "0"), + (this.fakeElem.style.margin = "0"), + (this.fakeElem.style.position = "absolute"), + (this.fakeElem.style[e ? "right" : "left"] = "-9999px"); + var n = window.pageYOffset || document.documentElement.scrollTop; + (this.fakeElem.style.top = n + "px"), + this.fakeElem.setAttribute("readonly", ""), + (this.fakeElem.value = this.text), + this.container.appendChild(this.fakeElem), + (this.selectedText = r()(this.fakeElem)), + this.copyText(); + }, + }, + { + key: "removeFake", + value: function () { + this.fakeHandler && (this.container.removeEventListener("click", this.fakeHandlerCallback), (this.fakeHandler = null), (this.fakeHandlerCallback = null)), + this.fakeElem && (this.container.removeChild(this.fakeElem), (this.fakeElem = null)); + }, + }, + { + key: "selectTarget", + value: function () { + (this.selectedText = r()(this.target)), this.copyText(); + }, + }, + { + key: "copyText", + value: function () { + var e = void 0; + try { + e = document.execCommand(this.action); + } catch (t) { + e = !1; + } + this.handleResult(e); + }, + }, + { + key: "handleResult", + value: function (t) { + this.emitter.emit(t ? "success" : "error", { action: this.action, text: this.selectedText, trigger: this.trigger, clearSelection: this.clearSelection.bind(this) }); + }, + }, + { + key: "clearSelection", + value: function () { + this.trigger && this.trigger.focus(), document.activeElement.blur(), window.getSelection().removeAllRanges(); + }, + }, + { + key: "destroy", + value: function () { + this.removeFake(); + }, + }, + { + key: "action", + set: function (t) { + var e = 0 < arguments.length && void 0 !== t ? t : "copy"; + if (((this._action = e), "copy" !== this._action && "cut" !== this._action)) throw new Error('Invalid "action" value, use either "copy" or "cut"'); + }, + get: function () { + return this._action; + }, + }, + { + key: "target", + set: function (t) { + if (void 0 !== t) { + if (!t || "object" !== (void 0 === t ? "undefined" : i(t)) || 1 !== t.nodeType) throw new Error('Invalid "target" value, use a valid Element'); + if ("copy" === this.action && t.hasAttribute("disabled")) throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute'); + if ("cut" === this.action && (t.hasAttribute("readonly") || t.hasAttribute("disabled"))) + throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes'); + this._target = t; + } + }, + get: function () { + return this._target; + }, + }, + ]), + c), + u = n(1), + s = n.n(u), + f = n(2), + d = n.n(f), + h = + "function" == typeof Symbol && "symbol" == typeof Symbol.iterator + ? function (t) { + return typeof t; + } + : function (t) { + return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; + }, + p = function (t, e, n) { + return e && y(t.prototype, e), n && y(t, n), t; + }; + function y(t, e) { + for (var n = 0; n < e.length; n++) { + var o = e[n]; + (o.enumerable = o.enumerable || !1), (o.configurable = !0), "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o); + } + } + var m = + ((function (t, e) { + if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e); + (t.prototype = Object.create(e && e.prototype, { constructor: { value: t, enumerable: !1, writable: !0, configurable: !0 } })), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : (t.__proto__ = e)); + })(v, s.a), + p( + v, + [ + { + key: "resolveOptions", + value: function (t) { + var e = 0 < arguments.length && void 0 !== t ? t : {}; + (this.action = "function" == typeof e.action ? e.action : this.defaultAction), + (this.target = "function" == typeof e.target ? e.target : this.defaultTarget), + (this.text = "function" == typeof e.text ? e.text : this.defaultText), + (this.container = "object" === h(e.container) ? e.container : document.body); + }, + }, + { + key: "listenClick", + value: function (t) { + var e = this; + this.listener = d()(t, "click", function (t) { + return e.onClick(t); + }); + }, + }, + { + key: "onClick", + value: function (t) { + var e = t.delegateTarget || t.currentTarget; + this.clipboardAction && (this.clipboardAction = null), + (this.clipboardAction = new l({ action: this.action(e), target: this.target(e), text: this.text(e), container: this.container, trigger: e, emitter: this })); + }, + }, + { + key: "defaultAction", + value: function (t) { + return b("action", t); + }, + }, + { + key: "defaultTarget", + value: function (t) { + var e = b("target", t); + if (e) return document.querySelector(e); + }, + }, + { + key: "defaultText", + value: function (t) { + return b("text", t); + }, + }, + { + key: "destroy", + value: function () { + this.listener.destroy(), this.clipboardAction && (this.clipboardAction.destroy(), (this.clipboardAction = null)); + }, + }, + ], + [ + { + key: "isSupported", + value: function (t) { + var e = 0 < arguments.length && void 0 !== t ? t : ["copy", "cut"], + n = "string" == typeof e ? [e] : e, + o = !!document.queryCommandSupported; + return ( + n.forEach(function (t) { + o = o && !!document.queryCommandSupported(t); + }), + o + ); + }, + }, + ] + ), + v); + function v(t, e) { + !(function (t, e) { + if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); + })(this, v); + var n = (function (t, e) { + if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return !e || ("object" != typeof e && "function" != typeof e) ? t : e; + })(this, (v.__proto__ || Object.getPrototypeOf(v)).call(this)); + return n.resolveOptions(e), n.listenClick(t), n; + } + function b(t, e) { + var n = "data-clipboard-" + t; + if (e.hasAttribute(n)) return e.getAttribute(n); + } + e.default = m; + }, + ]), + (r.c = o), + (r.d = function (t, e, n) { + r.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: n }); + }), + (r.r = function (t) { + "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(t, "__esModule", { value: !0 }); + }), + (r.t = function (e, t) { + if ((1 & t && (e = r(e)), 8 & t)) return e; + if (4 & t && "object" == typeof e && e && e.__esModule) return e; + var n = Object.create(null); + if ((r.r(n), Object.defineProperty(n, "default", { enumerable: !0, value: e }), 2 & t && "string" != typeof e)) + for (var o in e) + r.d( + n, + o, + function (t) { + return e[t]; + }.bind(null, o) + ); + return n; + }), + (r.n = function (t) { + var e = + t && t.__esModule + ? function () { + return t.default; + } + : function () { + return t; + }; + return r.d(e, "a", e), e; + }), + (r.o = function (t, e) { + return Object.prototype.hasOwnProperty.call(t, e); + }), + (r.p = ""), + r((r.s = 6)).default + ); + function r(t) { + if (o[t]) return o[t].exports; + var e = (o[t] = { i: t, l: !1, exports: {} }); + return n[t].call(e.exports, e, e.exports, r), (e.l = !0), e.exports; + } + var n, o; +}); diff --git a/static/js/clipboard.min.js b/static/js/clipboard.min.js new file mode 100644 index 0000000..28650f3 --- /dev/null +++ b/static/js/clipboard.min.js @@ -0,0 +1,7 @@ +/*! + * clipboard.js v2.0.6 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return o={},r.m=n=[function(t,e){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var o=window.getSelection(),r=document.createRange();r.selectNodeContents(t),o.removeAllRanges(),o.addRange(r),e=o.toString()}return e}},function(t,e){function n(){}n.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var o=this;function r(){o.off(t,r),e.apply(n,arguments)}return r._=e,this.on(t,r,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;o 15 ? "\u2026" + o.slice(a - 15, a) : o.slice(0, a)) + h + (s + 15 < o.length ? o.slice(s, s + 15) + "\u2026" : o.slice(s)); + } + var l = new Error(n); + return (l.name = "ParseError"), (l.__proto__ = t.prototype), (l.position = a), l; + }; + i.prototype.__proto__ = Error.prototype; + var o = i, + s = /([A-Z])/g, + h = { "&": "&", ">": ">", "<": "<", '"': """, "'": "'" }, + l = /[&><"']/g; + var m = function t(e) { + return "ordgroup" === e.type ? (1 === e.body.length ? t(e.body[0]) : e) : "color" === e.type ? (1 === e.body.length ? t(e.body[0]) : e) : "font" === e.type ? t(e.body) : e; + }, + c = { + contains: function (t, e) { + return -1 !== t.indexOf(e); + }, + deflt: function (t, e) { + return void 0 === t ? e : t; + }, + escape: function (t) { + return String(t).replace(l, function (t) { + return h[t]; + }); + }, + hyphenate: function (t) { + return t.replace(s, "-$1").toLowerCase(); + }, + getBaseElem: m, + isCharacterBox: function (t) { + var e = m(t); + return "mathord" === e.type || "textord" === e.type || "atom" === e.type; + }, + protocolFromUrl: function (t) { + var e = /^\s*([^\\\/#]*?)(?::|�*58|�*3a)/i.exec(t); + return null != e ? e[1] : "_relative"; + }, + }, + u = (function () { + function t(t) { + (this.displayMode = void 0), + (this.output = void 0), + (this.leqno = void 0), + (this.fleqn = void 0), + (this.throwOnError = void 0), + (this.errorColor = void 0), + (this.macros = void 0), + (this.minRuleThickness = void 0), + (this.colorIsTextColor = void 0), + (this.strict = void 0), + (this.trust = void 0), + (this.maxSize = void 0), + (this.maxExpand = void 0), + (t = t || {}), + (this.displayMode = c.deflt(t.displayMode, !1)), + (this.output = c.deflt(t.output, "htmlAndMathml")), + (this.leqno = c.deflt(t.leqno, !1)), + (this.fleqn = c.deflt(t.fleqn, !1)), + (this.throwOnError = c.deflt(t.throwOnError, !0)), + (this.errorColor = c.deflt(t.errorColor, "#cc0000")), + (this.macros = t.macros || {}), + (this.minRuleThickness = Math.max(0, c.deflt(t.minRuleThickness, 0))), + (this.colorIsTextColor = c.deflt(t.colorIsTextColor, !1)), + (this.strict = c.deflt(t.strict, "warn")), + (this.trust = c.deflt(t.trust, !1)), + (this.maxSize = Math.max(0, c.deflt(t.maxSize, 1 / 0))), + (this.maxExpand = Math.max(0, c.deflt(t.maxExpand, 1e3))); + } + var e = t.prototype; + return ( + (e.reportNonstrict = function (t, e, r) { + var a = this.strict; + if (("function" == typeof a && (a = a(t, e, r)), a && "ignore" !== a)) { + if (!0 === a || "error" === a) throw new o("LaTeX-incompatible input and strict mode is set to 'error': " + e + " [" + t + "]", r); + "warn" === a + ? "undefined" != typeof console && console.warn("LaTeX-incompatible input and strict mode is set to 'warn': " + e + " [" + t + "]") + : "undefined" != typeof console && console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '" + a + "': " + e + " [" + t + "]"); + } + }), + (e.useStrictBehavior = function (t, e, r) { + var a = this.strict; + if ("function" == typeof a) + try { + a = a(t, e, r); + } catch (t) { + a = "error"; + } + return ( + !(!a || "ignore" === a) && + (!0 === a || + "error" === a || + ("warn" === a + ? ("undefined" != typeof console && console.warn("LaTeX-incompatible input and strict mode is set to 'warn': " + e + " [" + t + "]"), !1) + : ("undefined" != typeof console && console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '" + a + "': " + e + " [" + t + "]"), !1))) + ); + }), + (e.isTrusted = function (t) { + t.url && !t.protocol && (t.protocol = c.protocolFromUrl(t.url)); + var e = "function" == typeof this.trust ? this.trust(t) : this.trust; + return Boolean(e); + }), + t + ); + })(), + p = (function () { + function t(t, e, r) { + (this.id = void 0), (this.size = void 0), (this.cramped = void 0), (this.id = t), (this.size = e), (this.cramped = r); + } + var e = t.prototype; + return ( + (e.sup = function () { + return d[f[this.id]]; + }), + (e.sub = function () { + return d[g[this.id]]; + }), + (e.fracNum = function () { + return d[x[this.id]]; + }), + (e.fracDen = function () { + return d[v[this.id]]; + }), + (e.cramp = function () { + return d[b[this.id]]; + }), + (e.text = function () { + return d[y[this.id]]; + }), + (e.isTight = function () { + return this.size >= 2; + }), + t + ); + })(), + d = [new p(0, 0, !1), new p(1, 0, !0), new p(2, 1, !1), new p(3, 1, !0), new p(4, 2, !1), new p(5, 2, !0), new p(6, 3, !1), new p(7, 3, !0)], + f = [4, 5, 4, 5, 6, 7, 6, 7], + g = [5, 5, 5, 5, 7, 7, 7, 7], + x = [2, 3, 4, 5, 6, 7, 6, 7], + v = [3, 3, 5, 5, 7, 7, 7, 7], + b = [1, 1, 3, 3, 5, 5, 7, 7], + y = [0, 1, 2, 3, 2, 3, 2, 3], + w = { DISPLAY: d[0], TEXT: d[2], SCRIPT: d[4], SCRIPTSCRIPT: d[6] }, + k = [ + { + name: "latin", + blocks: [ + [256, 591], + [768, 879], + ], + }, + { name: "cyrillic", blocks: [[1024, 1279]] }, + { name: "brahmic", blocks: [[2304, 4255]] }, + { name: "georgian", blocks: [[4256, 4351]] }, + { + name: "cjk", + blocks: [ + [12288, 12543], + [19968, 40879], + [65280, 65376], + ], + }, + { name: "hangul", blocks: [[44032, 55215]] }, + ]; + var S = []; + function M(t) { + for (var e = 0; e < S.length; e += 2) if (t >= S[e] && t <= S[e + 1]) return !0; + return !1; + } + k.forEach(function (t) { + return t.blocks.forEach(function (t) { + return S.push.apply(S, t); + }); + }); + var z = { + doubleleftarrow: + "M262 157\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\nm8 0v40h399730v-40zm0 194v40h399730v-40z", + doublerightarrow: + "M399738 392l\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z", + leftarrow: + "M400000 241H110l3-3c68.7-52.7 113.7-120\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\n l-3-3h399890zM100 241v40h399900v-40z", + leftbrace: "M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z", + leftbraceunder: + "M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z", + leftgroup: "M400000 80\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\n 435 0h399565z", + leftgroupunder: "M400000 262\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\n 435 219h399565z", + leftharpoon: + "M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z", + leftharpoonplus: + "M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\nm0 0v40h400000v-40z", + leftharpoondown: + "M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z", + leftharpoondownplus: + "M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z", + lefthook: + "M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\n 71.5 23h399859zM103 281v-40h399897v40z", + leftlinesegment: "M40 281 V428 H0 V94 H40 V241 H400000 v40z\nM40 281 V428 H0 V94 H40 V241 H400000 v40z", + leftmapsto: "M40 281 V448H0V74H40V241H400000v40z\nM40 281 V448H0V74H40V241H400000v40z", + leftToFrom: + "M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z", + longequal: "M0 50 h400000 v40H0z m0 194h40000v40H0z\nM0 50 h400000 v40H0z m0 194h40000v40H0z", + midbrace: + "M200428 334\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z", + midbraceunder: + "M199572 214\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z", + oiintSize1: + "M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z", + oiintSize2: + "M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\nc0 110 84 276 504 276s502.4-166 502.4-276z", + oiiintSize1: + "M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z", + oiiintSize2: + "M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z", + rightarrow: + "M0 241v40h399891c-47.3 35.3-84 78-110 128\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n 151.7 139 205zm0 0v40h399900v-40z", + rightbrace: + "M400000 542l\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z", + rightbraceunder: "M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z", + rightgroup: "M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\n 3-1 3-3v-38c-76-158-257-219-435-219H0z", + rightgroupunder: "M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z", + rightharpoon: + "M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\n 69.2 92 94.5zm0 0v40h399900v-40z", + rightharpoonplus: + "M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z", + rightharpoondown: + "M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z", + rightharpoondownplus: + "M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\nm0-194v40h400000v-40zm0 0v40h400000v-40z", + righthook: + "M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z", + rightlinesegment: "M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z", + rightToFrom: + "M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z", + twoheadleftarrow: + "M0 167c68 40\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z", + twoheadrightarrow: + "M400000 167\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z", + tilde1: + "M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\n-68.267.847-113-73.952-191-73.952z", + tilde2: + "M344 55.266c-142 0-300.638 81.316-311.5 86.418\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z", + tilde3: + "M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\n -338 0-409-156.573-744-156.573z", + tilde4: + "M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\n -175.236-744-175.236z", + vec: + "M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\nc-16-25.333-24-45-24-59z", + widehat1: "M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z", + widehat2: "M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z", + widehat3: "M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z", + widehat4: "M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z", + widecheck1: "M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z", + widecheck2: "M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z", + widecheck3: "M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z", + widecheck4: "M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z", + baraboveleftarrow: + "M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z", + rightarrowabovebar: + "M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z", + baraboveshortleftharpoon: + "M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z", + rightharpoonaboveshortbar: + "M0,241 l0,40c399126,0,399993,0,399993,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z", + shortbaraboveleftharpoon: + "M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z", + shortrightharpoonabovebar: + "M53,241l0,40c398570,0,399437,0,399437,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z", + }, + A = (function () { + function t(t) { + (this.children = void 0), + (this.classes = void 0), + (this.height = void 0), + (this.depth = void 0), + (this.maxFontSize = void 0), + (this.style = void 0), + (this.children = t), + (this.classes = []), + (this.height = 0), + (this.depth = 0), + (this.maxFontSize = 0), + (this.style = {}); + } + var e = t.prototype; + return ( + (e.hasClass = function (t) { + return c.contains(this.classes, t); + }), + (e.toNode = function () { + for (var t = document.createDocumentFragment(), e = 0; e < this.children.length; e++) t.appendChild(this.children[e].toNode()); + return t; + }), + (e.toMarkup = function () { + for (var t = "", e = 0; e < this.children.length; e++) t += this.children[e].toMarkup(); + return t; + }), + (e.toText = function () { + var t = function (t) { + return t.toText(); + }; + return this.children.map(t).join(""); + }), + t + ); + })(), + T = function (t) { + return t + .filter(function (t) { + return t; + }) + .join(" "); + }, + B = function (t, e, r) { + if (((this.classes = t || []), (this.attributes = {}), (this.height = 0), (this.depth = 0), (this.maxFontSize = 0), (this.style = r || {}), e)) { + e.style.isTight() && this.classes.push("mtight"); + var a = e.getColor(); + a && (this.style.color = a); + } + }, + C = function (t) { + var e = document.createElement(t); + for (var r in ((e.className = T(this.classes)), this.style)) this.style.hasOwnProperty(r) && (e.style[r] = this.style[r]); + for (var a in this.attributes) this.attributes.hasOwnProperty(a) && e.setAttribute(a, this.attributes[a]); + for (var n = 0; n < this.children.length; n++) e.appendChild(this.children[n].toNode()); + return e; + }, + q = function (t) { + var e = "<" + t; + this.classes.length && (e += ' class="' + c.escape(T(this.classes)) + '"'); + var r = ""; + for (var a in this.style) this.style.hasOwnProperty(a) && (r += c.hyphenate(a) + ":" + this.style[a] + ";"); + for (var n in (r && (e += ' style="' + c.escape(r) + '"'), this.attributes)) this.attributes.hasOwnProperty(n) && (e += " " + n + '="' + c.escape(this.attributes[n]) + '"'); + e += ">"; + for (var i = 0; i < this.children.length; i++) e += this.children[i].toMarkup(); + return (e += ""); + }, + N = (function () { + function t(t, e, r, a) { + (this.children = void 0), + (this.attributes = void 0), + (this.classes = void 0), + (this.height = void 0), + (this.depth = void 0), + (this.width = void 0), + (this.maxFontSize = void 0), + (this.style = void 0), + B.call(this, t, r, a), + (this.children = e || []); + } + var e = t.prototype; + return ( + (e.setAttribute = function (t, e) { + this.attributes[t] = e; + }), + (e.hasClass = function (t) { + return c.contains(this.classes, t); + }), + (e.toNode = function () { + return C.call(this, "span"); + }), + (e.toMarkup = function () { + return q.call(this, "span"); + }), + t + ); + })(), + I = (function () { + function t(t, e, r, a) { + (this.children = void 0), + (this.attributes = void 0), + (this.classes = void 0), + (this.height = void 0), + (this.depth = void 0), + (this.maxFontSize = void 0), + (this.style = void 0), + B.call(this, e, a), + (this.children = r || []), + this.setAttribute("href", t); + } + var e = t.prototype; + return ( + (e.setAttribute = function (t, e) { + this.attributes[t] = e; + }), + (e.hasClass = function (t) { + return c.contains(this.classes, t); + }), + (e.toNode = function () { + return C.call(this, "a"); + }), + (e.toMarkup = function () { + return q.call(this, "a"); + }), + t + ); + })(), + R = (function () { + function t(t, e, r) { + (this.src = void 0), + (this.alt = void 0), + (this.classes = void 0), + (this.height = void 0), + (this.depth = void 0), + (this.maxFontSize = void 0), + (this.style = void 0), + (this.alt = e), + (this.src = t), + (this.classes = ["mord"]), + (this.style = r); + } + var e = t.prototype; + return ( + (e.hasClass = function (t) { + return c.contains(this.classes, t); + }), + (e.toNode = function () { + var t = document.createElement("img"); + for (var e in ((t.src = this.src), (t.alt = this.alt), (t.className = "mord"), this.style)) this.style.hasOwnProperty(e) && (t.style[e] = this.style[e]); + return t; + }), + (e.toMarkup = function () { + var t = "" + this.alt + "= n[0] && t <= n[1]) return r.name; + } + return null; + })(this.text.charCodeAt(0)); + h && this.classes.push(h + "_fallback"), /[\xee\xef\xed\xec]/.test(this.text) && (this.text = O[this.text]); + } + var e = t.prototype; + return ( + (e.hasClass = function (t) { + return c.contains(this.classes, t); + }), + (e.toNode = function () { + var t = document.createTextNode(this.text), + e = null; + for (var r in (this.italic > 0 && ((e = document.createElement("span")).style.marginRight = this.italic + "em"), + this.classes.length > 0 && ((e = e || document.createElement("span")).className = T(this.classes)), + this.style)) + this.style.hasOwnProperty(r) && ((e = e || document.createElement("span")).style[r] = this.style[r]); + return e ? (e.appendChild(t), e) : t; + }), + (e.toMarkup = function () { + var t = !1, + e = " 0 && (r += "margin-right:" + this.italic + "em;"), this.style)) this.style.hasOwnProperty(a) && (r += c.hyphenate(a) + ":" + this.style[a] + ";"); + r && ((t = !0), (e += ' style="' + c.escape(r) + '"')); + var n = c.escape(this.text); + return t ? ((e += ">"), (e += n), (e += "")) : n; + }), + t + ); + })(), + L = (function () { + function t(t, e) { + (this.children = void 0), (this.attributes = void 0), (this.children = t || []), (this.attributes = e || {}); + } + var e = t.prototype; + return ( + (e.toNode = function () { + var t = document.createElementNS("http://www.w3.org/2000/svg", "svg"); + for (var e in this.attributes) Object.prototype.hasOwnProperty.call(this.attributes, e) && t.setAttribute(e, this.attributes[e]); + for (var r = 0; r < this.children.length; r++) t.appendChild(this.children[r].toNode()); + return t; + }), + (e.toMarkup = function () { + var t = "" : ""; + }), + t + ); + })(), + P = (function () { + function t(t) { + (this.attributes = void 0), (this.attributes = t || {}); + } + var e = t.prototype; + return ( + (e.toNode = function () { + var t = document.createElementNS("http://www.w3.org/2000/svg", "line"); + for (var e in this.attributes) Object.prototype.hasOwnProperty.call(this.attributes, e) && t.setAttribute(e, this.attributes[e]); + return t; + }), + (e.toMarkup = function () { + var t = "", ">"), + $("math", Z, et, ":", ":"), + $("math", Z, et, "\u2248", "\\approx", !0), + $("math", Z, et, "\u2245", "\\cong", !0), + $("math", Z, et, "\u2265", "\\ge"), + $("math", Z, et, "\u2265", "\\geq", !0), + $("math", Z, et, "\u2190", "\\gets"), + $("math", Z, et, ">", "\\gt"), + $("math", Z, et, "\u2208", "\\in", !0), + $("math", Z, et, "\ue020", "\\@not"), + $("math", Z, et, "\u2282", "\\subset", !0), + $("math", Z, et, "\u2283", "\\supset", !0), + $("math", Z, et, "\u2286", "\\subseteq", !0), + $("math", Z, et, "\u2287", "\\supseteq", !0), + $("math", K, et, "\u2288", "\\nsubseteq", !0), + $("math", K, et, "\u2289", "\\nsupseteq", !0), + $("math", Z, et, "\u22a8", "\\models"), + $("math", Z, et, "\u2190", "\\leftarrow", !0), + $("math", Z, et, "\u2264", "\\le"), + $("math", Z, et, "\u2264", "\\leq", !0), + $("math", Z, et, "<", "\\lt"), + $("math", Z, et, "\u2192", "\\rightarrow", !0), + $("math", Z, et, "\u2192", "\\to"), + $("math", K, et, "\u2271", "\\ngeq", !0), + $("math", K, et, "\u2270", "\\nleq", !0), + $("math", Z, "spacing", "\xa0", "\\ "), + $("math", Z, "spacing", "\xa0", "~"), + $("math", Z, "spacing", "\xa0", "\\space"), + $("math", Z, "spacing", "\xa0", "\\nobreakspace"), + $("text", Z, "spacing", "\xa0", "\\ "), + $("text", Z, "spacing", "\xa0", "~"), + $("text", Z, "spacing", "\xa0", "\\space"), + $("text", Z, "spacing", "\xa0", "\\nobreakspace"), + $("math", Z, "spacing", null, "\\nobreak"), + $("math", Z, "spacing", null, "\\allowbreak"), + $("math", Z, "punct", ",", ","), + $("math", Z, "punct", ";", ";"), + $("math", K, J, "\u22bc", "\\barwedge", !0), + $("math", K, J, "\u22bb", "\\veebar", !0), + $("math", Z, J, "\u2299", "\\odot", !0), + $("math", Z, J, "\u2295", "\\oplus", !0), + $("math", Z, J, "\u2297", "\\otimes", !0), + $("math", Z, "textord", "\u2202", "\\partial", !0), + $("math", Z, J, "\u2298", "\\oslash", !0), + $("math", K, J, "\u229a", "\\circledcirc", !0), + $("math", K, J, "\u22a1", "\\boxdot", !0), + $("math", Z, J, "\u25b3", "\\bigtriangleup"), + $("math", Z, J, "\u25bd", "\\bigtriangledown"), + $("math", Z, J, "\u2020", "\\dagger"), + $("math", Z, J, "\u22c4", "\\diamond"), + $("math", Z, J, "\u22c6", "\\star"), + $("math", Z, J, "\u25c3", "\\triangleleft"), + $("math", Z, J, "\u25b9", "\\triangleright"), + $("math", Z, "open", "{", "\\{"), + $("text", Z, "textord", "{", "\\{"), + $("text", Z, "textord", "{", "\\textbraceleft"), + $("math", Z, "close", "}", "\\}"), + $("text", Z, "textord", "}", "\\}"), + $("text", Z, "textord", "}", "\\textbraceright"), + $("math", Z, "open", "{", "\\lbrace"), + $("math", Z, "close", "}", "\\rbrace"), + $("math", Z, "open", "[", "\\lbrack"), + $("text", Z, "textord", "[", "\\lbrack"), + $("math", Z, "close", "]", "\\rbrack"), + $("text", Z, "textord", "]", "\\rbrack"), + $("math", Z, "open", "(", "\\lparen"), + $("math", Z, "close", ")", "\\rparen"), + $("text", Z, "textord", "<", "\\textless"), + $("text", Z, "textord", ">", "\\textgreater"), + $("math", Z, "open", "\u230a", "\\lfloor", !0), + $("math", Z, "close", "\u230b", "\\rfloor", !0), + $("math", Z, "open", "\u2308", "\\lceil", !0), + $("math", Z, "close", "\u2309", "\\rceil", !0), + $("math", Z, "textord", "\\", "\\backslash"), + $("math", Z, "textord", "\u2223", "|"), + $("math", Z, "textord", "\u2223", "\\vert"), + $("text", Z, "textord", "|", "\\textbar"), + $("math", Z, "textord", "\u2225", "\\|"), + $("math", Z, "textord", "\u2225", "\\Vert"), + $("text", Z, "textord", "\u2225", "\\textbardbl"), + $("text", Z, "textord", "~", "\\textasciitilde"), + $("text", Z, "textord", "\\", "\\textbackslash"), + $("text", Z, "textord", "^", "\\textasciicircum"), + $("math", Z, et, "\u2191", "\\uparrow", !0), + $("math", Z, et, "\u21d1", "\\Uparrow", !0), + $("math", Z, et, "\u2193", "\\downarrow", !0), + $("math", Z, et, "\u21d3", "\\Downarrow", !0), + $("math", Z, et, "\u2195", "\\updownarrow", !0), + $("math", Z, et, "\u21d5", "\\Updownarrow", !0), + $("math", Z, tt, "\u2210", "\\coprod"), + $("math", Z, tt, "\u22c1", "\\bigvee"), + $("math", Z, tt, "\u22c0", "\\bigwedge"), + $("math", Z, tt, "\u2a04", "\\biguplus"), + $("math", Z, tt, "\u22c2", "\\bigcap"), + $("math", Z, tt, "\u22c3", "\\bigcup"), + $("math", Z, tt, "\u222b", "\\int"), + $("math", Z, tt, "\u222b", "\\intop"), + $("math", Z, tt, "\u222c", "\\iint"), + $("math", Z, tt, "\u222d", "\\iiint"), + $("math", Z, tt, "\u220f", "\\prod"), + $("math", Z, tt, "\u2211", "\\sum"), + $("math", Z, tt, "\u2a02", "\\bigotimes"), + $("math", Z, tt, "\u2a01", "\\bigoplus"), + $("math", Z, tt, "\u2a00", "\\bigodot"), + $("math", Z, tt, "\u222e", "\\oint"), + $("math", Z, tt, "\u222f", "\\oiint"), + $("math", Z, tt, "\u2230", "\\oiiint"), + $("math", Z, tt, "\u2a06", "\\bigsqcup"), + $("math", Z, tt, "\u222b", "\\smallint"), + $("text", Z, "inner", "\u2026", "\\textellipsis"), + $("math", Z, "inner", "\u2026", "\\mathellipsis"), + $("text", Z, "inner", "\u2026", "\\ldots", !0), + $("math", Z, "inner", "\u2026", "\\ldots", !0), + $("math", Z, "inner", "\u22ef", "\\@cdots", !0), + $("math", Z, "inner", "\u22f1", "\\ddots", !0), + $("math", Z, "textord", "\u22ee", "\\varvdots"), + $("math", Z, "accent-token", "\u02ca", "\\acute"), + $("math", Z, "accent-token", "\u02cb", "\\grave"), + $("math", Z, "accent-token", "\xa8", "\\ddot"), + $("math", Z, "accent-token", "~", "\\tilde"), + $("math", Z, "accent-token", "\u02c9", "\\bar"), + $("math", Z, "accent-token", "\u02d8", "\\breve"), + $("math", Z, "accent-token", "\u02c7", "\\check"), + $("math", Z, "accent-token", "^", "\\hat"), + $("math", Z, "accent-token", "\u20d7", "\\vec"), + $("math", Z, "accent-token", "\u02d9", "\\dot"), + $("math", Z, "accent-token", "\u02da", "\\mathring"), + $("math", Z, Q, "\u0131", "\\imath", !0), + $("math", Z, Q, "\u0237", "\\jmath", !0), + $("text", Z, "textord", "\u0131", "\\i", !0), + $("text", Z, "textord", "\u0237", "\\j", !0), + $("text", Z, "textord", "\xdf", "\\ss", !0), + $("text", Z, "textord", "\xe6", "\\ae", !0), + $("text", Z, "textord", "\xe6", "\\ae", !0), + $("text", Z, "textord", "\u0153", "\\oe", !0), + $("text", Z, "textord", "\xf8", "\\o", !0), + $("text", Z, "textord", "\xc6", "\\AE", !0), + $("text", Z, "textord", "\u0152", "\\OE", !0), + $("text", Z, "textord", "\xd8", "\\O", !0), + $("text", Z, "accent-token", "\u02ca", "\\'"), + $("text", Z, "accent-token", "\u02cb", "\\`"), + $("text", Z, "accent-token", "\u02c6", "\\^"), + $("text", Z, "accent-token", "\u02dc", "\\~"), + $("text", Z, "accent-token", "\u02c9", "\\="), + $("text", Z, "accent-token", "\u02d8", "\\u"), + $("text", Z, "accent-token", "\u02d9", "\\."), + $("text", Z, "accent-token", "\u02da", "\\r"), + $("text", Z, "accent-token", "\u02c7", "\\v"), + $("text", Z, "accent-token", "\xa8", '\\"'), + $("text", Z, "accent-token", "\u02dd", "\\H"), + $("text", Z, "accent-token", "\u25ef", "\\textcircled"); + var rt = { "--": !0, "---": !0, "``": !0, "''": !0 }; + $("text", Z, "textord", "\u2013", "--"), + $("text", Z, "textord", "\u2013", "\\textendash"), + $("text", Z, "textord", "\u2014", "---"), + $("text", Z, "textord", "\u2014", "\\textemdash"), + $("text", Z, "textord", "\u2018", "`"), + $("text", Z, "textord", "\u2018", "\\textquoteleft"), + $("text", Z, "textord", "\u2019", "'"), + $("text", Z, "textord", "\u2019", "\\textquoteright"), + $("text", Z, "textord", "\u201c", "``"), + $("text", Z, "textord", "\u201c", "\\textquotedblleft"), + $("text", Z, "textord", "\u201d", "''"), + $("text", Z, "textord", "\u201d", "\\textquotedblright"), + $("math", Z, "textord", "\xb0", "\\degree", !0), + $("text", Z, "textord", "\xb0", "\\degree"), + $("text", Z, "textord", "\xb0", "\\textdegree", !0), + $("math", Z, Q, "\xa3", "\\pounds"), + $("math", Z, Q, "\xa3", "\\mathsterling", !0), + $("text", Z, Q, "\xa3", "\\pounds"), + $("text", Z, Q, "\xa3", "\\textsterling", !0), + $("math", K, "textord", "\u2720", "\\maltese"), + $("text", K, "textord", "\u2720", "\\maltese"), + $("text", Z, "spacing", "\xa0", "\\ "), + $("text", Z, "spacing", "\xa0", " "), + $("text", Z, "spacing", "\xa0", "~"); + for (var at = 0; at < '0123456789/@."'.length; at++) { + var nt = '0123456789/@."'.charAt(at); + $("math", Z, "textord", nt, nt); + } + for (var it = 0; it < '0123456789!@*()-=+[]<>|";:?/.,'.length; it++) { + var ot = '0123456789!@*()-=+[]<>|";:?/.,'.charAt(it); + $("text", Z, "textord", ot, ot); + } + for (var st = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", ht = 0; ht < st.length; ht++) { + var lt = st.charAt(ht); + $("math", Z, Q, lt, lt), $("text", Z, "textord", lt, lt); + } + $("math", K, "textord", "C", "\u2102"), + $("text", K, "textord", "C", "\u2102"), + $("math", K, "textord", "H", "\u210d"), + $("text", K, "textord", "H", "\u210d"), + $("math", K, "textord", "N", "\u2115"), + $("text", K, "textord", "N", "\u2115"), + $("math", K, "textord", "P", "\u2119"), + $("text", K, "textord", "P", "\u2119"), + $("math", K, "textord", "Q", "\u211a"), + $("text", K, "textord", "Q", "\u211a"), + $("math", K, "textord", "R", "\u211d"), + $("text", K, "textord", "R", "\u211d"), + $("math", K, "textord", "Z", "\u2124"), + $("text", K, "textord", "Z", "\u2124"), + $("math", Z, Q, "h", "\u210e"), + $("text", Z, Q, "h", "\u210e"); + for (var mt = "", ct = 0; ct < st.length; ct++) { + var ut = st.charAt(ct); + $("math", Z, Q, ut, (mt = String.fromCharCode(55349, 56320 + ct))), + $("text", Z, "textord", ut, mt), + $("math", Z, Q, ut, (mt = String.fromCharCode(55349, 56372 + ct))), + $("text", Z, "textord", ut, mt), + $("math", Z, Q, ut, (mt = String.fromCharCode(55349, 56424 + ct))), + $("text", Z, "textord", ut, mt), + $("math", Z, Q, ut, (mt = String.fromCharCode(55349, 56580 + ct))), + $("text", Z, "textord", ut, mt), + $("math", Z, Q, ut, (mt = String.fromCharCode(55349, 56736 + ct))), + $("text", Z, "textord", ut, mt), + $("math", Z, Q, ut, (mt = String.fromCharCode(55349, 56788 + ct))), + $("text", Z, "textord", ut, mt), + $("math", Z, Q, ut, (mt = String.fromCharCode(55349, 56840 + ct))), + $("text", Z, "textord", ut, mt), + $("math", Z, Q, ut, (mt = String.fromCharCode(55349, 56944 + ct))), + $("text", Z, "textord", ut, mt), + ct < 26 && ($("math", Z, Q, ut, (mt = String.fromCharCode(55349, 56632 + ct))), $("text", Z, "textord", ut, mt), $("math", Z, Q, ut, (mt = String.fromCharCode(55349, 56476 + ct))), $("text", Z, "textord", ut, mt)); + } + $("math", Z, Q, "k", (mt = String.fromCharCode(55349, 56668))), $("text", Z, "textord", "k", mt); + for (var pt = 0; pt < 10; pt++) { + var dt = pt.toString(); + $("math", Z, Q, dt, (mt = String.fromCharCode(55349, 57294 + pt))), + $("text", Z, "textord", dt, mt), + $("math", Z, Q, dt, (mt = String.fromCharCode(55349, 57314 + pt))), + $("text", Z, "textord", dt, mt), + $("math", Z, Q, dt, (mt = String.fromCharCode(55349, 57324 + pt))), + $("text", Z, "textord", dt, mt), + $("math", Z, Q, dt, (mt = String.fromCharCode(55349, 57334 + pt))), + $("text", Z, "textord", dt, mt); + } + for (var ft = 0; ft < "\xc7\xd0\xde\xe7\xfe".length; ft++) { + var gt = "\xc7\xd0\xde\xe7\xfe".charAt(ft); + $("math", Z, Q, gt, gt), $("text", Z, "textord", gt, gt); + } + $("text", Z, "textord", "\xf0", "\xf0"), + $("text", Z, "textord", "\u2013", "\u2013"), + $("text", Z, "textord", "\u2014", "\u2014"), + $("text", Z, "textord", "\u2018", "\u2018"), + $("text", Z, "textord", "\u2019", "\u2019"), + $("text", Z, "textord", "\u201c", "\u201c"), + $("text", Z, "textord", "\u201d", "\u201d"); + var xt = [ + ["mathbf", "textbf", "Main-Bold"], + ["mathbf", "textbf", "Main-Bold"], + ["mathdefault", "textit", "Math-Italic"], + ["mathdefault", "textit", "Math-Italic"], + ["boldsymbol", "boldsymbol", "Main-BoldItalic"], + ["boldsymbol", "boldsymbol", "Main-BoldItalic"], + ["mathscr", "textscr", "Script-Regular"], + ["", "", ""], + ["", "", ""], + ["", "", ""], + ["mathfrak", "textfrak", "Fraktur-Regular"], + ["mathfrak", "textfrak", "Fraktur-Regular"], + ["mathbb", "textbb", "AMS-Regular"], + ["mathbb", "textbb", "AMS-Regular"], + ["", "", ""], + ["", "", ""], + ["mathsf", "textsf", "SansSerif-Regular"], + ["mathsf", "textsf", "SansSerif-Regular"], + ["mathboldsf", "textboldsf", "SansSerif-Bold"], + ["mathboldsf", "textboldsf", "SansSerif-Bold"], + ["mathitsf", "textitsf", "SansSerif-Italic"], + ["mathitsf", "textitsf", "SansSerif-Italic"], + ["", "", ""], + ["", "", ""], + ["mathtt", "texttt", "Typewriter-Regular"], + ["mathtt", "texttt", "Typewriter-Regular"], + ], + vt = [ + ["mathbf", "textbf", "Main-Bold"], + ["", "", ""], + ["mathsf", "textsf", "SansSerif-Regular"], + ["mathboldsf", "textboldsf", "SansSerif-Bold"], + ["mathtt", "texttt", "Typewriter-Regular"], + ], + bt = [ + [1, 1, 1], + [2, 1, 1], + [3, 1, 1], + [4, 2, 1], + [5, 2, 1], + [6, 3, 1], + [7, 4, 2], + [8, 6, 3], + [9, 7, 6], + [10, 8, 7], + [11, 10, 9], + ], + yt = [0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.2, 1.44, 1.728, 2.074, 2.488], + wt = function (t, e) { + return e.size < 2 ? t : bt[t - 1][e.size - 1]; + }, + kt = (function () { + function t(e) { + (this.style = void 0), + (this.color = void 0), + (this.size = void 0), + (this.textSize = void 0), + (this.phantom = void 0), + (this.font = void 0), + (this.fontFamily = void 0), + (this.fontWeight = void 0), + (this.fontShape = void 0), + (this.sizeMultiplier = void 0), + (this.maxSize = void 0), + (this.minRuleThickness = void 0), + (this._fontMetrics = void 0), + (this.style = e.style), + (this.color = e.color), + (this.size = e.size || t.BASESIZE), + (this.textSize = e.textSize || this.size), + (this.phantom = !!e.phantom), + (this.font = e.font || ""), + (this.fontFamily = e.fontFamily || ""), + (this.fontWeight = e.fontWeight || ""), + (this.fontShape = e.fontShape || ""), + (this.sizeMultiplier = yt[this.size - 1]), + (this.maxSize = e.maxSize), + (this.minRuleThickness = e.minRuleThickness), + (this._fontMetrics = void 0); + } + var e = t.prototype; + return ( + (e.extend = function (e) { + var r = { + style: this.style, + size: this.size, + textSize: this.textSize, + color: this.color, + phantom: this.phantom, + font: this.font, + fontFamily: this.fontFamily, + fontWeight: this.fontWeight, + fontShape: this.fontShape, + maxSize: this.maxSize, + minRuleThickness: this.minRuleThickness, + }; + for (var a in e) e.hasOwnProperty(a) && (r[a] = e[a]); + return new t(r); + }), + (e.havingStyle = function (t) { + return this.style === t ? this : this.extend({ style: t, size: wt(this.textSize, t) }); + }), + (e.havingCrampedStyle = function () { + return this.havingStyle(this.style.cramp()); + }), + (e.havingSize = function (t) { + return this.size === t && this.textSize === t ? this : this.extend({ style: this.style.text(), size: t, textSize: t, sizeMultiplier: yt[t - 1] }); + }), + (e.havingBaseStyle = function (e) { + e = e || this.style.text(); + var r = wt(t.BASESIZE, e); + return this.size === r && this.textSize === t.BASESIZE && this.style === e ? this : this.extend({ style: e, size: r }); + }), + (e.havingBaseSizing = function () { + var t; + switch (this.style.id) { + case 4: + case 5: + t = 3; + break; + case 6: + case 7: + t = 1; + break; + default: + t = 6; + } + return this.extend({ style: this.style.text(), size: t }); + }), + (e.withColor = function (t) { + return this.extend({ color: t }); + }), + (e.withPhantom = function () { + return this.extend({ phantom: !0 }); + }), + (e.withFont = function (t) { + return this.extend({ font: t }); + }), + (e.withTextFontFamily = function (t) { + return this.extend({ fontFamily: t, font: "" }); + }), + (e.withTextFontWeight = function (t) { + return this.extend({ fontWeight: t, font: "" }); + }), + (e.withTextFontShape = function (t) { + return this.extend({ fontShape: t, font: "" }); + }), + (e.sizingClasses = function (t) { + return t.size !== this.size ? ["sizing", "reset-size" + t.size, "size" + this.size] : []; + }), + (e.baseSizingClasses = function () { + return this.size !== t.BASESIZE ? ["sizing", "reset-size" + this.size, "size" + t.BASESIZE] : []; + }), + (e.fontMetrics = function () { + return ( + this._fontMetrics || + (this._fontMetrics = (function (t) { + var e; + if (!Y[(e = t >= 5 ? 0 : t >= 3 ? 1 : 2)]) { + var r = (Y[e] = { cssEmPerMu: V.quad[e] / 18 }); + for (var a in V) V.hasOwnProperty(a) && (r[a] = V[a][e]); + } + return Y[e]; + })(this.size)), + this._fontMetrics + ); + }), + (e.getColor = function () { + return this.phantom ? "transparent" : this.color; + }), + t + ); + })(); + kt.BASESIZE = 6; + var St = kt, + Mt = { pt: 1, mm: 7227 / 2540, cm: 7227 / 254, in: 72.27, bp: 1.00375, pc: 12, dd: 1238 / 1157, cc: 14856 / 1157, nd: 685 / 642, nc: 1370 / 107, sp: 1 / 65536, px: 1.00375 }, + zt = { ex: !0, em: !0, mu: !0 }, + At = function (t) { + return "string" != typeof t && (t = t.unit), t in Mt || t in zt || "ex" === t; + }, + Tt = function (t, e) { + var r; + if (t.unit in Mt) r = Mt[t.unit] / e.fontMetrics().ptPerEm / e.sizeMultiplier; + else if ("mu" === t.unit) r = e.fontMetrics().cssEmPerMu; + else { + var a; + if (((a = e.style.isTight() ? e.havingStyle(e.style.text()) : e), "ex" === t.unit)) r = a.fontMetrics().xHeight; + else { + if ("em" !== t.unit) throw new o("Invalid unit: '" + t.unit + "'"); + r = a.fontMetrics().quad; + } + a !== e && (r *= a.sizeMultiplier / e.sizeMultiplier); + } + return Math.min(t.number * r, e.maxSize); + }, + Bt = ["\\imath", "\u0131", "\\jmath", "\u0237", "\\pounds", "\\mathsterling", "\\textsterling", "\xa3"], + Ct = function (t, e, r) { + return j[r][t] && j[r][t].replace && (t = j[r][t].replace), { value: t, metrics: G(t, e, r) }; + }, + qt = function (t, e, r, a, n) { + var i, + o = Ct(t, e, r), + s = o.metrics; + if (((t = o.value), s)) { + var h = s.italic; + ("text" === r || (a && "mathit" === a.font)) && (h = 0), (i = new E(t, s.height, s.depth, h, s.skew, s.width, n)); + } else "undefined" != typeof console && console.warn("No character metrics for '" + t + "' in style '" + e + "' and mode '" + r + "'"), (i = new E(t, 0, 0, 0, 0, 0, n)); + if (a) { + (i.maxFontSize = a.sizeMultiplier), a.style.isTight() && i.classes.push("mtight"); + var l = a.getColor(); + l && (i.style.color = l); + } + return i; + }, + Nt = function (t, e) { + if (T(t.classes) !== T(e.classes) || t.skew !== e.skew || t.maxFontSize !== e.maxFontSize) return !1; + for (var r in t.style) if (t.style.hasOwnProperty(r) && t.style[r] !== e.style[r]) return !1; + for (var a in e.style) if (e.style.hasOwnProperty(a) && t.style[a] !== e.style[a]) return !1; + return !0; + }, + It = function (t) { + for (var e = 0, r = 0, a = 0, n = 0; n < t.children.length; n++) { + var i = t.children[n]; + i.height > e && (e = i.height), i.depth > r && (r = i.depth), i.maxFontSize > a && (a = i.maxFontSize); + } + (t.height = e), (t.depth = r), (t.maxFontSize = a); + }, + Rt = function (t, e, r, a) { + var n = new N(t, e, r, a); + return It(n), n; + }, + Ot = function (t, e, r, a) { + return new N(t, e, r, a); + }, + Et = function (t) { + var e = new A(t); + return It(e), e; + }, + Lt = function (t, e, r) { + var a = ""; + switch (t) { + case "amsrm": + a = "AMS"; + break; + case "textrm": + a = "Main"; + break; + case "textsf": + a = "SansSerif"; + break; + case "texttt": + a = "Typewriter"; + break; + default: + a = t; + } + return a + "-" + ("textbf" === e && "textit" === r ? "BoldItalic" : "textbf" === e ? "Bold" : "textit" === e ? "Italic" : "Regular"); + }, + Ht = { + mathbf: { variant: "bold", fontName: "Main-Bold" }, + mathrm: { variant: "normal", fontName: "Main-Regular" }, + textit: { variant: "italic", fontName: "Main-Italic" }, + mathit: { variant: "italic", fontName: "Main-Italic" }, + mathbb: { variant: "double-struck", fontName: "AMS-Regular" }, + mathcal: { variant: "script", fontName: "Caligraphic-Regular" }, + mathfrak: { variant: "fraktur", fontName: "Fraktur-Regular" }, + mathscr: { variant: "script", fontName: "Script-Regular" }, + mathsf: { variant: "sans-serif", fontName: "SansSerif-Regular" }, + mathtt: { variant: "monospace", fontName: "Typewriter-Regular" }, + }, + Pt = { vec: ["vec", 0.471, 0.714], oiintSize1: ["oiintSize1", 0.957, 0.499], oiintSize2: ["oiintSize2", 1.472, 0.659], oiiintSize1: ["oiiintSize1", 1.304, 0.499], oiiintSize2: ["oiiintSize2", 1.98, 0.659] }, + Dt = { + fontMap: Ht, + makeSymbol: qt, + mathsym: function (t, e, r, a) { + return ( + void 0 === a && (a = []), + "boldsymbol" === r.font && Ct(t, "Main-Bold", e).metrics + ? qt(t, "Main-Bold", e, r, a.concat(["mathbf"])) + : "\\" === t || "main" === j[e][t].font + ? qt(t, "Main-Regular", e, r, a) + : qt(t, "AMS-Regular", e, r, a.concat(["amsrm"])) + ); + }, + makeSpan: Rt, + makeSvgSpan: Ot, + makeLineSpan: function (t, e, r) { + var a = Rt([t], [], e); + return (a.height = Math.max(r || e.fontMetrics().defaultRuleThickness, e.minRuleThickness)), (a.style.borderBottomWidth = a.height + "em"), (a.maxFontSize = 1), a; + }, + makeAnchor: function (t, e, r, a) { + var n = new I(t, e, r, a); + return It(n), n; + }, + makeFragment: Et, + wrapFragment: function (t, e) { + return t instanceof A ? Rt([], [t], e) : t; + }, + makeVList: function (t, e) { + for ( + var r = (function (t) { + if ("individualShift" === t.positionType) { + for (var e = t.children, r = [e[0]], a = -e[0].shift - e[0].elem.depth, n = a, i = 1; i < e.length; i++) { + var o = -e[i].shift - n - e[i].elem.depth, + s = o - (e[i - 1].elem.height + e[i - 1].elem.depth); + (n += o), r.push({ type: "kern", size: s }), r.push(e[i]); + } + return { children: r, depth: a }; + } + var h; + if ("top" === t.positionType) { + for (var l = t.positionData, m = 0; m < t.children.length; m++) { + var c = t.children[m]; + l -= "kern" === c.type ? c.size : c.elem.height + c.elem.depth; + } + h = l; + } else if ("bottom" === t.positionType) h = -t.positionData; + else { + var u = t.children[0]; + if ("elem" !== u.type) throw new Error('First child must have type "elem".'); + if ("shift" === t.positionType) h = -u.elem.depth - t.positionData; + else { + if ("firstBaseline" !== t.positionType) throw new Error("Invalid positionType " + t.positionType + "."); + h = -u.elem.depth; + } + } + return { children: t.children, depth: h }; + })(t), + a = r.children, + n = r.depth, + i = 0, + o = 0; + o < a.length; + o++ + ) { + var s = a[o]; + if ("elem" === s.type) { + var h = s.elem; + i = Math.max(i, h.maxFontSize, h.height); + } + } + i += 2; + var l = Rt(["pstrut"], []); + l.style.height = i + "em"; + for (var m = [], c = n, u = n, p = n, d = 0; d < a.length; d++) { + var f = a[d]; + if ("kern" === f.type) p += f.size; + else { + var g = f.elem, + x = f.wrapperClasses || [], + v = f.wrapperStyle || {}, + b = Rt(x, [l, g], void 0, v); + (b.style.top = -i - p - g.depth + "em"), f.marginLeft && (b.style.marginLeft = f.marginLeft), f.marginRight && (b.style.marginRight = f.marginRight), m.push(b), (p += g.height + g.depth); + } + (c = Math.min(c, p)), (u = Math.max(u, p)); + } + var y, + w = Rt(["vlist"], m); + if (((w.style.height = u + "em"), c < 0)) { + var k = Rt([], []), + S = Rt(["vlist"], [k]); + S.style.height = -c + "em"; + var M = Rt(["vlist-s"], [new E("\u200b")]); + y = [Rt(["vlist-r"], [w, M]), Rt(["vlist-r"], [S])]; + } else y = [Rt(["vlist-r"], [w])]; + var z = Rt(["vlist-t"], y); + return 2 === y.length && z.classes.push("vlist-t2"), (z.height = u), (z.depth = -c), z; + }, + makeOrd: function (t, e, r) { + var a, + n = t.mode, + i = t.text, + s = ["mord"], + h = "math" === n || ("text" === n && e.font), + l = h ? e.font : e.fontFamily; + if (55349 === i.charCodeAt(0)) { + var m = (function (t, e) { + var r = 1024 * (t.charCodeAt(0) - 55296) + (t.charCodeAt(1) - 56320) + 65536, + a = "math" === e ? 0 : 1; + if (119808 <= r && r < 120484) { + var n = Math.floor((r - 119808) / 26); + return [xt[n][2], xt[n][a]]; + } + if (120782 <= r && r <= 120831) { + var i = Math.floor((r - 120782) / 10); + return [vt[i][2], vt[i][a]]; + } + if (120485 === r || 120486 === r) return [xt[0][2], xt[0][a]]; + if (120486 < r && r < 120782) return ["", ""]; + throw new o("Unsupported character: " + t); + })(i, n), + u = m[0], + p = m[1]; + return qt(i, u, n, e, s.concat(p)); + } + if (l) { + var d, f; + if ("boldsymbol" === l || "mathnormal" === l) { + var g = + "boldsymbol" === l + ? (function (t, e, r, a) { + return Ct(t, "Math-BoldItalic", e).metrics ? { fontName: "Math-BoldItalic", fontClass: "boldsymbol" } : { fontName: "Main-Bold", fontClass: "mathbf" }; + })(i, n) + : ((a = i), + c.contains(Bt, a) + ? { fontName: "Main-Italic", fontClass: "mathit" } + : /[0-9]/.test(a.charAt(0)) + ? { fontName: "Caligraphic-Regular", fontClass: "mathcal" } + : { fontName: "Math-Italic", fontClass: "mathdefault" }); + (d = g.fontName), (f = [g.fontClass]); + } else c.contains(Bt, i) ? ((d = "Main-Italic"), (f = ["mathit"])) : h ? ((d = Ht[l].fontName), (f = [l])) : ((d = Lt(l, e.fontWeight, e.fontShape)), (f = [l, e.fontWeight, e.fontShape])); + if (Ct(i, d, n).metrics) return qt(i, d, n, e, s.concat(f)); + if (rt.hasOwnProperty(i) && "Typewriter" === d.substr(0, 10)) { + for (var x = [], v = 0; v < i.length; v++) x.push(qt(i[v], d, n, e, s.concat(f))); + return Et(x); + } + } + if ("mathord" === r) { + var b = (function (t, e, r, a) { + return /[0-9]/.test(t.charAt(0)) || c.contains(Bt, t) ? { fontName: "Main-Italic", fontClass: "mathit" } : { fontName: "Math-Italic", fontClass: "mathdefault" }; + })(i); + return qt(i, b.fontName, n, e, s.concat([b.fontClass])); + } + if ("textord" === r) { + var y = j[n][i] && j[n][i].font; + if ("ams" === y) { + var w = Lt("amsrm", e.fontWeight, e.fontShape); + return qt(i, w, n, e, s.concat("amsrm", e.fontWeight, e.fontShape)); + } + if ("main" !== y && y) { + var k = Lt(y, e.fontWeight, e.fontShape); + return qt(i, k, n, e, s.concat(k, e.fontWeight, e.fontShape)); + } + var S = Lt("textrm", e.fontWeight, e.fontShape); + return qt(i, S, n, e, s.concat(e.fontWeight, e.fontShape)); + } + throw new Error("unexpected type: " + r + " in makeOrd"); + }, + makeGlue: function (t, e) { + var r = Rt(["mspace"], [], e), + a = Tt(t, e); + return (r.style.marginRight = a + "em"), r; + }, + staticSvg: function (t, e) { + var r = Pt[t], + a = r[0], + n = r[1], + i = r[2], + o = new H(a), + s = new L([o], { width: n + "em", height: i + "em", style: "width:" + n + "em", viewBox: "0 0 " + 1e3 * n + " " + 1e3 * i, preserveAspectRatio: "xMinYMin" }), + h = Ot(["overlay"], [s], e); + return (h.height = i), (h.style.height = i + "em"), (h.style.width = n + "em"), h; + }, + svgData: Pt, + tryCombineChars: function (t) { + for (var e = 0; e < t.length - 1; e++) { + var r = t[e], + a = t[e + 1]; + r instanceof E && a instanceof E && Nt(r, a) && ((r.text += a.text), (r.height = Math.max(r.height, a.height)), (r.depth = Math.max(r.depth, a.depth)), (r.italic = a.italic), t.splice(e + 1, 1), e--); + } + return t; + }, + }; + function Ft(t, e) { + var r = Vt(t, e); + if (!r) throw new Error("Expected node of type " + e + ", but got " + (t ? "node of type " + t.type : String(t))); + return r; + } + function Vt(t, e) { + return t && t.type === e ? t : null; + } + function Ut(t, e) { + var r = (function (t, e) { + return t && "atom" === t.type && t.family === e ? t : null; + })(t, e); + if (!r) throw new Error('Expected node of type "atom" and family "' + e + '", but got ' + (t ? ("atom" === t.type ? "atom of family " + t.family : "node of type " + t.type) : String(t))); + return r; + } + function Gt(t) { + var e = Yt(t); + if (!e) throw new Error("Expected node of symbol group type, but got " + (t ? "node of type " + t.type : String(t))); + return e; + } + function Yt(t) { + return t && ("atom" === t.type || X.hasOwnProperty(t.type)) ? t : null; + } + var Wt = { number: 3, unit: "mu" }, + Xt = { number: 4, unit: "mu" }, + _t = { number: 5, unit: "mu" }, + jt = { + mord: { mop: Wt, mbin: Xt, mrel: _t, minner: Wt }, + mop: { mord: Wt, mop: Wt, mrel: _t, minner: Wt }, + mbin: { mord: Xt, mop: Xt, mopen: Xt, minner: Xt }, + mrel: { mord: _t, mop: _t, mopen: _t, minner: _t }, + mopen: {}, + mclose: { mop: Wt, mbin: Xt, mrel: _t, minner: Wt }, + mpunct: { mord: Wt, mop: Wt, mrel: _t, mopen: Wt, mclose: Wt, mpunct: Wt, minner: Wt }, + minner: { mord: Wt, mop: Wt, mbin: Xt, mrel: _t, mopen: Wt, mpunct: Wt, minner: Wt }, + }, + $t = { mord: { mop: Wt }, mop: { mord: Wt, mop: Wt }, mbin: {}, mrel: {}, mopen: {}, mclose: { mop: Wt }, mpunct: {}, minner: { mop: Wt } }, + Zt = {}, + Kt = {}, + Jt = {}; + function Qt(t) { + for ( + var e = t.type, + r = t.names, + a = t.props, + n = t.handler, + i = t.htmlBuilder, + o = t.mathmlBuilder, + s = { + type: e, + numArgs: a.numArgs, + argTypes: a.argTypes, + greediness: void 0 === a.greediness ? 1 : a.greediness, + allowedInText: !!a.allowedInText, + allowedInMath: void 0 === a.allowedInMath || a.allowedInMath, + numOptionalArgs: a.numOptionalArgs || 0, + infix: !!a.infix, + handler: n, + }, + h = 0; + h < r.length; + ++h + ) + Zt[r[h]] = s; + e && (i && (Kt[e] = i), o && (Jt[e] = o)); + } + function te(t) { + Qt({ + type: t.type, + names: [], + props: { numArgs: 0 }, + handler: function () { + throw new Error("Should never be called."); + }, + htmlBuilder: t.htmlBuilder, + mathmlBuilder: t.mathmlBuilder, + }); + } + var ee = function (t) { + var e = Vt(t, "ordgroup"); + return e ? e.body : [t]; + }, + re = Dt.makeSpan, + ae = ["leftmost", "mbin", "mopen", "mrel", "mop", "mpunct"], + ne = ["rightmost", "mrel", "mclose", "mpunct"], + ie = { display: w.DISPLAY, text: w.TEXT, script: w.SCRIPT, scriptscript: w.SCRIPTSCRIPT }, + oe = { mord: "mord", mop: "mop", mbin: "mbin", mrel: "mrel", mopen: "mopen", mclose: "mclose", mpunct: "mpunct", minner: "minner" }, + se = function (t, e, r, a) { + void 0 === a && (a = [null, null]); + for (var n = [], i = 0; i < t.length; i++) { + var o = ue(t[i], e); + if (o instanceof A) { + var s = o.children; + n.push.apply(n, s); + } else n.push(o); + } + if (!r) return n; + var h = e; + if (1 === t.length) { + var l = Vt(t[0], "sizing") || Vt(t[0], "styling"); + l && ("sizing" === l.type ? (h = e.havingSize(l.size)) : "styling" === l.type && (h = e.havingStyle(ie[l.style]))); + } + var m = re([a[0] || "leftmost"], [], e), + u = re([a[1] || "rightmost"], [], e); + return ( + he( + n, + function (t, e) { + var r = e.classes[0], + a = t.classes[0]; + "mbin" === r && c.contains(ne, a) ? (e.classes[0] = "mord") : "mbin" === a && c.contains(ae, r) && (t.classes[0] = "mord"); + }, + { node: m }, + u + ), + he( + n, + function (t, e) { + var r = me(e), + a = me(t), + n = r && a ? (t.hasClass("mtight") ? $t[r][a] : jt[r][a]) : null; + if (n) return Dt.makeGlue(n, h); + }, + { node: m }, + u + ), + n + ); + }, + he = function t(e, r, a, n) { + n && e.push(n); + for (var i = 0; i < e.length; i++) { + var o = e[i], + s = le(o); + if (s) t(s.children, r, a); + else if ("mspace" !== o.classes[0]) { + var h = r(o, a.node); + h && (a.insertAfter ? a.insertAfter(h) : (e.unshift(h), i++)), + (a.node = o), + (a.insertAfter = (function (t) { + return function (r) { + e.splice(t + 1, 0, r), i++; + }; + })(i)); + } + } + n && e.pop(); + }, + le = function (t) { + return t instanceof A || t instanceof I ? t : null; + }, + me = function (t, e) { + return t + ? (e && + (t = (function t(e, r) { + var a = le(e); + if (a) { + var n = a.children; + if (n.length) { + if ("right" === r) return t(n[n.length - 1], "right"); + if ("left" === r) return t(n[0], "left"); + } + } + return e; + })(t, e)), + oe[t.classes[0]] || null) + : null; + }, + ce = function (t, e) { + var r = ["nulldelimiter"].concat(t.baseSizingClasses()); + return re(e.concat(r)); + }, + ue = function (t, e, r) { + if (!t) return re(); + if (Kt[t.type]) { + var a = Kt[t.type](t, e); + if (r && e.size !== r.size) { + a = re(e.sizingClasses(r), [a], e); + var n = e.sizeMultiplier / r.sizeMultiplier; + (a.height *= n), (a.depth *= n); + } + return a; + } + throw new o("Got group of unknown type: '" + t.type + "'"); + }; + function pe(t, e) { + var r = re(["base"], t, e), + a = re(["strut"]); + return (a.style.height = r.height + r.depth + "em"), (a.style.verticalAlign = -r.depth + "em"), r.children.unshift(a), r; + } + function de(t, e) { + var r = null; + 1 === t.length && "tag" === t[0].type && ((r = t[0].tag), (t = t[0].body)); + for (var a, n = se(t, e, !0), i = [], o = [], s = 0; s < n.length; s++) + if ((o.push(n[s]), n[s].hasClass("mbin") || n[s].hasClass("mrel") || n[s].hasClass("allowbreak"))) { + for (var h = !1; s < n.length - 1 && n[s + 1].hasClass("mspace") && !n[s + 1].hasClass("newline"); ) s++, o.push(n[s]), n[s].hasClass("nobreak") && (h = !0); + h || (i.push(pe(o, e)), (o = [])); + } else n[s].hasClass("newline") && (o.pop(), o.length > 0 && (i.push(pe(o, e)), (o = [])), i.push(n[s])); + o.length > 0 && i.push(pe(o, e)), r && (((a = pe(se(r, e, !0))).classes = ["tag"]), i.push(a)); + var l = re(["katex-html"], i); + if ((l.setAttribute("aria-hidden", "true"), a)) { + var m = a.children[0]; + (m.style.height = l.height + l.depth + "em"), (m.style.verticalAlign = -l.depth + "em"); + } + return l; + } + function fe(t) { + return new A(t); + } + var ge = (function () { + function t(t, e) { + (this.type = void 0), (this.attributes = void 0), (this.children = void 0), (this.type = t), (this.attributes = {}), (this.children = e || []); + } + var e = t.prototype; + return ( + (e.setAttribute = function (t, e) { + this.attributes[t] = e; + }), + (e.getAttribute = function (t) { + return this.attributes[t]; + }), + (e.toNode = function () { + var t = document.createElementNS("http://www.w3.org/1998/Math/MathML", this.type); + for (var e in this.attributes) Object.prototype.hasOwnProperty.call(this.attributes, e) && t.setAttribute(e, this.attributes[e]); + for (var r = 0; r < this.children.length; r++) t.appendChild(this.children[r].toNode()); + return t; + }), + (e.toMarkup = function () { + var t = "<" + this.type; + for (var e in this.attributes) Object.prototype.hasOwnProperty.call(this.attributes, e) && ((t += " " + e + '="'), (t += c.escape(this.attributes[e])), (t += '"')); + t += ">"; + for (var r = 0; r < this.children.length; r++) t += this.children[r].toMarkup(); + return (t += ""); + }), + (e.toText = function () { + return this.children + .map(function (t) { + return t.toText(); + }) + .join(""); + }), + t + ); + })(), + xe = (function () { + function t(t) { + (this.text = void 0), (this.text = t); + } + var e = t.prototype; + return ( + (e.toNode = function () { + return document.createTextNode(this.text); + }), + (e.toMarkup = function () { + return c.escape(this.toText()); + }), + (e.toText = function () { + return this.text; + }), + t + ); + })(), + ve = { + MathNode: ge, + TextNode: xe, + SpaceNode: (function () { + function t(t) { + (this.width = void 0), + (this.character = void 0), + (this.width = t), + (this.character = + t >= 0.05555 && t <= 0.05556 + ? "\u200a" + : t >= 0.1666 && t <= 0.1667 + ? "\u2009" + : t >= 0.2222 && t <= 0.2223 + ? "\u2005" + : t >= 0.2777 && t <= 0.2778 + ? "\u2005\u200a" + : t >= -0.05556 && t <= -0.05555 + ? "\u200a\u2063" + : t >= -0.1667 && t <= -0.1666 + ? "\u2009\u2063" + : t >= -0.2223 && t <= -0.2222 + ? "\u205f\u2063" + : t >= -0.2778 && t <= -0.2777 + ? "\u2005\u2063" + : null); + } + var e = t.prototype; + return ( + (e.toNode = function () { + if (this.character) return document.createTextNode(this.character); + var t = document.createElementNS("http://www.w3.org/1998/Math/MathML", "mspace"); + return t.setAttribute("width", this.width + "em"), t; + }), + (e.toMarkup = function () { + return this.character ? "" + this.character + "" : ''; + }), + (e.toText = function () { + return this.character ? this.character : " "; + }), + t + ); + })(), + newDocumentFragment: fe, + }, + be = function (t, e, r) { + return ( + !j[e][t] || !j[e][t].replace || 55349 === t.charCodeAt(0) || (rt.hasOwnProperty(t) && r && ((r.fontFamily && "tt" === r.fontFamily.substr(4, 2)) || (r.font && "tt" === r.font.substr(4, 2)))) || (t = j[e][t].replace), + new ve.TextNode(t) + ); + }, + ye = function (t) { + return 1 === t.length ? t[0] : new ve.MathNode("mrow", t); + }, + we = function (t, e) { + if ("texttt" === e.fontFamily) return "monospace"; + if ("textsf" === e.fontFamily) + return "textit" === e.fontShape && "textbf" === e.fontWeight ? "sans-serif-bold-italic" : "textit" === e.fontShape ? "sans-serif-italic" : "textbf" === e.fontWeight ? "bold-sans-serif" : "sans-serif"; + if ("textit" === e.fontShape && "textbf" === e.fontWeight) return "bold-italic"; + if ("textit" === e.fontShape) return "italic"; + if ("textbf" === e.fontWeight) return "bold"; + var r = e.font; + if (!r || "mathnormal" === r) return null; + var a = t.mode; + if ("mathit" === r) return "italic"; + if ("boldsymbol" === r) return "bold-italic"; + if ("mathbf" === r) return "bold"; + if ("mathbb" === r) return "double-struck"; + if ("mathfrak" === r) return "fraktur"; + if ("mathscr" === r || "mathcal" === r) return "script"; + if ("mathsf" === r) return "sans-serif"; + if ("mathtt" === r) return "monospace"; + var n = t.text; + return c.contains(["\\imath", "\\jmath"], n) ? null : (j[a][n] && j[a][n].replace && (n = j[a][n].replace), G(n, Dt.fontMap[r].fontName, a) ? Dt.fontMap[r].variant : null); + }, + ke = function (t, e, r) { + if (1 === t.length) { + var a = Me(t[0], e); + return r && a instanceof ge && "mo" === a.type && (a.setAttribute("lspace", "0em"), a.setAttribute("rspace", "0em")), [a]; + } + for (var n, i = [], o = 0; o < t.length; o++) { + var s = Me(t[o], e); + if (s instanceof ge && n instanceof ge) { + if ("mtext" === s.type && "mtext" === n.type && s.getAttribute("mathvariant") === n.getAttribute("mathvariant")) { + var h; + (h = n.children).push.apply(h, s.children); + continue; + } + if ("mn" === s.type && "mn" === n.type) { + var l; + (l = n.children).push.apply(l, s.children); + continue; + } + if ("mi" === s.type && 1 === s.children.length && "mn" === n.type) { + var m = s.children[0]; + if (m instanceof xe && "." === m.text) { + var c; + (c = n.children).push.apply(c, s.children); + continue; + } + } else if ("mi" === n.type && 1 === n.children.length) { + var u = n.children[0]; + if (u instanceof xe && "\u0338" === u.text && ("mo" === s.type || "mi" === s.type || "mn" === s.type)) { + var p = s.children[0]; + p instanceof xe && p.text.length > 0 && ((p.text = p.text.slice(0, 1) + "\u0338" + p.text.slice(1)), i.pop()); + } + } + } + i.push(s), (n = s); + } + return i; + }, + Se = function (t, e, r) { + return ye(ke(t, e, r)); + }, + Me = function (t, e) { + if (!t) return new ve.MathNode("mrow"); + if (Jt[t.type]) return Jt[t.type](t, e); + throw new o("Got group of unknown type: '" + t.type + "'"); + }; + function ze(t, e, r, a) { + var n, + i = ke(t, r); + n = 1 === i.length && i[0] instanceof ge && c.contains(["mrow", "mtable"], i[0].type) ? i[0] : new ve.MathNode("mrow", i); + var o = new ve.MathNode("annotation", [new ve.TextNode(e)]); + o.setAttribute("encoding", "application/x-tex"); + var s = new ve.MathNode("semantics", [n, o]), + h = new ve.MathNode("math", [s]); + h.setAttribute("xmlns", "http://www.w3.org/1998/Math/MathML"); + var l = a ? "katex" : "katex-mathml"; + return Dt.makeSpan([l], [h]); + } + var Ae = function (t) { + return new St({ style: t.displayMode ? w.DISPLAY : w.TEXT, maxSize: t.maxSize, minRuleThickness: t.minRuleThickness }); + }, + Te = function (t, e) { + if (e.displayMode) { + var r = ["katex-display"]; + e.leqno && r.push("leqno"), e.fleqn && r.push("fleqn"), (t = Dt.makeSpan(r, [t])); + } + return t; + }, + Be = function (t, e, r) { + var a, + n = Ae(r); + if ("mathml" === r.output) return ze(t, e, n, !0); + if ("html" === r.output) { + var i = de(t, n); + a = Dt.makeSpan(["katex"], [i]); + } else { + var o = ze(t, e, n, !1), + s = de(t, n); + a = Dt.makeSpan(["katex"], [o, s]); + } + return Te(a, r); + }, + Ce = { + widehat: "^", + widecheck: "\u02c7", + widetilde: "~", + utilde: "~", + overleftarrow: "\u2190", + underleftarrow: "\u2190", + xleftarrow: "\u2190", + overrightarrow: "\u2192", + underrightarrow: "\u2192", + xrightarrow: "\u2192", + underbrace: "\u23df", + overbrace: "\u23de", + overgroup: "\u23e0", + undergroup: "\u23e1", + overleftrightarrow: "\u2194", + underleftrightarrow: "\u2194", + xleftrightarrow: "\u2194", + Overrightarrow: "\u21d2", + xRightarrow: "\u21d2", + overleftharpoon: "\u21bc", + xleftharpoonup: "\u21bc", + overrightharpoon: "\u21c0", + xrightharpoonup: "\u21c0", + xLeftarrow: "\u21d0", + xLeftrightarrow: "\u21d4", + xhookleftarrow: "\u21a9", + xhookrightarrow: "\u21aa", + xmapsto: "\u21a6", + xrightharpoondown: "\u21c1", + xleftharpoondown: "\u21bd", + xrightleftharpoons: "\u21cc", + xleftrightharpoons: "\u21cb", + xtwoheadleftarrow: "\u219e", + xtwoheadrightarrow: "\u21a0", + xlongequal: "=", + xtofrom: "\u21c4", + xrightleftarrows: "\u21c4", + xrightequilibrium: "\u21cc", + xleftequilibrium: "\u21cb", + }, + qe = { + overrightarrow: [["rightarrow"], 0.888, 522, "xMaxYMin"], + overleftarrow: [["leftarrow"], 0.888, 522, "xMinYMin"], + underrightarrow: [["rightarrow"], 0.888, 522, "xMaxYMin"], + underleftarrow: [["leftarrow"], 0.888, 522, "xMinYMin"], + xrightarrow: [["rightarrow"], 1.469, 522, "xMaxYMin"], + xleftarrow: [["leftarrow"], 1.469, 522, "xMinYMin"], + Overrightarrow: [["doublerightarrow"], 0.888, 560, "xMaxYMin"], + xRightarrow: [["doublerightarrow"], 1.526, 560, "xMaxYMin"], + xLeftarrow: [["doubleleftarrow"], 1.526, 560, "xMinYMin"], + overleftharpoon: [["leftharpoon"], 0.888, 522, "xMinYMin"], + xleftharpoonup: [["leftharpoon"], 0.888, 522, "xMinYMin"], + xleftharpoondown: [["leftharpoondown"], 0.888, 522, "xMinYMin"], + overrightharpoon: [["rightharpoon"], 0.888, 522, "xMaxYMin"], + xrightharpoonup: [["rightharpoon"], 0.888, 522, "xMaxYMin"], + xrightharpoondown: [["rightharpoondown"], 0.888, 522, "xMaxYMin"], + xlongequal: [["longequal"], 0.888, 334, "xMinYMin"], + xtwoheadleftarrow: [["twoheadleftarrow"], 0.888, 334, "xMinYMin"], + xtwoheadrightarrow: [["twoheadrightarrow"], 0.888, 334, "xMaxYMin"], + overleftrightarrow: [["leftarrow", "rightarrow"], 0.888, 522], + overbrace: [["leftbrace", "midbrace", "rightbrace"], 1.6, 548], + underbrace: [["leftbraceunder", "midbraceunder", "rightbraceunder"], 1.6, 548], + underleftrightarrow: [["leftarrow", "rightarrow"], 0.888, 522], + xleftrightarrow: [["leftarrow", "rightarrow"], 1.75, 522], + xLeftrightarrow: [["doubleleftarrow", "doublerightarrow"], 1.75, 560], + xrightleftharpoons: [["leftharpoondownplus", "rightharpoonplus"], 1.75, 716], + xleftrightharpoons: [["leftharpoonplus", "rightharpoondownplus"], 1.75, 716], + xhookleftarrow: [["leftarrow", "righthook"], 1.08, 522], + xhookrightarrow: [["lefthook", "rightarrow"], 1.08, 522], + overlinesegment: [["leftlinesegment", "rightlinesegment"], 0.888, 522], + underlinesegment: [["leftlinesegment", "rightlinesegment"], 0.888, 522], + overgroup: [["leftgroup", "rightgroup"], 0.888, 342], + undergroup: [["leftgroupunder", "rightgroupunder"], 0.888, 342], + xmapsto: [["leftmapsto", "rightarrow"], 1.5, 522], + xtofrom: [["leftToFrom", "rightToFrom"], 1.75, 528], + xrightleftarrows: [["baraboveleftarrow", "rightarrowabovebar"], 1.75, 901], + xrightequilibrium: [["baraboveshortleftharpoon", "rightharpoonaboveshortbar"], 1.75, 716], + xleftequilibrium: [["shortbaraboveleftharpoon", "shortrightharpoonabovebar"], 1.75, 716], + }, + Ne = function (t) { + return "ordgroup" === t.type ? t.body.length : 1; + }, + Ie = function (t, e, r, a) { + var n, + i = t.height + t.depth + 2 * r; + if (/fbox|color/.test(e)) { + if (((n = Dt.makeSpan(["stretchy", e], [], a)), "fbox" === e)) { + var o = a.color && a.getColor(); + o && (n.style.borderColor = o); + } + } else { + var s = []; + /^[bx]cancel$/.test(e) && s.push(new P({ x1: "0", y1: "0", x2: "100%", y2: "100%", "stroke-width": "0.046em" })), + /^x?cancel$/.test(e) && s.push(new P({ x1: "0", y1: "100%", x2: "100%", y2: "0", "stroke-width": "0.046em" })); + var h = new L(s, { width: "100%", height: i + "em" }); + n = Dt.makeSvgSpan([], [h], a); + } + return (n.height = i), (n.style.height = i + "em"), n; + }, + Re = function (t) { + var e = new ve.MathNode("mo", [new ve.TextNode(Ce[t.substr(1)])]); + return e.setAttribute("stretchy", "true"), e; + }, + Oe = function (t, e) { + var r = (function () { + var r = 4e5, + a = t.label.substr(1); + if (c.contains(["widehat", "widecheck", "widetilde", "utilde"], a)) { + var n, + i, + o, + s = Ne(t.base); + if (s > 5) "widehat" === a || "widecheck" === a ? ((n = 420), (r = 2364), (o = 0.42), (i = a + "4")) : ((n = 312), (r = 2340), (o = 0.34), (i = "tilde4")); + else { + var h = [1, 1, 2, 2, 3, 3][s]; + "widehat" === a || "widecheck" === a + ? ((r = [0, 1062, 2364, 2364, 2364][h]), (n = [0, 239, 300, 360, 420][h]), (o = [0, 0.24, 0.3, 0.3, 0.36, 0.42][h]), (i = a + h)) + : ((r = [0, 600, 1033, 2339, 2340][h]), (n = [0, 260, 286, 306, 312][h]), (o = [0, 0.26, 0.286, 0.3, 0.306, 0.34][h]), (i = "tilde" + h)); + } + var l = new H(i), + m = new L([l], { width: "100%", height: o + "em", viewBox: "0 0 " + r + " " + n, preserveAspectRatio: "none" }); + return { span: Dt.makeSvgSpan([], [m], e), minWidth: 0, height: o }; + } + var u, + p, + d = [], + f = qe[a], + g = f[0], + x = f[1], + v = f[2], + b = v / 1e3, + y = g.length; + if (1 === y) (u = ["hide-tail"]), (p = [f[3]]); + else if (2 === y) (u = ["halfarrow-left", "halfarrow-right"]), (p = ["xMinYMin", "xMaxYMin"]); + else { + if (3 !== y) throw new Error("Correct katexImagesData or update code here to support\n " + y + " children."); + (u = ["brace-left", "brace-center", "brace-right"]), (p = ["xMinYMin", "xMidYMin", "xMaxYMin"]); + } + for (var w = 0; w < y; w++) { + var k = new H(g[w]), + S = new L([k], { width: "400em", height: b + "em", viewBox: "0 0 " + r + " " + v, preserveAspectRatio: p[w] + " slice" }), + M = Dt.makeSvgSpan([u[w]], [S], e); + if (1 === y) return { span: M, minWidth: x, height: b }; + (M.style.height = b + "em"), d.push(M); + } + return { span: Dt.makeSpan(["stretchy"], d, e), minWidth: x, height: b }; + })(), + a = r.span, + n = r.minWidth, + i = r.height; + return (a.height = i), (a.style.height = i + "em"), n > 0 && (a.style.minWidth = n + "em"), a; + }, + Ee = function (t, e) { + var r, + a, + n, + i = Vt(t, "supsub"); + i + ? ((r = (a = Ft(i.base, "accent")).base), + (i.base = r), + (n = (function (t) { + if (t instanceof N) return t; + throw new Error("Expected span but got " + String(t) + "."); + })(ue(i, e))), + (i.base = a)) + : (r = (a = Ft(t, "accent")).base); + var o = ue(r, e.havingCrampedStyle()), + s = 0; + if (a.isShifty && c.isCharacterBox(r)) { + var h = c.getBaseElem(r); + s = D(ue(h, e.havingCrampedStyle())).skew; + } + var l, + m = Math.min(o.height, e.fontMetrics().xHeight); + if (a.isStretchy) + (l = Oe(a, e)), + (l = Dt.makeVList( + { + positionType: "firstBaseline", + children: [ + { type: "elem", elem: o }, + { type: "elem", elem: l, wrapperClasses: ["svg-align"], wrapperStyle: s > 0 ? { width: "calc(100% - " + 2 * s + "em)", marginLeft: 2 * s + "em" } : void 0 }, + ], + }, + e + )); + else { + var u, p; + "\\vec" === a.label ? ((u = Dt.staticSvg("vec", e)), (p = Dt.svgData.vec[1])) : (((u = D((u = Dt.makeOrd({ mode: a.mode, text: a.label }, e, "textord")))).italic = 0), (p = u.width)), + (l = Dt.makeSpan(["accent-body"], [u])); + var d = "\\textcircled" === a.label; + d && (l.classes.push("accent-full"), (m = o.height)); + var f = s; + d || (f -= p / 2), + (l.style.left = f + "em"), + "\\textcircled" === a.label && (l.style.top = ".2em"), + (l = Dt.makeVList( + { + positionType: "firstBaseline", + children: [ + { type: "elem", elem: o }, + { type: "kern", size: -m }, + { type: "elem", elem: l }, + ], + }, + e + )); + } + var g = Dt.makeSpan(["mord", "accent"], [l], e); + return n ? ((n.children[0] = g), (n.height = Math.max(g.height, n.height)), (n.classes[0] = "mord"), n) : g; + }, + Le = function (t, e) { + var r = t.isStretchy ? Re(t.label) : new ve.MathNode("mo", [be(t.label, t.mode)]), + a = new ve.MathNode("mover", [Me(t.base, e), r]); + return a.setAttribute("accent", "true"), a; + }, + He = new RegExp( + ["\\acute", "\\grave", "\\ddot", "\\tilde", "\\bar", "\\breve", "\\check", "\\hat", "\\vec", "\\dot", "\\mathring"] + .map(function (t) { + return "\\" + t; + }) + .join("|") + ); + Qt({ + type: "accent", + names: [ + "\\acute", + "\\grave", + "\\ddot", + "\\tilde", + "\\bar", + "\\breve", + "\\check", + "\\hat", + "\\vec", + "\\dot", + "\\mathring", + "\\widecheck", + "\\widehat", + "\\widetilde", + "\\overrightarrow", + "\\overleftarrow", + "\\Overrightarrow", + "\\overleftrightarrow", + "\\overgroup", + "\\overlinesegment", + "\\overleftharpoon", + "\\overrightharpoon", + ], + props: { numArgs: 1 }, + handler: function (t, e) { + var r = e[0], + a = !He.test(t.funcName), + n = !a || "\\widehat" === t.funcName || "\\widetilde" === t.funcName || "\\widecheck" === t.funcName; + return { type: "accent", mode: t.parser.mode, label: t.funcName, isStretchy: a, isShifty: n, base: r }; + }, + htmlBuilder: Ee, + mathmlBuilder: Le, + }), + Qt({ + type: "accent", + names: ["\\'", "\\`", "\\^", "\\~", "\\=", "\\u", "\\.", '\\"', "\\r", "\\H", "\\v", "\\textcircled"], + props: { numArgs: 1, allowedInText: !0, allowedInMath: !1 }, + handler: function (t, e) { + var r = e[0]; + return { type: "accent", mode: t.parser.mode, label: t.funcName, isStretchy: !1, isShifty: !0, base: r }; + }, + htmlBuilder: Ee, + mathmlBuilder: Le, + }), + Qt({ + type: "accentUnder", + names: ["\\underleftarrow", "\\underrightarrow", "\\underleftrightarrow", "\\undergroup", "\\underlinesegment", "\\utilde"], + props: { numArgs: 1 }, + handler: function (t, e) { + var r = t.parser, + a = t.funcName, + n = e[0]; + return { type: "accentUnder", mode: r.mode, label: a, base: n }; + }, + htmlBuilder: function (t, e) { + var r = ue(t.base, e), + a = Oe(t, e), + n = "\\utilde" === t.label ? 0.12 : 0, + i = Dt.makeVList( + { + positionType: "bottom", + positionData: a.height + n, + children: [ + { type: "elem", elem: a, wrapperClasses: ["svg-align"] }, + { type: "kern", size: n }, + { type: "elem", elem: r }, + ], + }, + e + ); + return Dt.makeSpan(["mord", "accentunder"], [i], e); + }, + mathmlBuilder: function (t, e) { + var r = Re(t.label), + a = new ve.MathNode("munder", [Me(t.base, e), r]); + return a.setAttribute("accentunder", "true"), a; + }, + }); + var Pe = function (t) { + var e = new ve.MathNode("mpadded", t ? [t] : []); + return e.setAttribute("width", "+0.6em"), e.setAttribute("lspace", "0.3em"), e; + }; + Qt({ + type: "xArrow", + names: [ + "\\xleftarrow", + "\\xrightarrow", + "\\xLeftarrow", + "\\xRightarrow", + "\\xleftrightarrow", + "\\xLeftrightarrow", + "\\xhookleftarrow", + "\\xhookrightarrow", + "\\xmapsto", + "\\xrightharpoondown", + "\\xrightharpoonup", + "\\xleftharpoondown", + "\\xleftharpoonup", + "\\xrightleftharpoons", + "\\xleftrightharpoons", + "\\xlongequal", + "\\xtwoheadrightarrow", + "\\xtwoheadleftarrow", + "\\xtofrom", + "\\xrightleftarrows", + "\\xrightequilibrium", + "\\xleftequilibrium", + ], + props: { numArgs: 1, numOptionalArgs: 1 }, + handler: function (t, e, r) { + var a = t.parser, + n = t.funcName; + return { type: "xArrow", mode: a.mode, label: n, body: e[0], below: r[0] }; + }, + htmlBuilder: function (t, e) { + var r, + a = e.style, + n = e.havingStyle(a.sup()), + i = Dt.wrapFragment(ue(t.body, n, e), e); + i.classes.push("x-arrow-pad"), t.below && ((n = e.havingStyle(a.sub())), (r = Dt.wrapFragment(ue(t.below, n, e), e)).classes.push("x-arrow-pad")); + var o, + s = Oe(t, e), + h = -e.fontMetrics().axisHeight + 0.5 * s.height, + l = -e.fontMetrics().axisHeight - 0.5 * s.height - 0.111; + if (((i.depth > 0.25 || "\\xleftequilibrium" === t.label) && (l -= i.depth), r)) { + var m = -e.fontMetrics().axisHeight + r.height + 0.5 * s.height + 0.111; + o = Dt.makeVList( + { + positionType: "individualShift", + children: [ + { type: "elem", elem: i, shift: l }, + { type: "elem", elem: s, shift: h }, + { type: "elem", elem: r, shift: m }, + ], + }, + e + ); + } else + o = Dt.makeVList( + { + positionType: "individualShift", + children: [ + { type: "elem", elem: i, shift: l }, + { type: "elem", elem: s, shift: h }, + ], + }, + e + ); + return o.children[0].children[0].children[1].classes.push("svg-align"), Dt.makeSpan(["mrel", "x-arrow"], [o], e); + }, + mathmlBuilder: function (t, e) { + var r, + a = Re(t.label); + if (t.body) { + var n = Pe(Me(t.body, e)); + if (t.below) { + var i = Pe(Me(t.below, e)); + r = new ve.MathNode("munderover", [a, i, n]); + } else r = new ve.MathNode("mover", [a, n]); + } else if (t.below) { + var o = Pe(Me(t.below, e)); + r = new ve.MathNode("munder", [a, o]); + } else (r = Pe()), (r = new ve.MathNode("mover", [a, r])); + return r; + }, + }), + Qt({ + type: "textord", + names: ["\\@char"], + props: { numArgs: 1, allowedInText: !0 }, + handler: function (t, e) { + for (var r = t.parser, a = Ft(e[0], "ordgroup").body, n = "", i = 0; i < a.length; i++) { + n += Ft(a[i], "textord").text; + } + var s = parseInt(n); + if (isNaN(s)) throw new o("\\@char has non-numeric argument " + n); + return { type: "textord", mode: r.mode, text: String.fromCharCode(s) }; + }, + }); + var De = function (t, e) { + var r = se(t.body, e.withColor(t.color), !1); + return Dt.makeFragment(r); + }, + Fe = function (t, e) { + var r = ke(t.body, e.withColor(t.color)), + a = new ve.MathNode("mstyle", r); + return a.setAttribute("mathcolor", t.color), a; + }; + Qt({ + type: "color", + names: ["\\textcolor"], + props: { numArgs: 2, allowedInText: !0, greediness: 3, argTypes: ["color", "original"] }, + handler: function (t, e) { + var r = t.parser, + a = Ft(e[0], "color-token").color, + n = e[1]; + return { type: "color", mode: r.mode, color: a, body: ee(n) }; + }, + htmlBuilder: De, + mathmlBuilder: Fe, + }), + Qt({ + type: "color", + names: ["\\color"], + props: { numArgs: 1, allowedInText: !0, greediness: 3, argTypes: ["color"] }, + handler: function (t, e) { + var r = t.parser, + a = t.breakOnTokenText, + n = Ft(e[0], "color-token").color; + r.gullet.macros.set("\\current@color", n); + var i = r.parseExpression(!0, a); + return { type: "color", mode: r.mode, color: n, body: i }; + }, + htmlBuilder: De, + mathmlBuilder: Fe, + }), + Qt({ + type: "cr", + names: ["\\cr", "\\newline"], + props: { numArgs: 0, numOptionalArgs: 1, argTypes: ["size"], allowedInText: !0 }, + handler: function (t, e, r) { + var a = t.parser, + n = t.funcName, + i = r[0], + o = "\\cr" === n, + s = !1; + return ( + o || (s = !a.settings.displayMode || !a.settings.useStrictBehavior("newLineInDisplayMode", "In LaTeX, \\\\ or \\newline does nothing in display mode")), + { type: "cr", mode: a.mode, newLine: s, newRow: o, size: i && Ft(i, "size").value } + ); + }, + htmlBuilder: function (t, e) { + if (t.newRow) throw new o("\\cr valid only within a tabular/array environment"); + var r = Dt.makeSpan(["mspace"], [], e); + return t.newLine && (r.classes.push("newline"), t.size && (r.style.marginTop = Tt(t.size, e) + "em")), r; + }, + mathmlBuilder: function (t, e) { + var r = new ve.MathNode("mspace"); + return t.newLine && (r.setAttribute("linebreak", "newline"), t.size && r.setAttribute("height", Tt(t.size, e) + "em")), r; + }, + }); + var Ve = function (t, e, r) { + var a = G((j.math[t] && j.math[t].replace) || t, e, r); + if (!a) throw new Error("Unsupported symbol " + t + " and font size " + e + "."); + return a; + }, + Ue = function (t, e, r, a) { + var n = r.havingBaseStyle(e), + i = Dt.makeSpan(a.concat(n.sizingClasses(r)), [t], r), + o = n.sizeMultiplier / r.sizeMultiplier; + return (i.height *= o), (i.depth *= o), (i.maxFontSize = n.sizeMultiplier), i; + }, + Ge = function (t, e, r) { + var a = e.havingBaseStyle(r), + n = (1 - e.sizeMultiplier / a.sizeMultiplier) * e.fontMetrics().axisHeight; + t.classes.push("delimcenter"), (t.style.top = n + "em"), (t.height -= n), (t.depth += n); + }, + Ye = function (t, e, r, a, n, i) { + var o = (function (t, e, r, a) { + return Dt.makeSymbol(t, "Size" + e + "-Regular", r, a); + })(t, e, n, a), + s = Ue(Dt.makeSpan(["delimsizing", "size" + e], [o], a), w.TEXT, a, i); + return r && Ge(s, a, w.TEXT), s; + }, + We = function (t, e, r) { + var a; + return (a = "Size1-Regular" === e ? "delim-size1" : "delim-size4"), { type: "elem", elem: Dt.makeSpan(["delimsizinginner", a], [Dt.makeSpan([], [Dt.makeSymbol(t, e, r)])]) }; + }, + Xe = { type: "kern", size: -0.005 }, + _e = function (t, e, r, a, n, i) { + var o, s, h, l; + (o = h = l = t), (s = null); + var m = "Size1-Regular"; + "\\uparrow" === t + ? (h = l = "\u23d0") + : "\\Uparrow" === t + ? (h = l = "\u2016") + : "\\downarrow" === t + ? (o = h = "\u23d0") + : "\\Downarrow" === t + ? (o = h = "\u2016") + : "\\updownarrow" === t + ? ((o = "\\uparrow"), (h = "\u23d0"), (l = "\\downarrow")) + : "\\Updownarrow" === t + ? ((o = "\\Uparrow"), (h = "\u2016"), (l = "\\Downarrow")) + : "[" === t || "\\lbrack" === t + ? ((o = "\u23a1"), (h = "\u23a2"), (l = "\u23a3"), (m = "Size4-Regular")) + : "]" === t || "\\rbrack" === t + ? ((o = "\u23a4"), (h = "\u23a5"), (l = "\u23a6"), (m = "Size4-Regular")) + : "\\lfloor" === t || "\u230a" === t + ? ((h = o = "\u23a2"), (l = "\u23a3"), (m = "Size4-Regular")) + : "\\lceil" === t || "\u2308" === t + ? ((o = "\u23a1"), (h = l = "\u23a2"), (m = "Size4-Regular")) + : "\\rfloor" === t || "\u230b" === t + ? ((h = o = "\u23a5"), (l = "\u23a6"), (m = "Size4-Regular")) + : "\\rceil" === t || "\u2309" === t + ? ((o = "\u23a4"), (h = l = "\u23a5"), (m = "Size4-Regular")) + : "(" === t || "\\lparen" === t + ? ((o = "\u239b"), (h = "\u239c"), (l = "\u239d"), (m = "Size4-Regular")) + : ")" === t || "\\rparen" === t + ? ((o = "\u239e"), (h = "\u239f"), (l = "\u23a0"), (m = "Size4-Regular")) + : "\\{" === t || "\\lbrace" === t + ? ((o = "\u23a7"), (s = "\u23a8"), (l = "\u23a9"), (h = "\u23aa"), (m = "Size4-Regular")) + : "\\}" === t || "\\rbrace" === t + ? ((o = "\u23ab"), (s = "\u23ac"), (l = "\u23ad"), (h = "\u23aa"), (m = "Size4-Regular")) + : "\\lgroup" === t || "\u27ee" === t + ? ((o = "\u23a7"), (l = "\u23a9"), (h = "\u23aa"), (m = "Size4-Regular")) + : "\\rgroup" === t || "\u27ef" === t + ? ((o = "\u23ab"), (l = "\u23ad"), (h = "\u23aa"), (m = "Size4-Regular")) + : "\\lmoustache" === t || "\u23b0" === t + ? ((o = "\u23a7"), (l = "\u23ad"), (h = "\u23aa"), (m = "Size4-Regular")) + : ("\\rmoustache" !== t && "\u23b1" !== t) || ((o = "\u23ab"), (l = "\u23a9"), (h = "\u23aa"), (m = "Size4-Regular")); + var c = Ve(o, m, n), + u = c.height + c.depth, + p = Ve(h, m, n), + d = p.height + p.depth, + f = Ve(l, m, n), + g = f.height + f.depth, + x = 0, + v = 1; + if (null !== s) { + var b = Ve(s, m, n); + (x = b.height + b.depth), (v = 2); + } + var y = u + g + x, + k = Math.max(0, Math.ceil((e - y) / (v * d))), + S = y + k * v * d, + M = a.fontMetrics().axisHeight; + r && (M *= a.sizeMultiplier); + var z = S / 2 - M, + A = 0.005 * (k + 1) - d, + T = []; + if ((T.push(We(l, m, n)), null === s)) for (var B = 0; B < k; B++) T.push(Xe), T.push(We(h, m, n)); + else { + for (var C = 0; C < k; C++) T.push(Xe), T.push(We(h, m, n)); + T.push({ type: "kern", size: A }), T.push(We(h, m, n)), T.push(Xe), T.push(We(s, m, n)); + for (var q = 0; q < k; q++) T.push(Xe), T.push(We(h, m, n)); + } + T.push({ type: "kern", size: A }), T.push(We(h, m, n)), T.push(Xe), T.push(We(o, m, n)); + var N = a.havingBaseStyle(w.TEXT), + I = Dt.makeVList({ positionType: "bottom", positionData: z, children: T }, N); + return Ue(Dt.makeSpan(["delimsizing", "mult"], [I], N), w.TEXT, a, i); + }, + je = function (t, e, r, a, n) { + var i = (function (t, e, r) { + e *= 1e3; + var a = ""; + switch (t) { + case "sqrtMain": + a = (function (t, e) { + return ( + "M95," + + (622 + t + e) + + "\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl" + + t / 2.075 + + " -" + + t + + "\nc5.3,-9.3,12,-14,20,-14\nH400000v" + + (40 + t) + + "H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM" + + (834 + t) + + " " + + e + + "h400000v" + + (40 + t) + + "h-400000z" + ); + })(e, 80); + break; + case "sqrtSize1": + a = (function (t, e) { + return ( + "M263," + + (601 + t + e) + + "c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl" + + t / 2.084 + + " -" + + t + + "\nc4.7,-7.3,11,-11,19,-11\nH40000v" + + (40 + t) + + "H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM" + + (1001 + t) + + " " + + e + + "h400000v" + + (40 + t) + + "h-400000z" + ); + })(e, 80); + break; + case "sqrtSize2": + a = (function (t, e) { + return ( + "M983 " + + (10 + t + e) + + "\nl" + + t / 3.13 + + " -" + + t + + "\nc4,-6.7,10,-10,18,-10 H400000v" + + (40 + t) + + "\nH1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7\ns-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744\nc-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30\nc26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722\nc56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5\nc53.7,-170.3,84.5,-266.8,92.5,-289.5z\nM" + + (1001 + t) + + " " + + e + + "h400000v" + + (40 + t) + + "h-400000z" + ); + })(e, 80); + break; + case "sqrtSize3": + a = (function (t, e) { + return ( + "M424," + + (2398 + t + e) + + "\nc-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514\nc0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20\ns-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121\ns209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081\nl" + + t / 4.223 + + " -" + + t + + "c4,-6.7,10,-10,18,-10 H400000\nv" + + (40 + t) + + "H1014.6\ns-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185\nc-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2z M" + + (1001 + t) + + " " + + e + + "\nh400000v" + + (40 + t) + + "h-400000z" + ); + })(e, 80); + break; + case "sqrtSize4": + a = (function (t, e) { + return ( + "M473," + + (2713 + t + e) + + "\nc339.3,-1799.3,509.3,-2700,510,-2702 l" + + t / 5.298 + + " -" + + t + + "\nc3.3,-7.3,9.3,-11,18,-11 H400000v" + + (40 + t) + + "H1017.7\ns-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200\nc0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26\ns76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,\n606zM" + + (1001 + t) + + " " + + e + + "h400000v" + + (40 + t) + + "H1017.7z" + ); + })(e, 80); + break; + case "sqrtTall": + a = (function (t, e, r) { + return ( + "M702 " + + (t + e) + + "H400000" + + (40 + t) + + "\nH742v" + + (r - 54 - e - t) + + "l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1\nh-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170\nc-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667\n219 661 l218 661zM702 " + + e + + "H400000v" + + (40 + t) + + "H742z" + ); + })(e, 80, r); + } + return a; + })(t, a, r), + o = new H(t, i), + s = new L([o], { width: "400em", height: e + "em", viewBox: "0 0 400000 " + r, preserveAspectRatio: "xMinYMin slice" }); + return Dt.makeSvgSpan(["hide-tail"], [s], n); + }, + $e = ["(", "\\lparen", ")", "\\rparen", "[", "\\lbrack", "]", "\\rbrack", "\\{", "\\lbrace", "\\}", "\\rbrace", "\\lfloor", "\\rfloor", "\u230a", "\u230b", "\\lceil", "\\rceil", "\u2308", "\u2309", "\\surd"], + Ze = [ + "\\uparrow", + "\\downarrow", + "\\updownarrow", + "\\Uparrow", + "\\Downarrow", + "\\Updownarrow", + "|", + "\\|", + "\\vert", + "\\Vert", + "\\lvert", + "\\rvert", + "\\lVert", + "\\rVert", + "\\lgroup", + "\\rgroup", + "\u27ee", + "\u27ef", + "\\lmoustache", + "\\rmoustache", + "\u23b0", + "\u23b1", + ], + Ke = ["<", ">", "\\langle", "\\rangle", "/", "\\backslash", "\\lt", "\\gt"], + Je = [0, 1.2, 1.8, 2.4, 3], + Qe = [ + { type: "small", style: w.SCRIPTSCRIPT }, + { type: "small", style: w.SCRIPT }, + { type: "small", style: w.TEXT }, + { type: "large", size: 1 }, + { type: "large", size: 2 }, + { type: "large", size: 3 }, + { type: "large", size: 4 }, + ], + tr = [{ type: "small", style: w.SCRIPTSCRIPT }, { type: "small", style: w.SCRIPT }, { type: "small", style: w.TEXT }, { type: "stack" }], + er = [ + { type: "small", style: w.SCRIPTSCRIPT }, + { type: "small", style: w.SCRIPT }, + { type: "small", style: w.TEXT }, + { type: "large", size: 1 }, + { type: "large", size: 2 }, + { type: "large", size: 3 }, + { type: "large", size: 4 }, + { type: "stack" }, + ], + rr = function (t) { + if ("small" === t.type) return "Main-Regular"; + if ("large" === t.type) return "Size" + t.size + "-Regular"; + if ("stack" === t.type) return "Size4-Regular"; + throw new Error("Add support for delim type '" + t.type + "' here."); + }, + ar = function (t, e, r, a) { + for (var n = Math.min(2, 3 - a.style.size); n < r.length && "stack" !== r[n].type; n++) { + var i = Ve(t, rr(r[n]), "math"), + o = i.height + i.depth; + if (("small" === r[n].type && (o *= a.havingBaseStyle(r[n].style).sizeMultiplier), o > e)) return r[n]; + } + return r[r.length - 1]; + }, + nr = function (t, e, r, a, n, i) { + var o; + "<" === t || "\\lt" === t || "\u27e8" === t ? (t = "\\langle") : (">" !== t && "\\gt" !== t && "\u27e9" !== t) || (t = "\\rangle"), (o = c.contains(Ke, t) ? Qe : c.contains($e, t) ? er : tr); + var s = ar(t, e, o, a); + return "small" === s.type + ? (function (t, e, r, a, n, i) { + var o = Dt.makeSymbol(t, "Main-Regular", n, a), + s = Ue(o, e, a, i); + return r && Ge(s, a, e), s; + })(t, s.style, r, a, n, i) + : "large" === s.type + ? Ye(t, s.size, r, a, n, i) + : _e(t, e, r, a, n, i); + }, + ir = function (t, e) { + var r, + a, + n = e.havingBaseSizing(), + i = ar("\\surd", t * n.sizeMultiplier, er, n), + o = n.sizeMultiplier, + s = Math.max(0, e.minRuleThickness - e.fontMetrics().sqrtRuleThickness), + h = 0, + l = 0, + m = 0; + return ( + "small" === i.type + ? (t < 1 ? (o = 1) : t < 1.4 && (o = 0.7), (l = (1 + s) / o), ((r = je("sqrtMain", (h = (1 + s + 0.08) / o), (m = 1e3 + 1e3 * s + 80), s, e)).style.minWidth = "0.853em"), (a = 0.833 / o)) + : "large" === i.type + ? ((m = 1080 * Je[i.size]), (l = (Je[i.size] + s) / o), (h = (Je[i.size] + s + 0.08) / o), ((r = je("sqrtSize" + i.size, h, m, s, e)).style.minWidth = "1.02em"), (a = 1 / o)) + : ((h = t + s + 0.08), (l = t + s), (m = Math.floor(1e3 * t + s) + 80), ((r = je("sqrtTall", h, m, s, e)).style.minWidth = "0.742em"), (a = 1.056)), + (r.height = l), + (r.style.height = h + "em"), + { span: r, advanceWidth: a, ruleWidth: (e.fontMetrics().sqrtRuleThickness + s) * o } + ); + }, + or = function (t, e, r, a, n) { + if (("<" === t || "\\lt" === t || "\u27e8" === t ? (t = "\\langle") : (">" !== t && "\\gt" !== t && "\u27e9" !== t) || (t = "\\rangle"), c.contains($e, t) || c.contains(Ke, t))) return Ye(t, e, !1, r, a, n); + if (c.contains(Ze, t)) return _e(t, Je[e], !1, r, a, n); + throw new o("Illegal delimiter: '" + t + "'"); + }, + sr = nr, + hr = function (t, e, r, a, n, i) { + var o = a.fontMetrics().axisHeight * a.sizeMultiplier, + s = 5 / a.fontMetrics().ptPerEm, + h = Math.max(e - o, r + o), + l = Math.max((h / 500) * 901, 2 * h - s); + return nr(t, l, !0, a, n, i); + }, + lr = { + "\\bigl": { mclass: "mopen", size: 1 }, + "\\Bigl": { mclass: "mopen", size: 2 }, + "\\biggl": { mclass: "mopen", size: 3 }, + "\\Biggl": { mclass: "mopen", size: 4 }, + "\\bigr": { mclass: "mclose", size: 1 }, + "\\Bigr": { mclass: "mclose", size: 2 }, + "\\biggr": { mclass: "mclose", size: 3 }, + "\\Biggr": { mclass: "mclose", size: 4 }, + "\\bigm": { mclass: "mrel", size: 1 }, + "\\Bigm": { mclass: "mrel", size: 2 }, + "\\biggm": { mclass: "mrel", size: 3 }, + "\\Biggm": { mclass: "mrel", size: 4 }, + "\\big": { mclass: "mord", size: 1 }, + "\\Big": { mclass: "mord", size: 2 }, + "\\bigg": { mclass: "mord", size: 3 }, + "\\Bigg": { mclass: "mord", size: 4 }, + }, + mr = [ + "(", + "\\lparen", + ")", + "\\rparen", + "[", + "\\lbrack", + "]", + "\\rbrack", + "\\{", + "\\lbrace", + "\\}", + "\\rbrace", + "\\lfloor", + "\\rfloor", + "\u230a", + "\u230b", + "\\lceil", + "\\rceil", + "\u2308", + "\u2309", + "<", + ">", + "\\langle", + "\u27e8", + "\\rangle", + "\u27e9", + "\\lt", + "\\gt", + "\\lvert", + "\\rvert", + "\\lVert", + "\\rVert", + "\\lgroup", + "\\rgroup", + "\u27ee", + "\u27ef", + "\\lmoustache", + "\\rmoustache", + "\u23b0", + "\u23b1", + "/", + "\\backslash", + "|", + "\\vert", + "\\|", + "\\Vert", + "\\uparrow", + "\\Uparrow", + "\\downarrow", + "\\Downarrow", + "\\updownarrow", + "\\Updownarrow", + ".", + ]; + function cr(t, e) { + var r = Yt(t); + if (r && c.contains(mr, r.text)) return r; + throw new o("Invalid delimiter: '" + (r ? r.text : JSON.stringify(t)) + "' after '" + e.funcName + "'", t); + } + function ur(t) { + if (!t.body) throw new Error("Bug: The leftright ParseNode wasn't fully parsed."); + } + Qt({ + type: "delimsizing", + names: ["\\bigl", "\\Bigl", "\\biggl", "\\Biggl", "\\bigr", "\\Bigr", "\\biggr", "\\Biggr", "\\bigm", "\\Bigm", "\\biggm", "\\Biggm", "\\big", "\\Big", "\\bigg", "\\Bigg"], + props: { numArgs: 1 }, + handler: function (t, e) { + var r = cr(e[0], t); + return { type: "delimsizing", mode: t.parser.mode, size: lr[t.funcName].size, mclass: lr[t.funcName].mclass, delim: r.text }; + }, + htmlBuilder: function (t, e) { + return "." === t.delim ? Dt.makeSpan([t.mclass]) : or(t.delim, t.size, e, t.mode, [t.mclass]); + }, + mathmlBuilder: function (t) { + var e = []; + "." !== t.delim && e.push(be(t.delim, t.mode)); + var r = new ve.MathNode("mo", e); + return "mopen" === t.mclass || "mclose" === t.mclass ? r.setAttribute("fence", "true") : r.setAttribute("fence", "false"), r; + }, + }), + Qt({ + type: "leftright-right", + names: ["\\right"], + props: { numArgs: 1 }, + handler: function (t, e) { + var r = t.parser.gullet.macros.get("\\current@color"); + if (r && "string" != typeof r) throw new o("\\current@color set to non-string in \\right"); + return { type: "leftright-right", mode: t.parser.mode, delim: cr(e[0], t).text, color: r }; + }, + }), + Qt({ + type: "leftright", + names: ["\\left"], + props: { numArgs: 1 }, + handler: function (t, e) { + var r = cr(e[0], t), + a = t.parser; + ++a.leftrightDepth; + var n = a.parseExpression(!1); + --a.leftrightDepth, a.expect("\\right", !1); + var i = Ft(a.parseFunction(), "leftright-right"); + return { type: "leftright", mode: a.mode, body: n, left: r.text, right: i.delim, rightColor: i.color }; + }, + htmlBuilder: function (t, e) { + ur(t); + for (var r, a, n = se(t.body, e, !0, ["mopen", "mclose"]), i = 0, o = 0, s = !1, h = 0; h < n.length; h++) n[h].isMiddle ? (s = !0) : ((i = Math.max(n[h].height, i)), (o = Math.max(n[h].depth, o))); + if (((i *= e.sizeMultiplier), (o *= e.sizeMultiplier), (r = "." === t.left ? ce(e, ["mopen"]) : hr(t.left, i, o, e, t.mode, ["mopen"])), n.unshift(r), s)) + for (var l = 1; l < n.length; l++) { + var m = n[l].isMiddle; + m && (n[l] = hr(m.delim, i, o, m.options, t.mode, [])); + } + if ("." === t.right) a = ce(e, ["mclose"]); + else { + var c = t.rightColor ? e.withColor(t.rightColor) : e; + a = hr(t.right, i, o, c, t.mode, ["mclose"]); + } + return n.push(a), Dt.makeSpan(["minner"], n, e); + }, + mathmlBuilder: function (t, e) { + ur(t); + var r = ke(t.body, e); + if ("." !== t.left) { + var a = new ve.MathNode("mo", [be(t.left, t.mode)]); + a.setAttribute("fence", "true"), r.unshift(a); + } + if ("." !== t.right) { + var n = new ve.MathNode("mo", [be(t.right, t.mode)]); + n.setAttribute("fence", "true"), t.rightColor && n.setAttribute("mathcolor", t.rightColor), r.push(n); + } + return ye(r); + }, + }), + Qt({ + type: "middle", + names: ["\\middle"], + props: { numArgs: 1 }, + handler: function (t, e) { + var r = cr(e[0], t); + if (!t.parser.leftrightDepth) throw new o("\\middle without preceding \\left", r); + return { type: "middle", mode: t.parser.mode, delim: r.text }; + }, + htmlBuilder: function (t, e) { + var r; + if ("." === t.delim) r = ce(e, []); + else { + r = or(t.delim, 1, e, t.mode, []); + var a = { delim: t.delim, options: e }; + r.isMiddle = a; + } + return r; + }, + mathmlBuilder: function (t, e) { + var r = "\\vert" === t.delim || "|" === t.delim ? be("|", "text") : be(t.delim, t.mode), + a = new ve.MathNode("mo", [r]); + return a.setAttribute("fence", "true"), a.setAttribute("lspace", "0.05em"), a.setAttribute("rspace", "0.05em"), a; + }, + }); + var pr = function (t, e) { + var r, + a, + n = Dt.wrapFragment(ue(t.body, e), e), + i = t.label.substr(1), + o = e.sizeMultiplier, + s = 0, + h = c.isCharacterBox(t.body); + if ("sout" === i) ((r = Dt.makeSpan(["stretchy", "sout"])).height = e.fontMetrics().defaultRuleThickness / o), (s = -0.5 * e.fontMetrics().xHeight); + else { + /cancel/.test(i) ? h || n.classes.push("cancel-pad") : n.classes.push("boxpad"); + var l = 0, + m = 0; + /box/.test(i) ? ((m = Math.max(e.fontMetrics().fboxrule, e.minRuleThickness)), (l = e.fontMetrics().fboxsep + ("colorbox" === i ? 0 : m))) : (l = h ? 0.2 : 0), + (r = Ie(n, i, l, e)), + /fbox|boxed|fcolorbox/.test(i) && ((r.style.borderStyle = "solid"), (r.style.borderWidth = m + "em")), + (s = n.depth + l), + t.backgroundColor && ((r.style.backgroundColor = t.backgroundColor), t.borderColor && (r.style.borderColor = t.borderColor)); + } + return ( + (a = t.backgroundColor + ? Dt.makeVList( + { + positionType: "individualShift", + children: [ + { type: "elem", elem: r, shift: s }, + { type: "elem", elem: n, shift: 0 }, + ], + }, + e + ) + : Dt.makeVList( + { + positionType: "individualShift", + children: [ + { type: "elem", elem: n, shift: 0 }, + { type: "elem", elem: r, shift: s, wrapperClasses: /cancel/.test(i) ? ["svg-align"] : [] }, + ], + }, + e + )), + /cancel/.test(i) && ((a.height = n.height), (a.depth = n.depth)), + /cancel/.test(i) && !h ? Dt.makeSpan(["mord", "cancel-lap"], [a], e) : Dt.makeSpan(["mord"], [a], e) + ); + }, + dr = function (t, e) { + var r = 0, + a = new ve.MathNode(t.label.indexOf("colorbox") > -1 ? "mpadded" : "menclose", [Me(t.body, e)]); + switch (t.label) { + case "\\cancel": + a.setAttribute("notation", "updiagonalstrike"); + break; + case "\\bcancel": + a.setAttribute("notation", "downdiagonalstrike"); + break; + case "\\sout": + a.setAttribute("notation", "horizontalstrike"); + break; + case "\\fbox": + a.setAttribute("notation", "box"); + break; + case "\\fcolorbox": + case "\\colorbox": + if ( + ((r = e.fontMetrics().fboxsep * e.fontMetrics().ptPerEm), + a.setAttribute("width", "+" + 2 * r + "pt"), + a.setAttribute("height", "+" + 2 * r + "pt"), + a.setAttribute("lspace", r + "pt"), + a.setAttribute("voffset", r + "pt"), + "\\fcolorbox" === t.label) + ) { + var n = Math.max(e.fontMetrics().fboxrule, e.minRuleThickness); + a.setAttribute("style", "border: " + n + "em solid " + String(t.borderColor)); + } + break; + case "\\xcancel": + a.setAttribute("notation", "updiagonalstrike downdiagonalstrike"); + } + return t.backgroundColor && a.setAttribute("mathbackground", t.backgroundColor), a; + }; + Qt({ + type: "enclose", + names: ["\\colorbox"], + props: { numArgs: 2, allowedInText: !0, greediness: 3, argTypes: ["color", "text"] }, + handler: function (t, e, r) { + var a = t.parser, + n = t.funcName, + i = Ft(e[0], "color-token").color, + o = e[1]; + return { type: "enclose", mode: a.mode, label: n, backgroundColor: i, body: o }; + }, + htmlBuilder: pr, + mathmlBuilder: dr, + }), + Qt({ + type: "enclose", + names: ["\\fcolorbox"], + props: { numArgs: 3, allowedInText: !0, greediness: 3, argTypes: ["color", "color", "text"] }, + handler: function (t, e, r) { + var a = t.parser, + n = t.funcName, + i = Ft(e[0], "color-token").color, + o = Ft(e[1], "color-token").color, + s = e[2]; + return { type: "enclose", mode: a.mode, label: n, backgroundColor: o, borderColor: i, body: s }; + }, + htmlBuilder: pr, + mathmlBuilder: dr, + }), + Qt({ + type: "enclose", + names: ["\\fbox"], + props: { numArgs: 1, argTypes: ["hbox"], allowedInText: !0 }, + handler: function (t, e) { + return { type: "enclose", mode: t.parser.mode, label: "\\fbox", body: e[0] }; + }, + }), + Qt({ + type: "enclose", + names: ["\\cancel", "\\bcancel", "\\xcancel", "\\sout"], + props: { numArgs: 1 }, + handler: function (t, e, r) { + var a = t.parser, + n = t.funcName, + i = e[0]; + return { type: "enclose", mode: a.mode, label: n, body: i }; + }, + htmlBuilder: pr, + mathmlBuilder: dr, + }); + var fr = {}; + function gr(t) { + for ( + var e = t.type, r = t.names, a = t.props, n = t.handler, i = t.htmlBuilder, o = t.mathmlBuilder, s = { type: e, numArgs: a.numArgs || 0, greediness: 1, allowedInText: !1, numOptionalArgs: 0, handler: n }, h = 0; + h < r.length; + ++h + ) + fr[r[h]] = s; + i && (Kt[e] = i), o && (Jt[e] = o); + } + function xr(t) { + var e = []; + t.consumeSpaces(); + for (var r = t.fetch().text; "\\hline" === r || "\\hdashline" === r; ) t.consume(), e.push("\\hdashline" === r), t.consumeSpaces(), (r = t.fetch().text); + return e; + } + function vr(t, e, r) { + var a = e.hskipBeforeAndAfter, + n = e.addJot, + i = e.cols, + s = e.arraystretch, + h = e.colSeparationType; + if ((t.gullet.beginGroup(), t.gullet.macros.set("\\\\", "\\cr"), !s)) { + var l = t.gullet.expandMacroAsText("\\arraystretch"); + if (null == l) s = 1; + else if (!(s = parseFloat(l)) || s < 0) throw new o("Invalid \\arraystretch: " + l); + } + t.gullet.beginGroup(); + var m = [], + c = [m], + u = [], + p = []; + for (p.push(xr(t)); ; ) { + var d = t.parseExpression(!1, "\\cr"); + t.gullet.endGroup(), t.gullet.beginGroup(), (d = { type: "ordgroup", mode: t.mode, body: d }), r && (d = { type: "styling", mode: t.mode, style: r, body: [d] }), m.push(d); + var f = t.fetch().text; + if ("&" === f) t.consume(); + else { + if ("\\end" === f) { + 1 === m.length && "styling" === d.type && 0 === d.body[0].body.length && c.pop(), p.length < c.length + 1 && p.push([]); + break; + } + if ("\\cr" !== f) throw new o("Expected & or \\\\ or \\cr or \\end", t.nextToken); + var g = Ft(t.parseFunction(), "cr"); + u.push(g.size), p.push(xr(t)), (m = []), c.push(m); + } + } + return t.gullet.endGroup(), t.gullet.endGroup(), { type: "array", mode: t.mode, addJot: n, arraystretch: s, body: c, cols: i, rowGaps: u, hskipBeforeAndAfter: a, hLinesBeforeRow: p, colSeparationType: h }; + } + function br(t) { + return "d" === t.substr(0, 1) ? "display" : "text"; + } + var yr = function (t, e) { + var r, + a, + n = t.body.length, + i = t.hLinesBeforeRow, + s = 0, + h = new Array(n), + l = [], + m = Math.max(e.fontMetrics().arrayRuleWidth, e.minRuleThickness), + u = 1 / e.fontMetrics().ptPerEm, + p = 5 * u; + t.colSeparationType && "small" === t.colSeparationType && (p = (e.havingStyle(w.SCRIPT).sizeMultiplier / e.sizeMultiplier) * 0.2778); + var d = 12 * u, + f = 3 * u, + g = t.arraystretch * d, + x = 0.7 * g, + v = 0.3 * g, + b = 0; + function y(t) { + for (var e = 0; e < t.length; ++e) e > 0 && (b += 0.25), l.push({ pos: b, isDashed: t[e] }); + } + for (y(i[0]), r = 0; r < t.body.length; ++r) { + var k = t.body[r], + S = x, + M = v; + s < k.length && (s = k.length); + var z = new Array(k.length); + for (a = 0; a < k.length; ++a) { + var A = ue(k[a], e); + M < A.depth && (M = A.depth), S < A.height && (S = A.height), (z[a] = A); + } + var T = t.rowGaps[r], + B = 0; + T && (B = Tt(T, e)) > 0 && (M < (B += v) && (M = B), (B = 0)), t.addJot && (M += f), (z.height = S), (z.depth = M), (b += S), (z.pos = b), (b += M + B), (h[r] = z), y(i[r + 1]); + } + var C, + q, + N = b / 2 + e.fontMetrics().axisHeight, + I = t.cols || [], + R = []; + for (a = 0, q = 0; a < s || q < I.length; ++a, ++q) { + for (var O = I[q] || {}, E = !0; "separator" === O.type; ) { + if ((E || (((C = Dt.makeSpan(["arraycolsep"], [])).style.width = e.fontMetrics().doubleRuleSep + "em"), R.push(C)), "|" !== O.separator && ":" !== O.separator)) + throw new o("Invalid separator type: " + O.separator); + var L = "|" === O.separator ? "solid" : "dashed", + H = Dt.makeSpan(["vertical-separator"], [], e); + (H.style.height = b + "em"), + (H.style.borderRightWidth = m + "em"), + (H.style.borderRightStyle = L), + (H.style.margin = "0 -" + m / 2 + "em"), + (H.style.verticalAlign = -(b - N) + "em"), + R.push(H), + (O = I[++q] || {}), + (E = !1); + } + if (!(a >= s)) { + var P = void 0; + (a > 0 || t.hskipBeforeAndAfter) && 0 !== (P = c.deflt(O.pregap, p)) && (((C = Dt.makeSpan(["arraycolsep"], [])).style.width = P + "em"), R.push(C)); + var D = []; + for (r = 0; r < n; ++r) { + var F = h[r], + V = F[a]; + if (V) { + var U = F.pos - N; + (V.depth = F.depth), (V.height = F.height), D.push({ type: "elem", elem: V, shift: U }); + } + } + (D = Dt.makeVList({ positionType: "individualShift", children: D }, e)), + (D = Dt.makeSpan(["col-align-" + (O.align || "c")], [D])), + R.push(D), + (a < s - 1 || t.hskipBeforeAndAfter) && 0 !== (P = c.deflt(O.postgap, p)) && (((C = Dt.makeSpan(["arraycolsep"], [])).style.width = P + "em"), R.push(C)); + } + } + if (((h = Dt.makeSpan(["mtable"], R)), l.length > 0)) { + for (var G = Dt.makeLineSpan("hline", e, m), Y = Dt.makeLineSpan("hdashline", e, m), W = [{ type: "elem", elem: h, shift: 0 }]; l.length > 0; ) { + var X = l.pop(), + _ = X.pos - N; + X.isDashed ? W.push({ type: "elem", elem: Y, shift: _ }) : W.push({ type: "elem", elem: G, shift: _ }); + } + h = Dt.makeVList({ positionType: "individualShift", children: W }, e); + } + return Dt.makeSpan(["mord"], [h], e); + }, + wr = { c: "center ", l: "left ", r: "right " }, + kr = function (t, e) { + var r = new ve.MathNode( + "mtable", + t.body.map(function (t) { + return new ve.MathNode( + "mtr", + t.map(function (t) { + return new ve.MathNode("mtd", [Me(t, e)]); + }) + ); + }) + ), + a = 0.5 === t.arraystretch ? 0.1 : 0.16 + t.arraystretch - 1 + (t.addJot ? 0.09 : 0); + r.setAttribute("rowspacing", a + "em"); + var n = "", + i = ""; + if (t.cols) { + var o = t.cols, + s = "", + h = !1, + l = 0, + m = o.length; + "separator" === o[0].type && ((n += "top "), (l = 1)), "separator" === o[o.length - 1].type && ((n += "bottom "), (m -= 1)); + for (var c = l; c < m; c++) "align" === o[c].type ? ((i += wr[o[c].align]), h && (s += "none "), (h = !0)) : "separator" === o[c].type && h && ((s += "|" === o[c].separator ? "solid " : "dashed "), (h = !1)); + r.setAttribute("columnalign", i.trim()), /[sd]/.test(s) && r.setAttribute("columnlines", s.trim()); + } + if ("align" === t.colSeparationType) { + for (var u = t.cols || [], p = "", d = 1; d < u.length; d++) p += d % 2 ? "0em " : "1em "; + r.setAttribute("columnspacing", p.trim()); + } else "alignat" === t.colSeparationType ? r.setAttribute("columnspacing", "0em") : "small" === t.colSeparationType ? r.setAttribute("columnspacing", "0.2778em") : r.setAttribute("columnspacing", "1em"); + var f = "", + g = t.hLinesBeforeRow; + (n += g[0].length > 0 ? "left " : ""), (n += g[g.length - 1].length > 0 ? "right " : ""); + for (var x = 1; x < g.length - 1; x++) f += 0 === g[x].length ? "none " : g[x][0] ? "dashed " : "solid "; + return ( + /[sd]/.test(f) && r.setAttribute("rowlines", f.trim()), + "" !== n && (r = new ve.MathNode("menclose", [r])).setAttribute("notation", n.trim()), + t.arraystretch && t.arraystretch < 1 && (r = new ve.MathNode("mstyle", [r])).setAttribute("scriptlevel", "1"), + r + ); + }, + Sr = function (t, e) { + var r, + a = [], + n = vr(t.parser, { cols: a, addJot: !0 }, "display"), + i = 0, + s = { type: "ordgroup", mode: t.mode, body: [] }, + h = Vt(e[0], "ordgroup"); + if (h) { + for (var l = "", m = 0; m < h.body.length; m++) { + l += Ft(h.body[m], "textord").text; + } + (r = Number(l)), (i = 2 * r); + } + var c = !i; + n.body.forEach(function (t) { + for (var e = 1; e < t.length; e += 2) { + var a = Ft(t[e], "styling"); + Ft(a.body[0], "ordgroup").body.unshift(s); + } + if (c) i < t.length && (i = t.length); + else { + var n = t.length / 2; + if (r < n) throw new o("Too many math in a row: expected " + r + ", but got " + n, t[0]); + } + }); + for (var u = 0; u < i; ++u) { + var p = "r", + d = 0; + u % 2 == 1 ? (p = "l") : u > 0 && c && (d = 1), (a[u] = { type: "align", align: p, pregap: d, postgap: 0 }); + } + return (n.colSeparationType = c ? "align" : "alignat"), n; + }; + gr({ + type: "array", + names: ["array", "darray"], + props: { numArgs: 1 }, + handler: function (t, e) { + var r = { + cols: (Yt(e[0]) ? [e[0]] : Ft(e[0], "ordgroup").body).map(function (t) { + var e = Gt(t).text; + if (-1 !== "lcr".indexOf(e)) return { type: "align", align: e }; + if ("|" === e) return { type: "separator", separator: "|" }; + if (":" === e) return { type: "separator", separator: ":" }; + throw new o("Unknown column alignment: " + e, t); + }), + hskipBeforeAndAfter: !0, + }; + return vr(t.parser, r, br(t.envName)); + }, + htmlBuilder: yr, + mathmlBuilder: kr, + }), + gr({ + type: "array", + names: ["matrix", "pmatrix", "bmatrix", "Bmatrix", "vmatrix", "Vmatrix"], + props: { numArgs: 0 }, + handler: function (t) { + var e = { matrix: null, pmatrix: ["(", ")"], bmatrix: ["[", "]"], Bmatrix: ["\\{", "\\}"], vmatrix: ["|", "|"], Vmatrix: ["\\Vert", "\\Vert"] }[t.envName], + r = vr(t.parser, { hskipBeforeAndAfter: !1 }, br(t.envName)); + return e ? { type: "leftright", mode: t.mode, body: [r], left: e[0], right: e[1], rightColor: void 0 } : r; + }, + htmlBuilder: yr, + mathmlBuilder: kr, + }), + gr({ + type: "array", + names: ["smallmatrix"], + props: { numArgs: 0 }, + handler: function (t) { + var e = vr(t.parser, { arraystretch: 0.5 }, "script"); + return (e.colSeparationType = "small"), e; + }, + htmlBuilder: yr, + mathmlBuilder: kr, + }), + gr({ + type: "array", + names: ["subarray"], + props: { numArgs: 1 }, + handler: function (t, e) { + var r = (Yt(e[0]) ? [e[0]] : Ft(e[0], "ordgroup").body).map(function (t) { + var e = Gt(t).text; + if (-1 !== "lc".indexOf(e)) return { type: "align", align: e }; + throw new o("Unknown column alignment: " + e, t); + }); + if (r.length > 1) throw new o("{subarray} can contain only one column"); + var a = { cols: r, hskipBeforeAndAfter: !1, arraystretch: 0.5 }; + if ((a = vr(t.parser, a, "script")).body[0].length > 1) throw new o("{subarray} can contain only one column"); + return a; + }, + htmlBuilder: yr, + mathmlBuilder: kr, + }), + gr({ + type: "array", + names: ["cases", "dcases"], + props: { numArgs: 0 }, + handler: function (t) { + var e = vr( + t.parser, + { + arraystretch: 1.2, + cols: [ + { type: "align", align: "l", pregap: 0, postgap: 1 }, + { type: "align", align: "l", pregap: 0, postgap: 0 }, + ], + }, + br(t.envName) + ); + return { type: "leftright", mode: t.mode, body: [e], left: "\\{", right: ".", rightColor: void 0 }; + }, + htmlBuilder: yr, + mathmlBuilder: kr, + }), + gr({ type: "array", names: ["aligned"], props: { numArgs: 0 }, handler: Sr, htmlBuilder: yr, mathmlBuilder: kr }), + gr({ + type: "array", + names: ["gathered"], + props: { numArgs: 0 }, + handler: function (t) { + return vr(t.parser, { cols: [{ type: "align", align: "c" }], addJot: !0 }, "display"); + }, + htmlBuilder: yr, + mathmlBuilder: kr, + }), + gr({ type: "array", names: ["alignedat"], props: { numArgs: 1 }, handler: Sr, htmlBuilder: yr, mathmlBuilder: kr }), + Qt({ + type: "text", + names: ["\\hline", "\\hdashline"], + props: { numArgs: 0, allowedInText: !0, allowedInMath: !0 }, + handler: function (t, e) { + throw new o(t.funcName + " valid only within array environment"); + }, + }); + var Mr = fr; + Qt({ + type: "environment", + names: ["\\begin", "\\end"], + props: { numArgs: 1, argTypes: ["text"] }, + handler: function (t, e) { + var r = t.parser, + a = t.funcName, + n = e[0]; + if ("ordgroup" !== n.type) throw new o("Invalid environment name", n); + for (var i = "", s = 0; s < n.body.length; ++s) i += Ft(n.body[s], "textord").text; + if ("\\begin" === a) { + if (!Mr.hasOwnProperty(i)) throw new o("No such environment: " + i, n); + var h = Mr[i], + l = r.parseArguments("\\begin{" + i + "}", h), + m = l.args, + c = l.optArgs, + u = { mode: r.mode, envName: i, parser: r }, + p = h.handler(u, m, c); + r.expect("\\end", !1); + var d = r.nextToken, + f = Ft(r.parseFunction(), "environment"); + if (f.name !== i) throw new o("Mismatch: \\begin{" + i + "} matched by \\end{" + f.name + "}", d); + return p; + } + return { type: "environment", mode: r.mode, name: i, nameGroup: n }; + }, + }); + var zr = Dt.makeSpan; + function Ar(t, e) { + var r = se(t.body, e, !0); + return zr([t.mclass], r, e); + } + function Tr(t, e) { + var r, + a = ke(t.body, e); + return "minner" === t.mclass + ? ve.newDocumentFragment(a) + : ("mord" === t.mclass + ? t.isCharacterBox + ? ((r = a[0]).type = "mi") + : (r = new ve.MathNode("mi", a)) + : (t.isCharacterBox ? ((r = a[0]).type = "mo") : (r = new ve.MathNode("mo", a)), + "mbin" === t.mclass + ? ((r.attributes.lspace = "0.22em"), (r.attributes.rspace = "0.22em")) + : "mpunct" === t.mclass + ? ((r.attributes.lspace = "0em"), (r.attributes.rspace = "0.17em")) + : ("mopen" !== t.mclass && "mclose" !== t.mclass) || ((r.attributes.lspace = "0em"), (r.attributes.rspace = "0em"))), + r); + } + Qt({ + type: "mclass", + names: ["\\mathord", "\\mathbin", "\\mathrel", "\\mathopen", "\\mathclose", "\\mathpunct", "\\mathinner"], + props: { numArgs: 1 }, + handler: function (t, e) { + var r = t.parser, + a = t.funcName, + n = e[0]; + return { type: "mclass", mode: r.mode, mclass: "m" + a.substr(5), body: ee(n), isCharacterBox: c.isCharacterBox(n) }; + }, + htmlBuilder: Ar, + mathmlBuilder: Tr, + }); + var Br = function (t) { + var e = "ordgroup" === t.type && t.body.length ? t.body[0] : t; + return "atom" !== e.type || ("bin" !== e.family && "rel" !== e.family) ? "mord" : "m" + e.family; + }; + Qt({ + type: "mclass", + names: ["\\@binrel"], + props: { numArgs: 2 }, + handler: function (t, e) { + return { type: "mclass", mode: t.parser.mode, mclass: Br(e[0]), body: [e[1]], isCharacterBox: c.isCharacterBox(e[1]) }; + }, + }), + Qt({ + type: "mclass", + names: ["\\stackrel", "\\overset", "\\underset"], + props: { numArgs: 2 }, + handler: function (t, e) { + var r, + a = t.parser, + n = t.funcName, + i = e[1], + o = e[0]; + r = "\\stackrel" !== n ? Br(i) : "mrel"; + var s = { type: "op", mode: i.mode, limits: !0, alwaysHandleSupSub: !0, parentIsSupSub: !1, symbol: !1, suppressBaseShift: "\\stackrel" !== n, body: ee(i) }, + h = { type: "supsub", mode: o.mode, base: s, sup: "\\underset" === n ? null : o, sub: "\\underset" === n ? o : null }; + return { type: "mclass", mode: a.mode, mclass: r, body: [h], isCharacterBox: c.isCharacterBox(h) }; + }, + htmlBuilder: Ar, + mathmlBuilder: Tr, + }); + var Cr = function (t, e) { + var r = t.font, + a = e.withFont(r); + return ue(t.body, a); + }, + qr = function (t, e) { + var r = t.font, + a = e.withFont(r); + return Me(t.body, a); + }, + Nr = { "\\Bbb": "\\mathbb", "\\bold": "\\mathbf", "\\frak": "\\mathfrak", "\\bm": "\\boldsymbol" }; + Qt({ + type: "font", + names: ["\\mathrm", "\\mathit", "\\mathbf", "\\mathnormal", "\\mathbb", "\\mathcal", "\\mathfrak", "\\mathscr", "\\mathsf", "\\mathtt", "\\Bbb", "\\bold", "\\frak"], + props: { numArgs: 1, greediness: 2 }, + handler: function (t, e) { + var r = t.parser, + a = t.funcName, + n = e[0], + i = a; + return i in Nr && (i = Nr[i]), { type: "font", mode: r.mode, font: i.slice(1), body: n }; + }, + htmlBuilder: Cr, + mathmlBuilder: qr, + }), + Qt({ + type: "mclass", + names: ["\\boldsymbol", "\\bm"], + props: { numArgs: 1, greediness: 2 }, + handler: function (t, e) { + var r = t.parser, + a = e[0], + n = c.isCharacterBox(a); + return { type: "mclass", mode: r.mode, mclass: Br(a), body: [{ type: "font", mode: r.mode, font: "boldsymbol", body: a }], isCharacterBox: n }; + }, + }), + Qt({ + type: "font", + names: ["\\rm", "\\sf", "\\tt", "\\bf", "\\it"], + props: { numArgs: 0, allowedInText: !0 }, + handler: function (t, e) { + var r = t.parser, + a = t.funcName, + n = t.breakOnTokenText, + i = r.mode, + o = r.parseExpression(!0, n); + return { type: "font", mode: i, font: "math" + a.slice(1), body: { type: "ordgroup", mode: r.mode, body: o } }; + }, + htmlBuilder: Cr, + mathmlBuilder: qr, + }); + var Ir = function (t, e) { + var r = e; + return "display" === t ? (r = r.id >= w.SCRIPT.id ? r.text() : w.DISPLAY) : "text" === t && r.size === w.DISPLAY.size ? (r = w.TEXT) : "script" === t ? (r = w.SCRIPT) : "scriptscript" === t && (r = w.SCRIPTSCRIPT), r; + }, + Rr = function (t, e) { + var r, + a = Ir(t.size, e.style), + n = a.fracNum(), + i = a.fracDen(); + r = e.havingStyle(n); + var o = ue(t.numer, r, e); + if (t.continued) { + var s = 8.5 / e.fontMetrics().ptPerEm, + h = 3.5 / e.fontMetrics().ptPerEm; + (o.height = o.height < s ? s : o.height), (o.depth = o.depth < h ? h : o.depth); + } + r = e.havingStyle(i); + var l, + m, + c, + u, + p, + d, + f, + g, + x, + v, + b = ue(t.denom, r, e); + if ( + (t.hasBarLine + ? (t.barSize ? ((m = Tt(t.barSize, e)), (l = Dt.makeLineSpan("frac-line", e, m))) : (l = Dt.makeLineSpan("frac-line", e)), (m = l.height), (c = l.height)) + : ((l = null), (m = 0), (c = e.fontMetrics().defaultRuleThickness)), + a.size === w.DISPLAY.size || "display" === t.size + ? ((u = e.fontMetrics().num1), (p = m > 0 ? 3 * c : 7 * c), (d = e.fontMetrics().denom1)) + : (m > 0 ? ((u = e.fontMetrics().num2), (p = c)) : ((u = e.fontMetrics().num3), (p = 3 * c)), (d = e.fontMetrics().denom2)), + l) + ) { + var y = e.fontMetrics().axisHeight; + u - o.depth - (y + 0.5 * m) < p && (u += p - (u - o.depth - (y + 0.5 * m))), y - 0.5 * m - (b.height - d) < p && (d += p - (y - 0.5 * m - (b.height - d))); + var k = -(y - 0.5 * m); + f = Dt.makeVList( + { + positionType: "individualShift", + children: [ + { type: "elem", elem: b, shift: d }, + { type: "elem", elem: l, shift: k }, + { type: "elem", elem: o, shift: -u }, + ], + }, + e + ); + } else { + var S = u - o.depth - (b.height - d); + S < p && ((u += 0.5 * (p - S)), (d += 0.5 * (p - S))), + (f = Dt.makeVList( + { + positionType: "individualShift", + children: [ + { type: "elem", elem: b, shift: d }, + { type: "elem", elem: o, shift: -u }, + ], + }, + e + )); + } + return ( + (r = e.havingStyle(a)), + (f.height *= r.sizeMultiplier / e.sizeMultiplier), + (f.depth *= r.sizeMultiplier / e.sizeMultiplier), + (g = a.size === w.DISPLAY.size ? e.fontMetrics().delim1 : e.fontMetrics().delim2), + (x = null == t.leftDelim ? ce(e, ["mopen"]) : sr(t.leftDelim, g, !0, e.havingStyle(a), t.mode, ["mopen"])), + (v = t.continued ? Dt.makeSpan([]) : null == t.rightDelim ? ce(e, ["mclose"]) : sr(t.rightDelim, g, !0, e.havingStyle(a), t.mode, ["mclose"])), + Dt.makeSpan(["mord"].concat(r.sizingClasses(e)), [x, Dt.makeSpan(["mfrac"], [f]), v], e) + ); + }, + Or = function (t, e) { + var r = new ve.MathNode("mfrac", [Me(t.numer, e), Me(t.denom, e)]); + if (t.hasBarLine) { + if (t.barSize) { + var a = Tt(t.barSize, e); + r.setAttribute("linethickness", a + "em"); + } + } else r.setAttribute("linethickness", "0px"); + var n = Ir(t.size, e.style); + if (n.size !== e.style.size) { + r = new ve.MathNode("mstyle", [r]); + var i = n.size === w.DISPLAY.size ? "true" : "false"; + r.setAttribute("displaystyle", i), r.setAttribute("scriptlevel", "0"); + } + if (null != t.leftDelim || null != t.rightDelim) { + var o = []; + if (null != t.leftDelim) { + var s = new ve.MathNode("mo", [new ve.TextNode(t.leftDelim.replace("\\", ""))]); + s.setAttribute("fence", "true"), o.push(s); + } + if ((o.push(r), null != t.rightDelim)) { + var h = new ve.MathNode("mo", [new ve.TextNode(t.rightDelim.replace("\\", ""))]); + h.setAttribute("fence", "true"), o.push(h); + } + return ye(o); + } + return r; + }; + Qt({ + type: "genfrac", + names: ["\\cfrac", "\\dfrac", "\\frac", "\\tfrac", "\\dbinom", "\\binom", "\\tbinom", "\\\\atopfrac", "\\\\bracefrac", "\\\\brackfrac"], + props: { numArgs: 2, greediness: 2 }, + handler: function (t, e) { + var r, + a = t.parser, + n = t.funcName, + i = e[0], + o = e[1], + s = null, + h = null, + l = "auto"; + switch (n) { + case "\\cfrac": + case "\\dfrac": + case "\\frac": + case "\\tfrac": + r = !0; + break; + case "\\\\atopfrac": + r = !1; + break; + case "\\dbinom": + case "\\binom": + case "\\tbinom": + (r = !1), (s = "("), (h = ")"); + break; + case "\\\\bracefrac": + (r = !1), (s = "\\{"), (h = "\\}"); + break; + case "\\\\brackfrac": + (r = !1), (s = "["), (h = "]"); + break; + default: + throw new Error("Unrecognized genfrac command"); + } + switch (n) { + case "\\cfrac": + case "\\dfrac": + case "\\dbinom": + l = "display"; + break; + case "\\tfrac": + case "\\tbinom": + l = "text"; + } + return { type: "genfrac", mode: a.mode, continued: "\\cfrac" === n, numer: i, denom: o, hasBarLine: r, leftDelim: s, rightDelim: h, size: l, barSize: null }; + }, + htmlBuilder: Rr, + mathmlBuilder: Or, + }), + Qt({ + type: "infix", + names: ["\\over", "\\choose", "\\atop", "\\brace", "\\brack"], + props: { numArgs: 0, infix: !0 }, + handler: function (t) { + var e, + r = t.parser, + a = t.funcName, + n = t.token; + switch (a) { + case "\\over": + e = "\\frac"; + break; + case "\\choose": + e = "\\binom"; + break; + case "\\atop": + e = "\\\\atopfrac"; + break; + case "\\brace": + e = "\\\\bracefrac"; + break; + case "\\brack": + e = "\\\\brackfrac"; + break; + default: + throw new Error("Unrecognized infix genfrac command"); + } + return { type: "infix", mode: r.mode, replaceWith: e, token: n }; + }, + }); + var Er = ["display", "text", "script", "scriptscript"], + Lr = function (t) { + var e = null; + return t.length > 0 && (e = "." === (e = t) ? null : e), e; + }; + Qt({ + type: "genfrac", + names: ["\\genfrac"], + props: { numArgs: 6, greediness: 6, argTypes: ["math", "math", "size", "text", "math", "math"] }, + handler: function (t, e) { + var r = t.parser, + a = e[4], + n = e[5], + i = Vt(e[0], "atom"); + i && (i = Ut(e[0], "open")); + var o = i ? Lr(i.text) : null, + s = Vt(e[1], "atom"); + s && (s = Ut(e[1], "close")); + var h, + l = s ? Lr(s.text) : null, + m = Ft(e[2], "size"), + c = null; + h = !!m.isBlank || (c = m.value).number > 0; + var u = "auto", + p = Vt(e[3], "ordgroup"); + if (p) { + if (p.body.length > 0) { + var d = Ft(p.body[0], "textord"); + u = Er[Number(d.text)]; + } + } else (p = Ft(e[3], "textord")), (u = Er[Number(p.text)]); + return { type: "genfrac", mode: r.mode, numer: a, denom: n, continued: !1, hasBarLine: h, barSize: c, leftDelim: o, rightDelim: l, size: u }; + }, + htmlBuilder: Rr, + mathmlBuilder: Or, + }), + Qt({ + type: "infix", + names: ["\\above"], + props: { numArgs: 1, argTypes: ["size"], infix: !0 }, + handler: function (t, e) { + var r = t.parser, + a = (t.funcName, t.token); + return { type: "infix", mode: r.mode, replaceWith: "\\\\abovefrac", size: Ft(e[0], "size").value, token: a }; + }, + }), + Qt({ + type: "genfrac", + names: ["\\\\abovefrac"], + props: { numArgs: 3, argTypes: ["math", "size", "math"] }, + handler: function (t, e) { + var r = t.parser, + a = (t.funcName, e[0]), + n = (function (t) { + if (!t) throw new Error("Expected non-null, but got " + String(t)); + return t; + })(Ft(e[1], "infix").size), + i = e[2], + o = n.number > 0; + return { type: "genfrac", mode: r.mode, numer: a, denom: i, continued: !1, hasBarLine: o, barSize: n, leftDelim: null, rightDelim: null, size: "auto" }; + }, + htmlBuilder: Rr, + mathmlBuilder: Or, + }); + var Hr = function (t, e) { + var r, + a, + n = e.style, + i = Vt(t, "supsub"); + i ? ((r = i.sup ? ue(i.sup, e.havingStyle(n.sup()), e) : ue(i.sub, e.havingStyle(n.sub()), e)), (a = Ft(i.base, "horizBrace"))) : (a = Ft(t, "horizBrace")); + var o, + s = ue(a.base, e.havingBaseStyle(w.DISPLAY)), + h = Oe(a, e); + if ( + (a.isOver + ? (o = Dt.makeVList( + { + positionType: "firstBaseline", + children: [ + { type: "elem", elem: s }, + { type: "kern", size: 0.1 }, + { type: "elem", elem: h }, + ], + }, + e + )).children[0].children[0].children[1].classes.push("svg-align") + : (o = Dt.makeVList( + { + positionType: "bottom", + positionData: s.depth + 0.1 + h.height, + children: [ + { type: "elem", elem: h }, + { type: "kern", size: 0.1 }, + { type: "elem", elem: s }, + ], + }, + e + )).children[0].children[0].children[0].classes.push("svg-align"), + r) + ) { + var l = Dt.makeSpan(["mord", a.isOver ? "mover" : "munder"], [o], e); + o = a.isOver + ? Dt.makeVList( + { + positionType: "firstBaseline", + children: [ + { type: "elem", elem: l }, + { type: "kern", size: 0.2 }, + { type: "elem", elem: r }, + ], + }, + e + ) + : Dt.makeVList( + { + positionType: "bottom", + positionData: l.depth + 0.2 + r.height + r.depth, + children: [ + { type: "elem", elem: r }, + { type: "kern", size: 0.2 }, + { type: "elem", elem: l }, + ], + }, + e + ); + } + return Dt.makeSpan(["mord", a.isOver ? "mover" : "munder"], [o], e); + }; + Qt({ + type: "horizBrace", + names: ["\\overbrace", "\\underbrace"], + props: { numArgs: 1 }, + handler: function (t, e) { + var r = t.parser, + a = t.funcName; + return { type: "horizBrace", mode: r.mode, label: a, isOver: /^\\over/.test(a), base: e[0] }; + }, + htmlBuilder: Hr, + mathmlBuilder: function (t, e) { + var r = Re(t.label); + return new ve.MathNode(t.isOver ? "mover" : "munder", [Me(t.base, e), r]); + }, + }), + Qt({ + type: "href", + names: ["\\href"], + props: { numArgs: 2, argTypes: ["url", "original"], allowedInText: !0 }, + handler: function (t, e) { + var r = t.parser, + a = e[1], + n = Ft(e[0], "url").url; + return r.settings.isTrusted({ command: "\\href", url: n }) ? { type: "href", mode: r.mode, href: n, body: ee(a) } : r.formatUnsupportedCmd("\\href"); + }, + htmlBuilder: function (t, e) { + var r = se(t.body, e, !1); + return Dt.makeAnchor(t.href, [], r, e); + }, + mathmlBuilder: function (t, e) { + var r = Se(t.body, e); + return r instanceof ge || (r = new ge("mrow", [r])), r.setAttribute("href", t.href), r; + }, + }), + Qt({ + type: "href", + names: ["\\url"], + props: { numArgs: 1, argTypes: ["url"], allowedInText: !0 }, + handler: function (t, e) { + var r = t.parser, + a = Ft(e[0], "url").url; + if (!r.settings.isTrusted({ command: "\\url", url: a })) return r.formatUnsupportedCmd("\\url"); + for (var n = [], i = 0; i < a.length; i++) { + var o = a[i]; + "~" === o && (o = "\\textasciitilde"), n.push({ type: "textord", mode: "text", text: o }); + } + var s = { type: "text", mode: r.mode, font: "\\texttt", body: n }; + return { type: "href", mode: r.mode, href: a, body: ee(s) }; + }, + }), + Qt({ + type: "htmlmathml", + names: ["\\html@mathml"], + props: { numArgs: 2, allowedInText: !0 }, + handler: function (t, e) { + return { type: "htmlmathml", mode: t.parser.mode, html: ee(e[0]), mathml: ee(e[1]) }; + }, + htmlBuilder: function (t, e) { + var r = se(t.html, e, !1); + return Dt.makeFragment(r); + }, + mathmlBuilder: function (t, e) { + return Se(t.mathml, e); + }, + }); + var Pr = function (t) { + if (/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(t)) return { number: +t, unit: "bp" }; + var e = /([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(t); + if (!e) throw new o("Invalid size: '" + t + "' in \\includegraphics"); + var r = { number: +(e[1] + e[2]), unit: e[3] }; + if (!At(r)) throw new o("Invalid unit: '" + r.unit + "' in \\includegraphics."); + return r; + }; + Qt({ + type: "includegraphics", + names: ["\\includegraphics"], + props: { numArgs: 1, numOptionalArgs: 1, argTypes: ["raw", "url"], allowedInText: !1 }, + handler: function (t, e, r) { + var a = t.parser, + n = { number: 0, unit: "em" }, + i = { number: 0.9, unit: "em" }, + s = { number: 0, unit: "em" }, + h = ""; + if (r[0]) + for (var l = Ft(r[0], "raw").string.split(","), m = 0; m < l.length; m++) { + var c = l[m].split("="); + if (2 === c.length) { + var u = c[1].trim(); + switch (c[0].trim()) { + case "alt": + h = u; + break; + case "width": + n = Pr(u); + break; + case "height": + i = Pr(u); + break; + case "totalheight": + s = Pr(u); + break; + default: + throw new o("Invalid key: '" + c[0] + "' in \\includegraphics."); + } + } + } + var p = Ft(e[0], "url").url; + return ( + "" === h && (h = (h = (h = p).replace(/^.*[\\\/]/, "")).substring(0, h.lastIndexOf("."))), + a.settings.isTrusted({ command: "\\includegraphics", url: p }) ? { type: "includegraphics", mode: a.mode, alt: h, width: n, height: i, totalheight: s, src: p } : a.formatUnsupportedCmd("\\includegraphics") + ); + }, + htmlBuilder: function (t, e) { + var r = Tt(t.height, e), + a = 0; + t.totalheight.number > 0 && ((a = Tt(t.totalheight, e) - r), (a = Number(a.toFixed(2)))); + var n = 0; + t.width.number > 0 && (n = Tt(t.width, e)); + var i = { height: r + a + "em" }; + n > 0 && (i.width = n + "em"), a > 0 && (i.verticalAlign = -a + "em"); + var o = new R(t.src, t.alt, i); + return (o.height = r), (o.depth = a), o; + }, + mathmlBuilder: function (t, e) { + var r = new ve.MathNode("mglyph", []); + r.setAttribute("alt", t.alt); + var a = Tt(t.height, e), + n = 0; + if ((t.totalheight.number > 0 && ((n = (n = Tt(t.totalheight, e) - a).toFixed(2)), r.setAttribute("valign", "-" + n + "em")), r.setAttribute("height", a + n + "em"), t.width.number > 0)) { + var i = Tt(t.width, e); + r.setAttribute("width", i + "em"); + } + return r.setAttribute("src", t.src), r; + }, + }), + Qt({ + type: "kern", + names: ["\\kern", "\\mkern", "\\hskip", "\\mskip"], + props: { numArgs: 1, argTypes: ["size"], allowedInText: !0 }, + handler: function (t, e) { + var r = t.parser, + a = t.funcName, + n = Ft(e[0], "size"); + if (r.settings.strict) { + var i = "m" === a[1], + o = "mu" === n.value.unit; + i + ? (o || r.settings.reportNonstrict("mathVsTextUnits", "LaTeX's " + a + " supports only mu units, not " + n.value.unit + " units"), + "math" !== r.mode && r.settings.reportNonstrict("mathVsTextUnits", "LaTeX's " + a + " works only in math mode")) + : o && r.settings.reportNonstrict("mathVsTextUnits", "LaTeX's " + a + " doesn't support mu units"); + } + return { type: "kern", mode: r.mode, dimension: n.value }; + }, + htmlBuilder: function (t, e) { + return Dt.makeGlue(t.dimension, e); + }, + mathmlBuilder: function (t, e) { + var r = Tt(t.dimension, e); + return new ve.SpaceNode(r); + }, + }), + Qt({ + type: "lap", + names: ["\\mathllap", "\\mathrlap", "\\mathclap"], + props: { numArgs: 1, allowedInText: !0 }, + handler: function (t, e) { + var r = t.parser, + a = t.funcName, + n = e[0]; + return { type: "lap", mode: r.mode, alignment: a.slice(5), body: n }; + }, + htmlBuilder: function (t, e) { + var r; + "clap" === t.alignment ? ((r = Dt.makeSpan([], [ue(t.body, e)])), (r = Dt.makeSpan(["inner"], [r], e))) : (r = Dt.makeSpan(["inner"], [ue(t.body, e)])); + var a = Dt.makeSpan(["fix"], []), + n = Dt.makeSpan([t.alignment], [r, a], e), + i = Dt.makeSpan(["strut"]); + return ( + (i.style.height = n.height + n.depth + "em"), + (i.style.verticalAlign = -n.depth + "em"), + n.children.unshift(i), + (n = Dt.makeVList({ positionType: "firstBaseline", children: [{ type: "elem", elem: n }] }, e)), + Dt.makeSpan(["mord"], [n], e) + ); + }, + mathmlBuilder: function (t, e) { + var r = new ve.MathNode("mpadded", [Me(t.body, e)]); + if ("rlap" !== t.alignment) { + var a = "llap" === t.alignment ? "-1" : "-0.5"; + r.setAttribute("lspace", a + "width"); + } + return r.setAttribute("width", "0px"), r; + }, + }), + Qt({ + type: "styling", + names: ["\\(", "$"], + props: { numArgs: 0, allowedInText: !0, allowedInMath: !1 }, + handler: function (t, e) { + var r = t.funcName, + a = t.parser, + n = a.mode; + a.switchMode("math"); + var i = "\\(" === r ? "\\)" : "$", + o = a.parseExpression(!1, i); + return a.expect(i), a.switchMode(n), { type: "styling", mode: a.mode, style: "text", body: o }; + }, + }), + Qt({ + type: "text", + names: ["\\)", "\\]"], + props: { numArgs: 0, allowedInText: !0, allowedInMath: !1 }, + handler: function (t, e) { + throw new o("Mismatched " + t.funcName); + }, + }); + var Dr = function (t, e) { + switch (e.style.size) { + case w.DISPLAY.size: + return t.display; + case w.TEXT.size: + return t.text; + case w.SCRIPT.size: + return t.script; + case w.SCRIPTSCRIPT.size: + return t.scriptscript; + default: + return t.text; + } + }; + Qt({ + type: "mathchoice", + names: ["\\mathchoice"], + props: { numArgs: 4 }, + handler: function (t, e) { + return { type: "mathchoice", mode: t.parser.mode, display: ee(e[0]), text: ee(e[1]), script: ee(e[2]), scriptscript: ee(e[3]) }; + }, + htmlBuilder: function (t, e) { + var r = Dr(t, e), + a = se(r, e, !1); + return Dt.makeFragment(a); + }, + mathmlBuilder: function (t, e) { + var r = Dr(t, e); + return Se(r, e); + }, + }); + var Fr = function (t, e, r, a, n, i, o) { + var s, h, l; + if (((t = Dt.makeSpan([], [t])), e)) { + var m = ue(e, a.havingStyle(n.sup()), a); + h = { elem: m, kern: Math.max(a.fontMetrics().bigOpSpacing1, a.fontMetrics().bigOpSpacing3 - m.depth) }; + } + if (r) { + var c = ue(r, a.havingStyle(n.sub()), a); + s = { elem: c, kern: Math.max(a.fontMetrics().bigOpSpacing2, a.fontMetrics().bigOpSpacing4 - c.height) }; + } + if (h && s) { + var u = a.fontMetrics().bigOpSpacing5 + s.elem.height + s.elem.depth + s.kern + t.depth + o; + l = Dt.makeVList( + { + positionType: "bottom", + positionData: u, + children: [ + { type: "kern", size: a.fontMetrics().bigOpSpacing5 }, + { type: "elem", elem: s.elem, marginLeft: -i + "em" }, + { type: "kern", size: s.kern }, + { type: "elem", elem: t }, + { type: "kern", size: h.kern }, + { type: "elem", elem: h.elem, marginLeft: i + "em" }, + { type: "kern", size: a.fontMetrics().bigOpSpacing5 }, + ], + }, + a + ); + } else if (s) { + var p = t.height - o; + l = Dt.makeVList( + { + positionType: "top", + positionData: p, + children: [ + { type: "kern", size: a.fontMetrics().bigOpSpacing5 }, + { type: "elem", elem: s.elem, marginLeft: -i + "em" }, + { type: "kern", size: s.kern }, + { type: "elem", elem: t }, + ], + }, + a + ); + } else { + if (!h) return t; + var d = t.depth + o; + l = Dt.makeVList( + { + positionType: "bottom", + positionData: d, + children: [ + { type: "elem", elem: t }, + { type: "kern", size: h.kern }, + { type: "elem", elem: h.elem, marginLeft: i + "em" }, + { type: "kern", size: a.fontMetrics().bigOpSpacing5 }, + ], + }, + a + ); + } + return Dt.makeSpan(["mop", "op-limits"], [l], a); + }, + Vr = ["\\smallint"], + Ur = function (t, e) { + var r, + a, + n, + i = !1, + o = Vt(t, "supsub"); + o ? ((r = o.sup), (a = o.sub), (n = Ft(o.base, "op")), (i = !0)) : (n = Ft(t, "op")); + var s, + h = e.style, + l = !1; + if ((h.size === w.DISPLAY.size && n.symbol && !c.contains(Vr, n.name) && (l = !0), n.symbol)) { + var m = l ? "Size2-Regular" : "Size1-Regular", + u = ""; + if ( + (("\\oiint" !== n.name && "\\oiiint" !== n.name) || ((u = n.name.substr(1)), (n.name = "oiint" === u ? "\\iint" : "\\iiint")), + (s = Dt.makeSymbol(n.name, m, "math", e, ["mop", "op-symbol", l ? "large-op" : "small-op"])), + u.length > 0) + ) { + var p = s.italic, + d = Dt.staticSvg(u + "Size" + (l ? "2" : "1"), e); + (s = Dt.makeVList( + { + positionType: "individualShift", + children: [ + { type: "elem", elem: s, shift: 0 }, + { type: "elem", elem: d, shift: l ? 0.08 : 0 }, + ], + }, + e + )), + (n.name = "\\" + u), + s.classes.unshift("mop"), + (s.italic = p); + } + } else if (n.body) { + var f = se(n.body, e, !0); + 1 === f.length && f[0] instanceof E ? ((s = f[0]).classes[0] = "mop") : (s = Dt.makeSpan(["mop"], Dt.tryCombineChars(f), e)); + } else { + for (var g = [], x = 1; x < n.name.length; x++) g.push(Dt.mathsym(n.name[x], n.mode, e)); + s = Dt.makeSpan(["mop"], g, e); + } + var v = 0, + b = 0; + return ( + (s instanceof E || "\\oiint" === n.name || "\\oiiint" === n.name) && !n.suppressBaseShift && ((v = (s.height - s.depth) / 2 - e.fontMetrics().axisHeight), (b = s.italic)), + i ? Fr(s, r, a, e, h, b, v) : (v && ((s.style.position = "relative"), (s.style.top = v + "em")), s) + ); + }, + Gr = function (t, e) { + var r; + if (t.symbol) (r = new ge("mo", [be(t.name, t.mode)])), c.contains(Vr, t.name) && r.setAttribute("largeop", "false"); + else if (t.body) r = new ge("mo", ke(t.body, e)); + else { + r = new ge("mi", [new xe(t.name.slice(1))]); + var a = new ge("mo", [be("\u2061", "text")]); + r = t.parentIsSupSub ? new ge("mo", [r, a]) : fe([r, a]); + } + return r; + }, + Yr = { + "\u220f": "\\prod", + "\u2210": "\\coprod", + "\u2211": "\\sum", + "\u22c0": "\\bigwedge", + "\u22c1": "\\bigvee", + "\u22c2": "\\bigcap", + "\u22c3": "\\bigcup", + "\u2a00": "\\bigodot", + "\u2a01": "\\bigoplus", + "\u2a02": "\\bigotimes", + "\u2a04": "\\biguplus", + "\u2a06": "\\bigsqcup", + }; + Qt({ + type: "op", + names: [ + "\\coprod", + "\\bigvee", + "\\bigwedge", + "\\biguplus", + "\\bigcap", + "\\bigcup", + "\\intop", + "\\prod", + "\\sum", + "\\bigotimes", + "\\bigoplus", + "\\bigodot", + "\\bigsqcup", + "\\smallint", + "\u220f", + "\u2210", + "\u2211", + "\u22c0", + "\u22c1", + "\u22c2", + "\u22c3", + "\u2a00", + "\u2a01", + "\u2a02", + "\u2a04", + "\u2a06", + ], + props: { numArgs: 0 }, + handler: function (t, e) { + var r = t.parser, + a = t.funcName; + return 1 === a.length && (a = Yr[a]), { type: "op", mode: r.mode, limits: !0, parentIsSupSub: !1, symbol: !0, name: a }; + }, + htmlBuilder: Ur, + mathmlBuilder: Gr, + }), + Qt({ + type: "op", + names: ["\\mathop"], + props: { numArgs: 1 }, + handler: function (t, e) { + var r = t.parser, + a = e[0]; + return { type: "op", mode: r.mode, limits: !1, parentIsSupSub: !1, symbol: !1, body: ee(a) }; + }, + htmlBuilder: Ur, + mathmlBuilder: Gr, + }); + var Wr = { "\u222b": "\\int", "\u222c": "\\iint", "\u222d": "\\iiint", "\u222e": "\\oint", "\u222f": "\\oiint", "\u2230": "\\oiiint" }; + Qt({ + type: "op", + names: [ + "\\arcsin", + "\\arccos", + "\\arctan", + "\\arctg", + "\\arcctg", + "\\arg", + "\\ch", + "\\cos", + "\\cosec", + "\\cosh", + "\\cot", + "\\cotg", + "\\coth", + "\\csc", + "\\ctg", + "\\cth", + "\\deg", + "\\dim", + "\\exp", + "\\hom", + "\\ker", + "\\lg", + "\\ln", + "\\log", + "\\sec", + "\\sin", + "\\sinh", + "\\sh", + "\\tan", + "\\tanh", + "\\tg", + "\\th", + ], + props: { numArgs: 0 }, + handler: function (t) { + var e = t.parser, + r = t.funcName; + return { type: "op", mode: e.mode, limits: !1, parentIsSupSub: !1, symbol: !1, name: r }; + }, + htmlBuilder: Ur, + mathmlBuilder: Gr, + }), + Qt({ + type: "op", + names: ["\\det", "\\gcd", "\\inf", "\\lim", "\\max", "\\min", "\\Pr", "\\sup"], + props: { numArgs: 0 }, + handler: function (t) { + var e = t.parser, + r = t.funcName; + return { type: "op", mode: e.mode, limits: !0, parentIsSupSub: !1, symbol: !1, name: r }; + }, + htmlBuilder: Ur, + mathmlBuilder: Gr, + }), + Qt({ + type: "op", + names: ["\\int", "\\iint", "\\iiint", "\\oint", "\\oiint", "\\oiiint", "\u222b", "\u222c", "\u222d", "\u222e", "\u222f", "\u2230"], + props: { numArgs: 0 }, + handler: function (t) { + var e = t.parser, + r = t.funcName; + return 1 === r.length && (r = Wr[r]), { type: "op", mode: e.mode, limits: !1, parentIsSupSub: !1, symbol: !0, name: r }; + }, + htmlBuilder: Ur, + mathmlBuilder: Gr, + }); + var Xr = function (t, e) { + var r, + a, + n, + i, + o = !1, + s = Vt(t, "supsub"); + if ((s ? ((r = s.sup), (a = s.sub), (n = Ft(s.base, "operatorname")), (o = !0)) : (n = Ft(t, "operatorname")), n.body.length > 0)) { + for ( + var h = n.body.map(function (t) { + var e = t.text; + return "string" == typeof e ? { type: "textord", mode: t.mode, text: e } : t; + }), + l = se(h, e.withFont("mathrm"), !0), + m = 0; + m < l.length; + m++ + ) { + var c = l[m]; + c instanceof E && (c.text = c.text.replace(/\u2212/, "-").replace(/\u2217/, "*")); + } + i = Dt.makeSpan(["mop"], l, e); + } else i = Dt.makeSpan(["mop"], [], e); + return o ? Fr(i, r, a, e, e.style, 0, 0) : i; + }; + function _r(t, e, r) { + for (var a = se(t, e, !1), n = e.sizeMultiplier / r.sizeMultiplier, i = 0; i < a.length; i++) { + var o = a[i].classes.indexOf("sizing"); + o < 0 ? Array.prototype.push.apply(a[i].classes, e.sizingClasses(r)) : a[i].classes[o + 1] === "reset-size" + e.size && (a[i].classes[o + 1] = "reset-size" + r.size), (a[i].height *= n), (a[i].depth *= n); + } + return Dt.makeFragment(a); + } + Qt({ + type: "operatorname", + names: ["\\operatorname", "\\operatorname*"], + props: { numArgs: 1 }, + handler: function (t, e) { + var r = t.parser, + a = t.funcName, + n = e[0]; + return { type: "operatorname", mode: r.mode, body: ee(n), alwaysHandleSupSub: "\\operatorname*" === a, limits: !1, parentIsSupSub: !1 }; + }, + htmlBuilder: Xr, + mathmlBuilder: function (t, e) { + for (var r = ke(t.body, e.withFont("mathrm")), a = !0, n = 0; n < r.length; n++) { + var i = r[n]; + if (i instanceof ve.SpaceNode); + else if (i instanceof ve.MathNode) + switch (i.type) { + case "mi": + case "mn": + case "ms": + case "mspace": + case "mtext": + break; + case "mo": + var o = i.children[0]; + 1 === i.children.length && o instanceof ve.TextNode ? (o.text = o.text.replace(/\u2212/, "-").replace(/\u2217/, "*")) : (a = !1); + break; + default: + a = !1; + } + else a = !1; + } + if (a) { + var s = r + .map(function (t) { + return t.toText(); + }) + .join(""); + r = [new ve.TextNode(s)]; + } + var h = new ve.MathNode("mi", r); + h.setAttribute("mathvariant", "normal"); + var l = new ve.MathNode("mo", [be("\u2061", "text")]); + return t.parentIsSupSub ? new ve.MathNode("mo", [h, l]) : ve.newDocumentFragment([h, l]); + }, + }), + te({ + type: "ordgroup", + htmlBuilder: function (t, e) { + return t.semisimple ? Dt.makeFragment(se(t.body, e, !1)) : Dt.makeSpan(["mord"], se(t.body, e, !0), e); + }, + mathmlBuilder: function (t, e) { + return Se(t.body, e, !0); + }, + }), + Qt({ + type: "overline", + names: ["\\overline"], + props: { numArgs: 1 }, + handler: function (t, e) { + var r = t.parser, + a = e[0]; + return { type: "overline", mode: r.mode, body: a }; + }, + htmlBuilder: function (t, e) { + var r = ue(t.body, e.havingCrampedStyle()), + a = Dt.makeLineSpan("overline-line", e), + n = e.fontMetrics().defaultRuleThickness, + i = Dt.makeVList( + { + positionType: "firstBaseline", + children: [ + { type: "elem", elem: r }, + { type: "kern", size: 3 * n }, + { type: "elem", elem: a }, + { type: "kern", size: n }, + ], + }, + e + ); + return Dt.makeSpan(["mord", "overline"], [i], e); + }, + mathmlBuilder: function (t, e) { + var r = new ve.MathNode("mo", [new ve.TextNode("\u203e")]); + r.setAttribute("stretchy", "true"); + var a = new ve.MathNode("mover", [Me(t.body, e), r]); + return a.setAttribute("accent", "true"), a; + }, + }), + Qt({ + type: "phantom", + names: ["\\phantom"], + props: { numArgs: 1, allowedInText: !0 }, + handler: function (t, e) { + var r = t.parser, + a = e[0]; + return { type: "phantom", mode: r.mode, body: ee(a) }; + }, + htmlBuilder: function (t, e) { + var r = se(t.body, e.withPhantom(), !1); + return Dt.makeFragment(r); + }, + mathmlBuilder: function (t, e) { + var r = ke(t.body, e); + return new ve.MathNode("mphantom", r); + }, + }), + Qt({ + type: "hphantom", + names: ["\\hphantom"], + props: { numArgs: 1, allowedInText: !0 }, + handler: function (t, e) { + var r = t.parser, + a = e[0]; + return { type: "hphantom", mode: r.mode, body: a }; + }, + htmlBuilder: function (t, e) { + var r = Dt.makeSpan([], [ue(t.body, e.withPhantom())]); + if (((r.height = 0), (r.depth = 0), r.children)) for (var a = 0; a < r.children.length; a++) (r.children[a].height = 0), (r.children[a].depth = 0); + return (r = Dt.makeVList({ positionType: "firstBaseline", children: [{ type: "elem", elem: r }] }, e)), Dt.makeSpan(["mord"], [r], e); + }, + mathmlBuilder: function (t, e) { + var r = ke(ee(t.body), e), + a = new ve.MathNode("mphantom", r), + n = new ve.MathNode("mpadded", [a]); + return n.setAttribute("height", "0px"), n.setAttribute("depth", "0px"), n; + }, + }), + Qt({ + type: "vphantom", + names: ["\\vphantom"], + props: { numArgs: 1, allowedInText: !0 }, + handler: function (t, e) { + var r = t.parser, + a = e[0]; + return { type: "vphantom", mode: r.mode, body: a }; + }, + htmlBuilder: function (t, e) { + var r = Dt.makeSpan(["inner"], [ue(t.body, e.withPhantom())]), + a = Dt.makeSpan(["fix"], []); + return Dt.makeSpan(["mord", "rlap"], [r, a], e); + }, + mathmlBuilder: function (t, e) { + var r = ke(ee(t.body), e), + a = new ve.MathNode("mphantom", r), + n = new ve.MathNode("mpadded", [a]); + return n.setAttribute("width", "0px"), n; + }, + }), + Qt({ + type: "raisebox", + names: ["\\raisebox"], + props: { numArgs: 2, argTypes: ["size", "hbox"], allowedInText: !0 }, + handler: function (t, e) { + var r = t.parser, + a = Ft(e[0], "size").value, + n = e[1]; + return { type: "raisebox", mode: r.mode, dy: a, body: n }; + }, + htmlBuilder: function (t, e) { + var r = ue(t.body, e), + a = Tt(t.dy, e); + return Dt.makeVList({ positionType: "shift", positionData: -a, children: [{ type: "elem", elem: r }] }, e); + }, + mathmlBuilder: function (t, e) { + var r = new ve.MathNode("mpadded", [Me(t.body, e)]), + a = t.dy.number + t.dy.unit; + return r.setAttribute("voffset", a), r; + }, + }), + Qt({ + type: "rule", + names: ["\\rule"], + props: { numArgs: 2, numOptionalArgs: 1, argTypes: ["size", "size", "size"] }, + handler: function (t, e, r) { + var a = t.parser, + n = r[0], + i = Ft(e[0], "size"), + o = Ft(e[1], "size"); + return { type: "rule", mode: a.mode, shift: n && Ft(n, "size").value, width: i.value, height: o.value }; + }, + htmlBuilder: function (t, e) { + var r = Dt.makeSpan(["mord", "rule"], [], e), + a = Tt(t.width, e), + n = Tt(t.height, e), + i = t.shift ? Tt(t.shift, e) : 0; + return (r.style.borderRightWidth = a + "em"), (r.style.borderTopWidth = n + "em"), (r.style.bottom = i + "em"), (r.width = a), (r.height = n + i), (r.depth = -i), (r.maxFontSize = 1.125 * n * e.sizeMultiplier), r; + }, + mathmlBuilder: function (t, e) { + var r = Tt(t.width, e), + a = Tt(t.height, e), + n = t.shift ? Tt(t.shift, e) : 0, + i = (e.color && e.getColor()) || "black", + o = new ve.MathNode("mspace"); + o.setAttribute("mathbackground", i), o.setAttribute("width", r + "em"), o.setAttribute("height", a + "em"); + var s = new ve.MathNode("mpadded", [o]); + return n >= 0 ? s.setAttribute("height", "+" + n + "em") : (s.setAttribute("height", n + "em"), s.setAttribute("depth", "+" + -n + "em")), s.setAttribute("voffset", n + "em"), s; + }, + }); + var jr = ["\\tiny", "\\sixptsize", "\\scriptsize", "\\footnotesize", "\\small", "\\normalsize", "\\large", "\\Large", "\\LARGE", "\\huge", "\\Huge"]; + Qt({ + type: "sizing", + names: jr, + props: { numArgs: 0, allowedInText: !0 }, + handler: function (t, e) { + var r = t.breakOnTokenText, + a = t.funcName, + n = t.parser, + i = n.parseExpression(!1, r); + return { type: "sizing", mode: n.mode, size: jr.indexOf(a) + 1, body: i }; + }, + htmlBuilder: function (t, e) { + var r = e.havingSize(t.size); + return _r(t.body, r, e); + }, + mathmlBuilder: function (t, e) { + var r = e.havingSize(t.size), + a = ke(t.body, r), + n = new ve.MathNode("mstyle", a); + return n.setAttribute("mathsize", r.sizeMultiplier + "em"), n; + }, + }), + Qt({ + type: "smash", + names: ["\\smash"], + props: { numArgs: 1, numOptionalArgs: 1, allowedInText: !0 }, + handler: function (t, e, r) { + var a = t.parser, + n = !1, + i = !1, + o = r[0] && Ft(r[0], "ordgroup"); + if (o) + for (var s = "", h = 0; h < o.body.length; ++h) { + if ("t" === (s = o.body[h].text)) n = !0; + else { + if ("b" !== s) { + (n = !1), (i = !1); + break; + } + i = !0; + } + } + else (n = !0), (i = !0); + var l = e[0]; + return { type: "smash", mode: a.mode, body: l, smashHeight: n, smashDepth: i }; + }, + htmlBuilder: function (t, e) { + var r = Dt.makeSpan([], [ue(t.body, e)]); + if (!t.smashHeight && !t.smashDepth) return r; + if (t.smashHeight && ((r.height = 0), r.children)) for (var a = 0; a < r.children.length; a++) r.children[a].height = 0; + if (t.smashDepth && ((r.depth = 0), r.children)) for (var n = 0; n < r.children.length; n++) r.children[n].depth = 0; + var i = Dt.makeVList({ positionType: "firstBaseline", children: [{ type: "elem", elem: r }] }, e); + return Dt.makeSpan(["mord"], [i], e); + }, + mathmlBuilder: function (t, e) { + var r = new ve.MathNode("mpadded", [Me(t.body, e)]); + return t.smashHeight && r.setAttribute("height", "0px"), t.smashDepth && r.setAttribute("depth", "0px"), r; + }, + }), + Qt({ + type: "sqrt", + names: ["\\sqrt"], + props: { numArgs: 1, numOptionalArgs: 1 }, + handler: function (t, e, r) { + var a = t.parser, + n = r[0], + i = e[0]; + return { type: "sqrt", mode: a.mode, body: i, index: n }; + }, + htmlBuilder: function (t, e) { + var r = ue(t.body, e.havingCrampedStyle()); + 0 === r.height && (r.height = e.fontMetrics().xHeight), (r = Dt.wrapFragment(r, e)); + var a = e.fontMetrics().defaultRuleThickness, + n = a; + e.style.id < w.TEXT.id && (n = e.fontMetrics().xHeight); + var i = a + n / 4, + o = r.height + r.depth + i + a, + s = ir(o, e), + h = s.span, + l = s.ruleWidth, + m = s.advanceWidth, + c = h.height - l; + c > r.height + r.depth + i && (i = (i + c - r.height - r.depth) / 2); + var u = h.height - r.height - i - l; + r.style.paddingLeft = m + "em"; + var p = Dt.makeVList( + { + positionType: "firstBaseline", + children: [ + { type: "elem", elem: r, wrapperClasses: ["svg-align"] }, + { type: "kern", size: -(r.height + u) }, + { type: "elem", elem: h }, + { type: "kern", size: l }, + ], + }, + e + ); + if (t.index) { + var d = e.havingStyle(w.SCRIPTSCRIPT), + f = ue(t.index, d, e), + g = 0.6 * (p.height - p.depth), + x = Dt.makeVList({ positionType: "shift", positionData: -g, children: [{ type: "elem", elem: f }] }, e), + v = Dt.makeSpan(["root"], [x]); + return Dt.makeSpan(["mord", "sqrt"], [v, p], e); + } + return Dt.makeSpan(["mord", "sqrt"], [p], e); + }, + mathmlBuilder: function (t, e) { + var r = t.body, + a = t.index; + return a ? new ve.MathNode("mroot", [Me(r, e), Me(a, e)]) : new ve.MathNode("msqrt", [Me(r, e)]); + }, + }); + var $r = { display: w.DISPLAY, text: w.TEXT, script: w.SCRIPT, scriptscript: w.SCRIPTSCRIPT }; + Qt({ + type: "styling", + names: ["\\displaystyle", "\\textstyle", "\\scriptstyle", "\\scriptscriptstyle"], + props: { numArgs: 0, allowedInText: !0 }, + handler: function (t, e) { + var r = t.breakOnTokenText, + a = t.funcName, + n = t.parser, + i = n.parseExpression(!0, r), + o = a.slice(1, a.length - 5); + return { type: "styling", mode: n.mode, style: o, body: i }; + }, + htmlBuilder: function (t, e) { + var r = $r[t.style], + a = e.havingStyle(r).withFont(""); + return _r(t.body, a, e); + }, + mathmlBuilder: function (t, e) { + var r = $r[t.style], + a = e.havingStyle(r), + n = ke(t.body, a), + i = new ve.MathNode("mstyle", n), + o = { display: ["0", "true"], text: ["0", "false"], script: ["1", "false"], scriptscript: ["2", "false"] }[t.style]; + return i.setAttribute("scriptlevel", o[0]), i.setAttribute("displaystyle", o[1]), i; + }, + }); + te({ + type: "supsub", + htmlBuilder: function (t, e) { + var r = (function (t, e) { + var r = t.base; + return r + ? "op" === r.type + ? r.limits && (e.style.size === w.DISPLAY.size || r.alwaysHandleSupSub) + ? Ur + : null + : "operatorname" === r.type + ? r.alwaysHandleSupSub && (e.style.size === w.DISPLAY.size || r.limits) + ? Xr + : null + : "accent" === r.type + ? c.isCharacterBox(r.base) + ? Ee + : null + : "horizBrace" === r.type && !t.sub === r.isOver + ? Hr + : null + : null; + })(t, e); + if (r) return r(t, e); + var a, + n, + i, + o = t.base, + s = t.sup, + h = t.sub, + l = ue(o, e), + m = e.fontMetrics(), + u = 0, + p = 0, + d = o && c.isCharacterBox(o); + if (s) { + var f = e.havingStyle(e.style.sup()); + (a = ue(s, f, e)), d || (u = l.height - (f.fontMetrics().supDrop * f.sizeMultiplier) / e.sizeMultiplier); + } + if (h) { + var g = e.havingStyle(e.style.sub()); + (n = ue(h, g, e)), d || (p = l.depth + (g.fontMetrics().subDrop * g.sizeMultiplier) / e.sizeMultiplier); + } + i = e.style === w.DISPLAY ? m.sup1 : e.style.cramped ? m.sup3 : m.sup2; + var x, + v = e.sizeMultiplier, + b = 0.5 / m.ptPerEm / v + "em", + y = null; + if (n) { + var k = t.base && "op" === t.base.type && t.base.name && ("\\oiint" === t.base.name || "\\oiiint" === t.base.name); + (l instanceof E || k) && (y = -l.italic + "em"); + } + if (a && n) { + (u = Math.max(u, i, a.depth + 0.25 * m.xHeight)), (p = Math.max(p, m.sub2)); + var S = 4 * m.defaultRuleThickness; + if (u - a.depth - (n.height - p) < S) { + p = S - (u - a.depth) + n.height; + var M = 0.8 * m.xHeight - (u - a.depth); + M > 0 && ((u += M), (p -= M)); + } + var z = [ + { type: "elem", elem: n, shift: p, marginRight: b, marginLeft: y }, + { type: "elem", elem: a, shift: -u, marginRight: b }, + ]; + x = Dt.makeVList({ positionType: "individualShift", children: z }, e); + } else if (n) { + p = Math.max(p, m.sub1, n.height - 0.8 * m.xHeight); + var A = [{ type: "elem", elem: n, marginLeft: y, marginRight: b }]; + x = Dt.makeVList({ positionType: "shift", positionData: p, children: A }, e); + } else { + if (!a) throw new Error("supsub must have either sup or sub."); + (u = Math.max(u, i, a.depth + 0.25 * m.xHeight)), (x = Dt.makeVList({ positionType: "shift", positionData: -u, children: [{ type: "elem", elem: a, marginRight: b }] }, e)); + } + var T = me(l, "right") || "mord"; + return Dt.makeSpan([T], [l, Dt.makeSpan(["msupsub"], [x])], e); + }, + mathmlBuilder: function (t, e) { + var r, + a = !1, + n = Vt(t.base, "horizBrace"); + n && !!t.sup === n.isOver && ((a = !0), (r = n.isOver)), !t.base || ("op" !== t.base.type && "operatorname" !== t.base.type) || (t.base.parentIsSupSub = !0); + var i, + o = [Me(t.base, e)]; + if ((t.sub && o.push(Me(t.sub, e)), t.sup && o.push(Me(t.sup, e)), a)) i = r ? "mover" : "munder"; + else if (t.sub) + if (t.sup) { + var s = t.base; + i = s && "op" === s.type && s.limits && e.style === w.DISPLAY ? "munderover" : s && "operatorname" === s.type && s.alwaysHandleSupSub && (e.style === w.DISPLAY || s.limits) ? "munderover" : "msubsup"; + } else { + var h = t.base; + i = + h && "op" === h.type && h.limits && (e.style === w.DISPLAY || h.alwaysHandleSupSub) + ? "munder" + : h && "operatorname" === h.type && h.alwaysHandleSupSub && (h.limits || e.style === w.DISPLAY) + ? "munder" + : "msub"; + } + else { + var l = t.base; + i = l && "op" === l.type && l.limits && (e.style === w.DISPLAY || l.alwaysHandleSupSub) ? "mover" : l && "operatorname" === l.type && l.alwaysHandleSupSub && (l.limits || e.style === w.DISPLAY) ? "mover" : "msup"; + } + return new ve.MathNode(i, o); + }, + }), + te({ + type: "atom", + htmlBuilder: function (t, e) { + return Dt.mathsym(t.text, t.mode, e, ["m" + t.family]); + }, + mathmlBuilder: function (t, e) { + var r = new ve.MathNode("mo", [be(t.text, t.mode)]); + if ("bin" === t.family) { + var a = we(t, e); + "bold-italic" === a && r.setAttribute("mathvariant", a); + } else "punct" === t.family ? r.setAttribute("separator", "true") : ("open" !== t.family && "close" !== t.family) || r.setAttribute("stretchy", "false"); + return r; + }, + }); + var Zr = { mi: "italic", mn: "normal", mtext: "normal" }; + te({ + type: "mathord", + htmlBuilder: function (t, e) { + return Dt.makeOrd(t, e, "mathord"); + }, + mathmlBuilder: function (t, e) { + var r = new ve.MathNode("mi", [be(t.text, t.mode, e)]), + a = we(t, e) || "italic"; + return a !== Zr[r.type] && r.setAttribute("mathvariant", a), r; + }, + }), + te({ + type: "textord", + htmlBuilder: function (t, e) { + return Dt.makeOrd(t, e, "textord"); + }, + mathmlBuilder: function (t, e) { + var r, + a = be(t.text, t.mode, e), + n = we(t, e) || "normal"; + return ( + (r = "text" === t.mode ? new ve.MathNode("mtext", [a]) : /[0-9]/.test(t.text) ? new ve.MathNode("mn", [a]) : "\\prime" === t.text ? new ve.MathNode("mo", [a]) : new ve.MathNode("mi", [a])), + n !== Zr[r.type] && r.setAttribute("mathvariant", n), + r + ); + }, + }); + var Kr = { "\\nobreak": "nobreak", "\\allowbreak": "allowbreak" }, + Jr = { " ": {}, "\\ ": {}, "~": { className: "nobreak" }, "\\space": {}, "\\nobreakspace": { className: "nobreak" } }; + te({ + type: "spacing", + htmlBuilder: function (t, e) { + if (Jr.hasOwnProperty(t.text)) { + var r = Jr[t.text].className || ""; + if ("text" === t.mode) { + var a = Dt.makeOrd(t, e, "textord"); + return a.classes.push(r), a; + } + return Dt.makeSpan(["mspace", r], [Dt.mathsym(t.text, t.mode, e)], e); + } + if (Kr.hasOwnProperty(t.text)) return Dt.makeSpan(["mspace", Kr[t.text]], [], e); + throw new o('Unknown type of space "' + t.text + '"'); + }, + mathmlBuilder: function (t, e) { + if (!Jr.hasOwnProperty(t.text)) { + if (Kr.hasOwnProperty(t.text)) return new ve.MathNode("mspace"); + throw new o('Unknown type of space "' + t.text + '"'); + } + return new ve.MathNode("mtext", [new ve.TextNode("\xa0")]); + }, + }); + var Qr = function () { + var t = new ve.MathNode("mtd", []); + return t.setAttribute("width", "50%"), t; + }; + te({ + type: "tag", + mathmlBuilder: function (t, e) { + var r = new ve.MathNode("mtable", [new ve.MathNode("mtr", [Qr(), new ve.MathNode("mtd", [Se(t.body, e)]), Qr(), new ve.MathNode("mtd", [Se(t.tag, e)])])]); + return r.setAttribute("width", "100%"), r; + }, + }); + var ta = { "\\text": void 0, "\\textrm": "textrm", "\\textsf": "textsf", "\\texttt": "texttt", "\\textnormal": "textrm" }, + ea = { "\\textbf": "textbf", "\\textmd": "textmd" }, + ra = { "\\textit": "textit", "\\textup": "textup" }, + aa = function (t, e) { + var r = t.font; + return r ? (ta[r] ? e.withTextFontFamily(ta[r]) : ea[r] ? e.withTextFontWeight(ea[r]) : e.withTextFontShape(ra[r])) : e; + }; + Qt({ + type: "text", + names: ["\\text", "\\textrm", "\\textsf", "\\texttt", "\\textnormal", "\\textbf", "\\textmd", "\\textit", "\\textup"], + props: { numArgs: 1, argTypes: ["text"], greediness: 2, allowedInText: !0 }, + handler: function (t, e) { + var r = t.parser, + a = t.funcName, + n = e[0]; + return { type: "text", mode: r.mode, body: ee(n), font: a }; + }, + htmlBuilder: function (t, e) { + var r = aa(t, e), + a = se(t.body, r, !0); + return Dt.makeSpan(["mord", "text"], Dt.tryCombineChars(a), r); + }, + mathmlBuilder: function (t, e) { + var r = aa(t, e); + return Se(t.body, r); + }, + }), + Qt({ + type: "underline", + names: ["\\underline"], + props: { numArgs: 1, allowedInText: !0 }, + handler: function (t, e) { + return { type: "underline", mode: t.parser.mode, body: e[0] }; + }, + htmlBuilder: function (t, e) { + var r = ue(t.body, e), + a = Dt.makeLineSpan("underline-line", e), + n = e.fontMetrics().defaultRuleThickness, + i = Dt.makeVList( + { + positionType: "top", + positionData: r.height, + children: [ + { type: "kern", size: n }, + { type: "elem", elem: a }, + { type: "kern", size: 3 * n }, + { type: "elem", elem: r }, + ], + }, + e + ); + return Dt.makeSpan(["mord", "underline"], [i], e); + }, + mathmlBuilder: function (t, e) { + var r = new ve.MathNode("mo", [new ve.TextNode("\u203e")]); + r.setAttribute("stretchy", "true"); + var a = new ve.MathNode("munder", [Me(t.body, e), r]); + return a.setAttribute("accentunder", "true"), a; + }, + }), + Qt({ + type: "verb", + names: ["\\verb"], + props: { numArgs: 0, allowedInText: !0 }, + handler: function (t, e, r) { + throw new o("\\verb ended by end of line instead of matching delimiter"); + }, + htmlBuilder: function (t, e) { + for (var r = na(t), a = [], n = e.havingStyle(e.style.text()), i = 0; i < r.length; i++) { + var o = r[i]; + "~" === o && (o = "\\textasciitilde"), a.push(Dt.makeSymbol(o, "Typewriter-Regular", t.mode, n, ["mord", "texttt"])); + } + return Dt.makeSpan(["mord", "text"].concat(n.sizingClasses(e)), Dt.tryCombineChars(a), n); + }, + mathmlBuilder: function (t, e) { + var r = new ve.TextNode(na(t)), + a = new ve.MathNode("mtext", [r]); + return a.setAttribute("mathvariant", "monospace"), a; + }, + }); + var na = function (t) { + return t.body.replace(/ /g, t.star ? "\u2423" : "\xa0"); + }, + ia = Zt, + oa = new RegExp("^(\\\\[a-zA-Z@]+)[ \r\n\t]*$"), + sa = new RegExp("[\u0300-\u036f]+$"), + ha = + "([ \r\n\t]+)|([!-\\[\\]-\u2027\u202a-\ud7ff\uf900-\uffff][\u0300-\u036f]*|[\ud800-\udbff][\udc00-\udfff][\u0300-\u036f]*|\\\\verb\\*([^]).*?\\3|\\\\verb([^*a-zA-Z]).*?\\4|\\\\operatorname\\*|\\\\[a-zA-Z@]+[ \r\n\t]*|\\\\[^\ud800-\udfff])", + la = (function () { + function t(t, e) { + (this.input = void 0), (this.settings = void 0), (this.tokenRegex = void 0), (this.catcodes = void 0), (this.input = t), (this.settings = e), (this.tokenRegex = new RegExp(ha, "g")), (this.catcodes = { "%": 14 }); + } + var e = t.prototype; + return ( + (e.setCatcode = function (t, e) { + this.catcodes[t] = e; + }), + (e.lex = function () { + var t = this.input, + e = this.tokenRegex.lastIndex; + if (e === t.length) return new n("EOF", new a(this, e, e)); + var r = this.tokenRegex.exec(t); + if (null === r || r.index !== e) throw new o("Unexpected character: '" + t[e] + "'", new n(t[e], new a(this, e, e + 1))); + var i = r[2] || " "; + if (14 === this.catcodes[i]) { + var s = t.indexOf("\n", this.tokenRegex.lastIndex); + return ( + -1 === s + ? ((this.tokenRegex.lastIndex = t.length), this.settings.reportNonstrict("commentAtEnd", "% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")) + : (this.tokenRegex.lastIndex = s + 1), + this.lex() + ); + } + var h = i.match(oa); + return h && (i = h[1]), new n(i, new a(this, e, this.tokenRegex.lastIndex)); + }), + t + ); + })(), + ma = (function () { + function t(t, e) { + void 0 === t && (t = {}), void 0 === e && (e = {}), (this.current = void 0), (this.builtins = void 0), (this.undefStack = void 0), (this.current = e), (this.builtins = t), (this.undefStack = []); + } + var e = t.prototype; + return ( + (e.beginGroup = function () { + this.undefStack.push({}); + }), + (e.endGroup = function () { + if (0 === this.undefStack.length) throw new o("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug"); + var t = this.undefStack.pop(); + for (var e in t) t.hasOwnProperty(e) && (void 0 === t[e] ? delete this.current[e] : (this.current[e] = t[e])); + }), + (e.has = function (t) { + return this.current.hasOwnProperty(t) || this.builtins.hasOwnProperty(t); + }), + (e.get = function (t) { + return this.current.hasOwnProperty(t) ? this.current[t] : this.builtins[t]; + }), + (e.set = function (t, e, r) { + if ((void 0 === r && (r = !1), r)) { + for (var a = 0; a < this.undefStack.length; a++) delete this.undefStack[a][t]; + this.undefStack.length > 0 && (this.undefStack[this.undefStack.length - 1][t] = e); + } else { + var n = this.undefStack[this.undefStack.length - 1]; + n && !n.hasOwnProperty(t) && (n[t] = this.current[t]); + } + this.current[t] = e; + }), + t + ); + })(), + ca = {}, + ua = ca; + function pa(t, e) { + ca[t] = e; + } + pa("\\@firstoftwo", function (t) { + return { tokens: t.consumeArgs(2)[0], numArgs: 0 }; + }), + pa("\\@secondoftwo", function (t) { + return { tokens: t.consumeArgs(2)[1], numArgs: 0 }; + }), + pa("\\@ifnextchar", function (t) { + var e = t.consumeArgs(3), + r = t.future(); + return 1 === e[0].length && e[0][0].text === r.text ? { tokens: e[1], numArgs: 0 } : { tokens: e[2], numArgs: 0 }; + }), + pa("\\@ifstar", "\\@ifnextchar *{\\@firstoftwo{#1}}"), + pa("\\TextOrMath", function (t) { + var e = t.consumeArgs(2); + return "text" === t.mode ? { tokens: e[0], numArgs: 0 } : { tokens: e[1], numArgs: 0 }; + }); + var da = { 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, a: 10, A: 10, b: 11, B: 11, c: 12, C: 12, d: 13, D: 13, e: 14, E: 14, f: 15, F: 15 }; + pa("\\char", function (t) { + var e, + r = t.popToken(), + a = ""; + if ("'" === r.text) (e = 8), (r = t.popToken()); + else if ('"' === r.text) (e = 16), (r = t.popToken()); + else if ("`" === r.text) + if ("\\" === (r = t.popToken()).text[0]) a = r.text.charCodeAt(1); + else { + if ("EOF" === r.text) throw new o("\\char` missing argument"); + a = r.text.charCodeAt(0); + } + else e = 10; + if (e) { + if (null == (a = da[r.text]) || a >= e) throw new o("Invalid base-" + e + " digit " + r.text); + for (var n; null != (n = da[t.future().text]) && n < e; ) (a *= e), (a += n), t.popToken(); + } + return "\\@char{" + a + "}"; + }); + var fa = function (t, e) { + var r = t.consumeArgs(1)[0]; + if (1 !== r.length) throw new o("\\gdef's first argument must be a macro name"); + var a = r[0].text, + n = 0; + for (r = t.consumeArgs(1)[0]; 1 === r.length && "#" === r[0].text; ) { + if (1 !== (r = t.consumeArgs(1)[0]).length) throw new o('Invalid argument number length "' + r.length + '"'); + if (!/^[1-9]$/.test(r[0].text)) throw new o('Invalid argument number "' + r[0].text + '"'); + if ((n++, parseInt(r[0].text) !== n)) throw new o('Argument number "' + r[0].text + '" out of order'); + r = t.consumeArgs(1)[0]; + } + return t.macros.set(a, { tokens: r, numArgs: n }, e), ""; + }; + pa("\\gdef", function (t) { + return fa(t, !0); + }), + pa("\\def", function (t) { + return fa(t, !1); + }), + pa("\\global", function (t) { + var e = t.consumeArgs(1)[0]; + if (1 !== e.length) throw new o("Invalid command after \\global"); + var r = e[0].text; + if ("\\def" === r) return fa(t, !0); + throw new o("Invalid command '" + r + "' after \\global"); + }); + var ga = function (t, e, r) { + var a = t.consumeArgs(1)[0]; + if (1 !== a.length) throw new o("\\newcommand's first argument must be a macro name"); + var n = a[0].text, + i = t.isDefined(n); + if (i && !e) throw new o("\\newcommand{" + n + "} attempting to redefine " + n + "; use \\renewcommand"); + if (!i && !r) throw new o("\\renewcommand{" + n + "} when command " + n + " does not yet exist; use \\newcommand"); + var s = 0; + if (1 === (a = t.consumeArgs(1)[0]).length && "[" === a[0].text) { + for (var h = "", l = t.expandNextToken(); "]" !== l.text && "EOF" !== l.text; ) (h += l.text), (l = t.expandNextToken()); + if (!h.match(/^\s*[0-9]+\s*$/)) throw new o("Invalid number of arguments: " + h); + (s = parseInt(h)), (a = t.consumeArgs(1)[0]); + } + return t.macros.set(n, { tokens: a, numArgs: s }), ""; + }; + pa("\\newcommand", function (t) { + return ga(t, !1, !0); + }), + pa("\\renewcommand", function (t) { + return ga(t, !0, !1); + }), + pa("\\providecommand", function (t) { + return ga(t, !0, !0); + }), + pa("\\bgroup", "{"), + pa("\\egroup", "}"), + pa("\\lq", "`"), + pa("\\rq", "'"), + pa("\\aa", "\\r a"), + pa("\\AA", "\\r A"), + pa("\\textcopyright", "\\html@mathml{\\textcircled{c}}{\\char`\xa9}"), + pa("\\copyright", "\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}"), + pa("\\textregistered", "\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`\xae}"), + pa("\u212c", "\\mathscr{B}"), + pa("\u2130", "\\mathscr{E}"), + pa("\u2131", "\\mathscr{F}"), + pa("\u210b", "\\mathscr{H}"), + pa("\u2110", "\\mathscr{I}"), + pa("\u2112", "\\mathscr{L}"), + pa("\u2133", "\\mathscr{M}"), + pa("\u211b", "\\mathscr{R}"), + pa("\u212d", "\\mathfrak{C}"), + pa("\u210c", "\\mathfrak{H}"), + pa("\u2128", "\\mathfrak{Z}"), + pa("\\Bbbk", "\\Bbb{k}"), + pa("\xb7", "\\cdotp"), + pa("\\llap", "\\mathllap{\\textrm{#1}}"), + pa("\\rlap", "\\mathrlap{\\textrm{#1}}"), + pa("\\clap", "\\mathclap{\\textrm{#1}}"), + pa("\\not", '\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}'), + pa("\\neq", "\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`\u2260}}"), + pa("\\ne", "\\neq"), + pa("\u2260", "\\neq"), + pa("\\notin", "\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`\u2209}}"), + pa("\u2209", "\\notin"), + pa("\u2258", "\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`\u2258}}"), + pa("\u2259", "\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`\u2258}}"), + pa("\u225a", "\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`\u225a}}"), + pa("\u225b", "\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`\u225b}}"), + pa("\u225d", "\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`\u225d}}"), + pa("\u225e", "\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`\u225e}}"), + pa("\u225f", "\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`\u225f}}"), + pa("\u27c2", "\\perp"), + pa("\u203c", "\\mathclose{!\\mkern-0.8mu!}"), + pa("\u220c", "\\notni"), + pa("\u231c", "\\ulcorner"), + pa("\u231d", "\\urcorner"), + pa("\u231e", "\\llcorner"), + pa("\u231f", "\\lrcorner"), + pa("\xa9", "\\copyright"), + pa("\xae", "\\textregistered"), + pa("\ufe0f", "\\textregistered"), + pa("\\vdots", "\\mathord{\\varvdots\\rule{0pt}{15pt}}"), + pa("\u22ee", "\\vdots"), + pa("\\varGamma", "\\mathit{\\Gamma}"), + pa("\\varDelta", "\\mathit{\\Delta}"), + pa("\\varTheta", "\\mathit{\\Theta}"), + pa("\\varLambda", "\\mathit{\\Lambda}"), + pa("\\varXi", "\\mathit{\\Xi}"), + pa("\\varPi", "\\mathit{\\Pi}"), + pa("\\varSigma", "\\mathit{\\Sigma}"), + pa("\\varUpsilon", "\\mathit{\\Upsilon}"), + pa("\\varPhi", "\\mathit{\\Phi}"), + pa("\\varPsi", "\\mathit{\\Psi}"), + pa("\\varOmega", "\\mathit{\\Omega}"), + pa("\\substack", "\\begin{subarray}{c}#1\\end{subarray}"), + pa("\\colon", "\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu"), + pa("\\boxed", "\\fbox{$\\displaystyle{#1}$}"), + pa("\\iff", "\\DOTSB\\;\\Longleftrightarrow\\;"), + pa("\\implies", "\\DOTSB\\;\\Longrightarrow\\;"), + pa("\\impliedby", "\\DOTSB\\;\\Longleftarrow\\;"); + var xa = { + ",": "\\dotsc", + "\\not": "\\dotsb", + "+": "\\dotsb", + "=": "\\dotsb", + "<": "\\dotsb", + ">": "\\dotsb", + "-": "\\dotsb", + "*": "\\dotsb", + ":": "\\dotsb", + "\\DOTSB": "\\dotsb", + "\\coprod": "\\dotsb", + "\\bigvee": "\\dotsb", + "\\bigwedge": "\\dotsb", + "\\biguplus": "\\dotsb", + "\\bigcap": "\\dotsb", + "\\bigcup": "\\dotsb", + "\\prod": "\\dotsb", + "\\sum": "\\dotsb", + "\\bigotimes": "\\dotsb", + "\\bigoplus": "\\dotsb", + "\\bigodot": "\\dotsb", + "\\bigsqcup": "\\dotsb", + "\\And": "\\dotsb", + "\\longrightarrow": "\\dotsb", + "\\Longrightarrow": "\\dotsb", + "\\longleftarrow": "\\dotsb", + "\\Longleftarrow": "\\dotsb", + "\\longleftrightarrow": "\\dotsb", + "\\Longleftrightarrow": "\\dotsb", + "\\mapsto": "\\dotsb", + "\\longmapsto": "\\dotsb", + "\\hookrightarrow": "\\dotsb", + "\\doteq": "\\dotsb", + "\\mathbin": "\\dotsb", + "\\mathrel": "\\dotsb", + "\\relbar": "\\dotsb", + "\\Relbar": "\\dotsb", + "\\xrightarrow": "\\dotsb", + "\\xleftarrow": "\\dotsb", + "\\DOTSI": "\\dotsi", + "\\int": "\\dotsi", + "\\oint": "\\dotsi", + "\\iint": "\\dotsi", + "\\iiint": "\\dotsi", + "\\iiiint": "\\dotsi", + "\\idotsint": "\\dotsi", + "\\DOTSX": "\\dotsx", + }; + pa("\\dots", function (t) { + var e = "\\dotso", + r = t.expandAfterFuture().text; + return r in xa ? (e = xa[r]) : "\\not" === r.substr(0, 4) ? (e = "\\dotsb") : r in j.math && c.contains(["bin", "rel"], j.math[r].group) && (e = "\\dotsb"), e; + }); + var va = { + ")": !0, + "]": !0, + "\\rbrack": !0, + "\\}": !0, + "\\rbrace": !0, + "\\rangle": !0, + "\\rceil": !0, + "\\rfloor": !0, + "\\rgroup": !0, + "\\rmoustache": !0, + "\\right": !0, + "\\bigr": !0, + "\\biggr": !0, + "\\Bigr": !0, + "\\Biggr": !0, + $: !0, + ";": !0, + ".": !0, + ",": !0, + }; + pa("\\dotso", function (t) { + return t.future().text in va ? "\\ldots\\," : "\\ldots"; + }), + pa("\\dotsc", function (t) { + var e = t.future().text; + return e in va && "," !== e ? "\\ldots\\," : "\\ldots"; + }), + pa("\\cdots", function (t) { + return t.future().text in va ? "\\@cdots\\," : "\\@cdots"; + }), + pa("\\dotsb", "\\cdots"), + pa("\\dotsm", "\\cdots"), + pa("\\dotsi", "\\!\\cdots"), + pa("\\dotsx", "\\ldots\\,"), + pa("\\DOTSI", "\\relax"), + pa("\\DOTSB", "\\relax"), + pa("\\DOTSX", "\\relax"), + pa("\\tmspace", "\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax"), + pa("\\,", "\\tmspace+{3mu}{.1667em}"), + pa("\\thinspace", "\\,"), + pa("\\>", "\\mskip{4mu}"), + pa("\\:", "\\tmspace+{4mu}{.2222em}"), + pa("\\medspace", "\\:"), + pa("\\;", "\\tmspace+{5mu}{.2777em}"), + pa("\\thickspace", "\\;"), + pa("\\!", "\\tmspace-{3mu}{.1667em}"), + pa("\\negthinspace", "\\!"), + pa("\\negmedspace", "\\tmspace-{4mu}{.2222em}"), + pa("\\negthickspace", "\\tmspace-{5mu}{.277em}"), + pa("\\enspace", "\\kern.5em "), + pa("\\enskip", "\\hskip.5em\\relax"), + pa("\\quad", "\\hskip1em\\relax"), + pa("\\qquad", "\\hskip2em\\relax"), + pa("\\tag", "\\@ifstar\\tag@literal\\tag@paren"), + pa("\\tag@paren", "\\tag@literal{({#1})}"), + pa("\\tag@literal", function (t) { + if (t.macros.get("\\df@tag")) throw new o("Multiple \\tag"); + return "\\gdef\\df@tag{\\text{#1}}"; + }), + pa("\\bmod", "\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}"), + pa("\\pod", "\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)"), + pa("\\pmod", "\\pod{{\\rm mod}\\mkern6mu#1}"), + pa("\\mod", "\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1"), + pa("\\pmb", "\\html@mathml{\\@binrel{#1}{\\mathrlap{#1}\\kern0.5px#1}}{\\mathbf{#1}}"), + pa("\\\\", "\\newline"), + pa("\\TeX", "\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}"); + var ba = F["Main-Regular"]["T".charCodeAt(0)][1] - 0.7 * F["Main-Regular"]["A".charCodeAt(0)][1] + "em"; + pa("\\LaTeX", "\\textrm{\\html@mathml{L\\kern-.36em\\raisebox{" + ba + "}{\\scriptstyle A}\\kern-.15em\\TeX}{LaTeX}}"), + pa("\\KaTeX", "\\textrm{\\html@mathml{K\\kern-.17em\\raisebox{" + ba + "}{\\scriptstyle A}\\kern-.15em\\TeX}{KaTeX}}"), + pa("\\hspace", "\\@ifstar\\@hspacer\\@hspace"), + pa("\\@hspace", "\\hskip #1\\relax"), + pa("\\@hspacer", "\\rule{0pt}{0pt}\\hskip #1\\relax"), + pa("\\ordinarycolon", ":"), + pa("\\vcentcolon", "\\mathrel{\\mathop\\ordinarycolon}"), + pa("\\dblcolon", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}'), + pa("\\coloneqq", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}'), + pa("\\Coloneqq", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}'), + pa("\\coloneq", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}'), + pa("\\Coloneq", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}'), + pa("\\eqqcolon", '\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}'), + pa("\\Eqqcolon", '\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}'), + pa("\\eqcolon", '\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}'), + pa("\\Eqcolon", '\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}'), + pa("\\colonapprox", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}'), + pa("\\Colonapprox", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}'), + pa("\\colonsim", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}'), + pa("\\Colonsim", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}'), + pa("\u2237", "\\dblcolon"), + pa("\u2239", "\\eqcolon"), + pa("\u2254", "\\coloneqq"), + pa("\u2255", "\\eqqcolon"), + pa("\u2a74", "\\Coloneqq"), + pa("\\ratio", "\\vcentcolon"), + pa("\\coloncolon", "\\dblcolon"), + pa("\\colonequals", "\\coloneqq"), + pa("\\coloncolonequals", "\\Coloneqq"), + pa("\\equalscolon", "\\eqqcolon"), + pa("\\equalscoloncolon", "\\Eqqcolon"), + pa("\\colonminus", "\\coloneq"), + pa("\\coloncolonminus", "\\Coloneq"), + pa("\\minuscolon", "\\eqcolon"), + pa("\\minuscoloncolon", "\\Eqcolon"), + pa("\\coloncolonapprox", "\\Colonapprox"), + pa("\\coloncolonsim", "\\Colonsim"), + pa("\\simcolon", "\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}"), + pa("\\simcoloncolon", "\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}"), + pa("\\approxcolon", "\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}"), + pa("\\approxcoloncolon", "\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}"), + pa("\\notni", "\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220c}}"), + pa("\\limsup", "\\DOTSB\\operatorname*{lim\\,sup}"), + pa("\\liminf", "\\DOTSB\\operatorname*{lim\\,inf}"), + pa("\\gvertneqq", "\\html@mathml{\\@gvertneqq}{\u2269}"), + pa("\\lvertneqq", "\\html@mathml{\\@lvertneqq}{\u2268}"), + pa("\\ngeqq", "\\html@mathml{\\@ngeqq}{\u2271}"), + pa("\\ngeqslant", "\\html@mathml{\\@ngeqslant}{\u2271}"), + pa("\\nleqq", "\\html@mathml{\\@nleqq}{\u2270}"), + pa("\\nleqslant", "\\html@mathml{\\@nleqslant}{\u2270}"), + pa("\\nshortmid", "\\html@mathml{\\@nshortmid}{\u2224}"), + pa("\\nshortparallel", "\\html@mathml{\\@nshortparallel}{\u2226}"), + pa("\\nsubseteqq", "\\html@mathml{\\@nsubseteqq}{\u2288}"), + pa("\\nsupseteqq", "\\html@mathml{\\@nsupseteqq}{\u2289}"), + pa("\\varsubsetneq", "\\html@mathml{\\@varsubsetneq}{\u228a}"), + pa("\\varsubsetneqq", "\\html@mathml{\\@varsubsetneqq}{\u2acb}"), + pa("\\varsupsetneq", "\\html@mathml{\\@varsupsetneq}{\u228b}"), + pa("\\varsupsetneqq", "\\html@mathml{\\@varsupsetneqq}{\u2acc}"), + pa("\\llbracket", "\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27e6}}"), + pa("\\rrbracket", "\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27e7}}"), + pa("\u27e6", "\\llbracket"), + pa("\u27e7", "\\rrbracket"), + pa("\\lBrace", "\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}"), + pa("\\rBrace", "\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}"), + pa("\u2983", "\\lBrace"), + pa("\u2984", "\\rBrace"), + pa("\\darr", "\\downarrow"), + pa("\\dArr", "\\Downarrow"), + pa("\\Darr", "\\Downarrow"), + pa("\\lang", "\\langle"), + pa("\\rang", "\\rangle"), + pa("\\uarr", "\\uparrow"), + pa("\\uArr", "\\Uparrow"), + pa("\\Uarr", "\\Uparrow"), + pa("\\N", "\\mathbb{N}"), + pa("\\R", "\\mathbb{R}"), + pa("\\Z", "\\mathbb{Z}"), + pa("\\alef", "\\aleph"), + pa("\\alefsym", "\\aleph"), + pa("\\Alpha", "\\mathrm{A}"), + pa("\\Beta", "\\mathrm{B}"), + pa("\\bull", "\\bullet"), + pa("\\Chi", "\\mathrm{X}"), + pa("\\clubs", "\\clubsuit"), + pa("\\cnums", "\\mathbb{C}"), + pa("\\Complex", "\\mathbb{C}"), + pa("\\Dagger", "\\ddagger"), + pa("\\diamonds", "\\diamondsuit"), + pa("\\empty", "\\emptyset"), + pa("\\Epsilon", "\\mathrm{E}"), + pa("\\Eta", "\\mathrm{H}"), + pa("\\exist", "\\exists"), + pa("\\harr", "\\leftrightarrow"), + pa("\\hArr", "\\Leftrightarrow"), + pa("\\Harr", "\\Leftrightarrow"), + pa("\\hearts", "\\heartsuit"), + pa("\\image", "\\Im"), + pa("\\infin", "\\infty"), + pa("\\Iota", "\\mathrm{I}"), + pa("\\isin", "\\in"), + pa("\\Kappa", "\\mathrm{K}"), + pa("\\larr", "\\leftarrow"), + pa("\\lArr", "\\Leftarrow"), + pa("\\Larr", "\\Leftarrow"), + pa("\\lrarr", "\\leftrightarrow"), + pa("\\lrArr", "\\Leftrightarrow"), + pa("\\Lrarr", "\\Leftrightarrow"), + pa("\\Mu", "\\mathrm{M}"), + pa("\\natnums", "\\mathbb{N}"), + pa("\\Nu", "\\mathrm{N}"), + pa("\\Omicron", "\\mathrm{O}"), + pa("\\plusmn", "\\pm"), + pa("\\rarr", "\\rightarrow"), + pa("\\rArr", "\\Rightarrow"), + pa("\\Rarr", "\\Rightarrow"), + pa("\\real", "\\Re"), + pa("\\reals", "\\mathbb{R}"), + pa("\\Reals", "\\mathbb{R}"), + pa("\\Rho", "\\mathrm{P}"), + pa("\\sdot", "\\cdot"), + pa("\\sect", "\\S"), + pa("\\spades", "\\spadesuit"), + pa("\\sub", "\\subset"), + pa("\\sube", "\\subseteq"), + pa("\\supe", "\\supseteq"), + pa("\\Tau", "\\mathrm{T}"), + pa("\\thetasym", "\\vartheta"), + pa("\\weierp", "\\wp"), + pa("\\Zeta", "\\mathrm{Z}"), + pa("\\argmin", "\\DOTSB\\operatorname*{arg\\,min}"), + pa("\\argmax", "\\DOTSB\\operatorname*{arg\\,max}"), + pa("\\plim", "\\DOTSB\\mathop{\\operatorname{plim}}\\limits"), + pa("\\blue", "\\textcolor{##6495ed}{#1}"), + pa("\\orange", "\\textcolor{##ffa500}{#1}"), + pa("\\pink", "\\textcolor{##ff00af}{#1}"), + pa("\\red", "\\textcolor{##df0030}{#1}"), + pa("\\green", "\\textcolor{##28ae7b}{#1}"), + pa("\\gray", "\\textcolor{gray}{#1}"), + pa("\\purple", "\\textcolor{##9d38bd}{#1}"), + pa("\\blueA", "\\textcolor{##ccfaff}{#1}"), + pa("\\blueB", "\\textcolor{##80f6ff}{#1}"), + pa("\\blueC", "\\textcolor{##63d9ea}{#1}"), + pa("\\blueD", "\\textcolor{##11accd}{#1}"), + pa("\\blueE", "\\textcolor{##0c7f99}{#1}"), + pa("\\tealA", "\\textcolor{##94fff5}{#1}"), + pa("\\tealB", "\\textcolor{##26edd5}{#1}"), + pa("\\tealC", "\\textcolor{##01d1c1}{#1}"), + pa("\\tealD", "\\textcolor{##01a995}{#1}"), + pa("\\tealE", "\\textcolor{##208170}{#1}"), + pa("\\greenA", "\\textcolor{##b6ffb0}{#1}"), + pa("\\greenB", "\\textcolor{##8af281}{#1}"), + pa("\\greenC", "\\textcolor{##74cf70}{#1}"), + pa("\\greenD", "\\textcolor{##1fab54}{#1}"), + pa("\\greenE", "\\textcolor{##0d923f}{#1}"), + pa("\\goldA", "\\textcolor{##ffd0a9}{#1}"), + pa("\\goldB", "\\textcolor{##ffbb71}{#1}"), + pa("\\goldC", "\\textcolor{##ff9c39}{#1}"), + pa("\\goldD", "\\textcolor{##e07d10}{#1}"), + pa("\\goldE", "\\textcolor{##a75a05}{#1}"), + pa("\\redA", "\\textcolor{##fca9a9}{#1}"), + pa("\\redB", "\\textcolor{##ff8482}{#1}"), + pa("\\redC", "\\textcolor{##f9685d}{#1}"), + pa("\\redD", "\\textcolor{##e84d39}{#1}"), + pa("\\redE", "\\textcolor{##bc2612}{#1}"), + pa("\\maroonA", "\\textcolor{##ffbde0}{#1}"), + pa("\\maroonB", "\\textcolor{##ff92c6}{#1}"), + pa("\\maroonC", "\\textcolor{##ed5fa6}{#1}"), + pa("\\maroonD", "\\textcolor{##ca337c}{#1}"), + pa("\\maroonE", "\\textcolor{##9e034e}{#1}"), + pa("\\purpleA", "\\textcolor{##ddd7ff}{#1}"), + pa("\\purpleB", "\\textcolor{##c6b9fc}{#1}"), + pa("\\purpleC", "\\textcolor{##aa87ff}{#1}"), + pa("\\purpleD", "\\textcolor{##7854ab}{#1}"), + pa("\\purpleE", "\\textcolor{##543b78}{#1}"), + pa("\\mintA", "\\textcolor{##f5f9e8}{#1}"), + pa("\\mintB", "\\textcolor{##edf2df}{#1}"), + pa("\\mintC", "\\textcolor{##e0e5cc}{#1}"), + pa("\\grayA", "\\textcolor{##f6f7f7}{#1}"), + pa("\\grayB", "\\textcolor{##f0f1f2}{#1}"), + pa("\\grayC", "\\textcolor{##e3e5e6}{#1}"), + pa("\\grayD", "\\textcolor{##d6d8da}{#1}"), + pa("\\grayE", "\\textcolor{##babec2}{#1}"), + pa("\\grayF", "\\textcolor{##888d93}{#1}"), + pa("\\grayG", "\\textcolor{##626569}{#1}"), + pa("\\grayH", "\\textcolor{##3b3e40}{#1}"), + pa("\\grayI", "\\textcolor{##21242c}{#1}"), + pa("\\kaBlue", "\\textcolor{##314453}{#1}"), + pa("\\kaGreen", "\\textcolor{##71B307}{#1}"); + var ya = { "\\relax": !0, "^": !0, _: !0, "\\limits": !0, "\\nolimits": !0 }, + wa = (function () { + function t(t, e, r) { + (this.settings = void 0), + (this.expansionCount = void 0), + (this.lexer = void 0), + (this.macros = void 0), + (this.stack = void 0), + (this.mode = void 0), + (this.settings = e), + (this.expansionCount = 0), + this.feed(t), + (this.macros = new ma(ua, e.macros)), + (this.mode = r), + (this.stack = []); + } + var e = t.prototype; + return ( + (e.feed = function (t) { + this.lexer = new la(t, this.settings); + }), + (e.switchMode = function (t) { + this.mode = t; + }), + (e.beginGroup = function () { + this.macros.beginGroup(); + }), + (e.endGroup = function () { + this.macros.endGroup(); + }), + (e.future = function () { + return 0 === this.stack.length && this.pushToken(this.lexer.lex()), this.stack[this.stack.length - 1]; + }), + (e.popToken = function () { + return this.future(), this.stack.pop(); + }), + (e.pushToken = function (t) { + this.stack.push(t); + }), + (e.pushTokens = function (t) { + var e; + (e = this.stack).push.apply(e, t); + }), + (e.consumeSpaces = function () { + for (;;) { + if (" " !== this.future().text) break; + this.stack.pop(); + } + }), + (e.consumeArgs = function (t) { + for (var e = [], r = 0; r < t; ++r) { + this.consumeSpaces(); + var a = this.popToken(); + if ("{" === a.text) { + for (var n = [], i = 1; 0 !== i; ) { + var s = this.popToken(); + if ((n.push(s), "{" === s.text)) ++i; + else if ("}" === s.text) --i; + else if ("EOF" === s.text) throw new o("End of input in macro argument", a); + } + n.pop(), n.reverse(), (e[r] = n); + } else { + if ("EOF" === a.text) throw new o("End of input expecting macro argument"); + e[r] = [a]; + } + } + return e; + }), + (e.expandOnce = function () { + var t = this.popToken(), + e = t.text, + r = this._getExpansion(e); + if (null == r) return this.pushToken(t), t; + if ((this.expansionCount++, this.expansionCount > this.settings.maxExpand)) throw new o("Too many expansions: infinite loop or need to increase maxExpand setting"); + var a = r.tokens; + if (r.numArgs) + for (var n = this.consumeArgs(r.numArgs), i = (a = a.slice()).length - 1; i >= 0; --i) { + var s = a[i]; + if ("#" === s.text) { + if (0 === i) throw new o("Incomplete placeholder at end of macro body", s); + if ("#" === (s = a[--i]).text) a.splice(i + 1, 1); + else { + if (!/^[1-9]$/.test(s.text)) throw new o("Not a valid argument number", s); + var h; + (h = a).splice.apply(h, [i, 2].concat(n[+s.text - 1])); + } + } + } + return this.pushTokens(a), a; + }), + (e.expandAfterFuture = function () { + return this.expandOnce(), this.future(); + }), + (e.expandNextToken = function () { + for (;;) { + var t = this.expandOnce(); + if (t instanceof n) { + if ("\\relax" !== t.text) return this.stack.pop(); + this.stack.pop(); + } + } + throw new Error(); + }), + (e.expandMacro = function (t) { + if (this.macros.get(t)) { + var e = [], + r = this.stack.length; + for (this.pushToken(new n(t)); this.stack.length > r; ) { + this.expandOnce() instanceof n && e.push(this.stack.pop()); + } + return e; + } + }), + (e.expandMacroAsText = function (t) { + var e = this.expandMacro(t); + return e + ? e + .map(function (t) { + return t.text; + }) + .join("") + : e; + }), + (e._getExpansion = function (t) { + var e = this.macros.get(t); + if (null == e) return e; + var r = "function" == typeof e ? e(this) : e; + if ("string" == typeof r) { + var a = 0; + if (-1 !== r.indexOf("#")) for (var n = r.replace(/##/g, ""); -1 !== n.indexOf("#" + (a + 1)); ) ++a; + for (var i = new la(r, this.settings), o = [], s = i.lex(); "EOF" !== s.text; ) o.push(s), (s = i.lex()); + return o.reverse(), { tokens: o, numArgs: a }; + } + return r; + }), + (e.isDefined = function (t) { + return this.macros.has(t) || ia.hasOwnProperty(t) || j.math.hasOwnProperty(t) || j.text.hasOwnProperty(t) || ya.hasOwnProperty(t); + }), + t + ); + })(), + ka = { + "\u0301": { text: "\\'", math: "\\acute" }, + "\u0300": { text: "\\`", math: "\\grave" }, + "\u0308": { text: '\\"', math: "\\ddot" }, + "\u0303": { text: "\\~", math: "\\tilde" }, + "\u0304": { text: "\\=", math: "\\bar" }, + "\u0306": { text: "\\u", math: "\\breve" }, + "\u030c": { text: "\\v", math: "\\check" }, + "\u0302": { text: "\\^", math: "\\hat" }, + "\u0307": { text: "\\.", math: "\\dot" }, + "\u030a": { text: "\\r", math: "\\mathring" }, + "\u030b": { text: "\\H" }, + }, + Sa = { + á: "a\u0301", + à: "a\u0300", + ä: "a\u0308", + ǟ: "a\u0308\u0304", + ã: "a\u0303", + ā: "a\u0304", + ă: "a\u0306", + ắ: "a\u0306\u0301", + ằ: "a\u0306\u0300", + ẵ: "a\u0306\u0303", + ǎ: "a\u030c", + â: "a\u0302", + ấ: "a\u0302\u0301", + ầ: "a\u0302\u0300", + ẫ: "a\u0302\u0303", + ȧ: "a\u0307", + ǡ: "a\u0307\u0304", + å: "a\u030a", + ǻ: "a\u030a\u0301", + ḃ: "b\u0307", + ć: "c\u0301", + č: "c\u030c", + ĉ: "c\u0302", + ċ: "c\u0307", + ď: "d\u030c", + ḋ: "d\u0307", + é: "e\u0301", + è: "e\u0300", + ë: "e\u0308", + ẽ: "e\u0303", + ē: "e\u0304", + ḗ: "e\u0304\u0301", + ḕ: "e\u0304\u0300", + ĕ: "e\u0306", + ě: "e\u030c", + ê: "e\u0302", + ế: "e\u0302\u0301", + ề: "e\u0302\u0300", + ễ: "e\u0302\u0303", + ė: "e\u0307", + ḟ: "f\u0307", + ǵ: "g\u0301", + ḡ: "g\u0304", + ğ: "g\u0306", + ǧ: "g\u030c", + ĝ: "g\u0302", + ġ: "g\u0307", + ḧ: "h\u0308", + ȟ: "h\u030c", + ĥ: "h\u0302", + ḣ: "h\u0307", + í: "i\u0301", + ì: "i\u0300", + ï: "i\u0308", + ḯ: "i\u0308\u0301", + ĩ: "i\u0303", + ī: "i\u0304", + ĭ: "i\u0306", + ǐ: "i\u030c", + î: "i\u0302", + ǰ: "j\u030c", + ĵ: "j\u0302", + ḱ: "k\u0301", + ǩ: "k\u030c", + ĺ: "l\u0301", + ľ: "l\u030c", + ḿ: "m\u0301", + ṁ: "m\u0307", + ń: "n\u0301", + ǹ: "n\u0300", + ñ: "n\u0303", + ň: "n\u030c", + ṅ: "n\u0307", + ó: "o\u0301", + ò: "o\u0300", + ö: "o\u0308", + ȫ: "o\u0308\u0304", + õ: "o\u0303", + ṍ: "o\u0303\u0301", + ṏ: "o\u0303\u0308", + ȭ: "o\u0303\u0304", + ō: "o\u0304", + ṓ: "o\u0304\u0301", + ṑ: "o\u0304\u0300", + ŏ: "o\u0306", + ǒ: "o\u030c", + ô: "o\u0302", + ố: "o\u0302\u0301", + ồ: "o\u0302\u0300", + ỗ: "o\u0302\u0303", + ȯ: "o\u0307", + ȱ: "o\u0307\u0304", + ő: "o\u030b", + ṕ: "p\u0301", + ṗ: "p\u0307", + ŕ: "r\u0301", + ř: "r\u030c", + ṙ: "r\u0307", + ś: "s\u0301", + ṥ: "s\u0301\u0307", + š: "s\u030c", + ṧ: "s\u030c\u0307", + ŝ: "s\u0302", + ṡ: "s\u0307", + ẗ: "t\u0308", + ť: "t\u030c", + ṫ: "t\u0307", + ú: "u\u0301", + ù: "u\u0300", + ü: "u\u0308", + ǘ: "u\u0308\u0301", + ǜ: "u\u0308\u0300", + ǖ: "u\u0308\u0304", + ǚ: "u\u0308\u030c", + ũ: "u\u0303", + ṹ: "u\u0303\u0301", + ū: "u\u0304", + ṻ: "u\u0304\u0308", + ŭ: "u\u0306", + ǔ: "u\u030c", + û: "u\u0302", + ů: "u\u030a", + ű: "u\u030b", + ṽ: "v\u0303", + ẃ: "w\u0301", + ẁ: "w\u0300", + ẅ: "w\u0308", + ŵ: "w\u0302", + ẇ: "w\u0307", + ẘ: "w\u030a", + ẍ: "x\u0308", + ẋ: "x\u0307", + ý: "y\u0301", + ỳ: "y\u0300", + ÿ: "y\u0308", + ỹ: "y\u0303", + ȳ: "y\u0304", + ŷ: "y\u0302", + ẏ: "y\u0307", + ẙ: "y\u030a", + ź: "z\u0301", + ž: "z\u030c", + ẑ: "z\u0302", + ż: "z\u0307", + Á: "A\u0301", + À: "A\u0300", + Ä: "A\u0308", + Ǟ: "A\u0308\u0304", + Ã: "A\u0303", + Ā: "A\u0304", + Ă: "A\u0306", + Ắ: "A\u0306\u0301", + Ằ: "A\u0306\u0300", + Ẵ: "A\u0306\u0303", + Ǎ: "A\u030c", + Â: "A\u0302", + Ấ: "A\u0302\u0301", + Ầ: "A\u0302\u0300", + Ẫ: "A\u0302\u0303", + Ȧ: "A\u0307", + Ǡ: "A\u0307\u0304", + Å: "A\u030a", + Ǻ: "A\u030a\u0301", + Ḃ: "B\u0307", + Ć: "C\u0301", + Č: "C\u030c", + Ĉ: "C\u0302", + Ċ: "C\u0307", + Ď: "D\u030c", + Ḋ: "D\u0307", + É: "E\u0301", + È: "E\u0300", + Ë: "E\u0308", + Ẽ: "E\u0303", + Ē: "E\u0304", + Ḗ: "E\u0304\u0301", + Ḕ: "E\u0304\u0300", + Ĕ: "E\u0306", + Ě: "E\u030c", + Ê: "E\u0302", + Ế: "E\u0302\u0301", + Ề: "E\u0302\u0300", + Ễ: "E\u0302\u0303", + Ė: "E\u0307", + Ḟ: "F\u0307", + Ǵ: "G\u0301", + Ḡ: "G\u0304", + Ğ: "G\u0306", + Ǧ: "G\u030c", + Ĝ: "G\u0302", + Ġ: "G\u0307", + Ḧ: "H\u0308", + Ȟ: "H\u030c", + Ĥ: "H\u0302", + Ḣ: "H\u0307", + Í: "I\u0301", + Ì: "I\u0300", + Ï: "I\u0308", + Ḯ: "I\u0308\u0301", + Ĩ: "I\u0303", + Ī: "I\u0304", + Ĭ: "I\u0306", + Ǐ: "I\u030c", + Î: "I\u0302", + İ: "I\u0307", + Ĵ: "J\u0302", + Ḱ: "K\u0301", + Ǩ: "K\u030c", + Ĺ: "L\u0301", + Ľ: "L\u030c", + Ḿ: "M\u0301", + Ṁ: "M\u0307", + Ń: "N\u0301", + Ǹ: "N\u0300", + Ñ: "N\u0303", + Ň: "N\u030c", + Ṅ: "N\u0307", + Ó: "O\u0301", + Ò: "O\u0300", + Ö: "O\u0308", + Ȫ: "O\u0308\u0304", + Õ: "O\u0303", + Ṍ: "O\u0303\u0301", + Ṏ: "O\u0303\u0308", + Ȭ: "O\u0303\u0304", + Ō: "O\u0304", + Ṓ: "O\u0304\u0301", + Ṑ: "O\u0304\u0300", + Ŏ: "O\u0306", + Ǒ: "O\u030c", + Ô: "O\u0302", + Ố: "O\u0302\u0301", + Ồ: "O\u0302\u0300", + Ỗ: "O\u0302\u0303", + Ȯ: "O\u0307", + Ȱ: "O\u0307\u0304", + Ő: "O\u030b", + Ṕ: "P\u0301", + Ṗ: "P\u0307", + Ŕ: "R\u0301", + Ř: "R\u030c", + Ṙ: "R\u0307", + Ś: "S\u0301", + Ṥ: "S\u0301\u0307", + Š: "S\u030c", + Ṧ: "S\u030c\u0307", + Ŝ: "S\u0302", + Ṡ: "S\u0307", + Ť: "T\u030c", + Ṫ: "T\u0307", + Ú: "U\u0301", + Ù: "U\u0300", + Ü: "U\u0308", + Ǘ: "U\u0308\u0301", + Ǜ: "U\u0308\u0300", + Ǖ: "U\u0308\u0304", + Ǚ: "U\u0308\u030c", + Ũ: "U\u0303", + Ṹ: "U\u0303\u0301", + Ū: "U\u0304", + Ṻ: "U\u0304\u0308", + Ŭ: "U\u0306", + Ǔ: "U\u030c", + Û: "U\u0302", + Ů: "U\u030a", + Ű: "U\u030b", + Ṽ: "V\u0303", + Ẃ: "W\u0301", + Ẁ: "W\u0300", + Ẅ: "W\u0308", + Ŵ: "W\u0302", + Ẇ: "W\u0307", + Ẍ: "X\u0308", + Ẋ: "X\u0307", + Ý: "Y\u0301", + Ỳ: "Y\u0300", + Ÿ: "Y\u0308", + Ỹ: "Y\u0303", + Ȳ: "Y\u0304", + Ŷ: "Y\u0302", + Ẏ: "Y\u0307", + Ź: "Z\u0301", + Ž: "Z\u030c", + Ẑ: "Z\u0302", + Ż: "Z\u0307", + ά: "\u03b1\u0301", + ὰ: "\u03b1\u0300", + ᾱ: "\u03b1\u0304", + ᾰ: "\u03b1\u0306", + έ: "\u03b5\u0301", + ὲ: "\u03b5\u0300", + ή: "\u03b7\u0301", + ὴ: "\u03b7\u0300", + ί: "\u03b9\u0301", + ὶ: "\u03b9\u0300", + ϊ: "\u03b9\u0308", + ΐ: "\u03b9\u0308\u0301", + ῒ: "\u03b9\u0308\u0300", + ῑ: "\u03b9\u0304", + ῐ: "\u03b9\u0306", + ό: "\u03bf\u0301", + ὸ: "\u03bf\u0300", + ύ: "\u03c5\u0301", + ὺ: "\u03c5\u0300", + ϋ: "\u03c5\u0308", + ΰ: "\u03c5\u0308\u0301", + ῢ: "\u03c5\u0308\u0300", + ῡ: "\u03c5\u0304", + ῠ: "\u03c5\u0306", + ώ: "\u03c9\u0301", + ὼ: "\u03c9\u0300", + Ύ: "\u03a5\u0301", + Ὺ: "\u03a5\u0300", + Ϋ: "\u03a5\u0308", + Ῡ: "\u03a5\u0304", + Ῠ: "\u03a5\u0306", + Ώ: "\u03a9\u0301", + Ὼ: "\u03a9\u0300", + }, + Ma = (function () { + function t(t, e) { + (this.mode = void 0), + (this.gullet = void 0), + (this.settings = void 0), + (this.leftrightDepth = void 0), + (this.nextToken = void 0), + (this.mode = "math"), + (this.gullet = new wa(t, e, this.mode)), + (this.settings = e), + (this.leftrightDepth = 0); + } + var e = t.prototype; + return ( + (e.expect = function (t, e) { + if ((void 0 === e && (e = !0), this.fetch().text !== t)) throw new o("Expected '" + t + "', got '" + this.fetch().text + "'", this.fetch()); + e && this.consume(); + }), + (e.consume = function () { + this.nextToken = null; + }), + (e.fetch = function () { + return null == this.nextToken && (this.nextToken = this.gullet.expandNextToken()), this.nextToken; + }), + (e.switchMode = function (t) { + (this.mode = t), this.gullet.switchMode(t); + }), + (e.parse = function () { + this.gullet.beginGroup(), this.settings.colorIsTextColor && this.gullet.macros.set("\\color", "\\textcolor"); + var t = this.parseExpression(!1); + return this.expect("EOF"), this.gullet.endGroup(), t; + }), + (e.parseExpression = function (e, r) { + for (var a = []; ; ) { + "math" === this.mode && this.consumeSpaces(); + var n = this.fetch(); + if (-1 !== t.endOfExpression.indexOf(n.text)) break; + if (r && n.text === r) break; + if (e && ia[n.text] && ia[n.text].infix) break; + var i = this.parseAtom(r); + if (!i) break; + a.push(i); + } + return "text" === this.mode && this.formLigatures(a), this.handleInfixNodes(a); + }), + (e.handleInfixNodes = function (t) { + for (var e, r = -1, a = 0; a < t.length; a++) { + var n = Vt(t[a], "infix"); + if (n) { + if (-1 !== r) throw new o("only one infix operator per group", n.token); + (r = a), (e = n.replaceWith); + } + } + if (-1 !== r && e) { + var i, + s, + h = t.slice(0, r), + l = t.slice(r + 1); + return ( + (i = 1 === h.length && "ordgroup" === h[0].type ? h[0] : { type: "ordgroup", mode: this.mode, body: h }), + (s = 1 === l.length && "ordgroup" === l[0].type ? l[0] : { type: "ordgroup", mode: this.mode, body: l }), + ["\\\\abovefrac" === e ? this.callFunction(e, [i, t[r], s], []) : this.callFunction(e, [i, s], [])] + ); + } + return t; + }), + (e.handleSupSubscript = function (e) { + var r = this.fetch(), + a = r.text; + this.consume(); + var n = this.parseGroup(e, !1, t.SUPSUB_GREEDINESS, void 0, void 0, !0); + if (!n) throw new o("Expected group after '" + a + "'", r); + return n; + }), + (e.formatUnsupportedCmd = function (t) { + for (var e = [], r = 0; r < t.length; r++) e.push({ type: "textord", mode: "text", text: t[r] }); + var a = { type: "text", mode: this.mode, body: e }; + return { type: "color", mode: this.mode, color: this.settings.errorColor, body: [a] }; + }), + (e.parseAtom = function (t) { + var e, + r, + a = this.parseGroup("atom", !1, null, t); + if ("text" === this.mode) return a; + for (;;) { + this.consumeSpaces(); + var n = this.fetch(); + if ("\\limits" === n.text || "\\nolimits" === n.text) { + var i = Vt(a, "op"); + if (i) { + var s = "\\limits" === n.text; + (i.limits = s), (i.alwaysHandleSupSub = !0); + } else { + if (!(i = Vt(a, "operatorname")) || !i.alwaysHandleSupSub) throw new o("Limit controls must follow a math operator", n); + var h = "\\limits" === n.text; + i.limits = h; + } + this.consume(); + } else if ("^" === n.text) { + if (e) throw new o("Double superscript", n); + e = this.handleSupSubscript("superscript"); + } else if ("_" === n.text) { + if (r) throw new o("Double subscript", n); + r = this.handleSupSubscript("subscript"); + } else { + if ("'" !== n.text) break; + if (e) throw new o("Double superscript", n); + var l = { type: "textord", mode: this.mode, text: "\\prime" }, + m = [l]; + for (this.consume(); "'" === this.fetch().text; ) m.push(l), this.consume(); + "^" === this.fetch().text && m.push(this.handleSupSubscript("superscript")), (e = { type: "ordgroup", mode: this.mode, body: m }); + } + } + return e || r ? { type: "supsub", mode: this.mode, base: a, sup: e, sub: r } : a; + }), + (e.parseFunction = function (t, e, r) { + var a = this.fetch(), + n = a.text, + i = ia[n]; + if (!i) return null; + if ((this.consume(), null != r && i.greediness <= r)) throw new o("Got function '" + n + "' with no arguments" + (e ? " as " + e : ""), a); + if ("text" === this.mode && !i.allowedInText) throw new o("Can't use function '" + n + "' in text mode", a); + if ("math" === this.mode && !1 === i.allowedInMath) throw new o("Can't use function '" + n + "' in math mode", a); + var s = this.parseArguments(n, i), + h = s.args, + l = s.optArgs; + return this.callFunction(n, h, l, a, t); + }), + (e.callFunction = function (t, e, r, a, n) { + var i = { funcName: t, parser: this, token: a, breakOnTokenText: n }, + s = ia[t]; + if (s && s.handler) return s.handler(i, e, r); + throw new o("No function handler for " + t); + }), + (e.parseArguments = function (t, e) { + var r = e.numArgs + e.numOptionalArgs; + if (0 === r) return { args: [], optArgs: [] }; + for (var a = e.greediness, n = [], i = [], s = 0; s < r; s++) { + var h = e.argTypes && e.argTypes[s], + l = s < e.numOptionalArgs, + m = (s > 0 && !l) || (0 === s && !l && "math" === this.mode), + c = this.parseGroupOfType("argument to '" + t + "'", h, l, a, m); + if (!c) { + if (l) { + i.push(null); + continue; + } + throw new o("Expected group after '" + t + "'", this.fetch()); + } + (l ? i : n).push(c); + } + return { args: n, optArgs: i }; + }), + (e.parseGroupOfType = function (t, e, r, a, n) { + switch (e) { + case "color": + return n && this.consumeSpaces(), this.parseColorGroup(r); + case "size": + return n && this.consumeSpaces(), this.parseSizeGroup(r); + case "url": + return this.parseUrlGroup(r, n); + case "math": + case "text": + return this.parseGroup(t, r, a, void 0, e, n); + case "hbox": + var i = this.parseGroup(t, r, a, void 0, "text", n); + return i ? { type: "styling", mode: i.mode, body: [i], style: "text" } : i; + case "raw": + if ((n && this.consumeSpaces(), r && "{" === this.fetch().text)) return null; + var s = this.parseStringGroup("raw", r, !0); + if (s) return { type: "raw", mode: "text", string: s.text }; + throw new o("Expected raw group", this.fetch()); + case "original": + case null: + case void 0: + return this.parseGroup(t, r, a, void 0, void 0, n); + default: + throw new o("Unknown group type as " + t, this.fetch()); + } + }), + (e.consumeSpaces = function () { + for (; " " === this.fetch().text; ) this.consume(); + }), + (e.parseStringGroup = function (t, e, r) { + var a = e ? "[" : "{", + n = e ? "]" : "}", + i = this.fetch(); + if (i.text !== a) { + if (e) return null; + if (r && "EOF" !== i.text && /[^{}[\]]/.test(i.text)) return this.consume(), i; + } + var s = this.mode; + (this.mode = "text"), this.expect(a); + for (var h, l = "", m = this.fetch(), c = 0, u = m; (h = this.fetch()).text !== n || (r && c > 0); ) { + switch (h.text) { + case "EOF": + throw new o("Unexpected end of input in " + t, m.range(u, l)); + case a: + c++; + break; + case n: + c--; + } + (l += (u = h).text), this.consume(); + } + return this.expect(n), (this.mode = s), m.range(u, l); + }), + (e.parseRegexGroup = function (t, e) { + var r = this.mode; + this.mode = "text"; + for (var a, n = this.fetch(), i = n, s = ""; "EOF" !== (a = this.fetch()).text && t.test(s + a.text); ) (s += (i = a).text), this.consume(); + if ("" === s) throw new o("Invalid " + e + ": '" + n.text + "'", n); + return (this.mode = r), n.range(i, s); + }), + (e.parseColorGroup = function (t) { + var e = this.parseStringGroup("color", t); + if (!e) return null; + var r = /^(#[a-f0-9]{3}|#?[a-f0-9]{6}|[a-z]+)$/i.exec(e.text); + if (!r) throw new o("Invalid color: '" + e.text + "'", e); + var a = r[0]; + return /^[0-9a-f]{6}$/i.test(a) && (a = "#" + a), { type: "color-token", mode: this.mode, color: a }; + }), + (e.parseSizeGroup = function (t) { + var e, + r = !1; + if (!(e = t || "{" === this.fetch().text ? this.parseStringGroup("size", t) : this.parseRegexGroup(/^[-+]? *(?:$|\d+|\d+\.\d*|\.\d*) *[a-z]{0,2} *$/, "size"))) return null; + t || 0 !== e.text.length || ((e.text = "0pt"), (r = !0)); + var a = /([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e.text); + if (!a) throw new o("Invalid size: '" + e.text + "'", e); + var n = { number: +(a[1] + a[2]), unit: a[3] }; + if (!At(n)) throw new o("Invalid unit: '" + n.unit + "'", e); + return { type: "size", mode: this.mode, value: n, isBlank: r }; + }), + (e.parseUrlGroup = function (t, e) { + this.gullet.lexer.setCatcode("%", 13); + var r = this.parseStringGroup("url", t, !0); + if ((this.gullet.lexer.setCatcode("%", 14), !r)) return null; + var a = r.text.replace(/\\([#$%&~_^{}])/g, "$1"); + return { type: "url", mode: this.mode, url: a }; + }), + (e.parseGroup = function (e, r, n, i, s, h) { + var l = this.mode; + s && this.switchMode(s), h && this.consumeSpaces(); + var m, + c = this.fetch(), + u = c.text; + if (r ? "[" === u : "{" === u || "\\begingroup" === u) { + this.consume(); + var p = t.endOfGroup[u]; + this.gullet.beginGroup(); + var d = this.parseExpression(!1, p), + f = this.fetch(); + this.expect(p), this.gullet.endGroup(), (m = { type: "ordgroup", mode: this.mode, loc: a.range(c, f), body: d, semisimple: "\\begingroup" === u || void 0 }); + } else if (r) m = null; + else if (null == (m = this.parseFunction(i, e, n) || this.parseSymbol()) && "\\" === u[0] && !ya.hasOwnProperty(u)) { + if (this.settings.throwOnError) throw new o("Undefined control sequence: " + u, c); + (m = this.formatUnsupportedCmd(u)), this.consume(); + } + return s && this.switchMode(l), m; + }), + (e.formLigatures = function (t) { + for (var e = t.length - 1, r = 0; r < e; ++r) { + var n = t[r], + i = n.text; + "-" === i && + "-" === t[r + 1].text && + (r + 1 < e && "-" === t[r + 2].text + ? (t.splice(r, 3, { type: "textord", mode: "text", loc: a.range(n, t[r + 2]), text: "---" }), (e -= 2)) + : (t.splice(r, 2, { type: "textord", mode: "text", loc: a.range(n, t[r + 1]), text: "--" }), (e -= 1))), + ("'" !== i && "`" !== i) || t[r + 1].text !== i || (t.splice(r, 2, { type: "textord", mode: "text", loc: a.range(n, t[r + 1]), text: i + i }), (e -= 1)); + } + }), + (e.parseSymbol = function () { + var t = this.fetch(), + e = t.text; + if (/^\\verb[^a-zA-Z]/.test(e)) { + this.consume(); + var r = e.slice(5), + n = "*" === r.charAt(0); + if ((n && (r = r.slice(1)), r.length < 2 || r.charAt(0) !== r.slice(-1))) throw new o("\\verb assertion failed --\n please report what input caused this bug"); + return { type: "verb", mode: "text", body: (r = r.slice(1, -1)), star: n }; + } + Sa.hasOwnProperty(e[0]) && + !j[this.mode][e[0]] && + (this.settings.strict && "math" === this.mode && this.settings.reportNonstrict("unicodeTextInMathMode", 'Accented Unicode text character "' + e[0] + '" used in math mode', t), (e = Sa[e[0]] + e.substr(1))); + var i, + s = sa.exec(e); + if ((s && ("i" === (e = e.substring(0, s.index)) ? (e = "\u0131") : "j" === e && (e = "\u0237")), j[this.mode][e])) { + this.settings.strict && + "math" === this.mode && + "\xc7\xd0\xde\xe7\xfe".indexOf(e) >= 0 && + this.settings.reportNonstrict("unicodeTextInMathMode", 'Latin-1/Unicode text character "' + e[0] + '" used in math mode', t); + var h, + l = j[this.mode][e].group, + m = a.range(t); + if (W.hasOwnProperty(l)) { + var c = l; + h = { type: "atom", mode: this.mode, family: c, loc: m, text: e }; + } else h = { type: l, mode: this.mode, loc: m, text: e }; + i = h; + } else { + if (!(e.charCodeAt(0) >= 128)) return null; + this.settings.strict && + (M(e.charCodeAt(0)) + ? "math" === this.mode && this.settings.reportNonstrict("unicodeTextInMathMode", 'Unicode text character "' + e[0] + '" used in math mode', t) + : this.settings.reportNonstrict("unknownSymbol", 'Unrecognized Unicode character "' + e[0] + '" (' + e.charCodeAt(0) + ")", t)), + (i = { type: "textord", mode: "text", loc: a.range(t), text: e }); + } + if ((this.consume(), s)) + for (var u = 0; u < s[0].length; u++) { + var p = s[0][u]; + if (!ka[p]) throw new o("Unknown accent ' " + p + "'", t); + var d = ka[p][this.mode]; + if (!d) throw new o("Accent " + p + " unsupported in " + this.mode + " mode", t); + i = { type: "accent", mode: this.mode, loc: a.range(t), label: d, isStretchy: !1, isShifty: !0, base: i }; + } + return i; + }), + t + ); + })(); + (Ma.endOfExpression = ["}", "\\endgroup", "\\end", "\\right", "&"]), (Ma.endOfGroup = { "[": "]", "{": "}", "\\begingroup": "\\endgroup" }), (Ma.SUPSUB_GREEDINESS = 1); + var za = function (t, e) { + if (!("string" == typeof t || t instanceof String)) throw new TypeError("KaTeX can only parse string typed expression"); + var r = new Ma(t, e); + delete r.gullet.macros.current["\\df@tag"]; + var a = r.parse(); + if (r.gullet.macros.get("\\df@tag")) { + if (!e.displayMode) throw new o("\\tag works only in display equations"); + r.gullet.feed("\\df@tag"), (a = [{ type: "tag", mode: "text", body: a, tag: r.parse() }]); + } + return a; + }, + Aa = function (t, e, r) { + e.textContent = ""; + var a = Ba(t, r).toNode(); + e.appendChild(a); + }; + "undefined" != typeof document && + "CSS1Compat" !== document.compatMode && + ("undefined" != typeof console && console.warn("Warning: KaTeX doesn't work in quirks mode. Make sure your website has a suitable doctype."), + (Aa = function () { + throw new o("KaTeX doesn't work in quirks mode."); + })); + var Ta = function (t, e, r) { + if (r.throwOnError || !(t instanceof o)) throw t; + var a = Dt.makeSpan(["katex-error"], [new E(e)]); + return a.setAttribute("title", t.toString()), a.setAttribute("style", "color:" + r.errorColor), a; + }, + Ba = function (t, e) { + var r = new u(e); + try { + var a = za(t, r); + return Be(a, t, r); + } catch (e) { + return Ta(e, t, r); + } + }, + Ca = { + version: "0.11.1", + render: Aa, + renderToString: function (t, e) { + return Ba(t, e).toMarkup(); + }, + ParseError: o, + __parse: function (t, e) { + var r = new u(e); + return za(t, r); + }, + __renderToDomTree: Ba, + __renderToHTMLTree: function (t, e) { + var r = new u(e); + try { + return (function (t, e, r) { + var a = de(t, Ae(r)), + n = Dt.makeSpan(["katex"], [a]); + return Te(n, r); + })(za(t, r), 0, r); + } catch (e) { + return Ta(e, t, r); + } + }, + __setFontMetrics: function (t, e) { + F[t] = e; + }, + __defineSymbol: $, + __defineMacro: pa, + __domTree: { Span: N, Anchor: I, SymbolNode: E, SvgNode: L, PathNode: H, LineNode: P }, + }; + e.default = Ca; + }, + ]).default; +}); diff --git a/static/js/katex.min.js b/static/js/katex.min.js new file mode 100644 index 0000000..906ce12 --- /dev/null +++ b/static/js/katex.min.js @@ -0,0 +1 @@ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.katex=e():t.katex=e()}("undefined"!=typeof self?self:this,function(){return function(t){var e={};function r(a){if(e[a])return e[a].exports;var n=e[a]={i:a,l:!1,exports:{}};return t[a].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=t,r.c=e,r.d=function(t,e,a){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:a})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var a=Object.create(null);if(r.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)r.d(a,n,function(e){return t[e]}.bind(null,n));return a},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=1)}([function(t,e,r){},function(t,e,r){"use strict";r.r(e);r(0);var a=function(){function t(t,e,r){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=t,this.start=e,this.end=r}return t.range=function(e,r){return r?e&&e.loc&&r.loc&&e.loc.lexer===r.loc.lexer?new t(e.loc.lexer,e.loc.start,r.loc.end):null:e&&e.loc},t}(),n=function(){function t(t,e){this.text=void 0,this.loc=void 0,this.text=t,this.loc=e}return t.prototype.range=function(e,r){return new t(r,a.range(this,e))},t}(),i=function t(e,r){this.position=void 0;var a,n="KaTeX parse error: "+e,i=r&&r.loc;if(i&&i.start<=i.end){var o=i.lexer.input;a=i.start;var s=i.end;a===o.length?n+=" at end of input: ":n+=" at position "+(a+1)+": ";var h=o.slice(a,s).replace(/[^]/g,"$&\u0332");n+=(a>15?"\u2026"+o.slice(a-15,a):o.slice(0,a))+h+(s+15":">","<":"<",'"':""","'":"'"},l=/[&><"']/g;var m=function t(e){return"ordgroup"===e.type?1===e.body.length?t(e.body[0]):e:"color"===e.type?1===e.body.length?t(e.body[0]):e:"font"===e.type?t(e.body):e},c={contains:function(t,e){return-1!==t.indexOf(e)},deflt:function(t,e){return void 0===t?e:t},escape:function(t){return String(t).replace(l,function(t){return h[t]})},hyphenate:function(t){return t.replace(s,"-$1").toLowerCase()},getBaseElem:m,isCharacterBox:function(t){var e=m(t);return"mathord"===e.type||"textord"===e.type||"atom"===e.type},protocolFromUrl:function(t){var e=/^\s*([^\\\/#]*?)(?::|�*58|�*3a)/i.exec(t);return null!=e?e[1]:"_relative"}},u=function(){function t(t){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,t=t||{},this.displayMode=c.deflt(t.displayMode,!1),this.output=c.deflt(t.output,"htmlAndMathml"),this.leqno=c.deflt(t.leqno,!1),this.fleqn=c.deflt(t.fleqn,!1),this.throwOnError=c.deflt(t.throwOnError,!0),this.errorColor=c.deflt(t.errorColor,"#cc0000"),this.macros=t.macros||{},this.minRuleThickness=Math.max(0,c.deflt(t.minRuleThickness,0)),this.colorIsTextColor=c.deflt(t.colorIsTextColor,!1),this.strict=c.deflt(t.strict,"warn"),this.trust=c.deflt(t.trust,!1),this.maxSize=Math.max(0,c.deflt(t.maxSize,1/0)),this.maxExpand=Math.max(0,c.deflt(t.maxExpand,1e3))}var e=t.prototype;return e.reportNonstrict=function(t,e,r){var a=this.strict;if("function"==typeof a&&(a=a(t,e,r)),a&&"ignore"!==a){if(!0===a||"error"===a)throw new o("LaTeX-incompatible input and strict mode is set to 'error': "+e+" ["+t+"]",r);"warn"===a?"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+e+" ["+t+"]"):"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '"+a+"': "+e+" ["+t+"]")}},e.useStrictBehavior=function(t,e,r){var a=this.strict;if("function"==typeof a)try{a=a(t,e,r)}catch(t){a="error"}return!(!a||"ignore"===a)&&(!0===a||"error"===a||("warn"===a?("undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+e+" ["+t+"]"),!1):("undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '"+a+"': "+e+" ["+t+"]"),!1)))},e.isTrusted=function(t){t.url&&!t.protocol&&(t.protocol=c.protocolFromUrl(t.url));var e="function"==typeof this.trust?this.trust(t):this.trust;return Boolean(e)},t}(),p=function(){function t(t,e,r){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=t,this.size=e,this.cramped=r}var e=t.prototype;return e.sup=function(){return d[f[this.id]]},e.sub=function(){return d[g[this.id]]},e.fracNum=function(){return d[x[this.id]]},e.fracDen=function(){return d[v[this.id]]},e.cramp=function(){return d[b[this.id]]},e.text=function(){return d[y[this.id]]},e.isTight=function(){return this.size>=2},t}(),d=[new p(0,0,!1),new p(1,0,!0),new p(2,1,!1),new p(3,1,!0),new p(4,2,!1),new p(5,2,!0),new p(6,3,!1),new p(7,3,!0)],f=[4,5,4,5,6,7,6,7],g=[5,5,5,5,7,7,7,7],x=[2,3,4,5,6,7,6,7],v=[3,3,5,5,7,7,7,7],b=[1,1,3,3,5,5,7,7],y=[0,1,2,3,2,3,2,3],w={DISPLAY:d[0],TEXT:d[2],SCRIPT:d[4],SCRIPTSCRIPT:d[6]},k=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];var S=[];function M(t){for(var e=0;e=S[e]&&t<=S[e+1])return!0;return!1}k.forEach(function(t){return t.blocks.forEach(function(t){return S.push.apply(S,t)})});var z={doubleleftarrow:"M262 157\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\nm8 0v40h399730v-40zm0 194v40h399730v-40z",doublerightarrow:"M399738 392l\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z",leftarrow:"M400000 241H110l3-3c68.7-52.7 113.7-120\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\n l-3-3h399890zM100 241v40h399900v-40z",leftbrace:"M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z",leftbraceunder:"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z",leftgroup:"M400000 80\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\n 435 0h399565z",leftgroupunder:"M400000 262\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\n 435 219h399565z",leftharpoon:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z",leftharpoonplus:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\nm0 0v40h400000v-40z",leftharpoondown:"M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z",leftharpoondownplus:"M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z",lefthook:"M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\n 71.5 23h399859zM103 281v-40h399897v40z",leftlinesegment:"M40 281 V428 H0 V94 H40 V241 H400000 v40z\nM40 281 V428 H0 V94 H40 V241 H400000 v40z",leftmapsto:"M40 281 V448H0V74H40V241H400000v40z\nM40 281 V448H0V74H40V241H400000v40z",leftToFrom:"M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z",longequal:"M0 50 h400000 v40H0z m0 194h40000v40H0z\nM0 50 h400000 v40H0z m0 194h40000v40H0z",midbrace:"M200428 334\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z",midbraceunder:"M199572 214\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z",oiintSize1:"M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z",oiintSize2:"M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\nc0 110 84 276 504 276s502.4-166 502.4-276z",oiiintSize1:"M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z",oiiintSize2:"M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z",rightarrow:"M0 241v40h399891c-47.3 35.3-84 78-110 128\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n 151.7 139 205zm0 0v40h399900v-40z",rightbrace:"M400000 542l\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z",rightbraceunder:"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z",rightgroup:"M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\n 3-1 3-3v-38c-76-158-257-219-435-219H0z",rightgroupunder:"M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z",rightharpoon:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\n 69.2 92 94.5zm0 0v40h399900v-40z",rightharpoonplus:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z",rightharpoondown:"M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z",rightharpoondownplus:"M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\nm0-194v40h400000v-40zm0 0v40h400000v-40z",righthook:"M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z",rightlinesegment:"M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z",rightToFrom:"M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z",twoheadleftarrow:"M0 167c68 40\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z",twoheadrightarrow:"M400000 167\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z",tilde1:"M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\n-68.267.847-113-73.952-191-73.952z",tilde2:"M344 55.266c-142 0-300.638 81.316-311.5 86.418\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z",tilde3:"M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\n -338 0-409-156.573-744-156.573z",tilde4:"M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\n -175.236-744-175.236z",vec:"M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\nc-16-25.333-24-45-24-59z",widehat1:"M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z",widehat2:"M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat3:"M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat4:"M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widecheck1:"M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z",widecheck2:"M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck3:"M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck4:"M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",baraboveleftarrow:"M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z",rightarrowabovebar:"M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z",baraboveshortleftharpoon:"M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z",rightharpoonaboveshortbar:"M0,241 l0,40c399126,0,399993,0,399993,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z",shortbaraboveleftharpoon:"M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z",shortrightharpoonabovebar:"M53,241l0,40c398570,0,399437,0,399437,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z"},A=function(){function t(t){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=t,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}var e=t.prototype;return e.hasClass=function(t){return c.contains(this.classes,t)},e.toNode=function(){for(var t=document.createDocumentFragment(),e=0;e"},N=function(){function t(t,e,r,a){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,B.call(this,t,r,a),this.children=e||[]}var e=t.prototype;return e.setAttribute=function(t,e){this.attributes[t]=e},e.hasClass=function(t){return c.contains(this.classes,t)},e.toNode=function(){return C.call(this,"span")},e.toMarkup=function(){return q.call(this,"span")},t}(),I=function(){function t(t,e,r,a){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,B.call(this,e,a),this.children=r||[],this.setAttribute("href",t)}var e=t.prototype;return e.setAttribute=function(t,e){this.attributes[t]=e},e.hasClass=function(t){return c.contains(this.classes,t)},e.toNode=function(){return C.call(this,"a")},e.toMarkup=function(){return q.call(this,"a")},t}(),R=function(){function t(t,e,r){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=e,this.src=t,this.classes=["mord"],this.style=r}var e=t.prototype;return e.hasClass=function(t){return c.contains(this.classes,t)},e.toNode=function(){var t=document.createElement("img");for(var e in t.src=this.src,t.alt=this.alt,t.className="mord",this.style)this.style.hasOwnProperty(e)&&(t.style[e]=this.style[e]);return t},e.toMarkup=function(){var t=""+this.alt+"=n[0]&&t<=n[1])return r.name}return null}(this.text.charCodeAt(0));h&&this.classes.push(h+"_fallback"),/[\xee\xef\xed\xec]/.test(this.text)&&(this.text=O[this.text])}var e=t.prototype;return e.hasClass=function(t){return c.contains(this.classes,t)},e.toNode=function(){var t=document.createTextNode(this.text),e=null;for(var r in this.italic>0&&((e=document.createElement("span")).style.marginRight=this.italic+"em"),this.classes.length>0&&((e=e||document.createElement("span")).className=T(this.classes)),this.style)this.style.hasOwnProperty(r)&&((e=e||document.createElement("span")).style[r]=this.style[r]);return e?(e.appendChild(t),e):t},e.toMarkup=function(){var t=!1,e="0&&(r+="margin-right:"+this.italic+"em;"),this.style)this.style.hasOwnProperty(a)&&(r+=c.hyphenate(a)+":"+this.style[a]+";");r&&(t=!0,e+=' style="'+c.escape(r)+'"');var n=c.escape(this.text);return t?(e+=">",e+=n,e+=""):n},t}(),L=function(){function t(t,e){this.children=void 0,this.attributes=void 0,this.children=t||[],this.attributes=e||{}}var e=t.prototype;return e.toNode=function(){var t=document.createElementNS("http://www.w3.org/2000/svg","svg");for(var e in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,e)&&t.setAttribute(e,this.attributes[e]);for(var r=0;r":""},t}(),P=function(){function t(t){this.attributes=void 0,this.attributes=t||{}}var e=t.prototype;return e.toNode=function(){var t=document.createElementNS("http://www.w3.org/2000/svg","line");for(var e in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,e)&&t.setAttribute(e,this.attributes[e]);return t},e.toMarkup=function(){var t="",">"),$("math",Z,et,":",":"),$("math",Z,et,"\u2248","\\approx",!0),$("math",Z,et,"\u2245","\\cong",!0),$("math",Z,et,"\u2265","\\ge"),$("math",Z,et,"\u2265","\\geq",!0),$("math",Z,et,"\u2190","\\gets"),$("math",Z,et,">","\\gt"),$("math",Z,et,"\u2208","\\in",!0),$("math",Z,et,"\ue020","\\@not"),$("math",Z,et,"\u2282","\\subset",!0),$("math",Z,et,"\u2283","\\supset",!0),$("math",Z,et,"\u2286","\\subseteq",!0),$("math",Z,et,"\u2287","\\supseteq",!0),$("math",K,et,"\u2288","\\nsubseteq",!0),$("math",K,et,"\u2289","\\nsupseteq",!0),$("math",Z,et,"\u22a8","\\models"),$("math",Z,et,"\u2190","\\leftarrow",!0),$("math",Z,et,"\u2264","\\le"),$("math",Z,et,"\u2264","\\leq",!0),$("math",Z,et,"<","\\lt"),$("math",Z,et,"\u2192","\\rightarrow",!0),$("math",Z,et,"\u2192","\\to"),$("math",K,et,"\u2271","\\ngeq",!0),$("math",K,et,"\u2270","\\nleq",!0),$("math",Z,"spacing","\xa0","\\ "),$("math",Z,"spacing","\xa0","~"),$("math",Z,"spacing","\xa0","\\space"),$("math",Z,"spacing","\xa0","\\nobreakspace"),$("text",Z,"spacing","\xa0","\\ "),$("text",Z,"spacing","\xa0","~"),$("text",Z,"spacing","\xa0","\\space"),$("text",Z,"spacing","\xa0","\\nobreakspace"),$("math",Z,"spacing",null,"\\nobreak"),$("math",Z,"spacing",null,"\\allowbreak"),$("math",Z,"punct",",",","),$("math",Z,"punct",";",";"),$("math",K,J,"\u22bc","\\barwedge",!0),$("math",K,J,"\u22bb","\\veebar",!0),$("math",Z,J,"\u2299","\\odot",!0),$("math",Z,J,"\u2295","\\oplus",!0),$("math",Z,J,"\u2297","\\otimes",!0),$("math",Z,"textord","\u2202","\\partial",!0),$("math",Z,J,"\u2298","\\oslash",!0),$("math",K,J,"\u229a","\\circledcirc",!0),$("math",K,J,"\u22a1","\\boxdot",!0),$("math",Z,J,"\u25b3","\\bigtriangleup"),$("math",Z,J,"\u25bd","\\bigtriangledown"),$("math",Z,J,"\u2020","\\dagger"),$("math",Z,J,"\u22c4","\\diamond"),$("math",Z,J,"\u22c6","\\star"),$("math",Z,J,"\u25c3","\\triangleleft"),$("math",Z,J,"\u25b9","\\triangleright"),$("math",Z,"open","{","\\{"),$("text",Z,"textord","{","\\{"),$("text",Z,"textord","{","\\textbraceleft"),$("math",Z,"close","}","\\}"),$("text",Z,"textord","}","\\}"),$("text",Z,"textord","}","\\textbraceright"),$("math",Z,"open","{","\\lbrace"),$("math",Z,"close","}","\\rbrace"),$("math",Z,"open","[","\\lbrack"),$("text",Z,"textord","[","\\lbrack"),$("math",Z,"close","]","\\rbrack"),$("text",Z,"textord","]","\\rbrack"),$("math",Z,"open","(","\\lparen"),$("math",Z,"close",")","\\rparen"),$("text",Z,"textord","<","\\textless"),$("text",Z,"textord",">","\\textgreater"),$("math",Z,"open","\u230a","\\lfloor",!0),$("math",Z,"close","\u230b","\\rfloor",!0),$("math",Z,"open","\u2308","\\lceil",!0),$("math",Z,"close","\u2309","\\rceil",!0),$("math",Z,"textord","\\","\\backslash"),$("math",Z,"textord","\u2223","|"),$("math",Z,"textord","\u2223","\\vert"),$("text",Z,"textord","|","\\textbar"),$("math",Z,"textord","\u2225","\\|"),$("math",Z,"textord","\u2225","\\Vert"),$("text",Z,"textord","\u2225","\\textbardbl"),$("text",Z,"textord","~","\\textasciitilde"),$("text",Z,"textord","\\","\\textbackslash"),$("text",Z,"textord","^","\\textasciicircum"),$("math",Z,et,"\u2191","\\uparrow",!0),$("math",Z,et,"\u21d1","\\Uparrow",!0),$("math",Z,et,"\u2193","\\downarrow",!0),$("math",Z,et,"\u21d3","\\Downarrow",!0),$("math",Z,et,"\u2195","\\updownarrow",!0),$("math",Z,et,"\u21d5","\\Updownarrow",!0),$("math",Z,tt,"\u2210","\\coprod"),$("math",Z,tt,"\u22c1","\\bigvee"),$("math",Z,tt,"\u22c0","\\bigwedge"),$("math",Z,tt,"\u2a04","\\biguplus"),$("math",Z,tt,"\u22c2","\\bigcap"),$("math",Z,tt,"\u22c3","\\bigcup"),$("math",Z,tt,"\u222b","\\int"),$("math",Z,tt,"\u222b","\\intop"),$("math",Z,tt,"\u222c","\\iint"),$("math",Z,tt,"\u222d","\\iiint"),$("math",Z,tt,"\u220f","\\prod"),$("math",Z,tt,"\u2211","\\sum"),$("math",Z,tt,"\u2a02","\\bigotimes"),$("math",Z,tt,"\u2a01","\\bigoplus"),$("math",Z,tt,"\u2a00","\\bigodot"),$("math",Z,tt,"\u222e","\\oint"),$("math",Z,tt,"\u222f","\\oiint"),$("math",Z,tt,"\u2230","\\oiiint"),$("math",Z,tt,"\u2a06","\\bigsqcup"),$("math",Z,tt,"\u222b","\\smallint"),$("text",Z,"inner","\u2026","\\textellipsis"),$("math",Z,"inner","\u2026","\\mathellipsis"),$("text",Z,"inner","\u2026","\\ldots",!0),$("math",Z,"inner","\u2026","\\ldots",!0),$("math",Z,"inner","\u22ef","\\@cdots",!0),$("math",Z,"inner","\u22f1","\\ddots",!0),$("math",Z,"textord","\u22ee","\\varvdots"),$("math",Z,"accent-token","\u02ca","\\acute"),$("math",Z,"accent-token","\u02cb","\\grave"),$("math",Z,"accent-token","\xa8","\\ddot"),$("math",Z,"accent-token","~","\\tilde"),$("math",Z,"accent-token","\u02c9","\\bar"),$("math",Z,"accent-token","\u02d8","\\breve"),$("math",Z,"accent-token","\u02c7","\\check"),$("math",Z,"accent-token","^","\\hat"),$("math",Z,"accent-token","\u20d7","\\vec"),$("math",Z,"accent-token","\u02d9","\\dot"),$("math",Z,"accent-token","\u02da","\\mathring"),$("math",Z,Q,"\u0131","\\imath",!0),$("math",Z,Q,"\u0237","\\jmath",!0),$("text",Z,"textord","\u0131","\\i",!0),$("text",Z,"textord","\u0237","\\j",!0),$("text",Z,"textord","\xdf","\\ss",!0),$("text",Z,"textord","\xe6","\\ae",!0),$("text",Z,"textord","\xe6","\\ae",!0),$("text",Z,"textord","\u0153","\\oe",!0),$("text",Z,"textord","\xf8","\\o",!0),$("text",Z,"textord","\xc6","\\AE",!0),$("text",Z,"textord","\u0152","\\OE",!0),$("text",Z,"textord","\xd8","\\O",!0),$("text",Z,"accent-token","\u02ca","\\'"),$("text",Z,"accent-token","\u02cb","\\`"),$("text",Z,"accent-token","\u02c6","\\^"),$("text",Z,"accent-token","\u02dc","\\~"),$("text",Z,"accent-token","\u02c9","\\="),$("text",Z,"accent-token","\u02d8","\\u"),$("text",Z,"accent-token","\u02d9","\\."),$("text",Z,"accent-token","\u02da","\\r"),$("text",Z,"accent-token","\u02c7","\\v"),$("text",Z,"accent-token","\xa8",'\\"'),$("text",Z,"accent-token","\u02dd","\\H"),$("text",Z,"accent-token","\u25ef","\\textcircled");var rt={"--":!0,"---":!0,"``":!0,"''":!0};$("text",Z,"textord","\u2013","--"),$("text",Z,"textord","\u2013","\\textendash"),$("text",Z,"textord","\u2014","---"),$("text",Z,"textord","\u2014","\\textemdash"),$("text",Z,"textord","\u2018","`"),$("text",Z,"textord","\u2018","\\textquoteleft"),$("text",Z,"textord","\u2019","'"),$("text",Z,"textord","\u2019","\\textquoteright"),$("text",Z,"textord","\u201c","``"),$("text",Z,"textord","\u201c","\\textquotedblleft"),$("text",Z,"textord","\u201d","''"),$("text",Z,"textord","\u201d","\\textquotedblright"),$("math",Z,"textord","\xb0","\\degree",!0),$("text",Z,"textord","\xb0","\\degree"),$("text",Z,"textord","\xb0","\\textdegree",!0),$("math",Z,Q,"\xa3","\\pounds"),$("math",Z,Q,"\xa3","\\mathsterling",!0),$("text",Z,Q,"\xa3","\\pounds"),$("text",Z,Q,"\xa3","\\textsterling",!0),$("math",K,"textord","\u2720","\\maltese"),$("text",K,"textord","\u2720","\\maltese"),$("text",Z,"spacing","\xa0","\\ "),$("text",Z,"spacing","\xa0"," "),$("text",Z,"spacing","\xa0","~");for(var at=0;at<'0123456789/@."'.length;at++){var nt='0123456789/@."'.charAt(at);$("math",Z,"textord",nt,nt)}for(var it=0;it<'0123456789!@*()-=+[]<>|";:?/.,'.length;it++){var ot='0123456789!@*()-=+[]<>|";:?/.,'.charAt(it);$("text",Z,"textord",ot,ot)}for(var st="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ht=0;ht=5?0:t>=3?1:2]){var r=Y[e]={cssEmPerMu:V.quad[e]/18};for(var a in V)V.hasOwnProperty(a)&&(r[a]=V[a][e])}return Y[e]}(this.size)),this._fontMetrics},e.getColor=function(){return this.phantom?"transparent":this.color},t}();kt.BASESIZE=6;var St=kt,Mt={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:1.00375,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:1.00375},zt={ex:!0,em:!0,mu:!0},At=function(t){return"string"!=typeof t&&(t=t.unit),t in Mt||t in zt||"ex"===t},Tt=function(t,e){var r;if(t.unit in Mt)r=Mt[t.unit]/e.fontMetrics().ptPerEm/e.sizeMultiplier;else if("mu"===t.unit)r=e.fontMetrics().cssEmPerMu;else{var a;if(a=e.style.isTight()?e.havingStyle(e.style.text()):e,"ex"===t.unit)r=a.fontMetrics().xHeight;else{if("em"!==t.unit)throw new o("Invalid unit: '"+t.unit+"'");r=a.fontMetrics().quad}a!==e&&(r*=a.sizeMultiplier/e.sizeMultiplier)}return Math.min(t.number*r,e.maxSize)},Bt=["\\imath","\u0131","\\jmath","\u0237","\\pounds","\\mathsterling","\\textsterling","\xa3"],Ct=function(t,e,r){return j[r][t]&&j[r][t].replace&&(t=j[r][t].replace),{value:t,metrics:G(t,e,r)}},qt=function(t,e,r,a,n){var i,o=Ct(t,e,r),s=o.metrics;if(t=o.value,s){var h=s.italic;("text"===r||a&&"mathit"===a.font)&&(h=0),i=new E(t,s.height,s.depth,h,s.skew,s.width,n)}else"undefined"!=typeof console&&console.warn("No character metrics for '"+t+"' in style '"+e+"' and mode '"+r+"'"),i=new E(t,0,0,0,0,0,n);if(a){i.maxFontSize=a.sizeMultiplier,a.style.isTight()&&i.classes.push("mtight");var l=a.getColor();l&&(i.style.color=l)}return i},Nt=function(t,e){if(T(t.classes)!==T(e.classes)||t.skew!==e.skew||t.maxFontSize!==e.maxFontSize)return!1;for(var r in t.style)if(t.style.hasOwnProperty(r)&&t.style[r]!==e.style[r])return!1;for(var a in e.style)if(e.style.hasOwnProperty(a)&&t.style[a]!==e.style[a])return!1;return!0},It=function(t){for(var e=0,r=0,a=0,n=0;ne&&(e=i.height),i.depth>r&&(r=i.depth),i.maxFontSize>a&&(a=i.maxFontSize)}t.height=e,t.depth=r,t.maxFontSize=a},Rt=function(t,e,r,a){var n=new N(t,e,r,a);return It(n),n},Ot=function(t,e,r,a){return new N(t,e,r,a)},Et=function(t){var e=new A(t);return It(e),e},Lt=function(t,e,r){var a="";switch(t){case"amsrm":a="AMS";break;case"textrm":a="Main";break;case"textsf":a="SansSerif";break;case"texttt":a="Typewriter";break;default:a=t}return a+"-"+("textbf"===e&&"textit"===r?"BoldItalic":"textbf"===e?"Bold":"textit"===e?"Italic":"Regular")},Ht={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},Pt={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},Dt={fontMap:Ht,makeSymbol:qt,mathsym:function(t,e,r,a){return void 0===a&&(a=[]),"boldsymbol"===r.font&&Ct(t,"Main-Bold",e).metrics?qt(t,"Main-Bold",e,r,a.concat(["mathbf"])):"\\"===t||"main"===j[e][t].font?qt(t,"Main-Regular",e,r,a):qt(t,"AMS-Regular",e,r,a.concat(["amsrm"]))},makeSpan:Rt,makeSvgSpan:Ot,makeLineSpan:function(t,e,r){var a=Rt([t],[],e);return a.height=Math.max(r||e.fontMetrics().defaultRuleThickness,e.minRuleThickness),a.style.borderBottomWidth=a.height+"em",a.maxFontSize=1,a},makeAnchor:function(t,e,r,a){var n=new I(t,e,r,a);return It(n),n},makeFragment:Et,wrapFragment:function(t,e){return t instanceof A?Rt([],[t],e):t},makeVList:function(t,e){for(var r=function(t){if("individualShift"===t.positionType){for(var e=t.children,r=[e[0]],a=-e[0].shift-e[0].elem.depth,n=a,i=1;i0&&(i.push(pe(o,e)),o=[]),i.push(n[s]));o.length>0&&i.push(pe(o,e)),r&&((a=pe(se(r,e,!0))).classes=["tag"],i.push(a));var l=re(["katex-html"],i);if(l.setAttribute("aria-hidden","true"),a){var m=a.children[0];m.style.height=l.height+l.depth+"em",m.style.verticalAlign=-l.depth+"em"}return l}function fe(t){return new A(t)}var ge=function(){function t(t,e){this.type=void 0,this.attributes=void 0,this.children=void 0,this.type=t,this.attributes={},this.children=e||[]}var e=t.prototype;return e.setAttribute=function(t,e){this.attributes[t]=e},e.getAttribute=function(t){return this.attributes[t]},e.toNode=function(){var t=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var e in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,e)&&t.setAttribute(e,this.attributes[e]);for(var r=0;r"},e.toText=function(){return this.children.map(function(t){return t.toText()}).join("")},t}(),xe=function(){function t(t){this.text=void 0,this.text=t}var e=t.prototype;return e.toNode=function(){return document.createTextNode(this.text)},e.toMarkup=function(){return c.escape(this.toText())},e.toText=function(){return this.text},t}(),ve={MathNode:ge,TextNode:xe,SpaceNode:function(){function t(t){this.width=void 0,this.character=void 0,this.width=t,this.character=t>=.05555&&t<=.05556?"\u200a":t>=.1666&&t<=.1667?"\u2009":t>=.2222&&t<=.2223?"\u2005":t>=.2777&&t<=.2778?"\u2005\u200a":t>=-.05556&&t<=-.05555?"\u200a\u2063":t>=-.1667&&t<=-.1666?"\u2009\u2063":t>=-.2223&&t<=-.2222?"\u205f\u2063":t>=-.2778&&t<=-.2777?"\u2005\u2063":null}var e=t.prototype;return e.toNode=function(){if(this.character)return document.createTextNode(this.character);var t=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return t.setAttribute("width",this.width+"em"),t},e.toMarkup=function(){return this.character?""+this.character+"":''},e.toText=function(){return this.character?this.character:" "},t}(),newDocumentFragment:fe},be=function(t,e,r){return!j[e][t]||!j[e][t].replace||55349===t.charCodeAt(0)||rt.hasOwnProperty(t)&&r&&(r.fontFamily&&"tt"===r.fontFamily.substr(4,2)||r.font&&"tt"===r.font.substr(4,2))||(t=j[e][t].replace),new ve.TextNode(t)},ye=function(t){return 1===t.length?t[0]:new ve.MathNode("mrow",t)},we=function(t,e){if("texttt"===e.fontFamily)return"monospace";if("textsf"===e.fontFamily)return"textit"===e.fontShape&&"textbf"===e.fontWeight?"sans-serif-bold-italic":"textit"===e.fontShape?"sans-serif-italic":"textbf"===e.fontWeight?"bold-sans-serif":"sans-serif";if("textit"===e.fontShape&&"textbf"===e.fontWeight)return"bold-italic";if("textit"===e.fontShape)return"italic";if("textbf"===e.fontWeight)return"bold";var r=e.font;if(!r||"mathnormal"===r)return null;var a=t.mode;if("mathit"===r)return"italic";if("boldsymbol"===r)return"bold-italic";if("mathbf"===r)return"bold";if("mathbb"===r)return"double-struck";if("mathfrak"===r)return"fraktur";if("mathscr"===r||"mathcal"===r)return"script";if("mathsf"===r)return"sans-serif";if("mathtt"===r)return"monospace";var n=t.text;return c.contains(["\\imath","\\jmath"],n)?null:(j[a][n]&&j[a][n].replace&&(n=j[a][n].replace),G(n,Dt.fontMap[r].fontName,a)?Dt.fontMap[r].variant:null)},ke=function(t,e,r){if(1===t.length){var a=Me(t[0],e);return r&&a instanceof ge&&"mo"===a.type&&(a.setAttribute("lspace","0em"),a.setAttribute("rspace","0em")),[a]}for(var n,i=[],o=0;o0&&(p.text=p.text.slice(0,1)+"\u0338"+p.text.slice(1),i.pop())}}}i.push(s),n=s}return i},Se=function(t,e,r){return ye(ke(t,e,r))},Me=function(t,e){if(!t)return new ve.MathNode("mrow");if(Jt[t.type])return Jt[t.type](t,e);throw new o("Got group of unknown type: '"+t.type+"'")};function ze(t,e,r,a){var n,i=ke(t,r);n=1===i.length&&i[0]instanceof ge&&c.contains(["mrow","mtable"],i[0].type)?i[0]:new ve.MathNode("mrow",i);var o=new ve.MathNode("annotation",[new ve.TextNode(e)]);o.setAttribute("encoding","application/x-tex");var s=new ve.MathNode("semantics",[n,o]),h=new ve.MathNode("math",[s]);h.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML");var l=a?"katex":"katex-mathml";return Dt.makeSpan([l],[h])}var Ae=function(t){return new St({style:t.displayMode?w.DISPLAY:w.TEXT,maxSize:t.maxSize,minRuleThickness:t.minRuleThickness})},Te=function(t,e){if(e.displayMode){var r=["katex-display"];e.leqno&&r.push("leqno"),e.fleqn&&r.push("fleqn"),t=Dt.makeSpan(r,[t])}return t},Be=function(t,e,r){var a,n=Ae(r);if("mathml"===r.output)return ze(t,e,n,!0);if("html"===r.output){var i=de(t,n);a=Dt.makeSpan(["katex"],[i])}else{var o=ze(t,e,n,!1),s=de(t,n);a=Dt.makeSpan(["katex"],[o,s])}return Te(a,r)},Ce={widehat:"^",widecheck:"\u02c7",widetilde:"~",utilde:"~",overleftarrow:"\u2190",underleftarrow:"\u2190",xleftarrow:"\u2190",overrightarrow:"\u2192",underrightarrow:"\u2192",xrightarrow:"\u2192",underbrace:"\u23df",overbrace:"\u23de",overgroup:"\u23e0",undergroup:"\u23e1",overleftrightarrow:"\u2194",underleftrightarrow:"\u2194",xleftrightarrow:"\u2194",Overrightarrow:"\u21d2",xRightarrow:"\u21d2",overleftharpoon:"\u21bc",xleftharpoonup:"\u21bc",overrightharpoon:"\u21c0",xrightharpoonup:"\u21c0",xLeftarrow:"\u21d0",xLeftrightarrow:"\u21d4",xhookleftarrow:"\u21a9",xhookrightarrow:"\u21aa",xmapsto:"\u21a6",xrightharpoondown:"\u21c1",xleftharpoondown:"\u21bd",xrightleftharpoons:"\u21cc",xleftrightharpoons:"\u21cb",xtwoheadleftarrow:"\u219e",xtwoheadrightarrow:"\u21a0",xlongequal:"=",xtofrom:"\u21c4",xrightleftarrows:"\u21c4",xrightequilibrium:"\u21cc",xleftequilibrium:"\u21cb"},qe={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},Ne=function(t){return"ordgroup"===t.type?t.body.length:1},Ie=function(t,e,r,a){var n,i=t.height+t.depth+2*r;if(/fbox|color/.test(e)){if(n=Dt.makeSpan(["stretchy",e],[],a),"fbox"===e){var o=a.color&&a.getColor();o&&(n.style.borderColor=o)}}else{var s=[];/^[bx]cancel$/.test(e)&&s.push(new P({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(e)&&s.push(new P({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var h=new L(s,{width:"100%",height:i+"em"});n=Dt.makeSvgSpan([],[h],a)}return n.height=i,n.style.height=i+"em",n},Re=function(t){var e=new ve.MathNode("mo",[new ve.TextNode(Ce[t.substr(1)])]);return e.setAttribute("stretchy","true"),e},Oe=function(t,e){var r=function(){var r=4e5,a=t.label.substr(1);if(c.contains(["widehat","widecheck","widetilde","utilde"],a)){var n,i,o,s=Ne(t.base);if(s>5)"widehat"===a||"widecheck"===a?(n=420,r=2364,o=.42,i=a+"4"):(n=312,r=2340,o=.34,i="tilde4");else{var h=[1,1,2,2,3,3][s];"widehat"===a||"widecheck"===a?(r=[0,1062,2364,2364,2364][h],n=[0,239,300,360,420][h],o=[0,.24,.3,.3,.36,.42][h],i=a+h):(r=[0,600,1033,2339,2340][h],n=[0,260,286,306,312][h],o=[0,.26,.286,.3,.306,.34][h],i="tilde"+h)}var l=new H(i),m=new L([l],{width:"100%",height:o+"em",viewBox:"0 0 "+r+" "+n,preserveAspectRatio:"none"});return{span:Dt.makeSvgSpan([],[m],e),minWidth:0,height:o}}var u,p,d=[],f=qe[a],g=f[0],x=f[1],v=f[2],b=v/1e3,y=g.length;if(1===y)u=["hide-tail"],p=[f[3]];else if(2===y)u=["halfarrow-left","halfarrow-right"],p=["xMinYMin","xMaxYMin"];else{if(3!==y)throw new Error("Correct katexImagesData or update code here to support\n "+y+" children.");u=["brace-left","brace-center","brace-right"],p=["xMinYMin","xMidYMin","xMaxYMin"]}for(var w=0;w0&&(a.style.minWidth=n+"em"),a},Ee=function(t,e){var r,a,n,i=Vt(t,"supsub");i?(r=(a=Ft(i.base,"accent")).base,i.base=r,n=function(t){if(t instanceof N)return t;throw new Error("Expected span but got "+String(t)+".")}(ue(i,e)),i.base=a):r=(a=Ft(t,"accent")).base;var o=ue(r,e.havingCrampedStyle()),s=0;if(a.isShifty&&c.isCharacterBox(r)){var h=c.getBaseElem(r);s=D(ue(h,e.havingCrampedStyle())).skew}var l,m=Math.min(o.height,e.fontMetrics().xHeight);if(a.isStretchy)l=Oe(a,e),l=Dt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:o},{type:"elem",elem:l,wrapperClasses:["svg-align"],wrapperStyle:s>0?{width:"calc(100% - "+2*s+"em)",marginLeft:2*s+"em"}:void 0}]},e);else{var u,p;"\\vec"===a.label?(u=Dt.staticSvg("vec",e),p=Dt.svgData.vec[1]):((u=D(u=Dt.makeOrd({mode:a.mode,text:a.label},e,"textord"))).italic=0,p=u.width),l=Dt.makeSpan(["accent-body"],[u]);var d="\\textcircled"===a.label;d&&(l.classes.push("accent-full"),m=o.height);var f=s;d||(f-=p/2),l.style.left=f+"em","\\textcircled"===a.label&&(l.style.top=".2em"),l=Dt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:o},{type:"kern",size:-m},{type:"elem",elem:l}]},e)}var g=Dt.makeSpan(["mord","accent"],[l],e);return n?(n.children[0]=g,n.height=Math.max(g.height,n.height),n.classes[0]="mord",n):g},Le=function(t,e){var r=t.isStretchy?Re(t.label):new ve.MathNode("mo",[be(t.label,t.mode)]),a=new ve.MathNode("mover",[Me(t.base,e),r]);return a.setAttribute("accent","true"),a},He=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(function(t){return"\\"+t}).join("|"));Qt({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:function(t,e){var r=e[0],a=!He.test(t.funcName),n=!a||"\\widehat"===t.funcName||"\\widetilde"===t.funcName||"\\widecheck"===t.funcName;return{type:"accent",mode:t.parser.mode,label:t.funcName,isStretchy:a,isShifty:n,base:r}},htmlBuilder:Ee,mathmlBuilder:Le}),Qt({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!1},handler:function(t,e){var r=e[0];return{type:"accent",mode:t.parser.mode,label:t.funcName,isStretchy:!1,isShifty:!0,base:r}},htmlBuilder:Ee,mathmlBuilder:Le}),Qt({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:function(t,e){var r=t.parser,a=t.funcName,n=e[0];return{type:"accentUnder",mode:r.mode,label:a,base:n}},htmlBuilder:function(t,e){var r=ue(t.base,e),a=Oe(t,e),n="\\utilde"===t.label?.12:0,i=Dt.makeVList({positionType:"bottom",positionData:a.height+n,children:[{type:"elem",elem:a,wrapperClasses:["svg-align"]},{type:"kern",size:n},{type:"elem",elem:r}]},e);return Dt.makeSpan(["mord","accentunder"],[i],e)},mathmlBuilder:function(t,e){var r=Re(t.label),a=new ve.MathNode("munder",[Me(t.base,e),r]);return a.setAttribute("accentunder","true"),a}});var Pe=function(t){var e=new ve.MathNode("mpadded",t?[t]:[]);return e.setAttribute("width","+0.6em"),e.setAttribute("lspace","0.3em"),e};Qt({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium"],props:{numArgs:1,numOptionalArgs:1},handler:function(t,e,r){var a=t.parser,n=t.funcName;return{type:"xArrow",mode:a.mode,label:n,body:e[0],below:r[0]}},htmlBuilder:function(t,e){var r,a=e.style,n=e.havingStyle(a.sup()),i=Dt.wrapFragment(ue(t.body,n,e),e);i.classes.push("x-arrow-pad"),t.below&&(n=e.havingStyle(a.sub()),(r=Dt.wrapFragment(ue(t.below,n,e),e)).classes.push("x-arrow-pad"));var o,s=Oe(t,e),h=-e.fontMetrics().axisHeight+.5*s.height,l=-e.fontMetrics().axisHeight-.5*s.height-.111;if((i.depth>.25||"\\xleftequilibrium"===t.label)&&(l-=i.depth),r){var m=-e.fontMetrics().axisHeight+r.height+.5*s.height+.111;o=Dt.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:l},{type:"elem",elem:s,shift:h},{type:"elem",elem:r,shift:m}]},e)}else o=Dt.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:l},{type:"elem",elem:s,shift:h}]},e);return o.children[0].children[0].children[1].classes.push("svg-align"),Dt.makeSpan(["mrel","x-arrow"],[o],e)},mathmlBuilder:function(t,e){var r,a=Re(t.label);if(t.body){var n=Pe(Me(t.body,e));if(t.below){var i=Pe(Me(t.below,e));r=new ve.MathNode("munderover",[a,i,n])}else r=new ve.MathNode("mover",[a,n])}else if(t.below){var o=Pe(Me(t.below,e));r=new ve.MathNode("munder",[a,o])}else r=Pe(),r=new ve.MathNode("mover",[a,r]);return r}}),Qt({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler:function(t,e){for(var r=t.parser,a=Ft(e[0],"ordgroup").body,n="",i=0;i","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],Je=[0,1.2,1.8,2.4,3],Qe=[{type:"small",style:w.SCRIPTSCRIPT},{type:"small",style:w.SCRIPT},{type:"small",style:w.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],tr=[{type:"small",style:w.SCRIPTSCRIPT},{type:"small",style:w.SCRIPT},{type:"small",style:w.TEXT},{type:"stack"}],er=[{type:"small",style:w.SCRIPTSCRIPT},{type:"small",style:w.SCRIPT},{type:"small",style:w.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],rr=function(t){if("small"===t.type)return"Main-Regular";if("large"===t.type)return"Size"+t.size+"-Regular";if("stack"===t.type)return"Size4-Regular";throw new Error("Add support for delim type '"+t.type+"' here.")},ar=function(t,e,r,a){for(var n=Math.min(2,3-a.style.size);ne)return r[n]}return r[r.length-1]},nr=function(t,e,r,a,n,i){var o;"<"===t||"\\lt"===t||"\u27e8"===t?t="\\langle":">"!==t&&"\\gt"!==t&&"\u27e9"!==t||(t="\\rangle"),o=c.contains(Ke,t)?Qe:c.contains($e,t)?er:tr;var s=ar(t,e,o,a);return"small"===s.type?function(t,e,r,a,n,i){var o=Dt.makeSymbol(t,"Main-Regular",n,a),s=Ue(o,e,a,i);return r&&Ge(s,a,e),s}(t,s.style,r,a,n,i):"large"===s.type?Ye(t,s.size,r,a,n,i):_e(t,e,r,a,n,i)},ir=function(t,e){var r,a,n=e.havingBaseSizing(),i=ar("\\surd",t*n.sizeMultiplier,er,n),o=n.sizeMultiplier,s=Math.max(0,e.minRuleThickness-e.fontMetrics().sqrtRuleThickness),h=0,l=0,m=0;return"small"===i.type?(t<1?o=1:t<1.4&&(o=.7),l=(1+s)/o,(r=je("sqrtMain",h=(1+s+.08)/o,m=1e3+1e3*s+80,s,e)).style.minWidth="0.853em",a=.833/o):"large"===i.type?(m=1080*Je[i.size],l=(Je[i.size]+s)/o,h=(Je[i.size]+s+.08)/o,(r=je("sqrtSize"+i.size,h,m,s,e)).style.minWidth="1.02em",a=1/o):(h=t+s+.08,l=t+s,m=Math.floor(1e3*t+s)+80,(r=je("sqrtTall",h,m,s,e)).style.minWidth="0.742em",a=1.056),r.height=l,r.style.height=h+"em",{span:r,advanceWidth:a,ruleWidth:(e.fontMetrics().sqrtRuleThickness+s)*o}},or=function(t,e,r,a,n){if("<"===t||"\\lt"===t||"\u27e8"===t?t="\\langle":">"!==t&&"\\gt"!==t&&"\u27e9"!==t||(t="\\rangle"),c.contains($e,t)||c.contains(Ke,t))return Ye(t,e,!1,r,a,n);if(c.contains(Ze,t))return _e(t,Je[e],!1,r,a,n);throw new o("Illegal delimiter: '"+t+"'")},sr=nr,hr=function(t,e,r,a,n,i){var o=a.fontMetrics().axisHeight*a.sizeMultiplier,s=5/a.fontMetrics().ptPerEm,h=Math.max(e-o,r+o),l=Math.max(h/500*901,2*h-s);return nr(t,l,!0,a,n,i)},lr={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},mr=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230a","\u230b","\\lceil","\\rceil","\u2308","\u2309","<",">","\\langle","\u27e8","\\rangle","\u27e9","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27ee","\u27ef","\\lmoustache","\\rmoustache","\u23b0","\u23b1","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function cr(t,e){var r=Yt(t);if(r&&c.contains(mr,r.text))return r;throw new o("Invalid delimiter: '"+(r?r.text:JSON.stringify(t))+"' after '"+e.funcName+"'",t)}function ur(t){if(!t.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}Qt({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1},handler:function(t,e){var r=cr(e[0],t);return{type:"delimsizing",mode:t.parser.mode,size:lr[t.funcName].size,mclass:lr[t.funcName].mclass,delim:r.text}},htmlBuilder:function(t,e){return"."===t.delim?Dt.makeSpan([t.mclass]):or(t.delim,t.size,e,t.mode,[t.mclass])},mathmlBuilder:function(t){var e=[];"."!==t.delim&&e.push(be(t.delim,t.mode));var r=new ve.MathNode("mo",e);return"mopen"===t.mclass||"mclose"===t.mclass?r.setAttribute("fence","true"):r.setAttribute("fence","false"),r}}),Qt({type:"leftright-right",names:["\\right"],props:{numArgs:1},handler:function(t,e){var r=t.parser.gullet.macros.get("\\current@color");if(r&&"string"!=typeof r)throw new o("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:t.parser.mode,delim:cr(e[0],t).text,color:r}}}),Qt({type:"leftright",names:["\\left"],props:{numArgs:1},handler:function(t,e){var r=cr(e[0],t),a=t.parser;++a.leftrightDepth;var n=a.parseExpression(!1);--a.leftrightDepth,a.expect("\\right",!1);var i=Ft(a.parseFunction(),"leftright-right");return{type:"leftright",mode:a.mode,body:n,left:r.text,right:i.delim,rightColor:i.color}},htmlBuilder:function(t,e){ur(t);for(var r,a,n=se(t.body,e,!0,["mopen","mclose"]),i=0,o=0,s=!1,h=0;h-1?"mpadded":"menclose",[Me(t.body,e)]);switch(t.label){case"\\cancel":a.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":a.setAttribute("notation","downdiagonalstrike");break;case"\\sout":a.setAttribute("notation","horizontalstrike");break;case"\\fbox":a.setAttribute("notation","box");break;case"\\fcolorbox":case"\\colorbox":if(r=e.fontMetrics().fboxsep*e.fontMetrics().ptPerEm,a.setAttribute("width","+"+2*r+"pt"),a.setAttribute("height","+"+2*r+"pt"),a.setAttribute("lspace",r+"pt"),a.setAttribute("voffset",r+"pt"),"\\fcolorbox"===t.label){var n=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness);a.setAttribute("style","border: "+n+"em solid "+String(t.borderColor))}break;case"\\xcancel":a.setAttribute("notation","updiagonalstrike downdiagonalstrike")}return t.backgroundColor&&a.setAttribute("mathbackground",t.backgroundColor),a};Qt({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,greediness:3,argTypes:["color","text"]},handler:function(t,e,r){var a=t.parser,n=t.funcName,i=Ft(e[0],"color-token").color,o=e[1];return{type:"enclose",mode:a.mode,label:n,backgroundColor:i,body:o}},htmlBuilder:pr,mathmlBuilder:dr}),Qt({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,greediness:3,argTypes:["color","color","text"]},handler:function(t,e,r){var a=t.parser,n=t.funcName,i=Ft(e[0],"color-token").color,o=Ft(e[1],"color-token").color,s=e[2];return{type:"enclose",mode:a.mode,label:n,backgroundColor:o,borderColor:i,body:s}},htmlBuilder:pr,mathmlBuilder:dr}),Qt({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler:function(t,e){return{type:"enclose",mode:t.parser.mode,label:"\\fbox",body:e[0]}}}),Qt({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout"],props:{numArgs:1},handler:function(t,e,r){var a=t.parser,n=t.funcName,i=e[0];return{type:"enclose",mode:a.mode,label:n,body:i}},htmlBuilder:pr,mathmlBuilder:dr});var fr={};function gr(t){for(var e=t.type,r=t.names,a=t.props,n=t.handler,i=t.htmlBuilder,o=t.mathmlBuilder,s={type:e,numArgs:a.numArgs||0,greediness:1,allowedInText:!1,numOptionalArgs:0,handler:n},h=0;h0&&(b+=.25),l.push({pos:b,isDashed:t[e]})}for(y(i[0]),r=0;r0&&(M<(B+=v)&&(M=B),B=0),t.addJot&&(M+=f),z.height=S,z.depth=M,b+=S,z.pos=b,b+=M+B,h[r]=z,y(i[r+1])}var C,q,N=b/2+e.fontMetrics().axisHeight,I=t.cols||[],R=[];for(a=0,q=0;a=s)){var P=void 0;(a>0||t.hskipBeforeAndAfter)&&0!==(P=c.deflt(O.pregap,p))&&((C=Dt.makeSpan(["arraycolsep"],[])).style.width=P+"em",R.push(C));var D=[];for(r=0;r0){for(var G=Dt.makeLineSpan("hline",e,m),Y=Dt.makeLineSpan("hdashline",e,m),W=[{type:"elem",elem:h,shift:0}];l.length>0;){var X=l.pop(),_=X.pos-N;X.isDashed?W.push({type:"elem",elem:Y,shift:_}):W.push({type:"elem",elem:G,shift:_})}h=Dt.makeVList({positionType:"individualShift",children:W},e)}return Dt.makeSpan(["mord"],[h],e)},wr={c:"center ",l:"left ",r:"right "},kr=function(t,e){var r=new ve.MathNode("mtable",t.body.map(function(t){return new ve.MathNode("mtr",t.map(function(t){return new ve.MathNode("mtd",[Me(t,e)])}))})),a=.5===t.arraystretch?.1:.16+t.arraystretch-1+(t.addJot?.09:0);r.setAttribute("rowspacing",a+"em");var n="",i="";if(t.cols){var o=t.cols,s="",h=!1,l=0,m=o.length;"separator"===o[0].type&&(n+="top ",l=1),"separator"===o[o.length-1].type&&(n+="bottom ",m-=1);for(var c=l;c0?"left ":"",n+=g[g.length-1].length>0?"right ":"";for(var x=1;x0&&c&&(d=1),a[u]={type:"align",align:p,pregap:d,postgap:0}}return n.colSeparationType=c?"align":"alignat",n};gr({type:"array",names:["array","darray"],props:{numArgs:1},handler:function(t,e){var r={cols:(Yt(e[0])?[e[0]]:Ft(e[0],"ordgroup").body).map(function(t){var e=Gt(t).text;if(-1!=="lcr".indexOf(e))return{type:"align",align:e};if("|"===e)return{type:"separator",separator:"|"};if(":"===e)return{type:"separator",separator:":"};throw new o("Unknown column alignment: "+e,t)}),hskipBeforeAndAfter:!0};return vr(t.parser,r,br(t.envName))},htmlBuilder:yr,mathmlBuilder:kr}),gr({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix"],props:{numArgs:0},handler:function(t){var e={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[t.envName],r=vr(t.parser,{hskipBeforeAndAfter:!1},br(t.envName));return e?{type:"leftright",mode:t.mode,body:[r],left:e[0],right:e[1],rightColor:void 0}:r},htmlBuilder:yr,mathmlBuilder:kr}),gr({type:"array",names:["smallmatrix"],props:{numArgs:0},handler:function(t){var e=vr(t.parser,{arraystretch:.5},"script");return e.colSeparationType="small",e},htmlBuilder:yr,mathmlBuilder:kr}),gr({type:"array",names:["subarray"],props:{numArgs:1},handler:function(t,e){var r=(Yt(e[0])?[e[0]]:Ft(e[0],"ordgroup").body).map(function(t){var e=Gt(t).text;if(-1!=="lc".indexOf(e))return{type:"align",align:e};throw new o("Unknown column alignment: "+e,t)});if(r.length>1)throw new o("{subarray} can contain only one column");var a={cols:r,hskipBeforeAndAfter:!1,arraystretch:.5};if((a=vr(t.parser,a,"script")).body[0].length>1)throw new o("{subarray} can contain only one column");return a},htmlBuilder:yr,mathmlBuilder:kr}),gr({type:"array",names:["cases","dcases"],props:{numArgs:0},handler:function(t){var e=vr(t.parser,{arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},br(t.envName));return{type:"leftright",mode:t.mode,body:[e],left:"\\{",right:".",rightColor:void 0}},htmlBuilder:yr,mathmlBuilder:kr}),gr({type:"array",names:["aligned"],props:{numArgs:0},handler:Sr,htmlBuilder:yr,mathmlBuilder:kr}),gr({type:"array",names:["gathered"],props:{numArgs:0},handler:function(t){return vr(t.parser,{cols:[{type:"align",align:"c"}],addJot:!0},"display")},htmlBuilder:yr,mathmlBuilder:kr}),gr({type:"array",names:["alignedat"],props:{numArgs:1},handler:Sr,htmlBuilder:yr,mathmlBuilder:kr}),Qt({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler:function(t,e){throw new o(t.funcName+" valid only within array environment")}});var Mr=fr;Qt({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler:function(t,e){var r=t.parser,a=t.funcName,n=e[0];if("ordgroup"!==n.type)throw new o("Invalid environment name",n);for(var i="",s=0;s=w.SCRIPT.id?r.text():w.DISPLAY:"text"===t&&r.size===w.DISPLAY.size?r=w.TEXT:"script"===t?r=w.SCRIPT:"scriptscript"===t&&(r=w.SCRIPTSCRIPT),r},Rr=function(t,e){var r,a=Ir(t.size,e.style),n=a.fracNum(),i=a.fracDen();r=e.havingStyle(n);var o=ue(t.numer,r,e);if(t.continued){var s=8.5/e.fontMetrics().ptPerEm,h=3.5/e.fontMetrics().ptPerEm;o.height=o.height0?3*c:7*c,d=e.fontMetrics().denom1):(m>0?(u=e.fontMetrics().num2,p=c):(u=e.fontMetrics().num3,p=3*c),d=e.fontMetrics().denom2),l){var y=e.fontMetrics().axisHeight;u-o.depth-(y+.5*m)0&&(e="."===(e=t)?null:e),e};Qt({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,greediness:6,argTypes:["math","math","size","text","math","math"]},handler:function(t,e){var r=t.parser,a=e[4],n=e[5],i=Vt(e[0],"atom");i&&(i=Ut(e[0],"open"));var o=i?Lr(i.text):null,s=Vt(e[1],"atom");s&&(s=Ut(e[1],"close"));var h,l=s?Lr(s.text):null,m=Ft(e[2],"size"),c=null;h=!!m.isBlank||(c=m.value).number>0;var u="auto",p=Vt(e[3],"ordgroup");if(p){if(p.body.length>0){var d=Ft(p.body[0],"textord");u=Er[Number(d.text)]}}else p=Ft(e[3],"textord"),u=Er[Number(p.text)];return{type:"genfrac",mode:r.mode,numer:a,denom:n,continued:!1,hasBarLine:h,barSize:c,leftDelim:o,rightDelim:l,size:u}},htmlBuilder:Rr,mathmlBuilder:Or}),Qt({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler:function(t,e){var r=t.parser,a=(t.funcName,t.token);return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:Ft(e[0],"size").value,token:a}}}),Qt({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:function(t,e){var r=t.parser,a=(t.funcName,e[0]),n=function(t){if(!t)throw new Error("Expected non-null, but got "+String(t));return t}(Ft(e[1],"infix").size),i=e[2],o=n.number>0;return{type:"genfrac",mode:r.mode,numer:a,denom:i,continued:!1,hasBarLine:o,barSize:n,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:Rr,mathmlBuilder:Or});var Hr=function(t,e){var r,a,n=e.style,i=Vt(t,"supsub");i?(r=i.sup?ue(i.sup,e.havingStyle(n.sup()),e):ue(i.sub,e.havingStyle(n.sub()),e),a=Ft(i.base,"horizBrace")):a=Ft(t,"horizBrace");var o,s=ue(a.base,e.havingBaseStyle(w.DISPLAY)),h=Oe(a,e);if(a.isOver?(o=Dt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:h}]},e)).children[0].children[0].children[1].classes.push("svg-align"):(o=Dt.makeVList({positionType:"bottom",positionData:s.depth+.1+h.height,children:[{type:"elem",elem:h},{type:"kern",size:.1},{type:"elem",elem:s}]},e)).children[0].children[0].children[0].classes.push("svg-align"),r){var l=Dt.makeSpan(["mord",a.isOver?"mover":"munder"],[o],e);o=a.isOver?Dt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:l},{type:"kern",size:.2},{type:"elem",elem:r}]},e):Dt.makeVList({positionType:"bottom",positionData:l.depth+.2+r.height+r.depth,children:[{type:"elem",elem:r},{type:"kern",size:.2},{type:"elem",elem:l}]},e)}return Dt.makeSpan(["mord",a.isOver?"mover":"munder"],[o],e)};Qt({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler:function(t,e){var r=t.parser,a=t.funcName;return{type:"horizBrace",mode:r.mode,label:a,isOver:/^\\over/.test(a),base:e[0]}},htmlBuilder:Hr,mathmlBuilder:function(t,e){var r=Re(t.label);return new ve.MathNode(t.isOver?"mover":"munder",[Me(t.base,e),r])}}),Qt({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:function(t,e){var r=t.parser,a=e[1],n=Ft(e[0],"url").url;return r.settings.isTrusted({command:"\\href",url:n})?{type:"href",mode:r.mode,href:n,body:ee(a)}:r.formatUnsupportedCmd("\\href")},htmlBuilder:function(t,e){var r=se(t.body,e,!1);return Dt.makeAnchor(t.href,[],r,e)},mathmlBuilder:function(t,e){var r=Se(t.body,e);return r instanceof ge||(r=new ge("mrow",[r])),r.setAttribute("href",t.href),r}}),Qt({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:function(t,e){var r=t.parser,a=Ft(e[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:a}))return r.formatUnsupportedCmd("\\url");for(var n=[],i=0;i0&&(a=Tt(t.totalheight,e)-r,a=Number(a.toFixed(2)));var n=0;t.width.number>0&&(n=Tt(t.width,e));var i={height:r+a+"em"};n>0&&(i.width=n+"em"),a>0&&(i.verticalAlign=-a+"em");var o=new R(t.src,t.alt,i);return o.height=r,o.depth=a,o},mathmlBuilder:function(t,e){var r=new ve.MathNode("mglyph",[]);r.setAttribute("alt",t.alt);var a=Tt(t.height,e),n=0;if(t.totalheight.number>0&&(n=(n=Tt(t.totalheight,e)-a).toFixed(2),r.setAttribute("valign","-"+n+"em")),r.setAttribute("height",a+n+"em"),t.width.number>0){var i=Tt(t.width,e);r.setAttribute("width",i+"em")}return r.setAttribute("src",t.src),r}}),Qt({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],allowedInText:!0},handler:function(t,e){var r=t.parser,a=t.funcName,n=Ft(e[0],"size");if(r.settings.strict){var i="m"===a[1],o="mu"===n.value.unit;i?(o||r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" supports only mu units, not "+n.value.unit+" units"),"math"!==r.mode&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" works only in math mode")):o&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" doesn't support mu units")}return{type:"kern",mode:r.mode,dimension:n.value}},htmlBuilder:function(t,e){return Dt.makeGlue(t.dimension,e)},mathmlBuilder:function(t,e){var r=Tt(t.dimension,e);return new ve.SpaceNode(r)}}),Qt({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:function(t,e){var r=t.parser,a=t.funcName,n=e[0];return{type:"lap",mode:r.mode,alignment:a.slice(5),body:n}},htmlBuilder:function(t,e){var r;"clap"===t.alignment?(r=Dt.makeSpan([],[ue(t.body,e)]),r=Dt.makeSpan(["inner"],[r],e)):r=Dt.makeSpan(["inner"],[ue(t.body,e)]);var a=Dt.makeSpan(["fix"],[]),n=Dt.makeSpan([t.alignment],[r,a],e),i=Dt.makeSpan(["strut"]);return i.style.height=n.height+n.depth+"em",i.style.verticalAlign=-n.depth+"em",n.children.unshift(i),n=Dt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:n}]},e),Dt.makeSpan(["mord"],[n],e)},mathmlBuilder:function(t,e){var r=new ve.MathNode("mpadded",[Me(t.body,e)]);if("rlap"!==t.alignment){var a="llap"===t.alignment?"-1":"-0.5";r.setAttribute("lspace",a+"width")}return r.setAttribute("width","0px"),r}}),Qt({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler:function(t,e){var r=t.funcName,a=t.parser,n=a.mode;a.switchMode("math");var i="\\("===r?"\\)":"$",o=a.parseExpression(!1,i);return a.expect(i),a.switchMode(n),{type:"styling",mode:a.mode,style:"text",body:o}}}),Qt({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler:function(t,e){throw new o("Mismatched "+t.funcName)}});var Dr=function(t,e){switch(e.style.size){case w.DISPLAY.size:return t.display;case w.TEXT.size:return t.text;case w.SCRIPT.size:return t.script;case w.SCRIPTSCRIPT.size:return t.scriptscript;default:return t.text}};Qt({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4},handler:function(t,e){return{type:"mathchoice",mode:t.parser.mode,display:ee(e[0]),text:ee(e[1]),script:ee(e[2]),scriptscript:ee(e[3])}},htmlBuilder:function(t,e){var r=Dr(t,e),a=se(r,e,!1);return Dt.makeFragment(a)},mathmlBuilder:function(t,e){var r=Dr(t,e);return Se(r,e)}});var Fr=function(t,e,r,a,n,i,o){var s,h,l;if(t=Dt.makeSpan([],[t]),e){var m=ue(e,a.havingStyle(n.sup()),a);h={elem:m,kern:Math.max(a.fontMetrics().bigOpSpacing1,a.fontMetrics().bigOpSpacing3-m.depth)}}if(r){var c=ue(r,a.havingStyle(n.sub()),a);s={elem:c,kern:Math.max(a.fontMetrics().bigOpSpacing2,a.fontMetrics().bigOpSpacing4-c.height)}}if(h&&s){var u=a.fontMetrics().bigOpSpacing5+s.elem.height+s.elem.depth+s.kern+t.depth+o;l=Dt.makeVList({positionType:"bottom",positionData:u,children:[{type:"kern",size:a.fontMetrics().bigOpSpacing5},{type:"elem",elem:s.elem,marginLeft:-i+"em"},{type:"kern",size:s.kern},{type:"elem",elem:t},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:i+"em"},{type:"kern",size:a.fontMetrics().bigOpSpacing5}]},a)}else if(s){var p=t.height-o;l=Dt.makeVList({positionType:"top",positionData:p,children:[{type:"kern",size:a.fontMetrics().bigOpSpacing5},{type:"elem",elem:s.elem,marginLeft:-i+"em"},{type:"kern",size:s.kern},{type:"elem",elem:t}]},a)}else{if(!h)return t;var d=t.depth+o;l=Dt.makeVList({positionType:"bottom",positionData:d,children:[{type:"elem",elem:t},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:i+"em"},{type:"kern",size:a.fontMetrics().bigOpSpacing5}]},a)}return Dt.makeSpan(["mop","op-limits"],[l],a)},Vr=["\\smallint"],Ur=function(t,e){var r,a,n,i=!1,o=Vt(t,"supsub");o?(r=o.sup,a=o.sub,n=Ft(o.base,"op"),i=!0):n=Ft(t,"op");var s,h=e.style,l=!1;if(h.size===w.DISPLAY.size&&n.symbol&&!c.contains(Vr,n.name)&&(l=!0),n.symbol){var m=l?"Size2-Regular":"Size1-Regular",u="";if("\\oiint"!==n.name&&"\\oiiint"!==n.name||(u=n.name.substr(1),n.name="oiint"===u?"\\iint":"\\iiint"),s=Dt.makeSymbol(n.name,m,"math",e,["mop","op-symbol",l?"large-op":"small-op"]),u.length>0){var p=s.italic,d=Dt.staticSvg(u+"Size"+(l?"2":"1"),e);s=Dt.makeVList({positionType:"individualShift",children:[{type:"elem",elem:s,shift:0},{type:"elem",elem:d,shift:l?.08:0}]},e),n.name="\\"+u,s.classes.unshift("mop"),s.italic=p}}else if(n.body){var f=se(n.body,e,!0);1===f.length&&f[0]instanceof E?(s=f[0]).classes[0]="mop":s=Dt.makeSpan(["mop"],Dt.tryCombineChars(f),e)}else{for(var g=[],x=1;x0){for(var h=n.body.map(function(t){var e=t.text;return"string"==typeof e?{type:"textord",mode:t.mode,text:e}:t}),l=se(h,e.withFont("mathrm"),!0),m=0;m=0?s.setAttribute("height","+"+n+"em"):(s.setAttribute("height",n+"em"),s.setAttribute("depth","+"+-n+"em")),s.setAttribute("voffset",n+"em"),s}});var jr=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"];Qt({type:"sizing",names:jr,props:{numArgs:0,allowedInText:!0},handler:function(t,e){var r=t.breakOnTokenText,a=t.funcName,n=t.parser,i=n.parseExpression(!1,r);return{type:"sizing",mode:n.mode,size:jr.indexOf(a)+1,body:i}},htmlBuilder:function(t,e){var r=e.havingSize(t.size);return _r(t.body,r,e)},mathmlBuilder:function(t,e){var r=e.havingSize(t.size),a=ke(t.body,r),n=new ve.MathNode("mstyle",a);return n.setAttribute("mathsize",r.sizeMultiplier+"em"),n}}),Qt({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:function(t,e,r){var a=t.parser,n=!1,i=!1,o=r[0]&&Ft(r[0],"ordgroup");if(o)for(var s="",h=0;hr.height+r.depth+i&&(i=(i+c-r.height-r.depth)/2);var u=h.height-r.height-i-l;r.style.paddingLeft=m+"em";var p=Dt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+u)},{type:"elem",elem:h},{type:"kern",size:l}]},e);if(t.index){var d=e.havingStyle(w.SCRIPTSCRIPT),f=ue(t.index,d,e),g=.6*(p.height-p.depth),x=Dt.makeVList({positionType:"shift",positionData:-g,children:[{type:"elem",elem:f}]},e),v=Dt.makeSpan(["root"],[x]);return Dt.makeSpan(["mord","sqrt"],[v,p],e)}return Dt.makeSpan(["mord","sqrt"],[p],e)},mathmlBuilder:function(t,e){var r=t.body,a=t.index;return a?new ve.MathNode("mroot",[Me(r,e),Me(a,e)]):new ve.MathNode("msqrt",[Me(r,e)])}});var $r={display:w.DISPLAY,text:w.TEXT,script:w.SCRIPT,scriptscript:w.SCRIPTSCRIPT};Qt({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0},handler:function(t,e){var r=t.breakOnTokenText,a=t.funcName,n=t.parser,i=n.parseExpression(!0,r),o=a.slice(1,a.length-5);return{type:"styling",mode:n.mode,style:o,body:i}},htmlBuilder:function(t,e){var r=$r[t.style],a=e.havingStyle(r).withFont("");return _r(t.body,a,e)},mathmlBuilder:function(t,e){var r=$r[t.style],a=e.havingStyle(r),n=ke(t.body,a),i=new ve.MathNode("mstyle",n),o={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]}[t.style];return i.setAttribute("scriptlevel",o[0]),i.setAttribute("displaystyle",o[1]),i}});te({type:"supsub",htmlBuilder:function(t,e){var r=function(t,e){var r=t.base;return r?"op"===r.type?r.limits&&(e.style.size===w.DISPLAY.size||r.alwaysHandleSupSub)?Ur:null:"operatorname"===r.type?r.alwaysHandleSupSub&&(e.style.size===w.DISPLAY.size||r.limits)?Xr:null:"accent"===r.type?c.isCharacterBox(r.base)?Ee:null:"horizBrace"===r.type&&!t.sub===r.isOver?Hr:null:null}(t,e);if(r)return r(t,e);var a,n,i,o=t.base,s=t.sup,h=t.sub,l=ue(o,e),m=e.fontMetrics(),u=0,p=0,d=o&&c.isCharacterBox(o);if(s){var f=e.havingStyle(e.style.sup());a=ue(s,f,e),d||(u=l.height-f.fontMetrics().supDrop*f.sizeMultiplier/e.sizeMultiplier)}if(h){var g=e.havingStyle(e.style.sub());n=ue(h,g,e),d||(p=l.depth+g.fontMetrics().subDrop*g.sizeMultiplier/e.sizeMultiplier)}i=e.style===w.DISPLAY?m.sup1:e.style.cramped?m.sup3:m.sup2;var x,v=e.sizeMultiplier,b=.5/m.ptPerEm/v+"em",y=null;if(n){var k=t.base&&"op"===t.base.type&&t.base.name&&("\\oiint"===t.base.name||"\\oiiint"===t.base.name);(l instanceof E||k)&&(y=-l.italic+"em")}if(a&&n){u=Math.max(u,i,a.depth+.25*m.xHeight),p=Math.max(p,m.sub2);var S=4*m.defaultRuleThickness;if(u-a.depth-(n.height-p)0&&(u+=M,p-=M)}var z=[{type:"elem",elem:n,shift:p,marginRight:b,marginLeft:y},{type:"elem",elem:a,shift:-u,marginRight:b}];x=Dt.makeVList({positionType:"individualShift",children:z},e)}else if(n){p=Math.max(p,m.sub1,n.height-.8*m.xHeight);var A=[{type:"elem",elem:n,marginLeft:y,marginRight:b}];x=Dt.makeVList({positionType:"shift",positionData:p,children:A},e)}else{if(!a)throw new Error("supsub must have either sup or sub.");u=Math.max(u,i,a.depth+.25*m.xHeight),x=Dt.makeVList({positionType:"shift",positionData:-u,children:[{type:"elem",elem:a,marginRight:b}]},e)}var T=me(l,"right")||"mord";return Dt.makeSpan([T],[l,Dt.makeSpan(["msupsub"],[x])],e)},mathmlBuilder:function(t,e){var r,a=!1,n=Vt(t.base,"horizBrace");n&&!!t.sup===n.isOver&&(a=!0,r=n.isOver),!t.base||"op"!==t.base.type&&"operatorname"!==t.base.type||(t.base.parentIsSupSub=!0);var i,o=[Me(t.base,e)];if(t.sub&&o.push(Me(t.sub,e)),t.sup&&o.push(Me(t.sup,e)),a)i=r?"mover":"munder";else if(t.sub)if(t.sup){var s=t.base;i=s&&"op"===s.type&&s.limits&&e.style===w.DISPLAY?"munderover":s&&"operatorname"===s.type&&s.alwaysHandleSupSub&&(e.style===w.DISPLAY||s.limits)?"munderover":"msubsup"}else{var h=t.base;i=h&&"op"===h.type&&h.limits&&(e.style===w.DISPLAY||h.alwaysHandleSupSub)?"munder":h&&"operatorname"===h.type&&h.alwaysHandleSupSub&&(h.limits||e.style===w.DISPLAY)?"munder":"msub"}else{var l=t.base;i=l&&"op"===l.type&&l.limits&&(e.style===w.DISPLAY||l.alwaysHandleSupSub)?"mover":l&&"operatorname"===l.type&&l.alwaysHandleSupSub&&(l.limits||e.style===w.DISPLAY)?"mover":"msup"}return new ve.MathNode(i,o)}}),te({type:"atom",htmlBuilder:function(t,e){return Dt.mathsym(t.text,t.mode,e,["m"+t.family])},mathmlBuilder:function(t,e){var r=new ve.MathNode("mo",[be(t.text,t.mode)]);if("bin"===t.family){var a=we(t,e);"bold-italic"===a&&r.setAttribute("mathvariant",a)}else"punct"===t.family?r.setAttribute("separator","true"):"open"!==t.family&&"close"!==t.family||r.setAttribute("stretchy","false");return r}});var Zr={mi:"italic",mn:"normal",mtext:"normal"};te({type:"mathord",htmlBuilder:function(t,e){return Dt.makeOrd(t,e,"mathord")},mathmlBuilder:function(t,e){var r=new ve.MathNode("mi",[be(t.text,t.mode,e)]),a=we(t,e)||"italic";return a!==Zr[r.type]&&r.setAttribute("mathvariant",a),r}}),te({type:"textord",htmlBuilder:function(t,e){return Dt.makeOrd(t,e,"textord")},mathmlBuilder:function(t,e){var r,a=be(t.text,t.mode,e),n=we(t,e)||"normal";return r="text"===t.mode?new ve.MathNode("mtext",[a]):/[0-9]/.test(t.text)?new ve.MathNode("mn",[a]):"\\prime"===t.text?new ve.MathNode("mo",[a]):new ve.MathNode("mi",[a]),n!==Zr[r.type]&&r.setAttribute("mathvariant",n),r}});var Kr={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},Jr={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};te({type:"spacing",htmlBuilder:function(t,e){if(Jr.hasOwnProperty(t.text)){var r=Jr[t.text].className||"";if("text"===t.mode){var a=Dt.makeOrd(t,e,"textord");return a.classes.push(r),a}return Dt.makeSpan(["mspace",r],[Dt.mathsym(t.text,t.mode,e)],e)}if(Kr.hasOwnProperty(t.text))return Dt.makeSpan(["mspace",Kr[t.text]],[],e);throw new o('Unknown type of space "'+t.text+'"')},mathmlBuilder:function(t,e){if(!Jr.hasOwnProperty(t.text)){if(Kr.hasOwnProperty(t.text))return new ve.MathNode("mspace");throw new o('Unknown type of space "'+t.text+'"')}return new ve.MathNode("mtext",[new ve.TextNode("\xa0")])}});var Qr=function(){var t=new ve.MathNode("mtd",[]);return t.setAttribute("width","50%"),t};te({type:"tag",mathmlBuilder:function(t,e){var r=new ve.MathNode("mtable",[new ve.MathNode("mtr",[Qr(),new ve.MathNode("mtd",[Se(t.body,e)]),Qr(),new ve.MathNode("mtd",[Se(t.tag,e)])])]);return r.setAttribute("width","100%"),r}});var ta={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},ea={"\\textbf":"textbf","\\textmd":"textmd"},ra={"\\textit":"textit","\\textup":"textup"},aa=function(t,e){var r=t.font;return r?ta[r]?e.withTextFontFamily(ta[r]):ea[r]?e.withTextFontWeight(ea[r]):e.withTextFontShape(ra[r]):e};Qt({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup"],props:{numArgs:1,argTypes:["text"],greediness:2,allowedInText:!0},handler:function(t,e){var r=t.parser,a=t.funcName,n=e[0];return{type:"text",mode:r.mode,body:ee(n),font:a}},htmlBuilder:function(t,e){var r=aa(t,e),a=se(t.body,r,!0);return Dt.makeSpan(["mord","text"],Dt.tryCombineChars(a),r)},mathmlBuilder:function(t,e){var r=aa(t,e);return Se(t.body,r)}}),Qt({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler:function(t,e){return{type:"underline",mode:t.parser.mode,body:e[0]}},htmlBuilder:function(t,e){var r=ue(t.body,e),a=Dt.makeLineSpan("underline-line",e),n=e.fontMetrics().defaultRuleThickness,i=Dt.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:n},{type:"elem",elem:a},{type:"kern",size:3*n},{type:"elem",elem:r}]},e);return Dt.makeSpan(["mord","underline"],[i],e)},mathmlBuilder:function(t,e){var r=new ve.MathNode("mo",[new ve.TextNode("\u203e")]);r.setAttribute("stretchy","true");var a=new ve.MathNode("munder",[Me(t.body,e),r]);return a.setAttribute("accentunder","true"),a}}),Qt({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler:function(t,e,r){throw new o("\\verb ended by end of line instead of matching delimiter")},htmlBuilder:function(t,e){for(var r=na(t),a=[],n=e.havingStyle(e.style.text()),i=0;i0&&(this.undefStack[this.undefStack.length-1][t]=e)}else{var n=this.undefStack[this.undefStack.length-1];n&&!n.hasOwnProperty(t)&&(n[t]=this.current[t])}this.current[t]=e},t}(),ca={},ua=ca;function pa(t,e){ca[t]=e}pa("\\@firstoftwo",function(t){return{tokens:t.consumeArgs(2)[0],numArgs:0}}),pa("\\@secondoftwo",function(t){return{tokens:t.consumeArgs(2)[1],numArgs:0}}),pa("\\@ifnextchar",function(t){var e=t.consumeArgs(3),r=t.future();return 1===e[0].length&&e[0][0].text===r.text?{tokens:e[1],numArgs:0}:{tokens:e[2],numArgs:0}}),pa("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}"),pa("\\TextOrMath",function(t){var e=t.consumeArgs(2);return"text"===t.mode?{tokens:e[0],numArgs:0}:{tokens:e[1],numArgs:0}});var da={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};pa("\\char",function(t){var e,r=t.popToken(),a="";if("'"===r.text)e=8,r=t.popToken();else if('"'===r.text)e=16,r=t.popToken();else if("`"===r.text)if("\\"===(r=t.popToken()).text[0])a=r.text.charCodeAt(1);else{if("EOF"===r.text)throw new o("\\char` missing argument");a=r.text.charCodeAt(0)}else e=10;if(e){if(null==(a=da[r.text])||a>=e)throw new o("Invalid base-"+e+" digit "+r.text);for(var n;null!=(n=da[t.future().text])&&n":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};pa("\\dots",function(t){var e="\\dotso",r=t.expandAfterFuture().text;return r in xa?e=xa[r]:"\\not"===r.substr(0,4)?e="\\dotsb":r in j.math&&c.contains(["bin","rel"],j.math[r].group)&&(e="\\dotsb"),e});var va={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};pa("\\dotso",function(t){return t.future().text in va?"\\ldots\\,":"\\ldots"}),pa("\\dotsc",function(t){var e=t.future().text;return e in va&&","!==e?"\\ldots\\,":"\\ldots"}),pa("\\cdots",function(t){return t.future().text in va?"\\@cdots\\,":"\\@cdots"}),pa("\\dotsb","\\cdots"),pa("\\dotsm","\\cdots"),pa("\\dotsi","\\!\\cdots"),pa("\\dotsx","\\ldots\\,"),pa("\\DOTSI","\\relax"),pa("\\DOTSB","\\relax"),pa("\\DOTSX","\\relax"),pa("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax"),pa("\\,","\\tmspace+{3mu}{.1667em}"),pa("\\thinspace","\\,"),pa("\\>","\\mskip{4mu}"),pa("\\:","\\tmspace+{4mu}{.2222em}"),pa("\\medspace","\\:"),pa("\\;","\\tmspace+{5mu}{.2777em}"),pa("\\thickspace","\\;"),pa("\\!","\\tmspace-{3mu}{.1667em}"),pa("\\negthinspace","\\!"),pa("\\negmedspace","\\tmspace-{4mu}{.2222em}"),pa("\\negthickspace","\\tmspace-{5mu}{.277em}"),pa("\\enspace","\\kern.5em "),pa("\\enskip","\\hskip.5em\\relax"),pa("\\quad","\\hskip1em\\relax"),pa("\\qquad","\\hskip2em\\relax"),pa("\\tag","\\@ifstar\\tag@literal\\tag@paren"),pa("\\tag@paren","\\tag@literal{({#1})}"),pa("\\tag@literal",function(t){if(t.macros.get("\\df@tag"))throw new o("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"}),pa("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}"),pa("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)"),pa("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}"),pa("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1"),pa("\\pmb","\\html@mathml{\\@binrel{#1}{\\mathrlap{#1}\\kern0.5px#1}}{\\mathbf{#1}}"),pa("\\\\","\\newline"),pa("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");var ba=F["Main-Regular"]["T".charCodeAt(0)][1]-.7*F["Main-Regular"]["A".charCodeAt(0)][1]+"em";pa("\\LaTeX","\\textrm{\\html@mathml{L\\kern-.36em\\raisebox{"+ba+"}{\\scriptstyle A}\\kern-.15em\\TeX}{LaTeX}}"),pa("\\KaTeX","\\textrm{\\html@mathml{K\\kern-.17em\\raisebox{"+ba+"}{\\scriptstyle A}\\kern-.15em\\TeX}{KaTeX}}"),pa("\\hspace","\\@ifstar\\@hspacer\\@hspace"),pa("\\@hspace","\\hskip #1\\relax"),pa("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax"),pa("\\ordinarycolon",":"),pa("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}"),pa("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}'),pa("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}'),pa("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}'),pa("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}'),pa("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}'),pa("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}'),pa("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}'),pa("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}'),pa("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}'),pa("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}'),pa("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}'),pa("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}'),pa("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}'),pa("\u2237","\\dblcolon"),pa("\u2239","\\eqcolon"),pa("\u2254","\\coloneqq"),pa("\u2255","\\eqqcolon"),pa("\u2a74","\\Coloneqq"),pa("\\ratio","\\vcentcolon"),pa("\\coloncolon","\\dblcolon"),pa("\\colonequals","\\coloneqq"),pa("\\coloncolonequals","\\Coloneqq"),pa("\\equalscolon","\\eqqcolon"),pa("\\equalscoloncolon","\\Eqqcolon"),pa("\\colonminus","\\coloneq"),pa("\\coloncolonminus","\\Coloneq"),pa("\\minuscolon","\\eqcolon"),pa("\\minuscoloncolon","\\Eqcolon"),pa("\\coloncolonapprox","\\Colonapprox"),pa("\\coloncolonsim","\\Colonsim"),pa("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),pa("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}"),pa("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),pa("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}"),pa("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220c}}"),pa("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}"),pa("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}"),pa("\\gvertneqq","\\html@mathml{\\@gvertneqq}{\u2269}"),pa("\\lvertneqq","\\html@mathml{\\@lvertneqq}{\u2268}"),pa("\\ngeqq","\\html@mathml{\\@ngeqq}{\u2271}"),pa("\\ngeqslant","\\html@mathml{\\@ngeqslant}{\u2271}"),pa("\\nleqq","\\html@mathml{\\@nleqq}{\u2270}"),pa("\\nleqslant","\\html@mathml{\\@nleqslant}{\u2270}"),pa("\\nshortmid","\\html@mathml{\\@nshortmid}{\u2224}"),pa("\\nshortparallel","\\html@mathml{\\@nshortparallel}{\u2226}"),pa("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{\u2288}"),pa("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{\u2289}"),pa("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{\u228a}"),pa("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{\u2acb}"),pa("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{\u228b}"),pa("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{\u2acc}"),pa("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27e6}}"),pa("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27e7}}"),pa("\u27e6","\\llbracket"),pa("\u27e7","\\rrbracket"),pa("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}"),pa("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}"),pa("\u2983","\\lBrace"),pa("\u2984","\\rBrace"),pa("\\darr","\\downarrow"),pa("\\dArr","\\Downarrow"),pa("\\Darr","\\Downarrow"),pa("\\lang","\\langle"),pa("\\rang","\\rangle"),pa("\\uarr","\\uparrow"),pa("\\uArr","\\Uparrow"),pa("\\Uarr","\\Uparrow"),pa("\\N","\\mathbb{N}"),pa("\\R","\\mathbb{R}"),pa("\\Z","\\mathbb{Z}"),pa("\\alef","\\aleph"),pa("\\alefsym","\\aleph"),pa("\\Alpha","\\mathrm{A}"),pa("\\Beta","\\mathrm{B}"),pa("\\bull","\\bullet"),pa("\\Chi","\\mathrm{X}"),pa("\\clubs","\\clubsuit"),pa("\\cnums","\\mathbb{C}"),pa("\\Complex","\\mathbb{C}"),pa("\\Dagger","\\ddagger"),pa("\\diamonds","\\diamondsuit"),pa("\\empty","\\emptyset"),pa("\\Epsilon","\\mathrm{E}"),pa("\\Eta","\\mathrm{H}"),pa("\\exist","\\exists"),pa("\\harr","\\leftrightarrow"),pa("\\hArr","\\Leftrightarrow"),pa("\\Harr","\\Leftrightarrow"),pa("\\hearts","\\heartsuit"),pa("\\image","\\Im"),pa("\\infin","\\infty"),pa("\\Iota","\\mathrm{I}"),pa("\\isin","\\in"),pa("\\Kappa","\\mathrm{K}"),pa("\\larr","\\leftarrow"),pa("\\lArr","\\Leftarrow"),pa("\\Larr","\\Leftarrow"),pa("\\lrarr","\\leftrightarrow"),pa("\\lrArr","\\Leftrightarrow"),pa("\\Lrarr","\\Leftrightarrow"),pa("\\Mu","\\mathrm{M}"),pa("\\natnums","\\mathbb{N}"),pa("\\Nu","\\mathrm{N}"),pa("\\Omicron","\\mathrm{O}"),pa("\\plusmn","\\pm"),pa("\\rarr","\\rightarrow"),pa("\\rArr","\\Rightarrow"),pa("\\Rarr","\\Rightarrow"),pa("\\real","\\Re"),pa("\\reals","\\mathbb{R}"),pa("\\Reals","\\mathbb{R}"),pa("\\Rho","\\mathrm{P}"),pa("\\sdot","\\cdot"),pa("\\sect","\\S"),pa("\\spades","\\spadesuit"),pa("\\sub","\\subset"),pa("\\sube","\\subseteq"),pa("\\supe","\\supseteq"),pa("\\Tau","\\mathrm{T}"),pa("\\thetasym","\\vartheta"),pa("\\weierp","\\wp"),pa("\\Zeta","\\mathrm{Z}"),pa("\\argmin","\\DOTSB\\operatorname*{arg\\,min}"),pa("\\argmax","\\DOTSB\\operatorname*{arg\\,max}"),pa("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits"),pa("\\blue","\\textcolor{##6495ed}{#1}"),pa("\\orange","\\textcolor{##ffa500}{#1}"),pa("\\pink","\\textcolor{##ff00af}{#1}"),pa("\\red","\\textcolor{##df0030}{#1}"),pa("\\green","\\textcolor{##28ae7b}{#1}"),pa("\\gray","\\textcolor{gray}{#1}"),pa("\\purple","\\textcolor{##9d38bd}{#1}"),pa("\\blueA","\\textcolor{##ccfaff}{#1}"),pa("\\blueB","\\textcolor{##80f6ff}{#1}"),pa("\\blueC","\\textcolor{##63d9ea}{#1}"),pa("\\blueD","\\textcolor{##11accd}{#1}"),pa("\\blueE","\\textcolor{##0c7f99}{#1}"),pa("\\tealA","\\textcolor{##94fff5}{#1}"),pa("\\tealB","\\textcolor{##26edd5}{#1}"),pa("\\tealC","\\textcolor{##01d1c1}{#1}"),pa("\\tealD","\\textcolor{##01a995}{#1}"),pa("\\tealE","\\textcolor{##208170}{#1}"),pa("\\greenA","\\textcolor{##b6ffb0}{#1}"),pa("\\greenB","\\textcolor{##8af281}{#1}"),pa("\\greenC","\\textcolor{##74cf70}{#1}"),pa("\\greenD","\\textcolor{##1fab54}{#1}"),pa("\\greenE","\\textcolor{##0d923f}{#1}"),pa("\\goldA","\\textcolor{##ffd0a9}{#1}"),pa("\\goldB","\\textcolor{##ffbb71}{#1}"),pa("\\goldC","\\textcolor{##ff9c39}{#1}"),pa("\\goldD","\\textcolor{##e07d10}{#1}"),pa("\\goldE","\\textcolor{##a75a05}{#1}"),pa("\\redA","\\textcolor{##fca9a9}{#1}"),pa("\\redB","\\textcolor{##ff8482}{#1}"),pa("\\redC","\\textcolor{##f9685d}{#1}"),pa("\\redD","\\textcolor{##e84d39}{#1}"),pa("\\redE","\\textcolor{##bc2612}{#1}"),pa("\\maroonA","\\textcolor{##ffbde0}{#1}"),pa("\\maroonB","\\textcolor{##ff92c6}{#1}"),pa("\\maroonC","\\textcolor{##ed5fa6}{#1}"),pa("\\maroonD","\\textcolor{##ca337c}{#1}"),pa("\\maroonE","\\textcolor{##9e034e}{#1}"),pa("\\purpleA","\\textcolor{##ddd7ff}{#1}"),pa("\\purpleB","\\textcolor{##c6b9fc}{#1}"),pa("\\purpleC","\\textcolor{##aa87ff}{#1}"),pa("\\purpleD","\\textcolor{##7854ab}{#1}"),pa("\\purpleE","\\textcolor{##543b78}{#1}"),pa("\\mintA","\\textcolor{##f5f9e8}{#1}"),pa("\\mintB","\\textcolor{##edf2df}{#1}"),pa("\\mintC","\\textcolor{##e0e5cc}{#1}"),pa("\\grayA","\\textcolor{##f6f7f7}{#1}"),pa("\\grayB","\\textcolor{##f0f1f2}{#1}"),pa("\\grayC","\\textcolor{##e3e5e6}{#1}"),pa("\\grayD","\\textcolor{##d6d8da}{#1}"),pa("\\grayE","\\textcolor{##babec2}{#1}"),pa("\\grayF","\\textcolor{##888d93}{#1}"),pa("\\grayG","\\textcolor{##626569}{#1}"),pa("\\grayH","\\textcolor{##3b3e40}{#1}"),pa("\\grayI","\\textcolor{##21242c}{#1}"),pa("\\kaBlue","\\textcolor{##314453}{#1}"),pa("\\kaGreen","\\textcolor{##71B307}{#1}");var ya={"\\relax":!0,"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0},wa=function(){function t(t,e,r){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=e,this.expansionCount=0,this.feed(t),this.macros=new ma(ua,e.macros),this.mode=r,this.stack=[]}var e=t.prototype;return e.feed=function(t){this.lexer=new la(t,this.settings)},e.switchMode=function(t){this.mode=t},e.beginGroup=function(){this.macros.beginGroup()},e.endGroup=function(){this.macros.endGroup()},e.future=function(){return 0===this.stack.length&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]},e.popToken=function(){return this.future(),this.stack.pop()},e.pushToken=function(t){this.stack.push(t)},e.pushTokens=function(t){var e;(e=this.stack).push.apply(e,t)},e.consumeSpaces=function(){for(;;){if(" "!==this.future().text)break;this.stack.pop()}},e.consumeArgs=function(t){for(var e=[],r=0;rthis.settings.maxExpand)throw new o("Too many expansions: infinite loop or need to increase maxExpand setting");var a=r.tokens;if(r.numArgs)for(var n=this.consumeArgs(r.numArgs),i=(a=a.slice()).length-1;i>=0;--i){var s=a[i];if("#"===s.text){if(0===i)throw new o("Incomplete placeholder at end of macro body",s);if("#"===(s=a[--i]).text)a.splice(i+1,1);else{if(!/^[1-9]$/.test(s.text))throw new o("Not a valid argument number",s);var h;(h=a).splice.apply(h,[i,2].concat(n[+s.text-1]))}}}return this.pushTokens(a),a},e.expandAfterFuture=function(){return this.expandOnce(),this.future()},e.expandNextToken=function(){for(;;){var t=this.expandOnce();if(t instanceof n){if("\\relax"!==t.text)return this.stack.pop();this.stack.pop()}}throw new Error},e.expandMacro=function(t){if(this.macros.get(t)){var e=[],r=this.stack.length;for(this.pushToken(new n(t));this.stack.length>r;){this.expandOnce()instanceof n&&e.push(this.stack.pop())}return e}},e.expandMacroAsText=function(t){var e=this.expandMacro(t);return e?e.map(function(t){return t.text}).join(""):e},e._getExpansion=function(t){var e=this.macros.get(t);if(null==e)return e;var r="function"==typeof e?e(this):e;if("string"==typeof r){var a=0;if(-1!==r.indexOf("#"))for(var n=r.replace(/##/g,"");-1!==n.indexOf("#"+(a+1));)++a;for(var i=new la(r,this.settings),o=[],s=i.lex();"EOF"!==s.text;)o.push(s),s=i.lex();return o.reverse(),{tokens:o,numArgs:a}}return r},e.isDefined=function(t){return this.macros.has(t)||ia.hasOwnProperty(t)||j.math.hasOwnProperty(t)||j.text.hasOwnProperty(t)||ya.hasOwnProperty(t)},t}(),ka={"\u0301":{text:"\\'",math:"\\acute"},"\u0300":{text:"\\`",math:"\\grave"},"\u0308":{text:'\\"',math:"\\ddot"},"\u0303":{text:"\\~",math:"\\tilde"},"\u0304":{text:"\\=",math:"\\bar"},"\u0306":{text:"\\u",math:"\\breve"},"\u030c":{text:"\\v",math:"\\check"},"\u0302":{text:"\\^",math:"\\hat"},"\u0307":{text:"\\.",math:"\\dot"},"\u030a":{text:"\\r",math:"\\mathring"},"\u030b":{text:"\\H"}},Sa={"\xe1":"a\u0301","\xe0":"a\u0300","\xe4":"a\u0308","\u01df":"a\u0308\u0304","\xe3":"a\u0303","\u0101":"a\u0304","\u0103":"a\u0306","\u1eaf":"a\u0306\u0301","\u1eb1":"a\u0306\u0300","\u1eb5":"a\u0306\u0303","\u01ce":"a\u030c","\xe2":"a\u0302","\u1ea5":"a\u0302\u0301","\u1ea7":"a\u0302\u0300","\u1eab":"a\u0302\u0303","\u0227":"a\u0307","\u01e1":"a\u0307\u0304","\xe5":"a\u030a","\u01fb":"a\u030a\u0301","\u1e03":"b\u0307","\u0107":"c\u0301","\u010d":"c\u030c","\u0109":"c\u0302","\u010b":"c\u0307","\u010f":"d\u030c","\u1e0b":"d\u0307","\xe9":"e\u0301","\xe8":"e\u0300","\xeb":"e\u0308","\u1ebd":"e\u0303","\u0113":"e\u0304","\u1e17":"e\u0304\u0301","\u1e15":"e\u0304\u0300","\u0115":"e\u0306","\u011b":"e\u030c","\xea":"e\u0302","\u1ebf":"e\u0302\u0301","\u1ec1":"e\u0302\u0300","\u1ec5":"e\u0302\u0303","\u0117":"e\u0307","\u1e1f":"f\u0307","\u01f5":"g\u0301","\u1e21":"g\u0304","\u011f":"g\u0306","\u01e7":"g\u030c","\u011d":"g\u0302","\u0121":"g\u0307","\u1e27":"h\u0308","\u021f":"h\u030c","\u0125":"h\u0302","\u1e23":"h\u0307","\xed":"i\u0301","\xec":"i\u0300","\xef":"i\u0308","\u1e2f":"i\u0308\u0301","\u0129":"i\u0303","\u012b":"i\u0304","\u012d":"i\u0306","\u01d0":"i\u030c","\xee":"i\u0302","\u01f0":"j\u030c","\u0135":"j\u0302","\u1e31":"k\u0301","\u01e9":"k\u030c","\u013a":"l\u0301","\u013e":"l\u030c","\u1e3f":"m\u0301","\u1e41":"m\u0307","\u0144":"n\u0301","\u01f9":"n\u0300","\xf1":"n\u0303","\u0148":"n\u030c","\u1e45":"n\u0307","\xf3":"o\u0301","\xf2":"o\u0300","\xf6":"o\u0308","\u022b":"o\u0308\u0304","\xf5":"o\u0303","\u1e4d":"o\u0303\u0301","\u1e4f":"o\u0303\u0308","\u022d":"o\u0303\u0304","\u014d":"o\u0304","\u1e53":"o\u0304\u0301","\u1e51":"o\u0304\u0300","\u014f":"o\u0306","\u01d2":"o\u030c","\xf4":"o\u0302","\u1ed1":"o\u0302\u0301","\u1ed3":"o\u0302\u0300","\u1ed7":"o\u0302\u0303","\u022f":"o\u0307","\u0231":"o\u0307\u0304","\u0151":"o\u030b","\u1e55":"p\u0301","\u1e57":"p\u0307","\u0155":"r\u0301","\u0159":"r\u030c","\u1e59":"r\u0307","\u015b":"s\u0301","\u1e65":"s\u0301\u0307","\u0161":"s\u030c","\u1e67":"s\u030c\u0307","\u015d":"s\u0302","\u1e61":"s\u0307","\u1e97":"t\u0308","\u0165":"t\u030c","\u1e6b":"t\u0307","\xfa":"u\u0301","\xf9":"u\u0300","\xfc":"u\u0308","\u01d8":"u\u0308\u0301","\u01dc":"u\u0308\u0300","\u01d6":"u\u0308\u0304","\u01da":"u\u0308\u030c","\u0169":"u\u0303","\u1e79":"u\u0303\u0301","\u016b":"u\u0304","\u1e7b":"u\u0304\u0308","\u016d":"u\u0306","\u01d4":"u\u030c","\xfb":"u\u0302","\u016f":"u\u030a","\u0171":"u\u030b","\u1e7d":"v\u0303","\u1e83":"w\u0301","\u1e81":"w\u0300","\u1e85":"w\u0308","\u0175":"w\u0302","\u1e87":"w\u0307","\u1e98":"w\u030a","\u1e8d":"x\u0308","\u1e8b":"x\u0307","\xfd":"y\u0301","\u1ef3":"y\u0300","\xff":"y\u0308","\u1ef9":"y\u0303","\u0233":"y\u0304","\u0177":"y\u0302","\u1e8f":"y\u0307","\u1e99":"y\u030a","\u017a":"z\u0301","\u017e":"z\u030c","\u1e91":"z\u0302","\u017c":"z\u0307","\xc1":"A\u0301","\xc0":"A\u0300","\xc4":"A\u0308","\u01de":"A\u0308\u0304","\xc3":"A\u0303","\u0100":"A\u0304","\u0102":"A\u0306","\u1eae":"A\u0306\u0301","\u1eb0":"A\u0306\u0300","\u1eb4":"A\u0306\u0303","\u01cd":"A\u030c","\xc2":"A\u0302","\u1ea4":"A\u0302\u0301","\u1ea6":"A\u0302\u0300","\u1eaa":"A\u0302\u0303","\u0226":"A\u0307","\u01e0":"A\u0307\u0304","\xc5":"A\u030a","\u01fa":"A\u030a\u0301","\u1e02":"B\u0307","\u0106":"C\u0301","\u010c":"C\u030c","\u0108":"C\u0302","\u010a":"C\u0307","\u010e":"D\u030c","\u1e0a":"D\u0307","\xc9":"E\u0301","\xc8":"E\u0300","\xcb":"E\u0308","\u1ebc":"E\u0303","\u0112":"E\u0304","\u1e16":"E\u0304\u0301","\u1e14":"E\u0304\u0300","\u0114":"E\u0306","\u011a":"E\u030c","\xca":"E\u0302","\u1ebe":"E\u0302\u0301","\u1ec0":"E\u0302\u0300","\u1ec4":"E\u0302\u0303","\u0116":"E\u0307","\u1e1e":"F\u0307","\u01f4":"G\u0301","\u1e20":"G\u0304","\u011e":"G\u0306","\u01e6":"G\u030c","\u011c":"G\u0302","\u0120":"G\u0307","\u1e26":"H\u0308","\u021e":"H\u030c","\u0124":"H\u0302","\u1e22":"H\u0307","\xcd":"I\u0301","\xcc":"I\u0300","\xcf":"I\u0308","\u1e2e":"I\u0308\u0301","\u0128":"I\u0303","\u012a":"I\u0304","\u012c":"I\u0306","\u01cf":"I\u030c","\xce":"I\u0302","\u0130":"I\u0307","\u0134":"J\u0302","\u1e30":"K\u0301","\u01e8":"K\u030c","\u0139":"L\u0301","\u013d":"L\u030c","\u1e3e":"M\u0301","\u1e40":"M\u0307","\u0143":"N\u0301","\u01f8":"N\u0300","\xd1":"N\u0303","\u0147":"N\u030c","\u1e44":"N\u0307","\xd3":"O\u0301","\xd2":"O\u0300","\xd6":"O\u0308","\u022a":"O\u0308\u0304","\xd5":"O\u0303","\u1e4c":"O\u0303\u0301","\u1e4e":"O\u0303\u0308","\u022c":"O\u0303\u0304","\u014c":"O\u0304","\u1e52":"O\u0304\u0301","\u1e50":"O\u0304\u0300","\u014e":"O\u0306","\u01d1":"O\u030c","\xd4":"O\u0302","\u1ed0":"O\u0302\u0301","\u1ed2":"O\u0302\u0300","\u1ed6":"O\u0302\u0303","\u022e":"O\u0307","\u0230":"O\u0307\u0304","\u0150":"O\u030b","\u1e54":"P\u0301","\u1e56":"P\u0307","\u0154":"R\u0301","\u0158":"R\u030c","\u1e58":"R\u0307","\u015a":"S\u0301","\u1e64":"S\u0301\u0307","\u0160":"S\u030c","\u1e66":"S\u030c\u0307","\u015c":"S\u0302","\u1e60":"S\u0307","\u0164":"T\u030c","\u1e6a":"T\u0307","\xda":"U\u0301","\xd9":"U\u0300","\xdc":"U\u0308","\u01d7":"U\u0308\u0301","\u01db":"U\u0308\u0300","\u01d5":"U\u0308\u0304","\u01d9":"U\u0308\u030c","\u0168":"U\u0303","\u1e78":"U\u0303\u0301","\u016a":"U\u0304","\u1e7a":"U\u0304\u0308","\u016c":"U\u0306","\u01d3":"U\u030c","\xdb":"U\u0302","\u016e":"U\u030a","\u0170":"U\u030b","\u1e7c":"V\u0303","\u1e82":"W\u0301","\u1e80":"W\u0300","\u1e84":"W\u0308","\u0174":"W\u0302","\u1e86":"W\u0307","\u1e8c":"X\u0308","\u1e8a":"X\u0307","\xdd":"Y\u0301","\u1ef2":"Y\u0300","\u0178":"Y\u0308","\u1ef8":"Y\u0303","\u0232":"Y\u0304","\u0176":"Y\u0302","\u1e8e":"Y\u0307","\u0179":"Z\u0301","\u017d":"Z\u030c","\u1e90":"Z\u0302","\u017b":"Z\u0307","\u03ac":"\u03b1\u0301","\u1f70":"\u03b1\u0300","\u1fb1":"\u03b1\u0304","\u1fb0":"\u03b1\u0306","\u03ad":"\u03b5\u0301","\u1f72":"\u03b5\u0300","\u03ae":"\u03b7\u0301","\u1f74":"\u03b7\u0300","\u03af":"\u03b9\u0301","\u1f76":"\u03b9\u0300","\u03ca":"\u03b9\u0308","\u0390":"\u03b9\u0308\u0301","\u1fd2":"\u03b9\u0308\u0300","\u1fd1":"\u03b9\u0304","\u1fd0":"\u03b9\u0306","\u03cc":"\u03bf\u0301","\u1f78":"\u03bf\u0300","\u03cd":"\u03c5\u0301","\u1f7a":"\u03c5\u0300","\u03cb":"\u03c5\u0308","\u03b0":"\u03c5\u0308\u0301","\u1fe2":"\u03c5\u0308\u0300","\u1fe1":"\u03c5\u0304","\u1fe0":"\u03c5\u0306","\u03ce":"\u03c9\u0301","\u1f7c":"\u03c9\u0300","\u038e":"\u03a5\u0301","\u1fea":"\u03a5\u0300","\u03ab":"\u03a5\u0308","\u1fe9":"\u03a5\u0304","\u1fe8":"\u03a5\u0306","\u038f":"\u03a9\u0301","\u1ffa":"\u03a9\u0300"},Ma=function(){function t(t,e){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new wa(t,e,this.mode),this.settings=e,this.leftrightDepth=0}var e=t.prototype;return e.expect=function(t,e){if(void 0===e&&(e=!0),this.fetch().text!==t)throw new o("Expected '"+t+"', got '"+this.fetch().text+"'",this.fetch());e&&this.consume()},e.consume=function(){this.nextToken=null},e.fetch=function(){return null==this.nextToken&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken},e.switchMode=function(t){this.mode=t,this.gullet.switchMode(t)},e.parse=function(){this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");var t=this.parseExpression(!1);return this.expect("EOF"),this.gullet.endGroup(),t},e.parseExpression=function(e,r){for(var a=[];;){"math"===this.mode&&this.consumeSpaces();var n=this.fetch();if(-1!==t.endOfExpression.indexOf(n.text))break;if(r&&n.text===r)break;if(e&&ia[n.text]&&ia[n.text].infix)break;var i=this.parseAtom(r);if(!i)break;a.push(i)}return"text"===this.mode&&this.formLigatures(a),this.handleInfixNodes(a)},e.handleInfixNodes=function(t){for(var e,r=-1,a=0;a0&&!l||0===s&&!l&&"math"===this.mode,c=this.parseGroupOfType("argument to '"+t+"'",h,l,a,m);if(!c){if(l){i.push(null);continue}throw new o("Expected group after '"+t+"'",this.fetch())}(l?i:n).push(c)}return{args:n,optArgs:i}},e.parseGroupOfType=function(t,e,r,a,n){switch(e){case"color":return n&&this.consumeSpaces(),this.parseColorGroup(r);case"size":return n&&this.consumeSpaces(),this.parseSizeGroup(r);case"url":return this.parseUrlGroup(r,n);case"math":case"text":return this.parseGroup(t,r,a,void 0,e,n);case"hbox":var i=this.parseGroup(t,r,a,void 0,"text",n);return i?{type:"styling",mode:i.mode,body:[i],style:"text"}:i;case"raw":if(n&&this.consumeSpaces(),r&&"{"===this.fetch().text)return null;var s=this.parseStringGroup("raw",r,!0);if(s)return{type:"raw",mode:"text",string:s.text};throw new o("Expected raw group",this.fetch());case"original":case null:case void 0:return this.parseGroup(t,r,a,void 0,void 0,n);default:throw new o("Unknown group type as "+t,this.fetch())}},e.consumeSpaces=function(){for(;" "===this.fetch().text;)this.consume()},e.parseStringGroup=function(t,e,r){var a=e?"[":"{",n=e?"]":"}",i=this.fetch();if(i.text!==a){if(e)return null;if(r&&"EOF"!==i.text&&/[^{}[\]]/.test(i.text))return this.consume(),i}var s=this.mode;this.mode="text",this.expect(a);for(var h,l="",m=this.fetch(),c=0,u=m;(h=this.fetch()).text!==n||r&&c>0;){switch(h.text){case"EOF":throw new o("Unexpected end of input in "+t,m.range(u,l));case a:c++;break;case n:c--}l+=(u=h).text,this.consume()}return this.expect(n),this.mode=s,m.range(u,l)},e.parseRegexGroup=function(t,e){var r=this.mode;this.mode="text";for(var a,n=this.fetch(),i=n,s="";"EOF"!==(a=this.fetch()).text&&t.test(s+a.text);)s+=(i=a).text,this.consume();if(""===s)throw new o("Invalid "+e+": '"+n.text+"'",n);return this.mode=r,n.range(i,s)},e.parseColorGroup=function(t){var e=this.parseStringGroup("color",t);if(!e)return null;var r=/^(#[a-f0-9]{3}|#?[a-f0-9]{6}|[a-z]+)$/i.exec(e.text);if(!r)throw new o("Invalid color: '"+e.text+"'",e);var a=r[0];return/^[0-9a-f]{6}$/i.test(a)&&(a="#"+a),{type:"color-token",mode:this.mode,color:a}},e.parseSizeGroup=function(t){var e,r=!1;if(!(e=t||"{"===this.fetch().text?this.parseStringGroup("size",t):this.parseRegexGroup(/^[-+]? *(?:$|\d+|\d+\.\d*|\.\d*) *[a-z]{0,2} *$/,"size")))return null;t||0!==e.text.length||(e.text="0pt",r=!0);var a=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e.text);if(!a)throw new o("Invalid size: '"+e.text+"'",e);var n={number:+(a[1]+a[2]),unit:a[3]};if(!At(n))throw new o("Invalid unit: '"+n.unit+"'",e);return{type:"size",mode:this.mode,value:n,isBlank:r}},e.parseUrlGroup=function(t,e){this.gullet.lexer.setCatcode("%",13);var r=this.parseStringGroup("url",t,!0);if(this.gullet.lexer.setCatcode("%",14),!r)return null;var a=r.text.replace(/\\([#$%&~_^{}])/g,"$1");return{type:"url",mode:this.mode,url:a}},e.parseGroup=function(e,r,n,i,s,h){var l=this.mode;s&&this.switchMode(s),h&&this.consumeSpaces();var m,c=this.fetch(),u=c.text;if(r?"["===u:"{"===u||"\\begingroup"===u){this.consume();var p=t.endOfGroup[u];this.gullet.beginGroup();var d=this.parseExpression(!1,p),f=this.fetch();this.expect(p),this.gullet.endGroup(),m={type:"ordgroup",mode:this.mode,loc:a.range(c,f),body:d,semisimple:"\\begingroup"===u||void 0}}else if(r)m=null;else if(null==(m=this.parseFunction(i,e,n)||this.parseSymbol())&&"\\"===u[0]&&!ya.hasOwnProperty(u)){if(this.settings.throwOnError)throw new o("Undefined control sequence: "+u,c);m=this.formatUnsupportedCmd(u),this.consume()}return s&&this.switchMode(l),m},e.formLigatures=function(t){for(var e=t.length-1,r=0;r=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+e[0]+'" used in math mode',t);var h,l=j[this.mode][e].group,m=a.range(t);if(W.hasOwnProperty(l)){var c=l;h={type:"atom",mode:this.mode,family:c,loc:m,text:e}}else h={type:l,mode:this.mode,loc:m,text:e};i=h}else{if(!(e.charCodeAt(0)>=128))return null;this.settings.strict&&(M(e.charCodeAt(0))?"math"===this.mode&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+e[0]+'" used in math mode',t):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+e[0]+'" ('+e.charCodeAt(0)+")",t)),i={type:"textord",mode:"text",loc:a.range(t),text:e}}if(this.consume(),s)for(var u=0;u