/*!
* @toast-ui/editor
* @version 3.2.2 | Fri Feb 17 2023
* @author NHN Cloud FE Development Lab
/i,
ya = /|/,
ba = "
";
function wa(e, t, n) {
var r = parseInt(e.left, 10),
o = parseInt(e.top, 10),
i = parseInt(e.width, 10) + parseInt(e.paddingLeft, 10) + parseInt(e.paddingRight, 10),
s = parseInt(e.height, 10) + parseInt(e.paddingTop, 10) + parseInt(e.paddingBottom, 10);
return t >= r && t <= r + i && n >= o && n <= o + s
}
var ka = "toastui-editor-";
function xa() {
for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
for (var n = [], r = 0, o = e; r < o.length; r++) {
var i = o[r],
s = void 0;
(s = Array.isArray(i) ? i[0] ? i[1] : null : i) && n.push("" + ka + s)
}
return n.join(" ")
}
function Ca() {
for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
return e.map((function(e) {
return ka + "md-" + e
})).join(" ")
}
function Ta(e) {
return e && e.nodeType === Node.ELEMENT_NODE
}
function Ma(e) {
e.parentNode && e.parentNode.removeChild(e)
}
function Sa(e, t, n) {
Oe()(n) && (n = !ca()(e, t)), (n ? ke() : Ce())(e, t)
}
function Ea(e, t) {
var n = document.createElement("div");
Me()(e) ? n.innerHTML = e : n.appendChild(e);
var r = n.firstChild;
return t && t.appendChild(r), r
}
function Na(e) {
var t = window.getComputedStyle(e);
return ["margin-left", "margin-right"].reduce((function(e, n) {
return e + parseInt(t.getPropertyValue(n), 10)
}), 0) + e.offsetWidth
}
function Oa(e, t) {
var n;
for (n = Me()(t) ? function(e) {
return da()(e, t)
} : function(e) {
return e === t
}; e && e !== document;) {
if (Ta(e) && n(e)) return e;
e = e.parentNode
}
return null
}
function Da(e, t) {
for (var n = 0, r = 0; e && e !== t;) {
if (n += e.offsetTop, r += e.offsetLeft, e.offsetParent === t.offsetParent) break;
e = e.offsetParent
}
return {
offsetTop: n,
offsetLeft: r
}
}
function Aa(e, t) {
Object.keys(e).forEach((function(n) {
Qe(e[n]) ? t.removeAttribute(n) : t.setAttribute(n, e[n])
}))
}
function La(e) {
var t = e;
return t = (t = t.replace(//g, "")).replace(/ class="ProseMirror-trailingBreak"/g, "")
}
var Ia = new un("widget"),
Ra = function() {
function e(e, t) {
var n = this;
this.popup = null, this.removeWidget = function() {
n.popup && (n.rootEl.removeChild(n.popup), n.popup = null)
}, this.rootEl = e.dom.parentElement, this.eventEmitter = t, this.eventEmitter.listen("blur", this.removeWidget), this.eventEmitter.listen("loadUI", (function() {
n.rootEl = Oa(e.dom.parentElement, "." + xa("defaultUI"))
})), this.eventEmitter.listen("removePopupWidget", this.removeWidget)
}
return e.prototype.update = function(e) {
var t = Ia.getState(e.state);
if (this.removeWidget(), t) {
var n = t.node,
r = t.style,
o = e.coordsAtPos(t.pos),
i = o.top,
s = o.left,
a = o.bottom - i,
l = this.rootEl.getBoundingClientRect(),
c = i - l.top;
be()(n, {
opacity: "0"
}), this.rootEl.appendChild(n), be()(n, {
position: "absolute",
left: s - l.left + 5 + "px",
top: ("bottom" === r ? c + a - 5 : c - a) + "px",
opacity: "1"
}), this.popup = n, e.focus()
}
}, e.prototype.destroy = function() {
this.eventEmitter.removeEventHandler("blur", this.removeWidget)
}, e
}();
function Pa(e) {
return new an({
key: Ia,
state: {
init: function() {
return null
},
apply: function(e) {
return e.getMeta("widget")
}
},
view: function(t) {
return new Ra(t, e)
}
})
}
var Ba = n(893),
Fa = n.n(Ba);
function Ha(e, t, n) {
e.emit("addImageBlobHook", t, (function(n, r) {
e.emit("command", "addImage", {
imageUrl: n,
altText: r || t.name || "image"
})
}), n)
}
function za(e) {
var t = vi()(e).filter((function(e) {
return -1 !== e.type.indexOf("image")
}));
if (1 === t.length) {
var n = t[0];
if (n) return n.getAsFile()
}
return null
}
function qa(e) {
var t = e.eventEmitter;
return new an({
props: {
handleDOMEvents: {
drop: function(e, n) {
var r, o = null === (r = n.dataTransfer) || void 0 === r ? void 0 : r.files;
return o && Fa()(o, (function(e) {
return -1 === e.type.indexOf("image") || (n.preventDefault(), n.stopPropagation(), Ha(t, e, n.type), !1)
})), !0
}
}
}
})
}
var Va = function() {
function e() {}
return Object.defineProperty(e.prototype, "type", {
get: function() {
return "node"
},
enumerable: !1,
configurable: !0
}), e.prototype.setContext = function(e) {
this.context = e
}, e
}();
function ja(e) {
var t = document.createElement("span"),
n = Ys(e.attrs.info, e.textContent);
return t.className = "tui-widget", t.appendChild(n), {
dom: t
}
}
function $a(e) {
return "widget" === e.type.name
}
var _a = function(e) {
function n() {
return null !== e && e.apply(this, arguments) || this
}
return t(n, e), Object.defineProperty(n.prototype, "name", {
get: function() {
return "widget"
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(n.prototype, "schema", {
get: function() {
return {
attrs: {
info: {
default: null
}
},
group: "inline",
inline: !0,
content: "text*",
selectable: !1,
atom: !0,
toDOM: function() {
return ["span", {
class: "tui-widget"
}, 0]
},
parseDOM: [{
tag: "span.tui-widget",
getAttrs: function(e) {
return {
info: e.textContent.match(/\$\$(widget\d+)/)[1]
}
}
}]
}
},
enumerable: !1,
configurable: !0
}), n
}(Va),
Ua = function() {
function e(e) {
this.timer = null, this.el = document.createElement("div"), this.el.className = "toastui-editor", this.eventEmitter = e, this.placeholder = {
text: ""
}
}
return e.prototype.createState = function() {
return on.create({
schema: this.schema,
plugins: this.createPlugins()
})
}, e.prototype.initEvent = function() {
var e = this,
t = e.eventEmitter,
n = e.view,
r = e.editorType;
n.dom.addEventListener("focus", (function() {
return t.emit("focus", r)
})), n.dom.addEventListener("blur", (function() {
return t.emit("blur", r)
}))
}, e.prototype.emitChangeEvent = function(e) {
this.eventEmitter.emit("caretChange", this.editorType), e.docChanged && this.eventEmitter.emit("change", this.editorType)
}, Object.defineProperty(e.prototype, "defaultPlugins", {
get: function() {
var e, t = this.createInputRules(),
n = i(i([], this.keymaps), [Ai(o({
"Shift-Enter": ts.Enter
}, ts)), Ts(), (e = this.placeholder, new an({
props: {
decorations: function(t) {
var n = t.doc;
if (e.text && 1 === n.childCount && n.firstChild.isTextblock && 0 === n.firstChild.content.size) {
var r = document.createElement("span");
return ke()(r, "placeholder"), e.className && ke()(r, e.className), r.textContent = e.text, _o.create(n, [Vo.widget(1, r)])
}
return null
}
}
})), Pa(this.eventEmitter), qa(this.context)]);
return t ? n.concat(t) : n
},
enumerable: !1,
configurable: !0
}), e.prototype.createInputRules = function() {
var e = ea().map((function(e) {
var t = e.rule;
return new ns(t, (function(e, n, r, o) {
var i = e.schema,
s = e.tr,
a = e.doc,
l = n.input.match(new RegExp(t, "g")),
c = a.resolve(r),
u = c.parent,
d = 0;
if ($a(u) && (u = c.node(c.depth - 1)), u.forEach((function(e) {
return $a(e) && (d += 1)
})), l.length > d) {
var p = et(l),
h = ra(p, i);
return s.replaceWith(o - p.length + 1, o, h)
}
return null
}))
}));
return e.length ? rs({
rules: e
}) : null
}, e.prototype.clearTimer = function() {
this.timer && (clearTimeout(this.timer), this.timer = null)
}, e.prototype.createSchema = function() {
return new Y({
nodes: this.specs.nodes,
marks: this.specs.marks
})
}, e.prototype.createKeymaps = function(e) {
var t = ia(),
n = t.undo,
r = t.redo,
o = this.specs.keymaps(e),
i = {
"Mod-z": n(),
"Shift-Mod-z": r()
};
return e ? o.concat(Ai(i)) : o
}, e.prototype.createCommands = function() {
return this.specs.commands(this.view)
}, e.prototype.createPluginProps = function() {
var e = this;
return this.extraPlugins.map((function(t) {
return t(e.eventEmitter)
}))
}, e.prototype.focus = function() {
var e = this;
this.clearTimer(), this.timer = setTimeout((function() {
e.view.focus(), e.view.dispatch(e.view.state.tr.scrollIntoView())
}))
}, e.prototype.blur = function() {
this.view.dom.blur()
}, e.prototype.destroy = function() {
var e = this;
this.clearTimer(), this.view.destroy(), Object.keys(this).forEach((function(t) {
delete e[t]
}))
}, e.prototype.moveCursorToStart = function(e) {
var t = this.view.state.tr;
this.view.dispatch(t.setSelection(Os(t, 1)).scrollIntoView()), e && this.focus()
}, e.prototype.moveCursorToEnd = function(e) {
var t = this.view.state.tr;
this.view.dispatch(t.setSelection(Os(t, t.doc.content.size - 1)).scrollIntoView()), e && this.focus()
}, e.prototype.setScrollTop = function(e) {
this.view.dom.scrollTop = e
}, e.prototype.getScrollTop = function() {
return this.view.dom.scrollTop
}, e.prototype.setPlaceholder = function(e) {
this.placeholder.text = e, this.view.dispatch(this.view.state.tr.scrollIntoView())
}, e.prototype.setHeight = function(e) {
be()(this.el, {
height: e + "px"
})
}, e.prototype.setMinHeight = function(e) {
be()(this.el, {
minHeight: e + "px"
})
}, e.prototype.getElement = function() {
return this.el
}, e
}(),
Wa = Ua,
Ja = n(294),
Ga = n.n(Ja),
Ka = ["Enter", "Shift-Enter", "Mod-Enter", "Tab", "Shift-Tab", "Delete", "Backspace", "Mod-Delete", "Mod-Backspace", "ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight", "Mod-d", "Mod-D", "Alt-ArrowUp", "Alt-ArrowDown"];
function Za(e, t, n) {
return e.focus(), t(n)(e.state, e.dispatch, e)
}
var Xa = function() {
function e(e) {
this.specs = e
}
return Object.defineProperty(e.prototype, "nodes", {
get: function() {
return this.specs.filter((function(e) {
return "node" === e.type
})).reduce((function(e, t) {
var n, r = t.name,
i = t.schema;
return o(o({}, e), ((n = {})[r] = i, n))
}), {})
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "marks", {
get: function() {
return this.specs.filter((function(e) {
return "mark" === e.type
})).reduce((function(e, t) {
var n, r = t.name,
i = t.schema;
return o(o({}, e), ((n = {})[r] = i, n))
}), {})
},
enumerable: !1,
configurable: !0
}), e.prototype.commands = function(e, t) {
var n = this.specs.filter((function(e) {
return e.commands
})).reduce((function(t, n) {
var r = {},
i = n.commands();
return Ga()(i) ? r[n.name] = function(t) {
return Za(e, i, t)
} : Object.keys(i).forEach((function(t) {
r[t] = function(n) {
return Za(e, i[t], n)
}
})), o(o({}, t), r)
}), {}),
r = ia();
return Object.keys(r).forEach((function(t) {
n[t] = function(n) {
return Za(e, r[t], n)
}
})), t && Object.keys(t).forEach((function(r) {
n[r] = function(n) {
return Za(e, t[r], n)
}
})), n
}, e.prototype.keymaps = function(e) {
return this.specs.filter((function(e) {
return e.keymaps
})).map((function(e) {
return e.keymaps()
})).map((function(t) {
return e || Object.keys(t).forEach((function(e) {
Ue(Ka, e) || delete t[e]
})), Ai(t)
}))
}, e.prototype.setContext = function(e) {
this.specs.forEach((function(t) {
t.setContext(e)
}))
}, e
}(),
Qa = Xa;
function Ya(e) {
var t = e.from,
n = e.to;
return e instanceof Kt ? [t + 1, n - 1] : [t, n]
}
function el(e) {
return e.index(0) + 1
}
function tl(e, t, n) {
void 0 === n && (n = 1);
var r = 0;
return e.forEach((function(e, o) {
$a(e) && o + 2 < t && (r += 2 * n)
})), r
}
function nl(e, t, n) {
void 0 === n && (n = t);
var r = t === n,
o = e.resolve(t),
i = el(o),
s = i,
a = o.start(1),
l = a;
if (!r) {
var c = e.resolve(n === e.content.size ? n - 1 : n);
l = c.start(1), s = el(c), c.pos === e.content.size && (n = e.content.size - 2)
}
var u = Math.max(t - a + 1, 1),
d = Math.max(n - l + 1, 1);
return [
[i, u + tl(e.child(i - 1), u, -1)],
[s, d + tl(e.child(s - 1), d, -1)]
]
}
function rl(e, t) {
for (var n = [], r = 0, o = 0; r < t; r += 1) {
var i = e.child(r);
n[r] = o, o += i.nodeSize
}
return n
}
function ol(e, t, n) {
var r = rl(e, n[0]),
o = t[0] - 1,
i = n[0] - 1,
s = e.child(o),
a = e.child(i),
l = r[o],
c = r[i];
return l += t[1] + tl(s, t[1] - 1), c += n[1] + tl(a, n[1] - 1), [l, Math.min(c, e.content.size)]
}
function il(e) {
var t = e.$from,
n = e.$to,
r = e.from,
o = e.to,
i = t.doc;
return e instanceof Kt && (t = i.resolve(r + 1), n = i.resolve(o - 1)), 0 === t.depth && (n = t = i.resolve(r - 1)), {
startFromOffset: t.start(1),
endFromOffset: n.start(1),
startToOffset: t.end(1),
endToOffset: n.end(1),
startIndex: t.index(0),
endIndex: n.index(0),
from: t.pos,
to: n.pos
}
}
function sl(e, t) {
for (var n = 1, r = 1, o = 0, i = 0; o < e.childCount; o += 1) {
var s = e.child(o).nodeSize;
if (n = i + 1, r = i + s - 1, o === t) break;
i += s
}
return {
startOffset: n,
endOffset: r
}
}
var al = "heading",
ll = "link",
cl = "code",
ul = "meta",
dl = "delimiter",
pl = "markedText",
hl = {
strong: 2,
emph: 1,
strike: 2
};
function fl(e, t, n, r) {
return {
start: e,
end: t,
spec: {
type: n,
attrs: r
}
}
}
function ml(e, t, n) {
var r = e.type,
o = $s(t, hl[r]),
i = $s(n, -hl[r]);
return [fl(o, i, r), fl(t, o, dl), fl(i, n, dl)]
}
function gl(e, t, n, r) {
return [fl(e, t, ll), fl(_s(e, n[1] + 1), _s(t, r), ll, {
desc: !0
}), fl(_s(t, r + 2), $s(t, -1), ll, {
url: !0
})]
}
function vl(e, t, n, r) {
var i = {
start: t,
end: n,
spec: {
attrs: {
className: r + "-line-background",
codeStart: t[0],
codeEnd: n[0]
}
},
lineBackground: !0
};
return "item" !== e.type && "blockQuote" !== e.type ? [o(o({}, i), {
end: t,
spec: {
attrs: {
className: r + "-line-background start"
}
}
}), o(o({}, i), {
start: [Math.min(t[0] + 1, n[0]), t[1]]
})] : null
}
function yl(e, t) {
for (var n = []; e;) {
var r = e.type;
"paragraph" !== r && "codeBlock" !== r || n.push(fl([Is(e), Ps(e) - 1], [Rs(e), Bs(e) + 1], t)), e = e.next
}
return n
}
var bl = {
heading: function(e, t, n) {
var r = e.level,
o = e.headingType,
i = [fl(t, n, al, {
level: r
})];
return "atx" === o ? i.push(fl(t, $s(t, r), dl)) : i.push(fl(_s(n, 0), n, al, {
seText: !0
})), i
},
strong: ml,
emph: ml,
strike: ml,
link: function(e, t, n) {
var r = e.lastChild,
o = e.extendedAutolink,
i = r ? Bs(r) + 1 : 2;
return o ? [fl(t, n, ll, {
desc: !0
})] : gl(t, n, t, i)
},
image: function(e, t, n) {
var r = e.lastChild,
o = r ? Bs(r) + 1 : 3,
s = $s(t, 1);
return i([fl(t, s, ul)], gl(t, n, s, o))
},
code: function(e, t, n) {
var r = e.tickCount,
o = $s(t, r),
i = $s(n, -r);
return [fl(t, n, cl), fl(t, o, cl, {
start: !0
}), fl(o, i, cl, {
marked: !0
}), fl(i, n, cl, {
end: !0
})]
},
codeBlock: function(e, t, n, r) {
var o = e.fenceOffset,
i = e.fenceLength,
s = e.fenceChar,
a = e.info,
l = e.infoPadding,
c = e.parent,
u = o + i,
d = [fl(_s(t, 1), n, "codeBlock")];
s && d.push(fl(t, $s(t, u), dl)), a && d.push(fl($s(t, i), $s(t, i + l + a.length), ul)), new RegExp("^(\\s{0,4})(" + s + "{" + i + ",})").test(r) && d.push(fl(_s(n, 1), n, dl));
var p = vl(c, t, n, "code-block");
return p ? d.concat(p) : d
},
blockQuote: function(e, t, n) {
var r = e.parent && "blockQuote" !== e.parent.type ? [fl(t, n, "blockQuote")] : [];
if (e.firstChild) {
var o = [];
"paragraph" === e.firstChild.type ? o = function(e) {
for (var t = []; e;) t.push(fl([Is(e), Ps(e)], [Rs(e), Bs(e) + 1], pl)), e = e.next;
return t
}(e.firstChild.firstChild) : "list" === e.firstChild.type && (o = yl(e.firstChild, pl)), r = i(i([], r), o)
}
return r
},
item: function(e, t) {
var n = e.listData,
r = n.padding,
s = n.task,
a = function(e) {
for (var t = 0; e.parent.parent && "item" === e.parent.parent.type;) e = e.parent.parent, t += 1;
return ["listItem", o(o({}, [{
odd: !0
}, {
even: !0
}][t % 2]), {
listStyle: !0
})]
}(e),
l = [fl.apply(void 0, i([t, $s(t, r)], a))];
return s && (l.push(fl($s(t, r), $s(t, r + 3), "taskDelimiter")), l.push(fl($s(t, r + 1), $s(t, r + 2), ul))), l.concat(yl(e.firstChild, pl))
},
customBlock: function(e, t, n) {
var r = e,
o = r.offset,
i = r.syntaxLength,
s = r.info,
a = r.parent,
l = o + i,
c = [fl(_s(t, 1), n, "customBlock")];
c.push(fl(t, $s(t, l), dl)), s && c.push(fl($s(t, l), $s(t, i + s.length), ul)), c.push(fl(_s(n, 1), n, dl));
var u = vl(a, t, n, "custom-block");
return u ? c.concat(u) : c
}
},
wl = {
thematicBreak: "thematicBreak",
table: "table",
tableCell: "tableCell",
htmlInline: "html"
};
function kl(e, t, n, r) {
var o = e.type;
return Ga()(bl[o]) ? bl[o](e, t, n, r) : wl[o] ? [fl(t, n, wl[o])] : null
}
var xl = {};
function Cl(e) {
var t = e.schema,
n = e.toastMark;
return new an({
appendTransaction: function(e, r, o) {
var i = e[0],
s = o.tr;
if (i.docChanged) {
var a = [];
i.getMeta("editResult").forEach((function(e) {
var t = e.nodes,
r = e.removedNodeRange;
if (t.length) {
a = a.concat(function(e, t) {
var n = e.doc,
r = t[0].sourcepos[0],
o = et(t).sourcepos[1],
i = [r[0], r[1]],
s = [o[0], o[1] + 1],
a = [];
return function(e, t, n) {
var r = [];
xl = {};
for (var o = t[0] - 1; o < n[0]; o += 1) {
var i = e.child(o),
s = i.attrs.codeEnd,
a = i.attrs.codeStart;
if (a && s && !Ue(r, a)) {
r.push(a), s = Math.min(s, e.childCount);
for (var l = a - 1, c = n[0], u = l; u < c; u += 1) xl[u] = !0
}
}
}(n, r, o), a.push({
start: i,
end: s
}), a
}(s, t));
for (var o = 0, i = t; o < i.length; o++)
for (var l = i[o].walker(), c = l.next(); c;) {
var u = c.node;
c.entering && (a = a.concat(Ml(u, n))), c = l.next()
}
} else if (r)
for (var d = s.doc.childCount - 1, p = r.line, h = p[0], f = p[1], m = Math.min(h, d), g = Math.min(f, d), v = m; v <= g; v += 1) xl[v] = !0
})),
function(e, t, n) {
var r = e.doc,
o = t.nodes.paragraph,
i = rl(r, r.childCount);
n.forEach((function(n) {
var s = n.start,
a = n.end,
l = n.spec,
c = n.lineBackground,
u = Math.min(s[0], r.childCount) - 1,
d = Math.min(a[0], r.childCount) - 1,
p = r.child(u),
h = r.child(d),
f = i[u],
m = i[d];
(f += s[1] + tl(p, s[1] - 1), m += a[1] + tl(h, a[1] - 1), l) ? c ? function(e, t, n, r, o) {
void 0 === o && (o = {});
for (var i = r.startIndex, s = r.endIndex, a = r.from, l = r.to, c = !1, u = i; u <= s; u += 1) delete xl[u], c = Tl(t, u, o);
c && e.setBlockType(a, l, n, o)
}(e, r, o, {
from: f,
to: m,
startIndex: u,
endIndex: d
}, l.attrs) : e.addMark(f, m, t.mark(l.type, l.attrs)): e.removeMark(f, m)
})),
function(e, t, n) {
Object.keys(xl).forEach((function(r) {
var o = Number(r),
i = Math.min(Number(r) + 1, e.doc.childCount - 1),
s = t[o],
a = t[i] - 1;
o === i && (a += 2), e.setBlockType(s, a, n)
}))
}(e, i, o)
}(s, t, a)
}
return s.setMeta("widget", i.getMeta("widget"))
}
})
}
function Tl(e, t, n) {
return Object.keys(n).some((function(r) {
return n[r] !== e.child(t).attrs[r]
}))
}
function Ml(e, t) {
var n = t.getLineTexts(),
r = [Is(e), Ps(e)],
o = [Rs(e), Bs(e) + 1],
i = kl(e, r, o, n[o[0] - 1]);
return null != i ? i : []
}
var Sl = ["taskList", "orderedList", "bulletList", "table", "strong", "emph", "strike", "heading", "thematicBreak", "blockQuote", "code", "codeBlock", "indent", "outdent"];
function El(e) {
var t = {
indent: {
active: !1,
disabled: !0
},
outdent: {
active: !1,
disabled: !0
}
},
n = !0;
return function(e, t, n) {
for (void 0 === n && (n = !0), e = n ? e : e.parent; e && "document" !== e.type;) t(e), e = e.parent
}(e, (function(e) {
var r = function(e) {
var t = e.type;
return Hs(e) ? e.listData.task ? "taskList" : "ordered" === e.listData.type ? "orderedList" : "bulletList" : -1 !== t.indexOf("table") ? "table" : Ue(Sl, t) ? t : null
}(e);
r && ("bulletList" === r || "orderedList" === r ? n && (t[r] = {
active: !0
}, t.indent.disabled = !1, t.outdent.disabled = !1, n = !1) : t[r] = {
active: !0
})
})), t
}
function Nl(e) {
var t = e.toastMark,
n = e.eventEmitter;
return new an({
view: function() {
return {
update: function(e, r) {
var o = e.state,
i = o.doc,
s = o.selection;
if (!(r && r.doc.eq(i) && r.selection.eq(s))) {
var a = s.from,
l = o.doc.resolve(a).start(),
c = a - l;
a === l && (c += 1);
var u = [o.doc.content.findIndex(a).index + 1, c],
d = t.findNodeAtPosition(u),
p = El(d);
n.emit("changeToolbarState", {
cursorPos: u,
mdNode: d,
toolbarState: p
}), n.emit("setFocusedNode", d)
}
}
}
}
})
}
var Ol = function(e) {
function n() {
return null !== e && e.apply(this, arguments) || this
}
return t(n, e), Object.defineProperty(n.prototype, "name", {
get: function() {
return "doc"
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(n.prototype, "schema", {
get: function() {
return {
content: "block+"
}
},
enumerable: !1,
configurable: !0
}), n
}(Va),
Dl = function() {
function e() {}
return Object.defineProperty(e.prototype, "type", {
get: function() {
return "mark"
},
enumerable: !1,
configurable: !0
}), e.prototype.setContext = function(e) {
this.context = e
}, e
}(),
Al = Dl;
function Ll(e, t) {
return Il(e, t - 1)
}
function Il(e, t) {
return e.child(t).textContent
}
var Rl = /^\s*> ?/,
Pl = function(e) {
function n() {
return null !== e && e.apply(this, arguments) || this
}
return t(n, e), Object.defineProperty(n.prototype, "name", {
get: function() {
return "blockQuote"
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(n.prototype, "schema", {
get: function() {
return {
toDOM: function() {
return ["span", {
class: Ca("block-quote")
}, 0]
}
}
},
enumerable: !1,
configurable: !0
}), n.prototype.createBlockQuoteText = function(e, t) {
return t ? e.replace(Rl, "").trim() : "> " + e.trim()
}, n.prototype.extendBlockQuote = function() {
var e = this;
return function(t, n) {
var r = t.selection,
o = t.doc,
i = t.tr,
s = t.schema,
a = il(r),
l = a.endFromOffset,
c = a.endToOffset,
u = a.endIndex,
d = a.to,
p = Il(o, u);
if (Rl.test(p) && d > l && r.empty) {
if (!p.replace(Rl, "").trim()) i.deleteRange(l, c).split(i.mapping.map(c));
else {
var h = p.slice(d - l).trim();
Ls(i, c, h, Ns(s, e.createBlockQuoteText(h)))
}
return n(i), !0
}
return !1
}
}, n.prototype.commands = function() {
var e = this;
return function() {
return function(t, n) {
var r = t.selection,
o = t.doc,
i = il(r),
s = i.startFromOffset,
a = i.endToOffset,
l = i.startIndex,
c = i.endIndex,
u = Rl.test(Il(o, l)),
d = As({
state: t,
startIndex: l,
endIndex: c,
from: s,
createText: function(t) {
return e.createBlockQuoteText(t, u)
}
});
return n(d.setSelection(Os(d, d.mapping.map(a)))), !0
}
}
}, n.prototype.keymaps = function() {
var e = this.commands()();
return {
"alt-q": e,
"alt-Q": e,
Enter: this.extendBlockQuote()
}
}, n
}(Al),
Bl = /(^\s*)([-*+] |[\d]+\. )/,
Fl = /(^\s*)([\d])+\.( \[[ xX]])? /,
Hl = /^(\s*)((\d+)([.)]\s(?:\[(?:x|\s)\]\s)?))(.*)/,
zl = /(^\s*)([-*+]|[\d]+\.)( \[[ xX]])? /,
ql = /^(\s*)([-*+]+(\s(?:\[(?:x|\s)\]\s)?))(.*)/,
Vl = /(^\s*)([-*+] |[\d]+\. )(\[[ xX]] )/,
jl = /(^\s*)([-*+])( \[[ xX]]) /;
function $l(e) {
return Fl.test(e) ? "ordered" : "bullet"
}
function _l(e) {
for (var t = 0; e && "document" !== e.type;) "list" === e.type && (t += 1), e = e.parent;
return t
}
function Ul(e, t, n, r) {
for (var o = e.getLineTexts().length, i = [], s = t; r ? s < o : s > 1;) {
s = r ? s + 1 : s - 1;
var a = e.findFirstNodeAtLine(s),
l = _l(a);
if (l === n) i.push({
line: s,
depth: n,
mdNode: a
});
else if (l < n) break
}
return i
}
function Wl(e, t, n, r) {
void 0 === r && (r = 0);
var o = Number.MAX_VALUE,
i = 0,
s = t.map((function(t, s) {
var a = t.line;
o = Math.min(a - 1, o), i = Math.max(a - 1, i);
var l = Ll(e, a);
return l = "bullet" === n ? function(e) {
if (!Bl.test(e)) return "* " + e;
var t = $l(e);
return "bullet" === t && zl.test(e) ? e = e.replace(jl, "$1$2 ") : "ordered" === t && (e = e.replace(Fl, "$1* ")), e
}(l) : function(e, t) {
if (!Bl.test(e)) return t + ". " + e;
var n = $l(e);
if ("bullet" === n || "ordered" === n && zl.test(e)) e = e.replace(zl, "$1" + t + ". ");
else if ("ordered" === n) {
var r = Hl.exec(e)[3];
Number(r) !== t && (e = e.replace(Fl, "$1" + t + ". "))
}
return e
}(l, s + 1 + r), {
text: l,
line: a
}
}));
return {
changedResults: s,
firstIndex: o,
lastIndex: i
}
}
function Jl(e, t) {
var n, r, o, i, s, a, l, c = (r = (n = t).toastMark, o = n.mdNode, i = n.line, s = _l(o), a = Ul(r, i, s, !1).reverse(), l = Ul(r, i, s, !0), a.concat([{
line: i,
depth: s,
mdNode: o
}]).concat(l));
return Wl(t.doc, c, e)
}
var Gl = {
bullet: function(e) {
return Jl("bullet", e)
},
ordered: function(e) {
return Jl("ordered", e)
},
task: function(e) {
var t = e.mdNode,
n = e.doc,
r = e.line,
o = Ll(n, r);
return t.listData.task ? o = o.replace(Vl, "$1$2") : Hs(t) && (o = o.replace(Bl, "$1$2[ ] ")), {
changedResults: [{
text: o,
line: r
}]
}
}
},
Kl = {
bullet: function(e) {
var t = e.doc,
n = e.line;
return {
changedResults: [{
text: "* " + Ll(t, n),
line: n
}]
}
},
ordered: function(e) {
for (var t = e.toastMark, n = e.doc, r = e.line, o = e.startLine, i = Ll(n, r), s = 1, a = o, l = 0, c = o - 1; c > 0; c -= 1) {
var u = t.findFirstNodeAtLine(c),
d = Ll(n, c) && !!js(u, (function(e) {
return Hs(e)
})),
p = Hl.exec(Ll(n, c));
if (!p && !d) break;
if (p || !d) {
var h = p,
f = h[1],
m = h[3];
if (!f) {
s = Number(m), a = c;
break
}
} else l += 1
}
return {
changedResults: [{
text: s + r - a - l + ". " + i,
line: r
}]
}
},
task: function(e) {
var t = e.doc,
n = e.line;
return {
changedResults: [{
text: "* [ ] " + Ll(t, n),
line: n
}]
}
}
},
Zl = {
bullet: function(e) {
var t = e.line,
n = Ll(e.doc, t),
r = ql.exec(n);
return {
listSyntax: "" + r[1] + r[2]
}
},
ordered: function(e) {
var t = e.toastMark,
n = e.line,
r = e.mdNode,
i = e.doc,
s = _l(r),
a = Ll(i, n),
l = Hl.exec(a),
c = l[1],
u = l[3],
d = l[4],
p = Number(u) + 1,
h = "" + c + p + d,
f = Ul(t, n, s, !0).filter((function(e) {
var t = Hl.exec(Ll(i, e.line));
return t && t[1].length === c.length && !!js(e.mdNode, (function(e) {
return zs(e)
}))
}));
return o({
listSyntax: h
}, Wl(i, f, "ordered", p))
}
};
function Xl(e, t, n, r, o) {
for (var i = [], s = Ll(e, n), a = Hl.exec(s); a;) {
var l = a[1],
c = a[4],
u = a[5],
d = l.length;
if (d === o) i.push(Ns(t, "" + l + r + c + u)), r += 1, n += 1;
else if (d > o) {
var p = Xl(e, t, n, 1, d);
n = p.line, i = i.concat(p.nodes)
}
if (d < o || n > e.childCount) break;
s = Ll(e, n), a = Hl.exec(s)
}
return {
nodes: i,
line: n
}
}
var Ql = /(^\s{1,4})(.*)/;
function Yl(e, t, n) {
return e < t || Bl.test(n) || Rl.test(n)
}
function ec(e, t, n) {
var r = n.$from;
0 === r.depth && (r = e.resolve(r.pos - 1));
var o = r.node(1),
i = r.start(1),
s = o.content.size;
return o.rangeHasMark(0, s, t.marks.table) && r.pos - i !== s && r.pos !== i
}
function tc(e, t) {
var n = t.from,
r = t.to;
if ("indent" === t.type) {
n += 4, r += 4 * (t.lineLen + 1)
} else {
var o = t.spaceLenList;
n -= o[0];
for (var i = 0; i < o.length; i += 1) r -= o[i]
}
return Os(e, n, r)
}
var nc = function(e) {
function n() {
return null !== e && e.apply(this, arguments) || this
}
return t(n, e), Object.defineProperty(n.prototype, "name", {
get: function() {
return "paragraph"
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(n.prototype, "schema", {
get: function() {
return {
content: "inline*",
attrs: {
className: {
default: null
},
codeStart: {
default: null
},
codeEnd: {
default: null
}
},
selectable: !1,
group: "block",
parseDOM: [{
tag: "div"
}],
toDOM: function(e) {
var t = e.attrs;
return t.className ? ["div", {
class: Ca(t.className)
}, 0] : ["div", 0]
}
}
},
enumerable: !1,
configurable: !0
}), n.prototype.reorderList = function(e, t) {
for (var n = this.context, r = n.view, o = n.toastMark, i = n.schema, s = r.state, a = s.tr, l = s.selection, c = s.doc, u = o.findFirstNodeAtLine(e), d = u; u && !qs(u) && "document" !== u.parent.type;)
if (zs(u = u.parent)) {
d = u;
break
} d && (e = d.sourcepos[0][0]);
var p = Hl.exec(Ll(c, e)),
h = p[1],
f = p[3],
m = h.length,
g = Xl(c, i, e, Number(f), m),
v = g.line,
y = g.nodes;
t = Math.max(t, v - 1);
for (var b = sl(c, e - 1).startOffset, w = e - 1; w <= t - 1; w += 1) {
var k = c.child(w),
x = k.nodeSize,
C = k.content,
T = a.mapping.map(b),
M = T + C.size;
a.replaceWith(T, M, y[w - e + 1]), b += x
}
var S = Os(a, l.from, l.to);
r.dispatch(a.setSelection(S))
}, n.prototype.indent = function(e) {
var t = this;
return void 0 === e && (e = !1),
function() {
return function(n, r) {
var o = n.schema,
i = n.selection,
s = n.doc,
a = il(i),
l = a.from,
c = a.to,
u = a.startFromOffset,
d = a.startIndex,
p = a.endIndex;
if (e && ec(s, o, i)) return !1;
var h = Il(s, d);
if (e && Yl(l, c, h) || !e && Bl.test(h)) {
var f = As({
state: n,
from: u,
startIndex: d,
endIndex: p,
createText: function(e) {
return " " + e
}
}),
m = {
type: "indent",
from: l,
to: c,
lineLen: p - d
};
r(f.setSelection(tc(f, m))), Hl.test(h) && t.reorderList(d + 1, p + 1)
} else e && r(n.tr.insert(c, Ns(o, " ")));
return !0
}
}
}, n.prototype.outdent = function(e) {
var t = this;
return void 0 === e && (e = !1),
function() {
return function(n, r) {
var o = n.selection,
i = n.doc,
s = n.schema,
a = il(o),
l = a.from,
c = a.to,
u = a.startFromOffset,
d = a.startIndex,
p = a.endIndex;
if (e && ec(i, s, o)) return !1;
var h = Il(i, d);
if (e && Yl(l, c, h) || !e && Bl.test(h)) {
var f = [],
m = As({
state: n,
from: u,
startIndex: d,
endIndex: p,
createText: function(e) {
var t = Ql.exec(e);
return f.push(t ? t[1].length : 0), e.replace(Ql, "$2")
}
}),
g = {
type: "outdent",
from: l,
to: c,
spaceLenList: f
};
r(m.setSelection(tc(m, g))), Hl.test(h) && t.reorderList(d + 1, p + 1)
} else if (e) {
var v = h.slice(0, c - u),
y = v.replace(/\s{1,4}$/, ""),
b = c - (v.length - y.length);
r(n.tr.delete(b, c))
}
return !0
}
}
}, n.prototype.deleteLines = function() {
var e = this;
return function(t, n) {
var r = e.context.view,
o = il(t.selection),
i = o.startFromOffset,
s = o.endToOffset;
return Zi((function() {
return n(t.tr.deleteRange(i, s)), !0
}), Bi)(t, n, r)
}
}, n.prototype.moveDown = function() {
return function(e, t) {
var n = e.doc,
r = e.tr,
o = e.selection,
i = e.schema,
s = il(o),
a = s.startFromOffset,
l = s.endToOffset,
c = s.endIndex;
if (c < n.content.childCount - 1) {
var u = n.child(c + 1),
d = u.nodeSize,
p = u.textContent;
return r.delete(l, l + d).split(a).insert(r.mapping.map(a) - 2, Ns(i, p)), t(r), !0
}
return !1
}
}, n.prototype.moveUp = function() {
return function(e, t) {
var n = e.tr,
r = e.doc,
o = e.selection,
i = e.schema,
s = il(o),
a = s.startFromOffset,
l = s.endToOffset,
c = s.startIndex;
if (c > 0) {
var u = r.child(c - 1),
d = u.nodeSize,
p = u.textContent;
return n.delete(a - d, a).split(n.mapping.map(l)).insert(n.mapping.map(l), Ns(i, p)), t(n), !0
}
return !1
}
}, n.prototype.commands = function() {
return {
indent: this.indent(),
outdent: this.outdent()
}
}, n.prototype.keymaps = function() {
return {
Tab: this.indent(!0)(),
"Shift-Tab": this.outdent(!0)(),
"Mod-d": this.deleteLines(),
"Mod-D": this.deleteLines(),
"Alt-ArrowUp": this.moveUp(),
"Alt-ArrowDown": this.moveDown()
}
}, n
}(Va),
rc = function(e) {
function n() {
return null !== e && e.apply(this, arguments) || this
}
return t(n, e), Object.defineProperty(n.prototype, "name", {
get: function() {
return "text"
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(n.prototype, "schema", {
get: function() {
return {
group: "inline"
}
},
enumerable: !1,
configurable: !0
}), n
}(Va),
oc = /^#{1,6}\s/,
ic = function(e) {
function n() {
return null !== e && e.apply(this, arguments) || this
}
return t(n, e), Object.defineProperty(n.prototype, "name", {
get: function() {
return "heading"
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(n.prototype, "schema", {
get: function() {
return {
attrs: {
level: {
default: 1
},
seText: {
default: !1
}
},
toDOM: function(e) {
var t = e.attrs,
n = "heading|heading" + t.level;
return t.seText && (n += "|delimiter|setext"), ["span", {
class: Ca.apply(void 0, n.split("|"))
}, 0]
}
}
},
enumerable: !1,
configurable: !0
}), n.prototype.createHeadingText = function(e, t, n) {
for (var r = t.replace(n, "").trim(), o = ""; e > 0;) o += "#", e -= 1;
return o + " " + r
}, n.prototype.commands = function() {
var e = this;
return function(t) {
return function(n, r) {
var o = t.level,
i = il(n.selection),
s = i.startFromOffset,
a = i.endToOffset,
l = As({
state: n,
from: s,
startIndex: i.startIndex,
endIndex: i.endIndex,
createText: function(t) {
var n = t.match(oc),
r = n ? n[0] : "";
return e.createHeadingText(o, t, r)
}
});
return r(l.setSelection(Os(l, l.mapping.map(a)))), !0
}
}
}, n
}(Al),
sc = "```",
ac = function(e) {
function n() {
return null !== e && e.apply(this, arguments) || this
}
return t(n, e), Object.defineProperty(n.prototype, "name", {
get: function() {
return "codeBlock"
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(n.prototype, "schema", {
get: function() {
return {
toDOM: function() {
return ["span", {
class: Ca("code-block")
}, 0]
}
}
},
enumerable: !1,
configurable: !0
}), n.prototype.commands = function() {
return function() {
return function(e, t) {
var n = e.selection,
r = e.schema,
o = e.tr,
i = il(n),
s = i.startFromOffset,
a = i.endToOffset,
l = Ns(r, sc);
return o.insert(s, l).split(s + sc.length), o.split(o.mapping.map(a)).insert(o.mapping.map(a), l), t(o.setSelection(Os(o, o.mapping.map(a) - (sc.length + 2)))), !0
}
}
}, n.prototype.keepIndentation = function() {
var e = this;
return function(t, n) {
var r = t.selection,
o = t.tr,
i = t.doc,
s = t.schema,
a = e.context.toastMark,
l = il(r),
c = l.startFromOffset,
u = l.endToOffset,
d = l.endIndex,
p = l.from,
h = l.to,
f = Il(i, d);
if (p === h && f.trim()) {
var m = f.match(/^\s+/);
if (function(e) {
return e && "codeBlock" === e.type
}(a.findFirstNodeAtLine(d + 1)) && m) {
var g = m[0],
v = f.slice(h - c);
return Ls(o, u, v, Ns(s, g + v)), n(o), !0
}
}
return !1
}
}, n.prototype.keymaps = function() {
var e = this.commands()();
return {
"Shift-Mod-p": e,
"Shift-Mod-P": e,
Enter: this.keepIndentation()
}
}, n
}(Al),
lc = /\||\s/g;
function cc(e, t) {
for (var n = "|", r = 0; r < e; r += 1) n += t ? " --- |" : " |";
return n
}
var uc = function(e) {
function n() {
return null !== e && e.apply(this, arguments) || this
}
return t(n, e), Object.defineProperty(n.prototype, "name", {
get: function() {
return "table"
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(n.prototype, "schema", {
get: function() {
return {
toDOM: function() {
return ["span", {
class: Ca("table")
}, 0]
}
}
},
enumerable: !1,
configurable: !0
}), n.prototype.extendTable = function() {
var e = this;
return function(t, n) {
var r = t.selection,
o = t.doc,
i = t.tr,
s = t.schema;
if (!r.empty) return !1;
var a = il(r),
l = a.endFromOffset,
c = a.endToOffset,
u = a.endIndex,
d = a.to,
p = Il(o, u),
h = [u + 1, d - l + 1],
f = js(e.context.toastMark.findNodeAtPosition(h), (function(e) {
return Vs(e) && ("tableDelimRow" === e.parent.type || "tableBody" === e.parent.parent.type)
}));
if (f) {
var m = !p.replace(lc, "").trim(),
g = cc(f.parent.parent.parent.columns.length);
return m ? i.deleteRange(l, c).split(i.mapping.map(c)) : i.split(c).insert(i.mapping.map(c), Ns(s, g)).setSelection(Os(i, i.mapping.map(c) - 2)), n(i), !0
}
return !1
}
}, n.prototype.moveTableCell = function(e) {
var t = this;
return function(n, r) {
var o = n.selection,
i = n.tr,
s = il(o),
a = s.endFromOffset,
l = [s.endIndex + 1, s.to - a],
c = js(t.context.toastMark.findNodeAtPosition(l), (function(e) {
return Vs(e)
}));
if (c) {
var u = c.parent,
d = function(e) {
return e ? {
type: "next",
parentType: "tableHead",
childType: "firstChild"
} : {
type: "prev",
parentType: "tableBody",
childType: "lastChild"
}
}(e),
p = d.type,
h = d.parentType,
f = d.childType,
m = Bs(c);
if (c[p]) m = Bs(c[p]) - 1;
else {
var g = u[p] || u.parent.type !== h ? u[p] : u.parent[p][f];
if ("next" === p) m += (g ? Bs(g[f]) : 0) + 2;
else "prev" === p && (m = g ? -4 : 0)
}
return r(i.setSelection(Os(i, a + m))), !0
}
return !1
}
}, n.prototype.addTable = function() {
return function(e) {
return function(t, n) {
var r = t.selection,
o = t.tr,
s = t.schema,
a = e,
l = a.columnCount,
c = a.rowCount,
u = il(r).endToOffset,
d = function(e) {
return [cc(e), cc(e, !0)]
}(l),
p = function(e, t) {
for (var n = [], r = 0; r < t; r += 1) n.push(cc(e));
return n
}(l, c - 1);
return i(i([], d), p).forEach((function(e) {
o.split(o.mapping.map(u)).insert(o.mapping.map(u), Ns(s, e))
})), n(o.setSelection(Os(o, u + 4))), !0
}
}
}, n.prototype.commands = function() {
return {
addTable: this.addTable()
}
}, n.prototype.keymaps = function() {
return {
Enter: this.extendTable(),
Tab: this.moveTableCell(!0),
"Shift-Tab": this.moveTableCell(!1)
}
}, n
}(Al),
dc = function(e) {
function n() {
return null !== e && e.apply(this, arguments) || this
}
return t(n, e), Object.defineProperty(n.prototype, "name", {
get: function() {
return "thematicBreak"
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(n.prototype, "schema", {
get: function() {
return {
toDOM: function() {
return ["span", {
class: Ca("thematic-break")
}, 0]
}
}
},
enumerable: !1,
configurable: !0
}), n.prototype.hr = function() {
return function() {
return function(e, t) {
var n = e.selection,
r = e.schema,
o = e.tr,
i = il(n),
s = i.from,
a = i.to,
l = i.endToOffset,
c = Ns(r, "***");
return o.split(s).replaceWith(o.mapping.map(s), o.mapping.map(a), c).split(o.mapping.map(a)).setSelection(Os(o, o.mapping.map(l))), t(o), !0
}
}
}, n.prototype.commands = function() {
return {
hr: this.hr()
}
}, n.prototype.keymaps = function() {
var e = this.hr()();
return {
"Mod-l": e,
"Mod-L": e
}
}, n
}(Al);
function pc(e, t) {
var n = e.type;
return t <= e.sourcepos[0][0] && ("codeBlock" === n || "heading" === n || n.match("table"))
}
var hc = function(e) {
function n() {
return null !== e && e.apply(this, arguments) || this
}
return t(n, e), Object.defineProperty(n.prototype, "name", {
get: function() {
return "listItem"
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(n.prototype, "schema", {
get: function() {
return {
attrs: {
odd: {
default: !1
},
even: {
default: !1
},
listStyle: {
default: !1
}
},
toDOM: function(e) {
var t = e.attrs,
n = t.odd,
r = t.even,
o = "list-item";
return t.listStyle && (o += "|list-item-style"), n && (o += "|list-item-odd"), r && (o += "|list-item-even"), ["span", {
class: Ca.apply(void 0, o.split("|"))
}, 0]
}
}
},
enumerable: !1,
configurable: !0
}), n.prototype.extendList = function() {
var e = this;
return function(t, n) {
var r = t.selection,
o = t.doc,
i = t.schema,
s = t.tr,
a = e.context.toastMark,
l = il(r),
c = l.to,
u = l.startFromOffset,
d = l.endFromOffset,
p = l.endIndex,
h = l.endToOffset,
f = Il(o, p);
if (!Bl.test(f) || r.from === u || !r.empty) return !1;
if (!f.replace(zl, "").trim()) s.deleteRange(d, h).split(s.mapping.map(h));
else {
var m = $l(f),
g = a.findFirstNodeAtLine(p + 1),
v = f.slice(c - d),
y = {
toastMark: a,
mdNode: g,
doc: o,
line: p + 1
},
b = Zl[m](y),
w = b.listSyntax,
k = b.changedResults;
if (null == k ? void 0 : k.length) {
s.split(c), k.unshift({
text: w + v,
line: p + 1
}), e.changeToListPerLine(s, k, {
from: c,
startLine: k[0].line,
endLine: et(k).line
});
var x = s.mapping.map(h) - v.length;
s.setSelection(Os(s, x))
} else {
Ls(s, h, v, Ns(i, w + v))
}
}
return n(s), !0
}
}, n.prototype.toList = function(e) {
var t = this;
return function() {
return function(n, r) {
for (var o = n.doc, i = n.tr, s = n.selection, a = t.context.toastMark, l = il(s), c = l.startIndex + 1, u = l.endIndex + 1, d = l.endToOffset, p = [], h = c; h <= u; h += 1) {
var f = a.findFirstNodeAtLine(h);
if (f && pc(f, h)) break;
if (-1 === p.indexOf(h)) {
var m = {
toastMark: a,
mdNode: f,
doc: o,
line: h,
startLine: c
},
g = (Hs(f) ? Gl[e](m) : Kl[e](m)).changedResults,
v = t.changeToListPerLine(i, g, {
from: sl(o, g[0].line - 1).startOffset,
startLine: g[0].line,
endLine: et(g).line,
indexDiff: 1
});
d = Math.max(v, d), g && (p = p.concat(g.map((function(e) {
return e.line
}))))
}
}
return r(i.setSelection(Os(i, i.mapping.map(d)))), !0
}
}
}, n.prototype.changeToListPerLine = function(e, t, n) {
for (var r = n.from, o = n.startLine, i = n.endLine, s = n.indexDiff, a = void 0 === s ? 0 : s, l = 0, c = function(n) {
var o = e.doc.child(n),
i = o.nodeSize,
s = o.content,
c = e.mapping.map(r),
d = c + s.size,
p = t.filter((function(e) {
return e.line - a === n
}))[0];
p && (e.replaceWith(c, d, Ns(u.context.schema, p.text)), l = Math.max(l, r + s.size)), r += i
}, u = this, d = o - a; d <= i - a; d += 1) c(d);
return l
}, n.prototype.toggleTask = function() {
var e = this;
return function(t, n) {
for (var r = t.selection, o = t.tr, i = t.doc, s = t.schema, a = e.context.toastMark, l = il(r), c = l.startIndex, u = l.endIndex, d = null, p = c; p <= u; p += 1) {
var h = a.findFirstNodeAtLine(p + 1);
if (Hs(h) && h.listData.task) {
var f = h.listData,
m = f.checked,
g = f.padding,
v = m ? " " : "x",
y = h.sourcepos[0],
b = sl(i, y[0] - 1).startOffset;
b += y[1] + g, d = o.replaceWith(b, b + 1, s.text(v))
}
}
return !!d && (n(d), !0)
}
}, n.prototype.commands = function() {
return {
bulletList: this.toList("bullet"),
orderedList: this.toList("ordered"),
taskList: this.toList("task")
}
}, n.prototype.keymaps = function() {
var e = this.toList("bullet")(),
t = this.toList("ordered")(),
n = this.toList("task")(),
r = this.toggleTask();
return {
"Mod-u": e,
"Mod-U": e,
"Mod-o": t,
"Mod-O": t,
"alt-t": n,
"alt-T": n,
"Shift-Ctrl-x": r,
"Shift-Ctrl-X": r,
Enter: this.extendList()
}
}, n
}(Al);
function fc(e, t) {
return function() {
return function(n, r) {
var o = n.tr,
i = n.selection,
s = Ga()(e) ? e : function(t) {
return e.test(t)
},
a = t.length,
l = o.doc,
c = Ya(i),
u = c[0],
d = c[1],
p = Math.max(u - a, 1),
h = Math.min(d + a, l.content.size - 1),
f = i.content(),
m = f.content.textBetween(0, f.content.size, "\n"),
g = l.textBetween(p, u, "\n"),
v = l.textBetween(d, h, "\n");
if (m = "" + g + m + v, g && v && s(m)) o.delete(h - a, h).delete(p, p + a);
else {
o.insertText(t, d).insertText(t, u);
var y = i.empty ? Os(o, u + a) : Os(o, u + a, d + a);
o.setSelection(y)
}
return r(o), !0
}
}
}
var mc = /^(\*{2}|_{2}).*([\s\S]*)\1$/m,
gc = function(e) {
function n() {
return null !== e && e.apply(this, arguments) || this
}
return t(n, e), Object.defineProperty(n.prototype, "name", {
get: function() {
return "strong"
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(n.prototype, "schema", {
get: function() {
return {
toDOM: function() {
return ["span", {
class: Ca("strong")
}, 0]
}
}
},
enumerable: !1,
configurable: !0
}), n.prototype.bold = function() {
return fc(mc, "**")
}, n.prototype.commands = function() {
return {
bold: this.bold()
}
}, n.prototype.keymaps = function() {
var e = this.bold()();
return {
"Mod-b": e,
"Mod-B": e
}
}, n
}(Al),
vc = /^(~{2}).*([\s\S]*)\1$/m,
yc = function(e) {
function n() {
return null !== e && e.apply(this, arguments) || this
}
return t(n, e), Object.defineProperty(n.prototype, "name", {
get: function() {
return "strike"
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(n.prototype, "schema", {
get: function() {
return {
toDOM: function() {
return ["span", {
class: Ca("strike")
}, 0]
}
}
},
enumerable: !1,
configurable: !0
}), n.prototype.commands = function() {
return fc(vc, "~~")
}, n.prototype.keymaps = function() {
var e = this.commands()();
return {
"Mod-s": e,
"Mod-S": e
}
}, n
}(Al),
bc = /^(\*|_).*([\s\S]*)\1$/m,
wc = function(e) {
function n() {
return null !== e && e.apply(this, arguments) || this
}
return t(n, e), Object.defineProperty(n.prototype, "name", {
get: function() {
return "emph"
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(n.prototype, "schema", {
get: function() {
return {
toDOM: function() {
return ["span", {
class: Ca("emph")
}, 0]
}
}
},
enumerable: !1,
configurable: !0
}), n.prototype.italic = function() {
return fc(bc, "*")
}, n.prototype.commands = function() {
return {
italic: this.italic()
}
}, n.prototype.keymaps = function() {
var e = this.italic()();
return {
"Mod-i": e,
"Mod-I": e
}
}, n
}(Al),
kc = /^(`).*([\s\S]*)\1$/m,
xc = function(e) {
function n() {
return null !== e && e.apply(this, arguments) || this
}
return t(n, e), Object.defineProperty(n.prototype, "name", {
get: function() {
return "code"
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(n.prototype, "schema", {
get: function() {
return {
attrs: {
start: {
default: !1
},
end: {
default: !1
},
marked: {
default: !1
}
},
toDOM: function(e) {
var t = e.attrs,
n = "code";
return t.start && (n += "|delimiter|start"), t.end && (n += "|delimiter|end"), t.marked && (n += "|marked-text"), ["span", {
class: Ca.apply(void 0, n.split("|"))
}, 0]
}
}
},
enumerable: !1,
configurable: !0
}), n.prototype.commands = function() {
return fc(kc, "`")
}, n.prototype.keymaps = function() {
var e = this.commands()();
return {
"Shift-Mod-c": e,
"Shift-Mod-C": e
}
}, n
}(Al),
Cc = function(e) {
function n() {
return null !== e && e.apply(this, arguments) || this
}
return t(n, e), Object.defineProperty(n.prototype, "name", {
get: function() {
return "link"
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(n.prototype, "schema", {
get: function() {
return {
attrs: {
url: {
default: !1
},
desc: {
default: !1
}
},
toDOM: function(e) {
var t = e.attrs,
n = "link";
return t.url && (n += "|link-url|marked-text"), t.desc && (n += "|link-desc|marked-text"), ["span", {
class: Ca.apply(void 0, n.split("|"))
}, 0]
}
}
},
enumerable: !1,
configurable: !0
}), n.prototype.addLinkOrImage = function(e) {
return function(t) {
return function(n, r) {
var o = n.selection,
i = n.tr,
s = n.schema,
a = Ya(o),
l = a[0],
c = a[1],
u = t,
d = u.linkText,
p = u.altText,
h = u.linkUrl,
f = u.imageUrl,
m = d,
g = h,
v = "";
return "image" === e && (m = p, g = f, v = "!"), v += "[" + (m = Ze(m)) + "](" + g + ")", r(i.replaceWith(l, c, Ns(s, v))), !0
}
}
}, n.prototype.commands = function() {
return {
addImage: this.addLinkOrImage("image"),
addLink: this.addLinkOrImage("link")
}
}, n
}(Al),
Tc = function(e) {
function n() {
return null !== e && e.apply(this, arguments) || this
}
return t(n, e), Object.defineProperty(n.prototype, "name", {
get: function() {
return "taskDelimiter"
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(n.prototype, "schema", {
get: function() {
return {
toDOM: function() {
return ["span", {
class: Ca("delimiter", "list-item")
}, 0]
}
}
},
enumerable: !1,
configurable: !0
}), n
}(Al),
Mc = function(e) {
function n() {
return null !== e && e.apply(this, arguments) || this
}
return t(n, e), Object.defineProperty(n.prototype, "name", {
get: function() {
return "delimiter"
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(n.prototype, "schema", {
get: function() {
return {
toDOM: function() {
return ["span", {
class: Ca("delimiter")
}, 0]
}
}
},
enumerable: !1,
configurable: !0
}), n
}(Al),
Sc = function(e) {
function n() {
return null !== e && e.apply(this, arguments) || this
}
return t(n, e), Object.defineProperty(n.prototype, "name", {
get: function() {
return "meta"
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(n.prototype, "schema", {
get: function() {
return {
toDOM: function() {
return ["span", {
class: Ca("meta")
}, 0]
}
}
},
enumerable: !1,
configurable: !0
}), n
}(Al),
Ec = function(e) {
function n() {
return null !== e && e.apply(this, arguments) || this
}
return t(n, e), Object.defineProperty(n.prototype, "name", {
get: function() {
return "markedText"
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(n.prototype, "schema", {
get: function() {
return {
toDOM: function() {
return ["span", {
class: Ca("marked-text")
}, 0]
}
}
},
enumerable: !1,
configurable: !0
}), n
}(Al),
Nc = function(e) {
function n() {
return null !== e && e.apply(this, arguments) || this
}
return t(n, e), Object.defineProperty(n.prototype, "name", {
get: function() {
return "tableCell"
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(n.prototype, "schema", {
get: function() {
return {
toDOM: function() {
return ["span", {
class: Ca("table-cell")
}, 0]
}
}
},
enumerable: !1,
configurable: !0
}), n
}(Al),
Oc = function(e) {
function n() {
return null !== e && e.apply(this, arguments) || this
}
return t(n, e), Object.defineProperty(n.prototype, "name", {
get: function() {
return "html"
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(n.prototype, "schema", {
get: function() {
return {
toDOM: function() {
return ["span", {
class: Ca("html")
}, 0]
}
}
},
enumerable: !1,
configurable: !0
}), n
}(Al),
Dc = "$$",
Ac = function(e) {
function n() {
return null !== e && e.apply(this, arguments) || this
}
return t(n, e), Object.defineProperty(n.prototype, "name", {
get: function() {
return "customBlock"
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(n.prototype, "schema", {
get: function() {
return {
toDOM: function() {
return ["span", {
class: Ca("custom-block")
}, 0]
}
}
},
enumerable: !1,
configurable: !0
}), n.prototype.commands = function() {
return function(e) {
return function(t, n) {
var r = t.selection,
o = t.schema,
i = t.tr,
s = il(r),
a = s.startFromOffset,
l = s.endToOffset;
if (!(null == e ? void 0 : e.info)) return !1;
var c = "$$" + e.info,
u = Ns(o, c),
d = Ns(o, Dc);
return i.insert(a, u).split(a + c.length), i.split(i.mapping.map(l)).insert(i.mapping.map(l), d), n(i.setSelection(Os(i, i.mapping.map(l) - (Dc.length + 2)))), !0
}
}
}, n
}(Al),
Lc = /x|backspace/i,
Ic = /^\[(\s*)(x?)(\s*)\](?:\s+)/i;
var Rc = "cut",
Pc = /\r\n|\n|\r/,
Bc = function(e) {
function n(t, n) {
var r = e.call(this, t) || this,
i = n.toastMark,
s = n.useCommandShortcut,
a = void 0 === s || s,
l = n.mdPlugins,
c = void 0 === l ? [] : l;
return r.editorType = "markdown", r.el.classList.add("md-mode"), r.toastMark = i, r.extraPlugins = c, r.specs = r.createSpecs(), r.schema = r.createSchema(), r.context = r.createContext(), r.keymaps = r.createKeymaps(a), r.view = r.createView(), r.commands = r.createCommands(), r.specs.setContext(o(o({}, r.context), {
view: r.view
})), r.createClipboard(), r.eventEmitter.listen("changePreviewTabWrite", (function(e) {
return r.toggleActive(!0, e)
})), r.eventEmitter.listen("changePreviewTabPreview", (function() {
return r.toggleActive(!1)
})), r.initEvent(), r
}
return t(n, e), n.prototype.toggleActive = function(e, t) {
Sa(this.el, "active", e), e ? t || this.focus() : this.blur()
}, n.prototype.createClipboard = function() {
var e = this;
this.clipboard = document.createElement("textarea"), this.clipboard.className = xa("pseudo-clipboard"), this.clipboard.addEventListener("paste", (function(t) {
var n = t.clipboardData || window.clipboardData,
r = n && n.items;
if (r) {
var o = vi()(r).some((function(e) {
return "string" === e.kind && "text/rtf" === e.type
}));
if (!o) {
var i = za(r);
i && (t.preventDefault(), Ha(e.eventEmitter, i, t.type))
}
}
})), this.clipboard.addEventListener("input", (function(t) {
var n = t.target.value;
e.replaceSelection(n), t.preventDefault(), t.target.value = ""
})), this.el.insertBefore(this.clipboard, this.view.dom)
}, n.prototype.createContext = function() {
return {
toastMark: this.toastMark,
schema: this.schema,
eventEmitter: this.eventEmitter
}
}, n.prototype.createSpecs = function() {
return new Qa([new Ol, new nc, new _a, new rc, new ic, new Pl, new ac, new Ac, new uc, new Nc, new dc, new hc, new gc, new yc, new wc, new xc, new Cc, new Mc, new Tc, new Ec, new Sc, new Oc])
}, n.prototype.createPlugins = function() {
return i([Cl(this.context), Nl(this.context), (e = this.context, t = e.schema, n = e.toastMark, new an({
props: {
handleDOMEvents: {
keyup: function(e, r) {
var o, i = e.state,
s = i.doc,
a = i.tr,
l = i.selection;
if (l.empty && Lc.test(r.key)) {
var c = il(l),
u = c.startIndex,
d = c.startFromOffset,
p = [u + 1, c.from - d + 1],
h = js(n.findNodeAtPosition(p), (function(e) {
var t;
return "paragraph" === e.type && "item" === (null === (t = e.parent) || void 0 === t ? void 0 : t.type)
}));
if (null === (o = null == h ? void 0 : h.firstChild) || void 0 === o ? void 0 : o.literal) {
var f = h.firstChild,
m = f.literal.match(Ic);
if (m) {
var g = f.sourcepos[0],
v = m[1],
y = m[2],
b = m[3],
w = v.length + b.length,
k = sl(s, g[0] - 1).startOffset,
x = g[1] + k;
if (y) {
var C = w ? w + 1 : 0;
a.replaceWith(x, C + x, t.text(y)), e.dispatch(a)
} else w || (a.insertText(" ", x), e.dispatch(a))
}
}
}
return !1
}
}
}
}))], this.createPluginProps()).concat(this.defaultPlugins);
var e, t, n
}, n.prototype.createView = function() {
var e = this;
return new ui(this.el, {
state: this.createState(),
dispatchTransaction: function(t) {
e.updateMarkdown(t);
var n = e.view.state.applyTransaction(t).state;
e.view.updateState(n), e.emitChangeEvent(t)
},
handleKeyDown: function(t, n) {
return (n.metaKey || n.ctrlKey) && "V" === n.key.toUpperCase() && e.clipboard.focus(), e.eventEmitter.emit("keydown", e.editorType, n), !1
},
handleDOMEvents: {
copy: function(t, n) {
return e.captureCopy(n)
},
cut: function(t, n) {
return e.captureCopy(n, Rc)
},
scroll: function() {
return e.eventEmitter.emit("scroll", "editor"), !0
},
keyup: function(t, n) {
return e.eventEmitter.emit("keyup", e.editorType, n), !1
}
},
nodeViews: {
widget: ja
}
})
}, n.prototype.createCommands = function() {
return this.specs.commands(this.view)
}, n.prototype.captureCopy = function(e, t) {
e.preventDefault();
var n = this.view.state,
r = n.selection,
o = n.tr;
if (r.empty) return !0;
var i = this.getChanged(r.content());
return e.clipboardData ? e.clipboardData.setData("text/plain", i) : window.clipboardData.setData("Text", i), t === Rc && this.view.dispatch(o.deleteSelection().scrollIntoView().setMeta("uiEvent", Rc)), !0
}, n.prototype.updateMarkdown = function(e) {
var t = this;
e.docChanged && e.steps.forEach((function(n, r) {
if (n.slice && !(n instanceof wt)) {
var o = e.docs[r],
i = [n.from, n.to],
s = nl(o, i[0], i[1]),
a = s[0],
l = s[1],
c = t.getChanged(n.slice);
a[0] === l[0] && a[1] === l[1] && "" === c && (c = "\n");
var u = t.toastMark.editMarkdown(a, l, c);
t.eventEmitter.emit("updatePreview", u), e.setMeta("editResult", u).scrollIntoView()
}
}))
}, n.prototype.getChanged = function(e) {
var t = "",
n = e.content.size;
return e.content.nodesBetween(0, n, (function(e, r) {
e.isText ? t += e.text.slice(Math.max(0, r) - r, n - r) : e.isBlock && r > 0 && (t += "\n")
})), t
}, n.prototype.setSelection = function(e, t) {
void 0 === t && (t = e);
var n = this.view.state.tr,
r = ol(n.doc, e, t),
o = r[0],
i = r[1];
this.view.dispatch(n.setSelection(Os(n, o, i)).scrollIntoView())
}, n.prototype.replaceSelection = function(e, t, n) {
var r, o = this.view.state,
i = o.tr,
s = o.schema,
a = o.doc,
l = e.split(Pc).map((function(e) {
return Es(s, ra(e, s))
})),
c = new v(d.from(l), 1, 1);
if (this.focus(), t && n) {
var u = ol(a, t, n),
p = u[0],
h = u[1];
r = i.replaceRange(p, h, c)
} else r = i.replaceSelection(c);
this.view.dispatch(r.scrollIntoView())
}, n.prototype.deleteSelection = function(e, t) {
var n, r = this.view.state,
o = r.tr,
i = r.doc;
if (e && t) {
var s = ol(i, e, t),
a = s[0],
l = s[1];
n = o.deleteRange(a, l)
} else n = o.deleteSelection();
this.view.dispatch(n.scrollIntoView())
}, n.prototype.getSelectedText = function(e, t) {
var n = this.view.state,
r = n.doc,
o = n.selection,
i = o.from,
s = o.to;
if (e && t) {
var a = ol(r, e, t);
i = a[0], s = a[1]
}
return r.textBetween(i, s, "\n")
}, n.prototype.getSelection = function() {
var e = this.view.state.selection,
t = e.from,
n = e.to;
return nl(this.view.state.tr.doc, t, n)
}, n.prototype.setMarkdown = function(e, t) {
void 0 === t && (t = !0);
var n = e.split(Pc),
r = this.view.state,
o = r.tr,
i = r.doc,
s = r.schema,
a = n.map((function(e) {
return Es(s, ra(e, s))
}));
this.view.dispatch(o.replaceWith(0, i.content.size, a)), t && this.moveCursorToEnd(!0)
}, n.prototype.addWidget = function(e, t, n) {
var r = this.view.state,
o = r.tr,
i = r.doc,
s = r.selection,
a = n ? ol(i, n, n)[0] : s.to;
this.view.dispatch(o.setMeta("widget", {
pos: a,
node: e,
style: t
}))
}, n.prototype.replaceWithWidget = function(e, t, n) {
var r = this.view.state,
o = r.tr,
i = r.schema,
s = ol(r.doc, e, t),
a = ra(n, i);
this.view.dispatch(o.replaceWith(s[0], s[1], a))
}, n.prototype.getRangeInfoOfNode = function(e) {
var t = this.view.state,
n = t.doc,
r = t.selection,
o = e || nl(n, r.from)[0],
i = this.toastMark.findNodeAtPosition(o);
return "text" === i.type && "paragraph" !== i.parent.type && (i = i.parent), i.sourcepos[1][1] += 1, {
range: i.sourcepos,
type: i.type
}
}, n.prototype.getMarkdown = function() {
return this.toastMark.getLineTexts().map((function(e) {
return Xs(e)
})).join("\n")
}, n.prototype.getToastMark = function() {
return this.toastMark
}, n
}(Wa),
Fc = Bc,
Hc = n(349),
zc = n.n(Hc),
qc = n(348),
Vc = n.n(qc),
jc = function(e, t) {
return jc = Object.setPrototypeOf || {
__proto__: []
}
instanceof Array && function(e, t) {
e.__proto__ = t
} || function(e, t) {
for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n])
}, jc(e, t)
};
function $c(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Class extends value " + String(t) + " is not a constructor or null");
function n() {
this.constructor = e
}
jc(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
}
var _c = function() {
return _c = Object.assign || function(e) {
for (var t, n = 1, r = arguments.length; n < r; n++)
for (var o in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]);
return e
}, _c.apply(this, arguments)
};
function Uc(e, t, n) {
if (n || 2 === arguments.length)
for (var r, o = 0, i = t.length; o < i; o++) !r && o in t || (r || (r = Array.prototype.slice.call(t, 0, o)), r[o] = t[o]);
return e.concat(r || Array.prototype.slice.call(t))
}
var Wc = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof window ? window : void 0 !== n.g ? n.g : "undefined" != typeof self ? self : {},
Jc = {};
function Gc(e, t, n) {
var r, o, i, s, a, l = "";
for ("string" != typeof t && (n = t, t = Gc.defaultChars), void 0 === n && (n = !0), a = function(e) {
var t, n, r = Jc[e];
if (r) return r;
for (r = Jc[e] = [], t = 0; t < 128; t++) n = String.fromCharCode(t), /^[0-9a-z]$/i.test(n) ? r.push(n) : r.push("%" + ("0" + t.toString(16).toUpperCase()).slice(-2));
for (t = 0; t < e.length; t++) r[e.charCodeAt(t)] = e[t];
return r
}(t), r = 0, o = e.length; r < o; r++)
if (i = e.charCodeAt(r), n && 37 === i && r + 2 < o && /^[0-9a-f]{2}$/i.test(e.slice(r + 1, r + 3))) l += e.slice(r, r + 3), r += 2;
else if (i < 128) l += a[i];
else if (i >= 55296 && i <= 57343) {
if (i >= 55296 && i <= 56319 && r + 1 < o && (s = e.charCodeAt(r + 1)) >= 56320 && s <= 57343) {
l += encodeURIComponent(e[r] + e[r + 1]), r++;
continue
}
l += "%EF%BF%BD"
} else l += encodeURIComponent(e[r]);
return l
}
Gc.defaultChars = ";/?:@&=+$,-_.!~*'()#", Gc.componentChars = "-_.!~*'()";
var Kc = Gc,
Zc = {},
Xc = {},
Qc = {
Aacute: "Ã",
aacute: "á",
Abreve: "Ä‚",
abreve: "ă",
ac: "∾",
acd: "∿",
acE: "∾̳",
Acirc: "Â",
acirc: "â",
acute: "´",
Acy: "Ð",
acy: "а",
AElig: "Æ",
aelig: "æ",
af: "â¡",
Afr: "ð”„",
afr: "ð”ž",
Agrave: "À",
agrave: "Ã ",
alefsym: "ℵ",
aleph: "ℵ",
Alpha: "Α",
alpha: "α",
Amacr: "Ä€",
amacr: "Ä",
amalg: "⨿",
amp: "&",
AMP: "&",
andand: "â©•",
And: "â©“",
and: "∧",
andd: "⩜",
andslope: "⩘",
andv: "⩚",
ang: "∠",
ange: "⦤",
angle: "∠",
angmsdaa: "⦨",
angmsdab: "⦩",
angmsdac: "⦪",
angmsdad: "⦫",
angmsdae: "⦬",
angmsdaf: "â¦",
angmsdag: "⦮",
angmsdah: "⦯",
angmsd: "∡",
angrt: "∟",
angrtvb: "⊾",
angrtvbd: "â¦",
angsph: "∢",
angst: "Ã…",
angzarr: "â¼",
Aogon: "Ä„",
aogon: "Ä…",
Aopf: "ð”¸",
aopf: "ð•’",
apacir: "⩯",
ap: "≈",
apE: "â©°",
ape: "≊",
apid: "≋",
apos: "'",
ApplyFunction: "â¡",
approx: "≈",
approxeq: "≊",
Aring: "Ã…",
aring: "Ã¥",
Ascr: "ð’œ",
ascr: "ð’¶",
Assign: "≔",
ast: "*",
asymp: "≈",
asympeq: "â‰",
Atilde: "Ã",
atilde: "ã",
Auml: "Ä",
auml: "ä",
awconint: "∳",
awint: "⨑",
backcong: "≌",
backepsilon: "϶",
backprime: "‵",
backsim: "∽",
backsimeq: "â‹",
Backslash: "∖",
Barv: "â«§",
barvee: "⊽",
barwed: "⌅",
Barwed: "⌆",
barwedge: "⌅",
bbrk: "⎵",
bbrktbrk: "⎶",
bcong: "≌",
Bcy: "Б",
bcy: "б",
bdquo: "„",
becaus: "∵",
because: "∵",
Because: "∵",
bemptyv: "⦰",
bepsi: "϶",
bernou: "ℬ",
Bernoullis: "ℬ",
Beta: "Î’",
beta: "β",
beth: "â„¶",
between: "≬",
Bfr: "ð”…",
bfr: "ð”Ÿ",
bigcap: "â‹‚",
bigcirc: "â—¯",
bigcup: "⋃",
bigodot: "⨀",
bigoplus: "â¨",
bigotimes: "⨂",
bigsqcup: "⨆",
bigstar: "★",
bigtriangledown: "â–½",
bigtriangleup: "â–³",
biguplus: "⨄",
bigvee: "â‹",
bigwedge: "â‹€",
bkarow: "â¤",
blacklozenge: "â§«",
blacksquare: "â–ª",
blacktriangle: "â–´",
blacktriangledown: "â–¾",
blacktriangleleft: "â—‚",
blacktriangleright: "â–¸",
blank: "â£",
blk12: "â–’",
blk14: "â–‘",
blk34: "â–“",
block: "â–ˆ",
bne: "=⃥",
bnequiv: "≡⃥",
bNot: "â«",
bnot: "âŒ",
Bopf: "ð”¹",
bopf: "ð•“",
bot: "⊥",
bottom: "⊥",
bowtie: "⋈",
boxbox: "⧉",
boxdl: "â”",
boxdL: "â••",
boxDl: "â•–",
boxDL: "â•—",
boxdr: "┌",
boxdR: "â•’",
boxDr: "â•“",
boxDR: "â•”",
boxh: "─",
boxH: "â•",
boxhd: "┬",
boxHd: "╤",
boxhD: "â•¥",
boxHD: "╦",
boxhu: "â”´",
boxHu: "â•§",
boxhU: "╨",
boxHU: "â•©",
boxminus: "⊟",
boxplus: "⊞",
boxtimes: "⊠",
boxul: "┘",
boxuL: "â•›",
boxUl: "╜",
boxUL: "â•",
boxur: "â””",
boxuR: "╘",
boxUr: "â•™",
boxUR: "╚",
boxv: "│",
boxV: "â•‘",
boxvh: "┼",
boxvH: "╪",
boxVh: "â•«",
boxVH: "╬",
boxvl: "┤",
boxvL: "â•¡",
boxVl: "â•¢",
boxVL: "â•£",
boxvr: "├",
boxvR: "╞",
boxVr: "╟",
boxVR: "â• ",
bprime: "‵",
breve: "˘",
Breve: "˘",
brvbar: "¦",
bscr: "ð’·",
Bscr: "ℬ",
bsemi: "â",
bsim: "∽",
bsime: "â‹",
bsolb: "â§…",
bsol: "\\",
bsolhsub: "⟈",
bull: "•",
bullet: "•",
bump: "≎",
bumpE: "⪮",
bumpe: "â‰",
Bumpeq: "≎",
bumpeq: "â‰",
Cacute: "Ć",
cacute: "ć",
capand: "â©„",
capbrcup: "⩉",
capcap: "â©‹",
cap: "∩",
Cap: "â‹’",
capcup: "⩇",
capdot: "â©€",
CapitalDifferentialD: "â……",
caps: "∩︀",
caret: "â",
caron: "ˇ",
Cayleys: "â„",
ccaps: "â©",
Ccaron: "Č",
ccaron: "Ä",
Ccedil: "Ç",
ccedil: "ç",
Ccirc: "Ĉ",
ccirc: "ĉ",
Cconint: "∰",
ccups: "⩌",
ccupssm: "â©",
Cdot: "ÄŠ",
cdot: "Ä‹",
cedil: "¸",
Cedilla: "¸",
cemptyv: "⦲",
cent: "¢",
centerdot: "·",
CenterDot: "·",
cfr: "ð” ",
Cfr: "â„",
CHcy: "Ч",
chcy: "ч",
check: "✓",
checkmark: "✓",
Chi: "Χ",
chi: "χ",
circ: "ˆ",
circeq: "≗",
circlearrowleft: "↺",
circlearrowright: "↻",
circledast: "⊛",
circledcirc: "⊚",
circleddash: "âŠ",
CircleDot: "⊙",
circledR: "®",
circledS: "Ⓢ",
CircleMinus: "⊖",
CirclePlus: "⊕",
CircleTimes: "⊗",
cir: "â—‹",
cirE: "⧃",
cire: "≗",
cirfnint: "â¨",
cirmid: "⫯",
cirscir: "â§‚",
ClockwiseContourIntegral: "∲",
CloseCurlyDoubleQuote: "â€",
CloseCurlyQuote: "’",
clubs: "♣",
clubsuit: "♣",
colon: ":",
Colon: "∷",
Colone: "â©´",
colone: "≔",
coloneq: "≔",
comma: ",",
commat: "@",
comp: "âˆ",
compfn: "∘",
complement: "âˆ",
complexes: "â„‚",
cong: "≅",
congdot: "â©",
Congruent: "≡",
conint: "∮",
Conint: "∯",
ContourIntegral: "∮",
copf: "ð•”",
Copf: "â„‚",
coprod: "âˆ",
Coproduct: "âˆ",
copy: "©",
COPY: "©",
copysr: "â„—",
CounterClockwiseContourIntegral: "∳",
crarr: "↵",
cross: "✗",
Cross: "⨯",
Cscr: "ð’ž",
cscr: "ð’¸",
csub: "â«",
csube: "â«‘",
csup: "â«",
csupe: "â«’",
ctdot: "⋯",
cudarrl: "⤸",
cudarrr: "⤵",
cuepr: "⋞",
cuesc: "⋟",
cularr: "↶",
cularrp: "⤽",
cupbrcap: "⩈",
cupcap: "⩆",
CupCap: "â‰",
cup: "∪",
Cup: "â‹“",
cupcup: "⩊",
cupdot: "âŠ",
cupor: "â©…",
cups: "∪︀",
curarr: "↷",
curarrm: "⤼",
curlyeqprec: "⋞",
curlyeqsucc: "⋟",
curlyvee: "⋎",
curlywedge: "â‹",
curren: "¤",
curvearrowleft: "↶",
curvearrowright: "↷",
cuvee: "⋎",
cuwed: "â‹",
cwconint: "∲",
cwint: "∱",
cylcty: "âŒ",
dagger: "†",
Dagger: "‡",
daleth: "ℸ",
darr: "↓",
Darr: "↡",
dArr: "⇓",
dash: "â€",
Dashv: "⫤",
dashv: "⊣",
dbkarow: "â¤",
dblac: "Ë",
Dcaron: "ÄŽ",
dcaron: "Ä",
Dcy: "Д",
dcy: "д",
ddagger: "‡",
ddarr: "⇊",
DD: "â……",
dd: "â…†",
DDotrahd: "⤑",
ddotseq: "â©·",
deg: "°",
Del: "∇",
Delta: "Δ",
delta: "δ",
demptyv: "⦱",
dfisht: "⥿",
Dfr: "ð”‡",
dfr: "ð”¡",
dHar: "⥥",
dharl: "⇃",
dharr: "⇂",
DiacriticalAcute: "´",
DiacriticalDot: "Ë™",
DiacriticalDoubleAcute: "Ë",
DiacriticalGrave: "`",
DiacriticalTilde: "˜",
diam: "â‹„",
diamond: "â‹„",
Diamond: "â‹„",
diamondsuit: "♦",
diams: "♦",
die: "¨",
DifferentialD: "â…†",
digamma: "Ï",
disin: "⋲",
div: "÷",
divide: "÷",
divideontimes: "⋇",
divonx: "⋇",
DJcy: "Ђ",
djcy: "Ñ’",
dlcorn: "⌞",
dlcrop: "âŒ",
dollar: "$",
Dopf: "ð”»",
dopf: "ð••",
Dot: "¨",
dot: "Ë™",
DotDot: "⃜",
doteq: "â‰",
doteqdot: "≑",
DotEqual: "â‰",
dotminus: "∸",
dotplus: "∔",
dotsquare: "⊡",
doublebarwedge: "⌆",
DoubleContourIntegral: "∯",
DoubleDot: "¨",
DoubleDownArrow: "⇓",
DoubleLeftArrow: "â‡",
DoubleLeftRightArrow: "⇔",
DoubleLeftTee: "⫤",
DoubleLongLeftArrow: "⟸",
DoubleLongLeftRightArrow: "⟺",
DoubleLongRightArrow: "⟹",
DoubleRightArrow: "⇒",
DoubleRightTee: "⊨",
DoubleUpArrow: "⇑",
DoubleUpDownArrow: "⇕",
DoubleVerticalBar: "∥",
DownArrowBar: "⤓",
downarrow: "↓",
DownArrow: "↓",
Downarrow: "⇓",
DownArrowUpArrow: "⇵",
DownBreve: "Ì‘",
downdownarrows: "⇊",
downharpoonleft: "⇃",
downharpoonright: "⇂",
DownLeftRightVector: "â¥",
DownLeftTeeVector: "⥞",
DownLeftVectorBar: "⥖",
DownLeftVector: "↽",
DownRightTeeVector: "⥟",
DownRightVectorBar: "⥗",
DownRightVector: "â‡",
DownTeeArrow: "↧",
DownTee: "⊤",
drbkarow: "â¤",
drcorn: "⌟",
drcrop: "⌌",
Dscr: "ð’Ÿ",
dscr: "ð’¹",
DScy: "Ð…",
dscy: "Ñ•",
dsol: "â§¶",
Dstrok: "Ä",
dstrok: "Ä‘",
dtdot: "⋱",
dtri: "â–¿",
dtrif: "â–¾",
duarr: "⇵",
duhar: "⥯",
dwangle: "⦦",
DZcy: "Ð",
dzcy: "ÑŸ",
dzigrarr: "⟿",
Eacute: "É",
eacute: "é",
easter: "â©®",
Ecaron: "Äš",
ecaron: "Ä›",
Ecirc: "Ê",
ecirc: "ê",
ecir: "≖",
ecolon: "≕",
Ecy: "Ð",
ecy: "Ñ",
eDDot: "â©·",
Edot: "Ä–",
edot: "Ä—",
eDot: "≑",
ee: "â…‡",
efDot: "≒",
Efr: "ð”ˆ",
efr: "ð”¢",
eg: "⪚",
Egrave: "È",
egrave: "è",
egs: "⪖",
egsdot: "⪘",
el: "⪙",
Element: "∈",
elinters: "â§",
ell: "â„“",
els: "⪕",
elsdot: "⪗",
Emacr: "Ä’",
emacr: "Ä“",
empty: "∅",
emptyset: "∅",
EmptySmallSquare: "â—»",
emptyv: "∅",
EmptyVerySmallSquare: "â–«",
emsp13: " ",
emsp14: " ",
emsp: " ",
ENG: "ÅŠ",
eng: "Å‹",
ensp: " ",
Eogon: "Ę",
eogon: "Ä™",
Eopf: "ð”¼",
eopf: "ð•–",
epar: "â‹•",
eparsl: "â§£",
eplus: "⩱",
epsi: "ε",
Epsilon: "Ε",
epsilon: "ε",
epsiv: "ϵ",
eqcirc: "≖",
eqcolon: "≕",
eqsim: "≂",
eqslantgtr: "⪖",
eqslantless: "⪕",
Equal: "⩵",
equals: "=",
EqualTilde: "≂",
equest: "≟",
Equilibrium: "⇌",
equiv: "≡",
equivDD: "⩸",
eqvparsl: "â§¥",
erarr: "⥱",
erDot: "≓",
escr: "ℯ",
Escr: "â„°",
esdot: "â‰",
Esim: "⩳",
esim: "≂",
Eta: "Η",
eta: "η",
ETH: "Ã",
eth: "ð",
Euml: "Ë",
euml: "ë",
euro: "€",
excl: "!",
exist: "∃",
Exists: "∃",
expectation: "â„°",
exponentiale: "â…‡",
ExponentialE: "â…‡",
fallingdotseq: "≒",
Fcy: "Ф",
fcy: "Ñ„",
female: "♀",
ffilig: "ffi",
fflig: "ff",
ffllig: "ffl",
Ffr: "ð”‰",
ffr: "ð”£",
filig: "ï¬",
FilledSmallSquare: "â—¼",
FilledVerySmallSquare: "â–ª",
fjlig: "fj",
flat: "â™",
fllig: "fl",
fltns: "â–±",
fnof: "Æ’",
Fopf: "ð”½",
fopf: "ð•—",
forall: "∀",
ForAll: "∀",
fork: "â‹”",
forkv: "â«™",
Fouriertrf: "ℱ",
fpartint: "â¨",
frac12: "½",
frac13: "â…“",
frac14: "¼",
frac15: "â…•",
frac16: "â…™",
frac18: "â…›",
frac23: "â…”",
frac25: "â…–",
frac34: "¾",
frac35: "â…—",
frac38: "⅜",
frac45: "â…˜",
frac56: "â…š",
frac58: "â…",
frac78: "â…ž",
frasl: "â„",
frown: "⌢",
fscr: "ð’»",
Fscr: "ℱ",
gacute: "ǵ",
Gamma: "Γ",
gamma: "γ",
Gammad: "Ϝ",
gammad: "Ï",
gap: "⪆",
Gbreve: "Äž",
gbreve: "ÄŸ",
Gcedil: "Ä¢",
Gcirc: "Ĝ",
gcirc: "Ä",
Gcy: "Г",
gcy: "г",
Gdot: "Ä ",
gdot: "Ä¡",
ge: "≥",
gE: "≧",
gEl: "⪌",
gel: "â‹›",
geq: "≥",
geqq: "≧",
geqslant: "⩾",
gescc: "⪩",
ges: "⩾",
gesdot: "⪀",
gesdoto: "⪂",
gesdotol: "⪄",
gesl: "⋛︀",
gesles: "⪔",
Gfr: "ð”Š",
gfr: "ð”¤",
gg: "≫",
Gg: "â‹™",
ggg: "â‹™",
gimel: "â„·",
GJcy: "Ѓ",
gjcy: "Ñ“",
gla: "⪥",
gl: "≷",
glE: "⪒",
glj: "⪤",
gnap: "⪊",
gnapprox: "⪊",
gne: "⪈",
gnE: "≩",
gneq: "⪈",
gneqq: "≩",
gnsim: "â‹§",
Gopf: "ð”¾",
gopf: "ð•˜",
grave: "`",
GreaterEqual: "≥",
GreaterEqualLess: "â‹›",
GreaterFullEqual: "≧",
GreaterGreater: "⪢",
GreaterLess: "≷",
GreaterSlantEqual: "⩾",
GreaterTilde: "≳",
Gscr: "ð’¢",
gscr: "ℊ",
gsim: "≳",
gsime: "⪎",
gsiml: "âª",
gtcc: "⪧",
gtcir: "⩺",
gt: ">",
GT: ">",
Gt: "≫",
gtdot: "â‹—",
gtlPar: "⦕",
gtquest: "⩼",
gtrapprox: "⪆",
gtrarr: "⥸",
gtrdot: "â‹—",
gtreqless: "â‹›",
gtreqqless: "⪌",
gtrless: "≷",
gtrsim: "≳",
gvertneqq: "≩︀",
gvnE: "≩︀",
Hacek: "ˇ",
hairsp: " ",
half: "½",
hamilt: "â„‹",
HARDcy: "Ъ",
hardcy: "ÑŠ",
harrcir: "⥈",
harr: "↔",
hArr: "⇔",
harrw: "â†",
Hat: "^",
hbar: "â„",
Hcirc: "Ĥ",
hcirc: "Ä¥",
hearts: "♥",
heartsuit: "♥",
hellip: "…",
hercon: "⊹",
hfr: "ð”¥",
Hfr: "ℌ",
HilbertSpace: "â„‹",
hksearow: "⤥",
hkswarow: "⤦",
hoarr: "⇿",
homtht: "∻",
hookleftarrow: "↩",
hookrightarrow: "↪",
hopf: "ð•™",
Hopf: "â„",
horbar: "―",
HorizontalLine: "─",
hscr: "ð’½",
Hscr: "â„‹",
hslash: "â„",
Hstrok: "Ħ",
hstrok: "ħ",
HumpDownHump: "≎",
HumpEqual: "â‰",
hybull: "âƒ",
hyphen: "â€",
Iacute: "Ã",
iacute: "Ã",
ic: "â£",
Icirc: "ÃŽ",
icirc: "î",
Icy: "И",
icy: "и",
Idot: "İ",
IEcy: "Е",
iecy: "е",
iexcl: "¡",
iff: "⇔",
ifr: "ð”¦",
Ifr: "â„‘",
Igrave: "Ì",
igrave: "ì",
ii: "â…ˆ",
iiiint: "⨌",
iiint: "âˆ",
iinfin: "⧜",
iiota: "â„©",
IJlig: "IJ",
ijlig: "ij",
Imacr: "Ī",
imacr: "Ä«",
image: "â„‘",
ImaginaryI: "â…ˆ",
imagline: "â„",
imagpart: "â„‘",
imath: "ı",
Im: "â„‘",
imof: "⊷",
imped: "Ƶ",
Implies: "⇒",
incare: "â„…",
in: "∈",
infin: "∞",
infintie: "â§",
inodot: "ı",
intcal: "⊺",
int: "∫",
Int: "∬",
integers: "ℤ",
Integral: "∫",
intercal: "⊺",
Intersection: "â‹‚",
intlarhk: "⨗",
intprod: "⨼",
InvisibleComma: "â£",
InvisibleTimes: "â¢",
IOcy: "Ð",
iocy: "Ñ‘",
Iogon: "Ä®",
iogon: "į",
Iopf: "ð•€",
iopf: "ð•š",
Iota: "Ι",
iota: "ι",
iprod: "⨼",
iquest: "¿",
iscr: "ð’¾",
Iscr: "â„",
isin: "∈",
isindot: "⋵",
isinE: "⋹",
isins: "â‹´",
isinsv: "⋳",
isinv: "∈",
it: "â¢",
Itilde: "Ĩ",
itilde: "Ä©",
Iukcy: "І",
iukcy: "Ñ–",
Iuml: "Ã",
iuml: "ï",
Jcirc: "Ä´",
jcirc: "ĵ",
Jcy: "Й",
jcy: "й",
Jfr: "ð”",
jfr: "ð”§",
jmath: "È·",
Jopf: "ð•",
jopf: "ð•›",
Jscr: "ð’¥",
jscr: "ð’¿",
Jsercy: "Ј",
jsercy: "ј",
Jukcy: "Є",
jukcy: "Ñ”",
Kappa: "Κ",
kappa: "κ",
kappav: "ϰ",
Kcedil: "Ķ",
kcedil: "Ä·",
Kcy: "К",
kcy: "к",
Kfr: "ð”Ž",
kfr: "ð”¨",
kgreen: "ĸ",
KHcy: "Ð¥",
khcy: "Ñ…",
KJcy: "Ќ",
kjcy: "ќ",
Kopf: "ð•‚",
kopf: "ð•œ",
Kscr: "ð’¦",
kscr: "ð“€",
lAarr: "⇚",
Lacute: "Ĺ",
lacute: "ĺ",
laemptyv: "⦴",
lagran: "â„’",
Lambda: "Λ",
lambda: "λ",
lang: "⟨",
Lang: "⟪",
langd: "⦑",
langle: "⟨",
lap: "⪅",
Laplacetrf: "â„’",
laquo: "«",
larrb: "⇤",
larrbfs: "⤟",
larr: "â†",
Larr: "↞",
lArr: "â‡",
larrfs: "â¤",
larrhk: "↩",
larrlp: "↫",
larrpl: "⤹",
larrsim: "⥳",
larrtl: "↢",
latail: "⤙",
lAtail: "⤛",
lat: "⪫",
late: "âª",
lates: "âªï¸€",
lbarr: "⤌",
lBarr: "⤎",
lbbrk: "â²",
lbrace: "{",
lbrack: "[",
lbrke: "⦋",
lbrksld: "â¦",
lbrkslu: "â¦",
Lcaron: "Ľ",
lcaron: "ľ",
Lcedil: "Ä»",
lcedil: "ļ",
lceil: "⌈",
lcub: "{",
Lcy: "Л",
lcy: "л",
ldca: "⤶",
ldquo: "“",
ldquor: "„",
ldrdhar: "⥧",
ldrushar: "⥋",
ldsh: "↲",
le: "≤",
lE: "≦",
LeftAngleBracket: "⟨",
LeftArrowBar: "⇤",
leftarrow: "â†",
LeftArrow: "â†",
Leftarrow: "â‡",
LeftArrowRightArrow: "⇆",
leftarrowtail: "↢",
LeftCeiling: "⌈",
LeftDoubleBracket: "⟦",
LeftDownTeeVector: "⥡",
LeftDownVectorBar: "⥙",
LeftDownVector: "⇃",
LeftFloor: "⌊",
leftharpoondown: "↽",
leftharpoonup: "↼",
leftleftarrows: "⇇",
leftrightarrow: "↔",
LeftRightArrow: "↔",
Leftrightarrow: "⇔",
leftrightarrows: "⇆",
leftrightharpoons: "⇋",
leftrightsquigarrow: "â†",
LeftRightVector: "⥎",
LeftTeeArrow: "↤",
LeftTee: "⊣",
LeftTeeVector: "⥚",
leftthreetimes: "â‹‹",
LeftTriangleBar: "â§",
LeftTriangle: "⊲",
LeftTriangleEqual: "⊴",
LeftUpDownVector: "⥑",
LeftUpTeeVector: "⥠",
LeftUpVectorBar: "⥘",
LeftUpVector: "↿",
LeftVectorBar: "⥒",
LeftVector: "↼",
lEg: "⪋",
leg: "⋚",
leq: "≤",
leqq: "≦",
leqslant: "⩽",
lescc: "⪨",
les: "⩽",
lesdot: "â©¿",
lesdoto: "âª",
lesdotor: "⪃",
lesg: "⋚︀",
lesges: "⪓",
lessapprox: "⪅",
lessdot: "â‹–",
lesseqgtr: "⋚",
lesseqqgtr: "⪋",
LessEqualGreater: "⋚",
LessFullEqual: "≦",
LessGreater: "≶",
lessgtr: "≶",
LessLess: "⪡",
lesssim: "≲",
LessSlantEqual: "⩽",
LessTilde: "≲",
lfisht: "⥼",
lfloor: "⌊",
Lfr: "ð”",
lfr: "ð”©",
lg: "≶",
lgE: "⪑",
lHar: "⥢",
lhard: "↽",
lharu: "↼",
lharul: "⥪",
lhblk: "â–„",
LJcy: "Љ",
ljcy: "Ñ™",
llarr: "⇇",
ll: "≪",
Ll: "⋘",
llcorner: "⌞",
Lleftarrow: "⇚",
llhard: "⥫",
lltri: "â—º",
Lmidot: "Ä¿",
lmidot: "Å€",
lmoustache: "⎰",
lmoust: "⎰",
lnap: "⪉",
lnapprox: "⪉",
lne: "⪇",
lnE: "≨",
lneq: "⪇",
lneqq: "≨",
lnsim: "⋦",
loang: "⟬",
loarr: "⇽",
lobrk: "⟦",
longleftarrow: "⟵",
LongLeftArrow: "⟵",
Longleftarrow: "⟸",
longleftrightarrow: "⟷",
LongLeftRightArrow: "⟷",
Longleftrightarrow: "⟺",
longmapsto: "⟼",
longrightarrow: "⟶",
LongRightArrow: "⟶",
Longrightarrow: "⟹",
looparrowleft: "↫",
looparrowright: "↬",
lopar: "⦅",
Lopf: "ð•ƒ",
lopf: "ð•",
loplus: "â¨",
lotimes: "⨴",
lowast: "∗",
lowbar: "_",
LowerLeftArrow: "↙",
LowerRightArrow: "↘",
loz: "â—Š",
lozenge: "â—Š",
lozf: "â§«",
lpar: "(",
lparlt: "⦓",
lrarr: "⇆",
lrcorner: "⌟",
lrhar: "⇋",
lrhard: "â¥",
lrm: "‎",
lrtri: "⊿",
lsaquo: "‹",
lscr: "ð“",
Lscr: "â„’",
lsh: "↰",
Lsh: "↰",
lsim: "≲",
lsime: "âª",
lsimg: "âª",
lsqb: "[",
lsquo: "‘",
lsquor: "‚",
Lstrok: "Å",
lstrok: "Å‚",
ltcc: "⪦",
ltcir: "⩹",
lt: "<",
LT: "<",
Lt: "≪",
ltdot: "â‹–",
lthree: "â‹‹",
ltimes: "⋉",
ltlarr: "⥶",
ltquest: "â©»",
ltri: "â—ƒ",
ltrie: "⊴",
ltrif: "â—‚",
ltrPar: "⦖",
lurdshar: "⥊",
luruhar: "⥦",
lvertneqq: "≨︀",
lvnE: "≨︀",
macr: "¯",
male: "♂",
malt: "✠",
maltese: "✠",
Map: "⤅",
map: "↦",
mapsto: "↦",
mapstodown: "↧",
mapstoleft: "↤",
mapstoup: "↥",
marker: "â–®",
mcomma: "⨩",
Mcy: "М",
mcy: "м",
mdash: "—",
mDDot: "∺",
measuredangle: "∡",
MediumSpace: "âŸ",
Mellintrf: "ℳ",
Mfr: "ð”",
mfr: "ð”ª",
mho: "â„§",
micro: "µ",
midast: "*",
midcir: "â«°",
mid: "∣",
middot: "·",
minusb: "⊟",
minus: "−",
minusd: "∸",
minusdu: "⨪",
MinusPlus: "∓",
mlcp: "â«›",
mldr: "…",
mnplus: "∓",
models: "⊧",
Mopf: "ð•„",
mopf: "ð•ž",
mp: "∓",
mscr: "ð“‚",
Mscr: "ℳ",
mstpos: "∾",
Mu: "Μ",
mu: "μ",
multimap: "⊸",
mumap: "⊸",
nabla: "∇",
Nacute: "Ń",
nacute: "Å„",
nang: "∠⃒",
nap: "≉",
napE: "⩰̸",
napid: "≋̸",
napos: "ʼn",
napprox: "≉",
natural: "â™®",
naturals: "â„•",
natur: "â™®",
nbsp: "Â ",
nbump: "≎̸",
nbumpe: "â‰Ì¸",
ncap: "⩃",
Ncaron: "Ň",
ncaron: "ň",
Ncedil: "Å…",
ncedil: "ņ",
ncong: "≇",
ncongdot: "â©Ì¸",
ncup: "â©‚",
Ncy: "Ð",
ncy: "н",
ndash: "–",
nearhk: "⤤",
nearr: "↗",
neArr: "⇗",
nearrow: "↗",
ne: "≠",
nedot: "â‰Ì¸",
NegativeMediumSpace: "​",
NegativeThickSpace: "​",
NegativeThinSpace: "​",
NegativeVeryThinSpace: "​",
nequiv: "≢",
nesear: "⤨",
nesim: "≂̸",
NestedGreaterGreater: "≫",
NestedLessLess: "≪",
NewLine: "\n",
nexist: "∄",
nexists: "∄",
Nfr: "ð”‘",
nfr: "ð”«",
ngE: "≧̸",
nge: "≱",
ngeq: "≱",
ngeqq: "≧̸",
ngeqslant: "⩾̸",
nges: "⩾̸",
nGg: "⋙̸",
ngsim: "≵",
nGt: "≫⃒",
ngt: "≯",
ngtr: "≯",
nGtv: "≫̸",
nharr: "↮",
nhArr: "⇎",
nhpar: "⫲",
ni: "∋",
nis: "⋼",
nisd: "⋺",
niv: "∋",
NJcy: "Њ",
njcy: "Ñš",
nlarr: "↚",
nlArr: "â‡",
nldr: "‥",
nlE: "≦̸",
nle: "≰",
nleftarrow: "↚",
nLeftarrow: "â‡",
nleftrightarrow: "↮",
nLeftrightarrow: "⇎",
nleq: "≰",
nleqq: "≦̸",
nleqslant: "⩽̸",
nles: "⩽̸",
nless: "≮",
nLl: "⋘̸",
nlsim: "≴",
nLt: "≪⃒",
nlt: "≮",
nltri: "⋪",
nltrie: "⋬",
nLtv: "≪̸",
nmid: "∤",
NoBreak: "â ",
NonBreakingSpace: "Â ",
nopf: "ð•Ÿ",
Nopf: "â„•",
Not: "⫬",
not: "¬",
NotCongruent: "≢",
NotCupCap: "â‰",
NotDoubleVerticalBar: "∦",
NotElement: "∉",
NotEqual: "≠",
NotEqualTilde: "≂̸",
NotExists: "∄",
NotGreater: "≯",
NotGreaterEqual: "≱",
NotGreaterFullEqual: "≧̸",
NotGreaterGreater: "≫̸",
NotGreaterLess: "≹",
NotGreaterSlantEqual: "⩾̸",
NotGreaterTilde: "≵",
NotHumpDownHump: "≎̸",
NotHumpEqual: "â‰Ì¸",
notin: "∉",
notindot: "⋵̸",
notinE: "⋹̸",
notinva: "∉",
notinvb: "â‹·",
notinvc: "â‹¶",
NotLeftTriangleBar: "â§Ì¸",
NotLeftTriangle: "⋪",
NotLeftTriangleEqual: "⋬",
NotLess: "≮",
NotLessEqual: "≰",
NotLessGreater: "≸",
NotLessLess: "≪̸",
NotLessSlantEqual: "⩽̸",
NotLessTilde: "≴",
NotNestedGreaterGreater: "⪢̸",
NotNestedLessLess: "⪡̸",
notni: "∌",
notniva: "∌",
notnivb: "⋾",
notnivc: "⋽",
NotPrecedes: "⊀",
NotPrecedesEqual: "⪯̸",
NotPrecedesSlantEqual: "â‹ ",
NotReverseElement: "∌",
NotRightTriangleBar: "â§Ì¸",
NotRightTriangle: "â‹«",
NotRightTriangleEqual: "â‹",
NotSquareSubset: "âŠÌ¸",
NotSquareSubsetEqual: "â‹¢",
NotSquareSuperset: "âŠÌ¸",
NotSquareSupersetEqual: "â‹£",
NotSubset: "⊂⃒",
NotSubsetEqual: "⊈",
NotSucceeds: "âŠ",
NotSucceedsEqual: "⪰̸",
NotSucceedsSlantEqual: "â‹¡",
NotSucceedsTilde: "≿̸",
NotSuperset: "⊃⃒",
NotSupersetEqual: "⊉",
NotTilde: "â‰",
NotTildeEqual: "≄",
NotTildeFullEqual: "≇",
NotTildeTilde: "≉",
NotVerticalBar: "∤",
nparallel: "∦",
npar: "∦",
nparsl: "⫽⃥",
npart: "∂̸",
npolint: "⨔",
npr: "⊀",
nprcue: "â‹ ",
nprec: "⊀",
npreceq: "⪯̸",
npre: "⪯̸",
nrarrc: "⤳̸",
nrarr: "↛",
nrArr: "â‡",
nrarrw: "â†Ì¸",
nrightarrow: "↛",
nRightarrow: "â‡",
nrtri: "â‹«",
nrtrie: "â‹",
nsc: "âŠ",
nsccue: "â‹¡",
nsce: "⪰̸",
Nscr: "ð’©",
nscr: "ð“ƒ",
nshortmid: "∤",
nshortparallel: "∦",
nsim: "â‰",
nsime: "≄",
nsimeq: "≄",
nsmid: "∤",
nspar: "∦",
nsqsube: "â‹¢",
nsqsupe: "â‹£",
nsub: "⊄",
nsubE: "⫅̸",
nsube: "⊈",
nsubset: "⊂⃒",
nsubseteq: "⊈",
nsubseteqq: "⫅̸",
nsucc: "âŠ",
nsucceq: "⪰̸",
nsup: "⊅",
nsupE: "⫆̸",
nsupe: "⊉",
nsupset: "⊃⃒",
nsupseteq: "⊉",
nsupseteqq: "⫆̸",
ntgl: "≹",
Ntilde: "Ñ",
ntilde: "ñ",
ntlg: "≸",
ntriangleleft: "⋪",
ntrianglelefteq: "⋬",
ntriangleright: "â‹«",
ntrianglerighteq: "â‹",
Nu: "Î",
nu: "ν",
num: "#",
numero: "â„–",
numsp: " ",
nvap: "â‰âƒ’",
nvdash: "⊬",
nvDash: "âŠ",
nVdash: "⊮",
nVDash: "⊯",
nvge: "≥⃒",
nvgt: ">⃒",
nvHarr: "⤄",
nvinfin: "â§ž",
nvlArr: "⤂",
nvle: "≤⃒",
nvlt: "<⃒",
nvltrie: "⊴⃒",
nvrArr: "⤃",
nvrtrie: "⊵⃒",
nvsim: "∼⃒",
nwarhk: "⤣",
nwarr: "↖",
nwArr: "⇖",
nwarrow: "↖",
nwnear: "⤧",
Oacute: "Ó",
oacute: "ó",
oast: "⊛",
Ocirc: "Ô",
ocirc: "ô",
ocir: "⊚",
Ocy: "О",
ocy: "о",
odash: "âŠ",
Odblac: "Å",
odblac: "Å‘",
odiv: "⨸",
odot: "⊙",
odsold: "⦼",
OElig: "Å’",
oelig: "Å“",
ofcir: "⦿",
Ofr: "ð”’",
ofr: "ð”¬",
ogon: "Ë›",
Ograve: "Ã’",
ograve: "ò",
ogt: "â§",
ohbar: "⦵",
ohm: "Ω",
oint: "∮",
olarr: "↺",
olcir: "⦾",
olcross: "⦻",
oline: "‾",
olt: "â§€",
Omacr: "Ō",
omacr: "Å",
Omega: "Ω",
omega: "ω",
Omicron: "Ο",
omicron: "ο",
omid: "⦶",
ominus: "⊖",
Oopf: "ð•†",
oopf: "ð• ",
opar: "⦷",
OpenCurlyDoubleQuote: "“",
OpenCurlyQuote: "‘",
operp: "⦹",
oplus: "⊕",
orarr: "↻",
Or: "â©”",
or: "∨",
ord: "â©",
order: "â„´",
orderof: "â„´",
ordf: "ª",
ordm: "º",
origof: "⊶",
oror: "â©–",
orslope: "â©—",
orv: "â©›",
oS: "Ⓢ",
Oscr: "ð’ª",
oscr: "â„´",
Oslash: "Ø",
oslash: "ø",
osol: "⊘",
Otilde: "Õ",
otilde: "õ",
otimesas: "⨶",
Otimes: "⨷",
otimes: "⊗",
Ouml: "Ö",
ouml: "ö",
ovbar: "⌽",
OverBar: "‾",
OverBrace: "âž",
OverBracket: "⎴",
OverParenthesis: "âœ",
para: "¶",
parallel: "∥",
par: "∥",
parsim: "⫳",
parsl: "⫽",
part: "∂",
PartialD: "∂",
Pcy: "П",
pcy: "п",
percnt: "%",
period: ".",
permil: "‰",
perp: "⊥",
pertenk: "‱",
Pfr: "ð”“",
pfr: "ð”",
Phi: "Φ",
phi: "φ",
phiv: "Ï•",
phmmat: "ℳ",
phone: "☎",
Pi: "Î ",
pi: "Ï€",
pitchfork: "â‹”",
piv: "Ï–",
planck: "â„",
planckh: "ℎ",
plankv: "â„",
plusacir: "⨣",
plusb: "⊞",
pluscir: "⨢",
plus: "+",
plusdo: "∔",
plusdu: "⨥",
pluse: "⩲",
PlusMinus: "±",
plusmn: "±",
plussim: "⨦",
plustwo: "⨧",
pm: "±",
Poincareplane: "ℌ",
pointint: "⨕",
popf: "ð•¡",
Popf: "â„™",
pound: "£",
prap: "⪷",
Pr: "⪻",
pr: "≺",
prcue: "≼",
precapprox: "⪷",
prec: "≺",
preccurlyeq: "≼",
Precedes: "≺",
PrecedesEqual: "⪯",
PrecedesSlantEqual: "≼",
PrecedesTilde: "≾",
preceq: "⪯",
precnapprox: "⪹",
precneqq: "⪵",
precnsim: "⋨",
pre: "⪯",
prE: "⪳",
precsim: "≾",
prime: "′",
Prime: "″",
primes: "â„™",
prnap: "⪹",
prnE: "⪵",
prnsim: "⋨",
prod: "âˆ",
Product: "âˆ",
profalar: "⌮",
profline: "⌒",
profsurf: "⌓",
prop: "âˆ",
Proportional: "âˆ",
Proportion: "∷",
propto: "âˆ",
prsim: "≾",
prurel: "⊰",
Pscr: "ð’«",
pscr: "ð“…",
Psi: "Ψ",
psi: "ψ",
puncsp: " ",
Qfr: "ð””",
qfr: "ð”®",
qint: "⨌",
qopf: "ð•¢",
Qopf: "ℚ",
qprime: "â—",
Qscr: "ð’¬",
qscr: "ð“†",
quaternions: "â„",
quatint: "⨖",
quest: "?",
questeq: "≟",
quot: '"',
QUOT: '"',
rAarr: "⇛",
race: "∽̱",
Racute: "Å”",
racute: "Å•",
radic: "√",
raemptyv: "⦳",
rang: "⟩",
Rang: "⟫",
rangd: "⦒",
range: "⦥",
rangle: "⟩",
raquo: "»",
rarrap: "⥵",
rarrb: "⇥",
rarrbfs: "⤠",
rarrc: "⤳",
rarr: "→",
Rarr: "↠",
rArr: "⇒",
rarrfs: "⤞",
rarrhk: "↪",
rarrlp: "↬",
rarrpl: "⥅",
rarrsim: "⥴",
Rarrtl: "⤖",
rarrtl: "↣",
rarrw: "â†",
ratail: "⤚",
rAtail: "⤜",
ratio: "∶",
rationals: "ℚ",
rbarr: "â¤",
rBarr: "â¤",
RBarr: "â¤",
rbbrk: "â³",
rbrace: "}",
rbrack: "]",
rbrke: "⦌",
rbrksld: "⦎",
rbrkslu: "â¦",
Rcaron: "Ř",
rcaron: "Å™",
Rcedil: "Å–",
rcedil: "Å—",
rceil: "⌉",
rcub: "}",
Rcy: "Ð ",
rcy: "Ñ€",
rdca: "⤷",
rdldhar: "⥩",
rdquo: "â€",
rdquor: "â€",
rdsh: "↳",
real: "ℜ",
realine: "â„›",
realpart: "ℜ",
reals: "â„",
Re: "ℜ",
rect: "â–",
reg: "®",
REG: "®",
ReverseElement: "∋",
ReverseEquilibrium: "⇋",
ReverseUpEquilibrium: "⥯",
rfisht: "⥽",
rfloor: "⌋",
rfr: "ð”¯",
Rfr: "ℜ",
rHar: "⥤",
rhard: "â‡",
rharu: "⇀",
rharul: "⥬",
Rho: "Ρ",
rho: "Ï",
rhov: "ϱ",
RightAngleBracket: "⟩",
RightArrowBar: "⇥",
rightarrow: "→",
RightArrow: "→",
Rightarrow: "⇒",
RightArrowLeftArrow: "⇄",
rightarrowtail: "↣",
RightCeiling: "⌉",
RightDoubleBracket: "⟧",
RightDownTeeVector: "â¥",
RightDownVectorBar: "⥕",
RightDownVector: "⇂",
RightFloor: "⌋",
rightharpoondown: "â‡",
rightharpoonup: "⇀",
rightleftarrows: "⇄",
rightleftharpoons: "⇌",
rightrightarrows: "⇉",
rightsquigarrow: "â†",
RightTeeArrow: "↦",
RightTee: "⊢",
RightTeeVector: "⥛",
rightthreetimes: "⋌",
RightTriangleBar: "â§",
RightTriangle: "⊳",
RightTriangleEqual: "⊵",
RightUpDownVector: "â¥",
RightUpTeeVector: "⥜",
RightUpVectorBar: "⥔",
RightUpVector: "↾",
RightVectorBar: "⥓",
RightVector: "⇀",
ring: "Ëš",
risingdotseq: "≓",
rlarr: "⇄",
rlhar: "⇌",
rlm: "â€",
rmoustache: "⎱",
rmoust: "⎱",
rnmid: "â«®",
roang: "âŸ",
roarr: "⇾",
robrk: "⟧",
ropar: "⦆",
ropf: "ð•£",
Ropf: "â„",
roplus: "⨮",
rotimes: "⨵",
RoundImplies: "⥰",
rpar: ")",
rpargt: "⦔",
rppolint: "⨒",
rrarr: "⇉",
Rrightarrow: "⇛",
rsaquo: "›",
rscr: "ð“‡",
Rscr: "â„›",
rsh: "↱",
Rsh: "↱",
rsqb: "]",
rsquo: "’",
rsquor: "’",
rthree: "⋌",
rtimes: "⋊",
rtri: "â–¹",
rtrie: "⊵",
rtrif: "â–¸",
rtriltri: "â§Ž",
RuleDelayed: "â§´",
ruluhar: "⥨",
rx: "℞",
Sacute: "Åš",
sacute: "Å›",
sbquo: "‚",
scap: "⪸",
Scaron: "Å ",
scaron: "Å¡",
Sc: "⪼",
sc: "≻",
sccue: "≽",
sce: "⪰",
scE: "⪴",
Scedil: "Åž",
scedil: "ÅŸ",
Scirc: "Ŝ",
scirc: "Å",
scnap: "⪺",
scnE: "⪶",
scnsim: "â‹©",
scpolint: "⨓",
scsim: "≿",
Scy: "С",
scy: "Ñ",
sdotb: "⊡",
sdot: "â‹…",
sdote: "⩦",
searhk: "⤥",
searr: "↘",
seArr: "⇘",
searrow: "↘",
sect: "§",
semi: ";",
seswar: "⤩",
setminus: "∖",
setmn: "∖",
sext: "✶",
Sfr: "ð”–",
sfr: "ð”°",
sfrown: "⌢",
sharp: "♯",
SHCHcy: "Щ",
shchcy: "щ",
SHcy: "Ш",
shcy: "ш",
ShortDownArrow: "↓",
ShortLeftArrow: "â†",
shortmid: "∣",
shortparallel: "∥",
ShortRightArrow: "→",
ShortUpArrow: "↑",
shy: "Â",
Sigma: "Σ",
sigma: "σ",
sigmaf: "Ï‚",
sigmav: "Ï‚",
sim: "∼",
simdot: "⩪",
sime: "≃",
simeq: "≃",
simg: "⪞",
simgE: "⪠",
siml: "âª",
simlE: "⪟",
simne: "≆",
simplus: "⨤",
simrarr: "⥲",
slarr: "â†",
SmallCircle: "∘",
smallsetminus: "∖",
smashp: "⨳",
smeparsl: "⧤",
smid: "∣",
smile: "⌣",
smt: "⪪",
smte: "⪬",
smtes: "⪬︀",
SOFTcy: "Ь",
softcy: "ь",
solbar: "⌿",
solb: "â§„",
sol: "/",
Sopf: "ð•Š",
sopf: "ð•¤",
spades: "â™ ",
spadesuit: "â™ ",
spar: "∥",
sqcap: "⊓",
sqcaps: "⊓︀",
sqcup: "⊔",
sqcups: "⊔︀",
Sqrt: "√",
sqsub: "âŠ",
sqsube: "⊑",
sqsubset: "âŠ",
sqsubseteq: "⊑",
sqsup: "âŠ",
sqsupe: "⊒",
sqsupset: "âŠ",
sqsupseteq: "⊒",
square: "â–¡",
Square: "â–¡",
SquareIntersection: "⊓",
SquareSubset: "âŠ",
SquareSubsetEqual: "⊑",
SquareSuperset: "âŠ",
SquareSupersetEqual: "⊒",
SquareUnion: "⊔",
squarf: "â–ª",
squ: "â–¡",
squf: "â–ª",
srarr: "→",
Sscr: "ð’®",
sscr: "ð“ˆ",
ssetmn: "∖",
ssmile: "⌣",
sstarf: "⋆",
Star: "⋆",
star: "☆",
starf: "★",
straightepsilon: "ϵ",
straightphi: "Ï•",
strns: "¯",
sub: "⊂",
Sub: "â‹",
subdot: "⪽",
subE: "â«…",
sube: "⊆",
subedot: "⫃",
submult: "â«",
subnE: "â«‹",
subne: "⊊",
subplus: "⪿",
subrarr: "⥹",
subset: "⊂",
Subset: "â‹",
subseteq: "⊆",
subseteqq: "â«…",
SubsetEqual: "⊆",
subsetneq: "⊊",
subsetneqq: "â«‹",
subsim: "⫇",
subsub: "â«•",
subsup: "â«“",
succapprox: "⪸",
succ: "≻",
succcurlyeq: "≽",
Succeeds: "≻",
SucceedsEqual: "⪰",
SucceedsSlantEqual: "≽",
SucceedsTilde: "≿",
succeq: "⪰",
succnapprox: "⪺",
succneqq: "⪶",
succnsim: "â‹©",
succsim: "≿",
SuchThat: "∋",
sum: "∑",
Sum: "∑",
sung: "♪",
sup1: "¹",
sup2: "²",
sup3: "³",
sup: "⊃",
Sup: "â‹‘",
supdot: "⪾",
supdsub: "⫘",
supE: "⫆",
supe: "⊇",
supedot: "â«„",
Superset: "⊃",
SupersetEqual: "⊇",
suphsol: "⟉",
suphsub: "â«—",
suplarr: "⥻",
supmult: "â«‚",
supnE: "⫌",
supne: "⊋",
supplus: "â«€",
supset: "⊃",
Supset: "â‹‘",
supseteq: "⊇",
supseteqq: "⫆",
supsetneq: "⊋",
supsetneqq: "⫌",
supsim: "⫈",
supsub: "â«”",
supsup: "â«–",
swarhk: "⤦",
swarr: "↙",
swArr: "⇙",
swarrow: "↙",
swnwar: "⤪",
szlig: "ß",
Tab: "\t",
target: "⌖",
Tau: "Τ",
tau: "Ï„",
tbrk: "⎴",
Tcaron: "Ť",
tcaron: "Å¥",
Tcedil: "Å¢",
tcedil: "Å£",
Tcy: "Т",
tcy: "Ñ‚",
tdot: "⃛",
telrec: "⌕",
Tfr: "ð”—",
tfr: "ð”±",
there4: "∴",
therefore: "∴",
Therefore: "∴",
Theta: "Θ",
theta: "θ",
thetasym: "Ï‘",
thetav: "Ï‘",
thickapprox: "≈",
thicksim: "∼",
ThickSpace: "âŸâ€Š",
ThinSpace: " ",
thinsp: " ",
thkap: "≈",
thksim: "∼",
THORN: "Þ",
thorn: "þ",
tilde: "˜",
Tilde: "∼",
TildeEqual: "≃",
TildeFullEqual: "≅",
TildeTilde: "≈",
timesbar: "⨱",
timesb: "⊠",
times: "×",
timesd: "⨰",
tint: "âˆ",
toea: "⤨",
topbot: "⌶",
topcir: "⫱",
top: "⊤",
Topf: "ð•‹",
topf: "ð•¥",
topfork: "⫚",
tosa: "⤩",
tprime: "‴",
trade: "â„¢",
TRADE: "â„¢",
triangle: "â–µ",
triangledown: "â–¿",
triangleleft: "â—ƒ",
trianglelefteq: "⊴",
triangleq: "≜",
triangleright: "â–¹",
trianglerighteq: "⊵",
tridot: "â—¬",
trie: "≜",
triminus: "⨺",
TripleDot: "⃛",
triplus: "⨹",
trisb: "â§",
tritime: "⨻",
trpezium: "â¢",
Tscr: "ð’¯",
tscr: "ð“‰",
TScy: "Ц",
tscy: "ц",
TSHcy: "Ћ",
tshcy: "Ñ›",
Tstrok: "Ŧ",
tstrok: "ŧ",
twixt: "≬",
twoheadleftarrow: "↞",
twoheadrightarrow: "↠",
Uacute: "Ú",
uacute: "ú",
uarr: "↑",
Uarr: "↟",
uArr: "⇑",
Uarrocir: "⥉",
Ubrcy: "ÐŽ",
ubrcy: "Ñž",
Ubreve: "Ŭ",
ubreve: "Å",
Ucirc: "Û",
ucirc: "û",
Ucy: "У",
ucy: "у",
udarr: "⇅",
Udblac: "Ű",
udblac: "ű",
udhar: "⥮",
ufisht: "⥾",
Ufr: "ð”˜",
ufr: "ð”²",
Ugrave: "Ù",
ugrave: "ù",
uHar: "⥣",
uharl: "↿",
uharr: "↾",
uhblk: "â–€",
ulcorn: "⌜",
ulcorner: "⌜",
ulcrop: "âŒ",
ultri: "â—¸",
Umacr: "Ū",
umacr: "Å«",
uml: "¨",
UnderBar: "_",
UnderBrace: "âŸ",
UnderBracket: "⎵",
UnderParenthesis: "â",
Union: "⋃",
UnionPlus: "⊎",
Uogon: "Ų",
uogon: "ų",
Uopf: "ð•Œ",
uopf: "ð•¦",
UpArrowBar: "⤒",
uparrow: "↑",
UpArrow: "↑",
Uparrow: "⇑",
UpArrowDownArrow: "⇅",
updownarrow: "↕",
UpDownArrow: "↕",
Updownarrow: "⇕",
UpEquilibrium: "⥮",
upharpoonleft: "↿",
upharpoonright: "↾",
uplus: "⊎",
UpperLeftArrow: "↖",
UpperRightArrow: "↗",
upsi: "Ï…",
Upsi: "Ï’",
upsih: "Ï’",
Upsilon: "Î¥",
upsilon: "Ï…",
UpTeeArrow: "↥",
UpTee: "⊥",
upuparrows: "⇈",
urcorn: "âŒ",
urcorner: "âŒ",
urcrop: "⌎",
Uring: "Å®",
uring: "ů",
urtri: "â—¹",
Uscr: "ð’°",
uscr: "ð“Š",
utdot: "â‹°",
Utilde: "Ũ",
utilde: "Å©",
utri: "â–µ",
utrif: "â–´",
uuarr: "⇈",
Uuml: "Ü",
uuml: "ü",
uwangle: "⦧",
vangrt: "⦜",
varepsilon: "ϵ",
varkappa: "ϰ",
varnothing: "∅",
varphi: "Ï•",
varpi: "Ï–",
varpropto: "âˆ",
varr: "↕",
vArr: "⇕",
varrho: "ϱ",
varsigma: "Ï‚",
varsubsetneq: "⊊︀",
varsubsetneqq: "⫋︀",
varsupsetneq: "⊋︀",
varsupsetneqq: "⫌︀",
vartheta: "Ï‘",
vartriangleleft: "⊲",
vartriangleright: "⊳",
vBar: "⫨",
Vbar: "â««",
vBarv: "â«©",
Vcy: "Ð’",
vcy: "в",
vdash: "⊢",
vDash: "⊨",
Vdash: "⊩",
VDash: "⊫",
Vdashl: "⫦",
veebar: "⊻",
vee: "∨",
Vee: "â‹",
veeeq: "≚",
vellip: "â‹®",
verbar: "|",
Verbar: "‖",
vert: "|",
Vert: "‖",
VerticalBar: "∣",
VerticalLine: "|",
VerticalSeparator: "â˜",
VerticalTilde: "≀",
VeryThinSpace: " ",
Vfr: "ð”™",
vfr: "ð”³",
vltri: "⊲",
vnsub: "⊂⃒",
vnsup: "⊃⃒",
Vopf: "ð•",
vopf: "ð•§",
vprop: "âˆ",
vrtri: "⊳",
Vscr: "ð’±",
vscr: "ð“‹",
vsubnE: "⫋︀",
vsubne: "⊊︀",
vsupnE: "⫌︀",
vsupne: "⊋︀",
Vvdash: "⊪",
vzigzag: "⦚",
Wcirc: "Å´",
wcirc: "ŵ",
wedbar: "⩟",
wedge: "∧",
Wedge: "â‹€",
wedgeq: "≙",
weierp: "℘",
Wfr: "ð”š",
wfr: "ð”´",
Wopf: "ð•Ž",
wopf: "ð•¨",
wp: "℘",
wr: "≀",
wreath: "≀",
Wscr: "ð’²",
wscr: "ð“Œ",
xcap: "â‹‚",
xcirc: "â—¯",
xcup: "⋃",
xdtri: "â–½",
Xfr: "ð”›",
xfr: "ð”µ",
xharr: "⟷",
xhArr: "⟺",
Xi: "Ξ",
xi: "ξ",
xlarr: "⟵",
xlArr: "⟸",
xmap: "⟼",
xnis: "â‹»",
xodot: "⨀",
Xopf: "ð•",
xopf: "ð•©",
xoplus: "â¨",
xotime: "⨂",
xrarr: "⟶",
xrArr: "⟹",
Xscr: "ð’³",
xscr: "ð“",
xsqcup: "⨆",
xuplus: "⨄",
xutri: "â–³",
xvee: "â‹",
xwedge: "â‹€",
Yacute: "Ã",
yacute: "ý",
YAcy: "Я",
yacy: "Ñ",
Ycirc: "Ŷ",
ycirc: "Å·",
Ycy: "Ы",
ycy: "Ñ‹",
yen: "Â¥",
Yfr: "ð”œ",
yfr: "ð”¶",
YIcy: "Ї",
yicy: "Ñ—",
Yopf: "ð•",
yopf: "ð•ª",
Yscr: "ð’´",
yscr: "ð“Ž",
YUcy: "Ю",
yucy: "ÑŽ",
yuml: "ÿ",
Yuml: "Ÿ",
Zacute: "Ź",
zacute: "ź",
Zcaron: "Ž",
zcaron: "ž",
Zcy: "З",
zcy: "з",
Zdot: "Å»",
zdot: "ż",
zeetrf: "ℨ",
ZeroWidthSpace: "​",
Zeta: "Ζ",
zeta: "ζ",
zfr: "ð”·",
Zfr: "ℨ",
ZHcy: "Ж",
zhcy: "ж",
zigrarr: "â‡",
zopf: "ð•«",
Zopf: "ℤ",
Zscr: "ð’µ",
zscr: "ð“",
zwj: "â€",
zwnj: "‌"
},
Yc = {
Aacute: "Ã",
aacute: "á",
Acirc: "Â",
acirc: "â",
acute: "´",
AElig: "Æ",
aelig: "æ",
Agrave: "À",
agrave: "Ã ",
amp: "&",
AMP: "&",
Aring: "Ã…",
aring: "Ã¥",
Atilde: "Ã",
atilde: "ã",
Auml: "Ä",
auml: "ä",
brvbar: "¦",
Ccedil: "Ç",
ccedil: "ç",
cedil: "¸",
cent: "¢",
copy: "©",
COPY: "©",
curren: "¤",
deg: "°",
divide: "÷",
Eacute: "É",
eacute: "é",
Ecirc: "Ê",
ecirc: "ê",
Egrave: "È",
egrave: "è",
ETH: "Ã",
eth: "ð",
Euml: "Ë",
euml: "ë",
frac12: "½",
frac14: "¼",
frac34: "¾",
gt: ">",
GT: ">",
Iacute: "Ã",
iacute: "Ã",
Icirc: "ÃŽ",
icirc: "î",
iexcl: "¡",
Igrave: "Ì",
igrave: "ì",
iquest: "¿",
Iuml: "Ã",
iuml: "ï",
laquo: "«",
lt: "<",
LT: "<",
macr: "¯",
micro: "µ",
middot: "·",
nbsp: "Â ",
not: "¬",
Ntilde: "Ñ",
ntilde: "ñ",
Oacute: "Ó",
oacute: "ó",
Ocirc: "Ô",
ocirc: "ô",
Ograve: "Ã’",
ograve: "ò",
ordf: "ª",
ordm: "º",
Oslash: "Ø",
oslash: "ø",
Otilde: "Õ",
otilde: "õ",
Ouml: "Ö",
ouml: "ö",
para: "¶",
plusmn: "±",
pound: "£",
quot: '"',
QUOT: '"',
raquo: "»",
reg: "®",
REG: "®",
sect: "§",
shy: "Â",
sup1: "¹",
sup2: "²",
sup3: "³",
szlig: "ß",
THORN: "Þ",
thorn: "þ",
times: "×",
Uacute: "Ú",
uacute: "ú",
Ucirc: "Û",
ucirc: "û",
Ugrave: "Ù",
ugrave: "ù",
uml: "¨",
Uuml: "Ü",
uuml: "ü",
Yacute: "Ã",
yacute: "ý",
yen: "Â¥",
yuml: "ÿ"
},
eu = {
amp: "&",
apos: "'",
gt: ">",
lt: "<",
quot: '"'
},
tu = {},
nu = Wc && Wc.__importDefault || function(e) {
return e && e.__esModule ? e : {
default: e
}
};
Object.defineProperty(tu, "__esModule", {
value: !0
});
var ru = nu({
0: 65533,
128: 8364,
130: 8218,
131: 402,
132: 8222,
133: 8230,
134: 8224,
135: 8225,
136: 710,
137: 8240,
138: 352,
139: 8249,
140: 338,
142: 381,
145: 8216,
146: 8217,
147: 8220,
148: 8221,
149: 8226,
150: 8211,
151: 8212,
152: 732,
153: 8482,
154: 353,
155: 8250,
156: 339,
158: 382,
159: 376
}),
ou = String.fromCodePoint || function(e) {
var t = "";
return e > 65535 && (e -= 65536, t += String.fromCharCode(e >>> 10 & 1023 | 55296), e = 56320 | 1023 & e), t += String.fromCharCode(e)
};
tu.default = function(e) {
return e >= 55296 && e <= 57343 || e > 1114111 ? "�" : (e in ru.default && (e = ru.default[e]), ou(e))
};
var iu = Wc && Wc.__importDefault || function(e) {
return e && e.__esModule ? e : {
default: e
}
};
Object.defineProperty(Xc, "__esModule", {
value: !0
}), Xc.decodeHTML = Xc.decodeHTMLStrict = Xc.decodeXML = void 0;
var su = iu(Qc),
au = iu(Yc),
lu = iu(eu),
cu = iu(tu),
uu = /&(?:[a-zA-Z0-9]+|#[xX][\da-fA-F]+|#\d+);/g;
function du(e) {
var t = hu(e);
return function(e) {
return String(e).replace(uu, t)
}
}
Xc.decodeXML = du(lu.default), Xc.decodeHTMLStrict = du(su.default);
var pu = function(e, t) {
return e < t ? 1 : -1
};
function hu(e) {
return function(t) {
if ("#" === t.charAt(1)) {
var n = t.charAt(2);
return "X" === n || "x" === n ? cu.default(parseInt(t.substr(3), 16)) : cu.default(parseInt(t.substr(2), 10))
}
return e[t.slice(1, -1)] || t
}
}
Xc.decodeHTML = function() {
for (var e = Object.keys(au.default).sort(pu), t = Object.keys(su.default).sort(pu), n = 0, r = 0; n < t.length; n++) e[r] === t[n] ? (t[n] += ";?", r++) : t[n] += ";";
var o = new RegExp("&(?:" + t.join("|") + "|#[xX][\\da-fA-F]+;?|#\\d+;?)", "g"),
i = hu(su.default);
function s(e) {
return ";" !== e.substr(-1) && (e += ";"), i(e)
}
return function(e) {
return String(e).replace(o, s)
}
}();
var fu = {},
mu = Wc && Wc.__importDefault || function(e) {
return e && e.__esModule ? e : {
default: e
}
};
Object.defineProperty(fu, "__esModule", {
value: !0
}), fu.escapeUTF8 = fu.escape = fu.encodeNonAsciiHTML = fu.encodeHTML = fu.encodeXML = void 0;
var gu = xu(mu(eu).default),
vu = Cu(gu);
fu.encodeXML = Nu(gu);
var yu, bu, wu = xu(mu(Qc).default),
ku = Cu(wu);
function xu(e) {
return Object.keys(e).sort().reduce((function(t, n) {
return t[e[n]] = "&" + n + ";", t
}), {})
}
function Cu(e) {
for (var t = [], n = [], r = 0, o = Object.keys(e); r < o.length; r++) {
var i = o[r];
1 === i.length ? t.push("\\" + i) : n.push(i)
}
t.sort();
for (var s = 0; s < t.length - 1; s++) {
for (var a = s; a < t.length - 1 && t[a].charCodeAt(1) + 1 === t[a + 1].charCodeAt(1);) a += 1;
var l = 1 + a - s;
l < 3 || t.splice(s, l, t[s] + "-" + t[a])
}
return n.unshift("[" + t.join("") + "]"), new RegExp(n.join("|"), "g")
}
fu.encodeHTML = (yu = wu, bu = ku, function(e) {
return e.replace(bu, (function(e) {
return yu[e]
})).replace(Tu, Su)
}), fu.encodeNonAsciiHTML = Nu(wu);
var Tu = /(?:[\x80-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g,
Mu = null != String.prototype.codePointAt ? function(e) {
return e.codePointAt(0)
} : function(e) {
return 1024 * (e.charCodeAt(0) - 55296) + e.charCodeAt(1) - 56320 + 65536
};
function Su(e) {
return "" + (e.length > 1 ? Mu(e) : e.charCodeAt(0)).toString(16).toUpperCase() + ";"
}
var Eu = new RegExp(vu.source + "|" + Tu.source, "g");
function Nu(e) {
return function(t) {
return t.replace(Eu, (function(t) {
return e[t] || Su(t)
}))
}
}
fu.escape = function(e) {
return e.replace(Eu, Su)
}, fu.escapeUTF8 = function(e) {
return e.replace(vu, Su)
},
function(e) {
Object.defineProperty(e, "__esModule", {
value: !0
}), e.decodeXMLStrict = e.decodeHTML5Strict = e.decodeHTML4Strict = e.decodeHTML5 = e.decodeHTML4 = e.decodeHTMLStrict = e.decodeHTML = e.decodeXML = e.encodeHTML5 = e.encodeHTML4 = e.escapeUTF8 = e.escape = e.encodeNonAsciiHTML = e.encodeHTML = e.encodeXML = e.encode = e.decodeStrict = e.decode = void 0;
var t = Xc,
n = fu;
e.decode = function(e, n) {
return (!n || n <= 0 ? t.decodeXML : t.decodeHTML)(e)
}, e.decodeStrict = function(e, n) {
return (!n || n <= 0 ? t.decodeXML : t.decodeHTMLStrict)(e)
}, e.encode = function(e, t) {
return (!t || t <= 0 ? n.encodeXML : n.encodeHTML)(e)
};
var r = fu;
Object.defineProperty(e, "encodeXML", {
enumerable: !0,
get: function() {
return r.encodeXML
}
}), Object.defineProperty(e, "encodeHTML", {
enumerable: !0,
get: function() {
return r.encodeHTML
}
}), Object.defineProperty(e, "encodeNonAsciiHTML", {
enumerable: !0,
get: function() {
return r.encodeNonAsciiHTML
}
}), Object.defineProperty(e, "escape", {
enumerable: !0,
get: function() {
return r.escape
}
}), Object.defineProperty(e, "escapeUTF8", {
enumerable: !0,
get: function() {
return r.escapeUTF8
}
}), Object.defineProperty(e, "encodeHTML4", {
enumerable: !0,
get: function() {
return r.encodeHTML
}
}), Object.defineProperty(e, "encodeHTML5", {
enumerable: !0,
get: function() {
return r.encodeHTML
}
});
var o = Xc;
Object.defineProperty(e, "decodeXML", {
enumerable: !0,
get: function() {
return o.decodeXML
}
}), Object.defineProperty(e, "decodeHTML", {
enumerable: !0,
get: function() {
return o.decodeHTML
}
}), Object.defineProperty(e, "decodeHTMLStrict", {
enumerable: !0,
get: function() {
return o.decodeHTMLStrict
}
}), Object.defineProperty(e, "decodeHTML4", {
enumerable: !0,
get: function() {
return o.decodeHTML
}
}), Object.defineProperty(e, "decodeHTML5", {
enumerable: !0,
get: function() {
return o.decodeHTML
}
}), Object.defineProperty(e, "decodeHTML4Strict", {
enumerable: !0,
get: function() {
return o.decodeHTMLStrict
}
}), Object.defineProperty(e, "decodeHTML5Strict", {
enumerable: !0,
get: function() {
return o.decodeHTMLStrict
}
}), Object.defineProperty(e, "decodeXMLStrict", {
enumerable: !0,
get: function() {
return o.decodeXML
}
})
}(Zc);
var Ou = "&(?:#x[a-f0-9]{1,6}|#[0-9]{1,7}|[a-z][a-z0-9]{1,31});",
Du = /[\\&]/,
Au = "[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^_`{|}~-]",
Lu = new RegExp("\\\\" + Au + "|" + Ou, "gi"),
Iu = new RegExp('[&<>"]', "g"),
Ru = function(e) {
return 92 === e.charCodeAt(0) ? e.charAt(1) : Zc.decodeHTML(e)
};
function Pu(e) {
return Du.test(e) ? e.replace(Lu, Ru) : e
}
function Bu(e) {
try {
return Kc(e)
} catch (t) {
return e
}
}
function Fu(e) {
switch (e) {
case "&":
return "&";
case "<":
return "<";
case ">":
return ">";
case '"':
return """;
default:
return e
}
}
function Hu(e) {
return Iu.test(e) ? e.replace(Iu, Fu) : e
}
function zu(e, t) {
for (var n = [], r = 0; r < t; r++) n.push(e);
return n.join("")
}
function qu(e) {
return !e || !/[^ \t]+/.test(e)
}
var Vu = function() {
function e(e) {
this.current = e, this.root = e, this.entering = !0
}
return e.prototype.next = function() {
var e = this.current,
t = this.entering;
if (null === e) return null;
var n = ju(e);
return t && n ? e.firstChild ? (this.current = e.firstChild, this.entering = !0) : this.entering = !1 : e === this.root ? this.current = null : null === e.next ? (this.current = e.parent, this.entering = !1) : (this.current = e.next, this.entering = !0), {
entering: t,
node: e
}
}, e.prototype.resumeAt = function(e, t) {
this.current = e, this.entering = !0 === t
}, e
}();
function ju(e) {
switch (e.type) {
case "document":
case "blockQuote":
case "list":
case "item":
case "paragraph":
case "heading":
case "emph":
case "strong":
case "strike":
case "link":
case "image":
case "table":
case "tableHead":
case "tableBody":
case "tableRow":
case "tableCell":
case "tableDelimRow":
case "customInline":
return !0;
default:
return !1
}
}
var $u = 1,
_u = {};
function Uu(e) {
delete _u[e]
}
var Wu = function() {
function e(e, t) {
this.parent = null, this.prev = null, this.next = null, this.firstChild = null, this.lastChild = null, this.literal = null, this.id = "document" === e ? -1 : $u++, this.type = e, this.sourcepos = t, _u[this.id] = this
}
return e.prototype.isContainer = function() {
return ju(this)
}, e.prototype.unlink = function() {
this.prev ? this.prev.next = this.next : this.parent && (this.parent.firstChild = this.next), this.next ? this.next.prev = this.prev : this.parent && (this.parent.lastChild = this.prev), this.parent = null, this.next = null, this.prev = null
}, e.prototype.replaceWith = function(e) {
this.insertBefore(e), this.unlink()
}, e.prototype.insertAfter = function(e) {
e.unlink(), e.next = this.next, e.next && (e.next.prev = e), e.prev = this, this.next = e, this.parent && (e.parent = this.parent, e.next || (e.parent.lastChild = e))
}, e.prototype.insertBefore = function(e) {
e.unlink(), e.prev = this.prev, e.prev && (e.prev.next = e), e.next = this, this.prev = e, e.parent = this.parent, e.prev || (e.parent.firstChild = e)
}, e.prototype.appendChild = function(e) {
e.unlink(), e.parent = this, this.lastChild ? (this.lastChild.next = e, e.prev = this.lastChild, this.lastChild = e) : (this.firstChild = e, this.lastChild = e)
}, e.prototype.prependChild = function(e) {
e.unlink(), e.parent = this, this.firstChild ? (this.firstChild.prev = e, e.next = this.firstChild, this.firstChild = e) : (this.firstChild = e, this.lastChild = e)
}, e.prototype.walker = function() {
return new Vu(this)
}, e
}(),
Ju = function(e) {
function t(t, n) {
var r = e.call(this, t, n) || this;
return r.open = !0, r.lineOffsets = null, r.stringContent = null, r.lastLineBlank = !1, r.lastLineChecked = !1, r.type = t, r
}
return $c(t, e), t
}(Wu),
Gu = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.listData = null, t
}
return $c(t, e), t
}(Ju),
Ku = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.level = 0, t.headingType = "atx", t
}
return $c(t, e), t
}(Ju),
Zu = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.isFenced = !1, t.fenceChar = null, t.fenceLength = 0, t.fenceOffset = -1, t.info = null, t.infoPadding = 0, t
}
return $c(t, e), t
}(Ju),
Xu = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.columns = [], t
}
return $c(t, e), t
}(Ju),
Qu = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.startIdx = 0, t.endIdx = 0, t.paddingLeft = 0, t.paddingRight = 0, t.ignored = !1, t
}
return $c(t, e), t
}(Ju),
Yu = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.title = "", t.dest = "", t.label = "", t
}
return $c(t, e), t
}(Ju),
ed = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.syntaxLength = 0, t.offset = -1, t.info = "", t
}
return $c(t, e), t
}(Ju),
td = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.htmlBlockType = -1, t
}
return $c(t, e), t
}(Ju),
nd = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.destination = null, t.title = null, t.extendedAutolink = !1, t
}
return $c(t, e), t
}(Wu),
rd = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.tickCount = 0, t
}
return $c(t, e), t
}(Wu),
od = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.info = "", t
}
return $c(t, e), t
}(Wu);
function id(e, t) {
switch (e) {
case "heading":
return new Ku(e, t);
case "list":
case "item":
return new Gu(e, t);
case "link":
case "image":
return new nd(e, t);
case "codeBlock":
return new Zu(e, t);
case "htmlBlock":
return new td(e, t);
case "table":
return new Xu(e, t);
case "tableCell":
return new Qu(e, t);
case "document":
case "paragraph":
case "blockQuote":
case "thematicBreak":
case "tableRow":
case "tableBody":
case "tableHead":
case "frontMatter":
return new Ju(e, t);
case "code":
return new rd(e, t);
case "refDef":
return new Yu(e, t);
case "customBlock":
return new ed(e, t);
case "customInline":
return new od(e, t);
default:
return new Wu(e, t)
}
}
function sd(e) {
return "codeBlock" === e.type
}
function ad(e) {
return "list" === e.type
}
function ld(e) {
return "refDef" === e.type
}
function cd(e) {
return "customBlock" === e.type
}
function ud(e, t) {
var n = id("text", t);
return n.literal = e, n
}
var dd, pd = "[A-Za-z][A-Za-z0-9-]*",
hd = "<" + pd + "(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^\"'=<>`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*/?>",
fd = "" + pd + "\\s*[>]",
md = new RegExp("^(?:<[A-Za-z][A-Za-z0-9-]*(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^\"'=<>`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*/?>|[A-Za-z][A-Za-z0-9-]*\\s*[>]|\x3c!----\x3e|\x3c!--(?:-?[^>-])(?:-?[^-])*--\x3e|[<][?].*?[?][>]|]*>|)", "i");
if (String.fromCodePoint) dd = function(e) {
try {
return String.fromCodePoint(e)
} catch (e) {
if (e instanceof RangeError) return String.fromCharCode(65533);
throw e
}
};
else {
var gd = String.fromCharCode,
vd = Math.floor;
dd = function() {
for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
var n, r, o = 16384,
i = [],
s = -1,
a = e.length;
if (!a) return "";
for (var l = ""; ++s < a;) {
var c = Number(e[s]);
if (!isFinite(c) || c < 0 || c > 1114111 || vd(c) !== c) return String.fromCharCode(65533);
c <= 65535 ? i.push(c) : (n = 55296 + ((c -= 65536) >> 10), r = c % 1024 + 56320, i.push(n, r)), (s + 1 === a || i.length > o) && (l += gd.apply(void 0, i), i.length = 0)
}
return l
}
}
var yd = dd;
function bd(e) {
var t = /\)+$/.exec(e);
if (t) {
for (var n = 0, r = 0, o = e; r < o.length; r++) {
var i = o[r];
"(" === i ? n < 0 ? n = 1 : n += 1 : ")" === i && (n -= 1)
}
if (n < 0) {
var s = Math.min(-n, t[0].length);
return e.substring(0, e.length - s)
}
}
return e
}
function wd(e) {
return e.replace(/&[A-Za-z0-9]+;$/, "")
}
function kd(e) {
return Uc(Uc([], function(e) {
for (var t, n = new RegExp("(www|https?://).(?:[w-]+.)*[A-Za-z0-9-]+.[A-Za-z0-9-]+[^<\\s]*[^!.,:*_?~\\s]", "g"), r = []; t = n.exec(e);) {
var o = wd(bd(t[0])),
i = "www" === t[1] ? "http://" : "";
r.push({
text: o,
range: [t.index, t.index + o.length - 1],
url: "" + i + o
})
}
return r
}(e)), function(e) {
for (var t, n = new RegExp("[\\w.+-]+@(?:[\\w-]+\\.)+[\\w-]+", "g"), r = []; t = n.exec(e);) {
var o = t[0];
/[_-]+$/.test(o) || r.push({
text: o,
range: [t.index, t.index + o.length - 1],
url: "mailto:" + o
})
}
return r
}(e)).sort((function(e, t) {
return e.range[0] - t.range[0]
}))
}
function xd(e) {
return e[e.length - 1]
}
function Cd(e) {
return e.slice(1, e.length - 1).trim().replace(/[ \t\r\n]+/, " ").toLowerCase().toUpperCase()
}
function Td(e, t) {
Object.keys(e).forEach((function(n) {
t(n, e[n])
}))
}
function Md(e) {
return !Object.keys(e).length
}
var Sd = 126,
Ed = 39,
Nd = 34,
Od = 36,
Dd = "\\\\" + Au,
Ad = new RegExp(/[!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]/),
Ld = new RegExp('^(?:"(' + Dd + '|[^"\\x00])*"|\'(' + Dd + "|[^'\\x00])*'|\\((" + Dd + "|[^()\\x00])*\\))"),
Id = /^(?:<(?:[^<>\n\\\x00]|\\.)*>)/,
Rd = new RegExp("^" + Au),
Pd = new RegExp("^" + Ou, "i"),
Bd = /`+/,
Fd = /^`+/,
Hd = /\.\.\./g,
zd = /--+/g,
qd = /^<([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/,
Vd = /^<[A-Za-z][A-Za-z0-9.+-]{1,31}:[^<>\x00-\x20]*>/i,
jd = /^ *(?:\n *)?/,
$d = /^[ \t\n\x0b\x0c\x0d]/,
_d = /^\s/,
Ud = / *$/,
Wd = /^ */,
Jd = /^ *(?:\n|$)/,
Gd = /^\[(?:[^\\\[\]]|\\.){0,1000}\]/,
Kd = /^[^\n`\[\]\\!<&*_'"~$]+/m,
Zd = function() {
function e(e) {
this.subject = "", this.delimiters = null, this.brackets = null, this.pos = 0, this.lineStartNum = 0, this.lineIdx = 0, this.lineOffsets = [0], this.linePosOffset = 0, this.refMap = {}, this.refLinkCandidateMap = {}, this.refDefCandidateMap = {}, this.options = e
}
return e.prototype.sourcepos = function(e, t) {
var n = this.linePosOffset + this.lineOffsets[this.lineIdx],
r = this.lineStartNum + this.lineIdx,
o = [r, e + n];
return "number" == typeof t ? [o, [r, t + n]] : o
}, e.prototype.nextLine = function() {
this.lineIdx += 1, this.linePosOffset = -this.pos
}, e.prototype.match = function(e) {
var t = e.exec(this.subject.slice(this.pos));
return null === t ? null : (this.pos += t.index + t[0].length, t[0])
}, e.prototype.peek = function() {
return this.pos < this.subject.length ? this.subject.charCodeAt(this.pos) : -1
}, e.prototype.spnl = function() {
return this.match(jd), !0
}, e.prototype.parseBackticks = function(e) {
var t = this.pos + 1,
n = this.match(Fd);
if (null === n) return !1;
for (var r, o = this.pos; null !== (r = this.match(Bd));)
if (r === n) {
var i = this.subject.slice(o, this.pos - n.length),
s = this.sourcepos(t, this.pos),
a = i.split("\n");
if (a.length > 1) {
var l = xd(a);
this.lineIdx += a.length - 1, this.linePosOffset = -(this.pos - l.length - n.length), s[1] = this.sourcepos(this.pos), i = a.join(" ")
}
var c = id("code", s);
return i.length > 0 && null !== i.match(/[^ ]/) && " " == i[0] && " " == i[i.length - 1] ? c.literal = i.slice(1, i.length - 1) : c.literal = i, c.tickCount = n.length, e.appendChild(c), !0
} return this.pos = o, e.appendChild(ud(n, this.sourcepos(t, this.pos - 1))), !0
}, e.prototype.parseBackslash = function(e) {
var t, n = this.subject;
this.pos += 1;
var r = this.pos;
return 10 === this.peek() ? (this.pos += 1, t = id("linebreak", this.sourcepos(this.pos - 1, this.pos)), e.appendChild(t), this.nextLine()) : Rd.test(n.charAt(this.pos)) ? (e.appendChild(ud(n.charAt(this.pos), this.sourcepos(r, this.pos))), this.pos += 1) : e.appendChild(ud("\\", this.sourcepos(r, r))), !0
}, e.prototype.parseAutolink = function(e) {
var t, n, r, o = this.pos + 1;
return (t = this.match(qd)) ? (n = t.slice(1, t.length - 1), (r = id("link", this.sourcepos(o, this.pos))).destination = Bu("mailto:" + n), r.title = "", r.appendChild(ud(n, this.sourcepos(o + 1, this.pos - 1))), e.appendChild(r), !0) : !!(t = this.match(Vd)) && (n = t.slice(1, t.length - 1), (r = id("link", this.sourcepos(o, this.pos))).destination = Bu(n), r.title = "", r.appendChild(ud(n, this.sourcepos(o + 1, this.pos - 1))), e.appendChild(r), !0)
}, e.prototype.parseHtmlTag = function(e) {
var t = this.pos + 1,
n = this.match(md);
if (null === n) return !1;
var r = id("htmlInline", this.sourcepos(t, this.pos));
return r.literal = n, e.appendChild(r), !0
}, e.prototype.scanDelims = function(e) {
var t = 0,
n = this.pos;
if (e === Ed || e === Nd) t++, this.pos++;
else
for (; this.peek() === e;) t++, this.pos++;
if (0 === t || t < 2 && (e === Sd || e === Od)) return this.pos = n, null;
var r, o = 0 === n ? "\n" : this.subject.charAt(n - 1),
i = this.peek();
r = -1 === i ? "\n" : yd(i);
var s, a, l = _d.test(r),
c = Ad.test(r),
u = _d.test(o),
d = Ad.test(o),
p = !l && (!c || u || d),
h = !u && (!d || l || c);
return 95 === e ? (s = p && (!h || d), a = h && (!p || c)) : e === Ed || e === Nd ? (s = p && !h, a = h) : e === Od ? (s = !l, a = !u) : (s = p, a = h), this.pos = n, {
numdelims: t,
canOpen: s,
canClose: a
}
}, e.prototype.handleDelim = function(e, t) {
var n = this.scanDelims(e);
if (!n) return !1;
var r = n.numdelims,
o = this.pos + 1;
this.pos += r;
var i = ud(e === Ed ? "’" : e === Nd ? "“" : this.subject.slice(o - 1, this.pos), this.sourcepos(o, this.pos));
return t.appendChild(i), (n.canOpen || n.canClose) && (this.options.smart || e !== Ed && e !== Nd) && (this.delimiters = {
cc: e,
numdelims: r,
origdelims: r,
node: i,
previous: this.delimiters,
next: null,
canOpen: n.canOpen,
canClose: n.canClose
}, this.delimiters.previous && (this.delimiters.previous.next = this.delimiters)), !0
}, e.prototype.removeDelimiter = function(e) {
null !== e.previous && (e.previous.next = e.next), null === e.next ? this.delimiters = e.previous : e.next.previous = e.previous
}, e.prototype.removeDelimitersBetween = function(e, t) {
e.next !== t && (e.next = t, t.previous = e)
}, e.prototype.processEmphasis = function(e) {
var t, n, r, o, i, s, a, l = !1,
c = ((t = {})[95] = [e, e, e], t[42] = [e, e, e], t[39] = [e], t[34] = [e], t[126] = [e], t[36] = [e], t);
for (r = this.delimiters; null !== r && r.previous !== e;) r = r.previous;
for (; null !== r;) {
var u = r.cc,
d = 95 === u || 42 === u;
if (r.canClose) {
for (n = r.previous, a = !1; null !== n && n !== e && n !== c[u][d ? r.origdelims % 3 : 0];) {
if (l = d && (r.canOpen || n.canClose) && r.origdelims % 3 != 0 && (n.origdelims + r.origdelims) % 3 == 0, n.cc === r.cc && n.canOpen && !l) {
a = !0;
break
}
n = n.previous
}
if (o = r, d || u === Sd || u === Od)
if (a) {
if (n) {
var p = r.numdelims >= 2 && n.numdelims >= 2 ? 2 : 1,
h = d ? 0 : 1;
i = n.node, s = r.node;
var f = d ? 1 === p ? "emph" : "strong" : "strike";
u === Od && (f = "customInline");
var m = id(f),
g = i.sourcepos[1],
v = s.sourcepos[0];
m.sourcepos = [
[g[0], g[1] - p + 1],
[v[0], v[1] + p - 1]
], i.sourcepos[1][1] -= p, s.sourcepos[0][1] += p, i.literal = i.literal.slice(p), s.literal = s.literal.slice(p), n.numdelims -= p, r.numdelims -= p;
for (var y = i.next, b = void 0; y && y !== s;) b = y.next, y.unlink(), m.appendChild(y), y = b;
if (u === Od) {
var w = m.firstChild,
k = w.literal || "",
x = k.split(/\s/)[0];
m.info = x, k.length <= x.length ? w.unlink() : (w.sourcepos[0][1] += x.length, w.literal = k.replace(x + " ", ""))
}
if (i.insertAfter(m), this.removeDelimitersBetween(n, r), n.numdelims <= h && (0 === n.numdelims && i.unlink(), this.removeDelimiter(n)), r.numdelims <= h) {
0 === r.numdelims && s.unlink();
var C = r.next;
this.removeDelimiter(r), r = C
}
}
} else r = r.next;
else u === Ed ? (r.node.literal = "’", a && (n.node.literal = "‘"), r = r.next) : u === Nd && (r.node.literal = "â€", a && (n.node.literal = "“"), r = r.next);
a || (c[u][d ? o.origdelims % 3 : 0] = o.previous, o.canOpen || this.removeDelimiter(o))
} else r = r.next
}
for (; null !== this.delimiters && this.delimiters !== e;) this.removeDelimiter(this.delimiters)
}, e.prototype.parseLinkTitle = function() {
var e = this.match(Ld);
return null === e ? null : Pu(e.substr(1, e.length - 2))
}, e.prototype.parseLinkDestination = function() {
var e = this.match(Id);
if (null === e) {
if (60 === this.peek()) return null;
for (var t = this.pos, n = 0, r = void 0; - 1 !== (r = this.peek());)
if (92 === r && Rd.test(this.subject.charAt(this.pos + 1))) this.pos += 1, -1 !== this.peek() && (this.pos += 1);
else if (40 === r) this.pos += 1, n += 1;
else if (41 === r) {
if (n < 1) break;
this.pos += 1, n -= 1
} else {
if (null !== $d.exec(yd(r))) break;
this.pos += 1
}
return this.pos === t && 41 !== r || 0 !== n ? null : Bu(Pu(e = this.subject.substr(t, this.pos - t)))
}
return Bu(Pu(e.substr(1, e.length - 2)))
}, e.prototype.parseLinkLabel = function() {
var e = this.match(Gd);
return null === e || e.length > 1001 ? 0 : e.length
}, e.prototype.parseOpenBracket = function(e) {
var t = this.pos;
this.pos += 1;
var n = ud("[", this.sourcepos(this.pos, this.pos));
return e.appendChild(n), this.addBracket(n, t, !1), !0
}, e.prototype.parseBang = function(e) {
var t = this.pos;
if (this.pos += 1, 91 === this.peek()) {
this.pos += 1;
var n = ud("![", this.sourcepos(this.pos - 1, this.pos));
e.appendChild(n), this.addBracket(n, t + 1, !0)
} else {
n = ud("!", this.sourcepos(this.pos, this.pos));
e.appendChild(n)
}
return !0
}, e.prototype.parseCloseBracket = function(e) {
var t = null,
n = null,
r = !1;
this.pos += 1;
var o = this.pos,
i = this.brackets;
if (null === i) return e.appendChild(ud("]", this.sourcepos(o, o))), !0;
if (!i.active) return e.appendChild(ud("]", this.sourcepos(o, o))), this.removeBracket(), !0;
var s = i.image,
a = this.pos;
40 === this.peek() && (this.pos++, this.spnl() && null !== (t = this.parseLinkDestination()) && this.spnl() && ($d.test(this.subject.charAt(this.pos - 1)) && (n = this.parseLinkTitle()), 1) && this.spnl() && 41 === this.peek() ? (this.pos += 1, r = !0) : this.pos = a);
var l = "";
if (!r) {
var c = this.pos,
u = this.parseLinkLabel();
if (u > 2 ? l = this.subject.slice(c, c + u) : i.bracketAfter || (l = this.subject.slice(i.index, o)), 0 === u && (this.pos = a), l) {
l = Cd(l);
var d = this.refMap[l];
d && (t = d.destination, n = d.title, r = !0)
}
}
if (r) {
var p = id(s ? "image" : "link");
p.destination = t, p.title = n || "", p.sourcepos = [i.startpos, this.sourcepos(this.pos)];
for (var h = i.node.next, f = void 0; h;) f = h.next, h.unlink(), p.appendChild(h), h = f;
if (e.appendChild(p), this.processEmphasis(i.previousDelimiter), this.removeBracket(), i.node.unlink(), !s)
for (i = this.brackets; null !== i;) i.image || (i.active = !1), i = i.previous;
return this.options.referenceDefinition && (this.refLinkCandidateMap[e.id] = {
node: e,
refLabel: l
}), !0
}
return this.removeBracket(), this.pos = o, e.appendChild(ud("]", this.sourcepos(o, o))), this.options.referenceDefinition && (this.refLinkCandidateMap[e.id] = {
node: e,
refLabel: l
}), !0
}, e.prototype.addBracket = function(e, t, n) {
null !== this.brackets && (this.brackets.bracketAfter = !0), this.brackets = {
node: e,
startpos: this.sourcepos(t + (n ? 0 : 1)),
previous: this.brackets,
previousDelimiter: this.delimiters,
index: t,
image: n,
active: !0
}
}, e.prototype.removeBracket = function() {
this.brackets && (this.brackets = this.brackets.previous)
}, e.prototype.parseEntity = function(e) {
var t, n = this.pos + 1;
return !!(t = this.match(Pd)) && (e.appendChild(ud(Zc.decodeHTML(t), this.sourcepos(n, this.pos))), !0)
}, e.prototype.parseString = function(e) {
var t, n = this.pos + 1;
if (t = this.match(Kd)) {
if (this.options.smart) {
var r = t.replace(Hd, "…").replace(zd, (function(e) {
var t = 0,
n = 0;
return e.length % 3 == 0 ? n = e.length / 3 : e.length % 2 == 0 ? t = e.length / 2 : e.length % 3 == 2 ? (t = 1, n = (e.length - 2) / 3) : (t = 2, n = (e.length - 4) / 3), zu("—", n) + zu("–", t)
}));
e.appendChild(ud(r, this.sourcepos(n, this.pos)))
} else {
var o = ud(t, this.sourcepos(n, this.pos));
e.appendChild(o)
}
return !0
}
return !1
}, e.prototype.parseNewline = function(e) {
this.pos += 1;
var t = e.lastChild;
if (t && "text" === t.type && " " === t.literal[t.literal.length - 1]) {
var n = " " === t.literal[t.literal.length - 2],
r = t.literal.length;
t.literal = t.literal.replace(Ud, "");
var o = r - t.literal.length;
t.sourcepos[1][1] -= o, e.appendChild(id(n ? "linebreak" : "softbreak", this.sourcepos(this.pos - o, this.pos)))
} else e.appendChild(id("softbreak", this.sourcepos(this.pos, this.pos)));
return this.nextLine(), this.match(Wd), !0
}, e.prototype.parseReference = function(e, t) {
if (!this.options.referenceDefinition) return 0;
this.subject = e.stringContent, this.pos = 0;
var n = null,
r = this.pos,
o = this.parseLinkLabel();
if (0 === o) return 0;
var i = this.subject.substr(0, o);
if (58 !== this.peek()) return this.pos = r, 0;
this.pos++, this.spnl();
var s = this.parseLinkDestination();
if (null === s) return this.pos = r, 0;
var a = this.pos;
this.spnl(), this.pos !== a && (n = this.parseLinkTitle()), null === n && (n = "", this.pos = a);
var l = !0;
if (null === this.match(Jd) && ("" === n ? l = !1 : (n = "", this.pos = a, l = null !== this.match(Jd))), !l) return this.pos = r, 0;
var c = Cd(i);
if ("" === c) return this.pos = r, 0;
var u = this.getReferenceDefSourcepos(e);
e.sourcepos[0][0] = u[1][0] + 1;
var d = id("refDef", u);
return d.title = n, d.dest = s, d.label = c, e.insertBefore(d), t[c] ? this.refDefCandidateMap[d.id] = d : t[c] = $p(d), this.pos - r
}, e.prototype.mergeTextNodes = function(e) {
for (var t, n = []; t = e.next();) {
var r = t.entering,
o = t.node;
if (r && "text" === o.type) n.push(o);
else if (1 === n.length) n = [];
else if (n.length > 1) {
var i = n[0],
s = n[n.length - 1];
i.sourcepos && s.sourcepos && (i.sourcepos[1] = s.sourcepos[1]), i.next = s.next, i.next && (i.next.prev = i);
for (var a = 1; a < n.length; a += 1) i.literal += n[a].literal, n[a].unlink();
n = []
}
}
}, e.prototype.getReferenceDefSourcepos = function(e) {
for (var t = e.stringContent.split(/\n|\r\n/), n = !1, r = 0, o = {
line: 0,
ch: 0
}, i = 0; i < t.length; i += 1) {
var s = t[i];
if ($d.test(s)) break;
if (/\:/.test(s) && 0 === r) {
if (n) break;
var a = s.indexOf(":") === s.length - 1 ? i + 1 : i;
o = {
line: a,
ch: t[a].length
}, n = !0
}
var l = s.match(/'|"/g);
if (l && (r += l.length), 2 === r) {
o = {
line: i,
ch: s.length
};
break
}
}
return [
[e.sourcepos[0][0], e.sourcepos[0][1]],
[e.sourcepos[0][0] + o.line, o.ch]
]
}, e.prototype.parseInline = function(e) {
var t, n = !1,
r = this.peek();
if (-1 === r) return !1;
switch (r) {
case 10:
n = this.parseNewline(e);
break;
case 92:
n = this.parseBackslash(e);
break;
case 96:
n = this.parseBackticks(e);
break;
case 42:
case 95:
case Sd:
case Od:
n = this.handleDelim(r, e);
break;
case Ed:
case Nd:
n = !!(null === (t = this.options) || void 0 === t ? void 0 : t.smart) && this.handleDelim(r, e);
break;
case 91:
n = this.parseOpenBracket(e);
break;
case 33:
n = this.parseBang(e);
break;
case 93:
n = this.parseCloseBracket(e);
break;
case 60:
n = this.parseAutolink(e) || this.parseHtmlTag(e);
break;
case 38:
e.disabledEntityParse || (n = this.parseEntity(e));
break;
default:
n = this.parseString(e)
}
return n || (this.pos += 1, e.appendChild(ud(yd(r), this.sourcepos(this.pos, this.pos + 1)))), !0
}, e.prototype.parse = function(e) {
for (this.subject = e.stringContent.trim(), this.pos = 0, this.delimiters = null, this.brackets = null, this.lineOffsets = e.lineOffsets || [0], this.lineIdx = 0, this.linePosOffset = 0, this.lineStartNum = e.sourcepos[0][0], function(e) {
return "heading" === e.type
}(e) && (this.lineOffsets[0] += e.level + 1); this.parseInline(e););
e.stringContent = null, this.processEmphasis(null), this.mergeTextNodes(e.walker());
var t = this.options,
n = t.extendedAutolinks,
r = t.customParser;
if (n && function(e, t) {
var n;
"boolean" == typeof t && (t = kd);
for (var r = function() {
var e = n.entering,
r = n.node;
if (e && "text" === r.type && "link" !== r.parent.type) {
var o = r.literal,
i = t(o);
if (!i || !i.length) return "continue";
for (var s = 0, a = r.sourcepos[0], l = a[0], c = a[1], u = function(e, t) {
return [
[l, c + e],
[l, c + t]
]
}, d = [], p = 0, h = i; p < h.length; p++) {
var f = h[p],
m = f.range,
g = f.url,
v = f.text;
m[0] > s && d.push(ud(o.substring(s, m[0]), u(s, m[0] - 1)));
var y = id("link", u.apply(void 0, m));
y.appendChild(ud(v, u.apply(void 0, m))), y.destination = g, y.extendedAutolink = !0, d.push(y), s = m[1] + 1
}
s < o.length && d.push(ud(o.substring(s), u(s, o.length - 1)));
for (var b = 0, w = d; b < w.length; b++) {
var k = w[b];
r.insertBefore(k)
}
r.unlink()
}
}; n = e.next();) r()
}(e.walker(), n), r && e.firstChild)
for (var o, i = e.firstChild.walker(); o = i.next();) {
var s = o.node,
a = o.entering;
r[s.type] && r[s.type](s, {
entering: a,
options: this.options
})
}
}, e
}(),
Xd = /^\[([ \txX])\][ \t]+/;
var Qd = /[^ \t\f\v\r\n]/,
Yd = /^(?:`{3,}|~{3,})(?= *$)/;
function ep(e) {
for (var t = e; t;) {
if (t.lastLineBlank) return !0;
var n = t.type;
if (t.lastLineChecked || "list" !== n && "item" !== n) {
t.lastLineChecked = !0;
break
}
t.lastLineChecked = !0, t = t.lastChild
}
return !1
}
function tp(e, t) {
return t < e.length ? e.charCodeAt(t) : -1
}
function np(e) {
return !Qd.test(e)
}
function rp(e) {
return 32 === e || 9 === e
}
var op = /^\$\$$/,
ip = {
continue: function(e, t) {
var n = e.currentLine,
r = n.match(op);
if (r) return e.lastLineLength = r[0].length, e.finalize(t, e.lineNumber), 2;
for (var o = t.offset; o > 0 && rp(tp(n, e.offset));) e.advanceOffset(1, !0), o--;
return 0
},
finalize: function(e, t) {
if (null !== t.stringContent) {
var n = t.stringContent,
r = n.indexOf("\n"),
o = n.slice(0, r),
i = n.slice(r + 1),
s = o.match(/^(\s*)(.*)/);
t.info = Pu(s[2].trim()), t.literal = i, t.stringContent = null
}
},
canContain: function() {
return !1
},
acceptsLines: !0
},
sp = {
continue: function() {
return 1
},
finalize: function() {},
canContain: function() {
return !1
},
acceptsLines: !0
},
ap = {
continue: function() {
return 0
},
finalize: function(e, t) {
for (var n = t.firstChild; n;) {
if (ep(n) && n.next) {
t.listData.tight = !1;
break
}
for (var r = n.firstChild; r;) {
if (ep(r) && (n.next || r.next)) {
t.listData.tight = !1;
break
}
r = r.next
}
n = n.next
}
},
canContain: function(e) {
return "item" === e
},
acceptsLines: !1
},
lp = {
continue: function(e, t) {
if (e.blank) {
if (null === t.firstChild) return 1;
e.advanceNextNonspace()
} else {
if (!(e.indent >= t.listData.markerOffset + t.listData.padding)) return 1;
e.advanceOffset(t.listData.markerOffset + t.listData.padding, !0)
}
return 0
},
finalize: function(e, t) {
if (t.firstChild && "paragraph" === t.firstChild.type) {
var n = t.firstChild,
r = n.stringContent.match(Xd);
if (r) {
var o = r[0].length;
n.stringContent = n.stringContent.substring(o - 1), n.sourcepos[0][1] += o, n.lineOffsets[0] += o, t.listData.task = !0, t.listData.checked = /[xX]/.test(r[1])
}
}
},
canContain: function(e) {
return "item" !== e
},
acceptsLines: !1
},
cp = {
continue: function(e, t) {
var n = e.currentLine,
r = e.indent;
if (t.isFenced) {
var o = r <= 3 && n.charAt(e.nextNonspace) === t.fenceChar && n.slice(e.nextNonspace).match(Yd);
if (o && o[0].length >= t.fenceLength) return e.lastLineLength = e.offset + r + o[0].length, e.finalize(t, e.lineNumber), 2;
for (var i = t.fenceOffset; i > 0 && rp(tp(n, e.offset));) e.advanceOffset(1, !0), i--
} else if (r >= 4) e.advanceOffset(4, !0);
else {
if (!e.blank) return 1;
e.advanceNextNonspace()
}
return 0
},
finalize: function(e, t) {
var n;
if (null !== t.stringContent) {
if (t.isFenced) {
var r = t.stringContent,
o = r.indexOf("\n"),
i = r.slice(0, o),
s = r.slice(o + 1),
a = i.match(/^(\s*)(.*)/);
t.infoPadding = a[1].length, t.info = Pu(a[2].trim()), t.literal = s
} else t.literal = null === (n = t.stringContent) || void 0 === n ? void 0 : n.replace(/(\n *)+$/, "\n");
t.stringContent = null
}
},
canContain: function() {
return !1
},
acceptsLines: !0
},
up = {
continue: function(e) {
return e.blank ? 1 : 0
},
finalize: function(e, t) {
if (null !== t.stringContent) {
for (var n, r = !1; 91 === tp(t.stringContent, 0) && (n = e.inlineParser.parseReference(t, e.refMap));) t.stringContent = t.stringContent.slice(n), r = !0;
r && np(t.stringContent) && t.unlink()
}
},
canContain: function() {
return !1
},
acceptsLines: !0
},
dp = {
document: {
continue: function() {
return 0
},
finalize: function() {},
canContain: function(e) {
return "item" !== e
},
acceptsLines: !1
},
list: ap,
blockQuote: {
continue: function(e) {
var t = e.currentLine;
return e.indented || 62 !== tp(t, e.nextNonspace) ? 1 : (e.advanceNextNonspace(), e.advanceOffset(1, !1), rp(tp(t, e.offset)) && e.advanceOffset(1, !0), 0)
},
finalize: function() {},
canContain: function(e) {
return "item" !== e
},
acceptsLines: !1
},
item: lp,
heading: {
continue: function() {
return 1
},
finalize: function() {},
canContain: function() {
return !1
},
acceptsLines: !1
},
thematicBreak: {
continue: function() {
return 1
},
finalize: function() {},
canContain: function() {
return !1
},
acceptsLines: !1
},
codeBlock: cp,
htmlBlock: {
continue: function(e, t) {
return !e.blank || 6 !== t.htmlBlockType && 7 !== t.htmlBlockType ? 0 : 1
},
finalize: function(e, t) {
var n;
t.literal = (null === (n = t.stringContent) || void 0 === n ? void 0 : n.replace(/(\n *)+$/, "")) || null, t.stringContent = null
},
canContain: function() {
return !1
},
acceptsLines: !0
},
paragraph: up,
table: {
continue: function() {
return 0
},
finalize: function() {},
canContain: function(e) {
return "tableHead" === e || "tableBody" === e
},
acceptsLines: !1
},
tableBody: {
continue: function() {
return 0
},
finalize: function() {},
canContain: function(e) {
return "tableRow" === e
},
acceptsLines: !1
},
tableHead: {
continue: function() {
return 1
},
finalize: function() {},
canContain: function(e) {
return "tableRow" === e || "tableDelimRow" === e
},
acceptsLines: !1
},
tableRow: {
continue: function() {
return 1
},
finalize: function() {},
canContain: function(e) {
return "tableCell" === e
},
acceptsLines: !1
},
tableCell: {
continue: function() {
return 1
},
finalize: function() {},
canContain: function() {
return !1
},
acceptsLines: !1
},
tableDelimRow: {
continue: function() {
return 1
},
finalize: function() {},
canContain: function(e) {
return "tableDelimCell" === e
},
acceptsLines: !1
},
tableDelimCell: {
continue: function() {
return 1
},
finalize: function() {},
canContain: function() {
return !1
},
acceptsLines: !1
},
refDef: sp,
customBlock: ip,
frontMatter: sp
};
function pp(e) {
for (var t = 0, n = 0, r = [], o = 0; o < e.length; o += 1)
if ("|" === e[o] && "\\" !== e[o - 1]) {
var i = e.substring(t, o);
0 === t && qu(i) ? n = o + 1 : r.push(i), t = o + 1
} t < e.length && (qu(i = e.substring(t, e.length)) || r.push(i));
return [n, r]
}
function hp(e, t, n, r) {
for (var o = [], i = 0, s = t; i < s.length; i++) {
var a = s[i],
l = a.match(/^[ \t]+/),
c = l ? l[0].length : 0,
u = void 0,
d = void 0;
if (c === a.length) c = 0, u = 0, d = "";
else {
var p = a.match(/[ \t]+$/);
u = p ? p[0].length : 0, d = a.slice(c, a.length - u)
}
var h = r + c,
f = id(e, [
[n, r],
[n, r + a.length - 1]
]);
f.stringContent = d.replace(/\\\|/g, "|"), f.startIdx = o.length, f.endIdx = o.length, f.lineOffsets = [h - 1], f.paddingLeft = c, f.paddingRight = u, o.push(f), r += a.length + 1
}
return o
}
function fp(e) {
var t = null,
n = e.stringContent,
r = n[0];
return ":" === n[n.length - 1] ? t = ":" === r ? "center" : "right" : ":" === r && (t = "left"), {
align: t
}
}
var mp = /^(\$\$)(\s*[a-zA-Z])+/,
gp = /^(\$\$)(\s*[a-zA-Z])+.*(\$\$)/,
vp = /^`{3,}(?!.*`)|^~{3,}/,
yp = [/./, /^<(?:script|pre|style)(?:\s|>|$)/i, /^/, /\?>/, />/, /\]\]>/],
Dp = /^[#`~*+_=<>0-9-;$]/,
Ap = /\r\n|\n|\r/;
function Lp() {
return id("document", [
[1, 1],
[0, 0]
])
}
var Ip = {
smart: !1,
tagFilter: !1,
extendedAutolinks: !1,
disallowedHtmlBlockTags: [],
referenceDefinition: !1,
disallowDeepHeading: !1,
customParser: null,
frontMatter: !1
},
Rp = function() {
function e(e) {
this.options = _c(_c({}, Ip), e), this.doc = Lp(), this.tip = this.doc, this.oldtip = this.doc, this.lineNumber = 0, this.offset = 0, this.column = 0, this.nextNonspace = 0, this.nextNonspaceColumn = 0, this.indent = 0, this.currentLine = "", this.indented = !1, this.blank = !1, this.partiallyConsumedTab = !1, this.allClosed = !0, this.lastMatchedContainer = this.doc, this.refMap = {}, this.refLinkCandidateMap = {}, this.refDefCandidateMap = {}, this.lastLineLength = 0, this.lines = [], this.options.frontMatter && (dp.frontMatter = Np, Mp.unshift(Ep)), this.inlineParser = new Zd(this.options)
}
return e.prototype.advanceOffset = function(e, t) {
void 0 === t && (t = !1);
for (var n, r, o, i = this.currentLine; e > 0 && (o = i[this.offset]);) "\t" === o ? (n = 4 - this.column % 4, t ? (this.partiallyConsumedTab = n > e, r = n > e ? e : n, this.column += r, this.offset += this.partiallyConsumedTab ? 0 : 1, e -= r) : (this.partiallyConsumedTab = !1, this.column += n, this.offset += 1, e -= 1)) : (this.partiallyConsumedTab = !1, this.offset += 1, this.column += 1, e -= 1)
}, e.prototype.advanceNextNonspace = function() {
this.offset = this.nextNonspace, this.column = this.nextNonspaceColumn, this.partiallyConsumedTab = !1
}, e.prototype.findNextNonspace = function() {
for (var e, t = this.currentLine, n = this.offset, r = this.column;
"" !== (e = t.charAt(n));)
if (" " === e) n++, r++;
else {
if ("\t" !== e) break;
n++, r += 4 - r % 4
} this.blank = "\n" === e || "\r" === e || "" === e, this.nextNonspace = n, this.nextNonspaceColumn = r, this.indent = this.nextNonspaceColumn - this.column, this.indented = this.indent >= 4
}, e.prototype.addLine = function() {
if (this.partiallyConsumedTab) {
this.offset += 1;
var e = 4 - this.column % 4;
this.tip.stringContent += zu(" ", e)
}
this.tip.lineOffsets ? this.tip.lineOffsets.push(this.offset) : this.tip.lineOffsets = [this.offset], this.tip.stringContent += this.currentLine.slice(this.offset) + "\n"
}, e.prototype.addChild = function(e, t) {
for (; !dp[this.tip.type].canContain(e);) this.finalize(this.tip, this.lineNumber - 1);
var n = t + 1,
r = id(e, [
[this.lineNumber, n],
[0, 0]
]);
return r.stringContent = "", this.tip.appendChild(r), this.tip = r, r
}, e.prototype.closeUnmatchedBlocks = function() {
if (!this.allClosed) {
for (; this.oldtip !== this.lastMatchedContainer;) {
var e = this.oldtip.parent;
this.finalize(this.oldtip, this.lineNumber - 1), this.oldtip = e
}
this.allClosed = !0
}
}, e.prototype.finalize = function(e, t) {
var n = e.parent;
e.open = !1, e.sourcepos[1] = [t, this.lastLineLength], dp[e.type].finalize(this, e), this.tip = n
}, e.prototype.processInlines = function(e) {
var t, n = this.options.customParser,
r = e.walker();
for (this.inlineParser.refMap = this.refMap, this.inlineParser.refLinkCandidateMap = this.refLinkCandidateMap, this.inlineParser.refDefCandidateMap = this.refDefCandidateMap, this.inlineParser.options = this.options; t = r.next();) {
var o = t.node,
i = t.entering,
s = o.type;
n && n[s] && n[s](o, {
entering: i,
options: this.options
}), i || "paragraph" !== s && "heading" !== s && ("tableCell" !== s || o.ignored) || this.inlineParser.parse(o)
}
}, e.prototype.incorporateLine = function(e) {
var t = this.doc;
this.oldtip = this.tip, this.offset = 0, this.column = 0, this.blank = !1, this.partiallyConsumedTab = !1, this.lineNumber += 1, -1 !== e.indexOf("\0") && (e = e.replace(/\0/g, "�")), this.currentLine = e;
for (var n, r = !0;
(n = t.lastChild) && n.open;) {
switch (t = n, this.findNextNonspace(), dp[t.type].continue(this, t)) {
case 0:
break;
case 1:
r = !1;
break;
case 2:
return void(this.lastLineLength = e.length);
default:
throw new Error("continue returned illegal value, must be 0, 1, or 2")
}
if (!r) {
t = t.parent;
break
}
}
this.allClosed = t === this.oldtip, this.lastMatchedContainer = t;
for (var o = "paragraph" !== t.type && dp[t.type].acceptsLines, i = Mp.length; !o;) {
if (this.findNextNonspace(), "table" !== t.type && "tableBody" !== t.type && "paragraph" !== t.type && !this.indented && !Dp.test(e.slice(this.nextNonspace))) {
this.advanceNextNonspace();
break
}
for (var s = 0; s < i;) {
var a = Mp[s](this, t);
if (1 === a) {
t = this.tip;
break
}
if (2 === a) {
t = this.tip, o = !0;
break
}
s++
}
if (s === i) {
this.advanceNextNonspace();
break
}
}
if (this.allClosed || this.blank || "paragraph" !== this.tip.type) {
this.closeUnmatchedBlocks(), this.blank && t.lastChild && (t.lastChild.lastLineBlank = !0);
for (var l = t.type, c = this.blank && !("blockQuote" === l || sd(t) && t.isFenced || "item" === l && !t.firstChild && t.sourcepos[0][0] === this.lineNumber), u = t; u;) u.lastLineBlank = c, u = u.parent;
dp[l].acceptsLines ? (this.addLine(), function(e) {
return "htmlBlock" === e.type
}(t) && t.htmlBlockType >= 1 && t.htmlBlockType <= 5 && Op[t.htmlBlockType].test(this.currentLine.slice(this.offset)) && (this.lastLineLength = e.length, this.finalize(t, this.lineNumber))) : this.offset < e.length && !this.blank && (t = this.addChild("paragraph", this.offset), this.advanceNextNonspace(), this.addLine())
} else this.addLine();
this.lastLineLength = e.length
}, e.prototype.parse = function(e, t) {
this.doc = Lp(), this.tip = this.doc, this.lineNumber = 0, this.lastLineLength = 0, this.offset = 0, this.column = 0, this.lastMatchedContainer = this.doc, this.currentLine = "";
var n = e.split(Ap),
r = n.length;
this.lines = t || n, this.options.referenceDefinition && this.clearRefMaps(), 10 === e.charCodeAt(e.length - 1) && (r -= 1);
for (var o = 0; o < r; o++) this.incorporateLine(n[o]);
for (; this.tip;) this.finalize(this.tip, r);
return this.processInlines(this.doc), this.doc
}, e.prototype.partialParseStart = function(e, t) {
this.doc = Lp(), this.tip = this.doc, this.lineNumber = e - 1, this.lastLineLength = 0, this.offset = 0, this.column = 0, this.lastMatchedContainer = this.doc, this.currentLine = "";
for (var n = t.length, r = 0; r < n; r++) this.incorporateLine(t[r]);
return this.doc
}, e.prototype.partialParseExtends = function(e) {
for (var t = 0; t < e.length; t++) this.incorporateLine(e[t])
}, e.prototype.partialParseFinish = function() {
for (; this.tip;) this.finalize(this.tip, this.lineNumber);
this.processInlines(this.doc)
}, e.prototype.setRefMaps = function(e, t, n) {
this.refMap = e, this.refLinkCandidateMap = t, this.refDefCandidateMap = n
}, e.prototype.clearRefMaps = function() {
[this.refMap, this.refLinkCandidateMap, this.refDefCandidateMap].forEach((function(e) {
var t;
t = e, Object.keys(t).forEach((function(e) {
delete t[e]
}))
}))
}, e
}();
function Pp(e, t) {
return e[0] < t[0] ? 1 : e[0] > t[0] ? -1 : e[1] < t[1] ? 1 : e[1] > t[1] ? -1 : 0
}
function Bp(e, t) {
var n = e[0];
return 1 === Pp(e[1], t) ? 1 : -1 === Pp(n, t) ? -1 : 0
}
function Fp(e, t) {
for (var n = 0, r = t; n < r.length; n++) {
var o = r[n];
e.insertBefore(o)
}
}
function Hp(e, t) {
var n = e[0];
return e[1][0] < t ? 1 : n[0] > t ? -1 : 0
}
function zp(e, t) {
for (var n = e.firstChild; n;) {
var r = Hp(n.sourcepos, t);
if (0 === r) return n;
if (-1 === r) return n.prev || n;
n = n.next
}
return e.lastChild
}
function qp(e) {
return function(e) {
return _u[e]
}(e) || null
}
function Vp(e, t, n) {
if (void 0 === n && (n = null), t)
for (var r = t.walker(); t && t !== n;) {
e(t);
var o = r.next();
if (!o) break;
t = o.node
}
}
var jp = /\r\n|\n|\r/;
function $p(e) {
return {
id: e.id,
title: e.title,
sourcepos: e.sourcepos,
unlinked: !1,
destination: e.dest
}
}
var _p = function() {
function e(e, t) {
this.refMap = {}, this.refLinkCandidateMap = {}, this.refDefCandidateMap = {}, this.referenceDefinition = !!(null == t ? void 0 : t.referenceDefinition), this.parser = new Rp(t), this.parser.setRefMaps(this.refMap, this.refLinkCandidateMap, this.refDefCandidateMap), this.eventHandlerMap = {
change: []
}, e = e || "", this.lineTexts = e.split(jp), this.root = this.parser.parse(e, this.lineTexts)
}
return e.prototype.updateLineTexts = function(e, t, n) {
var r, o = e[0],
i = e[1],
s = t[0],
a = t[1],
l = n.split(jp),
c = l.length,
u = this.lineTexts[o - 1],
d = this.lineTexts[s - 1];
l[0] = u.slice(0, i - 1) + l[0], l[c - 1] = l[c - 1] + d.slice(a - 1);
var p = s - o + 1;
return (r = this.lineTexts).splice.apply(r, Uc([o - 1, p], l)), c - p
}, e.prototype.updateRootNodeState = function() {
if (1 === this.lineTexts.length && "" === this.lineTexts[0]) return this.root.lastLineBlank = !0, void(this.root.sourcepos = [
[1, 1],
[1, 0]
]);
this.root.lastChild && (this.root.lastLineBlank = this.root.lastChild.lastLineBlank);
for (var e = this.lineTexts, t = e.length - 1;
"" === e[t];) t -= 1;
e.length - 2 > t && (t += 1), this.root.sourcepos[1] = [t + 1, e[t].length]
}, e.prototype.replaceRangeNodes = function(e, t, n) {
e ? (Fp(e, n), function(e, t) {
if (e.parent === t.parent && e !== t) {
for (var n = e.next; n && n !== t;) {
for (var r = n.next, o = 0, i = ["parent", "prev", "next"]; o < i.length; o++) {
var s = i[o];
n[s] && (Uu(n[s].id), n[s] = null)
}
n = r
}
e.next = t.next, t.next ? t.next.prev = e : e.parent.lastChild = e
}
}(e, t), [e.id, t.id].forEach((function(e) {
return Uu(e)
})), e.unlink()) : t ? (Fp(t, n), Uu(t.id), t.unlink()) : function(e, t) {
for (var n = t.length - 1; n >= 0; n -= 1) e.prependChild(t[n])
}(this.root, n)
}, e.prototype.getNodeRange = function(e, t) {
var n = zp(this.root, e[0]),
r = zp(this.root, t[0]);
return r && r.next && t[0] + 1 === r.next.sourcepos[0][0] && (r = r.next), [n, r]
}, e.prototype.trigger = function(e, t) {
this.eventHandlerMap[e].forEach((function(e) {
e(t)
}))
}, e.prototype.extendEndLine = function(e) {
for (;
"" === this.lineTexts[e];) e += 1;
return e
}, e.prototype.parseRange = function(e, t, n, r) {
var o;
e && e.prev && (ad(e.prev) && function(e) {
var t = e.match(/^[ \t]+/);
if (t && (t[0].length >= 2 || /\t/.test(t[0]))) return !0;
var n = t ? e.slice(t.length) : e;
return xp.test(n) || Cp.test(n)
}(this.lineTexts[n - 1]) || function(e) {
return "table" === e.type
}(e.prev) && (!np(o = this.lineTexts[n - 1]) && -1 !== o.indexOf("|"))) && (n = (e = e.prev).sourcepos[0][0]);
for (var i = this.lineTexts.slice(n - 1, r), s = this.parser.partialParseStart(n, i), a = t ? t.next : this.root.firstChild, l = s.lastChild, c = l && sd(l) && l.open, u = l && cd(l) && l.open, d = l && ad(l);
(c || u) && a || d && a && ("list" === a.type || a.sourcepos[0][1] >= 2);) {
var p = this.extendEndLine(a.sourcepos[1][0]);
this.parser.partialParseExtends(this.lineTexts.slice(r, p)), e || (e = t), t = a, r = p, a = a.next
}
return this.parser.partialParseFinish(), {
newNodes: function(e) {
for (var t = [], n = e.firstChild; n;) t.push(n), n = n.next;
return t
}(s),
extStartNode: e,
extEndNode: t
}
}, e.prototype.getRemovedNodeRange = function(e, t) {
return !e || e && ld(e) || t && ld(t) ? null : {
id: [e.id, t.id],
line: [e.sourcepos[0][0] - 1, t.sourcepos[1][0] - 1]
}
}, e.prototype.markDeletedRefMap = function(e, t) {
var n = this;
if (!Md(this.refMap)) {
var r = function(e) {
if (ld(e)) {
var t = n.refMap[e.label];
t && e.id === t.id && (t.unlinked = !0)
}
};
e && Vp(r, e.parent, t), t && Vp(r, t)
}
}, e.prototype.replaceWithNewRefDefState = function(e) {
var t = this;
if (!Md(this.refMap)) {
var n = function(e) {
if (ld(e)) {
var n = e.label,
r = t.refMap[n];
r && !r.unlinked || (t.refMap[n] = $p(e))
}
};
e.forEach((function(e) {
Vp(n, e)
}))
}
}, e.prototype.replaceWithRefDefCandidate = function() {
var e = this;
Md(this.refDefCandidateMap) || Td(this.refDefCandidateMap, (function(t, n) {
var r = n.label,
o = n.sourcepos,
i = e.refMap[r];
(!i || i.unlinked || i.sourcepos[0][0] > o[0][0]) && (e.refMap[r] = $p(n))
}))
}, e.prototype.getRangeWithRefDef = function(e, t, n, r, o) {
if (this.referenceDefinition && !Md(this.refMap)) {
var i = zp(this.root, e - 1),
s = zp(this.root, t + 1);
i && ld(i) && i !== n && i !== r && (e = (n = i).sourcepos[0][0]), s && ld(s) && s !== n && s !== r && (r = s, t = this.extendEndLine(r.sourcepos[1][0] + o))
}
return [n, r, e, t]
}, e.prototype.parse = function(e, t, n) {
void 0 === n && (n = 0);
var r = this.getNodeRange(e, t),
o = r[0],
i = r[1],
s = o ? Math.min(o.sourcepos[0][0], e[0]) : e[0],
a = this.extendEndLine((i ? Math.max(i.sourcepos[1][0], t[0]) : t[0]) + n),
l = this.parseRange.apply(this, this.getRangeWithRefDef(s, a, o, i, n)),
c = l.newNodes,
u = l.extStartNode,
d = l.extEndNode,
p = this.getRemovedNodeRange(u, d),
h = d ? d.next : this.root.firstChild;
return this.referenceDefinition ? (this.markDeletedRefMap(u, d), this.replaceRangeNodes(u, d, c), this.replaceWithNewRefDefState(c)) : this.replaceRangeNodes(u, d, c), {
nodes: c,
removedNodeRange: p,
nextNode: h
}
}, e.prototype.parseRefLink = function() {
var e = this,
t = [];
return Md(this.refMap) || Td(this.refMap, (function(n, r) {
r.unlinked && delete e.refMap[n], Td(e.refLinkCandidateMap, (function(r, o) {
var i = o.node;
o.refLabel === n && t.push(e.parse(i.sourcepos[0], i.sourcepos[1]))
}))
})), t
}, e.prototype.removeUnlinkedCandidate = function() {
Md(this.refDefCandidateMap) || [this.refLinkCandidateMap, this.refDefCandidateMap].forEach((function(e) {
Td(e, (function(t) {
(function(e) {
var t = qp(e);
if (!t) return !0;
for (; t && "document" !== t.type;) {
if (!t.parent && !t.prev && !t.next) return !0;
t = t.parent
}
return !1
})(t) && delete e[t]
}))
}))
}, e.prototype.editMarkdown = function(e, t, n) {
var r = this.updateLineTexts(e, t, n),
o = this.parse(e, t, r),
i = function(e) {
for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n];
var r = _c({}, e);
return t.forEach((function(e) {
delete r[e]
})), r
}(o, "nextNode");
! function(e, t) {
if (e && e.parent && 0 !== t) {
var n, r = e.parent.walker();
for (r.resumeAt(e, !0); n = r.next();) {
var o = n.node;
n.entering && (o.sourcepos[0][0] += t, o.sourcepos[1][0] += t)
}
}
}(o.nextNode, r), this.updateRootNodeState();
var s = [i];
return this.referenceDefinition && (this.removeUnlinkedCandidate(), this.replaceWithRefDefCandidate(), s = s.concat(this.parseRefLink())), this.trigger("change", s), s
}, e.prototype.getLineTexts = function() {
return this.lineTexts
}, e.prototype.getRootNode = function() {
return this.root
}, e.prototype.findNodeAtPosition = function(e) {
var t = function(e, t) {
for (var n = e, r = null; n;) {
var o = Bp(n.sourcepos, t);
if (0 === o) {
if (!n.firstChild) return n;
r = n, n = n.firstChild
} else {
if (-1 === o) return r;
if (!n.next) return r;
n = n.next
}
}
return n
}(this.root, e);
return t && t !== this.root ? t : null
}, e.prototype.findFirstNodeAtLine = function(e) {
return function(e, t) {
for (var n = e.firstChild, r = null; n;) {
var o = Hp(n.sourcepos, t);
if (0 === o) {
if (n.sourcepos[0][0] === t || !n.firstChild) return n;
r = n, n = n.firstChild
} else {
if (-1 === o) break;
r = n, n = n.next
}
}
return r ? function(e) {
for (; e.parent && "document" !== e.parent.type && e.parent.sourcepos[0][0] === e.sourcepos[0][0];) e = e.parent;
return e
}(function(e) {
for (; e.lastChild;) e = e.lastChild;
return e
}(r)) : null
}(this.root, e)
}, e.prototype.on = function(e, t) {
this.eventHandlerMap[e].push(t)
}, e.prototype.off = function(e, t) {
var n = this.eventHandlerMap[e],
r = n.indexOf(t);
n.splice(r, 1)
}, e.prototype.findNodeById = function(e) {
return qp(e)
}, e.prototype.removeAllNode = function() {
_u = {}
}, e
}(),
Up = new RegExp("<(/?(?:" + ["title", "textarea", "style", "xmp", "iframe", "noembed", "noframes", "script", "plaintext"].join("|") + ")[^>]*>)", "ig");
function Wp(e) {
return Up.test(e) ? e.replace(Up, (function(e, t) {
return "<" + t
})) : e
}
var Jp = {
heading: function(e, t) {
return {
type: t.entering ? "openTag" : "closeTag",
tagName: "h" + e.level,
outerNewLine: !0
}
},
text: function(e) {
return {
type: "text",
content: e.literal
}
},
softbreak: function(e, t) {
return {
type: "html",
content: t.options.softbreak
}
},
linebreak: function() {
return {
type: "html",
content: "
\n"
}
},
emph: function(e, t) {
return {
type: t.entering ? "openTag" : "closeTag",
tagName: "em"
}
},
strong: function(e, t) {
return {
type: t.entering ? "openTag" : "closeTag",
tagName: "strong"
}
},
paragraph: function(e, t) {
var n, r = t.entering,
o = null === (n = e.parent) || void 0 === n ? void 0 : n.parent;
return o && "list" === o.type && o.listData.tight ? null : {
type: r ? "openTag" : "closeTag",
tagName: "p",
outerNewLine: !0
}
},
thematicBreak: function() {
return {
type: "openTag",
tagName: "hr",
outerNewLine: !0,
selfClose: !0
}
},
blockQuote: function(e, t) {
return {
type: t.entering ? "openTag" : "closeTag",
tagName: "blockquote",
outerNewLine: !0,
innerNewLine: !0
}
},
list: function(e, t) {
var n = t.entering,
r = e.listData,
o = r.type,
i = r.start,
s = "bullet" === o ? "ul" : "ol",
a = {};
return "ol" === s && null !== i && 1 !== i && (a.start = i.toString()), {
type: n ? "openTag" : "closeTag",
tagName: s,
attributes: a,
outerNewLine: !0
}
},
item: function(e, t) {
return {
type: t.entering ? "openTag" : "closeTag",
tagName: "li",
outerNewLine: !0
}
},
htmlInline: function(e, t) {
return {
type: "html",
content: t.options.tagFilter ? Wp(e.literal) : e.literal
}
},
htmlBlock: function(e, t) {
var n = t.options,
r = n.tagFilter ? Wp(e.literal) : e.literal;
return n.nodeId ? [{
type: "openTag",
tagName: "div",
outerNewLine: !0
}, {
type: "html",
content: r
}, {
type: "closeTag",
tagName: "div",
outerNewLine: !0
}] : {
type: "html",
content: r,
outerNewLine: !0
}
},
code: function(e) {
return [{
type: "openTag",
tagName: "code"
}, {
type: "text",
content: e.literal
}, {
type: "closeTag",
tagName: "code"
}]
},
codeBlock: function(e) {
var t = e.info,
n = t ? t.split(/\s+/) : [],
r = [];
return n.length > 0 && n[0].length > 0 && r.push("language-" + Hu(n[0])), [{
type: "openTag",
tagName: "pre",
outerNewLine: !0
}, {
type: "openTag",
tagName: "code",
classNames: r
}, {
type: "text",
content: e.literal
}, {
type: "closeTag",
tagName: "code"
}, {
type: "closeTag",
tagName: "pre",
outerNewLine: !0
}]
},
link: function(e, t) {
if (t.entering) {
var n = e,
r = n.title,
o = n.destination;
return {
type: "openTag",
tagName: "a",
attributes: _c({
href: Hu(o)
}, r && {
title: Hu(r)
})
}
}
return {
type: "closeTag",
tagName: "a"
}
},
image: function(e, t) {
var n = t.getChildrenText,
r = t.skipChildren,
o = e,
i = o.title,
s = o.destination;
return r(), {
type: "openTag",
tagName: "img",
selfClose: !0,
attributes: _c({
src: Hu(s),
alt: n(e)
}, i && {
title: Hu(i)
})
}
},
customBlock: function(e, t, n) {
var r = e.info.trim().toLowerCase(),
o = n[r];
if (o) try {
return o(e, t)
} catch (e) {
console.warn("[@toast-ui/editor] - The error occurred when " + r + " block node was parsed in markdown renderer: " + e)
}
return [{
type: "openTag",
tagName: "div",
outerNewLine: !0
}, {
type: "text",
content: e.literal
}, {
type: "closeTag",
tagName: "div",
outerNewLine: !0
}]
},
frontMatter: function(e) {
return [{
type: "openTag",
tagName: "div",
outerNewLine: !0,
attributes: {
style: "white-space: pre; display: none;"
}
}, {
type: "text",
content: e.literal
}, {
type: "closeTag",
tagName: "div",
outerNewLine: !0
}]
},
customInline: function(e, t, n) {
var r = e,
o = r.info,
i = r.firstChild,
s = o.trim().toLowerCase(),
a = n[s],
l = t.entering;
if (a) try {
return a(e, t)
} catch (e) {
console.warn("[@toast-ui/editor] - The error occurred when " + s + " inline node was parsed in markdown renderer: " + e)
}
return l ? [{
type: "openTag",
tagName: "span"
}, {
type: "text",
content: "$$" + o + (i ? " " : "")
}] : [{
type: "text",
content: "$$"
}, {
type: "closeTag",
tagName: "span"
}]
}
},
Gp = {
strike: function(e, t) {
return {
type: t.entering ? "openTag" : "closeTag",
tagName: "del"
}
},
item: function(e, t) {
var n = t.entering,
r = e.listData,
o = r.checked,
i = r.task;
if (n) {
var s = {
type: "openTag",
tagName: "li",
outerNewLine: !0
};
return i ? [s, {
type: "openTag",
tagName: "input",
selfClose: !0,
attributes: _c(_c({}, o && {
checked: ""
}), {
disabled: "",
type: "checkbox"
})
}, {
type: "text",
content: " "
}] : s
}
return {
type: "closeTag",
tagName: "li",
outerNewLine: !0
}
},
table: function(e, t) {
return {
type: t.entering ? "openTag" : "closeTag",
tagName: "table",
outerNewLine: !0
}
},
tableHead: function(e, t) {
return {
type: t.entering ? "openTag" : "closeTag",
tagName: "thead",
outerNewLine: !0
}
},
tableBody: function(e, t) {
return {
type: t.entering ? "openTag" : "closeTag",
tagName: "tbody",
outerNewLine: !0
}
},
tableRow: function(e, t) {
if (t.entering) return {
type: "openTag",
tagName: "tr",
outerNewLine: !0
};
var n = [];
if (e.lastChild)
for (var r = e.parent.parent.columns.length, o = e.lastChild.endIdx + 1; o < r; o += 1) n.push({
type: "openTag",
tagName: "td",
outerNewLine: !0
}, {
type: "closeTag",
tagName: "td",
outerNewLine: !0
});
return n.push({
type: "closeTag",
tagName: "tr",
outerNewLine: !0
}), n
},
tableCell: function(e, t) {
var n = t.entering;
if (e.ignored) return {
type: "text",
content: ""
};
var r = e.parent.parent,
o = "tableHead" === r.type ? "th" : "td",
i = r.parent.columns[e.startIdx],
s = (null == i ? void 0 : i.align) ? {
align: i.align
} : null;
return n ? _c({
type: "openTag",
tagName: o,
outerNewLine: !0
}, s && {
attributes: s
}) : {
type: "closeTag",
tagName: o,
outerNewLine: !0
}
}
},
Kp = {
softbreak: "\n",
gfm: !1,
tagFilter: !1,
nodeId: !1
};
function Zp(e) {
for (var t = [], n = e.walker(), r = null; r = n.next();) {
var o = r.node;
"text" === o.type && t.push(o.literal)
}
return t.join("")
}
var Xp = function() {
function e(e) {
this.buffer = [], this.options = _c(_c({}, Kp), e), this.convertors = this.createConvertors(), delete this.options.convertors
}
return e.prototype.createConvertors = function() {
var e = _c({}, Jp);
if (this.options.gfm && (e = _c(_c({}, e), Gp)), this.options.convertors) {
var t = this.options.convertors,
n = Object.keys(t),
r = _c(_c({}, Jp), Gp);
n.forEach((function(n) {
var o = e[n],
i = t[n],
s = -1 === Object.keys(r).indexOf(n) ? n.toLowerCase() : n;
e[s] = o ? function(e, t, n) {
return t.origin = function() {
return o(e, t, n)
}, i(e, t)
} : i
}))
}
return e
}, e.prototype.getConvertors = function() {
return this.convertors
}, e.prototype.getOptions = function() {
return this.options
}, e.prototype.render = function(e) {
var t = this;
this.buffer = [];
for (var n = e.walker(), r = null, o = function() {
var e = r.node,
o = r.entering,
s = i.convertors[e.type];
if (!s) return "continue";
var a = !1,
l = {
entering: o,
leaf: !ju(e),
options: i.options,
getChildrenText: Zp,
skipChildren: function() {
a = !0
}
},
c = cd(e) || function(e) {
return "customInline" === e.type
}(e) ? s(e, l, i.convertors) : s(e, l);
c && ((Array.isArray(c) ? c : [c]).forEach((function(n, r) {
"openTag" === n.type && t.options.nodeId && 0 === r && (n.attributes || (n.attributes = {}), n.attributes["data-nodeid"] = String(e.id)), t.renderHTMLNode(n)
})), a && (n.resumeAt(e, !1), n.next()))
}, i = this; r = n.next();) o();
return this.addNewLine(), this.buffer.join("")
}, e.prototype.renderHTMLNode = function(e) {
switch (e.type) {
case "openTag":
case "closeTag":
this.renderElementNode(e);
break;
case "text":
this.renderTextNode(e);
break;
case "html":
this.renderRawHtmlNode(e)
}
}, e.prototype.generateOpenTagString = function(e) {
var t = this,
n = e.tagName,
r = e.classNames,
o = e.attributes;
this.buffer.push("<" + n), r && r.length > 0 && this.buffer.push(' class="' + r.join(" ") + '"'), o && Object.keys(o).forEach((function(e) {
var n = o[e];
t.buffer.push(" " + e + '="' + n + '"')
})), e.selfClose && this.buffer.push(" /"), this.buffer.push(">")
}, e.prototype.generateCloseTagString = function(e) {
var t = e.tagName;
this.buffer.push("" + t + ">")
}, e.prototype.addNewLine = function() {
this.buffer.length && "\n" !== xd(xd(this.buffer)) && this.buffer.push("\n")
}, e.prototype.addOuterNewLine = function(e) {
e.outerNewLine && this.addNewLine()
}, e.prototype.addInnerNewLine = function(e) {
e.innerNewLine && this.addNewLine()
}, e.prototype.renderTextNode = function(e) {
this.buffer.push(Hu(e.content))
}, e.prototype.renderRawHtmlNode = function(e) {
this.addOuterNewLine(e), this.buffer.push(e.content), this.addOuterNewLine(e)
}, e.prototype.renderElementNode = function(e) {
"openTag" === e.type ? (this.addOuterNewLine(e), this.generateOpenTagString(e), e.selfClose ? this.addOuterNewLine(e) : this.addInnerNewLine(e)) : (this.addInnerNewLine(e), this.generateCloseTagString(e), this.addOuterNewLine(e))
}, e
}(),
Qp = n(368),
Yp = n.n(Qp),
eh = ["iframe", "embed"],
th = [];
function nh(e) {
Ue(eh, e) && th.push(e.toLowerCase())
}
function rh(e, t) {
return Yp().sanitize(e, o({
ADD_TAGS: th,
ADD_ATTR: ["rel", "target", "hreflang", "type"],
FORBID_TAGS: ["input", "script", "textarea", "form", "button", "select", "meta", "style", "link", "title", "object", "base"]
}, t))
}
function oh(e, t) {
return e.literal.replace(new RegExp("(<\\s*" + t + "[^>]*>)|(" + t + "\\s*[>])", "ig"), "").trim()
}
function ih(e) {
var t = (e = e.match(ga)[0]).match(new RegExp(ha, "g"));
return t ? t.reduce((function(e, t) {
var n = t.trim().split("="),
r = n[0],
o = n.slice(1);
return o.length && (e[r] = o.join("=").replace(/'|"/g, "").trim()), e
}), {}) : {}
}
function sh(e) {
return vi()(e.attributes).reduce((function(e, t) {
return e[t.nodeName] = t.nodeValue, e
}), {})
}
function ah(e, t, n, r) {
var o = r.getToDOMNode(t)(e),
i = n(o.outerHTML),
s = document.createElement("div");
return s.innerHTML = i, {
dom: o = s.firstChild,
htmlAttrs: sh(o)
}
}
var lh = {
htmlBlock: function(e, t, n) {
return {
atom: !0,
content: "block+",
group: "block",
attrs: {
htmlAttrs: {
default: {}
},
childrenHTML: {
default: ""
},
htmlBlock: {
default: !0
}
},
parseDOM: [{
tag: e,
getAttrs: function(e) {
return {
htmlAttrs: sh(e),
childrenHTML: e.innerHTML
}
}
}],
toDOM: function(r) {
var o = ah(r, e, t, n),
s = o.dom,
a = o.htmlAttrs;
return a.class = a.class ? a.class + " html-block" : "html-block", i([e, a], vi()(s.childNodes))
}
}
},
htmlInline: function(e, t, n) {
return {
attrs: {
htmlAttrs: {
default: {}
},
htmlInline: {
default: !0
}
},
parseDOM: [{
tag: e,
getAttrs: function(e) {
return {
htmlAttrs: sh(e)
}
}
}],
toDOM: function(r) {
var o = ah(r, e, t, n).htmlAttrs;
return [e, o, 0]
}
}
}
};
var ch = /^\s*<\s*\//,
uh = {
paragraph: function(e, t) {
var n = t.entering,
r = t.origin;
return t.options.nodeId ? {
type: n ? "openTag" : "closeTag",
outerNewLine: !0,
tagName: "p"
} : r()
},
softbreak: function(e) {
return {
type: "html",
content: e.prev && "htmlInline" === e.prev.type && /
/.test(e.prev.literal) ? "\n" : "
\n"
}
},
item: function(e, t) {
if (t.entering) {
var n = {},
r = [];
return e.listData.task && (n["data-task"] = "", r.push("task-list-item"), e.listData.checked && (r.push("checked"), n["data-task-checked"] = "")), {
type: "openTag",
tagName: "li",
classNames: r,
attributes: n,
outerNewLine: !0
}
}
return {
type: "closeTag",
tagName: "li",
outerNewLine: !0
}
},
code: function(e) {
return [{
type: "openTag",
tagName: "code",
attributes: {
"data-backticks": String(e.tickCount)
}
}, {
type: "text",
content: e.literal
}, {
type: "closeTag",
tagName: "code"
}]
},
codeBlock: function(e) {
var t = e,
n = t.fenceLength,
r = t.info,
o = r ? r.split(/\s+/) : [],
i = [],
s = {};
if (n > 3 && (s["data-backticks"] = n), o.length > 0 && o[0].length > 0) {
var a = o[0];
i.push("lang-" + a), s["data-language"] = a
}
return [{
type: "openTag",
tagName: "pre",
classNames: i
}, {
type: "openTag",
tagName: "code",
attributes: s
}, {
type: "text",
content: e.literal
}, {
type: "closeTag",
tagName: "code"
}, {
type: "closeTag",
tagName: "pre"
}]
},
customInline: function(e, t) {
var n = t.origin,
r = t.entering,
o = t.skipChildren,
i = e.info;
return -1 !== i.indexOf("widget") && r ? (o(), [{
type: "openTag",
tagName: "span",
classNames: ["tui-widget"]
}, {
type: "html",
content: Ys(i, oa(e)).outerHTML
}, {
type: "closeTag",
tagName: "span"
}]) : n()
}
};
function dh(e, t) {
var n = o({}, uh);
return e && (n.link = function(t, n) {
var r = n.entering,
i = (0, n.origin)();
return r && (i.attributes = o(o({}, i.attributes), e)), i
}), t && Object.keys(t).forEach((function(e) {
var r = n[e],
i = t[e];
r && Ga()(i) ? n[e] = function(e, t) {
var n = o({}, t);
return n.origin = function() {
return r(e, t)
}, i(e, n)
} : Ue(["htmlBlock", "htmlInline"], e) && !Ga()(i) ? n[e] = function(e, t) {
var n = e.literal.match(ga);
if (n) {
var r = n[0],
s = n[1],
a = n[3],
l = (s || a).toLowerCase(),
c = i[l],
u = oh(e, l);
if (c) {
var d = o({}, e);
return d.attrs = ih(r), d.childrenHTML = u, d.type = l, t.entering = !ch.test(e.literal), c(d, t)
}
}
return t.origin()
} : n[e] = i
})), n
}
var ph = ["list", "item", "blockQuote"],
hh = ["UL", "OL", "BLOCKQUOTE"];
function fh(e, t) {
var n, r = e.child(t);
return !r.childCount || 1 === r.childCount && !(null === (n = r.firstChild.text) || void 0 === n ? void 0 : n.trim())
}
function mh(e, t, n) {
var r = Is(t) - 1,
o = Rs(t) - 1,
i = n[r].getBoundingClientRect(),
s = n[o].offsetTop - n[r].offsetTop + n[o].clientHeight;
return {
height: s <= 0 ? n[r].clientHeight : s + gh(e, n, Math.min(o + 1, e.childCount - 1)),
rect: i
}
}
function gh(e, t, n) {
for (var r = e.childCount - 1, o = 0; n <= r && fh(e, n);) o += t[n].clientHeight, n += 1;
return o
}
function vh(e, t) {
for (var n = 0; e && e !== t && (Ue(hh, e.tagName) || (n += e.offsetTop), e.offsetParent !== t.offsetParent);) e = e.parentElement;
return n
}
function yh(e, t, n) {
return e && t > n + e.offsetTop ? yh(e.nextElementSibling, t, n) || e : null
}
function bh(e, t) {
for (var n = e.querySelector('[data-nodeid="' + t.id + '"]'); !n || Fs(t);) t = t.parent, n = e.querySelector('[data-nodeid="' + t.id + '"]');
return function(e) {
var t = e.mdNode,
n = e.el;
for (;
(Ue(ph, t.type) || "table" === t.type) && t.firstChild;) t = t.firstChild, n = n.firstElementChild;
return {
mdNode: t,
el: n
}
}({
mdNode: t,
el: n
})
}
var wh = {};
function kh(e) {
e && (delete wh[Number(e.getAttribute("data-nodeid"))], vi()(e.children).forEach((function(e) {
kh(e)
})))
}
function xh(e, t, n) {
var r, o = wh[r = n] && wh[r].height,
i = function(e) {
return wh[e] && wh[e].offsetTop
}(n),
s = o || e.clientHeight,
a = i || vh(e, t) || e.offsetTop;
return o || function(e, t) {
wh[e] = wh[e] || {}, wh[e].height = t
}(n, s), i || function(e, t) {
wh[e] = wh[e] || {}, wh[e].offsetTop = t
}(n, a), {
nodeHeight: s,
offsetTop: a
}
}
var Ch = xa("md-preview-highlight");
var Th = function() {
function e(e, t) {
var n = document.createElement("div");
this.el = n, this.eventEmitter = e, this.isViewer = !!t.isViewer, this.el.className = xa("md-preview");
var r = t.linkAttributes,
o = t.customHTMLRenderer,
i = t.sanitizer,
s = t.highlight,
a = void 0 !== s && s;
this.renderer = new Xp({
gfm: !0,
nodeId: !0,
convertors: dh(r, o)
}), this.cursorNodeId = null, this.sanitizer = i, this.initEvent(a), this.initContentSection(), this.isViewer && (this.previewContent.style.overflowWrap = "break-word")
}
return e.prototype.initContentSection = function() {
this.previewContent = Ea('
<\/p>/gi, "