From 1ae0b5509a1d1658aaf98c7a940f2ab98405db5f Mon Sep 17 00:00:00 2001 From: ben-jaynes <1btjaynes@gmail.com> Date: Mon, 5 Oct 2026 09:03:01 -0700 Subject: [PATCH] vault backup: 2026-10-05 09:03:01 --- .../plugins/obsidian-latex-suite/data.json | 55 ++++ .../plugins/obsidian-latex-suite/main.js | 300 ++++++++++++------ .../obsidian-latex-suite/manifest.json | 6 +- .../plugins/obsidian-latex-suite/styles.css | 191 ++--------- .../Chapter 1.2 Notes.md | 15 +- 5 files changed, 297 insertions(+), 270 deletions(-) create mode 100644 .obsidian/plugins/obsidian-latex-suite/data.json diff --git a/.obsidian/plugins/obsidian-latex-suite/data.json b/.obsidian/plugins/obsidian-latex-suite/data.json new file mode 100644 index 0000000..d35a647 --- /dev/null +++ b/.obsidian/plugins/obsidian-latex-suite/data.json @@ -0,0 +1,55 @@ +{ + "snippets": "export default [\n // Math mode\n\t{trigger: \"mk\", replacement: \"$$0$\", options: \"tA\"},\n {trigger: \"dm\", replacement: \"$$\\n\\t$0\\n$$\", options: \"tAw\"},\n\t{trigger: /(?<=\\S.*)dm/, replacement: \"\\n$$\\n\\t$0\\n$$\", options: \"tAw\", priority: 1},\n\n\t{trigger: /([^\\\\])beg/, replacement: \"[[0]]\\\\begin{$0}\\n\\t$1\\n\\\\end{$0}\", options: \"MA\"},\n\t{trigger: /([^\\\\])beg/, replacement: \"[[0]]\\\\begin{$0} $1 \\\\end{$0}\", options: \"nA\"},\n\n // Dashes\n\t// {trigger: \"--\", replacement: \"–\", options: \"tA\"},\n\t// {trigger: \"–-\", replacement: \"—\", options: \"tA\"},\n\t// {trigger: \"—-\", replacement: \"---\", options: \"tA\"},\n\n // Greek letters\n\t{trigger: \"@a\", replacement: \"\\\\alpha\", options: \"mA\"},\n\t{trigger: \"@b\", replacement: \"\\\\beta\", options: \"mA\"},\n\t{trigger: \"@g\", replacement: \"\\\\gamma\", options: \"mA\"},\n\t{trigger: \"@G\", replacement: \"\\\\Gamma\", options: \"mA\"},\n\t{trigger: \"@d\", replacement: \"\\\\delta\", options: \"mA\"},\n\t{trigger: \"@D\", replacement: \"\\\\Delta\", options: \"mA\"},\n\t{trigger: \"@e\", replacement: \"\\\\epsilon\", options: \"mA\"},\n\t{trigger: \":e\", replacement: \"\\\\varepsilon\", options: \"mA\"},\n\t{trigger: \"@z\", replacement: \"\\\\zeta\", options: \"mA\"},\n\t{trigger: \"@t\", replacement: \"\\\\theta\", options: \"mA\"},\n\t{trigger: \"@T\", replacement: \"\\\\Theta\", options: \"mA\"},\n\t{trigger: \":t\", replacement: \"\\\\vartheta\", options: \"mA\"},\n\t{trigger: \"@i\", replacement: \"\\\\iota\", options: \"mA\"},\n\t{trigger: \"@k\", replacement: \"\\\\kappa\", options: \"mA\"},\n\t{trigger: \"@l\", replacement: \"\\\\lambda\", options: \"mA\"},\n\t{trigger: \"@L\", replacement: \"\\\\Lambda\", options: \"mA\"},\n\t{trigger: \"@s\", replacement: \"\\\\sigma\", options: \"mA\"},\n\t{trigger: \"@S\", replacement: \"\\\\Sigma\", options: \"mA\"},\n\t{trigger: \"@u\", replacement: \"\\\\upsilon\", options: \"mA\"},\n\t{trigger: \"@U\", replacement: \"\\\\Upsilon\", options: \"mA\"},\n\t{trigger: \"@o\", replacement: \"\\\\omega\", options: \"mA\"},\n\t{trigger: \"@O\", replacement: \"\\\\Omega\", options: \"mA\"},\n\t{trigger: \"ome\", replacement: \"\\\\omega\", options: \"mA\"},\n\t{trigger: \"Ome\", replacement: \"\\\\Omega\", options: \"mA\"},\n\n // Text environment\n {trigger: \"text\", replacement: \"\\\\text{$0}$1\", options: \"mA\"},\n {trigger: \"\\\"\", replacement: \"\\\\text{$0}$1\", options: \"mA\"},\n\n // Basic operations\n {trigger: \"sr\", replacement: \"^{2}\", options: \"mA\"},\n\t{trigger: \"cb\", replacement: \"^{3}\", options: \"mA\"},\n\t{trigger: \"rd\", replacement: \"^{$0}$1\", options: \"mA\"},\n\t{trigger: \"_\", replacement: \"_{$0}$1\", options: \"mA\"},\n\t{trigger: \"sts\", replacement: \"_\\\\text{$0}\", options: \"mA\"},\n\t{trigger: \"sq\", replacement: \"\\\\sqrt{ $0 }$1\", options: \"mA\"},\n\t{trigger: \"//\", replacement: \"\\\\frac{$0}{$1}$2\", options: \"mA\"},\n\t{trigger: \"ee\", replacement: \"e^{ $0 }$1\", options: \"mA\"},\n {trigger: \"invs\", replacement: \"^{-1}\", options: \"mA\"},\n\n {trigger: /([^\\\\])(exp|log|ln)/, replacement: \"[[0]]\\\\[[1]]\", options: \"rmA\"},\n {trigger: \"conj\", replacement: \"^{*}\", options: \"mA\"},\n {trigger: \"Re\", replacement: \"\\\\mathrm{Re}\", options: \"mA\"},\n\t{trigger: \"Im\", replacement: \"\\\\mathrm{Im}\", options: \"mA\"},\n {trigger: \"bf\", replacement: \"\\\\mathbf{$0}\", options: \"mA\"},\n\t{trigger: \"rm\", replacement: \"\\\\mathrm{$0}$1\", options: \"mA\"},\n\n // Linear algebra\n {trigger: /([^\\\\])(det)/, replacement: \"[[0]]\\\\[[1]]\", options: \"rmA\"},\n {trigger: \"trace\", replacement: \"\\\\mathrm{Tr}\", options: \"mA\"},\n\n // More operations\n\t{trigger: \"([a-zA-Z])hat\", replacement: \"\\\\hat{[[0]]}\", options: \"rmA\"},\n {trigger: \"([a-zA-Z])bar\", replacement: \"\\\\bar{[[0]]}\", options: \"rmA\"},\n\t{trigger: \"([a-zA-Z])dot\", replacement: \"\\\\dot{[[0]]}\", options: \"rmA\", priority: -1},\n\t{trigger: \"([a-zA-Z])ddot\", replacement: \"\\\\ddot{[[0]]}\", options: \"rmA\", priority: 1},\n\t{trigger: \"([a-zA-Z])tilde\", replacement: \"\\\\tilde{[[0]]}\", options: \"rmA\"},\n\t{trigger: \"([a-zA-Z])und\", replacement: \"\\\\underline{[[0]]}\", options: \"rmA\"},\n\t{trigger: \"([a-zA-Z])vec\", replacement: \"\\\\vec{[[0]]}\", options: \"rmA\"},\n {trigger: \"([a-zA-Z]),\\\\.\", replacement: \"\\\\mathbf{[[0]]}\", options: \"rmA\"},\n\t{trigger: \"([a-zA-Z])\\\\.,\", replacement: \"\\\\mathbf{[[0]]}\", options: \"rmA\"},\n\t{trigger: \"\\\\\\\\(${GREEK}),\\\\.\", replacement: \"\\\\boldsymbol{\\\\[[0]]}\", options: \"rmA\"},\n\t{trigger: \"\\\\\\\\(${GREEK})\\\\.,\", replacement: \"\\\\boldsymbol{\\\\[[0]]}\", options: \"rmA\"},\n\n\t{trigger: \"hat\", replacement: \"\\\\hat{$0}$1\", options: \"mA\"},\n {trigger: \"bar\", replacement: \"\\\\bar{$0}$1\", options: \"mA\"},\n\t{trigger: \"dot\", replacement: \"\\\\dot{$0}$1\", options: \"mA\", priority: -1},\n\t{trigger: \"ddot\", replacement: \"\\\\ddot{$0}$1\", options: \"mA\"},\n\t{trigger: \"cdot\", replacement: \"\\\\cdot\", options: \"mA\"},\n\t{trigger: \"tilde\", replacement: \"\\\\tilde{$0}$1\", options: \"mA\"},\n\t{trigger: \"und\", replacement: \"\\\\underline{$0}$1\", options: \"mA\"},\n\t{trigger: \"vec\", replacement: \"\\\\vec{$0}$1\", options: \"mA\"},\n {\n trigger: \"pmod\",\n replacement: \"\\\\pmod{${0:n}}$1\",\n options: \"mA\",\n description: \"Parenthesized modulo (\\\\pmod{n})\",\n },\n\n // Auto letter subscript\n\t//\n\t// x3 -> x_{3}, \\alpha3 -> \\alpha_{3}\n\t{\n\t trigger: \"(\\\\\\\\${GREEK}|[A-Za-z])(\\\\d)\",\n\t replacement: \"[[0]]_{[[1]]}\",\n\t options: \"rmA\",\n\t priority: -1,\n\t},\n\t// x_{3}4 -> x_{34}, \\alpha_{3}4 -> \\alpha_{34}\n\t{\n\t trigger: \"(\\\\\\\\${GREEK}|[A-Za-z])_{(\\\\d+)}(\\\\d)\",\n\t replacement: \"[[0]]_{[[1]][[2]]}\",\n\t options: \"rmA\",\n\t priority: -1,\n\t},\n\n\t// \\dot{x}3 -> \\dot{x}_{3}, \\dot{\\alpha}3 -> \\dot{\\alpha}_{3}\n\t{\n\t\ttrigger: \"\\\\\\\\(${ACCENT})\\\\{(\\\\\\\\${GREEK}|[A-Za-z])\\\\}(\\\\d)\",\n\t replacement: \"\\\\[[0]]{[[1]]}_{[[2]]}\",\n\t options: \"rmA\",\n\t priority: -1,\n\t},\n\t\n\t// \\dot{x}_{3}4 -> \\dot{x}_{34}\n\t{\n\t\ttrigger: \"\\\\\\\\(${ACCENT})\\\\{(\\\\\\\\${GREEK}|[A-Za-z])\\\\}_\\\\{(\\\\d+)\\\\}(\\\\d)\",\n\t replacement: \"\\\\[[0]]{[[1]]}_{[[2]][[3]]}\",\n\t options: \"rmA\",\n\t priority: -1,\n\t},\n\t// \\dot{\\vec{a}}3 -> \\dot{\\vec{a}}_{3}\n\t{\n\t trigger: \"\\\\\\\\(${ACCENT})\\\\{\\\\\\\\(${ACCENT})\\\\{(\\\\\\\\${GREEK}|[A-Za-z])\\\\}\\\\}(\\\\d)\",\n\t replacement: \"\\\\[[0]]{\\\\[[1]]{[[2]]}}_{[[3]]}\",\n\t options: \"rmA\",\n\t priority: -1,\n\t},\n\t// \\dot{\\vec{a}}_{3}4 -> \\dot{\\vec{a}}_{34}\n\t{\n\t\ttrigger: \"\\\\\\\\(${ACCENT})\\\\{\\\\\\\\(${ACCENT})\\\\{(\\\\\\\\${GREEK}|[A-Za-z])\\\\}\\\\}_\\\\{(\\\\d+)\\\\}(\\\\d)\",\n\t replacement: \"\\\\[[0]]{\\\\[[1]]{[[2]]}}_{[[3]][[4]]}\",\n\t options: \"rmA\",\n\t priority: -1,\n\t},\n\n {trigger: \"xnn\", replacement: \"x_{n}\", options: \"mA\"},\n\t{trigger: \"\\\\xii\", replacement: \"x_{i}\", options: \"mA\", priority: 1},\n\t{trigger: \"xjj\", replacement: \"x_{j}\", options: \"mA\"},\n\t{trigger: \"xp1\", replacement: \"x_{n+1}\", options: \"mA\"},\n\t{trigger: \"ynn\", replacement: \"y_{n}\", options: \"mA\"},\n\t{trigger: \"yii\", replacement: \"y_{i}\", options: \"mA\"},\n\t{trigger: \"yjj\", replacement: \"y_{j}\", options: \"mA\"},\n\n // Symbols\n {trigger: \"ooo\", replacement: \"\\\\infty\", options: \"mA\"},\n\t{trigger: \"sum\", replacement: \"\\\\sum\", options: \"mA\"},\n\t{trigger: \"prod\", replacement: \"\\\\prod\", options: \"mA\"},\n\t{trigger: \"\\\\sum\", replacement: \"\\\\sum_{${0:i}=${1:1}}^{${2:N}} $3\", options: \"m\"},\n\t{trigger: \"\\\\prod\", replacement: \"\\\\prod_{${0:i}=${1:1}}^{${2:N}} $3\", options: \"m\"},\n {trigger: \"lim\", replacement: \"\\\\lim_{ ${0:n} \\\\to ${1:\\\\infty} } $2\", options: \"mA\"},\n {trigger: \"+-\", replacement: \"\\\\pm\", options: \"mA\"},\n\t{trigger: \"-+\", replacement: \"\\\\mp\", options: \"mA\"},\n {trigger: \"...\", replacement: \"\\\\dots\", options: \"mA\"},\n {trigger: \"nabl\", replacement: \"\\\\nabla\", options: \"mA\"},\n // The operator nabla is also called del, but using \"del\" as a trigger conflicts with the greek letter delta.\n\t// {trigger: \"del\", replacement: \"\\\\nabla\", options: \"mA\"},\n\t{trigger: \"xx\", replacement: \"\\\\times\", options: \"mA\"},\n {trigger: \"**\", replacement: \"\\\\cdot\", options: \"mA\"},\n {trigger: \"para\", replacement: \"\\\\parallel\", options: \"mA\"},\n\n\t{trigger: \"===\", replacement: \"\\\\equiv\", options: \"mA\"},\n {trigger: \"!=\", replacement: \"\\\\neq\", options: \"mA\"},\n\t{trigger: \">=\", replacement: \"\\\\geq\", options: \"mA\"},\n\t{trigger: \"<=\", replacement: \"\\\\leq\", options: \"mA\"},\n\t{trigger: \">>\", replacement: \"\\\\gg\", options: \"mA\"},\n\t{trigger: \"<<\", replacement: \"\\\\ll\", options: \"mA\"},\n\t{trigger: \"simm\", replacement: \"\\\\sim\", options: \"mA\"},\n\t{trigger: \"sim=\", replacement: \"\\\\simeq\", options: \"mA\"},\n {trigger: \"prop\", replacement: \"\\\\propto\", options: \"mA\"},\n\n\n {trigger: \"<->\", replacement: \"\\\\leftrightarrow \", options: \"mA\"},\n\t{trigger: \"->\", replacement: \"\\\\to\", options: \"mA\"},\n\t{trigger: \"!>\", replacement: \"\\\\mapsto\", options: \"mA\"},\n {trigger: \"=>\", replacement: \"\\\\implies\", options: \"mA\"},\n\t{trigger: \"=<\", replacement: \"\\\\impliedby\", options: \"mA\"},\n\n\t{trigger: \"and\", replacement: \"\\\\cap\", options: \"mA\"},\n\t{trigger: \"orr\", replacement: \"\\\\cup\", options: \"mA\"},\n\t{trigger: \"inn\", replacement: \"\\\\in\", options: \"mA\"},\n\t{trigger: \"notin\", replacement: \"\\\\not\\\\in\", options: \"mA\"},\n {trigger: \"\\\\\\\\\\\\\", replacement: \"\\\\setminus\", options: \"mA\"},\n {trigger: \"sub=\", replacement: \"\\\\subseteq\", options: \"mA\"},\n {trigger: \"sup=\", replacement: \"\\\\supseteq\", options: \"mA\"},\n\t{trigger: \"eset\", replacement: \"\\\\emptyset\", options: \"mA\"},\n\t{trigger: \"set\", replacement: \"\\\\{ $0 \\\\}$1\", options: \"mA\"},\n\t{trigger: \"e\\\\xi sts\", replacement: \"\\\\exists\", options: \"mA\", priority: 1},\n\n\t{trigger: \"LL\", replacement: \"\\\\mathcal{L}\", options: \"mA\"},\n\t{trigger: \"HH\", replacement: \"\\\\mathcal{H}\", options: \"mA\"},\n\t{trigger: \"CC\", replacement: \"\\\\mathbb{C}\", options: \"mA\"},\n\t{trigger: \"RR\", replacement: \"\\\\mathbb{R}\", options: \"mA\"},\n\t{trigger: \"ZZ\", replacement: \"\\\\mathbb{Z}\", options: \"mA\"},\n\t{trigger: \"NN\", replacement: \"\\\\mathbb{N}\", options: \"mA\"},\n\n // Handle spaces and backslashes\n\n // Snippet variables can be used as shortcuts when writing snippets.\n // For example, ${GREEK} below is shorthand for \"alpha|beta|gamma|Gamma|delta|...\"\n // You can edit snippet variables under the Advanced snippet settings section.\n\n\t{trigger: \"([^\\\\\\\\])(${GREEK})\", replacement: \"[[0]]\\\\[[1]]\", options: \"rmA\", description: \"Add backslash before Greek letters\"},\n\t{trigger: \"([^\\\\\\\\])(${SYMBOL})\", replacement: \"[[0]]\\\\[[1]]\", options: \"rmA\", description: \"Add backslash before symbols\"},\n\n // Insert space after Greek letters and symbols\n\t{trigger: \"\\\\\\\\(${GREEK}|${SYMBOL}|${MORE_SYMBOLS})([A-Za-z])\", replacement: \"\\\\[[0]] [[1]]\", options: \"rmA\"},\n\t{trigger: \"\\\\\\\\(${GREEK}|${SYMBOL}) sr\", replacement: \"\\\\[[0]]^{2}\", options: \"rmA\"},\n\t{trigger: \"\\\\\\\\(${GREEK}|${SYMBOL}) cb\", replacement: \"\\\\[[0]]^{3}\", options: \"rmA\"},\n\t{trigger: \"\\\\\\\\(${GREEK}|${SYMBOL}) rd\", replacement: \"\\\\[[0]]^{$0}$1\", options: \"rmA\"},\n\t{trigger: \"\\\\\\\\(${GREEK}) hat\", replacement: \"\\\\hat{\\\\[[0]]}\", options: \"rmA\"},\n\t{trigger: \"\\\\\\\\(${GREEK}) dot\", replacement: \"\\\\dot{\\\\[[0]]}\", options: \"rmA\"},\n\t{trigger: \"\\\\\\\\(${GREEK}) bar\", replacement: \"\\\\bar{\\\\[[0]]}\", options: \"rmA\"},\n\t{trigger: \"\\\\\\\\(${GREEK}) vec\", replacement: \"\\\\vec{\\\\[[0]]}\", options: \"rmA\"},\n\t{trigger: \"\\\\\\\\(${GREEK}) tilde\", replacement: \"\\\\tilde{\\\\[[0]]}\", options: \"rmA\"},\n\t{trigger: \"\\\\\\\\(${GREEK}) und\", replacement: \"\\\\underline{\\\\[[0]]}\", options: \"rmA\"},\n\n\n // Derivatives and integrals\n {trigger: \"par\", replacement: \"\\\\frac{ \\\\partial ${0:y} }{ \\\\partial ${1:x} } $2\", options: \"m\"},\n {trigger: /pa([A-Za-z])([A-Za-z])/, replacement: \"\\\\frac{ \\\\partial [[0]] }{ \\\\partial [[1]] } \", options: \"rm\"},\n {trigger: \"ddt\", replacement: \"\\\\frac{d}{dt} \", options: \"mA\"},\n\n {trigger: /([^\\\\])int/, replacement: \"[[0]]\\\\int\", options: \"mA\", priority: -1},\n {trigger: \"\\\\int\", replacement: \"\\\\int $0 \\\\, d${1:x} $2\", options: \"m\"},\n {trigger: \"dint\", replacement: \"\\\\int_{${0:0}}^{${1:1}} $2 \\\\, d${3:x} $4\", options: \"mA\"},\n {trigger: \"oint\", replacement: \"\\\\oint\", options: \"mA\"},\n\t{trigger: \"iint\", replacement: \"\\\\iint\", options: \"mA\"},\n {trigger: \"iiint\", replacement: \"\\\\iiint\", options: \"mA\"},\n {trigger: \"oinf\", replacement: \"\\\\int_{0}^{\\\\infty} $0 \\\\, d${1:x} $2\", options: \"mA\"},\n\t{trigger: \"infi\", replacement: \"\\\\int_{-\\\\infty}^{\\\\infty} $0 \\\\, d${1:x} $2\", options: \"mA\"},\n\n\n // Trigonometry\n {trigger: /([^\\\\])(arcsin|sin|arccos|cos|arctan|tan|csc|sec|cot)/, replacement: \"[[0]]\\\\[[1]]\", options: \"rmA\", description: \"Add backslash before trig funcs\"},\n\n {trigger: /\\\\(arcsin|sin|arccos|cos|arctan|tan|csc|sec|cot)([A-Za-gi-z])/,\n replacement: \"\\\\[[0]] [[1]]\", options: \"rmA\",\n description: \"Add space after trig funcs. Skips letter h to allow sinh, cosh, etc.\"},\n\n {trigger: /\\\\(sinh|cosh|tanh|coth)([A-Za-z])/,\n replacement: \"\\\\[[0]] [[1]]\", options: \"rmA\",\n description: \"Add space after hyperbolic trig funcs\"},\n\n {\n trigger: /(arccsc|arcsec|arccot)/,\n replacement: \"\\\\operatorname{[[0]]}$0\",\n options: \"mA\",\n description: \"Inverse trig functions, Are not built-in MathJax functions\",\n\t\tpriority: 1,\n },\n\n // Visual operations\n\t{trigger: \"U\", replacement: \"\\\\underbrace{ ${VISUAL} }_{ $0 }\", options: \"mA\"},\n\t{trigger: \"O\", replacement: \"\\\\overbrace{ ${VISUAL} }^{ $0 }\", options: \"mA\"},\n\t{trigger: \"B\", replacement: \"\\\\underset{ $0 }{ ${VISUAL} }\", options: \"mA\"},\n\t{trigger: \"C\", replacement: \"\\\\cancel{ ${VISUAL} }\", options: \"mA\"},\n\t{trigger: \"K\", replacement: \"\\\\cancelto{ $0 }{ ${VISUAL} }\", options: \"mA\"},\n\t{trigger: \"S\", replacement: \"\\\\sqrt{ ${VISUAL} }\", options: \"mA\"},\n\n\n // Physics\n\t{trigger: \"kbt\", replacement: \"k_{B}T\", options: \"mA\"},\n\t{trigger: \"msun\", replacement: \"M_{\\\\odot}\", options: \"mA\"},\n\n // Quantum mechanics\n {trigger: \"dag\", replacement: \"^{\\\\dagger}\", options: \"mA\"},\n\t{trigger: \"o+\", replacement: \"\\\\oplus \", options: \"mA\"},\n\t{trigger: \"ox\", replacement: \"\\\\otimes \", options: \"mA\"},\n {trigger: \"bra\", replacement: \"\\\\bra{$0} $1\", options: \"mA\"},\n\t{trigger: \"ket\", replacement: \"\\\\ket{$0} $1\", options: \"mA\"},\n\t{trigger: \"brk\", replacement: \"\\\\braket{ $0 | $1 } $2\", options: \"mA\"},\n {trigger: \"outer\", replacement: \"\\\\ket{${0:\\\\psi}} \\\\bra{${0:\\\\psi}} $1\", options: \"mA\"},\n\n // Chemistry\n\t{trigger: \"pu\", replacement: \"\\\\pu{ $0 }\", options: \"mA\"},\n\t{trigger: \"cee\", replacement: \"\\\\ce{ $0 }\", options: \"mA\"},\n\t{trigger: \"he4\", replacement: \"{}^{4}_{2}He \", options: \"mA\"},\n\t{trigger: \"he3\", replacement: \"{}^{3}_{2}He \", options: \"mA\"},\n\t{trigger: \"iso\", replacement: \"{}^{${0:4}}_{${1:2}}${2:He}\", options: \"mA\"},\n\n\n // Environments\n // Here the regex syntax [pbBvV]mat is used to match pmat, bmat, Bmat, vmat, Vmat\n {\n trigger: /([pbBvV]mat)/,\n replacement: \"\\\\begin{[[0]]rix}\\n$0\\n\\\\end{[[0]]rix}\",\n options: \"rMA\",\n description: \"Matrix environments with new lines\",\n },\n {\n trigger: /(matrix|cases|align|array)/,\n replacement: \"\\\\begin{[[0]]}\\n$0\\n\\\\end{[[0]]}\",\n options: \"rMA\",\n description: \"Miscellaneous environments with new lines\",\n },\n {\n trigger: /([pbBvV]mat)/,\n replacement: \"\\\\begin{[[0]]rix}$0\\\\end{[[0]]rix}\",\n options: \"rnA\",\n },\n {\n trigger: /(matrix|cases|align|array)/,\n replacement: \"\\\\begin{[[0]]}$0\\\\end{[[0]]}\",\n options: \"rnA\",\n },\n {\n trigger: /(augmat)/,\n replacement: \"\\\\left[\\\\begin{array}{}$0\\\\end{array}\\\\right]\",\n options: \"rnA\",\n },\n {\n trigger: /(matrix|cases|align|array)/,\n replacement: \"\\\\begin{[[0]]}$0\\\\end{[[0]]}\",\n options: \"rnA\",\n },\n\n // Brackets\n\t{trigger: \"avg\", replacement: \"\\\\langle $0 \\\\rangle $1\", options: \"mA\"},\n\t{trigger: \"norm\", replacement: \"\\\\lvert $0 \\\\rvert $1\", options: \"mA\", priority: 1},\n\t{trigger: \"Norm\", replacement: \"\\\\lVert $0 \\\\rVert $1\", options: \"mA\", priority: 1},\n\t{trigger: \"ceil\", replacement: \"\\\\lceil $0 \\\\rceil $1\", options: \"mA\"},\n\t{trigger: \"floor\", replacement: \"\\\\lfloor $0 \\\\rfloor $1\", options: \"mA\"},\n // For the modulo operator, see the section \"More operations\" above\n\t{trigger: \"mod\", replacement: \"|$0|$1\", options: \"mA\"},\n\t{trigger: \"(\", replacement: \"(${VISUAL})\", options: \"mA\"},\n\t{trigger: \"[\", replacement: \"[${VISUAL}]\", options: \"mA\"},\n\t{trigger: \"{\", replacement: \"{${VISUAL}}\", options: \"mA\"},\n\t{trigger: \"(\", replacement: \"($0)$1\", options: \"mA\"},\n\t{trigger: \"{\", replacement: \"{$0}$1\", options: \"mA\"},\n\t{trigger: \"[\", replacement: \"[$0]$1\", options: \"mA\"},\n\t{trigger: \"lr(\", replacement: \"\\\\left( $0 \\\\right) $1\", options: \"mA\"},\n\t{trigger: \"lr{\", replacement: \"\\\\left\\\\{ $0 \\\\right\\\\} $1\", options: \"mA\"},\n\t{trigger: \"lr[\", replacement: \"\\\\left[ $0 \\\\right] $1\", options: \"mA\"},\n\t{trigger: \"lr|\", replacement: \"\\\\left| $0 \\\\right| $1\", options: \"mA\"},\n\t{trigger: \"lra\", replacement: \"\\\\left< $0 \\\\right> $1\", options: \"mA\"},\n\n\n // Misc\n\n // Automatically convert standalone letters in text to math (except a, A, I).\n // (Un-comment to enable)\n // {trigger: /([^'])\\b([B-HJ-Zb-z])\\b([\\n\\s.,?!:'])/, replacement: \"[[0]]$[[1]]$[[2]]\", options: \"tA\"},\n\n // Automatically convert Greek letters in text to math.\n // {trigger: \"(${GREEK})([\\\\n\\\\s.,?!:'])\", replacement: \"$\\\\[[0]]$[[1]]\", options: \"rtAw\"},\n\n // Automatically convert text of the form \"x=2\" and \"x=n+1\" to math.\n // {trigger: /([A-Za-z]=\\d+)([\\n\\s.,?!:'])/, replacement: \"$[[0]]$[[1]]\", options: \"rtAw\"},\n // {trigger: /([A-Za-z]=[A-Za-z][+-]\\d+)([\\n\\s.,?!:'])/, replacement: \"$[[0]]$[[1]]\", options: \"tAw\"},\n\n\n // Snippet replacements can have placeholders.\n\t{trigger: \"tayl\", replacement: \"${0:f}(${1:x} + ${2:h}) = ${0:f}(${1:x}) + ${0:f}'(${1:x})${2:h} + ${0:f}''(${1:x}) \\\\frac{${2:h}^{2}}{2!} + \\\\dots$3\", options: \"mA\", description: \"Taylor expansion\"},\n\n // Snippet replacements can also be JavaScript functions.\n // See the documentation for more information.\n\t{trigger: /iden(\\d)/, replacement: (match) => {\n\t\tconst n = match[1];\n\n\t\tlet arr = [];\n\t\tfor (let j = 0; j < n; j++) {\n\t\t\tarr[j] = [];\n\t\t\tfor (let i = 0; i < n; i++) {\n\t\t\t\tarr[j][i] = (i === j) ? 1 : 0;\n\t\t\t}\n\t\t}\n\n\t\tlet output = arr.map(el => el.join(\" & \")).join(\" \\\\\\\\\\n\");\n\t\toutput = `\\\\begin{pmatrix}\\n${output}\\n\\\\end{pmatrix}`;\n\t\treturn output;\n\t}, options: \"mA\", description: \"N x N identity matrix\"},\n\t{\n\t\ttrigger: /(?<=(?:\\n|^)[ \\t]*>*)(?\\d+[.)]|[-*+])(?[ \\t]+)(?.*)dm/,\n\t\treplacement: (m) => {\n\t\t\tconst { whitespace, text, marker } = m.groups;\n\t\t\tconst firstLine = marker + whitespace + text;\n\t\t\tconst indent = \" \".repeat(marker.length) + whitespace;\n\t\t\treturn `${firstLine}\\n${indent}$$\\n${indent}\\t$0\\n${indent}$$`;\n\t\t},\n\t\toptions: \"rtA\",\n\t\tpriority: 2,\n\t\tdescription: \"Display math when in a list\"\n\t},\n]\n", + "snippetVariables": "export default {\n\t\"${GREEK}\": \"(?:alpha|beta|gamma|Gamma|delta|Delta|epsilon|varepsilon|zeta|eta|theta|vartheta|Theta|iota|kappa|lambda|Lambda|mu|nu|xi|omicron|pi|rho|varrho|sigma|Sigma|tau|upsilon|Upsilon|phi|varphi|Phi|chi|psi|omega|Omega)\",\n\t\"${SYMBOL}\": \"(?:parallel|perp|partial|nabla|hbar|ell|infty|oplus|ominus|otimes|oslash|square|star|dagger|vee|wedge|subseteq|subset|supseteq|supset|emptyset|exists|nexists|forall|implies|impliedby|iff|setminus|neg|lor|land|bigcup|bigcap|cdot|times|simeq|approx)\",\n\t\"${MORE_SYMBOLS}\": \"(?:leq|geq|neq|gg|ll|equiv|sim|propto|rightarrow|leftarrow|Rightarrow|Leftarrow|leftrightarrow|to|mapsto|cap|cup|in|sum|prod|exp|ln|log|det|dots|vdots|ddots|pm|mp|int|iint|iiint|oint)\",\n \"${ACCENT}\": \"(?:dot|ddot|hat|bar|tilde|vec|underline|overline|mathbf|mathcal|mathrm|mathbb)\",\n}\n", + "snippetsEnabled": true, + "snippetsTrigger": "Tab", + "snippetNextTabstopTrigger": "Tab", + "snippetPreviousTabstopTrigger": "Shift-Tab", + "suppressSnippetTriggerOnIME": true, + "suppressIMEWarning": false, + "removeSnippetWhitespace": true, + "autoDelete$": true, + "loadSnippetsFromFile": false, + "loadSnippetVariablesFromFile": false, + "snippetsFileLocation": "", + "snippetVariablesFileLocation": "", + "concealEnabled": false, + "concealRevealTimeout": 0, + "colorPairedBracketsEnabled": true, + "highlightCursorBracketsEnabled": true, + "mathPreviewEnabled": true, + "mathPreviewPositionIsAbove": true, + "mathPreviewCursor": "▶", + "mathPreviewBracketHighlighting": false, + "mathPreviewLivePreviewDisplay": false, + "autofractionEnabled": true, + "autofractionSymbol": "\\frac", + "autofractionBreakingChars": "+-=\t", + "matrixShortcutsEnabled": true, + "taboutEnabled": true, + "taboutExitEquationOnlyOnEOL": true, + "taboutTrigger": "Tab", + "autoEnlargeBrackets": true, + "autoEnlargeBracketsSpace": true, + "wordDelimiters": "., +-\\n\t:;!?\\/{}[]()=~$'\"|`<>*^%#@&", + "autofractionExcludedEnvs": "[\n\t\t[\"^{\", \"}\"],\n\t\t[\"\\\\pu{\", \"}\"]\n\t]", + "matrixShortcutsEnvNames": "pmatrix, cases, align, gather, bmatrix, Bmatrix, vmatrix, Vmatrix, array, matrix", + "matrixShortcutsMacroNames": "eqalign", + "taboutClosingSymbols": "), ], \\rbrack, \\}, \\rbrace, \\rangle, \\rvert, \\rVert, \\rfloor, \\rceil, \\urcorner, }", + "autoEnlargeBracketsTriggers": "sum, int, frac, prod, bigcup, bigcap", + "forceMathLanguages": "math", + "snippetDebug": "off", + "vimEnabled": false, + "vimSelectMode": "", + "vimVisualMode": "", + "vimMatrixEnter": "o", + "snippetRecursion": 0, + "snippetIMEVersion": false, + "highlightDollarEnabled": true, + "excalidrawSupportEnabled": true, + "logLevel": "off", + "autofractionTrigger": "/", + "matrixShortcutsCellTrigger": "Tab", + "matrixShortcutsNewlineTrigger": "Enter", + "matrixShortcutsExitTrigger": "Shift-Enter" +} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-latex-suite/main.js b/.obsidian/plugins/obsidian-latex-suite/main.js index 248b13f..ababb08 100644 --- a/.obsidian/plugins/obsidian-latex-suite/main.js +++ b/.obsidian/plugins/obsidian-latex-suite/main.js @@ -3,18 +3,18 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD if you want to view the source, please visit the github repository of this plugin */ -var nr=Object.defineProperty,qa=Object.defineProperties,ja=Object.getOwnPropertyDescriptor,Za=Object.getOwnPropertyDescriptors,Xa=Object.getOwnPropertyNames,qi=Object.getOwnPropertySymbols;var ji=Object.prototype.hasOwnProperty,Wa=Object.prototype.propertyIsEnumerable;var pn=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t);var un=(t,e,r)=>e in t?nr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,oe=(t,e)=>{for(var r in e||(e={}))ji.call(e,r)&&un(t,r,e[r]);if(qi)for(var r of qi(e))Wa.call(e,r)&&un(t,r,e[r]);return t},ye=(t,e)=>qa(t,Za(e));var Va=(t,e)=>{for(var r in e)nr(t,r,{get:e[r],enumerable:!0})},Ia=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Xa(e))!ji.call(t,i)&&i!==r&&nr(t,i,{get:()=>e[i],enumerable:!(n=ja(e,i))||n.enumerable});return t};var Ma=t=>Ia(nr({},"__esModule",{value:!0}),t);var Zi=(t,e,r)=>(un(t,typeof e!="symbol"?e+"":e,r),r);var v=(t,e,r)=>new Promise((n,i)=>{var s=l=>{try{a(r.next(l))}catch(c){i(c)}},o=l=>{try{a(r.throw(l))}catch(c){i(c)}},a=l=>l.done?n(l.value):Promise.resolve(l.value).then(s,o);a((r=r.apply(t,e)).next())}),Ga=function(t,e){this[0]=t,this[1]=e};var Xi=t=>{var e=t[pn("asyncIterator")],r=!1,n,i={};return e==null?(e=t[pn("iterator")](),n=s=>i[s]=o=>e[s](o)):(e=e.call(t),n=s=>i[s]=o=>{if(r){if(r=!1,s==="throw")throw o;return o}return r=!0,{done:!1,value:new Ga(new Promise(a=>{var l=e[s](o);if(!(l instanceof Object))throw TypeError("Object expected");a(l)}),1)}}),i[pn("iterator")]=()=>i,n("next"),"throw"in e?n("throw"):i.throw=s=>{throw s},"return"in e&&n("return"),i};var au={};Va(au,{default:()=>on});module.exports=Ma(au);var er=require("@codemirror/state"),ge=require("obsidian");var te=require("obsidian");var Ba=class extends Error{constructor(e){super(e[0].message);Zi(this,"issues");this.name="ValiError",this.issues=e}},cu=Symbol("brand");function Da(t){return typeof t=="function"?t():t}function at(t,e){return Array.isArray(t)?[void 0,t]:[t,e]}function ir(t,e,r){return{typed:t,output:e,issues:r}}function za(t,e,r){if(!t||typeof t=="object"&&!Array.isArray(t)){let[s,o]=at(e,r);return[t,s,o]}let[n,i]=at(t,e);return[void 0,n,i]}function La(t,e){return{reason:t==null?void 0:t.reason,validation:e.validation,origin:(t==null?void 0:t.origin)||"value",message:e.message,input:e.input,requirement:e==null?void 0:e.requirement,path:e.path,abortEarly:t==null?void 0:t.abortEarly,abortPipeEarly:t==null?void 0:t.abortPipeEarly,skipPipe:t==null?void 0:t.skipPipe}}function Ua(t,e){return{reason:e,origin:t==null?void 0:t.origin,abortEarly:t==null?void 0:t.abortEarly,abortPipeEarly:t==null?void 0:t.abortPipeEarly,skipPipe:t==null?void 0:t.skipPipe}}function _t(t,e,r,n,i){let s,o=t;if(e!=null&&e.length&&!(r!=null&&r.skipPipe))for(let a of e){let l=a._parse(o);if(l.issues){s=s||Ua(r,n);for(let c of l.issues){let p=La(s,c);i?i.push(p):i=[p]}if(s.abortEarly||s.abortPipeEarly)break}else o=l.output}return ir(!0,o,i)}function lt(t,e,r,n,i,s){return{typed:!1,output:i,issues:[{reason:e,validation:r,origin:(t==null?void 0:t.origin)||"value",message:Da(n),input:i,issues:s,abortEarly:t==null?void 0:t.abortEarly,abortPipeEarly:t==null?void 0:t.abortPipeEarly,skipPipe:t==null?void 0:t.skipPipe}]}}function Na(t){return typeof t.default=="function"?t.default():t.default}function Wi(t,e,r){let[n="Invalid type",i]=at(e,r);return{type:"instance",async:!1,class:t,message:n,pipe:i,_parse(s,o){return s instanceof this.class?_t(s,this.pipe,o,"instance"):lt(o,"type","instance",this.message,s)}}}function Vi(t,e){let[r="Invalid type",n]=at(t,e);return{type:"number",async:!1,message:r,pipe:n,_parse(i,s){return typeof i!="number"||isNaN(i)?lt(s,"type","number",this.message,i):_t(i,this.pipe,s,"number")}}}function Ii(t,e,r,n){let[i,s="Invalid type",o]=za(e,r,n),a;return{type:"object",async:!1,entries:t,rest:i,message:s,pipe:o,_parse(l,c){if(!l||typeof l!="object")return lt(c,"type","object",this.message,l);a=a||Object.entries(this.entries);let p=!0,u,d={};for(let[O,h]of a){let f=l[O],g=h._parse(f,c);if(g.issues){let b={type:"object",input:l,key:O,value:f};for(let y of g.issues)y.path?y.path.unshift(b):y.path=[b],u==null||u.push(y);if(u||(u=g.issues),c!=null&&c.abortEarly){p=!1;break}}g.typed||(p=!1),(g.output!==void 0||O in l)&&(d[O]=g.output)}if(this.rest&&!(c!=null&&c.abortEarly&&u)){for(let O in l)if(!(O in this.entries)){let h=l[O],f=this.rest._parse(h,c);if(f.issues){let g={type:"object",input:l,key:O,value:h};for(let b of f.issues)b.path?b.path.unshift(g):b.path=[g],u==null||u.push(b);if(u||(u=f.issues),c!=null&&c.abortEarly){p=!1;break}}f.typed||(p=!1),d[O]=f.output}}return p?_t(d,this.pipe,c,"object",u):ir(!1,d,u)}}}function ct(t,e){return{type:"optional",async:!1,wrapped:t,default:e,_parse(r,n){if(r===void 0){let i=Na(this);if(i===void 0)return ir(!0,r);r=i}return this.wrapped._parse(r,n)}}}function Xe(t,e){let[r="Invalid type",n]=at(t,e);return{type:"string",async:!1,message:r,pipe:n,_parse(i,s){return typeof i!="string"?lt(s,"type","string",this.message,i):_t(i,this.pipe,s,"string")}}}function Mi(t,e,r){let[n="Invalid type",i]=at(e,r);return{type:"special",async:!1,check:t,message:n,pipe:i,_parse(s,o){return this.check(s)?_t(s,this.pipe,o,"special"):lt(o,"type","special",this.message,s)}}}function On(t,e="Invalid type"){return{type:"union",async:!1,options:t,message:e,_parse(r,n){let i,s;for(let o of this.options){let a=o._parse(r,n);if(a.issues)if(i)for(let l of a.issues)i.push(l);else i=a.issues;else{s=[a.output];break}}return s?ir(!0,s[0]):lt(n,"type","union",this.message,r,i)}}}function Gi(t,e,r){let n=t._parse(e,r);if(n.issues)throw new Ba(n.issues);return n.output}var Fa=typeof btoa=="function",hn=typeof Buffer=="function",hu=typeof TextDecoder=="function"?new TextDecoder:void 0,Bi=typeof TextEncoder=="function"?new TextEncoder:void 0,Ya="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Ct=Array.prototype.slice.call(Ya),du=(t=>{let e={};return t.forEach((r,n)=>e[r]=n),e})(Ct);var ve=String.fromCharCode.bind(String),fu=typeof Uint8Array.from=="function"?Uint8Array.from.bind(Uint8Array):t=>new Uint8Array(Array.prototype.slice.call(t,0)),Ha=t=>t.replace(/=/g,"").replace(/[+\/]/g,e=>e=="+"?"-":"_");var Ka=t=>{let e,r,n,i,s="",o=t.length%3;for(let a=0;a255||(n=t.charCodeAt(a++))>255||(i=t.charCodeAt(a++))>255)throw new TypeError("invalid character found");e=r<<16|n<<8|i,s+=Ct[e>>18&63]+Ct[e>>12&63]+Ct[e>>6&63]+Ct[e&63]}return o?s.slice(0,o-3)+"===".substring(o):s},zi=Fa?t=>btoa(t):hn?t=>Buffer.from(t,"binary").toString("base64"):Ka,Ja=hn?t=>Buffer.from(t).toString("base64"):t=>{let r=[];for(let n=0,i=t.length;n{if(t.length<2){var e=t.charCodeAt(0);return e<128?t:e<2048?ve(192|e>>>6)+ve(128|e&63):ve(224|e>>>12&15)+ve(128|e>>>6&63)+ve(128|e&63)}else{var e=65536+(t.charCodeAt(0)-55296)*1024+(t.charCodeAt(1)-56320);return ve(240|e>>>18&7)+ve(128|e>>>12&63)+ve(128|e>>>6&63)+ve(128|e&63)}},tl=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,rl=t=>t.replace(tl,el),Di=hn?t=>Buffer.from(t,"utf8").toString("base64"):Bi?t=>Ja(Bi.encode(t)):t=>zi(rl(t)),dn=(t,e=!1)=>e?Ha(Di(t)):Di(t);var fn="${VISUAL}",Rt=class{constructor(e,r,n,i,s=0,o="no description provided",a=[],l=""){this.type=e,this.data={trigger:r,replacement:n},this.options=i,this.priority=s,this.description=o,this.excludedEnvironments=a,this.triggerKey=l}get trigger(){return this.data.trigger}get replacement(){return this.data.replacement}toString(){return lr({type:this.type,trigger:this.trigger,replacement:this.replacement,options:this.options,priority:this.priority,description:this.description,excludedEnvironments:this.excludedEnvironments})}},sr=class extends Rt{constructor({trigger:e,replacement:r,options:n,priority:i,description:s,excludedEnvironments:o,triggerKey:a}){super("visual",e,r,n,i,s,o,a)}process(e,r,n){if(!!!n||!e.endsWith(this.trigger))return null;let s=r.from,o;if(typeof this.replacement=="string")o=this.replacement.replace(fn,n);else if(o=this.replacement(n),typeof o!="string")return null;return{triggerPos:s,replacement:o}}},or=class extends Rt{constructor({trigger:e,replacement:r,options:n,priority:i,description:s,excludedEnvironments:o,triggerKey:a}){super("regex",e,r,n,i,s,o,a)}process(e,r,n){if(!!n)return null;let s=this.trigger.exec(e);if(s===null)return null;let o=s.index,a;if(typeof this.replacement=="string"){let l=s.length-1;a=Array.from({length:l}).map((c,p)=>p+1).reduce((c,p)=>c.replaceAll(`[[${p-1}]]`,s[p]),this.replacement)}else if(a=this.replacement(s),typeof a!="string")return null;return{triggerPos:o,replacement:a}}},ar=class extends Rt{constructor({trigger:e,replacement:r,options:n,priority:i,description:s,excludedEnvironments:o,triggerKey:a}){super("string",e,r,n,i,s,o,a)}process(e,r,n){if(!!n||!e.endsWith(this.trigger))return null;let s=e.length-this.trigger.length,o=typeof this.replacement=="string"?this.replacement:this.replacement(this.trigger);return typeof o!="string"?null:{triggerPos:s,replacement:o}}};function nl(t,e){return typeof e=="function"?"[[Function]]":e instanceof RegExp?`[[RegExp]]: ${e.toString()}`:e}function lr(t){return JSON.stringify(t,nl,2)}var cr=class t{constructor(){this.mode=new pt,this.automatic=!1,this.regex=!1,this.onWordBoundary=!1,this.visual=!1}static fromSource(e,r){let n=new t;n.mode=pt.fromSource(e,r);for(let i of e)switch(i){case"A":n.automatic=!0;break;case"r":n.regex=!0;break;case"w":n.onWordBoundary=!0;break;case"v":n.visual=!0;break}return n}},pt=class t{inEquation(){return this.inlineMath||this.blockMath}inMath(){return this.inlineMath||this.blockMath||this.codeMath}strictlyInMath(){return this.inMath()&&!this.textEnv}constructor(){this.text=!1,this.blockMath=!1,this.inlineMath=!1,this.code=!1,this.textEnv=!1}invert(){this.text=!this.text,this.blockMath=!this.blockMath,this.inlineMath=!this.inlineMath,this.codeMath=!this.codeMath,this.code=this.code===!1,this.textEnv=!this.textEnv}static fromSource(e,r){let n=new t;for(let i of e)switch(i){case"m":n.blockMath=!0,n.inlineMath=!0;break;case"n":n.inlineMath=!0;break;case"M":n.blockMath=!0;break;case"t":n.text=!0;break;case"c":n.code=!0;break}return r!==void 0&&(n.code=r),n.text||n.inlineMath||n.blockMath||n.codeMath||n.code!==!1||n.textEnv||n.invert(),n}};function pr(t){return t.map((e,r)=>[al(e),ll(e),r]).sort(il).map(([e,r,n])=>t[n])}function il(t,e){return ol(t[0],e[0])||sl(t[1],e[1])}function sl(t,e){return te?-1:0}function ol(t,e){return te?-1:0}function al(t){return t.priority}function ll(t){return typeof t.trigger=="string"?t.trigger.length:t.trigger.source.length}var mn={"([A-Za-z])(\\d)":[{openSymbol:"\\pu{",closeSymbol:"}"},{openSymbol:"\\ce{",closeSymbol:"}"}],"->":[{openSymbol:"\\ce{",closeSymbol:"}"}]};var Fi=require("obsidian");function Yi(t){return v(this,null,function*(){let e;try{try{e=yield Li(`data:text/javascript;base64,${dn(t)}`)}catch(r){e=yield Li(`data:text/javascript;base64,${dn(`export default ${t}`)}`)}}catch(r){throw"Invalid format"}return e})}function ze(t){return v(this,null,function*(){let e=yield Yi(t);if(Array.isArray(e))throw"Cannot parse an array as a variables object";let r={};for(let[n,i]of Object.entries(e))if(n.startsWith("${")){if(!n.endsWith("}"))throw`Invalid snippet variable name '${n}': Starts with '\${' but does not end with '}'. You need to have both or neither.`;r[n]=i}else{if(n.endsWith("}"))throw`Invalid snippet variable name '${n}': Ends with '}' but does not start with '\${'. You need to have both or neither.`;r["${"+n+"}"]=i}return r})}function ut(t,e){return v(this,null,function*(){let r=yield Yi(t),n;try{n=pl(r).map(s=>{try{return ul(s,e)}catch(o){throw`${o} -Erroring snippet: -${lr(s)}`}})}catch(i){throw`Invalid snippet format: ${i}`}return n=pr(n),n})}function Li(t){return v(this,null,function*(){let e;try{e=yield import(t)}catch(r){throw`failed to import module ${t}`}if(!("default"in e))throw`No default export provided for module ${t}`;return e.default})}var cl=Ii({trigger:On([Xe(),Wi(RegExp)]),replacement:On([Xe(),Mi(t=>typeof t=="function")]),options:Xe(),flags:ct(Xe(),""),priority:ct(Vi(),0),description:ct(Xe(),"no description provided"),triggerKey:ct(Xe(),""),language:ct(Xe())});function pl(t){if(!Array.isArray(t))throw"Expected snippets to be an array";return t.flat().map(e=>{try{return Gi(cl,e)}catch(r){throw`Value does not resemble snippet. -Erroring snippet: -${lr(e)}`}})}function ul(t,e){let{replacement:r,priority:n,description:i}=t,s=cr.fromSource(t.options,t.language),o,a,l=gn(t.triggerKey);if(s.regex||t.trigger instanceof RegExp){let c,p=t.flags;t.trigger instanceof RegExp?(c=t.trigger.source,p=`${t.trigger.flags}${p}`):c=t.trigger,p=Ol(p),c=Ui(c,e),a=Ni(c),c=`(?:${c})$`,o=new RegExp(c,p),s.regex=!0;let u={trigger:o,replacement:r,options:s,priority:n,description:i,excludedEnvironments:a,triggerKey:l};return new or(u)}else{let c=t.trigger;c=Ui(c,e),a=Ni(c),typeof r=="string"&&r.includes(fn)&&(s.visual=!0);let p={trigger:c,replacement:r,options:s,priority:n,description:i,excludedEnvironments:a,triggerKey:l};return s.visual?new sr(p):new ar(p)}}function Ol(t){let e=["i","m","s","u","v"];return Array.from(new Set(t.split(""))).filter(r=>e.includes(r)).join("")}function Ui(t,e){for(let[r,n]of Object.entries(e))t=t.replaceAll(r,n);return t}function Ni(t){let e=[];return mn.hasOwnProperty(t)&&e.push(...mn[t]),e}function gn(t){return t.split(/ (?!$)/).map(e=>hl(e)).join(" ")}function hl(t){let e=t.split(/-(?!$)/),r=e[e.length-1];r==="Space"&&(r=" ");let n,i,s,o;for(let a=0;a{let r=t.keys(),n=e.keys(),i=[];for(let s of r)e.has(s)||i.push(s);for(let s of n)t.has(s)||i.push(s);return new Set(i)},fl=(t,e)=>{let r=t.keys(),n=[];for(let i of r)e.has(i)&&n.push(i);return new Set(n)},Hi,ml=((Hi=Set.prototype)==null?void 0:Hi.difference)&&((t,e)=>t.difference(e)),Ki,gl=((Ki=Set.prototype)==null?void 0:Ki.intersection)&&((t,e)=>t.intersection(e)),bn=ml||dl,ur=gl||fl;function bl(t,e){let r=t.parent,n=0;for(;r&&!r.isRoot()&&n<100;){if(r.path===e.path)return!0;r=r.parent,n++}return!1}function Or(t,e,r){let n=t.app.vault.getAbstractFileByPath(e);return n instanceof te.TFolder&&bl(r,n)}var yn=(0,te.debounce)(t=>v(void 0,null,function*(){(t.settings.loadSnippetVariablesFromFile||t.settings.loadSnippetsFromFile)&&(yield t.processSettings(!1,!0))}),500,!0),es=(t,e)=>v(void 0,null,function*(){e instanceof te.TFile&&(t.settings.loadSnippetVariablesFromFile&&e.path===t.settings.snippetVariablesFileLocation||t.settings.loadSnippetsFromFile&&e.path===t.settings.snippetsFileLocation||Or(t,t.settings.snippetVariablesFileLocation,e)||Or(t,t.settings.snippetsFileLocation,e))&&yn(t)}),ts=(t,e)=>{e instanceof te.TFile&&(t.settings.loadSnippetVariablesFromFile&&Or(t,t.settings.snippetVariablesFileLocation,e)||t.settings.loadSnippetsFromFile&&Or(t,t.settings.snippetsFileLocation,e))&&yn(t)},rs=(t,e)=>{if(!(e instanceof te.TFile))return;let r=t.app.vault.getAbstractFileByPath(t.settings.snippetVariablesFileLocation),n=t.app.vault.getAbstractFileByPath(t.settings.snippetsFileLocation);(t.settings.loadSnippetVariablesFromFile&&r instanceof te.TFolder&&e.path.contains(r.path)||t.settings.loadSnippetsFromFile&&n instanceof te.TFolder&&e.path.contains(n.path))&&yn(t)};function*ns(t){if(t instanceof te.TFile)yield t;else if(t instanceof te.TFolder)for(let e of t.children)yield*Xi(ns(e))}function Ji(t,e){let r=t.getAbstractFileByPath(e);if(!r)return console.warn(`Could not find file or folder at path ${e}`),new Set;let n=ns(r);return new Set(n)}function is(t){let e=t.settings.loadSnippetVariablesFromFile?Ji(t.app.vault,t.settings.snippetVariablesFileLocation):new Set,r=t.settings.loadSnippetsFromFile?Ji(t.app.vault,t.settings.snippetsFileLocation):new Set,n=bn(e,r),i=bn(r,e),s=ur(e,r);return{definitelyVariableFiles:n,definitelySnippetFiles:i,snippetOrVariableFiles:s}}function ss(t,e){return v(this,null,function*(){let r={};for(let n of e.definitelyVariableFiles){let i=yield t.app.vault.cachedRead(n);try{Object.assign(r,yield ze(i))}catch(s){new te.Notice(`Failed to parse variable file ${n.name}: ${s}`),console.error(`Failed to parse variable file ${n.name}: ${s}`),e.definitelyVariableFiles.delete(n)}}return r})}function os(t,e){return v(this,null,function*(){let r={};for(let n of e.snippetOrVariableFiles){let i=yield t.app.vault.cachedRead(n);try{Object.assign(r,yield ze(i)),e.definitelyVariableFiles.add(n)}catch(s){e.definitelySnippetFiles.add(n)}e.snippetOrVariableFiles.delete(n)}return r})}function as(t,e,r){return v(this,null,function*(){let n=[];for(let i of e.definitelySnippetFiles){let s=yield t.app.vault.cachedRead(i);try{n.push(...yield ut(s,r))}catch(o){new te.Notice(`Failed to parse snippet file ${i.name}: ${o}`),console.error(`Failed to parse snippet file ${i.name}: ${o}`),e.definitelySnippetFiles.delete(i)}}return pr(n)})}var ls=`export default [ +var or=Object.defineProperty,ku=Object.defineProperties,wu=Object.getOwnPropertyDescriptor,Tu=Object.getOwnPropertyDescriptors,Eu=Object.getOwnPropertyNames,wa=Object.getOwnPropertySymbols;var Ea=Object.prototype.hasOwnProperty,Pu=Object.prototype.propertyIsEnumerable;var ki=(e,t)=>(t=Symbol[e])?t:Symbol.for("Symbol."+e);var Ta=(e,t,n)=>t in e?or(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,A=(e,t)=>{for(var n in t||(t={}))Ea.call(t,n)&&Ta(e,n,t[n]);if(wa)for(var n of wa(t))Pu.call(t,n)&&Ta(e,n,t[n]);return e},j=(e,t)=>ku(e,Tu(t));var Pa=(e,t)=>{for(var n in t)or(e,n,{get:t[n],enumerable:!0})},Cu=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Eu(t))!Ea.call(e,i)&&i!==n&&or(e,i,{get:()=>t[i],enumerable:!(r=wu(t,i))||r.enumerable});return e};var qu=e=>Cu(or({},"__esModule",{value:!0}),e);var y=(e,t,n)=>new Promise((r,i)=>{var o=l=>{try{a(n.next(l))}catch(c){i(c)}},s=l=>{try{a(n.throw(l))}catch(c){i(c)}},a=l=>l.done?r(l.value):Promise.resolve(l.value).then(o,s);a((n=n.apply(e,t)).next())}),Ru=function(e,t){this[0]=e,this[1]=t};var sr=e=>{var t=e[ki("asyncIterator")],n=!1,r,i={};return t==null?(t=e[ki("iterator")](),r=o=>i[o]=s=>t[o](s)):(t=t.call(e),r=o=>i[o]=s=>{if(n){if(n=!1,o==="throw")throw s;return s}return n=!0,{done:!1,value:new Ru(new Promise(a=>{var l=t[o](s);if(!(l instanceof Object))throw TypeError("Object expected");a(l)}),1)}}),i[ki("iterator")]=()=>i,r("next"),"throw"in t?r("throw"):i.throw=o=>{throw o},"return"in t&&r("return"),i};var ig={};Pa(ig,{default:()=>vi});module.exports=qu(ig);var Jn=require("@codemirror/state"),he=require("obsidian");var de=require("obsidian");var ar=class e{constructor({mode:t,automatic:n,regex:r,onWordBoundary:i,visual:o,undoKey:s}){this.mode=t,this.automatic=n,this.regex=r,this.onWordBoundary=i,this.visual=o,this.undoKey=s}static fromSource(t,n){let r=Lt.fromSource(t,n),i=!1,o=!1,s=!1,a=!1,l=!0;for(let c of t)switch(c){case"A":i=!0;break;case"r":o=!0;break;case"w":s=!0;break;case"v":a=!0;break;case"U":l=!1;break}return new e({mode:r,automatic:i,regex:o,onWordBoundary:s,visual:a,undoKey:l})}snippetShouldRunInMode(t,n=!1){return t.snippetlessEnv&&!n?!1:!!((this.mode.inlineMath&&t.inlineMath||this.mode.blockMath&&t.blockMath||(this.mode.inlineMath||this.mode.blockMath)&&t.codeMath)&&t.textEnv===this.mode.textEnv||this.mode.text&&t.text||this.mode.codeBlock===t.codeBlock&&t.codeBlock!==!1||this.mode.codeBlock===!0&&t.codeBlock!==!1||this.mode.code&&t.code)}copy(){return new e(j(A({},this),{mode:this.mode.copy()}))}},Lt=class e{constructor({text:t,inlineMath:n,blockMath:r,codeMath:i,codeBlock:o,code:s,textEnv:a,snippetlessEnv:l}){this.text=t,this.inlineMath=n,this.blockMath=r,this.codeMath=i,this.codeBlock=o,this.code=s,this.textEnv=a,this.snippetlessEnv=l}inEquation(){return this.inlineMath||this.blockMath}inMath(){return this.inlineMath||this.blockMath||this.codeMath}inDisplayMath(){return this.blockMath||this.codeMath}strictlyInMath(){return this.inMath()&&!this.textEnv}invert(){this.text=!this.text,this.blockMath=!this.blockMath,this.inlineMath=!this.inlineMath,this.codeMath=!this.codeMath,this.codeBlock=this.codeBlock===!1,this.code=!this.code,this.textEnv=!this.textEnv,this.snippetlessEnv=!this.snippetlessEnv}static fromSource(t,n){let r=!1,i=!1,o=!1,s=!1,a=!1,l=!1,c=!1,p=!1;for(let O of t)switch(O){case"m":r=!0,i=!0;break;case"n":i=!0;break;case"M":r=!0;break;case"t":o=!0;break;case"T":c=!0;break;case"c":a=!0;break;case"C":l=!0;break}n!==void 0&&(a=n),c&&!(r||i)&&(r=!0,i=!0);let u=new e({text:o,inlineMath:i,blockMath:r,codeMath:s,codeBlock:a,code:l,textEnv:c,snippetlessEnv:p});return u.text||u.inlineMath||u.blockMath||u.codeMath||u.codeBlock!==!1||u.textEnv||u.code||u.invert(),u}copy(){return new e(A({},this))}};var Fe={captures:{match:[],groups:{}}},ve=class{constructor(t,n=[]){this.insert=t;this.tabstops=n}applyInsert(t=Fe){if(typeof this.insert=="string")return{insert:this.insert,tabstops:this.tabstops};let n=this.insert(t);if(typeof n=="string")return{insert:n,tabstops:this.tabstops};let r=0,i=n.map(a=>a.applyInsert(t)).map(({insert:a,tabstops:l})=>{let c=r;return r+=a.length,{insert:a,tabstops:[...l.map(p=>j(A({},p),{from:p.from+c,to:p.to+c})),...this.tabstops.map(p=>j(A({},p),{from:p.from+c,to:p.to+c}))]}}),o=i.map(a=>a.insert).join(""),s=i.flatMap(a=>a.tabstops);return{insert:o,tabstops:s}}},le=class extends ve{constructor(t){super(t)}},qe=class extends ve{constructor(t,n=""){super(n,[{index:[t],from:0,to:n.length}])}},lr=class extends ve{constructor(t,n=""){typeof t=="number"?super(({captures:r})=>{var i;return(i=r.match[t])!=null?i:n}):typeof t=="string"&&super(({captures:r})=>{var i;return(i=r.groups[t])!=null?i:n})}};function wi(e,t){t.sort((i,o)=>i.start-o.start);let n=0,r=[];for(let{start:i,end:o,replacement:s}of t)r.push(e.slice(n,i),s),n=o;return r.join("")+e.slice(n)}var je=class extends ve{constructor(n){super(r=>this.parseSnippet(r.captures));this.snippet=n}parseSnippet(n){let r=this.expandCaptures(n);return this.expandTabstops(r)}expandCaptures(n){var s;let r=/\[\[(\d+)\]\]/g,i=this.snippet.matchAll(r),o=[];for(let a of i){let l=parseInt(a[1],10);if(l>=n.match.length)continue;let c=a.index,p=c+a[0].length,u=(s=n.match[l])!=null?s:"";o.push({start:c,end:p,replacement:u})}return wi(this.snippet,o)}expandTabstops(n){let r=/\$(\d)|\$\{(\d+):([^}]*)\}/g,i=n.matchAll(r),o=[];for(let l of i){let c=parseInt(l[1]||l[2],10),p=l.index,u=p+l[0].length,O=l[3]||"";o.push({start:p,end:u,replacement:O,index:c})}let s=[],a=0;for(let{start:l,end:c,replacement:p,index:u}of o)s.push(new le(n.slice(a,l))),s.push(new qe(u,p)),a=c;return s.push(new le(n.slice(a))),s}},cr=class extends ve{constructor(n){super(r=>new je(this.expandVisual(r.captures)).parseSnippet({match:[],groups:{}}));this.snippet=n}expandVisual(n){let r=dn;if(!n.groups[r])throw new Error(`VisualSnippetNode requires the presence of a capture group named ${r} to indicate the position of the visual selection`);return this.snippet.replaceAll(r,n.groups[r])}},Dt=class extends ve{constructor(t){super(()=>new je(t).parseSnippet({match:[],groups:{}}))}},U=class{constructor(t){this.children=t}applyInsert(t=Fe){return new ve(()=>this.children).applyInsert(t)}};var Ze,Xu={lang:void 0,message:void 0,abortEarly:void 0,abortPipeEarly:void 0};function Ci(e){var t,n,r;return!e&&!Ze?Xu:{lang:(t=e==null?void 0:e.lang)!=null?t:Ze==null?void 0:Ze.lang,message:e==null?void 0:e.message,abortEarly:(n=e==null?void 0:e.abortEarly)!=null?n:Ze==null?void 0:Ze.abortEarly,abortPipeEarly:(r=e==null?void 0:e.abortPipeEarly)!=null?r:Ze==null?void 0:Ze.abortPipeEarly}}var Ti;function _u(e){return Ti==null?void 0:Ti.get(e)}var Ei;function Au(e){return Ei==null?void 0:Ei.get(e)}var Pi;function Wu(e,t){var n;return(n=Pi==null?void 0:Pi.get(e))==null?void 0:n.get(t)}function Ra(e){var n,r,i;let t=typeof e;return t==="string"?`"${e}"`:t==="number"||t==="bigint"||t==="boolean"?`${e}`:t==="object"||t==="function"?(i=e&&((r=(n=Object.getPrototypeOf(e))==null?void 0:n.constructor)==null?void 0:r.name))!=null?i:"null":t}function xe(e,t,n,r,i){var u,O,d,f,m,g,b,v;let o=i&&"input"in i?i.input:n.value,s=(O=(u=i==null?void 0:i.expected)!=null?u:e.expects)!=null?O:null,a=(d=i==null?void 0:i.received)!=null?d:Ra(o),l={kind:e.kind,type:e.type,input:o,expected:s,received:a,message:`Invalid ${t}: ${s?`Expected ${s} but r`:"R"}eceived ${a}`,requirement:e.requirement,path:i==null?void 0:i.path,issues:i==null?void 0:i.issues,lang:r.lang,abortEarly:r.abortEarly,abortPipeEarly:r.abortPipeEarly},c=e.kind==="schema",p=(v=(b=(g=(m=(f=i==null?void 0:i.message)!=null?f:e.message)!=null?m:Wu(e.reference,l.lang))!=null?g:c?Au(l.lang):null)!=null?b:r.message)!=null?v:_u(l.lang);p!==void 0&&(l.message=typeof p=="function"?p(l):p),c&&(n.typed=!1),n.issues?n.issues.push(l):n.issues=[l]}var Ca=new WeakMap;function Se(e){let t=Ca.get(e);return t||(t={version:1,vendor:"valibot",validate(n){return e["~run"]({value:n},Ci())}},Ca.set(e,t)),t}function Mu(e,t){return Object.prototype.hasOwnProperty.call(e,t)&&t!=="__proto__"&&t!=="prototype"&&t!=="constructor"}function ju(e,t){var r;let n=[...new Set(e)];return n.length>1?`(${n.join(` ${t} `)})`:(r=n[0])!=null?r:"never"}var Zu=class extends Error{constructor(e){super(e[0].message),this.name="ValiError",this.issues=e}};var ug=new RegExp("^(?:[\\u{1F1E6}-\\u{1F1FF}]{2}|\\u{1F3F4}[\\u{E0061}-\\u{E007A}]{2}[\\u{E0030}-\\u{E0039}\\u{E0061}-\\u{E007A}]{1,3}\\u{E007F}|(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|(?![\\p{Emoji_Modifier_Base}\\u{1F1E6}-\\u{1F1FF}])\\p{Emoji_Presentation})(?:\\u200D(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|(?![\\p{Emoji_Modifier_Base}\\u{1F1E6}-\\u{1F1FF}])\\p{Emoji_Presentation}))*)+$","u");function mn(e){return{kind:"transformation",type:"map_items",reference:mn,async:!1,operation:e,"~run"(t){return t.value=t.value.map(this.operation),t}}}function qi(e,t){return{kind:"transformation",type:"parse_json",reference:qi,config:e,message:t,async:!1,"~run"(n,r){var i;try{n.value=JSON.parse(n.value,(i=this.config)==null?void 0:i.reviver)}catch(o){if(o instanceof Error)xe(this,"JSON",n,r,{received:`"${o.message}"`}),n.typed=!1;else throw o}return n}}}function Ri(e){return{kind:"transformation",type:"transform",reference:Ri,async:!1,operation:e,"~run"(t){return t.value=this.operation(t.value),t}}}function Lu(e,t,n){return typeof e.fallback=="function"?e.fallback(t,n):e.fallback}function Xa(e,t,n){return typeof e.default=="function"?e.default(t,n):e.default}function Xi(){return{kind:"schema",type:"any",reference:Xi,expects:"any",async:!1,get"~standard"(){return Se(this)},"~run"(e){return e.typed=!0,e}}}function Re(e,t){return{kind:"schema",type:"array",reference:Re,expects:"Array",async:!1,item:e,message:t,get"~standard"(){return Se(this)},"~run"(n,r){var o;let i=n.value;if(Array.isArray(i)){n.typed=!0,n.value=[];for(let s=0;sn.expects),"|"),async:!1,options:e,message:t,get"~standard"(){return Se(this)},"~run"(n,r){let i,o,s;for(let a of this.options){let l=a["~run"]({value:n.value},r);if(l.typed)if(l.issues)o?o.push(l):o=[l];else{i=l;break}else s?s.push(l):s=[l]}if(i)return i;if(o){if(o.length===1)return o[0];xe(this,"type",n,r,{issues:qa(o)}),n.typed=!0}else{if((s==null?void 0:s.length)===1)return s[0];xe(this,"type",n,r,{issues:qa(s)})}return n}}}function rt(e,t,n){let r=e["~run"]({value:t},Ci(n));if(r.issues)throw new Zu(r.issues);return r.value}function Vt(...e){return j(A({},e[0]),{pipe:e,get"~standard"(){return Se(this)},"~run"(t,n){for(let r of e)if(r.kind!=="metadata"){if(t.issues&&(r.kind==="schema"||r.kind==="transformation")){t.typed=!1;break}(!t.issues||!n.abortEarly&&!n.abortPipeEarly)&&(t=r["~run"](t,n))}return t}})}function _a(e,t,n){let r=e["~run"]({value:t},Ci(n));return{typed:r.typed,success:!r.issues,output:r.value,issues:r.issues}}var Ty=require("@codemirror/state"),rc=require("@codemirror/view");var Aa=require("obsidian"),Wa=require("@codemirror/view"),mg=require("@lezer/common"),gg=require("@codemirror/state");function yn(e,t,n,r){e.dispatch({changes:{from:t,to:n,insert:r}})}function Ma(e,t){return(e instanceof Wa.EditorView?e.state:e).doc.sliceString(t,t+1)}function Le(e,t){e.dispatch({selection:{anchor:t,head:t}}),It(e)}function ja(e,t,n){e.dispatch({selection:{anchor:t,head:n}}),It(e)}function It(e){if(Aa.Platform.isMobile)return;let t=e.dom.getElementsByClassName("cm-cursorLayer")[0];if(t){let n=t.style.animationName;t.style.animationName=n==="cm-blink"?"cm-blink2":"cm-blink"}}function ji(e){return e.split("").reverse().join("")}function Gt(e,t,n,r,i,o){if(i){let l=Gt(ji(e),e.length-(t+r.length),ji(r),ji(n),!1);return l===null?null:e.length-(l+n.length)}let s=0,a=o||e.length;for(let l=t;l x_{3}, \\alpha3 -> \\alpha_{3} + // - x3 -> x_{3} + // - \\alpha3 -> \\alpha_{3} + // - \\leq -> \\leq 1 { - trigger: "(\\\\\\\\\${GREEK}|[A-Za-z])(\\\\d)", - replacement: "[[0]]_{[[1]]}", + trigger: /(\\\\?)([A-Za-z]+)(\\d)/, + replacement: (match) => { + const isMacro = match[1] === "\\\\"; + const digit = match[3]; + if (!isMacro) { + const variable = match[2]; + return \`\${variable}_{\${digit}}\`; + } + const greek = require("latex-suite").snippetVariables["\${GREEK}"]; + const greek_pattern = new RegExp("^(?:" + greek + ")$"); + const macro_name = match[2]; + if (greek_pattern.test(macro_name)) { + return \`\\\\\${macro_name}_{\${digit}}\`; + } else { + return \`\\\\\${macro_name} \${digit}\`; + } + }, options: "rmA", priority: -1, + excludedMacros: ["pu", "ce"], + description: "Auto letter subscript for variables and greek letters, add space after other macros", }, // x_{3}4 -> x_{34}, \\alpha_{3}4 -> \\alpha_{34} { @@ -116,33 +140,22 @@ ${lr(e)}`}})}function ul(t,e){let{replacement:r,priority:n,description:i}=t,s=cr replacement: "[[0]]_{[[1]][[2]]}", options: "rmA", priority: -1, + description: "Combine subscripts for variables and greek letters", }, // \\dot{x}3 -> \\dot{x}_{3}, \\dot{\\alpha}3 -> \\dot{\\alpha}_{3} - { - trigger: "\\\\\\\\(\${ACCENT})\\\\{(\\\\\\\\\${GREEK}|[A-Za-z])\\\\}(\\\\d)", - replacement: "\\\\[[0]]{[[1]]}_{[[2]]}", - options: "rmA", - priority: -1, - }, - // \\dot{x}_{3}4 -> \\dot{x}_{34} { - trigger: "\\\\\\\\(\${ACCENT})\\\\{(\\\\\\\\\${GREEK}|[A-Za-z])\\\\}_\\\\{(\\\\d+)\\\\}(\\\\d)", + trigger: "\\\\\\\\(\${ACCENT})\\\\{(\\\\\\\\\${GREEK}|[A-Za-z])\\\\}(?:_\\\\{(\\\\d+)\\\\})?(\\\\d)", replacement: "\\\\[[0]]{[[1]]}_{[[2]][[3]]}", options: "rmA", priority: -1, }, + // \\dot{\\vec{a}}3 -> \\dot{\\vec{a}}_{3} - { - trigger: "\\\\\\\\(\${ACCENT})\\\\{\\\\\\\\(\${ACCENT})\\\\{(\\\\\\\\\${GREEK}|[A-Za-z])\\\\}\\\\}(\\\\d)", - replacement: "\\\\[[0]]{\\\\[[1]]{[[2]]}}_{[[3]]}", - options: "rmA", - priority: -1, - }, // \\dot{\\vec{a}}_{3}4 -> \\dot{\\vec{a}}_{34} { - trigger: "\\\\\\\\(\${ACCENT})\\\\{\\\\\\\\(\${ACCENT})\\\\{(\\\\\\\\\${GREEK}|[A-Za-z])\\\\}\\\\}_\\\\{(\\\\d+)\\\\}(\\\\d)", + trigger: "\\\\\\\\(\${ACCENT})\\\\{\\\\\\\\(\${ACCENT})\\\\{(\\\\\\\\\${GREEK}|[A-Za-z])\\\\}\\\\}(?:_\\\\{(\\\\d+)\\\\})?(\\\\d)", replacement: "\\\\[[0]]{\\\\[[1]]{[[2]]}}_{[[3]][[4]]}", options: "rmA", priority: -1, @@ -172,6 +185,7 @@ ${lr(e)}`}})}function ul(t,e){let{replacement:r,priority:n,description:i}=t,s=cr {trigger: "xx", replacement: "\\\\times", options: "mA"}, {trigger: "**", replacement: "\\\\cdot", options: "mA"}, {trigger: "para", replacement: "\\\\parallel", options: "mA"}, + {trigger: "deg", replacement: "\\\\degree", options: "mA"}, {trigger: "===", replacement: "\\\\equiv", options: "mA"}, {trigger: "!=", replacement: "\\\\neq", options: "mA"}, @@ -185,12 +199,12 @@ ${lr(e)}`}})}function ul(t,e){let{replacement:r,priority:n,description:i}=t,s=cr {trigger: "<->", replacement: "\\\\leftrightarrow ", options: "mA"}, - {trigger: "->", replacement: "\\\\to", options: "mA"}, + {trigger: "->", replacement: "\\\\to", options: "mA", excludedMacros: ["ce"]}, {trigger: "!>", replacement: "\\\\mapsto", options: "mA"}, {trigger: "=>", replacement: "\\\\implies", options: "mA"}, {trigger: "=<", replacement: "\\\\impliedby", options: "mA"}, - {trigger: "and", replacement: "\\\\cap", options: "mA"}, + {trigger: "and", replacement: "\\\\cap", options: "wmA"}, {trigger: "orr", replacement: "\\\\cup", options: "mA"}, {trigger: "inn", replacement: "\\\\in", options: "mA"}, {trigger: "notin", replacement: "\\\\not\\\\in", options: "mA"}, @@ -198,8 +212,8 @@ ${lr(e)}`}})}function ul(t,e){let{replacement:r,priority:n,description:i}=t,s=cr {trigger: "sub=", replacement: "\\\\subseteq", options: "mA"}, {trigger: "sup=", replacement: "\\\\supseteq", options: "mA"}, {trigger: "eset", replacement: "\\\\emptyset", options: "mA"}, - {trigger: "set", replacement: "\\\\{ $0 \\\\}$1", options: "mA"}, - {trigger: "e\\\\xi sts", replacement: "\\\\exists", options: "mA", priority: 1}, + {trigger: "set", replacement: "\\\\{ $0 \\\\}$1", options: "wmA"}, + {trigger: /(n?)e\\\\xi sts/, replacement: "\\\\[[0]]exists", options: "mA", priority: 1}, {trigger: "LL", replacement: "\\\\mathcal{L}", options: "mA"}, {trigger: "HH", replacement: "\\\\mathcal{H}", options: "mA"}, @@ -207,18 +221,18 @@ ${lr(e)}`}})}function ul(t,e){let{replacement:r,priority:n,description:i}=t,s=cr {trigger: "RR", replacement: "\\\\mathbb{R}", options: "mA"}, {trigger: "ZZ", replacement: "\\\\mathbb{Z}", options: "mA"}, {trigger: "NN", replacement: "\\\\mathbb{N}", options: "mA"}, + {trigger: "QQ", replacement: "\\\\mathbb{Q}", options: "mA"}, // Handle spaces and backslashes // Snippet variables can be used as shortcuts when writing snippets. // For example, \${GREEK} below is shorthand for "alpha|beta|gamma|Gamma|delta|..." - // You can edit snippet variables under the Advanced snippet settings section. + // You can edit snippet variables under the Advanced snippet section. {trigger: "([^\\\\\\\\])(\${GREEK})", replacement: "[[0]]\\\\[[1]]", options: "rmA", description: "Add backslash before Greek letters"}, {trigger: "([^\\\\\\\\])(\${SYMBOL})", replacement: "[[0]]\\\\[[1]]", options: "rmA", description: "Add backslash before symbols"}, - // Insert space after Greek letters and symbols - {trigger: "\\\\\\\\(\${GREEK}|\${SYMBOL}|\${MORE_SYMBOLS})([A-Za-z])", replacement: "\\\\[[0]] [[1]]", options: "rmA"}, + {trigger: "\\\\\\\\(\${GREEK}|\${SYMBOL}) sr", replacement: "\\\\[[0]]^{2}", options: "rmA"}, {trigger: "\\\\\\\\(\${GREEK}|\${SYMBOL}) cb", replacement: "\\\\[[0]]^{3}", options: "rmA"}, {trigger: "\\\\\\\\(\${GREEK}|\${SYMBOL}) rd", replacement: "\\\\[[0]]^{$0}$1", options: "rmA"}, @@ -226,18 +240,22 @@ ${lr(e)}`}})}function ul(t,e){let{replacement:r,priority:n,description:i}=t,s=cr {trigger: "\\\\\\\\(\${GREEK}) dot", replacement: "\\\\dot{\\\\[[0]]}", options: "rmA"}, {trigger: "\\\\\\\\(\${GREEK}) bar", replacement: "\\\\bar{\\\\[[0]]}", options: "rmA"}, {trigger: "\\\\\\\\(\${GREEK}) vec", replacement: "\\\\vec{\\\\[[0]]}", options: "rmA"}, + // \\\\overrightarrow might look better than \\\\vec + // {trigger: "\\\\\\\\(\${GREEK}) vec", replacement: "\\\\overrightarrow{\\\\[[0]]}", options: "rmA"}, {trigger: "\\\\\\\\(\${GREEK}) tilde", replacement: "\\\\tilde{\\\\[[0]]}", options: "rmA"}, {trigger: "\\\\\\\\(\${GREEK}) und", replacement: "\\\\underline{\\\\[[0]]}", options: "rmA"}, // Derivatives and integrals {trigger: "par", replacement: "\\\\frac{ \\\\partial \${0:y} }{ \\\\partial \${1:x} } $2", options: "m"}, + {trigger: /par([0-9])/, replacement: "\\\\frac{ \\\\partial^{[[0]]} \${0:y} }{ \\\\partial \${1:x}^{[[0]]} } $2", options: "mA"}, + {trigger: /parn/, replacement: "\\\\frac{ \\\\partial^{\${0:n}} \${1:y} }{ \\\\partial \${2:x}^{\${0:n}} } $2", options: "mA"}, {trigger: /pa([A-Za-z])([A-Za-z])/, replacement: "\\\\frac{ \\\\partial [[0]] }{ \\\\partial [[1]] } ", options: "rm"}, {trigger: "ddt", replacement: "\\\\frac{d}{dt} ", options: "mA"}, {trigger: /([^\\\\])int/, replacement: "[[0]]\\\\int", options: "mA", priority: -1}, {trigger: "\\\\int", replacement: "\\\\int $0 \\\\, d\${1:x} $2", options: "m"}, - {trigger: "dint", replacement: "\\\\int_{\${0:0}}^{\${1:1}} $2 \\\\, d\${3:x} $4", options: "mA"}, + {trigger: "dint", replacement: "\\\\int_{\${0:0}}^{\${1:1}} $2 \\\\, d\${3:x} $4", options: "mA", description: "Definite integral"}, {trigger: "oint", replacement: "\\\\oint", options: "mA"}, {trigger: "iint", replacement: "\\\\iint", options: "mA"}, {trigger: "iiint", replacement: "\\\\iiint", options: "mA"}, @@ -247,15 +265,6 @@ ${lr(e)}`}})}function ul(t,e){let{replacement:r,priority:n,description:i}=t,s=cr // Trigonometry {trigger: /([^\\\\])(arcsin|sin|arccos|cos|arctan|tan|csc|sec|cot)/, replacement: "[[0]]\\\\[[1]]", options: "rmA", description: "Add backslash before trig funcs"}, - - {trigger: /\\\\(arcsin|sin|arccos|cos|arctan|tan|csc|sec|cot)([A-Za-gi-z])/, - replacement: "\\\\[[0]] [[1]]", options: "rmA", - description: "Add space after trig funcs. Skips letter h to allow sinh, cosh, etc."}, - - {trigger: /\\\\(sinh|cosh|tanh|coth)([A-Za-z])/, - replacement: "\\\\[[0]] [[1]]", options: "rmA", - description: "Add space after hyperbolic trig funcs"}, - { trigger: /(arccsc|arcsec|arccot)/, replacement: "\\\\operatorname{[[0]]}$0", @@ -265,12 +274,12 @@ ${lr(e)}`}})}function ul(t,e){let{replacement:r,priority:n,description:i}=t,s=cr }, // Visual operations - {trigger: "U", replacement: "\\\\underbrace{ \${VISUAL} }_{ $0 }", options: "mA"}, - {trigger: "O", replacement: "\\\\overbrace{ \${VISUAL} }^{ $0 }", options: "mA"}, - {trigger: "B", replacement: "\\\\underset{ $0 }{ \${VISUAL} }", options: "mA"}, - {trigger: "C", replacement: "\\\\cancel{ \${VISUAL} }", options: "mA"}, - {trigger: "K", replacement: "\\\\cancelto{ $0 }{ \${VISUAL} }", options: "mA"}, - {trigger: "S", replacement: "\\\\sqrt{ \${VISUAL} }", options: "mA"}, + {trigger: "U", replacement: "\\\\underbrace{ \${VISUAL} }_{ $0 }", options: "mv"}, + {trigger: "O", replacement: "\\\\overbrace{ \${VISUAL} }^{ $0 }", options: "mv"}, + {trigger: "B", replacement: "\\\\underset{ $0 }{ \${VISUAL} }", options: "mv"}, + {trigger: "C", replacement: "\\\\cancel{ \${VISUAL} }", options: "mv"}, + {trigger: "K", replacement: "\\\\cancelto{ $0 }{ \${VISUAL} }", options: "mv"}, + {trigger: "S", replacement: "\\\\sqrt{ \${VISUAL} }", options: "mv"}, // Physics @@ -280,7 +289,7 @@ ${lr(e)}`}})}function ul(t,e){let{replacement:r,priority:n,description:i}=t,s=cr // Quantum mechanics {trigger: "dag", replacement: "^{\\\\dagger}", options: "mA"}, {trigger: "o+", replacement: "\\\\oplus ", options: "mA"}, - {trigger: "ox", replacement: "\\\\otimes ", options: "mA"}, + {trigger: "ox", replacement: "\\\\otimes ", options: "wmA"}, {trigger: "bra", replacement: "\\\\bra{$0} $1", options: "mA"}, {trigger: "ket", replacement: "\\\\ket{$0} $1", options: "mA"}, {trigger: "brk", replacement: "\\\\braket{ $0 | $1 } $2", options: "mA"}, @@ -327,9 +336,9 @@ ${lr(e)}`}})}function ul(t,e){let{replacement:r,priority:n,description:i}=t,s=cr {trigger: "floor", replacement: "\\\\lfloor $0 \\\\rfloor $1", options: "mA"}, // For the modulo operator, see the section "More operations" above {trigger: "mod", replacement: "|$0|$1", options: "mA"}, - {trigger: "(", replacement: "(\${VISUAL})", options: "mA"}, - {trigger: "[", replacement: "[\${VISUAL}]", options: "mA"}, - {trigger: "{", replacement: "{\${VISUAL}}", options: "mA"}, + {trigger: "(", replacement: "(\${VISUAL})", options: "mv"}, + {trigger: "[", replacement: "[\${VISUAL}]", options: "mv"}, + {trigger: "{", replacement: "{\${VISUAL}}", options: "mv"}, {trigger: "(", replacement: "($0)$1", options: "mA"}, {trigger: "{", replacement: "{$0}$1", options: "mA"}, {trigger: "[", replacement: "[$0]$1", options: "mA"}, @@ -353,6 +362,52 @@ ${lr(e)}`}})}function ul(t,e){let{replacement:r,priority:n,description:i}=t,s=cr // {trigger: /([A-Za-z]=\\d+)([\\n\\s.,?!:'])/, replacement: "$[[0]]$[[1]]", options: "rtAw"}, // {trigger: /([A-Za-z]=[A-Za-z][+-]\\d+)([\\n\\s.,?!:'])/, replacement: "$[[0]]$[[1]]", options: "tAw"}, + // Disable automatic snippets while typing macros + // This is a catch all rule that may disable other snippets in some cases. + // Increase the priority of the snippets that shouldn't be disabled. + // {trigger: /(\\\\[A-Za-z]+)/, replacement: "[[0]]$0", options: "mAU", priority: 100, description: "Disable snippets while typing macros"}, + + // Disable snippets while typing macros, doesn't insert an undo stop because of the option "U", thus its treated normal typing. + // like \\top -> \\top but \\tox -> \\to x as \\tox is not a macro but \\top is. + // In order to add your custom macros to the list, you can do require("latex-suite").ALL_MACROS.push("\\\\my_macro") at the top or bottom of this file. + // outside this function and array. + { + trigger: /\\\\[A-Za-z]{2,}/, + replacement: function (match) { + /** @type {string} */ + const string = match[0]; + const trigger = string.slice(1); + + const names = require("latex-suite").ALL_MACROS; + if (names.some(name => name.startsWith(string))) { + return string; + } + return false; + }, + options: "mAU", + priority: 3, + description: "Disable snippets while typing macros", + }, + // Add space after macros if not part of another macro + { + trigger: /\\\\[A-Za-z]{2,}/, + replacement: function (match) { + /** @type {string} */ + const string = match[0]; + const trigger = string.slice(1); + + const names = require("latex-suite").ALL_MACROS; + if (!names.some(name => name.startsWith(string))) { + const macro = trigger.slice(0, -1); + const letter = trigger.slice(-1); + return "\\\\" + macro + " " + letter; + } + return false; + }, + options: "mA", + priority: 3, + description: "Insert space after macros if not part of another macro", + }, // Snippet replacements can have placeholders. {trigger: "tayl", replacement: "\${0:f}(\${1:x} + \${2:h}) = \${0:f}(\${1:x}) + \${0:f}'(\${1:x})\${2:h} + \${0:f}''(\${1:x}) \\\\frac{\${2:h}^{2}}{2!} + \\\\dots$3", options: "mA", description: "Taylor expansion"}, @@ -374,64 +429,100 @@ ${lr(e)}`}})}function ul(t,e){let{replacement:r,priority:n,description:i}=t,s=cr output = \`\\\\begin{pmatrix}\\n\${output}\\n\\\\end{pmatrix}\`; return output; }, options: "mA", description: "N x N identity matrix"}, + // start with the correct indentation of 3 spaces when typing at the start of a list. { - trigger: /(?<=(?:\\n|^)[ \\t]*>*)(?\\d+[.)]|[-*+])(?[ \\t]+)(?.*)dm/, + trigger: /(?(?:\\n|^)[ \\t]*>*)(?\\d+[.)]|[-*+])(?[ \\t]+)(?.*)dm/, replacement: (m) => { - const { whitespace, text, marker } = m.groups; + const { positive_lookbehind, whitespace, text, marker } = m.groups; const firstLine = marker + whitespace + text; const indent = " ".repeat(marker.length) + whitespace; - return \`\${firstLine}\\n\${indent}$$\\n\${indent}\\t$0\\n\${indent}$$\`; + return \`\${positive_lookbehind}\${firstLine}\\n\${indent}$$\\n\${indent}$0\\n\${indent}$$\`; }, options: "rtA", priority: 2, description: "Display math when in a list" }, + { + // positive lookbehind is not available on ios <16.4 and inline flags like (?m:$) are not since ios <26, using this as a workaround. + // otherwise the regex would be /(?<=\\n|^)([ \\t]*(?:> ?)*[ \\t])*dm/ + // or /(?m:^)([ \\t]*(?:> ?)*[ \\t])*dm/ + trigger: new (class extends RegExp { + exec(source) { + const result = super.exec(source); + if (result === null) return result; + result + return /([ \\t]*(?:> ?)*[ \\t]*)dm$/.exec(source); + } + })(/(\\n|^)[ \\t]*(?:> ?)*[ \\t]*dm/.source), + replacement: "[[0]]$$\\n$0\\n$$", + options: "tAw", + description: "Display Math on empty line", + priority: 2, + }, ] -`;var At=ls;var cs=`export default { +`;var bn=Ga;var Ha=`export default { "\${GREEK}": "(?:alpha|beta|gamma|Gamma|delta|Delta|epsilon|varepsilon|zeta|eta|theta|vartheta|Theta|iota|kappa|lambda|Lambda|mu|nu|xi|omicron|pi|rho|varrho|sigma|Sigma|tau|upsilon|Upsilon|phi|varphi|Phi|chi|psi|omega|Omega)", "\${SYMBOL}": "(?:parallel|perp|partial|nabla|hbar|ell|infty|oplus|ominus|otimes|oslash|square|star|dagger|vee|wedge|subseteq|subset|supseteq|supset|emptyset|exists|nexists|forall|implies|impliedby|iff|setminus|neg|lor|land|bigcup|bigcap|cdot|times|simeq|approx)", - "\${MORE_SYMBOLS}": "(?:leq|geq|neq|gg|ll|equiv|sim|propto|rightarrow|leftarrow|Rightarrow|Leftarrow|leftrightarrow|to|mapsto|cap|cup|in|sum|prod|exp|ln|log|det|dots|vdots|ddots|pm|mp|int|iint|iiint|oint)", + "\${MORE_SYMBOLS}": "(?:leq|geq|neq|gg|ll|equiv|sim|propto|rightarrow|leftarrow|Rightarrow|Leftarrow|leftrightarrow|to|top|mapsto|cap|cup|in|sum|prod|exp|ln|log|det|dots|vdots|ddots|pm|mp|int|iint|iiint|oint)", "\${ACCENT}": "(?:dot|ddot|hat|bar|tilde|vec|underline|overline|mathbf|mathcal|mathrm|mathbb)", } -`;var ps=cs;var W={snippets:At,snippetVariables:ps,snippetsEnabled:!0,snippetsTrigger:"Tab",snippetNextTabstopTrigger:"Tab",snippetPreviousTabstopTrigger:"Shift-Tab",suppressSnippetTriggerOnIME:!0,suppressIMEWarning:!1,removeSnippetWhitespace:!0,autoDelete$:!0,loadSnippetsFromFile:!1,loadSnippetVariablesFromFile:!1,snippetsFileLocation:"",snippetVariablesFileLocation:"",concealEnabled:!1,concealRevealTimeout:0,colorPairedBracketsEnabled:!0,highlightCursorBracketsEnabled:!0,mathPreviewEnabled:!0,mathPreviewPositionIsAbove:!0,mathPreviewCursor:"\u25B6",mathPreviewBracketHighlighting:!1,autofractionEnabled:!0,autofractionSymbol:"\\frac",autofractionBreakingChars:"+-= ",matrixShortcutsEnabled:!0,taboutEnabled:!0,taboutTrigger:"Tab",autoEnlargeBrackets:!0,wordDelimiters:"., +-\\n :;!?\\/{}[]()=~$'\"|`<>*^%#@&",autofractionExcludedEnvs:`[ +`;var Ba=Ha;var q={snippets:bn,snippetVariables:Ba,snippetsEnabled:!0,snippetsTrigger:"Tab",snippetNextTabstopTrigger:"Tab",snippetPreviousTabstopTrigger:"Shift-Tab",suppressSnippetTriggerOnIME:!0,suppressIMEWarning:!1,removeSnippetWhitespace:!0,autoDelete$:!0,loadSnippetsFromFile:!1,loadSnippetVariablesFromFile:!1,snippetsFileLocation:"",snippetVariablesFileLocation:"",concealEnabled:!1,concealRevealTimeout:0,colorPairedBracketsEnabled:!0,highlightCursorBracketsEnabled:!0,mathPreviewEnabled:!0,mathPreviewPositionIsAbove:!0,mathPreviewCursor:"\u25B6",mathPreviewBracketHighlighting:!1,mathPreviewLivePreviewDisplay:!1,autofractionEnabled:!0,autofractionSymbol:"\\frac",autofractionBreakingChars:"+-= ",matrixShortcutsEnabled:!0,taboutEnabled:!0,taboutExitEquationOnlyOnEOL:!0,taboutTrigger:"Tab",autoEnlargeBrackets:!0,autoEnlargeBracketsSpace:!0,wordDelimiters:"., +-\\n :;!?\\/{}[]()=~$'\"|`<>*^%#@&",autofractionExcludedEnvs:`[ ["^{", "}"], ["\\\\pu{", "}"] - ]`,matrixShortcutsEnvNames:"pmatrix, cases, align, gather, bmatrix, Bmatrix, vmatrix, Vmatrix, array, matrix",taboutClosingSymbols:"), ], \\rbrack, \\}, \\rbrace, \\rangle, \\rvert, \\rVert, \\rfloor, \\rceil, \\urcorner, }",autoEnlargeBracketsTriggers:"sum, int, frac, prod, bigcup, bigcap",forceMathLanguages:"math",snippetDebug:"off",vimEnabled:!1,vimSelectMode:"",vimVisualMode:"",vimMatrixEnter:"o"};function qt(t,e){function r(i){return i.replace(/\s/g,"").split(",")}function n(i){let s=[];try{s=JSON.parse(i).map(function(a){return{openSymbol:a[0],closeSymbol:a[1]}})}catch(o){console.error(o)}return s}return ye(oe({},e),{snippets:t,autofractionExcludedEnvs:n(e.autofractionExcludedEnvs),matrixShortcutsEnvNames:r(e.matrixShortcutsEnvNames),taboutClosingSymbols:new Set(r(e.taboutClosingSymbols)),autoEnlargeBracketsTriggers:r(e.autoEnlargeBracketsTriggers).map(i=>/[A-Za-z]+/.test(i)?`\\${i}`:i),forceMathLanguages:r(e.forceMathLanguages)})}var Ur=require("@codemirror/state"),gi=require("@codemirror/view"),w=require("obsidian");var As=require("obsidian");var V="top",U="bottom",D="right",M="left",hr="auto",We=[V,U,D,M],_e="start",Le="end",us="clippingParents",dr="viewport",Ot="popper",Os="reference",xn=We.reduce(function(t,e){return t.concat([e+"-"+_e,e+"-"+Le])},[]),fr=[].concat(We,[hr]).reduce(function(t,e){return t.concat([e,e+"-"+_e,e+"-"+Le])},[]),Ql="beforeRead",Sl="read",$l="afterRead",vl="beforeMain",Tl="main",wl="afterMain",kl="beforeWrite",Pl="write",El="afterWrite",hs=[Ql,Sl,$l,vl,Tl,wl,kl,Pl,El];function F(t){return t?(t.nodeName||"").toLowerCase():null}function G(t){if(t==null)return window;if(t.toString()!=="[object Window]"){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function Te(t){var e=G(t).Element;return t instanceof e||t instanceof Element}function N(t){var e=G(t).HTMLElement;return t instanceof e||t instanceof HTMLElement}function ht(t){if(typeof ShadowRoot=="undefined")return!1;var e=G(t).ShadowRoot;return t instanceof e||t instanceof ShadowRoot}function _l(t){var e=t.state;Object.keys(e.elements).forEach(function(r){var n=e.styles[r]||{},i=e.attributes[r]||{},s=e.elements[r];!N(s)||!F(s)||(Object.assign(s.style,n),Object.keys(i).forEach(function(o){var a=i[o];a===!1?s.removeAttribute(o):s.setAttribute(o,a===!0?"":a)}))})}function Cl(t){var e=t.state,r={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,r.popper),e.styles=r,e.elements.arrow&&Object.assign(e.elements.arrow.style,r.arrow),function(){Object.keys(e.elements).forEach(function(n){var i=e.elements[n],s=e.attributes[n]||{},o=Object.keys(e.styles.hasOwnProperty(n)?e.styles[n]:r[n]),a=o.reduce(function(l,c){return l[c]="",l},{});!N(i)||!F(i)||(Object.assign(i.style,a),Object.keys(s).forEach(function(l){i.removeAttribute(l)}))})}}var ds={name:"applyStyles",enabled:!0,phase:"write",fn:_l,effect:Cl,requires:["computeStyles"]};function Y(t){return t.split("-")[0]}var xe=Math.max,Ue=Math.min,Ce=Math.round;function Oe(t,e){e===void 0&&(e=!1);var r=t.getBoundingClientRect(),n=1,i=1;if(N(t)&&e){var s=t.offsetHeight,o=t.offsetWidth;o>0&&(n=Ce(r.width)/o||1),s>0&&(i=Ce(r.height)/s||1)}return{width:r.width/n,height:r.height/i,top:r.top/i,right:r.right/n,bottom:r.bottom/i,left:r.left/n,x:r.left/n,y:r.top/i}}function Ne(t){var e=Oe(t),r=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-r)<=1&&(r=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:r,height:n}}function jt(t,e){var r=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(r&&ht(r)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function re(t){return G(t).getComputedStyle(t)}function Qn(t){return["table","td","th"].indexOf(F(t))>=0}function K(t){return((Te(t)?t.ownerDocument:t.document)||window.document).documentElement}function Re(t){return F(t)==="html"?t:t.assignedSlot||t.parentNode||(ht(t)?t.host:null)||K(t)}function fs(t){return!N(t)||re(t).position==="fixed"?null:t.offsetParent}function Rl(t){var e=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,r=navigator.userAgent.indexOf("Trident")!==-1;if(r&&N(t)){var n=re(t);if(n.position==="fixed")return null}var i=Re(t);for(ht(i)&&(i=i.host);N(i)&&["html","body"].indexOf(F(i))<0;){var s=re(i);if(s.transform!=="none"||s.perspective!=="none"||s.contain==="paint"||["transform","perspective"].indexOf(s.willChange)!==-1||e&&s.willChange==="filter"||e&&s.filter&&s.filter!=="none")return i;i=i.parentNode}return null}function Qe(t){for(var e=G(t),r=fs(t);r&&Qn(r)&&re(r).position==="static";)r=fs(r);return r&&(F(r)==="html"||F(r)==="body"&&re(r).position==="static")?e:r||Rl(t)||e}function Fe(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Ye(t,e,r){return xe(t,Ue(e,r))}function ms(t,e,r){var n=Ye(t,e,r);return n>r?r:n}function Zt(){return{top:0,right:0,bottom:0,left:0}}function Xt(t){return Object.assign({},Zt(),t)}function Wt(t,e){return e.reduce(function(r,n){return r[n]=t,r},{})}var Al=function(e,r){return e=typeof e=="function"?e(Object.assign({},r.rects,{placement:r.placement})):e,Xt(typeof e!="number"?e:Wt(e,We))};function ql(t){var e,r=t.state,n=t.name,i=t.options,s=r.elements.arrow,o=r.modifiersData.popperOffsets,a=Y(r.placement),l=Fe(a),c=[M,D].indexOf(a)>=0,p=c?"height":"width";if(!(!s||!o)){var u=Al(i.padding,r),d=Ne(s),O=l==="y"?V:M,h=l==="y"?U:D,f=r.rects.reference[p]+r.rects.reference[l]-o[l]-r.rects.popper[p],g=o[l]-r.rects.reference[l],b=Qe(s),y=b?l==="y"?b.clientHeight||0:b.clientWidth||0:0,x=f/2-g/2,S=u[O],Q=y-d[p]-u[h],m=y/2-d[p]/2+x,T=Ye(S,m,Q),C=l;r.modifiersData[n]=(e={},e[C]=T,e.centerOffset=T-m,e)}}function jl(t){var e=t.state,r=t.options,n=r.element,i=n===void 0?"[data-popper-arrow]":n;i!=null&&(typeof i=="string"&&(i=e.elements.popper.querySelector(i),!i)||jt(e.elements.popper,i)&&(e.elements.arrow=i))}var gs={name:"arrow",enabled:!0,phase:"main",fn:ql,effect:jl,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function he(t){return t.split("-")[1]}var Zl={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Xl(t){var e=t.x,r=t.y,n=window,i=n.devicePixelRatio||1;return{x:Ce(e*i)/i||0,y:Ce(r*i)/i||0}}function bs(t){var e,r=t.popper,n=t.popperRect,i=t.placement,s=t.variation,o=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,p=t.roundOffsets,u=t.isFixed,d=o.x,O=d===void 0?0:d,h=o.y,f=h===void 0?0:h,g=typeof p=="function"?p({x:O,y:f}):{x:O,y:f};O=g.x,f=g.y;var b=o.hasOwnProperty("x"),y=o.hasOwnProperty("y"),x=M,S=V,Q=window;if(c){var m=Qe(r),T="clientHeight",C="clientWidth";if(m===G(r)&&(m=K(r),re(m).position!=="static"&&a==="absolute"&&(T="scrollHeight",C="scrollWidth")),m=m,i===V||(i===M||i===D)&&s===Le){S=U;var E=u&&m===Q&&Q.visualViewport?Q.visualViewport.height:m[T];f-=E-n.height,f*=l?1:-1}if(i===M||(i===V||i===U)&&s===Le){x=D;var k=u&&m===Q&&Q.visualViewport?Q.visualViewport.width:m[C];O-=k-n.width,O*=l?1:-1}}var P=Object.assign({position:a},c&&Zl),A=p===!0?Xl({x:O,y:f}):{x:O,y:f};if(O=A.x,f=A.y,l){var q;return Object.assign({},P,(q={},q[S]=y?"0":"",q[x]=b?"0":"",q.transform=(Q.devicePixelRatio||1)<=1?"translate("+O+"px, "+f+"px)":"translate3d("+O+"px, "+f+"px, 0)",q))}return Object.assign({},P,(e={},e[S]=y?f+"px":"",e[x]=b?O+"px":"",e.transform="",e))}function Wl(t){var e=t.state,r=t.options,n=r.gpuAcceleration,i=n===void 0?!0:n,s=r.adaptive,o=s===void 0?!0:s,a=r.roundOffsets,l=a===void 0?!0:a;if(0)var c;var p={placement:Y(e.placement),variation:he(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:i,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,bs(Object.assign({},p,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:o,roundOffsets:l})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,bs(Object.assign({},p,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}var ys={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Wl,data:{}};var mr={passive:!0};function Vl(t){var e=t.state,r=t.instance,n=t.options,i=n.scroll,s=i===void 0?!0:i,o=n.resize,a=o===void 0?!0:o,l=G(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return s&&c.forEach(function(p){p.addEventListener("scroll",r.update,mr)}),a&&l.addEventListener("resize",r.update,mr),function(){s&&c.forEach(function(p){p.removeEventListener("scroll",r.update,mr)}),a&&l.removeEventListener("resize",r.update,mr)}}var xs={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Vl,data:{}};var Il={left:"right",right:"left",bottom:"top",top:"bottom"};function dt(t){return t.replace(/left|right|bottom|top/g,function(e){return Il[e]})}var Ml={start:"end",end:"start"};function gr(t){return t.replace(/start|end/g,function(e){return Ml[e]})}function He(t){var e=G(t),r=e.pageXOffset,n=e.pageYOffset;return{scrollLeft:r,scrollTop:n}}function Ke(t){return Oe(K(t)).left+He(t).scrollLeft}function Sn(t){var e=G(t),r=K(t),n=e.visualViewport,i=r.clientWidth,s=r.clientHeight,o=0,a=0;return n&&(i=n.width,s=n.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(o=n.offsetLeft,a=n.offsetTop)),{width:i,height:s,x:o+Ke(t),y:a}}function $n(t){var e,r=K(t),n=He(t),i=(e=t.ownerDocument)==null?void 0:e.body,s=xe(r.scrollWidth,r.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),o=xe(r.scrollHeight,r.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),a=-n.scrollLeft+Ke(t),l=-n.scrollTop;return re(i||r).direction==="rtl"&&(a+=xe(r.clientWidth,i?i.clientWidth:0)-s),{width:s,height:o,x:a,y:l}}function Je(t){var e=re(t),r=e.overflow,n=e.overflowX,i=e.overflowY;return/auto|scroll|overlay|hidden/.test(r+i+n)}function br(t){return["html","body","#document"].indexOf(F(t))>=0?t.ownerDocument.body:N(t)&&Je(t)?t:br(Re(t))}function Ve(t,e){var r;e===void 0&&(e=[]);var n=br(t),i=n===((r=t.ownerDocument)==null?void 0:r.body),s=G(n),o=i?[s].concat(s.visualViewport||[],Je(n)?n:[]):n,a=e.concat(o);return i?a:a.concat(Ve(Re(o)))}function ft(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Gl(t){var e=Oe(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}function Qs(t,e){return e===dr?ft(Sn(t)):Te(e)?Gl(e):ft($n(K(t)))}function Bl(t){var e=Ve(Re(t)),r=["absolute","fixed"].indexOf(re(t).position)>=0,n=r&&N(t)?Qe(t):t;return Te(n)?e.filter(function(i){return Te(i)&&jt(i,n)&&F(i)!=="body"}):[]}function vn(t,e,r){var n=e==="clippingParents"?Bl(t):[].concat(e),i=[].concat(n,[r]),s=i[0],o=i.reduce(function(a,l){var c=Qs(t,l);return a.top=xe(c.top,a.top),a.right=Ue(c.right,a.right),a.bottom=Ue(c.bottom,a.bottom),a.left=xe(c.left,a.left),a},Qs(t,s));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function Vt(t){var e=t.reference,r=t.element,n=t.placement,i=n?Y(n):null,s=n?he(n):null,o=e.x+e.width/2-r.width/2,a=e.y+e.height/2-r.height/2,l;switch(i){case V:l={x:o,y:e.y-r.height};break;case U:l={x:o,y:e.y+e.height};break;case D:l={x:e.x+e.width,y:a};break;case M:l={x:e.x-r.width,y:a};break;default:l={x:e.x,y:e.y}}var c=i?Fe(i):null;if(c!=null){var p=c==="y"?"height":"width";switch(s){case _e:l[c]=l[c]-(e[p]/2-r[p]/2);break;case Le:l[c]=l[c]+(e[p]/2-r[p]/2);break;default:}}return l}function Se(t,e){e===void 0&&(e={});var r=e,n=r.placement,i=n===void 0?t.placement:n,s=r.boundary,o=s===void 0?us:s,a=r.rootBoundary,l=a===void 0?dr:a,c=r.elementContext,p=c===void 0?Ot:c,u=r.altBoundary,d=u===void 0?!1:u,O=r.padding,h=O===void 0?0:O,f=Xt(typeof h!="number"?h:Wt(h,We)),g=p===Ot?Os:Ot,b=t.rects.popper,y=t.elements[d?g:p],x=vn(Te(y)?y:y.contextElement||K(t.elements.popper),o,l),S=Oe(t.elements.reference),Q=Vt({reference:S,element:b,strategy:"absolute",placement:i}),m=ft(Object.assign({},b,Q)),T=p===Ot?m:S,C={top:x.top-T.top+f.top,bottom:T.bottom-x.bottom+f.bottom,left:x.left-T.left+f.left,right:T.right-x.right+f.right},E=t.modifiersData.offset;if(p===Ot&&E){var k=E[i];Object.keys(C).forEach(function(P){var A=[D,U].indexOf(P)>=0?1:-1,q=[V,U].indexOf(P)>=0?"y":"x";C[P]+=k[q]*A})}return C}function Tn(t,e){e===void 0&&(e={});var r=e,n=r.placement,i=r.boundary,s=r.rootBoundary,o=r.padding,a=r.flipVariations,l=r.allowedAutoPlacements,c=l===void 0?fr:l,p=he(n),u=p?a?xn:xn.filter(function(h){return he(h)===p}):We,d=u.filter(function(h){return c.indexOf(h)>=0});d.length===0&&(d=u);var O=d.reduce(function(h,f){return h[f]=Se(t,{placement:f,boundary:i,rootBoundary:s,padding:o})[Y(f)],h},{});return Object.keys(O).sort(function(h,f){return O[h]-O[f]})}function Dl(t){if(Y(t)===hr)return[];var e=dt(t);return[gr(t),e,gr(e)]}function zl(t){var e=t.state,r=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var i=r.mainAxis,s=i===void 0?!0:i,o=r.altAxis,a=o===void 0?!0:o,l=r.fallbackPlacements,c=r.padding,p=r.boundary,u=r.rootBoundary,d=r.altBoundary,O=r.flipVariations,h=O===void 0?!0:O,f=r.allowedAutoPlacements,g=e.options.placement,b=Y(g),y=b===g,x=l||(y||!h?[dt(g)]:Dl(g)),S=[g].concat(x).reduce(function(Ee,Ze){return Ee.concat(Y(Ze)===hr?Tn(e,{placement:Ze,boundary:p,rootBoundary:u,padding:c,flipVariations:h,allowedAutoPlacements:f}):Ze)},[]),Q=e.rects.reference,m=e.rects.popper,T=new Map,C=!0,E=S[0],k=0;k=0,ne=pe?"width":"height",Z=Se(e,{placement:P,boundary:p,rootBoundary:u,altBoundary:d,padding:c}),ie=pe?q?D:M:q?U:V;Q[ne]>m[ne]&&(ie=dt(ie));var ce=dt(ie),L=[];if(s&&L.push(Z[A]<=0),a&&L.push(Z[ie]<=0,Z[ce]<=0),L.every(function(Ee){return Ee})){E=P,C=!1;break}T.set(P,L)}if(C)for(var se=h?3:1,be=function(Ze){var Et=S.find(function(tr){var Be=T.get(tr);if(Be)return Be.slice(0,Ze).every(function(an){return an})});if(Et)return E=Et,"break"},ue=se;ue>0;ue--){var Pe=be(ue);if(Pe==="break")break}e.placement!==E&&(e.modifiersData[n]._skip=!0,e.placement=E,e.reset=!0)}}var Ss={name:"flip",enabled:!0,phase:"main",fn:zl,requiresIfExists:["offset"],data:{_skip:!1}};function $s(t,e,r){return r===void 0&&(r={x:0,y:0}),{top:t.top-e.height-r.y,right:t.right-e.width+r.x,bottom:t.bottom-e.height+r.y,left:t.left-e.width-r.x}}function vs(t){return[V,D,U,M].some(function(e){return t[e]>=0})}function Ll(t){var e=t.state,r=t.name,n=e.rects.reference,i=e.rects.popper,s=e.modifiersData.preventOverflow,o=Se(e,{elementContext:"reference"}),a=Se(e,{altBoundary:!0}),l=$s(o,n),c=$s(a,i,s),p=vs(l),u=vs(c);e.modifiersData[r]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:u},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":u})}var Ts={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:Ll};function Ul(t,e,r){var n=Y(t),i=[M,V].indexOf(n)>=0?-1:1,s=typeof r=="function"?r(Object.assign({},e,{placement:t})):r,o=s[0],a=s[1];return o=o||0,a=(a||0)*i,[M,D].indexOf(n)>=0?{x:a,y:o}:{x:o,y:a}}function Nl(t){var e=t.state,r=t.options,n=t.name,i=r.offset,s=i===void 0?[0,0]:i,o=fr.reduce(function(p,u){return p[u]=Ul(u,e.rects,s),p},{}),a=o[e.placement],l=a.x,c=a.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=o}var ws={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:Nl};function Fl(t){var e=t.state,r=t.name;e.modifiersData[r]=Vt({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})}var ks={name:"popperOffsets",enabled:!0,phase:"read",fn:Fl,data:{}};function wn(t){return t==="x"?"y":"x"}function Yl(t){var e=t.state,r=t.options,n=t.name,i=r.mainAxis,s=i===void 0?!0:i,o=r.altAxis,a=o===void 0?!1:o,l=r.boundary,c=r.rootBoundary,p=r.altBoundary,u=r.padding,d=r.tether,O=d===void 0?!0:d,h=r.tetherOffset,f=h===void 0?0:h,g=Se(e,{boundary:l,rootBoundary:c,padding:u,altBoundary:p}),b=Y(e.placement),y=he(e.placement),x=!y,S=Fe(b),Q=wn(S),m=e.modifiersData.popperOffsets,T=e.rects.reference,C=e.rects.popper,E=typeof f=="function"?f(Object.assign({},e.rects,{placement:e.placement})):f,k=typeof E=="number"?{mainAxis:E,altAxis:E}:Object.assign({mainAxis:0,altAxis:0},E),P=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,A={x:0,y:0};if(m){if(s){var q,pe=S==="y"?V:M,ne=S==="y"?U:D,Z=S==="y"?"height":"width",ie=m[S],ce=ie+g[pe],L=ie-g[ne],se=O?-C[Z]/2:0,be=y===_e?T[Z]:C[Z],ue=y===_e?-C[Z]:-T[Z],Pe=e.elements.arrow,Ee=O&&Pe?Ne(Pe):{width:0,height:0},Ze=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:Zt(),Et=Ze[pe],tr=Ze[ne],Be=Ye(0,T[Z],Ee[Z]),an=x?T[Z]/2-se-Be-Et-k.mainAxis:be-Be-Et-k.mainAxis,Pa=x?-T[Z]/2+se+Be+tr+k.mainAxis:ue+Be+tr+k.mainAxis,ln=e.elements.arrow&&Qe(e.elements.arrow),Ea=ln?S==="y"?ln.clientTop||0:ln.clientLeft||0:0,Ti=(q=P==null?void 0:P[S])!=null?q:0,_a=ie+an-Ti-Ea,Ca=ie+Pa-Ti,wi=Ye(O?Ue(ce,_a):ce,ie,O?xe(L,Ca):L);m[S]=wi,A[S]=wi-ie}if(a){var ki,Ra=S==="x"?V:M,Aa=S==="x"?U:D,De=m[Q],rr=Q==="y"?"height":"width",Pi=De+g[Ra],Ei=De-g[Aa],cn=[V,M].indexOf(b)!==-1,_i=(ki=P==null?void 0:P[Q])!=null?ki:0,Ci=cn?Pi:De-T[rr]-C[rr]-_i+k.altAxis,Ri=cn?De+T[rr]+C[rr]-_i-k.altAxis:Ei,Ai=O&&cn?ms(Ci,De,Ri):Ye(O?Ci:Pi,De,O?Ri:Ei);m[Q]=Ai,A[Q]=Ai-De}e.modifiersData[n]=A}}var Ps={name:"preventOverflow",enabled:!0,phase:"main",fn:Yl,requiresIfExists:["offset"]};function kn(t){return{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function Pn(t){return t===G(t)||!N(t)?He(t):kn(t)}function Hl(t){var e=t.getBoundingClientRect(),r=Ce(e.width)/t.offsetWidth||1,n=Ce(e.height)/t.offsetHeight||1;return r!==1||n!==1}function En(t,e,r){r===void 0&&(r=!1);var n=N(e),i=N(e)&&Hl(e),s=K(e),o=Oe(t,i),a={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(n||!n&&!r)&&((F(e)!=="body"||Je(s))&&(a=Pn(e)),N(e)?(l=Oe(e,!0),l.x+=e.clientLeft,l.y+=e.clientTop):s&&(l.x=Ke(s))),{x:o.left+a.scrollLeft-l.x,y:o.top+a.scrollTop-l.y,width:o.width,height:o.height}}function Kl(t){var e=new Map,r=new Set,n=[];t.forEach(function(s){e.set(s.name,s)});function i(s){r.add(s.name);var o=[].concat(s.requires||[],s.requiresIfExists||[]);o.forEach(function(a){if(!r.has(a)){var l=e.get(a);l&&i(l)}}),n.push(s)}return t.forEach(function(s){r.has(s.name)||i(s)}),n}function _n(t){var e=Kl(t);return hs.reduce(function(r,n){return r.concat(e.filter(function(i){return i.phase===n}))},[])}function Cn(t){var e;return function(){return e||(e=new Promise(function(r){Promise.resolve().then(function(){e=void 0,r(t())})})),e}}function Rn(t){var e=t.reduce(function(r,n){var i=r[n.name];return r[n.name]=i?Object.assign({},i,n,{options:Object.assign({},i.options,n.options),data:Object.assign({},i.data,n.data)}):n,r},{});return Object.keys(e).map(function(r){return e[r]})}var Es={placement:"bottom",modifiers:[],strategy:"absolute"};function _s(){for(var t=arguments.length,e=new Array(t),r=0;r(t%e+e)%e,qn=class{constructor(e,r,n){this.owner=e,this.containerEl=r,r.on("click",".suggestion-item",this.onSuggestionClick.bind(this)),r.on("mousemove",".suggestion-item",this.onSuggestionMouseover.bind(this)),n.register([],"ArrowUp",i=>{if(!i.isComposing)return this.setSelectedItem(this.selectedItem-1,!0),!1}),n.register([],"ArrowDown",i=>{if(!i.isComposing)return this.setSelectedItem(this.selectedItem+1,!0),!1}),n.register([],"Enter",i=>{if(!i.isComposing)return this.useSelectedItem(i),!1})}onSuggestionClick(e,r){e.preventDefault();let n=this.suggestions.indexOf(r);this.setSelectedItem(n,!1),this.useSelectedItem(e)}onSuggestionMouseover(e,r){let n=this.suggestions.indexOf(r);this.setSelectedItem(n,!1)}setSuggestions(e){this.containerEl.empty();let r=[];e.forEach(n=>{let i=this.containerEl.createDiv("suggestion-item");this.owner.renderSuggestion(n,i),r.push(i)}),this.values=e,this.suggestions=r,this.setSelectedItem(0,!1)}useSelectedItem(e){let r=this.values[this.selectedItem];r&&this.owner.selectSuggestion(r,e)}setSelectedItem(e,r){let n=ec(e,this.suggestions.length),i=this.suggestions[this.selectedItem],s=this.suggestions[n];i==null||i.removeClass("is-selected"),s==null||s.addClass("is-selected"),this.selectedItem=n,r&&s.scrollIntoView(!1)}},yr=class{constructor(e,r){this.app=e,this.inputEl=r,this.scope=new Rs.Scope,this.suggestEl=createDiv("suggestion-container");let n=this.suggestEl.createDiv("suggestion");this.suggest=new qn(this,n,this.scope),this.scope.register([],"Escape",this.close.bind(this)),this.inputEl.addEventListener("input",this.onInputChanged.bind(this)),this.inputEl.addEventListener("focus",this.onInputChanged.bind(this)),this.inputEl.addEventListener("blur",this.close.bind(this)),this.suggestEl.on("mousedown",".suggestion-container",i=>{i.preventDefault()})}onInputChanged(){let e=this.inputEl.value,r=this.getSuggestions(e);r.length>0&&(this.suggest.setSuggestions(r),this.open(this.app.dom.appContainerEl,this.inputEl))}open(e,r){this.app.keymap.pushScope(this.scope),e.appendChild(this.suggestEl),this.popper=An(r,this.suggestEl,{placement:"bottom-start",modifiers:[{name:"sameWidth",enabled:!0,fn:({state:n,instance:i})=>{let s=`${n.rects.reference.width}px`;n.styles.popper.width!==s&&(n.styles.popper.width=s,i.update())},phase:"beforeWrite",requires:["computeStyles"]}]})}close(){this.app.keymap.popScope(this.scope),this.suggest.setSuggestions([]),this.popper.destroy(),this.suggestEl.detach()}};var It=class extends yr{getSuggestions(e){let r=[],n=e.toLowerCase();return As.Vault.recurseChildren(this.app.vault.getRoot(),i=>{i.path.toLowerCase().contains(n)&&r.push(i)}),r}renderSuggestion(e,r){r.setText(e.path)}selectSuggestion(e){this.inputEl.value=e.path,this.inputEl.trigger("input"),this.close()}};var le=require("@codemirror/view"),co=require("@codemirror/state");var tc=0,Mt=class{constructor(e,r){this.from=e,this.to=r}},j=class{constructor(e={}){this.id=tc++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=de.match(e)),r=>{let n=e(r);return n===void 0?null:[this,n]}}};j.closedBy=new j({deserialize:t=>t.split(" ")});j.openedBy=new j({deserialize:t=>t.split(" ")});j.group=new j({deserialize:t=>t.split(" ")});j.contextHash=new j({perNode:!0});j.lookAhead=new j({perNode:!0});j.mounted=new j({perNode:!0});var mt=class{constructor(e,r,n){this.tree=e,this.overlay=r,this.parser=n}static get(e){return e&&e.props&&e.props[j.mounted.id]}},rc=Object.create(null),de=class t{constructor(e,r,n,i=0){this.name=e,this.props=r,this.id=n,this.flags=i}static define(e){let r=e.props&&e.props.length?Object.create(null):rc,n=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),i=new t(e.name||"",r,e.id,n);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(i)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");r[s[0].id]=s[1]}}return i}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let r=this.prop(j.group);return r?r.indexOf(e)>-1:!1}return this.id==e}static match(e){let r=Object.create(null);for(let n in e)for(let i of n.split(" "))r[i]=e[n];return n=>{for(let i=n.prop(j.group),s=-1;s<(i?i.length:0);s++){let o=r[s<0?n.name:i[s]];if(o)return o}}}};de.none=new de("",Object.create(null),0,8);var Sr=class t{constructor(e){this.types=e;for(let r=0;r0;for(let l=this.cursor(o|z.IncludeAnonymous);;){let c=!1;if(l.from<=s&&l.to>=i&&(!a&&l.type.isAnonymous||r(l)!==!1)){if(l.firstChild())continue;c=!0}for(;c&&n&&(a||!l.type.isAnonymous)&&n(l),!l.nextSibling();){if(!l.parent())return;c=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let r in this.props)e.push([+r,this.props[r]]);return e}balance(e={}){return this.children.length<=8?this:Mn(de.none,this.children,this.positions,0,this.children.length,0,this.length,(r,n,i)=>new t(this.type,r,n,i,this.propValues),e.makeTree||((r,n,i)=>new t(de.none,r,n,i)))}static build(e){return ic(e)}};ae.empty=new ae(de.none,[],[],0);var jn=class t{constructor(e,r){this.buffer=e,this.index=r}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new t(this.buffer,this.index)}},et=class t{constructor(e,r,n){this.buffer=e,this.length=r,this.set=n}get type(){return de.none}toString(){let e=[];for(let r=0;r0));l=o[l+3]);return a}slice(e,r,n){let i=this.buffer,s=new Uint16Array(r-e),o=0;for(let a=e,l=0;a=e&&re;case 1:return r<=e&&n>e;case 2:return n>e;case 4:return!0}}function Gt(t,e,r,n){for(var i;t.from==t.to||(r<1?t.from>=e:t.from>e)||(r>-1?t.to<=e:t.to0?a.length:-1;e!=c;e+=r){let p=a[e],u=l[e]+o.from;if(Xs(i,n,u,u+p.length)){if(p instanceof et){if(s&z.ExcludeBuffers)continue;let d=p.findChild(0,p.buffer.length,r,n-u,i);if(d>-1)return new tt(new Xn(o,p,e,u),null,d)}else if(s&z.IncludeAnonymous||!p.type.isAnonymous||In(p)){let d;if(!(s&z.IgnoreMounts)&&(d=mt.get(p))&&!d.overlay)return new t(d.tree,u,e,o);let O=new t(p,u,e,o);return s&z.IncludeAnonymous||!O.type.isAnonymous?O:O.nextChild(r<0?p.children.length-1:0,r,n,i)}}}if(s&z.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+r:e=r<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,r,n=0){let i;if(!(n&z.IgnoreOverlays)&&(i=mt.get(this._tree))&&i.overlay){let s=e-this.from;for(let{from:o,to:a}of i.overlay)if((r>0?o<=s:o=s:a>s))return new t(i.tree,i.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,r,n)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};function js(t,e,r,n){let i=t.cursor(),s=[];if(!i.firstChild())return s;if(r!=null){for(;!i.type.is(r);)if(!i.nextSibling())return s}for(;;){if(n!=null&&i.type.is(n))return s;if(i.type.is(e)&&s.push(i.node),!i.nextSibling())return n==null?s:[]}}function Zn(t,e,r=e.length-1){for(let n=t.parent;r>=0;n=n.parent){if(!n)return!1;if(!n.type.isAnonymous){if(e[r]&&e[r]!=n.name)return!1;r--}}return!0}var Xn=class{constructor(e,r,n,i){this.parent=e,this.buffer=r,this.index=n,this.start=i}},tt=class t extends $r{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,r,n){super(),this.context=e,this._parent=r,this.index=n,this.type=e.buffer.set.types[e.buffer.buffer[n]]}child(e,r,n){let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],e,r-this.context.start,n);return s<0?null:new t(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,r,n=0){if(n&z.ExcludeBuffers)return null;let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],r>0?1:-1,e-this.context.start,r);return s<0?null:new t(this.context,this,s)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,r=e.buffer[this.index+3];return r<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new t(this.context,this._parent,r):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,r=this._parent?this._parent.index+4:0;return this.index==r?this.externalSibling(-1):new t(this.context,this._parent,e.findChild(r,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],r=[],{buffer:n}=this.context,i=this.index+4,s=n.buffer[this.index+3];if(s>i){let o=n.buffer[this.index+1];e.push(n.slice(i,s,o)),r.push(0)}return new ae(this.type,e,r,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};function Ws(t){if(!t.length)return null;if(t.length==1)return t[0];let e=0,r=t[0];for(let s=1;sr.from||o.to=e){let a=new fe(o.tree,o.overlay[0].from+s.from,0,null);(i||(i=[n])).push(Gt(a,e,r,!1))}}return i?Ws(i):n}var Bt=class{get name(){return this.type.name}constructor(e,r=0){if(this.mode=r,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof fe)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let n=e._parent;n;n=n._parent)this.stack.unshift(n.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,r){this.index=e;let{start:n,buffer:i}=this.buffer;return this.type=r||i.set.types[i.buffer[e]],this.from=n+i.buffer[e+1],this.to=n+i.buffer[e+2],!0}yield(e){return e?e instanceof fe?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,r,n){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,r,n,this.mode));let{buffer:i}=this.buffer,s=i.findChild(this.index+4,i.buffer[this.index+3],e,r-this.buffer.start,n);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,r,n=this.mode){return this.buffer?n&z.ExcludeBuffers?!1:this.enterChild(1,e,r):this.yield(this._tree.enter(e,r,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&z.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&z.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:r}=this.buffer,n=this.stack.length-1;if(e<0){let i=n<0?0:this.stack[n]+4;if(this.index!=i)return this.yieldBuf(r.findChild(i,this.index,-1,0,4))}else{let i=r.buffer[this.index+3];if(i<(n<0?r.buffer.length:r.buffer[this.stack[n]+3]))return this.yieldBuf(i)}return n<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let r,n,{buffer:i}=this;if(i){if(e>0){if(this.index-1)for(let s=r+e,o=e<0?-1:n._tree.children.length;s!=o;s+=e){let a=n._tree.children[s];if(this.mode&z.IncludeAnonymous||a instanceof et||!a.type.isAnonymous||In(a))return!1}return!0}move(e,r){if(r&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,r=0){for(;(this.from==this.to||(r<1?this.from>=e:this.from>e)||(r>-1?this.to<=e:this.to=0;){for(let o=e;o;o=o._parent)if(o.index==i){if(i==this.index)return o;r=o,n=s+1;break e}i=this.stack[--s]}for(let i=n;i=0;s--){if(s<0)return Zn(this.node,e,i);let o=n[r.buffer[this.stack[s]]];if(!o.isAnonymous){if(e[i]&&e[i]!=o.name)return!1;i--}}return!0}};function In(t){return t.children.some(e=>e instanceof et||!e.type.isAnonymous||In(e))}function ic(t){var e;let{buffer:r,nodeSet:n,maxBufferLength:i=1024,reused:s=[],minRepeatType:o=n.types.length}=t,a=Array.isArray(r)?new jn(r,r.length):r,l=n.types,c=0,p=0;function u(S,Q,m,T,C){let{id:E,start:k,end:P,size:A}=a,q=p;for(;A<0;)if(a.next(),A==-1){let ce=s[E];m.push(ce),T.push(k-S);return}else if(A==-3){c=E;return}else if(A==-4){p=E;return}else throw new RangeError(`Unrecognized record size: ${A}`);let pe=l[E],ne,Z,ie=k-S;if(P-k<=i&&(Z=f(a.pos-Q,C))){let ce=new Uint16Array(Z.size-Z.skip),L=a.pos-Z.size,se=ce.length;for(;a.pos>L;)se=g(Z.start,ce,se);ne=new et(ce,P-Z.start,n),ie=Z.start-S}else{let ce=a.pos-A;a.next();let L=[],se=[],be=E>=o?E:-1,ue=0,Pe=P;for(;a.pos>ce;)be>=0&&a.id==be&&a.size>=0?(a.end<=Pe-i&&(O(L,se,k,ue,a.end,Pe,be,q),ue=L.length,Pe=a.end),a.next()):u(k,ce,L,se,be);if(be>=0&&ue>0&&ue-1&&ue>0){let Ee=d(pe);ne=Mn(pe,L,se,0,L.length,0,P-k,Ee,Ee)}else ne=h(pe,L,se,P-k,q-P)}m.push(ne),T.push(ie)}function d(S){return(Q,m,T)=>{let C=0,E=Q.length-1,k,P;if(E>=0&&(k=Q[E])instanceof ae){if(!E&&k.type==S&&k.length==T)return k;(P=k.prop(j.lookAhead))&&(C=m[E]+k.length+P)}return h(S,Q,m,T,C)}}function O(S,Q,m,T,C,E,k,P){let A=[],q=[];for(;S.length>T;)A.push(S.pop()),q.push(Q.pop()+m-C);S.push(h(n.types[k],A,q,E-C,P-E)),Q.push(C-m)}function h(S,Q,m,T,C=0,E){if(c){let k=[j.contextHash,c];E=E?[k].concat(E):[k]}if(C>25){let k=[j.lookAhead,C];E=E?[k].concat(E):[k]}return new ae(S,Q,m,T,E)}function f(S,Q){let m=a.fork(),T=0,C=0,E=0,k=m.end-i,P={size:0,start:0,skip:0};e:for(let A=m.pos-S;m.pos>A;){let q=m.size;if(m.id==Q&&q>=0){P.size=T,P.start=C,P.skip=E,E+=4,T+=4,m.next();continue}let pe=m.pos-q;if(q<0||pe=o?4:0,Z=m.start;for(m.next();m.pos>pe;){if(m.size<0)if(m.size==-3)ne+=4;else break e;else m.id>=o&&(ne+=4);m.next()}C=Z,T+=q,E+=ne}return(Q<0||T==S)&&(P.size=T,P.start=C,P.skip=E),P.size>4?P:void 0}function g(S,Q,m){let{id:T,start:C,end:E,size:k}=a;if(a.next(),k>=0&&T4){let A=a.pos-(k-4);for(;a.pos>A;)m=g(S,Q,m)}Q[--m]=P,Q[--m]=E-S,Q[--m]=C-S,Q[--m]=T}else k==-3?c=T:k==-4&&(p=T);return m}let b=[],y=[];for(;a.pos>0;)u(t.start||0,t.bufferStart||0,b,y,-1);let x=(e=t.length)!==null&&e!==void 0?e:b.length?y[0]+b[0].length:0;return new ae(l[t.topID],b.reverse(),y.reverse(),x)}var Zs=new WeakMap;function Qr(t,e){if(!t.isAnonymous||e instanceof et||e.type!=t)return 1;let r=Zs.get(e);if(r==null){r=1;for(let n of e.children){if(n.type!=t||!(n instanceof ae)){r=1;break}r+=Qr(t,n)}Zs.set(e,r)}return r}function Mn(t,e,r,n,i,s,o,a,l){let c=0;for(let h=n;h=p)break;m+=T}if(x==S+1){if(m>p){let T=h[S];O(T.children,T.positions,0,T.children.length,f[S]+y);continue}u.push(h[S])}else{let T=f[x-1]+h[x-1].length-Q;u.push(Mn(t,h,f,S,x,Q,T,null,l))}d.push(Q+y-s)}}return O(e,r,n,i,0),(a||l)(u,d,o)}var vr=class{constructor(){this.map=new WeakMap}setBuffer(e,r,n){let i=this.map.get(e);i||this.map.set(e,i=new Map),i.set(r,n)}getBuffer(e,r){let n=this.map.get(e);return n&&n.get(r)}set(e,r){e instanceof tt?this.setBuffer(e.context.buffer,e.index,r):e instanceof fe&&this.map.set(e.tree,r)}get(e){return e instanceof tt?this.getBuffer(e.context.buffer,e.index):e instanceof fe?this.map.get(e.tree):void 0}cursorSet(e,r){e.buffer?this.setBuffer(e.buffer.buffer,e.index,r):this.map.set(e.tree,r)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}};var Tr=class{startParse(e,r,n){return typeof e=="string"&&(e=new Vn(e)),n=n?n.length?n.map(i=>new Mt(i.from,i.to)):[new Mt(0,0)]:[new Mt(0,e.length)],this.createParse(e,r||[],n)}parse(e,r,n){let i=this.startParse(e,r,n);for(;;){let s=i.advance();if(s)return s}}},Vn=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,r){return this.string.slice(e,r)}};var zf=new j({perNode:!0});var Dn=class t{constructor(e,r,n,i,s,o,a,l,c,p=0,u){this.p=e,this.stack=r,this.state=n,this.reducePos=i,this.pos=s,this.score=o,this.buffer=a,this.bufferBase=l,this.curContext=c,this.lookAhead=p,this.parent=u}toString(){return`[${this.stack.filter((e,r)=>r%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,r,n=0){let i=e.parser.context;return new t(e,[],r,n,n,0,[],0,i?new kr(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,r){this.stack.push(this.state,r,this.bufferBase+this.buffer.length),this.state=e}reduce(e){let r=e>>19,n=e&65535,{parser:i}=this.p,s=i.dynamicPrecedence(n);if(s&&(this.score+=s),r==0){this.pushState(i.getGoto(this.state,n,!0),this.reducePos),no;)this.stack.pop();this.reduceContext(n,a)}storeNode(e,r,n,i=4,s=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&o.buffer[a-4]==0&&o.buffer[a-1]>-1){if(r==n)return;if(o.buffer[a-2]>=r){o.buffer[a-2]=n;return}}}if(!s||this.pos==n)this.buffer.push(e,r,n,i);else{let o=this.buffer.length;if(o>0&&this.buffer[o-4]!=0)for(;o>0&&this.buffer[o-2]>n;)this.buffer[o]=this.buffer[o-4],this.buffer[o+1]=this.buffer[o-3],this.buffer[o+2]=this.buffer[o-2],this.buffer[o+3]=this.buffer[o-1],o-=4,i>4&&(i-=4);this.buffer[o]=e,this.buffer[o+1]=r,this.buffer[o+2]=n,this.buffer[o+3]=i}}shift(e,r,n){let i=this.pos;if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=n,this.shiftContext(r,i),r<=this.p.parser.maxNode&&this.buffer.push(r,i,n,4);else{let s=e,{parser:o}=this.p;(n>this.pos||r<=o.maxNode)&&(this.pos=n,o.stateFlag(s,1)||(this.reducePos=n)),this.pushState(s,i),this.shiftContext(r,i),r<=o.maxNode&&this.buffer.push(r,i,n,4)}}apply(e,r,n){e&65536?this.reduce(e):this.shift(e,r,n)}useNode(e,r){let n=this.p.reused.length-1;(n<0||this.p.reused[n]!=e)&&(this.p.reused.push(e),n++);let i=this.pos;this.reducePos=this.pos=i+e.length,this.pushState(r,i),this.buffer.push(n,i,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,r=e.buffer.length;for(;r>0&&e.buffer[r-2]>e.reducePos;)r-=4;let n=e.buffer.slice(r),i=e.bufferBase+r;for(;e&&i==e.bufferBase;)e=e.parent;return new t(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,n,i,this.curContext,this.lookAhead,e)}recoverByDelete(e,r){let n=e<=this.p.parser.maxNode;n&&this.storeNode(e,this.pos,r,4),this.storeNode(0,this.pos,r,n?8:4),this.pos=this.reducePos=r,this.score-=190}canShift(e){for(let r=new zn(this);;){let n=this.p.parser.stateSlot(r.state,4)||this.p.parser.hasAction(r.state,e);if(!(n&65536))return!0;if(n==0)return!1;r.reduce(n)}}recoverByInsert(e){if(this.stack.length>=300)return[];let r=this.p.parser.nextStates(this.state);if(r.length>8||this.stack.length>=120){let i=[];for(let s=0,o;sl&1&&a==o)||i.push(r[s],o)}r=i}let n=[];for(let i=0;i>19,i=e&65535,s=this.stack.length-n*3;if(s<0||r.getGoto(this.stack[s],i,!1)<0)return!1;this.storeNode(0,this.reducePos,this.reducePos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(e),!0}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let r=0;rthis.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}},kr=class{constructor(e,r){this.tracker=e,this.context=r,this.hash=e.strict?e.hash(r):0}},Vs;(function(t){t[t.Insert=200]="Insert",t[t.Delete=190]="Delete",t[t.Reduce=100]="Reduce",t[t.MaxNext=4]="MaxNext",t[t.MaxInsertStackDepth=300]="MaxInsertStackDepth",t[t.DampenInsertStackDepth=120]="DampenInsertStackDepth"})(Vs||(Vs={}));var zn=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let r=e&65535,n=e>>19;n==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(n-1)*3;let i=this.start.p.parser.getGoto(this.stack[this.base-3],r,!0);this.state=i}},Ln=class t{constructor(e,r,n){this.stack=e,this.pos=r,this.index=n,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,r=e.bufferBase+e.buffer.length){return new t(e,r,r-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new t(this.stack,this.pos,this.index)}},gt=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},Is=new gt,Un=class{constructor(e,r){this.input=e,this.ranges=r,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=Is,this.rangeIndex=0,this.pos=this.chunkPos=r[0].from,this.range=r[0],this.end=r[r.length-1].to,this.readNext()}resolveOffset(e,r){let n=this.range,i=this.rangeIndex,s=this.pos+e;for(;sn.to:s>=n.to;){if(i==this.ranges.length-1)return null;let o=this.ranges[++i];s+=o.from-n.to,n=o}return s}peek(e){let r=this.chunkOff+e,n,i;if(r>=0&&r=this.chunk2Pos&&na.to&&(this.chunk2=this.chunk2.slice(0,a.to-n)),i=this.chunk2.charCodeAt(0)}}return n>=this.token.lookAhead&&(this.token.lookAhead=n+1),i}acceptToken(e,r=0){let n=r?this.resolveOffset(r,-1):this.pos;if(n==null||n=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,r){if(r?(this.token=r,r.start=e,r.lookAhead=e+1,r.value=r.extended=-1):this.token=Is,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&r<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,r-this.chunkPos);if(e>=this.chunk2Pos&&r<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,r-this.chunk2Pos);if(e>=this.range.from&&r<=this.range.to)return this.input.read(e,r);let n="";for(let i of this.ranges){if(i.from>=r)break;i.to>e&&(n+=this.input.read(Math.max(i.from,e),Math.min(i.to,r)))}return n}},bt=class{constructor(e,r){this.data=e,this.id=r}token(e,r){oc(this.data,e,r,this.id)}};bt.prototype.contextual=bt.prototype.fallback=bt.prototype.extend=!1;var Ie=class{constructor(e,r={}){this.token=e,this.contextual=!!r.contextual,this.fallback=!!r.fallback,this.extend=!!r.extend}};function oc(t,e,r,n){let i=0,s=1<0){let O=t[d];if(a.allows(O)&&(e.token.value==-1||e.token.value==O||o.overrides(O,e.token.value))){e.acceptToken(O);break}}let c=e.next,p=0,u=t[i+2];if(e.next<0&&u>p&&t[l+u*3-3]==65535){i=t[l+u*3-1];continue e}for(;p>1,O=l+d+(d<<1),h=t[O],f=t[O+1];if(c=f)p=d+1;else{i=t[O+2],e.advance();continue e}}break}}function wr(t,e=Uint16Array){if(typeof t!="string")return t;let r=null;for(let n=0,i=0;n=92&&o--,o>=34&&o--;let l=o-32;if(l>=46&&(l-=46,a=!0),s+=l,a)break;s*=46}r?r[i++]=s:r=new e(s)}return r}var $e=typeof process!="undefined"&&process.env&&/\bparse\b/.test(process.env.LOG),Gn=null,Ms;(function(t){t[t.Margin=25]="Margin"})(Ms||(Ms={}));function Gs(t,e,r){let n=t.cursor(z.IncludeAnonymous);for(n.moveTo(e);;)if(!(r<0?n.childBefore(e):n.childAfter(e)))for(;;){if((r<0?n.toe)&&!n.type.isError)return r<0?Math.max(0,Math.min(n.to-1,e-25)):Math.min(t.length,Math.max(n.from+1,e+25));if(r<0?n.prevSibling():n.nextSibling())break;if(!n.parent())return r<0?0:t.length}}var Nn=class{constructor(e,r){this.fragments=e,this.nodeSet=r,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?Gs(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?Gs(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=o,null;if(s instanceof ae){if(o==e){if(o=Math.max(this.safeFrom,e)&&(this.trees.push(s),this.start.push(o),this.index.push(0))}else this.index[r]++,this.nextStart=o+s.length}}},Fn=class{constructor(e,r){this.stream=r,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(n=>new gt)}getActions(e){let r=0,n=null,{parser:i}=e.p,{tokenizers:s}=i,o=i.stateSlot(e.state,3),a=e.curContext?e.curContext.hash:0,l=0;for(let c=0;cu.end+25&&(l=Math.max(u.lookAhead,l)),u.value!=0)){let d=r;if(u.extended>-1&&(r=this.addActions(e,u.extended,u.end,r)),r=this.addActions(e,u.value,u.end,r),!p.extend&&(n=u,r>d))break}}for(;this.actions.length>r;)this.actions.pop();return l&&e.setLookAhead(l),!n&&e.pos==this.stream.end&&(n=new gt,n.value=e.p.parser.eofTerm,n.start=n.end=e.pos,r=this.addActions(e,n.value,n.end,r)),this.mainToken=n,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let r=new gt,{pos:n,p:i}=e;return r.start=n,r.end=Math.min(n+1,i.stream.end),r.value=n==i.stream.end?i.parser.eofTerm:0,r}updateCachedToken(e,r,n){if(r.token(this.stream.reset(n.pos,e),n),e.value>-1){let{parser:i}=n.p;for(let s=0;s=0&&n.p.parser.dialect.allows(o>>1)){o&1?e.extended=o>>1:e.value=o>>1;break}}}else e.value=0,e.end=Math.min(n.p.stream.end,n.pos+1)}putAction(e,r,n,i){for(let s=0;se.bufferLength*4?new Nn(n,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,r=this.minStackPos,n=this.stacks=[],i,s;for(let o=0;or)n.push(a);else{if(this.advanceStack(a,n,e))continue;{i||(i=[],s=[]),i.push(a);let l=this.tokens.getMainToken(a);s.push(l.value,l.end)}}break}}if(!n.length){let o=i&&ac(i);if(o)return this.stackToTree(o);if(this.parser.strict)throw $e&&i&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+r);this.recovering||(this.recovering=5)}if(this.recovering&&i){let o=this.stoppedAt!=null&&i[0].pos>this.stoppedAt?i[0]:this.runRecovery(i,s,n);if(o)return this.stackToTree(o.forceAll())}if(this.recovering){let o=this.recovering==1?1:this.recovering*3;if(n.length>o)for(n.sort((a,l)=>l.score-a.score);n.length>o;)n.pop();n.some(a=>a.reducePos>r)&&this.recovering--}else if(n.length>1)e:for(let o=0;o500&&c.buffer.length>500)if((a.score-c.score||a.buffer.length-c.buffer.length)>0)n.splice(l--,1);else{n.splice(o--,1);continue e}}}this.minStackPos=n[0].pos;for(let o=1;o ":"";if(this.stoppedAt!=null&&i>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let c=e.curContext&&e.curContext.tracker.strict,p=c?e.curContext.hash:0;for(let u=this.fragments.nodeAt(i);u;){let d=this.parser.nodeSet.types[u.type.id]==u.type?s.getGoto(e.state,u.type.id):-1;if(d>-1&&u.length&&(!c||(u.prop(j.contextHash)||0)==p))return e.useNode(u,d),$e&&console.log(o+this.stackID(e)+` (via reuse of ${s.getName(u.type.id)})`),!0;if(!(u instanceof ae)||u.children.length==0||u.positions[0]>0)break;let O=u.children[0];if(O instanceof ae&&u.positions[0]==0)u=O;else break}}let a=s.stateSlot(e.state,4);if(a>0)return e.reduce(a),$e&&console.log(o+this.stackID(e)+` (via always-reduce ${s.getName(a&65535)})`),!0;if(e.stack.length>=15e3)for(;e.stack.length>9e3&&e.forceReduce(););let l=this.tokens.getActions(e);for(let c=0;ci?r.push(h):n.push(h)}return!1}advanceFully(e,r){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return Ds(e,r),!0}}runRecovery(e,r,n){let i=null,s=!1;for(let o=0;o ":"";if(a.deadEnd&&(s||(s=!0,a.restart(),$e&&console.log(p+this.stackID(a)+" (restarted)"),this.advanceFully(a,n))))continue;let u=a.split(),d=p;for(let O=0;u.forceReduce()&&O<10&&($e&&console.log(d+this.stackID(u)+" (via force-reduce)"),!this.advanceFully(u,n));O++)$e&&(d=this.stackID(u)+" -> ");for(let O of a.recoverByInsert(l))$e&&console.log(p+this.stackID(O)+" (via recover-insert)"),this.advanceFully(O,n);this.stream.end>a.pos?(c==a.pos&&(c++,l=0),a.recoverByDelete(l,c),$e&&console.log(p+this.stackID(a)+` (via recover-delete ${this.parser.getName(l)})`),Ds(a,n)):(!i||i.scoret,Pr=class{constructor(e){this.start=e.start,this.shift=e.shift||Bn,this.reduce=e.reduce||Bn,this.reuse=e.reuse||Bn,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}},Er=class t extends Tr{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let r=e.nodeNames.split(" ");this.minRepeatTerm=r.length;for(let a=0;ae.topRules[a][1]),i=[];for(let a=0;a=0)s(p,l,a[c++]);else{let u=a[c+-p];for(let d=-p;d>0;d--)s(a[c++],l,u);c++}}}this.nodeSet=new Sr(r.map((a,l)=>de.define({name:l>=this.minRepeatTerm?void 0:a,id:l,props:i[l],top:n.indexOf(l)>-1,error:l==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(l)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let o=wr(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let a=0;atypeof a=="number"?new bt(o,a):a),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,r,n){let i=new Yn(this,e,r,n);for(let s of this.wrappers)i=s(i,e,r,n);return i}getGoto(e,r,n=!1){let i=this.goto;if(r>=i[0])return-1;for(let s=i[r+1];;){let o=i[s++],a=o&1,l=i[s++];if(a&&n)return l;for(let c=s+(o>>1);s0}validAction(e,r){if(r==this.stateSlot(e,4))return!0;for(let n=this.stateSlot(e,1);;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=Ae(this.data,n+2);else return!1;if(r==Ae(this.data,n+1))return!0}}nextStates(e){let r=[];for(let n=this.stateSlot(e,1);;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=Ae(this.data,n+2);else break;if(!(this.data[n+2]&1)){let i=this.data[n+1];r.some((s,o)=>o&1&&s==i)||r.push(this.data[n],i)}}return r}overrides(e,r){let n=zs(this.data,this.tokenPrecTable,r);return n<0||zs(this.data,this.tokenPrecTable,e){let i=e.tokenizers.find(s=>s.from==n);return i?i.to:n})),e.specializers&&(r.specializers=this.specializers.slice(),r.specializerSpecs=this.specializerSpecs.map((n,i)=>{let s=e.specializers.find(a=>a.from==n.external);if(!s)return n;let o=Object.assign(Object.assign({},n),{external:s.to});return r.specializers[i]=Ls(o),o})),e.contextTracker&&(r.context=e.contextTracker),e.dialect&&(r.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(r.strict=e.strict),e.wrap&&(r.wrappers=r.wrappers.concat(e.wrap)),e.bufferLength!=null&&(r.bufferLength=e.bufferLength),r}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let r=this.dynamicPrecedences;return r==null?0:r[e]||0}parseDialect(e){let r=Object.keys(this.dialects),n=r.map(()=>!1);if(e)for(let s of e.split(" ")){let o=r.indexOf(s);o>=0&&(n[o]=!0)}let i=null;for(let s=0;sn)&&r.p.parser.stateFlag(r.state,2)&&(!e||e.scoret.external(r,n)<<1|e}return t.get}var $=require("@lezer/highlight"),lc=1,Us=281,Ns=2,cc=3,_r=282,pc=4,uc=283,Fs=284,Oc=286,hc=287,dc=5,fc=6,mc=1,gc=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],Hs=125,bc=123,yc=59,Ys=47,xc=42,Qc=43,Sc=45,$c=36,vc=96,Tc=92,wc=new Pr({start:!1,shift(t,e){return e==dc||e==fc||e==Oc?t:e==hc},strict:!1}),kc=new Ie((t,e)=>{let{next:r}=t;(r==Hs||r==-1||e.context)&&e.canShift(Fs)&&t.acceptToken(Fs)},{contextual:!0,fallback:!0}),Pc=new Ie((t,e)=>{let{next:r}=t,n;gc.indexOf(r)>-1||r==Ys&&((n=t.peek(1))==Ys||n==xc)||r!=Hs&&r!=yc&&r!=-1&&!e.context&&e.canShift(Us)&&t.acceptToken(Us)},{contextual:!0}),Ec=new Ie((t,e)=>{let{next:r}=t;if((r==Qc||r==Sc)&&(t.advance(),r==t.next)){t.advance();let n=!e.context&&e.canShift(Ns);t.acceptToken(n?Ns:cc)}},{contextual:!0}),_c=new Ie(t=>{for(let e=!1,r=0;;r++){let{next:n}=t;if(n<0){r&&t.acceptToken(_r);break}else if(n==vc){r?t.acceptToken(_r):t.acceptToken(uc,1);break}else if(n==bc&&e){r==1?t.acceptToken(pc,1):t.acceptToken(_r,-1);break}else if(n==10&&r){t.advance(),t.acceptToken(_r);break}else n==Tc&&t.advance();e=n==$c,t.advance()}}),Cc=new Ie((t,e)=>{if(!(t.next!=101||!e.dialectEnabled(mc))){t.advance();for(let r=0;r<6;r++){if(t.next!="xtends".charCodeAt(r))return;t.advance()}t.next>=57&&t.next<=65||t.next>=48&&t.next<=90||t.next==95||t.next>=97&&t.next<=122||t.next>160||t.acceptToken(lc)}}),Rc=(0,$.styleTags)({"get set async static":$.tags.modifier,"for while do if else switch try catch finally return throw break continue default case":$.tags.controlKeyword,"in of await yield void typeof delete instanceof":$.tags.operatorKeyword,"let var const function class extends":$.tags.definitionKeyword,"import export from":$.tags.moduleKeyword,"with debugger as new":$.tags.keyword,TemplateString:$.tags.special($.tags.string),super:$.tags.atom,BooleanLiteral:$.tags.bool,this:$.tags.self,null:$.tags.null,Star:$.tags.modifier,VariableName:$.tags.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":$.tags.function($.tags.variableName),VariableDefinition:$.tags.definition($.tags.variableName),Label:$.tags.labelName,PropertyName:$.tags.propertyName,PrivatePropertyName:$.tags.special($.tags.propertyName),"CallExpression/MemberExpression/PropertyName":$.tags.function($.tags.propertyName),"FunctionDeclaration/VariableDefinition":$.tags.function($.tags.definition($.tags.variableName)),"ClassDeclaration/VariableDefinition":$.tags.definition($.tags.className),PropertyDefinition:$.tags.definition($.tags.propertyName),PrivatePropertyDefinition:$.tags.definition($.tags.special($.tags.propertyName)),UpdateOp:$.tags.updateOperator,LineComment:$.tags.lineComment,BlockComment:$.tags.blockComment,Number:$.tags.number,String:$.tags.string,ArithOp:$.tags.arithmeticOperator,LogicOp:$.tags.logicOperator,BitOp:$.tags.bitwiseOperator,CompareOp:$.tags.compareOperator,RegExp:$.tags.regexp,Equals:$.tags.definitionOperator,Arrow:$.tags.function($.tags.punctuation),": Spread":$.tags.punctuation,"( )":$.tags.paren,"[ ]":$.tags.squareBracket,"{ }":$.tags.brace,"InterpolationStart InterpolationEnd":$.tags.special($.tags.brace),".":$.tags.derefOperator,", ;":$.tags.separator,TypeName:$.tags.typeName,TypeDefinition:$.tags.definition($.tags.typeName),"type enum interface implements namespace module declare":$.tags.definitionKeyword,"abstract global Privacy readonly override":$.tags.modifier,"is keyof unique infer":$.tags.operatorKeyword,JSXAttributeValue:$.tags.attributeValue,JSXText:$.tags.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":$.tags.angleBracket,"JSXIdentifier JSXNameSpacedName":$.tags.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":$.tags.attributeName}),Ac={__proto__:null,export:18,as:23,from:29,default:32,async:37,function:38,this:48,true:56,false:56,void:66,typeof:70,null:86,super:88,new:122,await:139,yield:141,delete:142,class:152,extends:154,public:197,private:197,protected:197,readonly:199,instanceof:220,in:222,const:224,import:256,keyof:307,unique:311,infer:317,is:351,abstract:371,implements:373,type:375,let:378,var:380,interface:387,enum:391,namespace:397,module:399,declare:403,global:407,for:428,of:437,while:440,with:444,do:448,if:452,else:454,switch:458,case:464,try:470,catch:474,finally:478,return:482,throw:486,break:490,continue:494,debugger:498},qc={__proto__:null,async:109,get:111,set:113,public:161,private:161,protected:161,static:163,abstract:165,override:167,readonly:173,new:355},jc={__proto__:null,"<":129},Ks=Er.deserialize({version:14,states:"$8SO`QdOOO'QQ(C|O'#ChO'XOWO'#DVO)dQdO'#D]O)tQdO'#DhO){QdO'#DrO-xQdO'#DxOOQO'#E]'#E]O.]Q`O'#E[O.bQ`O'#E[OOQ(C['#Ef'#EfO0aQ(C|O'#ItO2wQ(C|O'#IuO3eQ`O'#EzO3jQ!bO'#FaOOQ(C['#FS'#FSO3rO#tO'#FSO4QQ&jO'#FhO5bQ`O'#FgOOQ(C['#Iu'#IuOOQ(CW'#It'#ItOOQS'#J^'#J^O5gQ`O'#HpO5lQ(ChO'#HqOOQS'#Ih'#IhOOQS'#Hr'#HrQ`QdOOO){QdO'#DjO5tQ`O'#G[O5yQ&jO'#CmO6XQ`O'#EZO6dQ`O'#EgO6iQ,UO'#FRO7TQ`O'#G[O7YQ`O'#G`O7eQ`O'#G`O7sQ`O'#GcO7sQ`O'#GdO7sQ`O'#GfO5tQ`O'#GiO8dQ`O'#GlO9rQ`O'#CdO:SQ`O'#GyO:[Q`O'#HPO:[Q`O'#HRO`QdO'#HTO:[Q`O'#HVO:[Q`O'#HYO:aQ`O'#H`O:fQ(CjO'#HfO){QdO'#HhO:qQ(CjO'#HjO:|Q(CjO'#HlO5lQ(ChO'#HnO){QdO'#DWOOOW'#Ht'#HtO;XOWO,59qOOQ(C[,59q,59qO=jQtO'#ChO=tQdO'#HuO>XQ`O'#IvO@WQtO'#IvO'dQdO'#IvO@_Q`O,59wO@uQ7[O'#DbOAnQ`O'#E]OA{Q`O'#JROBWQ`O'#JQOBWQ`O'#JQOB`Q`O,5:yOBeQ`O'#JPOBlQaO'#DyO5yQ&jO'#EZOBzQ`O'#EZOCVQpO'#FROOQ(C[,5:S,5:SOC_QdO,5:SOE]Q(C|O,5:^OEyQ`O,5:dOFdQ(ChO'#JOO7YQ`O'#I}OFkQ`O'#I}OFsQ`O,5:xOFxQ`O'#I}OGWQdO,5:vOIWQ&jO'#EWOJeQ`O,5:vOKwQ&jO'#DlOLOQdO'#DqOLYQ7[O,5;PO){QdO,5;POOQS'#Er'#ErOOQS'#Et'#EtO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;ROOQS'#Ex'#ExOLbQdO,5;cOOQ(C[,5;h,5;hOOQ(C[,5;i,5;iONbQ`O,5;iOOQ(C[,5;j,5;jO){QdO'#IPONgQ(ChO,5[OOQS'#Ik'#IkOOQS,5>],5>]OOQS-E;p-E;pO!+kQ(C|O,5:UOOQ(CX'#Cp'#CpO!,[Q&kO,5Q,5>QO){QdO,5>QO5lQ(ChO,5>SOOQS,5>U,5>UO!8cQ`O,5>UOOQS,5>W,5>WO!8cQ`O,5>WOOQS,5>Y,5>YO!8hQpO,59rOOOW-E;r-E;rOOQ(C[1G/]1G/]O!8mQtO,5>aO'dQdO,5>aOOQO,5>f,5>fO!8wQdO'#HuOOQO-E;s-E;sO!9UQ`O,5?bO!9^QtO,5?bO!9eQ`O,5?lOOQ(C[1G/c1G/cO!9mQ!bO'#DTOOQO'#Ix'#IxO){QdO'#IxO!:[Q!bO'#IxO!:yQ!bO'#DcO!;[Q7[O'#DcO!=gQdO'#DcO!=nQ`O'#IwO!=vQ`O,59|O!={Q`O'#EaO!>ZQ`O'#JSO!>cQ`O,5:zO!>yQ7[O'#DcO){QdO,5?mO!?TQ`O'#HzOOQO-E;x-E;xO!9eQ`O,5?lOOQ(CW1G0e1G0eO!@aQ7[O'#D|OOQ(C[,5:e,5:eO){QdO,5:eOIWQ&jO,5:eO!@hQaO,5:eO:aQ`O,5:uO!-OQ!bO,5:uO!-WQ&jO,5:uO5yQ&jO,5:uOOQ(C[1G/n1G/nOOQ(C[1G0O1G0OOOQ(CW'#EV'#EVO){QdO,5?jO!@sQ(ChO,5?jO!AUQ(ChO,5?jO!A]Q`O,5?iO!AeQ`O'#H|O!A]Q`O,5?iOOQ(CW1G0d1G0dO7YQ`O,5?iOOQ(C[1G0b1G0bO!BPQ(C|O1G0bO!CRQ(CyO,5:rOOQ(C]'#Fq'#FqO!CoQ(C}O'#IqOGWQdO1G0bO!EqQ,VO'#IyO!E{Q`O,5:WO!FQQtO'#IzO){QdO'#IzO!F[Q`O,5:]OOQ(C]'#DT'#DTOOQ(C[1G0k1G0kO!FaQ`O1G0kO!HrQ(C|O1G0mO!HyQ(C|O1G0mO!K^Q(C|O1G0mO!KeQ(C|O1G0mO!MlQ(C|O1G0mO!NPQ(C|O1G0mO#!pQ(C|O1G0mO#!wQ(C|O1G0mO#%[Q(C|O1G0mO#%cQ(C|O1G0mO#'WQ(C|O1G0mO#*QQMlO'#ChO#+{QMlO1G0}O#-vQMlO'#IuOOQ(C[1G1T1G1TO#.ZQ(C|O,5>kOOQ(CW-E;}-E;}O#.zQ(C}O1G0mOOQ(C[1G0m1G0mO#1PQ(C|O1G1QO#1pQ!bO,5;sO#1uQ!bO,5;tO#1zQ!bO'#F[O#2`Q`O'#FZOOQO'#JW'#JWOOQO'#H}'#H}O#2eQ!bO1G1]OOQ(C[1G1]1G1]OOOO1G1f1G1fO#2sQMlO'#ItO#2}Q`O,5;}OLbQdO,5;}OOOO-E;|-E;|OOQ(C[1G1Y1G1YOOQ(C[,5PQtO1G1VOOQ(C[1G1X1G1XO5tQ`O1G2}O#>WQ`O1G2}O#>]Q`O1G2}O#>bQ`O1G2}OOQS1G2}1G2}O#>gQ&kO1G2bO7YQ`O'#JQO7YQ`O'#EaO7YQ`O'#IWO#>xQ(ChO,5?yOOQS1G2f1G2fO!0VQ`O1G2lOIWQ&jO1G2iO#?TQ`O1G2iOOQS1G2j1G2jOIWQ&jO1G2jO#?YQaO1G2jO#?bQ7[O'#GhOOQS1G2l1G2lO!'VQ7[O'#IYO!0[QpO1G2oOOQS1G2o1G2oOOQS,5=Y,5=YO#?jQ&kO,5=[O5tQ`O,5=[O#6SQ`O,5=_O5bQ`O,5=_O!-OQ!bO,5=_O!-WQ&jO,5=_O5yQ&jO,5=_O#?{Q`O'#JaO#@WQ`O,5=`OOQS1G.j1G.jO#@]Q(ChO1G.jO#@hQ`O1G.jO#@mQ`O1G.jO5lQ(ChO1G.jO#@uQtO,5@OO#APQ`O,5@OO#A[QdO,5=gO#AcQ`O,5=gO7YQ`O,5@OOOQS1G3P1G3PO`QdO1G3POOQS1G3V1G3VOOQS1G3X1G3XO:[Q`O1G3ZO#AhQdO1G3]O#EcQdO'#H[OOQS1G3`1G3`O#EpQ`O'#HbO:aQ`O'#HdOOQS1G3f1G3fO#ExQdO1G3fO5lQ(ChO1G3lOOQS1G3n1G3nOOQ(CW'#Fx'#FxO5lQ(ChO1G3pO5lQ(ChO1G3rOOOW1G/^1G/^O#IvQpO,5aO#JYQ`O1G4|O#JbQ`O1G5WO#JjQ`O,5?dOLbQdO,5:{O7YQ`O,5:{O:aQ`O,59}OLbQdO,59}O!-OQ!bO,59}O#JoQMlO,59}OOQO,5:{,5:{O#JyQ7[O'#HvO#KaQ`O,5?cOOQ(C[1G/h1G/hO#KiQ7[O'#H{O#K}Q`O,5?nOOQ(CW1G0f1G0fO!;[Q7[O,59}O#LVQtO1G5XO7YQ`O,5>fOOQ(CW'#ES'#ESO#LaQ(DjO'#ETO!@XQ7[O'#D}OOQO'#Hy'#HyO#L{Q7[O,5:hOOQ(C[,5:h,5:hO#MSQ7[O'#D}O#MeQ7[O'#D}O#MlQ7[O'#EYO#MoQ7[O'#ETO#M|Q7[O'#ETO!@XQ7[O'#ETO#NaQ`O1G0PO#NfQqO1G0POOQ(C[1G0P1G0PO){QdO1G0POIWQ&jO1G0POOQ(C[1G0a1G0aO:aQ`O1G0aO!-OQ!bO1G0aO!-WQ&jO1G0aO#NmQ(C|O1G5UO){QdO1G5UO#N}Q(ChO1G5UO$ `Q`O1G5TO7YQ`O,5>hOOQO,5>h,5>hO$ hQ`O,5>hOOQO-E;z-E;zO$ `Q`O1G5TO$ vQ(C}O,59jO$#xQ(C}O,5m,5>mO$-rQ`O,5>mOOQ(C]1G2P1G2PP$-wQ`O'#IRPOQ(C]-Eo,5>oOOQO-Ep,5>pOOQO-Ex,5>xOOQO-E<[-E<[OOQ(C[7+&q7+&qO$6OQ`O7+(iO5lQ(ChO7+(iO5tQ`O7+(iO$6TQ`O7+(iO$6YQaO7+'|OOQ(CW,5>r,5>rOOQ(CW-Et,5>tOOQO-EO,5>OOOQS7+)Q7+)QOOQS7+)W7+)WOOQS7+)[7+)[OOQS7+)^7+)^OOQO1G5O1G5OO$:nQMlO1G0gO$:xQ`O1G0gOOQO1G/i1G/iO$;TQMlO1G/iO:aQ`O1G/iOLbQdO'#DcOOQO,5>b,5>bOOQO-E;t-E;tOOQO,5>g,5>gOOQO-E;y-E;yO!-OQ!bO1G/iO:aQ`O,5:iOOQO,5:o,5:oO){QdO,5:oO$;_Q(ChO,5:oO$;jQ(ChO,5:oO!-OQ!bO,5:iOOQO-E;w-E;wOOQ(C[1G0S1G0SO!@XQ7[O,5:iO$;xQ7[O,5:iO$PQ`O7+*oO$>XQ(C}O1G2[O$@^Q(C}O1G2^O$BcQ(C}O1G1yO$DnQ,VO,5>cOOQO-E;u-E;uO$DxQtO,5>dO){QdO,5>dOOQO-E;v-E;vO$ESQ`O1G5QO$E[QMlO1G0bO$GcQMlO1G0mO$GjQMlO1G0mO$IkQMlO1G0mO$IrQMlO1G0mO$KgQMlO1G0mO$KzQMlO1G0mO$NXQMlO1G0mO$N`QMlO1G0mO%!aQMlO1G0mO%!hQMlO1G0mO%$]QMlO1G0mO%$pQ(C|O<kOOOO7+'T7+'TOOOW1G/R1G/ROOQ(C]1G4X1G4XOJjQ&jO7+'zO%*VQ`O,5>lO5tQ`O,5>lOOQO-EnO%+dQ`O,5>nOIWQ&jO,5>nOOQO-Ew,5>wO%.vQ`O,5>wO%.{Q`O,5>wOOQO-EvOOQO-EqOOQO-EsOOQO-E{AN>{OOQOAN>uAN>uO%3rQ(C|OAN>{O:aQ`OAN>uO){QdOAN>{O!-OQ!bOAN>uO&)wQ(ChOAN>{O&*SQ(C}OG26lOOQ(CWG26bG26bOOQS!$( t!$( tOOQO<QQ`O'#E[O&>YQ`O'#EzO&>_Q`O'#EgO&>dQ`O'#JRO&>oQ`O'#JPO&>zQ`O,5:vO&?PQ,VO,5aO!O&PO~Ox&SO!W&^O!X&VO!Y&VO'^$dO~O]&TOk&TO!Q&WO'g&QO!S'kP!S'vP~P@dO!O'sX!R'sX!]'sX!c'sX'p'sX~O!{'sX#W#PX!S'sX~PA]O!{&_O!O'uX!R'uX~O!R&`O!O'tX~O!O&cO~O!{#eO~PA]OP&gO!T&dO!o&fO']$bO~Oc&lO!d$ZO']$bO~Ou$oO!d$nO~O!S&mO~P`Ou!{Ov!{Ox!|O!b!yO!d!zO'fQOQ!faZ!faj!fa!R!fa!a!fa!j!fa#[!fa#]!fa#^!fa#_!fa#`!fa#a!fa#b!fa#c!fa#e!fa#g!fa#i!fa#j!fa'p!fa'w!fa'x!fa~O_!fa'W!fa!O!fa!c!fan!fa!T!fa%Q!fa!]!fa~PCfO!c&nO~O!]!wO!{&pO'p&oO!R'rX_'rX'W'rX~O!c'rX~PFOO!R&tO!c'qX~O!c&vO~Ox$uO!T$vO#V&wO']$bO~OQTORTO]cOb!kOc!jOhcOjTOkcOlcOqTOsTOxRO{cO|cO}cO!TSO!_kO!dUO!gTO!hTO!iTO!jTO!kTO!n!iO#t!lO#x^O']9aO'fQO'oYO'|aO~O]#qOh$QOj#rOk#qOl#qOq$ROs9tOx#yO!T#zO!_;eO!d#vO#V9}O#t$VO$_9wO$a9zO$d$WO']&{O'b$PO'f#sO~O#W&}O~O]#qOh$QOj#rOk#qOl#qOq$ROs$SOx#yO!T#zO!_$XO!d#vO#V$YO#t$VO$_$TO$a$UO$d$WO']&{O'b$PO'f#sO~O'a'mP~PJjO!Q'RO!c'nP~P){O'g'TO'oYO~OQ9^OR9^O]cOb;`Oc!jOhcOj9^OkcOlcOq9^Os9^OxRO{cO|cO}cO!T!bO!_9`O!dUO!g9^O!h9^O!i9^O!j9^O!k9^O!n!iO#t!lO#x^O']'cO'fQO'oYO'|;^O~O!d!zO~O!R#bO_$]a'W$]a!c$]a!O$]a!T$]a%Q$]a!]$]a~O#d'jO~PIWO!]'lO!T'yX#w'yX#z'yX$R'yX~Ou'mO~P! YOu'mO!T'yX#w'yX#z'yX$R'yX~O!T'oO#w'sO#z'nO$R'tO~O!Q'wO~PLbO#z#fO$R'zO~OP$eXu$eXx$eX!b$eX'w$eX'x$eX~OPfX!RfX!{fX'afX'a$eX~P!!rOk'|O~OS'}O'U(OO'V(QO~OP(ZOu(SOx(TO'w(VO'x(XO~O'a(RO~P!#{O'a([O~O]#qOh$QOj#rOk#qOl#qOq$ROs9tOx#yO!T#zO!_;eO!d#vO#V9}O#t$VO$_9wO$a9zO$d$WO'b$PO'f#sO~O!Q(`O'](]O!c'}P~P!$jO#W(bO~O!d(cO~O!Q(hO'](eO!O(OP~P!$jOj(uOx(mO!W(sO!X(lO!Y(lO!d(cO!x(tO$w(oO'^$dO'g(jO~O!S(rO~P!&jO!b!yOP'eXu'eXx'eX'w'eX'x'eX!R'eX!{'eX~O'a'eX#m'eX~P!'cOP(xO!{(wO!R'dX'a'dX~O!R(yO'a'cX~O']${O'a'cP~O'](|O~O!d)RO~O']&{O~Ox$uO!Q!rO!T$vO#U!uO#V!rO']$bO!c'qP~O!]!wO#W)VO~OQ#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO#g#WO#i#YO#j#ZO'fQO'p#[O'w!}O'x#OO~O_!^a!R!^a'W!^a!O!^a!c!^an!^a!T!^a%Q!^a!]!^a~P!)wOP)_O!T&dO!o)^O%Q)]O'b$PO~O!])aO!T'`X_'`X!R'`X'W'`X~O!d$ZO'b$PO~O!d$ZO']$bO'b$PO~O!]!wO#W&}O~O])lO%R)mO'])iO!S(VP~O!R)nO^(UX~O'g'TO~OZ)rO~O^)sO~O!T$lO']$bO'^$dO^(UP~Ox$uO!Q)xO!R&`O!T$vO']$bO!O'tP~O]&ZOk&ZO!Q)yO'g'TO!S'vP~O!R)zO_(RX'W(RX~O!{*OO'b$PO~OP*RO!T#zO'b$PO~O!T*TO~Ou*VO!TSO~O!n*[O~Oc*aO~O'](|O!S(TP~Oc$jO~O%RtO']${O~P8wOZ*gO^*fO~OQTORTO]cObnOcmOhcOjTOkcOlcOqTOsTOxRO{cO|cO}cO!_kO!dUO!gTO!hTO!iTO!jTO!kTO!nlO#x^O%PqO'fQO'oYO'|aO~O!T!bO#t!lO']9aO~P!1_O^*fO_$^O'W$^O~O_*kO#d*mO%T*mO%U*mO~P){O!d%`O~O%t*rO~O!T*tO~O&V*vO&X*wOQ&SaR&SaX&Sa]&Sa_&Sab&Sac&Sah&Saj&Sak&Sal&Saq&Sas&Sax&Sa{&Sa|&Sa}&Sa!T&Sa!_&Sa!d&Sa!g&Sa!h&Sa!i&Sa!j&Sa!k&Sa!n&Sa#d&Sa#t&Sa#x&Sa%P&Sa%R&Sa%T&Sa%U&Sa%X&Sa%Z&Sa%^&Sa%_&Sa%a&Sa%n&Sa%t&Sa%v&Sa%x&Sa%z&Sa%}&Sa&T&Sa&Z&Sa&]&Sa&_&Sa&a&Sa&c&Sa'S&Sa']&Sa'f&Sa'o&Sa'|&Sa!S&Sa%{&Sa`&Sa&Q&Sa~O']*|O~On+PO~O!O&ia!R&ia~P!)wO!Q+TO!O&iX!R&iX~P){O!R%zO!O'ja~O!O'ja~P>aO!R&`O!O'ta~O!RwX!R!ZX!SwX!S!ZX!]wX!]!ZX!d!ZX!{wX'b!ZX~O!]+YO!{+XO!R#TX!R'lX!S#TX!S'lX!]'lX!d'lX'b'lX~O!]+[O!d$ZO'b$PO!R!VX!S!VX~O]&ROk&ROx&SO'g(jO~OQ9^OR9^O]cOb;`Oc!jOhcOj9^OkcOlcOq9^Os9^OxRO{cO|cO}cO!T!bO!_9`O!dUO!g9^O!h9^O!i9^O!j9^O!k9^O!n!iO#t!lO#x^O'fQO'oYO'|;^O~O']:SO~P!;jO!R+`O!S'kX~O!S+bO~O!]+YO!{+XO!R#TX!S#TX~O!R+cO!S'vX~O!S+eO~O]&ROk&ROx&SO'^$dO'g(jO~O!X+fO!Y+fO~P!>hOx$uO!Q+hO!T$vO']$bO!O&nX!R&nX~O_+lO!W+oO!X+kO!Y+kO!r+sO!s+qO!t+rO!u+pO!x+tO'^$dO'g(jO'o+iO~O!S+nO~P!?iOP+yO!T&dO!o+xO~O!{,PO!R'ra!c'ra_'ra'W'ra~O!]!wO~P!@sO!R&tO!c'qa~Ox$uO!Q,SO!T$vO#U,UO#V,SO']$bO!R&pX!c&pX~O_#Oi!R#Oi'W#Oi!O#Oi!c#Oin#Oi!T#Oi%Q#Oi!]#Oi~P!)wOP;tOu(SOx(TO'w(VO'x(XO~O#W!za!R!za!c!za!{!za!T!za_!za'W!za!O!za~P!BpO#W'eXQ'eXZ'eX_'eXj'eXv'eX!a'eX!d'eX!j'eX#['eX#]'eX#^'eX#_'eX#`'eX#a'eX#b'eX#c'eX#e'eX#g'eX#i'eX#j'eX'W'eX'f'eX'p'eX!c'eX!O'eX!T'eXn'eX%Q'eX!]'eX~P!'cO!R,_O'a'mX~P!#{O'a,aO~O!R,bO!c'nX~P!)wO!c,eO~O!O,fO~OQ#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O'fQOZ#Zi_#Zij#Zi!R#Zi!a#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi'W#Zi'p#Zi'w#Zi'x#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~O#[#Zi~P!FfO#[#PO~P!FfOQ#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO'fQOZ#Zi_#Zi!R#Zi!a#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi'W#Zi'p#Zi'w#Zi'x#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~Oj#Zi~P!IQOj#RO~P!IQOQ#^Oj#ROu!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO'fQO_#Zi!R#Zi#e#Zi#g#Zi#i#Zi#j#Zi'W#Zi'p#Zi'w#Zi'x#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~OZ#Zi!a#Zi#a#Zi#b#Zi#c#Zi~P!KlOZ#dO!a#TO#a#TO#b#TO#c#TO~P!KlOQ#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO'fQO_#Zi!R#Zi#g#Zi#i#Zi#j#Zi'W#Zi'p#Zi'x#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~O'w#Zi~P!NdO'w!}O~P!NdOQ#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO#g#WO'fQO'w!}O_#Zi!R#Zi#i#Zi#j#Zi'W#Zi'p#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~O'x#Zi~P##OO'x#OO~P##OOQ#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO#g#WO#i#YO'fQO'w!}O'x#OO~O_#Zi!R#Zi#j#Zi'W#Zi'p#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~P#%jOQ[XZ[Xj[Xu[Xv[Xx[X!a[X!b[X!d[X!j[X!{[X#WdX#[[X#][X#^[X#_[X#`[X#a[X#b[X#c[X#e[X#g[X#i[X#j[X#o[X'f[X'p[X'w[X'x[X!R[X!S[X~O#m[X~P#'}OQ#^OZ9rOj9gOu!{Ov!{Ox!|O!a9iO!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO#a9iO#b9iO#c9iO#e9jO#g9lO#i9nO#j9oO'fQO'p#[O'w!}O'x#OO~O#m,hO~P#*XOQ'iXZ'iXj'iXu'iXv'iXx'iX!a'iX!b'iX!d'iX!j'iX#['iX#]'iX#^'iX#_'iX#`'iX#a'iX#b'iX#e'iX#g'iX#i'iX#j'iX'f'iX'p'iX'w'iX'x'iX!R'iX~O!{9sO#o9sO#c'iX#m'iX!S'iX~P#,SO_&sa!R&sa'W&sa!c&san&sa!O&sa!T&sa%Q&sa!]&sa~P!)wOQ#ZiZ#Zi_#Zij#Ziv#Zi!R#Zi!a#Zi!b#Zi!d#Zi!j#Zi#[#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi'W#Zi'f#Zi'p#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~P!BpO_#ni!R#ni'W#ni!O#ni!c#nin#ni!T#ni%Q#ni!]#ni~P!)wO#z,jO~O#z,kO~O!]'lO!{,lO!T$OX#w$OX#z$OX$R$OX~O!Q,mO~O!T'oO#w,oO#z'nO$R,pO~O!R9pO!S'hX~P#*XO!S,qO~O$R,sO~OS'}O'U(OO'V,vO~O],yOk,yO!O,zO~O!RdX!]dX!cdX!c$eX'pdX~P!!rO!c-QO~P!BpO!R-RO!]!wO'p&oO!c'}X~O!c-WO~O!Q(`O']$bO!c'}P~O#W-YO~O!O$eX!R$eX!]$lX~P!!rO!R-ZO!O(OX~P!BpO!]-]O~O!O-_O~Oj-cO!]!wO!d$ZO'b$PO'p&oO~O!])aO~O_$^O!R-hO'W$^O~O!S-jO~P!&jO!X-kO!Y-kO'^$dO'g(jO~Ox-mO'g(jO~O!x-nO~O']${O!R&xX'a&xX~O!R(yO'a'ca~O'a-sO~Ou-tOv-tOx-uOPra'wra'xra!Rra!{ra~O'ara#mra~P#7pOu(SOx(TOP$^a'w$^a'x$^a!R$^a!{$^a~O'a$^a#m$^a~P#8fOu(SOx(TOP$`a'w$`a'x$`a!R$`a!{$`a~O'a$`a#m$`a~P#9XO]-vO~O#W-wO~O'a$na!R$na!{$na#m$na~P!#{O#W-zO~OP.TO!T&dO!o.SO%Q.RO~O]#qOj#rOk#qOl#qOq$ROs9tOx#yO!T#zO!_;eO!d#vO#V9}O#t$VO$_9wO$a9zO$d$WO'b$PO'f#sO~Oh.VO'].UO~P#:yO!])aO!T'`a_'`a!R'`a'W'`a~O#W.]O~OZ[X!RdX!SdX~O!R.^O!S(VX~O!S.`O~OZ.aO~O].cO'])iO~O!T$lO']$bO^'QX!R'QX~O!R)nO^(Ua~O!c.fO~P!)wO].hO~OZ.iO~O^.jO~OP.TO!T&dO!o.SO%Q.RO'b$PO~O!R)zO_(Ra'W(Ra~O!{.pO~OP.sO!T#zO~O'g'TO!S(SP~OP.}O!T.yO!o.|O%Q.{O'b$PO~OZ/XO!R/VO!S(TX~O!S/YO~O^/[O_$^O'W$^O~O]/]O~O]/^O'](|O~O#c/_O%r/`O~P0zO!{#eO#c/_O%r/`O~O_/aO~P){O_/cO~O%{/gOQ%yiR%yiX%yi]%yi_%yib%yic%yih%yij%yik%yil%yiq%yis%yix%yi{%yi|%yi}%yi!T%yi!_%yi!d%yi!g%yi!h%yi!i%yi!j%yi!k%yi!n%yi#d%yi#t%yi#x%yi%P%yi%R%yi%T%yi%U%yi%X%yi%Z%yi%^%yi%_%yi%a%yi%n%yi%t%yi%v%yi%x%yi%z%yi%}%yi&T%yi&Z%yi&]%yi&_%yi&a%yi&c%yi'S%yi']%yi'f%yi'o%yi'|%yi!S%yi`%yi&Q%yi~O`/mO!S/kO&Q/lO~P`O!TSO!d/oO~O&X*wOQ&SiR&SiX&Si]&Si_&Sib&Sic&Sih&Sij&Sik&Sil&Siq&Sis&Six&Si{&Si|&Si}&Si!T&Si!_&Si!d&Si!g&Si!h&Si!i&Si!j&Si!k&Si!n&Si#d&Si#t&Si#x&Si%P&Si%R&Si%T&Si%U&Si%X&Si%Z&Si%^&Si%_&Si%a&Si%n&Si%t&Si%v&Si%x&Si%z&Si%}&Si&T&Si&Z&Si&]&Si&_&Si&a&Si&c&Si'S&Si']&Si'f&Si'o&Si'|&Si!S&Si%{&Si`&Si&Q&Si~O!R#bOn$]a~O!O&ii!R&ii~P!)wO!R%zO!O'ji~O!R&`O!O'ti~O!O/uO~O!R!Va!S!Va~P#*XO]&ROk&RO!Q/{O'g(jO!R&jX!S&jX~P@dO!R+`O!S'ka~O]&ZOk&ZO!Q)yO'g'TO!R&oX!S&oX~O!R+cO!S'va~O!O'ui!R'ui~P!)wO_$^O!]!wO!d$ZO!j0VO!{0TO'W$^O'b$PO'p&oO~O!S0YO~P!?iO!X0ZO!Y0ZO'^$dO'g(jO'o+iO~O!W0[O~P#MSO!TSO!W0[O!u0^O!x0_O~P#MSO!W0[O!s0aO!t0aO!u0^O!x0_O~P#MSO!T&dO~O!T&dO~P!BpO!R'ri!c'ri_'ri'W'ri~P!)wO!{0jO!R'ri!c'ri_'ri'W'ri~O!R&tO!c'qi~Ox$uO!T$vO#V0lO']$bO~O#WraQraZra_rajra!ara!bra!dra!jra#[ra#]ra#^ra#_ra#`ra#ara#bra#cra#era#gra#ira#jra'Wra'fra'pra!cra!Ora!Tranra%Qra!]ra~P#7pO#W$^aQ$^aZ$^a_$^aj$^av$^a!a$^a!b$^a!d$^a!j$^a#[$^a#]$^a#^$^a#_$^a#`$^a#a$^a#b$^a#c$^a#e$^a#g$^a#i$^a#j$^a'W$^a'f$^a'p$^a!c$^a!O$^a!T$^an$^a%Q$^a!]$^a~P#8fO#W$`aQ$`aZ$`a_$`aj$`av$`a!a$`a!b$`a!d$`a!j$`a#[$`a#]$`a#^$`a#_$`a#`$`a#a$`a#b$`a#c$`a#e$`a#g$`a#i$`a#j$`a'W$`a'f$`a'p$`a!c$`a!O$`a!T$`an$`a%Q$`a!]$`a~P#9XO#W$naQ$naZ$na_$naj$nav$na!R$na!a$na!b$na!d$na!j$na#[$na#]$na#^$na#_$na#`$na#a$na#b$na#c$na#e$na#g$na#i$na#j$na'W$na'f$na'p$na!c$na!O$na!T$na!{$nan$na%Q$na!]$na~P!BpO_#Oq!R#Oq'W#Oq!O#Oq!c#Oqn#Oq!T#Oq%Q#Oq!]#Oq~P!)wO!R&kX'a&kX~PJjO!R,_O'a'ma~O!Q0tO!R&lX!c&lX~P){O!R,bO!c'na~O!R,bO!c'na~P!)wO#m!fa!S!fa~PCfO#m!^a!R!^a!S!^a~P#*XO!T1XO#x^O$P1YO~O!S1^O~On1_O~P!BpO_$Yq!R$Yq'W$Yq!O$Yq!c$Yqn$Yq!T$Yq%Q$Yq!]$Yq~P!)wO!O1`O~O],yOk,yO~Ou(SOx(TO'x(XOP$xi'w$xi!R$xi!{$xi~O'a$xi#m$xi~P$.POu(SOx(TOP$zi'w$zi'x$zi!R$zi!{$zi~O'a$zi#m$zi~P$.rO'p#[O~P!BpO!Q1cO']$bO!R&tX!c&tX~O!R-RO!c'}a~O!R-RO!]!wO!c'}a~O!R-RO!]!wO'p&oO!c'}a~O'a$gi!R$gi!{$gi#m$gi~P!#{O!Q1kO'](eO!O&vX!R&vX~P!$jO!R-ZO!O(Oa~O!R-ZO!O(Oa~P!BpO!]!wO~O!]!wO#c1sO~Oj1vO!]!wO'p&oO~O!R'di'a'di~P!#{O!{1yO!R'di'a'di~P!#{O!c1|O~O_$Zq!R$Zq'W$Zq!O$Zq!c$Zqn$Zq!T$Zq%Q$Zq!]$Zq~P!)wO!R2QO!T(PX~P!BpO!T&dO%Q2TO~O!T&dO%Q2TO~P!BpO!T$eX$u[X_$eX!R$eX'W$eX~P!!rO$u2XOPgXugXxgX!TgX'wgX'xgX_gX!RgX'WgX~O$u2XO~O]2_O%R2`O'])iO!R'PX!S'PX~O!R.^O!S(Va~OZ2dO~O^2eO~O]2hO~OP2jO!T&dO!o2iO%Q2TO~O_$^O'W$^O~P!BpO!T#zO~P!BpO!R2oO!{2qO!S(SX~O!S2rO~Ox;oO!W2{O!X2tO!Y2tO!r2zO!s2yO!t2yO!x2xO'^$dO'g(jO'o+iO~O!S2wO~P$7ZOP3SO!T.yO!o3RO%Q3QO~OP3SO!T.yO!o3RO%Q3QO'b$PO~O'](|O!R'OX!S'OX~O!R/VO!S(Ta~O]3^O'g3]O~O]3_O~O^3aO~O!c3dO~P){O_3fO~O_3fO~P){O#c3hO%r3iO~PFOO`/mO!S3mO&Q/lO~P`O!]3oO~O!R#Ti!S#Ti~P#*XO!{3qO!R#Ti!S#Ti~O!R!Vi!S!Vi~P#*XO_$^O!{3xO'W$^O~O_$^O!]!wO!{3xO'W$^O~O!X3|O!Y3|O'^$dO'g(jO'o+iO~O_$^O!]!wO!d$ZO!j3}O!{3xO'W$^O'b$PO'p&oO~O!W4OO~P$;xO!W4OO!u4RO!x4SO~P$;xO_$^O!]!wO!j3}O!{3xO'W$^O'p&oO~O!R'rq!c'rq_'rq'W'rq~P!)wO!R&tO!c'qq~O#W$xiQ$xiZ$xi_$xij$xiv$xi!a$xi!b$xi!d$xi!j$xi#[$xi#]$xi#^$xi#_$xi#`$xi#a$xi#b$xi#c$xi#e$xi#g$xi#i$xi#j$xi'W$xi'f$xi'p$xi!c$xi!O$xi!T$xin$xi%Q$xi!]$xi~P$.PO#W$ziQ$ziZ$zi_$zij$ziv$zi!a$zi!b$zi!d$zi!j$zi#[$zi#]$zi#^$zi#_$zi#`$zi#a$zi#b$zi#c$zi#e$zi#g$zi#i$zi#j$zi'W$zi'f$zi'p$zi!c$zi!O$zi!T$zin$zi%Q$zi!]$zi~P$.rO#W$giQ$giZ$gi_$gij$giv$gi!R$gi!a$gi!b$gi!d$gi!j$gi#[$gi#]$gi#^$gi#_$gi#`$gi#a$gi#b$gi#c$gi#e$gi#g$gi#i$gi#j$gi'W$gi'f$gi'p$gi!c$gi!O$gi!T$gi!{$gin$gi%Q$gi!]$gi~P!BpO!R&ka'a&ka~P!#{O!R&la!c&la~P!)wO!R,bO!c'ni~O#m#Oi!R#Oi!S#Oi~P#*XOQ#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O'fQOZ#Zij#Zi!a#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'p#Zi'w#Zi'x#Zi!R#Zi!S#Zi~O#[#Zi~P$EiO#[9eO~P$EiOQ#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO'fQOZ#Zi!a#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'p#Zi'w#Zi'x#Zi!R#Zi!S#Zi~Oj#Zi~P$GqOj9gO~P$GqOQ#^Oj9gOu!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO'fQO#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'p#Zi'w#Zi'x#Zi!R#Zi!S#Zi~OZ#Zi!a#Zi#a#Zi#b#Zi#c#Zi~P$IyOZ9rO!a9iO#a9iO#b9iO#c9iO~P$IyOQ#^OZ9rOj9gOu!{Ov!{Ox!|O!a9iO!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO#a9iO#b9iO#c9iO#e9jO'fQO#g#Zi#i#Zi#j#Zi#m#Zi'p#Zi'x#Zi!R#Zi!S#Zi~O'w#Zi~P$L_O'w!}O~P$L_OQ#^OZ9rOj9gOu!{Ov!{Ox!|O!a9iO!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO#a9iO#b9iO#c9iO#e9jO#g9lO'fQO'w!}O#i#Zi#j#Zi#m#Zi'p#Zi!R#Zi!S#Zi~O'x#Zi~P$NgO'x#OO~P$NgOQ#^OZ9rOj9gOu!{Ov!{Ox!|O!a9iO!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO#a9iO#b9iO#c9iO#e9jO#g9lO#i9nO'fQO'w!}O'x#OO~O#j#Zi#m#Zi'p#Zi!R#Zi!S#Zi~P%!oO_#ky!R#ky'W#ky!O#ky!c#kyn#ky!T#ky%Q#ky!]#ky~P!)wOP;vOu(SOx(TO'w(VO'x(XO~OQ#ZiZ#Zij#Ziv#Zi!a#Zi!b#Zi!d#Zi!j#Zi#[#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'f#Zi'p#Zi!R#Zi!S#Zi~P%%aO!b!yOP'eXu'eXx'eX'w'eX'x'eX!S'eX~OQ'eXZ'eXj'eXv'eX!a'eX!d'eX!j'eX#['eX#]'eX#^'eX#_'eX#`'eX#a'eX#b'eX#c'eX#e'eX#g'eX#i'eX#j'eX#m'eX'f'eX'p'eX!R'eX~P%'eO#m#ni!R#ni!S#ni~P#*XO!S4eO~O!R&sa!S&sa~P#*XO!]!wO'p&oO!R&ta!c&ta~O!R-RO!c'}i~O!R-RO!]!wO!c'}i~O'a$gq!R$gq!{$gq#m$gq~P!#{O!O&va!R&va~P!BpO!]4lO~O!R-ZO!O(Oi~P!BpO!R-ZO!O(Oi~O!O4pO~O!]!wO#c4uO~Oj4vO!]!wO'p&oO~O!O4xO~O'a$iq!R$iq!{$iq#m$iq~P!#{O_$Zy!R$Zy'W$Zy!O$Zy!c$Zyn$Zy!T$Zy%Q$Zy!]$Zy~P!)wO!R2QO!T(Pa~O!T&dO%Q4}O~O!T&dO%Q4}O~P!BpO_#Oy!R#Oy'W#Oy!O#Oy!c#Oyn#Oy!T#Oy%Q#Oy!]#Oy~P!)wOZ5QO~O]5SO'])iO~O!R.^O!S(Vi~O]5VO~O^5WO~O'g'TO!R&{X!S&{X~O!R2oO!S(Sa~O!S5eO~P$7ZOx;sO'g(jO'o+iO~O!W5hO!X5gO!Y5gO!x0_O'^$dO'g(jO'o+iO~O!s5iO!t5iO~P%0^O!X5gO!Y5gO'^$dO'g(jO'o+iO~O!T.yO~O!T.yO%Q5kO~O!T.yO%Q5kO~P!BpOP5pO!T.yO!o5oO%Q5kO~OZ5uO!R'Oa!S'Oa~O!R/VO!S(Ti~O]5xO~O!c5yO~O!c5zO~O!c5{O~O!c5{O~P){O_5}O~O!]6QO~O!c6RO~O!R'ui!S'ui~P#*XO_$^O'W$^O~P!)wO_$^O!{6WO'W$^O~O_$^O!]!wO!{6WO'W$^O~O!X6]O!Y6]O'^$dO'g(jO'o+iO~O_$^O!]!wO!j6^O!{6WO'W$^O'p&oO~O!d$ZO'b$PO~P%4xO!W6_O~P%4gO!R'ry!c'ry_'ry'W'ry~P!)wO#W$gqQ$gqZ$gq_$gqj$gqv$gq!R$gq!a$gq!b$gq!d$gq!j$gq#[$gq#]$gq#^$gq#_$gq#`$gq#a$gq#b$gq#c$gq#e$gq#g$gq#i$gq#j$gq'W$gq'f$gq'p$gq!c$gq!O$gq!T$gq!{$gqn$gq%Q$gq!]$gq~P!BpO#W$iqQ$iqZ$iq_$iqj$iqv$iq!R$iq!a$iq!b$iq!d$iq!j$iq#[$iq#]$iq#^$iq#_$iq#`$iq#a$iq#b$iq#c$iq#e$iq#g$iq#i$iq#j$iq'W$iq'f$iq'p$iq!c$iq!O$iq!T$iq!{$iqn$iq%Q$iq!]$iq~P!BpO!R&li!c&li~P!)wO#m#Oq!R#Oq!S#Oq~P#*XOu-tOv-tOx-uOPra'wra'xra!Sra~OQraZrajra!ara!bra!dra!jra#[ra#]ra#^ra#_ra#`ra#ara#bra#cra#era#gra#ira#jra#mra'fra'pra!Rra~P%;OOu(SOx(TOP$^a'w$^a'x$^a!S$^a~OQ$^aZ$^aj$^av$^a!a$^a!b$^a!d$^a!j$^a#[$^a#]$^a#^$^a#_$^a#`$^a#a$^a#b$^a#c$^a#e$^a#g$^a#i$^a#j$^a#m$^a'f$^a'p$^a!R$^a~P%=SOu(SOx(TOP$`a'w$`a'x$`a!S$`a~OQ$`aZ$`aj$`av$`a!a$`a!b$`a!d$`a!j$`a#[$`a#]$`a#^$`a#_$`a#`$`a#a$`a#b$`a#c$`a#e$`a#g$`a#i$`a#j$`a#m$`a'f$`a'p$`a!R$`a~P%?WOQ$naZ$naj$nav$na!a$na!b$na!d$na!j$na#[$na#]$na#^$na#_$na#`$na#a$na#b$na#c$na#e$na#g$na#i$na#j$na#m$na'f$na'p$na!R$na!S$na~P%%aO#m$Yq!R$Yq!S$Yq~P#*XO#m$Zq!R$Zq!S$Zq~P#*XO!S6hO~O#m6iO~P!#{O!]!wO!R&ti!c&ti~O!]!wO'p&oO!R&ti!c&ti~O!R-RO!c'}q~O!O&vi!R&vi~P!BpO!R-ZO!O(Oq~O!O6oO~P!BpO!O6oO~O!R'dy'a'dy~P!#{O!R&ya!T&ya~P!BpO!T$tq_$tq!R$tq'W$tq~P!BpOZ6vO~O!R.^O!S(Vq~O]6yO~O!T&dO%Q6zO~O!T&dO%Q6zO~P!BpO!{6{O!R&{a!S&{a~O!R2oO!S(Si~P#*XO!X7RO!Y7RO'^$dO'g(jO'o+iO~O!W7TO!x4SO~P%GXO!T.yO%Q7WO~O!T.yO%Q7WO~P!BpO]7_O'g7^O~O!R/VO!S(Tq~O!c7aO~O!c7aO~P){O!c7cO~O!c7dO~O!R#Ty!S#Ty~P#*XO_$^O!{7jO'W$^O~O_$^O!]!wO!{7jO'W$^O~O!X7mO!Y7mO'^$dO'g(jO'o+iO~O_$^O!]!wO!j7nO!{7jO'W$^O'p&oO~O#m#ky!R#ky!S#ky~P#*XOQ$giZ$gij$giv$gi!a$gi!b$gi!d$gi!j$gi#[$gi#]$gi#^$gi#_$gi#`$gi#a$gi#b$gi#c$gi#e$gi#g$gi#i$gi#j$gi#m$gi'f$gi'p$gi!R$gi!S$gi~P%%aOu(SOx(TO'x(XOP$xi'w$xi!S$xi~OQ$xiZ$xij$xiv$xi!a$xi!b$xi!d$xi!j$xi#[$xi#]$xi#^$xi#_$xi#`$xi#a$xi#b$xi#c$xi#e$xi#g$xi#i$xi#j$xi#m$xi'f$xi'p$xi!R$xi~P%LjOu(SOx(TOP$zi'w$zi'x$zi!S$zi~OQ$ziZ$zij$ziv$zi!a$zi!b$zi!d$zi!j$zi#[$zi#]$zi#^$zi#_$zi#`$zi#a$zi#b$zi#c$zi#e$zi#g$zi#i$zi#j$zi#m$zi'f$zi'p$zi!R$zi~P%NnO#m$Zy!R$Zy!S$Zy~P#*XO#m#Oy!R#Oy!S#Oy~P#*XO!]!wO!R&tq!c&tq~O!R-RO!c'}y~O!O&vq!R&vq~P!BpO!O7tO~P!BpO!R.^O!S(Vy~O!R2oO!S(Sq~O!X8QO!Y8QO'^$dO'g(jO'o+iO~O!T.yO%Q8TO~O!T.yO%Q8TO~P!BpO!c8WO~O_$^O!{8]O'W$^O~O_$^O!]!wO!{8]O'W$^O~OQ$gqZ$gqj$gqv$gq!a$gq!b$gq!d$gq!j$gq#[$gq#]$gq#^$gq#_$gq#`$gq#a$gq#b$gq#c$gq#e$gq#g$gq#i$gq#j$gq#m$gq'f$gq'p$gq!R$gq!S$gq~P%%aOQ$iqZ$iqj$iqv$iq!a$iq!b$iq!d$iq!j$iq#[$iq#]$iq#^$iq#_$iq#`$iq#a$iq#b$iq#c$iq#e$iq#g$iq#i$iq#j$iq#m$iq'f$iq'p$iq!R$iq!S$iq~P%%aO'a$|!Z!R$|!Z!{$|!Z#m$|!Z~P!#{O!R&{q!S&{q~P#*XO_$^O!{8oO'W$^O~O#W$|!ZQ$|!ZZ$|!Z_$|!Zj$|!Zv$|!Z!R$|!Z!a$|!Z!b$|!Z!d$|!Z!j$|!Z#[$|!Z#]$|!Z#^$|!Z#_$|!Z#`$|!Z#a$|!Z#b$|!Z#c$|!Z#e$|!Z#g$|!Z#i$|!Z#j$|!Z'W$|!Z'f$|!Z'p$|!Z!c$|!Z!O$|!Z!T$|!Z!{$|!Zn$|!Z%Q$|!Z!]$|!Z~P!BpOP;uOu(SOx(TO'w(VO'x(XO~O!S!za!W!za!X!za!Y!za!r!za!s!za!t!za!x!za'^!za'g!za'o!za~P&,_O!W'eX!X'eX!Y'eX!r'eX!s'eX!t'eX!x'eX'^'eX'g'eX'o'eX~P%'eOQ$|!ZZ$|!Zj$|!Zv$|!Z!a$|!Z!b$|!Z!d$|!Z!j$|!Z#[$|!Z#]$|!Z#^$|!Z#_$|!Z#`$|!Z#a$|!Z#b$|!Z#c$|!Z#e$|!Z#g$|!Z#i$|!Z#j$|!Z#m$|!Z'f$|!Z'p$|!Z!R$|!Z!S$|!Z~P%%aO!Wra!Xra!Yra!rra!sra!tra!xra'^ra'gra'ora~P%;OO!W$^a!X$^a!Y$^a!r$^a!s$^a!t$^a!x$^a'^$^a'g$^a'o$^a~P%=SO!W$`a!X$`a!Y$`a!r$`a!s$`a!t$`a!x$`a'^$`a'g$`a'o$`a~P%?WO!S$na!W$na!X$na!Y$na!r$na!s$na!t$na!x$na'^$na'g$na'o$na~P&,_O!W$xi!X$xi!Y$xi!r$xi!s$xi!t$xi!x$xi'^$xi'g$xi'o$xi~P%LjO!W$zi!X$zi!Y$zi!r$zi!s$zi!t$zi!x$zi'^$zi'g$zi'o$zi~P%NnO!S$gi!W$gi!X$gi!Y$gi!r$gi!s$gi!t$gi!x$gi'^$gi'g$gi'o$gi~P&,_O!S$gq!W$gq!X$gq!Y$gq!r$gq!s$gq!t$gq!x$gq'^$gq'g$gq'o$gq~P&,_O!S$iq!W$iq!X$iq!Y$iq!r$iq!s$iq!t$iq!x$iq'^$iq'g$iq'o$iq~P&,_O!S$|!Z!W$|!Z!X$|!Z!Y$|!Z!r$|!Z!s$|!Z!t$|!Z!x$|!Z'^$|!Z'g$|!Z'o$|!Z~P&,_On'hX~P.jOn[X!O[X!c[X%r[X!T[X%Q[X!][X~P$zO!]dX!c[X!cdX'pdX~P;dOQ9^OR9^O]cOb;`Oc!jOhcOj9^OkcOlcOq9^Os9^OxRO{cO|cO}cO!TSO!_9`O!dUO!g9^O!h9^O!i9^O!j9^O!k9^O!n!iO#t!lO#x^O']'cO'fQO'oYO'|;^O~O]#qOh$QOj#rOk#qOl#qOq$ROs9uOx#yO!T#zO!_;fO!d#vO#V:OO#t$VO$_9xO$a9{O$d$WO']&{O'b$PO'f#sO~O!R9pO!S$]a~O]#qOh$QOj#rOk#qOl#qOq$ROs9vOx#yO!T#zO!_;gO!d#vO#V:PO#t$VO$_9yO$a9|O$d$WO']&{O'b$PO'f#sO~O#d'jO~P&]P!AQ!AY!A^!A^P!>YP!Ab!AbP!DVP!DZ?Z?Z!Da!GT8SP8SP8S8SP!HW8S8S!Jf8S!M_8S# g8S8S#!T#$c#$c#$g#$c#$oP#$cP8S#%k8S#'X8S8S-zPPP#(yPP#)c#)cP#)cP#)x#)cPP#*OP#)uP#)u#*b!!X#)u#+P#+V#+Y([#+]([P#+d#+d#+dP([P([P([P([PP([P#+j#+mP#+m([P#+qP#+tP([P([P([P([P([P([([#+z#,U#,[#,b#,p#,v#,|#-W#-^#-m#-s#.R#.X#._#.m#/S#0z#1Y#1`#1f#1l#1r#1|#2S#2Y#2d#2v#2|PPPPPPPP#3SPP#3v#7OPP#8f#8m#8uPP#>a#@t#Fp#Fs#Fv#GR#GUPP#GX#G]#Gz#Hq#Hu#IZPP#I_#Ie#IiP#Il#Ip#Is#Jc#Jy#KO#KR#KU#K[#K_#Kc#KgmhOSj}!n$]%c%f%g%i*o*t/g/jQ$imQ$ppQ%ZyS&V!b+`Q&k!jS(l#z(qQ)g$jQ)t$rQ*`%TQ+f&^S+k&d+mQ+}&lQ-k(sQ/U*aY0Z+o+p+q+r+sS2t.y2vU3|0[0^0aU5g2y2z2{S6]4O4RS7R5h5iQ7m6_R8Q7T$p[ORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8o!j'e#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aQ(}$SQ)l$lQ*b%WQ*i%`Q,X9tQ.W)aQ.c)mQ/^*gQ2_.^Q3Z/VQ4^9vQ5S2`R8{9upeOSjy}!n$]%Y%c%f%g%i*o*t/g/jR*d%[&WVOSTjkn}!S!W!k!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%z&S&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;`;a[!cRU!]!`%x&WQ$clQ$hmS$mp$rv$wrs!r!u$Z$u&`&t&w)x)y)z*m+Y+h,S,U/o0lQ%PwQ&h!iQ&j!jS(_#v(cS)f$i$jQ)j$lQ)w$tQ*Z%RQ*_%TS+|&k&lQ-V(`Q.[)gQ.b)mQ.d)nQ.g)rQ/P*[S/T*`*aQ0h+}Q1b-RQ2^.^Q2b.aQ2g.iQ3Y/UQ4i1cQ5R2`Q5U2dQ6u5QR7w6vx#xa!y$T$U$Y(W(Y(b(w(x,_-Y-w1a1y6i;^;i;j;k!Y$fm!j$h$i$j&U&j&k&l(k)f)g+]+j+|+}-d.[0Q0W0]0h1u3{4Q6Z7k8^Q)`$cQ*P$|Q*S$}Q*^%TQ.k)wQ/O*ZU/S*_*`*aQ3T/PS3X/T/UQ5b2sQ5t3YS7P5c5fS8O7Q7SQ8f8PQ8u8g#[;b!w#d#v#y&g'}(Z(h)])_)a*O*R+y-Z-].R.T.p.s.{.}1k1s2Q2T2X2j3Q3S4l4u4}5k5p6z7W8T9w9z9}:U:X:[:a:d:j;l;n;t;u;vd;c9d9x9{:O:V:Y:]:b:e:ke;d9r9y9|:P:W:Z:^:c:f:lW#}a$P(y;^S$|t%YQ$}uQ%OvR)}$z%P#|a!w!y#d#v#y$T$U$Y&g'}(W(Y(Z(b(h(w(x)])_)a*O*R+y,_-Y-Z-]-w.R.T.p.s.{.}1a1k1s1y2Q2T2X2j3Q3S4l4u4}5k5p6i6z7W8T9d9r9w9x9y9z9{9|9}:O:P:U:V:W:X:Y:Z:[:]:^:a:b:c:d:e:f:j:k:l;^;i;j;k;l;n;t;u;vT(O#s(PX)O$S9t9u9vU&Z!b$v+cQ'U!{Q)q$oQ.t*TQ1z-tR5^2o&^cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;a$]#aZ!_!o$a%w%}&y'Q'W'X'Y'Z'[']'^'_'`'a'b'd'g'k'u)p+R+^+g,O,^,d,g,i,w-x/v/y0i0s0w0x0y0z0{0|0}1O1P1Q1R1S1T1W1]2O2[3s3v4W4[4]4b4c5`6S6V6b6f6g7g7z8Z8m8y9_:|T!XQ!Y&_cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aQ&X!bR/|+`Y&R!b&V&^+`+fS(k#z(qS+j&d+mS-d(l(sQ-e(mQ-l(tQ.v*VU0W+k+o+pU0]+q+r+sS0b+t2xQ1u-kQ1w-mQ1x-nS2s.y2vU3{0Z0[0^Q4P0_Q4Q0aS5c2t2{S5f2y2zU6Z3|4O4RQ6`4SS7Q5g5hQ7S5iS7k6]6_S8P7R7TQ8^7mQ8g8QQ;h;oR;m;slhOSj}!n$]%c%f%g%i*o*t/g/jQ%k!QS&x!v9cQ)d$gQ*X%PQ*Y%QQ+z&iS,]&}:RS-y)V:_Q.Y)eQ.x*WQ/n*vQ/p*wQ/x+ZQ0`+qQ0f+{S2P-z:gQ2Y.ZS2].]:hQ3r/zQ3u0RQ4U0gQ5P2ZQ6T3tQ6X3zQ6a4VQ7e6RQ7h6YQ8Y7iQ8l8[R8x8n$W#`Z!_!o%w%}&y'Q'W'X'Y'Z'[']'^'_'`'a'b'd'g'k'u)p+R+^+g,O,^,d,g,w-x/v/y0i0s0w0x0y0z0{0|0}1O1P1Q1R1S1T1W1]2O2[3s3v4W4[4]4b4c5`6S6V6b6f6g7g7z8Z8m8y9_:|W(v#{&|1V8qT)Z$a,i$W#_Z!_!o%w%}&y'Q'W'X'Y'Z'[']'^'_'`'a'b'd'g'k'u)p+R+^+g,O,^,d,g,w-x/v/y0i0s0w0x0y0z0{0|0}1O1P1Q1R1S1T1W1]2O2[3s3v4W4[4]4b4c5`6S6V6b6f6g7g7z8Z8m8y9_:|Q'f#`S)Y$a,iR-{)Z&^cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aQ%f{Q%g|Q%i!OQ%j!PR/f*rQ&e!iQ)[$cQ+w&hS.Q)`)wS0c+u+vW2S-}.O.P.kS4T0d0eU4|2U2V2WU6s4{5Y5ZQ7v6tR8b7yT+l&d+mS+j&d+mU0W+k+o+pU0]+q+r+sS0b+t2xS2s.y2vU3{0Z0[0^Q4P0_Q4Q0aS5c2t2{S5f2y2zU6Z3|4O4RQ6`4SS7Q5g5hQ7S5iS7k6]6_S8P7R7TQ8^7mR8g8QS+l&d+mT2u.y2vS&r!q/dQ-U(_Q-b(kS0V+j2sQ1g-VS1p-c-lU3}0]0b5fQ4h1bS4s1v1xU6^4P4Q7SQ6k4iQ6r4vR7n6`Q!xXS&q!q/dQ)W$[Q)b$eQ)h$kQ,Q&rQ-T(_Q-a(kQ-f(nQ.X)cQ/Q*]S0U+j2sS1f-U-VS1o-b-lQ1r-eQ1t-gQ3V/RW3y0V0]0b5fQ4g1bQ4k1gS4o1p1xQ4t1wQ5r3WW6[3}4P4Q7SS6j4h4iS6n4p:iQ6p4sQ6}5aQ7[5sS7l6^6`Q7r6kS7s6o:mQ7u6rQ7|7OQ8V7]Q8_7nS8a7t:nQ8d7}Q8s8eQ9Q8tQ9X9RQ:u:pQ;T:zQ;U:{Q;V;hR;[;m$rWORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%`%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8oS!xn!k!j:o#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aR:u;`$rXORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%`%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8oQ$[b!Y$em!j$h$i$j&U&j&k&l(k)f)g+]+j+|+}-d.[0Q0W0]0h1u3{4Q6Z7k8^S$kn!kQ)c$fQ*]%TW/R*^*_*`*aU3W/S/T/UQ5a2sS5s3X3YU7O5b5c5fQ7]5tU7}7P7Q7SS8e8O8PS8t8f8gQ9R8u!j:p#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aQ:z;_R:{;`$f]OSTjk}!S!W!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%c%e%f%g%i%m%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8oY!hRU!]!`%xv$wrs!r!u$Z$u&`&t&w)x)y)z*m+Y+h,S,U/o0lQ*j%`!h:q#]#k'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aR:t&WS&[!b$vR0O+c$p[ORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8o!j'e#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aR*i%`$roORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%`%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8oQ'U!{!k:r#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;a!h#VZ!_$a%w%}&y'Q'_'`'a'b'g'k)p+R+g,O,^,d,w-x0i0s1T2O2[3v4W4[6V7g8Z8m8y9_!R9k'd'u+^,i/v/y0w1P1Q1R1S1W1]3s4]4b4c5`6S6b6f6g7z:|!d#XZ!_$a%w%}&y'Q'a'b'g'k)p+R+g,O,^,d,w-x0i0s1T2O2[3v4W4[6V7g8Z8m8y9_}9m'd'u+^,i/v/y0w1R1S1W1]3s4]4b4c5`6S6b6f6g7z:|!`#]Z!_$a%w%}&y'Q'g'k)p+R+g,O,^,d,w-x0i0s1T2O2[3v4W4[6V7g8Z8m8y9_Q1a-Px;a'd'u+^,i/v/y0w1W1]3s4]4b4c5`6S6b6f6g7z:|Q;i;pQ;j;qR;k;r&^cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aS#l`#mR1Y,l&e_ORSTU`jk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k#m$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,l,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aS#g^#nT'n#i'rT#h^#nT'p#i'r&e`ORSTU`jk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k#m$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,l,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aT#l`#mQ#o`R'y#m$rbORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%`%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8o!k;_#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;a#RdOSUj}!S!W!n!|#k$]%[%_%`%c%e%f%g%i%m&S&f'w)^*k*o*t+x,m-u.S.|/_/`/a/c/g/j/l1X2i3R3f3h3i5o5}x#{a!y$T$U$Y(W(Y(b(w(x,_-Y-w1a1y6i;^;i;j;k#[&|!w#d#v#y&g'}(Z(h)])_)a*O*R+y-Z-].R.T.p.s.{.}1k1s2Q2T2X2j3Q3S4l4u4}5k5p6z7W8T9w9z9}:U:X:[:a:d:j;l;n;t;u;vQ)S$WQ,x(Sd1V9r9y9|:P:W:Z:^:c:f:le8q9d9x9{:O:V:Y:]:b:e:kx#wa!y$T$U$Y(W(Y(b(w(x,_-Y-w1a1y6i;^;i;j;kQ(d#xS(n#z(qQ)T$XQ-g(o#[:w!w#d#v#y&g'}(Z(h)])_)a*O*R+y-Z-].R.T.p.s.{.}1k1s2Q2T2X2j3Q3S4l4u4}5k5p6z7W8T9w9z9}:U:X:[:a:d:j;l;n;t;u;vd:x9d9x9{:O:V:Y:]:b:e:kd:y9r9y9|:P:W:Z:^:c:f:lQ:};bQ;O;cQ;P;dQ;Q;eQ;R;fR;S;gx#{a!y$T$U$Y(W(Y(b(w(x,_-Y-w1a1y6i;^;i;j;k#[&|!w#d#v#y&g'}(Z(h)])_)a*O*R+y-Z-].R.T.p.s.{.}1k1s2Q2T2X2j3Q3S4l4u4}5k5p6z7W8T9w9z9}:U:X:[:a:d:j;l;n;t;u;vd1V9r9y9|:P:W:Z:^:c:f:le8q9d9x9{:O:V:Y:]:b:e:klfOSj}!n$]%c%f%g%i*o*t/g/jQ(g#yQ*}%pQ+O%rR1j-Z%O#|a!w!y#d#v#y$T$U$Y&g'}(W(Y(Z(b(h(w(x)])_)a*O*R+y,_-Y-Z-]-w.R.T.p.s.{.}1a1k1s1y2Q2T2X2j3Q3S4l4u4}5k5p6i6z7W8T9d9r9w9x9y9z9{9|9}:O:P:U:V:W:X:Y:Z:[:]:^:a:b:c:d:e:f:j:k:l;^;i;j;k;l;n;t;u;vQ*Q$}Q.r*SQ2m.qR5]2nT(p#z(qS(p#z(qT2u.y2vQ)b$eQ-f(nQ.X)cQ/Q*]Q3V/RQ5r3WQ6}5aQ7[5sQ7|7OQ8V7]Q8d7}Q8s8eQ9Q8tR9X9Rp(W#t'O)U-X-o-p0q1h1}4f4w7q:v;W;X;Y!n:U&z'i(^(f+v,[,t-P-^-|.P.o.q0e0p1i1m2W2l2n3O4Y4Z4m4q4y5O5Z5n6m6q7Y8`;Z;];p;q;r[:V8p9O9V9Y9Z9]]:W1U4a6c7o7p8zr(Y#t'O)U,}-X-o-p0q1h1}4f4w7q:v;W;X;Y!p:X&z'i(^(f+v,[,t-P-^-|.P.o.q0e0n0p1i1m2W2l2n3O4Y4Z4m4q4y5O5Z5n6m6q7Y8`;Z;];p;q;r^:Y8p9O9T9V9Y9Z9]_:Z1U4a6c6d7o7p8zpeOSjy}!n$]%Y%c%f%g%i*o*t/g/jQ%VxR*k%`peOSjy}!n$]%Y%c%f%g%i*o*t/g/jR%VxQ*U%OR.n)}qeOSjy}!n$]%Y%c%f%g%i*o*t/g/jQ.z*ZS3P/O/PW5j2|2}3O3TU7V5l5m5nU8R7U7X7YQ8h8SR8v8iQ%^yR*e%YR3^/XR7_5uS$mp$rR.d)nQ%czR*o%dR*u%jT/h*t/jR*y%kQ*x%kR/q*yQjOQ!nST$`j!nQ(P#sR,u(PQ!YQR%u!YQ!^RU%{!^%|+UQ%|!_R+U%}Q+a&XR/}+aQ,`'OR0r,`Q,c'QS0u,c0vR0v,dQ+m&dR0X+mS!eR$uU&a!e&b+VQ&b!fR+V&OQ+d&[R0P+dQ&u!sQ,R&sU,V&u,R0mR0m,WQ'r#iR,n'rQ#m`R'x#mQ#cZU'h#c+Q9qQ+Q9_R9q'uQ-S(_W1d-S1e4j6lU1e-T-U-VS4j1f1gR6l4k$k(U#t&z'O'i(^(f)P)Q)U+v,Y,Z,[,t,}-O-P-X-^-o-p-|.P.o.q0e0n0o0p0q1U1h1i1m1}2W2l2n3O4Y4Z4_4`4a4f4m4q4w4y5O5Z5n6c6d6e6m6q7Y7o7p7q8`8p8z8|8}9O9T9U9V9Y9Z9]:v;W;X;Y;Z;];p;q;rQ-[(fU1l-[1n4nQ1n-^R4n1mQ(q#zR-i(qQ(z$OR-r(zQ2R-|R4z2RQ){$xR.m){Q2p.tS5_2p6|R6|5`Q*W%PR.w*WQ2v.yR5d2vQ/W*bS3[/W5vR5v3^Q._)jW2a._2c5T6wQ2c.bQ5T2bR6w5UQ)o$mR.e)oQ/j*tR3l/jWiOSj!nQ%h}Q)X$]Q*n%cQ*p%fQ*q%gQ*s%iQ/e*oS/h*t/jR3k/gQ$_gQ%l!RQ%o!TQ%q!UQ%s!VQ)v$sQ)|$yQ*d%^Q*{%nQ-h(pS/Z*e*hQ/r*zQ/s*}Q/t+OS0S+j2sQ2f.hQ2k.oQ3U/QQ3`/]Q3j/fY3w0U0V0]0b5fQ5X2hQ5[2lQ5q3VQ5w3_[6U3v3y3}4P4Q7SQ6x5VQ7Z5rQ7`5xW7f6V6[6^6`Q7x6yQ7{6}Q8U7[U8X7g7l7nQ8c7|Q8j8VS8k8Z8_Q8r8dQ8w8mQ9P8sQ9S8yQ9W9QR9[9XQ$gmQ&i!jU)e$h$i$jQ+Z&UU+{&j&k&lQ-`(kS.Z)f)gQ/z+]Q0R+jS0g+|+}Q1q-dQ2Z.[Q3t0QS3z0W0]Q4V0hQ4r1uS6Y3{4QQ7i6ZQ8[7kR8n8^S#ua;^R({$PU$Oa$P;^R-q(yQ#taS&z!w)aQ'O!yQ'i#dQ(^#vQ(f#yQ)P$TQ)Q$UQ)U$YQ+v&gQ,Y9wQ,Z9zQ,[9}Q,t'}Q,}(WQ-O(YQ-P(ZQ-X(bQ-^(hQ-o(wQ-p(xd-|)].R.{2T3Q4}5k6z7W8TQ.P)_Q.o*OQ.q*RQ0e+yQ0n:UQ0o:XQ0p:[Q0q,_Q1U9rQ1h-YQ1i-ZQ1m-]Q1}-wQ2W.TQ2l.pQ2n.sQ3O.}Q4Y:aQ4Z:dQ4_9yQ4`9|Q4a:PQ4f1aQ4m1kQ4q1sQ4w1yQ4y2QQ5O2XQ5Z2jQ5n3SQ6c:^Q6d:WQ6e:ZQ6m4lQ6q4uQ7Y5pQ7o:cQ7p:fQ7q6iQ8`:jQ8p9dQ8z:lQ8|9xQ8}9{Q9O:OQ9T:VQ9U:YQ9V:]Q9Y:bQ9Z:eQ9]:kQ:v;^Q;W;iQ;X;jQ;Y;kQ;Z;lQ;];nQ;p;tQ;q;uR;r;vlgOSj}!n$]%c%f%g%i*o*t/g/jS!pU%eQ%n!SQ%t!WQ'V!|Q'v#kS*h%[%_Q*l%`Q*z%mQ+W&SQ+u&fQ,r'wQ.O)^Q/b*kQ0d+xQ1[,mQ1{-uQ2V.SQ2}.|Q3b/_Q3c/`Q3e/aQ3g/cQ3n/lQ4d1XQ5Y2iQ5m3RQ5|3fQ6O3hQ6P3iQ7X5oR7b5}!vZOSUj}!S!n!|$]%[%_%`%c%e%f%g%i%m&S&f)^*k*o*t+x-u.S.|/_/`/a/c/g/j/l2i3R3f3h3i5o5}Q!_RQ!oTQ$akS%w!]%zQ%}!`Q&y!vQ'Q!zQ'W#PQ'X#QQ'Y#RQ'Z#SQ'[#TQ']#UQ'^#VQ'_#WQ'`#XQ'a#YQ'b#ZQ'd#]Q'g#bQ'k#eW'u#k'w,m1XQ)p$nS+R%x+TS+^&W/{Q+g&_Q,O&pQ,^&}Q,d'RQ,g9^Q,i9`Q,w(RQ-x)VQ/v+XQ/y+[Q0i,PQ0s,bQ0w9cQ0x9eQ0y9fQ0z9gQ0{9hQ0|9iQ0}9jQ1O9kQ1P9lQ1Q9mQ1R9nQ1S9oQ1T,hQ1W9sQ1]9pQ2O-zQ2[.]Q3s:QQ3v0TQ4W0jQ4[0tQ4]:RQ4b:TQ4c:_Q5`2qQ6S3qQ6V3xQ6b:`Q6f:gQ6g:hQ7g6WQ7z6{Q8Z7jQ8m8]Q8y8oQ9_!WR:|;aR!aRR&Y!bS&U!b+`S+]&V&^R0Q+fR'P!yR'S!zT!tU$ZS!sU$ZU$xrs*mS&s!r!uQ,T&tQ,W&wQ.l)zS0k,S,UR4X0l`!dR!]!`$u%x&`)x+hh!qUrs!r!u$Z&t&w)z,S,U0lQ/d*mQ/w+YQ3p/oT:s&W)yT!gR$uS!fR$uS%y!]&`S&O!`)xS+S%x+hT+_&W)yT&]!b$vQ#i^R'{#nT'q#i'rR1Z,lT(a#v(cR(i#yQ-})]Q2U.RQ2|.{Q4{2TQ5l3QQ6t4}Q7U5kQ7y6zQ8S7WR8i8TlhOSj}!n$]%c%f%g%i*o*t/g/jQ%]yR*d%YV$yrs*mR.u*TR*c%WQ$qpR)u$rR)k$lT%az%dT%bz%dT/i*t/j",nodeNames:"\u26A0 extends ArithOp ArithOp InterpolationStart LineComment BlockComment Script ExportDeclaration export Star as VariableName String from ; default FunctionDeclaration async function VariableDefinition TypeParamList TypeDefinition ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation VoidType void TypeofType typeof MemberExpression . ?. PropertyName [ TemplateString Interpolation null super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewExpression new TypeArgList CompareOp < ) ( ArgList UnaryExpression await yield delete LogicOp BitOp ParenthesizedExpression ClassExpression class extends ClassBody MethodDeclaration Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression PrivatePropertyName BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof in const CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXStartTag JSXSelfClosingTag JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature CallSignature TypePredicate is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody MethodDeclaration AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement",maxTerm:332,context:wc,nodeProps:[["closedBy",4,"InterpolationEnd",40,"]",51,"}",66,")",132,"JSXSelfCloseEndTag JSXEndTag",146,"JSXEndTag"],["group",-26,8,15,17,58,184,188,191,192,194,197,200,211,213,219,221,223,225,228,234,240,242,244,246,248,250,251,"Statement",-30,12,13,24,27,28,41,43,44,45,47,52,60,68,74,75,91,92,101,103,119,122,124,125,126,127,129,130,148,149,151,"Expression",-22,23,25,29,32,34,152,154,156,157,159,160,161,163,164,165,167,168,169,178,180,182,183,"Type",-3,79,85,90,"ClassItem"],["openedBy",30,"InterpolationStart",46,"[",50,"{",65,"(",131,"JSXStartTag",141,"JSXStartTag JSXStartCloseTag"]],propSources:[Rc],skippedNodes:[0,5,6],repeatNodeCount:28,tokenData:"!C}~R!`OX%TXY%cYZ'RZ[%c[]%T]^'R^p%Tpq%cqr'crs(kst0htu2`uv4pvw5ewx6cxyk|}?O}!O>k!O!P?`!P!QCl!Q!R!0[!R![!1q![!]!7s!]!^!8V!^!_!8g!_!`!9d!`!a!:[!a!b!U#R#S2`#S#T!>i#T#o2`#o#p!>y#p#q!?O#q#r!?f#r#s!?x#s$f%T$f$g%c$g#BY2`#BY#BZ!@Y#BZ$IS2`$IS$I_!@Y$I_$I|2`$I|$I}!Bq$I}$JO!Bq$JO$JT2`$JT$JU!@Y$JU$KV2`$KV$KW!@Y$KW&FU2`&FU&FV!@Y&FV?HT2`?HT?HU!@Y?HU~2`W%YR$UWO!^%T!_#o%T#p~%T7Z%jg$UW'Y7ROX%TXY%cYZ%TZ[%c[p%Tpq%cq!^%T!_#o%T#p$f%T$f$g%c$g#BY%T#BY#BZ%c#BZ$IS%T$IS$I_%c$I_$JT%T$JT$JU%c$JU$KV%T$KV$KW%c$KW&FU%T&FU&FV%c&FV?HT%T?HT?HU%c?HU~%T7Z'YR$UW'Z7RO!^%T!_#o%T#p~%T$T'jS$UW!j#{O!^%T!_!`'v!`#o%T#p~%T$O'}S#e#v$UWO!^%T!_!`(Z!`#o%T#p~%T$O(bR#e#v$UWO!^%T!_#o%T#p~%T)X(rZ$UW]#eOY(kYZ)eZr(krs*rs!^(k!^!_+U!_#O(k#O#P-b#P#o(k#o#p+U#p~(k&r)jV$UWOr)ers*Ps!^)e!^!_*a!_#o)e#o#p*a#p~)e&r*WR$P&j$UWO!^%T!_#o%T#p~%T&j*dROr*ars*ms~*a&j*rO$P&j)X*{R$P&j$UW]#eO!^%T!_#o%T#p~%T)P+ZV]#eOY+UYZ*aZr+Urs+ps#O+U#O#P+w#P~+U)P+wO$P&j]#e)P+zROr+Urs,Ts~+U)P,[U$P&j]#eOY,nZr,nrs-Vs#O,n#O#P-[#P~,n#e,sU]#eOY,nZr,nrs-Vs#O,n#O#P-[#P~,n#e-[O]#e#e-_PO~,n)X-gV$UWOr(krs-|s!^(k!^!_+U!_#o(k#o#p+U#p~(k)X.VZ$P&j$UW]#eOY.xYZ%TZr.xrs/rs!^.x!^!_,n!_#O.x#O#P0S#P#o.x#o#p,n#p~.x#m/PZ$UW]#eOY.xYZ%TZr.xrs/rs!^.x!^!_,n!_#O.x#O#P0S#P#o.x#o#p,n#p~.x#m/yR$UW]#eO!^%T!_#o%T#p~%T#m0XT$UWO!^.x!^!_,n!_#o.x#o#p,n#p~.x3]0mZ$UWOt%Ttu1`u!^%T!_!c%T!c!}1`!}#R%T#R#S1`#S#T%T#T#o1`#p$g%T$g~1`3]1g]$UW'o3TOt%Ttu1`u!Q%T!Q![1`![!^%T!_!c%T!c!}1`!}#R%T#R#S1`#S#T%T#T#o1`#p$g%T$g~1`7Z2k_$UW#zS']$y'g3SOt%Ttu2`u}%T}!O3j!O!Q%T!Q![2`![!^%T!_!c%T!c!}2`!}#R%T#R#S2`#S#T%T#T#o2`#p$g%T$g~2`[3q_$UW#zSOt%Ttu3ju}%T}!O3j!O!Q%T!Q![3j![!^%T!_!c%T!c!}3j!}#R%T#R#S3j#S#T%T#T#o3j#p$g%T$g~3j$O4wS#^#v$UWO!^%T!_!`5T!`#o%T#p~%T$O5[R$UW#o#vO!^%T!_#o%T#p~%T5b5lU'x5Y$UWOv%Tvw6Ow!^%T!_!`5T!`#o%T#p~%T$O6VS$UW#i#vO!^%T!_!`5T!`#o%T#p~%T)X6jZ$UW]#eOY6cYZ7]Zw6cwx*rx!^6c!^!_8T!_#O6c#O#P:T#P#o6c#o#p8T#p~6c&r7bV$UWOw7]wx*Px!^7]!^!_7w!_#o7]#o#p7w#p~7]&j7zROw7wwx*mx~7w)P8YV]#eOY8TYZ7wZw8Twx+px#O8T#O#P8o#P~8T)P8rROw8Twx8{x~8T)P9SU$P&j]#eOY9fZw9fwx-Vx#O9f#O#P9}#P~9f#e9kU]#eOY9fZw9fwx-Vx#O9f#O#P9}#P~9f#e:QPO~9f)X:YV$UWOw6cwx:ox!^6c!^!_8T!_#o6c#o#p8T#p~6c)X:xZ$P&j$UW]#eOY;kYZ%TZw;kwx/rx!^;k!^!_9f!_#O;k#O#PW{!^%T!_!`5T!`#o%T#p~%T$O>_S#[#v$UWO!^%T!_!`5T!`#o%T#p~%T%w>rSj%o$UWO!^%T!_!`5T!`#o%T#p~%T&i?VR!R&a$UWO!^%T!_#o%T#p~%T7Z?gVu5^$UWO!O%T!O!P?|!P!Q%T!Q![@r![!^%T!_#o%T#p~%T!{@RT$UWO!O%T!O!P@b!P!^%T!_#o%T#p~%T!{@iR!Q!s$UWO!^%T!_#o%T#p~%T!{@yZ$UWk!sO!Q%T!Q![@r![!^%T!_!g%T!g!hAl!h#R%T#R#S@r#S#X%T#X#YAl#Y#o%T#p~%T!{AqZ$UWO{%T{|Bd|}%T}!OBd!O!Q%T!Q![CO![!^%T!_#R%T#R#SCO#S#o%T#p~%T!{BiV$UWO!Q%T!Q![CO![!^%T!_#R%T#R#SCO#S#o%T#p~%T!{CVV$UWk!sO!Q%T!Q![CO![!^%T!_#R%T#R#SCO#S#o%T#p~%T7ZCs`$UW#]#vOYDuYZ%TZzDuz{Jl{!PDu!P!Q!-e!Q!^Du!^!_Fx!_!`!.^!`!a!/]!a!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~DuXD|[$UW}POYDuYZ%TZ!PDu!P!QEr!Q!^Du!^!_Fx!_!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~DuXEy_$UW}PO!^%T!_#Z%T#Z#[Er#[#]%T#]#^Er#^#a%T#a#bEr#b#g%T#g#hEr#h#i%T#i#jEr#j#m%T#m#nEr#n#o%T#p~%TPF}V}POYFxZ!PFx!P!QGd!Q!}Fx!}#OG{#O#PHh#P~FxPGiU}P#Z#[Gd#]#^Gd#a#bGd#g#hGd#i#jGd#m#nGdPHOTOYG{Z#OG{#O#PH_#P#QFx#Q~G{PHbQOYG{Z~G{PHkQOYFxZ~FxXHvY$UWOYHqYZ%TZ!^Hq!^!_G{!_#OHq#O#PIf#P#QDu#Q#oHq#o#pG{#p~HqXIkV$UWOYHqYZ%TZ!^Hq!^!_G{!_#oHq#o#pG{#p~HqXJVV$UWOYDuYZ%TZ!^Du!^!_Fx!_#oDu#o#pFx#p~Du7ZJs^$UW}POYJlYZKoZzJlz{NQ{!PJl!P!Q!,R!Q!^Jl!^!_!!]!_!}Jl!}#O!'|#O#P!+a#P#oJl#o#p!!]#p~Jl7ZKtV$UWOzKoz{LZ{!^Ko!^!_M]!_#oKo#o#pM]#p~Ko7ZL`X$UWOzKoz{LZ{!PKo!P!QL{!Q!^Ko!^!_M]!_#oKo#o#pM]#p~Ko7ZMSR$UWU7RO!^%T!_#o%T#p~%T7RM`ROzM]z{Mi{~M]7RMlTOzM]z{Mi{!PM]!P!QM{!Q~M]7RNQOU7R7ZNX^$UW}POYJlYZKoZzJlz{NQ{!PJl!P!Q! T!Q!^Jl!^!_!!]!_!}Jl!}#O!'|#O#P!+a#P#oJl#o#p!!]#p~Jl7Z! ^_$UWU7R}PO!^%T!_#Z%T#Z#[Er#[#]%T#]#^Er#^#a%T#a#bEr#b#g%T#g#hEr#h#i%T#i#jEr#j#m%T#m#nEr#n#o%T#p~%T7R!!bY}POY!!]YZM]Zz!!]z{!#Q{!P!!]!P!Q!&x!Q!}!!]!}#O!$`#O#P!&f#P~!!]7R!#VY}POY!!]YZM]Zz!!]z{!#Q{!P!!]!P!Q!#u!Q!}!!]!}#O!$`#O#P!&f#P~!!]7R!#|UU7R}P#Z#[Gd#]#^Gd#a#bGd#g#hGd#i#jGd#m#nGd7R!$cWOY!$`YZM]Zz!$`z{!${{#O!$`#O#P!&S#P#Q!!]#Q~!$`7R!%OYOY!$`YZM]Zz!$`z{!${{!P!$`!P!Q!%n!Q#O!$`#O#P!&S#P#Q!!]#Q~!$`7R!%sTU7ROYG{Z#OG{#O#PH_#P#QFx#Q~G{7R!&VTOY!$`YZM]Zz!$`z{!${{~!$`7R!&iTOY!!]YZM]Zz!!]z{!#Q{~!!]7R!&}_}POzM]z{Mi{#ZM]#Z#[!&x#[#]M]#]#^!&x#^#aM]#a#b!&x#b#gM]#g#h!&x#h#iM]#i#j!&x#j#mM]#m#n!&x#n~M]7Z!(R[$UWOY!'|YZKoZz!'|z{!(w{!^!'|!^!_!$`!_#O!'|#O#P!*o#P#QJl#Q#o!'|#o#p!$`#p~!'|7Z!(|^$UWOY!'|YZKoZz!'|z{!(w{!P!'|!P!Q!)x!Q!^!'|!^!_!$`!_#O!'|#O#P!*o#P#QJl#Q#o!'|#o#p!$`#p~!'|7Z!*PY$UWU7ROYHqYZ%TZ!^Hq!^!_G{!_#OHq#O#PIf#P#QDu#Q#oHq#o#pG{#p~Hq7Z!*tX$UWOY!'|YZKoZz!'|z{!(w{!^!'|!^!_!$`!_#o!'|#o#p!$`#p~!'|7Z!+fX$UWOYJlYZKoZzJlz{NQ{!^Jl!^!_!!]!_#oJl#o#p!!]#p~Jl7Z!,Yc$UW}POzKoz{LZ{!^Ko!^!_M]!_#ZKo#Z#[!,R#[#]Ko#]#^!,R#^#aKo#a#b!,R#b#gKo#g#h!,R#h#iKo#i#j!,R#j#mKo#m#n!,R#n#oKo#o#pM]#p~Ko7Z!-lV$UWT7ROY!-eYZ%TZ!^!-e!^!_!.R!_#o!-e#o#p!.R#p~!-e7R!.WQT7ROY!.RZ~!.R$P!.g[$UW#o#v}POYDuYZ%TZ!PDu!P!QEr!Q!^Du!^!_Fx!_!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~Du]!/f[#wS$UW}POYDuYZ%TZ!PDu!P!QEr!Q!^Du!^!_Fx!_!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~Du!{!0cd$UWk!sO!O%T!O!P@r!P!Q%T!Q![!1q![!^%T!_!g%T!g!hAl!h#R%T#R#S!1q#S#U%T#U#V!3X#V#X%T#X#YAl#Y#b%T#b#c!2w#c#d!4m#d#l%T#l#m!5{#m#o%T#p~%T!{!1x_$UWk!sO!O%T!O!P@r!P!Q%T!Q![!1q![!^%T!_!g%T!g!hAl!h#R%T#R#S!1q#S#X%T#X#YAl#Y#b%T#b#c!2w#c#o%T#p~%T!{!3OR$UWk!sO!^%T!_#o%T#p~%T!{!3^W$UWO!Q%T!Q!R!3v!R!S!3v!S!^%T!_#R%T#R#S!3v#S#o%T#p~%T!{!3}Y$UWk!sO!Q%T!Q!R!3v!R!S!3v!S!^%T!_#R%T#R#S!3v#S#b%T#b#c!2w#c#o%T#p~%T!{!4rV$UWO!Q%T!Q!Y!5X!Y!^%T!_#R%T#R#S!5X#S#o%T#p~%T!{!5`X$UWk!sO!Q%T!Q!Y!5X!Y!^%T!_#R%T#R#S!5X#S#b%T#b#c!2w#c#o%T#p~%T!{!6QZ$UWO!Q%T!Q![!6s![!^%T!_!c%T!c!i!6s!i#R%T#R#S!6s#S#T%T#T#Z!6s#Z#o%T#p~%T!{!6z]$UWk!sO!Q%T!Q![!6s![!^%T!_!c%T!c!i!6s!i#R%T#R#S!6s#S#T%T#T#Z!6s#Z#b%T#b#c!2w#c#o%T#p~%T$u!7|R!]V$UW#m$fO!^%T!_#o%T#p~%T!q!8^R_!i$UWO!^%T!_#o%T#p~%T5w!8rR'bd!a/n#x&s'|P!P!Q!8{!^!_!9Q!_!`!9_W!9QO$WW#v!9VP#`#v!_!`!9Y#v!9_O#o#v#v!9dO#a#v$u!9kT!{$m$UWO!^%T!_!`'v!`!a!9z!a#o%T#p~%T$P!:RR#W#w$UWO!^%T!_#o%T#p~%T%V!:gT'a!R#a#v$RS$UWO!^%T!_!`!:v!`!a!;W!a#o%T#p~%T$O!:}R#a#v$UWO!^%T!_#o%T#p~%T$O!;_T#`#v$UWO!^%T!_!`5T!`!a!;n!a#o%T#p~%T$O!;uS#`#v$UWO!^%T!_!`5T!`#o%T#p~%T*a!]S#g#v$UWO!^%T!_!`5T!`#o%T#p~%T$a!>pR$UW'f$XO!^%T!_#o%T#p~%T~!?OO!T~5b!?VT'w5Y$UWO!^%T!_!`5T!`#o%T#p#q!=P#q~%T6X!?oR!S5}nQ$UWO!^%T!_#o%T#p~%TX!@PR!kP$UWO!^%T!_#o%T#p~%T7Z!@gr$UW'Y7R#zS']$y'g3SOX%TXY%cYZ%TZ[%c[p%Tpq%cqt%Ttu2`u}%T}!O3j!O!Q%T!Q![2`![!^%T!_!c%T!c!}2`!}#R%T#R#S2`#S#T%T#T#o2`#p$f%T$f$g%c$g#BY2`#BY#BZ!@Y#BZ$IS2`$IS$I_!@Y$I_$JT2`$JT$JU!@Y$JU$KV2`$KV$KW!@Y$KW&FU2`&FU&FV!@Y&FV?HT2`?HT?HU!@Y?HU~2`7Z!CO_$UW'Z7R#zS']$y'g3SOt%Ttu2`u}%T}!O3j!O!Q%T!Q![2`![!^%T!_!c%T!c!}2`!}#R%T#R#S2`#S#T%T#T#o2`#p$g%T$g~2`",tokenizers:[Cc,Pc,Ec,_c,0,1,2,3,4,5,6,7,8,9,kc],topRules:{Script:[0,7]},dialects:{jsx:12107,ts:12109},dynamicPrecedences:{149:1,176:1},specialized:[{term:289,get:t=>Ac[t]||-1},{term:299,get:t=>qc[t]||-1},{term:63,get:t=>jc[t]||-1}],tokenPrec:12130});var B=require("@codemirror/language"),Cr=require("@codemirror/state"),ro=require("@codemirror/view"),ee=require("@codemirror/autocomplete");var Zc=[(0,ee.snippetCompletion)("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),(0,ee.snippetCompletion)("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),(0,ee.snippetCompletion)("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),(0,ee.snippetCompletion)("do {\n ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),(0,ee.snippetCompletion)("while (${}) {\n ${}\n}",{label:"while",detail:"loop",type:"keyword"}),(0,ee.snippetCompletion)(`try { + ]`,matrixShortcutsEnvNames:"pmatrix, cases, align, gather, bmatrix, Bmatrix, vmatrix, Vmatrix, array, matrix",matrixShortcutsMacroNames:"eqalign",taboutClosingSymbols:"), ], \\rbrack, \\}, \\rbrace, \\rangle, \\rvert, \\rVert, \\rfloor, \\rceil, \\urcorner, }",autoEnlargeBracketsTriggers:"sum, int, frac, prod, bigcup, bigcap",forceMathLanguages:"math",snippetDebug:"off",vimEnabled:!1,vimSelectMode:"",vimVisualMode:"",vimMatrixEnter:"o",snippetRecursion:0,snippetIMEVersion:!1,highlightDollarEnabled:!0,excalidrawSupportEnabled:!0,logLevel:"off",autofractionTrigger:"/",matrixShortcutsCellTrigger:"Tab",matrixShortcutsNewlineTrigger:"Enter",matrixShortcutsExitTrigger:"Shift-Enter"},Li=Vt(H(),qi(),Re(Wi([H(),H()],"Every item needs to be an array with 2 items"),"Needs to be an array [item1,item2]"),mn(([e,t])=>({openSymbol:e,closeSymbol:t})));function vn(e,t){function n(o){return o.replace(/\s/g,"").split(",")}function r(o){let s=[];try{s=rt(Li,o)}catch(a){console.error(a)}return s}let i={automatic:e.filter(o=>o.options.automatic),all:e};return j(A({},t),{snippets:i,autofractionExcludedEnvs:r(t.autofractionExcludedEnvs),matrixShortcutsEnvNames:n(t.matrixShortcutsEnvNames),matrixShortcutsMacroNames:n(t.matrixShortcutsMacroNames),taboutClosingSymbols:new Set(n(t.taboutClosingSymbols)),autoEnlargeBracketsTriggers:n(t.autoEnlargeBracketsTriggers).map(o=>/[A-Za-z]+/.test(o)?`\\${o}`:o),forceMathLanguages:n(t.forceMathLanguages)})}function De(e,t){if(e==="off")return!1;let n=Na(e);return Na(t)<=n}function Na(e){switch(e){case"off":return 0;case"info":return 1;case"verbose":return 2;case"vverbose":return 3}}var Fa=za.Facet.define({combine:e=>{var n;return(n=e[0])!=null?n:vn([],q)}});function W(e){return(e instanceof Ua.EditorView?e.state:e).facet(Fa)}function Ya(e){return Fa.of(e)}var xs=require("@codemirror/language");var Iu=hn({name:H(),arguments:Qe(Re(fn()))}),Di=Vt(Qe(Re(Ye([H(),Iu])),[]),mn(e=>typeof e=="string"?{name:e,arguments:[0]}:e)),Gu=[{name:"text",arguments:[0]},{name:"textrm",arguments:[0]},{name:"textup",arguments:[0]},{name:"textit",arguments:[0]},{name:"textbf",arguments:[0]},{name:"textsf",arguments:[0]},{name:"texttt",arguments:[0]},{name:"textnormal",arguments:[0]},{name:"clap",arguments:[0]},{name:"textllap",arguments:[0]},{name:"textrlap",arguments:[0]},{name:"textclap",arguments:[0]},{name:"hbox",arguments:[0]},{name:"mbox",arguments:[0]},{name:"fbox",arguments:[0]},{name:"framebox",arguments:[0]},{name:"colorbox",arguments:[1]},{name:"fcolorbox",arguments:[2]}],Vi=[{name:"tag",arguments:[0]},{name:"begin",arguments:[0]},{name:"end",arguments:[0]},{name:"mmlToken",arguments:[0,1]},{name:"unicode",arguments:[0]},{name:"textcolor",arguments:[0]},{name:"color",arguments:[0]},{name:"colorbox",arguments:[0]},{name:"fcolorbox",arguments:[0,1]},{name:"operatorname",arguments:[0]},{name:"style",arguments:[0]}],Ka=[...Gu,...Vi],Hu=["label","ref","eqref","operatorname","operatorname*","DeclareMathOperator","DeclareMathOperator*","mathrm","mathup","mathnormal","mathbf","mathbfup","mathit","mathbfit","mathbb","Bbb","mathfrak","mathbffrak","mathscr","mathbfscr","mathsf","mathsfup","mathbfsf","mathbfsfup","mathsfit","mathbfsfit","mathtt","mathcal","mathbfcal","symrm","symup","symnormal","symbf","symbfup","symit","symbfit","symbb","symfrak","symbffrak","symscr","symbfscr","symsf","symsfup","symbfsf","symbfsfup","symsfit","symbfsfit","symtt","symcal","symbfcal","Bbb"],Ag=`[${Hu.map(e=>` + ["${e}", "}"]`).join("")} +]`;var tc=require("@codemirror/view");var vy=require("@codemirror/state");var Nt=require("@codemirror/language"),xr=require("@codemirror/state"),Sr=require("@codemirror/view"),ay=require("@lezer/common");var Os=require("@lezer/common");var hl=require("@lezer/lr");var xt=require("@lezer/lr");var pr={aleph:"\u2135",amalg:"\u2A3F",And:"&",angle:"\u2220",approx:"\u2248",approxeq:"\u224A",ast:"\u2217",asymp:"\u224D",backepsilon:"\u220D",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",backslash:"\u2216",barwedge:"\u22BC",Bbbk:"k",because:"\u2235",beth:"\u2136",between:"\u226C",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",blacklozenge:"\u29EB",blacksquare:"\u25FC",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",bot:"\u22A5",bowtie:"\u22C8",Box:"\u25FB",boxdot:"\u22A1",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",bullet:"\u2219",bumpeq:"\u224F",Bumpeq:"\u224E",Cap:"\u22D2",cap:"\u2229",cdot:"\u22C5",cdotp:"\u22C5",cdots:"\u22EF",celsius:"\u2103",centerdot:"\u22C5",checkmark:"\u2713",circ:"\u2218",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",circledR:"\xAE",circledS:"\u24C8",clubsuit:"\u2663",complement:"\u2201",cong:"\u2245",coprod:"\u2210",copyright:"\xA9",cp:"\xD7",cross:"\xD7",crossproduct:"\xD7",Cup:"\u22D3",cup:"\u222A",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",dagger:"\u2020",daleth:"\u2138",dashleftarrow:"\u21E0",dashrightarrow:"\u21E2",dashv:"\u22A3",ddagger:"\u2021",ddots:"\u22F1",degree:"\xB0",diagdown:"\u2572",diagup:"\u2571",Diamond:"\u25CA",diamond:"\u22C4",diamondsuit:"\u2662",digamma:"\u03DD",div:"\xF7",divideontimes:"\u22C7",divsymbol:"\xF7",Doteq:"\u2251",doteq:"\u2250",doteqdot:"\u2251",dotplus:"\u2214",dotproduct:"\u22C5",dots:"\u2026",dotsb:"\u22EF",dotsc:"\u2026",dotsi:"\u22EF",dotsm:"\u22EF",dotso:"\u2026",doublebarwedge:"\u2A5E",doublecap:"\u22D2",doublecup:"\u22D3",downarrow:"\u2193",Downarrow:"\u21D3",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",ell:"\u2113",emptyset:"\u2205",eqcirc:"\u2256",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",equiv:"\u2261",eth:"\xF0",exists:"\u2203",fallingdotseq:"\u2252",Finv:"\u2132",flat:"\u266D",forall:"\u2200",frown:"\u2322",Game:"\u2141",ge:"\u2265",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",gets:"\u2190",gg:"\u226B",ggg:"\u22D9",gggtr:"\u22D9",gimel:"\u2137",gnapprox:"\u2A8A",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",gradientnabla:"\u2207",gt:">",gtrapprox:"\u2A86",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269",hbar:"\u210F",heartsuit:"\u2661",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",hslash:"\u210F",iff:"\u21D4",iiiint:"\u2A0C",iiint:"\u222D",iint:"\u222C",Im:"\u2111",imaginary:"\u2111",imath:"\u0131",in:"\u2208",infty:"\u221E",injlim:"inj lim",int:"\u222B",intercal:"\u22BA",intop:"\u222B",jmath:"\u0237",Join:"\u22C8",land:"\u2227",ldotp:".",ldots:"\u2026",le:"\u2264",leadsto:"\u21DD",left:"",Leftarrow:"\u21D0",leftarrow:"\u2190",leftarrowtail:"\u21A2",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",Leftrightarrow:"\u21D4",leftrightarrow:"\u2194",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",leftthreetimes:"\u22CB",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",lessgtr:"\u2276",lesssim:"\u2272",lhd:"\u22B2",ll:"\u226A",Lleftarrow:"\u21DA",lll:"\u22D8",llless:"\u22D8",lnapprox:"\u2A89",lneq:"\u2A87",lneqq:"\u2268",lnot:"\xAC",lnsim:"\u22E6",longleftarrow:"\u27F5",Longleftarrow:"\u27F8",Longleftrightarrow:"\u27FA",longleftrightarrow:"\u27F7",longmapsto:"\u27FC",longrightarrow:"\u27F6",Longrightarrow:"\u27F9",looparrowleft:"\u21AB",looparrowright:"\u21AC",lor:"\u2228",lozenge:"\u25CA",Lsh:"\u21B0",lt:"<",ltimes:"\u22C9",lvertneqq:"\u2268",maltese:"\u2720",mapsto:"\u21A6",measuredangle:"\u2221",mho:"\u2127",micro:"\xB5",mid:"\u2223",middle:"",models:"\u22A8",mp:"\u2213",multimap:"\u22B8",nabla:"\u2207",natural:"\u266E",ncong:"\u2247",ne:"\u2260",nearrow:"\u2197",neg:"\xAC",neq:"\u2260",neqslant:"\u2260",nexists:"\u2204",ngeq:"\u2271",ngeqq:"\u2271",ngeqslant:"\u2A88",ngtr:"\u226F",ni:"\u220B",nleftarrow:"\u219A",nLeftarrow:"\u21CD",nleftrightarrow:"\u21AE",nLeftrightarrow:"\u21CE",nleq:"\u2270",nleqq:"\u2270",nleqslant:"\u2A87",nless:"\u226E",nmid:"\u2224",notChar:"\u29F8",notin:"\u2209",nparallel:"\u2226",nprec:"\u2280",npreceq:"\u22E0",nrightarrow:"\u219B",nRightarrow:"\u21CF",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsubseteq:"\u2288",nsubseteqq:"\u2288",nsucc:"\u2281",nsucceq:"\u22E1",nsupseteq:"\u2289",nsupseteqq:"\u2289",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",nvdash:"\u22AC",nvDash:"\u22AD",nVdash:"\u22AE",nVDash:"\u22AF",nwarrow:"\u2196",odot:"\u2299",ohm:"\u2126",oint:"\u222E",ominus:"\u2296",oplus:"\u2295",oslash:"\u2298",otimes:"\u2297",owns:"\u220B",P:"\xB6",parallel:"\u2225",partial:"\u2202",perp:"\u22A5",perthousand:"\u2030",pitchfork:"\u22D4",pm:"\xB1",prec:"\u227A",precapprox:"\u2AB7",preccurlyeq:"\u227C",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",precsim:"\u227E",prime:"\u2032",prod:"\u220F",projlim:"proj lim",propto:"\u221D",qquad:"\u2001",quad:"\u2000",Re:"\u211C",real:"\u211C",restriction:"\u21BE",rhd:"\u22B3",right:"",Rightarrow:"\u21D2",rightarrow:"\u2192",rightarrowtail:"\u21A3",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u21DD",rightthreetimes:"\u22CC",risingdotseq:"\u2253",Rrightarrow:"\u21DB",Rsh:"\u21B1",rtimes:"\u22CA",S:"\xA7",searrow:"\u2198",setminus:"\u2216",sharp:"\u266F",shortmid:"\u2223",shortparallel:"\u2225",sim:"\u223C",simeq:"\u2243",smallfrown:"\u2322",smallint:"\u222B",smallsetminus:"\u2216",smallsmile:"\u2323",smile:"\u2323",spadesuit:"\u2660",sphericalangle:"\u2222",sqcap:"\u2293",sqcup:"\u2294",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsupset:"\u2290",sqsupseteq:"\u2292",square:"\u25FB",star:"\u22C6",Subset:"\u22D0",subset:"\u2282",subseteq:"\u2286",subseteqq:"\u2AC5",subsetneq:"\u228A",subsetneqq:"\u2ACB",succ:"\u227B",succapprox:"\u2AB8",succcurlyeq:"\u227D",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",sum:"\u2211",Supset:"\u22D1",supset:"\u2283",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",surd:"\u221A",swarrow:"\u2199",therefore:"\u2234",thickapprox:"\u2248",thicksim:"\u223C",times:"\xD7",to:"\u2192",top:"\u22A4",triangle:"\u25B3",triangledown:"\u25BD",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",unlhd:"\u22B4",unrhd:"\u22B5",uparrow:"\u2191",Uparrow:"\u21D1",updownarrow:"\u2195",Updownarrow:"\u21D5",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",upuparrows:"\u21C8",varpropto:"\u221D",varsubsetneq:"\u228A",varsubsetneqq:"\u2ACB",varsupsetneq:"\u228B",varsupsetneqq:"\u2ACC",vartriangle:"\u25B3",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",vDash:"\u22A8",Vdash:"\u22A9",vdash:"\u22A2",vdot:"\u22C5",vdots:"\u22EE",vee:"\u2228",veebar:"\u22BB",Vvdash:"\u22AA",wedge:"\u2227",wp:"\u2118",wr:"\u2240",yen:"\xA5",implies:"\u21D2",impliedby:"\u21D0",choose:"C",sqrt:"\u221A",coloneqq:"\u2254",colon:":",Colonapprox:"::\u2248",Coloneq:"::-",Coloneqq:"\u2A74",Colonsim:"::\u223C",Eqcolon:"-::",Eqqcolon:"=::",colonapprox:":\u2248",coloneq:":-",colonsim:":\u223C",dblcolon:"\u2237",eqcolon:"\u2239",eqqcolon:"\u2255",displaystyle:" ",",":" ",":":" ",";":" ",">":" ",enspace:" ",thinspace:" ",negthinspace:"","!":"",textacutedbl:"\u02DD",textasciiacute:"\xB4",textasciibreve:"\u02D8",textasciicaron:"\u02C7",textasciicircum:"^",textasciidieresis:"\xA8",textasciimacron:"\xAF",textasciitilde:"~",textasteriskcentered:"*",textbackslash:"\\",textbaht:"\u0E3F",textbar:"|",textbardbl:"\u2016",textbigcircle:"\u25EF",textblank:"\u2422",textborn:"*",textbraceleft:"{",textbraceright:"}",textbrokenbar:"\xA6",textbullet:"\u2022",textcelsius:"\u2103",textcent:"\xA2",textcentoldstyle:"\xA2",textcircledP:"\u2117",textcolonmonetary:"\u20A1",textcompwordmark:"\u200C",textcopyleft:"\u{1F12F}",textcopyright:"\xA9",textcurrency:"\xA4",textdagger:"\u2020",textdaggerdbl:"\u2021",textdegree:"\xB0",textdied:"\u2020",textdiscount:"\u2052",textdiv:"\xF7",textdivorced:"\u26AE",textdollar:"$",textdollaroldstyle:"$",textdong:"\u20AB",textdownarrow:"\u2193",texteightoldstyle:"8",textellipsis:"\u2026",textemdash:"\u2014",textendash:"\u2013",textestimated:"\u212E",texteuro:"\u20AC",textexclamdown:"\xA1",textfiveoldstyle:"5",textflorin:"\u0192",textfouroldstyle:"4",textfractionsolidus:"\u2044",textgravedbl:"\u02F5",textgreater:">",textguarani:"\u20B2",textinterrobang:"\u203D",textinterrobangdown:"\u2E18",textlangle:"\u2329",textlbrackdbl:"\u27E6",textleftarrow:"\u2190",textless:"<",textlira:"\u20A4",textlnot:"\xAC",textlquill:"\u2045",textmarried:"\u26AD",textmho:"\u2127",textminus:"\u2212",textmu:"\xB5",textmusicalnote:"\u266A",textnaira:"\u20A6",textnineoldstyle:"9",textnumero:"\u2116",textohm:"\u2126",textonehalf:"\xBD",textoneoldstyle:"1",textonequarter:"\xBC",textonesuperior:"\xB9",textopenbullet:"\u25E6",textordfeminine:"\xAA",textordmasculine:"\xBA",textparagraph:"\xB6",textperiodcentered:"\xB7",textpertenthousand:"\u2031",textperthousand:"\u2030",textpeso:"\u20B1",textpm:"\xB1",textquestiondown:"\xBF",textquotedblleft:"\u201C",textquotedblright:"\u201D",textquoteleft:"\u2018",textquoteright:"\u2019",textrangle:"\u232A",textrbrackdbl:"\u27E7",textrecipe:"\u211E",textreferencemark:"\u203B",textregistered:"\xAE",textrightarrow:"\u2192",textrquill:"\u2046",textsection:"\xA7",textservicemark:"\u2120",textsevenoldstyle:"7",textsixoldstyle:"6",textsterling:"\xA3",textsurd:"\u221A",textthreeoldstyle:"3",textthreequarters:"\xBE",textthreesuperior:"\xB3",texttildelow:"\u02F7",texttimes:"\xD7",texttrademark:"\u2122",texttwooldstyle:"2",texttwosuperior:"\xB2",textunderscore:"_",textuparrow:"\u2191",textvisiblespace:"\u2423",textwon:"\u20A9",textyen:"\xA5",textzerooldstyle:"0"},Ja={leftarrow:"\u219A",to:"\u219B",leftrightarrow:"\u21AE",Leftarrow:"\u21CD",Rightarrow:"\u21CF",Leftrightarrow:"\u21CE",in:"\u2209",owns:"\u220C",shortmid:"\u2224",shortparallel:"\u2226",thicksim:"\u2241",simeq:"\u2244",cong:"\u2247",thickapprox:"\u2249",asymp:"\u226D",equiv:"\u2262",lt:"\u226E",gt:"\u226F",leq:"\u2270",geq:"\u2271",lesssim:"\u2274",gtrsim:"\u2275",lessgtr:"\u2278",gtrless:"\u2279",prec:"\u2280",succ:"\u2281",subset:"\u2284",supset:"\u2285",subseteq:"\u2288",supseteq:"\u2289",vdash:"\u22AC",vDash:"\u22AD",Vdash:"\u22AE",preccurlyeq:"\u22E0",succcurlyeq:"\u22E1",sqsubseteq:"\u22E2",sqsupseteq:"\u22E3",vartriangleleft:"\u22EA",vartriangleright:"\u22EB",unlhd:"\u22EC",unrhd:"\u22ED",exists:"\u2204"},el=["arcsin","arccos","arctan","sinh","cosh","tanh","coth","sin","cos","tan","sec","csc","cot","exp","ker","limsup","lim","sup","deg","gcd","log","lg","ln","Pr","det","hom","arg","dim","liminf","min","max","inf","mod"],Ii={"{1}{2}":"\xBD","{1}{3}":"\u2153","{2}{3}":"\u2154","{1}{4}":"\xBC","{1}{5}":"\u2155","{2}{5}":"\u2156","{3}{5}":"\u2157","{4}{5}":"\u2158","{1}{6}":"\u2159","{5}{6}":"\u215A","{1}{8}":"\u215B","{3}{8}":"\u215C","{5}{8}":"\u215D","{7}{8}":"\u215E"},Ht={alpha:"\u03B1",beta:"\u03B2",gamma:"\u03B3",varGamma:"\u0393",delta:"\u03B4",varDelta:"\u0394",epsilon:"\u03F5",varepsilon:"\u03B5",zeta:"\u03B6",eta:"\u03B7",theta:"\u03B8",vartheta:"\u03D1",iota:"\u03B9",kappa:"\u03BA",varkappa:"\u03F0",lambda:"\u03BB",mu:"\u03BC",nu:"\u03BD",xi:"\u03BE",omicron:"\u03BF",pi:"\u03C0",varpi:"\u03D6",varPi:"\u03A0",rho:"\u03C1",varrho:"\u03F1",sigma:"\u03C3",varsigma:"\u03C2",varSigma:"\u03A3",tau:"\u03C4",upsilon:"\u03C5",phi:"\u03D5",varphi:"\u03C6",varPhi:"\u03A6",chi:"\u03C7",psi:"\u03C8",varPsi:"\u03A8",omega:"\u03C9",Gamma:"\u0393",Delta:"\u0394",Theta:"\u0398",varTheta:"\u0398",Lambda:"\u039B",varLambda:"\u039B",Xi:"\u039E",varXi:"\u039E",Pi:"\u03A0",Sigma:"\u03A3",Upsilon:"\u03A5",varUpsilon:"\u03A5",Phi:"\u03A6",Chi:"\u03A7",Psi:"\u03A8",Omega:"\u03A9",varOmega:"\u03A9",varnothing:"\u2205",upalpha:"\u03B1",upbeta:"\u03B2",upgamma:"\u03B3",updelta:"\u03B4",upepsilon:"\u03F5",upzeta:"\u03B6",upeta:"\u03B7",uptheta:"\u03B8",upiota:"\u03B9",upkappa:"\u03BA",uplambda:"\u03BB",upmu:"\u03BC",upnu:"\u03BD",upxi:"\u03BE",upomicron:"\u03BF",uppi:"\u03C0",uprho:"\u03C1",upsigma:"\u03C3",uptau:"\u03C4",upupsilon:"\u03C5",upphi:"\u03D5",upchi:"\u03C7",uppsi:"\u03C8",upomega:"\u03C9",upvarepsilon:"\u03B5",upvartheta:"\u03D1",upvarpi:"\u03D6",upvarrho:"\u03F1",upvarsigma:"\u03C2",upvarphi:"\u03C6",Upgamma:"\u0393",Updelta:"\u0394",Uptheta:"\u0398",Uplambda:"\u039B",Upxi:"\u039E",Uppi:"\u03A0",Upsigma:"\u03A3",Upupsilon:"\u03A5",Upphi:"\u03A6",Uppsi:"\u03A8",Upomega:"\u03A9"};var tl={"<":"\u27E8",">":"\u27E9",".":"","/":"/","\\gt":"\u27E9","\\lt":"\u27E8"},ur={langle:"\u27E8",rangle:"\u27E9",lvert:"|",rvert:"|",lVert:"\u2016",rVert:"\u2016",vert:"|",Arrowvert:"\u2016",Vert:"\u2016",arrowvert:"\u23D0",bracevert:"\u23AA",lbrace:"{",lbrack:"[",lceil:"\u2308",lfloor:"\u230A",lgroup:"\u27EE",llcorner:"\u231E",lmoustache:"\u23B0",lparen:"(",lrcorner:"\u231F",rbrace:"}",rbrack:"]",rceil:"\u2309",rfloor:"\u230B",rgroup:"\u27EF",rmoustache:"\u23B1",rparen:")",ulcorner:"\u231C",urcorner:"\u231D"},nl={" ":" ",0:"\u{1D7D8}",1:"\u{1D7D9}",2:"\u{1D7DA}",3:"\u{1D7DB}",4:"\u{1D7DC}",5:"\u{1D7DD}",6:"\u{1D7DE}",7:"\u{1D7DF}",8:"\u{1D7E0}",9:"\u{1D7E1}",A:"\u{1D538}",B:"\u{1D539}",C:"\u2102",D:"\u{1D53B}",E:"\u{1D53C}",F:"\u{1D53D}",G:"\u{1D53E}",H:"\u210D",I:"\u{1D540}",J:"\u{1D541}",K:"\u{1D542}",L:"\u{1D543}",M:"\u{1D544}",N:"\u2115",O:"\u{1D546}",P:"\u2119",Q:"\u211A",R:"\u211D",S:"\u{1D54A}",T:"\u{1D54B}",U:"\u{1D54C}",V:"\u{1D54D}",W:"\u{1D54E}",X:"\u{1D54F}",Y:"\u{1D550}",Z:"\u2124",a:"\u{1D552}",b:"\u{1D553}",c:"\u{1D554}",d:"\u{1D555}",e:"\u{1D556}",f:"\u{1D557}",g:"\u{1D558}",h:"\u{1D559}",i:"\u{1D55A}",j:"\u{1D55B}",k:"\u{1D55C}",l:"\u{1D55D}",m:"\u{1D55E}",n:"\u{1D55F}",o:"\u{1D560}",p:"\u{1D561}",q:"\u{1D562}",r:"\u{1D563}",s:"\u{1D564}",t:"\u{1D565}",u:"\u{1D566}",v:"\u{1D567}",w:"\u{1D568}",x:"\u{1D569}",y:"\u{1D56A}",z:"\u{1D56B}"},rl={A:"\u{1D4D0}",B:"\u{1D4D1}",C:"\u{1D4D2}",D:"\u{1D4D3}",E:"\u{1D4D4}",F:"\u{1D4D5}",G:"\u{1D4D6}",H:"\u{1D4D7}",I:"\u{1D4D8}",J:"\u{1D4D9}",K:"\u{1D4DA}",L:"\u{1D4DB}",M:"\u{1D4DC}",N:"\u{1D4DD}",O:"\u{1D4DE}",P:"\u{1D4DF}",Q:"\u{1D4E0}",R:"\u{1D4E1}",S:"\u{1D4E2}",T:"\u{1D4E3}",U:"\u{1D4E4}",V:"\u{1D4E5}",W:"\u{1D4E6}",X:"\u{1D4E7}",Y:"\u{1D4E8}",Z:"\u{1D4E9}"};var _={};Pa(_,{Ampersand:()=>EO,Begin:()=>xn,BlankLine:()=>OO,BottomRuleCtrlSeq:()=>go,CloseBrace:()=>rO,CloseBracket:()=>lO,CloseBracketCtrlSym:()=>Vo,CloseParenCtrlSym:()=>Lo,CloseParenMath:()=>AO,ColorBoxCtrlSeq:()=>Ao,Command:()=>eO,Comment:()=>Bu,Csname:()=>Bi,CtrlSeq:()=>QO,CtrlSym:()=>hO,DefCtrlSeq:()=>io,DefinitionArgument:()=>bO,DefinitionFragment:()=>xO,DefinitionFragmentArgument:()=>$O,DefinitionFragmentCommand:()=>SO,Dollar:()=>wO,DollarInlineMath:()=>qO,EmphasisCtrlSeq:()=>yo,End:()=>Yi,EnvName:()=>uO,Environment:()=>pO,EquationArrayEnvName:()=>jo,EquationArrayEnvironment:()=>cO,EquationEnvName:()=>Mo,EquationEnvironment:()=>iO,FColorBoxCtrlSeq:()=>Wo,FboxCtrlSeq:()=>Xo,FrameBoxCtrlSeq:()=>_o,HLineCtrlSeq:()=>mo,HboxCtrlSeq:()=>qo,HrefCtrlSeq:()=>no,InlineMath:()=>RO,KnownCtrlSym:()=>kO,KnownEnvironment:()=>Go,LaTeX:()=>Nu,LabelArgument:()=>mO,LabelCtrlSeq:()=>eo,LeftCtrlSeq:()=>so,LetCtrlSeq:()=>oo,LineBreakCtrlSym:()=>Io,LiteralArgContent:()=>Hi,LongArg:()=>nO,MacroParameter:()=>gO,Math:()=>Uu,MathArgument:()=>WO,MathChar:()=>IO,MathClosing:()=>DO,MathCommand:()=>zu,MathDelimitedGroup:()=>jO,MathDelimiter:()=>LO,MathOpening:()=>ZO,MathSpecialChar:()=>VO,MathTextCtrlSeq:()=>to,MboxCtrlSeq:()=>Ro,MidRuleCtrlSeq:()=>ho,NewCommandCtrlSeq:()=>lo,NewEnvironmentCtrlSeq:()=>po,NewLine:()=>vO,Normal:()=>TO,Number:()=>MO,OpenBrace:()=>Ku,OpenBracket:()=>sO,OpenBracketCtrlSym:()=>Do,OpenParenCtrlSym:()=>Zo,OpenParenMath:()=>_O,OptionalArgument:()=>oO,OptionalMacroParameter:()=>yO,ParenMath:()=>XO,RefArgument:()=>fO,RefCtrlSeq:()=>Ki,RefStarrableCtrlSeq:()=>Ji,RenewCommandCtrlSeq:()=>co,RenewEnvironmentCtrlSeq:()=>uo,RightCtrlSeq:()=>ao,ShortArg:()=>Ju,ShortOptionalArg:()=>aO,ShortTextArgument:()=>Yu,SymbolCtrlSeq:()=>vo,TextArgument:()=>tO,TextBoldCtrlSeq:()=>ko,TextClapCtrlSeq:()=>Or,TextColorCtrlSeq:()=>Oo,TextCtrlSeq:()=>xo,TextItalicCtrlSeq:()=>$o,TextLLapCtrlSeq:()=>Po,TextNormalCtrlSeq:()=>Eo,TextRLapCtrlSeq:()=>Co,TextRomanCtrlSeq:()=>So,TextSansSerifCtrlSeq:()=>wo,TextTeletypeCtrlSeq:()=>To,TextUprightCtrlSeq:()=>Qo,Tilde:()=>PO,TopRuleCtrlSeq:()=>fo,UnderlineCtrlSeq:()=>bo,UnknownCommand:()=>CO,UrlArgument:()=>dO,VerbContent:()=>Gi,VerbCtrlSeq:()=>ro,Whitespace:()=>Fu,endOfArguments:()=>Ui,endOfArgumentsAndOptionals:()=>Fi,hasMoreArguments:()=>Ni,hasMoreArgumentsOrOptionals:()=>zi});var Gi=1,Hi=2,Bi=3,Ni=188,Ui=189,zi=190,Fi=191,xn=4,Yi=5,Ki=6,Ji=7,eo=8,to=9,no=10,ro=11,io=12,oo=13,so=14,ao=15,lo=16,co=17,po=18,uo=19,Oo=20,mo=21,fo=22,ho=23,go=24,yo=25,bo=26,vo=27,xo=28,So=29,Qo=30,$o=31,ko=32,wo=33,To=34,Eo=35,Or=36,Po=37,Co=38,qo=39,Ro=40,Xo=41,_o=42,Ao=43,Wo=44,Mo=45,jo=46,Zo=47,Lo=48,Do=49,Vo=50,Io=51,Bu=52,Nu=53,Uu=54,zu=55,Fu=58,Yu=59,Ku=60,Ju=61,eO=62,tO=65,nO=66,rO=68,Go=69,iO=70,oO=73,sO=74,aO=75,lO=77,cO=80,pO=84,uO=87,OO=90,dO=93,mO=96,fO=98,hO=100,gO=101,yO=102,bO=103,vO=104,xO=105,SO=106,QO=108,$O=109,kO=110,wO=113,TO=114,EO=115,PO=116,CO=143,qO=144,RO=145,XO=146,_O=147,AO=148,WO=150,MO=151,jO=170,ZO=171,LO=172,DO=173,VO=174,IO=175;var GO=100;function HO(e){return e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===42||e===43||e===64}function BO(e){return e>=65&&e<=90||e>=97&&e<=122}var il=null,ol=null,sl=0;function al(e,t){let n=e.pos+t;if(ol===e&&sl===n)return il;if(e.peek(t)!==123)return null;t++;let r="";for(;;){let i=e.peek(t);if(!HO(i))break;r+=String.fromCharCode(i),t++}return ol=e,sl=n,il=r||null}var dr=class{constructor(t,n){this.name=t,this.parent=n,this.hash=n?n.hash:0;for(let r=0;r{e.next===42&&e.advance();let n=e.next;if(n!==-1&&!/\s|\*/.test(String.fromCharCode(n))){for(e.advance();;){let r=e.next;if(r===-1||r===KO)return;if(e.advance(),r===n)break}return e.acceptToken(1)}},{contextual:!1}),pl=new xt.ExternalTokenizer(e=>{for(let t=0;;t++){let n=e.peek(t);if(n===-1||n===zO)return e.acceptToken(2,t)}},{contextual:!1});function it(e){return e.charCodeAt(0)}var NO=it("\\"),ul=it("{"),UO=it("["),zO=it("}"),FO=it(" "),YO=it(" "),KO=it(` +`),Ol=e=>new xt.ExternalTokenizer(t=>{for(let n=0;ne===ul?188:189),ml=Ol(e=>e===ul||e===UO?190:191),JO=it("@"),fl=new xt.ExternalTokenizer((e,t)=>{let n=0,r=-1,i=e.peek(n);if(i!==-1&&i===NO){for(n++;;){let o=e.peek(n);if(o===-1||!(BO(o)||o===JO)){r=n-1;break}r=n,n++}if(r!==-1)return e.acceptToken(3,r+1)}}),ed=new Set(["\\eqref"]),td=new Set(["\\ref"]),nd=new Set(["\\label"]),rd=new Set(["\\text","\\tag","\\textrm"]),id={"\\href":10,"\\verb":11,"\\def":12,"\\let":13,"\\left":14,"\\right":15,"\\newcommand":16,"\\renewcommand":17,"\\newenvironment":18,"\\renewenvironment":19,"\\textcolor":20,"\\hline":21,"\\toprule":22,"\\midrule":23,"\\bottomrule":24,"\\emph":25,"\\underline":26},od={"\\text":28,"\\textrm":29,"\\textup":30,"\\textit":31,"\\textbf":32,"\\textsf":33,"\\texttt":34,"\\textnormal":35,"\\clap":36,"\\textllap":37,"\\textrlap":38,"\\textclap":36,"\\hbox":39,"\\mbox":40,"\\fbox":41,"\\framebox":42,"\\colorbox":43,"\\fcolorbox":44},Ho=(e,t)=>{if(e==="\\begin")return 4;if(e==="\\end")return 5;if(ed.has(e))return 6;if(td.has(e))return 7;if(nd.has(e))return 8;if(rd.has(e))return 9;let n=od[e];if(n!==void 0)return n;let r=id[e];if(r!==void 0)return r;let i=e.slice(1);return(pr[i]||Ht[i])!==void 0?27:-1},sd=new Set(["equation","equation*","displaymath","math","multline","multline*","matrix"]),ad=new Set(["array","eqnarray","eqnarray*","align","align*","alignat","alignat*","flalign","flalign*","gather","gather*","pmatrix","pmatrix*","bmatrix","bmatrix*","Bmatrix","Bmatrix*","vmatrix","vmatrix*","Vmatrix","Vmatrix*","smallmatrix","smallmatrix*","split","gathered","aligned","alignedat","cases","cases*","dcases","dcases*","rcases","rcases*"]),Bo=(e,t)=>sd.has(e)?45:ad.has(e)?46:-1,ld={"\\(":47,"\\)":48,"\\[":49,"\\]":50,"\\\\":51},No=(e,t)=>ld[e]||-1;var St=hl.LRParser.deserialize({version:14,states:"!?pOVQWOOO$kQWO'#DuO$pQWO'#DtO$pQWO'#EOOOQO'#Ds'#DsOVQWO'#ESO(cQ#|O'#EoOOQ#t'#En'#EnO(yQWO'#FOO(yQWO'#FPO(yQWO'#FQO(yQWO'#FRO)OQWO'#FSO(yQWO'#FTO(yQWO'#FUO(yQWO'#FVO(yQWO'#FWO(yQWO'#FXO(yQWO'#FYO(yQWO'#FZO(yQWO'#F[O(yQWO'#F]O(yQWO'#F^O(yQWO'#F_OOQ#t'#Gw'#GwO)WQWO'#DgO)`QWO'#FjO)hQWO'#FkO)pQXO'#FlO)uQWO'#FmO)}QWO'#FnO*YQ`O'#FnO*hQ[O'#FoO*sQ[O'#FpO*xQ[O'#FqO+TQ[O'#FrO+`QWO'#FsO+hQ[O'#FtO+sQ`O'#FuO,OQWO'#FvO/vQWO'#FwO/vQWO'#FxOOQO'#Fy'#FyOOQO'#Df'#DfO2rQ#|O'#GxOOQO'#Gx'#GxOOQO'#Fz'#FzOOQO'#De'#DeO2zQWO'#F{O5eQpO'#F}O5lQWO'#F|OOQO'#GS'#GSO5sQWO'#DdQOQWOOO6ZQ`O'#EUO6iQWO,5:aO:QQWO,5:kO=iQWO,5:oOOQO'#D|'#D|O@}QWO,5:`OASQWO,5:jOOQO'#EW'#EWOAXQWO,5:nODrQ!bO'#DwOOQ#t,5;Z,5;ZODyQ!bO'#DoOOQ#t,5;j,5;jOOQ#t,5;k,5;kOOQ#t,5;l,5;lOOQ#t,5;m,5;mOOQ#t,5;n,5;nO(yQWO,5;nOOQ#t,5;o,5;oOOQ#t,5;p,5;pOOQ#t,5;q,5;qOOQ#t,5;r,5;rOOQ#t,5;s,5;sOOQ#t,5;t,5;tOOQ#t,5;u,5;uOOQ#t,5;v,5;vOOQ#t,5;w,5;wOOQ#t,5;x,5;xOOQ#t,5;y,5;yOHqQ!bO'#DiOLcQWO,5:RO)ZQWO,5:ROLjQWO,5PQ`O1G0iOOQ#t1G0{1G0{O#>bQ[O1G0{O#>jQdO1G0{OOQ#t1G0|1G0|O!MUQWO1G0|O#>uQWO1G0|ONSQWO1G0|O#>zQYO1G0|OOQ#t1G0}1G0}O!MUQWO1G0}O#?PQWO1G0}ONSQWO1G0}O#?UQYO1G0}O#?ZQWO1G1OO#?`QYO1G1OO!MUQWO1G1PO!MUQWO1G1PO#?eQWO1G1PONSQWO1G1PO#?jQYO1G1POOQ#t1G1Q1G1QO(yQWO1G1QOOQ#t-E:Z-E:ZOOQO1G1g1G1gOOQ#t1G1n1G1nOOQ#t1G2d1G2dOOQO1G2V1G2VOOQO1G0Q1G0QO#?oQ!bO1G1gOOQO1G1h1G1hOOQO1G1j1G1jOOQO1G/w1G/wOOQO1G1m1G1mOOQO<R)X>U>a>g>lP&q&q&q&q&q&q&q&q&q&q&q&q&q&q&q&q&e&X&X?^?j?vPP?|@[@c@j@qA]AyDSD^DdD|PPPPPPESE^PPPPPPPPPPPPPEkPEsGkHfQ!VOS![QRQ!_TQ$Y!QQ$a!SQ'T$QQ'r${R'w$}e!TOQRT!Q!S!U$Q${$}e!POQRT!Q!S!U$Q${$}e{OQRT!Q!S!U$Q${$}Q!viQ!xjW#Om#Q#n&f!n#Rno#T#U#V#o#p%f%g%h%i&h&i&j(V(W(X(Y)^)_)`)a*[*]*^+R+S+T+U+p+q,[,],^,r-P-Q-eQ%]!wQ%`!yQ%b!{Q&^#jQ&`#kQ(T%cQ)U&_Q)X&aQ)Y&bR+P)ZQ%Y!uR'{%Vh$Rxy!v!x$U%[%]%_%`'V(P(Rc%O!a!c!u$t$v%P%R%V%Xz$Pxy!a!c!u!v!x$U$t$v%P%R%V%X%[%]%_%`'V(P(R](f%p(b(g(i*j+t!X#|xy!a!c!u!v!x$U$t$v%P%R%V%X%[%]%_%`%p'V(P(R(b(g(i*j+tQ!dWQ!eXQ!fYQ!gZQ!h[Q!j]Q!k^Q!l_Q!m`Q!naQ!obQ!pcQ!qdQ!reQ!sfQ!tgQ#fvh$g!X!Y!Z$h$i$j$k$l$m'd'e'fQ%U!iS&[#g#hQ&y#wQ&}#yQ'O#zf'P#}$z'Q'R'p'q+n-p-q-r-sQ)R&]Q)S&^Q)V&`S)z&z&{S*{)T)US*})W)XQ+m){Q,X*|R,Y+OQ%S!cR'x%PV%Q!c%P%Rd!TOQRT!Q!S!U$Q${$}V%Q!c%P%RkSOQRT!Q!S!U!c$Q${$}%P%RkQOQRT!Q!S!U!c$Q${$}%P%RQ!XPR'h$nS!bU$xS#TnoQ$i!XQ$k!YQ$m!ZQ%f#TS%h#U#V!Y%x#Z#^#c%|&R&Y&n&q&v(s(w(z)O)l)q)x*p*s*v*z+_+c+f+j,f,i,l,pS&h#o#ph'P#}$z'Q'R'p'q*S+n-p-q-r-sS(W%g%hQ(Y%iQ(q%xQ)^&hS)`&i&jS*](X(YS+S)_)`Q+U)aQ+q*^Q+u*dS,]+T+UQ,u+vR-Q,^Q$w!aR'm$tV$u!a$t$vQ!]QR!^RR$o!]kROQRT!Q!S!U!c$Q${$}%P%RQ!YPR'j$pR$q!^kTOQRT!Q!S!U!c$Q${$}%P%RQ!ZPR'l$rR!`TR$s!`Q!{kQ%c!|Q&b#lR)Z&cQ#PmQ%d#QQ&e#nR)[&fS#SnoU%e#T#U#VS&g#o#pW(U%f%g%h%iU)]&h&i&jW*Z(V(W(X(YW+Q)^)_)`)aU+o*[*]*^W,Z+R+S+T+US,q+p+qU-O,[,],^Q-`,rS-d-P-QR-m-el%l#W%m%n%s&k(`(m)b)c)e*k+X+Y,aR([%km%l#W%m%n%s&k(`(m)b)c)e*k+X+Y,aQ%r#WQ%y#ZQ&O#^Q&V#cU(_%m%n%sS(r%z%|S(v&P&RQ(|&VS(}&W&YQ)d&kQ)i&nQ)n&qQ)u&vU*`(^(`(mS*n(s(tS*q(w(xQ*t(zQ*w(}S*x)O)PU+W)b)c)eS+^)j)lS+b)o)qQ+h)uS+i)v)xS+r*a*kS+}*o*pS,P*r*sQ,R*tS,S*u*vQ,U*xS,V*y*zU,_+V+X+YS,d+_+`S,g+c+dQ,j+fQ,m+iS,n+j+kQ,w+{Q,x,OQ,y,QQ,z,SQ,{,TQ,|,VQ,},WS-R,`,aS-U,e,fS-W,h,iQ-Y,jS-Z,k,lQ-],nS-^,o,pQ-b,{Q-c,}Q-f-SQ-g-VQ-h-XQ-i-ZQ-j-[Q-k-^Q-l-_Q-n-jR-o-lQ(k%pQ*c(bQ*h(gQ+z*jR,t+t](h%p(b(g(i*j+tQ+u*dR,u+vd!POQRT!Q!S!U$Q${$}z$Pxy!a!c!u!v!x$U$t$v%P%R%V%X%[%]%_%`'V(P(R](f%p(b(g(i*j+t!mVOQRTxy!Q!S!U!a!c!u!v!x$Q$U$t$v${$}%P%R%V%X%[%]%_%`%p'V(P(R(b(g(i*j+t!mhOQRTxy!Q!S!U!a!c!u!v!x$Q$U$t$v${$}%P%R%V%X%[%]%_%`%p'V(P(R(b(g(i*j+t{$Pxy!a!c!u!v!x$U$t$v%P%R%V%X%[%]%_%`'V(P(RR't${c$}!a!c!u$t$v%P%R%V%XQ'v$}R*U'wV%W!u%V%XQ$SxQ$TyQ%Z!vQ%^!xQ'U$US(O%[%]S(Q%_%`Q*P'VQ*X(PR*Y(Re!SOQRT!Q!S!U$Q${$}Q$]!RQ'[$^Q']$_R*Q'^Q$`!SR'_$ab!UOQRT!Q!S$Q${$}R$b!US%X!u%VR'|%XS%R!c%PR'y%RS$v!a$tR'n$vQ$h!XQ$j!YQ$l!Z['c$h$j$l'd'e'fQ'd$iQ'e$kR'f$mQ%m#W[(]%m(`)b*k+X,aS(`%n%sQ)b&kQ*k(mS+X)c)eR,a+Y%O%o#W#Z#^#c%m%n%s%z%|&P&R&V&W&Y&k&n&q&v(^(`(m(s(t(w(x(z(})O)P)b)c)e)j)l)o)q)u)v)x*a*k*o*p*r*s*t*u*v*x*y*z+V+X+Y+_+`+c+d+f+i+j+k+{,O,Q,S,T,V,W,`,a,e,f,h,i,j,k,l,n,o,p,{,}-S-V-X-Z-[-^-_-j-lS(a%o(lR(l%qY(i%p(b(g*j+tR*i(iQ*e(cR+w*eS'Q#}-rS'p$z-sW)|'Q'p*S+nS)}'R-qQ*S'qR+n-pQ$V|R'W$VU%Q!c%P%RV%W!u%V%XU$u!a$t$v]%T!c!u%P%R%V%X](e%p(b(g(i*j+tQ%z#ZQ&P#^Q&W#cQ(t%|Q(x&RQ)P&YQ)j&nQ)o&qQ)v&vQ*o(sQ*r(wQ*u(zQ*y)OQ+`)lQ+d)qQ+k)xQ,O*pQ,Q*sQ,T*vQ,W*zQ,e+_Q,h+cQ,k+fQ,o+jQ-V,fQ-X,iQ-[,lR-_,pd{OQRT!Q!S!U$Q${$}!X#|xy!a!c!u!v!x$U$t$v%P%R%V%X%[%]%_%`%p'V(P(R(b(g(i*j+te!OOQRT!Q!S!U$Q${$}",nodeNames:"\u26A0 VerbContent LiteralArgContent Csname Begin End RefCtrlSeq RefStarrableCtrlSeq LabelCtrlSeq MathTextCtrlSeq HrefCtrlSeq VerbCtrlSeq DefCtrlSeq LetCtrlSeq LeftCtrlSeq RightCtrlSeq NewCommandCtrlSeq RenewCommandCtrlSeq NewEnvironmentCtrlSeq RenewEnvironmentCtrlSeq TextColorCtrlSeq HLineCtrlSeq TopRuleCtrlSeq MidRuleCtrlSeq BottomRuleCtrlSeq EmphasisCtrlSeq UnderlineCtrlSeq SymbolCtrlSeq TextCtrlSeq TextRomanCtrlSeq TextUprightCtrlSeq TextItalicCtrlSeq TextBoldCtrlSeq TextSansSerifCtrlSeq TextTeletypeCtrlSeq TextNormalCtrlSeq TextClapCtrlSeq TextLLapCtrlSeq TextRLapCtrlSeq HboxCtrlSeq MboxCtrlSeq FboxCtrlSeq FrameBoxCtrlSeq ColorBoxCtrlSeq FColorBoxCtrlSeq EquationEnvName EquationArrayEnvName OpenParenCtrlSym CloseParenCtrlSym OpenBracketCtrlSym CloseBracketCtrlSym LineBreakCtrlSym Comment LaTeX Math MathCommand KnownCommand TextColorCommand Whitespace ShortTextArgument OpenBrace ShortArg Command KnownCommand TextColorCommand TextArgument LongArg NonEmptyGroup CloseBrace KnownEnvironment EquationEnvironment BeginEnv EnvNameGroup OptionalArgument OpenBracket ShortOptionalArg NonEmptyGroup CloseBracket Content EndEnv EquationArrayEnvironment BeginEnv EnvNameGroup EndEnv Environment BeginEnv EnvNameGroup EnvName Content EndEnv BlankLine ColorBoxCommand HrefCommand UrlArgument VerbCommand Label LabelArgument Ref RefArgument Def CtrlSym MacroParameter OptionalMacroParameter DefinitionArgument NewLine DefinitionFragment DefinitionFragmentCommand DefinitionFragmentUnknownCommand CtrlSeq DefinitionFragmentArgument KnownCtrlSym LineBreak Group Dollar Normal Ampersand Tilde Let NewCommand RenewCommand NewEnvironment RenewEnvironment MathTextCommand HorizontalLine EmphasisCommand UnderlineCommand TextBoldCommand TextItalicCommand TextTeletypeCommand TextSansSerifCommand Hbox Text TextRoman TextUpright TextNormal TextClap TextLLap TextRLap Mbox Fbox FrameBox FColorBox SymbolCommand UnknownCommand DollarInlineMath InlineMath ParenMath OpenParenMath CloseParenMath NonEmptyGroup MathArgument Number ColorBoxCommand HrefCommand VerbCommand Label Ref Def Let NewCommand RenewCommand NewEnvironment RenewEnvironment MathTextCommand HorizontalLine EmphasisCommand UnderlineCommand SymbolCommand MathUnknownCommand Group MathDelimitedGroup MathOpening MathDelimiter MathClosing MathSpecialChar MathChar",maxTerm:249,context:ll,nodeProps:[["closedBy",60,"CloseBrace",74,"CloseBracket",147,"CloseParenMath"],["openedBy",68,"OpenBrace",77,"OpenBracket",148,"OpenParenMath"],["group",-3,70,80,84,"$Environment",-2,144,146,"$MathContainer"]],skippedNodes:[0,52],repeatNodeCount:11,tokenData:"!Mf~R!ROX$[XY'mYZ'xZp$[pq'mqs$[st(Ytu)Yuv)_vw*Owx$[xy*Tyz.]z{/}{|+u|}$[}!O+u!O!P1o!P!Q3T!Q!R4u!R!S6i!S!T7h!T!U8g!U!V9f!V!W:e!W!X;d!X!Ya![!^$[!^!_?`!_!`AQ!`!aBr!a!c$[!c!}Dd!}#OFu#O#PF|#P#Q!Iv#Q#R!I}#R#S!Jw#S#T$[#T#oDd#o#p!Kq#p#q!Kv#q#r!M[#r#s!Ma#s;'S$[;'S;=`'g<%lO$[X$cc$uP#fWOX$[Zp$[pq%nqs$[st&cwx$[x|%n|}$[}!O%n!O!P$[!P![%n![!^$[!^!a%n!a!}$[#S#o$[#p#q$[#s;'S$[;'S;=`'g<%lO$[W%sW#fWOX%nZs%nw!}%n#S#o%n#p#q%n#s;'S%n;'S;=`&]<%lO%nW&`P;=`<%l%nP&h]$uPOX&cZp&cqt&cwx&c|}&c!O!P&c![!^&c!a!}&c#S#o&c#p#q&c#s;'S&c;'S;=`'a<%lO&cP'dP;=`<%l&cX'jP;=`<%l$[~'rQ![~XY'mpq'm~'}P#[~YZ(Q~(VP!|~YZ(QZ(a]%ZY$uPOX&cZp&cqt&cwx&c|}&c!O!P&c![!^&c!a!}&c#S#o&c#p#q&c#s;'S&c;'S;=`'a<%lO&c~)_O#e~~)dT!U~OY)_YZ)sZ;'S)_;'S;=`)x<%lO)_~)xO!U~~){P;=`<%l)_~*TO#g~]*^g%oS$tP#fWOX%nZs%nwx%nxy+uyz+uz{+u{|+u|}%n}!O+u!O!P%n!P!Q+u!Q!^%n!^!_+u!_!`+u!`!a+u!a!}%n#Q#R-e#R#S-e#S#o%n#p#q%n#s;'S%n;'S;=`&]<%lO%nX+|g$tP#fWOX%nZs%nwx%nxy+uyz+uz{+u{|+u|}%n}!O+u!O!P%n!P!Q+u!Q!^%n!^!_+u!_!`+u!`!a+u!a!}%n#Q#R-e#R#S-e#S#o%n#p#q%n#s;'S%n;'S;=`&]<%lO%nP-jZ$tPxy-eyz-ez{-e{|-e}!O-e!P!Q-e!^!_-e!_!`-e!`!a-e#Q#R-e#R#S-e].fg%pS$tP#fWOX%nZs%nwx%nxy+uyz+uz{+u{|+u|}%n}!O+u!O!P%n!P!Q+u!Q!^%n!^!_+u!_!`+u!`!a+u!a!}%n#Q#R-e#R#S-e#S#o%n#p#q%n#s;'S%n;'S;=`&]<%lO%nZ0Wg%^Q$tP#fWOX%nZs%nwx%nxy+uyz+uz{+u{|+u|}%n}!O+u!O!P%n!P!Q+u!Q!^%n!^!_+u!_!`+u!`!a+u!a!}%n#Q#R-e#R#S-e#S#o%n#p#q%n#s;'S%n;'S;=`&]<%lO%nZ1xc&cQ$uP#fWOX$[Zp$[pq%nqs$[st&cwx$[x|%n|}$[}!O%n!O!P$[!P![%n![!^$[!^!a%n!a!}$[#S#o$[#p#q$[#s;'S$[;'S;=`'g<%lO$[]3^g%mS$tP#fWOX%nZs%nwx%nxy+uyz+uz{+u{|+u|}%n}!O+u!O!P%n!P!Q+u!Q!^%n!^!_+u!_!`+u!`!a+u!a!}%n#Q#R-e#R#S-e#S#o%n#p#q%n#s;'S%n;'S;=`&]<%lO%nX4|[$]P#fWOX%nZs%nw!O%n!O!P5r!P!Q%n!Q![4u![!}%n#S#o%n#p#q%n#s;'S%n;'S;=`&]<%lO%nX5yY$]P#fWOX%nZs%nw!Q%n!Q![5r![!}%n#S#o%n#p#q%n#s;'S%n;'S;=`&]<%lO%nZ6r[%_Q$]P#fWOX%nZs%nw!O%n!O!P5r!P!Q%n!Q![4u![!}%n#S#o%n#p#q%n#s;'S%n;'S;=`&]<%lO%nZ7q[%`Q$]P#fWOX%nZs%nw!O%n!O!P5r!P!Q%n!Q![4u![!}%n#S#o%n#p#q%n#s;'S%n;'S;=`&]<%lO%nZ8p[%aQ$]P#fWOX%nZs%nw!O%n!O!P5r!P!Q%n!Q![4u![!}%n#S#o%n#p#q%n#s;'S%n;'S;=`&]<%lO%nZ9o[%bQ$]P#fWOX%nZs%nw!O%n!O!P5r!P!Q%n!Q![4u![!}%n#S#o%n#p#q%n#s;'S%n;'S;=`&]<%lO%nZ:n[%cQ$]P#fWOX%nZs%nw!O%n!O!P5r!P!Q%n!Q![4u![!}%n#S#o%n#p#q%n#s;'S%n;'S;=`&]<%lO%nZ;m[%dQ$]P#fWOX%nZs%nw!O%n!O!P5r!P!Q%n!Q![4u![!}%n#S#o%n#p#q%n#s;'S%n;'S;=`&]<%lO%nZj[%gQ$]P#fWOX%nZs%nw!O%n!O!P5r!P!Q%n!Q![4u![!}%n#S#o%n#p#q%n#s;'S%n;'S;=`&]<%lO%n]?ig&_S$tP#fWOX%nZs%nwx%nxy+uyz+uz{+u{|+u|}%n}!O+u!O!P%n!P!Q+u!Q!^%n!^!_+u!_!`+u!`!a+u!a!}%n#Q#R-e#R#S-e#S#o%n#p#q%n#s;'S%n;'S;=`&]<%lO%nZAZg%iQ$tP#fWOX%nZs%nwx%nxy+uyz+uz{+u{|+u|}%n}!O+u!O!P%n!P!Q+u!Q!^%n!^!_+u!_!`+u!`!a+u!a!}%n#Q#R-e#R#S-e#S#o%n#p#q%n#s;'S%n;'S;=`&]<%lO%n]B{g&`S$tP#fWOX%nZs%nwx%nxy+uyz+uz{+u{|+u|}%n}!O+u!O!P%n!P!Q+u!Q!^%n!^!_+u!_!`+u!`!a+u!a!}%n#Q#R-e#R#S-e#S#o%n#p#q%n#s;'S%n;'S;=`&]<%lO%nZDmg!yQ$uP#fWOX$[Zp$[pq%nqs$[st&cwx$[xz%nz{FU{|%n|}$[}!O%n!O!P$[!P![%n![!^$[!^!a%n!a!c$[!c!}Dd#S#T$[#T#oDd#p#q$[#s;'S$[;'S;=`'g<%lO$[YF]W!yQ#fWOX%nZs%nw!}%n#S#o%n#p#q%n#s;'S%n;'S;=`&]<%lO%n_F|O%qS!lZ]GPlO!cHw!c!fH|!f!gIX!g!wH|!w!xLa!x!y!$T!y!}H|!}#THw#T#UH|#U#V!%g#V#WH|#W#X!(l#X#ZH|#Z#[!+t#[#`H|#`#a!,d#a#fH|#f#g!7f#g#iH|#i#j!BT#j#k!Gw#k#oH|#o#p!IZ#p#q!Ib#q#r!Ii#r;'SHw;'S;=`!Ip<%lOHwXH|O#WXXIRQ#`X!c!}H|#T#oH|]I^S#`X!c!}H|#T#cH|#c#dIj#d#oH|]IoS#`X!c!}H|#T#kH|#k#lI{#l#oH|]JQS#`X!c!}H|#T#bH|#b#cJ^#c#oH|]JcR#`X!c!}H|#T#UJl#U#oH|]JqS#`X!c!}H|#T#fH|#f#gJ}#g#oH|]KSS#`X!c!}H|#T#fH|#f#gK`#g#oH|]KeS#`X!c!}H|#T#cH|#c#dKq#d#oH|]KvS#`X!c!}H|#T#kH|#k#lLS#l#oH|]LZQ&PS#`X!c!}H|#T#oH|]LfS#`X!c!}H|#T#dH|#d#eLr#e#oH|]LwT#`X!c!}H|#T#UMW#U#WH|#W#XN{#X#oH|]M]S#`X!c!}H|#T#fH|#f#gMi#g#oH|]MnS#`X!c!}H|#T#fH|#f#gMz#g#oH|]NPS#`X!c!}H|#T#cH|#c#dN]#d#oH|]NbS#`X!c!}H|#T#kH|#k#lNn#l#oH|]NuQ&OS#`X!c!}H|#T#oH|]! QS#`X!c!}H|#T#cH|#c#d! ^#d#oH|]! cS#`X!c!}H|#T#kH|#k#l! o#l#oH|]! tS#`X!c!}H|#T#bH|#b#c!!Q#c#oH|]!!VR#`X!c!}H|#T#U!!`#U#oH|]!!eS#`X!c!}H|#T#fH|#f#g!!q#g#oH|]!!vS#`X!c!}H|#T#fH|#f#g!#S#g#oH|]!#XS#`X!c!}H|#T#cH|#c#d!#e#d#oH|]!#jS#`X!c!}H|#T#kH|#k#l!#v#l#oH|]!#}Q&RS#`X!c!}H|#T#oH|]!$YS#`X!c!}H|#T#XH|#X#Y!$f#Y#oH|]!$kS#`X!c!}H|#T#fH|#f#g!$w#g#oH|]!$|S#`X!c!}H|#T#hH|#h#i!%Y#i#oH|]!%aQ&YS#`X!c!}H|#T#oH|]!%lR#`X!c!}H|#T#U!%u#U#oH|]!%zS#`X!c!}H|#T#VH|#V#W!&W#W#oH|]!&]S#`X!c!}H|#T#_H|#_#`!&i#`#oH|]!&nS#`X!c!}H|#T#gH|#g#h!&z#h#oH|]!'PS#`X!c!}H|#T#`H|#`#a!']#a#oH|]!'bR#`X!c!}H|#T#U!'k#U#oH|]!'pS#`X!c!}H|#T#gH|#g#h!'|#h#oH|]!(RS#`X!c!}H|#T#[H|#[#]!(_#]#oH|]!(fQ%|S#`X!c!}H|#T#oH|]!(qS#`X!c!}H|#T#cH|#c#d!(}#d#oH|]!)SS#`X!c!}H|#T#kH|#k#l!)`#l#oH|]!)eS#`X!c!}H|#T#bH|#b#c!)q#c#oH|]!)vR#`X!c!}H|#T#U!*P#U#oH|]!*US#`X!c!}H|#T#fH|#f#g!*b#g#oH|]!*gS#`X!c!}H|#T#fH|#f#g!*s#g#oH|]!*xS#`X!c!}H|#T#cH|#c#d!+U#d#oH|]!+ZS#`X!c!}H|#T#kH|#k#l!+g#l#oH|]!+nQ&SS#`X!c!}H|#T#oH|]!+yS#`X!c!}H|#T#hH|#h#i!,V#i#oH|]!,^Q&bS#`X!c!}H|#T#oH|]!,i]#`X!c!xH|!x!y!-b!y!}H|#T#U!.t#U#V!0i#V#W!2n#W#YH|#Y#Z!4Q#Z#hH|#h#i!5u#i#jH|#j#k!6S#k#oH|]!-gS#`X!c!}H|#T#XH|#X#Y!-s#Y#oH|]!-xS#`X!c!}H|#T#fH|#f#g!.U#g#oH|]!.ZS#`X!c!}H|#T#hH|#h#i!.g#i#oH|]!.nQ&US#`X!c!}H|#T#oH|]!.yS#`X!c!}H|#T#bH|#b#c!/V#c#oH|]!/[S#`X!c!}H|#T#ZH|#Z#[!/h#[#oH|]!/mS#`X!c!}H|#T#`H|#`#a!/y#a#oH|]!0OS#`X!c!}H|#T#XH|#X#Y!0[#Y#oH|]!0cQ%zS#`X!c!}H|#T#oH|]!0nS#`X!c!}H|#T#fH|#f#g!0z#g#oH|]!1PR#`X!c!}H|#T#U!1Y#U#oH|]!1_S#`X!c!}H|#T#VH|#V#W!1k#W#oH|]!1pU#`X!c!}H|#T#XH|#X#Y!2S#Y#_H|#_#`!2a#`#oH|]!2ZQ&ZS#`X!c!}H|#T#oH|]!2hQ&]S#`X!c!}H|#T#oH|]!2sS#`X!c!}H|#T#XH|#X#Y!3P#Y#oH|]!3US#`X!c!}H|#T#]H|#]#^!3b#^#oH|]!3gS#`X!c!}H|#T#`H|#`#a!3s#a#oH|]!3zQ%xS#`X!c!}H|#T#oH|]!4VS#`X!c!}H|#T#`H|#`#a!4c#a#oH|]!4hS#`X!c!}H|#T#cH|#c#d!4t#d#oH|]!4yS#`X!c!}H|#T#cH|#c#d!5V#d#oH|]!5[S#`X!c!}H|#T#fH|#f#g!5h#g#oH|]!5oQ%vS#`X!c!}H|#T#oH|]!5|Q&aS#`X!c!}H|#T#oH|]!6XS#`X!c!}H|#T#XH|#X#Y!6e#Y#oH|]!6jS#`X!c!}H|#T#fH|#f#g!6v#g#oH|]!6{S#`X!c!}H|#T#hH|#h#i!7X#i#oH|]!7`Q&TS#`X!c!}H|#T#oH|]!7kZ#`X!c!xH|!x!y!8^!y!}H|#T#U!9p#U#V!;e#V#W!=j#W#YH|#Y#Z!>|#Z#jH|#j#k!@q#k#oH|]!8cS#`X!c!}H|#T#XH|#X#Y!8o#Y#oH|]!8tS#`X!c!}H|#T#fH|#f#g!9Q#g#oH|]!9VS#`X!c!}H|#T#hH|#h#i!9c#i#oH|]!9jQ&VS#`X!c!}H|#T#oH|]!9uS#`X!c!}H|#T#bH|#b#c!:R#c#oH|]!:WS#`X!c!}H|#T#ZH|#Z#[!:d#[#oH|]!:iS#`X!c!}H|#T#`H|#`#a!:u#a#oH|]!:zS#`X!c!}H|#T#XH|#X#Y!;W#Y#oH|]!;_Q%{S#`X!c!}H|#T#oH|]!;jS#`X!c!}H|#T#fH|#f#g!;v#g#oH|]!;{R#`X!c!}H|#T#U!QS#`X!c!}H|#T#]H|#]#^!>^#^#oH|]!>cS#`X!c!}H|#T#`H|#`#a!>o#a#oH|]!>vQ%yS#`X!c!}H|#T#oH|]!?RS#`X!c!}H|#T#`H|#`#a!?_#a#oH|]!?dS#`X!c!}H|#T#cH|#c#d!?p#d#oH|]!?uS#`X!c!}H|#T#cH|#c#d!@R#d#oH|]!@WS#`X!c!}H|#T#fH|#f#g!@d#g#oH|]!@kQ%wS#`X!c!}H|#T#oH|]!@vS#`X!c!}H|#T#XH|#X#Y!AS#Y#oH|]!AXS#`X!c!}H|#T#fH|#f#g!Ae#g#oH|]!AjS#`X!c!}H|#T#hH|#h#i!Av#i#oH|]!A}Q&WS#`X!c!}H|#T#oH|]!BYS#`X!c!}H|#T#dH|#d#e!Bf#e#oH|]!BkT#`X!c!}H|#T#U!Bz#U#WH|#W#X!Do#X#oH|]!CPS#`X!c!}H|#T#fH|#f#g!C]#g#oH|]!CbS#`X!c!}H|#T#fH|#f#g!Cn#g#oH|]!CsS#`X!c!}H|#T#cH|#c#d!DP#d#oH|]!DUS#`X!c!}H|#T#kH|#k#l!Db#l#oH|]!DiQ%}S#`X!c!}H|#T#oH|]!DtS#`X!c!}H|#T#cH|#c#d!EQ#d#oH|]!EVS#`X!c!}H|#T#kH|#k#l!Ec#l#oH|]!EhS#`X!c!}H|#T#bH|#b#c!Et#c#oH|]!EyR#`X!c!}H|#T#U!FS#U#oH|]!FXS#`X!c!}H|#T#fH|#f#g!Fe#g#oH|]!FjS#`X!c!}H|#T#fH|#f#g!Fv#g#oH|]!F{S#`X!c!}H|#T#cH|#c#d!GX#d#oH|]!G^S#`X!c!}H|#T#kH|#k#l!Gj#l#oH|]!GqQ&QS#`X!c!}H|#T#oH|]!G|S#`X!c!}H|#T#XH|#X#Y!HY#Y#oH|]!H_S#`X!c!}H|#T#fH|#f#g!Hk#g#oH|]!HpS#`X!c!}H|#T#hH|#h#i!H|#i#oH|]!ITQ&XS#`X!c!}H|#T#oH|]!IbO%sS#WX]!IiO%uS#WX]!IpO%tS#WXX!IsP;=`<%lHw]!I}O%rS!oXX!JUZ%]W$tPxy-eyz-ez{-e{|-e}!O-e!P!Q-e!^!_-e!_!`-e!`!a-e#Q#R-e#R#S-eX!KOZ%[W$tPxy-eyz-ez{-e{|-e}!O-e!P!Q-e!^!_-e!_!`-e!`!a-e#Q#R-e#R#S-e~!KvO!^~]!LPc%nS$uP#fWOX$[Zp$[pq%nqs$[st&cwx$[x|%n|}$[}!O%n!O!P$[!P![%n![!^$[!^!a%n!a!}$[#S#o$[#p#q$[#s;'S$[;'S;=`'g<%lO$[~!MaO!f~~!MfO#h~",tokenizers:[cl,pl,fl,0,1,2,3,dl,ml],topRules:{LaTeX:[0,53]},specialized:[{term:108,get:(e,t)=>Ho(e,t)<<1,external:Ho},{term:87,get:(e,t)=>Bo(e,t)<<1,external:Bo},{term:100,get:(e,t)=>No(e,t)<<1,external:No}],tokenPrec:6102});var L=require("@lezer/common"),X=require("@lezer/highlight"),hr=class e{static create(t,n,r,i,o){let s=i+(i<<8)+t+(n<<4)|0;return new e(t,n,r,s,o,[],[])}constructor(t,n,r,i,o,s,a){this.type=t,this.value=n,this.from=r,this.hash=i,this.end=o,this.children=s,this.positions=a,this.hashProp=[[L.NodeProp.contextHash,i]]}addChild(t,n){t.prop(L.NodeProp.contextHash)!=this.hash&&(t=new L.Tree(t.type,t.children,t.positions,t.length,this.hashProp)),this.children.push(t),this.positions.push(n)}toTree(t,n=this.end){let r=this.children.length-1;return r>=0&&(n=Math.max(n,this.positions[r]+this.children[r].length+this.from)),new L.Tree(t.types[this.type],this.children,this.positions,n-this.from).balance({makeTree:(i,o,s)=>new L.Tree(L.NodeType.none,i,o,s,this.hashProp)})}},x;(function(e){e[e.Document=1]="Document",e[e.CodeBlock=2]="CodeBlock",e[e.FencedCode=3]="FencedCode",e[e.Blockquote=4]="Blockquote",e[e.HorizontalRule=5]="HorizontalRule",e[e.BulletList=6]="BulletList",e[e.OrderedList=7]="OrderedList",e[e.ListItem=8]="ListItem",e[e.ATXHeading1=9]="ATXHeading1",e[e.ATXHeading2=10]="ATXHeading2",e[e.ATXHeading3=11]="ATXHeading3",e[e.ATXHeading4=12]="ATXHeading4",e[e.ATXHeading5=13]="ATXHeading5",e[e.ATXHeading6=14]="ATXHeading6",e[e.SetextHeading1=15]="SetextHeading1",e[e.SetextHeading2=16]="SetextHeading2",e[e.HTMLBlock=17]="HTMLBlock",e[e.LinkReference=18]="LinkReference",e[e.Paragraph=19]="Paragraph",e[e.CommentBlock=20]="CommentBlock",e[e.ProcessingInstructionBlock=21]="ProcessingInstructionBlock",e[e.Escape=22]="Escape",e[e.Entity=23]="Entity",e[e.HardBreak=24]="HardBreak",e[e.Emphasis=25]="Emphasis",e[e.StrongEmphasis=26]="StrongEmphasis",e[e.Link=27]="Link",e[e.Image=28]="Image",e[e.InlineCode=29]="InlineCode",e[e.HTMLTag=30]="HTMLTag",e[e.Comment=31]="Comment",e[e.ProcessingInstruction=32]="ProcessingInstruction",e[e.Autolink=33]="Autolink",e[e.HeaderMark=34]="HeaderMark",e[e.QuoteMark=35]="QuoteMark",e[e.ListMark=36]="ListMark",e[e.LinkMark=37]="LinkMark",e[e.EmphasisMark=38]="EmphasisMark",e[e.CodeMark=39]="CodeMark",e[e.CodeText=40]="CodeText",e[e.CodeInfo=41]="CodeInfo",e[e.LinkTitle=42]="LinkTitle",e[e.LinkLabel=43]="LinkLabel",e[e.URL=44]="URL"})(x||(x={}));var Fo=class{constructor(t,n){this.start=t,this.content=n,this.marks=[],this.parsers=[]}},Yo=class{constructor(){this.text="",this.baseIndent=0,this.basePos=0,this.depth=0,this.markers=[],this.pos=0,this.indent=0,this.next=-1}forward(){this.basePos>this.pos&&this.forwardInner()}forwardInner(){let t=this.skipSpace(this.basePos);this.indent=this.countIndent(t,this.pos,this.indent),this.pos=t,this.next=t==this.text.length?-1:this.text.charCodeAt(t)}skipSpace(t){return Qn(this.text,t)}reset(t){for(this.text=t,this.baseIndent=this.basePos=this.pos=this.indent=0,this.forwardInner(),this.depth=1;this.markers.length;)this.markers.pop()}moveBase(t){this.basePos=t,this.baseIndent=this.countIndent(t,this.pos,this.indent)}moveBaseColumn(t){this.baseIndent=t,this.basePos=this.findColumn(t)}addMarker(t){this.markers.push(t)}countIndent(t,n=0,r=0){for(let i=n;i=t.stack[n.depth+1].value+n.baseIndent)return!0;if(n.indent>=n.baseIndent+4)return!1;let r=(e.type==x.OrderedList?ps:cs)(n,t,!1);return r>0&&(e.type!=x.BulletList||ls(n,t,!1)<0)&&n.text.charCodeAt(n.pos+r-1)==e.value}var El={[x.Blockquote](e,t,n){return n.next!=62?!1:(n.markers.push(M(x.QuoteMark,t.lineStart+n.pos,t.lineStart+n.pos+1)),n.moveBase(n.pos+(Te(n.text.charCodeAt(n.pos+1))?2:1)),e.end=t.lineStart+n.text.length,!0)},[x.ListItem](e,t,n){return n.indent-1?!1:(n.moveBaseColumn(n.baseIndent+e.value),!0)},[x.OrderedList]:gl,[x.BulletList]:gl,[x.Document](){return!0}};function Te(e){return e==32||e==9||e==10||e==13}function Qn(e,t=0){for(;tn&&Te(e.charCodeAt(t-1));)t--;return t}function Pl(e){if(e.next!=96&&e.next!=126)return-1;let t=e.pos+1;for(;t-1&&e.depth==t.stack.length&&t.parser.leafBlockParsers.indexOf(Ml.SetextHeading)>-1||r<3?-1:1}function ql(e,t){for(let n=e.stack.length-1;n>=0;n--)if(e.stack[n].type==t)return!0;return!1}function cs(e,t,n){return(e.next==45||e.next==43||e.next==42)&&(e.pos==e.text.length-1||Te(e.text.charCodeAt(e.pos+1)))&&(!n||ql(t,x.BulletList)||e.skipSpace(e.pos+2)=48&&i<=57;){r++;if(r==e.text.length)return-1;i=e.text.charCodeAt(r)}return r==e.pos||r>e.pos+9||i!=46&&i!=41||re.pos+1||e.next!=49)?-1:r+1-e.pos}function Rl(e){if(e.next!=35)return-1;let t=e.pos+1;for(;t6?-1:n}function Xl(e){if(e.next!=45&&e.next!=61||e.indent>=e.baseIndent+4)return-1;let t=e.pos+1;for(;t/,Al=/\?>/,Jo=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*/i.exec(r);if(o)return e.append(M(x.Comment,n,n+1+o[0].length));let s=/^\?[^]*?\?>/.exec(r);if(s)return e.append(M(x.ProcessingInstruction,n,n+1+s[0].length));let a=/^(?:![A-Z][^]*?>|!\[CDATA\[[^]*?\]\]>|\/\s*[a-zA-Z][\w-]*\s*>|\s*[a-zA-Z][\w-]*(\s+[a-zA-Z:_][\w-.:]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*(\/\s*)?>)/.exec(r);return a?e.append(M(x.HTMLTag,n,n+1+a[0].length)):-1},Emphasis(e,t,n){if(t!=95&&t!=42)return-1;let r=n+1;for(;e.char(r)==t;)r++;let i=e.slice(n-1,n),o=e.slice(r,r+1),s=kn.test(i),a=kn.test(o),l=/\s|^$/.test(i),c=/\s|^$/.test(o),p=!c&&(!a||l||s),u=!l&&(!s||c||a),O=p&&(t==42||!u||s),d=u&&(t==42||!p||a);return e.append(new ue(t==95?Ll:Dl,n,r,(O?1:0)|(d?2:0)))},HardBreak(e,t,n){if(t==92&&e.char(n+1)==10)return e.append(M(x.HardBreak,n,n+2));if(t==32){let r=n+1;for(;e.char(r)==32;)r++;if(e.char(r)==10&&r>=n+2)return e.append(M(x.HardBreak,n,r+1))}return-1},Link(e,t,n){return t==91?e.append(new ue(Qt,n,n+1,1)):-1},Image(e,t,n){return t==33&&e.char(n+1)==91?e.append(new ue(br,n,n+2,1)):-1},LinkEnd(e,t,n){if(t!=93)return-1;for(let r=e.parts.length-1;r>=0;r--){let i=e.parts[r];if(i instanceof ue&&(i.type==Qt||i.type==br)){if(!i.side||e.skipSpace(i.to)==n&&!/[(\[]/.test(e.slice(n+1,n+2)))return e.parts[r]=null,-1;let o=e.takeContent(r),s=e.parts[r]=ud(e,o,i.type==Qt?x.Link:x.Image,i.from,n+1);if(i.type==Qt)for(let a=0;at?M(x.URL,t+n,o+n):o==e.length?null:!1}}function Il(e,t,n){let r=e.charCodeAt(t);if(r!=39&&r!=34&&r!=40)return!1;let i=r==40?41:r;for(let o=t+1,s=!1;o=this.end?-1:this.text.charCodeAt(t-this.offset)}get end(){return this.offset+this.text.length}slice(t,n){return this.text.slice(t-this.offset,n-this.offset)}append(t){return this.parts.push(t),t.to}addDelimiter(t,n,r,i,o){return this.append(new ue(t,n,r,(i?1:0)|(o?2:0)))}get hasOpenLink(){for(let t=this.parts.length-1;t>=0;t--){let n=this.parts[t];if(n instanceof ue&&(n.type==Qt||n.type==br))return!0}return!1}addElement(t){return this.append(t)}resolveMarkers(t){for(let r=t;r=t;l--){let m=this.parts[l];if(m instanceof ue&&m.side&1&&m.type==i.type&&!(o&&(i.side&1||m.side&2)&&(m.to-m.from+s)%3==0&&((m.to-m.from)%3||s%3))){a=m;break}}if(!a)continue;let c=i.type.resolve,p=[],u=a.from,O=i.to;if(o){let m=Math.min(2,a.to-a.from,s);u=a.to-m,O=i.from+m,c=m==1?"Emphasis":"StrongEmphasis"}a.type.mark&&p.push(this.elt(a.type.mark,u,a.to));for(let m=l+1;m=0;n--){let r=this.parts[n];if(r instanceof ue&&r.type==t&&r.side&1)return n}return null}takeContent(t){let n=this.resolveMarkers(t);return this.parts.length=t,n}getDelimiterAt(t){let n=this.parts[t];return n instanceof ue?n:null}skipSpace(t){return Qn(this.text,t-this.offset)+this.offset}elt(t,n,r,i){return typeof t=="string"?M(this.parser.getNodeType(t),n,r,i):new yr(t,n)}};wn.linkStart=Qt;wn.imageStart=br;function os(e,t){if(!t.length)return e;if(!e.length)return t;let n=e.slice(),r=0;for(let i of t){for(;r(t?t-1:0))return!1;if(this.fragmentEnd<0){let o=this.fragment.to;for(;o>0&&this.input.read(o-1,o)!=` +`;)o--;this.fragmentEnd=o?o-1:0}let r=this.cursor;r||(r=this.cursor=this.fragment.tree.cursor(),r.firstChild());let i=t+this.fragment.offset;for(;r.to<=i;)if(!r.parent())return!1;for(;;){if(r.from>=i)return this.fragment.from<=n;if(!r.childAfter(i))return!1}}matches(t){let n=this.cursor.tree;return n&&n.prop(L.NodeProp.contextHash)==t}takeNodes(t){let n=this.cursor,r=this.fragment.offset,i=this.fragmentEnd-(this.fragment.openEnd?1:0),o=t.absoluteLineStart,s=o,a=t.block.children.length,l=s,c=a;for(;;){if(n.to-r>i){if(n.type.isAnonymous&&n.firstChild())continue;break}let p=Hl(n.from-r,t.ranges);if(n.to-r<=t.ranges[t.rangeI].to)t.addNode(n.tree,p);else{let u=new L.Tree(t.parser.nodeSet.types[x.Paragraph],[],[],0,t.block.hashProp);t.reusePlaceholders.set(u,n.tree),t.addNode(u,p)}if(n.type.is("Block")&&(Od.indexOf(n.type.id)<0?(s=n.to-r,a=t.block.children.length):(s=l,a=c),l=n.to-r,c=t.block.children.length),!n.nextSibling())break}for(;t.block.children.length>a;)t.block.children.pop(),t.block.positions.pop();return s-o}};function Hl(e,t){let n=e;for(let r=1;rmr[e]),Object.keys(mr).map(e=>Ml[e]),Object.keys(mr),cd,El,Object.keys(zo).map(e=>zo[e]),Object.keys(zo),[]);function md(e,t,n){let r=[];for(let i=e.firstChild,o=t;;i=i.nextSibling){let s=i?i.from:n;if(s>o&&r.push({from:o,to:s}),!i)break;o=i.to}return r}function Bl(e){let{codeParser:t,htmlParser:n}=e;return{wrap:(0,L.parseMixed)((i,o)=>{let s=i.type.id;if(t&&(s==x.CodeBlock||s==x.FencedCode)){let a="";if(s==x.FencedCode){let c=i.node.getChild(x.CodeInfo);c&&(a=o.read(c.from,c.to))}let l=t(a);if(l)return{parser:l,overlay:c=>c.type.id==x.CodeText,bracketed:s==x.FencedCode}}else if(n&&(s==x.HTMLBlock||s==x.HTMLTag||s==x.CommentBlock))return{parser:n,overlay:md(i.node,i.from,i.to)};return null})}}var fd={resolve:"Strikethrough",mark:"StrikethroughMark"},hd={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":X.tags.strikethrough}},{name:"StrikethroughMark",style:X.tags.processingInstruction}],parseInline:[{name:"Strikethrough",parse(e,t,n){if(t!=126||e.char(n+1)!=126||e.char(n+2)==126)return-1;let r=e.slice(n-1,n),i=e.slice(n+2,n+3),o=/\s|^$/.test(r),s=/\s|^$/.test(i),a=kn.test(r),l=kn.test(i);return e.addDelimiter(fd,n,n+2,!s&&(!l||o||a),!o&&(!a||s||l))},after:"Emphasis"}]};function $n(e,t,n=0,r,i=0){let o=0,s=!0,a=-1,l=-1,c=!1,p=()=>{r.push(e.elt("TableCell",i+a,i+l,e.parser.parseInline(t.slice(a,l),i+a)))};for(let u=n;u-1)&&o++,s=!1,r&&(a>-1&&p(),r.push(e.elt("TableDelimiter",u+i,u+i+1))),a=l=-1):(c||O!=32&&O!=9)&&(a<0&&(a=u),l=u+1),c=!c&&O==92}return a>-1&&(o++,r&&p()),o}function xl(e,t){for(let n=t;n\s]*\|?(\s*:?-+:?\s*\|)+(\s*:?-+:?\s*)?$/,vr=class{constructor(){this.rows=null}nextLine(t,n,r){if(this.rows==null){this.rows=!1;let i;if((n.next==45||n.next==58||n.next==124)&&Nl.test(i=n.text.slice(n.pos))){let o=[];$n(t,r.content,0,o,r.start)==$n(t,i,0)&&(this.rows=[t.elt("TableHeader",r.start,r.start+r.content.length,o),t.elt("TableDelimiter",t.lineStart+n.pos,t.lineStart+n.text.length)])}}else if(this.rows){let i=[];$n(t,n.text,n.pos,i,t.lineStart),this.rows.push(t.elt("TableRow",t.lineStart+n.pos,t.lineStart+n.text.length,i))}return!1}finish(t,n){return this.rows?(t.addLeafElement(n,t.elt("Table",n.start,n.start+n.content.length,this.rows)),!0):!1}},gd={defineNodes:[{name:"Table",block:!0},{name:"TableHeader",style:{"TableHeader/...":X.tags.heading}},"TableRow",{name:"TableCell",style:X.tags.content},{name:"TableDelimiter",style:X.tags.processingInstruction}],parseBlock:[{name:"Table",leaf(e,t){return xl(t.content,0)?new vr:null},endLeaf(e,t,n){if(n.parsers.some(i=>i instanceof vr)||!xl(t.text,t.basePos))return!1;let r=e.peekLine();return Nl.test(r)&&$n(e,t.text,t.basePos)==$n(e,r,t.basePos)},before:"SetextHeading"}]},as=class{nextLine(){return!1}finish(t,n){return t.addLeafElement(n,t.elt("Task",n.start,n.start+n.content.length,[t.elt("TaskMarker",n.start,n.start+3),...t.parser.parseInline(n.content.slice(3),n.start+3)])),!0}},yd={defineNodes:[{name:"Task",block:!0,style:X.tags.list},{name:"TaskMarker",style:X.tags.atom}],parseBlock:[{name:"TaskList",leaf(e,t){return/^\[[ xX]\][ \t]/.test(t.content)&&e.parentType().name=="ListItem"?new as:null},after:"SetextHeading"}]},Sl=/(www\.)|(https?:\/\/)|([\w.+-]{1,100}@)|(mailto:|xmpp:)/gy,Ql=/[\w-]+(\.[\w-]+)+(:\d+)?(\/[^\s<]*)?/gy,bd=/[\w-]+\.[\w-]+($|[/:])/,$l=/[\w.+-]+@[\w-]+(\.[\w.-]+)+/gy,kl=/\/[a-zA-Z\d@.]+/gy;function wl(e,t,n,r){let i=0;for(let o=t;o-1)return-1;let r=t+n[0].length;for(;;){let i=e[r-1],o;if(/[?!.,:*_~]/.test(i)||i==")"&&wl(e,t,r,")")>wl(e,t,r,"("))r--;else if(i==";"&&(o=/&(?:#\d+|#x[a-f\d]+|\w+);$/.exec(e.slice(t,r))))r=t+o.index;else break}return r}function Tl(e,t){$l.lastIndex=t;let n=$l.exec(e);if(!n)return-1;let r=n[0][n[0].length-1];return r=="_"||r=="-"?-1:t+n[0].length-(r=="."?1:0)}var xd={parseInline:[{name:"Autolink",parse(e,t,n){let r=n-e.offset;if(r&&/\w/.test(e.text[r-1]))return-1;Sl.lastIndex=r;let i=Sl.exec(e.text),o=-1;if(!i)return-1;if(i[1]||i[2]){if(o=vd(e.text,r+i[0].length),o>-1&&e.hasOpenLink){let s=/([^\[\]]|\[[^\]]*\])*/.exec(e.text.slice(r,o));o=r+s[0].length}}else i[3]?o=Tl(e.text,r):(o=Tl(e.text,r+i[0].length),o>-1&&i[0]=="xmpp:"&&(kl.lastIndex=o,i=kl.exec(e.text),i&&(o=i.index+i[0].length)));return o<0?-1:(e.addElement(e.elt("URL",n,o+e.offset)),o+e.offset)}}]},Ul=[gd,yd,hd,xd];function zl(e,t,n){return(r,i,o)=>{if(i!=e||r.char(o+1)==e)return-1;let s=[r.elt(n,o,o+1)];for(let a=o+1;a=48&&u<=57)continue;let O=c+i,d=c;return!r&&O-a>=6&&e.char(n+1)===123&&e.char(n+2)===125&&e.char(c-2)===123&&e.char(c-1)===125&&(l+=2,d-=2),e.addElement(e.elt(o,a,O,[e.elt(w.Dollar,a,l),e.elt(s,l,d),e.elt(w.Dollar,d,O)]))}return r?e.addElement(e.elt(w.DollarInlineMath,a,a+2,[e.elt(w.Dollar,a,a+1),e.elt(w.InlineMath,a+1,a+1),e.elt(w.Dollar,a+1,a+2)])):-1}};function Fl(e){if(e.next!==36||e.indent-e.baseIndent>3)return-1;let t=e.pos+1;for(;t=t&&e.skipSpace(r)===e.text.length?[n,r]:null}function Tn(e,t,n){let r=e.at(-1);r&&r.to===t&&!(r instanceof Ve)?r.to=n:e.push({from:t,to:n,kind:w.DisplayMath})}var kd={name:"DisplayMath",parse(e,t){let n=Fl(t);if(n<0)return!1;let r=t.pos,i=n-r,o=e.lineStart+r,s=t.skipSpace(n),a=t.text.length+e.lineStart,l=[e.elt(w.Dollar,o,e.lineStart+n)],c=!0;if(s=2||p<2);c=!1){a=t.text.length+e.lineStart;let d=$d(t,i);if(d!==null){for(let v of t.markers)l.push(v);let g=e.lineStart+d[0],b=e.lineStart+d[1];e.lineStart+t.basePosd instanceof Ve?d:e.elt(w.DisplayMath,d.from,d.to)),O=e.elt(w.DollarDisplayBlockMath,o,a,u);return e.addElement(O),!0},endLeaf(e,t){return Fl(t)>=0},after:"FencedCode"},wd={defineNodes:[{name:w.InlineMath},{name:w.DisplayMath},{name:w.Dollar},{name:w.DollarInlineMath},{name:w.DollarDisplayMath},{name:w.DollarDisplayBlockMath,block:!0}],parseInline:[Qd],parseBlock:[kd],wrap:(0,Os.parseMixed)(e=>e.name===w.DollarDisplayBlockMath?{parser:St,overlay:t=>t.name===w.DisplayMath,bracketed:!0}:e.name===w.InlineMath||e.name===w.DisplayMath&&e.node.parent.name===w.DollarDisplayMath?{parser:St,bracketed:!0}:null)},Td={mark:w.HighlightEqual,resolve:w.Highlight},Ed={defineNodes:[{name:w.Highlight},{name:w.HighlightEqual}],parseInline:[{name:w.Highlight,parse(e,t,n){return t!==61||e.char(n+1)!==61?-1:e.addDelimiter(Td,n,n+2,!0,!0)}}]},Pd={defineNodes:[{name:w.Wikilink}],parseInline:[{name:w.Wikilink,parse(e,t,n){let r=t===91&&e.char(n+1)===91,i=!r&&t===33&&e.char(n+1)===91&&e.char(n+2)===91;if(!r&&!i)return-1;let o=n;i&&(n+=1);for(let s=n+2;se.addElement(o)),e.nextLine(),!0}return!1},endLeaf(e,t){return Yl(t)}}]},Kl=e=>us.configure(Ul).configure(Ed).configure(Pd).configure(qd).configure(wd).configure(Bl({codeParser:t=>e.includes(t)?St:null})),ey=us.configure({wrap:(0,Os.parseMixed)(e=>e.name==="FencedCode"?{parser:St,overlay:t=>t.name==="CodeText",bracketed:!0}:null)});var I=class{constructor(){}};I.Apply=20,I.MinSlice=25,I.Slice=100,I.MinPause=100,I.MaxPause=500,I.ChunkBudget=3e3,I.ChunkTime=3e4,I.ChangeBonus=50,I.MaxParseAhead=1e5,I.InitViewport=3e3;var ds=Nt.ParseContext,fs=class e{constructor(t){let n=t;this.tree=n.tree,this.context=n}apply(t){var i,o;if(!t.docChanged&&this.tree==this.context.tree)return this;let n=this.context.changes(t.changes,t.state),r=this.context.treeLen==t.startState.doc.length?void 0:Math.max(t.changes.mapPos(this.context.treeLen),n.viewport.to);return(i=n.work)!=null&&i.call(n,I.Apply,r)||(o=n==null?void 0:n.takeTree)==null||o.call(n),new e(n)}static init(t){return n=>{var s,a,l;let r=Math.min(I.InitViewport,n.doc.length),i=(s=ds.create)==null?void 0:s.call(ds,t,n,{from:0,to:r});if(!i)throw new Error("Failed to create parse state");let o=(a=i.work)==null?void 0:a.call(i,I.Apply,r);if(o===void 0)throw new Error("Failed to work on parse state");return o&&((l=i.takeTree)==null||l.call(i)),new e(i)}}},Jl,ms=typeof navigator!="undefined"&&((Jl=navigator==null?void 0:navigator.scheduling)!=null&&Jl.isInputPending)?()=>{var e,t;return!!((t=(e=navigator==null?void 0:navigator.scheduling)==null?void 0:e.isInputPending)!=null&&t.call(e))}:null,hs=xr.StateEffect.define(),Rd=e=>{let t=window.setTimeout(()=>e(),I.MaxPause);return()=>window.clearTimeout(t)},gs=Sr.ViewPlugin.fromClass(class{constructor(t){this.view=t;this.working=null;this.workScheduled=0;this.chunkEnd=-1;this.chunkBudget=-1;this.workCallback=n=>this.work(n),this.scheduleWork()}update(t){var r,i;let n=this.view.state.field(st).context;((r=n.updateViewport)!=null&&r.call(n,t.view.viewport)||this.view.viewport.to>((i=n==null?void 0:n.treeLen)!=null?i:n.tree.length))&&this.scheduleWork(),(t.docChanged||t.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=I.ChangeBonus),this.scheduleWork()),this.checkAsyncSchedule(n)}scheduleWork(){var r,i;if(this.working)return;let{state:t}=this.view,n=t.field(st);(n.tree!=n.context.tree||!((i=(r=n.context).isDone)!=null&&i.call(r,t.doc.length)))&&(this.working=Rd(this.workCallback))}work(t){var c,p,u,O,d,f,m;this.working=null;let n=Date.now();if(this.chunkEndi+1e3,l=(d=(O=o.context).work)==null?void 0:d.call(O,()=>ms&&ms()||Date.now()>s,i+(a?0:I.MaxParseAhead));if(this.chunkBudget-=Date.now()-n,l||this.chunkBudget<=0){(m=(f=o.context).takeTree)==null||m.call(f);let g=this.view.state.field(st);g.context=o.context,g.tree=o.tree}this.chunkBudget>0&&!(l&&!a)&&this.scheduleWork(),this.checkAsyncSchedule(o.context)}checkAsyncSchedule(t){t.scheduleOn&&(this.workScheduled++,t.scheduleOn.then(()=>this.scheduleWork()).catch(n=>(0,Sr.logException)(this.view.state,n)).then(()=>this.workScheduled--),t.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),Xd="formatting_formatting-math_formatting-math-begin_keyword_math_math-block",_d="formatting_formatting-math_formatting-math-end_keyword_math_math-";function Ad(e){let t=W(e),n=e.facet(Nt.language);function r(){let o=(0,Nt.syntaxTree)(e).topNode,s=o.firstChild,a=s==null?void 0:s.nextSibling,l=o.lastChild,c=[s,(s==null?void 0:s.name)===Xd,(s==null?void 0:s.from)===(s==null?void 0:s.to),(s==null?void 0:s.from)===0,l,(l==null?void 0:l.name)===_d,(l==null?void 0:l.from)===(l==null?void 0:l.to),a,(a==null?void 0:a.name)==="math"];return De(t.logLevel,"info")&&(console.debug("[Obsidian LaTeX Suite] isNotExcalidraw: checkSyntaxTree() conditions:",c.map(p=>!!p)),De(t.logLevel,"verbose")&&console.debug("[Obsidian LaTeX Suite] isNotExcalidraw: checkSyntaxTree() details:",c)),!c.every(p=>!!p)}return De(t.logLevel,"info")&&console.debug(`[Obsidian LaTeX Suite] isNotExcalidraw: languageFacet?.name=${n==null?void 0:n.name}, checkSyntaxTree()=${r()}, settings.excalidrawSupportEnabled=${t.excalidrawSupportEnabled}`),(n==null?void 0:n.name)==="hypermd"||(n==null?void 0:n.name)==="templater"||r()||!t.excalidrawSupportEnabled}var st=xr.StateField.define({create:e=>{let t=Ad(e)?Kl(W(e).forceMathLanguages):St;return fs.init(t)(e)},update:function(t,n){for(let r of n.effects)if(r.is(hs))return r.value;return t.apply(n)}});function at(e){return e.field(st).tree}var ec=[st,gs];var ys=class{constructor(t){this._mathBounds=[];this.equationsOverlays=null;this.shouldUpdate=!1;this.updateMathBounds(t)}get mathBounds(){return this._mathBounds}reset(){this._mathBounds=[],this.equationsOverlays=null,this.shouldUpdate=!1}getTree(t){return at(t)}init(t){return this.shouldUpdate&&(this.equationsOverlays=null,this.updateMathBounds(t),this.shouldUpdate=!1),this}update(t){(t.docChanged||t.viewportChanged)&&(this.shouldUpdate=!0)}getDollarBounds(t){let n=t.firstChild,r=t.lastChild.name==="Dollar"&&n.nextSibling?t.lastChild:{from:t.to,to:t.to};return{open:n,close:r}}updateMathBounds(t){let n=at(t.state),r=[],i=W(t.state);for(let{from:o,to:s}of t.visibleRanges)n.iterate({from:o,to:s,enter:a=>{if(a.name===w.DollarDisplayBlockMath){let{open:l,close:c}=this.getDollarBounds(a.node),p=a.node.getChildren("DisplayMath");if(p.length===0){r.push({inner_start:l.to,inner_end:c.from,outer_start:l.from,outer_end:c.to,mode:1,tree:null,overlay:[]});return}let u=a.node.enter(p[p.length-1].to,-1);if(!u)return;r.push({inner_start:l.to,inner_end:c.from,outer_start:l.from,outer_end:c.to,mode:1,tree:u,overlay:p})}else if(a.name===w.DollarInlineMath||a.name===w.DollarDisplayMath){let{open:l,close:c}=this.getDollarBounds(a.node),p=a.node.getChild("LaTeX");if(!p)return;let u=a.name===w.DollarInlineMath?0:1;r.push({inner_start:l.to,inner_end:c.from,outer_start:l.from,outer_end:c.to,mode:u,tree:p,overlay:[p]})}else if(a.name==="FencedCode"){let l=a.node.getChild("CodeInfo");if(!l)return;let c=t.state.sliceDoc(l.from,l.to);if(!i.forceMathLanguages.includes(c))return;let p=a.node.getChildren("CodeText"),u=p.last();if(!u)return;let O=a.node.enter(u.to,-1);if(O===null||!O.type.is(_.LaTeX))return;r.push({inner_start:p[0].from,inner_end:u.to,outer_start:a.node.from,outer_end:a.node.to,mode:2,tree:O,overlay:p})}else a.type.is(_.LaTeX)&&a.node.parent===null&&r.push({inner_start:a.node.from,inner_end:a.node.to,outer_start:a.node.from,outer_end:a.node.to,mode:1,tree:a.node,overlay:[{from:a.from,to:a.to}]})}});this._mathBounds=r}inMathBound(t,n){let r=this._mathBounds,i=r[0];if(!i||nr[r.length-1].outer_end)return null;let o=0,s=r.length-1;for(;o<=s;){let a=o+s>>1,l=r[a];if(n=l.outer_end&&l.outer_end!==l.inner_end)o=a+1;else{if(nl.inner_end)break;return l}}return null}getEquationOverlays(t){return this.equationsOverlays?this.equationsOverlays:(this.equationsOverlays=this._mathBounds.map(n=>n.overlay.length===0||n.tree===null?null:{bound:n,overlay:{from:n.overlay[0].from,to:n.overlay[n.overlay.length-1].to},text:t.sliceDoc(n.overlay[0].from,n.overlay[n.overlay.length-1].to)}).filter(n=>n!==null),this.equationsOverlays)}},Qr=tc.ViewPlugin.fromClass(ys),oe=(e,t=!0)=>{let n=e.plugin(Qr);if(!n)throw new Error("MathBoundsPlugin not found, something went wrong with the plugin initialization");return t?n.init(e):n};var nc="HyperMD-codeblock_HyperMD-codeblock-begin_HyperMD-codeblock-begin-bg_HyperMD-codeblock-bg",bs="HyperMD-codeblock_HyperMD-codeblock-bg_HyperMD-codeblock-end_HyperMD-codeblock-end-bg",Md="inline-code",vs=class{constructor(t){this.codeblockLanguage=null;this.shouldUpdate=!1;this.updateFromView(t)}disableMath(){this.shouldUpdate=!1,this.boundsCache.clear(),this.innerBoundsCache.clear(),this.mode=new Lt({text:!1,inlineMath:!1,blockMath:!1,codeMath:!1,codeBlock:!1,code:!1,textEnv:!1,snippetlessEnv:!1}),oe(this.view,!1).reset()}init(t){return this.shouldUpdate&&(this.updateFromView(t),this.shouldUpdate=!1),this}update(t){(t.docChanged||t.selectionSet||t.viewportChanged)&&(this.shouldUpdate=!0)}updateFromView(t){var O;let n=t.state,r=n.selection;this.view=t,this.state=n,this.pos=r.main.to,this.ranges=Array.from(r.ranges).reverse(),this.mode=new Lt({text:!1,inlineMath:!1,blockMath:!1,codeMath:!1,codeBlock:!1,code:!1,textEnv:!1,snippetlessEnv:!1}),this.boundsCache=new Map,this.innerBoundsCache=new Map,this.codeblockLanguage=null;let i=Ld(n),o=(O=i==null?void 0:i.codeblockLanguage)!=null?O:null,s=o!==null,a=s?!1:Vd(n);this.mode.code=a;let l=W(n),c=s&&l.forceMathLanguages.contains(o);this.mode.codeMath=c,this.mode.codeBlock=s&&!c?o:!1,s&&this.mode.codeBlock!==!1&&(this.codeblockLanguage=o,this.boundsCache.set(this.pos,i));let u=oe(t).inMathBound(n,this.pos);if(u!==null&&(this.mode.blockMath=u.mode===1,this.mode.inlineMath=u.mode===0,this.boundsCache.set(this.pos,u)),u){let d=this.inTextEnvironment();d==="text"?this.mode.textEnv=!0:d==="none"&&(this.mode.snippetlessEnv=!0)}this.mode.text=!s&&!u}*getEnvNames(t=this.pos){let r=oe(this.view).inMathBound(this.state,t);if(!r)return;let i=r.tree;if(i)for(let o of Va(i,t,-1)){if(o.to<=t)continue;o.name;let s=this.getEnvNameFromNode(o,this.state.doc);s&&(yield s)}}isWithinMacros(t,n){for(let r of this.getEnvNames(t)){if(r.kind==="environment")continue;if(r.kind==="math")return null;let i=kr(r,n);if(i)return i}return null}getEnvNameFromNode(t,n){var o,s;let r=t.name;function i(a){let l=a==null?void 0:a.getChild("BeginEnv"),c=l==null?void 0:l.getChild("EnvNameGroup"),p=a==null?void 0:a.getChild("Content");return!c||!p||!a?null:{kind:"environment",name:n.sliceString(c.from+1,c.to-1),inner_start:p.from,inner_end:p.to,outer_start:a.from,outer_end:a.to,node:t}}if(r==="Environment")return i(t);if(r==="KnownEnvironment")return i(t.firstChild);if(r.endsWith("Argument")||r==="EnvNameGroup"){let a=t.parent,l=a==null?void 0:a.firstChild,c=t==null?void 0:t.firstChild,p=t==null?void 0:t.lastChild;return!l||!c||!p?null:{kind:"command",name:n.sliceString(l.from+1,l.to),inner_start:c.to,inner_end:p.from,outer_start:t.from,outer_end:p.to,node:t}}else if(r==="ParenMath"||r==="DollarInlineMath"){let a=null,l=null;if(r==="ParenMath")a=t.getChild("OpenParenMath"),l=t.getChild("CloseParenMath");else if(r==="DollarInlineMath"){let c=t.getChildren("Dollar");a=(o=c[0])!=null?o:null,l=(s=c[1])!=null?s:null}return!a||!l?null:{kind:"math",inner_end:l.from,inner_start:a.to,outer_start:t.from,outer_end:t.to,node:t}}return null}isWithinEnvironment(t,n){if(!this.mode.inMath())return null;let r=this.getInnerBounds();if(!r)return null;let{inner_start:i,inner_end:o}=r,s=this.state.sliceDoc(i,o);t-=i,Array.isArray(n)||(n=[n]);e:for(let a of n){let l=a.openSymbol.slice(-1),c=La(l),p,u;["{","[","("].contains(l)&&a.closeSymbol===c?(p=a.openSymbol.length-1,u=l):(p=0,u=a.openSymbol);let O=s.lastIndexOf(a.openSymbol,t-1);for(;O!=-1;){let d=Gt(s,O+p,u,a.closeSymbol,!1);if(d===null)continue e;if(d>=t&&t>=O+a.openSymbol.length)return j(A({},a),{inner_start:O+a.openSymbol.length+i,inner_end:d+i,outer_start:O+i,outer_end:d+a.closeSymbol.length+i});if(O<=0)continue e;O=s.lastIndexOf(a.openSymbol,O-1)}}return null}inTextEnvironment(){let t=this.isWithinMacros(this.pos,Ka);if(!t)return null;let n=t.name;return Vi.some(r=>r.name===n)?"none":"text"}getBounds(t=this.pos){let n=this.boundsCache.get(t);if(n!==void 0)return n;let r;return this.mode.codeMath?r=Zd(this.state,t):r=oe(this.view).inMathBound(this.state,t),this.boundsCache.set(t,r),r}getInnerBounds(t=this.pos){let n,r=this.innerBoundsCache.get(t);return r!==void 0?r:(this.mode.codeMath?n=this.getBounds(t):n=jd(this.view),this.innerBoundsCache.set(t,n),n)}},$r=rc.ViewPlugin.fromClass(vs),G=(e,t=!0)=>{let n=e.plugin($r);if(!n)throw new Error("Context plugin not found, something went wrong with the plugin initialization");return t?n.init(e):n};function kr(e,t){let n=t.find(o=>o.name===e.name);if(!n)return null;if(!n.arguments)return e;let r=0,i=e.node;for(;(i=i.prevSibling)!==null;)i.name.endsWith("Argument")&&r++;return n.arguments.includes(r)?e:null}var jd=(e,t)=>{t||(t=e.state.selection.main.to);let n=oe(e).inMathBound(e.state,t);if(!n)return null;let r=e.state.sliceDoc(n.inner_start,n.inner_end);r=r.replaceAll("\\$","\\R");let i=r.lastIndexOf("$",t-1),o=r.indexOf("$",t);return i===-1||o===-1?n:{inner_start:i+1,inner_end:o,outer_start:i,outer_end:o+1}},Zd=(e,t=e.selection.main.from)=>{let n=ic(e,t);if(!n)return null;let{begin:r,end:i}=n;return{inner_start:r.to,inner_end:i.from,outer_start:r.from,outer_end:i.to}},ic=(e,t=e.selection.main.from)=>{let r=(0,xs.syntaxTree)(e).cursor();if(r.childBefore(t),!r.name.contains("codeblock")||r.name===nc&&t<=r.to||r.name===bs)return null;do if(r.name===nc)break;while(r.prev());let i=r.node;if(!i)return null;r.childAfter(t);do if(r.name===bs)break;while(r.next());let o=r.node;return!o||o.name!==bs?null:{begin:i,end:o}},Ld=e=>{let t=e.selection.main.from,n=ic(e,t);if(!n)return null;let{begin:r,end:i}=n,o=Dd(e,r);return{inner_start:r.to,inner_end:i.from,outer_start:r.from,outer_end:i.to,codeblockLanguage:o}};function Dd(e,t){return e.sliceDoc(t.from,t.to).replace(/`+|~+/g,"").split(" ")[0]}var Vd=e=>{let t=e.selection.main.head;return(0,xs.syntaxTree)(e).resolveInner(t,-1).name.contains(Md)};var Gy=require("@codemirror/view"),dn="${VISUAL}",Id="${VISUAL_ORIGINAL}",Gd=Ye([Ai(!1),H(),Re(bt(ve))]);function Ss(e){let t=_a(Gd,e);if(!t.success)return console.error("Invalid replacement output:",t.issues),null;if(t.output===!1)return null;if(typeof t.output=="string"){let n=new Dt(t.output);return new U([n])}else if(Array.isArray(t.output))return new U(t.output);return t.output}var En=class{constructor(t,n,r,i,o=0,s="no description provided",a=[],l=[],c=[],p=""){this.excludedMacros=[];this.includedMacros=[];this.type=t,this.data={trigger:n,replacement:r},this.options=i,this.priority=o,this.description=s,this.excludedEnvironments=a,this.excludedMacros=l,this.includedMacros=c,this.triggerKey=p}get trigger(){return this.data.trigger}get replacement(){return this.data.replacement}isWithinExcludedScope(t){if(this.excludedEnvironments.length===0&&this.excludedMacros.length===0)return!1;for(let n of t)if(n.kind==="environment"){if(this.excludedEnvironments.includes(n.name))return!0;continue}else{if(n.kind==="math")return!1;if(kr(n,this.excludedMacros))return!0}return!1}isWithinIncludedScope(t){if(this.includedMacros.length===0)return 0;let n=t.find(r=>r.kind!=="environment");return n===void 0||n.kind==="math"?2:kr(n,this.includedMacros)?1:2}toString(){return wr({type:this.type,trigger:this.trigger,replacement:this.replacement,options:this.options,priority:this.priority,description:this.description,excludedEnvironments:this.excludedEnvironments,excludedMacros:this.excludedMacros})}},Pn=class extends En{constructor({trigger:t,replacement:n,options:r,priority:i,description:o,excludedEnvironments:s,excludedMacros:a,includedMacros:l,triggerKey:c}){super("visual",t,n,r,i,o,s,a,l,c)}process({effectiveLine:t,range:n,sel:r,view:i}){if(!!!r.original||!t.endsWith(this.trigger))return null;let s=n.original.from,a,c={captures:{match:[],groups:{[dn]:r.parsed,[Id]:r.original}}};if(this.replacement instanceof U)a=this.replacement.applyInsert(c);else{let p={view:i,options:c},u=Ss(this.replacement(r.parsed,p));if(u===null)return null;a=u.applyInsert(c)}if(a.tabstops.length===0){let p=n.parsed.from-n.original.from;a.insert=r.original.slice(0,p)+a.insert,a.tabstops=[{from:0,to:a.insert.length,index:[0]}]}return{triggerPos:s,replacement:a}}},Cn=class extends En{constructor({trigger:t,replacement:n,options:r,priority:i,description:o,excludedEnvironments:s,excludedMacros:a,includedMacros:l,triggerKey:c,triggerAfter:p}){super("regex",t,n,r,i,o,s,a,l,c),this.data.triggerAfter=p}process({effectiveLine:t,sel:n,effectiveLineAfter:r,view:i}){var O,d;if(!!n.original)return null;let s=this.trigger.exec(t);if(s===null)return null;let a=(O=this.data.triggerAfter)==null?void 0:O.exec(r());if(this.data.triggerAfter&&a===null)return null;let l=s.index,c=a?t.length+a[0].length:void 0,p,u={captures:{match:s.slice(1),groups:(d=s.groups)!=null?d:{}}};if(this.replacement instanceof U)p=this.replacement.applyInsert(u);else{let f={view:i,options:u},m=Ss(this.replacement(s,f));if(m===null)return null;p=m.applyInsert(u)}return{triggerPos:l,replacement:p,triggerEndPos:c}}},qn=class extends En{constructor({trigger:t,replacement:n,options:r,priority:i,description:o,excludedEnvironments:s,excludedMacros:a,includedMacros:l,triggerKey:c,triggerAfter:p}){super("string",t,n,r,i,o,s,a,l,c),this.data.triggerAfter=p}process({effectiveLine:t,sel:n,effectiveLineAfter:r,view:i}){if(!!n.original||!t.endsWith(this.trigger)||this.data.triggerAfter&&!r().startsWith(this.data.triggerAfter))return null;let s=t.length-this.trigger.length,a=this.data.triggerAfter!==void 0?t.length+this.data.triggerAfter.length:void 0,l={captures:{match:[this.trigger],groups:{}}},c;if(this.replacement instanceof U)c=this.replacement.applyInsert(l);else{let p={view:i,options:l},u=Ss(this.replacement(this.trigger,p));if(u===null)return null;c=u.applyInsert(l)}return{triggerPos:s,replacement:c,triggerEndPos:a}}};function Hd(e,t){return typeof t=="function"?"[[Function]]":t instanceof RegExp?`[[RegExp]]: ${t.toString()}`:t}function wr(e){return JSON.stringify(e,Hd,2)}function Tr(e){return e.map((t,n)=>[zd(t),Fd(t),n]).sort(Bd).map(([t,n,r])=>e[r])}function Bd(e,t){return Ud(e[0],t[0])||Nd(e[1],t[1])}function Nd(e,t){return et?-1:0}function Ud(e,t){return et?-1:0}function zd(e){return e.priority}function Fd(e){return typeof e.trigger=="string"?e.trigger.length:e.trigger.source.length}var oc={"([A-Za-z])(\\d)":[{name:"ce"},{name:"pu"}],"->":[{name:"ce"}]};var Yd=require("obsidian");var Qs=["\\above","\\abovewithdelims","\\Aboxed","\\abs","\\absolutevalue","\\acomm","\\acos","\\acosecant","\\acosine","\\acot","\\acotangent","\\acsc","\\acute","\\adjustlimits","\\admat","\\aleph","\\alpha","\\alwaysDashedLine","\\alwaysNoLine","\\alwaysRootAtBottom","\\alwaysRootAtTop","\\alwaysSingleLine","\\alwaysSolidLine","\\amalg","\\And","\\angle","\\anticommutator","\\antidiagonalmatrix","\\approx","\\approxeq","\\arccos","\\arccosecant","\\arccosine","\\arccot","\\arccotangent","\\arccsc","\\arcsec","\\arcsecant","\\arcsin","\\arcsine","\\arctan","\\arctangent","\\arg","\\array","\\ArrowBetweenLines","\\arrowvert","\\Arrowvert","\\asec","\\asecant","\\asin","\\asine","\\ast","\\asymp","\\atan","\\atangent","\\atop","\\atopwithdelims","\\AXC","\\Axiom","\\AxiomC","\\backepsilon","\\backprime","\\backsim","\\backsimeq","\\backslash","\\bar","\\barwedge","\\Bbb","\\Bbbk","\\bbFont","\\bbox","\\bcancel","\\because","\\begin","\\beta","\\beth","\\between","\\bf","\\BIC","\\big","\\Big","\\bigcap","\\bigcirc","\\bigcup","\\bigg","\\Bigg","\\biggl","\\Biggl","\\biggm","\\Biggm","\\biggr","\\Biggr","\\bigl","\\Bigl","\\bigm","\\Bigm","\\bigodot","\\bigoplus","\\bigotimes","\\bigr","\\Bigr","\\bigsqcup","\\bigstar","\\bigtimes","\\bigtriangledown","\\bigtriangleup","\\biguplus","\\bigvee","\\bigwedge","\\BinaryInf","\\BinaryInfC","\\binom","\\blacklozenge","\\blacksquare","\\blacktriangle","\\blacktriangledown","\\blacktriangleleft","\\blacktriangleright","\\bmod","\\bmqty","\\boldsymbol","\\bot","\\bowtie","\\Box","\\boxdot","\\boxed","\\boxminus","\\boxplus","\\boxtimes","\\bqty","\\Bqty","\\bra","\\Bra","\\brace","\\bracevert","\\brack","\\braket","\\Braket","\\breve","\\buildrel","\\bullet","\\bumpeq","\\Bumpeq","\\cal","\\cancel","\\cancelto","\\cap","\\Cap","\\cases","\\cdot","\\cdotp","\\cdots","\\ce","\\cellcolor","\\celsius","\\centercolon","\\centerdot","\\centernot","\\centerOver","\\cfrac","\\check","\\checkmark","\\chi","\\choose","\\circ","\\circeq","\\circlearrowleft","\\circlearrowright","\\circledast","\\circledcirc","\\circleddash","\\circledR","\\circledS","\\clap","\\class","\\clubsuit","\\colon","\\colonapprox","\\Colonapprox","\\coloneq","\\Coloneq","\\coloneqq","\\Coloneqq","\\colonsim","\\Colonsim","\\color","\\colorbox","\\columncolor","\\comm","\\commutator","\\complement","\\cong","\\coprod","\\cos","\\cosecant","\\cosh","\\cosine","\\cot","\\cotangent","\\coth","\\cp","\\cr","\\cramped","\\crampedclap","\\crampedllap","\\crampedrlap","\\crampedsubstack","\\cross","\\crossproduct","\\csc","\\csch","\\cssId","\\cup","\\Cup","\\curl","\\curlyeqprec","\\curlyeqsucc","\\curlyvee","\\curlywedge","\\curvearrowleft","\\curvearrowright","\\dagger","\\daleth","\\dashedLine","\\dashleftarrow","\\dashrightarrow","\\dashv","\\dbinom","\\dblcolon","\\dd","\\ddagger","\\ddddot","\\dddot","\\ddot","\\ddots","\\DeclareMathOperator","\\DeclarePairedDelimiters","\\DeclarePairedDelimitersX","\\DeclarePairedDelimitersXPP","\\def","\\definecolor","\\deg","\\degree","\\delta","\\Delta","\\derivative","\\det","\\determinant","\\dfrac","\\diagdown","\\diagonalmatrix","\\diagup","\\diamond","\\Diamond","\\diamondsuit","\\diffd","\\differential","\\digamma","\\dim","\\displaylines","\\displaystyle","\\div","\\divergence","\\divideontimes","\\divsymbol","\\dmat","\\dot","\\doteq","\\Doteq","\\doteqdot","\\dotplus","\\dotproduct","\\dots","\\dotsb","\\dotsc","\\dotsi","\\dotsm","\\dotso","\\doublebarwedge","\\doublecap","\\doublecup","\\downarrow","\\Downarrow","\\downdownarrows","\\downharpoonleft","\\downharpoonright","\\dv","\\dyad","\\ell","\\empheqbigl","\\empheqbiglangle","\\empheqbiglbrace","\\empheqbiglbrack","\\empheqbiglceil","\\empheqbiglfloor","\\empheqbiglparen","\\empheqbiglvert","\\empheqbiglVert","\\empheqbigr","\\empheqbigrangle","\\empheqbigrbrace","\\empheqbigrbrack","\\empheqbigrceil","\\empheqbigrfloor","\\empheqbigrparen","\\empheqbigrvert","\\empheqbigrVert","\\empheql","\\empheqlangle","\\empheqlbrace","\\empheqlbrack","\\empheqlceil","\\empheqlfloor","\\empheqlparen","\\empheqlvert","\\empheqlVert","\\empheqr","\\empheqrangle","\\empheqrbrace","\\empheqrbrack","\\empheqrceil","\\empheqrfloor","\\empheqrparen","\\empheqrvert","\\empheqrVert","\\emptyset","\\enclose","\\end","\\enspace","\\epsilon","\\eqalign","\\eqalignno","\\eqcirc","\\eqcolon","\\Eqcolon","\\eqqcolon","\\Eqqcolon","\\eqref","\\eqsim","\\eqslantgtr","\\eqslantless","\\equiv","\\erf","\\eta","\\eth","\\ev","\\eval","\\evaluated","\\exists","\\exp","\\expectationvalue","\\exponential","\\expval","\\fallingdotseq","\\fbox","\\fCenter","\\fcolorbox","\\fderivative","\\fdv","\\Finv","\\flat","\\flatfrac","\\forall","\\frac","\\frak","\\framebox","\\frown","\\functionalderivative","\\Game","\\gamma","\\Gamma","\\gcd","\\ge","\\genfrac","\\geq","\\geqq","\\geqslant","\\gets","\\gg","\\ggg","\\gggtr","\\gimel","\\gnapprox","\\gneq","\\gneqq","\\gnsim","\\grad","\\gradient","\\gradientnabla","\\grave","\\gt","\\gtrapprox","\\gtrdot","\\gtreqless","\\gtreqqless","\\gtrless","\\gtrsim","\\gvertneqq","\\hat","\\hbar","\\hbox","\\hdashline","\\heartsuit","\\hfil","\\hfill","\\hfilll","\\hline","\\hom","\\hookleftarrow","\\hookrightarrow","\\hphantom","\\href","\\hskip","\\hslash","\\hspace","\\huge","\\Huge","\\hypcosecant","\\hypcosine","\\hypcotangent","\\hypsecant","\\hypsine","\\hyptangent","\\identitymatrix","\\idotsint","\\iff","\\iiiint","\\iiint","\\iint","\\Im","\\imaginary","\\imat","\\imath","\\impliedby","\\implies","\\in","\\inf","\\infty","\\injlim","\\innerproduct","\\int","\\intercal","\\intop","\\iota","\\ip","\\it","\\jmath","\\Join","\\kappa","\\ker","\\kern","\\ket","\\Ket","\\ketbra","\\Ketbra","\\label","\\lambda","\\Lambda","\\land","\\langle","\\laplacian","\\large","\\Large","\\LARGE","\\LaTeX","\\lbrace","\\lbrack","\\lceil","\\ldotp","\\ldots","\\le","\\leadsto","\\left","\\Leftarrow","\\leftarrow","\\leftarrowtail","\\leftharpoondown","\\leftharpoonup","\\LeftLabel","\\leftleftarrows","\\Leftrightarrow","\\leftrightarrow","\\leftrightarrows","\\leftrightharpoons","\\leftrightsquigarrow","\\leftroot","\\leftthreetimes","\\leq","\\leqalignno","\\leqq","\\leqslant","\\lessapprox","\\lessdot","\\lesseqgtr","\\lesseqqgtr","\\lessgtr","\\lesssim","\\let","\\lfloor","\\lg","\\lgroup","\\lhd","\\lim","\\liminf","\\limits","\\limsup","\\ll","\\LL","\\llap","\\llcorner","\\Lleftarrow","\\lll","\\llless","\\lmoustache","\\ln","\\lnapprox","\\lneq","\\lneqq","\\lnot","\\lnsim","\\log","\\logarithm","\\longleftarrow","\\Longleftarrow","\\Longleftrightarrow","\\longleftrightarrow","\\longleftrightarrows","\\longLeftrightharpoons","\\longmapsto","\\longrightarrow","\\Longrightarrow","\\longrightleftharpoons","\\longRightleftharpoons","\\looparrowleft","\\looparrowright","\\lor","\\lower","\\lozenge","\\lparen","\\lrcorner","\\Lsh","\\lt","\\ltimes","\\lvert","\\lVert","\\lvertneqq","\\maltese","\\mapsto","\\mathbb","\\mathbf","\\mathbfcal","\\mathbffrak","\\mathbfit","\\mathbfscr","\\mathbfsf","\\mathbfsfit","\\mathbfsfup","\\mathbfup","\\mathbin","\\mathcal","\\mathchoice","\\mathclap","\\mathclose","\\mathfrak","\\mathinner","\\mathit","\\mathllap","\\mathmakebox","\\mathmbox","\\mathnormal","\\mathop","\\mathopen","\\mathord","\\mathpunct","\\mathrel","\\mathring","\\mathrlap","\\mathrm","\\mathscr","\\mathsf","\\mathsfit","\\mathsfup","\\mathstrut","\\mathtip","\\mathtoolsset","\\mathtt","\\mathup","\\matrix","\\matrixdeterminant","\\matrixel","\\matrixelement","\\matrixquantity","\\max","\\mbox","\\mdet","\\measuredangle","\\mel","\\mho","\\micro","\\mid","\\middle","\\min","\\minCDarrowheight","\\minCDarrowwidth","\\mit","\\mkern","\\mmlToken","\\mod","\\models","\\MoveEqLeft","\\moveleft","\\moveright","\\mp","\\mqty","\\mskip","\\mspace","\\MTFlushSpaceAbove","\\MTFlushSpaceBelow","\\MTThinColon","\\mu","\\multimap","\\nabla","\\natural","\\naturallogarithm","\\ncong","\\ndownarrow","\\ne","\\nearrow","\\neg","\\negmedspace","\\negthickspace","\\negthinspace","\\neq","\\newcommand","\\newenvironment","\\Newextarrow","\\newline","\\newtagform","\\nexists","\\ngeq","\\ngeqq","\\ngeqslant","\\ngtr","\\ni","\\nleftarrow","\\nLeftarrow","\\nleftrightarrow","\\nLeftrightarrow","\\nleq","\\nleqq","\\nleqslant","\\nless","\\nmid","\\nobreakspace","\\nolimits","\\noLine","\\nonscript","\\nonumber","\\norm","\\normalsize","\\not","\\notag","\\notChar","\\notin","\\nparallel","\\nprec","\\npreceq","\\nrightarrow","\\nRightarrow","\\nshortmid","\\nshortparallel","\\nsim","\\nsubseteq","\\nsubseteqq","\\nsucc","\\nsucceq","\\nsupseteq","\\nsupseteqq","\\ntriangleleft","\\ntrianglelefteq","\\ntriangleright","\\ntrianglerighteq","\\nu","\\nuparrow","\\nvdash","\\nvDash","\\nVdash","\\nVDash","\\nwarrow","\\odot","\\ohm","\\oint","\\oldstyle","\\omega","\\Omega","\\omicron","\\ominus","\\op","\\operatorname","\\oplus","\\order","\\ordinarycolon","\\oslash","\\otimes","\\outerproduct","\\over","\\overbrace","\\overbracket","\\overleftarrow","\\overleftrightarrow","\\overline","\\overparen","\\overrightarrow","\\overset","\\overunderset","\\overwithdelims","\\owns","\\parallel","\\partial","\\partialderivative","\\paulimatrix","\\pb","\\pderivative","\\pdv","\\perp","\\perthousand","\\phantom","\\phi","\\Phi","\\pi","\\Pi","\\pitchfork","\\pm","\\pmat","\\pmatrix","\\pmb","\\pmod","\\pmqty","\\Pmqty","\\pod","\\poissonbracket","\\pqty","\\Pr","\\prec","\\precapprox","\\preccurlyeq","\\preceq","\\precnapprox","\\precneqq","\\precnsim","\\precsim","\\prescript","\\prime","\\principalvalue","\\Probability","\\prod","\\projlim","\\propto","\\psi","\\Psi","\\pu","\\pv","\\PV","\\qall","\\qand","\\qas","\\qassume","\\qc","\\qcc","\\qcomma","\\qelse","\\qeven","\\qfor","\\qgiven","\\qif","\\qin","\\qinteger","\\qlet","\\qodd","\\qor","\\qotherwise","\\qq","\\qqtext","\\qquad","\\qsince","\\qthen","\\qty","\\quad","\\quantity","\\QuaternaryInf","\\QuaternaryInfC","\\QuinaryInf","\\QuinaryInfC","\\qunless","\\qusing","\\raise","\\rangle","\\rank","\\rbrace","\\rbrack","\\rceil","\\Re","\\real","\\ref","\\refeq","\\renewcommand","\\renewenvironment","\\renewtagform","\\Res","\\Residue","\\restriction","\\rfloor","\\rgroup","\\rhd","\\rho","\\right","\\Rightarrow","\\rightarrow","\\rightarrowtail","\\rightharpoondown","\\rightharpoonup","\\RightLabel","\\rightleftarrows","\\rightleftharpoons","\\rightrightarrows","\\rightsquigarrow","\\rightthreetimes","\\risingdotseq","\\RL","\\rlap","\\rm","\\rmoustache","\\root","\\rootAtBottom","\\rootAtTop","\\rowcolor","\\rparen","\\Rrightarrow","\\Rsh","\\rtimes","\\rule","\\Rule","\\rvert","\\rVert","\\S","\\sbmqty","\\scr","\\scriptscriptstyle","\\scriptsize","\\scriptstyle","\\searrow","\\sec","\\secant","\\sech","\\set","\\Set","\\setminus","\\sf","\\sharp","\\shortmid","\\shortparallel","\\shortvdotswithin","\\shoveleft","\\shoveright","\\sideset","\\sigma","\\Sigma","\\sim","\\simeq","\\sin","\\sine","\\singleLine","\\sinh","\\skew","\\SkipLimits","\\small","\\smallfrown","\\smallint","\\smallmatrixquantity","\\smallsetminus","\\smallsmile","\\smash","\\smdet","\\smile","\\smqty","\\solidLine","\\Space","\\space","\\spadesuit","\\sphericalangle","\\splitdfrac","\\splitfrac","\\spmqty","\\sPmqty","\\sqcap","\\sqcup","\\sqrt","\\sqsubset","\\sqsubseteq","\\sqsupset","\\sqsupseteq","\\square","\\stackbin","\\stackrel","\\star","\\strut","\\style","\\subset","\\Subset","\\subseteq","\\subseteqq","\\subsetneq","\\subsetneqq","\\substack","\\succ","\\succapprox","\\succcurlyeq","\\succeq","\\succnapprox","\\succneqq","\\succnsim","\\succsim","\\sum","\\sup","\\supset","\\Supset","\\supseteq","\\supseteqq","\\supsetneq","\\supsetneqq","\\surd","\\svmqty","\\swarrow","\\symbb","\\symbf","\\symbfcal","\\symbffrak","\\symbfit","\\symbfscr","\\symbfsf","\\symbfsfit","\\symbfsfup","\\symbfup","\\symcal","\\symfrak","\\symit","\\symnormal","\\symrm","\\symscr","\\symsf","\\symsfit","\\symsfup","\\symtt","\\symup","\\tag","\\tan","\\tangent","\\tanh","\\tau","\\tbinom","\\TeX","\\text","\\textacutedbl","\\textasciiacute","\\textasciibreve","\\textasciicaron","\\textasciicircum","\\textasciidieresis","\\textasciimacron","\\textasciitilde","\\textasteriskcentered","\\textbackslash","\\textbaht","\\textbar","\\textbardbl","\\textbf","\\textbigcircle","\\textblank","\\textborn","\\textbraceleft","\\textbraceright","\\textbrokenbar","\\textbullet","\\textcelsius","\\textcent","\\textcentoldstyle","\\textcircledP","\\textclap","\\textcolonmonetary","\\textcolor","\\textcompwordmark","\\textcopyleft","\\textcopyright","\\textcurrency","\\textdagger","\\textdaggerdbl","\\textdegree","\\textdied","\\textdiscount","\\textdiv","\\textdivorced","\\textdollar","\\textdollaroldstyle","\\textdong","\\textdownarrow","\\texteightoldstyle","\\textellipsis","\\textemdash","\\textendash","\\textestimated","\\texteuro","\\textexclamdown","\\textfiveoldstyle","\\textflorin","\\textfouroldstyle","\\textfractionsolidus","\\textgravedbl","\\textgreater","\\textguarani","\\textinterrobang","\\textinterrobangdown","\\textit","\\textlangle","\\textlbrackdbl","\\textleftarrow","\\textless","\\textlira","\\textllap","\\textlnot","\\textlquill","\\textmarried","\\textmho","\\textminus","\\textmu","\\textmusicalnote","\\textnaira","\\textnineoldstyle","\\textnormal","\\textnumero","\\textohm","\\textonehalf","\\textoneoldstyle","\\textonequarter","\\textonesuperior","\\textopenbullet","\\textordfeminine","\\textordmasculine","\\textparagraph","\\textperiodcentered","\\textpertenthousand","\\textperthousand","\\textpeso","\\textpm","\\textquestiondown","\\textquotedblleft","\\textquotedblright","\\textquoteleft","\\textquoteright","\\textrangle","\\textrbrackdbl","\\textrecipe","\\textreferencemark","\\textregistered","\\textrightarrow","\\textrlap","\\textrm","\\textrquill","\\textsection","\\textservicemark","\\textsevenoldstyle","\\textsf","\\textsixoldstyle","\\textsterling","\\textstyle","\\textsurd","\\textthreeoldstyle","\\textthreequarters","\\textthreesuperior","\\texttildelow","\\texttimes","\\texttip","\\texttrademark","\\texttt","\\texttwooldstyle","\\texttwosuperior","\\textunderscore","\\textup","\\textuparrow","\\textvisiblespace","\\textwon","\\textyen","\\textzerooldstyle","\\tfrac","\\therefore","\\theta","\\Theta","\\thickapprox","\\thicksim","\\thinspace","\\TIC","\\tilde","\\times","\\tiny","\\Tiny","\\to","\\toggle","\\top","\\tr","\\Tr","\\trace","\\Trace","\\triangle","\\triangledown","\\triangleleft","\\trianglelefteq","\\triangleq","\\triangleright","\\trianglerighteq","\\TrinaryInf","\\TrinaryInfC","\\tripledash","\\tt","\\twoheadleftarrow","\\twoheadrightarrow","\\UIC","\\ulcorner","\\UnaryInf","\\UnaryInfC","\\underbrace","\\underbracket","\\underleftarrow","\\underleftrightarrow","\\underline","\\underparen","\\underrightarrow","\\underset","\\unicode","\\unlhd","\\unrhd","\\upalpha","\\uparrow","\\Uparrow","\\upbeta","\\upchi","\\updelta","\\Updelta","\\updownarrow","\\Updownarrow","\\upepsilon","\\upeta","\\upgamma","\\Upgamma","\\upharpoonleft","\\upharpoonright","\\upiota","\\upkappa","\\uplambda","\\Uplambda","\\uplus","\\upmu","\\upnu","\\upomega","\\Upomega","\\upomicron","\\upphi","\\Upphi","\\uppi","\\Uppi","\\uppsi","\\Uppsi","\\uprho","\\uproot","\\upsigma","\\Upsigma","\\upsilon","\\Upsilon","\\uptau","\\uptheta","\\Uptheta","\\upuparrows","\\upupsilon","\\Upupsilon","\\upvarepsilon","\\upvarphi","\\upvarpi","\\upvarrho","\\upvarsigma","\\upvartheta","\\upxi","\\Upxi","\\upzeta","\\urcorner","\\usetagform","\\va","\\var","\\varDelta","\\varepsilon","\\varGamma","\\variation","\\varinjlim","\\varkappa","\\varLambda","\\varliminf","\\varlimsup","\\varnothing","\\varOmega","\\varphi","\\varPhi","\\varpi","\\varPi","\\varprojlim","\\varpropto","\\varPsi","\\varrho","\\varsigma","\\varSigma","\\varsubsetneq","\\varsubsetneqq","\\varsupsetneq","\\varsupsetneqq","\\vartheta","\\varTheta","\\vartriangle","\\vartriangleleft","\\vartriangleright","\\varUpsilon","\\varXi","\\vb","\\vcenter","\\vdash","\\vDash","\\Vdash","\\vdot","\\vdots","\\vdotswithin","\\vec","\\vectorarrow","\\vectorbold","\\vectorunit","\\vee","\\veebar","\\verb","\\Vert","\\vert","\\vmqty","\\vnabla","\\vphantom","\\vqty","\\vu","\\Vvdash","\\wedge","\\widehat","\\widetilde","\\wp","\\wr","\\xcancel","\\xhookleftarrow","\\xhookrightarrow","\\xi","\\Xi","\\xleftarrow","\\xLeftarrow","\\xleftharpoondown","\\xleftharpoonup","\\xleftrightarrow","\\xLeftrightarrow","\\xleftrightharpoons","\\xLeftrightharpoons","\\xlongequal","\\xmapsto","\\xmat","\\xmathstrut","\\xmatrix","\\xrightarrow","\\xRightarrow","\\xrightharpoondown","\\xrightharpoonup","\\xrightleftharpoons","\\xRightleftharpoons","\\xtofrom","\\xtwoheadleftarrow","\\xtwoheadrightarrow","\\yen","\\zeromatrix","\\zeta","\\zmat"];function sc(e,t=""){return new qe(e,t)}function ac(e){return new le(e)}function lc(e,t=""){return new lr(e,t)}function Kd(e){return new je(e)}function Jd(e){return new U(e)}var cc=e=>({snippetVariables:e,tabstop_node:sc,text_node:ac,capture_node:lc,ALL_MACROS:Qs}),pc={tabstop_node:sc,text_node:ac,capture_node:lc,snippet_node:Kd,array_node:Jd,ALL_MACROS:Qs};var uc=require("@codemirror/state"),Er=require("obsidian");function $t(e){return createEl(e)}function em(){let e=null;return(n,r)=>{e==null||e.hide(),e=new Er.Notice(n,r)}}var Pr=uc.StateField.define({create:()=>em(),update:e=>e});function Oc(e,t,n,r){let i=new DocumentFragment,o=[[`Description: ${t.description}`],["Parsed trigger: ",i.createEl("code",{text:t.trigger.toString()})],t.triggerKey?["Trigger key: ",i.createEl("code",{text:t.triggerKey})]:[],["Replacement",i.createEl("code",{text:n})],[`Auto-enlarge brackets: ${r}`]],s=i.createDiv({},a=>{a.appendText("Latex Suite: "),a.createEl("br");let l=a.createEl("ul");for(let c of o){if(c.length===0)continue;let p=l.createEl("li");for(let u of c)typeof u=="string"?p.appendText(u):p.appendChild(u)}});e.field(Pr)(i,5e3),console.debug(s.textContent)}function dc(){return Er.Platform.isMacOS}var se=".theme-dark & ",$e=".theme-light & ";function mc(e,t){let n=`${e} +//# sourceURL=latex-suite:${t}`,r=new Blob([n],{type:"text/javascript"}),i=URL.createObjectURL(r),o=import(i);return URL.revokeObjectURL(i),o}function gc(e,t,n=!1){return y(this,null,function*(){let r;try{r=yield mc(e,t)}catch(i){if(console.error(i),!n)throw new Error("Invalid format. Make sure its a valid javascript file and has a default export. See https://github.com/artisticat1/obsidian-latex-suite/blob/main/DOCS.md#snippet-files");r={}}if("default"in r)return r.default;console.warn("No default export found. Please add `export default` to your snippet file. See https://github.com/artisticat1/obsidian-latex-suite/blob/main/DOCS.md#snippet-files.");try{r=yield mc("export default "+e,t)}catch(i){throw console.error(i),new Error("Invalid format (with `export default` added). Make sure its a valid javascript file and has a default export. See https://github.com/artisticat1/obsidian-latex-suite/blob/main/DOCS.md#snippet-files")}if("default"in r)return r.default;throw new Error("No default export found (with `export default` added to the source). Make sure its a valid javascript file and has a default export. See https://github.com/artisticat1/obsidian-latex-suite/blob/main/DOCS.md#snippet-files")})}function Ie(e,t){return y(this,null,function*(){let n=yield gc(e,t,!0);if(Array.isArray(n))throw new Error("Cannot parse an array as a variables object");let r={};for(let[i,o]of Object.entries(n))if(i.startsWith("${")){if(!i.endsWith("}"))throw new Error(`Invalid snippet variable name '${i}': Starts with '\${' but does not end with '}'. You need to have both or neither.`);r[i]=o}else{if(i.endsWith("}"))throw new Error(`Invalid snippet variable name '${i}': Ends with '}' but does not start with '\${'. You need to have both or neither.`);r["${"+i+"}"]=o}return r})}var tm=String.raw` +var __latex_suite_require = window.__latex_suite_require; +function require(module) { + if (!__latex_suite_require) { + __latex_suite_require = window.__latex_suite_require; + } + return __latex_suite_require(module); +} +`;function nm(e){let t=cc(e),n=require;return function(i){return i==="latex-suite"?t:n(i)}}function lt(e,t,n){return y(this,null,function*(){window.__latex_suite_require=nm(t);let r=yield gc(e+tm,n),i;try{i=im(r).flatMap(s=>{try{return om(s,t)}catch(a){let l=a;throw new Error(`${l} +Erroring snippet: +${wr(s)}`)}})}catch(o){let s=o;throw new Error(`Invalid snippet format: ${s}`)}return i=Tr(i),i})}var rm=hn({trigger:Qe(Ye([H(),bt(RegExp)])),triggerAfter:Qe(Ye([H(),bt(RegExp)])),replacement:Ye([H(),Vt(Re(bt(ve)),Ri(e=>new U(e))),_i(e=>typeof e=="function")]),options:H(),flags:Qe(H(),""),priority:Qe(fn(),0),description:Qe(H(),"no description provided"),triggerKey:Qe(H(),""),language:Qe(H()),excludedMacros:Di,excludedEnvironments:Qe(Re(H()),[]),includedMacros:Di});function im(e){if(!Array.isArray(e))throw new Error("Expected snippets to be an array");return e.flat().map(t=>{try{return rt(rm,t)}catch(n){throw new Error(`Value does not resemble snippet. +Erroring snippet: +${wr(t)}`)}})}function om(e,t){var p;let{replacement:n,priority:r,description:i,excludedEnvironments:o,excludedMacros:s,includedMacros:a}=e,l=ar.fromSource(e.options,e.language),c=sm(e.triggerKey);if(e.trigger===void 0&&e.triggerKey.length===0)throw new Error("Either trigger has to be defined or triggerKey must be non-zero length");if((p=e.trigger)!=null||(e.trigger=""),l.regex||e.trigger instanceof RegExp){let u=typeof e.replacement=="string"?new U([new je(e.replacement)]):e.replacement,O,d,f=e.flags,m=f;e.trigger instanceof RegExp?(O=e.trigger.source,f=`${e.trigger.flags}${f}`):O=e.trigger,e.triggerAfter instanceof RegExp?(d=e.triggerAfter.source,m=`${e.triggerAfter.flags}${m}`):d=e.triggerAfter,f=fc(f),m=fc(m),O=Cr(O,t),d=d&&Cr(d,t);let g=[...hc(O),...s];O=`(?:${O})$`;let b=typeof e.trigger=="string"?RegExp:e.trigger.constructor,v=typeof e.triggerAfter=="string"||e.triggerAfter===void 0?RegExp:e.triggerAfter.constructor,$=new b(O,f);d=d?`^(?:${d})`:void 0;let S=d?new v(d,m):void 0;l.regex=!0;let E={trigger:$,replacement:u,options:l,priority:r,description:i,excludedMacros:g,triggerKey:c,triggerAfter:S,excludedEnvironments:o,includedMacros:a},T=[new Cn(E)];if(c&&l.automatic){let P=l.copy();P.automatic=!1;let Z=j(A({},E),{trigger:new RegExp(""),options:P});T.push(new Cn(Z))}return T}else{let u=Cr(e.trigger,t),O=e.triggerAfter;if(O!==void 0&&typeof O=="string")O=Cr(O,t);else if(O instanceof RegExp)throw new Error("triggerAfter cannot be a RegExp for non-regex snippets");let d=[...hc(u),...s];if(typeof n=="string"&&n.includes(dn)&&u.length<=1&&(l.visual=!0),l.visual){if(u.length>1)throw new Error("trigger should be a single character for visual snippets");if(u.length===1&&c.length>0)throw new Error("trigger and triggerKey can't both be defined for visual snippets");if(u.length===0&&c.length===0)throw new Error("Either trigger or triggerKey have to be defined for visual snippets");let f=typeof e.replacement=="string"?new U([new cr(e.replacement)]):e.replacement;l.automatic=!1;let m={trigger:u,replacement:f,options:l,priority:r,description:i,excludedEnvironments:o,excludedMacros:d,includedMacros:a,triggerKey:c,triggerAfter:O},g=[];return u?g.push(new Pn(j(A({},m),{triggerKey:u,trigger:""}))):g.push(new Pn(m)),g}else{let f=typeof e.replacement=="string"?new U([new Dt(e.replacement)]):e.replacement,m={trigger:u,replacement:f,options:l,priority:r,description:i,excludedEnvironments:o,excludedMacros:d,includedMacros:a,triggerKey:c,triggerAfter:O},g=[new qn(m)];if(c&&l.automatic){let b=l.copy();b.automatic=!1;let v=j(A({},m),{trigger:"",options:b});g.push(new qn(v))}return g}}}function fc(e){let t=["i","m","s","u","v"];return Array.from(new Set(e.split(""))).filter(n=>t.includes(n)).join("")}function Cr(e,t){for(let[n,r]of Object.entries(t))e=e.replaceAll(n,r);return e}function hc(e){let t=[],n=oc[e];return n&&t.push(...n),t}function sm(e){return e.split(/ (?!$)/).map(t=>am(t)).join(" ")}function am(e){let t=e.split(/-(?!$)/),n=t[t.length-1];n==="Space"&&(n=" ");let r,i,o,s;for(let a=0;a{let n=e.keys(),r=t.keys(),i=[];for(let o of n)t.has(o)||i.push(o);for(let o of r)e.has(o)||i.push(o);return new Set(i)},cm=(e,t)=>{let n=e.keys(),r=[];for(let i of n)t.has(i)&&r.push(i);return new Set(r)},yc,bc;if(Set.prototype.difference){let e=Set.prototype.difference;yc=(t,n)=>e.call(t,n)}if(Set.prototype.intersection){let e=Set.prototype.intersection;bc=(t,n)=>e.call(t,n)}var $s=yc||lm,qr=bc||cm;function pm(e,t){let n=e.parent,r=0;for(;n&&!n.isRoot()&&r<100;){if(n.path===t.path)return!0;n=n.parent,r++}return!1}function vc(e,t,n){let r=e.app.vault.getAbstractFileByPath(t);return r instanceof de.TFolder&&pm(n,r)}var ws=(0,de.debounce)(e=>y(void 0,null,function*(){(e.settings.loadSnippetVariablesFromFile||e.settings.loadSnippetsFromFile)&&(yield e.processSettings(!1,!0))}),3e3,!0);function Sc(e){return y(this,null,function*(){let t=e.settings.snippetsFileLocation,n=e.settings.snippetVariablesFileLocation;if(e.settings.loadSnippetVariablesFromFile&&e.settings.loadSnippetsFromFile){if(t===n)return kt(e,t);let o=l=>l.startsWith("/")||l.startsWith("\\");if(t.startsWith(n)&&o(n.slice(t.length)))return kt(e,t);if(n.startsWith(t)&&o(t.slice(n.length)))return kt(e,n);let s=yield kt(e,t),a=yield kt(e,n);return()=>{s(),a()}}let r=e.settings.loadSnippetVariablesFromFile?yield kt(e,e.settings.snippetVariablesFileLocation):null,i=e.settings.loadSnippetsFromFile?yield kt(e,e.settings.snippetsFileLocation):null;return()=>{r==null||r(),i==null||i()}})}function Qc(e){return y(this,null,function*(){if(!de.Platform.isDesktop)return null;let t=require("fs"),n=require("path");if(e.slice(0,2)==="~/"){let i=require("os").homedir();e=n.join(i,e.slice(2))}return n.isAbsolute(e)?{fs:t,node_path:n,path:e}:null})}function kt(e,t){return y(this,null,function*(){var s,a,l;let n=e.app.vault;if(n.getAbstractFileByPath(t)){let c=[n.on("modify",p=>ks(e,p)),n.on("create",p=>ks(e,p)),n.on("delete",p=>ks(e,p))];return()=>c.forEach(p=>n.offref(p))}let i=yield Qc(t);if(i!==null){let c=i.fs;t=i.path;let p=c.watch(t,{recursive:!0},(u,O)=>{u!=="rename"&&ws(e)});return()=>p.close()}if(yield n.adapter.stat(t)){let c=n.adapter,p=(s=c.getFullPath)==null?void 0:s.call(c,t);if(!p)return()=>{};let u=(l=(a=c.fs)==null?void 0:a.watch)==null?void 0:l.call(a,p,{recursive:!0},(O,d)=>{O!=="rename"&&ws(e)});return()=>u==null?void 0:u.close()}return()=>{}})}var ks=(e,t)=>y(void 0,null,function*(){t instanceof de.TFile&&(e.settings.loadSnippetVariablesFromFile&&t.path===e.settings.snippetVariablesFileLocation||e.settings.loadSnippetsFromFile&&t.path===e.settings.snippetsFileLocation||vc(e,e.settings.snippetVariablesFileLocation,t)||vc(e,e.settings.snippetsFileLocation,t))&&ws(e)});function*$c(e){if(e instanceof de.TFile)yield e;else if(e instanceof de.TFolder)for(let t of e.children)yield*sr($c(t))}function Es(e,t){return y(this,null,function*(){let n=yield t.stat(e);if((n==null?void 0:n.type)==="file")return[{name:e.split("/").pop()||e,path:e,read:()=>t.read(e)}];if((n==null?void 0:n.type)==="folder"){let i=(yield t.list(e)).files.map(o=>y(this,null,function*(){return yield Es(o,t)}));return(yield Promise.all(i)).flat()}return[]})}function um(e,t){return y(this,null,function*(){return(yield e.adapter.exists(t))===null?null:yield Es(t,e.adapter)})}function Om(e){return y(this,null,function*(){if(!de.Platform.isDesktop)return null;let t=yield Qc(e);if(t===null)return null;let n=t.fs.promises,r=t.node_path;if(e=t.path,(yield n.stat(e).catch(()=>null))===null)return null;function o(c){return y(this,null,function*(){let p=yield n.stat(c).catch(()=>null);return p===null?null:p.isFile()?{type:"file"}:p.isDirectory()?{type:"folder"}:null})}return yield Es(e,{stat:o,list:c=>y(this,null,function*(){return{files:(yield n.readdir(c)).map(u=>r.join(c,u))}}),read:c=>n.readFile(c,"utf-8")})})}function xc(e,t){return y(this,null,function*(){let n=e.getAbstractFileByPath(t);if(n){let o=$c(n);return Array.from(o).map(s=>({path:s.path,name:s.name,read:()=>e.cachedRead(s)}))}let r=yield Om(t);if(r)return r;let i=yield um(e,t);return i||[]})}function kc(e){return y(this,null,function*(){let t=e.settings.loadSnippetVariablesFromFile?yield xc(e.app.vault,e.settings.snippetVariablesFileLocation):[],n=e.settings.loadSnippetsFromFile?yield xc(e.app.vault,e.settings.snippetsFileLocation):[],r=new Set(t.map(u=>u.path)),i=new Set(n.map(u=>u.path)),o=$s(r,i),s=new Set(t.filter(u=>o.has(u.path))),a=$s(i,r),l=new Set(n.filter(u=>a.has(u.path))),c=qr(r,i),p=new Set(t.filter(u=>c.has(u.path)));return{definitelyVariableFiles:s,definitelySnippetFiles:l,snippetOrVariableFiles:p}})}var Ts=class{constructor(){this.notices=[]}addNotice(t){if(this.notices.push(t),this.notices.length>4){let n=this.notices.shift();n==null||n.hide()}}},wc=new Ts;function Tc(e){return y(this,null,function*(){let t={};for(let n of e.definitelyVariableFiles){let r=yield n.read();try{Object.assign(t,yield Ie(r,n.path))}catch(i){let o=i,s=new de.Notice(`Failed to parse variable file ${n.name}: ${o}`);wc.addNotice(s),console.error(`Failed to parse variable file ${n.name}: ${o}`),e.definitelyVariableFiles.delete(n)}}return t})}function Ec(e){return y(this,null,function*(){let t={};for(let n of e.snippetOrVariableFiles){let r=yield n.read();try{Object.assign(t,yield Ie(r,n.path)),e.definitelyVariableFiles.add(n)}catch(i){e.definitelySnippetFiles.add(n)}e.snippetOrVariableFiles.delete(n)}return t})}function Pc(e,t){return y(this,null,function*(){let n=[];for(let r of e.definitelySnippetFiles){let i=yield r.read();try{n.push(...yield lt(i,t,r.path))}catch(o){let s=o,a=new de.Notice(`Failed to parse snippet file ${r.name}: ${s}`);wc.addNotice(a),console.error(`Failed to parse snippet file ${r.name}: ${s}`),e.definitelySnippetFiles.delete(r)}}return Tr(n)})}var Oi=require("@codemirror/state"),ia=require("@codemirror/view"),Q=require("obsidian");var Kt=require("obsidian");var B="top",J="bottom",K="right",z="left",Rr="auto",ct=[B,J,K,z],Ke="start",wt="end",Cc="clippingParents",Xr="viewport",Ut="popper",qc="reference",Ps=ct.reduce(function(e,t){return e.concat([t+"-"+Ke,t+"-"+wt])},[]),_r=[].concat(ct,[Rr]).reduce(function(e,t){return e.concat([t,t+"-"+Ke,t+"-"+wt])},[]),dm="beforeRead",mm="read",fm="afterRead",hm="beforeMain",gm="main",ym="afterMain",bm="beforeWrite",vm="write",xm="afterWrite",Rc=[dm,mm,fm,hm,gm,ym,bm,vm,xm];function ne(e){return e?(e.nodeName||"").toLowerCase():null}function F(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Ge(e){var t=F(e).Element;return e instanceof t||e instanceof Element}function ee(e){var t=F(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function zt(e){if(typeof ShadowRoot=="undefined")return!1;var t=F(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function Sm(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var r=t.styles[n]||{},i=t.attributes[n]||{},o=t.elements[n];!ee(o)||!ne(o)||(Object.assign(o.style,r),Object.keys(i).forEach(function(s){var a=i[s];a===!1?o.removeAttribute(s):o.setAttribute(s,a===!0?"":a)}))})}function Qm(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(r){var i=t.elements[r],o=t.attributes[r]||{},s=Object.keys(t.styles.hasOwnProperty(r)?t.styles[r]:n[r]),a=s.reduce(function(l,c){return l[c]="",l},{});!ee(i)||!ne(i)||(Object.assign(i.style,a),Object.keys(o).forEach(function(l){i.removeAttribute(l)}))})}}var Xc={name:"applyStyles",enabled:!0,phase:"write",fn:Sm,effect:Qm,requires:["computeStyles"]};function re(e){return e.split("-")[0]}var Xe=Math.max,Tt=Math.min,Je=Math.round;function Ee(e,t){t===void 0&&(t=!1);var n=e.getBoundingClientRect(),r=1,i=1;if(ee(e)&&t){var o=e.offsetHeight,s=e.offsetWidth;s>0&&(r=Je(n.width)/s||1),o>0&&(i=Je(n.height)/o||1)}return{width:n.width/r,height:n.height/i,top:n.top/i,right:n.right/r,bottom:n.bottom/i,left:n.left/r,x:n.left/r,y:n.top/i}}function Et(e){var t=Ee(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function Rn(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&zt(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function Oe(e){return F(e).getComputedStyle(e)}function Cs(e){return["table","td","th"].indexOf(ne(e))>=0}function ae(e){return((Ge(e)?e.ownerDocument:e.document)||window.document).documentElement}function et(e){return ne(e)==="html"?e:e.assignedSlot||e.parentNode||(zt(e)?e.host:null)||ae(e)}function _c(e){return!ee(e)||Oe(e).position==="fixed"?null:e.offsetParent}function $m(e){var t=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,n=navigator.userAgent.indexOf("Trident")!==-1;if(n&&ee(e)){var r=Oe(e);if(r.position==="fixed")return null}var i=et(e);for(zt(i)&&(i=i.host);ee(i)&&["html","body"].indexOf(ne(i))<0;){var o=Oe(i);if(o.transform!=="none"||o.perspective!=="none"||o.contain==="paint"||["transform","perspective"].indexOf(o.willChange)!==-1||t&&o.willChange==="filter"||t&&o.filter&&o.filter!=="none")return i;i=i.parentNode}return null}function _e(e){for(var t=F(e),n=_c(e);n&&Cs(n)&&Oe(n).position==="static";)n=_c(n);return n&&(ne(n)==="html"||ne(n)==="body"&&Oe(n).position==="static")?t:n||$m(e)||t}function Pt(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Ct(e,t,n){return Xe(e,Tt(t,n))}function Ac(e,t,n){var r=Ct(e,t,n);return r>n?n:r}function Xn(){return{top:0,right:0,bottom:0,left:0}}function _n(e){return Object.assign({},Xn(),e)}function An(e,t){return t.reduce(function(n,r){return n[r]=e,n},{})}var km=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,_n(typeof t!="number"?t:An(t,ct))};function wm(e){var t,n=e.state,r=e.name,i=e.options,o=n.elements.arrow,s=n.modifiersData.popperOffsets,a=re(n.placement),l=Pt(a),c=[z,K].indexOf(a)>=0,p=c?"height":"width";if(!(!o||!s)){var u=km(i.padding,n),O=Et(o),d=l==="y"?B:z,f=l==="y"?J:K,m=n.rects.reference[p]+n.rects.reference[l]-s[l]-n.rects.popper[p],g=s[l]-n.rects.reference[l],b=_e(o),v=b?l==="y"?b.clientHeight||0:b.clientWidth||0:0,$=m/2-g/2,S=u[d],E=v-O[p]-u[f],T=v/2-O[p]/2+$,P=Ct(S,T,E),Z=l;n.modifiersData[r]=(t={},t[Z]=P,t.centerOffset=P-T,t)}}function Tm(e){var t=e.state,n=e.options,r=n.element,i=r===void 0?"[data-popper-arrow]":r;i!=null&&(typeof i=="string"&&(i=t.elements.popper.querySelector(i),!i)||Rn(t.elements.popper,i)&&(t.elements.arrow=i))}var Wc={name:"arrow",enabled:!0,phase:"main",fn:wm,effect:Tm,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Pe(e){return e.split("-")[1]}var Em={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Pm(e){var t=e.x,n=e.y,r=window,i=r.devicePixelRatio||1;return{x:Je(t*i)/i||0,y:Je(n*i)/i||0}}function Mc(e){var t,n=e.popper,r=e.popperRect,i=e.placement,o=e.variation,s=e.offsets,a=e.position,l=e.gpuAcceleration,c=e.adaptive,p=e.roundOffsets,u=e.isFixed,O=s.x,d=O===void 0?0:O,f=s.y,m=f===void 0?0:f,g=typeof p=="function"?p({x:d,y:m}):{x:d,y:m};d=g.x,m=g.y;var b=s.hasOwnProperty("x"),v=s.hasOwnProperty("y"),$=z,S=B,E=window;if(c){var T=_e(n),P="clientHeight",Z="clientWidth";if(T===F(n)&&(T=ae(n),Oe(T).position!=="static"&&a==="absolute"&&(P="scrollHeight",Z="scrollWidth")),T=T,i===B||(i===z||i===K)&&o===wt){S=J;var V=u&&T===E&&E.visualViewport?E.visualViewport.height:T[P];m-=V-r.height,m*=l?1:-1}if(i===z||(i===B||i===J)&&o===wt){$=K;var ie=u&&T===E&&E.visualViewport?E.visualViewport.width:T[Z];d-=ie-r.width,d*=l?1:-1}}var D=Object.assign({position:a},c&&Em),ge=p===!0?Pm({x:d,y:m}):{x:d,y:m};if(d=ge.x,m=ge.y,l){var ye;return Object.assign({},D,(ye={},ye[S]=v?"0":"",ye[$]=b?"0":"",ye.transform=(E.devicePixelRatio||1)<=1?"translate("+d+"px, "+m+"px)":"translate3d("+d+"px, "+m+"px, 0)",ye))}return Object.assign({},D,(t={},t[S]=v?m+"px":"",t[$]=b?d+"px":"",t.transform="",t))}function Cm(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=r===void 0?!0:r,o=n.adaptive,s=o===void 0?!0:o,a=n.roundOffsets,l=a===void 0?!0:a;if(0)var c;var p={placement:re(t.placement),variation:Pe(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Mc(Object.assign({},p,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:s,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Mc(Object.assign({},p,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var jc={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Cm,data:{}};var Ar={passive:!0};function qm(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,o=i===void 0?!0:i,s=r.resize,a=s===void 0?!0:s,l=F(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&c.forEach(function(p){p.addEventListener("scroll",n.update,Ar)}),a&&l.addEventListener("resize",n.update,Ar),function(){o&&c.forEach(function(p){p.removeEventListener("scroll",n.update,Ar)}),a&&l.removeEventListener("resize",n.update,Ar)}}var Zc={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:qm,data:{}};var Rm={left:"right",right:"left",bottom:"top",top:"bottom"};function Ft(e){return e.replace(/left|right|bottom|top/g,function(t){return Rm[t]})}var Xm={start:"end",end:"start"};function Wr(e){return e.replace(/start|end/g,function(t){return Xm[t]})}function qt(e){var t=F(e),n=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:n,scrollTop:r}}function Rt(e){return Ee(ae(e)).left+qt(e).scrollLeft}function qs(e){var t=F(e),n=ae(e),r=t.visualViewport,i=n.clientWidth,o=n.clientHeight,s=0,a=0;return r&&(i=r.width,o=r.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(s=r.offsetLeft,a=r.offsetTop)),{width:i,height:o,x:s+Rt(e),y:a}}function Rs(e){var t,n=ae(e),r=qt(e),i=(t=e.ownerDocument)==null?void 0:t.body,o=Xe(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),s=Xe(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),a=-r.scrollLeft+Rt(e),l=-r.scrollTop;return Oe(i||n).direction==="rtl"&&(a+=Xe(n.clientWidth,i?i.clientWidth:0)-o),{width:o,height:s,x:a,y:l}}function Xt(e){var t=Oe(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function Mr(e){return["html","body","#document"].indexOf(ne(e))>=0?e.ownerDocument.body:ee(e)&&Xt(e)?e:Mr(et(e))}function pt(e,t){var n;t===void 0&&(t=[]);var r=Mr(e),i=r===((n=e.ownerDocument)==null?void 0:n.body),o=F(r),s=i?[o].concat(o.visualViewport||[],Xt(r)?r:[]):r,a=t.concat(s);return i?a:a.concat(pt(et(s)))}function Yt(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function _m(e){var t=Ee(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function Lc(e,t){return t===Xr?Yt(qs(e)):Ge(t)?_m(t):Yt(Rs(ae(e)))}function Am(e){var t=pt(et(e)),n=["absolute","fixed"].indexOf(Oe(e).position)>=0,r=n&&ee(e)?_e(e):e;return Ge(r)?t.filter(function(i){return Ge(i)&&Rn(i,r)&&ne(i)!=="body"}):[]}function Xs(e,t,n){var r=t==="clippingParents"?Am(e):[].concat(t),i=[].concat(r,[n]),o=i[0],s=i.reduce(function(a,l){var c=Lc(e,l);return a.top=Xe(c.top,a.top),a.right=Tt(c.right,a.right),a.bottom=Tt(c.bottom,a.bottom),a.left=Xe(c.left,a.left),a},Lc(e,o));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function Wn(e){var t=e.reference,n=e.element,r=e.placement,i=r?re(r):null,o=r?Pe(r):null,s=t.x+t.width/2-n.width/2,a=t.y+t.height/2-n.height/2,l;switch(i){case B:l={x:s,y:t.y-n.height};break;case J:l={x:s,y:t.y+t.height};break;case K:l={x:t.x+t.width,y:a};break;case z:l={x:t.x-n.width,y:a};break;default:l={x:t.x,y:t.y}}var c=i?Pt(i):null;if(c!=null){var p=c==="y"?"height":"width";switch(o){case Ke:l[c]=l[c]-(t[p]/2-n[p]/2);break;case wt:l[c]=l[c]+(t[p]/2-n[p]/2);break;default:}}return l}function Ae(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=r===void 0?e.placement:r,o=n.boundary,s=o===void 0?Cc:o,a=n.rootBoundary,l=a===void 0?Xr:a,c=n.elementContext,p=c===void 0?Ut:c,u=n.altBoundary,O=u===void 0?!1:u,d=n.padding,f=d===void 0?0:d,m=_n(typeof f!="number"?f:An(f,ct)),g=p===Ut?qc:Ut,b=e.rects.popper,v=e.elements[O?g:p],$=Xs(Ge(v)?v:v.contextElement||ae(e.elements.popper),s,l),S=Ee(e.elements.reference),E=Wn({reference:S,element:b,strategy:"absolute",placement:i}),T=Yt(Object.assign({},b,E)),P=p===Ut?T:S,Z={top:$.top-P.top+m.top,bottom:P.bottom-$.bottom+m.bottom,left:$.left-P.left+m.left,right:P.right-$.right+m.right},V=e.modifiersData.offset;if(p===Ut&&V){var ie=V[i];Object.keys(Z).forEach(function(D){var ge=[K,J].indexOf(D)>=0?1:-1,ye=[B,J].indexOf(D)>=0?"y":"x";Z[D]+=ie[ye]*ge})}return Z}function _s(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=n.boundary,o=n.rootBoundary,s=n.padding,a=n.flipVariations,l=n.allowedAutoPlacements,c=l===void 0?_r:l,p=Pe(r),u=p?a?Ps:Ps.filter(function(f){return Pe(f)===p}):ct,O=u.filter(function(f){return c.indexOf(f)>=0});O.length===0&&(O=u);var d=O.reduce(function(f,m){return f[m]=Ae(e,{placement:m,boundary:i,rootBoundary:o,padding:s})[re(m)],f},{});return Object.keys(d).sort(function(f,m){return d[f]-d[m]})}function Wm(e){if(re(e)===Rr)return[];var t=Ft(e);return[Wr(e),t,Wr(t)]}function Mm(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,o=i===void 0?!0:i,s=n.altAxis,a=s===void 0?!0:s,l=n.fallbackPlacements,c=n.padding,p=n.boundary,u=n.rootBoundary,O=n.altBoundary,d=n.flipVariations,f=d===void 0?!0:d,m=n.allowedAutoPlacements,g=t.options.placement,b=re(g),v=b===g,$=l||(v||!f?[Ft(g)]:Wm(g)),S=[g].concat($).reduce(function(Zt,nt){return Zt.concat(re(nt)===Rr?_s(t,{placement:nt,boundary:p,rootBoundary:u,padding:c,flipVariations:f,allowedAutoPlacements:m}):nt)},[]),E=t.rects.reference,T=t.rects.popper,P=new Map,Z=!0,V=S[0],ie=0;ie=0,pn=cn?"width":"height",be=Ae(t,{placement:D,boundary:p,rootBoundary:u,altBoundary:O,padding:c}),Ce=cn?ye?K:z:ye?J:B;E[pn]>T[pn]&&(Ce=Ft(Ce));var er=Ft(Ce),ht=[];if(o&&ht.push(be[ge]<=0),a&&ht.push(be[Ce]<=0,be[er]<=0),ht.every(function(Zt){return Zt})){V=D,Z=!1;break}P.set(D,ht)}if(Z)for(var tr=f?3:1,xi=function(nt){var On=S.find(function(rr){var gt=P.get(rr);if(gt)return gt.slice(0,nt).every(function(Si){return Si})});if(On)return V=On,"break"},un=tr;un>0;un--){var nr=xi(un);if(nr==="break")break}t.placement!==V&&(t.modifiersData[r]._skip=!0,t.placement=V,t.reset=!0)}}var Dc={name:"flip",enabled:!0,phase:"main",fn:Mm,requiresIfExists:["offset"],data:{_skip:!1}};function Vc(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Ic(e){return[B,K,J,z].some(function(t){return e[t]>=0})}function jm(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,o=t.modifiersData.preventOverflow,s=Ae(t,{elementContext:"reference"}),a=Ae(t,{altBoundary:!0}),l=Vc(s,r),c=Vc(a,i,o),p=Ic(l),u=Ic(c);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":u})}var Gc={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:jm};function Zm(e,t,n){var r=re(e),i=[z,B].indexOf(r)>=0?-1:1,o=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,s=o[0],a=o[1];return s=s||0,a=(a||0)*i,[z,K].indexOf(r)>=0?{x:a,y:s}:{x:s,y:a}}function Lm(e){var t=e.state,n=e.options,r=e.name,i=n.offset,o=i===void 0?[0,0]:i,s=_r.reduce(function(p,u){return p[u]=Zm(u,t.rects,o),p},{}),a=s[t.placement],l=a.x,c=a.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=s}var Hc={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:Lm};function Dm(e){var t=e.state,n=e.name;t.modifiersData[n]=Wn({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var Bc={name:"popperOffsets",enabled:!0,phase:"read",fn:Dm,data:{}};function As(e){return e==="x"?"y":"x"}function Vm(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,o=i===void 0?!0:i,s=n.altAxis,a=s===void 0?!1:s,l=n.boundary,c=n.rootBoundary,p=n.altBoundary,u=n.padding,O=n.tether,d=O===void 0?!0:O,f=n.tetherOffset,m=f===void 0?0:f,g=Ae(t,{boundary:l,rootBoundary:c,padding:u,altBoundary:p}),b=re(t.placement),v=Pe(t.placement),$=!v,S=Pt(b),E=As(S),T=t.modifiersData.popperOffsets,P=t.rects.reference,Z=t.rects.popper,V=typeof m=="function"?m(Object.assign({},t.rects,{placement:t.placement})):m,ie=typeof V=="number"?{mainAxis:V,altAxis:V}:Object.assign({mainAxis:0,altAxis:0},V),D=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,ge={x:0,y:0};if(T){if(o){var ye,cn=S==="y"?B:z,pn=S==="y"?J:K,be=S==="y"?"height":"width",Ce=T[S],er=Ce+g[cn],ht=Ce-g[pn],tr=d?-Z[be]/2:0,xi=v===Ke?P[be]:Z[be],un=v===Ke?-Z[be]:-P[be],nr=t.elements.arrow,Zt=d&&nr?Et(nr):{width:0,height:0},nt=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:Xn(),On=nt[cn],rr=nt[pn],gt=Ct(0,P[be],Zt[be]),Si=$?P[be]/2-tr-gt-On-ie.mainAxis:xi-gt-On-ie.mainAxis,bu=$?-P[be]/2+tr+gt+rr+ie.mainAxis:un+gt+rr+ie.mainAxis,Qi=t.elements.arrow&&_e(t.elements.arrow),vu=Qi?S==="y"?Qi.clientTop||0:Qi.clientLeft||0:0,ga=(ye=D==null?void 0:D[S])!=null?ye:0,xu=Ce+Si-ga-vu,Su=Ce+bu-ga,ya=Ct(d?Tt(er,xu):er,Ce,d?Xe(ht,Su):ht);T[S]=ya,ge[S]=ya-Ce}if(a){var ba,Qu=S==="x"?B:z,$u=S==="x"?J:K,yt=T[E],ir=E==="y"?"height":"width",va=yt+g[Qu],xa=yt-g[$u],$i=[B,z].indexOf(b)!==-1,Sa=(ba=D==null?void 0:D[E])!=null?ba:0,Qa=$i?va:yt-P[ir]-Z[ir]-Sa+ie.altAxis,$a=$i?yt+P[ir]+Z[ir]-Sa-ie.altAxis:xa,ka=d&&$i?Ac(Qa,yt,$a):Ct(d?Qa:va,yt,d?$a:xa);T[E]=ka,ge[E]=ka-yt}t.modifiersData[r]=ge}}var Nc={name:"preventOverflow",enabled:!0,phase:"main",fn:Vm,requiresIfExists:["offset"]};function Ws(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function Ms(e){return e===F(e)||!ee(e)?qt(e):Ws(e)}function Im(e){var t=e.getBoundingClientRect(),n=Je(t.width)/e.offsetWidth||1,r=Je(t.height)/e.offsetHeight||1;return n!==1||r!==1}function js(e,t,n){n===void 0&&(n=!1);var r=ee(t),i=ee(t)&&Im(t),o=ae(t),s=Ee(e,i),a={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(r||!r&&!n)&&((ne(t)!=="body"||Xt(o))&&(a=Ms(t)),ee(t)?(l=Ee(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):o&&(l.x=Rt(o))),{x:s.left+a.scrollLeft-l.x,y:s.top+a.scrollTop-l.y,width:s.width,height:s.height}}function Gm(e){var t=new Map,n=new Set,r=[];e.forEach(function(o){t.set(o.name,o)});function i(o){n.add(o.name);var s=[].concat(o.requires||[],o.requiresIfExists||[]);s.forEach(function(a){if(!n.has(a)){var l=t.get(a);l&&i(l)}}),r.push(o)}return e.forEach(function(o){n.has(o.name)||i(o)}),r}function Zs(e){var t=Gm(e);return Rc.reduce(function(n,r){return n.concat(t.filter(function(i){return i.phase===r}))},[])}function Ls(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function Ds(e){var t=e.reduce(function(n,r){var i=n[r.name];return n[r.name]=i?Object.assign({},i,r,{options:Object.assign({},i.options,r.options),data:Object.assign({},i.data,r.data)}):r,n},{});return Object.keys(t).map(function(n){return t[n]})}var Uc={placement:"bottom",modifiers:[],strategy:"absolute"};function zc(){for(var e=arguments.length,t=new Array(e),n=0;n(e%t+t)%t,Is=class{constructor(t,n,r){this.owner=t,this.containerEl=n,n.on("click",".suggestion-item",(i,o)=>this.onSuggestionClick(i,o)),n.on("mousemove",".suggestion-item",(i,o)=>this.onSuggestionMouseover(i,o)),r.register([],"ArrowUp",i=>{if(!i.isComposing)return this.setSelectedItem(this.selectedItem-1,!0),!1}),r.register([],"ArrowDown",i=>{if(!i.isComposing)return this.setSelectedItem(this.selectedItem+1,!0),!1}),r.register([],"Enter",i=>{if(!i.isComposing)return this.useSelectedItem(i),!1})}onSuggestionClick(t,n){t.preventDefault();let r=this.suggestions.indexOf(n);this.setSelectedItem(r,!1),this.useSelectedItem(t)}onSuggestionMouseover(t,n){let r=this.suggestions.indexOf(n);this.setSelectedItem(r,!1)}setSuggestions(t){this.containerEl.empty();let n=[];t.forEach(r=>{let i=this.containerEl.createDiv("suggestion-item");this.owner.renderSuggestion(r,i),n.push(i)}),this.values=t,this.suggestions=n,this.setSelectedItem(0,!1)}useSelectedItem(t){let n=this.values[this.selectedItem];n&&this.owner.selectSuggestion(n,t)}setSelectedItem(t,n){let r=Bm(t,this.suggestions.length),i=this.suggestions[this.selectedItem],o=this.suggestions[r];i==null||i.removeClass("is-selected"),o==null||o.addClass("is-selected"),this.selectedItem=r,n&&(o==null||o.scrollIntoView(!1))}},jr=class{constructor(t,n){this.app=t,this.inputEl=n,this.scope=new Yc.Scope,this.suggestEl=createDiv("suggestion-container");let r=this.suggestEl.createDiv("suggestion");this.suggest=new Is(this,r,this.scope),this.scope.register([],"Escape",()=>this.close()),this.inputEl.addEventListener("input",()=>this.onInputChanged()),this.inputEl.addEventListener("focus",()=>this.onInputChanged()),this.inputEl.addEventListener("blur",()=>this.close()),this.suggestEl.on("mousedown",".suggestion-container",i=>{i.preventDefault()})}onInputChanged(){let t=this.inputEl.value,n=this.getSuggestions(t);n.length>0&&(this.suggest.setSuggestions(n),this.open(this.app.dom.appContainerEl,this.inputEl))}open(t,n){this.app.keymap.pushScope(this.scope),t.appendChild(this.suggestEl),this.popper=Vs(n,this.suggestEl,{placement:"bottom-start",modifiers:[{name:"sameWidth",enabled:!0,fn:({state:r,instance:i})=>{let o=`${r.rects.reference.width}px`;r.styles.popper.width!==o&&(r.styles.popper.width=o,i.update())},phase:"beforeWrite",requires:["computeStyles"]}]})}close(){this.app.keymap.popScope(this.scope),this.suggest.setSuggestions([]),this.popper.destroy(),this.suggestEl.detach()}};function Nm(){function e(n,r){let i=[],o=r.toLowerCase();return Kt.Vault.recurseChildren(n.vault.getRoot(),s=>{s.path.toLowerCase().contains(o)&&i.push(s)}),i}function t(n,r){r.setText(n.path)}return(0,Kt.requireApiVersion)("1.4.10")?class extends Kt.AbstractInputSuggest{getSuggestions(r){return e(this.app,r)}renderSuggestion(r,i){return t(r,i)}}:class extends jr{getSuggestions(r){return e(this.app,r)}renderSuggestion(r,i){return t(r,i)}selectSuggestion(r){this.inputEl.value=r.path,this.inputEl.trigger("input"),this.close()}}}var Mn=Nm();var me=require("@codemirror/view"),mp=require("@codemirror/state");var He=require("@lezer/lr"),k=require("@lezer/highlight"),Um=1,Kc=281,Jc=2,zm=3,Zr=282,Fm=4,Ym=283,ep=284,Km=286,Jm=287,ef=5,tf=6,nf=1,rf=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],np=125,of=123,sf=59,tp=47,af=42,lf=43,cf=45,pf=36,uf=96,Of=92,df=new He.ContextTracker({start:!1,shift(e,t){return t==ef||t==tf||t==Km?e:t==Jm},strict:!1}),mf=new He.ExternalTokenizer((e,t)=>{let{next:n}=e;(n==np||n==-1||t.context)&&t.canShift(ep)&&e.acceptToken(ep)},{contextual:!0,fallback:!0}),ff=new He.ExternalTokenizer((e,t)=>{let{next:n}=e,r;rf.indexOf(n)>-1||n==tp&&((r=e.peek(1))==tp||r==af)||n!=np&&n!=sf&&n!=-1&&!t.context&&t.canShift(Kc)&&e.acceptToken(Kc)},{contextual:!0}),hf=new He.ExternalTokenizer((e,t)=>{let{next:n}=e;if((n==lf||n==cf)&&(e.advance(),n==e.next)){e.advance();let r=!t.context&&t.canShift(Jc);e.acceptToken(r?Jc:zm)}},{contextual:!0}),gf=new He.ExternalTokenizer(e=>{for(let t=!1,n=0;;n++){let{next:r}=e;if(r<0){n&&e.acceptToken(Zr);break}else if(r==uf){n?e.acceptToken(Zr):e.acceptToken(Ym,1);break}else if(r==of&&t){n==1?e.acceptToken(Fm,1):e.acceptToken(Zr,-1);break}else if(r==10&&n){e.advance(),e.acceptToken(Zr);break}else r==Of&&e.advance();t=r==pf,e.advance()}}),yf=new He.ExternalTokenizer((e,t)=>{if(!(e.next!=101||!t.dialectEnabled(nf))){e.advance();for(let n=0;n<6;n++){if(e.next!="xtends".charCodeAt(n))return;e.advance()}e.next>=57&&e.next<=65||e.next>=48&&e.next<=90||e.next==95||e.next>=97&&e.next<=122||e.next>160||e.acceptToken(Um)}}),bf=(0,k.styleTags)({"get set async static":k.tags.modifier,"for while do if else switch try catch finally return throw break continue default case":k.tags.controlKeyword,"in of await yield void typeof delete instanceof":k.tags.operatorKeyword,"let var const function class extends":k.tags.definitionKeyword,"import export from":k.tags.moduleKeyword,"with debugger as new":k.tags.keyword,TemplateString:k.tags.special(k.tags.string),super:k.tags.atom,BooleanLiteral:k.tags.bool,this:k.tags.self,null:k.tags.null,Star:k.tags.modifier,VariableName:k.tags.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":k.tags.function(k.tags.variableName),VariableDefinition:k.tags.definition(k.tags.variableName),Label:k.tags.labelName,PropertyName:k.tags.propertyName,PrivatePropertyName:k.tags.special(k.tags.propertyName),"CallExpression/MemberExpression/PropertyName":k.tags.function(k.tags.propertyName),"FunctionDeclaration/VariableDefinition":k.tags.function(k.tags.definition(k.tags.variableName)),"ClassDeclaration/VariableDefinition":k.tags.definition(k.tags.className),PropertyDefinition:k.tags.definition(k.tags.propertyName),PrivatePropertyDefinition:k.tags.definition(k.tags.special(k.tags.propertyName)),UpdateOp:k.tags.updateOperator,LineComment:k.tags.lineComment,BlockComment:k.tags.blockComment,Number:k.tags.number,String:k.tags.string,ArithOp:k.tags.arithmeticOperator,LogicOp:k.tags.logicOperator,BitOp:k.tags.bitwiseOperator,CompareOp:k.tags.compareOperator,RegExp:k.tags.regexp,Equals:k.tags.definitionOperator,Arrow:k.tags.function(k.tags.punctuation),": Spread":k.tags.punctuation,"( )":k.tags.paren,"[ ]":k.tags.squareBracket,"{ }":k.tags.brace,"InterpolationStart InterpolationEnd":k.tags.special(k.tags.brace),".":k.tags.derefOperator,", ;":k.tags.separator,TypeName:k.tags.typeName,TypeDefinition:k.tags.definition(k.tags.typeName),"type enum interface implements namespace module declare":k.tags.definitionKeyword,"abstract global Privacy readonly override":k.tags.modifier,"is keyof unique infer":k.tags.operatorKeyword,JSXAttributeValue:k.tags.attributeValue,JSXText:k.tags.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":k.tags.angleBracket,"JSXIdentifier JSXNameSpacedName":k.tags.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":k.tags.attributeName}),vf={__proto__:null,export:18,as:23,from:29,default:32,async:37,function:38,this:48,true:56,false:56,void:66,typeof:70,null:86,super:88,new:122,await:139,yield:141,delete:142,class:152,extends:154,public:197,private:197,protected:197,readonly:199,instanceof:220,in:222,const:224,import:256,keyof:307,unique:311,infer:317,is:351,abstract:371,implements:373,type:375,let:378,var:380,interface:387,enum:391,namespace:397,module:399,declare:403,global:407,for:428,of:437,while:440,with:444,do:448,if:452,else:454,switch:458,case:464,try:470,catch:474,finally:478,return:482,throw:486,break:490,continue:494,debugger:498},xf={__proto__:null,async:109,get:111,set:113,public:161,private:161,protected:161,static:163,abstract:165,override:167,readonly:173,new:355},Sf={__proto__:null,"<":129},rp=He.LRParser.deserialize({version:14,states:"$8SO`QdOOO'QQ(C|O'#ChO'XOWO'#DVO)dQdO'#D]O)tQdO'#DhO){QdO'#DrO-xQdO'#DxOOQO'#E]'#E]O.]Q`O'#E[O.bQ`O'#E[OOQ(C['#Ef'#EfO0aQ(C|O'#ItO2wQ(C|O'#IuO3eQ`O'#EzO3jQ!bO'#FaOOQ(C['#FS'#FSO3rO#tO'#FSO4QQ&jO'#FhO5bQ`O'#FgOOQ(C['#Iu'#IuOOQ(CW'#It'#ItOOQS'#J^'#J^O5gQ`O'#HpO5lQ(ChO'#HqOOQS'#Ih'#IhOOQS'#Hr'#HrQ`QdOOO){QdO'#DjO5tQ`O'#G[O5yQ&jO'#CmO6XQ`O'#EZO6dQ`O'#EgO6iQ,UO'#FRO7TQ`O'#G[O7YQ`O'#G`O7eQ`O'#G`O7sQ`O'#GcO7sQ`O'#GdO7sQ`O'#GfO5tQ`O'#GiO8dQ`O'#GlO9rQ`O'#CdO:SQ`O'#GyO:[Q`O'#HPO:[Q`O'#HRO`QdO'#HTO:[Q`O'#HVO:[Q`O'#HYO:aQ`O'#H`O:fQ(CjO'#HfO){QdO'#HhO:qQ(CjO'#HjO:|Q(CjO'#HlO5lQ(ChO'#HnO){QdO'#DWOOOW'#Ht'#HtO;XOWO,59qOOQ(C[,59q,59qO=jQtO'#ChO=tQdO'#HuO>XQ`O'#IvO@WQtO'#IvO'dQdO'#IvO@_Q`O,59wO@uQ7[O'#DbOAnQ`O'#E]OA{Q`O'#JROBWQ`O'#JQOBWQ`O'#JQOB`Q`O,5:yOBeQ`O'#JPOBlQaO'#DyO5yQ&jO'#EZOBzQ`O'#EZOCVQpO'#FROOQ(C[,5:S,5:SOC_QdO,5:SOE]Q(C|O,5:^OEyQ`O,5:dOFdQ(ChO'#JOO7YQ`O'#I}OFkQ`O'#I}OFsQ`O,5:xOFxQ`O'#I}OGWQdO,5:vOIWQ&jO'#EWOJeQ`O,5:vOKwQ&jO'#DlOLOQdO'#DqOLYQ7[O,5;PO){QdO,5;POOQS'#Er'#ErOOQS'#Et'#EtO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;ROOQS'#Ex'#ExOLbQdO,5;cOOQ(C[,5;h,5;hOOQ(C[,5;i,5;iONbQ`O,5;iOOQ(C[,5;j,5;jO){QdO'#IPONgQ(ChO,5[OOQS'#Ik'#IkOOQS,5>],5>]OOQS-E;p-E;pO!+kQ(C|O,5:UOOQ(CX'#Cp'#CpO!,[Q&kO,5Q,5>QO){QdO,5>QO5lQ(ChO,5>SOOQS,5>U,5>UO!8cQ`O,5>UOOQS,5>W,5>WO!8cQ`O,5>WOOQS,5>Y,5>YO!8hQpO,59rOOOW-E;r-E;rOOQ(C[1G/]1G/]O!8mQtO,5>aO'dQdO,5>aOOQO,5>f,5>fO!8wQdO'#HuOOQO-E;s-E;sO!9UQ`O,5?bO!9^QtO,5?bO!9eQ`O,5?lOOQ(C[1G/c1G/cO!9mQ!bO'#DTOOQO'#Ix'#IxO){QdO'#IxO!:[Q!bO'#IxO!:yQ!bO'#DcO!;[Q7[O'#DcO!=gQdO'#DcO!=nQ`O'#IwO!=vQ`O,59|O!={Q`O'#EaO!>ZQ`O'#JSO!>cQ`O,5:zO!>yQ7[O'#DcO){QdO,5?mO!?TQ`O'#HzOOQO-E;x-E;xO!9eQ`O,5?lOOQ(CW1G0e1G0eO!@aQ7[O'#D|OOQ(C[,5:e,5:eO){QdO,5:eOIWQ&jO,5:eO!@hQaO,5:eO:aQ`O,5:uO!-OQ!bO,5:uO!-WQ&jO,5:uO5yQ&jO,5:uOOQ(C[1G/n1G/nOOQ(C[1G0O1G0OOOQ(CW'#EV'#EVO){QdO,5?jO!@sQ(ChO,5?jO!AUQ(ChO,5?jO!A]Q`O,5?iO!AeQ`O'#H|O!A]Q`O,5?iOOQ(CW1G0d1G0dO7YQ`O,5?iOOQ(C[1G0b1G0bO!BPQ(C|O1G0bO!CRQ(CyO,5:rOOQ(C]'#Fq'#FqO!CoQ(C}O'#IqOGWQdO1G0bO!EqQ,VO'#IyO!E{Q`O,5:WO!FQQtO'#IzO){QdO'#IzO!F[Q`O,5:]OOQ(C]'#DT'#DTOOQ(C[1G0k1G0kO!FaQ`O1G0kO!HrQ(C|O1G0mO!HyQ(C|O1G0mO!K^Q(C|O1G0mO!KeQ(C|O1G0mO!MlQ(C|O1G0mO!NPQ(C|O1G0mO#!pQ(C|O1G0mO#!wQ(C|O1G0mO#%[Q(C|O1G0mO#%cQ(C|O1G0mO#'WQ(C|O1G0mO#*QQMlO'#ChO#+{QMlO1G0}O#-vQMlO'#IuOOQ(C[1G1T1G1TO#.ZQ(C|O,5>kOOQ(CW-E;}-E;}O#.zQ(C}O1G0mOOQ(C[1G0m1G0mO#1PQ(C|O1G1QO#1pQ!bO,5;sO#1uQ!bO,5;tO#1zQ!bO'#F[O#2`Q`O'#FZOOQO'#JW'#JWOOQO'#H}'#H}O#2eQ!bO1G1]OOQ(C[1G1]1G1]OOOO1G1f1G1fO#2sQMlO'#ItO#2}Q`O,5;}OLbQdO,5;}OOOO-E;|-E;|OOQ(C[1G1Y1G1YOOQ(C[,5PQtO1G1VOOQ(C[1G1X1G1XO5tQ`O1G2}O#>WQ`O1G2}O#>]Q`O1G2}O#>bQ`O1G2}OOQS1G2}1G2}O#>gQ&kO1G2bO7YQ`O'#JQO7YQ`O'#EaO7YQ`O'#IWO#>xQ(ChO,5?yOOQS1G2f1G2fO!0VQ`O1G2lOIWQ&jO1G2iO#?TQ`O1G2iOOQS1G2j1G2jOIWQ&jO1G2jO#?YQaO1G2jO#?bQ7[O'#GhOOQS1G2l1G2lO!'VQ7[O'#IYO!0[QpO1G2oOOQS1G2o1G2oOOQS,5=Y,5=YO#?jQ&kO,5=[O5tQ`O,5=[O#6SQ`O,5=_O5bQ`O,5=_O!-OQ!bO,5=_O!-WQ&jO,5=_O5yQ&jO,5=_O#?{Q`O'#JaO#@WQ`O,5=`OOQS1G.j1G.jO#@]Q(ChO1G.jO#@hQ`O1G.jO#@mQ`O1G.jO5lQ(ChO1G.jO#@uQtO,5@OO#APQ`O,5@OO#A[QdO,5=gO#AcQ`O,5=gO7YQ`O,5@OOOQS1G3P1G3PO`QdO1G3POOQS1G3V1G3VOOQS1G3X1G3XO:[Q`O1G3ZO#AhQdO1G3]O#EcQdO'#H[OOQS1G3`1G3`O#EpQ`O'#HbO:aQ`O'#HdOOQS1G3f1G3fO#ExQdO1G3fO5lQ(ChO1G3lOOQS1G3n1G3nOOQ(CW'#Fx'#FxO5lQ(ChO1G3pO5lQ(ChO1G3rOOOW1G/^1G/^O#IvQpO,5aO#JYQ`O1G4|O#JbQ`O1G5WO#JjQ`O,5?dOLbQdO,5:{O7YQ`O,5:{O:aQ`O,59}OLbQdO,59}O!-OQ!bO,59}O#JoQMlO,59}OOQO,5:{,5:{O#JyQ7[O'#HvO#KaQ`O,5?cOOQ(C[1G/h1G/hO#KiQ7[O'#H{O#K}Q`O,5?nOOQ(CW1G0f1G0fO!;[Q7[O,59}O#LVQtO1G5XO7YQ`O,5>fOOQ(CW'#ES'#ESO#LaQ(DjO'#ETO!@XQ7[O'#D}OOQO'#Hy'#HyO#L{Q7[O,5:hOOQ(C[,5:h,5:hO#MSQ7[O'#D}O#MeQ7[O'#D}O#MlQ7[O'#EYO#MoQ7[O'#ETO#M|Q7[O'#ETO!@XQ7[O'#ETO#NaQ`O1G0PO#NfQqO1G0POOQ(C[1G0P1G0PO){QdO1G0POIWQ&jO1G0POOQ(C[1G0a1G0aO:aQ`O1G0aO!-OQ!bO1G0aO!-WQ&jO1G0aO#NmQ(C|O1G5UO){QdO1G5UO#N}Q(ChO1G5UO$ `Q`O1G5TO7YQ`O,5>hOOQO,5>h,5>hO$ hQ`O,5>hOOQO-E;z-E;zO$ `Q`O1G5TO$ vQ(C}O,59jO$#xQ(C}O,5m,5>mO$-rQ`O,5>mOOQ(C]1G2P1G2PP$-wQ`O'#IRPOQ(C]-Eo,5>oOOQO-Ep,5>pOOQO-Ex,5>xOOQO-E<[-E<[OOQ(C[7+&q7+&qO$6OQ`O7+(iO5lQ(ChO7+(iO5tQ`O7+(iO$6TQ`O7+(iO$6YQaO7+'|OOQ(CW,5>r,5>rOOQ(CW-Et,5>tOOQO-EO,5>OOOQS7+)Q7+)QOOQS7+)W7+)WOOQS7+)[7+)[OOQS7+)^7+)^OOQO1G5O1G5OO$:nQMlO1G0gO$:xQ`O1G0gOOQO1G/i1G/iO$;TQMlO1G/iO:aQ`O1G/iOLbQdO'#DcOOQO,5>b,5>bOOQO-E;t-E;tOOQO,5>g,5>gOOQO-E;y-E;yO!-OQ!bO1G/iO:aQ`O,5:iOOQO,5:o,5:oO){QdO,5:oO$;_Q(ChO,5:oO$;jQ(ChO,5:oO!-OQ!bO,5:iOOQO-E;w-E;wOOQ(C[1G0S1G0SO!@XQ7[O,5:iO$;xQ7[O,5:iO$PQ`O7+*oO$>XQ(C}O1G2[O$@^Q(C}O1G2^O$BcQ(C}O1G1yO$DnQ,VO,5>cOOQO-E;u-E;uO$DxQtO,5>dO){QdO,5>dOOQO-E;v-E;vO$ESQ`O1G5QO$E[QMlO1G0bO$GcQMlO1G0mO$GjQMlO1G0mO$IkQMlO1G0mO$IrQMlO1G0mO$KgQMlO1G0mO$KzQMlO1G0mO$NXQMlO1G0mO$N`QMlO1G0mO%!aQMlO1G0mO%!hQMlO1G0mO%$]QMlO1G0mO%$pQ(C|O<kOOOO7+'T7+'TOOOW1G/R1G/ROOQ(C]1G4X1G4XOJjQ&jO7+'zO%*VQ`O,5>lO5tQ`O,5>lOOQO-EnO%+dQ`O,5>nOIWQ&jO,5>nOOQO-Ew,5>wO%.vQ`O,5>wO%.{Q`O,5>wOOQO-EvOOQO-EqOOQO-EsOOQO-E{AN>{OOQOAN>uAN>uO%3rQ(C|OAN>{O:aQ`OAN>uO){QdOAN>{O!-OQ!bOAN>uO&)wQ(ChOAN>{O&*SQ(C}OG26lOOQ(CWG26bG26bOOQS!$( t!$( tOOQO<QQ`O'#E[O&>YQ`O'#EzO&>_Q`O'#EgO&>dQ`O'#JRO&>oQ`O'#JPO&>zQ`O,5:vO&?PQ,VO,5aO!O&PO~Ox&SO!W&^O!X&VO!Y&VO'^$dO~O]&TOk&TO!Q&WO'g&QO!S'kP!S'vP~P@dO!O'sX!R'sX!]'sX!c'sX'p'sX~O!{'sX#W#PX!S'sX~PA]O!{&_O!O'uX!R'uX~O!R&`O!O'tX~O!O&cO~O!{#eO~PA]OP&gO!T&dO!o&fO']$bO~Oc&lO!d$ZO']$bO~Ou$oO!d$nO~O!S&mO~P`Ou!{Ov!{Ox!|O!b!yO!d!zO'fQOQ!faZ!faj!fa!R!fa!a!fa!j!fa#[!fa#]!fa#^!fa#_!fa#`!fa#a!fa#b!fa#c!fa#e!fa#g!fa#i!fa#j!fa'p!fa'w!fa'x!fa~O_!fa'W!fa!O!fa!c!fan!fa!T!fa%Q!fa!]!fa~PCfO!c&nO~O!]!wO!{&pO'p&oO!R'rX_'rX'W'rX~O!c'rX~PFOO!R&tO!c'qX~O!c&vO~Ox$uO!T$vO#V&wO']$bO~OQTORTO]cOb!kOc!jOhcOjTOkcOlcOqTOsTOxRO{cO|cO}cO!TSO!_kO!dUO!gTO!hTO!iTO!jTO!kTO!n!iO#t!lO#x^O']9aO'fQO'oYO'|aO~O]#qOh$QOj#rOk#qOl#qOq$ROs9tOx#yO!T#zO!_;eO!d#vO#V9}O#t$VO$_9wO$a9zO$d$WO']&{O'b$PO'f#sO~O#W&}O~O]#qOh$QOj#rOk#qOl#qOq$ROs$SOx#yO!T#zO!_$XO!d#vO#V$YO#t$VO$_$TO$a$UO$d$WO']&{O'b$PO'f#sO~O'a'mP~PJjO!Q'RO!c'nP~P){O'g'TO'oYO~OQ9^OR9^O]cOb;`Oc!jOhcOj9^OkcOlcOq9^Os9^OxRO{cO|cO}cO!T!bO!_9`O!dUO!g9^O!h9^O!i9^O!j9^O!k9^O!n!iO#t!lO#x^O']'cO'fQO'oYO'|;^O~O!d!zO~O!R#bO_$]a'W$]a!c$]a!O$]a!T$]a%Q$]a!]$]a~O#d'jO~PIWO!]'lO!T'yX#w'yX#z'yX$R'yX~Ou'mO~P! YOu'mO!T'yX#w'yX#z'yX$R'yX~O!T'oO#w'sO#z'nO$R'tO~O!Q'wO~PLbO#z#fO$R'zO~OP$eXu$eXx$eX!b$eX'w$eX'x$eX~OPfX!RfX!{fX'afX'a$eX~P!!rOk'|O~OS'}O'U(OO'V(QO~OP(ZOu(SOx(TO'w(VO'x(XO~O'a(RO~P!#{O'a([O~O]#qOh$QOj#rOk#qOl#qOq$ROs9tOx#yO!T#zO!_;eO!d#vO#V9}O#t$VO$_9wO$a9zO$d$WO'b$PO'f#sO~O!Q(`O'](]O!c'}P~P!$jO#W(bO~O!d(cO~O!Q(hO'](eO!O(OP~P!$jOj(uOx(mO!W(sO!X(lO!Y(lO!d(cO!x(tO$w(oO'^$dO'g(jO~O!S(rO~P!&jO!b!yOP'eXu'eXx'eX'w'eX'x'eX!R'eX!{'eX~O'a'eX#m'eX~P!'cOP(xO!{(wO!R'dX'a'dX~O!R(yO'a'cX~O']${O'a'cP~O'](|O~O!d)RO~O']&{O~Ox$uO!Q!rO!T$vO#U!uO#V!rO']$bO!c'qP~O!]!wO#W)VO~OQ#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO#g#WO#i#YO#j#ZO'fQO'p#[O'w!}O'x#OO~O_!^a!R!^a'W!^a!O!^a!c!^an!^a!T!^a%Q!^a!]!^a~P!)wOP)_O!T&dO!o)^O%Q)]O'b$PO~O!])aO!T'`X_'`X!R'`X'W'`X~O!d$ZO'b$PO~O!d$ZO']$bO'b$PO~O!]!wO#W&}O~O])lO%R)mO'])iO!S(VP~O!R)nO^(UX~O'g'TO~OZ)rO~O^)sO~O!T$lO']$bO'^$dO^(UP~Ox$uO!Q)xO!R&`O!T$vO']$bO!O'tP~O]&ZOk&ZO!Q)yO'g'TO!S'vP~O!R)zO_(RX'W(RX~O!{*OO'b$PO~OP*RO!T#zO'b$PO~O!T*TO~Ou*VO!TSO~O!n*[O~Oc*aO~O'](|O!S(TP~Oc$jO~O%RtO']${O~P8wOZ*gO^*fO~OQTORTO]cObnOcmOhcOjTOkcOlcOqTOsTOxRO{cO|cO}cO!_kO!dUO!gTO!hTO!iTO!jTO!kTO!nlO#x^O%PqO'fQO'oYO'|aO~O!T!bO#t!lO']9aO~P!1_O^*fO_$^O'W$^O~O_*kO#d*mO%T*mO%U*mO~P){O!d%`O~O%t*rO~O!T*tO~O&V*vO&X*wOQ&SaR&SaX&Sa]&Sa_&Sab&Sac&Sah&Saj&Sak&Sal&Saq&Sas&Sax&Sa{&Sa|&Sa}&Sa!T&Sa!_&Sa!d&Sa!g&Sa!h&Sa!i&Sa!j&Sa!k&Sa!n&Sa#d&Sa#t&Sa#x&Sa%P&Sa%R&Sa%T&Sa%U&Sa%X&Sa%Z&Sa%^&Sa%_&Sa%a&Sa%n&Sa%t&Sa%v&Sa%x&Sa%z&Sa%}&Sa&T&Sa&Z&Sa&]&Sa&_&Sa&a&Sa&c&Sa'S&Sa']&Sa'f&Sa'o&Sa'|&Sa!S&Sa%{&Sa`&Sa&Q&Sa~O']*|O~On+PO~O!O&ia!R&ia~P!)wO!Q+TO!O&iX!R&iX~P){O!R%zO!O'ja~O!O'ja~P>aO!R&`O!O'ta~O!RwX!R!ZX!SwX!S!ZX!]wX!]!ZX!d!ZX!{wX'b!ZX~O!]+YO!{+XO!R#TX!R'lX!S#TX!S'lX!]'lX!d'lX'b'lX~O!]+[O!d$ZO'b$PO!R!VX!S!VX~O]&ROk&ROx&SO'g(jO~OQ9^OR9^O]cOb;`Oc!jOhcOj9^OkcOlcOq9^Os9^OxRO{cO|cO}cO!T!bO!_9`O!dUO!g9^O!h9^O!i9^O!j9^O!k9^O!n!iO#t!lO#x^O'fQO'oYO'|;^O~O']:SO~P!;jO!R+`O!S'kX~O!S+bO~O!]+YO!{+XO!R#TX!S#TX~O!R+cO!S'vX~O!S+eO~O]&ROk&ROx&SO'^$dO'g(jO~O!X+fO!Y+fO~P!>hOx$uO!Q+hO!T$vO']$bO!O&nX!R&nX~O_+lO!W+oO!X+kO!Y+kO!r+sO!s+qO!t+rO!u+pO!x+tO'^$dO'g(jO'o+iO~O!S+nO~P!?iOP+yO!T&dO!o+xO~O!{,PO!R'ra!c'ra_'ra'W'ra~O!]!wO~P!@sO!R&tO!c'qa~Ox$uO!Q,SO!T$vO#U,UO#V,SO']$bO!R&pX!c&pX~O_#Oi!R#Oi'W#Oi!O#Oi!c#Oin#Oi!T#Oi%Q#Oi!]#Oi~P!)wOP;tOu(SOx(TO'w(VO'x(XO~O#W!za!R!za!c!za!{!za!T!za_!za'W!za!O!za~P!BpO#W'eXQ'eXZ'eX_'eXj'eXv'eX!a'eX!d'eX!j'eX#['eX#]'eX#^'eX#_'eX#`'eX#a'eX#b'eX#c'eX#e'eX#g'eX#i'eX#j'eX'W'eX'f'eX'p'eX!c'eX!O'eX!T'eXn'eX%Q'eX!]'eX~P!'cO!R,_O'a'mX~P!#{O'a,aO~O!R,bO!c'nX~P!)wO!c,eO~O!O,fO~OQ#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O'fQOZ#Zi_#Zij#Zi!R#Zi!a#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi'W#Zi'p#Zi'w#Zi'x#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~O#[#Zi~P!FfO#[#PO~P!FfOQ#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO'fQOZ#Zi_#Zi!R#Zi!a#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi'W#Zi'p#Zi'w#Zi'x#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~Oj#Zi~P!IQOj#RO~P!IQOQ#^Oj#ROu!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO'fQO_#Zi!R#Zi#e#Zi#g#Zi#i#Zi#j#Zi'W#Zi'p#Zi'w#Zi'x#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~OZ#Zi!a#Zi#a#Zi#b#Zi#c#Zi~P!KlOZ#dO!a#TO#a#TO#b#TO#c#TO~P!KlOQ#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO'fQO_#Zi!R#Zi#g#Zi#i#Zi#j#Zi'W#Zi'p#Zi'x#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~O'w#Zi~P!NdO'w!}O~P!NdOQ#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO#g#WO'fQO'w!}O_#Zi!R#Zi#i#Zi#j#Zi'W#Zi'p#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~O'x#Zi~P##OO'x#OO~P##OOQ#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO#g#WO#i#YO'fQO'w!}O'x#OO~O_#Zi!R#Zi#j#Zi'W#Zi'p#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~P#%jOQ[XZ[Xj[Xu[Xv[Xx[X!a[X!b[X!d[X!j[X!{[X#WdX#[[X#][X#^[X#_[X#`[X#a[X#b[X#c[X#e[X#g[X#i[X#j[X#o[X'f[X'p[X'w[X'x[X!R[X!S[X~O#m[X~P#'}OQ#^OZ9rOj9gOu!{Ov!{Ox!|O!a9iO!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO#a9iO#b9iO#c9iO#e9jO#g9lO#i9nO#j9oO'fQO'p#[O'w!}O'x#OO~O#m,hO~P#*XOQ'iXZ'iXj'iXu'iXv'iXx'iX!a'iX!b'iX!d'iX!j'iX#['iX#]'iX#^'iX#_'iX#`'iX#a'iX#b'iX#e'iX#g'iX#i'iX#j'iX'f'iX'p'iX'w'iX'x'iX!R'iX~O!{9sO#o9sO#c'iX#m'iX!S'iX~P#,SO_&sa!R&sa'W&sa!c&san&sa!O&sa!T&sa%Q&sa!]&sa~P!)wOQ#ZiZ#Zi_#Zij#Ziv#Zi!R#Zi!a#Zi!b#Zi!d#Zi!j#Zi#[#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi'W#Zi'f#Zi'p#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~P!BpO_#ni!R#ni'W#ni!O#ni!c#nin#ni!T#ni%Q#ni!]#ni~P!)wO#z,jO~O#z,kO~O!]'lO!{,lO!T$OX#w$OX#z$OX$R$OX~O!Q,mO~O!T'oO#w,oO#z'nO$R,pO~O!R9pO!S'hX~P#*XO!S,qO~O$R,sO~OS'}O'U(OO'V,vO~O],yOk,yO!O,zO~O!RdX!]dX!cdX!c$eX'pdX~P!!rO!c-QO~P!BpO!R-RO!]!wO'p&oO!c'}X~O!c-WO~O!Q(`O']$bO!c'}P~O#W-YO~O!O$eX!R$eX!]$lX~P!!rO!R-ZO!O(OX~P!BpO!]-]O~O!O-_O~Oj-cO!]!wO!d$ZO'b$PO'p&oO~O!])aO~O_$^O!R-hO'W$^O~O!S-jO~P!&jO!X-kO!Y-kO'^$dO'g(jO~Ox-mO'g(jO~O!x-nO~O']${O!R&xX'a&xX~O!R(yO'a'ca~O'a-sO~Ou-tOv-tOx-uOPra'wra'xra!Rra!{ra~O'ara#mra~P#7pOu(SOx(TOP$^a'w$^a'x$^a!R$^a!{$^a~O'a$^a#m$^a~P#8fOu(SOx(TOP$`a'w$`a'x$`a!R$`a!{$`a~O'a$`a#m$`a~P#9XO]-vO~O#W-wO~O'a$na!R$na!{$na#m$na~P!#{O#W-zO~OP.TO!T&dO!o.SO%Q.RO~O]#qOj#rOk#qOl#qOq$ROs9tOx#yO!T#zO!_;eO!d#vO#V9}O#t$VO$_9wO$a9zO$d$WO'b$PO'f#sO~Oh.VO'].UO~P#:yO!])aO!T'`a_'`a!R'`a'W'`a~O#W.]O~OZ[X!RdX!SdX~O!R.^O!S(VX~O!S.`O~OZ.aO~O].cO'])iO~O!T$lO']$bO^'QX!R'QX~O!R)nO^(Ua~O!c.fO~P!)wO].hO~OZ.iO~O^.jO~OP.TO!T&dO!o.SO%Q.RO'b$PO~O!R)zO_(Ra'W(Ra~O!{.pO~OP.sO!T#zO~O'g'TO!S(SP~OP.}O!T.yO!o.|O%Q.{O'b$PO~OZ/XO!R/VO!S(TX~O!S/YO~O^/[O_$^O'W$^O~O]/]O~O]/^O'](|O~O#c/_O%r/`O~P0zO!{#eO#c/_O%r/`O~O_/aO~P){O_/cO~O%{/gOQ%yiR%yiX%yi]%yi_%yib%yic%yih%yij%yik%yil%yiq%yis%yix%yi{%yi|%yi}%yi!T%yi!_%yi!d%yi!g%yi!h%yi!i%yi!j%yi!k%yi!n%yi#d%yi#t%yi#x%yi%P%yi%R%yi%T%yi%U%yi%X%yi%Z%yi%^%yi%_%yi%a%yi%n%yi%t%yi%v%yi%x%yi%z%yi%}%yi&T%yi&Z%yi&]%yi&_%yi&a%yi&c%yi'S%yi']%yi'f%yi'o%yi'|%yi!S%yi`%yi&Q%yi~O`/mO!S/kO&Q/lO~P`O!TSO!d/oO~O&X*wOQ&SiR&SiX&Si]&Si_&Sib&Sic&Sih&Sij&Sik&Sil&Siq&Sis&Six&Si{&Si|&Si}&Si!T&Si!_&Si!d&Si!g&Si!h&Si!i&Si!j&Si!k&Si!n&Si#d&Si#t&Si#x&Si%P&Si%R&Si%T&Si%U&Si%X&Si%Z&Si%^&Si%_&Si%a&Si%n&Si%t&Si%v&Si%x&Si%z&Si%}&Si&T&Si&Z&Si&]&Si&_&Si&a&Si&c&Si'S&Si']&Si'f&Si'o&Si'|&Si!S&Si%{&Si`&Si&Q&Si~O!R#bOn$]a~O!O&ii!R&ii~P!)wO!R%zO!O'ji~O!R&`O!O'ti~O!O/uO~O!R!Va!S!Va~P#*XO]&ROk&RO!Q/{O'g(jO!R&jX!S&jX~P@dO!R+`O!S'ka~O]&ZOk&ZO!Q)yO'g'TO!R&oX!S&oX~O!R+cO!S'va~O!O'ui!R'ui~P!)wO_$^O!]!wO!d$ZO!j0VO!{0TO'W$^O'b$PO'p&oO~O!S0YO~P!?iO!X0ZO!Y0ZO'^$dO'g(jO'o+iO~O!W0[O~P#MSO!TSO!W0[O!u0^O!x0_O~P#MSO!W0[O!s0aO!t0aO!u0^O!x0_O~P#MSO!T&dO~O!T&dO~P!BpO!R'ri!c'ri_'ri'W'ri~P!)wO!{0jO!R'ri!c'ri_'ri'W'ri~O!R&tO!c'qi~Ox$uO!T$vO#V0lO']$bO~O#WraQraZra_rajra!ara!bra!dra!jra#[ra#]ra#^ra#_ra#`ra#ara#bra#cra#era#gra#ira#jra'Wra'fra'pra!cra!Ora!Tranra%Qra!]ra~P#7pO#W$^aQ$^aZ$^a_$^aj$^av$^a!a$^a!b$^a!d$^a!j$^a#[$^a#]$^a#^$^a#_$^a#`$^a#a$^a#b$^a#c$^a#e$^a#g$^a#i$^a#j$^a'W$^a'f$^a'p$^a!c$^a!O$^a!T$^an$^a%Q$^a!]$^a~P#8fO#W$`aQ$`aZ$`a_$`aj$`av$`a!a$`a!b$`a!d$`a!j$`a#[$`a#]$`a#^$`a#_$`a#`$`a#a$`a#b$`a#c$`a#e$`a#g$`a#i$`a#j$`a'W$`a'f$`a'p$`a!c$`a!O$`a!T$`an$`a%Q$`a!]$`a~P#9XO#W$naQ$naZ$na_$naj$nav$na!R$na!a$na!b$na!d$na!j$na#[$na#]$na#^$na#_$na#`$na#a$na#b$na#c$na#e$na#g$na#i$na#j$na'W$na'f$na'p$na!c$na!O$na!T$na!{$nan$na%Q$na!]$na~P!BpO_#Oq!R#Oq'W#Oq!O#Oq!c#Oqn#Oq!T#Oq%Q#Oq!]#Oq~P!)wO!R&kX'a&kX~PJjO!R,_O'a'ma~O!Q0tO!R&lX!c&lX~P){O!R,bO!c'na~O!R,bO!c'na~P!)wO#m!fa!S!fa~PCfO#m!^a!R!^a!S!^a~P#*XO!T1XO#x^O$P1YO~O!S1^O~On1_O~P!BpO_$Yq!R$Yq'W$Yq!O$Yq!c$Yqn$Yq!T$Yq%Q$Yq!]$Yq~P!)wO!O1`O~O],yOk,yO~Ou(SOx(TO'x(XOP$xi'w$xi!R$xi!{$xi~O'a$xi#m$xi~P$.POu(SOx(TOP$zi'w$zi'x$zi!R$zi!{$zi~O'a$zi#m$zi~P$.rO'p#[O~P!BpO!Q1cO']$bO!R&tX!c&tX~O!R-RO!c'}a~O!R-RO!]!wO!c'}a~O!R-RO!]!wO'p&oO!c'}a~O'a$gi!R$gi!{$gi#m$gi~P!#{O!Q1kO'](eO!O&vX!R&vX~P!$jO!R-ZO!O(Oa~O!R-ZO!O(Oa~P!BpO!]!wO~O!]!wO#c1sO~Oj1vO!]!wO'p&oO~O!R'di'a'di~P!#{O!{1yO!R'di'a'di~P!#{O!c1|O~O_$Zq!R$Zq'W$Zq!O$Zq!c$Zqn$Zq!T$Zq%Q$Zq!]$Zq~P!)wO!R2QO!T(PX~P!BpO!T&dO%Q2TO~O!T&dO%Q2TO~P!BpO!T$eX$u[X_$eX!R$eX'W$eX~P!!rO$u2XOPgXugXxgX!TgX'wgX'xgX_gX!RgX'WgX~O$u2XO~O]2_O%R2`O'])iO!R'PX!S'PX~O!R.^O!S(Va~OZ2dO~O^2eO~O]2hO~OP2jO!T&dO!o2iO%Q2TO~O_$^O'W$^O~P!BpO!T#zO~P!BpO!R2oO!{2qO!S(SX~O!S2rO~Ox;oO!W2{O!X2tO!Y2tO!r2zO!s2yO!t2yO!x2xO'^$dO'g(jO'o+iO~O!S2wO~P$7ZOP3SO!T.yO!o3RO%Q3QO~OP3SO!T.yO!o3RO%Q3QO'b$PO~O'](|O!R'OX!S'OX~O!R/VO!S(Ta~O]3^O'g3]O~O]3_O~O^3aO~O!c3dO~P){O_3fO~O_3fO~P){O#c3hO%r3iO~PFOO`/mO!S3mO&Q/lO~P`O!]3oO~O!R#Ti!S#Ti~P#*XO!{3qO!R#Ti!S#Ti~O!R!Vi!S!Vi~P#*XO_$^O!{3xO'W$^O~O_$^O!]!wO!{3xO'W$^O~O!X3|O!Y3|O'^$dO'g(jO'o+iO~O_$^O!]!wO!d$ZO!j3}O!{3xO'W$^O'b$PO'p&oO~O!W4OO~P$;xO!W4OO!u4RO!x4SO~P$;xO_$^O!]!wO!j3}O!{3xO'W$^O'p&oO~O!R'rq!c'rq_'rq'W'rq~P!)wO!R&tO!c'qq~O#W$xiQ$xiZ$xi_$xij$xiv$xi!a$xi!b$xi!d$xi!j$xi#[$xi#]$xi#^$xi#_$xi#`$xi#a$xi#b$xi#c$xi#e$xi#g$xi#i$xi#j$xi'W$xi'f$xi'p$xi!c$xi!O$xi!T$xin$xi%Q$xi!]$xi~P$.PO#W$ziQ$ziZ$zi_$zij$ziv$zi!a$zi!b$zi!d$zi!j$zi#[$zi#]$zi#^$zi#_$zi#`$zi#a$zi#b$zi#c$zi#e$zi#g$zi#i$zi#j$zi'W$zi'f$zi'p$zi!c$zi!O$zi!T$zin$zi%Q$zi!]$zi~P$.rO#W$giQ$giZ$gi_$gij$giv$gi!R$gi!a$gi!b$gi!d$gi!j$gi#[$gi#]$gi#^$gi#_$gi#`$gi#a$gi#b$gi#c$gi#e$gi#g$gi#i$gi#j$gi'W$gi'f$gi'p$gi!c$gi!O$gi!T$gi!{$gin$gi%Q$gi!]$gi~P!BpO!R&ka'a&ka~P!#{O!R&la!c&la~P!)wO!R,bO!c'ni~O#m#Oi!R#Oi!S#Oi~P#*XOQ#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O'fQOZ#Zij#Zi!a#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'p#Zi'w#Zi'x#Zi!R#Zi!S#Zi~O#[#Zi~P$EiO#[9eO~P$EiOQ#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO'fQOZ#Zi!a#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'p#Zi'w#Zi'x#Zi!R#Zi!S#Zi~Oj#Zi~P$GqOj9gO~P$GqOQ#^Oj9gOu!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO'fQO#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'p#Zi'w#Zi'x#Zi!R#Zi!S#Zi~OZ#Zi!a#Zi#a#Zi#b#Zi#c#Zi~P$IyOZ9rO!a9iO#a9iO#b9iO#c9iO~P$IyOQ#^OZ9rOj9gOu!{Ov!{Ox!|O!a9iO!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO#a9iO#b9iO#c9iO#e9jO'fQO#g#Zi#i#Zi#j#Zi#m#Zi'p#Zi'x#Zi!R#Zi!S#Zi~O'w#Zi~P$L_O'w!}O~P$L_OQ#^OZ9rOj9gOu!{Ov!{Ox!|O!a9iO!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO#a9iO#b9iO#c9iO#e9jO#g9lO'fQO'w!}O#i#Zi#j#Zi#m#Zi'p#Zi!R#Zi!S#Zi~O'x#Zi~P$NgO'x#OO~P$NgOQ#^OZ9rOj9gOu!{Ov!{Ox!|O!a9iO!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO#a9iO#b9iO#c9iO#e9jO#g9lO#i9nO'fQO'w!}O'x#OO~O#j#Zi#m#Zi'p#Zi!R#Zi!S#Zi~P%!oO_#ky!R#ky'W#ky!O#ky!c#kyn#ky!T#ky%Q#ky!]#ky~P!)wOP;vOu(SOx(TO'w(VO'x(XO~OQ#ZiZ#Zij#Ziv#Zi!a#Zi!b#Zi!d#Zi!j#Zi#[#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'f#Zi'p#Zi!R#Zi!S#Zi~P%%aO!b!yOP'eXu'eXx'eX'w'eX'x'eX!S'eX~OQ'eXZ'eXj'eXv'eX!a'eX!d'eX!j'eX#['eX#]'eX#^'eX#_'eX#`'eX#a'eX#b'eX#c'eX#e'eX#g'eX#i'eX#j'eX#m'eX'f'eX'p'eX!R'eX~P%'eO#m#ni!R#ni!S#ni~P#*XO!S4eO~O!R&sa!S&sa~P#*XO!]!wO'p&oO!R&ta!c&ta~O!R-RO!c'}i~O!R-RO!]!wO!c'}i~O'a$gq!R$gq!{$gq#m$gq~P!#{O!O&va!R&va~P!BpO!]4lO~O!R-ZO!O(Oi~P!BpO!R-ZO!O(Oi~O!O4pO~O!]!wO#c4uO~Oj4vO!]!wO'p&oO~O!O4xO~O'a$iq!R$iq!{$iq#m$iq~P!#{O_$Zy!R$Zy'W$Zy!O$Zy!c$Zyn$Zy!T$Zy%Q$Zy!]$Zy~P!)wO!R2QO!T(Pa~O!T&dO%Q4}O~O!T&dO%Q4}O~P!BpO_#Oy!R#Oy'W#Oy!O#Oy!c#Oyn#Oy!T#Oy%Q#Oy!]#Oy~P!)wOZ5QO~O]5SO'])iO~O!R.^O!S(Vi~O]5VO~O^5WO~O'g'TO!R&{X!S&{X~O!R2oO!S(Sa~O!S5eO~P$7ZOx;sO'g(jO'o+iO~O!W5hO!X5gO!Y5gO!x0_O'^$dO'g(jO'o+iO~O!s5iO!t5iO~P%0^O!X5gO!Y5gO'^$dO'g(jO'o+iO~O!T.yO~O!T.yO%Q5kO~O!T.yO%Q5kO~P!BpOP5pO!T.yO!o5oO%Q5kO~OZ5uO!R'Oa!S'Oa~O!R/VO!S(Ti~O]5xO~O!c5yO~O!c5zO~O!c5{O~O!c5{O~P){O_5}O~O!]6QO~O!c6RO~O!R'ui!S'ui~P#*XO_$^O'W$^O~P!)wO_$^O!{6WO'W$^O~O_$^O!]!wO!{6WO'W$^O~O!X6]O!Y6]O'^$dO'g(jO'o+iO~O_$^O!]!wO!j6^O!{6WO'W$^O'p&oO~O!d$ZO'b$PO~P%4xO!W6_O~P%4gO!R'ry!c'ry_'ry'W'ry~P!)wO#W$gqQ$gqZ$gq_$gqj$gqv$gq!R$gq!a$gq!b$gq!d$gq!j$gq#[$gq#]$gq#^$gq#_$gq#`$gq#a$gq#b$gq#c$gq#e$gq#g$gq#i$gq#j$gq'W$gq'f$gq'p$gq!c$gq!O$gq!T$gq!{$gqn$gq%Q$gq!]$gq~P!BpO#W$iqQ$iqZ$iq_$iqj$iqv$iq!R$iq!a$iq!b$iq!d$iq!j$iq#[$iq#]$iq#^$iq#_$iq#`$iq#a$iq#b$iq#c$iq#e$iq#g$iq#i$iq#j$iq'W$iq'f$iq'p$iq!c$iq!O$iq!T$iq!{$iqn$iq%Q$iq!]$iq~P!BpO!R&li!c&li~P!)wO#m#Oq!R#Oq!S#Oq~P#*XOu-tOv-tOx-uOPra'wra'xra!Sra~OQraZrajra!ara!bra!dra!jra#[ra#]ra#^ra#_ra#`ra#ara#bra#cra#era#gra#ira#jra#mra'fra'pra!Rra~P%;OOu(SOx(TOP$^a'w$^a'x$^a!S$^a~OQ$^aZ$^aj$^av$^a!a$^a!b$^a!d$^a!j$^a#[$^a#]$^a#^$^a#_$^a#`$^a#a$^a#b$^a#c$^a#e$^a#g$^a#i$^a#j$^a#m$^a'f$^a'p$^a!R$^a~P%=SOu(SOx(TOP$`a'w$`a'x$`a!S$`a~OQ$`aZ$`aj$`av$`a!a$`a!b$`a!d$`a!j$`a#[$`a#]$`a#^$`a#_$`a#`$`a#a$`a#b$`a#c$`a#e$`a#g$`a#i$`a#j$`a#m$`a'f$`a'p$`a!R$`a~P%?WOQ$naZ$naj$nav$na!a$na!b$na!d$na!j$na#[$na#]$na#^$na#_$na#`$na#a$na#b$na#c$na#e$na#g$na#i$na#j$na#m$na'f$na'p$na!R$na!S$na~P%%aO#m$Yq!R$Yq!S$Yq~P#*XO#m$Zq!R$Zq!S$Zq~P#*XO!S6hO~O#m6iO~P!#{O!]!wO!R&ti!c&ti~O!]!wO'p&oO!R&ti!c&ti~O!R-RO!c'}q~O!O&vi!R&vi~P!BpO!R-ZO!O(Oq~O!O6oO~P!BpO!O6oO~O!R'dy'a'dy~P!#{O!R&ya!T&ya~P!BpO!T$tq_$tq!R$tq'W$tq~P!BpOZ6vO~O!R.^O!S(Vq~O]6yO~O!T&dO%Q6zO~O!T&dO%Q6zO~P!BpO!{6{O!R&{a!S&{a~O!R2oO!S(Si~P#*XO!X7RO!Y7RO'^$dO'g(jO'o+iO~O!W7TO!x4SO~P%GXO!T.yO%Q7WO~O!T.yO%Q7WO~P!BpO]7_O'g7^O~O!R/VO!S(Tq~O!c7aO~O!c7aO~P){O!c7cO~O!c7dO~O!R#Ty!S#Ty~P#*XO_$^O!{7jO'W$^O~O_$^O!]!wO!{7jO'W$^O~O!X7mO!Y7mO'^$dO'g(jO'o+iO~O_$^O!]!wO!j7nO!{7jO'W$^O'p&oO~O#m#ky!R#ky!S#ky~P#*XOQ$giZ$gij$giv$gi!a$gi!b$gi!d$gi!j$gi#[$gi#]$gi#^$gi#_$gi#`$gi#a$gi#b$gi#c$gi#e$gi#g$gi#i$gi#j$gi#m$gi'f$gi'p$gi!R$gi!S$gi~P%%aOu(SOx(TO'x(XOP$xi'w$xi!S$xi~OQ$xiZ$xij$xiv$xi!a$xi!b$xi!d$xi!j$xi#[$xi#]$xi#^$xi#_$xi#`$xi#a$xi#b$xi#c$xi#e$xi#g$xi#i$xi#j$xi#m$xi'f$xi'p$xi!R$xi~P%LjOu(SOx(TOP$zi'w$zi'x$zi!S$zi~OQ$ziZ$zij$ziv$zi!a$zi!b$zi!d$zi!j$zi#[$zi#]$zi#^$zi#_$zi#`$zi#a$zi#b$zi#c$zi#e$zi#g$zi#i$zi#j$zi#m$zi'f$zi'p$zi!R$zi~P%NnO#m$Zy!R$Zy!S$Zy~P#*XO#m#Oy!R#Oy!S#Oy~P#*XO!]!wO!R&tq!c&tq~O!R-RO!c'}y~O!O&vq!R&vq~P!BpO!O7tO~P!BpO!R.^O!S(Vy~O!R2oO!S(Sq~O!X8QO!Y8QO'^$dO'g(jO'o+iO~O!T.yO%Q8TO~O!T.yO%Q8TO~P!BpO!c8WO~O_$^O!{8]O'W$^O~O_$^O!]!wO!{8]O'W$^O~OQ$gqZ$gqj$gqv$gq!a$gq!b$gq!d$gq!j$gq#[$gq#]$gq#^$gq#_$gq#`$gq#a$gq#b$gq#c$gq#e$gq#g$gq#i$gq#j$gq#m$gq'f$gq'p$gq!R$gq!S$gq~P%%aOQ$iqZ$iqj$iqv$iq!a$iq!b$iq!d$iq!j$iq#[$iq#]$iq#^$iq#_$iq#`$iq#a$iq#b$iq#c$iq#e$iq#g$iq#i$iq#j$iq#m$iq'f$iq'p$iq!R$iq!S$iq~P%%aO'a$|!Z!R$|!Z!{$|!Z#m$|!Z~P!#{O!R&{q!S&{q~P#*XO_$^O!{8oO'W$^O~O#W$|!ZQ$|!ZZ$|!Z_$|!Zj$|!Zv$|!Z!R$|!Z!a$|!Z!b$|!Z!d$|!Z!j$|!Z#[$|!Z#]$|!Z#^$|!Z#_$|!Z#`$|!Z#a$|!Z#b$|!Z#c$|!Z#e$|!Z#g$|!Z#i$|!Z#j$|!Z'W$|!Z'f$|!Z'p$|!Z!c$|!Z!O$|!Z!T$|!Z!{$|!Zn$|!Z%Q$|!Z!]$|!Z~P!BpOP;uOu(SOx(TO'w(VO'x(XO~O!S!za!W!za!X!za!Y!za!r!za!s!za!t!za!x!za'^!za'g!za'o!za~P&,_O!W'eX!X'eX!Y'eX!r'eX!s'eX!t'eX!x'eX'^'eX'g'eX'o'eX~P%'eOQ$|!ZZ$|!Zj$|!Zv$|!Z!a$|!Z!b$|!Z!d$|!Z!j$|!Z#[$|!Z#]$|!Z#^$|!Z#_$|!Z#`$|!Z#a$|!Z#b$|!Z#c$|!Z#e$|!Z#g$|!Z#i$|!Z#j$|!Z#m$|!Z'f$|!Z'p$|!Z!R$|!Z!S$|!Z~P%%aO!Wra!Xra!Yra!rra!sra!tra!xra'^ra'gra'ora~P%;OO!W$^a!X$^a!Y$^a!r$^a!s$^a!t$^a!x$^a'^$^a'g$^a'o$^a~P%=SO!W$`a!X$`a!Y$`a!r$`a!s$`a!t$`a!x$`a'^$`a'g$`a'o$`a~P%?WO!S$na!W$na!X$na!Y$na!r$na!s$na!t$na!x$na'^$na'g$na'o$na~P&,_O!W$xi!X$xi!Y$xi!r$xi!s$xi!t$xi!x$xi'^$xi'g$xi'o$xi~P%LjO!W$zi!X$zi!Y$zi!r$zi!s$zi!t$zi!x$zi'^$zi'g$zi'o$zi~P%NnO!S$gi!W$gi!X$gi!Y$gi!r$gi!s$gi!t$gi!x$gi'^$gi'g$gi'o$gi~P&,_O!S$gq!W$gq!X$gq!Y$gq!r$gq!s$gq!t$gq!x$gq'^$gq'g$gq'o$gq~P&,_O!S$iq!W$iq!X$iq!Y$iq!r$iq!s$iq!t$iq!x$iq'^$iq'g$iq'o$iq~P&,_O!S$|!Z!W$|!Z!X$|!Z!Y$|!Z!r$|!Z!s$|!Z!t$|!Z!x$|!Z'^$|!Z'g$|!Z'o$|!Z~P&,_On'hX~P.jOn[X!O[X!c[X%r[X!T[X%Q[X!][X~P$zO!]dX!c[X!cdX'pdX~P;dOQ9^OR9^O]cOb;`Oc!jOhcOj9^OkcOlcOq9^Os9^OxRO{cO|cO}cO!TSO!_9`O!dUO!g9^O!h9^O!i9^O!j9^O!k9^O!n!iO#t!lO#x^O']'cO'fQO'oYO'|;^O~O]#qOh$QOj#rOk#qOl#qOq$ROs9uOx#yO!T#zO!_;fO!d#vO#V:OO#t$VO$_9xO$a9{O$d$WO']&{O'b$PO'f#sO~O!R9pO!S$]a~O]#qOh$QOj#rOk#qOl#qOq$ROs9vOx#yO!T#zO!_;gO!d#vO#V:PO#t$VO$_9yO$a9|O$d$WO']&{O'b$PO'f#sO~O#d'jO~P&]P!AQ!AY!A^!A^P!>YP!Ab!AbP!DVP!DZ?Z?Z!Da!GT8SP8SP8S8SP!HW8S8S!Jf8S!M_8S# g8S8S#!T#$c#$c#$g#$c#$oP#$cP8S#%k8S#'X8S8S-zPPP#(yPP#)c#)cP#)cP#)x#)cPP#*OP#)uP#)u#*b!!X#)u#+P#+V#+Y([#+]([P#+d#+d#+dP([P([P([P([PP([P#+j#+mP#+m([P#+qP#+tP([P([P([P([P([P([([#+z#,U#,[#,b#,p#,v#,|#-W#-^#-m#-s#.R#.X#._#.m#/S#0z#1Y#1`#1f#1l#1r#1|#2S#2Y#2d#2v#2|PPPPPPPP#3SPP#3v#7OPP#8f#8m#8uPP#>a#@t#Fp#Fs#Fv#GR#GUPP#GX#G]#Gz#Hq#Hu#IZPP#I_#Ie#IiP#Il#Ip#Is#Jc#Jy#KO#KR#KU#K[#K_#Kc#KgmhOSj}!n$]%c%f%g%i*o*t/g/jQ$imQ$ppQ%ZyS&V!b+`Q&k!jS(l#z(qQ)g$jQ)t$rQ*`%TQ+f&^S+k&d+mQ+}&lQ-k(sQ/U*aY0Z+o+p+q+r+sS2t.y2vU3|0[0^0aU5g2y2z2{S6]4O4RS7R5h5iQ7m6_R8Q7T$p[ORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8o!j'e#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aQ(}$SQ)l$lQ*b%WQ*i%`Q,X9tQ.W)aQ.c)mQ/^*gQ2_.^Q3Z/VQ4^9vQ5S2`R8{9upeOSjy}!n$]%Y%c%f%g%i*o*t/g/jR*d%[&WVOSTjkn}!S!W!k!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%z&S&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;`;a[!cRU!]!`%x&WQ$clQ$hmS$mp$rv$wrs!r!u$Z$u&`&t&w)x)y)z*m+Y+h,S,U/o0lQ%PwQ&h!iQ&j!jS(_#v(cS)f$i$jQ)j$lQ)w$tQ*Z%RQ*_%TS+|&k&lQ-V(`Q.[)gQ.b)mQ.d)nQ.g)rQ/P*[S/T*`*aQ0h+}Q1b-RQ2^.^Q2b.aQ2g.iQ3Y/UQ4i1cQ5R2`Q5U2dQ6u5QR7w6vx#xa!y$T$U$Y(W(Y(b(w(x,_-Y-w1a1y6i;^;i;j;k!Y$fm!j$h$i$j&U&j&k&l(k)f)g+]+j+|+}-d.[0Q0W0]0h1u3{4Q6Z7k8^Q)`$cQ*P$|Q*S$}Q*^%TQ.k)wQ/O*ZU/S*_*`*aQ3T/PS3X/T/UQ5b2sQ5t3YS7P5c5fS8O7Q7SQ8f8PQ8u8g#[;b!w#d#v#y&g'}(Z(h)])_)a*O*R+y-Z-].R.T.p.s.{.}1k1s2Q2T2X2j3Q3S4l4u4}5k5p6z7W8T9w9z9}:U:X:[:a:d:j;l;n;t;u;vd;c9d9x9{:O:V:Y:]:b:e:ke;d9r9y9|:P:W:Z:^:c:f:lW#}a$P(y;^S$|t%YQ$}uQ%OvR)}$z%P#|a!w!y#d#v#y$T$U$Y&g'}(W(Y(Z(b(h(w(x)])_)a*O*R+y,_-Y-Z-]-w.R.T.p.s.{.}1a1k1s1y2Q2T2X2j3Q3S4l4u4}5k5p6i6z7W8T9d9r9w9x9y9z9{9|9}:O:P:U:V:W:X:Y:Z:[:]:^:a:b:c:d:e:f:j:k:l;^;i;j;k;l;n;t;u;vT(O#s(PX)O$S9t9u9vU&Z!b$v+cQ'U!{Q)q$oQ.t*TQ1z-tR5^2o&^cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;a$]#aZ!_!o$a%w%}&y'Q'W'X'Y'Z'[']'^'_'`'a'b'd'g'k'u)p+R+^+g,O,^,d,g,i,w-x/v/y0i0s0w0x0y0z0{0|0}1O1P1Q1R1S1T1W1]2O2[3s3v4W4[4]4b4c5`6S6V6b6f6g7g7z8Z8m8y9_:|T!XQ!Y&_cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aQ&X!bR/|+`Y&R!b&V&^+`+fS(k#z(qS+j&d+mS-d(l(sQ-e(mQ-l(tQ.v*VU0W+k+o+pU0]+q+r+sS0b+t2xQ1u-kQ1w-mQ1x-nS2s.y2vU3{0Z0[0^Q4P0_Q4Q0aS5c2t2{S5f2y2zU6Z3|4O4RQ6`4SS7Q5g5hQ7S5iS7k6]6_S8P7R7TQ8^7mQ8g8QQ;h;oR;m;slhOSj}!n$]%c%f%g%i*o*t/g/jQ%k!QS&x!v9cQ)d$gQ*X%PQ*Y%QQ+z&iS,]&}:RS-y)V:_Q.Y)eQ.x*WQ/n*vQ/p*wQ/x+ZQ0`+qQ0f+{S2P-z:gQ2Y.ZS2].]:hQ3r/zQ3u0RQ4U0gQ5P2ZQ6T3tQ6X3zQ6a4VQ7e6RQ7h6YQ8Y7iQ8l8[R8x8n$W#`Z!_!o%w%}&y'Q'W'X'Y'Z'[']'^'_'`'a'b'd'g'k'u)p+R+^+g,O,^,d,g,w-x/v/y0i0s0w0x0y0z0{0|0}1O1P1Q1R1S1T1W1]2O2[3s3v4W4[4]4b4c5`6S6V6b6f6g7g7z8Z8m8y9_:|W(v#{&|1V8qT)Z$a,i$W#_Z!_!o%w%}&y'Q'W'X'Y'Z'[']'^'_'`'a'b'd'g'k'u)p+R+^+g,O,^,d,g,w-x/v/y0i0s0w0x0y0z0{0|0}1O1P1Q1R1S1T1W1]2O2[3s3v4W4[4]4b4c5`6S6V6b6f6g7g7z8Z8m8y9_:|Q'f#`S)Y$a,iR-{)Z&^cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aQ%f{Q%g|Q%i!OQ%j!PR/f*rQ&e!iQ)[$cQ+w&hS.Q)`)wS0c+u+vW2S-}.O.P.kS4T0d0eU4|2U2V2WU6s4{5Y5ZQ7v6tR8b7yT+l&d+mS+j&d+mU0W+k+o+pU0]+q+r+sS0b+t2xS2s.y2vU3{0Z0[0^Q4P0_Q4Q0aS5c2t2{S5f2y2zU6Z3|4O4RQ6`4SS7Q5g5hQ7S5iS7k6]6_S8P7R7TQ8^7mR8g8QS+l&d+mT2u.y2vS&r!q/dQ-U(_Q-b(kS0V+j2sQ1g-VS1p-c-lU3}0]0b5fQ4h1bS4s1v1xU6^4P4Q7SQ6k4iQ6r4vR7n6`Q!xXS&q!q/dQ)W$[Q)b$eQ)h$kQ,Q&rQ-T(_Q-a(kQ-f(nQ.X)cQ/Q*]S0U+j2sS1f-U-VS1o-b-lQ1r-eQ1t-gQ3V/RW3y0V0]0b5fQ4g1bQ4k1gS4o1p1xQ4t1wQ5r3WW6[3}4P4Q7SS6j4h4iS6n4p:iQ6p4sQ6}5aQ7[5sS7l6^6`Q7r6kS7s6o:mQ7u6rQ7|7OQ8V7]Q8_7nS8a7t:nQ8d7}Q8s8eQ9Q8tQ9X9RQ:u:pQ;T:zQ;U:{Q;V;hR;[;m$rWORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%`%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8oS!xn!k!j:o#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aR:u;`$rXORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%`%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8oQ$[b!Y$em!j$h$i$j&U&j&k&l(k)f)g+]+j+|+}-d.[0Q0W0]0h1u3{4Q6Z7k8^S$kn!kQ)c$fQ*]%TW/R*^*_*`*aU3W/S/T/UQ5a2sS5s3X3YU7O5b5c5fQ7]5tU7}7P7Q7SS8e8O8PS8t8f8gQ9R8u!j:p#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aQ:z;_R:{;`$f]OSTjk}!S!W!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%c%e%f%g%i%m%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8oY!hRU!]!`%xv$wrs!r!u$Z$u&`&t&w)x)y)z*m+Y+h,S,U/o0lQ*j%`!h:q#]#k'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aR:t&WS&[!b$vR0O+c$p[ORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8o!j'e#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aR*i%`$roORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%`%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8oQ'U!{!k:r#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;a!h#VZ!_$a%w%}&y'Q'_'`'a'b'g'k)p+R+g,O,^,d,w-x0i0s1T2O2[3v4W4[6V7g8Z8m8y9_!R9k'd'u+^,i/v/y0w1P1Q1R1S1W1]3s4]4b4c5`6S6b6f6g7z:|!d#XZ!_$a%w%}&y'Q'a'b'g'k)p+R+g,O,^,d,w-x0i0s1T2O2[3v4W4[6V7g8Z8m8y9_}9m'd'u+^,i/v/y0w1R1S1W1]3s4]4b4c5`6S6b6f6g7z:|!`#]Z!_$a%w%}&y'Q'g'k)p+R+g,O,^,d,w-x0i0s1T2O2[3v4W4[6V7g8Z8m8y9_Q1a-Px;a'd'u+^,i/v/y0w1W1]3s4]4b4c5`6S6b6f6g7z:|Q;i;pQ;j;qR;k;r&^cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aS#l`#mR1Y,l&e_ORSTU`jk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k#m$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,l,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aS#g^#nT'n#i'rT#h^#nT'p#i'r&e`ORSTU`jk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k#m$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,l,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aT#l`#mQ#o`R'y#m$rbORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%`%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8o!k;_#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;a#RdOSUj}!S!W!n!|#k$]%[%_%`%c%e%f%g%i%m&S&f'w)^*k*o*t+x,m-u.S.|/_/`/a/c/g/j/l1X2i3R3f3h3i5o5}x#{a!y$T$U$Y(W(Y(b(w(x,_-Y-w1a1y6i;^;i;j;k#[&|!w#d#v#y&g'}(Z(h)])_)a*O*R+y-Z-].R.T.p.s.{.}1k1s2Q2T2X2j3Q3S4l4u4}5k5p6z7W8T9w9z9}:U:X:[:a:d:j;l;n;t;u;vQ)S$WQ,x(Sd1V9r9y9|:P:W:Z:^:c:f:le8q9d9x9{:O:V:Y:]:b:e:kx#wa!y$T$U$Y(W(Y(b(w(x,_-Y-w1a1y6i;^;i;j;kQ(d#xS(n#z(qQ)T$XQ-g(o#[:w!w#d#v#y&g'}(Z(h)])_)a*O*R+y-Z-].R.T.p.s.{.}1k1s2Q2T2X2j3Q3S4l4u4}5k5p6z7W8T9w9z9}:U:X:[:a:d:j;l;n;t;u;vd:x9d9x9{:O:V:Y:]:b:e:kd:y9r9y9|:P:W:Z:^:c:f:lQ:};bQ;O;cQ;P;dQ;Q;eQ;R;fR;S;gx#{a!y$T$U$Y(W(Y(b(w(x,_-Y-w1a1y6i;^;i;j;k#[&|!w#d#v#y&g'}(Z(h)])_)a*O*R+y-Z-].R.T.p.s.{.}1k1s2Q2T2X2j3Q3S4l4u4}5k5p6z7W8T9w9z9}:U:X:[:a:d:j;l;n;t;u;vd1V9r9y9|:P:W:Z:^:c:f:le8q9d9x9{:O:V:Y:]:b:e:klfOSj}!n$]%c%f%g%i*o*t/g/jQ(g#yQ*}%pQ+O%rR1j-Z%O#|a!w!y#d#v#y$T$U$Y&g'}(W(Y(Z(b(h(w(x)])_)a*O*R+y,_-Y-Z-]-w.R.T.p.s.{.}1a1k1s1y2Q2T2X2j3Q3S4l4u4}5k5p6i6z7W8T9d9r9w9x9y9z9{9|9}:O:P:U:V:W:X:Y:Z:[:]:^:a:b:c:d:e:f:j:k:l;^;i;j;k;l;n;t;u;vQ*Q$}Q.r*SQ2m.qR5]2nT(p#z(qS(p#z(qT2u.y2vQ)b$eQ-f(nQ.X)cQ/Q*]Q3V/RQ5r3WQ6}5aQ7[5sQ7|7OQ8V7]Q8d7}Q8s8eQ9Q8tR9X9Rp(W#t'O)U-X-o-p0q1h1}4f4w7q:v;W;X;Y!n:U&z'i(^(f+v,[,t-P-^-|.P.o.q0e0p1i1m2W2l2n3O4Y4Z4m4q4y5O5Z5n6m6q7Y8`;Z;];p;q;r[:V8p9O9V9Y9Z9]]:W1U4a6c7o7p8zr(Y#t'O)U,}-X-o-p0q1h1}4f4w7q:v;W;X;Y!p:X&z'i(^(f+v,[,t-P-^-|.P.o.q0e0n0p1i1m2W2l2n3O4Y4Z4m4q4y5O5Z5n6m6q7Y8`;Z;];p;q;r^:Y8p9O9T9V9Y9Z9]_:Z1U4a6c6d7o7p8zpeOSjy}!n$]%Y%c%f%g%i*o*t/g/jQ%VxR*k%`peOSjy}!n$]%Y%c%f%g%i*o*t/g/jR%VxQ*U%OR.n)}qeOSjy}!n$]%Y%c%f%g%i*o*t/g/jQ.z*ZS3P/O/PW5j2|2}3O3TU7V5l5m5nU8R7U7X7YQ8h8SR8v8iQ%^yR*e%YR3^/XR7_5uS$mp$rR.d)nQ%czR*o%dR*u%jT/h*t/jR*y%kQ*x%kR/q*yQjOQ!nST$`j!nQ(P#sR,u(PQ!YQR%u!YQ!^RU%{!^%|+UQ%|!_R+U%}Q+a&XR/}+aQ,`'OR0r,`Q,c'QS0u,c0vR0v,dQ+m&dR0X+mS!eR$uU&a!e&b+VQ&b!fR+V&OQ+d&[R0P+dQ&u!sQ,R&sU,V&u,R0mR0m,WQ'r#iR,n'rQ#m`R'x#mQ#cZU'h#c+Q9qQ+Q9_R9q'uQ-S(_W1d-S1e4j6lU1e-T-U-VS4j1f1gR6l4k$k(U#t&z'O'i(^(f)P)Q)U+v,Y,Z,[,t,}-O-P-X-^-o-p-|.P.o.q0e0n0o0p0q1U1h1i1m1}2W2l2n3O4Y4Z4_4`4a4f4m4q4w4y5O5Z5n6c6d6e6m6q7Y7o7p7q8`8p8z8|8}9O9T9U9V9Y9Z9]:v;W;X;Y;Z;];p;q;rQ-[(fU1l-[1n4nQ1n-^R4n1mQ(q#zR-i(qQ(z$OR-r(zQ2R-|R4z2RQ){$xR.m){Q2p.tS5_2p6|R6|5`Q*W%PR.w*WQ2v.yR5d2vQ/W*bS3[/W5vR5v3^Q._)jW2a._2c5T6wQ2c.bQ5T2bR6w5UQ)o$mR.e)oQ/j*tR3l/jWiOSj!nQ%h}Q)X$]Q*n%cQ*p%fQ*q%gQ*s%iQ/e*oS/h*t/jR3k/gQ$_gQ%l!RQ%o!TQ%q!UQ%s!VQ)v$sQ)|$yQ*d%^Q*{%nQ-h(pS/Z*e*hQ/r*zQ/s*}Q/t+OS0S+j2sQ2f.hQ2k.oQ3U/QQ3`/]Q3j/fY3w0U0V0]0b5fQ5X2hQ5[2lQ5q3VQ5w3_[6U3v3y3}4P4Q7SQ6x5VQ7Z5rQ7`5xW7f6V6[6^6`Q7x6yQ7{6}Q8U7[U8X7g7l7nQ8c7|Q8j8VS8k8Z8_Q8r8dQ8w8mQ9P8sQ9S8yQ9W9QR9[9XQ$gmQ&i!jU)e$h$i$jQ+Z&UU+{&j&k&lQ-`(kS.Z)f)gQ/z+]Q0R+jS0g+|+}Q1q-dQ2Z.[Q3t0QS3z0W0]Q4V0hQ4r1uS6Y3{4QQ7i6ZQ8[7kR8n8^S#ua;^R({$PU$Oa$P;^R-q(yQ#taS&z!w)aQ'O!yQ'i#dQ(^#vQ(f#yQ)P$TQ)Q$UQ)U$YQ+v&gQ,Y9wQ,Z9zQ,[9}Q,t'}Q,}(WQ-O(YQ-P(ZQ-X(bQ-^(hQ-o(wQ-p(xd-|)].R.{2T3Q4}5k6z7W8TQ.P)_Q.o*OQ.q*RQ0e+yQ0n:UQ0o:XQ0p:[Q0q,_Q1U9rQ1h-YQ1i-ZQ1m-]Q1}-wQ2W.TQ2l.pQ2n.sQ3O.}Q4Y:aQ4Z:dQ4_9yQ4`9|Q4a:PQ4f1aQ4m1kQ4q1sQ4w1yQ4y2QQ5O2XQ5Z2jQ5n3SQ6c:^Q6d:WQ6e:ZQ6m4lQ6q4uQ7Y5pQ7o:cQ7p:fQ7q6iQ8`:jQ8p9dQ8z:lQ8|9xQ8}9{Q9O:OQ9T:VQ9U:YQ9V:]Q9Y:bQ9Z:eQ9]:kQ:v;^Q;W;iQ;X;jQ;Y;kQ;Z;lQ;];nQ;p;tQ;q;uR;r;vlgOSj}!n$]%c%f%g%i*o*t/g/jS!pU%eQ%n!SQ%t!WQ'V!|Q'v#kS*h%[%_Q*l%`Q*z%mQ+W&SQ+u&fQ,r'wQ.O)^Q/b*kQ0d+xQ1[,mQ1{-uQ2V.SQ2}.|Q3b/_Q3c/`Q3e/aQ3g/cQ3n/lQ4d1XQ5Y2iQ5m3RQ5|3fQ6O3hQ6P3iQ7X5oR7b5}!vZOSUj}!S!n!|$]%[%_%`%c%e%f%g%i%m&S&f)^*k*o*t+x-u.S.|/_/`/a/c/g/j/l2i3R3f3h3i5o5}Q!_RQ!oTQ$akS%w!]%zQ%}!`Q&y!vQ'Q!zQ'W#PQ'X#QQ'Y#RQ'Z#SQ'[#TQ']#UQ'^#VQ'_#WQ'`#XQ'a#YQ'b#ZQ'd#]Q'g#bQ'k#eW'u#k'w,m1XQ)p$nS+R%x+TS+^&W/{Q+g&_Q,O&pQ,^&}Q,d'RQ,g9^Q,i9`Q,w(RQ-x)VQ/v+XQ/y+[Q0i,PQ0s,bQ0w9cQ0x9eQ0y9fQ0z9gQ0{9hQ0|9iQ0}9jQ1O9kQ1P9lQ1Q9mQ1R9nQ1S9oQ1T,hQ1W9sQ1]9pQ2O-zQ2[.]Q3s:QQ3v0TQ4W0jQ4[0tQ4]:RQ4b:TQ4c:_Q5`2qQ6S3qQ6V3xQ6b:`Q6f:gQ6g:hQ7g6WQ7z6{Q8Z7jQ8m8]Q8y8oQ9_!WR:|;aR!aRR&Y!bS&U!b+`S+]&V&^R0Q+fR'P!yR'S!zT!tU$ZS!sU$ZU$xrs*mS&s!r!uQ,T&tQ,W&wQ.l)zS0k,S,UR4X0l`!dR!]!`$u%x&`)x+hh!qUrs!r!u$Z&t&w)z,S,U0lQ/d*mQ/w+YQ3p/oT:s&W)yT!gR$uS!fR$uS%y!]&`S&O!`)xS+S%x+hT+_&W)yT&]!b$vQ#i^R'{#nT'q#i'rR1Z,lT(a#v(cR(i#yQ-})]Q2U.RQ2|.{Q4{2TQ5l3QQ6t4}Q7U5kQ7y6zQ8S7WR8i8TlhOSj}!n$]%c%f%g%i*o*t/g/jQ%]yR*d%YV$yrs*mR.u*TR*c%WQ$qpR)u$rR)k$lT%az%dT%bz%dT/i*t/j",nodeNames:"\u26A0 extends ArithOp ArithOp InterpolationStart LineComment BlockComment Script ExportDeclaration export Star as VariableName String from ; default FunctionDeclaration async function VariableDefinition TypeParamList TypeDefinition ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation VoidType void TypeofType typeof MemberExpression . ?. PropertyName [ TemplateString Interpolation null super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewExpression new TypeArgList CompareOp < ) ( ArgList UnaryExpression await yield delete LogicOp BitOp ParenthesizedExpression ClassExpression class extends ClassBody MethodDeclaration Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression PrivatePropertyName BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof in const CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXStartTag JSXSelfClosingTag JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature CallSignature TypePredicate is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody MethodDeclaration AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement",maxTerm:332,context:df,nodeProps:[["closedBy",4,"InterpolationEnd",40,"]",51,"}",66,")",132,"JSXSelfCloseEndTag JSXEndTag",146,"JSXEndTag"],["group",-26,8,15,17,58,184,188,191,192,194,197,200,211,213,219,221,223,225,228,234,240,242,244,246,248,250,251,"Statement",-30,12,13,24,27,28,41,43,44,45,47,52,60,68,74,75,91,92,101,103,119,122,124,125,126,127,129,130,148,149,151,"Expression",-22,23,25,29,32,34,152,154,156,157,159,160,161,163,164,165,167,168,169,178,180,182,183,"Type",-3,79,85,90,"ClassItem"],["openedBy",30,"InterpolationStart",46,"[",50,"{",65,"(",131,"JSXStartTag",141,"JSXStartTag JSXStartCloseTag"]],propSources:[bf],skippedNodes:[0,5,6],repeatNodeCount:28,tokenData:"!C}~R!`OX%TXY%cYZ'RZ[%c[]%T]^'R^p%Tpq%cqr'crs(kst0htu2`uv4pvw5ewx6cxyk|}?O}!O>k!O!P?`!P!QCl!Q!R!0[!R![!1q![!]!7s!]!^!8V!^!_!8g!_!`!9d!`!a!:[!a!b!U#R#S2`#S#T!>i#T#o2`#o#p!>y#p#q!?O#q#r!?f#r#s!?x#s$f%T$f$g%c$g#BY2`#BY#BZ!@Y#BZ$IS2`$IS$I_!@Y$I_$I|2`$I|$I}!Bq$I}$JO!Bq$JO$JT2`$JT$JU!@Y$JU$KV2`$KV$KW!@Y$KW&FU2`&FU&FV!@Y&FV?HT2`?HT?HU!@Y?HU~2`W%YR$UWO!^%T!_#o%T#p~%T7Z%jg$UW'Y7ROX%TXY%cYZ%TZ[%c[p%Tpq%cq!^%T!_#o%T#p$f%T$f$g%c$g#BY%T#BY#BZ%c#BZ$IS%T$IS$I_%c$I_$JT%T$JT$JU%c$JU$KV%T$KV$KW%c$KW&FU%T&FU&FV%c&FV?HT%T?HT?HU%c?HU~%T7Z'YR$UW'Z7RO!^%T!_#o%T#p~%T$T'jS$UW!j#{O!^%T!_!`'v!`#o%T#p~%T$O'}S#e#v$UWO!^%T!_!`(Z!`#o%T#p~%T$O(bR#e#v$UWO!^%T!_#o%T#p~%T)X(rZ$UW]#eOY(kYZ)eZr(krs*rs!^(k!^!_+U!_#O(k#O#P-b#P#o(k#o#p+U#p~(k&r)jV$UWOr)ers*Ps!^)e!^!_*a!_#o)e#o#p*a#p~)e&r*WR$P&j$UWO!^%T!_#o%T#p~%T&j*dROr*ars*ms~*a&j*rO$P&j)X*{R$P&j$UW]#eO!^%T!_#o%T#p~%T)P+ZV]#eOY+UYZ*aZr+Urs+ps#O+U#O#P+w#P~+U)P+wO$P&j]#e)P+zROr+Urs,Ts~+U)P,[U$P&j]#eOY,nZr,nrs-Vs#O,n#O#P-[#P~,n#e,sU]#eOY,nZr,nrs-Vs#O,n#O#P-[#P~,n#e-[O]#e#e-_PO~,n)X-gV$UWOr(krs-|s!^(k!^!_+U!_#o(k#o#p+U#p~(k)X.VZ$P&j$UW]#eOY.xYZ%TZr.xrs/rs!^.x!^!_,n!_#O.x#O#P0S#P#o.x#o#p,n#p~.x#m/PZ$UW]#eOY.xYZ%TZr.xrs/rs!^.x!^!_,n!_#O.x#O#P0S#P#o.x#o#p,n#p~.x#m/yR$UW]#eO!^%T!_#o%T#p~%T#m0XT$UWO!^.x!^!_,n!_#o.x#o#p,n#p~.x3]0mZ$UWOt%Ttu1`u!^%T!_!c%T!c!}1`!}#R%T#R#S1`#S#T%T#T#o1`#p$g%T$g~1`3]1g]$UW'o3TOt%Ttu1`u!Q%T!Q![1`![!^%T!_!c%T!c!}1`!}#R%T#R#S1`#S#T%T#T#o1`#p$g%T$g~1`7Z2k_$UW#zS']$y'g3SOt%Ttu2`u}%T}!O3j!O!Q%T!Q![2`![!^%T!_!c%T!c!}2`!}#R%T#R#S2`#S#T%T#T#o2`#p$g%T$g~2`[3q_$UW#zSOt%Ttu3ju}%T}!O3j!O!Q%T!Q![3j![!^%T!_!c%T!c!}3j!}#R%T#R#S3j#S#T%T#T#o3j#p$g%T$g~3j$O4wS#^#v$UWO!^%T!_!`5T!`#o%T#p~%T$O5[R$UW#o#vO!^%T!_#o%T#p~%T5b5lU'x5Y$UWOv%Tvw6Ow!^%T!_!`5T!`#o%T#p~%T$O6VS$UW#i#vO!^%T!_!`5T!`#o%T#p~%T)X6jZ$UW]#eOY6cYZ7]Zw6cwx*rx!^6c!^!_8T!_#O6c#O#P:T#P#o6c#o#p8T#p~6c&r7bV$UWOw7]wx*Px!^7]!^!_7w!_#o7]#o#p7w#p~7]&j7zROw7wwx*mx~7w)P8YV]#eOY8TYZ7wZw8Twx+px#O8T#O#P8o#P~8T)P8rROw8Twx8{x~8T)P9SU$P&j]#eOY9fZw9fwx-Vx#O9f#O#P9}#P~9f#e9kU]#eOY9fZw9fwx-Vx#O9f#O#P9}#P~9f#e:QPO~9f)X:YV$UWOw6cwx:ox!^6c!^!_8T!_#o6c#o#p8T#p~6c)X:xZ$P&j$UW]#eOY;kYZ%TZw;kwx/rx!^;k!^!_9f!_#O;k#O#PW{!^%T!_!`5T!`#o%T#p~%T$O>_S#[#v$UWO!^%T!_!`5T!`#o%T#p~%T%w>rSj%o$UWO!^%T!_!`5T!`#o%T#p~%T&i?VR!R&a$UWO!^%T!_#o%T#p~%T7Z?gVu5^$UWO!O%T!O!P?|!P!Q%T!Q![@r![!^%T!_#o%T#p~%T!{@RT$UWO!O%T!O!P@b!P!^%T!_#o%T#p~%T!{@iR!Q!s$UWO!^%T!_#o%T#p~%T!{@yZ$UWk!sO!Q%T!Q![@r![!^%T!_!g%T!g!hAl!h#R%T#R#S@r#S#X%T#X#YAl#Y#o%T#p~%T!{AqZ$UWO{%T{|Bd|}%T}!OBd!O!Q%T!Q![CO![!^%T!_#R%T#R#SCO#S#o%T#p~%T!{BiV$UWO!Q%T!Q![CO![!^%T!_#R%T#R#SCO#S#o%T#p~%T!{CVV$UWk!sO!Q%T!Q![CO![!^%T!_#R%T#R#SCO#S#o%T#p~%T7ZCs`$UW#]#vOYDuYZ%TZzDuz{Jl{!PDu!P!Q!-e!Q!^Du!^!_Fx!_!`!.^!`!a!/]!a!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~DuXD|[$UW}POYDuYZ%TZ!PDu!P!QEr!Q!^Du!^!_Fx!_!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~DuXEy_$UW}PO!^%T!_#Z%T#Z#[Er#[#]%T#]#^Er#^#a%T#a#bEr#b#g%T#g#hEr#h#i%T#i#jEr#j#m%T#m#nEr#n#o%T#p~%TPF}V}POYFxZ!PFx!P!QGd!Q!}Fx!}#OG{#O#PHh#P~FxPGiU}P#Z#[Gd#]#^Gd#a#bGd#g#hGd#i#jGd#m#nGdPHOTOYG{Z#OG{#O#PH_#P#QFx#Q~G{PHbQOYG{Z~G{PHkQOYFxZ~FxXHvY$UWOYHqYZ%TZ!^Hq!^!_G{!_#OHq#O#PIf#P#QDu#Q#oHq#o#pG{#p~HqXIkV$UWOYHqYZ%TZ!^Hq!^!_G{!_#oHq#o#pG{#p~HqXJVV$UWOYDuYZ%TZ!^Du!^!_Fx!_#oDu#o#pFx#p~Du7ZJs^$UW}POYJlYZKoZzJlz{NQ{!PJl!P!Q!,R!Q!^Jl!^!_!!]!_!}Jl!}#O!'|#O#P!+a#P#oJl#o#p!!]#p~Jl7ZKtV$UWOzKoz{LZ{!^Ko!^!_M]!_#oKo#o#pM]#p~Ko7ZL`X$UWOzKoz{LZ{!PKo!P!QL{!Q!^Ko!^!_M]!_#oKo#o#pM]#p~Ko7ZMSR$UWU7RO!^%T!_#o%T#p~%T7RM`ROzM]z{Mi{~M]7RMlTOzM]z{Mi{!PM]!P!QM{!Q~M]7RNQOU7R7ZNX^$UW}POYJlYZKoZzJlz{NQ{!PJl!P!Q! T!Q!^Jl!^!_!!]!_!}Jl!}#O!'|#O#P!+a#P#oJl#o#p!!]#p~Jl7Z! ^_$UWU7R}PO!^%T!_#Z%T#Z#[Er#[#]%T#]#^Er#^#a%T#a#bEr#b#g%T#g#hEr#h#i%T#i#jEr#j#m%T#m#nEr#n#o%T#p~%T7R!!bY}POY!!]YZM]Zz!!]z{!#Q{!P!!]!P!Q!&x!Q!}!!]!}#O!$`#O#P!&f#P~!!]7R!#VY}POY!!]YZM]Zz!!]z{!#Q{!P!!]!P!Q!#u!Q!}!!]!}#O!$`#O#P!&f#P~!!]7R!#|UU7R}P#Z#[Gd#]#^Gd#a#bGd#g#hGd#i#jGd#m#nGd7R!$cWOY!$`YZM]Zz!$`z{!${{#O!$`#O#P!&S#P#Q!!]#Q~!$`7R!%OYOY!$`YZM]Zz!$`z{!${{!P!$`!P!Q!%n!Q#O!$`#O#P!&S#P#Q!!]#Q~!$`7R!%sTU7ROYG{Z#OG{#O#PH_#P#QFx#Q~G{7R!&VTOY!$`YZM]Zz!$`z{!${{~!$`7R!&iTOY!!]YZM]Zz!!]z{!#Q{~!!]7R!&}_}POzM]z{Mi{#ZM]#Z#[!&x#[#]M]#]#^!&x#^#aM]#a#b!&x#b#gM]#g#h!&x#h#iM]#i#j!&x#j#mM]#m#n!&x#n~M]7Z!(R[$UWOY!'|YZKoZz!'|z{!(w{!^!'|!^!_!$`!_#O!'|#O#P!*o#P#QJl#Q#o!'|#o#p!$`#p~!'|7Z!(|^$UWOY!'|YZKoZz!'|z{!(w{!P!'|!P!Q!)x!Q!^!'|!^!_!$`!_#O!'|#O#P!*o#P#QJl#Q#o!'|#o#p!$`#p~!'|7Z!*PY$UWU7ROYHqYZ%TZ!^Hq!^!_G{!_#OHq#O#PIf#P#QDu#Q#oHq#o#pG{#p~Hq7Z!*tX$UWOY!'|YZKoZz!'|z{!(w{!^!'|!^!_!$`!_#o!'|#o#p!$`#p~!'|7Z!+fX$UWOYJlYZKoZzJlz{NQ{!^Jl!^!_!!]!_#oJl#o#p!!]#p~Jl7Z!,Yc$UW}POzKoz{LZ{!^Ko!^!_M]!_#ZKo#Z#[!,R#[#]Ko#]#^!,R#^#aKo#a#b!,R#b#gKo#g#h!,R#h#iKo#i#j!,R#j#mKo#m#n!,R#n#oKo#o#pM]#p~Ko7Z!-lV$UWT7ROY!-eYZ%TZ!^!-e!^!_!.R!_#o!-e#o#p!.R#p~!-e7R!.WQT7ROY!.RZ~!.R$P!.g[$UW#o#v}POYDuYZ%TZ!PDu!P!QEr!Q!^Du!^!_Fx!_!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~Du]!/f[#wS$UW}POYDuYZ%TZ!PDu!P!QEr!Q!^Du!^!_Fx!_!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~Du!{!0cd$UWk!sO!O%T!O!P@r!P!Q%T!Q![!1q![!^%T!_!g%T!g!hAl!h#R%T#R#S!1q#S#U%T#U#V!3X#V#X%T#X#YAl#Y#b%T#b#c!2w#c#d!4m#d#l%T#l#m!5{#m#o%T#p~%T!{!1x_$UWk!sO!O%T!O!P@r!P!Q%T!Q![!1q![!^%T!_!g%T!g!hAl!h#R%T#R#S!1q#S#X%T#X#YAl#Y#b%T#b#c!2w#c#o%T#p~%T!{!3OR$UWk!sO!^%T!_#o%T#p~%T!{!3^W$UWO!Q%T!Q!R!3v!R!S!3v!S!^%T!_#R%T#R#S!3v#S#o%T#p~%T!{!3}Y$UWk!sO!Q%T!Q!R!3v!R!S!3v!S!^%T!_#R%T#R#S!3v#S#b%T#b#c!2w#c#o%T#p~%T!{!4rV$UWO!Q%T!Q!Y!5X!Y!^%T!_#R%T#R#S!5X#S#o%T#p~%T!{!5`X$UWk!sO!Q%T!Q!Y!5X!Y!^%T!_#R%T#R#S!5X#S#b%T#b#c!2w#c#o%T#p~%T!{!6QZ$UWO!Q%T!Q![!6s![!^%T!_!c%T!c!i!6s!i#R%T#R#S!6s#S#T%T#T#Z!6s#Z#o%T#p~%T!{!6z]$UWk!sO!Q%T!Q![!6s![!^%T!_!c%T!c!i!6s!i#R%T#R#S!6s#S#T%T#T#Z!6s#Z#b%T#b#c!2w#c#o%T#p~%T$u!7|R!]V$UW#m$fO!^%T!_#o%T#p~%T!q!8^R_!i$UWO!^%T!_#o%T#p~%T5w!8rR'bd!a/n#x&s'|P!P!Q!8{!^!_!9Q!_!`!9_W!9QO$WW#v!9VP#`#v!_!`!9Y#v!9_O#o#v#v!9dO#a#v$u!9kT!{$m$UWO!^%T!_!`'v!`!a!9z!a#o%T#p~%T$P!:RR#W#w$UWO!^%T!_#o%T#p~%T%V!:gT'a!R#a#v$RS$UWO!^%T!_!`!:v!`!a!;W!a#o%T#p~%T$O!:}R#a#v$UWO!^%T!_#o%T#p~%T$O!;_T#`#v$UWO!^%T!_!`5T!`!a!;n!a#o%T#p~%T$O!;uS#`#v$UWO!^%T!_!`5T!`#o%T#p~%T*a!]S#g#v$UWO!^%T!_!`5T!`#o%T#p~%T$a!>pR$UW'f$XO!^%T!_#o%T#p~%T~!?OO!T~5b!?VT'w5Y$UWO!^%T!_!`5T!`#o%T#p#q!=P#q~%T6X!?oR!S5}nQ$UWO!^%T!_#o%T#p~%TX!@PR!kP$UWO!^%T!_#o%T#p~%T7Z!@gr$UW'Y7R#zS']$y'g3SOX%TXY%cYZ%TZ[%c[p%Tpq%cqt%Ttu2`u}%T}!O3j!O!Q%T!Q![2`![!^%T!_!c%T!c!}2`!}#R%T#R#S2`#S#T%T#T#o2`#p$f%T$f$g%c$g#BY2`#BY#BZ!@Y#BZ$IS2`$IS$I_!@Y$I_$JT2`$JT$JU!@Y$JU$KV2`$KV$KW!@Y$KW&FU2`&FU&FV!@Y&FV?HT2`?HT?HU!@Y?HU~2`7Z!CO_$UW'Z7R#zS']$y'g3SOt%Ttu2`u}%T}!O3j!O!Q%T!Q![2`![!^%T!_!c%T!c!}2`!}#R%T#R#S2`#S#T%T#T#o2`#p$g%T$g~2`",tokenizers:[yf,ff,hf,gf,0,1,2,3,4,5,6,7,8,9,mf],topRules:{Script:[0,7]},dialects:{jsx:12107,ts:12109},dynamicPrecedences:{149:1,176:1},specialized:[{term:289,get:e=>vf[e]||-1},{term:299,get:e=>xf[e]||-1},{term:63,get:e=>Sf[e]||-1}],tokenPrec:12130});var Y=require("@codemirror/language"),Lr=require("@codemirror/state"),ap=require("@codemirror/view"),ce=require("@codemirror/autocomplete"),Dr=require("@lezer/common"),Qf=[(0,ce.snippetCompletion)("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),(0,ce.snippetCompletion)("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),(0,ce.snippetCompletion)("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),(0,ce.snippetCompletion)("do {\n ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),(0,ce.snippetCompletion)("while (${}) {\n ${}\n}",{label:"while",detail:"loop",type:"keyword"}),(0,ce.snippetCompletion)(`try { \${} } catch (\${error}) { \${} -}`,{label:"try",detail:"/ catch block",type:"keyword"}),(0,ee.snippetCompletion)("if (${}) {\n ${}\n}",{label:"if",detail:"block",type:"keyword"}),(0,ee.snippetCompletion)(`if (\${}) { +}`,{label:"try",detail:"/ catch block",type:"keyword"}),(0,ce.snippetCompletion)("if (${}) {\n ${}\n}",{label:"if",detail:"block",type:"keyword"}),(0,ce.snippetCompletion)(`if (\${}) { \${} } else { \${} -}`,{label:"if",detail:"/ else block",type:"keyword"}),(0,ee.snippetCompletion)(`class \${name} { +}`,{label:"if",detail:"/ else block",type:"keyword"}),(0,ce.snippetCompletion)(`class \${name} { constructor(\${params}) { \${} } -}`,{label:"class",detail:"definition",type:"keyword"}),(0,ee.snippetCompletion)('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),(0,ee.snippetCompletion)('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],Js=new vr,no=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function Dt(t){return(e,r)=>{let n=e.node.getChild("VariableDefinition");return n&&r(n,t),!0}}var Xc=["FunctionDeclaration"],Wc={FunctionDeclaration:Dt("function"),ClassDeclaration:Dt("class"),ClassExpression:()=>!0,EnumDeclaration:Dt("constant"),TypeAliasDeclaration:Dt("type"),NamespaceDeclaration:Dt("namespace"),VariableDefinition(t,e){t.matchContext(Xc)||e(t,"variable")},TypeDefinition(t,e){e(t,"type")},__proto__:null};function io(t,e){let r=Js.get(e);if(r)return r;let n=[],i=!0;function s(o,a){let l=t.sliceString(o.from,o.to);n.push({label:l,type:a})}return e.cursor(z.IncludeAnonymous).iterate(o=>{if(i)i=!1;else if(o.name){let a=Wc[o.name];if(a&&a(o,s)||no.has(o.name))return!1}else if(o.to-o.from>8192){for(let a of io(t,o.node))n.push(a);return!1}}),Js.set(e,n),n}var eo=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,so=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName"];function Vc(t){let e=(0,B.syntaxTree)(t.state).resolveInner(t.pos,-1);if(so.indexOf(e.name)>-1)return null;let r=e.to-e.from<20&&eo.test(t.state.sliceDoc(e.from,e.to));if(!r&&!t.explicit)return null;let n=[];for(let i=e;i;i=i.parent)no.has(i.name)&&(n=n.concat(io(t.state.doc,i)));return{options:n,from:r?e.from:t.pos,validFor:eo}}var rt=B.LRLanguage.define({parser:Ks.configure({props:[B.indentNodeProp.add({IfStatement:(0,B.continuedIndent)({except:/^\s*({|else\b)/}),TryStatement:(0,B.continuedIndent)({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:B.flatIndent,SwitchBody:t=>{let e=t.textAfter,r=/^\s*\}/.test(e),n=/^\s*(case|default)\b/.test(e);return t.baseIndent+(r?0:n?1:2)*t.unit},Block:(0,B.delimitedIndent)({closing:"}"}),ArrowFunction:t=>t.baseIndent+t.unit,"TemplateString BlockComment":()=>null,"Statement Property":(0,B.continuedIndent)({except:/^{/}),JSXElement(t){let e=/^\s*<\//.test(t.textAfter);return t.lineIndent(t.node.from)+(e?0:t.unit)},JSXEscape(t){let e=/\s*\}/.test(t.textAfter);return t.lineIndent(t.node.from)+(e?0:t.unit)},"JSXOpenTag JSXSelfClosingTag"(t){return t.column(t.node.from)+t.unit}}),B.foldNodeProp.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression":B.foldInside,BlockComment(t){return{from:t.from+2,to:t.to-2}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),Ic=rt.configure({dialect:"ts"}),Mc=rt.configure({dialect:"jsx"}),Gc=rt.configure({dialect:"jsx ts"}),Bc="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(t=>({label:t,type:"keyword"}));function oo(t={}){let e=t.jsx?t.typescript?Gc:Mc:t.typescript?Ic:rt;return new B.LanguageSupport(e,[rt.data.of({autocomplete:(0,ee.ifNotIn)(so,(0,ee.completeFromList)(Zc.concat(Bc)))}),rt.data.of({autocomplete:Vc}),t.jsx?zc:[]])}function to(t,e,r=t.length){if(!e)return"";let n=e.getChild("JSXIdentifier");return n?t.sliceString(n.from,Math.min(n.to,r)):""}var Dc=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),zc=ro.EditorView.inputHandler.of((t,e,r,n)=>{if((Dc?t.composing:t.compositionStarted)||t.state.readOnly||e!=r||n!=">"&&n!="/"||!rt.isActiveAt(t.state,e,-1))return!1;let{state:i}=t,s=i.changeByRange(o=>{var a,l,c;let{head:p}=o,u=(0,B.syntaxTree)(i).resolveInner(p,-1),d;if(u.name=="JSXStartTag"&&(u=u.parent),n==">"&&u.name=="JSXFragmentTag")return{range:Cr.EditorSelection.cursor(p+1),changes:{from:p,insert:"><>"}};if(n==">"&&u.name=="JSXIdentifier"){if(((l=(a=u.parent)===null||a===void 0?void 0:a.lastChild)===null||l===void 0?void 0:l.name)!="JSXEndTag"&&(d=to(i.doc,u.parent,p)))return{range:Cr.EditorSelection.cursor(p+1),changes:{from:p,insert:`>`}}}else if(n=="/"&&u.name=="JSXFragmentTag"){let O=u.parent,h=O==null?void 0:O.parent;if(O.from==p-1&&((c=h.lastChild)===null||c===void 0?void 0:c.name)!="JSXEndTag"&&(d=to(i.doc,h==null?void 0:h.firstChild,p))){let f=`/${d}>`;return{range:Cr.EditorSelection.cursor(p+f.length),changes:{from:p,insert:f}}}}return{range:o}});return s.changes.empty?!1:(t.dispatch(s,{userEvent:"input.type",scrollIntoView:!0}),!0)});var we=require("@codemirror/language"),Me=require("@codemirror/commands"),Ar=require("@codemirror/autocomplete"),qr=require("@codemirror/search"),po=require("@codemirror/lint");var ao=require("@codemirror/view"),Rr=require("@codemirror/language"),_=require("@lezer/highlight"),R={name:"obsidian",dark:!1,background:"var(--background-primary)",foreground:"var(--text-normal)",selection:"var(--text-selection)",cursor:"var(--text-normal)",dropdownBackground:"var(--background-primary)",dropdownBorder:"var(--background-modifier-border)",activeLine:"var(--background-primary)",matchingBracket:"var(--background-modifier-accent)",keyword:"#d73a49",storage:"#d73a49",variable:"var(--text-normal)",parameter:"var(--text-accent-hover)",function:"var(--text-accent-hover)",string:"var(--text-accent)",constant:"var(--text-accent-hover)",type:"var(--text-accent-hover)",class:"#6f42c1",number:"var(--text-accent-hover)",comment:"var(--text-faint)",heading:"var(--text-accent-hover)",invalid:"var(--text-error)",regexp:"var(--text-accent)"},Lc=ao.EditorView.theme({"&":{color:R.foreground,backgroundColor:R.background},".cm-content":{caretColor:R.cursor},"&.cm-focused .cm-cursor":{borderLeftColor:R.cursor},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, & ::selection":{backgroundColor:R.selection},".cm-panels":{backgroundColor:R.dropdownBackground,color:R.foreground},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:R.dropdownBackground,outline:`1px solid ${R.dropdownBorder}`},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:R.selection},".cm-activeLine":{backgroundColor:R.activeLine},".cm-activeLineGutter":{backgroundColor:R.background},".cm-selectionMatch":{backgroundColor:R.selection},".cm-matchingBracket, .cm-nonmatchingBracket":{backgroundColor:R.matchingBracket,outline:"none"},".cm-gutters":{backgroundColor:R.background,color:R.comment,borderRight:"1px solid var(--background-modifier-border)"},".cm-lineNumbers, .cm-gutterElement":{color:"inherit"},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:R.foreground},".cm-tooltip":{border:`1px solid ${R.dropdownBorder}`,backgroundColor:R.dropdownBackground,color:R.foreground},".cm-tooltip.cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{background:R.selection,color:R.foreground}}},{dark:R.dark}),Uc=Rr.HighlightStyle.define([{tag:_.tags.keyword,color:R.keyword},{tag:[_.tags.name,_.tags.deleted,_.tags.character,_.tags.macroName],color:R.variable},{tag:[_.tags.propertyName],color:R.function},{tag:[_.tags.processingInstruction,_.tags.string,_.tags.inserted,_.tags.special(_.tags.string)],color:R.string},{tag:[_.tags.function(_.tags.variableName),_.tags.labelName],color:R.function},{tag:[_.tags.color,_.tags.constant(_.tags.name),_.tags.standard(_.tags.name)],color:R.constant},{tag:[_.tags.definition(_.tags.name),_.tags.separator],color:R.variable},{tag:[_.tags.className],color:R.class},{tag:[_.tags.number,_.tags.changed,_.tags.annotation,_.tags.modifier,_.tags.self,_.tags.namespace],color:R.number},{tag:[_.tags.typeName],color:R.type,fontStyle:R.type},{tag:[_.tags.operator,_.tags.operatorKeyword],color:R.keyword},{tag:[_.tags.url,_.tags.escape,_.tags.regexp,_.tags.link],color:R.regexp},{tag:[_.tags.meta,_.tags.comment],color:R.comment},{tag:_.tags.strong,fontWeight:"bold"},{tag:_.tags.emphasis,fontStyle:"italic"},{tag:_.tags.link,textDecoration:"underline"},{tag:_.tags.heading,fontWeight:"bold",color:R.heading},{tag:[_.tags.atom,_.tags.bool,_.tags.special(_.tags.variableName)],color:R.variable},{tag:_.tags.invalid,color:R.invalid},{tag:_.tags.strikethrough,textDecoration:"line-through"}]),lo=[Lc,(0,Rr.syntaxHighlighting)(Uc)];var uo=[(0,le.lineNumbers)(),(0,le.highlightSpecialChars)(),(0,Me.history)(),oo(),(0,le.drawSelection)(),(0,le.dropCursor)(),co.EditorState.allowMultipleSelections.of(!0),(0,we.indentOnInput)(),we.indentUnit.of(" "),(0,we.syntaxHighlighting)(we.defaultHighlightStyle,{fallback:!0}),le.EditorView.lineWrapping,(0,we.bracketMatching)(),(0,Ar.closeBrackets)(),(0,le.rectangularSelection)(),(0,qr.highlightSelectionMatches)(),lo,le.keymap.of([...Ar.closeBracketsKeymap,...Me.defaultKeymap,...qr.searchKeymap,...Me.historyKeymap,Me.indentWithTab,...po.lintKeymap])].filter(t=>t);var Do=require("@codemirror/view");var Oo=require("obsidian"),ho=require("@codemirror/view");function jr(t,e,r,n){t.dispatch({changes:{from:e,to:r,insert:n}})}function zt(t,e){return(t instanceof ho.EditorView?t.state:t).doc.slice(e,e+1).toString()}function ke(t,e){t.dispatch({selection:{anchor:e,head:e}}),yt()}function fo(t,e,r){t.dispatch({selection:{anchor:e,head:r}}),yt()}function yt(){if(Oo.Platform.isMobile)return;let t=document.getElementsByClassName("cm-cursorLayer")[0];if(t){let e=t.style.animationName;t.style.animationName=e==="cm-blink"?"cm-blink2":"cm-blink"}}function Kn(t){return t.split("").reverse().join("")}function J(t,e,r,n,i,s){if(i){let l=J(Kn(t),t.length-(e+n.length),Kn(n),Kn(r),!1);return l===-1?-1:t.length-(l+r.length)}let o=0,a=s||t.length;for(let l=e;lt.length>0?t[0]:qt([],W)});function X(t){return(t instanceof go.EditorView?t.state:t).facet(yo)}function xo(t){return yo.of(t)}var Wr=require("@codemirror/language");var Nc=["text","textrm","textup","textit","textbf","textsf","texttt","textnormal","clap","textllap","textrlap","textclap","hbox","mbox","fbox","framebox","colorbox","fcolorbox"],ei=["tag","begin","end","mmlToken","unicode"],Qo=[...Nc,...ei].map(t=>({openSymbol:`\\${t}{`,closeSymbol:"}"})),Fc=["label","ref","eqref","operatorname","operatorname*","DeclareMathOperator","DeclareMathOperator*","mathrm","mathup","mathnormal","mathbf","mathbfup","mathit","mathbfit","mathbb","Bbb","mathfrak","mathbffrak","mathscr","mathbfscr","mathsf","mathsfup","mathbfsf","mathbfsfup","mathsfit","mathbfsfit","mathtt","mathcal","mathbfcal","symrm","symup","symnormal","symbf","symbfup","symit","symbfit","symbb","symfrak","symbffrak","symscr","symbfscr","symsf","symsfup","symbfsf","symbfsfup","symsfit","symbfsfit","symtt","symcal","symbfcal","Bbb"],pm=`[${Fc.map(t=>` - ["${t}", "}"]`)} -]`;var ri="formatting_formatting-math_formatting-math-begin_keyword_math",Yc="formatting_formatting-math_formatting-math-end_keyword_math_math-",$o="formatting_formatting-math_formatting-math-begin_keyword_math_math-block",Hc="formatting_formatting-math_formatting-math-end_keyword_math_math-",Zr=new Set([ri,$o]),Xr=new Set([Yc,Hc]),So="HyperMD-codeblock_HyperMD-codeblock-begin_HyperMD-codeblock-begin-bg_HyperMD-codeblock-bg",ti="HyperMD-codeblock_HyperMD-codeblock-bg_HyperMD-codeblock-end_HyperMD-codeblock-end-bg",ii=ni.ViewPlugin.fromClass(class{constructor(e){this.codeblockLanguage=null;this.shouldUpdate=!1;this.updateFromView(e)}init(e){return this.shouldUpdate&&(this.updateFromView(e),this.shouldUpdate=!1),this}update(e){(e.docChanged||e.selectionSet||e.viewportChanged)&&(this.shouldUpdate=!0)}updateFromView(e){var u;let r=e.state,n=r.selection;this.view=e,this.state=r,this.pos=n.main.to,this.ranges=Array.from(n.ranges).reverse(),this.mode=new pt,this.boundsCache=new Map,this.innerBoundsCache=new Map,this.codeblockLanguage=null;let i=ep(r),s=(u=i==null?void 0:i.codeblockLanguage)!=null?u:null,o=s!==null,a=X(r),l=o&&a.forceMathLanguages.contains(s);this.mode.codeMath=l,this.mode.code=o&&!l?s:!1,o&&this.mode.code!==!1&&(this.codeblockLanguage=s,this.boundsCache.set(this.pos,i));let c=nt(e),p=l||c.inMathBound(r,this.pos);if(p!==!0&&p!==null){let d=p.mode===0;this.mode.blockMath=!d,this.mode.inlineMath=d,this.boundsCache.set(this.pos,p)}if(p){let d=this.inTextEnvironment();d==="text"?this.mode.textEnv=!0:d==="none"&&(this.mode.inlineMath=!1,this.mode.blockMath=!1,this.mode.codeMath=!1)}this.mode.text=!o&&!p}isWithinEnvironment(e,r){if(!this.mode.inMath())return null;let n=this.getInnerBounds();if(!n)return null;let{inner_start:i,inner_end:s}=n,o=this.state.sliceDoc(i,s);e-=i,Array.isArray(r)||(r=[r]);e:for(let a of r){let l=a.openSymbol.slice(-1),c=xt(l),p,u;["{","[","("].contains(l)&&a.closeSymbol===c?(p=a.openSymbol.length-1,u=l):(p=0,u=a.openSymbol);let d=o.lastIndexOf(a.openSymbol,e-1);for(;d!=-1;){let O=J(o,d+p,u,a.closeSymbol,!1);if(O===-1)continue e;if(O>=e&&e>=d+a.openSymbol.length)return ye(oe({},a),{inner_start:d+a.openSymbol.length+i,inner_end:O+i,outer_start:d+i,outer_end:O+a.closeSymbol.length+i});if(d<=0)continue e;d=o.lastIndexOf(a.openSymbol,d-1)}}return null}inTextEnvironment(){let e=this.isWithinEnvironment(this.pos,Qo);if(!e)return null;let r=e.openSymbol.slice(1,-1);return ei.includes(r)?"none":"text"}getBounds(e=this.pos){let r=this.boundsCache.get(e);if(r!==void 0)return r;let n;return this.mode.codeMath?n=Jc(this.state,e):n=nt(this.view).inMathBound(this.state,e),this.boundsCache.set(e,n),n}getInnerBounds(e=this.pos){let r,n=this.innerBoundsCache.get(e);return n!==void 0?n:(this.mode.codeMath?r=this.getBounds(e):r=Kc(this.view),this.innerBoundsCache.set(e,r),r)}}),I=t=>{let e=t.plugin(ii);if(!e)throw new Error("Context plugin not found, something went wrong with the plugin initialization");return e.init(t)};var Kc=(t,e)=>{e||(e=t.state.selection.main.to);let r=nt(t).inMathBound(t.state,e);if(!r)return null;let n=t.state.sliceDoc(r.inner_start,r.inner_end);n=n.replaceAll("\\$","\\R");let i=n.lastIndexOf("$",e-1),s=n.indexOf("$",e);return i===-1||s===-1?r:{inner_start:i+1,inner_end:s,outer_start:i,outer_end:s+1}},Jc=(t,e=t.selection.main.from)=>{let r=vo(t,e);if(!r)return null;let{begin:n,end:i}=r;return{inner_start:n.to,inner_end:i.from,outer_start:n.from,outer_end:i.to}},vo=(t,e=t.selection.main.from)=>{let n=(0,Wr.syntaxTree)(t).cursor();if(n.childBefore(e),!n.name.contains("codeblock")||n.name===So&&e<=n.to||n.name===ti)return null;do if(n.name===So)break;while(n.prev());let i=n.node;if(!i)return null;n.childAfter(e);do if(n.name===ti)break;while(n.next());let s=n.node;return!s||s.name!==ti?null:{begin:i,end:s}},ep=t=>{let e=t.selection.ranges[0].from,r=vo(t,e);if(!r)return null;let{begin:n,end:i}=r,s=t.sliceDoc(n.from,n.to).replace(/`+|~+/g,"");return{inner_start:n.to,inner_end:i.from,outer_start:n.from,outer_end:i.to,codeblockLanguage:s}},si=ni.ViewPlugin.fromClass(class{constructor(e){this.mathBounds=[];this.equations=null;this.shouldUpdate=!1;this.inMathBound=(e,r)=>{var o,a;let n=this.mathBounds;if(r<=((o=n[0])==null?void 0:o.outer_start)||r>=((a=n[n.length-1])==null?void 0:a.outer_end))return this.getEquationBounds(e,r);let i=0,s=n.length-1;for(;i<=s;){let l=i+s>>1,c=n[l];if(r=c.outer_end)i=l+1;else{if(r<=c.inner_start||r>=c.inner_end)break;return c}}return this.getEquationBounds(e,r)};this.computeEquationBounds=(e,r)=>{r===void 0&&(r=e.selection.main.to);let i=(0,Wr.syntaxTree)(e).cursor();if(i.childBefore(r),i.node.firstChild&&i.name!=="Document"){let l=r;for(;e.sliceDoc(l,l+1)===` -`&&l>0;)l-=1;i.moveTo(l,-1)}if(!(i.name.contains("math")&&!i.name.startsWith("hashtag_hashtag-end_meta_tag"))||Xr.has(i.name)&&r>=i.to)return null;do if(Zr.has(i.name))break;while(i.prev());let s=i.node;if(!s)return null;i.childAfter(r);do if(Xr.has(i.name))break;while(i.next());let o=i.node;return o?s.to>r&&s.fromr?null:{inner_start:s.to,inner_end:o.from,outer_start:s.from,outer_end:o.to,mode:s.name===ri?0:1}:null};this.addMathBound=e=>{if(this.mathBounds.length===0)this.mathBounds.push(e);else if(e.outer_end<=this.mathBounds[0].outer_start)this.mathBounds.unshift(e);else if(e.outer_start>=this.mathBounds[this.mathBounds.length-1].outer_end)this.mathBounds.push(e);else{let r=0,n=this.mathBounds.length-1;for(;r<=n;){let i=r+n>>1;e.outer_start{n.push([]),r.iterate({from:l,to:c,enter:u=>{(Zr.has(u.name)&&u.tol)&&n[p].push(u.node)}})});let i=[];for(let l of n){if(Xr.has((s=l[0])==null?void 0:s.name)){let p=this.computeEquationBounds(e.state,l[0].from);p&&i.push(p)}let c=Zr.has((o=l[0])==null?void 0:o.name)?0:1;for(let p=c;p{if(c===0)return!0;let p=i[c-1];return!(p.outer_start===l.outer_start&&p.outer_end===l.outer_end)})}getEquationBounds(e,r){r||(r=e.selection.main.to);let n=this.computeEquationBounds(e,r);return n?(this.addMathBound(n),n):null}getEquations(e){return this.equations?this.equations:(this.equations=new Map(this.mathBounds.map(r=>[r.inner_start,e.sliceDoc(r.inner_start,r.inner_end)])),this.equations)}}),nt=t=>{let e=t.plugin(si);if(!e)throw new Error("MathBoundsPlugin not found, something went wrong with the plugin initialization");return e.init(t)};var To=require("@codemirror/view");var Ut=class{constructor(e,r,n,i){this.from=e,this.to=r,this.insert=n,this.keyPressed=i}getTabstops(e,r){let n=[];for(let i=r;inew Ut(t.from,t.to,t.insert,t.keyPressed))}});function Ir(t){let e=t.plugin(oi);if(!e)throw new Error("SnippetQueue plugin not found, something went wrong with the plugin initialization");return e}function qe(t,e,r,n,i){let s=new Ut(e,r,tp(t.state,e,r,n),i);Ir(t).QueueSnippets([s])}var tp=(t,e,r,n)=>{let o=t.doc.lineAt(r).text.match(/^(>*)(\s*)/);if(!o)return n;let a=o[1],l=o[2],c=(0,wo.countColumn)(l,t.tabSize),p=(0,Vr.getIndentUnit)(t),u=c%p;return n=n.replace(/\n(\t*)/g,(d,O)=>{let h=O.length*p+c-(O.length&&u),f=(0,Vr.indentString)(t,h);return` -`+a+f}),n};function Qt(t){Ir(t).clearSnippetQueue()}var Kt=require("@codemirror/state");var Yt=require("@codemirror/state"),Ro=require("@codemirror/commands");var Mr=require("@codemirror/view"),Nt=require("@codemirror/state"),ko=Nt.StateEffect.define(),Po=Nt.StateEffect.define(),St=Nt.StateField.define({create(){return{index:0,tabstopGroups:[],color:0}},update(t,e){let r=t.tabstopGroups,n=t.color;r.forEach(s=>s.map(e.changes));for(let s of e.effects)s.is(ko)?r.splice(t.index,1,...s.value):s.is(Po)&&(r=[],n=0);let i=t.index;return e.selection&&(i=rp(r,e.selection),r.length<=1||i>=r.length-1?(r=[],i=0,n=0):r[0].hideFromEditor()),{index:i,tabstopGroups:r,color:n}},provide:t=>Mr.EditorView.decorations.of(e=>{let r=e.state.field(t).tabstopGroups,n=[];for(let i of r)i.hidden||n.push(...i.getRanges());return Mr.Decoration.set(n,!0)})});function rp(t,e){for(let r=0;r{let e=[];for(let r of t.effects)r.is(Ft)?e.push(_o.of(r.value)):r.is(_o)?e.push(Ft.of(r.value)):r.is($t)?e.push(Co.of(null)):r.is(Co)&&e.push($t.of(null));return e}),qo=t=>{let e=t.transactions.find(n=>n.isUserEvent("undo")),r=t.transactions.find(n=>n.isUserEvent("redo"));for(let n of t.transactions)for(let i of n.effects)i.is(Ft)&&r&&t.view.dispatch({effects:Gr(i.value).effects});e&&Br(t.view)};var Xo=require("@codemirror/commands");var Ht=require("@codemirror/state"),vt=require("@codemirror/view");var jo="latex-suite-snippet-placeholder";function ip(t,e,r){let n=`${jo} ${jo}-${r}`;return vt.Decoration.mark({inclusive:!0,color:r,class:n}).range(t,e)}var ai=class{constructor(e,r){let n=e.map(i=>ip(i.from,i.to,r));this.decos=vt.Decoration.set(n,!0),this.color=r,this.hidden=!1}select(e,r,n){let i=this.toEditorSelection(),s=r?Zo(i):i;e.dispatch({selection:s,effects:n?$t.of(null):void 0}),yt(),this.hideFromEditor()}toSelectionRanges(){let e=[],r=this.decos.iter();for(;r.value!=null;)e.push(Ht.EditorSelection.range(r.from,r.to)),r.next();return e}toEditorSelection(e=!1){let r=Ht.EditorSelection.create(this.toSelectionRanges());return e&&(r=Zo(r)),r}containsSelection(e){function r(s,o){for(let a of o)if(a.from<=s.from&&a.to>=s.to)return!0;return!1}let n=this.toSelectionRanges(),i=!0;for(let s of e.ranges)if(!r(s,n)){i=!1;break}return i}hideFromEditor(){this.hidden=!0}map(e){this.decos=this.decos.map(e)}getRanges(){let e=[],r=this.decos.iter();for(;r.value!=null;)r.from!=r.to?e.push(r.value.range(r.from,r.to)):e.push(op(r.from,r.to)),r.next();return e}};function li(t,e){let r={};for(let s of t){let o=String(s.number);r[o]?r[o].push(s):r[o]=[s]}let n=[],i=Object.keys(r);i.sort((s,o)=>parseInt(s)-parseInt(o));for(let s of i){let o=new ai(r[s],e);n.push(o)}return n}function Zo(t){let e=t.ranges.map(r=>Ht.EditorSelection.range(r.to,r.to));return Ht.EditorSelection.create(e)}var sp=vt.Decoration.widget({widget:new class extends vt.WidgetType{toDOM(){let t=document.createElement("span");return t.className="cm-snippetFieldPosition",t}ignoreEvent(){return!1}}});function op(t,e){return sp.range(t,e)}function Ge(t){let e=Ir(t).snippetQueueValue;if(e.length===0)return!1;let r=t.state.doc.length,n=ap(t,e),i=t.state.selection.map(n,1),s=n.apply(t.state.doc).toString(),o=lp(s,e,r),a={changes:n,selection:i};return o.length===0?(t.dispatch(a),Qt(t),!0):(cp(t,o,a,s.length),Qt(t),!0)}function ap(t,e){let r=t.state.doc,n=r.length,i=[];for(let l of e)if(l.keyPressed&&l.keyPressed.length===1){let c=t.state.doc.sliceString(l.to-1,l.to),p=l.to===0?0:l.to-1;i.push({from:p,to:l.to,insert:c+l.keyPressed})}i.length>0&&t.dispatch({changes:i,annotations:Xo.isolateHistory.of("full")});let s=Kt.ChangeSet.of(i,n).invert(r),o=Kt.ChangeSet.of(e,n);return s.compose(o)}function lp(t,e,r){let n=Kt.ChangeSet.of(e,r),s=e.map(a=>a.from).map(a=>n.mapPos(a)),o=[];for(let a=0;a({from:d.from,to:d.to,insert:d.replacement})),n),s=Eo(t),o=li(e,s);o.forEach(d=>d.map(i));let a=li(e,s);a.forEach(d=>d.map(i));let l=Gr(o).effects,u={selection:o[0].toEditorSelection(),effects:$t.of(null),sequential:!0};t.dispatch({effects:[...l,Ft.of(a)],changes:r.changes.compose(i),selection:r.selection},u)}function ci(t,e){let r=t.state.field(St).tabstopGroups,n=t.state.field(St).index;function i(o,a){let l=r[o];if(!l)return!1;let c=t.state.selection,p=l.toEditorSelection();return l.containsSelection(c)&&(p=l.toEditorSelection(!0)),c.eq(p)?i(o+a,a):(t.dispatch({selection:p}),yt(),!0)}let s=e?-1:1;return i(n+s,s)}var pi=t=>{let e=[],r=0;for(;r{switch(t[e]){case"%":return up(t,e);case"\\":return Op(t,e);default:return hp(t,e)}},up=(t,e)=>{let r=t.length,n=e+1;for(;n{let r=t.length,n=e+1,i=t[n];if(/[A-Za-z]/.test(i))do n++;while(n{let r=e+1;return{token:{start:e,end:r,text:t.slice(e,r)},nextIndex:r}};var dp=new Set(["\\left","\\bigl","\\Bigl","\\biggl","\\Biggl"]),fp=new Set(["\\right","\\bigr","\\Bigr","\\biggr","\\Biggr"]),mp=new Set(["(",")","[","]","\\lbrack","\\rbrack","\\{","\\}","\\lbrace","\\rbrace","<",">","\\langle","\\rangle","\\lt","\\gt","|","\\vert","\\lvert","\\rvert","\\|","\\Vert","\\lVert","\\rVert","\\lfloor","\\rfloor","\\lceil","\\rceil","\\ulcorner","\\urcorner","/","\\\\","\\backslash","\\uparrow","\\downarrow","\\Uparrow","\\Downarrow","."]),ui={"(":")","[":"]","{":"}","\\lbrack":"\\rbrack","\\lbrace":"\\rbrace","\\langle":"\\rangle","\\lvert":"\\rvert","\\lVert":"\\rVert","\\lfloor":"\\rfloor","\\lceil":"\\rceil","\\ulcorner":"\\urcorner","<":">"},gp=t=>dp.has(t.text),Wo=t=>fp.has(t.text),Oi=t=>mp.has(t.text),bp=(t,e)=>e.has(t.text),yp=(t,e,r)=>{let n=t[e];if(e>0){let i=t[e-1];if(Wo(i)&&Oi(n))return!0;if(gp(i)&&Oi(n))return!1}return bp(n,r)},xp=(t,e)=>{let r=t[e];if(!Wo(r))return!1;if(e+1>=t.length)return!0;let n=t[e+1];return!Oi(n)},hi=(t,e)=>{var b;if(!e.mode.inMath())return!1;let r=e.getBounds();if(!r)return!1;let{inner_start:n,inner_end:i,outer_end:s,outer_start:o}=r;if(s<=e.pos)return!1;let a=t.state.doc,l=t.state.selection.main.to,c=l-n,p=a.sliceString(n,i),u=pi(p),d=X(t).taboutClosingSymbols,O=u.findIndex(y=>y.end>c),h=O===-1?u.length:O;for(let y=h;y{let r=pi(e),n=X(t).taboutClosingSymbols,i=[],s=ur(new Set(Object.values(ui)),n),o=new Set(Object.keys(ui).filter(a=>s.has(ui[a])));for(let a=0;a{let r=t.state.selection.main;if(!r.empty)return!1;let n=r.from,i=zt(t,n);return i===e&&[")","]","}"].includes(i)};var Qp=t=>{var s;let e=I(t),n=t.state.doc.lineAt(e.pos).text.match(new RegExp("(?<=\\\\begin{[^]]*}|\\\\\\\\|^)(\\s|\\&)+")),i=(s=n==null?void 0:n[0].trimStart())!=null?s:"";return e.mode.blockMath?(qe(t,e.pos,e.pos,` \\\\ -${i}$0`),Ge(t)):t.dispatch(t.state.replaceSelection(` \\\\ ${i}`)),!0},Sp=(t,e)=>{let r=I(t);if(r.mode.blockMath){let n=t.state.doc,i=n.lineAt(r.pos).number+1,s=n.line(i);ke(t,s.to)}else r.mode.inlineMath&&ke(t,e.outer_end);return!0},$p=t=>t.state.selection.main.empty?(t.dispatch(t.state.replaceSelection(" & ")),!0):!1,Dr=t=>e=>{let r=I(e);if(!r.mode.strictlyInMath())return!1;let i=X(e).matrixShortcutsEnvNames.map(o=>({openSymbol:"\\begin{"+o+"}",closeSymbol:"\\end{"+o+"}"})),s=r.isWithinEnvironment(r.pos,i);return s?t(e,s):!1},vp=t=>{let e=I(t),r=t.state.doc.lineAt(e.pos),n=r.text.slice(e.pos-r.from),i=Vo(t,n);return i!==null?(ke(t,e.pos+i),!0):!1},zr=Dr(Qp),Mo=Dr(Sp),Go=Dr($p),Bo=Dr(vp);var zo=require("@codemirror/commands");function Tp(t){let r=I(t).getBounds();if(!r)return!1;let{inner_start:n,inner_end:i}=r,s="\\boxed{"+t.state.sliceDoc(n,i)+"}",o=t.state.sliceDoc(n-2,n)==="$$"&&t.state.sliceDoc(i,i+2)==="$$";o&&(s=` -`+s+` -`);let a=t.state.selection.main.to;jr(t,n,i,s),ke(t,a+7+(o?1:0))}function wp(){return{id:"latex-suite-box-equation",name:"Box current equation",editorCheckCallback:(t,e)=>{let r=e.cm,i=I(r).mode.inMath();if(t)return i;i&&Tp(r)}}}function kp(){return{id:"latex-suite-select-equation",name:"Select current equation",editorCheckCallback:(t,e)=>{let r=e.cm,n=I(r),i=n.mode.inMath();if(t)return i;if(!i)return;let s=n.getBounds();if(!s)return!1;let{inner_start:o,inner_end:a}=s,l=r.state.doc.toString();l.charAt(o)===` -`&&o++,l.charAt(a-1)===` -`&&a--,fo(r,o,a)}}}function Pp(t){return{id:"latex-suite-enable-all-features",name:"Enable all features",callback:()=>v(this,null,function*(){t.settings.snippetsEnabled=!0,t.settings.autofractionEnabled=!0,t.settings.matrixShortcutsEnabled=!0,t.settings.taboutEnabled=!0,t.settings.autoEnlargeBrackets=!0,yield t.saveSettings()})}}function Ep(t){return{id:"latex-suite-disable-all-features",name:"Disable all features",callback:()=>v(this,null,function*(){t.settings.snippetsEnabled=!1,t.settings.autofractionEnabled=!1,t.settings.matrixShortcutsEnabled=!1,t.settings.taboutEnabled=!1,t.settings.autoEnlargeBrackets=!1,yield t.saveSettings()})}}function _p(t){return{id:"latex-suite-toggle-all-features",name:"Toggle all features",callback:()=>v(this,null,function*(){let e=t.settings.snippetsEnabled||t.settings.autofractionEnabled||t.settings.matrixShortcutsEnabled||t.settings.taboutEnabled||t.settings.autoEnlargeBrackets;t.settings.snippetsEnabled=!e,t.settings.autofractionEnabled=!e,t.settings.matrixShortcutsEnabled=!e,t.settings.taboutEnabled=!e,t.settings.autoEnlargeBrackets=!e,yield t.saveSettings()})}}function Cp(t){return{id:"latex-suite-toggle-conceal",name:"Toggle conceal",callback:()=>v(this,null,function*(){t.settings.concealEnabled=!t.settings.concealEnabled,yield t.saveSettings()})}}var Lo=t=>[wp(),kp(),Pp(t),Ep(t),Cp(t),_p(t)];function di(t){return{id:"latex-suite-vim-select-mode",defineType:"defineAction",type:"action",action:e=>{var i;let r=(i=window==null?void 0:window.CodeMirrorAdapter)==null?void 0:i.Vim;if(!r)return;let n=e.listSelections();r.enterInsertMode(e),e.setSelections(n)},key:t.vimSelectMode,context:"visual"}}function fi(t){return{id:"latex-suite-vim-visual-mode",defineType:"defineAction",type:"action",action:e=>{var i;if(!e.somethingSelected())return;let r=e.listSelections(),n=(i=window==null?void 0:window.CodeMirrorAdapter)==null?void 0:i.Vim;n&&(n.exitInsertMode(e),e.setSelections(r))},key:t.vimVisualMode,context:"insert"}}function mi(t){return{id:"latex-suite-vim-special-enter",defineType:"defineAction",type:"action",action:e=>{var a;let r=(a=window==null?void 0:window.CodeMirrorAdapter)==null?void 0:a.Vim;if(!r)return;let n=e.getCursor().line,i=e.getLine(n);e.setCursor({line:n,ch:i.length+1});let s=Do.EditorView.findFromDOM(e.getWrapperElement());if(!s)return;if(zr(s)){r.enterInsertMode(e);return}(0,zo.insertNewlineAndIndent)({state:e.cm6.state,dispatch:l=>{let c=e.cm6;if(c.state.readOnly)return;let p="input.type.compose";if(e.curOp&&!e.curOp.lastChange&&(p="input.type.compose.start"),Array.isArray(l.annotations))try{l.annotations.forEach(u=>{u.value==="input"&&(u.value=p)})}catch(u){console.error(u)}else l.userEvent=p;c.dispatch(l)}})||console.error("Failed to insert newline and indent latex-suite-insert-newline-and-indent"),r.enterInsertMode(e)},key:t.vimMatrixEnter,context:"normal"}}function Lr(t){return[di(t),fi(t),mi(t)]}var Nr=class extends w.PluginSettingTab{constructor(e,r){super(e,r),this.plugin=r}hide(){var e;(e=this.snippetsEditor)==null||e.destroy()}addHeading(e,r,n="math"){let s=new w.Setting(e).setName(r).setHeading().settingEl,o=s.createDiv();(0,w.setIcon)(o,n),o.addClass("latex-suite-settings-icon"),s.prepend(o)}display(){let{containerEl:e}=this;e.empty(),this.displaySnippetSettings(),this.displayConcealSettings(),this.displayColorHighlightBracketsSettings(),this.displayPopupPreviewSettings(),this.displayAutofractionSettings(),this.displayMatrixShortcutsSettings(),this.displayTaboutSettings(),this.displayAutoEnlargeBracketsSettings(),this.displayAdvancedSnippetSettings()}displaySnippetSettings(){let e=this.containerEl;this.addHeading(e,"Snippets","ballpen"),new w.Setting(e).setName("Enabled").setDesc("Whether snippets are enabled.").addToggle(a=>a.setValue(this.plugin.settings.snippetsEnabled).onChange(l=>v(this,null,function*(){this.plugin.settings.snippetsEnabled=l,yield this.plugin.saveSettings()})));let r=new w.Setting(e).setName("Snippets").setDesc('Enter snippets here. Remember to add a comma after each snippet, and escape all backslashes with an extra \\. Lines starting with "//" will be treated as comments and ignored.').setClass("snippets-text-area");this.createSnippetsEditor(r),new w.Setting(e).setName("Load snippets from file or folder").setDesc("Whether to load snippets from a specified file, or from all files within a folder (instead of from the plugin settings).").addToggle(a=>a.setValue(this.plugin.settings.loadSnippetsFromFile).onChange(l=>v(this,null,function*(){this.plugin.settings.loadSnippetsFromFile=l,r.settingEl.toggleClass("hidden",l),this.snippetsFileLocEl!=null&&this.snippetsFileLocEl.toggleClass("hidden",!l),yield this.plugin.saveSettings()})));let n=new DocumentFragment;n.createDiv({},a=>{a.innerHTML=` - The file or folder to load snippets from. The file or folder must be within your vault, and not within a hidden folder (such as .obsidian/).`});let i=new w.Setting(e).setName("Snippets file or folder location").setDesc(n),s;i.addSearch(a=>{a.setPlaceholder(W.snippetsFileLocation).setValue(this.plugin.settings.snippetsFileLocation).onChange((0,w.debounce)(l=>v(this,null,function*(){this.plugin.settings.snippetsFileLocation=l,yield this.plugin.saveSettings(!0)}),500,!0)),s=a.inputEl,s.addClass("latex-suite-location-input-el"),new It(this.app,s)}),this.snippetsFileLocEl=i.settingEl;let o=this.plugin.settings.loadSnippetsFromFile;r.settingEl.toggleClass("hidden",o),this.snippetsFileLocEl.toggleClass("hidden",!o),this.createTriggerSetting(e,"non-auto snippets","snippetsTrigger"),this.createTriggerSetting(e,"next tabstop","snippetNextTabstopTrigger"),this.createTriggerSetting(e,"previous tabstop","snippetPreviousTabstopTrigger")}displayConcealSettings(){let e=this.containerEl;this.addHeading(e,"Conceal","math-integral-x");let r=new DocumentFragment;r.createDiv({},i=>i.setText("Make equations more readable by hiding LaTeX syntax and instead displaying it in a pretty format.")),r.createDiv({},i=>i.innerHTML=` - e.g. \\dot{x}^{2} + \\dot{y}^{2} will display as \u1E8B\xB2 + \u1E8F\xB2, and \\sqrt{ 1-\\beta^{2} } will display as \u221A{ 1-\u03B2\xB2 }. - `),r.createDiv({},i=>i.setText("LaTeX beneath the cursor will be revealed.")),r.createEl("br"),r.createDiv({},i=>i.setText("Disabled by default to not confuse new users. However, I recommend turning this on once you are comfortable with the plugin!")),new w.Setting(e).setName("Enabled").setDesc(r).addToggle(i=>i.setValue(this.plugin.settings.concealEnabled).onChange(s=>v(this,null,function*(){this.plugin.settings.concealEnabled=s,yield this.plugin.saveSettings()})));let n=new DocumentFragment;n.createDiv({},i=>i.setText("How long to delay the reveal of LaTeX for, in milliseconds, when the cursor moves over LaTeX. Defaults to 0 (LaTeX under the cursor is revealed immediately).")),n.createEl("br"),n.createDiv({},i=>i.setText("Can be set to a positive number, e.g. 300, to delay the reveal of LaTeX, making it much easier to navigate equations using arrow keys.")),n.createEl("br"),n.createDiv({},i=>i.setText("Must be an integer \u2265 0.")),new w.Setting(e).setName("Reveal delay (ms)").setDesc(n).addText(i=>i.setPlaceholder(String(W.concealRevealTimeout)).setValue(String(this.plugin.settings.concealRevealTimeout)).onChange(s=>{/^\d+$/.test(s)&&(this.plugin.settings.concealRevealTimeout=Number(s),this.plugin.saveSettings())}))}displayColorHighlightBracketsSettings(){let e=this.containerEl;this.addHeading(e,"Highlight and color brackets","parentheses"),new w.Setting(e).setName("Color paired brackets").setDesc("Whether to colorize matching brackets.").addToggle(r=>r.setValue(this.plugin.settings.colorPairedBracketsEnabled).onChange(n=>v(this,null,function*(){this.plugin.settings.colorPairedBracketsEnabled=n,yield this.plugin.saveSettings()}))),new w.Setting(e).setName("Highlight matching bracket beneath cursor").setDesc("When the cursor is adjacent to a bracket, highlight the matching bracket.").addToggle(r=>r.setValue(this.plugin.settings.highlightCursorBracketsEnabled).onChange(n=>v(this,null,function*(){this.plugin.settings.highlightCursorBracketsEnabled=n,yield this.plugin.saveSettings()})))}displayPopupPreviewSettings(){let e=this.containerEl;this.addHeading(e,"Math popup preview","superscript");let r=document.createDocumentFragment(),n=document.createElement("div");n.setText("When inside an equation, show a popup preview window of the rendered math.");let i=document.createElement("br"),s=document.createElement("div");s.setText("The popup preview will be shown for all inline math equations, as well as for block math equations in Source mode."),r.append(n,i,s);let o=new w.Setting(e).setName("Enabled").setDesc(r),a=new w.Setting(e).setName("Position").setDesc("Where to display the popup preview relative to the equation source.").addDropdown(u=>u.addOption("Above","Above").addOption("Below","Below").setValue(this.plugin.settings.mathPreviewPositionIsAbove?"Above":"Below").onChange(d=>v(this,null,function*(){this.plugin.settings.mathPreviewPositionIsAbove=d==="Above",yield this.plugin.saveSettings()}))),l=new w.Setting(e).setName("Cursor symbol").setDesc(`The symbol to use as the cursor in the popup preview such as ${W.mathPreviewCursor}. Leave it blank to turn it off.`).addText(u=>{u.setPlaceholder(W.mathPreviewCursor).setValue(this.plugin.settings.mathPreviewCursor).onChange(O=>v(this,null,function*(){this.plugin.settings.mathPreviewCursor=O,yield this.plugin.saveSettings()}));let d=e.createEl("datalist",{attr:{id:"math-preview-cursor-list"}});return["\u25B6","\u2503","|","\\_","{\\mid}","{\\triangle}"].forEach(O=>d.createEl("option",{value:O})),u.inputEl.setAttribute("list","math-preview-cursor-list"),u}),c=new w.Setting(e).setName("Highlight brackets in preview").setDesc("Whether to highlight the area within the nearest pair of brackets around the cursor in the popup preview.").addToggle(u=>u.setValue(this.plugin.settings.mathPreviewBracketHighlighting).onChange(d=>v(this,null,function*(){this.plugin.settings.mathPreviewBracketHighlighting=d,yield this.plugin.saveSettings()}))),p=[a,l,c];p.forEach(u=>u.settingEl.toggleClass("hidden",!this.plugin.settings.mathPreviewEnabled)),o.addToggle(u=>u.setValue(this.plugin.settings.mathPreviewEnabled).onChange(d=>v(this,null,function*(){this.plugin.settings.mathPreviewEnabled=d,p.forEach(O=>O.settingEl.toggleClass("hidden",!d)),yield this.plugin.saveSettings()})))}displayAutofractionSettings(){let e=this.containerEl;this.addHeading(e,"Auto-fraction","math-x-divide-y-2"),new w.Setting(e).setName("Enabled").setDesc("Whether auto-fraction is enabled.").addToggle(r=>r.setValue(this.plugin.settings.autofractionEnabled).onChange(n=>v(this,null,function*(){this.plugin.settings.autofractionEnabled=n,yield this.plugin.saveSettings()}))),new w.Setting(e).setName("Fraction symbol").setDesc("The fraction symbol to use in the replacement. e.g. \\frac, \\dfrac, \\tfrac").addText(r=>{r.setPlaceholder(W.autofractionSymbol).setValue(this.plugin.settings.autofractionSymbol).onChange(i=>v(this,null,function*(){this.plugin.settings.autofractionSymbol=i,yield this.plugin.saveSettings()}));let n=e.createEl("datalist",{attr:{id:"autofraction-symbol-list"}});["\\frac","\\dfrac","\\tfrac"].forEach(i=>n.createEl("option",{value:i})),r.inputEl.setAttribute("list","autofraction-symbol-list")}),new w.Setting(e).setName("Excluded environments").setDesc('A list of environments to exclude auto-fraction from running in. For example, to exclude auto-fraction from running while inside an exponent, such as e^{...}, use ["^{", "}"]').addTextArea(r=>r.setPlaceholder('[ ["^{", "}] ]').setValue(this.plugin.settings.autofractionExcludedEnvs).onChange(n=>v(this,null,function*(){this.plugin.settings.autofractionExcludedEnvs=n,yield this.plugin.saveSettings()}))),new w.Setting(e).setName("Breaking characters").setDesc('A list of characters that denote the start/end of a fraction. e.g. if + is included in the list, "a+b/c" will expand to "a+\\frac{b}{c}". If + is not in the list, it will expand to "\\frac{a+b}{c}".').addText(r=>r.setPlaceholder(W.autofractionBreakingChars).setValue(this.plugin.settings.autofractionBreakingChars).onChange(n=>v(this,null,function*(){this.plugin.settings.autofractionBreakingChars=n,yield this.plugin.saveSettings()})))}displayMatrixShortcutsSettings(){let e=this.containerEl;this.addHeading(e,"Matrix shortcuts","brackets-contain"),new w.Setting(e).setName("Enabled").setDesc("Whether matrix shortcuts are enabled.").addToggle(r=>r.setValue(this.plugin.settings.matrixShortcutsEnabled).onChange(n=>v(this,null,function*(){this.plugin.settings.matrixShortcutsEnabled=n,yield this.plugin.saveSettings()}))),new w.Setting(e).setName("Environments").setDesc("A list of environment names to run the matrix shortcuts in, separated by commas.").addText(r=>r.setPlaceholder(W.matrixShortcutsEnvNames).setValue(this.plugin.settings.matrixShortcutsEnvNames).onChange(n=>v(this,null,function*(){this.plugin.settings.matrixShortcutsEnvNames=n,yield this.plugin.saveSettings()})))}displayTaboutSettings(){let e=this.containerEl;this.addHeading(e,"Tabout","tabout"),new w.Setting(e).setName("Enabled").setDesc("Whether tabout is enabled.").addToggle(n=>n.setValue(this.plugin.settings.taboutEnabled).onChange(i=>v(this,null,function*(){this.plugin.settings.taboutEnabled=i,r.settingEl.toggleClass("hidden",!i),yield this.plugin.saveSettings()}))),this.createTriggerSetting(e,"tabout","taboutTrigger");let r=new w.Setting(e).setName("Closing brackets").setDesc("A list of closing brackets for tabout, separated by commas.").addText(n=>n.setPlaceholder(W.taboutClosingSymbols).setValue(this.plugin.settings.taboutClosingSymbols).onChange(i=>v(this,null,function*(){this.plugin.settings.taboutClosingSymbols=i,yield this.plugin.saveSettings()})));r.settingEl.toggleClass("hidden",!this.plugin.settings.taboutEnabled)}displayAutoEnlargeBracketsSettings(){let e=this.containerEl;this.addHeading(e,"Auto-enlarge brackets","parentheses"),new w.Setting(e).setName("Enabled").setDesc("Whether to automatically enlarge brackets containing e.g. sum, int, frac.").addToggle(r=>r.setValue(this.plugin.settings.autoEnlargeBrackets).onChange(n=>v(this,null,function*(){this.plugin.settings.autoEnlargeBrackets=n,yield this.plugin.saveSettings()}))),new w.Setting(e).setName("Triggers").setDesc("A list of symbols that should trigger auto-enlarge brackets, separated by commas.").addText(r=>r.setPlaceholder(W.autoEnlargeBracketsTriggers).setValue(this.plugin.settings.autoEnlargeBracketsTriggers).onChange(n=>v(this,null,function*(){this.plugin.settings.autoEnlargeBracketsTriggers=n,yield this.plugin.saveSettings()})))}displayAdvancedSnippetSettings(){let e=this.containerEl;this.addHeading(e,"Advanced snippet settings");let r=new w.Setting(e).setName("Snippet variables").setDesc("Assign snippet variables that can be used as shortcuts when writing snippets.").addTextArea(O=>O.setValue(this.plugin.settings.snippetVariables).onChange(h=>v(this,null,function*(){this.plugin.settings.snippetVariables=h,yield this.plugin.saveSettings()})).setPlaceholder(W.snippetVariables)).setClass("latex-suite-snippet-variables-setting");new w.Setting(e).setName("Load snippet variables from file or folder").setDesc("Whether to load snippet variables from a specified file, or from all files within a folder (instead of from the plugin settings).").addToggle(O=>O.setValue(this.plugin.settings.loadSnippetVariablesFromFile).onChange(h=>v(this,null,function*(){this.plugin.settings.loadSnippetVariablesFromFile=h,r.settingEl.toggleClass("hidden",h),this.snippetVariablesFileLocEl!=null&&this.snippetVariablesFileLocEl.toggleClass("hidden",!h),yield this.plugin.saveSettings()})));let n=new DocumentFragment;n.createDiv({},O=>{O.innerHTML=` - The file or folder to load snippet variables from. The file or folder must be within your vault, and not within a hidden folder (such as .obsidian/).`});let i=new w.Setting(e).setName("Snippet variables file or folder location").setDesc(n);i.addSearch(O=>{O.setPlaceholder(W.snippetVariablesFileLocation).setValue(this.plugin.settings.snippetVariablesFileLocation).onChange((0,w.debounce)(f=>v(this,null,function*(){this.plugin.settings.snippetVariablesFileLocation=f,yield this.plugin.saveSettings(!0)}),500,!0));let h=O.inputEl;h.addClass("latex-suite-location-input-el"),new It(this.app,h)}),this.snippetVariablesFileLocEl=i.settingEl;let s=this.plugin.settings.loadSnippetVariablesFromFile;r.settingEl.toggleClass("hidden",s),this.snippetVariablesFileLocEl.toggleClass("hidden",!s),new w.Setting(e).setName("Word delimiters").setDesc('Symbols that will be treated as word delimiters, for use with the "w" snippet option.').addText(O=>O.setPlaceholder(W.wordDelimiters).setValue(this.plugin.settings.wordDelimiters).onChange(h=>v(this,null,function*(){this.plugin.settings.wordDelimiters=h,yield this.plugin.saveSettings()}))),new w.Setting(e).setName("Remove trailing whitespaces in snippets in inline math").setDesc("Whether to remove trailing whitespaces when expanding snippets at the end of inline math blocks.").addToggle(O=>O.setValue(this.plugin.settings.removeSnippetWhitespace).onChange(h=>v(this,null,function*(){this.plugin.settings.removeSnippetWhitespace=h,yield this.plugin.saveSettings()}))),new w.Setting(e).setName("Remove closing $ when backspacing inside blank inline math").setDesc("Whether to also remove the closing $ when you delete the opening $ symbol inside blank inline math.").addToggle(O=>O.setValue(this.plugin.settings.autoDelete$).onChange(h=>v(this,null,function*(){this.plugin.settings.autoDelete$=h,yield this.plugin.saveSettings()})));let o=new w.Setting(e).setName("Don't trigger snippets when IME is active").setDesc("Whether to suppress snippets triggering when an IME is active."),a=new w.Setting(e).setName("Suppress IME warning").setDesc("Whether a warning is shown on startup if `Don't trigger snippets when IME is active` is enabled. Disable that setting if you are aware of the IME limitations. Currently only ios and android touch/swipe keyboards like gboard have support for IME. See https://github.com/artisticat1/obsidian-latex-suite/blob/main/DOCS.md#IME-keyboards for more info.").addToggle(O=>O.setValue(this.plugin.settings.suppressIMEWarning).onChange(h=>v(this,null,function*(){this.plugin.settings.suppressIMEWarning=h,yield this.plugin.saveSettings()})));a.settingEl.toggleClass("hidden",!(this.plugin.settings.suppressSnippetTriggerOnIME&&Yr())),o.addToggle(O=>O.setValue(this.plugin.settings.suppressSnippetTriggerOnIME).onChange(h=>v(this,null,function*(){this.plugin.settings.suppressSnippetTriggerOnIME=h,a.settingEl.toggleClass("hidden",!(h&&Yr())),yield this.plugin.saveSettings()}))),new w.Setting(e).setName("Code languages to interpret as math mode").setDesc("Codeblock languages where the whole code block should be treated like a math block, separated by commas.").addText(O=>O.setPlaceholder(W.forceMathLanguages).setValue(this.plugin.settings.forceMathLanguages).onChange(h=>v(this,null,function*(){this.plugin.settings.forceMathLanguages=h,yield this.plugin.saveSettings()}))),new w.Setting(e).setName("Snippet debug mode").setDesc('Set the level of debug information to log about snippet expansion. Set to "info" or "verbose" to help identify issues with snippet syntax or why a snippet is not expanding. Verbose mode will log most information to the developer console on debug level.').addDropdown(O=>O.addOption("off","Off").addOption("info","Info").addOption("verbose","Verbose").setValue(this.plugin.settings.snippetDebug).onChange(h=>v(this,null,function*(){this.plugin.settings.snippetDebug=h,yield this.plugin.saveSettings()})));let l=new w.Setting(e).setName("Vim key bindings").setDesc("turn on/off vim keybindings. Note vim needs to be enabled in obsidian itself."),c=[],p=new w.Setting(e).setName("Vim: Switch from visual mode to select mode").setDesc(`maps the key to switch from visual mode to select mode. +}`,{label:"class",detail:"definition",type:"keyword"}),(0,ce.snippetCompletion)('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),(0,ce.snippetCompletion)('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],ip=new Dr.NodeWeakMap,lp=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function jn(e){return(t,n)=>{let r=t.node.getChild("VariableDefinition");return r&&n(r,e),!0}}var $f=["FunctionDeclaration"],kf={FunctionDeclaration:jn("function"),ClassDeclaration:jn("class"),ClassExpression:()=>!0,EnumDeclaration:jn("constant"),TypeAliasDeclaration:jn("type"),NamespaceDeclaration:jn("namespace"),VariableDefinition(e,t){e.matchContext($f)||t(e,"variable")},TypeDefinition(e,t){t(e,"type")},__proto__:null};function cp(e,t){let n=ip.get(t);if(n)return n;let r=[],i=!0;function o(s,a){let l=e.sliceString(s.from,s.to);r.push({label:l,type:a})}return t.cursor(Dr.IterMode.IncludeAnonymous).iterate(s=>{if(i)i=!1;else if(s.name){let a=kf[s.name];if(a&&a(s,o)||lp.has(s.name))return!1}else if(s.to-s.from>8192){for(let a of cp(e,s.node))r.push(a);return!1}}),ip.set(t,r),r}var op=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,pp=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName"];function wf(e){let t=(0,Y.syntaxTree)(e.state).resolveInner(e.pos,-1);if(pp.indexOf(t.name)>-1)return null;let n=t.to-t.from<20&&op.test(e.state.sliceDoc(t.from,t.to));if(!n&&!e.explicit)return null;let r=[];for(let i=t;i;i=i.parent)lp.has(i.name)&&(r=r.concat(cp(e.state.doc,i)));return{options:r,from:n?t.from:e.pos,validFor:op}}var _t=Y.LRLanguage.define({parser:rp.configure({props:[Y.indentNodeProp.add({IfStatement:(0,Y.continuedIndent)({except:/^\s*({|else\b)/}),TryStatement:(0,Y.continuedIndent)({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:Y.flatIndent,SwitchBody:e=>{let t=e.textAfter,n=/^\s*\}/.test(t),r=/^\s*(case|default)\b/.test(t);return e.baseIndent+(n?0:r?1:2)*e.unit},Block:(0,Y.delimitedIndent)({closing:"}"}),ArrowFunction:e=>e.baseIndent+e.unit,"TemplateString BlockComment":()=>null,"Statement Property":(0,Y.continuedIndent)({except:/^{/}),JSXElement(e){let t=/^\s*<\//.test(e.textAfter);return e.lineIndent(e.node.from)+(t?0:e.unit)},JSXEscape(e){let t=/\s*\}/.test(e.textAfter);return e.lineIndent(e.node.from)+(t?0:e.unit)},"JSXOpenTag JSXSelfClosingTag"(e){return e.column(e.node.from)+e.unit}}),Y.foldNodeProp.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression":Y.foldInside,BlockComment(e){return{from:e.from+2,to:e.to-2}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),Tf=_t.configure({dialect:"ts"}),Ef=_t.configure({dialect:"jsx"}),Pf=_t.configure({dialect:"jsx ts"}),Cf="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(e=>({label:e,type:"keyword"}));function up(e={}){let t=e.jsx?e.typescript?Pf:Ef:e.typescript?Tf:_t;return new Y.LanguageSupport(t,[_t.data.of({autocomplete:(0,ce.ifNotIn)(pp,(0,ce.completeFromList)(Qf.concat(Cf)))}),_t.data.of({autocomplete:wf}),e.jsx?Rf:[]])}function sp(e,t,n=e.length){if(!t)return"";let r=t.getChild("JSXIdentifier");return r?e.sliceString(r.from,Math.min(r.to,n)):""}var qf=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),Rf=ap.EditorView.inputHandler.of((e,t,n,r)=>{if((qf?e.composing:e.compositionStarted)||e.state.readOnly||t!=n||r!=">"&&r!="/"||!_t.isActiveAt(e.state,t,-1))return!1;let{state:i}=e,o=i.changeByRange(s=>{var a,l,c;let{head:p}=s,u=(0,Y.syntaxTree)(i).resolveInner(p,-1),O;if(u.name=="JSXStartTag"&&(u=u.parent),r==">"&&u.name=="JSXFragmentTag")return{range:Lr.EditorSelection.cursor(p+1),changes:{from:p,insert:"><>"}};if(r==">"&&u.name=="JSXIdentifier"){if(((l=(a=u.parent)===null||a===void 0?void 0:a.lastChild)===null||l===void 0?void 0:l.name)!="JSXEndTag"&&(O=sp(i.doc,u.parent,p)))return{range:Lr.EditorSelection.cursor(p+1),changes:{from:p,insert:`>`}}}else if(r=="/"&&u.name=="JSXFragmentTag"){let d=u.parent,f=d==null?void 0:d.parent;if(d.from==p-1&&((c=f.lastChild)===null||c===void 0?void 0:c.name)!="JSXEndTag"&&(O=sp(i.doc,f==null?void 0:f.firstChild,p))){let m=`/${O}>`;return{range:Lr.EditorSelection.cursor(p+m.length),changes:{from:p,insert:m}}}}return{range:s}});return o.changes.empty?!1:(e.dispatch(o,{userEvent:"input.type",scrollIntoView:!0}),!0)});var Be=require("@codemirror/language"),ut=require("@codemirror/commands"),Ir=require("@codemirror/autocomplete"),Gr=require("@codemirror/search"),fp=require("@codemirror/lint");var Op=require("@codemirror/view"),Vr=require("@codemirror/language"),C=require("@lezer/highlight"),R={name:"obsidian",dark:!1,background:"var(--background-primary)",foreground:"var(--text-normal)",selection:"var(--text-selection)",cursor:"var(--text-normal)",dropdownBackground:"var(--background-primary)",dropdownBorder:"var(--background-modifier-border)",activeLine:"var(--background-primary)",matchingBracket:"var(--background-modifier-accent)",keyword:"#d73a49",storage:"#d73a49",variable:"var(--text-normal)",parameter:"var(--text-accent-hover)",function:"var(--text-accent-hover)",string:"var(--text-accent)",constant:"var(--text-accent-hover)",type:"var(--text-accent-hover)",class:"#6f42c1",number:"var(--text-accent-hover)",comment:"var(--text-faint)",heading:"var(--text-accent-hover)",invalid:"var(--text-error)",regexp:"var(--text-accent)"},Xf=Op.EditorView.theme({"&":{color:R.foreground,backgroundColor:R.background},".cm-content":{caretColor:R.cursor},"&.cm-focused .cm-cursor":{borderLeftColor:R.cursor},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, & ::selection":{backgroundColor:R.selection},".cm-panels":{backgroundColor:R.dropdownBackground,color:R.foreground},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:R.dropdownBackground,outline:`1px solid ${R.dropdownBorder}`},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:R.selection},".cm-activeLine":{backgroundColor:R.activeLine},".cm-activeLineGutter":{backgroundColor:R.background},".cm-selectionMatch":{backgroundColor:R.selection},".cm-matchingBracket, .cm-nonmatchingBracket":{backgroundColor:R.matchingBracket,outline:"none"},".cm-gutters":{backgroundColor:R.background,color:R.comment,borderRight:"1px solid var(--background-modifier-border)"},".cm-lineNumbers, .cm-gutterElement":{color:"inherit"},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:R.foreground},".cm-tooltip":{border:`1px solid ${R.dropdownBorder}`,backgroundColor:R.dropdownBackground,color:R.foreground},".cm-tooltip.cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{background:R.selection,color:R.foreground}},".cm-textfield":{backgroundColor:R.background,color:R.foreground},".cm-button":{backgroundColor:R.background,color:R.foreground,backgroundImage:"none"}},{dark:R.dark}),_f=Vr.HighlightStyle.define([{tag:C.tags.keyword,color:R.keyword},{tag:[C.tags.name,C.tags.deleted,C.tags.character,C.tags.macroName],color:R.variable},{tag:[C.tags.propertyName],color:R.function},{tag:[C.tags.processingInstruction,C.tags.string,C.tags.inserted,C.tags.special(C.tags.string)],color:R.string},{tag:[C.tags.function(C.tags.variableName),C.tags.labelName],color:R.function},{tag:[C.tags.color,C.tags.constant(C.tags.name),C.tags.standard(C.tags.name)],color:R.constant},{tag:[C.tags.definition(C.tags.name),C.tags.separator],color:R.variable},{tag:[C.tags.className],color:R.class},{tag:[C.tags.number,C.tags.changed,C.tags.annotation,C.tags.modifier,C.tags.self,C.tags.namespace],color:R.number},{tag:[C.tags.typeName],color:R.type,fontStyle:R.type},{tag:[C.tags.operator,C.tags.operatorKeyword],color:R.keyword},{tag:[C.tags.url,C.tags.escape,C.tags.regexp,C.tags.link],color:R.regexp},{tag:[C.tags.meta,C.tags.comment],color:R.comment},{tag:C.tags.strong,fontWeight:"bold"},{tag:C.tags.emphasis,fontStyle:"italic"},{tag:C.tags.link,textDecoration:"underline"},{tag:C.tags.heading,fontWeight:"bold",color:R.heading},{tag:[C.tags.atom,C.tags.bool,C.tags.special(C.tags.variableName)],color:R.variable},{tag:C.tags.invalid,color:R.invalid},{tag:C.tags.strikethrough,textDecoration:"line-through"}]),dp=[Xf,(0,Vr.syntaxHighlighting)(_f)];var Hr=[(0,me.lineNumbers)(),(0,me.highlightSpecialChars)(),(0,ut.history)(),up(),(0,me.drawSelection)(),(0,me.dropCursor)(),mp.EditorState.allowMultipleSelections.of(!0),(0,Be.indentOnInput)(),Be.indentUnit.of(" "),(0,Be.syntaxHighlighting)(Be.defaultHighlightStyle,{fallback:!0}),me.EditorView.lineWrapping,(0,Be.bracketMatching)(),(0,Ir.closeBrackets)(),(0,me.rectangularSelection)(),(0,Gr.highlightSelectionMatches)(),dp,me.keymap.of([...Ir.closeBracketsKeymap,...ut.defaultKeymap,...Gr.searchKeymap,...ut.historyKeymap,ut.indentWithTab,...fp.lintKeymap])].filter(e=>e);var G$=require("obsidian"),Cp=require("@codemirror/view");var _$=require("@codemirror/view");var hp=require("@codemirror/view");var RQ=require("@codemirror/state"),Br=class e{constructor(t,n,r,i,o){this.from=t;this.to=n;this.insert=r;this.keyPressed=i;this.after=o}getTabstops(){return this.insert.tabstops.map(t=>({index:t.index,from:this.from+t.from,to:this.from+t.to}))}applyChange(t){let n=t.mapPos(this.from,1),r=t.mapPos(this.to,-1);return new e(n,r,this.insert,this.keyPressed,this.after)}toChangeSpec(){return{from:this.from,to:this.to,insert:this.insert.insert}}};var Nr=require("@codemirror/language"),gp=require("@codemirror/state");var Zn=hp.ViewPlugin.fromClass(class{constructor(){this.snippetQueue=[]}clearSnippetQueue(){this.snippetQueue=[]}executeSnippetQueue(){let e=this.snippetQueue;return this.snippetQueue=[],e}QueueSnippets(e){this.snippetQueue=this.snippetQueue.concat(e)}});function Ur(e){let t=e.plugin(Zn);if(!t)throw new Error("SnippetQueue plugin not found, something went wrong with the plugin initialization");return t}function We(e,t,n,r,i,o){r=Af(e.state,t,n,r);let s=new Br(t,n,r,i,o);Ur(e).QueueSnippets([s])}var Af=(e,t,n,r)=>{let s=e.doc.lineAt(n).text.match(/^(>*)(\s*)/);if(!s)return r;let a=s[1],l=s[2],c=(0,gp.countColumn)(l,e.tabSize),p=(0,Nr.getIndentUnit)(e),u=c%p,O=r.insert.matchAll(/\n(\t*)/g);if(!O)return r;let d=r.tabstops,f=[],m=0;for(let g of O){let b=g[1],v=b.length*p+c-(b.length&&u),$=(0,Nr.indentString)(e,v),S=` +`+a+$,E=S.length-g[0].length;for(let T of d)T.from-m>g.index&&(T.from+=E),T.to-m>g.index&&(T.to+=E);m+=E,f.push({start:g.index,end:g.index+g[0].length,replacement:S})}return{insert:wi(r.insert,f),tabstops:d}};function Gs(e){Ur(e).clearSnippetQueue()}var l$=require("@codemirror/view"),Gn=require("@codemirror/state");var n$=require("@codemirror/view"),In=require("@codemirror/state"),$p=require("@codemirror/commands");var Dn=require("@codemirror/view"),Vn=require("@codemirror/state");var Ln=require("@codemirror/state"),Ot=require("@codemirror/view");var yp="latex-suite-snippet-placeholder";function Wf(e,t,n){let r=`${yp} ${yp}-${n}`;if(e===t){let i=Ot.Decoration.mark({inclusive:!0,color:n,class:r});return Ot.Decoration.prototype.range.call(i,e,t)}else return Ot.Decoration.mark({inclusive:!0,color:n,class:r}).range(e,t)}var Hs=class e{constructor(t,n){let r=t.map(i=>Wf(i.from,i.to,n));this.decos=Ot.Decoration.set(r,!0),this.color=n,this.hidden=!1}select(t,n,r){let i=this.toEditorSelection(),o=n?bp(i):i;t.dispatch({selection:o,effects:r?dt.of(null):void 0}),It(t),this.hideFromEditor()}toSelectionRanges(){let t=[],n=this.decos.iter();for(;n.value!=null;)t.push(Ln.EditorSelection.range(n.from,n.to)),n.next();return t}toEditorSelection(t=!1){let n=Ln.EditorSelection.create(this.toSelectionRanges());return t&&(n=bp(n)),n}containsSelection(t){function n(o,s){for(let a of s)if(a.from<=o.from&&a.to>=o.to)return!0;return!1}let r=this.toSelectionRanges(),i=!0;for(let o of t.ranges)if(!n(o,r)){i=!1;break}return i}hideFromEditor(){this.hidden=!0}map(t){this.decos=this.decos.map(t)}getRanges(){let t=[],n=this.decos.iter();for(;n.value!=null;)n.from!=n.to?t.push(n.value.range(n.from,n.to)):t.push(jf(n.from,n.to)),n.next();return t}copy(){let t=new e([],this.color);return t.decos=this.decos,t.hidden=this.hidden,t}};function vp(e,t){let n=[],r=0,i=e.slice().sort((s,a)=>{for(let l=0;l{if(a===0)return j(A({},s),{index:r});let c=s.index.length===l[a-1].index.length&&s.index.every((p,u)=>p===l[a-1].index[u]);return r+=c?0:1,j(A({},s),{index:r})});for(let s of i){let a=s.index;n[a]?n[a].push(s):n[a]=[s]}let o=[];for(let s of n){let a=new Hs(s,t);o.push(a)}return o}function bp(e){let t=e.ranges.map(n=>Ln.EditorSelection.range(n.to,n.to));return Ln.EditorSelection.create(t)}var Mf=Ot.Decoration.widget({widget:new class extends Ot.WidgetType{toDOM(){let e=$t("span");return e.className=Bs,e}ignoreEvent(){return!1}}});function jf(e,t){return Mf.range(e,t)}var Fr=Vn.StateEffect.define(),Yr=Vn.StateEffect.define(),mt=Vn.StateField.define({create(){return{index:0,tabstopGroups:[],color:0}},update(e,t){let n=e.tabstopGroups,r=e.color;n.forEach(o=>o.map(t.changes));for(let o of t.effects)o.is(Fr)?n.splice(e.index,1,...o.value):o.is(Yr)&&(n=[],r=0);let i=e.index;return t.selection&&(i=Zf(n,t.selection),n.length<=1||i>=n.length-1?(n=[],i=0,r=0):n[0].hideFromEditor()),{index:i,tabstopGroups:n,color:r}},provide:e=>Dn.EditorView.outerDecorations.of(t=>{let n=t.state.field(e).tabstopGroups,r=[];for(let i of n)i.hidden||r.push(...i.getRanges());return Dn.Decoration.set(r,!0)})});function Zf(e,t){for(let[n,r]of e.entries())if(r.containsSelection(t))return n;return e.length}function Kr(e){return{effects:[Fr.of(e)]}}function xp(e){e.dispatch({effects:[Yr.of(null)]})}var Lf=3;function Sp(e){return e.state.field(mt).color++%Lf}var Bs="cm-snippetFieldPosition",ke="latex-suite-snippet-placeholder",zr="--placeholder-bg",At="--placeholder-outline",Qp=Dn.EditorView.baseTheme({[`.${Bs}`]:{verticalAlign:"text-top",width:"0",height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},[`.${ke}`]:{borderRadius:"2px",backgroundColor:`var(${zr})`,outline:`var(${At}) solid 1px`},[`.${ke}-0, span.${ke}-0 span`]:{[zr]:"#87cefa2e",[At]:"#87cefa6e"},[`${se} .${ke}-0, span.${ke}-0 span`]:{[At]:"#87cefa43"},[`.${ke}-1, span.${ke}-1 span`]:{[zr]:"#ffa50033",[At]:"#ffa5006b"},[`${se} .${ke}-1, span.${ke}-1 span`]:{[At]:"#ffa5004d"},[`.${ke}-2, span.${ke}-2 span`]:{[zr]:"#0f02",[At]:"#00ff0060"},[`${se} .${ke}-2, span.${ke}-2 span`]:{[At]:"#00ff003d"}});var Wt=In.StateEffect.define(),dt=In.StateEffect.define(),Jr=In.StateEffect.define(),ei=In.StateEffect.define(),ti=$p.invertedEffects.of(e=>{let t=[];for(let n of e.effects)n.is(Wt)?t.push(Jr.of(n.value)):n.is(Jr)?t.push(Wt.of(n.value)):n.is(dt)?t.push(ei.of(null)):n.is(ei)&&t.push(dt.of(null));return t}),kp=e=>{let t=e.transactions.find(r=>r.isUserEvent("undo")),n=e.transactions.find(r=>r.isUserEvent("redo"));for(let r of e.transactions)for(let i of r.effects)i.is(Wt)&&n&&e.view.dispatch({effects:Kr(i.value.map(o=>o.copy())).effects});return t&&xp(e.view),!!(t||n)};var Ns=require("@codemirror/commands");function Us(e,t){let n;return typeof t.insert=="string"?n=new je(t.insert).applyInsert():Array.isArray(t.insert)?n=new U(t.insert).applyInsert():n=t.insert,We(e,t.from,t.to,n,t.keyPressed,t.after),tt(e)}function tt(e){let t=Ur(e).executeSnippetQueue();if(t.length===0)return!1;let n=Df(e,t),r=t.map(c=>c.toChangeSpec()),i=t.map(c=>c.applyChange(n)),o=n.compose(Gn.ChangeSet.of(r,n.newLength)),s=i.flatMap(c=>c.getTabstops()),a=e.state.selection.map(o,1),l={changes:o,selection:a};return s.length===0?(e.dispatch(l),!0):(Vf(e,s,l),!0)}var Ne=Gn.Annotation.define();function Df(e,t){var s;let n=e.state.doc,r=n.length,i=[];for(let a of t)if(a.keyPressed&&a.keyPressed.length===1){let l=(s=a.after)!=null?s:a.to,c=e.state.doc.sliceString(l-1,l),p=l===0?0:l-1;i.push({from:p,to:l,insert:c+a.keyPressed})}return i.length>0&&e.dispatch({changes:i,annotations:[Ns.isolateHistory.of("full"),Ne.of(!0)]}),Gn.ChangeSet.of(i,r).invert(n)}function Vf(e,t,n){let r=Sp(e),i=vp(t,r),o=i.map(p=>p.copy()),s=Kr(i).effects,c={selection:i[0].toEditorSelection(),effects:dt.of(null),sequential:!0};e.dispatch({effects:[...s,Wt.of(o)],changes:n.changes,selection:n.selection,annotations:Ns.isolateHistory.of("before")},c)}function zs(e,t){let n=e.state.field(mt).tabstopGroups,r=e.state.field(mt).index;function i(s,a){let l=n[s];if(!l)return!1;let c=e.state.selection,p=l.toEditorSelection();return l.containsSelection(c)&&(p=l.toEditorSelection(!0)),c.eq(p)?i(s+a,a):(e.dispatch({selection:p}),It(e),!0)}let o=t?-1:1;return i(r+o,o)}var k$=require("@codemirror/view");var x$=require("@codemirror/state");var Fs=e=>{let t=[];for(let n=0;n{switch(e[t]){case"%":return Gf(e,t);case"\\":return Hf(e,t);default:return Bf(e,t)}},Gf=(e,t)=>{let n=e.length,r=t+1;for(;r{let n=e.length,r=t+1,i=e[r];if(/[A-Za-z]/.test(i))do r++;while(r{let n=t+1;return{token:{start:t,end:n,text:e.slice(t,n)},nextIndex:n}};function wp(e,t){for(let n=e.length-1;n>=0;n--)if(t(e[n],n,e))return n;return null}function*Jt(e,t=0){for(let n of e){yield{region:n,depth:t};let r=n.kind==="bracket"?t+1:t;yield*sr(Jt(n.children,r))}}function Nf(e,t){return e.from===t.from&&e.to===t.to&&e.name===t.name}function*en(e,t){let n=e.cursor();if(n.moveTo(t.from,1),!(n.node.from=t.from&&n.parent()&&!Nf(e,n.node););do t.skipCursorMove=!1,!(n.to>t.to)&&(yield n);while((t.skipCursorMove||n.next())&&n.from<=t.to&&n.node!==e)}}var fe=class e{constructor(t,n,r,i=n){this.eqn=t;this.from=n;this.to=r;this.offset=i;this.skipCursorMove=!1}slice(t,n){return this.eqn.slice(t-this.offset,n-this.offset)}static fromNode(t,n){return new e(n.sliceString(t.from,t.to),t.from,t.to)}};var Uf=new Set(["\\left","\\bigl","\\Bigl","\\biggl","\\Biggl"]),zf=new Set(["\\right","\\bigr","\\Bigr","\\biggr","\\Biggr"]),Ff=new Set(["(",")","[","]","\\lbrack","\\rbrack","\\{","\\}","\\lbrace","\\rbrace","<",">","\\langle","\\rangle","\\lt","\\gt","|","\\vert","\\lvert","\\rvert","\\|","\\Vert","\\lVert","\\rVert","\\lfloor","\\rfloor","\\lceil","\\rceil","\\ulcorner","\\urcorner","/","\\\\","\\backslash","\\uparrow","\\downarrow","\\Uparrow","\\Downarrow","."]),Ys={"(":")","[":"]","{":"}","\\lbrack":"\\rbrack","\\lbrace":"\\rbrace","\\langle":"\\rangle","\\lvert":"\\rvert","\\lVert":"\\rVert","\\lfloor":"\\rfloor","\\lceil":"\\rceil","\\ulcorner":"\\urcorner","<":">"},Yf=e=>Uf.has(e.text),Tp=e=>zf.has(e.text),Ks=e=>Ff.has(e.text),Kf=(e,t)=>t.has(e.text),Jf=(e,t,n,r)=>{if(t>0){let i=e[t-1];if(Tp(i)&&Ks(r))return!0;if(Yf(i)&&Ks(r))return!1}return Kf(r,n)},eh=(e,t,n)=>{if(!Tp(n))return!1;if(t+1>=e.length)return!0;let r=e[t+1];return!Ks(r)},Js=(e,t)=>{var v;if(!t.mode.inMath())return!1;let n=t.getBounds();if(!n)return!1;let{inner_start:r,inner_end:i,outer_end:o,outer_start:s}=n;if(o<=t.pos)return!1;let a=e.state.doc,l=e.state.selection.main.to,c=l-r,p=a.sliceString(r,i),u=Fs(p),O=W(e),d=O.taboutClosingSymbols,f=u.findIndex($=>$.end>c),m=f===-1?u.length:f;for(let $=m;${let n=Fs(t),r=W(e).taboutClosingSymbols,i=[],o=qr(new Set(Object.values(Ys)),r),s=new Set(Object.keys(Ys).filter(a=>o.has(Ys[a])));for(let a of n)if(o.has(a.text)){if(i.length===0)return a.end;i.pop()}else s.has(a.text)&&i.push(a.text);return null},Pp=(e,t)=>{let n=e.state.selection.main;if(!n.empty)return!1;let r=n.from,i=Ma(e,r);return i===t&&[")","]","}"].includes(i)};var th=(e,t)=>{var s;let n=G(e),i=e.state.doc.lineAt(n.pos).text.match(/(\\begin{[^]]*}|\\\\|^)((?:\s|&)+)/),o=(s=i==null?void 0:i[2].trimStart())!=null?s:"";if(vt(e,t)){let a=new U([new le(` \\\\ +`+o),new qe(0,"")]);We(e,n.pos,n.pos,a.applyInsert(Fe)),tt(e)}else e.dispatch(e.state.replaceSelection(` \\\\ ${o}`));return!0},nh=(e,t)=>{let n=G(e);if(vt(e,t)){let r=e.state.doc,i=r.lineAt(n.pos).number+1,o=r.line(i),s=o.text,a=/\\end{([^}]*)}/.exec(s),l=o.to;if(a&&a[1]&&a.index!==void 0){let c=a[1];W(e).matrixShortcutsEnvNames.includes(c)&&(l=o.from+a.index+a[0].length)}Le(e,l)}else Le(e,t.outer_end);return!0},rh=e=>e.state.selection.main.empty?(e.dispatch(e.state.replaceSelection(" & ")),!0):!1,ni=e=>t=>{let n=G(t);if(!n.mode.strictlyInMath()||!n.getBounds())return!1;let i=n.getEnvNames(n.pos).next().value;if(!i)return!1;let{matrixShortcutsEnvNames:o,matrixShortcutsMacroNames:s}=W(t);return i.kind==="environment"&&!o.includes(i.name)||i.kind==="command"&&!s.includes(i.name)||i.kind==="math"?!1:e(t,i)},ih=e=>{let t=G(e),n=e.state.doc.lineAt(t.pos),r=n.text.slice(t.pos-n.from),i=Ep(e,r);return i!==null?(Le(e,t.pos+i),!0):!1},tn=ni(th),ri=ni(nh),ii=ni(rh),oi=ni(ih);var qp=require("@codemirror/commands"),Y$=require("@codemirror/state");function oh(e){let n=G(e).getBounds();if(!n)return!1;let{inner_start:r,inner_end:i}=n,o="\\boxed{"+e.state.sliceDoc(r,i)+"}",s=e.state.sliceDoc(r-2,r)==="$$"&&e.state.sliceDoc(i,i+2)==="$$";s&&(o=` +`+o+` +`);let a=e.state.selection.main.to;yn(e,r,i,o),Le(e,a+7+(s?1:0))}function sh(){return{id:"latex-suite-box-equation",name:"Box current equation",editorCheckCallback:(e,t)=>{let n=t.cm,i=G(n).mode.inMath();if(e)return i;i&&oh(n)}}}function ah(){return{id:"latex-suite-select-equation",name:"Select current equation",editorCheckCallback:(e,t)=>{let n=t.cm,r=G(n),i=r.mode.inMath();if(e)return i;if(!i)return;let o=r.getBounds();if(!o)return!1;let{inner_start:s,inner_end:a}=o,l=n.state.doc.toString();l.charAt(s)===` +`&&s++,l.charAt(a-1)===` +`&&a--,ja(n,s,a)}}}function lh(e){return{id:"latex-suite-enable-all-features",name:"Enable all features",callback:()=>y(this,null,function*(){e.settings.snippetsEnabled=!0,e.settings.autofractionEnabled=!0,e.settings.matrixShortcutsEnabled=!0,e.settings.taboutEnabled=!0,e.settings.autoEnlargeBrackets=!0,yield e.saveSettings()})}}function ch(e){return{id:"latex-suite-disable-all-features",name:"Disable all features",callback:()=>y(this,null,function*(){e.settings.snippetsEnabled=!1,e.settings.autofractionEnabled=!1,e.settings.matrixShortcutsEnabled=!1,e.settings.taboutEnabled=!1,e.settings.autoEnlargeBrackets=!1,yield e.saveSettings()})}}function ph(e){return{id:"latex-suite-toggle-all-features",name:"Toggle all features",callback:()=>y(this,null,function*(){let t=e.settings.snippetsEnabled||e.settings.autofractionEnabled||e.settings.matrixShortcutsEnabled||e.settings.taboutEnabled||e.settings.autoEnlargeBrackets;e.settings.snippetsEnabled=!t,e.settings.autofractionEnabled=!t,e.settings.matrixShortcutsEnabled=!t,e.settings.taboutEnabled=!t,e.settings.autoEnlargeBrackets=!t,yield e.saveSettings()})}}function uh(e){return{id:"latex-suite-toggle-conceal",name:"Toggle conceal",callback:()=>y(this,null,function*(){e.settings.concealEnabled=!e.settings.concealEnabled,yield e.saveSettings()})}}var Rp=e=>[sh(),ah(),lh(e),ch(e),uh(e),ph(e)];function ea(e){return{id:"latex-suite-vim-select-mode",defineType:"defineAction",type:"action",action:t=>{var i;let n=(i=window==null?void 0:window.CodeMirrorAdapter)==null?void 0:i.Vim;if(!n)return;let r=t.listSelections();n.enterInsertMode(t),t.setSelections(r)},key:e.vimSelectMode,context:"visual"}}function ta(e){return{id:"latex-suite-vim-visual-mode",defineType:"defineAction",type:"action",action:t=>{var i;if(!t.somethingSelected())return;let n=t.listSelections(),r=(i=window==null?void 0:window.CodeMirrorAdapter)==null?void 0:i.Vim;r&&(r.exitInsertMode(t),t.setSelections(n))},key:e.vimVisualMode,context:"insert"}}function Hn(e){return{id:"latex-suite-vim-special-enter",defineType:"defineAction",type:"action",action:t=>{var a;let n=(a=window==null?void 0:window.CodeMirrorAdapter)==null?void 0:a.Vim;if(!n)return;let r=t.getCursor().line,i=t.getLine(r);t.setCursor({line:r,ch:i.length+1});let o=Cp.EditorView.findFromDOM(t.getWrapperElement());if(!o)return;if(tn(o)){n.enterInsertMode(t);return}(0,qp.insertNewlineAndIndent)({state:t.cm6.state,dispatch:l=>{let c=t.cm6;if(c.state.readOnly)return;let p="input.type.compose";if(t.curOp&&!t.curOp.lastChange&&(p="input.type.compose.start"),Array.isArray(l.annotations))try{l.annotations.forEach(u=>{u.value==="input"&&(u.value=p)})}catch(u){console.error(u)}else l.userEvent=p;c.dispatch(l)}})||console.error("Failed to insert newline and indent latex-suite-insert-newline-and-indent"),n.enterInsertMode(t)},key:e.vimMatrixEnter,context:"normal"}}function si(e){return[ea(e),ta(e),Hn(e)]}var te=require("obsidian");var Xp=window.i18next,na=Xp.createInstance();na.init({lng:Xp.language,fallbackLng:"en"});var _p=na,h=na.getFixedT(null,"settings");var li=require("@codemirror/state"),ra=require("@codemirror/view");var ci=class extends te.SettingTab{constructor(n,r){super();this.app=n;this.plugin=r;this.snippetsEditor=null;this.snippetVariablesEditor=null}getSettingDefinitions(){return[...this.getSnippetDefinitions(),...this.getConcealDefinitions(),...this.getColorHighlightBracketsDefinitions(),...this.getPopupPreviewDefinitions(),...this.getAutofractionDefinitions(),...this.getMatrixShortcutsDefinitions(),...this.getTaboutDefinitions(),...this.getAutoEnlargeBracketsDefinitions(),...this.getVimSettingDefinitions(),...this.getKeyMapDefinitions(),...this.getExperimentalDefinitions()]}getSnippetDefinitions(){let n=[];n.push({name:h("snippets.enabled.name"),desc:this.renderHtml(h("snippets.enabled.desc")),control:N("snippetsEnabled")},{name:h("snippets.snippets.name"),desc:this.renderHtml(h("snippets.snippets.desc")),render:i=>{var o;(o=this.snippetsEditor)==null||o.destroy(),this.snippetsEditor=Ap(i,this.plugin,{type:"snippets",validate:s=>y(this,null,function*(){let a=yield Ie(this.plugin.settings.snippetVariables,"snippet-variables.js");yield lt(s,a,"snippets.js")}),deleted:`export default [ + +]`})},visible:()=>!this.plugin.settings.loadSnippetsFromFile},{name:h("snippets.load-from-file.name"),desc:this.renderHtml(h("snippets.load-from-file.desc")),control:N("loadSnippetsFromFile")},{name:h("snippets.file-path.name"),desc:this.renderHtml(h("snippets.file-path.desc")),render:i=>{this.fileSearch(i,"snippetsFileLocation")},visible:()=>this.plugin.settings.loadSnippetsFromFile});let r=[{name:h("advanced-snippets.variables.name"),desc:this.renderHtml(h("advanced-snippets.variables.desc")),render:i=>{var o;(o=this.snippetVariablesEditor)==null||o.destroy(),this.snippetVariablesEditor=Ap(i,this.plugin,{type:"snippetVariables",validate:s=>y(this,null,function*(){yield Ie(s,"snippet-variables.js")}),deleted:`export default { + +}`})},visible:()=>!this.plugin.settings.loadSnippetVariablesFromFile},{name:h("advanced-snippets.load-variables-from-file.name"),desc:this.renderHtml(h("advanced-snippets.load-variables-from-file.desc")),control:N("loadSnippetVariablesFromFile")},{name:h("advanced-snippets.variables-file-path.name"),desc:this.renderHtml(h("advanced-snippets.variables-file-path.desc")),render:i=>{this.fileSearch(i,"snippetVariablesFileLocation")},visible:()=>this.plugin.settings.loadSnippetVariablesFromFile},{name:h("advanced-snippets.word-delimiters.name"),desc:this.renderHtml(h("advanced-snippets.word-delimiters.desc")),control:{type:"text",key:"wordDelimiters",defaultValue:q.wordDelimiters}},{name:h("advanced-snippets.trailing-whitespace.name"),desc:this.renderHtml(h("advanced-snippets.trailing-whitespace.desc")),control:N("removeSnippetWhitespace")},{name:h("advanced-snippets.auto-delete$.name"),desc:this.renderHtml(h("advanced-snippets.auto-delete$.desc")),control:N("autoDelete$")},{name:h("advanced-snippets.suppress-IME-warning.name"),desc:this.renderHtml(h("advanced-snippets.suppress-IME-warning.desc")),control:N("suppressIMEWarning"),visible:()=>dh()&&this.plugin.settings.suppressSnippetTriggerOnIME},{name:h("advanced-snippets.suppress-IME.name"),desc:this.renderHtml(h("advanced-snippets.suppress-IME.desc")),control:N("suppressSnippetTriggerOnIME")},{name:h("advanced-snippets.code-languages.name"),desc:this.renderHtml(h("advanced-snippets.code-languages.desc")),control:ai("forceMathLanguages")},{name:h("advanced-snippets.snippet-debug-mode.name"),desc:this.renderHtml(h("advanced-snippets.snippet-debug-mode.desc")),control:{type:"dropdown",key:"snippetDebug",options:{off:h("advanced-snippets.snippet-debug-mode.options.off"),info:h("advanced-snippets.snippet-debug-mode.options.info"),verbose:h("advanced-snippets.snippet-debug-mode.options.verbose")},defaultValue:q.snippetDebug}}];return[{type:"page",name:h("snippets.heading"),items:[...n,{type:"group",heading:h("advanced-snippets.heading"),items:r}]}]}getConcealDefinitions(){let n=[{name:h("conceal.enabled.name"),desc:this.renderHtml(h("conceal.enabled.desc")),control:N("concealEnabled")},{name:h("conceal.reveal-delay.name"),desc:this.renderHtml(h("conceal.reveal-delay.desc")),control:{type:"number",key:"concealRevealTimeout",defaultValue:q.concealRevealTimeout,min:0}}];return[{type:"page",name:h("conceal.heading"),items:n}]}getColorHighlightBracketsDefinitions(){let n=[{name:h("highlight-brackets.color-brackets.name"),desc:this.renderHtml(h("highlight-brackets.color-brackets.desc")),control:N("colorPairedBracketsEnabled")},{name:h("highlight-brackets.highlight-brackets.name"),desc:this.renderHtml(h("highlight-brackets.highlight-brackets.desc")),control:N("highlightCursorBracketsEnabled")},{name:h("highlight-brackets.color-math.name"),desc:this.renderHtml(h("highlight-brackets.color-math.desc")),control:N("highlightDollarEnabled")}];return[{type:"page",name:h("highlight-brackets.heading"),items:n}]}getPopupPreviewDefinitions(){let n=[{name:h("math-preview.enabled.name"),desc:this.renderHtml(h("math-preview.enabled.desc")),control:N("mathPreviewEnabled")},{name:h("math-preview.position.name"),desc:this.renderHtml(h("math-preview.position.desc")),render:r=>{r.addDropdown(i=>i.addOption("above",h("math-preview.position.options.above")).addOption("below",h("math-preview.position.options.below")).setValue(this.plugin.settings.mathPreviewPositionIsAbove?"above":"below").onChange(o=>y(this,null,function*(){this.plugin.settings.mathPreviewPositionIsAbove=o==="above",yield this.plugin.saveSettings()})))}},{name:h("math-preview.cursor-symbol.name"),desc:this.renderHtml(h("math-preview.cursor-symbol.desc")),render:r=>{r.addText(i=>{i.setPlaceholder(q.mathPreviewCursor).setValue(this.plugin.settings.mathPreviewCursor).onChange(s=>y(this,null,function*(){this.plugin.settings.mathPreviewCursor=s,yield this.plugin.saveSettings()}));let o=r.controlEl.createEl("datalist",{attr:{id:"math-preview-cursor-list"}});return["\u25B6","\u2503","|","\\_","{\\mid}","{\\triangle}"].forEach(s=>o.createEl("option",{value:s})),i.inputEl.setAttribute("list","math-preview-cursor-list"),i})}},{name:h("math-preview.highlight-brackets.name"),desc:this.renderHtml(h("math-preview.highlight-brackets.desc")),control:N("mathPreviewBracketHighlighting")},{name:h("math-preview.display-live-preview.name"),desc:this.renderHtml(h("math-preview.display-live-preview.desc")),control:N("mathPreviewLivePreviewDisplay")}];return[{type:"page",name:h("math-preview.heading"),items:n}]}getAutofractionDefinitions(){let n=[{name:h("auto-fraction.enabled.name"),desc:this.renderHtml(h("auto-fraction.enabled.desc")),control:N("autofractionEnabled")},{name:h("auto-fraction.fraction-symbol.name"),desc:this.renderHtml(h("auto-fraction.fraction-symbol.desc")),render:r=>{r.addText(i=>{i.setPlaceholder(q.autofractionSymbol).setValue(this.plugin.settings.autofractionSymbol).onChange(s=>y(this,null,function*(){this.plugin.settings.autofractionSymbol=s,yield this.plugin.saveSettings()}));let o=r.controlEl.createEl("datalist",{attr:{id:"autofraction-symbol-list"}});["\\frac","\\dfrac","\\tfrac"].forEach(s=>o.createEl("option",{value:s})),i.inputEl.setAttribute("list","autofraction-symbol-list")})}},{name:h("auto-fraction.excluded-environments.name"),desc:this.renderHtml(h("auto-fraction.excluded-environments.desc")),control:{key:"autofractionExcludedEnvs",type:"textarea",defaultValue:q.autofractionExcludedEnvs,validate:r=>{try{rt(Li,r)}catch(i){return console.error(i),"Invalid environment format. Error: "+i.message}}}},{name:h("auto-fraction.breaking-characters.name"),desc:this.renderHtml(h("auto-fraction.breaking-characters.desc")),control:{key:"autofractionBreakingChars",type:"text",defaultValue:q.autofractionBreakingChars}}];return[{type:"page",name:h("auto-fraction.heading"),items:n}]}getMatrixShortcutsDefinitions(){let n=[{name:h("matrix-shortcuts.enabled.name"),desc:this.renderHtml(h("matrix-shortcuts.enabled.desc")),control:N("matrixShortcutsEnabled")},{name:h("matrix-shortcuts.environments.name"),desc:this.renderHtml(h("matrix-shortcuts.environments.desc")),control:{key:"matrixShortcutsEnvNames",type:"text",defaultValue:q.matrixShortcutsEnvNames}},{name:h("matrix-shortcuts.macros.name"),desc:this.renderHtml(h("matrix-shortcuts.macros.desc")),control:{key:"matrixShortcutsMacroNames",type:"text",defaultValue:q.matrixShortcutsMacroNames}}];return[{type:"page",name:h("matrix-shortcuts.heading"),items:n}]}getTaboutDefinitions(){let n=[{name:h("tabout.enabled.name"),desc:this.renderHtml(h("tabout.enabled.desc")),control:N("taboutEnabled")},{name:h("tabout.closing-brackets.name"),desc:this.renderHtml(h("tabout.closing-brackets.desc")),control:{type:"text",key:"taboutClosingSymbols",defaultValue:q.taboutClosingSymbols}},{name:h("tabout.exit-EOL.name"),desc:this.renderHtml(h("tabout.exit-EOL.desc")),control:N("taboutExitEquationOnlyOnEOL")}];return[{type:"page",name:h("tabout.heading"),items:n}]}getAutoEnlargeBracketsDefinitions(){let n=[{name:h("auto-enlarge.enabled.name"),desc:this.renderHtml(h("auto-enlarge.enabled.desc")),control:N("autoEnlargeBrackets")},{name:h("auto-enlarge.triggers.name"),desc:this.renderHtml(h("auto-enlarge.triggers.desc")),control:{type:"text",key:"autoEnlargeBracketsTriggers",defaultValue:q.autoEnlargeBracketsTriggers}},{name:h("auto-enlarge.space.name"),desc:this.renderHtml(h("auto-enlarge.space.desc")),control:N("autoEnlargeBracketsSpace")}];return[{type:"page",name:h("auto-enlarge.heading"),items:n}]}getVimSettingDefinitions(){return[{type:"page",name:"Vim",items:[{name:h("vim.enabled.name"),desc:this.renderHtml(h("vim.enabled.desc")),control:N("vimEnabled")},{name:h("vim.select-mode.name"),desc:this.renderHtml(h("vim.select-mode.desc")),control:ai("vimSelectMode")},{name:h("vim.visual-mode.name"),desc:this.renderHtml(h("vim.visual-mode.desc")),control:ai("vimVisualMode")},{name:h("vim.matrix-enter.name"),desc:this.renderHtml(h("vim.matrix-enter.desc")),control:ai("vimMatrixEnter")}]}]}getKeyMapDefinitions(){let n=[["snippet","snippetsTrigger"],["next-tabstop","snippetNextTabstopTrigger"],["prev-tabstop","snippetPreviousTabstopTrigger"],["auto-fraction","autofractionTrigger"],["matrix-newline","matrixShortcutsNewlineTrigger"],["matrix-cell","matrixShortcutsCellTrigger"],["matrix-exit","matrixShortcutsExitTrigger"],["tabout","taboutTrigger"]].map(r=>({name:h(`keymap.${r[0]}`),control:{type:"text",key:r[1],defaultValue:q[r[1]]}}));return[{type:"page",name:h("keymap.heading.name"),desc:this.renderHtml(h("keymap.heading.desc")),items:[{name:" ",desc:this.renderHtml(h("keymap.desc"))},{type:"list",items:n}]}]}getExperimentalDefinitions(){let n=[{name:h("experimental.snippet-recursion.name"),desc:this.renderHtml(h("experimental.snippet-recursion.desc")),control:{type:"number",key:"snippetRecursion",defaultValue:q.snippetRecursion,min:0}},{name:h("experimental.excalidraw-enabled.name"),desc:this.renderHtml(h("experimental.excalidraw-enabled.desc")),control:N("excalidrawSupportEnabled")},{name:h("experimental.log-level.name"),desc:this.renderHtml(h("experimental.log-level.desc")),control:{type:"dropdown",key:"logLevel",defaultValue:q.logLevel,options:{off:h("experimental.log-level.options.off"),info:h("experimental.log-level.options.info"),verbose:h("experimental.log-level.options.verbose"),vverbose:h("experimental.log-level.options.vverbose")}}}];return[{type:"page",name:h("experimental.heading.name"),desc:this.renderHtml(h("experimental.heading.desc")),items:n}]}fileSearch(n,r){n.addSearch(i=>{i.setPlaceholder(q[r]).setValue(this.plugin.settings[r]).onChange((0,te.debounce)(s=>y(this,null,function*(){s!==""&&(this.plugin.settings[r]=s,yield this.plugin.saveSettings(!0))}),7e3,!0));let o=i.inputEl;o.addClass("latex-suite-location-input-el"),new Mn(this.app,o)})}renderHtml(n){return n.includes("y(this,null,function*(){let b=g.doc.toString(),v=!0;try{yield n.validate(b)}catch($){v=!1}l(v),v&&(t.settings[n.type]=b,yield t.saveSettings(!1,!0))}),500,!0),u=ra.EditorView.updateListener.of(g=>void y(this,null,function*(){g.docChanged&&p(g.state)}));c.push(u);let O=Oh(t.settings[n.type],c,r),d=i.createDiv("snippets-editor-buttons");return new te.ButtonComponent(d).setIcon("switch").setTooltip("Reset to default snippets").onClick(()=>y(this,null,function*(){new pi(t.app,"Are you sure? This will delete any custom snippets you have written.",g=>void Bn(g).setButtonText("Reset to default snippets"),()=>y(this,null,function*(){O.setState(li.EditorState.create({doc:q[n.type],extensions:c})),l(!0),t.settings[n.type]=q[n.type],yield t.saveSettings()})).open()})),new te.ButtonComponent(d).setIcon("trash").setTooltip("Remove all snippets").onClick(()=>y(this,null,function*(){new pi(t.app,"Are you sure? This will delete any custom snippets you have written.",g=>void Bn(g).setButtonText("Remove all snippets"),()=>y(this,null,function*(){let g=n.deleted;O.setState(li.EditorState.create({doc:g,extensions:c})),l(!0),t.settings[n.type]=g,yield t.saveSettings(!1,!0)})).open()})),O}var pi=class extends te.Modal{constructor(t,n,r,i){super(t),this.contentEl.addClass("latex-suite-confirmation-modal"),this.contentEl.createEl("p",{text:n}),new te.Setting(this.contentEl).addButton(o=>{r(o),o.onClick(()=>y(this,null,function*(){yield i(),this.close()}))}).addButton(o=>o.setButtonText("Cancel").onClick(()=>this.close()))}};function Oh(e,t,n){return new ra.EditorView({state:li.EditorState.create({doc:e,extensions:t}),parent:n,root:activeDocument})}function dh(){return te.Platform.isMobileApp}function ui(e){return e.includes("l.setValue(this.plugin.settings.snippetsEnabled).onChange(c=>y(this,null,function*(){this.plugin.settings.snippetsEnabled=c,yield this.plugin.saveSettings()})));let r=new Q.Setting(n).setName("Snippets").setDesc('Enter snippets here. Remember to add a comma after each snippet, and escape all backslashes with an extra \\. Lines starting with "//" will be treated as comments and ignored.').setClass("snippets-text-area");this.createSnippetsEditor(r),new Q.Setting(n).setName("Load snippets from file or folder").setDesc("Whether to load snippets from a specified file, or from all files within a folder (instead of from the plugin settings).").addToggle(l=>l.setValue(this.plugin.settings.loadSnippetsFromFile).onChange(c=>y(this,null,function*(){this.plugin.settings.loadSnippetsFromFile=c,r.settingEl.toggleClass("hidden",c),this.snippetsFileLocEl!=null&&this.snippetsFileLocEl.toggleClass("hidden",!c),yield this.plugin.saveSettings()})));let i=new DocumentFragment;i.createDiv({},l=>{l.appendText("The file or folder to load snippets from. On desktop you can use ~/ or an absolute path. Files outside your vault or in hidden folders may not be watched for changes depending on your os.")});let o=new Q.Setting(n).setName("Snippets file or folder location").setDesc(i),s;o.addSearch(l=>{l.setPlaceholder(q.snippetsFileLocation).setValue(this.plugin.settings.snippetsFileLocation).onChange((0,Q.debounce)(c=>y(this,null,function*(){this.plugin.settings.snippetsFileLocation=c,yield this.plugin.saveSettings(!0)}),500,!0)),s=l.inputEl,s.addClass("latex-suite-location-input-el"),new Mn(this.app,s)}),this.snippetsFileLocEl=o.settingEl;let a=this.plugin.settings.loadSnippetsFromFile;r.settingEl.toggleClass("hidden",a),this.snippetsFileLocEl.toggleClass("hidden",!a)}displayConcealSettings(){let n=this.containerEl;this.addHeading(n,"Conceal","math-integral-x");let r=ui(h("conceal.enabled.desc"));new Q.Setting(n).setName("Enabled").setDesc(r).addToggle(o=>o.setValue(this.plugin.settings.concealEnabled).onChange(s=>y(this,null,function*(){this.plugin.settings.concealEnabled=s,yield this.plugin.saveSettings()})));let i=ui(h("conceal.reveal-delay.desc"));new Q.Setting(n).setName("Reveal delay (ms)").setDesc(i).addText(o=>o.setPlaceholder(String(q.concealRevealTimeout)).setValue(String(this.plugin.settings.concealRevealTimeout)).onChange(s=>{/^\d+$/.test(s)&&(this.plugin.settings.concealRevealTimeout=Number(s),this.plugin.saveSettings())}))}displayColorHighlightBracketsSettings(){let n=this.containerEl;this.addHeading(n,"Highlight and color brackets","parentheses"),new Q.Setting(n).setName("Color paired brackets").setDesc("Whether to colorize matching brackets.").addToggle(r=>r.setValue(this.plugin.settings.colorPairedBracketsEnabled).onChange(i=>y(this,null,function*(){this.plugin.settings.colorPairedBracketsEnabled=i,yield this.plugin.saveSettings()}))),new Q.Setting(n).setName("Highlight matching bracket beneath cursor").setDesc("When the cursor is adjacent to a bracket, highlight the matching bracket.").addToggle(r=>r.setValue(this.plugin.settings.highlightCursorBracketsEnabled).onChange(i=>y(this,null,function*(){this.plugin.settings.highlightCursorBracketsEnabled=i,yield this.plugin.saveSettings()}))),new Q.Setting(n).setName("Highlight math delimiters").setDesc("Whether to highlight matched and mismatched math delimiters in the editor according to latex suite parser. This parser behaves closer to the reading view parser than the editor/syntax highlighting parser.").addToggle(r=>r.setValue(this.plugin.settings.highlightDollarEnabled).onChange(i=>y(this,null,function*(){this.plugin.settings.highlightDollarEnabled=i,yield this.plugin.saveSettings()})))}displayPopupPreviewSettings(){let n=this.containerEl;this.addHeading(n,"Math popup preview","superscript");let r=new DocumentFragment,i=r.createDiv();i.setText("When inside an equation, show a popup preview window of the rendered math.");let o=r.createEl("br"),s=r.createDiv();s.setText("The popup preview will be shown for all inline math equations, as well as for block math equations in Source mode."),r.append(i,o,s);let a=new Q.Setting(n).setName("Enabled").setDesc(r),l=new Q.Setting(n).setName("Position").setDesc("Where to display the popup preview relative to the equation source.").addDropdown(d=>d.addOption("Above","Above").addOption("Below","Below").setValue(this.plugin.settings.mathPreviewPositionIsAbove?"Above":"Below").onChange(f=>y(this,null,function*(){this.plugin.settings.mathPreviewPositionIsAbove=f==="Above",yield this.plugin.saveSettings()}))),c=new Q.Setting(n).setName("Cursor symbol").setDesc(`The symbol to use as the cursor in the popup preview such as ${q.mathPreviewCursor}. Leave it blank to turn it off.`).addText(d=>{d.setPlaceholder(q.mathPreviewCursor).setValue(this.plugin.settings.mathPreviewCursor).onChange(m=>y(this,null,function*(){this.plugin.settings.mathPreviewCursor=m,yield this.plugin.saveSettings()}));let f=n.createEl("datalist",{attr:{id:"math-preview-cursor-list"}});return["\u25B6","\u2503","|","\\_","{\\mid}","{\\triangle}"].forEach(m=>f.createEl("option",{value:m})),d.inputEl.setAttribute("list","math-preview-cursor-list"),d}),p=new Q.Setting(n).setName("Highlight brackets in preview").setDesc("Whether to highlight the area within the nearest pair of brackets around the cursor in the popup preview.").addToggle(d=>d.setValue(this.plugin.settings.mathPreviewBracketHighlighting).onChange(f=>y(this,null,function*(){this.plugin.settings.mathPreviewBracketHighlighting=f,yield this.plugin.saveSettings()}))),u=new Q.Setting(n).setName("Display live preview").setDesc("Whether to display the tooltip in live preview mode. The cursor and bracket highlighting will only be shown in this preview and not in obsidian's preview. ").addToggle(d=>d.setValue(this.plugin.settings.mathPreviewLivePreviewDisplay).onChange(f=>y(this,null,function*(){this.plugin.settings.mathPreviewLivePreviewDisplay=f,yield this.plugin.saveSettings()}))),O=[l,c,p,u];O.forEach(d=>d.settingEl.toggleClass("hidden",!this.plugin.settings.mathPreviewEnabled)),a.addToggle(d=>d.setValue(this.plugin.settings.mathPreviewEnabled).onChange(f=>y(this,null,function*(){this.plugin.settings.mathPreviewEnabled=f,O.forEach(m=>m.settingEl.toggleClass("hidden",!f)),yield this.plugin.saveSettings()})))}displayAutofractionSettings(){let n=this.containerEl;this.addHeading(n,"Auto-fraction","math-x-divide-y-2"),new Q.Setting(n).setName("Enabled").setDesc("Whether auto-fraction is enabled.").addToggle(r=>r.setValue(this.plugin.settings.autofractionEnabled).onChange(i=>y(this,null,function*(){this.plugin.settings.autofractionEnabled=i,yield this.plugin.saveSettings()}))),new Q.Setting(n).setName("Fraction symbol").setDesc("The fraction symbol to use in the replacement. e.g. \\frac, \\dfrac, \\tfrac").addText(r=>{r.setPlaceholder(q.autofractionSymbol).setValue(this.plugin.settings.autofractionSymbol).onChange(o=>y(this,null,function*(){this.plugin.settings.autofractionSymbol=o,yield this.plugin.saveSettings()}));let i=n.createEl("datalist",{attr:{id:"autofraction-symbol-list"}});["\\frac","\\dfrac","\\tfrac"].forEach(o=>i.createEl("option",{value:o})),r.inputEl.setAttribute("list","autofraction-symbol-list")}),new Q.Setting(n).setName("Excluded environments").setDesc('A list of environments to exclude auto-fraction from running in. For example, to exclude auto-fraction from running while inside an exponent, such as e^{...}, use ["^{", "}"]').addTextArea(r=>r.setPlaceholder('[ ["^{", "}] ]').setValue(this.plugin.settings.autofractionExcludedEnvs).onChange(i=>y(this,null,function*(){this.plugin.settings.autofractionExcludedEnvs=i,yield this.plugin.saveSettings()}))),new Q.Setting(n).setName("Breaking characters").setDesc('A list of characters that denote the start/end of a fraction. e.g. if + is included in the list, "a+b/c" will expand to "a+\\frac{b}{c}". If + is not in the list, it will expand to "\\frac{a+b}{c}".').addText(r=>r.setPlaceholder(q.autofractionBreakingChars).setValue(this.plugin.settings.autofractionBreakingChars).onChange(i=>y(this,null,function*(){this.plugin.settings.autofractionBreakingChars=i,yield this.plugin.saveSettings()})))}displayMatrixShortcutsSettings(){let n=this.containerEl;this.addHeading(n,"Matrix shortcuts","brackets-contain"),new Q.Setting(n).setName("Enabled").setDesc("Whether matrix shortcuts are enabled.").addToggle(r=>r.setValue(this.plugin.settings.matrixShortcutsEnabled).onChange(i=>y(this,null,function*(){this.plugin.settings.matrixShortcutsEnabled=i,yield this.plugin.saveSettings()}))),new Q.Setting(n).setName("Environments").setDesc("A list of environment names to run the matrix shortcuts in, separated by commas.").addText(r=>r.setPlaceholder(q.matrixShortcutsEnvNames).setValue(this.plugin.settings.matrixShortcutsEnvNames).onChange(i=>y(this,null,function*(){this.plugin.settings.matrixShortcutsEnvNames=i,yield this.plugin.saveSettings()}))),new Q.Setting(n).setName("Macros").setDesc("A list of macro names to run the matrix shortcuts in, separated by commas.").addText(r=>r.setPlaceholder(q.matrixShortcutsMacroNames).setValue(this.plugin.settings.matrixShortcutsMacroNames).onChange(i=>y(this,null,function*(){this.plugin.settings.matrixShortcutsMacroNames=i,yield this.plugin.saveSettings()})))}displayTaboutSettings(){let n=this.containerEl;this.addHeading(n,"Tabout","tabout"),new Q.Setting(n).setName("Enabled").setDesc("Whether tabout is enabled.").addToggle(o=>o.setValue(this.plugin.settings.taboutEnabled).onChange(s=>y(this,null,function*(){this.plugin.settings.taboutEnabled=s,r.settingEl.toggleClass("hidden",!s),i.settingEl.toggleClass("hidden",!s),yield this.plugin.saveSettings()})));let r=new Q.Setting(n).setName("Closing brackets").setDesc("A list of closing brackets for tabout, separated by commas.").addText(o=>o.setPlaceholder(q.taboutClosingSymbols).setValue(this.plugin.settings.taboutClosingSymbols).onChange(s=>y(this,null,function*(){this.plugin.settings.taboutClosingSymbols=s,yield this.plugin.saveSettings()}))),i=new Q.Setting(n).setName("Exit equation only on EOL").setDesc("Whether to exit the equation only when the cursor is at the end of the line.").addToggle(o=>o.setValue(this.plugin.settings.taboutExitEquationOnlyOnEOL).onChange(s=>y(this,null,function*(){this.plugin.settings.taboutExitEquationOnlyOnEOL=s,yield this.plugin.saveSettings()})));r.settingEl.toggleClass("hidden",!this.plugin.settings.taboutEnabled),i.settingEl.toggleClass("hidden",!this.plugin.settings.taboutEnabled)}displayAutoEnlargeBracketsSettings(){let n=this.containerEl;this.addHeading(n,"Auto-enlarge brackets","parentheses"),new Q.Setting(n).setName("Enabled").setDesc("Whether to automatically enlarge brackets containing e.g. sum, int, frac.").addToggle(r=>r.setValue(this.plugin.settings.autoEnlargeBrackets).onChange(i=>y(this,null,function*(){this.plugin.settings.autoEnlargeBrackets=i,yield this.plugin.saveSettings()}))),new Q.Setting(n).setName("Triggers").setDesc("A list of symbols that should trigger auto-enlarge brackets, separated by commas.").addText(r=>r.setPlaceholder(q.autoEnlargeBracketsTriggers).setValue(this.plugin.settings.autoEnlargeBracketsTriggers).onChange(i=>y(this,null,function*(){this.plugin.settings.autoEnlargeBracketsTriggers=i,yield this.plugin.saveSettings()}))),new Q.Setting(n).setName("Space").setDesc("Whether to add a space after \\left( and before \\right) or not").addToggle(r=>r.setValue(this.plugin.settings.autoEnlargeBracketsSpace).onChange(i=>y(this,null,function*(){this.plugin.settings.autoEnlargeBracketsSpace=i,yield this.plugin.saveSettings()})))}displayAdvancedSnippetSettings(){let n=this.containerEl;this.addHeading(n,"Advanced snippet settings");let r=new Q.Setting(n).setName("Snippet variables").setDesc("Assign snippet variables that can be used as shortcuts when writing snippets.").addTextArea(f=>f.setValue(this.plugin.settings.snippetVariables).onChange(m=>y(this,null,function*(){this.plugin.settings.snippetVariables=m,yield this.plugin.saveSettings(!1,!0)})).setPlaceholder(q.snippetVariables)).setClass("latex-suite-snippet-variables-setting");new Q.Setting(n).setName("Load snippet variables from file or folder").setDesc("Whether to load snippet variables from a specified file, or from all files within a folder (instead of from the plugin settings).").addToggle(f=>f.setValue(this.plugin.settings.loadSnippetVariablesFromFile).onChange(m=>y(this,null,function*(){this.plugin.settings.loadSnippetVariablesFromFile=m,r.settingEl.toggleClass("hidden",m),this.snippetVariablesFileLocEl!=null&&this.snippetVariablesFileLocEl.toggleClass("hidden",!m),yield this.plugin.saveSettings()})));let i=new DocumentFragment;i.createDiv({},f=>{f.appendText("The file or folder to load snippets from. On desktop you can use ~/ or an absolute path. Files outside your vault or in hidden folders may not be watched for changes depending on your os.")});let o=new Q.Setting(n).setName("Snippet variables file or folder location").setDesc(i);o.addSearch(f=>{f.setPlaceholder(q.snippetVariablesFileLocation).setValue(this.plugin.settings.snippetVariablesFileLocation).onChange((0,Q.debounce)(g=>y(this,null,function*(){this.plugin.settings.snippetVariablesFileLocation=g,yield this.plugin.saveSettings(!0)}),500,!0));let m=f.inputEl;m.addClass("latex-suite-location-input-el"),new Mn(this.app,m)}),this.snippetVariablesFileLocEl=o.settingEl;let s=this.plugin.settings.loadSnippetVariablesFromFile;r.settingEl.toggleClass("hidden",s),this.snippetVariablesFileLocEl.toggleClass("hidden",!s),new Q.Setting(n).setName("Word delimiters").setDesc('Symbols that will be treated as word delimiters, for use with the "w" snippet option.').addText(f=>f.setPlaceholder(q.wordDelimiters).setValue(this.plugin.settings.wordDelimiters).onChange(m=>y(this,null,function*(){this.plugin.settings.wordDelimiters=m,yield this.plugin.saveSettings()}))),new Q.Setting(n).setName("Remove trailing whitespaces in snippets in inline math").setDesc("Whether to remove trailing whitespaces when expanding snippets at the end of inline math blocks.").addToggle(f=>f.setValue(this.plugin.settings.removeSnippetWhitespace).onChange(m=>y(this,null,function*(){this.plugin.settings.removeSnippetWhitespace=m,yield this.plugin.saveSettings()}))),new Q.Setting(n).setName("Remove closing $ when backspacing inside blank inline math").setDesc("Whether to also remove the closing $ when you delete the opening $ symbol inside blank inline math.").addToggle(f=>f.setValue(this.plugin.settings.autoDelete$).onChange(m=>y(this,null,function*(){this.plugin.settings.autoDelete$=m,yield this.plugin.saveSettings()})));let a=new Q.Setting(n).setName("Don't trigger snippets when IME is active").setDesc("Whether to suppress snippets triggering when an IME is active."),l=new Q.Setting(n).setName("Suppress IME warning").setDesc("Whether a warning is shown on startup if `Don't trigger snippets when IME is active` is enabled. Disable that setting if you are aware of the IME limitations. Currently only ios and android touch/swipe keyboards like gboard have support for IME. See https://github.com/artisticat1/obsidian-latex-suite/blob/main/DOCS.md#IME-keyboards for more info.").addToggle(f=>f.setValue(this.plugin.settings.suppressIMEWarning).onChange(m=>y(this,null,function*(){this.plugin.settings.suppressIMEWarning=m,yield this.plugin.saveSettings()})));l.settingEl.toggleClass("hidden",!(this.plugin.settings.suppressSnippetTriggerOnIME&&fi())),a.addToggle(f=>f.setValue(this.plugin.settings.suppressSnippetTriggerOnIME).onChange(m=>y(this,null,function*(){this.plugin.settings.suppressSnippetTriggerOnIME=m,l.settingEl.toggleClass("hidden",!(m&&fi())),yield this.plugin.saveSettings()}))),new Q.Setting(n).setName("Code languages to interpret as math mode").setDesc("Codeblock languages where the whole code block should be treated like a math block, separated by commas.").addText(f=>f.setPlaceholder(q.forceMathLanguages).setValue(this.plugin.settings.forceMathLanguages).onChange(m=>y(this,null,function*(){this.plugin.settings.forceMathLanguages=m,yield this.plugin.saveSettings()}))),new Q.Setting(n).setName("Snippet debug mode").setDesc('Set the level of debug information to log about snippet expansion. Set to "info" or "verbose" to help identify issues with snippet syntax or why a snippet is not expanding. Verbose mode will log most information to the developer console on debug level.').addDropdown(f=>f.addOption("off","Off").addOption("info","Info").addOption("verbose","Verbose").setValue(this.plugin.settings.snippetDebug).onChange(m=>y(this,null,function*(){this.plugin.settings.snippetDebug=m,yield this.plugin.saveSettings()})));let c=new Q.Setting(n).setName("Vim key bindings").setDesc("turn on/off vim keybindings. Note vim needs to be enabled in obsidian itself."),p=[],u=new Q.Setting(n).setName("Vim: Switch from visual mode to select mode").setDesc(`maps the key to switch from visual mode to select mode. Keymap must be a vim keymap and can't contain any spaces. Use empty string to disable this feature. - (select mode=insert keybindings)`).addText(O=>O.setPlaceholder(W.vimSelectMode).setValue(this.plugin.settings.vimSelectMode).onChange(h=>v(this,null,function*(){var y;let f=this.plugin.settings.vimSelectMode;this.plugin.settings.vimSelectMode=h,yield this.plugin.saveSettings();let g=(y=window==null?void 0:window.CodeMirrorAdapter)==null?void 0:y.Vim;if(!g)return;let b=di(this.plugin.settings);g[b.defineType](b.id,b.action),g.mapCommand(b.key,b.type,b.id,{},{context:b.context}),g.unmap(f,b.context)})));c.push(p);let u=new w.Setting(e).setName("Vim: Switch from select mode to visual mode").setDesc(`maps the key to switch from select mode to visual mode. + (select mode=insert keybindings)`).addText(f=>f.setPlaceholder(q.vimSelectMode).setValue(this.plugin.settings.vimSelectMode).onChange(m=>y(this,null,function*(){var $;let g=this.plugin.settings.vimSelectMode;this.plugin.settings.vimSelectMode=m,yield this.plugin.saveSettings();let b=($=window==null?void 0:window.CodeMirrorAdapter)==null?void 0:$.Vim;if(!b)return;let v=ea(this.plugin.settings);b[v.defineType](v.id,v.action),b.mapCommand(v.key,v.type,v.id,{},{context:v.context}),b.unmap(g,v.context)})));p.push(u);let O=new Q.Setting(n).setName("Vim: Switch from select mode to visual mode").setDesc(`maps the key to switch from select mode to visual mode. must be a vim keymap and can't contain any spaces. Example = Ctrl-g + Ctrl-Alt-i. Please check the vim keybinding first on another command like w before reporting it. Some keybindings like shift don't work due to the original vim plugin. Use empty string to disable this feature. - (select mode=insert keybindings)`).addText(O=>{O.setPlaceholder(W.vimVisualMode).setValue(this.plugin.settings.vimVisualMode).onChange(h=>v(this,null,function*(){var y;let f=this.plugin.settings.vimVisualMode;this.plugin.settings.vimVisualMode=h,yield this.plugin.saveSettings();let g=fi(this.plugin.settings),b=(y=window==null?void 0:window.CodeMirrorAdapter)==null?void 0:y.Vim;b&&(b[g.defineType](g.id,g.action),b.mapCommand(g.key,g.type,g.id,{},{context:g.context}),b.unmap(f,g.context))}))});c.push(u);let d=new w.Setting(e).setName("Vim: run matrix enter").setDesc(`maps the key to the action of inserting a new line below while appending \\\\ to the current line in a matrix environment. - Use empty string to disable this feature.`).addText(O=>{O.setPlaceholder(W.vimMatrixEnter).setValue(this.plugin.settings.vimMatrixEnter).onChange(h=>v(this,null,function*(){var y;let f=this.plugin.settings.vimMatrixEnter;this.plugin.settings.vimMatrixEnter=h,yield this.plugin.saveSettings();let g=(y=window==null?void 0:window.CodeMirrorAdapter)==null?void 0:y.Vim;if(!g)return;g.unmap(f,"normal");let b=mi(this.plugin.settings);g[b.defineType](b.id,b.action),g.mapCommand(b.key,b.type,b.id,{},{context:b.context}),g.unmap(f,b.context)}))});c.push(d),l.addToggle(O=>{let h=this.plugin.settings.vimEnabled&&(app==null?void 0:app.isVimEnabled());c.forEach(f=>f.settingEl.toggleClass("hidden",!h)),O.setValue(this.plugin.settings.vimEnabled&&(app==null?void 0:app.isVimEnabled())).onChange(f=>v(this,null,function*(){var b;this.plugin.settings.vimEnabled=f,yield this.plugin.saveSettings(),c.forEach(y=>y.settingEl.toggleClass("hidden",!f));let g=(b=window==null?void 0:window.CodeMirrorAdapter)==null?void 0:b.Vim;if(g)for(let y of Lr(this.plugin.settings))g.unmap(y.key,y.context)}))})}createSnippetsEditor(e){let r=e.controlEl.createDiv("snippets-editor-wrapper"),n=e.controlEl.createDiv("snippets-footer"),i=n.createDiv("snippets-editor-validity"),s=new w.ExtraButtonComponent(i);s.setIcon("checkmark").extraSettingsEl.addClass("snippets-editor-validity-indicator");let o=i.createDiv("snippets-editor-validity-text");o.addClass("setting-item-description"),o.style.padding="0";function a(O){s.setIcon(O?"checkmark":"cross"),s.extraSettingsEl.removeClass(O?"invalid":"valid"),s.extraSettingsEl.addClass(O?"valid":"invalid"),o.setText(O?"Saved":"Invalid syntax. Changes not saved")}let l=uo,c=gi.EditorView.updateListener.of(O=>v(this,null,function*(){if(O.docChanged){let h=O.state.doc.toString(),f=!0,g;try{g=yield ze(this.plugin.settings.snippetVariables),yield ut(h,g)}catch(b){f=!1}if(a(f),!f)return;this.plugin.settings.snippets=h,yield this.plugin.saveSettings()}}));l.push(c),this.snippetsEditor=Rp(this.plugin.settings.snippets,l),r.appendChild(this.snippetsEditor.dom);let p=n.createDiv("snippets-editor-buttons");new w.ButtonComponent(p).setIcon("switch").setTooltip("Reset to default snippets").onClick(()=>v(this,null,function*(){new Fr(this.plugin.app,"Are you sure? This will delete any custom snippets you have written.",O=>O.setButtonText("Reset to default snippets").setWarning(),()=>v(this,null,function*(){this.snippetsEditor.setState(Ur.EditorState.create({doc:At,extensions:l})),a(!0),this.plugin.settings.snippets=At,yield this.plugin.saveSettings()})).open()})),new w.ButtonComponent(p).setIcon("trash").setTooltip("Remove all snippets").onClick(()=>v(this,null,function*(){new Fr(this.plugin.app,"Are you sure? This will delete any custom snippets you have written.",O=>O.setButtonText("Remove all snippets").setWarning(),()=>v(this,null,function*(){let O=`[ + (select mode=insert keybindings)`).addText(f=>{f.setPlaceholder(q.vimVisualMode).setValue(this.plugin.settings.vimVisualMode).onChange(m=>y(this,null,function*(){var $;let g=this.plugin.settings.vimVisualMode;this.plugin.settings.vimVisualMode=m,yield this.plugin.saveSettings();let b=ta(this.plugin.settings),v=($=window==null?void 0:window.CodeMirrorAdapter)==null?void 0:$.Vim;v&&(v[b.defineType](b.id,b.action),v.mapCommand(b.key,b.type,b.id,{},{context:b.context}),v.unmap(g,b.context))}))});p.push(O);let d=new Q.Setting(n).setName("Vim: run matrix enter").setDesc(`maps the key to the action of inserting a new line below while appending \\\\ to the current line in a matrix environment. + Use empty string to disable this feature.`).addText(f=>{f.setPlaceholder(q.vimMatrixEnter).setValue(this.plugin.settings.vimMatrixEnter).onChange(m=>y(this,null,function*(){var $;let g=this.plugin.settings.vimMatrixEnter;this.plugin.settings.vimMatrixEnter=m,yield this.plugin.saveSettings();let b=($=window==null?void 0:window.CodeMirrorAdapter)==null?void 0:$.Vim;if(!b)return;b.unmap(g,"normal");let v=Hn(this.plugin.settings);b[v.defineType](v.id,v.action),b.mapCommand(v.key,v.type,v.id,{},{context:v.context}),b.unmap(g,v.context)}))});p.push(d),c.addToggle(f=>{var g,b,v,$;let m=this.plugin.settings.vimEnabled&&!!((b=(g=this.app).isVimEnabled)!=null&&b.call(g));p.forEach(S=>S.settingEl.toggleClass("hidden",!m)),f.setValue(this.plugin.settings.vimEnabled&&!!(($=(v=this.app).isVimEnabled)!=null&&$.call(v))).onChange(S=>y(this,null,function*(){var T;this.plugin.settings.vimEnabled=S,yield this.plugin.saveSettings(),p.forEach(P=>P.settingEl.toggleClass("hidden",!S));let E=(T=window==null?void 0:window.CodeMirrorAdapter)==null?void 0:T.Vim;if(E)for(let P of si(this.plugin.settings))E.unmap(P.key,P.context)}))})}displayKeymapSettings(){let n=this.containerEl;this.addHeading(n,"Keymap","keyboard");let r=[["snippet","snippetsTrigger"],["next-tabstop","snippetNextTabstopTrigger"],["prev-tabstop","snippetPreviousTabstopTrigger"],["auto-fraction","autofractionTrigger"],["matrix-newline","matrixShortcutsNewlineTrigger"],["matrix-cell","matrixShortcutsCellTrigger"],["matrix-exit","matrixShortcutsExitTrigger"],["tabout","taboutTrigger"]],i=new Q.Setting(n).setDesc(this.renderMarkdown(h("keymap.desc")));i.setClass("latex-suite-keymap-list"),i.settingEl.createEl("ul",{},o=>{for(let[s,a]of r)o.createEl("li",{cls:"latex-suite-keymap-item"},l=>{new Q.Setting(l).setName(h(`keymap.${s}`)).addText(c=>c.setPlaceholder(q[a]).setValue(this.plugin.settings[a]).onChange(p=>y(this,null,function*(){this.plugin.settings[a]=p,yield this.plugin.saveSettings()})))})})}displayExperimentalSettings(){let n=this.containerEl;this.addHeading(n,"Experimental features","experiment").setDesc("Features that are still in testing and may need user feedback. Backwards compatibility may break for these features/ these settings can be overriden.");let r=new DocumentFragment;r.createDiv({text:"How many times to run snippets in a row. Set to 0 disable recursion. "}).createEl("a",{href:"https://github.com/artisticat1/obsidian-latex-suite/pull/536",text:"Related pr/feedback."}),new Q.Setting(n).setName("Snippet recursion").setDesc(r).addText(o=>o.setPlaceholder(String(q.snippetRecursion)).setValue(String(this.plugin.settings.snippetRecursion)).onChange(s=>y(this,null,function*(){try{let a=parseInt(s,10);if(a<0){new Q.Notice("Snippet recursion must be a non-negative integer.");return}this.plugin.settings.snippetRecursion=a}catch(a){return}yield this.plugin.saveSettings()}))),new Q.Setting(n).setName(h("experimental.excalidraw-enabled.name")).setDesc(h("experimental.excalidraw-enabled.desc")).addToggle(o=>o.setValue(this.plugin.settings.excalidrawSupportEnabled).onChange(s=>y(this,null,function*(){this.plugin.settings.excalidrawSupportEnabled=s,yield this.plugin.saveSettings()}))),new Q.Setting(n).setName(h("experimental.log-level.name")).setDesc(h("experimental.log-level.desc")).addDropdown(o=>o.setValue(this.plugin.settings.logLevel).addOption("off",h("experimental.log-level.options.off")).addOption("info",h("experimental.log-level.options.info")).addOption("verbose",h("experimental.log-level.options.verbose")).addOption("vverbose",h("experimental.log-level.options.vverbose")).onChange(s=>y(this,null,function*(){this.plugin.settings.logLevel=s,yield this.plugin.saveSettings()})))}createSnippetsEditor(n){let r=n.controlEl.createDiv("snippets-editor-wrapper"),i=n.controlEl.createDiv("snippets-footer"),o=i.createDiv("snippets-editor-validity"),s=new Q.ExtraButtonComponent(o);s.setIcon("checkmark").extraSettingsEl.addClass("snippets-editor-validity-indicator");let a=o.createDiv("snippets-editor-validity-text");a.addClass("setting-item-description");function l(m){s.setIcon(m?"checkmark":"cross"),s.extraSettingsEl.removeClass(m?"invalid":"valid"),s.extraSettingsEl.addClass(m?"valid":"invalid"),a.setText(m?"Saved":"Invalid syntax. Changes not saved")}let c=Hr,p=ia.EditorView.updateListener.of(m=>void y(this,null,function*(){if(m.docChanged){let g=m.state.doc.toString(),b=!0,v;try{v=yield Ie(this.plugin.settings.snippetVariables,"snippet-variables.js"),yield lt(g,v,"snippets.js")}catch($){b=!1}if(l(b),!b)return;this.plugin.settings.snippets=g,yield this.plugin.saveSettings(!1,!0)}}));c.push(p);let u=mh(this.plugin.settings.snippets,c,r);this.snippetsEditor=u;let O=i.createDiv("snippets-editor-buttons");new Q.ButtonComponent(O).setIcon("switch").setTooltip("Reset to default snippets").onClick(()=>y(this,null,function*(){new mi(this.plugin.app,"Are you sure? This will delete any custom snippets you have written.",m=>void Bn(m).setButtonText("Reset to default snippets"),()=>y(this,null,function*(){u.setState(Oi.EditorState.create({doc:bn,extensions:c})),l(!0),this.plugin.settings.snippets=bn,yield this.plugin.saveSettings()})).open()})),new Q.ButtonComponent(O).setIcon("trash").setTooltip("Remove all snippets").onClick(()=>y(this,null,function*(){new mi(this.plugin.app,"Are you sure? This will delete any custom snippets you have written.",m=>void Bn(m).setButtonText("Remove all snippets"),()=>y(this,null,function*(){let m=`[ -]`;this.snippetsEditor.setState(Ur.EditorState.create({doc:O,extensions:l})),a(!0),this.plugin.settings.snippets=O,yield this.plugin.saveSettings()})).open()}))}createTriggerSetting(e,r,n){return new w.Setting(e).setName(`Key trigger for ${r}`).setDesc(Ap(r)).addText(i=>i.setValue(this.plugin.settings[n]).setPlaceholder(W[n]).onChange(s=>v(this,null,function*(){gn(s),this.plugin.settings[n]=s,yield this.plugin.saveSettings()})))}},Fr=class extends w.Modal{constructor(e,r,n,i){super(e),this.contentEl.addClass("latex-suite-confirmation-modal"),this.contentEl.createEl("p",{text:r}),new w.Setting(this.contentEl).addButton(s=>{n(s),s.onClick(()=>v(this,null,function*(){yield i(),this.close()}))}).addButton(s=>s.setButtonText("Cancel").onClick(()=>this.close()))}};function Rp(t,e){return new gi.EditorView({state:Ur.EditorState.create({doc:t,extensions:e})})}function Yr(){return w.Platform.isMobileApp}function Ap(t){let e=new DocumentFragment,r=e.createDiv();return r.innerHTML=`What key to press to trigger ${t}. Should follow codemirror keymap syntax such as "Ctrl-k Ctrl-a". For more info see codemirror keymap documentation.`,e}var Uo={math:` +]`;u.setState(Oi.EditorState.create({doc:m,extensions:c})),l(!0),this.plugin.settings.snippets=m,yield this.plugin.saveSettings()})).open()}))}renderMarkdown(n){return ui(n)}},mi=class extends Q.Modal{constructor(t,n,r,i){super(t),this.contentEl.addClass("latex-suite-confirmation-modal"),this.contentEl.createEl("p",{text:n}),new Q.Setting(this.contentEl).addButton(o=>{r(o),o.onClick(()=>y(this,null,function*(){yield i(),this.close()}))}).addButton(o=>o.setButtonText("Cancel").onClick(()=>this.close()))}};function mh(e,t,n){return new ia.EditorView({state:Oi.EditorState.create({doc:e,extensions:t}),parent:n})}function fi(){return Q.Platform.isMobileApp}function Bn(e){return(0,Q.requireApiVersion)("1.13.0")?e.setDestructive().setCta():e.setWarning(),e}var Wp={math:` @@ -491,15 +582,26 @@ ${i}$0`),Ge(t)):t.dispatch(t.state.replaceSelection(` \\\\ ${i}`)),!0},Sp=(t,e) - `};var nn=require("@codemirror/view");var me=require("@codemirror/view"),it=require("@codemirror/state");var Hr=require("obsidian");function H(...t){return t}var bi=class extends me.WidgetType{constructor(r,n,i){super();this.symbol=r;this.className=n||"",this.elementType=i||"span"}eq(r){return r.symbol==this.symbol&&r.className===this.className&&r.elementType===this.elementType}toDOM(){let r=document.createElement(this.elementType);return r.className="cm-math "+this.className,r.textContent=this.symbol,r}ignoreEvent(){return!1}},yi=class extends me.WidgetType{constructor(r){super();this.symbol=r}eq(r){return r.symbol==this.symbol}toDOM(){let r=document.createElement("span");return r.className="cm-math",r.textContent=this.symbol,r}ignoreEvent(){return!1}};function qp(t,e,r){if(e.length!==r.length)return!1;for(let n=0;ni.enable).flatMap(i=>i.spec).sort((i,s)=>i.start-s.start),r=new class extends it.RangeValue{},n=new it.RangeSetBuilder;for(let i=0;i{var r;for(let n of t)n.enable=!1;this.decorations=No(this.concealments),this.atomicRanges=Fo(this.concealments),e.dispatch(),(r=e==null?void 0:e.cm)==null||r.signal("vim-command-done")};this.concealments=[],this.decorations=me.Decoration.none,this.atomicRanges=it.RangeSet.empty;let e=X(t).concealRevealTimeout;this.delayEnabled=e>0,this.cached_equations={},this.concealSpecs=[],this.delayedReveal=(0,Hr.debounce)(this.delayedRevealCallback,e,!0),this.update({view:t,state:t.state,docChanged:!0})}update(t){if(t.docChanged||t.viewportChanged||t.selectionSet)if(this.delayedReveal.cancel(),!t.docChanged&&!t.viewportChanged)this.updateFromConcealSpecs(this.concealSpecs,t);else{let{specs:e,cached_equations:r}=Ho(t.view,this.cached_equations);this.cached_equations=r,this.concealSpecs=e,this.updateFromConcealSpecs(e,t)}}updateFromConcealSpecs(t,e){var o,a;let r=e.state.selection,n=(a=(o=e.view.plugin(Hr.livePreviewState))==null?void 0:o.mousedown)!=null?a:!1,i=[],s=[];for(let l of t){let c=jp(r,l),p=this.concealments.find(O=>qp(e,O.spec,l)),u=Zp(p==null?void 0:p.cursorPosType,c,n,this.delayEnabled),d={spec:l,cursorPosType:c,enable:u!=="reveal"};u==="delay"&&s.push(d),i.push(d)}s.length>0&&this.delayedReveal(s,e.view),this.concealments=i,this.decorations=No(this.concealments),this.atomicRanges=Fo(this.concealments)}},{decorations:t=>t.decorations,provide:t=>me.EditorView.atomicRanges.of(e=>{var r,n;return(n=(r=e.plugin(t))==null?void 0:r.atomicRanges)!=null?n:it.RangeSet.empty})});var Ko={aleph:"\u2135",amalg:"\u2A3F",And:"&",angle:"\u2220",approx:"\u2248",approxeq:"\u224A",ast:"\u2217",asymp:"\u224D",backepsilon:"\u220D",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",backslash:"\u2216",barwedge:"\u22BC",Bbbk:"k",because:"\u2235",beth:"\u2136",between:"\u226C",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",blacklozenge:"\u29EB",blacksquare:"\u25FC",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",bot:"\u22A5",bowtie:"\u22C8",Box:"\u25FB",boxdot:"\u22A1",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",bullet:"\u2219",bumpeq:"\u224F",Bumpeq:"\u224E",Cap:"\u22D2",cap:"\u2229",cdot:"\u22C5",cdotp:"\u22C5",cdots:"\u22EF",celsius:"\u2103",centerdot:"\u22C5",checkmark:"\u2713",circ:"\u2218",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",circledR:"\xAE",circledS:"\u24C8",clubsuit:"\u2663",complement:"\u2201",cong:"\u2245",coprod:"\u2210",copyright:"\xA9",cp:"\xD7",cross:"\xD7",crossproduct:"\xD7",Cup:"\u22D3",cup:"\u222A",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",dagger:"\u2020",daleth:"\u2138",dashleftarrow:"\u21E0",dashrightarrow:"\u21E2",dashv:"\u22A3",ddagger:"\u2021",ddots:"\u22F1",degree:"\xB0",diagdown:"\u2572",diagup:"\u2571",Diamond:"\u25CA",diamond:"\u22C4",diamondsuit:"\u2662",digamma:"\u03DD",div:"\xF7",divideontimes:"\u22C7",divsymbol:"\xF7",Doteq:"\u2251",doteq:"\u2250",doteqdot:"\u2251",dotplus:"\u2214",dotproduct:"\u22C5",dots:"\u2026",dotsb:"\u22EF",dotsc:"\u2026",dotsi:"\u22EF",dotsm:"\u22EF",dotso:"\u2026",doublebarwedge:"\u2A5E",doublecap:"\u22D2",doublecup:"\u22D3",downarrow:"\u2193",Downarrow:"\u21D3",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",ell:"\u2113",emptyset:"\u2205",eqcirc:"\u2256",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",equiv:"\u2261",eth:"\xF0",exists:"\u2203",fallingdotseq:"\u2252",Finv:"\u2132",flat:"\u266D",forall:"\u2200",frown:"\u2322",Game:"\u2141",ge:"\u2265",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",gets:"\u2190",gg:"\u226B",ggg:"\u22D9",gggtr:"\u22D9",gimel:"\u2137",gnapprox:"\u2A8A",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",gradientnabla:"\u2207",gt:">",gtrapprox:"\u2A86",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269",hbar:"\u210F",heartsuit:"\u2661",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",hslash:"\u210F",iff:"\u21D4",iiiint:"\u2A0C",iiint:"\u222D",iint:"\u222C",Im:"\u2111",imaginary:"\u2111",imath:"\u0131",in:"\u2208",infty:"\u221E",injlim:"inj lim",int:"\u222B",intercal:"\u22BA",intop:"\u222B",jmath:"\u0237",Join:"\u22C8",land:"\u2227",lceil:"\u2308",ldotp:".",ldots:"\u2026",le:"\u2264",leadsto:"\u21DD",left:"",Leftarrow:"\u21D0",leftarrow:"\u2190",leftarrowtail:"\u21A2",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",Leftrightarrow:"\u21D4",leftrightarrow:"\u2194",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",leftthreetimes:"\u22CB",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",lessgtr:"\u2276",lesssim:"\u2272",lhd:"\u22B2",ll:"\u226A",Lleftarrow:"\u21DA",lll:"\u22D8",llless:"\u22D8",lnapprox:"\u2A89",lneq:"\u2A87",lneqq:"\u2268",lnot:"\xAC",lnsim:"\u22E6",longleftarrow:"\u27F5",Longleftarrow:"\u27F8",Longleftrightarrow:"\u27FA",longleftrightarrow:"\u27F7",longmapsto:"\u27FC",longrightarrow:"\u27F6",Longrightarrow:"\u27F9",looparrowleft:"\u21AB",looparrowright:"\u21AC",lor:"\u2228",lozenge:"\u25CA",Lsh:"\u21B0",lt:"<",ltimes:"\u22C9",lvertneqq:"\u2268",maltese:"\u2720",mapsto:"\u21A6",measuredangle:"\u2221",mho:"\u2127",micro:"\xB5",mid:"\u2223",middle:"",models:"\u22A8",mp:"\u2213",multimap:"\u22B8",nabla:"\u2207",natural:"\u266E",ncong:"\u2247",ne:"\u2260",nearrow:"\u2197",neg:"\xAC",neq:"\u2260",neqslant:"\u2260",nexists:"\u2204",ngeq:"\u2271",ngeqq:"\u2271",ngeqslant:"\u2A88",ngtr:"\u226F",ni:"\u220B",nleftarrow:"\u219A",nLeftarrow:"\u21CD",nleftrightarrow:"\u21AE",nLeftrightarrow:"\u21CE",nleq:"\u2270",nleqq:"\u2270",nleqslant:"\u2A87",nless:"\u226E",nmid:"\u2224",notChar:"\u29F8",notin:"\u2209",nparallel:"\u2226",nprec:"\u2280",npreceq:"\u22E0",nrightarrow:"\u219B",nRightarrow:"\u21CF",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsubseteq:"\u2288",nsubseteqq:"\u2288",nsucc:"\u2281",nsucceq:"\u22E1",nsupseteq:"\u2289",nsupseteqq:"\u2289",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",nvdash:"\u22AC",nvDash:"\u22AD",nVdash:"\u22AE",nVDash:"\u22AF",nwarrow:"\u2196",odot:"\u2299",ohm:"\u2126",oint:"\u222E",ominus:"\u2296",oplus:"\u2295",oslash:"\u2298",otimes:"\u2297",owns:"\u220B",P:"\xB6",parallel:"\u2225",partial:"\u2202",perp:"\u22A5",perthousand:"\u2030",pitchfork:"\u22D4",pm:"\xB1",prec:"\u227A",precapprox:"\u2AB7",preccurlyeq:"\u227C",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",precsim:"\u227E",prime:"\u2032",prod:"\u220F",projlim:"proj lim",propto:"\u221D",qquad:"\u2001",quad:"\u2000",rceil:"\u2309",Re:"\u211C",real:"\u211C",restriction:"\u21BE",rhd:"\u22B3",right:"",Rightarrow:"\u21D2",rightarrow:"\u2192",rightarrowtail:"\u21A3",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u21DD",rightthreetimes:"\u22CC",risingdotseq:"\u2253",Rrightarrow:"\u21DB",Rsh:"\u21B1",rtimes:"\u22CA",S:"\xA7",searrow:"\u2198",setminus:"\u2216",sharp:"\u266F",shortmid:"\u2223",shortparallel:"\u2225",sim:"\u223C",simeq:"\u2243",smallfrown:"\u2322",smallint:"\u222B",smallsetminus:"\u2216",smallsmile:"\u2323",smile:"\u2323",spadesuit:"\u2660",sphericalangle:"\u2222",sqcap:"\u2293",sqcup:"\u2294",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsupset:"\u2290",sqsupseteq:"\u2292",square:"\u25FB",star:"\u22C6",Subset:"\u22D0",subset:"\u2282",subseteq:"\u2286",subseteqq:"\u2AC5",subsetneq:"\u228A",subsetneqq:"\u2ACB",succ:"\u227B",succapprox:"\u2AB8",succcurlyeq:"\u227D",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",sum:"\u2211",Supset:"\u22D1",supset:"\u2283",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",surd:"\u221A",swarrow:"\u2199",therefore:"\u2234",thickapprox:"\u2248",thicksim:"\u223C",times:"\xD7",to:"\u2192",top:"\u22A4",triangle:"\u25B3",triangledown:"\u25BD",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",unlhd:"\u22B4",unrhd:"\u22B5",uparrow:"\u2191",Uparrow:"\u21D1",updownarrow:"\u2195",Updownarrow:"\u21D5",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",upuparrows:"\u21C8",varpropto:"\u221D",varsubsetneq:"\u228A",varsubsetneqq:"\u2ACB",varsupsetneq:"\u228B",varsupsetneqq:"\u2ACC",vartriangle:"\u25B3",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",vDash:"\u22A8",Vdash:"\u22A9",vdash:"\u22A2",vdot:"\u22C5",vdots:"\u22EE",vee:"\u2228",veebar:"\u22BB",Vvdash:"\u22AA",wedge:"\u2227",wp:"\u2118",wr:"\u2240",yen:"\xA5",implies:"\u21D2",impliedby:"\u21D0",choose:"C",sqrt:"\u221A",coloneqq:"\u2254",colon:":",Colonapprox:"::\u2248",Coloneq:"::-",Coloneqq:"\u2A74",Colonsim:"::\u223C",Eqcolon:"-::",Eqqcolon:"=::",colonapprox:":\u2248",coloneq:":-",colonsim:":\u223C",dblcolon:"\u2237",eqcolon:"\u2239",eqqcolon:"\u2255",displaystyle:" ",",":" ",":":" ",";":" ",">":" ",enspace:" ",thinspace:" ",negthinspace:"","!":"",textacutedbl:"\u02DD",textasciiacute:"\xB4",textasciibreve:"\u02D8",textasciicaron:"\u02C7",textasciicircum:"^",textasciidieresis:"\xA8",textasciimacron:"\xAF",textasciitilde:"~",textasteriskcentered:"*",textbackslash:"\\",textbaht:"\u0E3F",textbar:"|",textbardbl:"\u2016",textbigcircle:"\u25EF",textblank:"\u2422",textborn:"*",textbraceleft:"{",textbraceright:"}",textbrokenbar:"\xA6",textbullet:"\u2022",textcelsius:"\u2103",textcent:"\xA2",textcentoldstyle:"\xA2",textcircledP:"\u2117",textcolonmonetary:"\u20A1",textcompwordmark:"\u200C",textcopyleft:"\u{1F12F}",textcopyright:"\xA9",textcurrency:"\xA4",textdagger:"\u2020",textdaggerdbl:"\u2021",textdegree:"\xB0",textdied:"\u2020",textdiscount:"\u2052",textdiv:"\xF7",textdivorced:"\u26AE",textdollar:"$",textdollaroldstyle:"$",textdong:"\u20AB",textdownarrow:"\u2193",texteightoldstyle:"8",textellipsis:"\u2026",textemdash:"\u2014",textendash:"\u2013",textestimated:"\u212E",texteuro:"\u20AC",textexclamdown:"\xA1",textfiveoldstyle:"5",textflorin:"\u0192",textfouroldstyle:"4",textfractionsolidus:"\u2044",textgravedbl:"\u02F5",textgreater:">",textguarani:"\u20B2",textinterrobang:"\u203D",textinterrobangdown:"\u2E18",textlangle:"\u2329",textlbrackdbl:"\u27E6",textleftarrow:"\u2190",textless:"<",textlira:"\u20A4",textlnot:"\xAC",textlquill:"\u2045",textmarried:"\u26AD",textmho:"\u2127",textminus:"\u2212",textmu:"\xB5",textmusicalnote:"\u266A",textnaira:"\u20A6",textnineoldstyle:"9",textnumero:"\u2116",textohm:"\u2126",textonehalf:"\xBD",textoneoldstyle:"1",textonequarter:"\xBC",textonesuperior:"\xB9",textopenbullet:"\u25E6",textordfeminine:"\xAA",textordmasculine:"\xBA",textparagraph:"\xB6",textperiodcentered:"\xB7",textpertenthousand:"\u2031",textperthousand:"\u2030",textpeso:"\u20B1",textpm:"\xB1",textquestiondown:"\xBF",textquotedblleft:"\u201C",textquotedblright:"\u201D",textquoteleft:"\u2018",textquoteright:"\u2019",textrangle:"\u232A",textrbrackdbl:"\u27E7",textrecipe:"\u211E",textreferencemark:"\u203B",textregistered:"\xAE",textrightarrow:"\u2192",textrquill:"\u2046",textsection:"\xA7",textservicemark:"\u2120",textsevenoldstyle:"7",textsixoldstyle:"6",textsterling:"\xA3",textsurd:"\u221A",textthreeoldstyle:"3",textthreequarters:"\xBE",textthreesuperior:"\xB3",texttildelow:"\u02F7",texttimes:"\xD7",texttrademark:"\u2122",texttwooldstyle:"2",texttwosuperior:"\xB2",textunderscore:"_",textuparrow:"\u2191",textvisiblespace:"\u2423",textwon:"\u20A9",textyen:"\xA5",textzerooldstyle:"0"},Jo={leftarrow:"\u219A",to:"\u219B",leftrightarrow:"\u21AE",Leftarrow:"\u21CD",Rightarrow:"\u21CF",Leftrightarrow:"\u21CE",in:"\u2209",owns:"\u220C",shortmid:"\u2224",shortparallel:"\u2226",thicksim:"\u2241",simeq:"\u2244",cong:"\u2247",thickapprox:"\u2249",asymp:"\u226D",equiv:"\u2262",lt:"\u226E",gt:"\u226F",leq:"\u2270",geq:"\u2271",lesssim:"\u2274",gtrsim:"\u2275",lessgtr:"\u2278",gtrless:"\u2279",prec:"\u2280",succ:"\u2281",subset:"\u2284",supset:"\u2285",subseteq:"\u2288",supseteq:"\u2289",vdash:"\u22AC",vDash:"\u22AD",Vdash:"\u22AE",preccurlyeq:"\u22E0",succcurlyeq:"\u22E1",sqsubseteq:"\u22E2",sqsupseteq:"\u22E3",vartriangleleft:"\u22EA",vartriangleright:"\u22EB",unlhd:"\u22EC",unrhd:"\u22ED",exists:"\u2204"},ea=["arcsin","arccos","arctan","sinh","cosh","tanh","coth","sin","cos","tan","sec","csc","cot","exp","ker","limsup","lim","sup","deg","gcd","log","lg","ln","Pr","det","hom","arg","dim","liminf","min","max","inf","mod"],ta={"{1}{2}":"\xBD","{1}{3}":"\u2153","{2}{3}":"\u2154","{1}{4}":"\xBC","{1}{5}":"\u2155","{2}{5}":"\u2156","{3}{5}":"\u2157","{4}{5}":"\u2158","{1}{6}":"\u2159","{5}{6}":"\u215A","{1}{8}":"\u215B","{3}{8}":"\u215C","{5}{8}":"\u215D","{7}{8}":"\u215E"},xi={alpha:"\u03B1",beta:"\u03B2",gamma:"\u03B3",varGamma:"\u0393",delta:"\u03B4",varDelta:"\u0394",epsilon:"\u03F5",varepsilon:"\u03B5",zeta:"\u03B6",eta:"\u03B7",theta:"\u03B8",vartheta:"\u03D1",iota:"\u03B9",kappa:"\u03BA",varkappa:"\u03F0",lambda:"\u03BB",mu:"\u03BC",nu:"\u03BD",xi:"\u03BE",omicron:"\u03BF",pi:"\u03C0",varpi:"\u03D6",varPi:"\u03A0",rho:"\u03C1",varrho:"\u03F1",sigma:"\u03C3",varsigma:"\u03C2",varSigma:"\u03A3",tau:"\u03C4",upsilon:"\u03C5",phi:"\u03D5",varphi:"\u03C6",varPhi:"\u03A6",chi:"\u03C7",psi:"\u03C8",varPsi:"\u03A8",omega:"\u03C9",Gamma:"\u0393",Delta:"\u0394",Theta:"\u0398",varTheta:"\u0398",Lambda:"\u039B",varLambda:"\u039B",Xi:"\u039E",varXi:"\u039E",Pi:"\u03A0",Sigma:"\u03A3",Upsilon:"\u03A5",varUpsilon:"\u03A5",Phi:"\u03A6",Chi:"\u03A7",Psi:"\u03A8",Omega:"\u03A9",varOmega:"\u03A9",varnothing:"\u2205",upalpha:"\u03B1",upbeta:"\u03B2",upgamma:"\u03B3",updelta:"\u03B4",upepsilon:"\u03F5",upzeta:"\u03B6",upeta:"\u03B7",uptheta:"\u03B8",upiota:"\u03B9",upkappa:"\u03BA",uplambda:"\u03BB",upmu:"\u03BC",upnu:"\u03BD",upxi:"\u03BE",upomicron:"\u03BF",uppi:"\u03C0",uprho:"\u03C1",upsigma:"\u03C3",uptau:"\u03C4",upupsilon:"\u03C5",upphi:"\u03D5",upchi:"\u03C7",uppsi:"\u03C8",upomega:"\u03C9",upvarepsilon:"\u03B5",upvartheta:"\u03D1",upvarpi:"\u03D6",upvarrho:"\u03F1",upvarsigma:"\u03C2",upvarphi:"\u03C6",Upgamma:"\u0393",Updelta:"\u0394",Uptheta:"\u0398",Uplambda:"\u039B",Upxi:"\u039E",Uppi:"\u03A0",Upsigma:"\u03A3",Upupsilon:"\u03A5",Upphi:"\u03A6",Uppsi:"\u03A8",Upomega:"\u03A9"},ra={"(":"\u207D",")":"\u207E","+":"\u207A","-":"\u207B","=":"\u207C",":":"\uFE13",";":"\uFE14","<":"\u02C2",">":"\u02C3",0:"\u2070",1:"\xB9",2:"\xB2",3:"\xB3",4:"\u2074",5:"\u2075",6:"\u2076",7:"\u2077",8:"\u2078",9:"\u2079",a:"\u1D43",b:"\u1D47",c:"\u1D9C",d:"\u1D48",e:"\u1D49",f:"\u1DA0",g:"\u1D4D",h:"\u02B0",i:"\u2071",j:"\u02B2",k:"\u1D4F",l:"\u02E1",m:"\u1D50",n:"\u207F",o:"\u1D52",p:"\u1D56",r:"\u02B3",s:"\u02E2",t:"\u1D57",u:"\u1D58",v:"\u1D5B",w:"\u02B7",x:"\u02E3",y:"\u02B8",z:"\u1DBB",A:"\u1D2C",B:"\u1D2E",D:"\u1D30",E:"\u1D31",G:"\u1D33",H:"\u1D34",I:"\u1D35",J:"\u1D36",K:"\u1D37",L:"\u1D38",M:"\u1D39",N:"\u1D3A",O:"\u1D3C",P:"\u1D3E",R:"\u1D3F",T:"\u1D40",U:"\u1D41",V:"\u2C7D",W:"\u1D42"},na={"(":"\u208D",")":"\u208E","+":"\u208A","-":"\u208B","=":"\u208C",0:"\u2080",1:"\u2081",2:"\u2082",3:"\u2083",4:"\u2084",5:"\u2085",6:"\u2086",7:"\u2087",8:"\u2088",9:"\u2089",a:"\u2090",e:"\u2091",h:"\u2095",i:"\u1D62",j:"\u2C7C",k:"\u2096",l:"\u2097",m:"\u2098",n:"\u2099",o:"\u2092",p:"\u209A",r:"\u1D63",s:"\u209B",t:"\u209C",u:"\u1D64",v:"\u1D65",x:"\u2093"};var ia={"left<":"\u3008","right>":"\u3009",langle:"\u3008",rangle:"\u3009",lvert:"|",rvert:"|",lVert:"\u2016",rVert:"\u2016",vert:"|",".":"","/":"/",Arrowvert:"\u2016",Vert:"\u2016",arrowvert:"\u23D0",bracevert:"\u23AA","left\\gt":"\u27E9","right\\gt":"\u27E9",lbrace:"{",lbrack:"[",lfloor:"\u230A",lgroup:"\u27EE",llcorner:"\u231E",lmoustache:"\u23B0",lparen:"(",lrcorner:"\u231F","left\\lt":"\u27E8","right\\lt":"\u27E8",rbrace:"}",rbrack:"]",rfloor:"\u230B",rgroup:"\u27EF",rmoustache:"\u23B1",rparen:")",ulcorner:"\u231C",urcorner:"\u231D"},sa={" ":" ",0:"\u{1D7D8}",1:"\u{1D7D9}",2:"\u{1D7DA}",3:"\u{1D7DB}",4:"\u{1D7DC}",5:"\u{1D7DD}",6:"\u{1D7DE}",7:"\u{1D7DF}",8:"\u{1D7E0}",9:"\u{1D7E1}",A:"\u{1D538}",B:"\u{1D539}",C:"\u2102",D:"\u{1D53B}",E:"\u{1D53C}",F:"\u{1D53D}",G:"\u{1D53E}",H:"\u210D",I:"\u{1D540}",J:"\u{1D541}",K:"\u{1D542}",L:"\u{1D543}",M:"\u{1D544}",N:"\u2115",O:"\u{1D546}",P:"\u2119",Q:"\u211A",R:"\u211D",S:"\u{1D54A}",T:"\u{1D54B}",U:"\u{1D54C}",V:"\u{1D54D}",W:"\u{1D54E}",X:"\u{1D54F}",Y:"\u{1D550}",Z:"\u2124",a:"\u{1D552}",b:"\u{1D553}",c:"\u{1D554}",d:"\u{1D555}",e:"\u{1D556}",f:"\u{1D557}",g:"\u{1D558}",h:"\u{1D559}",i:"\u{1D55A}",j:"\u{1D55B}",k:"\u{1D55C}",l:"\u{1D55D}",m:"\u{1D55E}",n:"\u{1D55F}",o:"\u{1D560}",p:"\u{1D561}",q:"\u{1D562}",r:"\u{1D563}",s:"\u{1D564}",t:"\u{1D565}",u:"\u{1D566}",v:"\u{1D567}",w:"\u{1D568}",x:"\u{1D569}",y:"\u{1D56A}",z:"\u{1D56B}"},oa={A:"\u{1D4D0}",B:"\u{1D4D1}",C:"\u{1D4D2}",D:"\u{1D4D3}",E:"\u{1D4D4}",F:"\u{1D4D5}",G:"\u{1D4D6}",H:"\u{1D4D7}",I:"\u{1D4D8}",J:"\u{1D4D9}",K:"\u{1D4DA}",L:"\u{1D4DB}",M:"\u{1D4DC}",N:"\u{1D4DD}",O:"\u{1D4DE}",P:"\u{1D4DF}",Q:"\u{1D4E0}",R:"\u{1D4E1}",S:"\u{1D4E2}",T:"\u{1D4E3}",U:"\u{1D4E4}",V:"\u{1D4E5}",W:"\u{1D4E6}",X:"\u{1D4E7}",Y:"\u{1D4E8}",Z:"\u{1D4E9}"};var Qi=Object.fromEntries(Object.entries(oe(oe({},xi),Ko)).sort((t,e)=>e[0].length-t[0].length)),Xp=Object.fromEntries([...Object.entries(Jo).sort((t,e)=>e[0].length-t[0].length)]);function wt(t){let e=["\\","(",")","+","-","[","]","{","}","."];for(let r of e)t=t.replaceAll(r,"\\"+r);return t}function la(t,e){let r="\\limits";return t.substring(e,e+r.length)===r?e+r.length:e}function Wp(t,e,r){let n=Tt(t,"\\\\","",e,void 0,!1),i=Tt(t,"\\\\not[ ]*\\\\","",r,void 0,!1),s=[],o=[];for(let a=0;a':;\\\\ *]+)}",s=new RegExp(i,"g"),o=[...t.matchAll(s)],a=[];for(let l of o){let c=l[1],p=e?"sup":"sub",u=Object.keys(r),d="\\\\("+wt(u.join("|"))+")",O=new RegExp(d,"g"),h=c.replace(O,(f,g)=>r[g]);a.push(H({start:l.index,end:l.index+l[0].length,text:h,class:"cm-number",elementType:p}))}return a}function Vp(t,e){let r="\\\\(mathbf|boldsymbol|underline|mathrm|text|mathbb){([A-Za-z0-9 ]+)}",n=new RegExp(r,"g"),i=[...t.matchAll(n)],s=[];for(let o of i){let a=o[1],l=o[2],c=o.index,p=c+o[0].length;if(a==="mathbf"||a==="boldsymbol")s.push(H({start:c,end:p,text:l,class:"cm-concealed-bold"}));else if(a==="underline")s.push(H({start:c,end:p,text:l,class:"cm-concealed-underline"}));else if(a==="mathrm")s.push(H({start:c,end:p,text:l,class:"cm-concealed-mathrm"}));else if(a==="text")c>0&&t.charAt(c-1)==="_"&&s.push(H({start:c-1,end:p,text:l,class:"cm-concealed-mathrm",elementType:"sub"}));else if(a==="mathbb"){let d=Array.from(l).map(O=>e[O]).join("");s.push(H({start:c,end:p,text:d}))}}return s}function Ip(t,e){let r=Object.keys(e),n="\\\\(underline|boldsymbol){\\\\("+wt(r.join("|"))+")}",i=new RegExp(n,"g"),s=[...t.matchAll(i)],o=[];for(let a of s){let l=a[1],c=a[2],p=a.index,u=p+a[0].length;l==="underline"?o.push(H({start:p,end:u,text:e[c],class:"cm-concealed-underline"})):l==="boldsymbol"&&o.push(H({start:p,end:u,text:e[c],class:"cm-concealed-bold"}))}return o}function Mp(t){let e="\\\\text{([A-Za-z0-9-.!?() ]+)}",r=new RegExp(e,"g"),n=[...t.matchAll(r)],i=[];for(let s of n){let o=s[1],a=s.index,l=a+s[0].length;i.push(H({start:a,end:l,text:o,class:"cm-concealed-mathrm cm-variable-2"}))}return i}function Gp(t,e){let r="(\\\\("+e.join("|")+"))([^a-zA-Z]|$)",n=new RegExp(r,"g"),i=[...t.matchAll(n)],s=[];for(let o of i){let a=o[2],l=o.index,c=la(t,l+o[1].length);s.push(H({start:l,end:c,text:a,class:"cm-concealed-mathrm cm-variable-2"}))}return s}function Bp(t,e,r,n,i){let s=e+"([A-Z]+)"+r,o=new RegExp(s,"g"),a=[...t.matchAll(o)],l=[];for(let c of a){let p=c[1],d=Array.from(p).map(O=>n[O]).join("");l.push(H({start:c.index,end:c.index+c[0].length,text:d,class:i}))}return l}function Dp(t){let e="\u3008",r="\u3009",n="|",i=[];for(let s of t.matchAll(/\\(braket|bra|ket){/g)){let o=J(t,s.index,"{","}",!1);if(o===-1)continue;let a=s.index,l=a+s[0].length-1,c=s[1],p=c==="ket"?n:e,u=c==="bra"?n:r;i.push(H({start:a,end:l,text:""},{start:l,end:l+1,text:p,class:"cm-bracket"},{start:o,end:o+1,text:u,class:"cm-bracket"}))}return i}function zp(t){let e=[];for(let r of t.matchAll(/\\set\{/g)){let n=r.index,i=n+r[0].length-1,s=J(t,n,"{","}",!1);s!==-1&&e.push(H({start:n,end:i,text:""},{start:i,end:i+1,text:"{",class:"cm-bracket"},{start:s,end:s+1,text:"}",class:"cm-bracket"}))}return e}function Lp(t){let e=[];for(let r of t.matchAll(/\n?\\(frac|dfrac|tfrac|gfrac){/g)){let n=J(t,r.index,"{","}",!1);if(n===-1||t.charAt(n+1)!=="{")continue;let i=J(t,n+1,"{","}",!1);if(i===-1)continue;let s=r.index+ +(r[0][0]===` -`),o=r[0][0]===` -`?" ":"",a=r.index+r[0].length-1,l=n+1;e.push(H({start:s,end:a,text:o},{start:a,end:a+1,text:"(",class:"cm-bracket"},{start:n,end:n+1,text:")",class:"cm-bracket"},{start:n+1,end:n+1,text:"/",class:"cm-bracket"},{start:l,end:l+1,text:"(",class:"cm-bracket"},{start:i,end:i+1,text:")",class:"cm-bracket"}))}return e}function Up(t){let e="\\\\operatorname{([A-Za-z]+)}",r=new RegExp(e,"g"),n=[...t.matchAll(r)],i=[];for(let s of n){let o=s[1],a=s.index,l=a+s[0].length;i.push(H({start:a,end:l,text:o,class:"cm-concealed-mathrm cm-variable-2"}))}return i}function Ho(t,e){let r=nt(t).getEquations(t.state),n={};for(let s of r.values()){if(s in e){n[s]=e[s];continue}let o=[...Tt(s,"\\^","",ra),...Tt(s,"_","",na),...Tt(s,"\\\\frac","",ta),...Wp(s,Qi,Xp),...aa(s,!0,Qi),...aa(s,!1,Qi),...st(s,"hat","\u0302"),...st(s,"dot","\u0307"),...st(s,"ddot","\u0308"),...st(s,"overline","\u0304"),...st(s,"bar","\u0304"),...st(s,"tilde","\u0303"),...st(s,"vec","\u20D7"),...Tt(s,"\\\\","",ia,"cm-bracket"),...Bp(s,"\\\\mathcal{","}",oa),...Ip(s,xi),...Vp(s,sa),...Mp(s),...Dp(s),...zp(s),...Lp(s),...Gp(s,ea),...Up(s)];n[s]=o}e=n;let i=[];for(let[s,o]of r.entries())for(let a of n[o])i.push(a.map(l=>ye(oe({},l),{start:l.start+s,end:l.end+s})));return{specs:i,cached_equations:e}}function Si(t,e){return t.includes(e)}function ca(t,e){return e in t}var ua=["\\big","\\Big","\\bigg","\\Bigg","\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\left","\\right"],Oa=["{","}"],Kr={"(":")","[":"]","\\{":"\\}","\\langle":"\\rangle","\\lvert":"\\rvert","\\lVert":"\\rVert","\\lceil":"\\rceil","\\lfloor":"\\rfloor"},Np=[...ua,...Object.keys(Kr),...Object.values(Kr)],Fp=[...Np.map(wt).sort((t,e)=>t.length-e.length),...Oa.map(wt)].join("|"),pa=new RegExp(Fp,"g"),Yp=Object.fromEntries(Object.entries(Kr).map(([t,e])=>[e,t])),Jr=t=>{let e=X(t);if(!e.autoEnlargeBrackets)return;let n=I(t).getBounds();if(!n)return!1;let{inner_start:i,inner_end:s}=n,o=t.state.sliceDoc(i,s),a="\\left",l="\\right",c=[],p,u=null;pa.lastIndex=0;let d=0,O=[d];for(;(p=pa.exec(o))!==null;){let h=p[0],f=p.index;if(Si(ua,h)){u=f+h.length;continue}else if(Si(Oa,h)){h==="{"?O.push(++d):O.length>1&&O.pop();continue}else if(ca(Kr,h)){u===null||/\S/.test(o.slice(u,f))?c.push({index:f,match:h,level:O[O.length-1]}):u!==null&&c.push({match:h,ignore:!0,level:O[O.length-1]}),u=null;continue}let g=u!==null&&!/\S/.test(o.slice(u,f));u=null;let b=Yp[h];for(let y=c.length-1;y>=0;y--){let x=c[y];if(x.match===b&&("ignore"in x||g)){c.splice(y,1);break}if("ignore"in x||x.level!==O[O.length-1]||x.match!==b)continue;let S=x.index,Q=x.match,m=S+Q.length,T=p.index,C=o.slice(m,T);if(!e.autoEnlargeBracketsTriggers.some(k=>C.contains(k)))break;qe(t,i+S,i+m,a+Q+" "),qe(t,i+T,i+T+h.length," "+l+h),c.splice(y,1);break}}Ge(t)};var ha=require("obsidian"),en=null,$i=(t,e,r,n)=>{let i=!1;for(let o of e.ranges)Hp(t,e,r,o,n).shouldAutoEnlargeBrackets&&(i=!0);let s=Ge(t);return i&&Jr(t),s},Hp=(t,e,r,n,i)=>{var d;let s=X(t),{from:o,to:a}=n,l=t.state.sliceDoc(o,a),c=t.state.sliceDoc(0,a),p=(d=r.key)!=null?d:"";if(r.key&&r.key.length!==1)return{success:!1,shouldAutoEnlargeBrackets:!1};let u=c+p;for(let O=0;Oy.contains(m));if(i==="info"||i==="verbose"){let m=h.trigger.toString(),T=h.triggerKey?`
  • Trigger key: ${new Option(h.triggerKey).innerHTML} -
  • `:"",C=h.description,E=`Latex Suite:
    • Description: ${new Option(C).innerHTML} -
    • Parsed trigger: ${new Option(m).innerHTML} -
    • `+T+`
    • Replacement: ${new Option(y).innerHTML} -
    • Auto-enlarge brackets: ${Q} -
    `,k=new DocumentFragment,P=k.createDiv();P.innerHTML=E,en==null||en.hide(),en=new ha.Notice(k,5e3),console.info(P.textContent)}return i==="verbose"&&console.debug({snippets_unexpanded:r.snippets.slice(0,O).map(m=>({description:m.description,trigger:m.trigger,options:m.options,replacement:m.replacement})),current_mode:e.mode,updatedLine:u}),{success:!0,shouldAutoEnlargeBrackets:Q}}return{success:!1,shouldAutoEnlargeBrackets:!1}},Kp=(t,e)=>{if((t.mode.inlineMath&&e.inlineMath||t.mode.blockMath&&e.blockMath||(t.mode.inlineMath||t.mode.blockMath)&&e.codeMath)&&!e.textEnv||e.inMath()&&e.textEnv&&t.mode.text||t.mode.text&&e.text||t.mode.code===e.code&&e.code!==!1||t.mode.code===!0&&e.code!==!1)return!0},Jp=(t,e,r,n)=>{let i=t.sliceDoc(e-1,e),s=t.sliceDoc(r,r+1);return n=n.replace("\\n",` -`),n.contains(i)&&n.contains(s)},eu=(t,e)=>{let r=0;if(t.endsWith(" "))r=-1;else{let n=t.slice(-3),i=n.slice(-1);n.slice(0,2)===" $"&&!isNaN(parseInt(i))&&(r=-3)}return r!=0&&(r===-1?t=t.trimEnd():r===-3&&(t=t.slice(0,-3)+t.slice(-2))),t};var da=(t,e)=>{for(let n of e.ranges)tu(t,e,n);let r=Ge(t);return r&&Jr(t),r},tu=(t,e,r)=>{let n=X(t),{from:i,to:s}=r;for(let O of n.autofractionExcludedEnvs)if(e.isWithinEnvironment(s,O))return!1;let o=e.getBounds();if(!o)return!1;let a=o.inner_start,l=t.state.sliceDoc(0,s),c=a;if(i!=s)c=i;else{let O="alpha|beta|gamma|Gamma|delta|Delta|epsilon|varepsilon|zeta|eta|theta|Theta|iota|kappa|lambda|Lambda|mu|nu|omicron|xi|Xi|pi|Pi|rho|sigma|Sigma|tau|upsilon|Upsilon|varphi|phi|Phi|chi|psi|Psi|omega|Omega",h=new RegExp("("+O+") ([^ ])","g");l=l.replace(h,"$1#$2");for(let f=l.length-1;f>=a;f--){let g=l.charAt(f);if([")","]","}"].contains(g)){let b=g,y=Lt(b),x=J(l,f,y,b,!0);if(x===-1)return!1;if(f=x,f[],update(t,e){for(let r of e.effects)if(r.is(vi))return r.value;return t},provide:t=>rn.showTooltip.computeN([t],e=>e.field(t).map(r=>r.tooltip))}),ru=(t,e,r,n)=>{let i=(l,c,p,u,d)=>{let O=0;for(let h=c;h>=0&&h0&&t.view.dispatch({effects:[vi.of([])]});return}let s=t.state.sliceDoc(i.inner_start,i.inner_end),o=n.pos,l=(0,fa.syntaxTree)(t.state).cursor();l.moveTo(o,-1);let c;l.name==="math_tag"&&l.from=o?c=l.from:c=o;let p=c-i.inner_start,u,d=s.replaceAll(/\\[\\{}]/g,"\\R"),{left:O,right:h}=r.mathPreviewBracketHighlighting?ru(d,p,"{","}"):{left:-1,right:-1};if(h!==-1&&O!==-1){let x=Math.max(O+1,p);u=s.slice(0,O+1)+"\\style{background-color: var(--latex-suite-math-preview-highlight);}{"+s.slice(O+1,x)+r.mathPreviewCursor+s.slice(x,h)+"}"+s.slice(h)}else u=s.slice(0,p)+r.mathPreviewCursor+s.slice(p);let f=t.state.field(tn);if(f.length===1&&f[0].equation===u&&f[0].bounds.inner_start===i.inner_start&&f[0].bounds.inner_end===i.inner_end)return;let g=r.mathPreviewPositionIsAbove,b=()=>{var S;let x=document.createElement("div");if(x.addClass("cm-tooltip-cursor"),x.addClass(g?"cm-tooltip-above":"cm-tooltip-below"),n.mode.blockMath){let Q=(S=t.state.doc.lineAt(i.inner_start).text.match(/^ {0,3}(>+)/))==null?void 0:S[1].length;if(Q){let m=new RegExp(`^ {0,3}>{${Q}}`,"gm");m.test(s)&&(u=u.replaceAll(m,""))}}try{let Q=(0,Pt.renderMath)(u,n.mode.blockMath||n.mode.codeMath),m=Q.querySelector('[style*="background-color: var(--latex-suite-math-preview-highlight)"]');m==null||m.addClass("latex-suite-math-preview-highlight"),m==null||m.style.removeProperty("background-color"),x.appendChild(Q),(0,Pt.finishRenderMath)()}catch(Q){console.error("Error rendering math in tooltip:",Q),x.textContent=s}return{dom:x}},y=[];if(n.mode.blockMath||n.mode.codeMath)y=[{pos:g?i.inner_start:i.inner_end,above:g,strictSide:!0,arrow:!0,create:b}];else if(n.mode.inlineMath&&g)y=[{pos:i.inner_start,above:!0,strictSide:!0,arrow:!0,create:b}];else if(n.mode.inlineMath&&!g){let x=kt.EditorSelection.range(i.inner_end,i.inner_end);y=[{pos:Math.max(i.inner_start,t.view.moveToLineBoundary(x,!1).anchor),above:!1,strictSide:!0,arrow:!0,create:b}]}t.view.dispatch({effects:[vi.of(y.map(x=>({equation:u,bounds:i,pos:x.pos,tooltip:x})))]})}function nu(t,e){if(!e.mode.inMath())return null;let r=t.field(Pt.editorLivePreviewField);if(e.mode.blockMath&&r)return null;let n=e.getBounds();return!n||t.sliceDoc(n.inner_start,n.inner_end).trim()===""?null:n}var ga=rn.EditorView.baseTheme({".cm-tooltip.cm-tooltip-cursor":{backgroundColor:"var(--background-secondary)",color:"var(--text-normal)",border:"1px solid var(--background-modifier-border-hover)",padding:"4px 6px",borderRadius:"6px","& .cm-tooltip-arrow:before":{borderTopColor:"var(--background-modifier-border-hover)",borderBottomColor:"var(--background-modifier-border-hover)"},"& .cm-tooltip-arrow:after":{borderTopColor:"var(--background-secondary)",borderBottomColor:"var(--background-secondary)"},"& p":{margin:"0px"},"& mjx-container":{padding:"2px !important"}}});var ba=t=>{X(t.state).mathPreviewEnabled&&ma(t),qo(t)},sn=nn.ViewPlugin.fromClass(class{constructor(){this.lastKeyboardEvent=null}onKeydown(t,e){if(t.key=="Unidentified"||t.key=="Process"||t.key=="Dead"){this.lastKeyboardEvent=t;return}else this.lastKeyboardEvent=null;(xa(t.key,t.ctrlKey||t.metaKey,Jn(e,t),e)||(0,nn.runScopeHandlers)(e,t,"latex-suite"))&&t.preventDefault()}},{eventHandlers:{keydown(t,e){e.plugin(sn).onKeydown(t,e)}}}),ya=(t,e,r,n)=>{var s;let i=(s=t.plugin(sn))==null?void 0:s.lastKeyboardEvent;return n==="\0\0"?!0:n.length==1&&i&&(n===" "&&(n="Tab"),xa(n,i.ctrlKey||i.metaKey,Jn(t,i),t))?(mo(t),!0):!1},xa=(t,e,r,n)=>{if(t.length>1)return!1;let i=X(n),s=I(n);if(!i.snippetsEnabled||i.suppressSnippetTriggerOnIME&&r||e)return!1;let o=i.snippets.filter(a=>a.options.automatic);try{if($i(n,s,{snippets:o,key:t},i.snippetDebug))return!0}catch(a){Qt(n),console.error(a)}return!1};function Qa(t){let e=[];t.autoDelete$&&e.push({key:"Backspace",run:function(a){if(!X(a).autoDelete$)return!1;let l=I(a);if(!l.mode.strictlyInMath())return!1;let c=zt(a,l.pos),p=zt(a,l.pos-1);return c==="$"&&p==="$"?(jr(a,l.pos-1,l.pos+1,""),Br(a),!0):!1}});let r=new Set(t.snippets.map(o=>o.triggerKey).filter(o=>o!==""));r.add(t.snippetsTrigger);let n=o=>{let a=t.snippets.filter(l=>l.triggerKey===o||!l.triggerKey&&!l.options.automatic&&o===t.snippetsTrigger);return l=>{let c=X(l);if(c.suppressSnippetTriggerOnIME&&l.composing)return!1;try{let p=I(l);return $i(l,p,{snippets:a},c.snippetDebug)}catch(p){return Qt(l),console.error(p),!1}}};t.snippetsEnabled&&e.push(...Array.from(r,o=>({key:o,run:n(o)}))),e.push({key:t.snippetNextTabstopTrigger,run:function(a){return ci(a,!1)}}),e.push({key:t.snippetPreviousTabstopTrigger,run:function(a){return ci(a,!0)}}),t.autofractionEnabled&&e.push({key:"/",run:function(a){if(!X(a).autofractionEnabled)return!1;let l=I(a);return l.mode.strictlyInMath()?da(a,l):!1}});let i=[{key:"Enter",run:zr},{key:"Tab",run:Go},{key:"Shift-Enter",run:Mo}];t.taboutEnabled&&t.taboutTrigger==="Tab"&&i.unshift({key:t.taboutTrigger,run:Bo}),t.matrixShortcutsEnabled&&e.push(...i);let s=[{key:t.taboutTrigger,run:function(a){if(!a.state.selection.main.empty)return!1;let l=I(a);return hi(a,l)}},...[")","}","]"].map(o=>({key:o,run:function(l){if(!Io(l,o))return!1;let c=I(l);return hi(l,c)}}))];return t.taboutEnabled&&e.push(...s),e.map(o=>ye(oe({},o),{scope:"latex-suite"}))}var ot=require("@codemirror/view");var Sa=[St.extension,oi.extension,Ao];var je=require("@codemirror/view"),Ta=require("@codemirror/state");var iu=3;function Jt(t,e){return je.Decoration.mark({inclusive:!0,attributes:{},class:e}).range(t,t+1)}function $a(t,e){let r=nt(t).getEquations(t.state),n={};for(let o of r.values()){if(o in e){n[o]=e[o];continue}let a=["{","[","("],l=["}","]",")"],c=[],p=[];for(let u=0;u0;a--){let l=o.charAt(a);if([")","]","}"].contains(l)){let c=l,p=Lt(c),u=J(o,a,p,c,!0);if(u===-1)return-1;a=u,l=o.charAt(a)}else{if(!["{","(","["].contains(l))continue;let c=J(o,a,l,xt(l),!1);if(c===-1)continue;return{left:a+i,right:c+i}}}return-1}function va(t){let e=[],r=t.state.selection,n=r.ranges,i=t.state.doc.toString(),s=I(t);if(!s.mode.inMath())return je.Decoration.none;let o=s.getBounds(r.main.to);if(!o)return je.Decoration.none;let a=t.state.doc.sliceString(o.inner_start,o.inner_end),l=["{","[","("],c=["{","[","(","}","]",")"],p=!1;for(let u of n){for(let d=u.to;d>u.from-2;d--){let O=i.charAt(d);if(!c.contains(O))continue;let h,f,g=!1;l.contains(O)?(h=O,f=xt(h)):(f=O,h=Lt(O),g=!0);let b=J(a,d-o.inner_start,h,f,g);if(b!==-1){b=b+o.inner_start,e.push(Jt(d,"latex-suite-highlighted-bracket")),e.push(Jt(b,"latex-suite-highlighted-bracket")),p=!0;break}}if(p)break;if(u.empty){let d=u.from-1,O=su(t,d,s);if(O===-1)continue;e.push(Jt(O.left,"latex-suite-highlighted-bracket")),e.push(Jt(O.right,"latex-suite-highlighted-bracket")),p=!0;break}if(p)break}return je.Decoration.set(e,!0)}var ou=je.ViewPlugin.fromClass(class{constructor(t){this.cached_equations={};({decorations:this.decorations,cached_equations:this.cached_equations}=$a(t,this.cached_equations))}update(t){(t.docChanged||t.viewportChanged)&&({decorations:this.decorations,cached_equations:this.cached_equations}=$a(t.view,this.cached_equations))}},{decorations:t=>t.decorations}),wa=Ta.Prec.lowest(ou.extension),ka=je.ViewPlugin.fromClass(class{constructor(t){this.decorations=va(t)}update(t){(t.docChanged||t.selectionSet)&&(this.decorations=va(t.view))}},{decorations:t=>t.decorations});var on=class extends ge.Plugin{constructor(){super(...arguments);this.editorExtensions=[]}onload(){return v(this,null,function*(){yield this.loadSettings(),this.loadIcons(),this.addSettingTab(new Nr(this.app,this)),(0,ge.loadMathJax)(),this.legacyEditorWarning(),this.IMEEditorWarning(),this.registerEditorExtension(this.editorExtensions),this.watchFiles(),this.addEditorCommands()})}onunload(){}legacyEditorWarning(){var r;if((r=this.app.vault.config)!=null&&r.legacyEditor){let n="Latex Suite: This plugin does not support the legacy editor. Switch to Live Preview mode to use this plugin.";new ge.Notice(n,1e5),console.error(n);return}}IMEEditorWarning(){if(Yr()&&!this.settings.suppressIMEWarning&&this.settings.suppressSnippetTriggerOnIME){let r=createFragment();r.appendText("Latex Suite: this plugin supports your IME keyboard, but "),r.createEl("code",{text:"Advanced settings > Don't trigger snippets when IME is active"}),r.appendText(" is currently enabled. You may want to disable it in the plugin settings to fully enable automatic snippets. Be aware that this may cause unexpected snippet triggers while using your IME. To turn this warning off, enable "),r.createEl("code",{text:"Advanced settings > Suppress IME warning"}),r.appendText("."),new ge.Notice(r,1e4),console.info(r)}}loadSettings(){return v(this,null,function*(){let r=yield this.loadData(),n=r?"basicSettings"in r:!1;function i(s){return ye(oe(oe({},s.basicSettings),s.rawSettings),{snippets:s.snippets})}if(n&&(r=i(r)),this.settings=Object.assign({},W,r),n&&this.saveSettings(),this.settings.loadSnippetsFromFile||this.settings.loadSnippetVariablesFromFile){let s=yield this.getSettingsSnippetVariables(),o=yield this.getSettingsSnippets(s);this.CMSettings=qt(o,this.settings),this.app.workspace.onLayoutReady(()=>{this.processSettings()})}else yield this.processSettings()})}saveSettings(r=!1){return v(this,null,function*(){yield this.saveData(this.settings),this.processSettings(r)})}getSettingsSnippetVariables(){return v(this,null,function*(){try{return yield ze(this.settings.snippetVariables)}catch(r){return new ge.Notice(`Failed to load snippet variables from settings: ${r}`),console.error(`Failed to load snippet variables from settings: ${r}`),{}}})}getSettingsSnippets(r){return v(this,null,function*(){try{return yield ut(this.settings.snippets,r)}catch(n){return new ge.Notice(`Failed to load snippets from settings: ${n}`),console.error(`Failed to load snippets from settings: ${n}`),[]}})}getSnippets(r,n){return v(this,null,function*(){let i=is(this),s=this.settings.loadSnippetVariablesFromFile?yield ss(this,i):yield this.getSettingsSnippetVariables(),o=yield os(this,i);this.settings.loadSnippetVariablesFromFile&&Object.assign(s,o);let a=this.settings.loadSnippetsFromFile?yield as(this,i,s):yield this.getSettingsSnippets(s);return this.showSnippetsLoadedNotice(a.length,Object.keys(s).length,r,n),a})}processSettings(r=!1,n=!1){return v(this,null,function*(){this.CMSettings=qt(yield this.getSnippets(r,n),this.settings),this.setEditorExtensions(),this.app.workspace.updateOptions()})}setEditorExtensions(){for(;this.editorExtensions.length;)this.editorExtensions.pop();this.editorExtensions.push([er.Prec.highest(si.extension),er.Prec.highest(ii.extension),xo(this.CMSettings),er.Prec.highest(sn.extension),er.Prec.highest(ot.EditorView.inputHandler.of(ya)),ot.EditorView.updateListener.of(ba),Sa]);let r=Qa(this.CMSettings);this.editorExtensions.push(ot.keymap.of(r)),this.CMSettings.concealEnabled&&this.editorExtensions.push(Yo),this.CMSettings.colorPairedBracketsEnabled&&this.editorExtensions.push(wa),this.CMSettings.highlightCursorBracketsEnabled&&this.editorExtensions.push(ka.extension),this.CMSettings.mathPreviewEnabled&&this.editorExtensions.push([tn.extension,ga,(0,ot.tooltips)({position:"absolute"})])}showSnippetsLoadedNotice(r,n,i,s){if(!(i||s))return;let o=i?"Loaded ":"Successfully reloaded ",a=[];this.settings.loadSnippetsFromFile&&a.push(`${r} snippets`),this.settings.loadSnippetVariablesFromFile&&a.push(`${n} snippet variables`);let l=" from files.";new ge.Notice(o+a.join(" and ")+l,5e3)}addEditorCommands(){var r;for(let n of Lo(this))this.addCommand(n);e:{if(!(app!=null&&app.isVimEnabled())||!this.settings.vimEnabled)break e;let n=(r=window==null?void 0:window.CodeMirrorAdapter)==null?void 0:r.Vim;if(!n)break e;for(let i of Lr(this.settings))n[i.defineType](i.id,i.action),n.mapCommand(i.key,i.type,i.id,{},{context:i.context})}}watchFiles(){this.app.workspace.onLayoutReady(()=>{let r={modify:es,delete:rs,create:ts};for(let[n,i]of Object.entries(r))this.registerEvent(this.app.vault.on(n,s=>i(this,s)))})}loadIcons(){for(let[r,n]of Object.entries(Uo))(0,ge.addIcon)(r,n)}}; + `};var Yn=require("@codemirror/view");var sw=require("@codemirror/view"),lw=require("@codemirror/state");var Bk=require("@codemirror/view");function Mp(e,t){return e.includes(t)}var Me=require("@codemirror/view"),Dp=require("@codemirror/state");var Wk=require("@lezer/common");var fh=3,nn="latex-suite-highlighted-bracket",pe="latex-suite-color-bracket",Nn="latex-suite-mismatched-bracket";function hi(e,t,n){return Me.Decoration.mark({inclusive:!0,attributes:{},class:t}).range(e,e+n)}var oa={"{":"}","[":"}","(":")","\\{":"\\}","\\left<":"\\right>","\\langle ":"\\rangle","\\lvert":"\\rvert","\\lVert":"\\rVert","\\right\\lt":"\\right\\gt","\\lbrace":"\\rbrace","\\lbrack":"\\rbrack","\\lceil":"\\rceil","\\lfloor":"\\rfloor","\\lgroup":"\\rgroup","\\llcorner":"\\lrcorner","\\lmoustache":"\\rmoustache","\\lparen":"\\rparen"},sa=Object.fromEntries(Object.entries(oa).map(([e,t])=>[t,e]));function hh(e,t){var l;let n=e.node.getChild(_.MathOpening),r=e.node.getChild(_.MathClosing),i=e.node.getChild(_.Math),o=i?rn(i,new fe(t.eqn,i.from,i.to,t.offset)):[];if(!n||!r)return[];let s=(l=r==null?void 0:r.to)!=null?l:n.to;s&&e.moveTo(s,-1);let a;if(n&&r)return a={kind:"bracket",open:n,close:r,children:o},[a];if(n)return a={kind:"error_open",open:n,bracket:t.slice(n.from,n.to)},[a,...o];if(r){let c=t.slice(r.from,r.to);return a={kind:"error_close",close:r,bracket:c},[...o,a]}return[]}function gh(e,t){let n=e.node,r=t.slice(n.from,n.to),i=r in oa,o=r in sa,s;if(i)s={kind:"error_open",open:n,bracket:t.slice(n.from,n.to)};else if(o)s={kind:"error_close",close:n,bracket:t.slice(n.from,n.to)};else return[];return[s]}var yh={OpenBrace:"CloseBrace",OpenBracket:"CloseBracket",OpenParenMath:"CloseParenMath"};function bh(e,t){let n=e.node,r=n,i=yh[n.name],o=[];for(;e.nextSibling();){let s=e.node;if(s&&s.name===i)return[{kind:"bracket",open:r,close:s,children:o}];if(s){let a=new fe(t.eqn,s.from,s.to,t.offset);o.push(...rn(s,a))}}return[{kind:"error_open",open:r,bracket:t.slice(r.from,r.to)},...o]}function vh(e,t){let n=t.slice(e.from,e.to),r=[];for(let i=0;ip.bracket===l);if(c!==null){let p=r[c];n=p,r.length=c,Object.assign(p,{kind:"bracket",close:a.close}),n=p.parent}else s.push(a)}else a.kind==="bracket"&&o.kind==="bracket"&&(s.push(a),Un(o.children).forEach(c=>{c.parent=a,a.children.push(c)}))}return t}function jp(e,t){let n=oe(e).getEquationOverlays(e.state),r={},i=[];for(let s of n){let a=t[s.text];if(a){r[s.text]=a;for(let O of a)i.push(hi(O.pos+s.overlay.from,O.className,O.bracket));continue}let l=new fe(s.text,s.overlay.from,s.overlay.to),c=rn(s.bound.tree,l),p=Un(c),u=[];for(let{region:O,depth:d}of Jt(p)){if(O.kind==="error_close"||O.kind==="error_open"){let m=O.kind==="error_open"?O.open.from:O.close.from;u.push({pos:m,className:Nn,bracket:O.bracket.length});continue}let f=d%fh;u.push({pos:O.open.from,className:`${pe}-${f}`,bracket:O.open.to-O.open.from}),u.push({pos:O.close.from,className:`${pe}-${f}`,bracket:O.close.to-O.close.from})}i.push(...u.map(O=>hi(O.pos,O.className,O.bracket))),r[s.text]=u.map(O=>j(A({},O),{pos:O.pos-l.offset}))}return t=r,{decorations:Me.Decoration.set(i,!0),cached_equations:t}}function Zp(e){let t=[],r=e.state.selection.ranges;if(!G(e).mode.inMath())return Me.Decoration.none;let o=oe(e).getEquationOverlays(e.state);for(let s of r){let a=o.find(O=>O.overlay.from<=s.from&&O.bound.inner_end>=O.overlay.to);if(!a)continue;let l=new fe(a.text,a.overlay.from,a.overlay.to),c=Un(rn(a.bound.tree,l)),p=null,u={from:s.from,to:s.to,empty:s.empty};for(let{region:O,depth:d}of Jt(c))if(O.kind==="bracket"){if(!u.empty&&(O.close.to<=u.to&&O.close.to>=u.from||O.open.from>=u.to&&O.open.from<=u.from)){p={region:O,depth:d};break}if(O.open.from<=u.to&&O.close.to>=u.to){p={region:O,depth:d};continue}if(O.open.from>u.to)break}p&&t.push(hi(p.region.open.from,nn,p.region.open.to-p.region.open.from),hi(p.region.close.from,nn,p.region.close.to-p.region.close.from))}return Me.Decoration.set(t,!0)}var aa=Me.ViewPlugin.fromClass(class{constructor(e){this.cached_equations={};({decorations:this.decorations,cached_equations:this.cached_equations}=jp(e,this.cached_equations))}update(e){e.transactions.some(t=>t.annotation(Ne))||(e.docChanged||e.viewportChanged)&&({decorations:this.decorations,cached_equations:this.cached_equations}=jp(e.view,this.cached_equations))}},{decorations:e=>e.decorations}),xh=Me.EditorView.baseTheme({[`${$e} .${pe}-0, ${$e} .${pe}-0 .cm-bracket`]:{color:"#527aff"},[`${se} .${pe}-0, ${se} .${pe}-0 .cm-bracket`]:{color:"#47b8ff"},[`${$e} .${pe}-1, ${$e} .${pe}-1 .cm-bracket`]:{color:"#ff50b7"},[`${se} .${pe}-1, ${se} .${pe}-1 .cm-bracket`]:{color:"#ff55cd"},[`${$e} .${pe}-2, ${$e} .${pe}-2 .cm-bracket`]:{color:"#69ba00"},[`${se} .${pe}-2, ${se} .${pe}-2 .cm-bracket`]:{color:"#73ff63"},[`${$e} .${Nn}, ${$e} .${Nn} .cm-bracket`]:{color:"rgb(255 18 18 / 80%)"},[`${se} .${Nn}, ${se} .${Nn} .cm-bracket`]:{color:"rgb(255 18 18 / 80%)"}}),Vp=Dp.Prec.lowest([aa,xh]),la=Me.ViewPlugin.fromClass(class{constructor(e){this.decorations=Zp(e)}update(e){e.transactions.some(t=>t.annotation(Ne))||(e.docChanged||e.selectionSet)&&(this.decorations=Zp(e.view))}},{decorations:e=>e.decorations}),Lp="hsl(var(--accent-h) var(--accent-s)",Sh=Me.EditorView.baseTheme({[`${$e} .${nn}, ${$e} .${nn} [class^="${pe}-"]`]:{backgroundColor:`${Lp} 40% / 30%)`},[`${se} .${nn}, ${se} .${nn} [class^="${pe}-"]`]:{backgroundColor:`${Lp} 70% / 60%)`}}),Ip=[la,Sh];var Qh=["\\big","\\Big","\\bigg","\\Bigg","\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\left","\\right"];function $h(e,t,n){let r=e.resolveInner(t,-1);if(!r.type.is(_.CtrlSeq))return!1;let i=n.slice(r.from,r.to);return Mp(Qh,i)}var on=e=>{let t=W(e);if(!t.autoEnlargeBrackets)return!1;let n=oe(e).getEquationOverlays(e.state),r=e.state.selection.main.head,i=n.filter(c=>c.bound.inner_start<=r&&c.bound.inner_end>=r)[0];if(!i)return!1;let o="\\left",s="\\right",a=new fe(i.text,i.overlay.from,i.overlay.to),l=Un(rn(i.bound.tree,a));for(let{region:c}of Jt(l)){if(c.kind!=="bracket")continue;let p=a.slice(c.open.from,c.open.to),u=a.slice(c.close.from,c.close.to);if(p==="{"||p==="\\("||p.startsWith("\\left")||u.startsWith("\\right")||$h(i.bound.tree,c.open.from,a))continue;let O=a.slice(c.open.to,c.close.from);if(t.autoEnlargeBracketsTriggers.every(g=>!O.includes(g)))continue;let d=t.autoEnlargeBracketsSpace?" ":"",f=new le(o+p+d),m=new le(d+s+u);We(e,c.open.from,c.open.to,f.applyInsert(Fe)),We(e,c.close.from,c.close.to,m.applyInsert(Fe))}return tt(e)};var ca=(e,t,n)=>{let r=!1;for(let i=0;i<=n.recursive;i++){let o=G(e),s=!1;for(let l of o.ranges)Th(e,o,t,{from:l.from,to:l.to},n.debug).shouldAutoEnlargeBrackets&&(s=!0);let a=tt(e);if(r=r||a,s&&on(e),!a)break;t.key=void 0}return r},kh=(e,t)=>{let n=e.state.sliceDoc(0,t),r=null;return{line:n,effectiveLineAfter:()=>(r=r!=null?r:e.state.sliceDoc(t),r)}},wh=(e,t)=>{let n={from:t.from,to:t.to},r=e.state.sliceDoc(t.from,t.to),i=r,o={range:{original:t,parsed:n},sel:{original:r,parsed:i}};if(t.from===t.to)return o;n.to=n.from+i.length;let s=e.state.doc.lineAt(n.from),a=/^((?:> ?)*)(\s*)/,l=s.text.match(a);if(!l)return o;let c=l[1].split(">").length-1,p=l[2],u=!1;if(i=r.replaceAll(new RegExp("\\n((?:> ?)*)(\\s*)","g"),(f,m,g)=>u?f:m.split(">").length-1!==c||g.length ?)*\s*/);f&&(n.from+=f[0].length,i=i.replace(a,""))}return{range:{original:t,parsed:n},sel:{original:r,parsed:i}}},Th=(e,t,n,r,i)=>{var f;let o=W(e),{line:s,effectiveLineAfter:a}=kh(e,r.to),l=r.to,{range:c,sel:p}=wh(e,r),u=(f=n.key)!=null?f:"";if(n.key&&n.key.length!==1)return{success:!1,shouldAutoEnlargeBrackets:!1};let O=Array.from(t.getEnvNames(l)),d=s+u;for(let[m,g]of n.snippets.entries()){let b=g.isWithinIncludedScope(O);if(!g.options.snippetShouldRunInMode(t.mode,b===1)||b===2)continue;let v=g.process({effectiveLine:d,range:c,sel:p,effectiveLineAfter:a,view:e});if(v===null||g.isWithinExcludedScope(O))continue;let $=v.triggerPos,S=v.triggerEndPos?v.triggerEndPos-u.length:l;if(g.options.onWordBoundary&&!Eh(e.state,$,l,o.wordDelimiters))continue;let E=v.replacement;t.mode.inlineMath&&o.removeSnippetWhitespace&&(E=Ph(E,t));let T=$,P=g.options.automatic&&g.type!=="visual"&&g.options.undoKey?u:void 0;We(e,T,S,E,P,l);let Z=o.autoEnlargeBracketsTriggers.some(V=>E.insert.contains(V));return(i==="info"||i==="verbose")&&Oc(e.state,g,E.insert,Z),i==="verbose"&&console.debug({snippets_unexpanded:n.snippets.slice(0,m).map(V=>({description:V.description,trigger:V.trigger,options:V.options,replacement:V.replacement})),current_mode:t.mode,updatedLine:d}),{success:!0,shouldAutoEnlargeBrackets:Z}}return{success:!1,shouldAutoEnlargeBrackets:!1}},Eh=(e,t,n,r)=>{let i=e.sliceDoc(t-1,t),o=e.sliceDoc(n,n+1);return r=r.replace("\\n",` +`),r.contains(i)&&r.contains(o)},Ph=(e,t)=>{let n=e.tabstops;e.insert=e.insert.trimEnd();for(let r of n)r.to=Math.min(r.to,e.insert.length),r.from=Math.min(r.from,e.insert.length);return e};var vw=require("@codemirror/view"),Sw=require("@codemirror/state");var gi=e=>{let t=G(e);for(let r of t.ranges)qh(e,t,r);let n=tt(e);return n&&on(e),n},Ch="alpha|beta|gamma|Gamma|delta|Delta|epsilon|varepsilon|zeta|eta|theta|Theta|iota|kappa|lambda|Lambda|mu|nu|omicron|xi|Xi|pi|Pi|rho|sigma|Sigma|tau|upsilon|Upsilon|varphi|phi|Phi|chi|psi|Psi|omega|Omega",Gp=new RegExp("("+Ch+") ([^ ])","g"),qh=(e,t,n)=>{let r=W(e),{from:i,to:o}=n;for(let d of r.autofractionExcludedEnvs)if(t.isWithinEnvironment(o,d))return!1;let s=t.getBounds();if(!s)return!1;let a=s.inner_start,l=e.state.sliceDoc(a,o),c=a;if(i!=o)c=i;else{Gp.lastIndex=0,l=l.replace(Gp,"$1#$2");for(let d=l.length-1;d>=0;d--){let f=l.charAt(d);if([")","]","}"].contains(f)){let m=f,g=Za(m),b=Gt(l,d,g,m,!0);if(b===null)return!1;d=b}if(` $([{ +`.concat(r.autofractionBreakingChars).contains(f)){c=d+1+a;break}}}if(c===o)return!1;let p=e.state.sliceDoc(c,o);p.at(0)==="("&&p.at(-1)===")"&&Gt(p,0,"(",")",!1)===p.length-1&&(p=p.slice(1,-1));let u=new U([new le(r.autofractionSymbol+"{"),p===""?new qe(0):new le(p),new le("}{"),new qe(1),new le("}"),new qe(2)]),O=i!=o?void 0:"/";return We(e,c,o,u.applyInsert(Fe),O),!0};var bi=require("@codemirror/view"),sn=require("@codemirror/state"),an=require("obsidian");var Hp=require("@codemirror/language");var yi="latex-suite-math-preview-highlight",zn=sn.StateEffect.define(),Fn=sn.StateField.define({create:()=>[],update(e,t){for(let n of t.effects)if(n.is(zn))return n.value;return e},provide:e=>bi.showTooltip.computeN([e],t=>t.field(e).map(n=>n.tooltip))}),Rh=(e,t,n,r)=>{let i=(l,c,p,u,O)=>{let d=0;for(let f=c;f>=0&&f0&&e.view.dispatch({effects:[zn.of([])]});return}let o=e.state.sliceDoc(i.inner_start,i.inner_end),s=r.pos,l=(0,Hp.syntaxTree)(e.state).cursor();l.moveTo(s,-1);let c;l.name==="math_tag"&&l.from=s?c=l.from:c=s;let p=c-i.inner_start,u,O=o.replaceAll(/\\[\\{}]/g,"\\R"),{left:d,right:f}=n.mathPreviewBracketHighlighting?Rh(O,p,"{","}"):{left:-1,right:-1};if(f!==-1&&d!==-1){let S=Math.max(d+1,p);u=o.slice(0,d+1)+`\\style{background-color: var(--${yi});}{`+o.slice(d+1,S)+n.mathPreviewCursor+o.slice(S,f)+"}"+o.slice(f)}else u=o.slice(0,p)+n.mathPreviewCursor+o.slice(p);let m=e.state.field(Fn);if(m.length===1&&m[0].equation===u&&m[0].bounds.inner_start===i.inner_start&&m[0].bounds.inner_end===i.inner_end)return;let g=vt(e.view,i),b=n.mathPreviewPositionIsAbove,v=()=>{var E;let S=$t("div");if(S.addClass("cm-tooltip-cursor"),S.addClass(b?"cm-tooltip-above":"cm-tooltip-below"),r.mode.blockMath){let T=(E=e.state.doc.lineAt(i.inner_start).text.match(/^ {0,3}(>+)/))==null?void 0:E[1].length;if(T){let P=new RegExp(`^ {0,3}>{${T}}`,"gm");P.test(o)&&(u=u.replaceAll(P,""))}}try{let T=(0,an.renderMath)(u,r.mode.inDisplayMath()),P=T.querySelector(`[style*="background-color: var(--${yi})"]`);P==null||P.addClass(yi),P==null||P.style.removeProperty("background-color"),S.appendChild(T),(0,an.finishRenderMath)()}catch(T){console.error("Error rendering math in tooltip:",T),S.textContent=o}return{dom:S}},$=[];if(g)$=[{pos:b?i.inner_start:i.inner_end,above:b,strictSide:!0,arrow:!0,create:v}];else if(!g&&b)$=[{pos:i.inner_start,above:!0,strictSide:!0,arrow:!0,create:v}];else if(!g&&!b){let S=sn.EditorSelection.range(i.inner_end,i.inner_end);$=[{pos:Math.max(i.inner_start,e.view.moveToLineBoundary(S,!1).anchor),above:!1,strictSide:!0,arrow:!0,create:v}]}e.view.dispatch({effects:[zn.of($.map(S=>({equation:u,bounds:i,pos:S.pos,tooltip:S})))]})}function Xh(e,t){if(!t.mode.inMath())return null;let n=W(e),r=e.field(an.editorLivePreviewField);if(t.mode.blockMath&&r&&!n.mathPreviewLivePreviewDisplay)return null;let i=t.getBounds();return!i||e.sliceDoc(i.inner_start,i.inner_end).trim()===""?null:i}var Np=bi.EditorView.baseTheme({".cm-tooltip.cm-tooltip-cursor":{backgroundColor:"var(--background-secondary)",color:"var(--text-normal)",border:"1px solid var(--background-modifier-border-hover)",padding:"4px 6px",borderRadius:"6px","& .cm-tooltip-arrow:before":{borderTopColor:"var(--background-modifier-border-hover)",borderBottomColor:"var(--background-modifier-border-hover)"},"& .cm-tooltip-arrow:after":{borderTopColor:"var(--background-secondary)",borderBottomColor:"var(--background-secondary)"},"& p":{margin:"0px"},"& mjx-container":{padding:"2px !important"},"&.cm-tooltip-above":{display:"flex"},"&.cm-tooltip-above > .MathJax":{overflowY:"auto",maxHeight:"70%",display:"inline-block",alignSelf:"flex-end"},"&.cm-tooltip-below > .MathJax":{overflowY:"auto",maxHeight:"90%"}},[`.${yi}`]:{backgroundColor:"var(--text-selection)"},[`${se} .cm-tooltip.cm-tooltip-cursor`]:{boxShadow:"0 1px 2px rgb(0 0 0 / 10%), 0 3.4px 6.7px rgb(0 0 0 / 15%), 0 0 30px rgb(0 0 0 / 27%)"},[`${$e} .cm-tooltip.cm-tooltip-cursor`]:{boxShadow:"0 1px 2px rgb(0 0 0 / 2.8%), 0 3.4px 6.7px rgb(0 0 0 / 4.2%), 0 5px 20px rgb(0 0 0 / 7%)"}});function Up(e){if(!W(e).autoDelete$)return!1;let t=oe(e),n=e.state.selection.main.head,i=t.getTree(e.state).resolveInner(n,-1);if(i.name!==w.Dollar)return!1;let o=i.prevSibling,s=i.nextSibling,a=s==null?void 0:s.nextSibling,l=i.parent;return i.fromn&&i.to-i.from==2?(yn(e,i.from,i.to,""),!0):o||!a||!l||a.name!==w.Dollar||l.name!==w.DollarInlineMath||i.to!==a.from||n!==i.to?!1:(yn(e,i.from,a.to,""),!0)}var zp=e=>{let t=W(e.state);if(t.mathPreviewEnabled&&!e.transactions.some(i=>i.annotation(Ne))&&Bp(e),kp(e)||e.transactions.filter(i=>i.isUserEvent("input.type")).length===0||!t.snippetIMEVersion)return;pa("",!1,e.view.composing,e.view)&&console.debug("Handled input event as snippet trigger")},Kn=Yn.ViewPlugin.fromClass(class{constructor(){this.lastKeyboardEvent=null}onKeydown(e,t){if(e.key=="Unidentified"||e.key=="Process"||e.key=="Dead"){this.lastKeyboardEvent=e;return}else this.lastKeyboardEvent=null;(!W(t).snippetIMEVersion&&pa(e.key,e.ctrlKey||e.metaKey,Zi(t,e),t)||(0,Yn.runScopeHandlers)(t,e,"latex-suite"))&&e.preventDefault()}},{eventHandlers:{keydown(e,t){t.plugin(Kn).onKeydown(e,t)}}}),Fp=(e,t,n,r)=>{var s;if(W(e).snippetIMEVersion)return!1;let o=(s=e.plugin(Kn))==null?void 0:s.lastKeyboardEvent;if(r==="\0\0")return!0;if(r.length==1&&o){r===" "&&(r="Tab");let a=new KeyboardEvent("keydown",j(A({},o),{key:r,keyCode:void 0}));if(pa(r,o.ctrlKey||o.metaKey,Zi(e,o),e)||(0,Yn.runScopeHandlers)(e,a,"latex-suite"))return Da(e),!0}return!1},pa=(e,t,n,r)=>{if(e.length>1)return!1;let i=W(r);if(!i.snippetsEnabled||i.suppressSnippetTriggerOnIME&&n||t)return!1;let o=i.snippets.automatic;try{let s={recursive:i.snippetRecursion,debug:i.snippetDebug};if(ca(r,{snippets:o,key:e},s))return!0}catch(s){Gs(r),console.error(s)}return!1};function Yp(e){let t=[];e.autoDelete$&&t.push({key:"Backspace",run:Up});let n=new Set(e.snippets.all.map(s=>s.triggerKey).filter(s=>s!==""));n.add(e.snippetsTrigger);let r=s=>{let a=e.snippets.all.filter(l=>l.triggerKey===s||!l.triggerKey&&!l.options.automatic&&s===e.snippetsTrigger);return l=>{let c=W(l);if(c.suppressSnippetTriggerOnIME&&l.composing)return!1;try{let p={recursive:c.snippetRecursion,debug:c.snippetDebug};return ca(l,{snippets:a},p)}catch(p){return Gs(l),console.error(p),!1}}};e.snippetsEnabled&&t.push(...Array.from(n,s=>({key:s,run:r(s)}))),t.push({key:e.snippetNextTabstopTrigger,run:function(a){return zs(a,!1)}}),t.push({key:e.snippetPreviousTabstopTrigger,run:function(a){return zs(a,!0)}}),e.autofractionEnabled&&t.push({key:e.autofractionTrigger,run:function(a){return!W(a).autofractionEnabled||!G(a).mode.strictlyInMath()?!1:gi(a)}});let i=[{key:e.matrixShortcutsNewlineTrigger,run:tn},{key:e.matrixShortcutsCellTrigger,run:ii},{key:e.matrixShortcutsExitTrigger,run:ri}];e.taboutEnabled&&e.taboutTrigger===e.matrixShortcutsCellTrigger&&i.unshift({key:e.taboutTrigger,run:oi}),e.matrixShortcutsEnabled&&t.push(...i);let o=[{key:e.taboutTrigger,run:function(a){if(!a.state.selection.main.empty)return!1;let l=G(a);return Js(a,l)}},...[")","}","]"].map(s=>({key:s,run:function(l){if(!Pp(l,s))return!1;let c=G(l);return Js(l,c)}}))];return e.taboutEnabled&&t.push(...o),t.map(s=>j(A({},s),{scope:"latex-suite"}))}var jt=require("@codemirror/view");var Kp=[mt,Zn,ti,Qp];var we=require("@codemirror/view"),Ue=require("@codemirror/state");var dT=require("@codemirror/view");var hT=require("@lezer/common");var _h=A(A({},Ht),pr),eu={mathbf:"cm-concealed-bold",boldsymbol:"cm-concealed-bold",underline:"cm-concealed-underline",mathrm:"cm-concealed-mathrm",mathbb:void 0},tu={hat:"\u0302",dot:"\u0307",ddot:"\u0308",overline:"\u0304",bar:"\u0304",tilde:"\u0303",vec:"\u20D7"};function ft(e){let t=e.nextSibling;if(!t||!t.type.is(_.MathArgument))return null;let n=t.firstChild;if(!n||!n.type.is(_.OpenBrace))return null;let r=n.nextSibling;if(!r||!r.type.is(_.Math))return null;let i=r.nextSibling;return!i||!i.type.is(_.CloseBrace)?null:{mathArgumentNode:t,openBraceNode:n,mathNode:r,closeBraceNode:i}}function Ah(e){let t=e.nextSibling;if(!t||!t.type.is(_.TextArgument))return null;let n=t.firstChild;if(!n||!n.type.is(_.OpenBrace))return null;let r=n.nextSibling;if(!r||!r.type.is(_.LongArg))return null;let i=r.nextSibling;return!i||!i.type.is(_.CloseBrace)?null:{textArgumentNode:t,openBraceNode:n,textNode:r,closeBraceNode:i}}function Wh(e,t){let n=e.node,r=ft(n);if(!r)return{spec:[],kind:1};let i=ft(r.mathArgumentNode);if(!i)return{spec:[],kind:1};let o=r.openBraceNode,s=r.closeBraceNode,a=i.openBraceNode,l=i.closeBraceNode,c=t.slice(o.from,l.to);if(Ii[c])return e.moveTo(n.to,-1),{spec:[{start:n.from,end:l.to,text:Ii[c]}],kind:1};let p={start:n.from,end:n.to,text:""},u={start:o.from,end:o.to,text:"(",class:"cm-bracket"},O={start:s.from,end:s.to,text:")",class:"cm-bracket"},d={start:s.to,end:s.to,text:"/",class:"cm-bracket"},f={start:a.from,end:a.to,text:"(",class:"cm-bracket"},m={start:l.from,end:l.to,text:")",class:"cm-bracket"};return{spec:[p,u,O,d,f,m],kind:1}}function Mh(e,t,n){let r=e.node,i=tu[n],o=ft(r);if(!o)return{spec:[],kind:1};let s=o.mathNode,a=o.closeBraceNode,l=t.slice(s.from,s.to),c=/^[A-Za-z]$/.test(l)?l:l[0]==="\\"&&Ht[l.slice(1)];return c?(e.moveTo(a.to,1),t.skipCursorMove=!0,{spec:[{start:r.from,end:a.to,text:c+i,class:"latex-suite-unicode"}],kind:1}):{spec:[],kind:1}}function nu(e,t){let n=e.node.cursor();n.next();let r=n.node;return r.type.is(_.MathCommand)&&t.slice(r.from+1,r.to)==="limits"?(e.moveTo(r.to,1),t.skipCursorMove=!0,r.to):e.to}function jh(e,t,n){let r=ur[n];return{spec:[{start:e.from,end:e.to,text:r,class:"cm-bracket"}],kind:1}}function Zh(e,t,n){let r="\u3008",i="\u3009",o="|",s=e.node,a=ft(s);if(!a)return{spec:[],kind:1};let l=a.closeBraceNode,c=a.openBraceNode,p=n==="ket"?o:r,u=n==="bra"?o:i;return{spec:[{start:s.from,end:c.from,text:""},{start:c.from,end:c.to,text:p},{start:l.from,end:l.to,text:u}],kind:1}}function Lh(e,t,n){let r=e.node,i=nu(e,t);return{spec:[{start:r.from,end:i,text:n,class:"cm-concealed-mathrm cm-variable-2"}],kind:1}}function Jp(e,t){let n=e.from,r=e.node.cursor();if(!r.next())return{spec:[],kind:1};let i=t.slice(r.from,r.to),o=tl[i]||i[0]==="\\"&&ur[i.slice(1)];return o?(e.moveTo(r.to,1),t.skipCursorMove=!0,{spec:[{start:n,end:r.to,text:o,class:"cm-bracket"}],kind:1}):{spec:[],kind:0}}function Dh(e,t,n){let r=e.slice(Math.max(t.from,t.to-1),t.to);if(r!=="_"&&r!=="^")return{spec:[],kind:0};let i=t.to-1,o=r==="_"?"sub":"sup",s=["MathCommand","Group","MathDelimitedGroup","MathChar","Number"],a=n.node.cursor();if(!a.next())return{spec:[],kind:1};let l=a.node;if(!s.includes(l.name))return{spec:[],kind:0};if(l.name==="MathChar"||l.name==="Number"){let b=Math.min(l.to,l.from+1);return n.moveTo(l.to,1),e.skipCursorMove=!0,{spec:[{start:i,end:b,text:e.slice(l.from,b),class:"cm-number",elementType:o}],kind:1}}let c=new fe(e.eqn,l.from,l.to,e.offset),p=ru(l,c),u=l.name==="Group",O=l.from+Number(u),d=[],f=p.flat().sort((b,v)=>b.start-v.start),m=!1;for(let b of f)if(!(b.endrl[l]);return s.some(l=>!l)?{spec:[],kind:1}:(e.moveTo(o.to,1),t.skipCursorMove=!0,{spec:[{start:n.from,end:o.to,text:s.join("")}],kind:1})}function Bh(e,t,n){let r=e.node,i=ft(r);if(!i)return{spec:[],kind:1};let o=i.mathNode,s=i.closeBraceNode,a=t.slice(o.from,o.to);if(/[^A-Za-z0-9 ]/.test(a)){let c;if(!((n==="underline"||n==="boldsymbol")&&a[0]==="\\"&&(c=Ht[a.slice(1)])))return{spec:[],kind:1};a=c}return n==="mathbb"&&(a=a.split("").map(c=>nl[c]).join("")),e.moveTo(s.to,1),t.skipCursorMove=!0,{spec:[{start:r.from,end:s.to,text:a,class:eu[n]}],kind:1}}function Nh(e,t){let n=e.from,r=e.node.cursor();if(!r.next())return{spec:[],kind:1};let i=r.node,o=e.to,s=t.slice(i.from+1,i.to),a=Ja[s];return a?(e.moveTo(i.to,1),t.skipCursorMove=!0,{spec:[{start:n,end:o,text:a}],kind:1}):{spec:[],kind:1}}var Uh=["frac","dfrac","tfrac","gfrac"],zh=["bra","ket","braket"],Mt={not:Nh,left:Jp,right:Jp,mathcal:Hh,text:Gh,set:Ih,operatorname:Vh};for(let e of Object.keys(tu))Mt[e]=Mh;for(let e of Object.keys(ur))Mt[e]=jh;for(let e of Object.keys(eu))Mt[e]=Bh;for(let e of Uh)Mt[e]=Wh;for(let e of zh)Mt[e]=Zh;for(let e of el)Mt[e]=Lh;function ru(e,t){let n=[];for(let r of en(e,t)){let i=r.node;if(i.name.endsWith("CtrlSeq")){let o=t.slice(i.from+1,i.to),s=Mt[o];if(s){let{spec:c,kind:p}=s(r,t,o);if(p===1){n.push(c);continue}}let a=_h[o];if(!a)continue;let l=nu(r,t);n.push([{start:i.from,end:l,text:a}]);continue}else if(i.type.is(_.MathSpecialChar)){let o=Dh(t,i,r);if(o.kind===1){n.push(o.spec);continue}}}return n}function iu(e,t){let i=oe(e).getEquationOverlays(e.state).map(a=>{let l=a.text.split(` +`),c=Ia(l.map(u=>u.length+1));c.unshift(0);let p=0;return a.bound.overlay.map(u=>{let O=[];for(;p=u.to);p++){let d=Math.min(c[p+1]+a.overlay.from-1,u.to),f=Math.max(c[p]+a.overlay.from,u.from);O.push({text:a.text.slice(f-a.overlay.from,d-a.overlay.from),bound:a.bound,overlay:{from:f,to:d}})}return O})}).flat(2),o={},s=[];for(let a of i){let l=t[a.text];if(l){o[a.text]=l,s.push(...l.map(u=>u.map(O=>j(A({},O),{start:O.start+a.overlay.from,end:O.end+a.overlay.from}))));continue}else if(a.text.trim()==="")continue;let c=a.bound;o[a.text]=[];let p=ru(c.tree,new fe(a.text,a.overlay.from,a.overlay.to));s.push(...p),o[a.text]=p.map(u=>u.map(O=>j(A({},O),{start:O.start-a.overlay.from,end:O.end-a.overlay.from})))}return t=o,{specs:s,cached_equations:t}}var ln=require("obsidian");var ua=class extends we.WidgetType{constructor(n,r,i){super();this.symbol=n;this.className=r||"",this.elementType=i||"span"}eq(n){return n.symbol==this.symbol&&n.className===this.className&&n.elementType===this.elementType}toDOM(){let n=$t(this.elementType);return n.className="cm-math "+this.className,n.textContent=this.symbol,n}ignoreEvent(){return!1}},Oa=class extends we.WidgetType{constructor(n){super();this.symbol=n}eq(n){return n.symbol==this.symbol}toDOM(){let n=$t("span");return n.className="cm-math",n.textContent=this.symbol,n}ignoreEvent(){return!1}};function Fh(e,t,n){if(t.length!==n.length)return!1;for(let r=0;ri.enable).flatMap(i=>i.spec).sort((i,o)=>i.start-o.start),n=new class extends Ue.RangeValue{},r=new Ue.RangeSetBuilder;for(let i=0;i{let t=e.state.selection.ranges.map(n=>Ue.EditorSelection.range(n.from,n.to,n.assoc));e.dispatch({selection:Ue.EditorSelection.create(t)})},50),da=class{constructor(t){this.mousedown=!1;this.delayedRevealCallback=(t,n)=>{var r;for(let i of t)i.enable=!1;this.decorations=ou(this.concealments),this.atomicRanges=su(this.concealments),n.dispatch(),(r=n==null?void 0:n.cm)==null||r.signal("vim-command-done")};var i,o;this.concealments=[],this.decorations=we.Decoration.none,this.atomicRanges=Ue.RangeSet.empty;let n=W(t).concealRevealTimeout;this.delayEnabled=n>0,this.cached_equations={},this.concealSpecs=[],this.delayedReveal=(0,ln.debounce)(this.delayedRevealCallback,n,!0);let r=[];this.update({view:t,state:t.state,docChanged:!0,transactions:r}),this.mousedown=(o=(i=t.plugin(ln.livePreviewState))==null?void 0:i.mousedown)!=null?o:!1}update(t){if(t.docChanged||t.viewportChanged||t.selectionSet){if(t.transactions.some(n=>n.annotation(Ne))){this.decorations=this.decorations.map(t.changes),this.atomicRanges=this.atomicRanges.map(t.changes);return}if(this.delayedReveal.cancel(),!t.docChanged&&!t.viewportChanged)this.updateFromConcealSpecs(this.concealSpecs,t);else{let{specs:n,cached_equations:r}=iu(t.view,this.cached_equations);this.cached_equations=r,this.concealSpecs=n,this.updateFromConcealSpecs(n,t)}}}updateFromConcealSpecs(t,n){var l,c;let r=n.state.selection,i=this.mousedown;this.mousedown=(c=(l=n.view.plugin(ln.livePreviewState))==null?void 0:l.mousedown)!=null?c:!1;let o=[],s=[],a=!1;for(let p of t){let u=Yh(r,p),O=this.concealments.find(m=>Fh(n,m.spec,p)),d=Kh(O==null?void 0:O.cursorPosType,u,this.mousedown,this.delayEnabled);a=a||d==="reveal";let f={spec:p,cursorPosType:u,enable:d!=="reveal"};d==="delay"&&s.push(f),o.push(f)}a&&i&&!this.mousedown&&n.view.state.selection.ranges.some(p=>!p.empty)&&Jh(n.view),s.length>0&&this.delayedReveal(s,n.view),this.concealments=o,this.decorations=ou(this.concealments),this.atomicRanges=su(this.concealments)}},eg=we.EditorView.baseTheme({"span.cm-math.cm-concealed-bold":{fontWeight:"bold"},"span.cm-math.cm-concealed-underline":{textDecoration:"underline"},"span.cm-math.cm-concealed-mathrm, sub.cm-math.cm-concealed-mathrm":{fontStyle:"normal"},"sup.cm-math":{lineHeight:0},"sup.cm-math, sub.cm-math":{fontStyle:"italic"}});function au(){return[we.ViewPlugin.fromClass(da,{decorations:t=>t.decorations,provide:t=>we.EditorView.atomicRanges.of(n=>{var r,i;return(i=(r=n.plugin(t))==null?void 0:r.atomicRanges)!=null?i:Ue.RangeSet.empty})}),eg]}var lu=require("@codemirror/state"),ze=require("@codemirror/view");var cu="latex-suite-error-dollar",pu="latex-suite-highlighted-dollar-inline",uu="latex-suite-highlighted-dollar-block",Ou="latex-suite-highlighted-dollar-code",ma=class{constructor(){this.decorations=ze.Decoration.none}update(t){!t.docChanged&&!t.viewportChanged||(this.decorations=this.computeDecorations(t.view))}computeDecorations(t){let n=oe(t),r=[];n.mathBounds.forEach(s=>{if(s.inner_end===s.outer_end&&s.inner_start!==s.outer_start){r.push({from:s.outer_start,to:s.inner_start,kind:"error"});return}if(r.push(j(A({},s),{kind:"pair",mode:s.mode})),!s.tree)return;let a=fe.fromNode(s.tree,t.state.doc);for(let l of en(s.tree,a)){let{type:c,node:p}=l;if(c.is(_.DollarInlineMath)||c.is(_.ParenMath)){let u=c.is(_.DollarInlineMath)?p.getChildren(_.Dollar):[p.getChild(_.OpenParenMath),p.getChild(_.CloseParenMath)].filter(d=>d!==null);if(u.length===1){let d=u[0];r.push({from:d.from,to:d.to,kind:"error"})}else if(u.length===2){let d=u[0],f=u[1];r.push({outer_start:d.from,inner_start:d.to,inner_end:f.from,outer_end:f.to,kind:"pair",mode:0})}let O=u.last();O&&l.moveTo(O.to,-1)}else(c.is(_.Dollar)||c.is(_.OpenParenMath)||c.is(_.CloseParenMath))&&r.push({from:p.from,to:p.to,kind:"error"})}});let o=[];for(let s of r)if(!(s.kind==="error"&&s.from===s.to||s.kind==="pair"&&s.outer_start===s.inner_start&&s.inner_end===s.outer_end))if(s.kind==="error")o.push(ze.Decoration.mark({class:cu}).range(s.from,s.to));else{let a;s.mode===0||s.mode===1&&s.outer_start-s.outer_end<4?a=pu:s.mode===1?a=uu:a=Ou,o.push(ze.Decoration.mark({class:a}).range(s.outer_start,s.inner_start),ze.Decoration.mark({class:a}).range(s.inner_end,s.outer_end))}return ze.Decoration.set(o,!0)}},tg=ze.EditorView.baseTheme({[`.${cu}`]:{color:"#f00"},[`.${pu}`]:{color:"#61ae08"},[`.${uu}`]:{color:"#3e7202"},[`.${Ou}`]:{color:"#54940b"}}),du=[lu.Prec.highest(ze.ViewPlugin.fromClass(ma,{decorations:e=>e.decorations})),tg];var mu={snippets:"export default []",snippetVariables:"export default {}",snippetsEnabled:!1,snippetsTrigger:"",snippetNextTabstopTrigger:"",snippetPreviousTabstopTrigger:"",suppressSnippetTriggerOnIME:!1,suppressIMEWarning:!1,removeSnippetWhitespace:!1,autoDelete$:!1,loadSnippetsFromFile:!1,loadSnippetVariablesFromFile:!1,snippetsFileLocation:"",snippetVariablesFileLocation:"",concealEnabled:!1,concealRevealTimeout:0,colorPairedBracketsEnabled:!1,highlightCursorBracketsEnabled:!1,mathPreviewEnabled:!1,mathPreviewPositionIsAbove:!1,mathPreviewCursor:"",mathPreviewBracketHighlighting:!1,mathPreviewLivePreviewDisplay:!1,autofractionEnabled:!1,autofractionSymbol:"",autofractionBreakingChars:"",matrixShortcutsEnabled:!1,taboutEnabled:!1,taboutExitEquationOnlyOnEOL:!1,taboutTrigger:"",autoEnlargeBrackets:!1,autoEnlargeBracketsSpace:!1,wordDelimiters:"",autofractionExcludedEnvs:"[]",matrixShortcutsEnvNames:"",matrixShortcutsMacroNames:"",taboutClosingSymbols:"",autoEnlargeBracketsTriggers:"",forceMathLanguages:"",snippetDebug:"off",vimEnabled:!1,vimSelectMode:"",vimVisualMode:"",vimMatrixEnter:"",snippetRecursion:0,snippetIMEVersion:!1,highlightDollarEnabled:!1,excalidrawSupportEnabled:!1,logLevel:"off",autofractionTrigger:"",matrixShortcutsCellTrigger:"",matrixShortcutsExitTrigger:"",matrixShortcutsNewlineTrigger:""};var fu={snippets:{heading:"Snippets",enabled:{name:"Enabled",desc:'Whether snippets are enabled. For more info on how to format snippets see the documentation.'},snippets:{name:"Snippets",desc:"Enter snippets here. Remember to add a comma after each snippet, and escape all backslashes with an extra \\. Lines starting with // will be treated as comments and ignored."},"load-from-file":{name:"Load snippets from file or folder",desc:"Whether to load snippets from specified file, or from all files within a folder (instead of from the plugin settings)."},"file-path":{name:"Snippets file or folder location",desc:"The file or folder to load snippets from. On desktop you can use ~/ or an absolute path. Files outside your vault or in hidden folders may not be watched for changes depending on your OS."}},conceal:{heading:"Conceal",enabled:{name:"Enabled",desc:"Make equations more readable by hiding LaTeX syntax and instead displaying it in a pretty format.
    e.g.\\dot{x}^{2} + \\dot{y}^{2} will display as \u1E8B\xB2 + \u1E8F\xB2 and \\sqrt{ 1-\\beta^{2} } will display as \u221A(1-\u03B2\xB2)
    LaTeX beneath the cursor will be revealed.

    Disabled by default to not confuse new users. However, I recommend turning this on once you are comfortable with the plugin!."},"reveal-delay":{name:"Reveal delay (ms)",desc:"How long to delay the reveal of LaTeX for, in milliseconds, when the cursor moves over LaTeX. Defaults to 0 (LaTeX under the cursor is revealed immediately).

    Can be set to a positive number, e.g. 300, to delay the reveal of LaTeX, making it much easier to navigate equations using arrow keys.

    Must be an integer \u2265 0."}},"highlight-brackets":{heading:"Highlight and color brackets","color-brackets":{name:"Color paired brackets",desc:"Whether to colorize matching brackets."},"highlight-brackets":{name:"Highlight matching bracket beneath cursor",desc:"When the cursor is adjacent to a bracket, highlight the matching bracket."},"color-math":{name:"Color math delimiters",desc:"Whether to colorize matched and mismatched math delimiters in the editor according to latex suite parser. This parser behaves closer to the reading view parser than the editor/syntax highlighting parser."}},"math-preview":{heading:"Math popup preview",enabled:{name:"Enabled",desc:"When inside an equation, show a popup preview window of the rendered math.

    The popup preview will be shown for all inline math equations, as well as for block math equations in Source mode."},position:{name:"Position",desc:"Where to display the popup preview relative to the equation source.",options:{above:"Above",below:"Below"}},"cursor-symbol":{name:"Cursor symbol",desc:"The symbol to use as the cursor in the popup preview such as {{cursor}}. Leave it blank to turn it off."},"highlight-brackets":{name:"Highlight brackets in preview",desc:"Whether to highlight the area within the nearest pair of brackets around the cursor in the popup preview."},"display-live-preview":{name:"Display live preview",desc:"Whether to display the tooltip in live preview mode. The cursor and bracket highlighting will only be shown in this preview and not in obsidian's preview"}},"auto-fraction":{heading:"Auto-fraction",enabled:{name:"Enabled",desc:"Whether auto-fraction is enabled."},"fraction-symbol":{name:"Fraction symbol",desc:"The fraction symbol to use in the replacement. e.g. \\frac, \\dfrac, \\tfrac."},"excluded-environments":{name:"Excluded environments",desc:'A list of environments to exclude auto-fraction from running in. For example, to exclude auto-fraction from running while inside an exponent, such as e^{...}, use ["^{", "}"]'},"breaking-characters":{name:"Breaking characters",desc:"A list of characters that denote the start/end of a fraction. e.g. if + is included in the list, a+b/c will expand to a+\\frac{b}{c}. If + is not in the list, it will expand to \\frac{a+b}{c}."}},"matrix-shortcuts":{heading:"Matrix shortcuts",enabled:{name:"Enabled",desc:"Whether matrix shortcuts are enabled."},environments:{name:"Environments",desc:"A list of environment names to run the matrix shortcuts in, separated by commas."},macros:{name:"Macros",desc:"A list of macros names to run the matrix shortcuts in, separated by commas."}},tabout:{heading:"Tabout",enabled:{name:"Enabled",desc:"Whether tabout is enabled."},"closing-brackets":{name:"Closing brackets",desc:"A list of closing brackets for tabout, separated by commas."},"exit-EOL":{name:"Exit equation only on EOL",desc:"Whether to exit the equation only when the cursor is at the end of line"}},"auto-enlarge":{heading:"Auto-enlarge brackets",enabled:{name:"Enabled",desc:"Whether to automatically enlarge brackets containing e.g. sum, int, frac."},triggers:{name:"Triggers",desc:"A list of symbols that should trigger auto-enlarge brackets, separated by commas."},space:{name:"Space",desc:"Whether to add a space after \\left( and before \\right) or not"}},"advanced-snippets":{heading:"Advanced snippets",variables:{name:"Snippet variables",desc:"Assign snippet variables that can be used as shortcuts when writing snippets"},"load-variables-from-file":{name:"Load snippet variables from file or folder",desc:"Whether to load snippet variables from a specified file, or from all files within a folder (instead of from the plugin settings)."},"variables-file-path":{name:"Snippet variables file or folder location",desc:"The file or folder to load snippet variables from. On desktop you can use ~/ or an absolute path. Files outside your vault or in hidden folders may not be watched for changes depending on your os."},"word-delimiters":{name:"Word delimiters",desc:"Symbols that will be treated as word delimiters, for use with the w snippet option"},"trailing-whitespace":{name:"Remove trailing whitespace in snippets in inline math",desc:"Whether to remove trailing whitespaces when expanding snippets at the end of inline math blocks."},"auto-delete$":{name:"Remove closing $ when backspacing inside blank inline math",desc:"Whether to also remove closing $ when you delete the opening $ symbol inside blank inline math."},"suppress-IME":{name:"Don't trigger snippets when IME is active",desc:"Whether to suppress snippets triggering when an IME is active."},"suppress-IME-warning":{name:"Suppress IME warning",desc:'Whether a warning is shown on startup if $t(settings:advanced-snippets.suppress-IME.name) is enabled. Disable that setting if you are aware of the IME limitations. Currently only ios and android touch/swipe keyboards like gboard have support for IME. See here for more info.'},"code-languages":{name:"Code languages to interpret as math mode",desc:"Codeblock languages where the whole code block should be treated like a math block separated by commas."},"snippet-debug-mode":{name:"Snippet debug mode",desc:"Set the level of debug information to log about snippet expansion. Set to info or verbose to help identify which and what snippet is expanding. Verbose mode will log most information to the developer console on debug level.",options:{off:"Off",info:"Info",verbose:"Verbose"}}},vim:{enabled:{name:"Vim key bindings",desc:"Turn on/off vim keybindings. Note vim needs to be enabled in obsidian itself."},"select-mode":{name:"Vim: Switch from visual mode to select mode",desc:"Maps the key to switch from visual mode to select mode.Keymap must be vim keymap and can't contain any spaces. Use empty string to disable this feature. (select mode=insert keybindings)"},"visual-mode":{name:"Vim: Switch from select mode to visual mode",desc:"Maps the key to switch from select mode to visual mode. must be a vim keymap and can't contain any spaces. Example <C-g><C-A-i> = Ctrl-g + Ctrl-Alt-i. Please check the vim keybinding first on another command like w before reporting it. Some keybindings like shift don't work due to the original vim plugin. Use empty string to disable this feature. (select mode=insert keybindings)"},"matrix-enter":{name:"Vim: run matrix enter",desc:"Maps the key to the action of inserting a new line below while appending \\\\ to the current line in a matrix environment. Use empty string to disable this feature."}},keymap:{desc:'What key to press to trigger the action. Should follow codemirror 6 keymap syntax such as Ctrl-k Ctrl-a For more info see codemirror keymap

    Note that some keymaps may not work due to conflicts with obsidian or other plugins.

    The actions are expanded in the order that they are listed. Custom keymaps in snippets are on the same priority as $t(settings:keymap.snippet).',heading:{name:"Keymap",desc:"codemirror 6 keymaps for snippets and tabout."},snippet:"Expand manual snippets","next-tabstop":"Next tabstop","prev-tabstop":"Previous tabstop",tabout:"Tabout","matrix-newline":'Matrix: insert newline and "\\\\"',"matrix-cell":'Matrix: insert " & "',"matrix-exit":"Matrix: move to the next line","auto-fraction":"Expand fraction"},experimental:{heading:{name:"Experimental features",desc:"Features that are still in testing and may need user feedback. Backwards compatibility may break for these features or these settings may be overridden."},"snippet-recursion":{name:"Snippet recursion",desc:'How many times to run snippets in a row. Set to 0 to disable recursion.

    Related pr/feedback'},"excalidraw-enabled":{name:"Excalidraw enabled",desc:"Enable or disable Excalidraw integration."},"log-level":{name:"Log level",desc:"Set the level of debug information to log. Set to $t(settings:experimental.log-level.options.vverbose) for bug report purposes.",options:{off:"Off",info:"Info",verbose:"Verbose",vverbose:"VVerbose"}}}};var rg={en:{settings:fu}},hu=rg;var yu=require("@codemirror/view");var UT=require("@codemirror/state");var fa=class{constructor(){this.mountedTreeInfo=[];this.treeInfo=""}update(t){if(!t.docChanged)return;let n=W(t.view);if(De(n.logLevel,"verbose"))try{this.mountedTreeInfo=this.printMountedTrees(t.state);let r=at(t.state);console.debug("Syntax Tree:",r.toString());let i=t.state.doc.toString();this.treeInfo=gu(r.topNode,i),De(n.logLevel,"vverbose")&&(console.debug(`Full Syntax Tree: +`,this.treeInfo),console.debug(`Mounted Trees: +`,this.mountedTreeInfo.join(` +`)))}catch(r){console.error(r)}}printMountedTrees(t){let n=at(t),r=[];n.iterate({enter:o=>{if(o.name===w.DollarDisplayBlockMath){let a=o.node.getChildren(w.DisplayMath).last();if(a){let l=o.node.enter(a.to,-1);if(!l)return;r.push(l)}}else if(o.name==="FencedCode"){if(!o.node.getChild("CodeInfo"))return;let l=o.node.getChildren("CodeText").last();if(!l)return;let c=o.node.enter(l.to,-1);c&&r.push(c)}}});let i=t.doc.sliceString(0,t.doc.length);return r.map(o=>gu(o,i))}},ha=yu.ViewPlugin.fromClass(fa);function gu(e,t){let n=[];function r(o,s=0){let{name:a,from:l,to:c}=o,p=s,u=o.node;for(;u=u.parent;)p++;n.push({name:a,from:l,to:c,indent:p})}function i(o){let s=o.firstChild;for(;s;)r(s),i(s),s=s.nextSibling}return i({firstChild:e,nextSibling:null}),n.map(({name:o,from:s,to:a,indent:l})=>`${" ".repeat(l)}${o}: (${s}, ${a}): `+t.slice(s,a).replace(/\n/g,"\\n")).join(` +`)}var vi=class extends he.Plugin{constructor(){super(...arguments);this.settings=mu;this.CMSettings=vn([],this.settings);this.editorExtensions=[];this.disableMath=n=>{try{G(n,!1).disableMath()}catch(r){console.error("Error occurred while disabling math:",r)}};this.modifiedSyntaxTree=at;this.snippet=Us;this.api={effects:{snippetInvertedEffects:ti,startSnippet:Wt,endSnippet:dt,undidStartSnippet:Jr,undidEndSnippet:ei,LanguageSetStateEffect:hs,addTabstopsEffect:Fr,removeAllTabstopsEffect:Yr,updateTooltipEffect:zn},fields:{cursorTooltipField:Fn,notice:Pr,languageStateField:st,tabstopsStateField:mt},annotations:{tempKeyPress:Ne},plugin:{keyboardEventPlugin:Kn,colorPairedBracketsPlugin:aa,highlightCursorBracketsPlugin:la,parseWorker:gs,mathParserPlugin:ha,snippetQueuePlugin:Zn,contextPlugin:$r,mathBoundsPlugin:Qr},shortcuts:{autoEnlargeBrackets:on,runAutoFraction:gi,exitMatrixShortCut:ri,addCellMatrixShortcut:ii,newlineMatrixShortcut:tn,getVimRunMatrixEnterCommand:Hn,priorityTaboutMatrixShortcut:oi,snippet:Us},snippetApi:pc};this.createWatcherCloser=(0,he.debounce)(()=>y(this,null,function*(){var r;(r=this.watcherCloser)==null||r.call(this);let n=yield Sc(this);this.register(()=>{n()}),this.watcherCloser=n!=null?n:void 0}),3e3,!0)}onload(){return y(this,null,function*(){_p.addResourceBundle("en","settings",hu.en.settings),yield this.loadSettings(),this.loadIcons(),this.addSettingTab(new di(this.app,this)),yield(0,he.loadMathJax)(),this.legacyEditorWarning(),this.IMEEditorWarning(),this.registerEditorExtension(this.editorExtensions),this.watchFiles(),this.addEditorCommands()})}onunload(){}legacyEditorWarning(){var n;if((n=this.app.vault.config)!=null&&n.legacyEditor){let r="Latex Suite: This plugin does not support the legacy editor. Switch to Live Preview mode to use this plugin.";new he.Notice(r,1e5),console.error(r);return}}IMEEditorWarning(){if(fi()&&!this.settings.suppressIMEWarning&&this.settings.suppressSnippetTriggerOnIME){let n=createFragment();n.appendText("Latex Suite: this plugin supports your IME keyboard, but "),n.createEl("code",{text:"Advanced settings > Don't trigger snippets when IME is active"}),n.appendText(" is currently enabled. You may want to disable it in the plugin settings to fully enable automatic snippets. Be aware that this may cause unexpected snippet triggers while using your IME. To turn this warning off, enable "),n.createEl("code",{text:"Advanced settings > Suppress IME warning"}),n.appendText("."),new he.Notice(n,1e4),console.warn(n)}}loadSettings(){return y(this,null,function*(){var o;let n=rt(Mi(H(),Xi()),(o=yield this.loadData())!=null?o:{}),r=n?"basicSettings"in n:!1;function i(s){let a=s;return j(A(A({},a.basicSettings),a.rawSettings),{snippets:a.snippets})}r&&(n=i(n)),this.settings=A(A({},q),n),r&&(yield this.saveSettings()),this.settings.loadSnippetsFromFile||this.settings.loadSnippetVariablesFromFile?this.app.workspace.onLayoutReady(()=>{this.processSettings(!1,!0)}):yield this.processSettings(!1,!0)})}saveSettings(n=!1,r=!1){return y(this,null,function*(){yield this.saveData(this.settings),yield this.processSettings(n,r)})}getSettingsSnippetVariables(){return y(this,null,function*(){try{return yield Ie(this.settings.snippetVariables,"snippet-variables.js")}catch(n){let r=n;return new he.Notice(`Failed to load snippet variables from settings: ${r}`),console.error(`Failed to load snippet variables from settings: ${r}`),{}}})}getSettingsSnippets(n){return y(this,null,function*(){try{return yield lt(this.settings.snippets,n,"snippets.js")}catch(r){let i=r;return new he.Notice(`Failed to load snippets from settings: ${i}`),console.error(`Failed to load snippets from settings: ${i}`),[]}})}getSnippets(n,r){return y(this,null,function*(){if(!n&&!r)return this.CMSettings.snippets.all;let i=yield kc(this),o=this.settings.loadSnippetVariablesFromFile?yield Tc(i):yield this.getSettingsSnippetVariables(),s=yield Ec(i);this.settings.loadSnippetVariablesFromFile&&Object.assign(o,s);let a=this.settings.loadSnippetsFromFile?yield Pc(i,o):yield this.getSettingsSnippets(o);return this.showSnippetsLoadedNotice(a.length,Object.keys(o).length,n,r),a})}processSettings(n=!1,r=!1){return y(this,null,function*(){n&&this.watchFiles(),this.CMSettings=vn(yield this.getSnippets(n,r),this.settings),this.setEditorExtensions(),this.app.workspace.updateOptions()})}setEditorExtensions(){for(;this.editorExtensions.length;)this.editorExtensions.pop();this.editorExtensions.push([Jn.Prec.highest(Qr.extension),Jn.Prec.highest($r.extension),Ya(this.CMSettings),Jn.Prec.highest(Kn.extension),Jn.Prec.highest(jt.EditorView.inputHandler.of(Fp)),jt.EditorView.updateListener.of(zp),Kp,ec]);let n=Yp(this.CMSettings);this.editorExtensions.push(jt.keymap.of(n)),this.CMSettings.concealEnabled&&this.editorExtensions.push(au()),this.CMSettings.colorPairedBracketsEnabled&&this.editorExtensions.push(Vp),this.CMSettings.highlightCursorBracketsEnabled&&this.editorExtensions.push(Ip),this.CMSettings.mathPreviewEnabled&&this.editorExtensions.push([Fn.extension,Np,(0,jt.tooltips)({position:"absolute"})]),this.CMSettings.highlightDollarEnabled&&this.editorExtensions.push(du),De(this.CMSettings.logLevel,"verbose")&&this.editorExtensions.push(ha),De(this.CMSettings.snippetDebug,"info")&&this.editorExtensions.push(Pr)}showSnippetsLoadedNotice(n,r,i,o){if(!(i||o))return;let s=i?"Loaded ":"Successfully reloaded ",a=[];this.settings.loadSnippetsFromFile&&a.push(`${n} snippets`),this.settings.loadSnippetVariablesFromFile&&a.push(`${r} snippet variables`);let l=" from files.";new he.Notice(s+a.join(" and ")+l,5e3)}addEditorCommands(){var n,r,i;for(let o of Rp(this))this.addCommand(o);e:{if(!((r=(n=this.app).isVimEnabled)!=null&&r.call(n))||!this.settings.vimEnabled)break e;let o=(i=window==null?void 0:window.CodeMirrorAdapter)==null?void 0:i.Vim;if(!o)break e;for(let s of si(this.settings))o[s.defineType](s.id,s.action),o.mapCommand(s.key,s.type,s.id,{},{context:s.context})}}watchFiles(){this.app.workspace.onLayoutReady(this.createWatcherCloser)}loadIcons(){for(let[n,r]of Object.entries(Wp))(0,he.addIcon)(n,r)}}; +/** + * @license + * Force end an IME composition. + * MIT License + * Copyright (C) 2018-2021 by Marijn Haverbeke and others + */ +/** + * @license + * implementation of background lezer parser. + * MIT License + * Copyright (C) 2018-2021 by Marijn Haverbeke and others + */ /* nosourcemap */ \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-latex-suite/manifest.json b/.obsidian/plugins/obsidian-latex-suite/manifest.json index fd7447c..f04d5af 100644 --- a/.obsidian/plugins/obsidian-latex-suite/manifest.json +++ b/.obsidian/plugins/obsidian-latex-suite/manifest.json @@ -1,9 +1,9 @@ { "id": "obsidian-latex-suite", "name": "Latex Suite", - "version": "1.11.5", - "minAppVersion": "1.0.0", - "description": "Make typesetting LaTeX math as fast as handwriting through snippets, text expansion, and editor enhancements", + "version": "1.13.4", + "minAppVersion": "1.1.0", + "description": "Make typesetting LaTeX math as fast as handwriting through snippets, text expansion, and editor enhancements.", "author": "artisticat", "authorUrl": "https://github.com/artisticat1", "fundingUrl": "https://ko-fi.com/artisticat", diff --git a/.obsidian/plugins/obsidian-latex-suite/styles.css b/.obsidian/plugins/obsidian-latex-suite/styles.css index 564b13e..650342a 100644 --- a/.obsidian/plugins/obsidian-latex-suite/styles.css +++ b/.obsidian/plugins/obsidian-latex-suite/styles.css @@ -1,3 +1,5 @@ +/* stylelint-disable selector-class-pattern */ + /* Settings panel */ .setting-item.hidden { @@ -9,33 +11,29 @@ display: inline-flex; } -.setting-item.setting-item-heading:has(.latex-suite-settings-icon) { +.setting-item.setting-item-heading.latex-suite-settings-heading { border-bottom: 1px solid var(--background-modifier-border); } -.setting-item.setting-item-heading:has(.latex-suite-settings-icon) + .setting-item { +.latex-suite-confirmation-modal .setting-item { + border: none; +} + +.setting-item.setting-item-heading.latex-suite-settings-heading + .setting-item { border-top: none; } -.setting-item.setting-item-heading:has(.latex-suite-settings-icon) ~ .setting-item:not(.setting-item-heading), .latex-suite-snippet-variables-setting + .setting-item-control { +.setting-item.setting-item-heading.latex-suite-settings-heading ~ .setting-item:not(.setting-item-heading) { width: calc(100% - 26px); margin-left: 26px; } -.latex-suite-snippet-variables-setting .setting-item-control { - height: 120px; -} - -.latex-suite-snippet-variables-setting .setting-item-control textarea { - width: 100%; - height: 100%; -} - -.snippets-text-area, .latex-suite-snippet-variables-setting { +.snippets-text-area { display: inline-block; + width: 100%; } -.snippets-text-area .setting-item-info, .latex-suite-snippet-variables-setting .setting-item-info { +.snippets-text-area .setting-item-info { margin-bottom: 0.75rem; } @@ -54,7 +52,7 @@ border-radius: 4px; font-size: var(--font-inputs); height: 20em; - outline: none !important; + outline: none; text-align: left; } @@ -75,7 +73,7 @@ } .snippets-editor-validity-indicator { - color: white; + color: #fff; display: inline-block; border-radius: 1em; margin-right: 10px; @@ -84,12 +82,12 @@ } .snippets-editor-validity-indicator svg { - width: 16px !important; - height: 16px !important; + width: 16px; + height: 16px; } .snippets-editor-validity-indicator:hover { - color: white; + color: #fff; } .snippets-editor-validity-indicator.valid { @@ -102,163 +100,26 @@ visibility: visible; } +.snippets-editor-validity-text.setting-item-description { + padding: 0; +} + .snippets-editor-buttons { display: flex; flex-direction: row; } -.latex-suite-confirmation-modal .setting-item { - border: none; -} - .search-input-container input.latex-suite-location-input-el { width: initial; } -/* -Snippet color classes. -*/ -/* These extra selectors enforce their color on all children, because CodeMirror does weird nesting of spans when -nesting multiple decorations. */ - -.latex-suite-snippet-placeholder { - border-radius: 2px; - background-color: var(--placeholder-bg); - outline: var(--placeholder-outline) solid 1px; -} - -.latex-suite-snippet-placeholder-0, span.latex-suite-snippet-placeholder-0 span { - --placeholder-bg: #87cefa2e; - --placeholder-outline: #87cefa6e; -} - -.theme-dark .latex-suite-snippet-placeholder-0, span.latex-suite-snippet-placeholder-0 span { - --placeholder-outline: #87cefa43; -} - -.latex-suite-snippet-placeholder-1, span.latex-suite-snippet-placeholder-1 span { - --placeholder-bg: #ffa50033; - --placeholder-outline: #ffa5006b; -} - -.theme-dark .latex-suite-snippet-placeholder-1, span.latex-suite-snippet-placeholder-1 span { - --placeholder-outline: #ffa5004d; -} - -.latex-suite-snippet-placeholder-2, span.latex-suite-snippet-placeholder-2 span { - --placeholder-bg: #00ff0022; - --placeholder-outline: #00ff0060; -} - -.theme-dark .latex-suite-snippet-placeholder-2, span.latex-suite-snippet-placeholder-2 span { - --placeholder-outline: #00ff003d; -} - - -/* Conceal */ - -span.cm-math.cm-concealed-bold { - font-weight: bold; -} - -span.cm-math.cm-concealed-underline { - text-decoration: underline; -} - -span.cm-math.cm-concealed-mathrm, sub.cm-math.cm-concealed-mathrm { - font-style: normal; -} - - -/* Conceal superscripts without changing line height */ -sup.cm-math { - line-height: 0; -} - -sup.cm-math, sub.cm-math { - font-style: italic; -} - - -/* Inline math tooltip styling */ - -.theme-light .cm-tooltip.cm-tooltip-cursor { - box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.028), 0px 3.4px 6.7px rgba(0, 0, 0, .042), 0px 5px 20px rgba(0, 0, 0, .07); -} - -.theme-dark .cm-tooltip.cm-tooltip-cursor { - box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1), - 0px 3.4px 6.7px rgba(0, 0, 0, 0.15), - 0px 0px 30px rgba(0, 0, 0, 0.27); -} -/* CM6 puts the top of the tooltip higher than what's viewable (negative top value), -so to compensate for this, we align the content to the bottom of the tooltip container, -and limit the height. -*/ -.cm-tooltip.cm-tooltip-cursor.cm-tooltip-above { +.setting-item.latex-suite-keymap-list { display: flex; + flex-direction: column; } -.cm-tooltip.cm-tooltip-cursor.cm-tooltip-above > .MathJax { - overflow-y: auto; - max-height: 70%; - display: inline-block; - align-self: flex-end; +.latex-suite-keymap-item { + list-style: none; + align-self: flex-start; } - -.cm-tooltip.cm-tooltip-cursor.cm-tooltip-below > .MathJax { - overflow-y: auto; - max-height: 90%; -} -/* Highlight brackets */ -.theme-light .latex-suite-highlighted-bracket, .theme-light .latex-suite-highlighted-bracket [class^="latex-suite-color-bracket-"] { - background-color: hsl(var(--accent-h), var(--accent-s), 40%, 0.3); -} - -.theme-dark .latex-suite-highlighted-bracket, .theme-dark .latex-suite-highlighted-bracket [class^="latex-suite-color-bracket-"] { - background-color: hsl(var(--accent-h), var(--accent-s), 70%, 0.6); -} - - -/* Color matching brackets */ - -.theme-light .latex-suite-color-bracket-0, .theme-light .latex-suite-color-bracket-0 .cm-bracket { - color: #527aff; -} - -.theme-dark .latex-suite-color-bracket-0, .theme-dark .latex-suite-color-bracket-0 .cm-bracket { - color: #47b8ff; -} - -.theme-light .latex-suite-color-bracket-1, .theme-light .latex-suite-color-bracket-1 .cm-bracket { - color: #ff50b7; -} - -.theme-dark .latex-suite-color-bracket-1, .theme-dark .latex-suite-color-bracket-1 .cm-bracket { - color: #ff55cd; -} - -.theme-light .latex-suite-color-bracket-2, .theme-light .latex-suite-color-bracket-2 .cm-bracket { - color: #69ba00; -} - -.theme-dark .latex-suite-color-bracket-2, .theme-dark .latex-suite-color-bracket-2 .cm-bracket { - color: #73ff63; -} - -/* .latex-suite-color-bracket-3 { - color: #8de15c; -} */ - -.latex-suite-math-preview-highlight { - background-color: var(--text-selection); -} -.cm-snippetFieldPosition { - vertical-align: text-top; - width: 0; - height: 1.15em; - display: inline-block; - margin: 0 -0.7px -.7em; - border-left: 1.4px dotted #888; - } diff --git a/College/AU 26/MATH 208 (Matrix Algebra)/Chapter 1.2 Notes.md b/College/AU 26/MATH 208 (Matrix Algebra)/Chapter 1.2 Notes.md index b11c3c0..e87f251 100644 --- a/College/AU 26/MATH 208 (Matrix Algebra)/Chapter 1.2 Notes.md +++ b/College/AU 26/MATH 208 (Matrix Algebra)/Chapter 1.2 Notes.md @@ -36,8 +36,17 @@ $$\begin{bmatrix} 3 & 6 & 2 \\ h & 12 & k \end{bmatrix} \sim \begin{bmatrix} h & 2h & \frac{2h}{3} \\ h & 12 & k -\end{bmatrix} \sim \begin{bmatrix} +\end{bmatrix} \sim \left[\begin{array}{cc|c} h & 2h & \frac{2h}{3} \\ 0 & 12 - 2h & k - \frac{2h}{3} -\end{bmatrix} $$ +\end{array}\right] $$ There are no solutions the system of equations when there is no pivot in a row and the value on the right is not equal to zero (if the value on the right is also equal to zero than that equation is essentially $0=0$ which is always true). -This means that there are no solutions when $$12-2h = 0 \to h=6$$ and $$k-\frac{2h}{3} \ne 0$$ \ No newline at end of file +This means that there are no solutions when $$12-2h = 0 \to h=6$$ and $$k-\frac{2h}{3} \ne 0 \to k-4 \ne 0 \to k \ne 4$$ +$$ +\left[ +\begin{array}{cccc|c} +1 & 0 & 3 & -1 & 0 \\ +0 & 1 & 1 & -1 & 0 \\ +0 & 0 & 0 & 0 & 0 \\ +\end{array} +\right] +$$