! function(e, t) { "object" == typeof exports && "object" == typeof module ? module.exports = t(require("katex")) : "function" == typeof define && define.amd ? define(["katex"], t) : "object" == typeof exports ? exports.renderMathInElement = t(require("katex")) : e.renderMathInElement = t(e.katex) }("undefined" != typeof self ? self : this, (function(e) { return function() { "use strict"; var t = { 771: function(t) { t.exports = e } }, n = {}; function r(e) { var o = n[e]; if (void 0 !== o) return o.exports; var i = n[e] = { exports: {} }; return t[e](i, i.exports, r), i.exports } r.n = function(e) { var t = e && e.__esModule ? function() { return e.default } : function() { return e }; return r.d(t, { a: t }), t }, r.d = function(e, t) { for (var n in t) r.o(t, n) && !r.o(e, n) && Object.defineProperty(e, n, { enumerable: !0, get: t[n] }) }, r.o = function(e, t) { return Object.prototype.hasOwnProperty.call(e, t) }; var o = {}; return function() { r.d(o, { default: function() { return d } }); var e = r(771), t = r.n(e); const n = function(e, t, n) { let r = n, o = 0; const i = e.length; for (; r < t.length;) { const n = t[r]; if (o <= 0 && t.slice(r, r + i) === e) return r; "\\" === n ? r++ : "{" === n ? o++ : "}" === n && o--, r++ } return -1 }, i = /^\\begin{/; var a = function(e, t) { let r; const o = [], a = new RegExp("(" + t.map((e => e.left.replace(/[-/\\^$*+?.()|[\]{}]/g, "\\$&"))).join("|") + ")"); for (; r = e.search(a), -1 !== r;) { const charAfterOpen = e[r + 1]; if (e[r] == "$" && charAfterOpen != "$") { const closeDollarIndex = e.indexOf('$', r + 1); if (closeDollarIndex != -1) { const charBeforeOpen = r > 0 ? e[r - 1] : ''; const charBeforeClose = r + 1 < closeDollarIndex ? e[closeDollarIndex - 1] : ''; const charBeforeBeforeClose = r + 1 < closeDollarIndex ? e[closeDollarIndex - 2] : ''; const charAfterClose = closeDollarIndex + 1 < e.length ? e[closeDollarIndex + 1] : ''; if ((/[A-Za-z0-9_$-]/.test(charBeforeOpen)) || ((' ' == charBeforeClose) || /[0-9]/.test(charAfterOpen) && (/[A-Za-z0-9]/.test(charAfterClose) || '-' == charBeforeClose))) { o.push({ type: "text", data: e.slice(0, r + 1), }); e = e.slice(r + 1); // now text starts after delimiter continue; } } } r > 0 && (o.push({ type: "text", data: e.slice(0, r) }), e = e.slice(r)); const a = t.findIndex((t => e.startsWith(t.left))); if (r = n(t[a].right, e, t[a].left.length), -1 === r) break; const l = e.slice(0, r + t[a].right.length), s = i.test(l) ? l : e.slice(t[a].left.length, r); o.push({ type: "math", data: s, rawData: l, display: t[a].display }), e = e.slice(r + t[a].right.length) } return "" !== e && o.push({ type: "text", data: e }), o }; const l = function(e, n) { const r = a(e, n.delimiters); if (1 === r.length && "text" === r[0].type) return null; const o = document.createDocumentFragment(); for (let e = 0; e < r.length; e++) if ("text" === r[e].type) o.appendChild(document.createTextNode(r[e].data)); else { const i = document.createElement("span"); let a = r[e].data; n.displayMode = r[e].display; try { n.preProcess && (a = n.preProcess(a)), t().render(a, i, n) } catch (i) { if (!(i instanceof t().ParseError)) throw i; n.errorCallback("KaTeX auto-render: Failed to parse `" + r[e].data + "` with ", i), o.appendChild(document.createTextNode(r[e].rawData)); continue } o.appendChild(i) } return o }, s = function(e, t) { for (let n = 0; n < e.childNodes.length; n++) { const r = e.childNodes[n]; if (3 === r.nodeType) { let o = r.textContent, i = r.nextSibling, a = 0; for (; i && i.nodeType === Node.TEXT_NODE;) o += i.textContent, i = i.nextSibling, a++; const s = l(o, t); if (s) { for (let e = 0; e < a; e++) r.nextSibling.remove(); n += s.childNodes.length - 1, e.replaceChild(s, r) } else n += a } else if (1 === r.nodeType) { const e = " " + r.className + " "; - 1 === t.ignoredTags.indexOf(r.nodeName.toLowerCase()) && t.ignoredClasses.every((t => -1 === e.indexOf(" " + t + " "))) && s(r, t) } } }; var d = function(e, t) { if (!e) throw new Error("No element provided to render"); const n = {}; for (const e in t) t.hasOwnProperty(e) && (n[e] = t[e]); n.delimiters = n.delimiters || [{ left: "$$", right: "$$", display: !0 }, { left: "\\(", right: "\\)", display: !1 }, { left: "\\begin{equation}", right: "\\end{equation}", display: !0 }, { left: "\\begin{align}", right: "\\end{align}", display: !0 }, { left: "\\begin{alignat}", right: "\\end{alignat}", display: !0 }, { left: "\\begin{gather}", right: "\\end{gather}", display: !0 }, { left: "\\begin{CD}", right: "\\end{CD}", display: !0 }, { left: "\\[", right: "\\]", display: !0 }], n.ignoredTags = n.ignoredTags || ["script", "noscript", "style", "textarea", "pre", "code", "option"], n.ignoredClasses = n.ignoredClasses || [], n.errorCallback = n.errorCallback || console.error, n.macros = n.macros || {}, s(e, n) } }(), o = o.default }() }));